From 3496ea1c4b349d1be827b1e24d495c67c12d61a3 Mon Sep 17 00:00:00 2001 From: wumingzhinu Date: Fri, 25 Sep 2026 11:36:21 +0800 Subject: [PATCH] fix(storage): validate KV proxy health response --- cloud-functions/[[default]].js | 224 +++++++++--------- src/backend/internal/model/store/driver/kv.ts | 23 +- src/backend/server/kv_proxy_loop.test.ts | 50 ++++ 3 files changed, 184 insertions(+), 113 deletions(-) diff --git a/cloud-functions/[[default]].js b/cloud-functions/[[default]].js index f4351e20..5fc5131d 100644 --- a/cloud-functions/[[default]].js +++ b/cloud-functions/[[default]].js @@ -1,43 +1,43 @@ -var UL=Object.create;var sx=Object.defineProperty;var RL=Object.getOwnPropertyDescriptor;var NL=Object.getOwnPropertyNames;var qL=Object.getPrototypeOf,OL=Object.prototype.hasOwnProperty;var wt=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var j=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(i){throw t=[i],i}};var oe=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},xn=(r,e)=>{for(var t in e)sx(r,t,{get:e[t],enumerable:!0})},ML=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of NL(e))!OL.call(r,n)&&n!==t&&sx(r,n,{get:()=>e[n],enumerable:!(i=RL(e,n))||i.enumerable});return r};var Qr=(r,e,t)=>(t=r!=null?UL(qL(r)):{},ML(e||!r||!r.__esModule?sx(t,"default",{value:r,enumerable:!0}):t,r));var ox,Bv=j(()=>{ox=(r,e,t)=>(i,n)=>{let s=-1;return o(0);async function o(a){if(a<=s)throw new Error("next() called multiple times");s=a;let c,l=!1,d;if(r[a]?(d=r[a][0][0],i.req.routeIndex=a):d=a===r.length&&n||void 0,d)try{c=await d(i,()=>o(a+1))}catch(u){if(u instanceof Error&&e)i.error=u,c=await e(u,i),l=!0;else throw u}else i.finalized===!1&&t&&(c=await t(i));return c&&(i.finalized===!1||l)&&(i.res=c),i}}});var xu,ax=j(()=>{xu=class extends Error{res;status;constructor(r=500,e){super(e?.message,{cause:e?.cause}),this.res=e?.res,this.status=r}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}}});var bv,vv=j(()=>{bv=Symbol()});var kv=j(()=>{});var Sv,Dv=j(()=>{kv();Sv=(r,e)=>new Response(r,{headers:{"Content-Type":e.replace(/^[^;]+/,i=>i.toLowerCase())}}).formData()});async function LL(r,e){if(!P0(r)&&r.bodyCache.formData)return Qv(await r.bodyCache.formData,e);let t=P0(r)?r.headers:r.raw.headers,i=await r.arrayBuffer(),n=Sv(i,t.get("Content-Type")||"");P0(r)||(r.bodyCache.formData=n);let s=await n;return s?Qv(s,e):{}}function Qv(r,e){let t=Object.create(null);return r.forEach((i,n)=>{e.all||n.endsWith("[]")?HL(t,n,i):t[n]=i}),e.dot&&Object.entries(t).forEach(([i,n])=>{i.includes(".")&&(KL(t,i,n),delete t[i])}),t}var P0,_v,HL,KL,Fv=j(()=>{Dv();P0=r=>"headers"in r,_v=async(r,e=Object.create(null))=>{let{all:t=!1,dot:i=!1}=e,o=(P0(r)?r.headers:r.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();return o==="multipart/form-data"||o==="application/x-www-form-urlencoded"?LL(r,{all:t,dot:i}):{}};HL=(r,e,t)=>{r[e]!==void 0?Array.isArray(r[e])?r[e].push(t):r[e]=[r[e],t]:e.endsWith("[]")?r[e]=[t]:r[e]=t},KL=(r,e,t)=>{if(/(?:^|\.)__proto__\./.test(e))return;let i=r,n=e.split(".");n.forEach((s,o)=>{o===n.length-1?i[s]=t:((!i[s]||typeof i[s]!="object"||Array.isArray(i[s])||i[s]instanceof File)&&(i[s]=Object.create(null)),i=i[s])})}});var lx,Pv,GL,zL,T0,Tv,Uv,JL,dx,Rv,Do,U0,yl,cx,Nv,qv,Ov,jL,$a=j(()=>{lx=r=>{let e=r.split("/");return e[0]===""&&e.shift(),e},Pv=r=>{let{groups:e,path:t}=GL(r),i=lx(t);return zL(i,e)},GL=r=>{let e=[];return r=r.replace(/\{[^}]+\}/g,(t,i)=>{let n=`@${i}`;return e.push([n,t]),n}),{groups:e,path:r}},zL=(r,e)=>{for(let t=e.length-1;t>=0;t--){let[i]=e[t];for(let n=r.length-1;n>=0;n--)if(r[n].includes(i)){r[n]=r[n].replace(i,e[t][1]);break}}return r},T0={},Tv=(r,e)=>{if(r==="*")return"*";let t=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){let i=`${r}#${e}`;return T0[i]||(t[2]?T0[i]=e&&e[0]!==":"&&e[0]!=="*"?[i,t[1],new RegExp(`^${t[2]}(?=/${e})`)]:[r,t[1],new RegExp(`^${t[2]}$`)]:T0[i]=[r,t[1],!0]),T0[i]}return null},Uv=(r,e)=>{try{return e(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,t=>{try{return e(t)}catch{return t}})}},JL=r=>Uv(r,decodeURI),dx=r=>{let e=r.url,t=e.indexOf("/",e.indexOf(":")+4),i=t;for(;i{let e=dx(r);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},Do=(r,e,...t)=>(t.length&&(e=Do(e,...t)),`${r?.[0]==="/"?"":"/"}${r}${e==="/"?"":`${r?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),U0=r=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let e=r.split("/"),t=[],i="";return e.forEach(n=>{if(n!==""&&!/\:/.test(n))i+="/"+n;else if(/\:/.test(n))if(/\?/.test(n)){t.length===0&&i===""?t.push("/"):t.push(i);let s=n.replace("?","");i+="/"+s,t.push(i)}else i+="/"+n}),t.filter((n,s,o)=>o.indexOf(n)===s)},yl=r=>r.indexOf("%")!==-1?Uv(r,jL):r,cx=r=>(r.indexOf("+")!==-1&&(r=r.replace(/\+/g," ")),yl(r)),Nv=(r,e,t)=>{let i;if(!t&&e&&e.indexOf("%")===-1&&e.indexOf("+")===-1){let o=r.indexOf("?",8);if(o===-1)return;for(r.startsWith(e,o+1)||(o=r.indexOf(`&${e}`,o+1));o!==-1;){let a=r.charCodeAt(o+e.length+1);if(a===61){let c=o+e.length+2,l=r.indexOf("&",c);return cx(r.slice(c,l===-1?void 0:l))}else if(a==38||isNaN(a))return"";o=r.indexOf(`&${e}`,o+1)}if(i=/[%+]/.test(r),!i)return}let n=Object.create(null);i??=/[%+]/.test(r);let s=r.indexOf("?",8);for(;s!==-1;){let o=r.indexOf("&",s+1),a=r.indexOf("=",s);a>o&&o!==-1&&(a=-1);let c=r.slice(s+1,a===-1?o===-1?void 0:o:a);if(i&&(c=cx(c)),s=o,c==="")continue;let l;a===-1?l="":(l=r.slice(a+1,o===-1?void 0:o),i&&(l=cx(l))),t?(n[c]&&Array.isArray(n[c])||(n[c]=[]),n[c].push(l)):n[c]??=l}return e?n[e]:n},qv=Nv,Ov=(r,e)=>Nv(r,e,!0),jL=decodeURIComponent});var Mv,Lv=j(()=>{ax();vv();Fv();$a();Mv=class{raw;#t;#e;routeIndex=0;path;bodyCache={};constructor(r,e="/",t=[[]]){this.raw=r,this.path=e,this.#e=t}param(r){return r?this.#r(r):this.#s()}#r(r){let e=this.#e[0][this.routeIndex][1][r],t=this.#i(e);return t&&yl(t)}#s(){let r={},e=Object.keys(this.#e[0][this.routeIndex][1]);for(let t of e){let i=this.#i(this.#e[0][this.routeIndex][1][t]);i!==void 0&&(r[t]=yl(i))}return r}#i(r){return this.#e[1]?this.#e[1][r]:r}query(r){return qv(this.url,r)}queries(r){return Ov(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let e=Object.create(null);return this.raw.headers.forEach((t,i)=>{e[i]=t}),e}async parseBody(r){return _v(this,r)}#n=r=>{let{bodyCache:e,raw:t}=this,i=e[r];if(i)return i;for(let n in e)return e[n].then(s=>(n==="json"&&(s=JSON.stringify(s)),new Response(s)[r]()));return e[r]=t[r]()};json(){return this.#n("text").then(r=>JSON.parse(r))}text(){return this.#n("text")}arrayBuffer(){return this.#n("arrayBuffer")}bytes(){return this.#n("arrayBuffer").then(r=>new Uint8Array(r))}blob(){return this.#n("blob")}formData(){return this.#n("formData")}addValidatedData(r,e){(this.#t??={})[r]=e}valid(r){return this.#t?.[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[bv](){return this.#e}get matchedRoutes(){return this.#e[0].map(([[,r]])=>r)}get routePath(){return this.#e[0].map(([[,r]])=>r)[this.routeIndex].path}}});var Hv,$L,ux,Kv=j(()=>{Hv={Stringify:1,BeforeStream:2,Stream:3},$L=(r,e)=>{let t=new String(r);return t.isEscaped=!0,t.callbacks=e,t},ux=async(r,e,t,i,n)=>{typeof r=="object"&&!(r instanceof String)&&(r instanceof Promise||(r=r.toString()),r instanceof Promise&&(r=await r));let s=r.callbacks;if(!s?.length)return Promise.resolve(r);n?n[0]+=r:n=[r];let o=Promise.all(s.map(a=>a({phase:e,buffer:n,context:i}))).then(a=>Promise.all(a.filter(Boolean).map(c=>ux(c,e,!1,i,n))).then(()=>n[0]));return t?$L(await o,s):o}});var VL,fx,Cu,Ax,R0=j(()=>{Lv();Kv();VL="text/plain; charset=UTF-8",fx=(r,e)=>({"Content-Type":r,...e}),Cu=(r,e)=>new Response(r,e),Ax=class{#t;#e;env={};#r;finalized=!1;error;#s;#i;#n;#d;#c;#l;#a;#u;#f;constructor(r,e){this.#t=r,e&&(this.#i=e.executionCtx,this.env=e.env,this.#l=e.notFoundHandler,this.#f=e.path,this.#u=e.matchResult)}get req(){return this.#e??=new Mv(this.#t,this.#f,this.#u),this.#e}get event(){if(this.#i&&"respondWith"in this.#i)return this.#i;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#i)return this.#i;throw Error("This context has no ExecutionContext")}get res(){return this.#n||=Cu(null,{headers:this.#a??=new Headers})}set res(r){if(this.#n&&r){r=Cu(r.body,r);for(let[e,t]of this.#n.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let i=this.#n.headers.getSetCookie();r.headers.delete("set-cookie");for(let n of i)r.headers.append("set-cookie",n)}else r.headers.set(e,t)}this.#n=r,this.finalized=!0}render=(...r)=>(this.#c??=e=>this.html(e),this.#c(...r));setLayout=r=>this.#d=r;getLayout=()=>this.#d;setRenderer=r=>{this.#c=r};header=(r,e,t)=>{this.finalized&&(this.#n=Cu(this.#n.body,this.#n));let i=this.#n?this.#n.headers:this.#a??=new Headers;e===void 0?i.delete(r):t?.append?i.append(r,e):i.set(r,e)};status=r=>{this.#s=r};set=(r,e)=>{this.#r??=new Map,this.#r.set(r,e)};get=r=>this.#r?this.#r.get(r):void 0;get var(){return this.#r?Object.fromEntries(this.#r):{}}#o(r,e,t){let i=this.#n?new Headers(this.#n.headers):this.#a;if(typeof e=="object"&&e.headers){i??=new Headers;for(let[s,o]of new Headers(e.headers))s==="set-cookie"?i.append(s,o):i.set(s,o)}if(t){if(!i){let s=0;for(let o in t)if(++s>1||typeof t[o]!="string"){i=new Headers;break}}if(i)for(let s in t){let o=t[s];if(typeof o=="string")i.set(s,o);else{i.delete(s);for(let a of o)i.append(s,a)}}}let n=typeof e=="number"?e:e?.status??this.#s;return Cu(r,{status:n,headers:i??t})}newResponse=(...r)=>this.#o(...r);body=(r,e,t)=>this.#o(r,e,t);text=(r,e,t)=>!this.#a&&!this.#s&&!e&&!t&&!this.finalized?new Response(r):this.#o(r,e,fx(VL,t));json=(r,e,t)=>this.#o(JSON.stringify(r),e,fx("application/json",t));html=(r,e,t)=>{let i=n=>this.#o(n,e,fx("text/html; charset=UTF-8",t));return typeof r=="object"?ux(r,Hv.Stringify,!1,{}).then(i):i(r)};redirect=(r,e)=>{let t=String(r);return this.header("Location",/[^\x00-\xFF]/.test(t)?encodeURI(t):t),this.newResponse(null,e??302)};notFound=()=>(this.#l??=()=>Cu(),this.#l(this))}});var ir,Gv,zv,N0,q0,Va=j(()=>{ir="ALL",Gv="all",zv=["get","post","put","delete","options","patch","query"],N0="Can not add a route since the matcher is already built.",q0=class extends Error{}});var Jv,jv=j(()=>{Jv="__COMPOSED_HANDLER"});var YL,$v,Vv,Wv=j(()=>{Bv();R0();Va();jv();$a();YL=r=>r.text("404 Not Found",404),$v=(r,e)=>{if("getResponse"in r){let t=r.getResponse();return e.newResponse(t.body,t)}return console.error(r),e.text("Internal Server Error",500)},Vv=class Yv{get;post;put;delete;options;patch;query;all;on;use;router;getPath;_basePath="/";#t="/";routes=[];constructor(e={}){[...zv,Gv].forEach(s=>{this[s]=(o,...a)=>(typeof o=="string"?this.#t=o:this.#s(s,this.#t,o),a.forEach(c=>{this.#s(s,this.#t,c)}),this)}),this.on=(s,o,...a)=>{for(let c of[o].flat()){this.#t=c;for(let l of[s].flat())a.map(d=>{this.#s(l.toUpperCase(),this.#t,d)})}return this},this.use=(s,...o)=>(typeof s=="string"?this.#t=s:(this.#t="*",o.unshift(s)),o.forEach(a=>{this.#s(ir,this.#t,a)}),this);let{strict:i,...n}=e;Object.assign(this,n),this.getPath=i??!0?e.getPath??dx:Rv}#e(){let e=new Yv({router:this.router,getPath:this.getPath});return e.errorHandler=this.errorHandler,e.#r=this.#r,e.routes=this.routes,e}#r=YL;errorHandler=$v;route(e,t){let i=this.basePath(e);return t.routes.map(n=>{let s;t.errorHandler===$v?s=n.handler:(s=async(o,a)=>(await ox([],t.errorHandler)(o,()=>n.handler(o,a))).res,s[Jv]=n.handler),i.#s(n.method,n.path,s,n.basePath)}),this}basePath(e){let t=this.#e();return t._basePath=Do(this._basePath,e),t}onError=e=>(this.errorHandler=e,this);notFound=e=>(this.#r=e,this);mount(e,t,i){let n,s;i&&(typeof i=="function"?s=i:(s=i.optionHandler,i.replaceRequest===!1?n=c=>c:n=i.replaceRequest));let o=s?c=>{let l=s(c);return Array.isArray(l)?l:[l]}:c=>{let l;try{l=c.executionCtx}catch{}return[c.env,l]};n||=(()=>{let c=Do(this._basePath,e),l=c==="/"?0:c.length;return d=>{let u=new URL(d.url);return u.pathname=this.getPath(d).slice(l)||"/",new Request(u,d)}})();let a=async(c,l)=>{let d=await t(n(c.req.raw),...o(c));if(d)return d;await l()};return this.#s(ir,Do(e,"*"),a),this}#s(e,t,i,n){e=e.toUpperCase(),t=Do(this._basePath,t);let s={basePath:n!==void 0?Do(this._basePath,n):this._basePath,path:t,method:e,handler:i};this.router.add(e,t,[i,s]),this.routes.push(s)}#i(e,t){if(e instanceof Error)return this.errorHandler(e,t);throw e}#n(e,t,i,n){if(n==="HEAD")return(async()=>new Response(null,await this.#n(e,t,i,"GET")))();let s=this.getPath(e,{env:i}),o=this.router.match(n,s),a=new Ax(e,{path:s,matchResult:o,env:i,executionCtx:t,notFoundHandler:this.#r});if(o[0].length===1){let l;try{l=o[0][0][0][0](a,async()=>{a.res=await this.#r(a)})}catch(d){return this.#i(d,a)}return l instanceof Promise?l.then(d=>d||(a.finalized?a.res:this.#r(a))).catch(d=>this.#i(d,a)):l??this.#r(a)}let c=ox(o[0],this.errorHandler,this.#r);return(async()=>{try{let l=await c(a);if(!l.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return l.res}catch(l){return this.#i(l,a)}})()}fetch=(e,...t)=>this.#n(e,t[1],t[0],e.method);request=(e,t,i,n)=>e instanceof Request?this.fetch(t?new Request(e,t):e,i,n):(e=e.toString(),this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${Do("/",e)}`,t),i,n));fire=()=>{addEventListener("fetch",e=>{e.respondWith(this.#n(e.request,e,void 0,e.request.method))})}}});function hx(r,e){let t=this.buildAllMatchers(),i=((n,s)=>{let o=t[n]||t[ir],a=o[2][s];if(a)return a;let c=s.match(o[0]);if(!c)return[[],O0];let l=c.indexOf("",1);return[o[1][l],c]});return this.match=i,i(r,e)}var O0,gx=j(()=>{Va();O0=[]});function WL(r,e){return r.length===1?e.length===1?r{M0="[^/]+",Il=".*",Ya="(?:|/.*)",Qo=Symbol(),Xv=new Set(".\\+*[^]$()");Zv=class px{#t;#e;#r=Object.create(null);insert(e,t,i,n,s){let o=this;for(let a=0,c=e.length;a1||g.length>1)&&g!==Il&&g!==Ya)throw Qo}u=o.#r[h]=new px}f!==""&&(u.#e??=n.varIndex++,i.push([f,u.#e]))}else if(u=o.#r[l],!u){for(let f in o.#r)if(f.length>1&&f!==Il&&f!==Ya)throw Qo;u=o.#r[l]=new px}o=u}if(o.#t!==void 0)throw Qo;o.#t=s?-1:t}buildRegExpStr(){let t=Object.keys(this.#r).sort(WL).map(i=>{let n=this.#r[i],s=n.buildRegExpStr();return s===""?"":(typeof n.#e=="number"?`(${i})@${n.#e}`:Xv.has(i)?`\\${i}`:i)+s}).filter(Boolean);return typeof this.#t=="number"&&this.#t!==-1&&t.unshift(`#${this.#t}`),t.length===0?"":t.length===1?t[0]:"(?:"+t.join("|")+")"}}});var yx,ek=j(()=>{mx();yx=class{#t={varIndex:0};#e=new Zv;#r=0;paths=Object.create(null);insert(r,e){if(e){this.#e.insert(r.split(""),0,[],this.#t,!0);return}let t=[],i=[],n=r;for(let o=0;;){let a=!1;if(n=n.replace(/\{[^}]+\}/g,c=>{let l=`@\\${o}`;return i[o]=[l,c],o++,a=!0,l}),!a)break}let s=n.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let o=i.length-1;o>=0;o--){let[a]=i[o];for(let c=s.length-1;c>=0;c--)if(s[c].indexOf(a)!==-1){s[c]=s[c].replace(a,i[o][1]);break}}this.#e.insert(s,this.#r,t,this.#t,!1),this.paths[r]=[this.#r++,t]}buildRegExp(){let r=this.#e.buildRegExpStr();if(r==="")return[/^$/,[],[]];let e=0,t=[],i=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(n,s,o)=>s!==void 0?(t[++e]=Number(s),"$()"):(o!==void 0&&(i[Number(o)]=++e),"")),[new RegExp(`^${r}`),t,i]}}});function rk(r){return tk[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,t)=>t?`\\${t}`:"(?:|/.*)")}$`)}function XL(){tk=Object.create(null)}function L0(r,e){if(r){for(let t of Object.keys(r).sort((i,n)=>n.length-i.length))if(rk(t).test(e))return[...r[t]]}}var tk,H0,Ix=j(()=>{Va();$a();gx();mx();ek();tk=Object.create(null);H0=class{name="RegExpRouter";#t;#e;#r;constructor(){this.#t={[ir]:Object.create(null)},this.#e={[ir]:Object.create(null)},this.#r={[ir]:new yx}}#s(r,e){try{this.#r[r].insert(e,!/\*|\/:/.test(e))}catch(t){throw t===Qo?new q0(e):t}}add(r,e,t){let i=this.#t,n=this.#e;if(!i||!n)throw new Error(N0);i[r]||(this.#r[r]=new yx,[i,n].forEach(a=>{a[r]=Object.create(null),Object.keys(a[ir]).forEach(c=>{a[r][c]=[...a[ir][c]],this.#s(r,c)})})),e==="/*"&&(e="*");let s=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let a=rk(e);Object.keys(i).forEach(c=>{(r===ir||r===c)&&!i[c][e]&&(this.#s(c,e),i[c][e]=L0(i[c],e)||L0(i[ir],e)||[])}),Object.keys(i).forEach(c=>{(r===ir||r===c)&&Object.keys(i[c]).forEach(l=>{a.test(l)&&i[c][l].push([t,s])})}),Object.keys(n).forEach(c=>{(r===ir||r===c)&&Object.keys(n[c]).forEach(l=>a.test(l)&&n[c][l].push([t,s]))});return}let o=U0(e)||[e];for(let a=0,c=o.length;a{(r===ir||r===d)&&(n[d][l]||(this.#s(d,l),n[d][l]=[...L0(i[d],l)||L0(i[ir],l)||[]]),n[d][l].push([t,s-c+a+1]))})}}match=hx;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#e).concat(Object.keys(this.#t)).forEach(e=>{r[e]||=this.#i(e)}),this.#t=this.#e=this.#r=void 0,XL(),r}#i(r){let e=this.#t[r],t=this.#e[r],i=this.#r[r],n=Object.create(null),s=[];[e,t].forEach(d=>{for(let u in d){let f=d[u],h=i.paths[u];if(!h){n[u]=[f.map(([p])=>[p,Object.create(null)]),O0];continue}let g=h[1];s[h[0]]=f.map(([p,I])=>{let y=Object.create(null);for(I-=1;I>=0;I--){let[w,C]=g[I];y[w]=C}return[p,y]})}});let[o,a,c]=i.buildRegExp();for(let d=0,u=s.length;d{Va();gx();Ix()});var nk=j(()=>{Ix();ik()});var wx,sk=j(()=>{Va();wx=class{name="SmartRouter";#t=[];#e=[];constructor(r){this.#t=r.routers}add(r,e,t){if(!this.#e)throw new Error(N0);this.#e.push([r,e,t])}match(r,e){if(!this.#e)throw new Error("Fatal error");let t=this.#t,i=this.#e,n=t.length,s=0,o;for(;s{sk()});var Eu,ZL,ak,lk=j(()=>{Va();$a();Eu=Object.create(null),ZL=r=>{for(let e in r)return!0;return!1},ak=class ck{#t;#e;#r;#s=0;#i=Eu;constructor(e,t,i){if(this.#e=i||Object.create(null),this.#t=[],e&&t){let n=Object.create(null);n[e]={handler:t,possibleKeys:[],score:0},this.#t=[n]}this.#r=[]}insert(e,t,i){this.#s=++this.#s;let n=this,s=Pv(t),o=[];for(let a=0,c=s.length;al.indexOf(a)===c),score:this.#s}}),n}#n(e,t,i,n,s){for(let o=0,a=t.#t.length;o1&&i.sort((d,u)=>d.score-u.score),[i.map(({handler:d,params:u})=>[d,u])]}}});var xx,dk=j(()=>{$a();lk();xx=class{name="TrieRouter";#t;constructor(){this.#t=new ak}add(r,e,t){let i=U0(e);if(i){for(let n=0,s=i.length;n{dk()});var Xe,Cx=j(()=>{Wv();nk();ok();uk();Xe=class extends Vv{constructor(r={}){super(r),this.router=r.router??new wx({routers:[new H0,new xx]})}}});var wr=j(()=>{Cx();R0()});function Wa(r){return Array.from(new Uint8Array(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}function Vi(r){return typeof r=="string"?new TextEncoder().encode(r):r}function Ex(r){let e=new Uint8Array(r.length/2);for(let t=0;t>>0,!0),o.setUint32(s.length-4,Math.floor(i/4294967296),!0);let a=new Int32Array(64);for(let g=0;g<64;g++)a[g]=Math.abs(Math.sin(g+1))*4294967296|0;let c=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],l=1732584193,d=4023233417,u=2562383102,f=271733878;for(let g=0;gp.getInt32(_*4,!0)),[y,w,C,b]=[l,d,u,f];for(let x=0;x<64;x++){let _,R;x<16?(_=w&C|~w&b,R=x):x<32?(_=b&w|~b&C,R=(5*x+1)%16):x<48?(_=w^C^b,R=(3*x+5)%16):(_=C^(w|~b),R=7*x%16);let U=b;b=C,C=w;let T=y+_+a[x]+I[R]|0;w=w+(T<>>32-c[x])|0,y=U}l=l+y|0,d=d+w|0,u=u+C|0,f=f+b|0}let h=new DataView(new ArrayBuffer(16));return h.setInt32(0,l,!0),h.setInt32(4,d,!0),h.setInt32(8,u,!0),h.setInt32(12,f,!0),Wa(h.buffer)}function $t(r){return eH(r)}async function _o(r){let e=await crypto.subtle.digest("SHA-1",Vi(r));return Wa(e)}async function hk(r){let e=await crypto.subtle.digest("SHA-256",Vi(r));return Wa(e)}async function Bx(r,e){let t=await crypto.subtle.importKey("raw",Vi(e),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,Vi(r));return Wa(i)}async function Bu(r,e){let t=await crypto.subtle.importKey("raw",Vi(e),{name:"HMAC",hash:"SHA-1"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,Vi(r)),n=new Uint8Array(i),s="";for(let o of n)s+=String.fromCharCode(o);return btoa(s)}async function gk(r,e="salt",t=bx){let i=Vi(r),n=Vi(e),s=await crypto.subtle.importKey("raw",i,"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:n,iterations:t,hash:"SHA-256"},s,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function pk(r,e){let t=crypto.getRandomValues(new Uint8Array(16)),i=crypto.getRandomValues(new Uint8Array(12)),n=await gk(e,t,bx),s=await crypto.subtle.encrypt({name:"AES-GCM",iv:i},n,Vi(r));return`${Wa(t.buffer)}:${Wa(i.buffer)}:${Wa(s)}`}async function mk(r,e){let t=r.split(":"),i="salt",n="",s="",o=1;if(t.length===3)i=Ex(t[0]),n=t[1],s=t[2],o=bx;else if(t.length===2)n=t[0],s=t[1],o=1,Ak||(Ak=!0,console.warn("[Crypto] Decrypting legacy weak-KDF format. It will be re-encrypted with the strong PBKDF2 format on the next config save."));else throw new Error("Invalid encrypted data format");let a=Ex(n),c=Ex(s),l=await gk(e,i,o),d=await crypto.subtle.decrypt({name:"AES-GCM",iv:a},l,c);return new TextDecoder().decode(d)}async function vx(r,e,t){let i=Vi(e),n=t?Vi(t):i,s=await crypto.subtle.importKey("raw",i,{name:"AES-CBC"},!1,["encrypt"]),o=Vi(r),c=typeof process<"u"&&process?.release?.name==="node"?o:tH(o),l=await crypto.subtle.encrypt({name:"AES-CBC",iv:n},s,c),d=new Uint8Array(l),u="";for(let f of d)u+=String.fromCharCode(f);return btoa(u)}function tH(r,e=16){let t=e-r.length%e,i=new Uint8Array(r.length+t);return i.set(r),i.fill(t,r.length),i}var bx,Ak,si=j(()=>{"use strict";bx=1e5,Ak=!1});function wl(r,e){if(typeof r!="string")return null;let t=r.trim();if(!t)return null;let i;try{i=new URL(t)}catch{return null}if(i.protocol!=="http:"&&i.protocol!=="https:"||!i.hostname)return null;let n=e?.EO_KV_URLS;return!(typeof n=="string"&&n.trim()===t)&&!(i.hostname==="localhost"||i.hostname==="127.0.0.1"||i.hostname==="[::1]")&&i.protocol!=="https:"?(console.warn(`[DB] Rejecting non-HTTPS proxy origin derived from request: ${i.protocol}//${i.hostname} (would leak X-Internal-Call in clear text)`),null):`${i.protocol}//${i.host}`.replace(/\/$/,"")}var K0=j(()=>{"use strict"});var Tx=oe((Xce,Rk)=>{"use strict";var Px=Object.defineProperty,rH=Object.getOwnPropertyDescriptor,iH=Object.getOwnPropertyNames,nH=Object.prototype.hasOwnProperty,sH=(r,e)=>{for(var t in e)Px(r,t,{get:e[t],enumerable:!0})},oH=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of iH(e))!nH.call(r,n)&&n!==t&&Px(r,n,{get:()=>e[n],enumerable:!(i=rH(e,n))||i.enumerable});return r},aH=r=>oH(Px({},"__esModule",{value:!0}),r),vk={};sH(vk,{InvalidKeyError:()=>G0,InvalidStoreNameError:()=>Qu,MissingProjectIdError:()=>kk,PagesBlobError:()=>Hn,PreconditionFailedError:()=>Qx,QuotaExceededError:()=>cH,RateLimitedError:()=>lH,Store:()=>Sk,getStore:()=>SH,listStores:()=>DH});Rk.exports=aH(vk);var Hn=class extends Error{code;constructor(r,e){super(`PagesBlob: ${e}`),this.name="PagesBlobError",this.code=r}},G0=class extends Hn{constructor(r){super("INVALID_KEY",r)}},Qu=class extends Hn{constructor(r){super("INVALID_STORE_NAME",r)}},kx=class extends Hn{constructor(r){super("MISSING_ENVIRONMENT",`Environment not configured for Pages Blob. Missing: ${r.join(", ")}. Supply these properties when creating a store, or ensure the function is running in a Pages environment.`)}},cH=class extends Hn{constructor(){super("QUOTA_EXCEEDED","storage quota exceeded")}},lH=class extends Hn{constructor(){super("RATE_LIMITED","request rate limited, please retry later")}},kk=class extends Hn{constructor(){super("MISSING_PROJECT_ID","projectId is required when using API token mode. Please supply { name, projectId, token } to getStore() / listStores().")}},Fo=class extends Hn{constructor(r){super("CREDENTIAL_ERROR",r)}},Kr=class extends Hn{constructor(r,e){super("COS_ERROR",`COS returned ${r}: ${e}`)}},Qx=class extends Hn{constructor(){super("PRECONDITION_FAILED","conditional write failed (key already exists)")}};function Xa(r){if(r==="")throw new G0("Blob key must not be empty.");if(r.startsWith("/")||r.startsWith("%2F"))throw new G0("Blob key must not start with forward slash (/).");if(new TextEncoder().encode(r).length>600)throw new G0("Blob key must be a sequence of Unicode characters whose UTF-8 encoding is at most 600 bytes long.")}function dH(r){if(r==="")throw new Qu("Store name must not be empty.");if(r.includes("/")||r.includes(":"))throw new Qu("Store name must not contain forward slashes (/) or colons (:).");if(!/^[a-zA-Z0-9_-]+$/.test(r))throw new Qu("Store name must only contain letters, digits, underscores, and hyphens.");if(new TextEncoder().encode(r).length>64)throw new Qu("Store name must be a sequence of Unicode characters whose UTF-8 encoding is at most 64 bytes long.")}var Sk=class{cosClient;storeName;defaultConsistency;constructor(r,e,t="eventual"){this.cosClient=r,this.storeName=e,this.defaultConsistency=t}resolveConsistency(r){return r??this.defaultConsistency}async set(r,e,t){Xa(r);let i=await this.cosClient.putObject(this.storeName,r,e,{onlyIfNew:t?.onlyIfNew,cacheControl:t?.cacheControl});if(t?.onlyIfNew&&i.statusCode===412)throw new Qx}async setJSON(r,e,t){Xa(r);let i=JSON.stringify(e),n=await this.cosClient.putObject(this.storeName,r,i,{onlyIfNew:t?.onlyIfNew,contentType:"application/json",cacheControl:t?.cacheControl});if(t?.onlyIfNew&&n.statusCode===412)throw new Qx}async createUploadUrl(r,e){Xa(r);let{url:t,expiresAt:i}=await this.cosClient.createPresignedPutUrl(this.storeName,r,{expireSeconds:e?.expireSeconds,contentType:e?.contentType});return{url:t,key:r,expiresAt:i}}async get(r,e){Xa(r);let t=this.resolveConsistency(e?.consistency),i=await this.cosClient.getObject(this.storeName,r,t);if(i===null)return null;let{body:n}=i,s=e?.type??"text",o=new TextDecoder("utf-8");switch(s){case"text":return o.decode(n);case"json":return JSON.parse(o.decode(n));case"arrayBuffer":return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);case"blob":return new Blob([n]);case"stream":return new ReadableStream({start(a){a.enqueue(n),a.close()}});default:return o.decode(n)}}async getMetadata(r,e){Xa(r);let t=this.resolveConsistency(e?.consistency);return this.cosClient.headObject(this.storeName,r,t)}async getWithHeaders(r,e){Xa(r);let t=this.resolveConsistency(e?.consistency),i=await this.cosClient.getObject(this.storeName,r,t);return i?{body:new TextDecoder("utf-8").decode(i.body),headers:i.headers||{}}:null}async delete(r){Xa(r),await this.cosClient.deleteObject(this.storeName,r)}async list(r){let e=r?.paginate!==!1,t=r?.limit,i=[],n=[],s=this.resolveConsistency(r?.consistency),o=r?.cursor||"",a=!0,c;for(;a;){let l=t!==void 0?t-i.length:1e3,d=Math.min(l,1e3);if(d<=0)break;let u=await this.cosClient.listObjects(this.storeName,{prefix:r?.prefix,delimiter:r?.directories?"/":void 0,marker:o||void 0,maxKeys:d,consistency:s});for(let f of u.contents)i.push({key:f.key,etag:f.etag});n.push(...u.commonPrefixes),t!==void 0&&i.length>=t?(i.length=t,(u.isTruncated||u.contents.length===d)&&(c=u.nextMarker),a=!1):u.isTruncated?!e&&t===void 0?(c=u.nextMarker,a=!1):o=u.nextMarker:a=!1}return{blobs:i,directories:n,...c?{cursor:c}:{}}}},uH=new TextEncoder;function _x(r){let e=uH.encode(r),t=new ArrayBuffer(e.byteLength),i=new Uint8Array(t);return i.set(e),i}function Dk(r){let e=r instanceof Uint8Array?r:new Uint8Array(r),t="";for(let i=0;i"%"+e.charCodeAt(0).toString(16).toUpperCase())}function J0(r){try{return decodeURIComponent(r)}catch{return r}}function Qk(r){return r.split("/").map(e=>J0(e)).join("/")}function _k(r){return r.split("/").map(e=>z0(J0(e))).join("/")}var AH=new Set(["cache-control","content-disposition","content-encoding","content-length","content-md5","content-type","expect","expires","if-match","if-modified-since","if-none-match","if-unmodified-since","origin","range","transfer-encoding"]);function hH(r){return r==="host"||r==="x-cos-security-token"?!1:!!(AH.has(r)||r.startsWith("x-cos-"))}function Ik(r){if(!r)return[];let e=[];for(let[t,i]of Object.entries(r))i!=null&&e.push([t.toLowerCase(),String(i)]);return e.sort(([t],[i])=>ti?1:0),e}function wk(r){return r.map(([e,t])=>`${z0(e)}=${z0(t)}`).join("&")}function xk(r){return r.map(([e])=>z0(e)).join(";")}async function Fk(r){let e=r.method.toLowerCase(),t=r.pathname.startsWith("/")?r.pathname:`/${r.pathname}`,i=Math.floor(Date.now()/1e3),n=i+(r.expireSeconds??3600),s=`${i};${n}`,o=Ik(r.headers).filter(([w])=>hH(w)),a=xk(o),c=wk(o),l=Ik(r.query),d=xk(l),u=wk(l),f=`${e} +var HH=Object.create;var bx=Object.defineProperty;var KH=Object.getOwnPropertyDescriptor;var GH=Object.getOwnPropertyNames;var zH=Object.getPrototypeOf,JH=Object.prototype.hasOwnProperty;var wt=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var J=(r,e,t)=>()=>{if(t)throw t[0];try{return r&&(e=r(r=0)),e}catch(i){throw t=[i],i}};var oe=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},Cn=(r,e)=>{for(var t in e)bx(r,t,{get:e[t],enumerable:!0})},jH=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of GH(e))!JH.call(r,n)&&n!==t&&bx(r,n,{get:()=>e[n],enumerable:!(i=KH(e,n))||i.enumerable});return r};var xr=(r,e,t)=>(t=r!=null?HH(zH(r)):{},jH(e||!r||!r.__esModule?bx(t,"default",{value:r,enumerable:!0}):t,r));var vx,rk=J(()=>{vx=(r,e,t)=>(i,n)=>{let s=-1;return o(0);async function o(a){if(a<=s)throw new Error("next() called multiple times");s=a;let c,l=!1,d;if(r[a]?(d=r[a][0][0],i.req.routeIndex=a):d=a===r.length&&n||void 0,d)try{c=await d(i,()=>o(a+1))}catch(u){if(u instanceof Error&&e)i.error=u,c=await e(u,i),l=!0;else throw u}else i.finalized===!1&&t&&(c=await t(i));return c&&(i.finalized===!1||l)&&(i.res=c),i}}});var Fu,kx=J(()=>{Fu=class extends Error{res;status;constructor(r=500,e){super(e?.message,{cause:e?.cause}),this.res=e?.res,this.status=r}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}}});var ik,nk=J(()=>{ik=Symbol()});var sk=J(()=>{});var ok,ak=J(()=>{sk();ok=(r,e)=>new Response(r,{headers:{"Content-Type":e.replace(/^[^;]+/,i=>i.toLowerCase())}}).formData()});async function $H(r,e){if(!z0(r)&&r.bodyCache.formData)return ck(await r.bodyCache.formData,e);let t=z0(r)?r.headers:r.raw.headers,i=await r.arrayBuffer(),n=ok(i,t.get("Content-Type")||"");z0(r)||(r.bodyCache.formData=n);let s=await n;return s?ck(s,e):{}}function ck(r,e){let t=Object.create(null);return r.forEach((i,n)=>{e.all||n.endsWith("[]")?VH(t,n,i):t[n]=i}),e.dot&&Object.entries(t).forEach(([i,n])=>{i.includes(".")&&(YH(t,i,n),delete t[i])}),t}var z0,lk,VH,YH,dk=J(()=>{ak();z0=r=>"headers"in r,lk=async(r,e=Object.create(null))=>{let{all:t=!1,dot:i=!1}=e,o=(z0(r)?r.headers:r.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();return o==="multipart/form-data"||o==="application/x-www-form-urlencoded"?$H(r,{all:t,dot:i}):{}};VH=(r,e,t)=>{r[e]!==void 0?Array.isArray(r[e])?r[e].push(t):r[e]=[r[e],t]:e.endsWith("[]")?r[e]=[t]:r[e]=t},YH=(r,e,t)=>{if(/(?:^|\.)__proto__\./.test(e))return;let i=r,n=e.split(".");n.forEach((s,o)=>{o===n.length-1?i[s]=t:((!i[s]||typeof i[s]!="object"||Array.isArray(i[s])||i[s]instanceof File)&&(i[s]=Object.create(null)),i=i[s])})}});var Dx,uk,WH,XH,J0,fk,Ak,ZH,Qx,hk,To,j0,vl,Sx,gk,pk,mk,eK,sc=J(()=>{Dx=r=>{let e=r.split("/");return e[0]===""&&e.shift(),e},uk=r=>{let{groups:e,path:t}=WH(r),i=Dx(t);return XH(i,e)},WH=r=>{let e=[];return r=r.replace(/\{[^}]+\}/g,(t,i)=>{let n=`@${i}`;return e.push([n,t]),n}),{groups:e,path:r}},XH=(r,e)=>{for(let t=e.length-1;t>=0;t--){let[i]=e[t];for(let n=r.length-1;n>=0;n--)if(r[n].includes(i)){r[n]=r[n].replace(i,e[t][1]);break}}return r},J0={},fk=(r,e)=>{if(r==="*")return"*";let t=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){let i=`${r}#${e}`;return J0[i]||(t[2]?J0[i]=e&&e[0]!==":"&&e[0]!=="*"?[i,t[1],new RegExp(`^${t[2]}(?=/${e})`)]:[r,t[1],new RegExp(`^${t[2]}$`)]:J0[i]=[r,t[1],!0]),J0[i]}return null},Ak=(r,e)=>{try{return e(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,t=>{try{return e(t)}catch{return t}})}},ZH=r=>Ak(r,decodeURI),Qx=r=>{let e=r.url,t=e.indexOf("/",e.indexOf(":")+4),i=t;for(;i{let e=Qx(r);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},To=(r,e,...t)=>(t.length&&(e=To(e,...t)),`${r?.[0]==="/"?"":"/"}${r}${e==="/"?"":`${r?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),j0=r=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let e=r.split("/"),t=[],i="";return e.forEach(n=>{if(n!==""&&!/\:/.test(n))i+="/"+n;else if(/\:/.test(n))if(/\?/.test(n)){t.length===0&&i===""?t.push("/"):t.push(i);let s=n.replace("?","");i+="/"+s,t.push(i)}else i+="/"+n}),t.filter((n,s,o)=>o.indexOf(n)===s)},vl=r=>r.indexOf("%")!==-1?Ak(r,eK):r,Sx=r=>(r.indexOf("+")!==-1&&(r=r.replace(/\+/g," ")),vl(r)),gk=(r,e,t)=>{let i;if(!t&&e&&e.indexOf("%")===-1&&e.indexOf("+")===-1){let o=r.indexOf("?",8);if(o===-1)return;for(r.startsWith(e,o+1)||(o=r.indexOf(`&${e}`,o+1));o!==-1;){let a=r.charCodeAt(o+e.length+1);if(a===61){let c=o+e.length+2,l=r.indexOf("&",c);return Sx(r.slice(c,l===-1?void 0:l))}else if(a==38||isNaN(a))return"";o=r.indexOf(`&${e}`,o+1)}if(i=/[%+]/.test(r),!i)return}let n=Object.create(null);i??=/[%+]/.test(r);let s=r.indexOf("?",8);for(;s!==-1;){let o=r.indexOf("&",s+1),a=r.indexOf("=",s);a>o&&o!==-1&&(a=-1);let c=r.slice(s+1,a===-1?o===-1?void 0:o:a);if(i&&(c=Sx(c)),s=o,c==="")continue;let l;a===-1?l="":(l=r.slice(a+1,o===-1?void 0:o),i&&(l=Sx(l))),t?(n[c]&&Array.isArray(n[c])||(n[c]=[]),n[c].push(l)):n[c]??=l}return e?n[e]:n},pk=gk,mk=(r,e)=>gk(r,e,!0),eK=decodeURIComponent});var yk,Ik=J(()=>{kx();nk();dk();sc();yk=class{raw;#t;#e;routeIndex=0;path;bodyCache={};constructor(r,e="/",t=[[]]){this.raw=r,this.path=e,this.#e=t}param(r){return r?this.#r(r):this.#s()}#r(r){let e=this.#e[0][this.routeIndex][1][r],t=this.#i(e);return t&&vl(t)}#s(){let r={},e=Object.keys(this.#e[0][this.routeIndex][1]);for(let t of e){let i=this.#i(this.#e[0][this.routeIndex][1][t]);i!==void 0&&(r[t]=vl(i))}return r}#i(r){return this.#e[1]?this.#e[1][r]:r}query(r){return pk(this.url,r)}queries(r){return mk(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let e=Object.create(null);return this.raw.headers.forEach((t,i)=>{e[i]=t}),e}async parseBody(r){return lk(this,r)}#n=r=>{let{bodyCache:e,raw:t}=this,i=e[r];if(i)return i;for(let n in e)return e[n].then(s=>(n==="json"&&(s=JSON.stringify(s)),new Response(s)[r]()));return e[r]=t[r]()};json(){return this.#n("text").then(r=>JSON.parse(r))}text(){return this.#n("text")}arrayBuffer(){return this.#n("arrayBuffer")}bytes(){return this.#n("arrayBuffer").then(r=>new Uint8Array(r))}blob(){return this.#n("blob")}formData(){return this.#n("formData")}addValidatedData(r,e){(this.#t??={})[r]=e}valid(r){return this.#t?.[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[ik](){return this.#e}get matchedRoutes(){return this.#e[0].map(([[,r]])=>r)}get routePath(){return this.#e[0].map(([[,r]])=>r)[this.routeIndex].path}}});var wk,tK,_x,xk=J(()=>{wk={Stringify:1,BeforeStream:2,Stream:3},tK=(r,e)=>{let t=new String(r);return t.isEscaped=!0,t.callbacks=e,t},_x=async(r,e,t,i,n)=>{typeof r=="object"&&!(r instanceof String)&&(r instanceof Promise||(r=r.toString()),r instanceof Promise&&(r=await r));let s=r.callbacks;if(!s?.length)return Promise.resolve(r);n?n[0]+=r:n=[r];let o=Promise.all(s.map(a=>a({phase:e,buffer:n,context:i}))).then(a=>Promise.all(a.filter(Boolean).map(c=>_x(c,e,!1,i,n))).then(()=>n[0]));return t?tK(await o,s):o}});var rK,Fx,Pu,Px,$0=J(()=>{Ik();xk();rK="text/plain; charset=UTF-8",Fx=(r,e)=>({"Content-Type":r,...e}),Pu=(r,e)=>new Response(r,e),Px=class{#t;#e;env={};#r;finalized=!1;error;#s;#i;#n;#d;#c;#l;#a;#u;#f;constructor(r,e){this.#t=r,e&&(this.#i=e.executionCtx,this.env=e.env,this.#l=e.notFoundHandler,this.#f=e.path,this.#u=e.matchResult)}get req(){return this.#e??=new yk(this.#t,this.#f,this.#u),this.#e}get event(){if(this.#i&&"respondWith"in this.#i)return this.#i;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#i)return this.#i;throw Error("This context has no ExecutionContext")}get res(){return this.#n||=Pu(null,{headers:this.#a??=new Headers})}set res(r){if(this.#n&&r){r=Pu(r.body,r);for(let[e,t]of this.#n.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let i=this.#n.headers.getSetCookie();r.headers.delete("set-cookie");for(let n of i)r.headers.append("set-cookie",n)}else r.headers.set(e,t)}this.#n=r,this.finalized=!0}render=(...r)=>(this.#c??=e=>this.html(e),this.#c(...r));setLayout=r=>this.#d=r;getLayout=()=>this.#d;setRenderer=r=>{this.#c=r};header=(r,e,t)=>{this.finalized&&(this.#n=Pu(this.#n.body,this.#n));let i=this.#n?this.#n.headers:this.#a??=new Headers;e===void 0?i.delete(r):t?.append?i.append(r,e):i.set(r,e)};status=r=>{this.#s=r};set=(r,e)=>{this.#r??=new Map,this.#r.set(r,e)};get=r=>this.#r?this.#r.get(r):void 0;get var(){return this.#r?Object.fromEntries(this.#r):{}}#o(r,e,t){let i=this.#n?new Headers(this.#n.headers):this.#a;if(typeof e=="object"&&e.headers){i??=new Headers;for(let[s,o]of new Headers(e.headers))s==="set-cookie"?i.append(s,o):i.set(s,o)}if(t){if(!i){let s=0;for(let o in t)if(++s>1||typeof t[o]!="string"){i=new Headers;break}}if(i)for(let s in t){let o=t[s];if(typeof o=="string")i.set(s,o);else{i.delete(s);for(let a of o)i.append(s,a)}}}let n=typeof e=="number"?e:e?.status??this.#s;return Pu(r,{status:n,headers:i??t})}newResponse=(...r)=>this.#o(...r);body=(r,e,t)=>this.#o(r,e,t);text=(r,e,t)=>!this.#a&&!this.#s&&!e&&!t&&!this.finalized?new Response(r):this.#o(r,e,Fx(rK,t));json=(r,e,t)=>this.#o(JSON.stringify(r),e,Fx("application/json",t));html=(r,e,t)=>{let i=n=>this.#o(n,e,Fx("text/html; charset=UTF-8",t));return typeof r=="object"?_x(r,wk.Stringify,!1,{}).then(i):i(r)};redirect=(r,e)=>{let t=String(r);return this.header("Location",/[^\x00-\xFF]/.test(t)?encodeURI(t):t),this.newResponse(null,e??302)};notFound=()=>(this.#l??=()=>Pu(),this.#l(this))}});var ir,Ck,Ek,V0,Y0,oc=J(()=>{ir="ALL",Ck="all",Ek=["get","post","put","delete","options","patch","query"],V0="Can not add a route since the matcher is already built.",Y0=class extends Error{}});var Bk,bk=J(()=>{Bk="__COMPOSED_HANDLER"});var iK,vk,kk,Dk=J(()=>{rk();$0();oc();bk();sc();iK=r=>r.text("404 Not Found",404),vk=(r,e)=>{if("getResponse"in r){let t=r.getResponse();return e.newResponse(t.body,t)}return console.error(r),e.text("Internal Server Error",500)},kk=class Sk{get;post;put;delete;options;patch;query;all;on;use;router;getPath;_basePath="/";#t="/";routes=[];constructor(e={}){[...Ek,Ck].forEach(s=>{this[s]=(o,...a)=>(typeof o=="string"?this.#t=o:this.#s(s,this.#t,o),a.forEach(c=>{this.#s(s,this.#t,c)}),this)}),this.on=(s,o,...a)=>{for(let c of[o].flat()){this.#t=c;for(let l of[s].flat())a.map(d=>{this.#s(l.toUpperCase(),this.#t,d)})}return this},this.use=(s,...o)=>(typeof s=="string"?this.#t=s:(this.#t="*",o.unshift(s)),o.forEach(a=>{this.#s(ir,this.#t,a)}),this);let{strict:i,...n}=e;Object.assign(this,n),this.getPath=i??!0?e.getPath??Qx:hk}#e(){let e=new Sk({router:this.router,getPath:this.getPath});return e.errorHandler=this.errorHandler,e.#r=this.#r,e.routes=this.routes,e}#r=iK;errorHandler=vk;route(e,t){let i=this.basePath(e);return t.routes.map(n=>{let s;t.errorHandler===vk?s=n.handler:(s=async(o,a)=>(await vx([],t.errorHandler)(o,()=>n.handler(o,a))).res,s[Bk]=n.handler),i.#s(n.method,n.path,s,n.basePath)}),this}basePath(e){let t=this.#e();return t._basePath=To(this._basePath,e),t}onError=e=>(this.errorHandler=e,this);notFound=e=>(this.#r=e,this);mount(e,t,i){let n,s;i&&(typeof i=="function"?s=i:(s=i.optionHandler,i.replaceRequest===!1?n=c=>c:n=i.replaceRequest));let o=s?c=>{let l=s(c);return Array.isArray(l)?l:[l]}:c=>{let l;try{l=c.executionCtx}catch{}return[c.env,l]};n||=(()=>{let c=To(this._basePath,e),l=c==="/"?0:c.length;return d=>{let u=new URL(d.url);return u.pathname=this.getPath(d).slice(l)||"/",new Request(u,d)}})();let a=async(c,l)=>{let d=await t(n(c.req.raw),...o(c));if(d)return d;await l()};return this.#s(ir,To(e,"*"),a),this}#s(e,t,i,n){e=e.toUpperCase(),t=To(this._basePath,t);let s={basePath:n!==void 0?To(this._basePath,n):this._basePath,path:t,method:e,handler:i};this.router.add(e,t,[i,s]),this.routes.push(s)}#i(e,t){if(e instanceof Error)return this.errorHandler(e,t);throw e}#n(e,t,i,n){if(n==="HEAD")return(async()=>new Response(null,await this.#n(e,t,i,"GET")))();let s=this.getPath(e,{env:i}),o=this.router.match(n,s),a=new Px(e,{path:s,matchResult:o,env:i,executionCtx:t,notFoundHandler:this.#r});if(o[0].length===1){let l;try{l=o[0][0][0][0](a,async()=>{a.res=await this.#r(a)})}catch(d){return this.#i(d,a)}return l instanceof Promise?l.then(d=>d||(a.finalized?a.res:this.#r(a))).catch(d=>this.#i(d,a)):l??this.#r(a)}let c=vx(o[0],this.errorHandler,this.#r);return(async()=>{try{let l=await c(a);if(!l.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return l.res}catch(l){return this.#i(l,a)}})()}fetch=(e,...t)=>this.#n(e,t[1],t[0],e.method);request=(e,t,i,n)=>e instanceof Request?this.fetch(t?new Request(e,t):e,i,n):(e=e.toString(),this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${To("/",e)}`,t),i,n));fire=()=>{addEventListener("fetch",e=>{e.respondWith(this.#n(e.request,e,void 0,e.request.method))})}}});function Tx(r,e){let t=this.buildAllMatchers(),i=((n,s)=>{let o=t[n]||t[ir],a=o[2][s];if(a)return a;let c=s.match(o[0]);if(!c)return[[],W0];let l=c.indexOf("",1);return[o[1][l],c]});return this.match=i,i(r,e)}var W0,Ux=J(()=>{oc();W0=[]});function nK(r,e){return r.length===1?e.length===1?r{X0="[^/]+",kl=".*",ac="(?:|/.*)",Uo=Symbol(),Qk=new Set(".\\+*[^]$()");_k=class Rx{#t;#e;#r=Object.create(null);insert(e,t,i,n,s){let o=this;for(let a=0,c=e.length;a1||g.length>1)&&g!==kl&&g!==ac)throw Uo}u=o.#r[h]=new Rx}f!==""&&(u.#e??=n.varIndex++,i.push([f,u.#e]))}else if(u=o.#r[l],!u){for(let f in o.#r)if(f.length>1&&f!==kl&&f!==ac)throw Uo;u=o.#r[l]=new Rx}o=u}if(o.#t!==void 0)throw Uo;o.#t=s?-1:t}buildRegExpStr(){let t=Object.keys(this.#r).sort(nK).map(i=>{let n=this.#r[i],s=n.buildRegExpStr();return s===""?"":(typeof n.#e=="number"?`(${i})@${n.#e}`:Qk.has(i)?`\\${i}`:i)+s}).filter(Boolean);return typeof this.#t=="number"&&this.#t!==-1&&t.unshift(`#${this.#t}`),t.length===0?"":t.length===1?t[0]:"(?:"+t.join("|")+")"}}});var qx,Fk=J(()=>{Nx();qx=class{#t={varIndex:0};#e=new _k;#r=0;paths=Object.create(null);insert(r,e){if(e){this.#e.insert(r.split(""),0,[],this.#t,!0);return}let t=[],i=[],n=r;for(let o=0;;){let a=!1;if(n=n.replace(/\{[^}]+\}/g,c=>{let l=`@\\${o}`;return i[o]=[l,c],o++,a=!0,l}),!a)break}let s=n.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let o=i.length-1;o>=0;o--){let[a]=i[o];for(let c=s.length-1;c>=0;c--)if(s[c].indexOf(a)!==-1){s[c]=s[c].replace(a,i[o][1]);break}}this.#e.insert(s,this.#r,t,this.#t,!1),this.paths[r]=[this.#r++,t]}buildRegExp(){let r=this.#e.buildRegExpStr();if(r==="")return[/^$/,[],[]];let e=0,t=[],i=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(n,s,o)=>s!==void 0?(t[++e]=Number(s),"$()"):(o!==void 0&&(i[Number(o)]=++e),"")),[new RegExp(`^${r}`),t,i]}}});function Tk(r){return Pk[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,t)=>t?`\\${t}`:"(?:|/.*)")}$`)}function sK(){Pk=Object.create(null)}function Z0(r,e){if(r){for(let t of Object.keys(r).sort((i,n)=>n.length-i.length))if(Tk(t).test(e))return[...r[t]]}}var Pk,eh,Ox=J(()=>{oc();sc();Ux();Nx();Fk();Pk=Object.create(null);eh=class{name="RegExpRouter";#t;#e;#r;constructor(){this.#t={[ir]:Object.create(null)},this.#e={[ir]:Object.create(null)},this.#r={[ir]:new qx}}#s(r,e){try{this.#r[r].insert(e,!/\*|\/:/.test(e))}catch(t){throw t===Uo?new Y0(e):t}}add(r,e,t){let i=this.#t,n=this.#e;if(!i||!n)throw new Error(V0);i[r]||(this.#r[r]=new qx,[i,n].forEach(a=>{a[r]=Object.create(null),Object.keys(a[ir]).forEach(c=>{a[r][c]=[...a[ir][c]],this.#s(r,c)})})),e==="/*"&&(e="*");let s=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let a=Tk(e);Object.keys(i).forEach(c=>{(r===ir||r===c)&&!i[c][e]&&(this.#s(c,e),i[c][e]=Z0(i[c],e)||Z0(i[ir],e)||[])}),Object.keys(i).forEach(c=>{(r===ir||r===c)&&Object.keys(i[c]).forEach(l=>{a.test(l)&&i[c][l].push([t,s])})}),Object.keys(n).forEach(c=>{(r===ir||r===c)&&Object.keys(n[c]).forEach(l=>a.test(l)&&n[c][l].push([t,s]))});return}let o=j0(e)||[e];for(let a=0,c=o.length;a{(r===ir||r===d)&&(n[d][l]||(this.#s(d,l),n[d][l]=[...Z0(i[d],l)||Z0(i[ir],l)||[]]),n[d][l].push([t,s-c+a+1]))})}}match=Tx;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#e).concat(Object.keys(this.#t)).forEach(e=>{r[e]||=this.#i(e)}),this.#t=this.#e=this.#r=void 0,sK(),r}#i(r){let e=this.#t[r],t=this.#e[r],i=this.#r[r],n=Object.create(null),s=[];[e,t].forEach(d=>{for(let u in d){let f=d[u],h=i.paths[u];if(!h){n[u]=[f.map(([p])=>[p,Object.create(null)]),W0];continue}let g=h[1];s[h[0]]=f.map(([p,I])=>{let m=Object.create(null);for(I-=1;I>=0;I--){let[w,B]=g[I];m[w]=B}return[p,m]})}});let[o,a,c]=i.buildRegExp();for(let d=0,u=s.length;d{oc();Ux();Ox()});var Rk=J(()=>{Ox();Uk()});var Mx,Nk=J(()=>{oc();Mx=class{name="SmartRouter";#t=[];#e=[];constructor(r){this.#t=r.routers}add(r,e,t){if(!this.#e)throw new Error(V0);this.#e.push([r,e,t])}match(r,e){if(!this.#e)throw new Error("Fatal error");let t=this.#t,i=this.#e,n=t.length,s=0,o;for(;s{Nk()});var Tu,oK,Ok,Lk=J(()=>{oc();sc();Tu=Object.create(null),oK=r=>{for(let e in r)return!0;return!1},Ok=class Mk{#t;#e;#r;#s=0;#i=Tu;constructor(e,t,i){if(this.#e=i||Object.create(null),this.#t=[],e&&t){let n=Object.create(null);n[e]={handler:t,possibleKeys:[],score:0},this.#t=[n]}this.#r=[]}insert(e,t,i){this.#s=++this.#s;let n=this,s=uk(t),o=[];for(let a=0,c=s.length;al.indexOf(a)===c),score:this.#s}}),n}#n(e,t,i,n,s){for(let o=0,a=t.#t.length;o1&&i.sort((d,u)=>d.score-u.score),[i.map(({handler:d,params:u})=>[d,u])]}}});var Lx,Hk=J(()=>{sc();Lk();Lx=class{name="TrieRouter";#t;constructor(){this.#t=new Ok}add(r,e,t){let i=j0(e);if(i){for(let n=0,s=i.length;n{Hk()});var Xe,Hx=J(()=>{Dk();Rk();qk();Kk();Xe=class extends kk{constructor(r={}){super(r),this.router=r.router??new Mx({routers:[new eh,new Lx]})}}});var Cr=J(()=>{Hx();$0()});function th(r,e){return(r<>>32-e)>>>0}function Ro(r,e,t,i,n){r[e]=r[e]+r[t]>>>0,r[n]=th(r[n]^r[e],16),r[i]=r[i]+r[n]>>>0,r[t]=th(r[t]^r[i],12),r[e]=r[e]+r[t]>>>0,r[n]=th(r[n]^r[e],8),r[i]=r[i]+r[n]>>>0,r[t]=th(r[t]^r[i],7)}function rh(r,e){return(r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24)>>>0}function jk(r,e,t,i){let n=new Uint32Array(16);n[0]=1634760805,n[1]=857760878,n[2]=2036477234,n[3]=1797285236,n[4]=r[0],n[5]=r[1],n[6]=r[2],n[7]=r[3],n[8]=r[4],n[9]=r[5],n[10]=r[6],n[11]=r[7],n[12]=e>>>0,n[13]=t[0],n[14]=t[1],n[15]=t[2];let s=n.slice();for(let o=0;o<10;o++)Ro(s,0,4,8,12),Ro(s,1,5,9,13),Ro(s,2,6,10,14),Ro(s,3,7,11,15),Ro(s,0,5,10,15),Ro(s,1,6,11,12),Ro(s,2,7,8,13),Ro(s,3,4,9,14);for(let o=0;o<16;o++){let a=s[o]+n[o]>>>0;i[o*4]=a&255,i[o*4+1]=a>>>8&255,i[o*4+2]=a>>>16&255,i[o*4+3]=a>>>24&255}}function $k(r){if(r.length!==32)throw new Error("ChaCha20 key must be 32 bytes");let e=new Uint32Array(8);for(let t=0;t<8;t++)e[t]=rh(r,t*4);return e}function Vk(r){if(r.length!==12)throw new Error("ChaCha20 nonce must be 12 bytes");return new Uint32Array([rh(r,0),rh(r,4),rh(r,8)])}function Yk(r,e,t,i=1){let n=$k(r),s=Vk(e),o=new Uint8Array(t.length),a=new Uint8Array(64);for(let c=0;c=0;t--)e=e<<8n|BigInt(r[t]);return e}function lK(r,e){let t=new Uint8Array(e),i=r;for(let n=0;n>=8n;return t}function Wk(r,e){if(e.length!==32)throw new Error("Poly1305 one-time key must be 32 bytes");let t=Kx(e.subarray(0,16))&cK,i=Kx(e.subarray(16,32)),n=0n;for(let s=0;s>=8n;return e}function dK(r){let e=r.reduce((n,s)=>n+s.length,0),t=new Uint8Array(e),i=0;for(let n of r)t.set(n,i),i+=n.length;return t}function Xk(r,e){return dK([e,zk(e),r,zk(r),Jk(e.length),Jk(r.length)])}function Zk(r,e){let t=new Uint8Array(64);return jk($k(r),0,Vk(e),t),t.subarray(0,32)}function eS(r,e,t,i=new Uint8Array(0)){let n=Yk(r,e,t,1),s=Wk(Xk(n,i),Zk(r,e));return{ciphertext:n,tag:s}}function tS(r,e,t,i,n=new Uint8Array(0)){if(i.length!==16)throw new Error("Invalid Poly1305 tag length");let s=Wk(Xk(t,n),Zk(r,e));if(!uK(s,i))throw new Error("ChaCha20-Poly1305 authentication failed (wrong key or tampered data)");return Yk(r,e,t,1)}function uK(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i{"use strict";aK=(1n<<130n)-5n,cK=0x0ffffffc0ffffffc0ffffffc0fffffffn});var et=oe((ih,iS)=>{(function(r,e){typeof ih=="object"?iS.exports=ih=e():typeof define=="function"&&define.amd?define([],e):r.CryptoJS=e()})(ih,function(){var r=r||(function(e,t){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof wt=="function")try{i=wt("crypto")}catch{}var n=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||(function(){function m(){}return function(w){var B;return m.prototype=w,B=new m,m.prototype=null,B}})(),o={},a=o.lib={},c=a.Base=(function(){return{extend:function(m){var w=s(this);return m&&w.mixIn(m),(!w.hasOwnProperty("init")||this.init===w.init)&&(w.init=function(){w.$super.init.apply(this,arguments)}),w.init.prototype=w,w.$super=this,w},create:function(){var m=this.extend();return m.init.apply(m,arguments),m},init:function(){},mixIn:function(m){for(var w in m)m.hasOwnProperty(w)&&(this[w]=m[w]);m.hasOwnProperty("toString")&&(this.toString=m.toString)},clone:function(){return this.init.prototype.extend(this)}}})(),l=a.WordArray=c.extend({init:function(m,w){m=this.words=m||[],w!=t?this.sigBytes=w:this.sigBytes=m.length*4},toString:function(m){return(m||u).stringify(this)},concat:function(m){var w=this.words,B=m.words,C=this.sigBytes,x=m.sigBytes;if(this.clamp(),C%4)for(var Q=0;Q>>2]>>>24-Q%4*8&255;w[C+Q>>>2]|=R<<24-(C+Q)%4*8}else for(var U=0;U>>2]=B[U>>>2];return this.sigBytes+=x,this},clamp:function(){var m=this.words,w=this.sigBytes;m[w>>>2]&=4294967295<<32-w%4*8,m.length=e.ceil(w/4)},clone:function(){var m=c.clone.call(this);return m.words=this.words.slice(0),m},random:function(m){for(var w=[],B=0;B>>2]>>>24-x%4*8&255;C.push((Q>>>4).toString(16)),C.push((Q&15).toString(16))}return C.join("")},parse:function(m){for(var w=m.length,B=[],C=0;C>>3]|=parseInt(m.substr(C,2),16)<<24-C%8*4;return new l.init(B,w/2)}},f=d.Latin1={stringify:function(m){for(var w=m.words,B=m.sigBytes,C=[],x=0;x>>2]>>>24-x%4*8&255;C.push(String.fromCharCode(Q))}return C.join("")},parse:function(m){for(var w=m.length,B=[],C=0;C>>2]|=(m.charCodeAt(C)&255)<<24-C%4*8;return new l.init(B,w)}},h=d.Utf8={stringify:function(m){try{return decodeURIComponent(escape(f.stringify(m)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(m){return f.parse(unescape(encodeURIComponent(m)))}},g=a.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(m){typeof m=="string"&&(m=h.parse(m)),this._data.concat(m),this._nDataBytes+=m.sigBytes},_process:function(m){var w,B=this._data,C=B.words,x=B.sigBytes,Q=this.blockSize,R=Q*4,U=x/R;m?U=e.ceil(U):U=e.max((U|0)-this._minBufferSize,0);var T=U*Q,D=e.min(T*4,x);if(T){for(var b=0;b{(function(r,e){typeof nh=="object"?nS.exports=nh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(nh,function(r){return(function(e){var t=r,i=t.lib,n=i.Base,s=i.WordArray,o=t.x64={},a=o.Word=n.extend({init:function(l,d){this.high=l,this.low=d}}),c=o.WordArray=n.extend({init:function(l,d){l=this.words=l||[],d!=e?this.sigBytes=d:this.sigBytes=l.length*8},toX32:function(){for(var l=this.words,d=l.length,u=[],f=0;f{(function(r,e){typeof sh=="object"?sS.exports=sh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(sh,function(r){return(function(){if(typeof ArrayBuffer=="function"){var e=r,t=e.lib,i=t.WordArray,n=i.init,s=i.init=function(o){if(o instanceof ArrayBuffer&&(o=new Uint8Array(o)),(o instanceof Int8Array||typeof Uint8ClampedArray<"u"&&o instanceof Uint8ClampedArray||o instanceof Int16Array||o instanceof Uint16Array||o instanceof Int32Array||o instanceof Uint32Array||o instanceof Float32Array||o instanceof Float64Array)&&(o=new Uint8Array(o.buffer,o.byteOffset,o.byteLength)),o instanceof Uint8Array){for(var a=o.byteLength,c=[],l=0;l>>2]|=o[l]<<24-l%4*8;n.call(this,c,a)}else n.apply(this,arguments)};s.prototype=i}})(),r.lib.WordArray})});var cS=oe((oh,aS)=>{(function(r,e){typeof oh=="object"?aS.exports=oh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(oh,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.enc,s=n.Utf16=n.Utf16BE={stringify:function(a){for(var c=a.words,l=a.sigBytes,d=[],u=0;u>>2]>>>16-u%4*8&65535;d.push(String.fromCharCode(f))}return d.join("")},parse:function(a){for(var c=a.length,l=[],d=0;d>>1]|=a.charCodeAt(d)<<16-d%2*16;return i.create(l,c*2)}};n.Utf16LE={stringify:function(a){for(var c=a.words,l=a.sigBytes,d=[],u=0;u>>2]>>>16-u%4*8&65535);d.push(String.fromCharCode(f))}return d.join("")},parse:function(a){for(var c=a.length,l=[],d=0;d>>1]|=o(a.charCodeAt(d)<<16-d%2*16);return i.create(l,c*2)}};function o(a){return a<<8&4278255360|a>>>8&16711935}})(),r.enc.Utf16})});var No=oe((ah,lS)=>{(function(r,e){typeof ah=="object"?lS.exports=ah=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(ah,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.enc,s=n.Base64={stringify:function(a){var c=a.words,l=a.sigBytes,d=this._map;a.clamp();for(var u=[],f=0;f>>2]>>>24-f%4*8&255,g=c[f+1>>>2]>>>24-(f+1)%4*8&255,p=c[f+2>>>2]>>>24-(f+2)%4*8&255,I=h<<16|g<<8|p,m=0;m<4&&f+m*.75>>6*(3-m)&63));var w=d.charAt(64);if(w)for(;u.length%4;)u.push(w);return u.join("")},parse:function(a){var c=a.length,l=this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var u=0;u>>6-f%4*2,p=h|g;d[u>>>2]|=p<<24-u%4*8,u++}return i.create(d,u)}})(),r.enc.Base64})});var uS=oe((ch,dS)=>{(function(r,e){typeof ch=="object"?dS.exports=ch=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(ch,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.enc,s=n.Base64url={stringify:function(a,c){c===void 0&&(c=!0);var l=a.words,d=a.sigBytes,u=c?this._safe_map:this._map;a.clamp();for(var f=[],h=0;h>>2]>>>24-h%4*8&255,p=l[h+1>>>2]>>>24-(h+1)%4*8&255,I=l[h+2>>>2]>>>24-(h+2)%4*8&255,m=g<<16|p<<8|I,w=0;w<4&&h+w*.75>>6*(3-w)&63));var B=u.charAt(64);if(B)for(;f.length%4;)f.push(B);return f.join("")},parse:function(a,c){c===void 0&&(c=!0);var l=a.length,d=c?this._safe_map:this._map,u=this._reverseMap;if(!u){u=this._reverseMap=[];for(var f=0;f>>6-f%4*2,p=h|g;d[u>>>2]|=p<<24-u%4*8,u++}return i.create(d,u)}})(),r.enc.Base64url})});var qo=oe((lh,fS)=>{(function(r,e){typeof lh=="object"?fS.exports=lh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(lh,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.algo,a=[];(function(){for(var h=0;h<64;h++)a[h]=e.abs(e.sin(h+1))*4294967296|0})();var c=o.MD5=s.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(h,g){for(var p=0;p<16;p++){var I=g+p,m=h[I];h[I]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360}var w=this._hash.words,B=h[g+0],C=h[g+1],x=h[g+2],Q=h[g+3],R=h[g+4],U=h[g+5],T=h[g+6],D=h[g+7],b=h[g+8],_=h[g+9],v=h[g+10],E=h[g+11],P=h[g+12],N=h[g+13],j=h[g+14],z=h[g+15],L=w[0],G=w[1],K=w[2],$=w[3];L=l(L,G,K,$,B,7,a[0]),$=l($,L,G,K,C,12,a[1]),K=l(K,$,L,G,x,17,a[2]),G=l(G,K,$,L,Q,22,a[3]),L=l(L,G,K,$,R,7,a[4]),$=l($,L,G,K,U,12,a[5]),K=l(K,$,L,G,T,17,a[6]),G=l(G,K,$,L,D,22,a[7]),L=l(L,G,K,$,b,7,a[8]),$=l($,L,G,K,_,12,a[9]),K=l(K,$,L,G,v,17,a[10]),G=l(G,K,$,L,E,22,a[11]),L=l(L,G,K,$,P,7,a[12]),$=l($,L,G,K,N,12,a[13]),K=l(K,$,L,G,j,17,a[14]),G=l(G,K,$,L,z,22,a[15]),L=d(L,G,K,$,C,5,a[16]),$=d($,L,G,K,T,9,a[17]),K=d(K,$,L,G,E,14,a[18]),G=d(G,K,$,L,B,20,a[19]),L=d(L,G,K,$,U,5,a[20]),$=d($,L,G,K,v,9,a[21]),K=d(K,$,L,G,z,14,a[22]),G=d(G,K,$,L,R,20,a[23]),L=d(L,G,K,$,_,5,a[24]),$=d($,L,G,K,j,9,a[25]),K=d(K,$,L,G,Q,14,a[26]),G=d(G,K,$,L,b,20,a[27]),L=d(L,G,K,$,N,5,a[28]),$=d($,L,G,K,x,9,a[29]),K=d(K,$,L,G,D,14,a[30]),G=d(G,K,$,L,P,20,a[31]),L=u(L,G,K,$,U,4,a[32]),$=u($,L,G,K,b,11,a[33]),K=u(K,$,L,G,E,16,a[34]),G=u(G,K,$,L,j,23,a[35]),L=u(L,G,K,$,C,4,a[36]),$=u($,L,G,K,R,11,a[37]),K=u(K,$,L,G,D,16,a[38]),G=u(G,K,$,L,v,23,a[39]),L=u(L,G,K,$,N,4,a[40]),$=u($,L,G,K,B,11,a[41]),K=u(K,$,L,G,Q,16,a[42]),G=u(G,K,$,L,T,23,a[43]),L=u(L,G,K,$,_,4,a[44]),$=u($,L,G,K,P,11,a[45]),K=u(K,$,L,G,z,16,a[46]),G=u(G,K,$,L,x,23,a[47]),L=f(L,G,K,$,B,6,a[48]),$=f($,L,G,K,D,10,a[49]),K=f(K,$,L,G,j,15,a[50]),G=f(G,K,$,L,U,21,a[51]),L=f(L,G,K,$,P,6,a[52]),$=f($,L,G,K,Q,10,a[53]),K=f(K,$,L,G,v,15,a[54]),G=f(G,K,$,L,C,21,a[55]),L=f(L,G,K,$,b,6,a[56]),$=f($,L,G,K,z,10,a[57]),K=f(K,$,L,G,T,15,a[58]),G=f(G,K,$,L,N,21,a[59]),L=f(L,G,K,$,R,6,a[60]),$=f($,L,G,K,E,10,a[61]),K=f(K,$,L,G,x,15,a[62]),G=f(G,K,$,L,_,21,a[63]),w[0]=w[0]+L|0,w[1]=w[1]+G|0,w[2]=w[2]+K|0,w[3]=w[3]+$|0},_doFinalize:function(){var h=this._data,g=h.words,p=this._nDataBytes*8,I=h.sigBytes*8;g[I>>>5]|=128<<24-I%32;var m=e.floor(p/4294967296),w=p;g[(I+64>>>9<<4)+15]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,g[(I+64>>>9<<4)+14]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360,h.sigBytes=(g.length+1)*4,this._process();for(var B=this._hash,C=B.words,x=0;x<4;x++){var Q=C[x];C[x]=(Q<<8|Q>>>24)&16711935|(Q<<24|Q>>>8)&4278255360}return B},clone:function(){var h=s.clone.call(this);return h._hash=this._hash.clone(),h}});function l(h,g,p,I,m,w,B){var C=h+(g&p|~g&I)+m+B;return(C<>>32-w)+g}function d(h,g,p,I,m,w,B){var C=h+(g&I|p&~I)+m+B;return(C<>>32-w)+g}function u(h,g,p,I,m,w,B){var C=h+(g^p^I)+m+B;return(C<>>32-w)+g}function f(h,g,p,I,m,w,B){var C=h+(p^(g|~I))+m+B;return(C<>>32-w)+g}t.MD5=s._createHelper(c),t.HmacMD5=s._createHmacHelper(c)})(Math),r.MD5})});var Gx=oe((dh,AS)=>{(function(r,e){typeof dh=="object"?AS.exports=dh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(dh,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=t.Hasher,s=e.algo,o=[],a=s.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(c,l){for(var d=this._hash.words,u=d[0],f=d[1],h=d[2],g=d[3],p=d[4],I=0;I<80;I++){if(I<16)o[I]=c[l+I]|0;else{var m=o[I-3]^o[I-8]^o[I-14]^o[I-16];o[I]=m<<1|m>>>31}var w=(u<<5|u>>>27)+p+o[I];I<20?w+=(f&h|~f&g)+1518500249:I<40?w+=(f^h^g)+1859775393:I<60?w+=(f&h|f&g|h&g)-1894007588:w+=(f^h^g)-899497514,p=g,g=h,h=f<<30|f>>>2,f=u,u=w}d[0]=d[0]+u|0,d[1]=d[1]+f|0,d[2]=d[2]+h|0,d[3]=d[3]+g|0,d[4]=d[4]+p|0},_doFinalize:function(){var c=this._data,l=c.words,d=this._nDataBytes*8,u=c.sigBytes*8;return l[u>>>5]|=128<<24-u%32,l[(u+64>>>9<<4)+14]=Math.floor(d/4294967296),l[(u+64>>>9<<4)+15]=d,c.sigBytes=l.length*4,this._process(),this._hash},clone:function(){var c=n.clone.call(this);return c._hash=this._hash.clone(),c}});e.SHA1=n._createHelper(a),e.HmacSHA1=n._createHmacHelper(a)})(),r.SHA1})});var fh=oe((uh,hS)=>{(function(r,e){typeof uh=="object"?hS.exports=uh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(uh,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.algo,a=[],c=[];(function(){function u(p){for(var I=e.sqrt(p),m=2;m<=I;m++)if(!(p%m))return!1;return!0}function f(p){return(p-(p|0))*4294967296|0}for(var h=2,g=0;g<64;)u(h)&&(g<8&&(a[g]=f(e.pow(h,1/2))),c[g]=f(e.pow(h,1/3)),g++),h++})();var l=[],d=o.SHA256=s.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(u,f){for(var h=this._hash.words,g=h[0],p=h[1],I=h[2],m=h[3],w=h[4],B=h[5],C=h[6],x=h[7],Q=0;Q<64;Q++){if(Q<16)l[Q]=u[f+Q]|0;else{var R=l[Q-15],U=(R<<25|R>>>7)^(R<<14|R>>>18)^R>>>3,T=l[Q-2],D=(T<<15|T>>>17)^(T<<13|T>>>19)^T>>>10;l[Q]=U+l[Q-7]+D+l[Q-16]}var b=w&B^~w&C,_=g&p^g&I^p&I,v=(g<<30|g>>>2)^(g<<19|g>>>13)^(g<<10|g>>>22),E=(w<<26|w>>>6)^(w<<21|w>>>11)^(w<<7|w>>>25),P=x+E+b+c[Q]+l[Q],N=v+_;x=C,C=B,B=w,w=m+P|0,m=I,I=p,p=g,g=P+N|0}h[0]=h[0]+g|0,h[1]=h[1]+p|0,h[2]=h[2]+I|0,h[3]=h[3]+m|0,h[4]=h[4]+w|0,h[5]=h[5]+B|0,h[6]=h[6]+C|0,h[7]=h[7]+x|0},_doFinalize:function(){var u=this._data,f=u.words,h=this._nDataBytes*8,g=u.sigBytes*8;return f[g>>>5]|=128<<24-g%32,f[(g+64>>>9<<4)+14]=e.floor(h/4294967296),f[(g+64>>>9<<4)+15]=h,u.sigBytes=f.length*4,this._process(),this._hash},clone:function(){var u=s.clone.call(this);return u._hash=this._hash.clone(),u}});t.SHA256=s._createHelper(d),t.HmacSHA256=s._createHmacHelper(d)})(Math),r.SHA256})});var pS=oe((Ah,gS)=>{(function(r,e,t){typeof Ah=="object"?gS.exports=Ah=e(et(),fh()):typeof define=="function"&&define.amd?define(["./core","./sha256"],e):e(r.CryptoJS)})(Ah,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.algo,s=n.SHA256,o=n.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=s._doFinalize.call(this);return a.sigBytes-=4,a}});e.SHA224=s._createHelper(o),e.HmacSHA224=s._createHmacHelper(o)})(),r.SHA224})});var zx=oe((hh,mS)=>{(function(r,e,t){typeof hh=="object"?mS.exports=hh=e(et(),Uu()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(r.CryptoJS)})(hh,function(r){return(function(){var e=r,t=e.lib,i=t.Hasher,n=e.x64,s=n.Word,o=n.WordArray,a=e.algo;function c(){return s.create.apply(s,arguments)}var l=[c(1116352408,3609767458),c(1899447441,602891725),c(3049323471,3964484399),c(3921009573,2173295548),c(961987163,4081628472),c(1508970993,3053834265),c(2453635748,2937671579),c(2870763221,3664609560),c(3624381080,2734883394),c(310598401,1164996542),c(607225278,1323610764),c(1426881987,3590304994),c(1925078388,4068182383),c(2162078206,991336113),c(2614888103,633803317),c(3248222580,3479774868),c(3835390401,2666613458),c(4022224774,944711139),c(264347078,2341262773),c(604807628,2007800933),c(770255983,1495990901),c(1249150122,1856431235),c(1555081692,3175218132),c(1996064986,2198950837),c(2554220882,3999719339),c(2821834349,766784016),c(2952996808,2566594879),c(3210313671,3203337956),c(3336571891,1034457026),c(3584528711,2466948901),c(113926993,3758326383),c(338241895,168717936),c(666307205,1188179964),c(773529912,1546045734),c(1294757372,1522805485),c(1396182291,2643833823),c(1695183700,2343527390),c(1986661051,1014477480),c(2177026350,1206759142),c(2456956037,344077627),c(2730485921,1290863460),c(2820302411,3158454273),c(3259730800,3505952657),c(3345764771,106217008),c(3516065817,3606008344),c(3600352804,1432725776),c(4094571909,1467031594),c(275423344,851169720),c(430227734,3100823752),c(506948616,1363258195),c(659060556,3750685593),c(883997877,3785050280),c(958139571,3318307427),c(1322822218,3812723403),c(1537002063,2003034995),c(1747873779,3602036899),c(1955562222,1575990012),c(2024104815,1125592928),c(2227730452,2716904306),c(2361852424,442776044),c(2428436474,593698344),c(2756734187,3733110249),c(3204031479,2999351573),c(3329325298,3815920427),c(3391569614,3928383900),c(3515267271,566280711),c(3940187606,3454069534),c(4118630271,4000239992),c(116418474,1914138554),c(174292421,2731055270),c(289380356,3203993006),c(460393269,320620315),c(685471733,587496836),c(852142971,1086792851),c(1017036298,365543100),c(1126000580,2618297676),c(1288033470,3409855158),c(1501505948,4234509866),c(1607167915,987167468),c(1816402316,1246189591)],d=[];(function(){for(var f=0;f<80;f++)d[f]=c()})();var u=a.SHA512=i.extend({_doReset:function(){this._hash=new o.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(f,h){for(var g=this._hash.words,p=g[0],I=g[1],m=g[2],w=g[3],B=g[4],C=g[5],x=g[6],Q=g[7],R=p.high,U=p.low,T=I.high,D=I.low,b=m.high,_=m.low,v=w.high,E=w.low,P=B.high,N=B.low,j=C.high,z=C.low,L=x.high,G=x.low,K=Q.high,$=Q.low,te=R,re=U,ee=T,Z=D,me=b,le=_,Ae=v,ve=E,qe=P,_e=N,se=j,rt=z,ce=L,dr=G,Mr=K,at=$,we=0;we<80;we++){var Ee,Ji,vo=d[we];if(we<16)Ji=vo.high=f[h+we*2]|0,Ee=vo.low=f[h+we*2+1]|0;else{var Se=d[we-15],Dt=Se.high,vs=Se.low,Ce=(Dt>>>1|vs<<31)^(Dt>>>8|vs<<24)^Dt>>>7,ji=(vs>>>1|Dt<<31)^(vs>>>8|Dt<<24)^(vs>>>7|Dt<<25),si=d[we-2],wr=si.high,tr=si.low,ur=(wr>>>19|tr<<13)^(wr<<3|tr>>>29)^wr>>>6,Qe=(tr>>>19|wr<<13)^(tr<<3|wr>>>29)^(tr>>>6|wr<<26),be=d[we-7],xl=be.high,hi=be.low,Lr=d[we-16],Ln=Lr.high,yn=Lr.low;Ee=ji+hi,Ji=Ce+xl+(Ee>>>0>>0?1:0),Ee=Ee+Qe,Ji=Ji+ur+(Ee>>>0>>0?1:0),Ee=Ee+yn,Ji=Ji+Ln+(Ee>>>0>>0?1:0),vo.high=Ji,vo.low=Ee}var Le=qe&se^~qe&ce,ic=_e&rt^~_e&dr,$i=te&ee^te&me^ee&me,ko=re&Z^re&le^Z&le,Ri=(te>>>28|re<<4)^(te<<30|re>>>2)^(te<<25|re>>>7),A=(re>>>28|te<<4)^(re<<30|te>>>2)^(re<<25|te>>>7),k=(qe>>>14|_e<<18)^(qe>>>18|_e<<14)^(qe<<23|_e>>>9),O=(_e>>>14|qe<<18)^(_e>>>18|qe<<14)^(_e<<23|qe>>>9),V=l[we],H=V.high,W=V.low,ue=at+O,Re=Mr+k+(ue>>>0>>0?1:0),ue=ue+ic,Re=Re+Le+(ue>>>0>>0?1:0),ue=ue+W,Re=Re+H+(ue>>>0>>0?1:0),ue=ue+Ee,Re=Re+Ji+(ue>>>0>>0?1:0),Ve=A+ko,Ie=Ri+$i+(Ve>>>0>>0?1:0);Mr=ce,at=dr,ce=se,dr=rt,se=qe,rt=_e,_e=ve+ue|0,qe=Ae+Re+(_e>>>0>>0?1:0)|0,Ae=me,ve=le,me=ee,le=Z,ee=te,Z=re,re=ue+Ve|0,te=Re+Ie+(re>>>0>>0?1:0)|0}U=p.low=U+re,p.high=R+te+(U>>>0>>0?1:0),D=I.low=D+Z,I.high=T+ee+(D>>>0>>0?1:0),_=m.low=_+le,m.high=b+me+(_>>>0>>0?1:0),E=w.low=E+ve,w.high=v+Ae+(E>>>0>>0?1:0),N=B.low=N+_e,B.high=P+qe+(N>>>0<_e>>>0?1:0),z=C.low=z+rt,C.high=j+se+(z>>>0>>0?1:0),G=x.low=G+dr,x.high=L+ce+(G>>>0>>0?1:0),$=Q.low=$+at,Q.high=K+Mr+($>>>0>>0?1:0)},_doFinalize:function(){var f=this._data,h=f.words,g=this._nDataBytes*8,p=f.sigBytes*8;h[p>>>5]|=128<<24-p%32,h[(p+128>>>10<<5)+30]=Math.floor(g/4294967296),h[(p+128>>>10<<5)+31]=g,f.sigBytes=h.length*4,this._process();var I=this._hash.toX32();return I},clone:function(){var f=i.clone.call(this);return f._hash=this._hash.clone(),f},blockSize:1024/32});e.SHA512=i._createHelper(u),e.HmacSHA512=i._createHmacHelper(u)})(),r.SHA512})});var IS=oe((gh,yS)=>{(function(r,e,t){typeof gh=="object"?yS.exports=gh=e(et(),Uu(),zx()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./sha512"],e):e(r.CryptoJS)})(gh,function(r){return(function(){var e=r,t=e.x64,i=t.Word,n=t.WordArray,s=e.algo,o=s.SHA512,a=s.SHA384=o.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var c=o._doFinalize.call(this);return c.sigBytes-=16,c}});e.SHA384=o._createHelper(a),e.HmacSHA384=o._createHmacHelper(a)})(),r.SHA384})});var xS=oe((ph,wS)=>{(function(r,e,t){typeof ph=="object"?wS.exports=ph=e(et(),Uu()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(r.CryptoJS)})(ph,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.x64,a=o.Word,c=t.algo,l=[],d=[],u=[];(function(){for(var g=1,p=0,I=0;I<24;I++){l[g+5*p]=(I+1)*(I+2)/2%64;var m=p%5,w=(2*g+3*p)%5;g=m,p=w}for(var g=0;g<5;g++)for(var p=0;p<5;p++)d[g+5*p]=p+(2*g+3*p)%5*5;for(var B=1,C=0;C<24;C++){for(var x=0,Q=0,R=0;R<7;R++){if(B&1){var U=(1<>>24)&16711935|(B<<24|B>>>8)&4278255360,C=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360;var x=I[w];x.high^=C,x.low^=B}for(var Q=0;Q<24;Q++){for(var R=0;R<5;R++){for(var U=0,T=0,D=0;D<5;D++){var x=I[R+5*D];U^=x.high,T^=x.low}var b=f[R];b.high=U,b.low=T}for(var R=0;R<5;R++)for(var _=f[(R+4)%5],v=f[(R+1)%5],E=v.high,P=v.low,U=_.high^(E<<1|P>>>31),T=_.low^(P<<1|E>>>31),D=0;D<5;D++){var x=I[R+5*D];x.high^=U,x.low^=T}for(var N=1;N<25;N++){var U,T,x=I[N],j=x.high,z=x.low,L=l[N];L<32?(U=j<>>32-L,T=z<>>32-L):(U=z<>>64-L,T=j<>>64-L);var G=f[d[N]];G.high=U,G.low=T}var K=f[0],$=I[0];K.high=$.high,K.low=$.low;for(var R=0;R<5;R++)for(var D=0;D<5;D++){var N=R+5*D,x=I[N],te=f[N],re=f[(R+1)%5+5*D],ee=f[(R+2)%5+5*D];x.high=te.high^~re.high&ee.high,x.low=te.low^~re.low&ee.low}var x=I[0],Z=u[Q];x.high^=Z.high,x.low^=Z.low}},_doFinalize:function(){var g=this._data,p=g.words,I=this._nDataBytes*8,m=g.sigBytes*8,w=this.blockSize*32;p[m>>>5]|=1<<24-m%32,p[(e.ceil((m+1)/w)*w>>>5)-1]|=128,g.sigBytes=p.length*4,this._process();for(var B=this._state,C=this.cfg.outputLength/8,x=C/8,Q=[],R=0;R>>24)&16711935|(T<<24|T>>>8)&4278255360,D=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,Q.push(D),Q.push(T)}return new n.init(Q,C)},clone:function(){for(var g=s.clone.call(this),p=g._state=this._state.slice(0),I=0;I<25;I++)p[I]=p[I].clone();return g}});t.SHA3=s._createHelper(h),t.HmacSHA3=s._createHmacHelper(h)})(Math),r.SHA3})});var ES=oe((mh,CS)=>{(function(r,e){typeof mh=="object"?CS.exports=mh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(mh,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.algo,a=n.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=n.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=n.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=n.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),u=n.create([0,1518500249,1859775393,2400959708,2840853838]),f=n.create([1352829926,1548603684,1836072691,2053994217,0]),h=o.RIPEMD160=s.extend({_doReset:function(){this._hash=n.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(C,x){for(var Q=0;Q<16;Q++){var R=x+Q,U=C[R];C[R]=(U<<8|U>>>24)&16711935|(U<<24|U>>>8)&4278255360}var T=this._hash.words,D=u.words,b=f.words,_=a.words,v=c.words,E=l.words,P=d.words,N,j,z,L,G,K,$,te,re,ee;K=N=T[0],$=j=T[1],te=z=T[2],re=L=T[3],ee=G=T[4];for(var Z,Q=0;Q<80;Q+=1)Z=N+C[x+_[Q]]|0,Q<16?Z+=g(j,z,L)+D[0]:Q<32?Z+=p(j,z,L)+D[1]:Q<48?Z+=I(j,z,L)+D[2]:Q<64?Z+=m(j,z,L)+D[3]:Z+=w(j,z,L)+D[4],Z=Z|0,Z=B(Z,E[Q]),Z=Z+G|0,N=G,G=L,L=B(z,10),z=j,j=Z,Z=K+C[x+v[Q]]|0,Q<16?Z+=w($,te,re)+b[0]:Q<32?Z+=m($,te,re)+b[1]:Q<48?Z+=I($,te,re)+b[2]:Q<64?Z+=p($,te,re)+b[3]:Z+=g($,te,re)+b[4],Z=Z|0,Z=B(Z,P[Q]),Z=Z+ee|0,K=ee,ee=re,re=B(te,10),te=$,$=Z;Z=T[1]+z+re|0,T[1]=T[2]+L+ee|0,T[2]=T[3]+G+K|0,T[3]=T[4]+N+$|0,T[4]=T[0]+j+te|0,T[0]=Z},_doFinalize:function(){var C=this._data,x=C.words,Q=this._nDataBytes*8,R=C.sigBytes*8;x[R>>>5]|=128<<24-R%32,x[(R+64>>>9<<4)+14]=(Q<<8|Q>>>24)&16711935|(Q<<24|Q>>>8)&4278255360,C.sigBytes=(x.length+1)*4,this._process();for(var U=this._hash,T=U.words,D=0;D<5;D++){var b=T[D];T[D]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360}return U},clone:function(){var C=s.clone.call(this);return C._hash=this._hash.clone(),C}});function g(C,x,Q){return C^x^Q}function p(C,x,Q){return C&x|~C&Q}function I(C,x,Q){return(C|~x)^Q}function m(C,x,Q){return C&Q|x&~Q}function w(C,x,Q){return C^(x|~Q)}function B(C,x){return C<>>32-x}t.RIPEMD160=s._createHelper(h),t.HmacRIPEMD160=s._createHmacHelper(h)})(Math),r.RIPEMD160})});var Ih=oe((yh,BS)=>{(function(r,e){typeof yh=="object"?BS.exports=yh=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(yh,function(r){(function(){var e=r,t=e.lib,i=t.Base,n=e.enc,s=n.Utf8,o=e.algo,a=o.HMAC=i.extend({init:function(c,l){c=this._hasher=new c.init,typeof l=="string"&&(l=s.parse(l));var d=c.blockSize,u=d*4;l.sigBytes>u&&(l=c.finalize(l)),l.clamp();for(var f=this._oKey=l.clone(),h=this._iKey=l.clone(),g=f.words,p=h.words,I=0;I{(function(r,e,t){typeof wh=="object"?bS.exports=wh=e(et(),fh(),Ih()):typeof define=="function"&&define.amd?define(["./core","./sha256","./hmac"],e):e(r.CryptoJS)})(wh,function(r){return(function(){var e=r,t=e.lib,i=t.Base,n=t.WordArray,s=e.algo,o=s.SHA256,a=s.HMAC,c=s.PBKDF2=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:25e4}),init:function(l){this.cfg=this.cfg.extend(l)},compute:function(l,d){for(var u=this.cfg,f=a.create(u.hasher,l),h=n.create(),g=n.create([1]),p=h.words,I=g.words,m=u.keySize,w=u.iterations;p.length{(function(r,e,t){typeof xh=="object"?kS.exports=xh=e(et(),Gx(),Ih()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(r.CryptoJS)})(xh,function(r){return(function(){var e=r,t=e.lib,i=t.Base,n=t.WordArray,s=e.algo,o=s.MD5,a=s.EvpKDF=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,l){for(var d,u=this.cfg,f=u.hasher.create(),h=n.create(),g=h.words,p=u.keySize,I=u.iterations;g.length{(function(r,e,t){typeof Ch=="object"?SS.exports=Ch=e(et(),_s()):typeof define=="function"&&define.amd?define(["./core","./evpkdf"],e):e(r.CryptoJS)})(Ch,function(r){r.lib.Cipher||(function(e){var t=r,i=t.lib,n=i.Base,s=i.WordArray,o=i.BufferedBlockAlgorithm,a=t.enc,c=a.Utf8,l=a.Base64,d=t.algo,u=d.EvpKDF,f=i.Cipher=o.extend({cfg:n.extend(),createEncryptor:function(b,_){return this.create(this._ENC_XFORM_MODE,b,_)},createDecryptor:function(b,_){return this.create(this._DEC_XFORM_MODE,b,_)},init:function(b,_,v){this.cfg=this.cfg.extend(v),this._xformMode=b,this._key=_,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(b){return this._append(b),this._process()},finalize:function(b){b&&this._append(b);var _=this._doFinalize();return _},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:(function(){function b(_){return typeof _=="string"?D:R}return function(_){return{encrypt:function(v,E,P){return b(E).encrypt(_,v,E,P)},decrypt:function(v,E,P){return b(E).decrypt(_,v,E,P)}}}})()}),h=i.StreamCipher=f.extend({_doFinalize:function(){var b=this._process(!0);return b},blockSize:1}),g=t.mode={},p=i.BlockCipherMode=n.extend({createEncryptor:function(b,_){return this.Encryptor.create(b,_)},createDecryptor:function(b,_){return this.Decryptor.create(b,_)},init:function(b,_){this._cipher=b,this._iv=_}}),I=g.CBC=(function(){var b=p.extend();b.Encryptor=b.extend({processBlock:function(v,E){var P=this._cipher,N=P.blockSize;_.call(this,v,E,N),P.encryptBlock(v,E),this._prevBlock=v.slice(E,E+N)}}),b.Decryptor=b.extend({processBlock:function(v,E){var P=this._cipher,N=P.blockSize,j=v.slice(E,E+N);P.decryptBlock(v,E),_.call(this,v,E,N),this._prevBlock=j}});function _(v,E,P){var N,j=this._iv;j?(N=j,this._iv=e):N=this._prevBlock;for(var z=0;z>>2]&255;b.sigBytes-=_}},B=i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:I,padding:w}),reset:function(){var b;f.reset.call(this);var _=this.cfg,v=_.iv,E=_.mode;this._xformMode==this._ENC_XFORM_MODE?b=E.createEncryptor:(b=E.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==b?this._mode.init(this,v&&v.words):(this._mode=b.call(E,this,v&&v.words),this._mode.__creator=b)},_doProcessBlock:function(b,_){this._mode.processBlock(b,_)},_doFinalize:function(){var b,_=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(_.pad(this._data,this.blockSize),b=this._process(!0)):(b=this._process(!0),_.unpad(b)),b},blockSize:128/32}),C=i.CipherParams=n.extend({init:function(b){this.mixIn(b)},toString:function(b){return(b||this.formatter).stringify(this)}}),x=t.format={},Q=x.OpenSSL={stringify:function(b){var _,v=b.ciphertext,E=b.salt;return E?_=s.create([1398893684,1701076831]).concat(E).concat(v):_=v,_.toString(l)},parse:function(b){var _,v=l.parse(b),E=v.words;return E[0]==1398893684&&E[1]==1701076831&&(_=s.create(E.slice(2,4)),E.splice(0,4),v.sigBytes-=16),C.create({ciphertext:v,salt:_})}},R=i.SerializableCipher=n.extend({cfg:n.extend({format:Q}),encrypt:function(b,_,v,E){E=this.cfg.extend(E);var P=b.createEncryptor(v,E),N=P.finalize(_),j=P.cfg;return C.create({ciphertext:N,key:v,iv:j.iv,algorithm:b,mode:j.mode,padding:j.padding,blockSize:b.blockSize,formatter:E.format})},decrypt:function(b,_,v,E){E=this.cfg.extend(E),_=this._parse(_,E.format);var P=b.createDecryptor(v,E).finalize(_.ciphertext);return P},_parse:function(b,_){return typeof b=="string"?_.parse(b,this):b}}),U=t.kdf={},T=U.OpenSSL={execute:function(b,_,v,E,P){if(E||(E=s.random(64/8)),P)var N=u.create({keySize:_+v,hasher:P}).compute(b,E);else var N=u.create({keySize:_+v}).compute(b,E);var j=s.create(N.words.slice(_),v*4);return N.sigBytes=_*4,C.create({key:N,iv:j,salt:E})}},D=i.PasswordBasedCipher=R.extend({cfg:R.cfg.extend({kdf:T}),encrypt:function(b,_,v,E){E=this.cfg.extend(E);var P=E.kdf.execute(v,b.keySize,b.ivSize,E.salt,E.hasher);E.iv=P.iv;var N=R.encrypt.call(this,b,_,P.key,E);return N.mixIn(P),N},decrypt:function(b,_,v,E){E=this.cfg.extend(E),_=this._parse(_,E.format);var P=E.kdf.execute(v,b.keySize,b.ivSize,_.salt,E.hasher);E.iv=P.iv;var N=R.decrypt.call(this,b,_,P.key,E);return N}})})()})});var QS=oe((Eh,DS)=>{(function(r,e,t){typeof Eh=="object"?DS.exports=Eh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Eh,function(r){return r.mode.CFB=(function(){var e=r.lib.BlockCipherMode.extend();e.Encryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize;t.call(this,i,n,o,s),this._prevBlock=i.slice(n,n+o)}}),e.Decryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize,a=i.slice(n,n+o);t.call(this,i,n,o,s),this._prevBlock=a}});function t(i,n,s,o){var a,c=this._iv;c?(a=c.slice(0),this._iv=void 0):a=this._prevBlock,o.encryptBlock(a,0);for(var l=0;l{(function(r,e,t){typeof Bh=="object"?_S.exports=Bh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Bh,function(r){return r.mode.CTR=(function(){var e=r.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize,a=this._iv,c=this._counter;a&&(c=this._counter=a.slice(0),this._iv=void 0);var l=c.slice(0);s.encryptBlock(l,0),c[o-1]=c[o-1]+1|0;for(var d=0;d{(function(r,e,t){typeof bh=="object"?PS.exports=bh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(bh,function(r){return r.mode.CTRGladman=(function(){var e=r.lib.BlockCipherMode.extend();function t(s){if((s>>24&255)===255){var o=s>>16&255,a=s>>8&255,c=s&255;o===255?(o=0,a===255?(a=0,c===255?c=0:++c):++a):++o,s=0,s+=o<<16,s+=a<<8,s+=c}else s+=1<<24;return s}function i(s){return(s[0]=t(s[0]))===0&&(s[1]=t(s[1])),s}var n=e.Encryptor=e.extend({processBlock:function(s,o){var a=this._cipher,c=a.blockSize,l=this._iv,d=this._counter;l&&(d=this._counter=l.slice(0),this._iv=void 0),i(d);var u=d.slice(0);a.encryptBlock(u,0);for(var f=0;f{(function(r,e,t){typeof vh=="object"?US.exports=vh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(vh,function(r){return r.mode.OFB=(function(){var e=r.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize,a=this._iv,c=this._keystream;a&&(c=this._keystream=a.slice(0),this._iv=void 0),s.encryptBlock(c,0);for(var l=0;l{(function(r,e,t){typeof kh=="object"?NS.exports=kh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(kh,function(r){return r.mode.ECB=(function(){var e=r.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,i){this._cipher.encryptBlock(t,i)}}),e.Decryptor=e.extend({processBlock:function(t,i){this._cipher.decryptBlock(t,i)}}),e})(),r.mode.ECB})});var MS=oe((Sh,OS)=>{(function(r,e,t){typeof Sh=="object"?OS.exports=Sh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Sh,function(r){return r.pad.AnsiX923={pad:function(e,t){var i=e.sigBytes,n=t*4,s=n-i%n,o=i+s-1;e.clamp(),e.words[o>>>2]|=s<<24-o%4*8,e.sigBytes+=s},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},r.pad.Ansix923})});var HS=oe((Dh,LS)=>{(function(r,e,t){typeof Dh=="object"?LS.exports=Dh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Dh,function(r){return r.pad.Iso10126={pad:function(e,t){var i=t*4,n=i-e.sigBytes%i;e.concat(r.lib.WordArray.random(n-1)).concat(r.lib.WordArray.create([n<<24],1))},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},r.pad.Iso10126})});var GS=oe((Qh,KS)=>{(function(r,e,t){typeof Qh=="object"?KS.exports=Qh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Qh,function(r){return r.pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971})});var JS=oe((_h,zS)=>{(function(r,e,t){typeof _h=="object"?zS.exports=_h=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(_h,function(r){return r.pad.ZeroPadding={pad:function(e,t){var i=t*4;e.clamp(),e.sigBytes+=i-(e.sigBytes%i||i)},unpad:function(e){for(var t=e.words,i=e.sigBytes-1,i=e.sigBytes-1;i>=0;i--)if(t[i>>>2]>>>24-i%4*8&255){e.sigBytes=i+1;break}}},r.pad.ZeroPadding})});var $S=oe((Fh,jS)=>{(function(r,e,t){typeof Fh=="object"?jS.exports=Fh=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Fh,function(r){return r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding})});var YS=oe((Ph,VS)=>{(function(r,e,t){typeof Ph=="object"?VS.exports=Ph=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Ph,function(r){return(function(e){var t=r,i=t.lib,n=i.CipherParams,s=t.enc,o=s.Hex,a=t.format,c=a.Hex={stringify:function(l){return l.ciphertext.toString(o)},parse:function(l){var d=o.parse(l);return n.create({ciphertext:d})}}})(),r.format.Hex})});var XS=oe((Th,WS)=>{(function(r,e,t){typeof Th=="object"?WS.exports=Th=e(et(),No(),qo(),_s(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(Th,function(r){return(function(){var e=r,t=e.lib,i=t.BlockCipher,n=e.algo,s=[],o=[],a=[],c=[],l=[],d=[],u=[],f=[],h=[],g=[];(function(){for(var m=[],w=0;w<256;w++)w<128?m[w]=w<<1:m[w]=w<<1^283;for(var B=0,C=0,w=0;w<256;w++){var x=C^C<<1^C<<2^C<<3^C<<4;x=x>>>8^x&255^99,s[B]=x,o[x]=B;var Q=m[B],R=m[Q],U=m[R],T=m[x]*257^x*16843008;a[B]=T<<24|T>>>8,c[B]=T<<16|T>>>16,l[B]=T<<8|T>>>24,d[B]=T;var T=U*16843009^R*65537^Q*257^B*16843008;u[x]=T<<24|T>>>8,f[x]=T<<16|T>>>16,h[x]=T<<8|T>>>24,g[x]=T,B?(B=Q^m[m[m[U^Q]]],C^=m[m[C]]):B=C=1}})();var p=[0,1,2,4,8,16,32,64,128,27,54],I=n.AES=i.extend({_doReset:function(){var m;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var w=this._keyPriorReset=this._key,B=w.words,C=w.sigBytes/4,x=this._nRounds=C+6,Q=(x+1)*4,R=this._keySchedule=[],U=0;U6&&U%C==4&&(m=s[m>>>24]<<24|s[m>>>16&255]<<16|s[m>>>8&255]<<8|s[m&255]):(m=m<<8|m>>>24,m=s[m>>>24]<<24|s[m>>>16&255]<<16|s[m>>>8&255]<<8|s[m&255],m^=p[U/C|0]<<24),R[U]=R[U-C]^m);for(var T=this._invKeySchedule=[],D=0;D>>24]]^f[s[m>>>16&255]]^h[s[m>>>8&255]]^g[s[m&255]]}}},encryptBlock:function(m,w){this._doCryptBlock(m,w,this._keySchedule,a,c,l,d,s)},decryptBlock:function(m,w){var B=m[w+1];m[w+1]=m[w+3],m[w+3]=B,this._doCryptBlock(m,w,this._invKeySchedule,u,f,h,g,o);var B=m[w+1];m[w+1]=m[w+3],m[w+3]=B},_doCryptBlock:function(m,w,B,C,x,Q,R,U){for(var T=this._nRounds,D=m[w]^B[0],b=m[w+1]^B[1],_=m[w+2]^B[2],v=m[w+3]^B[3],E=4,P=1;P>>24]^x[b>>>16&255]^Q[_>>>8&255]^R[v&255]^B[E++],j=C[b>>>24]^x[_>>>16&255]^Q[v>>>8&255]^R[D&255]^B[E++],z=C[_>>>24]^x[v>>>16&255]^Q[D>>>8&255]^R[b&255]^B[E++],L=C[v>>>24]^x[D>>>16&255]^Q[b>>>8&255]^R[_&255]^B[E++];D=N,b=j,_=z,v=L}var N=(U[D>>>24]<<24|U[b>>>16&255]<<16|U[_>>>8&255]<<8|U[v&255])^B[E++],j=(U[b>>>24]<<24|U[_>>>16&255]<<16|U[v>>>8&255]<<8|U[D&255])^B[E++],z=(U[_>>>24]<<24|U[v>>>16&255]<<16|U[D>>>8&255]<<8|U[b&255])^B[E++],L=(U[v>>>24]<<24|U[D>>>16&255]<<16|U[b>>>8&255]<<8|U[_&255])^B[E++];m[w]=N,m[w+1]=j,m[w+2]=z,m[w+3]=L},keySize:256/32});e.AES=i._createHelper(I)})(),r.AES})});var eD=oe((Uh,ZS)=>{(function(r,e,t){typeof Uh=="object"?ZS.exports=Uh=e(et(),No(),qo(),_s(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(Uh,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=t.BlockCipher,s=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],u=s.DES=n.extend({_doReset:function(){for(var p=this._key,I=p.words,m=[],w=0;w<56;w++){var B=o[w]-1;m[w]=I[B>>>5]>>>31-B%32&1}for(var C=this._subKeys=[],x=0;x<16;x++){for(var Q=C[x]=[],R=c[x],w=0;w<24;w++)Q[w/6|0]|=m[(a[w]-1+R)%28]<<31-w%6,Q[4+(w/6|0)]|=m[28+(a[w+24]-1+R)%28]<<31-w%6;Q[0]=Q[0]<<1|Q[0]>>>31;for(var w=1;w<7;w++)Q[w]=Q[w]>>>(w-1)*4+3;Q[7]=Q[7]<<5|Q[7]>>>27}for(var U=this._invSubKeys=[],w=0;w<16;w++)U[w]=C[15-w]},encryptBlock:function(p,I){this._doCryptBlock(p,I,this._subKeys)},decryptBlock:function(p,I){this._doCryptBlock(p,I,this._invSubKeys)},_doCryptBlock:function(p,I,m){this._lBlock=p[I],this._rBlock=p[I+1],f.call(this,4,252645135),f.call(this,16,65535),h.call(this,2,858993459),h.call(this,8,16711935),f.call(this,1,1431655765);for(var w=0;w<16;w++){for(var B=m[w],C=this._lBlock,x=this._rBlock,Q=0,R=0;R<8;R++)Q|=l[R][((x^B[R])&d[R])>>>0];this._lBlock=x,this._rBlock=C^Q}var U=this._lBlock;this._lBlock=this._rBlock,this._rBlock=U,f.call(this,1,1431655765),h.call(this,8,16711935),h.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),p[I]=this._lBlock,p[I+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function f(p,I){var m=(this._lBlock>>>p^this._rBlock)&I;this._rBlock^=m,this._lBlock^=m<>>p^this._lBlock)&I;this._lBlock^=m,this._rBlock^=m<192.");var m=I.slice(0,2),w=I.length<4?I.slice(0,2):I.slice(2,4),B=I.length<6?I.slice(0,2):I.slice(4,6);this._des1=u.createEncryptor(i.create(m)),this._des2=u.createEncryptor(i.create(w)),this._des3=u.createEncryptor(i.create(B))},encryptBlock:function(p,I){this._des1.encryptBlock(p,I),this._des2.decryptBlock(p,I),this._des3.encryptBlock(p,I)},decryptBlock:function(p,I){this._des3.decryptBlock(p,I),this._des2.encryptBlock(p,I),this._des1.decryptBlock(p,I)},keySize:192/32,ivSize:64/32,blockSize:64/32});e.TripleDES=n._createHelper(g)})(),r.TripleDES})});var rD=oe((Rh,tD)=>{(function(r,e,t){typeof Rh=="object"?tD.exports=Rh=e(et(),No(),qo(),_s(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(Rh,function(r){return(function(){var e=r,t=e.lib,i=t.StreamCipher,n=e.algo,s=n.RC4=i.extend({_doReset:function(){for(var c=this._key,l=c.words,d=c.sigBytes,u=this._S=[],f=0;f<256;f++)u[f]=f;for(var f=0,h=0;f<256;f++){var g=f%d,p=l[g>>>2]>>>24-g%4*8&255;h=(h+u[f]+p)%256;var I=u[f];u[f]=u[h],u[h]=I}this._i=this._j=0},_doProcessBlock:function(c,l){c[l]^=o.call(this)},keySize:256/32,ivSize:0});function o(){for(var c=this._S,l=this._i,d=this._j,u=0,f=0;f<4;f++){l=(l+1)%256,d=(d+c[l])%256;var h=c[l];c[l]=c[d],c[d]=h,u|=c[(c[l]+c[d])%256]<<24-f*8}return this._i=l,this._j=d,u}e.RC4=i._createHelper(s);var a=n.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var c=this.cfg.drop;c>0;c--)o.call(this)}});e.RC4Drop=i._createHelper(a)})(),r.RC4})});var nD=oe((Nh,iD)=>{(function(r,e,t){typeof Nh=="object"?iD.exports=Nh=e(et(),No(),qo(),_s(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(Nh,function(r){return(function(){var e=r,t=e.lib,i=t.StreamCipher,n=e.algo,s=[],o=[],a=[],c=n.Rabbit=i.extend({_doReset:function(){for(var d=this._key.words,u=this.cfg.iv,f=0;f<4;f++)d[f]=(d[f]<<8|d[f]>>>24)&16711935|(d[f]<<24|d[f]>>>8)&4278255360;var h=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],g=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var f=0;f<4;f++)l.call(this);for(var f=0;f<8;f++)g[f]^=h[f+4&7];if(u){var p=u.words,I=p[0],m=p[1],w=(I<<8|I>>>24)&16711935|(I<<24|I>>>8)&4278255360,B=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,C=w>>>16|B&4294901760,x=B<<16|w&65535;g[0]^=w,g[1]^=C,g[2]^=B,g[3]^=x,g[4]^=w,g[5]^=C,g[6]^=B,g[7]^=x;for(var f=0;f<4;f++)l.call(this)}},_doProcessBlock:function(d,u){var f=this._X;l.call(this),s[0]=f[0]^f[5]>>>16^f[3]<<16,s[1]=f[2]^f[7]>>>16^f[5]<<16,s[2]=f[4]^f[1]>>>16^f[7]<<16,s[3]=f[6]^f[3]>>>16^f[1]<<16;for(var h=0;h<4;h++)s[h]=(s[h]<<8|s[h]>>>24)&16711935|(s[h]<<24|s[h]>>>8)&4278255360,d[u+h]^=s[h]},blockSize:128/32,ivSize:64/32});function l(){for(var d=this._X,u=this._C,f=0;f<8;f++)o[f]=u[f];u[0]=u[0]+1295307597+this._b|0,u[1]=u[1]+3545052371+(u[0]>>>0>>0?1:0)|0,u[2]=u[2]+886263092+(u[1]>>>0>>0?1:0)|0,u[3]=u[3]+1295307597+(u[2]>>>0>>0?1:0)|0,u[4]=u[4]+3545052371+(u[3]>>>0>>0?1:0)|0,u[5]=u[5]+886263092+(u[4]>>>0>>0?1:0)|0,u[6]=u[6]+1295307597+(u[5]>>>0>>0?1:0)|0,u[7]=u[7]+3545052371+(u[6]>>>0>>0?1:0)|0,this._b=u[7]>>>0>>0?1:0;for(var f=0;f<8;f++){var h=d[f]+u[f],g=h&65535,p=h>>>16,I=((g*g>>>17)+g*p>>>15)+p*p,m=((h&4294901760)*h|0)+((h&65535)*h|0);a[f]=I^m}d[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,d[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,d[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,d[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,d[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,d[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,d[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,d[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=i._createHelper(c)})(),r.Rabbit})});var oD=oe((qh,sD)=>{(function(r,e,t){typeof qh=="object"?sD.exports=qh=e(et(),No(),qo(),_s(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(qh,function(r){return(function(){var e=r,t=e.lib,i=t.StreamCipher,n=e.algo,s=[],o=[],a=[],c=n.RabbitLegacy=i.extend({_doReset:function(){var d=this._key.words,u=this.cfg.iv,f=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],h=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var g=0;g<4;g++)l.call(this);for(var g=0;g<8;g++)h[g]^=f[g+4&7];if(u){var p=u.words,I=p[0],m=p[1],w=(I<<8|I>>>24)&16711935|(I<<24|I>>>8)&4278255360,B=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,C=w>>>16|B&4294901760,x=B<<16|w&65535;h[0]^=w,h[1]^=C,h[2]^=B,h[3]^=x,h[4]^=w,h[5]^=C,h[6]^=B,h[7]^=x;for(var g=0;g<4;g++)l.call(this)}},_doProcessBlock:function(d,u){var f=this._X;l.call(this),s[0]=f[0]^f[5]>>>16^f[3]<<16,s[1]=f[2]^f[7]>>>16^f[5]<<16,s[2]=f[4]^f[1]>>>16^f[7]<<16,s[3]=f[6]^f[3]>>>16^f[1]<<16;for(var h=0;h<4;h++)s[h]=(s[h]<<8|s[h]>>>24)&16711935|(s[h]<<24|s[h]>>>8)&4278255360,d[u+h]^=s[h]},blockSize:128/32,ivSize:64/32});function l(){for(var d=this._X,u=this._C,f=0;f<8;f++)o[f]=u[f];u[0]=u[0]+1295307597+this._b|0,u[1]=u[1]+3545052371+(u[0]>>>0>>0?1:0)|0,u[2]=u[2]+886263092+(u[1]>>>0>>0?1:0)|0,u[3]=u[3]+1295307597+(u[2]>>>0>>0?1:0)|0,u[4]=u[4]+3545052371+(u[3]>>>0>>0?1:0)|0,u[5]=u[5]+886263092+(u[4]>>>0>>0?1:0)|0,u[6]=u[6]+1295307597+(u[5]>>>0>>0?1:0)|0,u[7]=u[7]+3545052371+(u[6]>>>0>>0?1:0)|0,this._b=u[7]>>>0>>0?1:0;for(var f=0;f<8;f++){var h=d[f]+u[f],g=h&65535,p=h>>>16,I=((g*g>>>17)+g*p>>>15)+p*p,m=((h&4294901760)*h|0)+((h&65535)*h|0);a[f]=I^m}d[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,d[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,d[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,d[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,d[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,d[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,d[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,d[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=i._createHelper(c)})(),r.RabbitLegacy})});var cD=oe((Oh,aD)=>{(function(r,e,t){typeof Oh=="object"?aD.exports=Oh=e(et(),No(),qo(),_s(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(Oh,function(r){return(function(){var e=r,t=e.lib,i=t.BlockCipher,n=e.algo;let s=16,o=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],a=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var c={pbox:[],sbox:[]};function l(g,p){let I=p>>24&255,m=p>>16&255,w=p>>8&255,B=p&255,C=g.sbox[0][I]+g.sbox[1][m];return C=C^g.sbox[2][w],C=C+g.sbox[3][B],C}function d(g,p,I){let m=p,w=I,B;for(let C=0;C1;--C)m=m^g.pbox[C],w=l(g,m)^w,B=m,m=w,w=B;return B=m,m=w,w=B,w=w^g.pbox[1],m=m^g.pbox[0],{left:m,right:w}}function f(g,p,I){for(let x=0;x<4;x++){g.sbox[x]=[];for(let Q=0;Q<256;Q++)g.sbox[x][Q]=a[x][Q]}let m=0;for(let x=0;x=I&&(m=0);let w=0,B=0,C=0;for(let x=0;x{(function(r,e,t){typeof Mh=="object"?lD.exports=Mh=e(et(),Uu(),oS(),cS(),No(),uS(),qo(),Gx(),fh(),pS(),zx(),IS(),xS(),ES(),Ih(),vS(),_s(),fr(),QS(),FS(),TS(),RS(),qS(),MS(),HS(),GS(),JS(),$S(),YS(),XS(),eD(),rD(),nD(),oD(),cD()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./lib-typedarrays","./enc-utf16","./enc-base64","./enc-base64url","./md5","./sha1","./sha256","./sha224","./sha512","./sha384","./sha3","./ripemd160","./hmac","./pbkdf2","./evpkdf","./cipher-core","./mode-cfb","./mode-ctr","./mode-ctr-gladman","./mode-ofb","./mode-ecb","./pad-ansix923","./pad-iso10126","./pad-iso97971","./pad-zeropadding","./pad-nopadding","./format-hex","./aes","./tripledes","./rc4","./rabbit","./rabbit-legacy","./blowfish"],e):r.CryptoJS=e(r.CryptoJS)})(Mh,function(r){return r})});function Sl(r){let e=[];for(let t=0;t>>2]|=r[t]<<24-t%4*8;return Mo.default.lib.WordArray.create(e,r.length)}function dD(r){let e=Number(r?.sigBytes??0),t=r?.words??[],i=new Uint8Array(e);for(let n=0;n>>2]>>>24-n%4*8&255;return i}function fD(r,e,t){if(t.length!==uD)throw new Error("DES IV must be 8 bytes");let i=Mo.default.TripleDES.encrypt(Sl(r),Sl(e),{iv:Sl(t),mode:Mo.default.mode.CBC,padding:Mo.default.pad.Pkcs7});return dD(i.ciphertext)}function AD(r,e,t){if(t.length!==uD)throw new Error("DES IV must be 8 bytes");let i=Mo.default.TripleDES.decrypt({ciphertext:Sl(r)},Sl(e),{iv:Sl(t),mode:Mo.default.mode.CBC,padding:Mo.default.pad.Pkcs7});return dD(i)}var Mo,uD,hD=J(()=>{"use strict";Mo=xr(Oo(),1);uD=8});function Fs(r){return Array.from(new Uint8Array(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}function Ar(r){return typeof r=="string"?new TextEncoder().encode(r):r}function gi(r){let e=new Uint8Array(r.length/2);for(let t=0;t>>0,!0),o.setUint32(s.length-4,Math.floor(i/4294967296),!0);let a=new Int32Array(64);for(let g=0;g<64;g++)a[g]=Math.abs(Math.sin(g+1))*4294967296|0;let c=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],l=1732584193,d=4023233417,u=2562383102,f=271733878;for(let g=0;gp.getInt32(Q*4,!0)),[m,w,B,C]=[l,d,u,f];for(let x=0;x<64;x++){let Q,R;x<16?(Q=w&B|~w&C,R=x):x<32?(Q=C&w|~C&B,R=(5*x+1)%16):x<48?(Q=w^B^C,R=(3*x+5)%16):(Q=B^(w|~C),R=7*x%16);let U=C;C=B,B=w;let T=m+Q+a[x]+I[R]|0;w=w+(T<>>32-c[x])|0,m=U}l=l+m|0,d=d+w|0,u=u+B|0,f=f+C|0}let h=new DataView(new ArrayBuffer(16));return h.setInt32(0,l,!0),h.setInt32(4,d,!0),h.setInt32(8,u,!0),h.setInt32(12,f,!0),Fs(h.buffer)}function $t(r){return fK(r)}async function Ho(r){let e=await crypto.subtle.digest("SHA-1",Ar(r));return Fs(e)}async function ID(r){let e=await crypto.subtle.digest("SHA-256",Ar(r));return Fs(e)}async function jx(r,e){let t=await crypto.subtle.importKey("raw",Ar(e),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,Ar(r));return Fs(i)}async function qu(r,e){let t=await crypto.subtle.importKey("raw",Ar(e),{name:"HMAC",hash:"SHA-1"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,Ar(r)),n=new Uint8Array(i),s="";for(let o of n)s+=String.fromCharCode(o);return btoa(s)}async function wD(r,e="salt",t=$x){let i=Ar(r),n=Ar(e),s=await crypto.subtle.importKey("raw",i,"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:n,iterations:t,hash:"SHA-256"},s,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function AK(r,e){let t=crypto.getRandomValues(new Uint8Array(16)),i=crypto.getRandomValues(new Uint8Array(12)),n=await wD(e,t,$x),s=await crypto.subtle.encrypt({name:"AES-GCM",iv:i},n,Ar(r));return`${Fs(t.buffer)}:${Fs(i.buffer)}:${Fs(s)}`}async function hK(r,e){let t=r.split(":"),i="salt",n="",s="",o=1;if(t.length===3)i=gi(t[0]),n=t[1],s=t[2],o=$x;else if(t.length===2)n=t[0],s=t[1],o=1,gD||(gD=!0,console.warn("[Crypto] Decrypting legacy weak-KDF format. It will be re-encrypted with the current config format on the next save."));else throw new Error("Invalid encrypted data format");let a=gi(n),c=gi(s),l=await wD(e,i,o),d=await crypto.subtle.decrypt({name:"AES-GCM",iv:a},l,c);return new TextDecoder().decode(d)}async function gK(r){let e=await crypto.subtle.importKey("raw",Ar(r),"HKDF",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"HKDF",hash:"SHA-256",salt:Ar("openlist-config-encryption-v2"),info:Ar("AES-256-GCM")},e,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function pK(r,e){let t=crypto.getRandomValues(new Uint8Array(12)),i=await crypto.subtle.encrypt({name:"AES-GCM",iv:t},e,Ar(r));return`${Fs(t.buffer)}:${Fs(i)}`}async function mK(r,e){let t=r.split(":");if(t.length!==2)throw new Error("Invalid config encrypted data format");let i=gi(t[0]),n=gi(t[1]),s=await crypto.subtle.decrypt({name:"AES-GCM",iv:i},e,n);return new TextDecoder().decode(s)}async function Vx(r,e,t){let i=Ar(e),n=t?Ar(t):i,s=await crypto.subtle.importKey("raw",i,{name:"AES-CBC"},!1,["encrypt"]),o=Ar(r),c=typeof process<"u"&&process?.release?.name==="node"?o:SD(o),l=await crypto.subtle.encrypt({name:"AES-CBC",iv:n},s,c),d=new Uint8Array(l),u="";for(let f of d)u+=String.fromCharCode(f);return btoa(u)}function CD(r){let e=String(r??"").trim().toLowerCase();if(!e)return{cipher:Nu,known:!0};let t=IK[e];return t?{cipher:t,known:!0}:{cipher:Nu,known:!1}}function ED(r){return r==="none"?"":`enc:v${wK[r]}:`}function Ko(r){if(typeof r!="string")return null;let e=CK.exec(r);if(!e)return null;let t=xK[Number(e[1])];return t?{cipher:t,prefix:e[0]}:null}function lc(r){return Ko(r)!==null}function Kn(r){let e="";for(let t of r)e+=t.toString(16).padStart(2,"0");return e}function Ou(r,e){let t=new Uint8Array(r.length+e.length);return t.set(r,0),t.set(e,r.length),t}function BD(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i=bK){let s=cc.keys().next().value;s!==void 0&&cc.delete(s)}return cc.set(i,n),n}function bD(){cc.clear(),Jx=!1}async function vD(r){let e=await crypto.subtle.digest("SHA-256",Ar(r));return new Uint8Array(e)}async function Ru(r,e,t){return(await vD(`${e}|${r}`)).slice(0,t)}async function pD(r){return crypto.subtle.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!1,["sign"])}async function Lh(r,e){return new Uint8Array(await crypto.subtle.sign("HMAC",r,e))}function vK(r){let e=new Uint8Array(4);return new DataView(e.buffer).setUint32(0,r.length,!1),Ou(e,r)}function kK(r){if(r.length<4)throw new Error("Invalid encrypted data format");let e=new DataView(r.buffer,r.byteOffset,4).getUint32(0,!1);if(e>r.length-4)throw new Error("Invalid encrypted data length");return r.slice(4,4+e)}async function SK(r,e){let t=await crypto.subtle.digest("SHA-256",Ar(`${e}|${r}`));return crypto.subtle.importKey("raw",t,{name:"AES-CBC"},!1,["encrypt","decrypt"])}async function DK(r,e){let t=await crypto.subtle.digest("SHA-256",Ar(`${e}|${r}`));return crypto.subtle.importKey("raw",t,{name:"HMAC",hash:"SHA-256"},!1,["sign"])}async function QK(r,e){let t=crypto.getRandomValues(new Uint8Array(16)),i=SD(vK(Yx(r))),n=await crypto.subtle.encrypt({name:"AES-CBC",iv:t},e.enc,i),s=new Uint8Array(n),o=await Lh(e.mac,Ou(t,s));return`${Kn(t)}:${Kn(s)}:${Kn(o)}`}async function _K(r,e){let t=r.split(":");if(t.length!==3)throw new Error("Invalid encrypted data format");let i=gi(t[0]),n=gi(t[1]),s=gi(t[2]),o=await Lh(e.mac,Ou(i,n));if(!BD(o,s))throw new Error("Encrypted data failed integrity check (wrong key?)");let a=await crypto.subtle.decrypt({name:"AES-CBC",iv:i},e.enc,n);return new TextDecoder().decode(kK(new Uint8Array(a)))}async function PK(r,e){let t=crypto.getRandomValues(new Uint8Array(12)),{ciphertext:i,tag:n}=eS(e,t,Yx(r));return`${Kn(t)}:${Kn(i)}:${Kn(n)}`}async function TK(r,e){let t=r.split(":");if(t.length!==3)throw new Error("Invalid encrypted data format");let i=gi(t[0]),n=gi(t[1]),s=gi(t[2]);return new TextDecoder().decode(tS(e,i,n,s))}async function mD(r,e,t){let i=crypto.getRandomValues(new Uint8Array(8)),n=fD(Yx(r),e,i),s=await Lh(t,Ou(i,n));return`${Kn(i)}:${Kn(n)}:${Kn(s)}`}async function yD(r,e,t){let i=r.split(":");if(i.length!==3)throw new Error("Invalid encrypted data format");let n=gi(i[0]),s=gi(i[1]),o=gi(i[2]),a=await Lh(t,Ou(n,s));if(!BD(a,o))throw new Error("Encrypted data failed integrity check (wrong key?)");return new TextDecoder().decode(AD(s,e,n))}async function kD(r,e){r!=="none"&&yK.includes(r)&&!Jx&&(Jx=!0,console.warn(`[Crypto] DB_CIPHER=${r} is for compatibility only: single DES (56-bit) is brute-forceable and 3DES is deprecated (NIST SP 800-131A). Use aes-256-gcm or chacha20-poly1305 for real data.`));let t=r==="none"?"none":await Lo(`fp:${r}`,e,async()=>{let d=await vD(`openlist-db-cipher-fp|${r}|${e}`);return Kn(d).slice(0,16)}),i=()=>Lo("v2",e,()=>gK(e)),n=()=>Lo("v3",e,async()=>({enc:await SK(e,EK),mac:await DK(e,BK)})),s=()=>Lo("v4",e,()=>Ru(e,FK,32)),o=()=>Lo("v5",e,()=>Ru(e,UK,8)),a=()=>Lo("v6",e,()=>Ru(e,RK,24)),c=()=>Lo("v5-mac",e,async()=>pD(await Ru(e,NK,32))),l=()=>Lo("v6-mac",e,async()=>pD(await Ru(e,qK,32)));return{cipher:r,fingerprint:t,async encrypt(d){switch(r){case"none":return d;case"aes-256-gcm":return await pK(d,await i());case"aes-256-gcm-pbkdf2":return await AK(d,e);case"aes-256-cbc-hmac":return await QK(d,await n());case"chacha20-poly1305":return await PK(d,await s());case"des-cbc-hmac":return await mD(d,await o(),await c());case"3des-cbc-hmac":return await mD(d,await a(),await l());default:throw new Error(`Unsupported DB_CIPHER: ${String(r)}`)}},async decrypt(d){let u=Ko(d);if(!u)return d;let f=d.slice(u.prefix.length);switch(u.cipher){case"aes-256-gcm":return await mK(f,await i());case"aes-256-gcm-pbkdf2":return await hK(f,e);case"aes-256-cbc-hmac":return await _K(f,await n());case"chacha20-poly1305":return await TK(f,await s());case"des-cbc-hmac":return await yD(f,await o(),await c());case"3des-cbc-hmac":return await yD(f,await a(),await l());default:throw new Error(`Unsupported ciphertext: ${String(u.cipher)}`)}}}}function SD(r,e=16){let t=e-r.length%e,i=new Uint8Array(r.length+t);return i.set(r),i.fill(t,r.length),i}var $x,gD,Nu,xD,yK,IK,wK,xK,CK,EK,BK,bK,cc,Jx,FK,UK,RK,NK,qK,Gr=J(()=>{"use strict";rS();hD();$x=1e5,gD=!1;Nu="none",xD=["none","aes-256-gcm","aes-256-gcm-pbkdf2","aes-256-cbc-hmac","chacha20-poly1305","des-cbc-hmac","3des-cbc-hmac"],yK=["des-cbc-hmac","3des-cbc-hmac"],IK={none:"none",off:"none",no:"none",plain:"none",plaintext:"none","aes-256-gcm":"aes-256-gcm","aes-gcm":"aes-256-gcm",aesgcm:"aes-256-gcm","aes-256-gcm-hkdf":"aes-256-gcm","gcm-hkdf":"aes-256-gcm",hkdf:"aes-256-gcm",gcm:"aes-256-gcm",v2:"aes-256-gcm","aes-256-gcm-pbkdf2":"aes-256-gcm-pbkdf2","aes-gcm-pbkdf2":"aes-256-gcm-pbkdf2",pbkdf2:"aes-256-gcm-pbkdf2",legacy:"aes-256-gcm-pbkdf2",v1:"aes-256-gcm-pbkdf2","aes-256-cbc-hmac":"aes-256-cbc-hmac","aes-cbc-hmac":"aes-256-cbc-hmac","cbc-hmac":"aes-256-cbc-hmac","aes-256-cbc":"aes-256-cbc-hmac",cbc:"aes-256-cbc-hmac",v3:"aes-256-cbc-hmac","chacha20-poly1305":"chacha20-poly1305",chacha20:"chacha20-poly1305",chacha:"chacha20-poly1305","chacha20-ietf-poly1305":"chacha20-poly1305","aead-chacha20":"chacha20-poly1305",v4:"chacha20-poly1305","des-cbc-hmac":"des-cbc-hmac","des-cbc":"des-cbc-hmac",des:"des-cbc-hmac",v5:"des-cbc-hmac","3des-cbc-hmac":"3des-cbc-hmac","3des-cbc":"3des-cbc-hmac","3des":"3des-cbc-hmac",des3:"3des-cbc-hmac",tripledes:"3des-cbc-hmac","triple-des":"3des-cbc-hmac",v6:"3des-cbc-hmac"};wK={"aes-256-gcm-pbkdf2":1,"aes-256-gcm":2,"aes-256-cbc-hmac":3,"chacha20-poly1305":4,"des-cbc-hmac":5,"3des-cbc-hmac":6},xK={1:"aes-256-gcm-pbkdf2",2:"aes-256-gcm",3:"aes-256-cbc-hmac",4:"chacha20-poly1305",5:"des-cbc-hmac",6:"3des-cbc-hmac"},CK=/^enc:v(\d+):/;EK="openlist-db-cipher-v3-enc",BK="openlist-db-cipher-v3-mac";bK=8,cc=new Map;Jx=!1;FK="openlist-db-cipher-v4-chacha20";UK="openlist-db-cipher-v5-des",RK="openlist-db-cipher-v6-3des",NK="openlist-db-cipher-v5-des-mac",qK="openlist-db-cipher-v6-3des-mac"});function Dl(r,e){if(typeof r!="string")return null;let t=r.trim();if(!t)return null;let i;try{i=new URL(t)}catch{return null}if(i.protocol!=="http:"&&i.protocol!=="https:"||!i.hostname)return null;let n=e?.EO_KV_URLS;return!(typeof n=="string"&&n.trim()===t)&&!(i.hostname==="localhost"||i.hostname==="127.0.0.1"||i.hostname==="[::1]")&&i.protocol!=="https:"?(console.warn(`[DB] Rejecting non-HTTPS proxy origin derived from request: ${i.protocol}//${i.hostname} (would leak X-Internal-Call in clear text)`),null):`${i.protocol}//${i.host}`.replace(/\/$/,"")}var Hh=J(()=>{"use strict"});var nC=oe((Xde,jD)=>{"use strict";var iC=Object.defineProperty,OK=Object.getOwnPropertyDescriptor,MK=Object.getOwnPropertyNames,LK=Object.prototype.hasOwnProperty,HK=(r,e)=>{for(var t in e)iC(r,t,{get:e[t],enumerable:!0})},KK=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of MK(e))!LK.call(r,n)&&n!==t&&iC(r,n,{get:()=>e[n],enumerable:!(i=OK(e,n))||i.enumerable});return r},GK=r=>KK(iC({},"__esModule",{value:!0}),r),ND={};HK(ND,{InvalidKeyError:()=>Kh,InvalidStoreNameError:()=>zu,MissingProjectIdError:()=>qD,PagesBlobError:()=>Gn,PreconditionFailedError:()=>eC,QuotaExceededError:()=>zK,RateLimitedError:()=>JK,Store:()=>OD,getStore:()=>uG,listStores:()=>fG});jD.exports=GK(ND);var Gn=class extends Error{code;constructor(r,e){super(`PagesBlob: ${e}`),this.name="PagesBlobError",this.code=r}},Kh=class extends Gn{constructor(r){super("INVALID_KEY",r)}},zu=class extends Gn{constructor(r){super("INVALID_STORE_NAME",r)}},Wx=class extends Gn{constructor(r){super("MISSING_ENVIRONMENT",`Environment not configured for Pages Blob. Missing: ${r.join(", ")}. Supply these properties when creating a store, or ensure the function is running in a Pages environment.`)}},zK=class extends Gn{constructor(){super("QUOTA_EXCEEDED","storage quota exceeded")}},JK=class extends Gn{constructor(){super("RATE_LIMITED","request rate limited, please retry later")}},qD=class extends Gn{constructor(){super("MISSING_PROJECT_ID","projectId is required when using API token mode. Please supply { name, projectId, token } to getStore() / listStores().")}},Go=class extends Gn{constructor(r){super("CREDENTIAL_ERROR",r)}},zr=class extends Gn{constructor(r,e){super("COS_ERROR",`COS returned ${r}: ${e}`)}},eC=class extends Gn{constructor(){super("PRECONDITION_FAILED","conditional write failed (key already exists)")}};function dc(r){if(r==="")throw new Kh("Blob key must not be empty.");if(r.startsWith("/")||r.startsWith("%2F"))throw new Kh("Blob key must not start with forward slash (/).");if(new TextEncoder().encode(r).length>600)throw new Kh("Blob key must be a sequence of Unicode characters whose UTF-8 encoding is at most 600 bytes long.")}function jK(r){if(r==="")throw new zu("Store name must not be empty.");if(r.includes("/")||r.includes(":"))throw new zu("Store name must not contain forward slashes (/) or colons (:).");if(!/^[a-zA-Z0-9_-]+$/.test(r))throw new zu("Store name must only contain letters, digits, underscores, and hyphens.");if(new TextEncoder().encode(r).length>64)throw new zu("Store name must be a sequence of Unicode characters whose UTF-8 encoding is at most 64 bytes long.")}var OD=class{cosClient;storeName;defaultConsistency;constructor(r,e,t="eventual"){this.cosClient=r,this.storeName=e,this.defaultConsistency=t}resolveConsistency(r){return r??this.defaultConsistency}async set(r,e,t){dc(r);let i=await this.cosClient.putObject(this.storeName,r,e,{onlyIfNew:t?.onlyIfNew,cacheControl:t?.cacheControl});if(t?.onlyIfNew&&i.statusCode===412)throw new eC}async setJSON(r,e,t){dc(r);let i=JSON.stringify(e),n=await this.cosClient.putObject(this.storeName,r,i,{onlyIfNew:t?.onlyIfNew,contentType:"application/json",cacheControl:t?.cacheControl});if(t?.onlyIfNew&&n.statusCode===412)throw new eC}async createUploadUrl(r,e){dc(r);let{url:t,expiresAt:i}=await this.cosClient.createPresignedPutUrl(this.storeName,r,{expireSeconds:e?.expireSeconds,contentType:e?.contentType});return{url:t,key:r,expiresAt:i}}async get(r,e){dc(r);let t=this.resolveConsistency(e?.consistency),i=await this.cosClient.getObject(this.storeName,r,t);if(i===null)return null;let{body:n}=i,s=e?.type??"text",o=new TextDecoder("utf-8");switch(s){case"text":return o.decode(n);case"json":return JSON.parse(o.decode(n));case"arrayBuffer":return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);case"blob":return new Blob([n]);case"stream":return new ReadableStream({start(a){a.enqueue(n),a.close()}});default:return o.decode(n)}}async getMetadata(r,e){dc(r);let t=this.resolveConsistency(e?.consistency);return this.cosClient.headObject(this.storeName,r,t)}async getWithHeaders(r,e){dc(r);let t=this.resolveConsistency(e?.consistency),i=await this.cosClient.getObject(this.storeName,r,t);return i?{body:new TextDecoder("utf-8").decode(i.body),headers:i.headers||{}}:null}async delete(r){dc(r),await this.cosClient.deleteObject(this.storeName,r)}async list(r){let e=r?.paginate!==!1,t=r?.limit,i=[],n=[],s=this.resolveConsistency(r?.consistency),o=r?.cursor||"",a=!0,c;for(;a;){let l=t!==void 0?t-i.length:1e3,d=Math.min(l,1e3);if(d<=0)break;let u=await this.cosClient.listObjects(this.storeName,{prefix:r?.prefix,delimiter:r?.directories?"/":void 0,marker:o||void 0,maxKeys:d,consistency:s});for(let f of u.contents)i.push({key:f.key,etag:f.etag});n.push(...u.commonPrefixes),t!==void 0&&i.length>=t?(i.length=t,(u.isTruncated||u.contents.length===d)&&(c=u.nextMarker),a=!1):u.isTruncated?!e&&t===void 0?(c=u.nextMarker,a=!1):o=u.nextMarker:a=!1}return{blobs:i,directories:n,...c?{cursor:c}:{}}}},$K=new TextEncoder;function tC(r){let e=$K.encode(r),t=new ArrayBuffer(e.byteLength),i=new Uint8Array(t);return i.set(e),i}function MD(r){let e=r instanceof Uint8Array?r:new Uint8Array(r),t="";for(let i=0;i"%"+e.charCodeAt(0).toString(16).toUpperCase())}function zh(r){try{return decodeURIComponent(r)}catch{return r}}function LD(r){return r.split("/").map(e=>zh(e)).join("/")}function HD(r){return r.split("/").map(e=>Gh(zh(e))).join("/")}var YK=new Set(["cache-control","content-disposition","content-encoding","content-length","content-md5","content-type","expect","expires","if-match","if-modified-since","if-none-match","if-unmodified-since","origin","range","transfer-encoding"]);function WK(r){return r==="host"||r==="x-cos-security-token"?!1:!!(YK.has(r)||r.startsWith("x-cos-"))}function QD(r){if(!r)return[];let e=[];for(let[t,i]of Object.entries(r))i!=null&&e.push([t.toLowerCase(),String(i)]);return e.sort(([t],[i])=>ti?1:0),e}function _D(r){return r.map(([e,t])=>`${Gh(e)}=${Gh(t)}`).join("&")}function FD(r){return r.map(([e])=>Gh(e)).join(";")}async function KD(r){let e=r.method.toLowerCase(),t=r.pathname.startsWith("/")?r.pathname:`/${r.pathname}`,i=Math.floor(Date.now()/1e3),n=i+(r.expireSeconds??3600),s=`${i};${n}`,o=QD(r.headers).filter(([w])=>WK(w)),a=FD(o),c=_D(o),l=QD(r.query),d=FD(l),u=_D(l),f=`${e} ${t} ${u} ${c} `,h=`sha1 ${s} -${await fH(f)} -`,g=await yk(r.secretKey,s),p=await yk(g,h),I=["q-sign-algorithm=sha1",`q-ak=${r.secretId}`,`q-sign-time=${s}`,`q-key-time=${s}`,`q-header-list=${a}`,`q-url-param-list=${d}`,`q-signature=${p}`].join("&"),y={};for(let[w,C]of o)y[w]=C;return{authorization:I,signedHeaders:y}}async function gH(r){let e=new URL(r.domain),t=J0(r.key),i=`/${Qk(t)}`,n=`/${_k(t)}`;e.pathname=n;let{authorization:s}=await Fk({method:r.method,pathname:i,query:r.query,headers:r.headers,secretId:r.credential.secretId,secretKey:r.credential.secretKey,expireSeconds:r.expireSeconds});if(r.query)for(let[o,a]of Object.entries(r.query))a!=null&&e.searchParams.set(o,String(a));for(let o of s.split("&")){let a=o.indexOf("=");if(a===-1)continue;let c=o.slice(0,a),l=o.slice(a+1);e.searchParams.set(c,l)}return r.credential.sessionToken&&e.searchParams.set("x-cos-security-token",r.credential.sessionToken),e.toString()}async function bu(r){let e=new URL(r.domain),t=r.key?J0(r.key):"",i=t?`/${Qk(t)}`:"/",n=t?`/${_k(t)}`:"/";if(e.pathname=n,r.query)for(let[u,f]of Object.entries(r.query))f!=null&&e.searchParams.set(u,String(f));let{authorization:s}=await Fk({method:r.method,pathname:i,query:r.query,headers:r.headers,secretId:r.credential.secretId,secretKey:r.credential.secretKey}),o=new Headers;if(r.headers)for(let[u,f]of Object.entries(r.headers))f!=null&&o.set(u,String(f));o.set("Authorization",s),r.credential.sessionToken&&o.set("x-cos-security-token",r.credential.sessionToken);let a=e.toString(),c={method:r.method,headers:o,body:r.body??void 0,signal:r.signal},l=2,d;for(let u=0;u<=l;u++)try{return await fetch(a,c)}catch(f){if(d=f,f instanceof DOMException&&f.name==="AbortError")throw f;usetTimeout(h,1e3*(u+1)))}throw d}var pH="blob.edgeone.site",mH="blob-nocache.edgeone.site",Pk=class Cn{credentialManager;bucket="";region="";keyPrefix="";cachedDomain="";uncachedDomain="";initialized=!1;static buildErrorDetail(e,t,i,n,s){let o=i?`${t}/${i}`:t,a=s?` [request-id: ${s}]`:"";return`${e} ${o} - ${yH(n)}${a}`}constructor(e){this.credentialManager=e}computeSubdomain(e){let t=[];if(e.appId&&t.push(e.appId),e.zoneId&&t.push(e.zoneId),e.projectId&&t.push(e.projectId),t.length>=2)return t.join("-");if(e.resourcePrefix){let i=e.resourcePrefix.replace(/\/?\*$/,"").split("/").filter(Boolean);if(i.length>=2)return i.slice(0,Math.min(i.length,3)).join("-")}return""}async ensureInitialized(){if(this.initialized)return;let e=await this.credentialManager.getCredential();!this.keyPrefix&&e.resourcePrefix&&(this.keyPrefix=e.resourcePrefix.replace(/\/?\*$/,""));let t=e.edgeRegion==="CN",i=e.cosMainland,n=e.cosOverseas,s=t?i||n:n||i;!this.bucket&&s&&(this.bucket=s.bucket,this.region=s.region);let o=this.computeSubdomain(e);if(!o)throw new Kr(0,"unable to derive tenant subdomain from credential; missing appId/zoneId/projectId or resourcePrefix");this.cachedDomain=`https://${o}.${pH}`,this.uncachedDomain=`https://${o}.${mH}`,this.initialized=!0}async resolveDomain(e){return await this.ensureInitialized(),e==="strong"?this.uncachedDomain:this.cachedDomain}async resolveCredential(){let e=await this.credentialManager.getCredential();return{secretId:e.tmpSecretId,secretKey:e.tmpSecretKey,sessionToken:e.sessionToken}}buildCosKey(e,t){return`${this.keyPrefix}/${e}/${t}`}async getDomains(){return await this.ensureInitialized(),{cached:this.cachedDomain,uncached:this.uncachedDomain}}async putObject(e,t,i,n){let s=await this.resolveDomain("strong"),o=await this.resolveCredential(),a=this.buildCosKey(e,t),c=n?.cacheControl===null?void 0:n?.cacheControl??"max-age=0, stale-while-revalidate=60",l={};n?.onlyIfNew&&(l["If-None-Match"]="*"),c&&(l["Cache-Control"]=c),n?.contentType&&(l["Content-Type"]=n.contentType);try{let d=await bu({domain:s,method:"PUT",key:a,headers:l,body:i,credential:o});if(d.status===412)return await d.arrayBuffer().catch(()=>{}),{etag:"",statusCode:412};if(!d.ok){let f=await vu(d);throw new Kr(d.status,Cn.buildErrorDetail("PUT",s,a,f||`status ${d.status}`,ku(d)))}let u=d.headers.get("etag")||"";return await d.arrayBuffer().catch(()=>{}),{etag:u,statusCode:d.status}}catch(d){throw d instanceof Kr?d:new Kr(0,Cn.buildErrorDetail("PUT",s,a,Su(d)))}}async createPresignedPutUrl(e,t,i){let n=await this.resolveDomain("strong"),s=await this.resolveCredential(),o=this.buildCosKey(e,t),a={};i?.contentType&&(a["Content-Type"]=i.contentType);let c=i?.expireSeconds??3600,l=await gH({domain:n,method:"PUT",key:o,headers:a,credential:s,expireSeconds:c}),d=Math.floor(Date.now()/1e3)+c;return{url:l,expiresAt:d}}async getObject(e,t,i){let n=await this.resolveDomain(i),s=await this.resolveCredential(),o=this.buildCosKey(e,t);try{let a=await bu({domain:n,method:"GET",key:o,credential:s});if(a.status===404)return await a.arrayBuffer().catch(()=>{}),null;if(!a.ok){let d=await vu(a);throw new Kr(a.status,Cn.buildErrorDetail("GET",n,o,d||`status ${a.status}`,ku(a)))}let c=new Uint8Array(await a.arrayBuffer()),l=Ck(a.headers);return{body:c,contentType:l["content-type"],headers:l}}catch(a){throw a instanceof Kr?a:new Kr(0,Cn.buildErrorDetail("GET",n,o,Su(a)))}}async headObject(e,t,i){let n=await this.resolveDomain(i),s=await this.resolveCredential(),o=this.buildCosKey(e,t);try{let a=await bu({domain:n,method:"HEAD",key:o,credential:s});if(a.status===404)return null;if(!a.ok){let l=await vu(a);throw new Kr(a.status,Cn.buildErrorDetail("HEAD",n,o,l||`status ${a.status}`,ku(a)))}let c=Ck(a.headers);return{cacheControl:c["cache-control"],contentType:c["content-type"],etag:c.etag,headers:c}}catch(a){throw a instanceof Kr?a:new Kr(0,Cn.buildErrorDetail("HEAD",n,o,Su(a)))}}async deleteObject(e,t){let i=await this.resolveDomain("strong"),n=await this.resolveCredential(),s=this.buildCosKey(e,t);try{let o=await bu({domain:i,method:"DELETE",key:s,credential:n});if(o.status===204||o.status===404||o.ok){await o.arrayBuffer().catch(()=>{});return}let a=await vu(o);throw new Kr(o.status,Cn.buildErrorDetail("DELETE",i,s,a||`status ${o.status}`,ku(o)))}catch(o){throw o instanceof Kr?o:new Kr(0,Cn.buildErrorDetail("DELETE",i,s,Su(o)))}}async listObjects(e,t){await this.ensureInitialized();let i=`${this.keyPrefix}/${e}/`,n=t?.prefix?i+t.prefix:i,s=await this.getBucketRaw({prefix:n,delimiter:t?.delimiter,marker:t?.marker,maxKeys:t?.maxKeys,consistency:t?.consistency}),o=s.contents.map(c=>{let l=c.key,d=l.startsWith(i)?l.slice(i.length):l;return d?{key:d,etag:c.etag}:null}).filter(c=>c!==null),a=s.commonPrefixes.map(c=>c.startsWith(i)?c.slice(i.length):c).filter(c=>!!c);return{contents:o,commonPrefixes:a,isTruncated:s.isTruncated,nextMarker:s.nextMarker}}async listStores(e){let t=[],i="",n=!0;for(;n;){await this.ensureInitialized();let s=`${this.keyPrefix}/`,o=await this.getBucketRaw({prefix:s,delimiter:"/",maxKeys:1e3,marker:i||void 0,consistency:e});for(let a of o.commonPrefixes){let c=a.startsWith(s)?a.slice(s.length,-1):a.slice(0,-1);c&&t.push(c)}if(n=o.isTruncated,i=o.nextMarker,!n||!i)break}return t}async getBucketRaw(e){let t=await this.resolveDomain(e.consistency),i=await this.resolveCredential(),n={prefix:e.prefix};e.delimiter&&(n.delimiter=e.delimiter),e.marker&&(n.marker=e.marker),e.maxKeys&&(n["max-keys"]=e.maxKeys);try{let s=await bu({domain:t,method:"GET",query:n,credential:i});if(!s.ok){let a=await vu(s);throw new Kr(s.status,Cn.buildErrorDetail("LIST",t,e.prefix,a||`status ${s.status}`,ku(s)))}let o=await s.text();return IH(o)}catch(s){throw s instanceof Kr?s:new Kr(0,Cn.buildErrorDetail("LIST",t,e.prefix,Su(s)))}}};function yH(r){return r.replace(/[a-zA-Z0-9\-]+\.cos\.[a-zA-Z0-9\-.]+\.myqcloud\.com/gi,"[cos-origin]").replace(/[a-zA-Z0-9\-]+\.cos\.[a-zA-Z0-9\-.]+\.tencentcos\.cn/gi,"[cos-origin]")}async function vu(r){try{return await r.text()}catch{return""}}function ku(r){return r.headers.get("x-cos-request-id")||r.headers.get("x-eo-log-id")||void 0}function Su(r){let e=r,t=e.message||String(r),i=e.cause;if(i){let n=i.message||i.code||"";return n?`${t} (${n})`:t}return t}function Ck(r){let e={};return r.forEach((t,i)=>{e[i.toLowerCase()]=t}),e}function IH(r){let e=[],t=/([\s\S]*?)<\/Contents>/g,i;for(;(i=t.exec(r))!==null;){let c=i[1],l=Du(c,"Key"),d=Du(c,"ETag");l!==null&&e.push({key:Sx(l),etag:d||""})}let n=[],s=/([\s\S]*?)<\/CommonPrefixes>/g;for(;(i=s.exec(r))!==null;){let c=i[1],l=Du(c,"Prefix");l!==null&&n.push(Sx(l))}let o=Du(r,"IsTruncated")==="true",a=Du(r,"NextMarker")||"";return{contents:e,commonPrefixes:n,isTruncated:o,nextMarker:Sx(a)}}function Du(r,e){let t=new RegExp(`<${e}>([\\s\\S]*?)<\\/${e}>`).exec(r);return t?t[1]:null}function Sx(r){return r.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&")}var wH="X-RateLimit-Reset";async function Fx(r,e,t=2){e.signal?.throwIfAborted?.();try{let i=await fetch(r,e);if(t>0&&(i.status===429||i.status>=500)){let n=Ek(i.headers.get(wH));return await Bk(n,e.signal),Fx(r,e,t-1)}return i}catch(i){if(t===0||i instanceof DOMException&&i.name==="AbortError")throw i;let n=Ek();return await Bk(n,e.signal),Fx(r,e,t-1)}}function Ek(r){return r?Math.max(Number(r)*1e3-Date.now(),500):1500}function Bk(r,e){return new Promise((t,i)=>{if(e?.aborted)return i(e.reason);let n=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r),s=()=>{clearTimeout(n),i(e.reason)};e?.addEventListener("abort",s,{once:!0})})}var xH="prod";function CH(){let r=typeof process<"u"?process.env.PAGES_BLOB_STS_ENV:void 0;return r==="test"||r==="prod"?r:xH}var EH=300,BH="https://blob-sts.edgeone.site/",Tk=class{authToken;projectId;cached=null;constructor(r,e){this.authToken=r,this.projectId=e}async getCredential(){if(this.cached&&!this.isExpired(this.cached))return this.cached;let r=await this.fetchCredential();return this.cached=r,r}clearCache(){this.cached=null}isExpired(r){let e=Math.floor(Date.now()/1e3);return r.expiredTime-ee.abort(),1e4),i;try{i=await Fx(BH,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.authToken}`,"X-Env":CH()},body:JSON.stringify(this.projectId?{ProjectId:this.projectId}:{}),signal:e.signal})}catch(o){if(r<3){await Dx(500*r);continue}throw new Fo(`failed to obtain STS credential: ${o.message||"timeout"}`)}finally{clearTimeout(t)}if(i.status===413)throw new Fo("storage quota exceeded");if(i.status===429)throw new Fo("rate limited, please retry later");if(!i.ok){if(i.status>=500&&r<3){await Dx(500*r);continue}let o=await i.text().catch(()=>"unknown error");throw new Fo(`failed to obtain STS credential: ${i.status} ${o}`)}let n=await i.json(),s=n.data&&typeof n.data=="object"?n.data:n;if(s.tmpSecretId&&s.tmpSecretKey&&s.sessionToken&&s.expiredTime){let o=s.cosMainland,a=s.cosOverseas,c=i.headers.get("X-Edge-Region")||void 0;return{tmpSecretId:s.tmpSecretId,tmpSecretKey:s.tmpSecretKey,sessionToken:s.sessionToken,expiredTime:s.expiredTime,appId:s.appId||void 0,zoneId:s.zoneId||void 0,projectId:s.projectId||void 0,resourcePrefix:s.resourcePrefix||void 0,cosMainland:o||void 0,cosOverseas:a||void 0,edgeRegion:c}}if(s.code!==void 0&&s.code!==0){let o=s.msg||s.message||"unknown error";throw new Fo(`credential exchange failed (code=${s.code}): ${o}`)}if(n.code!==void 0&&n.code!==0){let o=n.msg||n.message||"unknown error";throw new Fo(`credential exchange failed (code=${n.code}): ${o}`)}if(r<3){await Dx(500*r);continue}throw new Fo("invalid STS credential response")}throw new Fo("invalid STS credential response")}};function Dx(r){return new Promise(e=>setTimeout(e,r))}var bH="{{PAGES_BLOB_DEPLOY_CREDENTIAL}}";function vH(){let r={},e=kH();if(e)r.deployCredential=e;else{let i=bk("PAGES_BLOB_DEPLOY_CREDENTIAL");i&&(r.deployCredential=i)}let t=bk("PAGES_PROJECT_ID");return t&&(r.projectId=t),r}function kH(){let r=bH;if(!(r.startsWith("{{")&&r.endsWith("}}")))return r||void 0}function bk(r){if(typeof process<"u"&&process.env)return process.env[r]}function SH(r){let e=typeof r=="string"?r:r.name;dH(e);let t=Uk(typeof r=="string"?void 0:r),i=new Tk(t.authToken,t.projectId),n=new Pk(i);return new Sk(n,e,t.consistency??"eventual")}async function DH(r){let e=Uk(r?{name:"__list__",projectId:r.projectId,token:r.token,consistency:r.consistency}:void 0),t=new Tk(e.authToken,e.projectId);return{stores:(await new Pk(t).listStores(e.consistency)).map(i=>({name:i}))}}function Uk(r){let e=vH(),t=r?.token||e.deployCredential,i=r?.projectId||e.projectId;if(r?.token||e.projectId){if(!i)throw new kk;if(!t)throw new kx(["token"]);return{authToken:t,projectId:i,consistency:r?.consistency}}if(r?.projectId&&!t)throw new kx(["token"]);if(!e.deployCredential)throw new kx(["deployCredential"]);return{authToken:e.deployCredential,consistency:r?.consistency}}});var Lk={};xn(Lk,{checkProxyConfig:()=>ec,kvDriver:()=>$0});function Nk(r){if(!r||typeof r!="object")return!1;try{return typeof r.get!="function"?!1:typeof r.put=="function"||typeof r.set=="function"}catch{return!1}}function Za(r){let e=globalThis;return Nk(r?.KV)?r.KV:Nk(e?.KV)?e.KV:null}function Ok(r){try{let e=r?.JWT_SECRET;return typeof e=="string"&&e.length>=16?e:null}catch{return null}}function ec(r){try{if(Za(r)!==null||Ok(r))return null}catch{}return`KV proxy mode requires the JWT_SECRET environment variable with at least 16 characters. +${await VK(f)} +`,g=await DD(r.secretKey,s),p=await DD(g,h),I=["q-sign-algorithm=sha1",`q-ak=${r.secretId}`,`q-sign-time=${s}`,`q-key-time=${s}`,`q-header-list=${a}`,`q-url-param-list=${d}`,`q-signature=${p}`].join("&"),m={};for(let[w,B]of o)m[w]=B;return{authorization:I,signedHeaders:m}}async function XK(r){let e=new URL(r.domain),t=zh(r.key),i=`/${LD(t)}`,n=`/${HD(t)}`;e.pathname=n;let{authorization:s}=await KD({method:r.method,pathname:i,query:r.query,headers:r.headers,secretId:r.credential.secretId,secretKey:r.credential.secretKey,expireSeconds:r.expireSeconds});if(r.query)for(let[o,a]of Object.entries(r.query))a!=null&&e.searchParams.set(o,String(a));for(let o of s.split("&")){let a=o.indexOf("=");if(a===-1)continue;let c=o.slice(0,a),l=o.slice(a+1);e.searchParams.set(c,l)}return r.credential.sessionToken&&e.searchParams.set("x-cos-security-token",r.credential.sessionToken),e.toString()}async function Mu(r){let e=new URL(r.domain),t=r.key?zh(r.key):"",i=t?`/${LD(t)}`:"/",n=t?`/${HD(t)}`:"/";if(e.pathname=n,r.query)for(let[u,f]of Object.entries(r.query))f!=null&&e.searchParams.set(u,String(f));let{authorization:s}=await KD({method:r.method,pathname:i,query:r.query,headers:r.headers,secretId:r.credential.secretId,secretKey:r.credential.secretKey}),o=new Headers;if(r.headers)for(let[u,f]of Object.entries(r.headers))f!=null&&o.set(u,String(f));o.set("Authorization",s),r.credential.sessionToken&&o.set("x-cos-security-token",r.credential.sessionToken);let a=e.toString(),c={method:r.method,headers:o,body:r.body??void 0,signal:r.signal},l=2,d;for(let u=0;u<=l;u++)try{return await fetch(a,c)}catch(f){if(d=f,f instanceof DOMException&&f.name==="AbortError")throw f;usetTimeout(h,1e3*(u+1)))}throw d}var ZK="blob.edgeone.site",eG="blob-nocache.edgeone.site",GD=class En{credentialManager;bucket="";region="";keyPrefix="";cachedDomain="";uncachedDomain="";initialized=!1;static buildErrorDetail(e,t,i,n,s){let o=i?`${t}/${i}`:t,a=s?` [request-id: ${s}]`:"";return`${e} ${o} - ${tG(n)}${a}`}constructor(e){this.credentialManager=e}computeSubdomain(e){let t=[];if(e.appId&&t.push(e.appId),e.zoneId&&t.push(e.zoneId),e.projectId&&t.push(e.projectId),t.length>=2)return t.join("-");if(e.resourcePrefix){let i=e.resourcePrefix.replace(/\/?\*$/,"").split("/").filter(Boolean);if(i.length>=2)return i.slice(0,Math.min(i.length,3)).join("-")}return""}async ensureInitialized(){if(this.initialized)return;let e=await this.credentialManager.getCredential();!this.keyPrefix&&e.resourcePrefix&&(this.keyPrefix=e.resourcePrefix.replace(/\/?\*$/,""));let t=e.edgeRegion==="CN",i=e.cosMainland,n=e.cosOverseas,s=t?i||n:n||i;!this.bucket&&s&&(this.bucket=s.bucket,this.region=s.region);let o=this.computeSubdomain(e);if(!o)throw new zr(0,"unable to derive tenant subdomain from credential; missing appId/zoneId/projectId or resourcePrefix");this.cachedDomain=`https://${o}.${ZK}`,this.uncachedDomain=`https://${o}.${eG}`,this.initialized=!0}async resolveDomain(e){return await this.ensureInitialized(),e==="strong"?this.uncachedDomain:this.cachedDomain}async resolveCredential(){let e=await this.credentialManager.getCredential();return{secretId:e.tmpSecretId,secretKey:e.tmpSecretKey,sessionToken:e.sessionToken}}buildCosKey(e,t){return`${this.keyPrefix}/${e}/${t}`}async getDomains(){return await this.ensureInitialized(),{cached:this.cachedDomain,uncached:this.uncachedDomain}}async putObject(e,t,i,n){let s=await this.resolveDomain("strong"),o=await this.resolveCredential(),a=this.buildCosKey(e,t),c=n?.cacheControl===null?void 0:n?.cacheControl??"max-age=0, stale-while-revalidate=60",l={};n?.onlyIfNew&&(l["If-None-Match"]="*"),c&&(l["Cache-Control"]=c),n?.contentType&&(l["Content-Type"]=n.contentType);try{let d=await Mu({domain:s,method:"PUT",key:a,headers:l,body:i,credential:o});if(d.status===412)return await d.arrayBuffer().catch(()=>{}),{etag:"",statusCode:412};if(!d.ok){let f=await Lu(d);throw new zr(d.status,En.buildErrorDetail("PUT",s,a,f||`status ${d.status}`,Hu(d)))}let u=d.headers.get("etag")||"";return await d.arrayBuffer().catch(()=>{}),{etag:u,statusCode:d.status}}catch(d){throw d instanceof zr?d:new zr(0,En.buildErrorDetail("PUT",s,a,Ku(d)))}}async createPresignedPutUrl(e,t,i){let n=await this.resolveDomain("strong"),s=await this.resolveCredential(),o=this.buildCosKey(e,t),a={};i?.contentType&&(a["Content-Type"]=i.contentType);let c=i?.expireSeconds??3600,l=await XK({domain:n,method:"PUT",key:o,headers:a,credential:s,expireSeconds:c}),d=Math.floor(Date.now()/1e3)+c;return{url:l,expiresAt:d}}async getObject(e,t,i){let n=await this.resolveDomain(i),s=await this.resolveCredential(),o=this.buildCosKey(e,t);try{let a=await Mu({domain:n,method:"GET",key:o,credential:s});if(a.status===404)return await a.arrayBuffer().catch(()=>{}),null;if(!a.ok){let d=await Lu(a);throw new zr(a.status,En.buildErrorDetail("GET",n,o,d||`status ${a.status}`,Hu(a)))}let c=new Uint8Array(await a.arrayBuffer()),l=PD(a.headers);return{body:c,contentType:l["content-type"],headers:l}}catch(a){throw a instanceof zr?a:new zr(0,En.buildErrorDetail("GET",n,o,Ku(a)))}}async headObject(e,t,i){let n=await this.resolveDomain(i),s=await this.resolveCredential(),o=this.buildCosKey(e,t);try{let a=await Mu({domain:n,method:"HEAD",key:o,credential:s});if(a.status===404)return null;if(!a.ok){let l=await Lu(a);throw new zr(a.status,En.buildErrorDetail("HEAD",n,o,l||`status ${a.status}`,Hu(a)))}let c=PD(a.headers);return{cacheControl:c["cache-control"],contentType:c["content-type"],etag:c.etag,headers:c}}catch(a){throw a instanceof zr?a:new zr(0,En.buildErrorDetail("HEAD",n,o,Ku(a)))}}async deleteObject(e,t){let i=await this.resolveDomain("strong"),n=await this.resolveCredential(),s=this.buildCosKey(e,t);try{let o=await Mu({domain:i,method:"DELETE",key:s,credential:n});if(o.status===204||o.status===404||o.ok){await o.arrayBuffer().catch(()=>{});return}let a=await Lu(o);throw new zr(o.status,En.buildErrorDetail("DELETE",i,s,a||`status ${o.status}`,Hu(o)))}catch(o){throw o instanceof zr?o:new zr(0,En.buildErrorDetail("DELETE",i,s,Ku(o)))}}async listObjects(e,t){await this.ensureInitialized();let i=`${this.keyPrefix}/${e}/`,n=t?.prefix?i+t.prefix:i,s=await this.getBucketRaw({prefix:n,delimiter:t?.delimiter,marker:t?.marker,maxKeys:t?.maxKeys,consistency:t?.consistency}),o=s.contents.map(c=>{let l=c.key,d=l.startsWith(i)?l.slice(i.length):l;return d?{key:d,etag:c.etag}:null}).filter(c=>c!==null),a=s.commonPrefixes.map(c=>c.startsWith(i)?c.slice(i.length):c).filter(c=>!!c);return{contents:o,commonPrefixes:a,isTruncated:s.isTruncated,nextMarker:s.nextMarker}}async listStores(e){let t=[],i="",n=!0;for(;n;){await this.ensureInitialized();let s=`${this.keyPrefix}/`,o=await this.getBucketRaw({prefix:s,delimiter:"/",maxKeys:1e3,marker:i||void 0,consistency:e});for(let a of o.commonPrefixes){let c=a.startsWith(s)?a.slice(s.length,-1):a.slice(0,-1);c&&t.push(c)}if(n=o.isTruncated,i=o.nextMarker,!n||!i)break}return t}async getBucketRaw(e){let t=await this.resolveDomain(e.consistency),i=await this.resolveCredential(),n={prefix:e.prefix};e.delimiter&&(n.delimiter=e.delimiter),e.marker&&(n.marker=e.marker),e.maxKeys&&(n["max-keys"]=e.maxKeys);try{let s=await Mu({domain:t,method:"GET",query:n,credential:i});if(!s.ok){let a=await Lu(s);throw new zr(s.status,En.buildErrorDetail("LIST",t,e.prefix,a||`status ${s.status}`,Hu(s)))}let o=await s.text();return rG(o)}catch(s){throw s instanceof zr?s:new zr(0,En.buildErrorDetail("LIST",t,e.prefix,Ku(s)))}}};function tG(r){return r.replace(/[a-zA-Z0-9\-]+\.cos\.[a-zA-Z0-9\-.]+\.myqcloud\.com/gi,"[cos-origin]").replace(/[a-zA-Z0-9\-]+\.cos\.[a-zA-Z0-9\-.]+\.tencentcos\.cn/gi,"[cos-origin]")}async function Lu(r){try{return await r.text()}catch{return""}}function Hu(r){return r.headers.get("x-cos-request-id")||r.headers.get("x-eo-log-id")||void 0}function Ku(r){let e=r,t=e.message||String(r),i=e.cause;if(i){let n=i.message||i.code||"";return n?`${t} (${n})`:t}return t}function PD(r){let e={};return r.forEach((t,i)=>{e[i.toLowerCase()]=t}),e}function rG(r){let e=[],t=/([\s\S]*?)<\/Contents>/g,i;for(;(i=t.exec(r))!==null;){let c=i[1],l=Gu(c,"Key"),d=Gu(c,"ETag");l!==null&&e.push({key:Xx(l),etag:d||""})}let n=[],s=/([\s\S]*?)<\/CommonPrefixes>/g;for(;(i=s.exec(r))!==null;){let c=i[1],l=Gu(c,"Prefix");l!==null&&n.push(Xx(l))}let o=Gu(r,"IsTruncated")==="true",a=Gu(r,"NextMarker")||"";return{contents:e,commonPrefixes:n,isTruncated:o,nextMarker:Xx(a)}}function Gu(r,e){let t=new RegExp(`<${e}>([\\s\\S]*?)<\\/${e}>`).exec(r);return t?t[1]:null}function Xx(r){return r.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&")}var iG="X-RateLimit-Reset";async function rC(r,e,t=2){e.signal?.throwIfAborted?.();try{let i=await fetch(r,e);if(t>0&&(i.status===429||i.status>=500)){let n=TD(i.headers.get(iG));return await UD(n,e.signal),rC(r,e,t-1)}return i}catch(i){if(t===0||i instanceof DOMException&&i.name==="AbortError")throw i;let n=TD();return await UD(n,e.signal),rC(r,e,t-1)}}function TD(r){return r?Math.max(Number(r)*1e3-Date.now(),500):1500}function UD(r,e){return new Promise((t,i)=>{if(e?.aborted)return i(e.reason);let n=setTimeout(()=>{e?.removeEventListener("abort",s),t()},r),s=()=>{clearTimeout(n),i(e.reason)};e?.addEventListener("abort",s,{once:!0})})}var nG="prod";function sG(){let r=typeof process<"u"?process.env.PAGES_BLOB_STS_ENV:void 0;return r==="test"||r==="prod"?r:nG}var oG=300,aG="https://blob-sts.edgeone.site/",zD=class{authToken;projectId;cached=null;constructor(r,e){this.authToken=r,this.projectId=e}async getCredential(){if(this.cached&&!this.isExpired(this.cached))return this.cached;let r=await this.fetchCredential();return this.cached=r,r}clearCache(){this.cached=null}isExpired(r){let e=Math.floor(Date.now()/1e3);return r.expiredTime-ee.abort(),1e4),i;try{i=await rC(aG,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.authToken}`,"X-Env":sG()},body:JSON.stringify(this.projectId?{ProjectId:this.projectId}:{}),signal:e.signal})}catch(o){if(r<3){await Zx(500*r);continue}throw new Go(`failed to obtain STS credential: ${o.message||"timeout"}`)}finally{clearTimeout(t)}if(i.status===413)throw new Go("storage quota exceeded");if(i.status===429)throw new Go("rate limited, please retry later");if(!i.ok){if(i.status>=500&&r<3){await Zx(500*r);continue}let o=await i.text().catch(()=>"unknown error");throw new Go(`failed to obtain STS credential: ${i.status} ${o}`)}let n=await i.json(),s=n.data&&typeof n.data=="object"?n.data:n;if(s.tmpSecretId&&s.tmpSecretKey&&s.sessionToken&&s.expiredTime){let o=s.cosMainland,a=s.cosOverseas,c=i.headers.get("X-Edge-Region")||void 0;return{tmpSecretId:s.tmpSecretId,tmpSecretKey:s.tmpSecretKey,sessionToken:s.sessionToken,expiredTime:s.expiredTime,appId:s.appId||void 0,zoneId:s.zoneId||void 0,projectId:s.projectId||void 0,resourcePrefix:s.resourcePrefix||void 0,cosMainland:o||void 0,cosOverseas:a||void 0,edgeRegion:c}}if(s.code!==void 0&&s.code!==0){let o=s.msg||s.message||"unknown error";throw new Go(`credential exchange failed (code=${s.code}): ${o}`)}if(n.code!==void 0&&n.code!==0){let o=n.msg||n.message||"unknown error";throw new Go(`credential exchange failed (code=${n.code}): ${o}`)}if(r<3){await Zx(500*r);continue}throw new Go("invalid STS credential response")}throw new Go("invalid STS credential response")}};function Zx(r){return new Promise(e=>setTimeout(e,r))}var cG="{{PAGES_BLOB_DEPLOY_CREDENTIAL}}";function lG(){let r={},e=dG();if(e)r.deployCredential=e;else{let i=RD("PAGES_BLOB_DEPLOY_CREDENTIAL");i&&(r.deployCredential=i)}let t=RD("PAGES_PROJECT_ID");return t&&(r.projectId=t),r}function dG(){let r=cG;if(!(r.startsWith("{{")&&r.endsWith("}}")))return r||void 0}function RD(r){if(typeof process<"u"&&process.env)return process.env[r]}function uG(r){let e=typeof r=="string"?r:r.name;jK(e);let t=JD(typeof r=="string"?void 0:r),i=new zD(t.authToken,t.projectId),n=new GD(i);return new OD(n,e,t.consistency??"eventual")}async function fG(r){let e=JD(r?{name:"__list__",projectId:r.projectId,token:r.token,consistency:r.consistency}:void 0),t=new zD(e.authToken,e.projectId);return{stores:(await new GD(t).listStores(e.consistency)).map(i=>({name:i}))}}function JD(r){let e=lG(),t=r?.token||e.deployCredential,i=r?.projectId||e.projectId;if(r?.token||e.projectId){if(!i)throw new qD;if(!t)throw new Wx(["token"]);return{authToken:t,projectId:i,consistency:r?.consistency}}if(r?.projectId&&!t)throw new Wx(["token"]);if(!e.deployCredential)throw new Wx(["deployCredential"]);return{authToken:e.deployCredential,consistency:r?.consistency}}});var XD={};Cn(XD,{checkProxyConfig:()=>Ql,kvDriver:()=>jh});function $D(r){if(!r||typeof r!="object")return!1;try{return typeof r.get!="function"?!1:typeof r.put=="function"||typeof r.set=="function"}catch{return!1}}function uc(r){let e=globalThis;return $D(r?.KV)?r.KV:$D(e?.KV)?e.KV:null}function YD(r){try{let e=r?.JWT_SECRET;return typeof e=="string"&&e.trim().length>0?e:null}catch{return null}}function Ql(r){try{if(uc(r)!==null||YD(r))return null}catch{}return`KV proxy mode requires the JWT_SECRET environment variable to be set. Reason: EdgeOne Node Functions cannot access KV directly and must go through an Edge Function proxy, whose authentication depends on this secret. Add it under Environment Variables in the EdgeOne project settings, for example: - JWT_SECRET= -Generate one with: openssl rand -hex 32`}function _u(r){let e={"Content-Type":"application/json"},t=Ok(r);t&&(e["X-Internal-Call"]=t);let i=r?._currentUserToken;return i&&(e.Authorization=`Bearer ${i}`),e}function Mk(r){if(!r)return"";let e=r.EO_KV_URLS;if(e){let i=wl(e,r);if(i)return i}let t=r.__requestOrigin;if(t){let i=wl(t,r);if(i)return i}return""}async function qk(r){let e=ec(r);if(e)return{ok:!1,status:0,error:e.split(` -`)[0]};let t=Mk(r);if(!t)return{ok:!1,status:0,error:"cannot determine deployment origin. Set EO_KV_URLS to the deployment origin."};try{let i=`${t}/kv-list?prefix=__health__`,n=await fetch(i,{method:"GET",headers:_u(r)});return{ok:n.ok,status:n.status}}catch(i){return{ok:!1,status:0,error:i?.message||String(i)}}}function j0(r){let e=ec(r);if(e)throw new Error("KV proxy misconfigured: "+e.split(` -`)[0]);let t=Mk(r);if(!t)throw new Error("KV proxy base URL unavailable: cannot determine deployment origin. Set EO_KV_URLS to the deployment origin.");return t}var $0,Ux=j(()=>{"use strict";K0();$0={name:"kv",async isAvailable(r){if(Za(r)!==null)return!0;let e=await qk(r);return!e.ok&&e.status!==401?(e.error&&console.error("[DB] KV proxy unavailable: "+e.error),!1):!0},async init(r){},async get(r,e){let t=Za(e);if(t){let s=a=>a instanceof TypeError||/not a function|invalid|unexpected|argument/i.test(String(a?.message||"")),o;try{o=await t.get(r,"text")}catch(a){if(!s(a))throw a;o=void 0}if(o==null)try{o=await t.get(r,{type:"text"})}catch(a){if(!s(a))throw a;o=null}return o==null?null:typeof o=="string"?o:JSON.stringify(o)}let n=`${j0(e)}/kv-get?key=${encodeURIComponent(r)}`;try{let s=await fetch(n,{method:"GET",headers:_u(e)});if(!s.ok){if(s.status===404)return null;throw new Error(`KV proxy get failed: ${s.status}`)}let o=await s.json();return o?.value===void 0||o?.value===null?null:typeof o.value=="string"?o.value:String(o.value)}catch(s){throw console.error(`[KV] get(${r}) failed:`,s),s}},async put(r,e,t){let i=Za(t);if(i){await i.put(r,e);return}let s=`${j0(t)}/kv-put`;try{let o=await fetch(s,{method:"POST",headers:_u(t),body:JSON.stringify({key:r,value:e})});if(!o.ok)throw new Error(`KV proxy put failed: ${o.status}`)}catch(o){throw console.error(`[KV] put(${r}) failed:`,o),o}},async delete(r,e){let t=Za(e);if(t){await t.delete(r);return}let n=`${j0(e)}/kv-delete?key=${encodeURIComponent(r)}`;try{let s=await fetch(n,{method:"DELETE",headers:_u(e)});if(!s.ok&&s.status!==404)throw new Error(`KV proxy delete failed: ${s.status}`)}catch(s){throw console.error(`[KV] delete(${r}) failed:`,s),s}},async list(r,e){let t=Za(e);if(t){let s=[],o="",a=!1,c=0;for(;!a&&c<1e3;){c+=1;let l=await t.list({prefix:r,cursor:o,limit:256}),d=Array.isArray(l?.keys)?l.keys:[];for(let u of d)u?.key&&s.push(u.key);d.length>0&&(o=d[d.length-1].key||""),a=!!l?.complete||d.length===0}return s}let n=`${j0(e)}/kv-list?prefix=${encodeURIComponent(r)}`;try{let s=await fetch(n,{method:"GET",headers:_u(e)});if(!s.ok)throw new Error(`KV proxy list failed: ${s.status}`);return(await s.json()).keys||[]}catch(s){throw console.error(`[KV] list(${r}) failed:`,s),s}},async health(r){let e=Za(r);if(e)try{return await e.get("__health_check__"),{driver:"kv",mode:"binding",available:!0,platform:"Cloudflare KV / EdgeOne KV"}}catch(i){return{driver:"kv",mode:"binding",available:!1,error:i?.message||String(i)}}let t=await qk(r);return t.ok?{driver:"kv",mode:"proxy",available:!0,platform:"EdgeOne KV (via Edge Function proxy)"}:{driver:"kv",mode:"proxy",available:!1,error:t.error||`HTTP ${t.status}`}}}});function Hk(r){if(!r||typeof r!="object")return!1;try{return typeof r.get!="function"?!1:typeof r.put=="function"||typeof r.set=="function"}catch{return!1}}function xl(r){let e=globalThis,t=r?.ESA_BLOB;if(Hk(t))return t;let i=e?.ESA_BLOB;return Hk(i)?i:null}async function Cl(r="default"){try{let{getStore:e}=await Promise.resolve().then(()=>Qr(Tx(),1));return e(r)}catch{return null}}var Rx,Kk=j(()=>{"use strict";Rx={name:"blob",async isAvailable(r){return xl(r)!==null?!0:await Cl()!==null},async init(r){},async get(r,e){let t=xl(e);if(t)try{let n=await t.get(r);return n?await n.text():null}catch(n){return console.warn(`[Blob] ESA get key="${r}" failed:`,n),null}let i=await Cl();if(!i)throw new Error("Blob not available");try{let n=await i.get(r);return n==null?null:typeof n=="string"?n:JSON.stringify(n)}catch(n){return console.warn(`[Blob] EdgeOne get key="${r}" failed:`,n),null}},async put(r,e,t){let i=xl(t);if(i){await i.put(r,e);return}let n=await Cl();if(!n)throw new Error("Blob not available");await n.set(r,e)},async delete(r,e){let t=xl(e);if(t){await t.delete(r);return}let i=await Cl();if(!i)throw new Error("Blob not available");await i.delete(r)},async list(r,e){let t=xl(e);if(t){let s=[],o;do{let a=await t.list({prefix:r,cursor:o});s.push(...(a?.keys||[]).map(c=>c.name)),o=a?.cursor}while(o);return s}let i=await Cl();if(!i)throw new Error("Blob not available");return((await i.list({prefix:r,paginate:!0}))?.blobs||[]).map(s=>s.key)},async health(r){let e=xl(r),t=await Cl();if(e)try{return await e.head("__health_check__"),{driver:"blob",platform:"ESA Blob (binding)",available:!0}}catch(i){return{driver:"blob",platform:"ESA Blob (binding)",available:!1,error:i?.message||String(i)}}if(t)try{return await t.get("__health_check__"),{driver:"blob",platform:"EdgeOne Blob (SDK)",available:!0}}catch(i){return{driver:"blob",platform:"EdgeOne Blob (SDK)",available:!1,error:i?.message||String(i)}}return{driver:"blob",available:!1,error:"No Blob storage available"}}}});function El(r){let e=r||(typeof process<"u"?process.env:{})||{},t=e.CF_ACCOUNT||e.CLOUDFLARE_ACCOUNT_ID,i=e.CF_KV_UUID||e.CLOUDFLARE_KV_NAMESPACE_ID,n=e.CF_API_KEY||e.CLOUDFLARE_API_TOKEN;return!t||!i||!n?null:{accountId:t,namespaceId:i,apiToken:n}}function V0(r,e){return`https://api.cloudflare.com/client/v4/accounts/${r.accountId}/storage/kv/namespaces/${r.namespaceId}${e}`}var Nx,Gk=j(()=>{"use strict";Nx={name:"cfkv",async isAvailable(r){return El(r)!==null},async init(r){},async get(r,e){let t=El(e);if(!t)throw new Error("Cloudflare KV API not configured");let i=V0(t,`/values/${encodeURIComponent(r)}`),n=await fetch(i,{headers:{Authorization:`Bearer ${t.apiToken}`}});if(n.status===404)return null;if(!n.ok)throw new Error(`Cloudflare KV API error: ${n.status}`);return await n.text()},async put(r,e,t){let i=El(t);if(!i)throw new Error("Cloudflare KV API not configured");let n=V0(i,`/values/${encodeURIComponent(r)}`),s=await fetch(n,{method:"PUT",headers:{Authorization:`Bearer ${i.apiToken}`},body:e});if(!s.ok)throw new Error(`Cloudflare KV API error: ${s.status}`)},async delete(r,e){let t=El(e);if(!t)throw new Error("Cloudflare KV API not configured");let i=V0(t,`/values/${encodeURIComponent(r)}`),n=await fetch(i,{method:"DELETE",headers:{Authorization:`Bearer ${t.apiToken}`}});if(!n.ok&&n.status!==404)throw new Error(`Cloudflare KV API error: ${n.status}`)},async list(r,e){let t=El(e);if(!t)throw new Error("Cloudflare KV API not configured");let i=[],n;do{let s=new URLSearchParams({prefix:r,limit:"1000"});n&&s.set("cursor",n);let o=V0(t,`/keys?${s}`),a=await fetch(o,{headers:{Authorization:`Bearer ${t.apiToken}`}});if(!a.ok)throw new Error(`Cloudflare KV API error: ${a.status}`);let c=await a.json();i.push(...(c.result||[]).map(l=>l.name)),n=c.result_info?.cursor}while(n);return i},async health(r){let e=El(r);if(!e)return{configured:!1,connected:!1,platform:"Cloudflare KV API (REST)",mode:"cfkv",error:"Missing CF_ACCOUNT, CF_KV_UUID, or CF_API_KEY"};try{return await this.get("__health_check__",r),{configured:!0,connected:!0,platform:"Cloudflare KV API (REST)",mode:"cfkv",accountId:e.accountId,namespaceId:e.namespaceId}}catch(t){return{configured:!0,connected:!1,platform:"Cloudflare KV API (REST)",mode:"cfkv",error:t?.message||String(t)}}}}});function qx(r){return"x_"}function Ox(r,e){return qx(e)+_H[r]}function FH(r,e){if(e==null){if(r.pk||r.nullable)return null;switch(r.type){case"string":return"";case"number":return 0;case"bool":return 0;case"json":return"null";case"date":return"";default:return""}}switch(r.type){case"string":return String(e);case"number":return typeof e=="number"?e:Number(e);case"bool":return e?1:0;case"json":return typeof e=="string"?e:JSON.stringify(e);case"date":return e instanceof Date?e.toISOString():typeof e=="number"?new Date(e).toISOString():String(e);default:return e}}function PH(r,e){if(e==null)return r.type==="json",null;switch(r.type){case"string":{let t=String(e);return t===""?null:t}case"number":return Number(e);case"bool":return e===1||e==="1"||e===!0||e==="true";case"json":{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}case"date":return e;default:return e}}function W0(r,e){let t=Y0[r],i={};for(let n of t.columns){let s=n.key??n.name,o=PH(n,e[n.name]);o!=null&&(i[s]=o)}return i}function X0(r,e){let t=Y0[r],i=[],n=[];for(let s of t.columns){let o=s.key??s.name;i.push(s.name),n.push(FH(s,e?.[o]))}return{columns:i,values:n}}function TH(r,e){switch(r.type){case"number":return e==="mysql"?"BIGINT":"INTEGER";case"bool":return e==="mysql"?"TINYINT(1)":"INTEGER";case"string":case"json":case"date":return"TEXT";default:return"TEXT"}}function Po(r){return"`"+r+"`"}function UH(r,e,t){let i=[];for(let n of r.columns){let s=`${Po(n.name)} ${TH(n,e)}`;n.pk?s+=" PRIMARY KEY":n.nullable||(s+=" NOT NULL"),n.unique&&(s+=" UNIQUE"),i.push(s)}return`CREATE TABLE IF NOT EXISTS ${Po(t)} (${i.join(", ")})`}function RH(r){let e=r==="mysql"?"VARCHAR(255)":"TEXT";return`CREATE TABLE IF NOT EXISTS ${Po("schema_info")} (${Po("k")} ${e} PRIMARY KEY, ${Po("v")} TEXT)`}function Bl(r,e){let t=[RH(r)];for(let i of QH)t.push(UH(Y0[i],r,Ox(i,e)));return t}var To,QH,tc,Y0,_H,hle,gle,zk,Jk,Fu=j(()=>{"use strict";To=["settings","storages","users","shares","metas","plugins"],QH=[...To,"sshkeys"],tc={settings:"key",storages:"id",users:"id",shares:"id",metas:"id",plugins:"id",sshkeys:"id"},Y0={settings:{name:"settings",columns:[{name:"key",type:"string",pk:!0},{name:"value",type:"string",nullable:!0},{name:"help",type:"string",nullable:!0},{name:"type",type:"string",nullable:!0},{name:"options",type:"string",nullable:!0},{name:"group",type:"number",nullable:!0},{name:"flag",type:"number",nullable:!0},{name:"index",type:"number",nullable:!0}]},storages:{name:"storages",columns:[{name:"id",type:"number",pk:!0},{name:"mount_path",type:"string",unique:!0},{name:"order",type:"number",nullable:!0},{name:"driver",type:"string",nullable:!0},{name:"cache_expiration",type:"number",nullable:!0},{name:"custom_cache_policies",type:"string",nullable:!0},{name:"status",type:"string",nullable:!0},{name:"addition",type:"string",nullable:!0},{name:"remark",type:"string",nullable:!0},{name:"modified",type:"date",nullable:!0},{name:"disabled",type:"bool",nullable:!0},{name:"disable_index",type:"bool",nullable:!0},{name:"enable_sign",type:"bool",nullable:!0},{name:"seed_policy",type:"string",nullable:!0},{name:"order_by",type:"string",nullable:!0},{name:"order_direction",type:"string",nullable:!0},{name:"extract_folder",type:"string",nullable:!0},{name:"web_proxy",type:"bool",nullable:!0},{name:"webdav_policy",type:"string",nullable:!0},{name:"proxy_range",type:"bool",nullable:!0},{name:"down_proxy_url",type:"string",nullable:!0},{name:"disable_proxy_sign",type:"bool",nullable:!0}]},users:{name:"users",columns:[{name:"id",type:"number",pk:!0},{name:"username",type:"string",unique:!0},{name:"password",type:"string",nullable:!0},{name:"base_path",type:"string",nullable:!0},{name:"role",type:"number",nullable:!0},{name:"disabled",type:"bool",nullable:!0},{name:"permission",type:"number",nullable:!0},{name:"salt",type:"string",nullable:!0},{name:"otp_secret",type:"string",nullable:!0},{name:"sso_id",type:"string",nullable:!0},{name:"authn",type:"string",nullable:!0},{name:"allow_ldap",type:"bool",nullable:!0},{name:"pwd_update_at",type:"date",nullable:!0}]},shares:{name:"shares",columns:[{name:"id",type:"string",pk:!0},{name:"files_raw",key:"files",type:"json",nullable:!0},{name:"expires",type:"date",nullable:!0},{name:"pwd",type:"string",nullable:!0},{name:"accessed",type:"number",nullable:!0},{name:"max_accessed",type:"number",nullable:!0},{name:"creator_id",type:"number",nullable:!0},{name:"disabled",type:"bool",nullable:!0},{name:"remark",type:"string",nullable:!0},{name:"readme",type:"string",nullable:!0},{name:"header",type:"string",nullable:!0},{name:"order_by",type:"string",nullable:!0},{name:"order_direction",type:"string",nullable:!0},{name:"extract_folder",type:"string",nullable:!0}]},metas:{name:"metas",columns:[{name:"id",type:"number",pk:!0},{name:"path",type:"string",unique:!0},{name:"read_users",type:"json",nullable:!0},{name:"read_users_sub",type:"bool",nullable:!0},{name:"write_users",type:"json",nullable:!0},{name:"write_users_sub",type:"bool",nullable:!0},{name:"password",type:"string",nullable:!0},{name:"p_sub",type:"bool",nullable:!0},{name:"write",type:"bool",nullable:!0},{name:"w_sub",type:"bool",nullable:!0},{name:"hide",type:"string",nullable:!0},{name:"h_sub",type:"bool",nullable:!0},{name:"readme",type:"string",nullable:!0},{name:"r_sub",type:"bool",nullable:!0},{name:"header",type:"string",nullable:!0},{name:"header_sub",type:"bool",nullable:!0}]},sshkeys:{name:"sshkeys",columns:[{name:"id",type:"number",pk:!0},{name:"user_id",type:"number",nullable:!0},{name:"title",type:"string",nullable:!0},{name:"fingerprint",type:"string",nullable:!0},{name:"key_str",type:"string",nullable:!0},{name:"added_time",type:"date",nullable:!0},{name:"last_used_time",type:"date",nullable:!0}]},plugins:{name:"plugins",columns:[{name:"id",type:"string",pk:!0},{name:"name",type:"string",nullable:!0},{name:"version",type:"string",nullable:!0},{name:"description",type:"string",nullable:!0},{name:"author",type:"string",nullable:!0},{name:"homepage",type:"string",nullable:!0},{name:"repository",type:"string",nullable:!0},{name:"icon",type:"string",nullable:!0},{name:"type",type:"string",nullable:!0},{name:"enabled",type:"bool",nullable:!0},{name:"high_privilege",type:"bool",nullable:!0},{name:"permissions",type:"json",nullable:!0},{name:"entry_url",type:"string",nullable:!0},{name:"script_content",type:"string",nullable:!0},{name:"style_content",type:"string",nullable:!0},{name:"config_schema",type:"json",nullable:!0},{name:"config_values",type:"json",nullable:!0},{name:"target_hooks",type:"json",nullable:!0},{name:"is_builtin",type:"bool",nullable:!0},{name:"tags",type:"json",nullable:!0},{name:"created_at",type:"date",nullable:!0},{name:"updated_at",type:"date",nullable:!0}]}},_H={settings:"setting_items",storages:"storages",users:"users",shares:"sharing_dbs",metas:"metas",plugins:"plugins",sshkeys:"ssh_public_keys"};hle=Bl("sqlite"),gle=Bl("mysql"),zk=[`CREATE TABLE IF NOT EXISTS ${Po("kv")} (${Po("key")} TEXT PRIMARY KEY, ${Po("value")} TEXT NOT NULL)`],Jk=["CREATE TABLE IF NOT EXISTS `kv` (`key` VARCHAR(512) PRIMARY KEY, `value` LONGTEXT NOT NULL)"]});function jk(r){if(!r||typeof r!="object")return!1;try{return typeof r.prepare=="function"}catch{return!1}}function Kn(r){let e=typeof globalThis<"u"?globalThis:{};for(let t of["DB","OPENLIST_DB"]){let i=r?.[t];if(jk(i))return i;let n=e?.[t];if(jk(n))return n}return null}async function Uo(r,e){if(!$k.get(r)){for(let t of[...zk,...Bl("sqlite",e)])await r.prepare(t).run();$k.set(r,!0)}}var $k,Mx,Vk=j(()=>{"use strict";Fu();$k=new WeakMap;Mx={name:"d1",async isAvailable(r){return Kn(r)!=null},async init(r){let e=Kn(r);e&&await Uo(e)},async get(r,e){let t=Kn(e);if(!t)throw new Error("D1 binding not found");return await Uo(t,e),(await t.prepare("SELECT value FROM kv WHERE key = ?").bind(r).first())?.value||null},async put(r,e,t){let i=Kn(t);if(!i)throw new Error("D1 binding not found");await Uo(i,t),await i.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)").bind(r,e).run()},async delete(r,e){let t=Kn(e);if(!t)throw new Error("D1 binding not found");await Uo(t,e),await t.prepare("DELETE FROM kv WHERE key = ?").bind(r).run()},async list(r,e){let t=Kn(e);if(!t)throw new Error("D1 binding not found");return await Uo(t,e),((await t.prepare("SELECT key FROM kv WHERE key LIKE ? ORDER BY key").bind(`${r}%`).all()).results||[]).map(n=>n.key)},async query(r,e,t){let i=Kn(t);if(!i)throw new Error("D1 binding not found");return await Uo(i,t),(await i.prepare(r).bind(...e).all()).results||[]},async execute(r,e,t){let i=Kn(t);if(!i)throw new Error("D1 binding not found");await Uo(i,t),await i.prepare(r).bind(...e).run()},async batch(r,e){let t=Kn(e);if(!t)throw new Error("D1 binding not found");await Uo(t,e);let i=100,n=r.map(s=>t.prepare(s.sql).bind(...s.params));for(let s=0;s{"use strict";Hx={name:"do",async isAvailable(r){return Lx(r)!=null},async init(r){let e=Ds(r);e&&typeof e.init=="function"&&await e.init()},async get(r,e){let t=Ds(e);if(!t)throw new Error("DO binding not found");return await t.kvGet(r)},async put(r,e,t){let i=Ds(t);if(!i)throw new Error("DO binding not found");await i.kvPut(r,e)},async delete(r,e){let t=Ds(e);if(!t)throw new Error("DO binding not found");await t.kvDelete(r)},async list(r,e){let t=Ds(e);if(!t)throw new Error("DO binding not found");return await t.kvList(r)},async query(r,e,t){let i=Ds(t);if(!i)throw new Error("DO binding not found");return await i.sqlQuery(r,e)},async execute(r,e,t){let i=Ds(t);if(!i)throw new Error("DO binding not found");await i.sqlExecute(r,e)},async batch(r,e){let t=Ds(e);if(!t)throw new Error("DO binding not found");await t.sqlBatch(r)},async health(r){if(!Lx(r))return{configured:!1,connected:!1,platform:"Cloudflare Durable Objects",mode:"do",error:"DO binding not found (expected env.DO)"};try{return await Ds(r).health(),{configured:!0,connected:!0,platform:"Cloudflare Durable Objects (SQLite)",mode:"do",doId:Wk(r)}}catch(t){return{configured:!0,connected:!1,platform:"Cloudflare Durable Objects",mode:"do",error:t?.message||String(t)}}}}});function Zk(){return typeof process<"u"&&process.release?.name==="node"}function Kx(r){let e=r||(typeof process<"u"?process.env:{})||{},t=e?.MYSQL_URLS;if(t)return t;let i=e?.MYSQL_HOST;return i?{host:i,port:Number(e?.MYSQL_PORT||3306),user:e?.MYSQL_USER||"",password:e?.MYSQL_PASS||"",database:e?.MYSQL_NAME||""}:null}async function Qs(r){let e=Kx(r);if(!e)return null;let t=JSON.stringify(e);if(Z0&&eS===t)return Z0;let i="mysql2/promise",{createPool:n}=await import(i);return Z0=n(e),eS=t,Z0}async function Ro(r,e){let t=qx(e);if(tS!==t){for(let i of[...Jk,...Bl("mysql",e)])await r.query(i);tS=t}}var Z0,eS,tS,Gx,rS=j(()=>{"use strict";Fu();Z0=null,eS=null;tS=null;Gx={name:"mysql",async isAvailable(r){return Zk()?Kx(r)!=null:!1},async init(r){let e=await Qs(r);e&&await Ro(e)},async get(r,e){let t=await Qs(e);if(!t)throw new Error("MySQL pool not available");await Ro(t,e);let[i]=await t.query("SELECT `value` FROM `kv` WHERE `key` = ?",[r]);return i?.[0]?.value||null},async put(r,e,t){let i=await Qs(t);if(!i)throw new Error("MySQL pool not available");await Ro(i,t),await i.query("INSERT INTO `kv` (`key`, `value`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `value` = VALUES(`value`)",[r,e])},async delete(r,e){let t=await Qs(e);if(!t)throw new Error("MySQL pool not available");await Ro(t,e),await t.query("DELETE FROM `kv` WHERE `key` = ?",[r])},async list(r,e){let t=await Qs(e);if(!t)throw new Error("MySQL pool not available");await Ro(t,e);let[i]=await t.query("SELECT `key` FROM `kv` WHERE `key` LIKE ? ORDER BY `key`",[`${r}%`]);return(i||[]).map(n=>n.key)},async query(r,e,t){let i=await Qs(t);if(!i)throw new Error("MySQL pool not available");await Ro(i,t);let[n]=await i.query(r,e);return n||[]},async execute(r,e,t){let i=await Qs(t);if(!i)throw new Error("MySQL pool not available");await Ro(i,t),await i.query(r,e)},async batch(r,e){let t=await Qs(e);if(!t)throw new Error("MySQL pool not available");await Ro(t,e);let i=await t.getConnection();try{await i.beginTransaction();for(let n of r)await i.query(n.sql,n.params);await i.commit()}catch(n){try{await i.rollback()}catch{}throw n}finally{i.release()}},async health(r){if(!Zk())return{configured:!1,connected:!1,platform:"MySQL (mysql2)",mode:"mysql",error:"MySQL backend requires Node.js runtime"};if(!Kx(r))return{configured:!1,connected:!1,platform:"MySQL (mysql2)",mode:"mysql",error:"MySQL config not found (expected MYSQL_URLS or MYSQL_HOST)"};try{return await(await Qs(r)).query("SELECT 1"),{configured:!0,connected:!0,platform:"MySQL (mysql2)",mode:"mysql"}}catch(t){return{configured:!0,connected:!1,platform:"MySQL (mysql2)",mode:"mysql",error:t?.message||String(t)}}}}});var Pu,eh,iS=j(()=>{"use strict";Pu=new Map,eh={name:"memory",async isAvailable(){return!0},async init(){},async get(r){return Pu.get(r)??null},async put(r,e){Pu.set(r,e)},async delete(r){Pu.delete(r)},async list(r){return[...Pu.keys()].filter(e=>e.startsWith(r))},async health(){return{configured:!0,connected:!0,platform:"Memory",mode:"memory",hasData:Pu.size>0,error:null}}}});var nS,sS,oS=j(()=>{"use strict";nS="openlist_config",sS={name:"map",async load(r,e){let t=await r.get(nS,e);if(!t)return null;try{return JSON.parse(t)}catch(i){return console.error("[mapFormat] Failed to parse JSON:",i),null}},async save(r,e,t){let i=JSON.stringify(r);return await e.put(nS,i,t),!0}}});function NH(r){return r>="a"&&r<="z"||r>="A"&&r<="Z"||r>="0"&&r<="9"||r==="_"}function aS(r){let e=String(r??"");if(e==="")return"0";if(/^[A-Za-z0-9_]+$/.test(e))return e;let t="";for(let i of e)if(NH(i))t+=i;else for(let n of new TextEncoder().encode(i))t+="x"+n.toString(16).padStart(2,"0");return t}function zx(r){return`${aS(r)}_`}function cS(r,e){return`${zx(r)}${aS(e)}`}var lS=j(()=>{"use strict"});function th(r){return zx(r)}function Tu(r,e){return cS(r,e)}var dS,uS,fS=j(()=>{"use strict";Fu();lS();dS="openlist_config";uS={name:"key",async load(r,e){if(!await r.get(dS,e))return null;let i={};for(let n of To){let s=th(n),o=await r.list(s,e),a=[];for(let c of o){let l=await r.get(c,e);if(l)try{a.push(JSON.parse(l))}catch(d){console.warn(`[keyFormat] Failed to parse ${c}:`,d)}}i[n]=a}return i},async save(r,e,t){for(let i of To){let n=th(i),s=await e.list(n,t);for(let o of s)await e.delete(o,t)}for(let i of To){let n=tc[i],s=r?.[i]||[];for(let o of s){let a=String(o?.[n]??"");if(!a)continue;let c=Tu(i,a),l=JSON.stringify(o);await e.put(c,l,t)}}return await e.put(dS,String(Date.now()),t),!0},async getTable(r,e,t){let i=th(r),n=await e.list(i,t),s=[];for(let o of n){let a=await e.get(o,t);if(a)try{s.push(JSON.parse(a))}catch(c){console.warn(`[keyFormat] Failed to parse ${o}:`,c)}}return s},async saveTable(r,e,t,i){let n=tc[r],s=th(r),o=await t.list(s,i);for(let a of o)await t.delete(a,i);for(let a of e){let c=String(a?.[n]??"");if(!c)continue;let l=Tu(r,c),d=JSON.stringify(a);await t.put(l,d,i)}},async getRecord(r,e,t,i){let n=Tu(r,e),s=await t.get(n,i);if(!s)return null;try{return JSON.parse(s)}catch(o){return console.warn(`[keyFormat] Failed to parse ${n}:`,o),null}},async saveRecord(r,e,t,i,n){let s=Tu(r,e),o=JSON.stringify(t);await i.put(s,o,n)},async deleteRecord(r,e,t,i){let n=Tu(r,e);await t.delete(n,i)}}});function _s(r){return"`"+r+"`"}function Jx(r,e,t,i){let n=e.map(o=>_s(o)).join(", "),s=e.map(()=>"?").join(", ");if(i.name==="mysql"){let o=e.slice(1).map(c=>`${_s(c)} = VALUES(${_s(c)})`).join(", ");return{sql:o?`INSERT INTO ${r} (${n}) VALUES (${s}) ON DUPLICATE KEY UPDATE ${o}`:`INSERT INTO ${r} (${n}) VALUES (${s})`,params:t}}return{sql:`INSERT OR REPLACE INTO ${r} (${n}) VALUES (${s})`,params:t}}function Gn(r,e){return _s(Ox(r,e))}var AS,hS,gS=j(()=>{"use strict";Fu();AS="openlist_config";hS={name:"sql",async load(r,e){if(!r.query)throw new Error(`Driver ${r.name} does not support SQL queries`);let t=await r.query("SELECT v FROM schema_info WHERE k = ?",[AS],e);if(!t||t.length===0)return null;let i={};for(let n of To){let s=await r.query(`SELECT * FROM ${Gn(n,e)}`,[],e);i[n]=s.map(o=>W0(n,o))}return i},async save(r,e,t){if(!e.batch)throw new Error(`Driver ${e.name} does not support batch operations`);let i=[];for(let n of To){let s=tc[n],o=r?.[n]||[],a=[];for(let l of o){let{columns:d,values:u}=X0(n,l),f=Jx(Gn(n,t),d,u,e);i.push({sql:f.sql,params:f.params});let h=l?.[s];h!=null&&a.push(String(h))}let c=a.length>0?`DELETE FROM ${Gn(n,t)} WHERE ${_s(s)} NOT IN (${a.map(()=>"?").join(", ")})`:`DELETE FROM ${Gn(n,t)}`;i.push({sql:c,params:a})}return i.push(Jx(_s("schema_info"),["k","v"],[AS,String(Date.now())],e)),await e.batch(i,t),!0},async getTable(r,e,t){if(!e.query)throw new Error(`Driver ${e.name} does not support SQL queries`);let i=r;return(await e.query(`SELECT * FROM ${Gn(i,t)}`,[],t)).map(s=>W0(i,s))},async saveTable(r,e,t,i){if(!t.batch)throw new Error(`Driver ${t.name} does not support batch operations`);let n=r,s=[{sql:`DELETE FROM ${Gn(n,i)}`,params:[]}];for(let o of e){let{columns:a,values:c}=X0(n,o),l=a.map(()=>"?").join(", "),d=`INSERT INTO ${Gn(n,i)} (${a.map(u=>_s(u)).join(", ")}) VALUES (${l})`;s.push({sql:d,params:c})}await t.batch(s,i)},async getRecord(r,e,t,i){if(!t.query)throw new Error(`Driver ${t.name} does not support SQL queries`);let n=r,s=tc[n],o=await t.query(`SELECT * FROM ${Gn(n,i)} WHERE ${_s(s)} = ?`,[e],i);return o.length>0?W0(n,o[0]):null},async saveRecord(r,e,t,i,n){if(!i.execute)throw new Error(`Driver ${i.name} does not support SQL execution`);let s=r,{columns:o,values:a}=X0(s,t),{sql:c}=Jx(Gn(s,n),o,a,i);await i.execute(c,a,n)},async deleteRecord(r,e,t,i){if(!t.execute)throw new Error(`Driver ${t.name} does not support SQL execution`);let n=r,s=tc[n];await t.execute(`DELETE FROM ${Gn(n,i)} WHERE ${_s(s)} = ?`,[e],i)}}});var bS={};xn(bS,{NO_STORAGE_MESSAGE:()=>Fs,getStorageBackend:()=>Wx,getStoreBackend:()=>nh,getStoreConfigErrorDetail:()=>rc,getStoreStatus:()=>Jn,isPersistentStorageAvailable:()=>Xx,isServerlessRuntime:()=>zn,readDriver:()=>rh,readFormat:()=>ih});function IS(r,e,t){let i=t||(typeof process<"u"?process.env:{})||{};return String(i[r]||"").trim().toLowerCase()||e}function rh(r){let e=r||(typeof process<"u"?process.env:{})||{},t=IS("DB_DRIVER","auto",r);return t==="json"?(console.warn("[DEPRECATED] DB_DRIVER=json is deprecated. Use DB_FORMAT=map instead."),"auto"):t}function ih(r){let e=r||(typeof process<"u"?process.env:{})||{};return String(e.DB_DRIVER||"").trim().toLowerCase()==="json"?"map":String(e.DB_DRIVER||"").trim().toLowerCase()==="kv"&&!e.DB_FORMAT?"key":IS("DB_FORMAT","map",r)}function zn(r){let e=globalThis;try{if(r?.__requestOrigin||r?.__requestContext||r?.__makersContext||r?.EDGEONE_BLOB||e?.EDGEONE_BLOB||typeof e?.EdgeOne<"u"||typeof e.WebSocketPair=="function"||typeof e.caches<"u"&&e.caches?.default||r?.ESA_BLOB||e?.ESA_BLOB||typeof e?.ESA<"u"||r?.TENCENTCLOUD_SCF_FUNCTIONNAME||typeof process<"u"&&process.env?.TENCENTCLOUD_SCF_FUNCTIONNAME)return!0}catch{}return!1}async function wS(r){let e=[];qH(r)&&e.push(Gx),e.push(Mx,$0,Nx,Rx,Hx);for(let t of e)if(await t.isAvailable(r))return console.log(`[DB] Auto-detected driver: ${t.name}`),t;if(zn(r))throw Uu("NO_STORAGE",Fs);return console.warn("[DB] No storage binding detected, falling back to memory (data will not persist)."),eh}function qH(r){let e=r||{},t=typeof process<"u"?process.env||{}:{};return!!(e.MYSQL_URLS||t.MYSQL_URLS||e.MYSQL_HOST||t.MYSQL_HOST)}function Uu(r,e,t){let i=new Error(e);return i.storeCode=r,t&&(i.storeHint=t),i}function OH(r){let e=r?.storeHint;return typeof e=="string"&&e.trim()?e.trim():null}function xS(r){return r?.storeCode||"DRIVER_ERROR"}async function HH(r,e){let t=`${e}:${zn(r)?"sl":"local"}:${CS(r)}`;if(jx?.key===t)return jx.driver;let i=null;try{let n=await wS(r);n&&n!==eh&&n.name!==e&&(i=n)}catch{}return jx={key:t,driver:i},i}function KH(r){return r?`Auto-detection would pick: DB_DRIVER=${r.name} (or simply set DB_DRIVER=auto). -`:""}function GH(r,e){let t=r,i=!!(t.get&&t.put&&t.delete&&t.list),n=!!(r.query&&r.execute&&r.batch);if(e.name==="sql"?n:i)return;let o=[i?"map | key":null,n?"sql":null].filter(Boolean).join(" | ");throw Uu("INVALID_COMBINATION",`Invalid storage combination: DB_FORMAT="${e.name}" cannot be used with DB_DRIVER="${r.name}". -Driver "${r.name}" supports: ${o||"no format"}. + JWT_SECRET= +Generate one with: openssl rand -hex 32`}function Ju(r){let e={"Content-Type":"application/json"},t=YD(r);t&&(e["X-Internal-Call"]=t);let i=r?._currentUserToken;return i&&(e.Authorization=`Bearer ${i}`),e}function WD(r){if(!r)return"";let e=r.EO_KV_URLS;if(e){let i=Dl(e,r);if(i)return i}let t=r.__requestOrigin;if(t){let i=Dl(t,r);if(i)return i}return""}async function VD(r){let e=Ql(r);if(e)return{ok:!1,status:0,error:e.split(` +`)[0]};let t=WD(r);if(!t)return{ok:!1,status:0,error:"cannot determine deployment origin. Set EO_KV_URLS to the deployment origin."};try{let i=`${t}/kv-list?prefix=__health__`,n=await fetch(i,{method:"GET",headers:Ju(r)});if(!n.ok)return{ok:!1,status:n.status};try{let s=await n.json();return!s||!Array.isArray(s.keys)?{ok:!1,status:n.status,error:"KV proxy health response is not a valid key listing"}:{ok:!0,status:n.status}}catch{return{ok:!1,status:n.status,error:"KV proxy health response is not valid JSON"}}}catch(i){return{ok:!1,status:0,error:i?.message||String(i)}}}function AG(r){return r.ok||r.status===401}function hG(r){return r.ok}function Jh(r){let e=Ql(r);if(e)throw new Error("KV proxy misconfigured: "+e.split(` +`)[0]);let t=WD(r);if(!t)throw new Error("KV proxy base URL unavailable: cannot determine deployment origin. Set EO_KV_URLS to the deployment origin.");return t}var jh,sC=J(()=>{"use strict";Hh();jh={name:"kv",async isAvailable(r){if(uc(r)!==null)return!0;let e=await VD(r);return AG(e)?!0:(e.error&&console.error("[DB] KV proxy unavailable: "+e.error),!1)},async init(r){},async get(r,e){let t=uc(e);if(t){let s=a=>a instanceof TypeError||/not a function|invalid|unexpected|argument/i.test(String(a?.message||"")),o;try{o=await t.get(r,"text")}catch(a){if(!s(a))throw a;o=void 0}if(o==null)try{o=await t.get(r,{type:"text"})}catch(a){if(!s(a))throw a;o=null}return o==null?null:typeof o=="string"?o:JSON.stringify(o)}let n=`${Jh(e)}/kv-get?key=${encodeURIComponent(r)}`;try{let s=await fetch(n,{method:"GET",headers:Ju(e)});if(!s.ok){if(s.status===404)return null;throw new Error(`KV proxy get failed: ${s.status}`)}let o=await s.json();return o?.value===void 0||o?.value===null?null:typeof o.value=="string"?o.value:String(o.value)}catch(s){throw console.error(`[KV] get(${r}) failed:`,s),s}},async put(r,e,t){let i=uc(t);if(i){await i.put(r,e);return}let s=`${Jh(t)}/kv-put`;try{let o=await fetch(s,{method:"POST",headers:Ju(t),body:JSON.stringify({key:r,value:e})});if(!o.ok)throw new Error(`KV proxy put failed: ${o.status}`)}catch(o){throw console.error(`[KV] put(${r}) failed:`,o),o}},async delete(r,e){let t=uc(e);if(t){await t.delete(r);return}let n=`${Jh(e)}/kv-delete?key=${encodeURIComponent(r)}`;try{let s=await fetch(n,{method:"DELETE",headers:Ju(e)});if(!s.ok&&s.status!==404)throw new Error(`KV proxy delete failed: ${s.status}`)}catch(s){throw console.error(`[KV] delete(${r}) failed:`,s),s}},async list(r,e){let t=uc(e);if(t){let s=[],o="",a=!1,c=0;for(;!a&&c<1e3;){c+=1;let l=await t.list({prefix:r,cursor:o,limit:256}),d=Array.isArray(l?.keys)?l.keys:[];for(let u of d)u?.key&&s.push(u.key);d.length>0&&(o=d[d.length-1].key||""),a=!!l?.complete||d.length===0}return s}let n=`${Jh(e)}/kv-list?prefix=${encodeURIComponent(r)}`;try{let s=await fetch(n,{method:"GET",headers:Ju(e)});if(!s.ok)throw new Error(`KV proxy list failed: ${s.status}`);return(await s.json()).keys||[]}catch(s){throw console.error(`[KV] list(${r}) failed:`,s),s}},async health(r){let e=uc(r);if(e)try{return await e.get("__health_check__"),{driver:"kv",mode:"binding",available:!0,platform:"Cloudflare KV / EdgeOne KV"}}catch(i){return{driver:"kv",mode:"binding",available:!1,error:i?.message||String(i)}}let t=await VD(r);return hG(t)?{driver:"kv",mode:"proxy",available:!0,platform:"EdgeOne KV (via Edge Function proxy)"}:{driver:"kv",mode:"proxy",available:!1,error:t.error||`HTTP ${t.status}`}}}});function ZD(r){if(!r||typeof r!="object")return!1;try{return typeof r.get!="function"?!1:typeof r.put=="function"||typeof r.set=="function"}catch{return!1}}function _l(r){let e=globalThis,t=r?.ESA_BLOB;if(ZD(t))return t;let i=e?.ESA_BLOB;return ZD(i)?i:null}async function Fl(r="default"){try{let{getStore:e}=await Promise.resolve().then(()=>xr(nC(),1));return e(r)}catch{return null}}var oC,e3=J(()=>{"use strict";oC={name:"blob",async isAvailable(r){return _l(r)!==null?!0:await Fl()!==null},async init(r){},async get(r,e){let t=_l(e);if(t)try{let n=await t.get(r);return n?await n.text():null}catch(n){return console.warn(`[Blob] ESA get key="${r}" failed:`,n),null}let i=await Fl();if(!i)throw new Error("Blob not available");try{let n=await i.get(r);return n==null?null:typeof n=="string"?n:JSON.stringify(n)}catch(n){return console.warn(`[Blob] EdgeOne get key="${r}" failed:`,n),null}},async put(r,e,t){let i=_l(t);if(i){await i.put(r,e);return}let n=await Fl();if(!n)throw new Error("Blob not available");await n.set(r,e)},async delete(r,e){let t=_l(e);if(t){await t.delete(r);return}let i=await Fl();if(!i)throw new Error("Blob not available");await i.delete(r)},async list(r,e){let t=_l(e);if(t){let s=[],o;do{let a=await t.list({prefix:r,cursor:o});s.push(...(a?.keys||[]).map(c=>c.name)),o=a?.cursor}while(o);return s}let i=await Fl();if(!i)throw new Error("Blob not available");return((await i.list({prefix:r,paginate:!0}))?.blobs||[]).map(s=>s.key)},async health(r){let e=_l(r),t=await Fl();if(e)try{return await e.head("__health_check__"),{driver:"blob",platform:"ESA Blob (binding)",available:!0}}catch(i){return{driver:"blob",platform:"ESA Blob (binding)",available:!1,error:i?.message||String(i)}}if(t)try{return await t.get("__health_check__"),{driver:"blob",platform:"EdgeOne Blob (SDK)",available:!0}}catch(i){return{driver:"blob",platform:"EdgeOne Blob (SDK)",available:!1,error:i?.message||String(i)}}return{driver:"blob",available:!1,error:"No Blob storage available"}}}});function Pl(r){let e=r||(typeof process<"u"?process.env:{})||{},t=e.CF_ACCOUNT||e.CLOUDFLARE_ACCOUNT_ID,i=e.CF_KV_UUID||e.CLOUDFLARE_KV_NAMESPACE_ID,n=e.CF_API_KEY||e.CLOUDFLARE_API_TOKEN;return!t||!i||!n?null:{accountId:t,namespaceId:i,apiToken:n}}function $h(r,e){return`https://api.cloudflare.com/client/v4/accounts/${r.accountId}/storage/kv/namespaces/${r.namespaceId}${e}`}var aC,t3=J(()=>{"use strict";aC={name:"cfkv",async isAvailable(r){return Pl(r)!==null},async init(r){},async get(r,e){let t=Pl(e);if(!t)throw new Error("Cloudflare KV API not configured");let i=$h(t,`/values/${encodeURIComponent(r)}`),n=await fetch(i,{headers:{Authorization:`Bearer ${t.apiToken}`}});if(n.status===404)return null;if(!n.ok)throw new Error(`Cloudflare KV API error: ${n.status}`);return await n.text()},async put(r,e,t){let i=Pl(t);if(!i)throw new Error("Cloudflare KV API not configured");let n=$h(i,`/values/${encodeURIComponent(r)}`),s=await fetch(n,{method:"PUT",headers:{Authorization:`Bearer ${i.apiToken}`},body:e});if(!s.ok)throw new Error(`Cloudflare KV API error: ${s.status}`)},async delete(r,e){let t=Pl(e);if(!t)throw new Error("Cloudflare KV API not configured");let i=$h(t,`/values/${encodeURIComponent(r)}`),n=await fetch(i,{method:"DELETE",headers:{Authorization:`Bearer ${t.apiToken}`}});if(!n.ok&&n.status!==404)throw new Error(`Cloudflare KV API error: ${n.status}`)},async list(r,e){let t=Pl(e);if(!t)throw new Error("Cloudflare KV API not configured");let i=[],n;do{let s=new URLSearchParams({prefix:r,limit:"1000"});n&&s.set("cursor",n);let o=$h(t,`/keys?${s}`),a=await fetch(o,{headers:{Authorization:`Bearer ${t.apiToken}`}});if(!a.ok)throw new Error(`Cloudflare KV API error: ${a.status}`);let c=await a.json();i.push(...(c.result||[]).map(l=>l.name)),n=c.result_info?.cursor}while(n);return i},async health(r){let e=Pl(r);if(!e)return{configured:!1,connected:!1,platform:"Cloudflare KV API (REST)",mode:"cfkv",error:"Missing CF_ACCOUNT, CF_KV_UUID, or CF_API_KEY"};try{return await this.get("__health_check__",r),{configured:!0,connected:!0,platform:"Cloudflare KV API (REST)",mode:"cfkv",accountId:e.accountId,namespaceId:e.namespaceId}}catch(t){return{configured:!0,connected:!1,platform:"Cloudflare KV API (REST)",mode:"cfkv",error:t?.message||String(t)}}}}});function cC(r){return"x_"}function lC(r,e){return cC(e)+pG[r]}function mG(r,e){if(e==null){if(r.pk||r.nullable)return null;switch(r.type){case"string":return"";case"number":return 0;case"bool":return 0;case"json":return"null";case"date":return"";default:return""}}switch(r.type){case"string":return String(e);case"number":return typeof e=="number"?e:Number(e);case"bool":return e?1:0;case"json":return typeof e=="string"?e:JSON.stringify(e);case"date":return e instanceof Date?e.toISOString():typeof e=="number"?new Date(e).toISOString():String(e);default:return e}}function yG(r,e){if(e==null)return r.type==="json",null;switch(r.type){case"string":{let t=String(e);return t===""?null:t}case"number":return Number(e);case"bool":return e===1||e==="1"||e===!0||e==="true";case"json":{if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}case"date":return e;default:return e}}function Yh(r,e){let t=Vh[r],i={};for(let n of t.columns){let s=n.key??n.name,o=yG(n,e[n.name]);o!=null&&(i[s]=o)}return i}function Wh(r,e){let t=Vh[r],i=[],n=[];for(let s of t.columns){let o=s.key??s.name;i.push(s.name),n.push(mG(s,e?.[o]))}return{columns:i,values:n}}function IG(r,e){switch(r.type){case"number":return e==="mysql"?"BIGINT":"INTEGER";case"bool":return e==="mysql"?"TINYINT(1)":"INTEGER";case"string":case"json":case"date":return"TEXT";default:return"TEXT"}}function zo(r){return"`"+r+"`"}function wG(r,e,t){let i=[];for(let n of r.columns){let s=`${zo(n.name)} ${IG(n,e)}`;n.pk?s+=" PRIMARY KEY":n.nullable||(s+=" NOT NULL"),n.unique&&(s+=" UNIQUE"),i.push(s)}return`CREATE TABLE IF NOT EXISTS ${zo(t)} (${i.join(", ")})`}function xG(r){let e=r==="mysql"?"VARCHAR(255)":"TEXT";return`CREATE TABLE IF NOT EXISTS ${zo("schema_info")} (${zo("k")} ${e} PRIMARY KEY, ${zo("v")} TEXT)`}function Tl(r,e){let t=[xG(r)];for(let i of gG)t.push(wG(Vh[i],r,lC(i,e)));return t}var Jo,gG,fc,Vh,pG,hue,gue,r3,i3,ju=J(()=>{"use strict";Jo=["settings","storages","users","shares","metas","plugins"],gG=[...Jo,"sshkeys"],fc={settings:"key",storages:"id",users:"id",shares:"id",metas:"id",plugins:"id",sshkeys:"id"},Vh={settings:{name:"settings",columns:[{name:"key",type:"string",pk:!0},{name:"value",type:"string",nullable:!0},{name:"help",type:"string",nullable:!0},{name:"type",type:"string",nullable:!0},{name:"options",type:"string",nullable:!0},{name:"group",type:"number",nullable:!0},{name:"flag",type:"number",nullable:!0},{name:"index",type:"number",nullable:!0}]},storages:{name:"storages",columns:[{name:"id",type:"number",pk:!0},{name:"mount_path",type:"string",unique:!0},{name:"order",type:"number",nullable:!0},{name:"driver",type:"string",nullable:!0},{name:"cache_expiration",type:"number",nullable:!0},{name:"custom_cache_policies",type:"string",nullable:!0},{name:"status",type:"string",nullable:!0},{name:"addition",type:"string",nullable:!0},{name:"remark",type:"string",nullable:!0},{name:"modified",type:"date",nullable:!0},{name:"disabled",type:"bool",nullable:!0},{name:"disable_index",type:"bool",nullable:!0},{name:"enable_sign",type:"bool",nullable:!0},{name:"seed_policy",type:"string",nullable:!0},{name:"order_by",type:"string",nullable:!0},{name:"order_direction",type:"string",nullable:!0},{name:"extract_folder",type:"string",nullable:!0},{name:"web_proxy",type:"bool",nullable:!0},{name:"webdav_policy",type:"string",nullable:!0},{name:"proxy_range",type:"bool",nullable:!0},{name:"down_proxy_url",type:"string",nullable:!0},{name:"disable_proxy_sign",type:"bool",nullable:!0}]},users:{name:"users",columns:[{name:"id",type:"number",pk:!0},{name:"username",type:"string",unique:!0},{name:"password",type:"string",nullable:!0},{name:"base_path",type:"string",nullable:!0},{name:"role",type:"number",nullable:!0},{name:"disabled",type:"bool",nullable:!0},{name:"permission",type:"number",nullable:!0},{name:"salt",type:"string",nullable:!0},{name:"otp_secret",type:"string",nullable:!0},{name:"sso_id",type:"string",nullable:!0},{name:"authn",type:"string",nullable:!0},{name:"allow_ldap",type:"bool",nullable:!0},{name:"pwd_update_at",type:"date",nullable:!0}]},shares:{name:"shares",columns:[{name:"id",type:"string",pk:!0},{name:"files_raw",key:"files",type:"json",nullable:!0},{name:"expires",type:"date",nullable:!0},{name:"pwd",type:"string",nullable:!0},{name:"accessed",type:"number",nullable:!0},{name:"max_accessed",type:"number",nullable:!0},{name:"creator_id",type:"number",nullable:!0},{name:"disabled",type:"bool",nullable:!0},{name:"remark",type:"string",nullable:!0},{name:"readme",type:"string",nullable:!0},{name:"header",type:"string",nullable:!0},{name:"order_by",type:"string",nullable:!0},{name:"order_direction",type:"string",nullable:!0},{name:"extract_folder",type:"string",nullable:!0}]},metas:{name:"metas",columns:[{name:"id",type:"number",pk:!0},{name:"path",type:"string",unique:!0},{name:"read_users",type:"json",nullable:!0},{name:"read_users_sub",type:"bool",nullable:!0},{name:"write_users",type:"json",nullable:!0},{name:"write_users_sub",type:"bool",nullable:!0},{name:"password",type:"string",nullable:!0},{name:"p_sub",type:"bool",nullable:!0},{name:"write",type:"bool",nullable:!0},{name:"w_sub",type:"bool",nullable:!0},{name:"hide",type:"string",nullable:!0},{name:"h_sub",type:"bool",nullable:!0},{name:"readme",type:"string",nullable:!0},{name:"r_sub",type:"bool",nullable:!0},{name:"header",type:"string",nullable:!0},{name:"header_sub",type:"bool",nullable:!0}]},sshkeys:{name:"sshkeys",columns:[{name:"id",type:"number",pk:!0},{name:"user_id",type:"number",nullable:!0},{name:"title",type:"string",nullable:!0},{name:"fingerprint",type:"string",nullable:!0},{name:"key_str",type:"string",nullable:!0},{name:"added_time",type:"date",nullable:!0},{name:"last_used_time",type:"date",nullable:!0}]},plugins:{name:"plugins",columns:[{name:"id",type:"string",pk:!0},{name:"name",type:"string",nullable:!0},{name:"version",type:"string",nullable:!0},{name:"description",type:"string",nullable:!0},{name:"author",type:"string",nullable:!0},{name:"homepage",type:"string",nullable:!0},{name:"repository",type:"string",nullable:!0},{name:"icon",type:"string",nullable:!0},{name:"type",type:"string",nullable:!0},{name:"enabled",type:"bool",nullable:!0},{name:"high_privilege",type:"bool",nullable:!0},{name:"permissions",type:"json",nullable:!0},{name:"entry_url",type:"string",nullable:!0},{name:"script_content",type:"string",nullable:!0},{name:"style_content",type:"string",nullable:!0},{name:"config_schema",type:"json",nullable:!0},{name:"config_values",type:"json",nullable:!0},{name:"target_hooks",type:"json",nullable:!0},{name:"is_builtin",type:"bool",nullable:!0},{name:"tags",type:"json",nullable:!0},{name:"created_at",type:"date",nullable:!0},{name:"updated_at",type:"date",nullable:!0}]}},pG={settings:"setting_items",storages:"storages",users:"users",shares:"sharing_dbs",metas:"metas",plugins:"plugins",sshkeys:"ssh_public_keys"};hue=Tl("sqlite"),gue=Tl("mysql"),r3=[`CREATE TABLE IF NOT EXISTS ${zo("kv")} (${zo("key")} TEXT PRIMARY KEY, ${zo("value")} TEXT NOT NULL)`],i3=["CREATE TABLE IF NOT EXISTS `kv` (`key` VARCHAR(512) PRIMARY KEY, `value` LONGTEXT NOT NULL)"]});function n3(r){if(!r||typeof r!="object")return!1;try{return typeof r.prepare=="function"}catch{return!1}}function zn(r){let e=typeof globalThis<"u"?globalThis:{};for(let t of["DB","OPENLIST_DB"]){let i=r?.[t];if(n3(i))return i;let n=e?.[t];if(n3(n))return n}return null}async function jo(r,e){if(!s3.get(r)){for(let t of[...r3,...Tl("sqlite",e)])await r.prepare(t).run();s3.set(r,!0)}}var s3,dC,o3=J(()=>{"use strict";ju();s3=new WeakMap;dC={name:"d1",async isAvailable(r){return zn(r)!=null},async init(r){let e=zn(r);e&&await jo(e)},async get(r,e){let t=zn(e);if(!t)throw new Error("D1 binding not found");return await jo(t,e),(await t.prepare("SELECT value FROM kv WHERE key = ?").bind(r).first())?.value||null},async put(r,e,t){let i=zn(t);if(!i)throw new Error("D1 binding not found");await jo(i,t),await i.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)").bind(r,e).run()},async delete(r,e){let t=zn(e);if(!t)throw new Error("D1 binding not found");await jo(t,e),await t.prepare("DELETE FROM kv WHERE key = ?").bind(r).run()},async list(r,e){let t=zn(e);if(!t)throw new Error("D1 binding not found");return await jo(t,e),((await t.prepare("SELECT key FROM kv WHERE key LIKE ? ORDER BY key").bind(`${r}%`).all()).results||[]).map(n=>n.key)},async query(r,e,t){let i=zn(t);if(!i)throw new Error("D1 binding not found");return await jo(i,t),(await i.prepare(r).bind(...e).all()).results||[]},async execute(r,e,t){let i=zn(t);if(!i)throw new Error("D1 binding not found");await jo(i,t),await i.prepare(r).bind(...e).run()},async batch(r,e){let t=zn(e);if(!t)throw new Error("D1 binding not found");await jo(t,e);let i=100,n=r.map(s=>t.prepare(s.sql).bind(...s.params));for(let s=0;s{"use strict";fC={name:"do",async isAvailable(r){return uC(r)!=null},async init(r){let e=Ps(r);e&&typeof e.init=="function"&&await e.init()},async get(r,e){let t=Ps(e);if(!t)throw new Error("DO binding not found");return await t.kvGet(r)},async put(r,e,t){let i=Ps(t);if(!i)throw new Error("DO binding not found");await i.kvPut(r,e)},async delete(r,e){let t=Ps(e);if(!t)throw new Error("DO binding not found");await t.kvDelete(r)},async list(r,e){let t=Ps(e);if(!t)throw new Error("DO binding not found");return await t.kvList(r)},async query(r,e,t){let i=Ps(t);if(!i)throw new Error("DO binding not found");return await i.sqlQuery(r,e)},async execute(r,e,t){let i=Ps(t);if(!i)throw new Error("DO binding not found");await i.sqlExecute(r,e)},async batch(r,e){let t=Ps(e);if(!t)throw new Error("DO binding not found");await t.sqlBatch(r)},async health(r){if(!uC(r))return{configured:!1,connected:!1,platform:"Cloudflare Durable Objects",mode:"do",error:"DO binding not found (expected env.DO)"};try{return await Ps(r).health(),{configured:!0,connected:!0,platform:"Cloudflare Durable Objects (SQLite)",mode:"do",doId:c3(r)}}catch(t){return{configured:!0,connected:!1,platform:"Cloudflare Durable Objects",mode:"do",error:t?.message||String(t)}}}}});function d3(){return typeof process<"u"&&process.release?.name==="node"}function AC(r){let e=r||(typeof process<"u"?process.env:{})||{},t=e?.MYSQL_URLS;if(t)return t;let i=e?.MYSQL_HOST;return i?{host:i,port:Number(e?.MYSQL_PORT||3306),user:e?.MYSQL_USER||"",password:e?.MYSQL_PASS||"",database:e?.MYSQL_NAME||""}:null}async function Ts(r){let e=AC(r);if(!e)return null;let t=JSON.stringify(e);if(Xh&&u3===t)return Xh;let i="mysql2/promise",{createPool:n}=await import(i);return Xh=n(e),u3=t,Xh}async function $o(r,e){let t=cC(e);if(f3!==t){for(let i of[...i3,...Tl("mysql",e)])await r.query(i);f3=t}}var Xh,u3,f3,hC,A3=J(()=>{"use strict";ju();Xh=null,u3=null;f3=null;hC={name:"mysql",async isAvailable(r){return d3()?AC(r)!=null:!1},async init(r){let e=await Ts(r);e&&await $o(e)},async get(r,e){let t=await Ts(e);if(!t)throw new Error("MySQL pool not available");await $o(t,e);let[i]=await t.query("SELECT `value` FROM `kv` WHERE `key` = ?",[r]);return i?.[0]?.value||null},async put(r,e,t){let i=await Ts(t);if(!i)throw new Error("MySQL pool not available");await $o(i,t),await i.query("INSERT INTO `kv` (`key`, `value`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `value` = VALUES(`value`)",[r,e])},async delete(r,e){let t=await Ts(e);if(!t)throw new Error("MySQL pool not available");await $o(t,e),await t.query("DELETE FROM `kv` WHERE `key` = ?",[r])},async list(r,e){let t=await Ts(e);if(!t)throw new Error("MySQL pool not available");await $o(t,e);let[i]=await t.query("SELECT `key` FROM `kv` WHERE `key` LIKE ? ORDER BY `key`",[`${r}%`]);return(i||[]).map(n=>n.key)},async query(r,e,t){let i=await Ts(t);if(!i)throw new Error("MySQL pool not available");await $o(i,t);let[n]=await i.query(r,e);return n||[]},async execute(r,e,t){let i=await Ts(t);if(!i)throw new Error("MySQL pool not available");await $o(i,t),await i.query(r,e)},async batch(r,e){let t=await Ts(e);if(!t)throw new Error("MySQL pool not available");await $o(t,e);let i=await t.getConnection();try{await i.beginTransaction();for(let n of r)await i.query(n.sql,n.params);await i.commit()}catch(n){try{await i.rollback()}catch{}throw n}finally{i.release()}},async health(r){if(!d3())return{configured:!1,connected:!1,platform:"MySQL (mysql2)",mode:"mysql",error:"MySQL backend requires Node.js runtime"};if(!AC(r))return{configured:!1,connected:!1,platform:"MySQL (mysql2)",mode:"mysql",error:"MySQL config not found (expected MYSQL_URLS or MYSQL_HOST)"};try{return await(await Ts(r)).query("SELECT 1"),{configured:!0,connected:!0,platform:"MySQL (mysql2)",mode:"mysql"}}catch(t){return{configured:!0,connected:!1,platform:"MySQL (mysql2)",mode:"mysql",error:t?.message||String(t)}}}}});var $u,Zh,h3=J(()=>{"use strict";$u=new Map,Zh={name:"memory",async isAvailable(){return!0},async init(){},async get(r){return $u.get(r)??null},async put(r,e){$u.set(r,e)},async delete(r){$u.delete(r)},async list(r){return[...$u.keys()].filter(e=>e.startsWith(r))},async health(){return{configured:!0,connected:!0,platform:"Memory",mode:"memory",hasData:$u.size>0,error:null}}}});var g3,p3,m3=J(()=>{"use strict";g3="openlist_config",p3={name:"map",async load(r,e){let t=await r.get(g3,e);if(!t)return null;try{return JSON.parse(t)}catch(i){return console.error("[mapFormat] Failed to parse JSON:",i),null}},async save(r,e,t){let i=JSON.stringify(r);return await e.put(g3,i,t),!0}}});function CG(r){return r>="a"&&r<="z"||r>="A"&&r<="Z"||r>="0"&&r<="9"||r==="_"}function y3(r){let e=String(r??"");if(e==="")return"0";if(/^[A-Za-z0-9_]+$/.test(e))return e;let t="";for(let i of e)if(CG(i))t+=i;else for(let n of new TextEncoder().encode(i))t+="x"+n.toString(16).padStart(2,"0");return t}function gC(r){return`${y3(r)}_`}function I3(r,e){return`${gC(r)}${y3(e)}`}var w3=J(()=>{"use strict"});function eg(r){return gC(r)}function Vu(r,e){return I3(r,e)}var x3,C3,E3=J(()=>{"use strict";ju();w3();x3="openlist_config";C3={name:"key",async load(r,e){if(!await r.get(x3,e))return null;let i={};for(let n of Jo){let s=eg(n),o=await r.list(s,e),a=[];for(let c of o){let l=await r.get(c,e);if(l)try{a.push(JSON.parse(l))}catch(d){console.warn(`[keyFormat] Failed to parse ${c}:`,d)}}i[n]=a}return i},async save(r,e,t){for(let i of Jo){let n=eg(i),s=await e.list(n,t);for(let o of s)await e.delete(o,t)}for(let i of Jo){let n=fc[i],s=r?.[i]||[];for(let o of s){let a=String(o?.[n]??"");if(!a)continue;let c=Vu(i,a),l=JSON.stringify(o);await e.put(c,l,t)}}return await e.put(x3,String(Date.now()),t),!0},async getTable(r,e,t){let i=eg(r),n=await e.list(i,t),s=[];for(let o of n){let a=await e.get(o,t);if(a)try{s.push(JSON.parse(a))}catch(c){console.warn(`[keyFormat] Failed to parse ${o}:`,c)}}return s},async saveTable(r,e,t,i){let n=fc[r],s=eg(r),o=await t.list(s,i);for(let a of o)await t.delete(a,i);for(let a of e){let c=String(a?.[n]??"");if(!c)continue;let l=Vu(r,c),d=JSON.stringify(a);await t.put(l,d,i)}},async getRecord(r,e,t,i){let n=Vu(r,e),s=await t.get(n,i);if(!s)return null;try{return JSON.parse(s)}catch(o){return console.warn(`[keyFormat] Failed to parse ${n}:`,o),null}},async saveRecord(r,e,t,i,n){let s=Vu(r,e),o=JSON.stringify(t);await i.put(s,o,n)},async deleteRecord(r,e,t,i){let n=Vu(r,e);await t.delete(n,i)}}});function Us(r){return"`"+r+"`"}function pC(r,e,t,i){let n=e.map(o=>Us(o)).join(", "),s=e.map(()=>"?").join(", ");if(i.name==="mysql"){let o=e.slice(1).map(c=>`${Us(c)} = VALUES(${Us(c)})`).join(", ");return{sql:o?`INSERT INTO ${r} (${n}) VALUES (${s}) ON DUPLICATE KEY UPDATE ${o}`:`INSERT INTO ${r} (${n}) VALUES (${s})`,params:t}}return{sql:`INSERT OR REPLACE INTO ${r} (${n}) VALUES (${s})`,params:t}}function Jn(r,e){return Us(lC(r,e))}var B3,b3,v3=J(()=>{"use strict";ju();B3="openlist_config";b3={name:"sql",async load(r,e){if(!r.query)throw new Error(`Driver ${r.name} does not support SQL queries`);let t=await r.query("SELECT v FROM schema_info WHERE k = ?",[B3],e);if(!t||t.length===0)return null;let i={};for(let n of Jo){let s=await r.query(`SELECT * FROM ${Jn(n,e)}`,[],e);i[n]=s.map(o=>Yh(n,o))}return i},async save(r,e,t){if(!e.batch)throw new Error(`Driver ${e.name} does not support batch operations`);let i=[];for(let n of Jo){let s=fc[n],o=r?.[n]||[],a=[];for(let l of o){let{columns:d,values:u}=Wh(n,l),f=pC(Jn(n,t),d,u,e);i.push({sql:f.sql,params:f.params});let h=l?.[s];h!=null&&a.push(String(h))}let c=a.length>0?`DELETE FROM ${Jn(n,t)} WHERE ${Us(s)} NOT IN (${a.map(()=>"?").join(", ")})`:`DELETE FROM ${Jn(n,t)}`;i.push({sql:c,params:a})}return i.push(pC(Us("schema_info"),["k","v"],[B3,String(Date.now())],e)),await e.batch(i,t),!0},async getTable(r,e,t){if(!e.query)throw new Error(`Driver ${e.name} does not support SQL queries`);let i=r;return(await e.query(`SELECT * FROM ${Jn(i,t)}`,[],t)).map(s=>Yh(i,s))},async saveTable(r,e,t,i){if(!t.batch)throw new Error(`Driver ${t.name} does not support batch operations`);let n=r,s=[{sql:`DELETE FROM ${Jn(n,i)}`,params:[]}];for(let o of e){let{columns:a,values:c}=Wh(n,o),l=a.map(()=>"?").join(", "),d=`INSERT INTO ${Jn(n,i)} (${a.map(u=>Us(u)).join(", ")}) VALUES (${l})`;s.push({sql:d,params:c})}await t.batch(s,i)},async getRecord(r,e,t,i){if(!t.query)throw new Error(`Driver ${t.name} does not support SQL queries`);let n=r,s=fc[n],o=await t.query(`SELECT * FROM ${Jn(n,i)} WHERE ${Us(s)} = ?`,[e],i);return o.length>0?Yh(n,o[0]):null},async saveRecord(r,e,t,i,n){if(!i.execute)throw new Error(`Driver ${i.name} does not support SQL execution`);let s=r,{columns:o,values:a}=Wh(s,t),{sql:c}=pC(Jn(s,n),o,a,i);await i.execute(c,a,n)},async deleteRecord(r,e,t,i){if(!t.execute)throw new Error(`Driver ${t.name} does not support SQL execution`);let n=r,s=fc[n];await t.execute(`DELETE FROM ${Jn(n,i)} WHERE ${Us(s)} = ?`,[e],i)}}});var R3={};Cn(R3,{MEMORY_SERVERLESS_MESSAGE:()=>_3,NO_STORAGE_MESSAGE:()=>Vo,getStorageBackend:()=>CC,getStoreBackend:()=>ig,getStoreConfigErrorDetail:()=>hc,getStoreStatus:()=>$n,isPersistentStorageAvailable:()=>ng,isServerlessRuntime:()=>jn,readCipher:()=>Ac,readDriver:()=>tg,readFormat:()=>rg});function xC(r,e,t){let i=t||(typeof process<"u"?process.env:{})||{};return String(i[r]||"").trim().toLowerCase()||e}function tg(r){let e=r||(typeof process<"u"?process.env:{})||{},t=xC("DB_DRIVER","auto",r);return t==="json"?(console.warn("[DEPRECATED] DB_DRIVER=json is deprecated. Use DB_FORMAT=map instead."),"auto"):t}function rg(r){let e=r||(typeof process<"u"?process.env:{})||{};return String(e.DB_DRIVER||"").trim().toLowerCase()==="json"?"map":xC("DB_FORMAT","map",r)}function Ac(r){let e=xC("DB_CIPHER",Nu,r),{cipher:t,known:i}=CD(e);return i||console.warn(`[DB] Unknown DB_CIPHER "${e}"; falling back to "${Nu}". Valid values: ${xD.join(", ")}.`),t}function jn(r){let e=globalThis;try{if(r?.__requestOrigin||r?.__requestContext||r?.__makersContext||r?.EDGEONE_BLOB||e?.EDGEONE_BLOB||typeof e?.EdgeOne<"u"||typeof e.WebSocketPair=="function"||typeof e.caches<"u"&&e.caches?.default||r?.ESA_BLOB||e?.ESA_BLOB||typeof e?.ESA<"u"||r?.TENCENTCLOUD_SCF_FUNCTIONNAME||typeof process<"u"&&process.env?.TENCENTCLOUD_SCF_FUNCTIONNAME)return!0}catch{}return!1}async function Q3(r){let e=[];EG(r)&&e.push(hC),e.push(dC,jh,aC,oC,fC);for(let t of e)if(await t.isAvailable(r))return console.log(`[DB] Auto-detected driver: ${t.name}`),t;if(jn(r))throw Yu("NO_STORAGE",Vo,BG(r));return console.warn("[DB] No storage binding detected, falling back to memory (data will not persist)."),Zh}function EG(r){let e=r||{},t=typeof process<"u"?process.env||{}:{};return!!(e.MYSQL_URLS||t.MYSQL_URLS||e.MYSQL_HOST||t.MYSQL_HOST)}function BG(r){let e=globalThis,t=!!(r?.EDGEONE_BLOB||e?.EDGEONE_BLOB)||typeof e?.EdgeOne<"u"||!!(r?.TENCENTCLOUD_SCF_FUNCTIONNAME||typeof process<"u"&&process.env?.TENCENTCLOUD_SCF_FUNCTIONNAME),i=!!(r?.ESA_BLOB||e?.ESA_BLOB)||typeof e?.ESA<"u",n=!t&&!i;return t?"DB_DRIVER=auto already probed every driver. On EdgeOne, bind a Blob store (or enable the EdgeOne Blob SDK), or bind a KV namespace to an Edge Function and proxy it (Node functions do not receive KV bindings).":i?"DB_DRIVER=auto already probed every driver. On Alibaba ESA, bind an ESA_BLOB store, or set DB_DRIVER=blob.":n?'DB_DRIVER=auto already probed every driver. On Cloudflare Workers, add a binding to wrangler.jsonc: D1 as {"d1_databases":[{"binding":"DB"}]} or KV as {"kv_namespaces":[{"binding":"KV"}]}, then redeploy so the binding is injected.':"DB_DRIVER=auto already probed every driver. Bind a persistent backend (Cloudflare: D1/KV; EdgeOne: Blob; ESA: ESA_BLOB), then redeploy."}function Yu(r,e,t){let i=new Error(e);return i.storeCode=r,t&&(i.storeHint=t),i}function bG(r){let e=r?.storeHint;return typeof e=="string"&&e.trim()?e.trim():null}function F3(r){return r?.storeCode||"DRIVER_ERROR"}async function SG(r,e){let t=`${e}:${jn(r)?"sl":"local"}:${P3(r)}`;if(mC?.key===t)return mC.driver;let i=null;try{let n=await Q3(r);n&&n!==Zh&&n.name!==e&&(i=n)}catch{}return mC={key:t,driver:i},i}function DG(r){return r?`Auto-detection would pick: DB_DRIVER=${r.name} (or simply set DB_DRIVER=auto). +`:""}function _G(r,e){let t=r,i=!!(t.get&&t.put&&t.delete&&t.list),n=!!(r.query&&r.execute&&r.batch),s=e.name==="sql"?n:i,o=QG[r.name],a=!o||o.includes(e.name);if(s&&a)return;let c=(o??[i?"map | key":null,n?"sql":null].filter(Boolean)).join(" | ");throw Yu("INVALID_COMBINATION",`Invalid storage combination: DB_FORMAT="${e.name}" cannot be used with DB_DRIVER="${r.name}". +Driver "${r.name}" supports: ${c||"no format"}. `+(e.name==="sql"?`The "sql" format needs a relational driver (SQL query support): d1 | do | mysql. -`:`The "${e.name}" format needs a key-value driver (get/put/delete/list): kv | cfkv | blob | d1 | do | mysql. -`)+`Fix DB_FORMAT or DB_DRIVER. See ${MH}`)}async function zH(r,e){if(r==="auto")return await wS(e);let t=pS[r];if(!t)throw Uu("UNKNOWN_DRIVER",`Unknown DB_DRIVER "${r}". Valid values: auto, ${Object.keys(pS).join(", ")}`);let i=!1;try{i=await t.isAvailable(e)}catch{i=!1}if(t===eh&&zn(e))throw Uu("NO_STORAGE",Fs);if(!i){let n=await HH(e,r);throw Uu("DRIVER_UNAVAILABLE",`DB_DRIVER is set to "${r}", but that driver is not available in this runtime. +`:`The "${e.name}" format needs a key-value driver (get/put/delete/list): kv | cfkv | d1 | do | mysql. +`)+`Fix DB_FORMAT or DB_DRIVER. See ${vG}`,e.name==="sql"?"Set DB_FORMAT=map (or key), or switch to a relational driver (DB_DRIVER=d1 | do | mysql).":`Set DB_FORMAT=map for DB_DRIVER="${r.name}"`+(c.includes("|")?`, or one of: ${c}.`:"."))}async function FG(r,e){if(r==="auto")return await Q3(e);if(r==="memory"){if(!jn(e))return console.log("[DB] Using explicitly configured driver: memory"),Zh;throw Yu("NO_STORAGE",_3,"Use DB_DRIVER=auto, or bind a persistent backend (D1 / KV / Blob).")}let t=k3[r];if(!t)throw Yu("UNKNOWN_DRIVER",`Unknown DB_DRIVER "${r}". Valid values: auto, memory, ${Object.keys(k3).join(", ")}`);let i=!1;try{i=await t.isAvailable(e)}catch{i=!1}if(!i){let n=await SG(e,r);throw Yu("DRIVER_UNAVAILABLE",`DB_DRIVER is set to "${r}", but that driver is not available in this runtime. No fallback is performed for an explicitly configured driver. -`+KH(n)+`Check the binding/credentials for "${r}", or set DB_DRIVER=auto to let the platform pick an available backend. -`+(LH[r]||"")+`Environment: ${zn(e)?"serverless/worker":"local/container"}`,n?`Set DB_DRIVER=${n.name} (or DB_DRIVER=auto) in your deployment variables.`:`Set DB_DRIVER=auto in your deployment variables, or provide the binding/credentials required by "${r}".`)}return console.log(`[DB] Using explicitly configured driver: ${t.name}`),t}function JH(r){switch(r){case"map":return sS;case"key":return uS;case"sql":return hS;default:throw new Error(`Unknown format: ${r}`)}}function CS(r){if(r&&(typeof r=="object"||typeof r=="function")){let e=yS.get(r);return e===void 0&&(e=++jH,yS.set(r,e)),String(e)}return"none"}async function Wx(r){let e=rh(r),t=ih(r),i=zn(r)?"sl":"local",n=`${e}:${t}:${i}:${CS(r)}`;if($x&&Vx&&mS===n)return{driver:$x,format:Vx};let s=await zH(e,r),o=JH(t);if(GH(s,o),s.init)try{await s.init(r)}catch(a){console.warn(`[DB] Driver init failed (${s.name}):`,a)}return $x=s,Vx=o,mS=n,console.log(`[DB] Using driver=${s.name}, format=${o.name}`),{driver:s,format:o}}async function nh(r){let{driver:e,format:t}=await Wx(r);return{name:e.name,load:i=>t.load(e,i),save:(i,n)=>t.save(i,e,n),isConfigured:i=>e.isAvailable(i),init:i=>e.init(i),health:i=>e.health(i)}}async function Jn(r){let e=null,t=null,i=null,n=null;try{let o=await Wx(r);e=o.driver,t=o.format}catch(o){let a=String(o?.message||o),c=a.includes("No storage backend is available");return{driver:"none",format:"none",available:!1,configError:c?Fs:a,configErrorCode:xS(o),configSuggestion:OH(o)||(c?"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto.":null)}}let s=null;try{s=await e.health(r)}catch(o){s={connected:!1,error:o?.message||String(o)}}if(e.name==="kv"){try{i=ec(r)}catch{i=null}i&&(n="PROXY_CONFIG",console.error(`[DB] KV proxy configuration error: -`+i))}return{driver:e.name,format:t.name,...s||{},...i?{configError:i,configErrorCode:n,available:!1}:{}}}async function Xx(r){let e=await ES(r);return BS(e)}async function ES(r){try{return await Jn(r)}catch(e){return{driver:"none",format:"none",available:!1,configError:String(e?.message||e),configErrorCode:xS(e)}}}function BS(r){let e=String(r?.driver??"none"),t=e!=="none"&&e!=="",i=e==="memory",n=!!r?.configError,s=r?.available!==!1;return t&&!i&&!n&&s}async function rc(r,e={}){let t=(l,d)=>{if(e.silent)return;let u=l+d;Yx!==u&&(Yx=u,console.error(l+d))};if(!r||typeof r!="object")return{code:null,message:null,suggestion:null};let i=String(r?.DB_DRIVER||"").trim().toLowerCase()==="kv";if(i){let l=ec(r);if(l)return t(`[DB] KV proxy configuration error: -`,l),{code:"PROXY_CONFIG",message:l,suggestion:"Set EO_KV_URLS to the correct deployment origin, or use DB_DRIVER=auto."}}let n=await ES(r);if(BS(n))return Yx=null,{code:null,message:null,suggestion:null};if(!i&&String(n?.driver??"")==="kv"){let l=ec(r);if(l)return t(`[DB] KV proxy configuration error: -`,l),{code:"PROXY_CONFIG",message:l,suggestion:"Set EO_KV_URLS to the correct deployment origin, or use DB_DRIVER=auto."};if(n?.mode==="proxy"&&n?.error?.includes("401")){let d=`KV proxy rejected the internal call (HTTP 401). The JWT_SECRET used by this deployment does not match the one configured on the Edge Functions serving the proxy. Make sure both use the same JWT_SECRET. +`+DG(n)+`Check the binding/credentials for "${r}", or set DB_DRIVER=auto to let the platform pick an available backend. +`+(kG[r]||"")+`Environment: ${jn(e)?"serverless/worker":"local/container"}`,n?`Set DB_DRIVER=${n.name} (or DB_DRIVER=auto) in your deployment variables.`:`Set DB_DRIVER=auto in your deployment variables, or provide the binding/credentials required by "${r}".`)}return console.log(`[DB] Using explicitly configured driver: ${t.name}`),t}function PG(r){switch(r){case"map":return p3;case"key":return C3;case"sql":return b3;default:throw new Error(`Unknown format: ${r}`)}}function P3(r){if(r&&(typeof r=="object"||typeof r=="function")){let e=D3.get(r);return e===void 0&&(e=++TG,D3.set(r,e)),String(e)}return"none"}async function CC(r){let e=tg(r),t=rg(r),i=jn(r)?"sl":"local",n=`${e}:${t}:${i}:${P3(r)}`;if(yC&&IC&&S3===n)return{driver:yC,format:IC};let s=await FG(e,r),o=PG(t);if(_G(s,o),s.init)try{await s.init(r)}catch(a){console.warn(`[DB] Driver init failed (${s.name}):`,a)}return yC=s,IC=o,S3=n,console.log(`[DB] Using driver=${s.name}, format=${o.name}`),{driver:s,format:o}}async function ig(r){let{driver:e,format:t}=await CC(r);return{name:e.name,load:i=>t.load(e,i),save:(i,n)=>t.save(i,e,n),isConfigured:i=>e.isAvailable(i),init:i=>e.init(i),health:i=>e.health(i)}}async function $n(r){let e=null,t=null,i=null,n=null;try{let o=await CC(r);e=o.driver,t=o.format}catch(o){let a=String(o?.message||o),c=a.includes("No storage backend is available");return{driver:"none",format:"none",available:!1,configError:c?Vo:a,configErrorCode:F3(o),configSuggestion:bG(o)||(c?"Bind a persistent storage backend, then redeploy.":null)}}let s=null;try{s=await e.health(r)}catch(o){s={connected:!1,error:o?.message||String(o)}}return{driver:e.name,format:t.name,...s||{}}}async function ng(r){let e=await T3(r);return U3(e)}async function T3(r){try{return await $n(r)}catch(e){return{driver:"none",format:"none",available:!1,configError:String(e?.message||e),configErrorCode:F3(e)}}}function U3(r){let e=String(r?.driver??"none"),t=e!=="none"&&e!=="",i=e==="memory",n=!!r?.configError,s=r?.available!==!1;return t&&!i&&!n&&s}async function hc(r,e={}){let t=(d,u)=>{if(e.silent)return;let f=d+u;wC!==f&&(wC=f,console.error(d+u))};if(!r||typeof r!="object")return{code:null,message:null,suggestion:null};let i=d=>(t(`[DB] KV proxy configuration error: +`,d),{code:"PROXY_CONFIG",message:d,suggestion:"Set EO_KV_URLS to the correct deployment origin, or use DB_DRIVER=auto."}),n=String(r?.DB_DRIVER||"").trim().toLowerCase()==="kv";if(n){let d=Ql(r);if(d)return i(d)}let s=await T3(r);if(U3(s))return wC=null,{code:null,message:null,suggestion:null};if(!n&&String(s?.driver??"")==="kv"){let d=Ql(r);if(d)return i(d);if(s?.mode==="proxy"&&s?.error?.includes("401")){let u=`KV proxy rejected the internal call (HTTP 401). The JWT_SECRET used by this deployment does not match the one configured on the Edge Functions serving the proxy. Make sure both use the same JWT_SECRET. Alternatively set EO_KV_URLS to the correct deployment origin.`;return t(`[DB] KV proxy authentication failed: -`,d),{code:"PROXY_CONFIG",message:d,suggestion:"Use the same JWT_SECRET (>=16 chars) on the Edge Function and this deployment."}}}let s=n?.configError?String(n.configError):null;if(s)return t(`[DB] Storage configuration error: -`,s),{code:n?.configErrorCode||"DRIVER_ERROR",message:s,suggestion:n?.configSuggestion||null};if(String(n?.driver??"none")==="memory")return t(`[DB] Storage configuration error: -`,Fs),{code:"NO_STORAGE",message:Fs,suggestion:"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto."};let o=n?.error?String(n.error):null;if(o)return t(`[DB] Storage unhealthy: -`,o),{code:"HEALTH_ERROR",message:o,suggestion:"Check the credentials/bindings of the configured driver, or set DB_DRIVER=auto."};let a=String(n?.driver??"none"),c=a==="none"||a===""?Fs:`Storage driver "${a}" is not available in this runtime. Check its configuration and bindings, or set DB_DRIVER=auto.`;return t(`[DB] Storage unavailable: -`,c),{code:a==="none"||a===""?"NO_STORAGE":"DRIVER_ERROR",message:c,suggestion:a==="none"||a===""?"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto.":`Set DB_DRIVER=auto, or provide the binding/credentials required by "${a}".`}}var Fs,pS,MH,LH,jx,$x,Vx,mS,yS,jH,Yx,ic=j(()=>{"use strict";Kk();Gk();Ux();Vk();Xk();rS();iS();oS();fS();gS();Fs=`No storage backend is available. Data cannot be persisted in this runtime (serverless environments cannot use in-memory storage). +`,u),{code:"PROXY_CONFIG",message:u,suggestion:"Use the same JWT_SECRET on the Edge Function and this deployment."}}}let o=s?.configError?String(s.configError):null;if(o)return t(`[DB] Storage configuration error: +`,o),{code:s?.configErrorCode||"DRIVER_ERROR",message:o,suggestion:s?.configSuggestion||null};if(String(s?.driver??"none")==="memory")return t(`[DB] Storage configuration error: +`,Vo),{code:"NO_STORAGE",message:Vo,suggestion:"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto."};let a=s?.error?String(s.error):null;if(a)return t(`[DB] Storage unhealthy: +`,a),{code:"HEALTH_ERROR",message:a,suggestion:"Check the credentials/bindings of the configured driver, or set DB_DRIVER=auto."};let c=String(s?.driver??"none"),l=c==="none"||c===""?Vo:`Storage driver "${c}" is not available in this runtime. Check its configuration and bindings, or set DB_DRIVER=auto.`;return t(`[DB] Storage unavailable: +`,l),{code:c==="none"||c===""?"NO_STORAGE":"DRIVER_ERROR",message:l,suggestion:c==="none"||c===""?"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto.":`Set DB_DRIVER=auto, or provide the binding/credentials required by "${c}".`}}var Vo,_3,k3,vG,kG,mC,QG,yC,IC,S3,D3,TG,wC,gc=J(()=>{"use strict";e3();t3();sC();o3();l3();A3();h3();m3();E3();v3();Gr();Vo=`No storage backend is available. Data cannot be persisted in this runtime (serverless environments cannot use in-memory storage). Configure one of the following: 1. EdgeOne Blob (recommended, zero config if the project provides it) 2. EdgeOne KV: bind a KV namespace to Edge Functions, then set DB_DRIVER=kv (DB_FORMAT=map or key) and JWT_SECRET 3. Cloudflare KV / D1: bind the namespace and set DB_DRIVER accordingly Environment variables to set in the project settings: DB_DRIVER=blob | kv | cfkv | d1 | do | mysql - DB_FORMAT=map | key | sql`,pS={blob:Rx,cfkv:Nx,kv:$0,d1:Mx,do:Hx,mysql:Gx};MH="https://doc.oplist.org/ecosystem/official_worker/guide",LH={kv:`The "kv" driver requires one of the following: + DB_FORMAT=map | key | sql`,_3=`DB_DRIVER="memory" is only valid on a local Node runtime. +This deployment is serverless, where in-memory storage loses all data immediately. +Set DB_DRIVER=auto, or bind a persistent backend (D1 / KV / Blob).`,k3={blob:oC,cfkv:aC,kv:jh,d1:dC,do:fC,mysql:hC};vG="https://doc.oplist.org/ecosystem/official_worker/guide",kG={kv:`The "kv" driver requires one of the following: - Cloudflare Workers: a KV namespace binding named exactly "KV" (wrangler.jsonc: "kv_namespaces": [{ "binding": "KV" }]); - - EdgeOne Node Functions: KV is NOT injected into Node functions, so the Edge Function KV proxy must be reachable (known request origin / EO_KV_URLS) and JWT_SECRET (>=16 chars, identical on the Edge Function side) must be set. + - EdgeOne Node Functions: KV is NOT injected into Node functions, so the Edge Function KV proxy must be reachable (known request origin / EO_KV_URLS) and JWT_SECRET (identical on the Edge Function side) must be set. If neither applies, use DB_DRIVER=auto, DB_DRIVER=blob (EdgeOne) or DB_DRIVER=d1 (Cloudflare). `,d1:`The "d1" driver requires a Cloudflare D1 binding named "DB" (wrangler.jsonc: "d1_databases": [{ "binding": "DB", ... }]). EdgeOne has no D1 \u2014 use DB_DRIVER=blob there instead. @@ -45,9 +45,11 @@ EdgeOne has no D1 \u2014 use DB_DRIVER=blob there instead. `,do:`The "do" driver requires a Durable Objects namespace binding named "DO" (wrangler.jsonc: "durable_objects": { "bindings": [{ "name": "DO", "class_name": "..." }] } plus a matching migration). `,mysql:`The "mysql" driver requires a Node runtime plus connection info (MYSQL_URLS, or MYSQL_HOST/MYSQL_PORT/MYSQL_USER/MYSQL_PASS/MYSQL_NAME). Cloudflare Workers cannot open raw TCP connections to MySQL. `,blob:`The "blob" driver requires either the EdgeOne Blob SDK (only present inside the EdgeOne Makers runtime) or an ESA_BLOB binding on Alibaba ESA. -`},jx=null;$x=null,Vx=null,mS=null,yS=new WeakMap,jH=0;Yx=null});async function $H(){if(sh)return sh;if(vS>=3)return null;vS++;try{let{getStore:r}=await Promise.resolve().then(()=>Qr(Tx(),1));sh=r({name:"openlist_db",consistency:"strong"})}catch{return null}return sh}function SS(){kS||(kS=!0,!(typeof process>"u"||typeof process.on!="function")&&process.on("uncaughtException",r=>{(r?.message?.includes("RESP")||r?.message?.includes("Unknown type")||r?.stack?.includes("processResponses"))&&console.error("[KV/RESP] Caught uncaught exception from storage binding, continuing:",r.message)}))}function QS(r){r&&(Zx=r)}function DS(r){if(!r||typeof r!="object")return!1;try{return typeof r.get!="function"?!1:typeof r.put=="function"||typeof r.set=="function"}catch{return!1}}function VH(r,e){let t=async()=>(await Promise.resolve().then(()=>(Ux(),Lk))).kvDriver;return{async get(i){return(await t()).get(i,e)},async put(i,n){return(await t()).put(i,n,e)},async delete(i){return(await t()).delete(i,e)},async list(i={}){return{keys:(await(await t()).list(i?.prefix||"",e)).map(s=>({name:s,key:s}))}}}}async function eC(r){r&&(Zx=r);let e=r||Zx||(typeof process<"u"?process.env:{}),t=typeof globalThis<"u"?globalThis:{};if(e&&typeof e=="object"){let a=Ru.get(e);if(a)return a}let i=DS(e?.KV)?e.KV:DS(t?.KV)?t.KV:null;if(String(e?.DB_DRIVER||"").trim().toLowerCase()==="kv"&&!i){let a;try{a=e?.EO_KV_URLS||e?.__requestOrigin}catch{a=void 0}let c=wl(a,e);if(c){let l={binding:VH(c,e),platform:"EdgeOne KV (via Edge Function proxy)",mode:"proxy"};return e&&typeof e=="object"&&Ru.set(e,l),l}console.warn("[DB] getKvBinding: KV proxy requested but no origin available (set EO_KV_URLS or ensure request origin is injected)")}try{let a=await $H();if(a){SS();let c={binding:a,platform:"EdgeOne Blob (@edgeone/pages-blob, strong consistency)",mode:"blob"};return e&&typeof e=="object"&&Ru.set(e,c),c}}catch(a){console.error(`[DB] getKvBinding: EdgeOne Blob init failed: ${a?.message||a}`,`stack=${a?.stack?.substring(0,300)||""}`)}if(i){let a=!!(e&&(e.EDGEONE||e.EO_REGION))||!!(t.EDGEONE||typeof t.EdgeOne<"u");a&&SS();let l={binding:i,platform:a?"EdgeOne KV (KV)":"Cloudflare / EdgeOne KV (KV)",mode:"binding"};return e&&typeof e=="object"&&Ru.set(e,l),l}{let a=e.CF_ACCOUNT||(typeof process<"u"?process.env.CF_ACCOUNT:""),c=e.CF_KV_UUID||(typeof process<"u"?process.env.CF_KV_UUID:""),l=e.CF_API_KEY||(typeof process<"u"?process.env.CF_API_KEY:"");if(a&&c&&l){let d={binding:{type:"cf_rest",accountId:a,namespaceId:c,token:l},platform:"Cloudflare KV (REST API)",mode:"api"};return e&&typeof e=="object"&&Ru.set(e,d),d}}let s=String(e?.DB_DRIVER||"").trim().toLowerCase();return(!s||s==="auto"||s==="kv"||s==="cfkv"||s==="blob")&&console.warn(s&&s!=="auto"?`[DB] getKvBinding: no KV-style binding found; DB_DRIVER="${s}" is served by getStorageBackend() instead. This is expected.`:"[DB] getKvBinding: no KV/Blob binding found in auto detection."),{binding:null,platform:"none",mode:"none"}}async function YH(r,e="openlist_config"){let{binding:t,mode:i}=r;if(i==="none"||!t)return null;try{if(i==="blob"){let n=await t.get(e,{type:"json"});if(n)return n;let s=await t.get(e);if(s)return typeof s=="string"?JSON.parse(s):s}else if(i==="binding"||i==="proxy"){let n=null;try{n=await t.get(e,"text")}catch{n=await t.get(e)}if(n==null&&(n=await t.get(e)),n)return typeof n=="string"?JSON.parse(n):n}else if(t.type==="cf_rest"){let n=`https://api.cloudflare.com/client/v4/accounts/${t.accountId}/storage/kv/namespaces/${t.namespaceId}/values/${e}`,s=await fetch(n,{headers:{Authorization:`Bearer ${t.token}`}});if(s.ok){let o=await s.text();return JSON.parse(o)}}}catch(n){console.error("[KV/Blob Store] Error reading key:",e,n)}return null}async function bl(r){let e=await eC(r),t=e.mode!=="none",i=!1,n=null;if(t)try{let s=await YH(e,"openlist_config");return i=!0,{configured:!0,connected:!0,platform:e.platform,mode:e.mode,hasData:!!s,error:null}}catch(s){n=s.message||String(s)}return{configured:t,connected:i,platform:e.platform,mode:e.mode,hasData:!1,error:n}}async function _S(r){let{getStorageBackend:e}=await Promise.resolve().then(()=>(ic(),bS)),{driver:t}=await e(r);return t}async function nc(r,e){try{let i=await(await _S(r)).get(e,r);if(i==null)return null;let n=typeof i?.text=="function"?await i.text():i;return String(n).trim()||null}catch(t){return console.warn(`[Secret] read "${e}" failed:`,t),null}}async function oh(r,e,t){try{return await(await _S(r)).put(e,t,r),!0}catch(i){return console.warn(`[Secret] cannot persist "${e}": ${i?.message||i}`),!1}}function FS(){let r=new Uint8Array(32);return crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}var sh,vS,kS,Zx,Ru,tC=j(()=>{"use strict";K0();K0();sh=null,vS=0;kS=!1;Zx=null,Ru=new WeakMap});var Gr={};xn(Gr,{ENCRYPTION_SECRET_KV_KEY:()=>kl,__resetDbCacheForTest:()=>iK,__setStoreBackendLoaderForTest:()=>nK,defaultDb:()=>ac,ensureEncryptionSecret:()=>aC,getDb:()=>ne,getDbLoadError:()=>Ah,getKvBinding:()=>eC,getKvStatus:()=>bl,getMetas:()=>fK,getPlugins:()=>AK,getSettings:()=>jn,getStorages:()=>uK,getStoreStatus:()=>Jn,getUsers:()=>dK,isDbShell:()=>NS,isDbTrusted:()=>nC,isDbWriteBlocked:()=>eK,isEncryptionReady:()=>gh,readPersistedSecret:()=>nc,resolvePath:()=>tt,saveDb:()=>fe,setEnvCtx:()=>sC,writePersistedSecret:()=>oh});function nC(){return No}function Ah(){return oc}function eK(){return iC}function NS(r){if(!r||typeof r!="object")return!0;let e=Array.isArray(r.storages)?r.storages.length:0,t=Array.isArray(r.shares)?r.shares.length:0,i=Array.isArray(r.metas)?r.metas.length:0,n=Array.isArray(r.plugins)?r.plugins.length:0;if(e+t+i+n>0||(Array.isArray(r.users)?r.users:[]).some(d=>String(d?.password||"").trim()!==""))return!1;let a=Array.isArray(r.settings)?r.settings:[],c=Array.isArray(ac.settings)?ac.settings:[],l=new Map(c.map(d=>[String(d.key),d.value]));return a.every(d=>l.has(String(d.key))&&l.get(String(d.key))===d.value)}function sC(r){r&&(oi=r,QS(r))}function oC(r){let e=r?.JWT_SECRET||(typeof process<"u"?process.env?.JWT_SECRET:"");return typeof e=="string"&&e.length>=16?e:null}async function MS(r){let e=r||oi||(typeof process<"u"?process.env:{}),t=oC(e);if(t)return(!sc||qo!==t)&&(qo=t,sc=!0),t;if(qo&&!sc)return qo;try{let i=await nc(e,kl);if(i&&i.length>=16)return qo=i,sc=!1,i}catch{}return TS||(TS=!0,console.error("[DB] No encryption key available: set JWT_SECRET. Sensitive fields would otherwise be written in plaintext.")),null}async function gh(r){let e=r||oi||(typeof process<"u"?process.env:{});if(oC(e))return!0;try{let t=await nc(e,kl);return!!(t&&t.length>=16)}catch{return!1}}function aK(r){return new Promise(e=>setTimeout(e,r))}async function aC(r){if(Nu)return Nu;Nu=(async()=>{let e=r||oi||(typeof process<"u"?process.env:{}),t=oC(e);if(t)return t;let i=await nc(e,kl);if(i&&i.length>=16)return qo=i,sc=!1,i;let n=FS();if(!await oh(e,kl,n))return console.error("[DB] Failed to persist an encryption key. Sensitive fields will be stored in plaintext until JWT_SECRET is configured via environment variable."),null;qo=n,sc=!1;let o=sK;for(let a=0;a=16&&c!==n)return console.warn("[DB] A different encryption key already exists; adopting it to keep encrypt/decrypt symmetric."),qo=c,sc=!1,c;await aK(o),o=Math.min(o*2,oK)}return console.warn(`[DB] Encryption key written but not yet readable after ${US} retries. Cross-instance reads may lag briefly due to eventual consistency; retry shortly.`),n})();try{return await Nu}finally{Nu=null}}async function uh(r,e){return!r||r.startsWith(Oo)?r:Oo+await pk(r,e)}async function fh(r,e){if(!r||!r.startsWith(Oo))return r;try{return await mk(r.slice(Oo.length),e)}catch(t){return console.warn("[DB] Failed to decrypt a sealed secret (wrong JWT_SECRET?):",t),r}}async function cK(r,e){if(!e||!r)return r;let t=JSON.parse(JSON.stringify(r));for(let i of t.storages||[]){if(!i||!i.addition)continue;let n=typeof i.addition=="string"?i.addition:JSON.stringify(i.addition);n&&n!=="{}"&&(i.addition=await uh(n,e))}for(let i of t.settings||[])i&&OS.has(i.key)&&i.value&&(i.value=await uh(String(i.value),e));for(let i of t.users||[])i&&i.otp_secret&&(i.otp_secret=await uh(String(i.otp_secret),e)),i&&i.password&&(i.password=await uh(String(i.password),e));return t}async function lK(r,e){if(!e||!r)return;let t=[];for(let i of r.storages||[])if(i&&typeof i.addition=="string"&&i.addition.startsWith(Oo)){let n=i,s=n.addition;t.push(fh(s,e).then(o=>{n.addition=o}))}for(let i of r.settings||[])if(i&&OS.has(i.key)&&typeof i.value=="string"&&i.value.startsWith(Oo)){let n=i,s=n.value;t.push(fh(s,e).then(o=>{n.value=o}))}for(let i of r.users||[])if(i){if(typeof i.otp_secret=="string"&&i.otp_secret.startsWith(Oo)){let n=i,s=n.otp_secret;t.push(fh(s,e).then(o=>{n.otp_secret=o}))}if(typeof i.password=="string"&&i.password.startsWith(Oo)){let n=i,s=n.password;t.push(fh(s,e).then(o=>{n.password=o}))}}t.length>0&&await Promise.all(t)}async function tt(r,e){let t=await ne(e),i=r;try{i=decodeURIComponent(String(i||""))}catch{}let n="",s=0;for(;i!==n&&s<3;){n=i;try{let f=decodeURIComponent(i);if(f===i)break;i=f,s++}catch{break}}i=i.replace(/\\/g,"/").replace(/%5c/gi,"/").replace(/%2f/gi,"/").replace(/\.{3,}/g,"..").replace(/\/+/g,"/");let o=["\0","\r",` -`," "];for(let f of o)if(i.includes(f))throw new Error(`invalid path: illegal character detected (0x${f.charCodeAt(0).toString(16)})`);if(/^[A-Za-z]:/.test(i))throw new Error("invalid path: absolute Windows path not allowed");if(i.startsWith("//")||i.startsWith("\\\\"))throw new Error("invalid path: UNC path not allowed");let a=[];for(let f of i.split("/"))if(!(f===""||f===".")){if(f===".."){a.pop();continue}a.push(f)}let c="/"+a.join("/");c===""&&(c="/");let l=(t.storages||[]).filter(f=>!f.disabled&&typeof f.driver=="string"&&f.driver.trim()!==""&&f.driver!=="undefined"&&f.driver!=="null"&&typeof f.mount_path=="string"&&f.mount_path.trim()!=="");if(l.length===0)throw new Error("failed get storage: storage not found; please add a storage first");let d=[...l].sort((f,h)=>{let g="/"+(f.mount_path||"").split("/").filter(Boolean).join("/");return("/"+(h.mount_path||"").split("/").filter(Boolean).join("/")).length-g.length});for(let f of d){let h="/"+(f.mount_path||"").split("/").filter(Boolean).join("/"),g=h==="/";if(g||c===h||c.startsWith(h+"/")){let I=c;g||(I=c.slice(h.length)),I.startsWith("/")||(I="/"+I);let y={};try{y=typeof f.addition=="string"?JSON.parse(f.addition||"{}"):f.addition||{}}catch{y={}}let C=y.root_folder_path!==void 0?y.root_folder_path:"/",x=([C,I].map(R=>R.replace(/\\/g,"/")).filter(R=>!!R&&R!=="/").join("/")||"/").replace(/\/{2,}/g,"/"),_=String(C||"/").replace(/\\/g,"/").replace(/\/+$/,"")||"/";if(_!=="/"&&x!==_&&!x.startsWith(_+"/"))throw new Error("path traversal blocked: escapes storage root");if(x.split("/").includes(".."))throw new Error("path traversal blocked: illegal '..' segment");return{storage:f,relative:I,physical:x,rootFolder:C,cleanPath:c,isVirtual:!1}}}let u=!1;for(let f of l){let h="/"+(f.mount_path||"").split("/").filter(Boolean).join("/");if(h!=="/"&&h.startsWith(c==="/"?"/":c+"/")){u=!0;break}}if(u)return{storage:null,relative:c,physical:null,rootFolder:null,cleanPath:c,isVirtual:!0};throw new Error("failed get storage: storage not found")}async function jn(){let r=await ne(),e={};return r.settings&&r.settings.forEach(t=>{e[t.key]=t.value}),e}async function dK(){return(await ne()).users||[]}async function uK(){return(await ne()).storages||[]}async function fK(){return(await ne()).metas||[]}async function AK(){return(await ne()).plugins||[]}var RS,WH,XH,ZH,ac,ht,oi,No,iC,oc,tK,rC,ah,ch,lh,dh,rK,Ou,qu,hh,iK,nK,vl,qS,PS,ne,Oo,OS,TS,kl,qo,sc,Nu,US,sK,oK,fe,Ve=j(()=>{"use strict";si();tC();ic();tC();ic();RS="txt,htm,html,xml,java,properties,sql,js,json,c,cpp,python,py,php,go,rst,css,typescript,ts,log,conf,yaml,yml,cmd,bash,sh,vue,ini,md,bat,gitignore,h,hpp,tsx,vtt,srt,ass,rs,lrc,strm",WH="m3u8,url",XH="authorization,referer",ZH="txt,htm,html,xml,java,properties,sql,js,json,c,cpp,python,py,php,go,rst,css,typescript,ts,log,conf,yaml,yml,cmd,bash,sh,vue,ini",ac={settings:[{key:"version",value:"v4.2.3",type:"string",help:"Application Version",group:1,flag:1},{key:"site_title",value:"OpenList",type:"string",help:"Site Title",group:1,flag:0},{key:"announcement",value:"",type:"text",help:"Site Announcement",group:1,flag:0},{key:"pagination_type",value:"pagination",type:"select",options:"all,pagination,load_more,auto_load_more",help:"Pagination Type",group:1,flag:0},{key:"default_page_size",value:"20",type:"number",help:"Default Page Size",group:1,flag:0},{key:"allow_indexed",value:"false",type:"bool",help:"Allow Search Engine Indexing",group:1,flag:0},{key:"allow_mounted",value:"true",type:"bool",help:"Allow Mounted Storages",group:1,flag:0},{key:"robots_txt",value:`User-agent: * -Disallow: /`,type:"text",help:"Robots Txt Content",group:1,flag:0},{key:"logo",value:"https://res.oplist.org/logo/logo.svg",type:"string",help:"Site Logo URL",group:2,flag:0},{key:"favicon",value:"https://res.oplist.org/logo/logo.svg",type:"string",help:"Favicon URL",group:2,flag:0},{key:"main_color",value:"#1890ff",type:"string",help:"Main Theme Color",group:2,flag:0},{key:"home_icon",value:"openlist",type:"string",help:"Home Icon Name",group:2,flag:0},{key:"home_container",value:"max_980px",type:"select",options:"max_980px,hope_container",help:"Home Container Width",group:2,flag:0},{key:"settings_layout",value:"responsive",type:"select",options:"list,responsive",help:"Settings Layout Mode",group:2,flag:0},{key:"text_types",value:RS,type:"text",help:"Text File Extensions",group:3,flag:0},{key:"audio_types",value:"mp3,ogg,aac,wav,wma,flac,m4a,opus",type:"text",help:"Audio File Extensions",group:3,flag:0},{key:"video_types",value:"mp4,mkv,webm,avi,mov,flv,m3u8,ts",type:"text",help:"Video File Extensions",group:3,flag:0},{key:"image_types",value:"jpg,png,jpeg,gif,bmp,svg,ico,webp,avif,tiff",type:"text",help:"Image File Extensions",group:3,flag:0},{key:"proxy_types",value:WH,type:"text",help:"Proxy File Extensions",group:3,flag:0},{key:"proxy_ignore_headers",value:XH,type:"text",help:"Proxy Ignore Headers",group:3,flag:0},{key:"external_previews",value:"{}",type:"text",help:"External Previews JSON Config",group:3,flag:0},{key:"iframe_previews",value:"{}",type:"text",help:"Iframe Previews JSON Config",group:3,flag:0},{key:"audio_cover",value:"https://file.nn.ci/alist/cover.png",type:"string",help:"Audio Default Cover Image URL",group:3,flag:0},{key:"audio_autoplay",value:"false",type:"bool",help:"Autoplay Audio",group:3,flag:0},{key:"video_autoplay",value:"false",type:"bool",help:"Autoplay Video",group:3,flag:0},{key:"preview_archives_by_default",value:"false",type:"bool",help:"Preview Archives By Default",group:3,flag:0},{key:"readme_autorender",value:"true",type:"bool",help:"Readme Autorender",group:3,flag:0},{key:"filter_readme_scripts",value:"true",type:"bool",help:"Filter Readme Scripts",group:3,flag:0},{key:"force_preview",value:"",type:"text",help:"Force Preview Config",group:3,flag:0},{key:"specify_preview",value:"",type:"text",help:"Specify Preview Layout Config",group:3,flag:0},{key:"markdown_autorender",value:"true",type:"bool",help:"Autorender Markdown",group:3,flag:0},{key:"code_editor_theme",value:"vs-dark",type:"select",options:"vs,vs-dark,hc-black",help:"Monaco Theme",group:3,flag:0},{key:"office_preview",value:"true",type:"bool",help:"Enable Office Document Preview",group:3,flag:0},{key:"pdf_preview",value:"true",type:"bool",help:"Enable PDF Preview",group:3,flag:0},{key:"hide_files",value:"",type:"text",help:"Files Regex to Hide",group:4,flag:0},{key:"package_download",value:"true",type:"bool",help:"Package Download Enabled",group:4,flag:0},{key:"customize_head",value:"",type:"text",help:"Custom Head HTML/CSS",group:4,flag:0},{key:"customize_body",value:"",type:"text",help:"Custom Body Script",group:4,flag:0},{key:"link_expiration",value:"0",type:"number",help:"Link Expiration in Seconds",group:4,flag:0},{key:"sign_all",value:"false",type:"bool",help:"Sign All Download Links",group:4,flag:0},{key:"seed_site_url",value:"",type:"string",help:"Public site URL used by transfer seed sources",group:4,flag:1},{key:"seed_default_matrix",value:'{"md5":{"whole":true,"pieces":false},"sha1":{"whole":true,"pieces":false},"sha256":{"whole":true,"pieces":false}}',type:"text",help:"Default transfer seed hash matrix",group:4,flag:1},{key:"seed_format_policies",value:'{"oss":"off","torrent":"off","cas":"off"}',type:"text",help:"Automatic transfer seed format policies",group:4,flag:1},{key:"seed_auto_generate_policy",value:"off",type:"select",options:"off,on",help:"Global automatic transfer seed policy",group:4,flag:1},{key:"seed_single_direct_preview",value:"false",type:"bool",help:"Open single-file transfer seeds directly in preview",group:4,flag:0},{key:"seed_cas_direct_access",value:"false",type:"bool",help:"When opening a single-file CAS seed, immediately rapid-upload it into the same folder and preview the restored file",group:4,flag:0},{key:"seed_default_trackers",value:"",type:"text",help:"Default tracker list offered when generating torrent seeds (one tracker per line)",group:4,flag:1},{key:"privacy_regs",value:"",type:"text",help:"Privacy Regex Rules",group:4,flag:0},{key:"ocr_api",value:"",type:"string",help:"OCR API Endpoint",group:4,flag:0},{key:"filename_char_mapping",value:"{}",type:"text",help:"Filename Char Mapping JSON",group:4,flag:0},{key:"forward_direct_link_params",value:"",type:"string",help:"Forward Direct Link Params",group:4,flag:0},{key:"ignore_direct_link_params",value:"",type:"string",help:"Ignore Direct Link Params",group:4,flag:0},{key:"webauthn_login_enabled",value:"false",type:"bool",help:"Webauthn Login Enabled",group:4,flag:0},{key:"allow_previewing_sharing_files",value:"true",type:"bool",help:"Allow Previewing Sharing Files",group:4,flag:0},{key:"allow_previewing_sharing_archives",value:"true",type:"bool",help:"Allow Previewing Sharing Archives",group:4,flag:0},{key:"force_proxy_sharing_files",value:"false",type:"bool",help:"Force Proxy Sharing Files",group:4,flag:0},{key:"share_summary_content",value:"",type:"text",help:"Share Summary Content",group:4,flag:0},{key:"handle_hook_after_writing",value:"",type:"string",help:"Handle Hook After Writing",group:4,flag:0},{key:"handle_hook_rate_limit",value:"0",type:"number",help:"Handle Hook Rate Limit",group:4,flag:0},{key:"ignore_system_files",value:"true",type:"bool",help:"Ignore System Files (.DS_Store, desktop.ini, etc.)",group:4,flag:0},{key:"auto_update_index",value:"false",type:"bool",help:"Auto Update Search Index",group:4,flag:0},{key:"sso_login_enabled",value:"false",type:"bool",help:"Enable SSO Login",group:7,flag:0},{key:"sso_login_platform",value:"",type:"select",options:"Github,Microsoft,Google,Dingtalk,Casdoor,OIDC",help:"SSO Platform",group:7,flag:0},{key:"sso_client_id",value:"",type:"string",help:"SSO Client ID",group:7,flag:0},{key:"sso_client_secret",value:"",type:"string",help:"SSO Client Secret",group:7,flag:0},{key:"sso_login_url",value:"",type:"string",help:"SSO Authorization Endpoint",group:7,flag:0},{key:"sso_token_url",value:"",type:"string",help:"SSO Token Endpoint (optional, defaults per platform)",group:7,flag:0},{key:"sso_userinfo_url",value:"",type:"string",help:"SSO UserInfo Endpoint (optional, defaults per platform)",group:7,flag:0},{key:"sso_scopes",value:"",type:"string",help:"SSO OAuth2 Scopes (optional, space separated)",group:7,flag:0},{key:"sso_oidc_discovery_url",value:"",type:"string",help:"OIDC Discovery URL (for OIDC platform)",group:7,flag:0},{key:"sso_login_callback_url",value:"",type:"string",help:"SSO Redirect/Callback URL (optional, defaults to /api/auth/sso_callback)",group:7,flag:0},{key:"sso_compatibility_mode",value:"false",type:"bool",help:"SSO Compatibility Mode (postMessage token handoff)",group:7,flag:0},{key:"sso_auto_register",value:"false",type:"bool",help:"Auto Register New SSO Users",group:7,flag:0},{key:"sso_default_dir",value:"/",type:"string",help:"SSO Default Directory for New Users",group:7,flag:0},{key:"sso_default_permission",value:"0",type:"number",help:"SSO Default Permission for New Users",group:7,flag:0},{key:"ldap_host",value:"",type:"string",help:"LDAP Server Host",group:8,flag:0},{key:"ldap_port",value:"389",type:"number",help:"LDAP Server Port",group:8,flag:0},{key:"traffic_limit",value:"0",type:"number",help:"Traffic Limit in MB",group:10,flag:0},{key:"ip_limit",value:"0",type:"number",help:"IP Rate Limit Per Minute",group:10,flag:0},{key:"115_temp_dir",value:"",type:"string",help:"115 Temp Directory",group:14,flag:0},{key:"115_open_temp_dir",value:"",type:"string",help:"115 Open Temp Directory",group:14,flag:0},{key:"123_temp_dir",value:"",type:"string",help:"123 Pan Temp Directory",group:14,flag:0},{key:"123_open_temp_dir",value:"",type:"string",help:"123 Open Temp Directory",group:14,flag:0},{key:"123_open_callback_url",value:"",type:"string",help:"123 Open Callback URL",group:14,flag:0},{key:"pikpak_temp_dir",value:"",type:"string",help:"PikPak Temp Directory",group:14,flag:0},{key:"thunder_temp_dir",value:"",type:"string",help:"Thunder Temp Directory",group:14,flag:0},{key:"thunder_browser_temp_dir",value:"",type:"string",help:"Thunder Browser Temp Directory",group:14,flag:0},{key:"thunderx_temp_dir",value:"",type:"string",help:"ThunderX Temp Directory",group:14,flag:0},{key:"token",value:"",type:"string",help:"115 / PikPak / Thunder Token",group:14,flag:0},{key:"package_download_disabled",value:"false",type:"bool",help:"Disable Package Download",group:14,flag:0}],storages:[],users:[{id:1,username:"admin",password:"",role:2,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()},{id:2,username:"guest",password:"",role:1,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()}],metas:[],shares:[],plugins:[]},ht=null,oi=null,No=!1,iC=!1,oc=null;tK={logo:{from:["","/logo.png","https://res.oplist.org/logo/logo.png"],to:"https://res.oplist.org/logo/logo.svg"},favicon:{from:["","/favicon.png"],to:"https://res.oplist.org/logo/logo.svg"},home_container:{from:["hope_container"],to:"max_980px"},text_types:{from:[ZH],to:RS}},rC=r=>{if(!r)return;r.settings||(r.settings=[]);let e=!1,t=[],i=new Set;for(let n of ac.settings){i.add(n.key);let s=r.settings.filter(o=>o.key===n.key);if(s.length===0)t.push(JSON.parse(JSON.stringify(n))),e=!0;else{let o=s.find(c=>c.value&&c.value.trim()!=="")||s[0];(o.group!==n.group||o.help!==n.help||o.type!==n.type||o.options!==n.options||o.flag!==n.flag)&&(o.group=n.group,o.help=n.help,o.type=n.type,o.options=n.options,o.flag=n.flag,e=!0),s.length>1&&(e=!0);let a=tK[n.key];a&&a.from.includes(o.value)&&(o.value=a.to,e=!0),t.push(o)}}for(let n of r.settings)n.key&&!i.has(n.key)&&(i.add(n.key),t.push(n));r.settings=t},ah=r=>{r&&(!r.storages||!Array.isArray(r.storages)?r.storages=[]:r.storages=r.storages.filter(e=>e&&typeof e=="object"&&typeof e.driver=="string"&&e.driver.trim()!==""&&e.driver!=="undefined"&&e.driver!=="null"&&typeof e.mount_path=="string"&&e.mount_path.trim()!==""))},ch=r=>{r&&(r.shares||(r.shares=[]))},lh=r=>{r&&(r.plugins||(r.plugins=[]))},dh=r=>{r&&(!r.metas||!Array.isArray(r.metas))&&(r.metas=[])},rK=1e3,Ou=new WeakMap,qu=new WeakMap,hh=r=>nh(r),iK=()=>{oi&&typeof oi=="object"&&(Ou.delete(oi),qu.delete(oi)),vl&&(Ou.delete(vl),qu.delete(vl)),vl=null,oi=null,ht=null,hh=r=>nh(r)},nK=r=>{hh=r},vl=null,qS=()=>{let r=oi;return!r||typeof r!="object"?null:(vl=r,vl)},PS=async r=>{r&&(oi=r);let e=r||oi,t=null;try{t=await hh(e);let i=await t.load(e);if(i)return await lK(i,await MS(e)),ht=i,rC(ht),ah(ht),ch(ht),lh(ht),dh(ht),No=!0,oc=null,ht;if(No&&ht)return console.warn(`[DB] Backend ${t?.name??"storage"} returned empty while a trusted snapshot exists; keeping the in-memory snapshot to avoid overwriting real config.`),rC(ht),ah(ht),ch(ht),lh(ht),dh(ht),ht;No=!1,oc=null}catch(i){console.error(`[DB] Error reading config from ${t?.name??"storage"}:`,i?.message||i),oc=String(i?.message||i),No=!1}return ht&&No?(rC(ht),ah(ht),ch(ht),lh(ht),dh(ht),ht):(ht=JSON.parse(JSON.stringify(ac)),ah(ht),ch(ht),lh(ht),dh(ht),ht)},ne=async r=>{r&&(oi=r);let e=r||qS();if(!e)return PS(r);let t=qu.get(e);if(t)return t;let i=Ou.get(e);if(i&&Date.now()-i.ts(Ou.set(e,{ts:Date.now(),db:s}),s)).finally(()=>{qu.delete(e)});return qu.set(e,n),n},Oo="enc:v1:",OS=new Set(["token","sso_client_secret","sso_client_id","ldap_bind_password","ldap_bind_dn","ocr_api","handle_hook_after_writing"]),TS=!1,kl="openlist_encryption_secret";qo=null,sc=!1;Nu=null,US=6,sK=100,oK=1e3;fe=async(r,e,t)=>{e&&(oi=e);let i=e||oi;if(NS(r)&&!t?.force){iC=!0;let c=oc?`last load failed: ${oc}`:No?"payload is an empty/shell database":"database was never successfully loaded from the persistence backend";return console.error(`[DB] saveDb BLOCKED: refusing to persist an empty/shell database (${c}). This guard prevents an empty payload from wiping real config. Pass saveDb(db, env, { force: true }) to override intentionally.`),!1}ht=r,iC=!1;let s=e||qS();s&&Ou.set(s,{ts:Date.now(),db:r});let o=await hh(i);if(!(o.isConfigured?await o.isConfigured(i):!0))return console.warn("[DB] WARNING: No persistence backend configured! Storage configuration changes will exist only in memory!"),!1;try{console.log(`[DB] saveDb: sealing and persisting to ${o.name}, storages=${r.storages?.length||0}`);let c=await cK(r,await MS(i));console.log(`[DB] saveDb: sealed data size=${JSON.stringify(c).length} bytes`),await o.save(c,i)}catch(c){throw console.error(`[DB] saveDb FAILED: backend=${o.name}, error=${c?.message||c}`,`stack=${c?.stack?.substring(0,500)||""}`),new Error(`[DB] Failed to persist config (${o.name}); the change was NOT saved: ${c?.message||c}`)}return console.log(`[DB] Successfully persisted ${r.storages?.length||0} storages to ${o.name}`),No=!0,oc=null,!0}});function X(r,e){if(e)return 1;let t=(r.split(".").pop()||"").toLowerCase();return["mp4","mkv","avi","mov","flv","wmv","ts","m2ts","m4v","rmvb","webm","3gp","asf","vob","ogv","rm","f4v"].includes(t)?2:["mp3","flac","aac","wav","ogg","m4a","opus","wma","ape","alac","aiff","mid","midi"].includes(t)?3:["txt","md","markdown","json","js","ts","jsx","tsx","css","scss","html","htm","xml","yaml","yml","ini","conf","env","log","sql","py","java","c","cpp","h","hpp","go","rs","sh","bat","cmd","ps1","php","rb","swift","kt","cs","vue","svelte","json5","toml"].includes(t)?4:["jpg","jpeg","png","gif","bmp","webp","svg","ico","tiff","tif","heic","heif","avif","vvc","avc","psd","ai"].includes(t)?5:0}var Be=j(()=>{"use strict"});function de(r,e,t){let i=t!=="desc",n=String(e||"name").toLowerCase(),s=[...r];return s.sort((o,a)=>{if(o.is_dir!==a.is_dir)return o.is_dir?-1:1;let c;return n.includes("size")?c=(o.size||0)-(a.size||0):n.includes("time")||n.includes("modified")||n.includes("created")?c=new Date(o.modified).getTime()-new Date(a.modified).getTime():c=String(o.name).localeCompare(String(a.name)),i?c:-c}),s}var He=j(()=>{"use strict"});var $n,cC=j(()=>{"use strict";$n={global:{oauth:"https://login.microsoftonline.com",api:"https://graph.microsoft.com"},cn:{oauth:"https://login.partner.microsoftonline.cn",api:"https://microsoftgraph.chinacloudapi.cn"},us:{oauth:"https://login.microsoftonline.us",api:"https://graph.microsoft.us"},de:{oauth:"https://login.microsoftonline.de",api:"https://graph.microsoft.de"}}});function lC(r,e){let t="";return r.thumbnails&&r.thumbnails.length>0&&(t=r.thumbnails[0].medium?.url||""),{id:r.id,name:r.name,size:r.size,modified:r.lastModifiedDateTime||r.fileSystemInfo?.lastModifiedDateTime||"",isFolder:!!r.folder||!r.file,thumbnail:t,parentID:e,url:r["@microsoft.graph.downloadUrl"]||""}}var LS=j(()=>{"use strict"});async function dC(r){if(r.use_online_api&&r.api_url_address){let s=new URLSearchParams({refresh_ui:r.refresh_token,server_use:"true",driver_txt:"onedrive_pr"}).toString(),a=await(await fetch(`${r.api_url_address}?${s}`)).json();if(!a.refresh_token||!a.access_token)throw a.text?new Error(`failed to refresh token: ${a.text}`):new Error("empty token returned from official API");r.accessToken=a.access_token,r.refresh_token=a.refresh_token,r.onTokenUpdate?.(r.refresh_token);return}if(!r.client_id||!r.client_secret)throw new Error("empty ClientID or ClientSecret");let t=`${($n[r.region]||$n.global).oauth}/common/oauth2/v2.0/token`,n=await(await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",client_id:r.client_id,client_secret:r.client_secret,redirect_uri:r.redirect_uri,refresh_token:r.refresh_token}).toString()})).json();if(!n.refresh_token)throw new Error("Empty token");r.refresh_token=n.refresh_token,r.accessToken=n.access_token,r.onTokenUpdate?.(r.refresh_token)}async function Ui(r,e,t,i,n){let s=i!==void 0&&(i instanceof Uint8Array||i instanceof ArrayBuffer||typeof Buffer<"u"&&Buffer.isBuffer(i)),o={method:t.toUpperCase(),headers:{Authorization:`Bearer ${r.accessToken}`,...i!==void 0?{"Content-Type":s?"application/octet-stream":"application/json"}:{}},...i!==void 0?{body:s?i:JSON.stringify(i)}:{}},a=await fetch(e,o);if(!a.ok){let c;try{c=(await a.json()).error}catch{c=null}let l=c?.code;if((l==="InvalidAuthenticationToken"||l==="ExpiredAuthenticationToken"||a.status===401)&&!n)return await dC(r),Ui(r,e,t,i,!0);throw new Error(c?.message||`Request failed: ${a.status}`)}if(a.status!==204)return a.json()}function HS(r,e,t){let i=e.replace(/\\/g,"/");if(!i||i==="/")return t?`${r}/drive/root/${t}`:`${r}/drive/root`;let n=i.startsWith("/")?i.slice(1):i;if(n.endsWith("/")&&(n=n.slice(0,-1)),!n||n==="")return t?`${r}/drive/root/${t}`:`${r}/drive/root`;let s=n.split("/").map(encodeURIComponent).join("/");return t?`${r}/drive/root:/${s}:/${t}`:`${r}/drive/root:/${s}:`}async function KS(r,e){let t=$n[r.region]||$n.global,i=r.is_sharepoint?`${t.api}/v1.0/sites/${r.site_id}`:`${t.api}/v1.0/me`,s=HS(i,e,"children?$top=1000&$expand=thumbnails($select=medium)&$select=id,name,size,fileSystemInfo,@microsoft.graph.downloadUrl,file,folder,parentReference"),o=[];for(;s;){let a=await Ui(r,s,"GET");a.value&&o.push(...a.value),s=a["@odata.nextLink"]}return o}async function GS(r,e){let t=$n[r.region]||$n.global,i=r.is_sharepoint?`${t.api}/v1.0/sites/${r.site_id}`:`${t.api}/v1.0/me`,n=HS(i,e);return Ui(r,n,"GET")}var zS=j(()=>{"use strict";cC()});var ph,JS=j(()=>{"use strict";He();cC();LS();zS();ph=class{root_folder_path="/";region="global";is_sharepoint=!1;use_online_api=!0;api_url_address="https://api.oplist.org/onedrive/renewapi";client_id="";client_secret="";redirect_uri="https://api.oplist.org/onedrive/callback";refresh_token="";site_id="";chunk_size=5;custom_host="";disable_disk_usage=!1;enable_direct_upload=!1;order_by="filename";order_direction="asc";accessToken="";onTokenUpdate;constructor(e,t){e&&(e.root_folder_path!==void 0&&(this.root_folder_path=String(e.root_folder_path)),e.region!==void 0&&(this.region=String(e.region)),e.is_sharepoint!==void 0&&(this.is_sharepoint=!!e.is_sharepoint),e.use_online_api!==void 0&&(this.use_online_api=!!e.use_online_api),e.api_url_address!==void 0&&(this.api_url_address=String(e.api_url_address)),e.client_id!==void 0&&(this.client_id=String(e.client_id)),e.client_secret!==void 0&&(this.client_secret=String(e.client_secret)),e.redirect_uri!==void 0&&(this.redirect_uri=String(e.redirect_uri)),e.refresh_token!==void 0&&(this.refresh_token=String(e.refresh_token)),e.site_id!==void 0&&(this.site_id=String(e.site_id)),e.chunk_size!==void 0&&(this.chunk_size=Number(e.chunk_size)||5),e.custom_host!==void 0&&(this.custom_host=String(e.custom_host)),e.disable_disk_usage!==void 0&&(this.disable_disk_usage=!!e.disable_disk_usage),e.enable_direct_upload!==void 0&&(this.enable_direct_upload=!!e.enable_direct_upload),e.order_by!==void 0&&(this.order_by=String(e.order_by)),e.order_direction!==void 0&&(this.order_direction=String(e.order_direction))),this.onTokenUpdate=t}async init(){typeof this.is_sharepoint=="string"&&(this.is_sharepoint=this.is_sharepoint.toLowerCase()==="true"),typeof this.use_online_api=="string"&&(this.use_online_api=this.use_online_api.toLowerCase()==="true"),typeof this.chunk_size=="string"&&(this.chunk_size=parseInt(this.chunk_size)||5),typeof this.disable_disk_usage=="string"&&(this.disable_disk_usage=this.disable_disk_usage.toLowerCase()==="true"),typeof this.enable_direct_upload=="string"&&(this.enable_direct_upload=this.enable_direct_upload.toLowerCase()==="true"),this.chunk_size<1&&(this.chunk_size=5),this.refresh_token&&await dC(this)}getMetaUrl(e,t,i){let n=$n[this.region]||$n.global;if(e)return n.oauth;let s=this.is_sharepoint?`${n.api}/v1.0/sites/${this.site_id}`:`${n.api}/v1.0/me`,o=t.replace(/\\/g,"/");if(!o||o==="/")return i?`${s}/drive/root/${i}`:`${s}/drive/root`;let a=o.startsWith("/")?o.slice(1):o;if(a.endsWith("/")&&(a=a.slice(0,-1)),!a||a==="")return i?`${s}/drive/root/${i}`:`${s}/drive/root`;let c=a.split("/").map(l=>{try{return encodeURIComponent(decodeURIComponent(l))}catch{return encodeURIComponent(l)}}).join("/");return i?`${s}/drive/root:/${c}:/${i}`:`${s}/drive/root:/${c}:`}async list(e,t){let n=(await KS(this,t)).map(s=>{let o=lC(s,""),a=s["@microsoft.graph.downloadUrl"]||o.url||"";if(this.custom_host&&a)try{let c=new URL(a);c.host=this.custom_host,a=c.toString()}catch{}return{name:o.name,size:o.size,is_dir:o.isFolder,modified:o.modified,sign:"",type:o.isFolder?1:0,thumb:o.thumbnail||"",raw_url:a}});return de(n,this.order_by,this.order_direction)}async get(e,t){let i=await GS(this,t),n=lC(i,""),s=i["@microsoft.graph.downloadUrl"]||n.url||"";if(this.custom_host&&s)try{let o=new URL(s);o.host=this.custom_host,s=o.toString()}catch{}return{name:n.name,size:n.size,is_dir:n.isFolder,modified:n.modified,sign:"",type:n.isFolder?1:0,thumb:n.thumbnail||"",raw_url:s}}async mkdir(e,t){let i=t.split("/").slice(0,-1).join("/")||"/",n=t.split("/").filter(Boolean).pop()||"",s=this.getMetaUrl(!1,i,"children");await Ui(this,s,"POST",{name:n,folder:{},"@microsoft.graph.conflictBehavior":"rename"})}async rename(e,t,i){let n={name:i},s=this.getMetaUrl(!1,t);await Ui(this,s,"PATCH",n)}async remove(e,t,i){for(let n of i){let s=t==="/"?`/${n}`:`${t}/${n}`,o=this.getMetaUrl(!1,s);await Ui(this,o,"DELETE")}}async move(e,t,i,n,s){let o=this.getMetaUrl(!1,s),a=await Ui(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=this.getMetaUrl(!1,u);await Ui(this,h,"PATCH",f)}}async copy(e,t,i,n,s){let o=this.getMetaUrl(!1,s),a=await Ui(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=this.getMetaUrl(!1,u,"copy");await Ui(this,h,"POST",f)}}async put(e,t,i){if(i.length<=4*1024*1024){let n=this.getMetaUrl(!1,t,"content");await Ui(this,n,"PUT",i)}else{let n=this.getMetaUrl(!1,t,"createUploadSession"),a=(await Ui(this,n,"POST",{item:{"@microsoft.graph.conflictBehavior":"rename"}})).uploadUrl,c=this.chunk_size*1024*1024,l=0,d=i.length;for(;l0&&(t=r.thumbnails[0].medium?.url||""),{id:r.id,name:r.name,size:r.size,modified:r.lastModifiedDateTime||r.fileSystemInfo?.lastModifiedDateTime||"",isFolder:!!r.folder||!r.file,thumbnail:t,parentID:e,url:r["@microsoft.graph.downloadUrl"]||""}}var jS=j(()=>{"use strict"});var cc,$S=j(()=>{"use strict";cc={global:{oauth:"https://login.microsoftonline.com",api:"https://graph.microsoft.com"},cn:{oauth:"https://login.chinacloudapi.cn",api:"https://microsoftgraph.chinacloudapi.cn"},us:{oauth:"https://login.microsoftonline.us",api:"https://graph.microsoft.us"},de:{oauth:"https://login.microsoftonline.de",api:"https://graph.microsoft.de"}}});function Ri(r,e,t,i){let n=cc[r.region]||cc.global;if(e)return n.oauth;let s=t?t.replace(/\\/g,"/"):"";if(!s||s==="/")return i?`${n.api}/v1.0/users/${r.email}/drive/root/${i}`:`${n.api}/v1.0/users/${r.email}/drive/root`;let o=s.startsWith("/")?s.slice(1):s;if(o.endsWith("/")&&(o=o.slice(0,-1)),!o||o==="")return i?`${n.api}/v1.0/users/${r.email}/drive/root/${i}`:`${n.api}/v1.0/users/${r.email}/drive/root`;let a=o.split("/").map(c=>{try{return encodeURIComponent(decodeURIComponent(c))}catch{return encodeURIComponent(c)}}).join("/");return i?`${n.api}/v1.0/users/${r.email}/drive/root:/${a}:/${i}`:`${n.api}/v1.0/users/${r.email}/drive/root:/${a}:`}async function fC(r){let e=null;for(let t=0;t<3;t++)try{await hK(r);return}catch(i){e=i}throw e||new Error("Failed to get access token")}async function hK(r){if(!r.client_id||!r.client_secret)throw new Error("empty client_id or client_secret");if(!r.tenant_id)throw new Error("empty tenant_id");let e=cc[r.region]||cc.global,t=`${e.oauth}/${r.tenant_id}/oauth2/token`,i=new URLSearchParams({grant_type:"client_credentials",client_id:r.client_id,client_secret:r.client_secret,resource:`${e.api}/`,scope:`${e.api}/.default`}).toString(),s=await(await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i})).json();if(s.error)throw new Error(s.error_description||s.error);if(!s.access_token)throw new Error("empty token returned from Microsoft identity platform");r.accessToken=s.access_token,r.onTokenUpdate?.(r.accessToken)}async function ai(r,e,t,i,n){let s=i!==void 0&&(typeof i=="string"||i instanceof Uint8Array||i instanceof ArrayBuffer||typeof Buffer<"u"&&Buffer.isBuffer(i)),o={method:t.toUpperCase(),headers:{Authorization:`Bearer ${r.accessToken}`,...i!==void 0&&!s?{"Content-Type":"application/json"}:{}},...i!==void 0?{body:s?i:JSON.stringify(i)}:{}},a=await fetch(e,o);if(!a.ok){let c;try{c=(await a.json()).error}catch{c=null}let l=c?.code;if((l==="InvalidAuthenticationToken"||l==="ExpiredAuthenticationToken"||a.status===401)&&!n)return await fC(r),ai(r,e,t,i,!0);throw new Error(c?.message||`Request failed: ${a.status}`)}if(a.status!==204)return a.json()}async function VS(r,e){let i=Ri(r,!1,e,"children?$top=1000&$expand=thumbnails($select=medium)&$select=id,name,size,fileSystemInfo,lastModifiedDateTime,@microsoft.graph.downloadUrl,file,folder,parentReference"),n=[];for(;i;){let s=await ai(r,i,"GET");s.value&&n.push(...s.value),i=s["@odata.nextLink"]}return n}async function YS(r,e){let t=Ri(r,!1,e);return ai(r,t,"GET")}async function WS(r){let t=`${(cc[r.region]||cc.global).api}/v1.0/users/${r.email}/drive`;return ai(r,t,"GET",void 0,!0)}async function XS(r,e){let t=Ri(r,!1,e,"createUploadSession"),s=(await ai(r,t,"POST",{item:{"@microsoft.graph.conflictBehavior":"rename"}})).uploadUrl;if(!s)throw new Error("failed to get upload URL from response");return{UploadURL:s,ChunkSize:(r.chunk_size||5)*1024*1024,Method:"PUT"}}var ZS=j(()=>{"use strict";$S()});var mh,eD=j(()=>{"use strict";He();jS();ZS();mh=class{root_folder_path="/";region="global";client_id="";client_secret="";tenant_id="";email="";chunk_size=5;custom_host="";disable_disk_usage=!1;enable_direct_upload=!1;order_by="filename";order_direction="asc";accessToken="";onTokenUpdate;constructor(e,t){e&&(e.root_folder_path!==void 0&&(this.root_folder_path=String(e.root_folder_path)),e.region!==void 0&&(this.region=String(e.region)),e.client_id!==void 0&&(this.client_id=String(e.client_id)),e.client_secret!==void 0&&(this.client_secret=String(e.client_secret)),e.tenant_id!==void 0&&(this.tenant_id=String(e.tenant_id)),e.email!==void 0&&(this.email=String(e.email)),e.chunk_size!==void 0&&(this.chunk_size=Number(e.chunk_size)||5),e.custom_host!==void 0&&(this.custom_host=String(e.custom_host)),e.disable_disk_usage!==void 0&&(this.disable_disk_usage=!!e.disable_disk_usage),e.enable_direct_upload!==void 0&&(this.enable_direct_upload=!!e.enable_direct_upload),e.order_by!==void 0&&(this.order_by=String(e.order_by)),e.order_direction!==void 0&&(this.order_direction=String(e.order_direction))),this.onTokenUpdate=t}async init(){typeof this.chunk_size=="string"&&(this.chunk_size=parseInt(this.chunk_size)||5),typeof this.disable_disk_usage=="string"&&(this.disable_disk_usage=this.disable_disk_usage.toLowerCase()==="true"),typeof this.enable_direct_upload=="string"&&(this.enable_direct_upload=this.enable_direct_upload.toLowerCase()==="true"),this.chunk_size<1&&(this.chunk_size=5),this.client_id&&this.client_secret&&this.tenant_id&&await fC(this)}async list(e,t){let n=(await VS(this,t)).map(s=>{let o=uC(s,""),a=s["@microsoft.graph.downloadUrl"]||o.url||"";if(this.custom_host&&a)try{let c=new URL(a);c.host=this.custom_host,a=c.toString()}catch{}return{name:o.name,size:o.size,is_dir:o.isFolder,modified:o.modified,sign:"",type:o.isFolder?1:0,thumb:o.thumbnail||"",raw_url:a}});return de(n,this.order_by,this.order_direction)}async get(e,t){let i=await YS(this,t),n=uC(i,""),s=i["@microsoft.graph.downloadUrl"]||n.url||"";if(this.custom_host&&s)try{let o=new URL(s);o.host=this.custom_host,s=o.toString()}catch{}return{name:n.name,size:n.size,is_dir:n.isFolder,modified:n.modified,sign:"",type:n.isFolder?1:0,thumb:n.thumbnail||"",raw_url:s}}async mkdir(e,t){let i=t.split("/").slice(0,-1).join("/")||"/",n=t.split("/").filter(Boolean).pop()||"",s=Ri(this,!1,i,"children");await ai(this,s,"POST",{name:n,folder:{},"@microsoft.graph.conflictBehavior":"rename"})}async rename(e,t,i){let n={name:i},s=Ri(this,!1,t);await ai(this,s,"PATCH",n)}async remove(e,t,i){for(let n of i){let s=t==="/"?`/${n}`:`${t}/${n}`,o=Ri(this,!1,s);await ai(this,o,"DELETE")}}async move(e,t,i,n,s){let o=Ri(this,!1,s),a=await ai(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=Ri(this,!1,u);await ai(this,h,"PATCH",f)}}async copy(e,t,i,n,s){let o=Ri(this,!1,s),a=await ai(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=Ri(this,!1,u,"copy");await ai(this,h,"POST",f)}}async put(e,t,i){if(i.length<=4*1024*1024){let n=Ri(this,!1,t,"content");await ai(this,n,"PUT",i)}else{let n=Ri(this,!1,t,"createUploadSession"),a=(await ai(this,n,"POST",{item:{"@microsoft.graph.conflictBehavior":"rename"}})).uploadUrl,c=this.chunk_size*1024*1024,l=0,d=i.length;for(;l255||g>255||p>255||I>255||h===0||h===127||h===10||h===172&&g>=16&&g<=31||h===192&&g===168||h===169&&g===254||h===100&&g>=64&&g<=127||h===100&&g===100||h===224&&g===0&&p===0||h>=240)return!1}if(/^\d{8,}$/.test(i)||/^0x[0-9a-fA-F]{6,}$/i.test(i))return!1;let c=[/(^|\.)\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}(\.|$)/,/(^|\.)0x[0-9a-f]{6,8}(\.|$)/i,/(^|\.)\d{8,}(\.|$)/,/(^|\.)127\.0\.0\.1\.nip\.io$/,/(^|\.)localtest\.me$/,/(^|\.)vcap\.me$/,/(^|\.)xip\.io$/];for(let l of c)if(l.test(i))return!1;return!0}catch{return!1}}function zr(r,e="Request",t){if(!gK(r,t))throw new Error(`${e} blocked: URL points to a restricted or private network destination (SSRF protection)`)}function pK(r){let e=new Set;if(r==null)return e;let t=r;if(typeof r=="string")try{t=JSON.parse(r)}catch{return e}if(typeof t!="object"||Array.isArray(t))return e;let i=/(url|host|address|endpoint|server|domain|site|base|gateway|api)/i,n=s=>{if(!(s==null||typeof s!="object"))for(let[o,a]of Object.entries(s))if(typeof a=="string"){if(i.test(o)){let c=tD(a);c&&e.add(c)}}else a!=null&&typeof a=="object"&&n(a)};return n(t),e}function tD(r){let e=r.trim();if(!e)return;let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?[e]:[`http://${e}`];for(let i of t)try{let n=new URL(i);if(n.protocol!=="http:"&&n.protocol!=="https:")continue;let s=n.hostname.toLowerCase().trim();if(s)return s}catch{}}function mK(r){let e=new Set;if(!r)return e;for(let t of r.split(/[,;\s]+/)){let i=tD(t);i&&e.add(i)}return e}function yh(r,e){let t=pK(r),i=e?.SSRF_ALLOWED_HOSTS??(typeof process<"u"?process.env?.SSRF_ALLOWED_HOSTS:void 0);if(typeof i=="string"&&i.trim())for(let n of mK(i))t.add(n);return t}var lc=j(()=>{"use strict"});var yK,Ih,rD=j(()=>{"use strict";lc();yK="https://openapi.aliyundrive.com/adrive/v1.0",Ih=class{addition;accessToken="";refreshTokenVal="";driveId="";tokenExpiresAt=0;constructor(e){this.addition=e,this.refreshTokenVal=e.refresh_token||"",this.driveId=e.drive_id||""}async init(){if(!this.refreshTokenVal||!this.refreshTokenVal.trim()){console.warn("[AliyundriveOpen] refresh_token is empty, skipping init.");return}try{await this.refreshAccessToken(),this.driveId||await this.resolveDriveId()}catch(e){console.warn("[AliyundriveOpen] init warning:",e.message)}}async resolveDriveId(e=!1){if(!e&&this.addition.drive_id&&this.addition.drive_id.trim()){this.driveId=this.addition.drive_id.trim();return}try{let t=await this.openApiRequest("/user/getDriveInfo",{}),i=e?"resource":this.addition.drive_type||"resource",n="";i==="resource"&&t.resource_drive_id?n=t.resource_drive_id:i==="backup"&&t.backup_drive_id?n=t.backup_drive_id:i==="default"&&t.default_drive_id&&(n=t.default_drive_id),n||(n=t.resource_drive_id||t.default_drive_id||t.backup_drive_id||""),this.driveId=n,console.log(`[AliyundriveOpen] Resolved drive_id: ${this.driveId} (driveType: ${i})`)}catch(t){console.warn("[AliyundriveOpen] resolveDriveId failed:",t.message)}}async refreshAccessToken(){if(!this.refreshTokenVal||!this.refreshTokenVal.trim())return;let e=this.refreshTokenVal.trim(),t=[];if(this.addition.api_url_address&&this.addition.api_url_address.trim()){let o=this.addition.api_url_address.trim();try{zr(o,"AliyundriveOpen api_url_address"),t.push(o)}catch(a){console.warn(`[AliyundriveOpen] Skipping unsafe api_url_address: ${a.message}`)}}t.push("https://api.oplist.org/alicloud/renewapi","https://api.oplist.org/ali_open/token","https://api.oplist.org/aliyundrive/token","https://api.alist.nn.ci/alist/ali_open/token","https://api.alist.nn.ci/aliyundrive/token","https://api-sam.oplist.org/aliyundrive/token");let i=this.addition.alipan_type==="alipanTV"?"alicloud_tv":"alicloud_qr";for(let o of t)try{let a=new URLSearchParams({refresh_ui:e,refresh_token:e,server_use:"true",driver_txt:i}),c=await fetch(`${o}?${a.toString()}`,{method:"GET",headers:{"Content-Type":"application/json"}});if(!c.ok)throw new Error(`[Status ${c.status}]`);let l=await c.json(),d=l.refresh_token||l.data?.refresh_token||"",u=l.access_token||l.data?.access_token||"";if(!u)throw new Error(`Empty access_token from online API: ${JSON.stringify(l)}`);this.accessToken=u,d&&(this.refreshTokenVal=d),this.tokenExpiresAt=Date.now()+(l.expires_in||7200)*1e3-6e4;return}catch(a){console.warn(`[AliyundriveOpen] Online API '${o}' failed: ${a.message}`)}let n=(this.addition.client_id||"").trim()||"25ab4837190e48718a28f80073574a4d",s=(this.addition.client_secret||"").trim();try{let o={grant_type:"refresh_token",refresh_token:e,client_id:n};s&&(o.client_secret=s);let a=await fetch("https://openapi.aliyundrive.com/oauth/access_token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok){let l=await a.text().catch(()=>"");throw new Error(`[Status ${a.status}] ${l}`)}let c=await a.json();if(!c.access_token)throw new Error(`Invalid response: ${JSON.stringify(c)}`);this.accessToken=c.access_token,c.refresh_token&&(this.refreshTokenVal=c.refresh_token),this.tokenExpiresAt=Date.now()+(c.expires_in||7200)*1e3-6e4;return}catch(o){console.warn(`[AliyundriveOpen] Direct OAuth failed: ${o.message}`)}throw new Error("[AliyundriveOpen] All token refresh strategies failed. Please check: 1) refresh_token is valid and not expired, 2) api_url_address is accessible, 3) If using direct OAuth, client_id and client_secret are correct.")}async ensureToken(){(!this.accessToken||Date.now()>=this.tokenExpiresAt)&&await this.refreshAccessToken()}getRootFolderId(){return this.addition.root_folder_id?.trim()||"root"}async openApiRequest(e,t,i=!0){await this.ensureToken();let n=e.startsWith("http")?e:`${yK}${e}`;try{zr(n,"AliyundriveOpen openApiRequest")}catch(o){throw new Error(`[AliyundriveOpen] blocked unsafe URL: ${o.message}`)}let s=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.accessToken}`},body:JSON.stringify(t)});if(s.status===401&&i)return await this.refreshAccessToken(),this.openApiRequest(e,t,!1);if(!s.ok){let o=await s.text().catch(()=>"");throw new Error(`[AliyundriveOpen] API error [${s.status}] ${e}: ${o}`)}return s.json()}async listFiles(e){this.driveId||await this.resolveDriveId();let t=[],i,n=this.addition.order_by||"updated_at",s=this.addition.order_direction||"DESC";do{let o={drive_id:this.driveId,parent_file_id:e,limit:100,order_by:n,order_direction:s};i&&(o.marker=i);let a;try{a=await this.openApiRequest("/openFile/list",o)}catch(c){if(c.message?.includes("UserNotAllowedAccessDrive"))console.warn(`[AliyundriveOpen] UserNotAllowedAccessDrive for drive ${this.driveId}, auto re-resolving drive_id...`),await this.resolveDriveId(!0),o.drive_id=this.driveId,a=await this.openApiRequest("/openFile/list",o);else throw c}t.push(...a.items||[]),i=a.next_marker||void 0}while(i);return t}async getFile(e){return this.driveId||await this.resolveDriveId(),this.openApiRequest("/openFile/get",{drive_id:this.driveId,file_id:e})}async getDownloadUrl(e){let t=await this.openApiRequest("/openFile/getDownloadUrl",{drive_id:this.driveId,file_id:e,expire_sec:14400});return t.url||t.download_url||""}async mkdir(e,t){await this.openApiRequest("/openFile/create",{drive_id:this.driveId,parent_file_id:e,name:t,type:"folder",check_name_mode:"refuse"})}async rename(e,t){await this.openApiRequest("/openFile/update",{drive_id:this.driveId,file_id:e,name:t,check_name_mode:"refuse"})}async remove(e){let t=this.addition.remove_way||"trash";await this.openApiRequest(t==="trash"?"/openFile/recyclebin":"/openFile/delete",{drive_id:this.driveId,file_id:e})}async move(e,t){await this.openApiRequest("/openFile/move",{drive_id:this.driveId,file_id:e,to_parent_file_id:t,check_name_mode:"refuse"})}async copy(e,t){await this.openApiRequest("/openFile/copy",{drive_id:this.driveId,file_id:e,to_parent_file_id:t,auto_rename:!0})}async putFile(e,t,i){let n=i.length,s=await this.openApiRequest("/openFile/create",{drive_id:this.driveId,parent_file_id:e,name:t,type:"file",size:n,check_name_mode:"auto_rename",part_info_list:[{part_number:1}]}),o=s.part_info_list?.[0]?.upload_url;if(!o)return;let a=await fetch(o,{method:"PUT",body:i});if(!a.ok)throw new Error(`[AliyundriveOpen] Upload failed: ${a.status}`);await this.openApiRequest("/openFile/complete",{drive_id:this.driveId,file_id:s.file_id,upload_id:s.upload_id})}}});function iD(r){let e=r.type==="folder";return{name:r.name,size:r.size||0,is_dir:e,modified:r.updated_at||r.created_at||new Date().toISOString(),sign:"",type:X(r.name,e),thumb:r.thumbnail||"",raw_url:r.download_url||""}}var wh,nD=j(()=>{"use strict";Be();He();rD();wh=class{client;addition;pathFileIdCache=new Map;constructor(e){this.addition=e,this.client=new Ih(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFileId(t),s=(await this.client.listFiles(i)).map(iD);return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=await this.resolveFileId(t),n=await this.client.getFile(i).catch(()=>null),s=await this.client.getDownloadUrl(i).catch(()=>"");if(n){let c=iD(n);return c.raw_url=s||c.raw_url,c}try{await this.client.listFiles(i);let c=t.split("/").filter(Boolean);return{name:c[c.length-1]||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{}let o=t.split("/").filter(Boolean);return{name:o[o.length-1]||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:s}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFileId(s);await this.client.mkdir(o,n)}async rename(e,t,i){let n=await this.resolveFileId(t);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.resolveFileId(t);await this.client.remove(n)}async move(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.move(o,a)}async copy(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.copy(o,a)}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"upload",o="/"+n.join("/"),a=await this.resolveFileId(o);await this.client.putFile(a,s,i)}async resolveFileId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.client.getRootFolderId();if(this.pathFileIdCache.has(t))return this.pathFileIdCache.get(t);let i=t.split("/"),n=this.client.getRootFolderId();for(let s=0;s{try{return decodeURIComponent(o)}catch{return o}})(),c=i.slice(0,s+1).join("/");if(this.pathFileIdCache.has(c)){n=this.pathFileIdCache.get(c);continue}let d=(await this.client.listFiles(n)).find(u=>u.name===o||u.name===a||u.file_id===o);if(!d)throw new Error(`[AliyundriveOpen] Path '${o}' not found`);n=d.file_id,this.pathFileIdCache.set(c,n)}return n}}});var Mu,sD,oD,AC=j(()=>{"use strict";Mu="application/vnd.google-apps.folder",sD="application/vnd.google-apps.shortcut",oD="files(id,name,mimeType,size,modifiedTime,createdTime,thumbnailLink,shortcutDetails,md5Checksum,sha1Checksum,sha256Checksum),nextPageToken"});var Mo,aD,IK,xh,cD=j(()=>{"use strict";AC();Mo="https://www.googleapis.com/drive/v3",aD="https://www.googleapis.com/upload/drive/v3",IK="https://oauth2.googleapis.com/token",xh=class{addition;accessToken="";refreshTokenVal="";tokenExpiresAt=0;constructor(e){this.addition=e,this.refreshTokenVal=e.refresh_token||""}getRootFolderId(){return this.addition.root_folder_id?.trim()||"root"}async init(){if(!this.refreshTokenVal||!this.refreshTokenVal.trim()){console.warn("[GoogleDrive] refresh_token is empty, skipping init.");return}try{await this.refreshAccessToken()}catch(e){console.warn("[GoogleDrive] init token refresh warning:",e.message)}}async refreshAccessToken(){let e=this.refreshTokenVal.trim();if(!e)return;let t=this.addition.use_online_api!==!1,i=[];t&&(this.addition.api_url_address?.trim()&&i.push(this.addition.api_url_address.trim()),i.push("https://api.oplist.org/google/token","https://api.oplist.org/google/renewapi","https://api.oplist.org/googledrive/token","https://api-sam.oplist.org/google/token","https://api-sam.oplist.org/googledrive/token","https://api.alist.nn.ci/google/token","https://api.alist.nn.ci/googledrive/token"));for(let o of i)try{let a=new URLSearchParams({refresh_ui:e,server_use:"true",driver_txt:"googleui_go"}),c=await fetch(`${o}?${a.toString()}`,{method:"GET"});if(!c.ok)throw new Error(`[Status ${c.status}]`);let l=await c.json(),d=l.access_token||l.data?.access_token||"",u=l.refresh_token||l.data?.refresh_token||"";if(!d){let f=l.text||l.error||"empty access_token";throw new Error(f)}this.accessToken=d,u&&(this.refreshTokenVal=u),this.tokenExpiresAt=Date.now()+(l.expires_in||3600)*1e3-6e4;return}catch(a){console.warn(`[GoogleDrive] Online API '${o}' failed: ${a.message}`)}let n=(this.addition.client_id||"").trim()||"202264815644-2n82p2e49c7o6026u87j9e22v1n25c27.apps.googleusercontent.com",s=(this.addition.client_secret||"").trim()||"GOCSPX-4bH5Kx3s_89_j6j2x-2x3-8x";if(n&&s)try{let o=await fetch(IK,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:n,client_secret:s,refresh_token:e,grant_type:"refresh_token"}).toString()});if(!o.ok){let c=await o.text().catch(()=>"");throw new Error(`[Status ${o.status}] ${c}`)}let a=await o.json();if(!a.access_token)throw new Error(`Invalid OAuth response: ${JSON.stringify(a)}`);this.accessToken=a.access_token,a.refresh_token&&(this.refreshTokenVal=a.refresh_token),this.tokenExpiresAt=Date.now()+(a.expires_in||3600)*1e3-6e4;return}catch(o){console.warn(`[GoogleDrive] Direct OAuth failed: ${o.message}`)}throw new Error("[GoogleDrive] All token refresh strategies failed. Please check: 1) refresh_token is valid, 2) api_url_address is accessible, 3) If using direct OAuth: client_id and client_secret are correct.")}async ensureToken(){(!this.accessToken||Date.now()>=this.tokenExpiresAt)&&await this.refreshAccessToken()}async request(e,t={},i=!0){await this.ensureToken();let n=await fetch(e,{...t,headers:{Authorization:`Bearer ${this.accessToken}`,...t.headers||{}}});if(n.status===401&&i)return console.warn("[GoogleDrive] 401 Unauthorized, refreshing token..."),await this.refreshAccessToken(),this.request(e,t,!1);if(!n.ok){let s=await n.text().catch(()=>"");throw new Error(`[GoogleDrive] API error [${n.status}]: ${s}`)}return n.status===204?null:n.json()}async listFiles(e){let t=[],i,n=this.addition.order_by||"folder,name,modifiedTime desc";do{let s=new URLSearchParams({q:`'${e}' in parents and trashed = false`,fields:oD,orderBy:n,pageSize:"1000",includeItemsFromAllDrives:"true",supportsAllDrives:"true"});i&&s.set("pageToken",i);let o=`${Mo}/files?${s.toString()}`,a=await this.request(o),c=a.files||[];for(let l of c)l.mimeType===sD&&l.shortcutDetails?.targetId&&(l.id=l.shortcutDetails.targetId,l.mimeType=l.shortcutDetails.targetMimeType||l.mimeType);t.push(...c),i=a.nextPageToken}while(i);return t}async getFile(e){let t=new URLSearchParams({fields:"id,name,mimeType,size,modifiedTime,md5Checksum",includeItemsFromAllDrives:"true",supportsAllDrives:"true"});return this.request(`${Mo}/files/${e}?${t.toString()}`)}getDownloadUrl(e){return`${Mo}/files/${e}?includeItemsFromAllDrives=true&supportsAllDrives=true&alt=media&acknowledgeAbuse=true`}getDownloadHeaders(){return{Authorization:`Bearer ${this.accessToken}`}}async mkdir(e,t){await this.request(`${Mo}/files?supportsAllDrives=true`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,parents:[e],mimeType:Mu})})}async rename(e,t){await this.request(`${Mo}/files/${e}?supportsAllDrives=true`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})}async remove(e){await this.request(`${Mo}/files/${e}?supportsAllDrives=true`,{method:"DELETE"})}async move(e,t,i){let n=new URLSearchParams({addParents:i,removeParents:t,supportsAllDrives:"true"});await this.request(`${Mo}/files/${e}?${n.toString()}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:"{}"})}async copy(e,t,i){await this.request(`${Mo}/files/${e}/copy?supportsAllDrives=true`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:i,parents:[t]})})}async putFile(e,t,i,n="application/octet-stream"){let s=(this.addition.chunk_size||5)*1024*1024;if(i.length<=s){let o=new URLSearchParams({uploadType:"multipart",supportsAllDrives:"true"}),a=`----GoogleDriveBoundary${Date.now()}`,c=JSON.stringify({name:t,parents:[e]}),l=`--${a}\r +`},mC=null;QG={blob:["map"],kv:["map","key"],cfkv:["map","key"],d1:["map","key","sql"],do:["map","key","sql"],mysql:["map","key","sql"],memory:["map","key"]};yC=null,IC=null,S3=null,D3=new WeakMap,TG=0;wC=null});async function UG(){if(sg)return sg;if(N3>=3)return null;N3++;try{let{getStore:r}=await Promise.resolve().then(()=>xr(nC(),1));sg=r({name:"openlist_db",consistency:"strong"})}catch{return null}return sg}function O3(){q3||(q3=!0,!(typeof process>"u"||typeof process.on!="function")&&process.on("uncaughtException",r=>{(r?.message?.includes("RESP")||r?.message?.includes("Unknown type")||r?.stack?.includes("processResponses"))&&console.error("[KV/RESP] Caught uncaught exception from storage binding, continuing:",r.message)}))}function NG(r){if(!r||typeof r!="object")return null;let e=H3.get(r);return!e||e.mode==="none"&&Date.now()-e.ts>=RG?null:e}function Wu(r,e){let t={...e,ts:Date.now()};return r&&typeof r=="object"&&H3.set(r,t),t}function K3(r){r&&(EC=r)}function M3(r){if(!r||typeof r!="object")return!1;try{return typeof r.get!="function"?!1:typeof r.put=="function"||typeof r.set=="function"}catch{return!1}}function qG(r,e){let t=async()=>(await Promise.resolve().then(()=>(sC(),XD))).kvDriver;return{async get(i){return(await t()).get(i,e)},async put(i,n){return(await t()).put(i,n,e)},async delete(i){return(await t()).delete(i,e)},async list(i={}){return{keys:(await(await t()).list(i?.prefix||"",e)).map(s=>({name:s,key:s}))}}}}async function BC(r){r&&(EC=r);let e=r||EC||(typeof process<"u"?process.env:{}),t=typeof globalThis<"u"?globalThis:{},i=NG(e);if(i)return i;let n=M3(e?.KV)?e.KV:M3(t?.KV)?t.KV:null;if(String(e?.DB_DRIVER||"").trim().toLowerCase()==="kv"&&!n){let c;try{c=e?.EO_KV_URLS||e?.__requestOrigin}catch{c=void 0}let l=Dl(c,e);if(l){let d={binding:qG(l,e),platform:"EdgeOne KV (via Edge Function proxy)",mode:"proxy"};return Wu(e,d)}console.warn("[DB] getKvBinding: KV proxy requested but no origin available (set EO_KV_URLS or ensure request origin is injected)")}try{let c=await UG();if(c)return O3(),Wu(e,{binding:c,platform:"EdgeOne Blob (@edgeone/pages-blob, strong consistency)",mode:"blob"})}catch(c){console.error(`[DB] getKvBinding: EdgeOne Blob init failed: ${c?.message||c}`,`stack=${c?.stack?.substring(0,300)||""}`)}if(n){let c=!!(e&&(e.EDGEONE||e.EO_REGION))||!!(t.EDGEONE||typeof t.EdgeOne<"u");return c&&O3(),Wu(e,{binding:n,platform:c?"EdgeOne KV (KV)":"Cloudflare / EdgeOne KV (KV)",mode:"binding"})}{let c=e.CF_ACCOUNT||(typeof process<"u"?process.env.CF_ACCOUNT:""),l=e.CF_KV_UUID||(typeof process<"u"?process.env.CF_KV_UUID:""),d=e.CF_API_KEY||(typeof process<"u"?process.env.CF_API_KEY:"");if(c&&l&&d)return Wu(e,{binding:{type:"cf_rest",accountId:c,namespaceId:l,token:d},platform:"Cloudflare KV (REST API)",mode:"api"})}let o=String(e?.DB_DRIVER||"").trim().toLowerCase();return(!o||o==="auto"||o==="kv"||o==="cfkv"||o==="blob")&&!L3&&(L3=!0,console.warn(o&&o!=="auto"?`[DB] getKvBinding: no KV-style binding found; DB_DRIVER="${o}" is served by getStorageBackend() instead. This is expected.`:"[DB] getKvBinding: no KV/Blob binding found in auto detection.")),Wu(e,{binding:null,platform:"none",mode:"none"})}async function OG(r,e="openlist_config"){let{binding:t,mode:i}=r;if(i==="none"||!t)return null;try{if(i==="blob"){let n=await t.get(e,{type:"json"});if(n)return n;let s=await t.get(e);if(s)return typeof s=="string"?JSON.parse(s):s}else if(i==="binding"||i==="proxy"){let n=null;try{n=await t.get(e,"text")}catch{n=await t.get(e)}if(n==null&&(n=await t.get(e)),n)return typeof n=="string"?JSON.parse(n):n}else if(t.type==="cf_rest"){let n=`https://api.cloudflare.com/client/v4/accounts/${t.accountId}/storage/kv/namespaces/${t.namespaceId}/values/${e}`,s=await fetch(n,{headers:{Authorization:`Bearer ${t.token}`}});if(s.ok){let o=await s.text();return JSON.parse(o)}}}catch(n){console.error("[KV/Blob Store] Error reading key:",e,n)}return null}async function Ul(r){let e=await BC(r),t=e.mode!=="none",i=!1,n=null;if(t)try{let s=await OG(e,"openlist_config");return i=!0,{configured:!0,connected:!0,platform:e.platform,mode:e.mode,hasData:!!s,error:null}}catch(s){n=s.message||String(s)}return{configured:t,connected:i,platform:e.platform,mode:e.mode,hasData:!1,error:n}}async function G3(r){let{getStorageBackend:e}=await Promise.resolve().then(()=>(gc(),R3)),{driver:t}=await e(r);return t}async function Rs(r,e){try{let i=await(await G3(r)).get(e,r);if(i==null)return null;let n=typeof i?.text=="function"?await i.text():i;return String(n).trim()||null}catch(t){return console.warn(`[Secret] read "${e}" failed:`,t),null}}async function og(r,e,t){try{return await(await G3(r)).put(e,t,r),!0}catch(i){return console.warn(`[Secret] cannot persist "${e}": ${i?.message||i}`),!1}}function z3(){let r=new Uint8Array(32);return crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}var sg,N3,q3,EC,RG,H3,L3,bC=J(()=>{"use strict";Hh();Hh();sg=null,N3=0;q3=!1;EC=null,RG=1e3,H3=new WeakMap;L3=!1});var Jr={};Cn(Jr,{ENCRYPTION_SECRET_KV_KEY:()=>Xo,RECOMMENDED_JWT_SECRET_LENGTH:()=>X3,__resetDbCacheForTest:()=>JG,__setStoreBackendLoaderForTest:()=>jG,defaultDb:()=>pc,ensureEncryptionSecret:()=>UC,getDb:()=>ne,getDbLoadError:()=>pg,getKvBinding:()=>BC,getKvStatus:()=>Ul,getMetas:()=>oz,getPlugins:()=>az,getSettings:()=>Vn,getStorages:()=>sz,getStoreStatus:()=>$n,getUsers:()=>nz,isDbShell:()=>Y3,isDbTrusted:()=>_C,isDbWriteBlocked:()=>KG,isEncryptionReady:()=>yg,isJwtSecretShort:()=>$G,readPersistedSecret:()=>Rs,resolvePath:()=>ct,saveDb:()=>fe,setEnvCtx:()=>FC,writePersistedSecret:()=>og});function _C(){return Ns}function pg(){return Wo}function KG(){return hg}function Y3(r){if(!r||typeof r!="object")return!0;let e=Array.isArray(r.storages)?r.storages.length:0,t=Array.isArray(r.shares)?r.shares.length:0,i=Array.isArray(r.metas)?r.metas.length:0,n=Array.isArray(r.plugins)?r.plugins.length:0;if(e+t+i+n>0||(Array.isArray(r.users)?r.users:[]).some(d=>String(d?.password||"").trim()!==""))return!1;let a=Array.isArray(r.settings)?r.settings:[],c=Array.isArray(pc.settings)?pc.settings:[],l=new Map(c.map(d=>[String(d.key),d.value]));return a.every(d=>l.has(String(d.key))&&l.get(String(d.key))===d.value)}function FC(r){r&&(ai=r,K3(r))}function TC(r){let e=r?.JWT_SECRET||(typeof process<"u"?process.env?.JWT_SECRET:"");return typeof e=="string"&&e.trim().length>0?e:null}function $G(r){return typeof r=="string"&&r.length>0&&r.length0)return qs=i,Yo=!1,i}catch{}return kC||(kC=!0,console.error("[DB] No encryption key available: set JWT_SECRET. Encrypted fields cannot be decrypted and new sensitive fields will be stored in plaintext until a key becomes available.")),null}async function yg(r){let e=r||ai||(typeof process<"u"?process.env:{});if(TC(e))return!0;try{let t=await Rs(e,Xo);return!!(t&&t.trim().length>0)}catch{return!1}}function XG(r){return new Promise(e=>setTimeout(e,r))}async function UC(r){if(Xu)return Xu;Xu=(async()=>{let e=r||ai||(typeof process<"u"?process.env:{}),t=TC(e);if(t)return t;let i=await Rs(e,Xo);if(i&&i.trim().length>0)return qs=i,Yo=!1,i;let n=z3();if(!await og(e,Xo,n))return console.error("[DB] Failed to persist an encryption key. Sensitive fields will be stored in plaintext until JWT_SECRET is configured via environment variable."),null;qs=n,Yo=!1;let o=YG;for(let a=0;a0&&c!==n)return console.warn("[DB] A different encryption key already exists; adopting it to keep encrypt/decrypt symmetric."),qs=c,Yo=!1,c;await XG(o),o=Math.min(o*2,WG)}return console.warn(`[DB] Encryption key written but not yet readable after ${j3} retries. Cross-instance reads may lag briefly due to eventual consistency; retry shortly.`),n})();try{return await Xu}finally{Xu=null}}function Z3(r,e,t,i,n){if(Rl.size>=ZG){let s=Rl.keys().next().value;s!==void 0&&Rl.delete(s)}Rl.set(r,{plain:e,sealed:t,fp:i,cipher:n})}function ez(r,e,t,i){let n=Rl.get(r);return!n||n.fp!==t||n.cipher!==i||n.plain!==e?null:n.sealed}async function ug(r,e,t){if(!r||!e||e.cipher==="none"||lc(r))return r;let i=ez(t,r,e.fingerprint,e.cipher);if(i)return i;let n=ED(e.cipher)+await e.encrypt(r);return Z3(t,r,n,e.fingerprint,e.cipher),n}async function fg(r,e,t){if(!r||!lc(r))return r;if(!e)return SC||(SC=!0,console.error("[DB] Sealed values found in storage but no encryption key is available; they will be left as-is (set JWT_SECRET, or restore the original openlist_encryption_secret).")),r;let i=Ko(r);try{let n=await e.decrypt(r);return i&&i.cipher===e.cipher&&Z3(t,n,r,e.fingerprint,i.cipher),n}catch(n){return console.warn("[DB] Failed to decrypt a sealed secret (wrong JWT_SECRET?):",n),r}}function tz(r){if(!r)return!1;for(let e of r.storages||[])if(e&&Ko(e.addition))return!0;for(let e of r.settings||[])if(e&&PC.has(e.key)&&Ko(e.value))return!0;for(let e of r.users||[])if(e&&(Ko(e.otp_secret)||Ko(e.password)))return!0;return!1}async function eQ(r,e){let t=Ac(r);if(t==="none"&&!e?.needDecrypt)return null;let i=await VG(r);return i?kD(t,i):null}async function rz(r,e){if(!e||e.cipher==="none"||!r)return r;let t,i,n,s=Array.isArray(r.storages)?r.storages:[];for(let l=0;l{c.addition=await fg(l,e,d)})}}let n=Array.isArray(r.settings)?r.settings:[];for(let o=0;o{c.value=await fg(l,e,d)})}}let s=Array.isArray(r.users)?r.users:[];for(let o=0;o{c.otp_secret=await fg(l,e,d)})}if(typeof a.password=="string"&&lc(a.password)){let c=a,l=c.password,d=`users:${a.id??o}:password`;t.push(async()=>{c.password=await fg(l,e,d)})}}}for(let o=0;oa()))}async function ct(r,e){let t=await ne(e),i=r;try{i=decodeURIComponent(String(i||""))}catch{}let n="",s=0;for(;i!==n&&s<3;){n=i;try{let f=decodeURIComponent(i);if(f===i)break;i=f,s++}catch{break}}i=i.replace(/\\/g,"/").replace(/%5c/gi,"/").replace(/%2f/gi,"/").replace(/\.{3,}/g,"..").replace(/\/+/g,"/");let o=["\0","\r",` +`," "];for(let f of o)if(i.includes(f))throw new Error(`invalid path: illegal character detected (0x${f.charCodeAt(0).toString(16)})`);if(/^[A-Za-z]:/.test(i))throw new Error("invalid path: absolute Windows path not allowed");if(i.startsWith("//")||i.startsWith("\\\\"))throw new Error("invalid path: UNC path not allowed");let a=[];for(let f of i.split("/"))if(!(f===""||f===".")){if(f===".."){a.pop();continue}a.push(f)}let c="/"+a.join("/");c===""&&(c="/");let l=(t.storages||[]).filter(f=>!f.disabled&&typeof f.driver=="string"&&f.driver.trim()!==""&&f.driver!=="undefined"&&f.driver!=="null"&&typeof f.mount_path=="string"&&f.mount_path.trim()!=="");if(l.length===0)throw new Error("failed get storage: storage not found; please add a storage first");let d=[...l].sort((f,h)=>{let g="/"+(f.mount_path||"").split("/").filter(Boolean).join("/");return("/"+(h.mount_path||"").split("/").filter(Boolean).join("/")).length-g.length});for(let f of d){let h="/"+(f.mount_path||"").split("/").filter(Boolean).join("/"),g=h==="/";if(g||c===h||c.startsWith(h+"/")){let I=c;g||(I=c.slice(h.length)),I.startsWith("/")||(I="/"+I);let m={};try{m=typeof f.addition=="string"?JSON.parse(f.addition||"{}"):f.addition||{}}catch{m={}}let B=m.root_folder_path!==void 0?m.root_folder_path:"/",x=([B,I].map(R=>R.replace(/\\/g,"/")).filter(R=>!!R&&R!=="/").join("/")||"/").replace(/\/{2,}/g,"/"),Q=String(B||"/").replace(/\\/g,"/").replace(/\/+$/,"")||"/";if(Q!=="/"&&x!==Q&&!x.startsWith(Q+"/"))throw new Error("path traversal blocked: escapes storage root");if(x.split("/").includes(".."))throw new Error("path traversal blocked: illegal '..' segment");return{storage:f,relative:I,physical:x,rootFolder:B,cleanPath:c,isVirtual:!1}}}let u=!1;for(let f of l){let h="/"+(f.mount_path||"").split("/").filter(Boolean).join("/");if(h!=="/"&&h.startsWith(c==="/"?"/":c+"/")){u=!0;break}}if(u)return{storage:null,relative:c,physical:null,rootFolder:null,cleanPath:c,isVirtual:!0};throw new Error("failed get storage: storage not found")}async function Vn(){let r=await ne(),e={};return r.settings&&r.settings.forEach(t=>{e[t.key]=t.value}),e}async function nz(){return(await ne()).users||[]}async function sz(){return(await ne()).storages||[]}async function oz(){return(await ne()).metas||[]}async function az(){return(await ne()).plugins||[]}var V3,MG,LG,HG,pc,ht,ai,Ns,hg,Wo,GG,vC,ag,cg,lg,dg,zG,gg,Ag,mg,JG,jG,W3,J3,ne,PC,kC,SC,DC,QC,Xo,X3,qs,Yo,Xu,j3,YG,WG,ZG,Rl,$3,fe,Ye=J(()=>{"use strict";Gr();bC();gc();bC();gc();V3="txt,htm,html,xml,java,properties,sql,js,json,c,cpp,python,py,php,go,rst,css,typescript,ts,log,conf,yaml,yml,cmd,bash,sh,vue,ini,md,bat,gitignore,h,hpp,tsx,vtt,srt,ass,rs,lrc,strm",MG="m3u8,url",LG="authorization,referer",HG="txt,htm,html,xml,java,properties,sql,js,json,c,cpp,python,py,php,go,rst,css,typescript,ts,log,conf,yaml,yml,cmd,bash,sh,vue,ini",pc={settings:[{key:"version",value:"v4.2.3",type:"string",help:"Application Version",group:1,flag:1},{key:"site_title",value:"OpenList",type:"string",help:"Site Title",group:1,flag:0},{key:"announcement",value:"",type:"text",help:"Site Announcement",group:1,flag:0},{key:"pagination_type",value:"pagination",type:"select",options:"all,pagination,load_more,auto_load_more",help:"Pagination Type",group:1,flag:0},{key:"default_page_size",value:"20",type:"number",help:"Default Page Size",group:1,flag:0},{key:"allow_indexed",value:"false",type:"bool",help:"Allow Search Engine Indexing",group:1,flag:0},{key:"allow_mounted",value:"true",type:"bool",help:"Allow Mounted Storages",group:1,flag:0},{key:"robots_txt",value:`User-agent: * +Disallow: /`,type:"text",help:"Robots Txt Content",group:1,flag:0},{key:"logo",value:"https://res.oplist.org/logo/logo.svg",type:"string",help:"Site Logo URL",group:2,flag:0},{key:"favicon",value:"https://res.oplist.org/logo/logo.svg",type:"string",help:"Favicon URL",group:2,flag:0},{key:"main_color",value:"#1890ff",type:"string",help:"Main Theme Color",group:2,flag:0},{key:"home_icon",value:"openlist",type:"string",help:"Home Icon Name",group:2,flag:0},{key:"home_container",value:"max_980px",type:"select",options:"max_980px,hope_container",help:"Home Container Width",group:2,flag:0},{key:"settings_layout",value:"responsive",type:"select",options:"list,responsive",help:"Settings Layout Mode",group:2,flag:0},{key:"text_types",value:V3,type:"text",help:"Text File Extensions",group:3,flag:0},{key:"audio_types",value:"mp3,ogg,aac,wav,wma,flac,m4a,opus",type:"text",help:"Audio File Extensions",group:3,flag:0},{key:"video_types",value:"mp4,mkv,webm,avi,mov,flv,m3u8,ts",type:"text",help:"Video File Extensions",group:3,flag:0},{key:"image_types",value:"jpg,png,jpeg,gif,bmp,svg,ico,webp,avif,tiff",type:"text",help:"Image File Extensions",group:3,flag:0},{key:"proxy_types",value:MG,type:"text",help:"Proxy File Extensions",group:3,flag:0},{key:"proxy_ignore_headers",value:LG,type:"text",help:"Proxy Ignore Headers",group:3,flag:0},{key:"external_previews",value:"{}",type:"text",help:"External Previews JSON Config",group:3,flag:0},{key:"iframe_previews",value:"{}",type:"text",help:"Iframe Previews JSON Config",group:3,flag:0},{key:"audio_cover",value:"https://file.nn.ci/alist/cover.png",type:"string",help:"Audio Default Cover Image URL",group:3,flag:0},{key:"audio_autoplay",value:"false",type:"bool",help:"Autoplay Audio",group:3,flag:0},{key:"video_autoplay",value:"false",type:"bool",help:"Autoplay Video",group:3,flag:0},{key:"preview_archives_by_default",value:"false",type:"bool",help:"Preview Archives By Default",group:3,flag:0},{key:"readme_autorender",value:"true",type:"bool",help:"Readme Autorender",group:3,flag:0},{key:"filter_readme_scripts",value:"true",type:"bool",help:"Filter Readme Scripts",group:3,flag:0},{key:"force_preview",value:"",type:"text",help:"Force Preview Config",group:3,flag:0},{key:"specify_preview",value:"",type:"text",help:"Specify Preview Layout Config",group:3,flag:0},{key:"markdown_autorender",value:"true",type:"bool",help:"Autorender Markdown",group:3,flag:0},{key:"code_editor_theme",value:"vs-dark",type:"select",options:"vs,vs-dark,hc-black",help:"Monaco Theme",group:3,flag:0},{key:"office_preview",value:"true",type:"bool",help:"Enable Office Document Preview",group:3,flag:0},{key:"pdf_preview",value:"true",type:"bool",help:"Enable PDF Preview",group:3,flag:0},{key:"hide_files",value:"",type:"text",help:"Files Regex to Hide",group:4,flag:0},{key:"package_download",value:"true",type:"bool",help:"Package Download Enabled",group:4,flag:0},{key:"customize_head",value:"",type:"text",help:"Custom Head HTML/CSS",group:4,flag:0},{key:"customize_body",value:"",type:"text",help:"Custom Body Script",group:4,flag:0},{key:"link_expiration",value:"0",type:"number",help:"Link Expiration in Hours (0 = never expire)",group:4,flag:0},{key:"sign_all",value:"false",type:"bool",help:"Sign All Download Links",group:4,flag:0},{key:"seed_site_url",value:"",type:"string",help:"Public site URL used by transfer seed sources",group:4,flag:1},{key:"seed_default_matrix",value:'{"md5":{"whole":true,"pieces":false},"sha1":{"whole":true,"pieces":false},"sha256":{"whole":true,"pieces":false}}',type:"text",help:"Default transfer seed hash matrix",group:4,flag:1},{key:"seed_format_policies",value:'{"oss":"off","torrent":"off","cas":"off"}',type:"text",help:"Automatic transfer seed format policies",group:4,flag:1},{key:"seed_auto_generate_policy",value:"off",type:"select",options:"off,on",help:"Global automatic transfer seed policy",group:4,flag:1},{key:"seed_single_direct_preview",value:"false",type:"bool",help:"Open single-file transfer seeds directly in preview",group:4,flag:0},{key:"seed_cas_direct_access",value:"false",type:"bool",help:"When opening a single-file CAS seed, immediately rapid-upload it into the same folder and preview the restored file",group:4,flag:0},{key:"seed_default_trackers",value:"",type:"text",help:"Default tracker list offered when generating torrent seeds (one tracker per line)",group:4,flag:1},{key:"privacy_regs",value:"",type:"text",help:"Privacy Regex Rules",group:4,flag:0},{key:"ocr_api",value:"",type:"string",help:"OCR API Endpoint",group:4,flag:0},{key:"filename_char_mapping",value:"{}",type:"text",help:"Filename Char Mapping JSON",group:4,flag:0},{key:"forward_direct_link_params",value:"",type:"string",help:"Forward Direct Link Params",group:4,flag:0},{key:"ignore_direct_link_params",value:"",type:"string",help:"Ignore Direct Link Params",group:4,flag:0},{key:"webauthn_login_enabled",value:"false",type:"bool",help:"Webauthn Login Enabled",group:4,flag:0},{key:"allow_previewing_sharing_files",value:"true",type:"bool",help:"Allow Previewing Sharing Files",group:4,flag:0},{key:"allow_previewing_sharing_archives",value:"true",type:"bool",help:"Allow Previewing Sharing Archives",group:4,flag:0},{key:"force_proxy_sharing_files",value:"false",type:"bool",help:"Force Proxy Sharing Files",group:4,flag:0},{key:"share_summary_content",value:"",type:"text",help:"Share Summary Content",group:4,flag:0},{key:"handle_hook_after_writing",value:"",type:"string",help:"Handle Hook After Writing",group:4,flag:0},{key:"handle_hook_rate_limit",value:"0",type:"number",help:"Handle Hook Rate Limit",group:4,flag:0},{key:"ignore_system_files",value:"true",type:"bool",help:"Ignore System Files (.DS_Store, desktop.ini, etc.)",group:4,flag:0},{key:"auto_update_index",value:"false",type:"bool",help:"Auto Update Search Index",group:4,flag:0},{key:"sso_login_enabled",value:"false",type:"bool",help:"Enable SSO Login",group:7,flag:0},{key:"sso_login_platform",value:"",type:"select",options:"Github,Microsoft,Google,Dingtalk,Casdoor,OIDC",help:"SSO Platform",group:7,flag:0},{key:"sso_client_id",value:"",type:"string",help:"SSO Client ID",group:7,flag:0},{key:"sso_client_secret",value:"",type:"string",help:"SSO Client Secret",group:7,flag:0},{key:"sso_login_url",value:"",type:"string",help:"SSO Authorization Endpoint",group:7,flag:0},{key:"sso_token_url",value:"",type:"string",help:"SSO Token Endpoint (optional, defaults per platform)",group:7,flag:0},{key:"sso_userinfo_url",value:"",type:"string",help:"SSO UserInfo Endpoint (optional, defaults per platform)",group:7,flag:0},{key:"sso_scopes",value:"",type:"string",help:"SSO OAuth2 Scopes (optional, space separated)",group:7,flag:0},{key:"sso_oidc_discovery_url",value:"",type:"string",help:"OIDC Discovery URL (for OIDC platform)",group:7,flag:0},{key:"sso_login_callback_url",value:"",type:"string",help:"SSO Redirect/Callback URL (optional, defaults to /api/auth/sso_callback)",group:7,flag:0},{key:"sso_compatibility_mode",value:"false",type:"bool",help:"SSO Compatibility Mode (postMessage token handoff)",group:7,flag:0},{key:"sso_auto_register",value:"false",type:"bool",help:"Auto Register New SSO Users",group:7,flag:0},{key:"sso_default_dir",value:"/",type:"string",help:"SSO Default Directory for New Users",group:7,flag:0},{key:"sso_default_permission",value:"0",type:"number",help:"SSO Default Permission for New Users",group:7,flag:0},{key:"ldap_host",value:"",type:"string",help:"LDAP Server Host",group:8,flag:0},{key:"ldap_port",value:"389",type:"number",help:"LDAP Server Port",group:8,flag:0},{key:"traffic_limit",value:"0",type:"number",help:"Traffic Limit in MB",group:10,flag:0},{key:"ip_limit",value:"0",type:"number",help:"IP Rate Limit Per Minute",group:10,flag:0},{key:"115_temp_dir",value:"",type:"string",help:"115 Temp Directory",group:14,flag:0},{key:"115_open_temp_dir",value:"",type:"string",help:"115 Open Temp Directory",group:14,flag:0},{key:"123_temp_dir",value:"",type:"string",help:"123 Pan Temp Directory",group:14,flag:0},{key:"123_open_temp_dir",value:"",type:"string",help:"123 Open Temp Directory",group:14,flag:0},{key:"123_open_callback_url",value:"",type:"string",help:"123 Open Callback URL",group:14,flag:0},{key:"pikpak_temp_dir",value:"",type:"string",help:"PikPak Temp Directory",group:14,flag:0},{key:"thunder_temp_dir",value:"",type:"string",help:"Thunder Temp Directory",group:14,flag:0},{key:"thunder_browser_temp_dir",value:"",type:"string",help:"Thunder Browser Temp Directory",group:14,flag:0},{key:"thunderx_temp_dir",value:"",type:"string",help:"ThunderX Temp Directory",group:14,flag:0},{key:"token",value:"",type:"string",help:"115 / PikPak / Thunder Token",group:14,flag:0},{key:"package_download_disabled",value:"false",type:"bool",help:"Disable Package Download",group:14,flag:0}],storages:[],users:[{id:1,username:"admin",password:"",role:2,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()},{id:2,username:"guest",password:"",role:1,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()}],metas:[],shares:[],plugins:[]},ht=null,ai=null,Ns=!1,hg=!1,Wo=null;GG={logo:{from:["","/logo.png","https://res.oplist.org/logo/logo.png"],to:"https://res.oplist.org/logo/logo.svg"},favicon:{from:["","/favicon.png"],to:"https://res.oplist.org/logo/logo.svg"},home_container:{from:["hope_container"],to:"max_980px"},text_types:{from:[HG],to:V3}},vC=r=>{if(!r)return;r.settings||(r.settings=[]);let e=!1,t=[],i=new Set;for(let n of pc.settings){i.add(n.key);let s=r.settings.filter(o=>o.key===n.key);if(s.length===0)t.push(JSON.parse(JSON.stringify(n))),e=!0;else{let o=s.find(c=>c.value&&c.value.trim()!=="")||s[0];(o.group!==n.group||o.help!==n.help||o.type!==n.type||o.options!==n.options||o.flag!==n.flag)&&(o.group=n.group,o.help=n.help,o.type=n.type,o.options=n.options,o.flag=n.flag,e=!0),s.length>1&&(e=!0);let a=GG[n.key];a&&a.from.includes(o.value)&&(o.value=a.to,e=!0),t.push(o)}}for(let n of r.settings)n.key&&!i.has(n.key)&&(i.add(n.key),t.push(n));r.settings=t},ag=r=>{r&&(!r.storages||!Array.isArray(r.storages)?r.storages=[]:r.storages=r.storages.filter(e=>e&&typeof e=="object"&&typeof e.driver=="string"&&e.driver.trim()!==""&&e.driver!=="undefined"&&e.driver!=="null"&&typeof e.mount_path=="string"&&e.mount_path.trim()!==""))},cg=r=>{r&&(r.shares||(r.shares=[]))},lg=r=>{r&&(r.plugins||(r.plugins=[]))},dg=r=>{r&&(!r.metas||!Array.isArray(r.metas))&&(r.metas=[])},zG=1e3,gg=new WeakMap,Ag=new WeakMap,mg=r=>ig(r),JG=()=>{ai&&typeof ai=="object"&&(gg.delete(ai),Ag.delete(ai)),ai=null,ht=null,mg=r=>ig(r),Ns=!1,Wo=null,hg=!1,qs=null,Yo=!1,kC=!1,SC=!1,DC=!1,QC=!1,bD(),Rl.clear()},jG=r=>{mg=r},W3=()=>{let r=ai;return r&&typeof r=="object"?r:null},J3=async r=>{r&&(ai=r);let e=r||ai,t=null;try{t=await mg(e);let i=await t.load(e);if(i){let n=tz(i);n&&Ac(e)==="none"&&!QC&&(QC=!0,console.log("[DB] DB_CIPHER=none: existing encrypted values were decrypted; the next save will write them back as PLAINTEXT (per-field migration, no explicit step needed). Set DB_CIPHER to keep them encrypted."));let s=n?await eQ(e,{needDecrypt:!0}):null;return await iz(i,s),ht=i,vC(ht),ag(ht),cg(ht),lg(ht),dg(ht),Ns=!0,Wo=null,ht}if(Ns&&ht)return console.warn(`[DB] Backend ${t?.name??"storage"} returned empty while a trusted snapshot exists; keeping the in-memory snapshot to avoid overwriting real config.`),vC(ht),ag(ht),cg(ht),lg(ht),dg(ht),ht;Ns=!1,Wo=null}catch(i){console.error(`[DB] Error reading config from ${t?.name??"storage"}:`,i?.message||i),Wo=String(i?.message||i),Ns=!1}return ht&&Ns?(vC(ht),ag(ht),cg(ht),lg(ht),dg(ht),ht):(ht=JSON.parse(JSON.stringify(pc)),ag(ht),cg(ht),lg(ht),dg(ht),ht)},ne=async r=>{r&&(ai=r);let e=r||W3();if(!e)return J3(r);let t=Ag.get(e);if(t)return t;let i=gg.get(e);if(i&&Date.now()-i.ts(gg.set(e,{ts:Date.now(),db:s}),s)).finally(()=>{Ag.delete(e)});return Ag.set(e,n),n},PC=new Set(["token","sso_client_secret","sso_client_id","ldap_bind_password","ldap_bind_dn","ocr_api","handle_hook_after_writing"]),kC=!1,SC=!1,DC=!1,QC=!1,Xo="openlist_encryption_secret";X3=32;qs=null,Yo=!1;Xu=null,j3=6,YG=100,WG=1e3;ZG=4096,Rl=new Map;$3=16;fe=async(r,e,t)=>{e&&(ai=e);let i=e||ai;if(Y3(r)&&!t?.force){hg=!0;let c=Wo?`last load failed: ${Wo}`:Ns?"payload is an empty/shell database":"database was never successfully loaded from the persistence backend";return console.error(`[DB] saveDb BLOCKED: refusing to persist an empty/shell database (${c}). This guard prevents an empty payload from wiping real config. Pass saveDb(db, env, { force: true }) to override intentionally.`),!1}ht=r,hg=!1;let s=e||W3();s&&gg.set(s,{ts:Date.now(),db:r});let o=await mg(i);if(!(o.isConfigured?await o.isConfigured(i):!0))return console.warn("[DB] WARNING: No persistence backend configured! Storage configuration changes will exist only in memory!"),!1;try{let c=Ac(i);console.log(`[DB] saveDb: cipher=${c}, persisting to ${o.name}, storages=${r.storages?.length||0}`);let l=c==="none"?null:await eQ(i);c!=="none"&&!l&&!DC&&(DC=!0,console.error(`[DB] DB_CIPHER=${c} but no encryption key is available; sensitive fields will be stored in PLAINTEXT. Set JWT_SECRET.`));let d=await rz(r,l);console.log(`[DB] saveDb: sealed data size=${JSON.stringify(d).length} bytes`),await o.save(d,i)}catch(c){throw console.error(`[DB] saveDb FAILED: backend=${o.name}, error=${c?.message||c}`,`stack=${c?.stack?.substring(0,500)||""}`),new Error(`[DB] Failed to persist config (${o.name}); the change was NOT saved: ${c?.message||c}`)}return console.log(`[DB] Successfully persisted ${r.storages?.length||0} storages to ${o.name}`),Ns=!0,Wo=null,!0}});function Os(r){return(r.startsWith("/")?r:`/${r}`).replace(/[^A-Za-z0-9\-_.~$&+,:;=@/]/gu,t=>{try{return encodeURIComponent(t)}catch{return t}})}var Nl=J(()=>{"use strict"});function rQ(r){if(!r)return{};if(typeof r=="object")return r;if(typeof r=="string")try{let e=JSON.parse(r||"{}");return e&&typeof e=="object"?e:{}}catch{return{}}return{}}function RC(r){return typeof r=="string"?r.toLowerCase()==="true":r===!0}function mc(r){if(typeof r=="number"&&Number.isFinite(r))return Math.trunc(r);if(typeof r=="string"&&r.trim()!==""){let e=parseInt(r,10);if(Number.isFinite(e))return e}return null}function iQ(r){let e=r?.proxy_range??r?.proxyRange;return e==null||e===""?!0:RC(e)}function nQ(r){return r?RC(r.enable_sign??r.enableSign):!1}function sQ(r){return r?RC(r.disable_index??r.disableIndex):!1}function cz(r){let e=mc(r?.cache_expiration??r?.cacheExpiration);return e===null||e<0?30:e}function lz(r){let e=r?.custom_cache_policies??r?.customCachePolicies;if(!e)return[];if(typeof e=="string"){let i=e.trim();if(!i)return[];try{e=JSON.parse(i)}catch{let n=[];for(let s of i.split(",")){let o=s.lastIndexOf(":");if(o<=0)continue;let a=s.slice(0,o).trim(),c=mc(s.slice(o+1).trim());a&&c!==null&&n.push({path:a,cacheExpiration:c})}return n}}let t=[];if(Array.isArray(e)){for(let i of e)if(i){if(typeof i=="string"){let n=i.lastIndexOf(":");if(n<=0)continue;let s=i.slice(0,n).trim(),o=mc(i.slice(n+1).trim());s&&o!==null&&t.push({path:s,cacheExpiration:o});continue}if(typeof i=="object"){let n=i.path??i.Path,s=mc(i.cache_expiration??i.cacheExpiration)??mc(i.max_age??i.maxAge);if(typeof n=="string"&&n&&s!==null){let o=mc(i.max_age??i.maxAge);t.push({path:n,cacheExpiration:s,...o!==null?{maxAge:o}:{}})}}}return t}if(typeof e=="object")for(let[i,n]of Object.entries(e)){let s=mc(n);i&&s!==null&&t.push({path:i,cacheExpiration:s})}return t}function tQ(r,e){if(!r)return!1;if(r===e)return!0;if(r.length>dz||e.length>uz)return!1;let t=r.split("/"),i=e.split("/"),n=t.length,s=i.length,o=new Array(s+1).fill(!1);o[s]=!0;for(let a=n-1;a>=0;a--){let c=t[a],l=new Array(s+1).fill(!1);if(/^\*{2,}$/.test(c)){l[s]=o[s];for(let u=s-1;u>=0;u--)l[u]=o[u]||l[u+1]}else for(let u=s-1;u>=0;u--)l[u]=fz(c,i[u])&&o[u+1];o=l}return o[0]}function fz(r,e){let t=0,i=0,n=-1,s=-1,o=r.length,a=e.length;for(;i{"use strict";dz=1024,uz=4096});function yc(r){return String(r??"").toLowerCase().replace(/[^a-z0-9]/g,"")}function Ic(r){let e=Array.isArray(r)?r.join(","):r;return String(e??"").split(",").map(t=>t.trim().toLowerCase().replace(/^\./,"")).filter(Boolean)}function lQ(r){let e=String(r??"").split("/").pop()?.trim();if(!e)return"";let t=e.lastIndexOf(".");return t<0||t===e.length-1?"":e.slice(t+1).toLowerCase()}function dQ(r){return aQ.has(yc(r))}function gz(r){let e=rQ(r?.addition),t=String(e.storage_zone_name??"").trim(),i=String(e.cdn_base_url??"").trim();return t!==""&&i===""}function Ig(r,e){let t=yc(e??r?.driver);return aQ.has(t)?!0:t==="bunnystorage"?gz(r):!1}function qC(r){return Az.has(yc(r))}function uQ(r){if(!r)return"";let e=r.webdav_policy??r.webdavPolicy??r.policy??r.webdavPolicyType;return typeof e=="string"?e.trim():""}function fQ(r){if(!r)return"";for(let t of["down_proxy_url","downProxyUrl"]){let i=r[t];if(typeof i=="string"&&i.trim())return i.split(` +`)[0].trim()}let e=r.addition;if(typeof e=="string")try{e=JSON.parse(e||"{}")}catch{return""}if(!e||typeof e!="object")return"";for(let t of hz){let i=e[t];if(typeof i=="string"&&i.trim())return i.split(` +`)[0].trim()}return""}function AQ(r){if(!r)return!1;let e=r.disable_proxy_sign??r.disableProxySign;return typeof e=="string"?e.toLowerCase()==="true":!!e}function hQ(r,e){let t=r?.web_proxy??r?.webProxy;return t===!0||t==="true"?!0:t===!1||t==="false"?!1:qC(e)}function gQ(r,e,t,i={}){let n=yc(e);if(Ig(r,n))return{mode:"native_proxy",needsProxy:!0,source:"force"};if(hQ(r,n))return{mode:"native_proxy",needsProxy:!0,source:"web_proxy"};if(t)return{mode:"native_proxy",needsProxy:!0,source:"proxy_path"};if(NC(lQ(i.filename),i.proxyTypes))return{mode:"native_proxy",needsProxy:!0,source:"proxy_types"};let s=uQ(r);return s?{mode:s,needsProxy:s!=="302_redirect",source:"storage_policy"}:{mode:"302_redirect",needsProxy:!1,source:"driver_default"}}function NC(r,e){return r?Ic(e).includes(r):!1}function wg(r){let e=yc(r.driver);if(Ig(r.storage,e)||hQ(r.storage,e)||uQ(r.storage)==="use_proxy_url")return!0;let t=lQ(r.filename);return t?NC(t,r.proxyTypes)||NC(t,r.textTypes):!1}var aQ,Az,cQ,hz,ef=J(()=>{"use strict";Zu();aQ=new Set(["weiyun","sftp","ftp","smb","crypt","virtual","strm","meganz","protondrive","chunk","googledrive","googlephoto","quarkopen","quarkuc","chaoxing","local"]),Az=new Set(["webdav","baidunetdisk","123pan","123open","123panshare"]),cQ=new Set(["139yun","alias","alistv3","openlist"]),hz=["down_proxy_url","download_proxy_url","proxy_url"]});function X(r,e){if(e)return 1;let t=(r.split(".").pop()||"").toLowerCase();return["mp4","mkv","avi","mov","flv","wmv","ts","m2ts","m4v","rmvb","webm","3gp","asf","vob","ogv","rm","f4v"].includes(t)?2:["mp3","flac","aac","wav","ogg","m4a","opus","wma","ape","alac","aiff","mid","midi"].includes(t)?3:["txt","md","markdown","json","js","ts","jsx","tsx","css","scss","html","htm","xml","yaml","yml","ini","conf","env","log","sql","py","java","c","cpp","h","hpp","go","rs","sh","bat","cmd","ps1","php","rb","swift","kt","cs","vue","svelte","json5","toml"].includes(t)?4:["jpg","jpeg","png","gif","bmp","webp","svg","ico","tiff","tif","heic","heif","avif","vvc","avc","psd","ai"].includes(t)?5:0}var Be=J(()=>{"use strict"});function de(r,e,t){let i=t!=="desc",n=String(e||"name").toLowerCase(),s=[...r];return s.sort((o,a)=>{if(o.is_dir!==a.is_dir)return o.is_dir?-1:1;let c;return n.includes("size")?c=(o.size||0)-(a.size||0):n.includes("time")||n.includes("modified")||n.includes("created")?c=new Date(o.modified).getTime()-new Date(a.modified).getTime():c=String(o.name).localeCompare(String(a.name)),i?c:-c}),s}var He=J(()=>{"use strict"});var Yn,OC=J(()=>{"use strict";Yn={global:{oauth:"https://login.microsoftonline.com",api:"https://graph.microsoft.com"},cn:{oauth:"https://login.partner.microsoftonline.cn",api:"https://microsoftgraph.chinacloudapi.cn"},us:{oauth:"https://login.microsoftonline.us",api:"https://graph.microsoft.us"},de:{oauth:"https://login.microsoftonline.de",api:"https://graph.microsoft.de"}}});function MC(r,e){let t="";return r.thumbnails&&r.thumbnails.length>0&&(t=r.thumbnails[0].medium?.url||""),{id:r.id,name:r.name,size:r.size,modified:r.lastModifiedDateTime||r.fileSystemInfo?.lastModifiedDateTime||"",isFolder:!!r.folder||!r.file,thumbnail:t,parentID:e,url:r["@microsoft.graph.downloadUrl"]||""}}var pQ=J(()=>{"use strict"});async function LC(r){if(r.use_online_api&&r.api_url_address){let s=new URLSearchParams({refresh_ui:r.refresh_token,server_use:"true",driver_txt:"onedrive_pr"}).toString(),a=await(await fetch(`${r.api_url_address}?${s}`)).json();if(!a.refresh_token||!a.access_token)throw a.text?new Error(`failed to refresh token: ${a.text}`):new Error("empty token returned from official API");r.accessToken=a.access_token,r.refresh_token=a.refresh_token,await r.onTokenUpdate?.(r.refresh_token);return}if(!r.client_id||!r.client_secret)throw new Error("empty ClientID or ClientSecret");let t=`${(Yn[r.region]||Yn.global).oauth}/common/oauth2/v2.0/token`,n=await(await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",client_id:r.client_id,client_secret:r.client_secret,redirect_uri:r.redirect_uri,refresh_token:r.refresh_token}).toString()})).json();if(!n.refresh_token)throw new Error("Empty token");r.refresh_token=n.refresh_token,r.accessToken=n.access_token,await r.onTokenUpdate?.(r.refresh_token)}async function Ni(r,e,t,i,n){let s=i!==void 0&&(i instanceof Uint8Array||i instanceof ArrayBuffer||typeof Buffer<"u"&&Buffer.isBuffer(i)),o={method:t.toUpperCase(),headers:{Authorization:`Bearer ${r.accessToken}`,...i!==void 0?{"Content-Type":s?"application/octet-stream":"application/json"}:{}},...i!==void 0?{body:s?i:JSON.stringify(i)}:{}},a=await fetch(e,o);if(!a.ok){let c;try{c=(await a.json()).error}catch{c=null}let l=c?.code;if((l==="InvalidAuthenticationToken"||l==="ExpiredAuthenticationToken"||a.status===401)&&!n)return await LC(r),Ni(r,e,t,i,!0);throw new Error(c?.message||`Request failed: ${a.status}`)}if(a.status!==204)return a.json()}function mQ(r,e,t){let i=e.replace(/\\/g,"/");if(!i||i==="/")return t?`${r}/drive/root/${t}`:`${r}/drive/root`;let n=i.startsWith("/")?i.slice(1):i;if(n.endsWith("/")&&(n=n.slice(0,-1)),!n||n==="")return t?`${r}/drive/root/${t}`:`${r}/drive/root`;let s=n.split("/").map(encodeURIComponent).join("/");return t?`${r}/drive/root:/${s}:/${t}`:`${r}/drive/root:/${s}:`}async function yQ(r,e){let t=Yn[r.region]||Yn.global,i=r.is_sharepoint?`${t.api}/v1.0/sites/${r.site_id}`:`${t.api}/v1.0/me`,s=mQ(i,e,"children?$top=1000&$expand=thumbnails($select=medium)&$select=id,name,size,fileSystemInfo,@microsoft.graph.downloadUrl,file,folder,parentReference"),o=[];for(;s;){let a=await Ni(r,s,"GET");a.value&&o.push(...a.value),s=a["@odata.nextLink"]}return o}async function IQ(r,e){let t=Yn[r.region]||Yn.global,i=r.is_sharepoint?`${t.api}/v1.0/sites/${r.site_id}`:`${t.api}/v1.0/me`,n=mQ(i,e);return Ni(r,n,"GET")}var wQ=J(()=>{"use strict";OC()});var xg,xQ=J(()=>{"use strict";He();OC();pQ();wQ();xg=class{root_folder_path="/";region="global";is_sharepoint=!1;use_online_api=!0;api_url_address="https://api.oplist.org/onedrive/renewapi";client_id="";client_secret="";redirect_uri="https://api.oplist.org/onedrive/callback";refresh_token="";site_id="";chunk_size=5;custom_host="";disable_disk_usage=!1;enable_direct_upload=!1;order_by="filename";order_direction="asc";accessToken="";onTokenUpdate;constructor(e,t){e&&(e.root_folder_path!==void 0&&(this.root_folder_path=String(e.root_folder_path)),e.region!==void 0&&(this.region=String(e.region)),e.is_sharepoint!==void 0&&(this.is_sharepoint=!!e.is_sharepoint),e.use_online_api!==void 0&&(this.use_online_api=!!e.use_online_api),e.api_url_address!==void 0&&(this.api_url_address=String(e.api_url_address)),e.client_id!==void 0&&(this.client_id=String(e.client_id)),e.client_secret!==void 0&&(this.client_secret=String(e.client_secret)),e.redirect_uri!==void 0&&(this.redirect_uri=String(e.redirect_uri)),e.refresh_token!==void 0&&(this.refresh_token=String(e.refresh_token)),e.site_id!==void 0&&(this.site_id=String(e.site_id)),e.chunk_size!==void 0&&(this.chunk_size=Number(e.chunk_size)||5),e.custom_host!==void 0&&(this.custom_host=String(e.custom_host)),e.disable_disk_usage!==void 0&&(this.disable_disk_usage=!!e.disable_disk_usage),e.enable_direct_upload!==void 0&&(this.enable_direct_upload=!!e.enable_direct_upload),e.order_by!==void 0&&(this.order_by=String(e.order_by)),e.order_direction!==void 0&&(this.order_direction=String(e.order_direction))),this.onTokenUpdate=t}async init(){typeof this.is_sharepoint=="string"&&(this.is_sharepoint=this.is_sharepoint.toLowerCase()==="true"),typeof this.use_online_api=="string"&&(this.use_online_api=this.use_online_api.toLowerCase()==="true"),typeof this.chunk_size=="string"&&(this.chunk_size=parseInt(this.chunk_size)||5),typeof this.disable_disk_usage=="string"&&(this.disable_disk_usage=this.disable_disk_usage.toLowerCase()==="true"),typeof this.enable_direct_upload=="string"&&(this.enable_direct_upload=this.enable_direct_upload.toLowerCase()==="true"),this.chunk_size<1&&(this.chunk_size=5),this.refresh_token&&await LC(this)}getMetaUrl(e,t,i){let n=Yn[this.region]||Yn.global;if(e)return n.oauth;let s=this.is_sharepoint?`${n.api}/v1.0/sites/${this.site_id}`:`${n.api}/v1.0/me`,o=t.replace(/\\/g,"/");if(!o||o==="/")return i?`${s}/drive/root/${i}`:`${s}/drive/root`;let a=o.startsWith("/")?o.slice(1):o;if(a.endsWith("/")&&(a=a.slice(0,-1)),!a||a==="")return i?`${s}/drive/root/${i}`:`${s}/drive/root`;let c=a.split("/").map(l=>{try{return encodeURIComponent(decodeURIComponent(l))}catch{return encodeURIComponent(l)}}).join("/");return i?`${s}/drive/root:/${c}:/${i}`:`${s}/drive/root:/${c}:`}async list(e,t){let n=(await yQ(this,t)).map(s=>{let o=MC(s,""),a=s["@microsoft.graph.downloadUrl"]||o.url||"";if(this.custom_host&&a)try{let c=new URL(a);c.host=this.custom_host,a=c.toString()}catch{}return{name:o.name,size:o.size,is_dir:o.isFolder,modified:o.modified,sign:"",type:o.isFolder?1:0,thumb:o.thumbnail||"",raw_url:a}});return de(n,this.order_by,this.order_direction)}async get(e,t){let i=await IQ(this,t),n=MC(i,""),s=i["@microsoft.graph.downloadUrl"]||n.url||"";if(this.custom_host&&s)try{let o=new URL(s);o.host=this.custom_host,s=o.toString()}catch{}return{name:n.name,size:n.size,is_dir:n.isFolder,modified:n.modified,sign:"",type:n.isFolder?1:0,thumb:n.thumbnail||"",raw_url:s}}async mkdir(e,t){let i=t.split("/").slice(0,-1).join("/")||"/",n=t.split("/").filter(Boolean).pop()||"",s=this.getMetaUrl(!1,i,"children");await Ni(this,s,"POST",{name:n,folder:{},"@microsoft.graph.conflictBehavior":"rename"})}async rename(e,t,i){let n={name:i},s=this.getMetaUrl(!1,t);await Ni(this,s,"PATCH",n)}async remove(e,t,i){for(let n of i){let s=t==="/"?`/${n}`:`${t}/${n}`,o=this.getMetaUrl(!1,s);await Ni(this,o,"DELETE")}}async move(e,t,i,n,s){let o=this.getMetaUrl(!1,s),a=await Ni(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=this.getMetaUrl(!1,u);await Ni(this,h,"PATCH",f)}}async copy(e,t,i,n,s){let o=this.getMetaUrl(!1,s),a=await Ni(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=this.getMetaUrl(!1,u,"copy");await Ni(this,h,"POST",f)}}async put(e,t,i){if(i.length<=4*1024*1024){let n=this.getMetaUrl(!1,t,"content");await Ni(this,n,"PUT",i)}else{let n=this.getMetaUrl(!1,t,"createUploadSession"),a=(await Ni(this,n,"POST",{item:{"@microsoft.graph.conflictBehavior":"rename"}})).uploadUrl,c=this.chunk_size*1024*1024,l=0,d=i.length;for(;l0&&(t=r.thumbnails[0].medium?.url||""),{id:r.id,name:r.name,size:r.size,modified:r.lastModifiedDateTime||r.fileSystemInfo?.lastModifiedDateTime||"",isFolder:!!r.folder||!r.file,thumbnail:t,parentID:e,url:r["@microsoft.graph.downloadUrl"]||""}}var CQ=J(()=>{"use strict"});var wc,EQ=J(()=>{"use strict";wc={global:{oauth:"https://login.microsoftonline.com",api:"https://graph.microsoft.com"},cn:{oauth:"https://login.chinacloudapi.cn",api:"https://microsoftgraph.chinacloudapi.cn"},us:{oauth:"https://login.microsoftonline.us",api:"https://graph.microsoft.us"},de:{oauth:"https://login.microsoftonline.de",api:"https://graph.microsoft.de"}}});function qi(r,e,t,i){let n=wc[r.region]||wc.global;if(e)return n.oauth;let s=t?t.replace(/\\/g,"/"):"";if(!s||s==="/")return i?`${n.api}/v1.0/users/${r.email}/drive/root/${i}`:`${n.api}/v1.0/users/${r.email}/drive/root`;let o=s.startsWith("/")?s.slice(1):s;if(o.endsWith("/")&&(o=o.slice(0,-1)),!o||o==="")return i?`${n.api}/v1.0/users/${r.email}/drive/root/${i}`:`${n.api}/v1.0/users/${r.email}/drive/root`;let a=o.split("/").map(c=>{try{return encodeURIComponent(decodeURIComponent(c))}catch{return encodeURIComponent(c)}}).join("/");return i?`${n.api}/v1.0/users/${r.email}/drive/root:/${a}:/${i}`:`${n.api}/v1.0/users/${r.email}/drive/root:/${a}:`}async function KC(r){let e=null;for(let t=0;t<3;t++)try{await pz(r);return}catch(i){e=i}throw e||new Error("Failed to get access token")}async function pz(r){if(!r.client_id||!r.client_secret)throw new Error("empty client_id or client_secret");if(!r.tenant_id)throw new Error("empty tenant_id");let e=wc[r.region]||wc.global,t=`${e.oauth}/${r.tenant_id}/oauth2/token`,i=new URLSearchParams({grant_type:"client_credentials",client_id:r.client_id,client_secret:r.client_secret,resource:`${e.api}/`,scope:`${e.api}/.default`}).toString(),s=await(await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i})).json();if(s.error)throw new Error(s.error_description||s.error);if(!s.access_token)throw new Error("empty token returned from Microsoft identity platform");r.accessToken=s.access_token,r.onTokenUpdate?.(r.accessToken)}async function ci(r,e,t,i,n){let s=i!==void 0&&(typeof i=="string"||i instanceof Uint8Array||i instanceof ArrayBuffer||typeof Buffer<"u"&&Buffer.isBuffer(i)),o={method:t.toUpperCase(),headers:{Authorization:`Bearer ${r.accessToken}`,...i!==void 0&&!s?{"Content-Type":"application/json"}:{}},...i!==void 0?{body:s?i:JSON.stringify(i)}:{}},a=await fetch(e,o);if(!a.ok){let c;try{c=(await a.json()).error}catch{c=null}let l=c?.code;if((l==="InvalidAuthenticationToken"||l==="ExpiredAuthenticationToken"||a.status===401)&&!n)return await KC(r),ci(r,e,t,i,!0);throw new Error(c?.message||`Request failed: ${a.status}`)}if(a.status!==204)return a.json()}async function BQ(r,e){let i=qi(r,!1,e,"children?$top=1000&$expand=thumbnails($select=medium)&$select=id,name,size,fileSystemInfo,lastModifiedDateTime,@microsoft.graph.downloadUrl,file,folder,parentReference"),n=[];for(;i;){let s=await ci(r,i,"GET");s.value&&n.push(...s.value),i=s["@odata.nextLink"]}return n}async function bQ(r,e){let t=qi(r,!1,e);return ci(r,t,"GET")}async function vQ(r){let t=`${(wc[r.region]||wc.global).api}/v1.0/users/${r.email}/drive`;return ci(r,t,"GET",void 0,!0)}async function kQ(r,e){let t=qi(r,!1,e,"createUploadSession"),s=(await ci(r,t,"POST",{item:{"@microsoft.graph.conflictBehavior":"rename"}})).uploadUrl;if(!s)throw new Error("failed to get upload URL from response");return{UploadURL:s,ChunkSize:(r.chunk_size||5)*1024*1024,Method:"PUT"}}var SQ=J(()=>{"use strict";EQ()});var Cg,DQ=J(()=>{"use strict";He();CQ();SQ();Cg=class{root_folder_path="/";region="global";client_id="";client_secret="";tenant_id="";email="";chunk_size=5;custom_host="";disable_disk_usage=!1;enable_direct_upload=!1;order_by="filename";order_direction="asc";accessToken="";onTokenUpdate;constructor(e,t){e&&(e.root_folder_path!==void 0&&(this.root_folder_path=String(e.root_folder_path)),e.region!==void 0&&(this.region=String(e.region)),e.client_id!==void 0&&(this.client_id=String(e.client_id)),e.client_secret!==void 0&&(this.client_secret=String(e.client_secret)),e.tenant_id!==void 0&&(this.tenant_id=String(e.tenant_id)),e.email!==void 0&&(this.email=String(e.email)),e.chunk_size!==void 0&&(this.chunk_size=Number(e.chunk_size)||5),e.custom_host!==void 0&&(this.custom_host=String(e.custom_host)),e.disable_disk_usage!==void 0&&(this.disable_disk_usage=!!e.disable_disk_usage),e.enable_direct_upload!==void 0&&(this.enable_direct_upload=!!e.enable_direct_upload),e.order_by!==void 0&&(this.order_by=String(e.order_by)),e.order_direction!==void 0&&(this.order_direction=String(e.order_direction))),this.onTokenUpdate=t}async init(){typeof this.chunk_size=="string"&&(this.chunk_size=parseInt(this.chunk_size)||5),typeof this.disable_disk_usage=="string"&&(this.disable_disk_usage=this.disable_disk_usage.toLowerCase()==="true"),typeof this.enable_direct_upload=="string"&&(this.enable_direct_upload=this.enable_direct_upload.toLowerCase()==="true"),this.chunk_size<1&&(this.chunk_size=5),this.client_id&&this.client_secret&&this.tenant_id&&await KC(this)}async list(e,t){let n=(await BQ(this,t)).map(s=>{let o=HC(s,""),a=s["@microsoft.graph.downloadUrl"]||o.url||"";if(this.custom_host&&a)try{let c=new URL(a);c.host=this.custom_host,a=c.toString()}catch{}return{name:o.name,size:o.size,is_dir:o.isFolder,modified:o.modified,sign:"",type:o.isFolder?1:0,thumb:o.thumbnail||"",raw_url:a}});return de(n,this.order_by,this.order_direction)}async get(e,t){let i=await bQ(this,t),n=HC(i,""),s=i["@microsoft.graph.downloadUrl"]||n.url||"";if(this.custom_host&&s)try{let o=new URL(s);o.host=this.custom_host,s=o.toString()}catch{}return{name:n.name,size:n.size,is_dir:n.isFolder,modified:n.modified,sign:"",type:n.isFolder?1:0,thumb:n.thumbnail||"",raw_url:s}}async mkdir(e,t){let i=t.split("/").slice(0,-1).join("/")||"/",n=t.split("/").filter(Boolean).pop()||"",s=qi(this,!1,i,"children");await ci(this,s,"POST",{name:n,folder:{},"@microsoft.graph.conflictBehavior":"rename"})}async rename(e,t,i){let n={name:i},s=qi(this,!1,t);await ci(this,s,"PATCH",n)}async remove(e,t,i){for(let n of i){let s=t==="/"?`/${n}`:`${t}/${n}`,o=qi(this,!1,s);await ci(this,o,"DELETE")}}async move(e,t,i,n,s){let o=qi(this,!1,s),a=await ci(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=qi(this,!1,u);await ci(this,h,"PATCH",f)}}async copy(e,t,i,n,s){let o=qi(this,!1,s),a=await ci(this,o,"GET"),c=a.id,l=a.parentReference?.driveId;for(let d of i){let u=n==="/"?`/${d}`:`${n}/${d}`,f={parentReference:{id:c,...l?{driveId:l}:{}},name:d},h=qi(this,!1,u,"copy");await ci(this,h,"POST",f)}}async put(e,t,i){if(i.length<=4*1024*1024){let n=qi(this,!1,t,"content");await ci(this,n,"PUT",i)}else{let n=qi(this,!1,t,"createUploadSession"),a=(await ci(this,n,"POST",{item:{"@microsoft.graph.conflictBehavior":"rename"}})).uploadUrl,c=this.chunk_size*1024*1024,l=0,d=i.length;for(;l255||g>255||p>255||I>255||h===0||h===127||h===10||h===172&&g>=16&&g<=31||h===192&&g===168||h===169&&g===254||h===100&&g>=64&&g<=127||h===100&&g===100||h===224&&g===0&&p===0||h>=240)return!1}if(/^\d{8,}$/.test(i)||/^0x[0-9a-fA-F]{6,}$/i.test(i))return!1;let c=[/(^|\.)\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}(\.|$)/,/(^|\.)0x[0-9a-f]{6,8}(\.|$)/i,/(^|\.)\d{8,}(\.|$)/,/(^|\.)127\.0\.0\.1\.nip\.io$/,/(^|\.)localtest\.me$/,/(^|\.)vcap\.me$/,/(^|\.)xip\.io$/];for(let l of c)if(l.test(i))return!1;return!0}catch{return!1}}function jr(r,e="Request",t){if(!mz(r,t))throw new Error(`${e} blocked: URL points to a restricted or private network destination (SSRF protection)`)}function yz(r){let e=new Set;if(r==null)return e;let t=r;if(typeof r=="string")try{t=JSON.parse(r)}catch{return e}if(typeof t!="object"||Array.isArray(t))return e;let i=/(url|host|address|endpoint|server|domain|site|base|gateway|api)/i,n=s=>{if(!(s==null||typeof s!="object"))for(let[o,a]of Object.entries(s))if(typeof a=="string"){if(i.test(o)){let c=QQ(a);c&&e.add(c)}}else a!=null&&typeof a=="object"&&n(a)};return n(t),e}function QQ(r){let e=r.trim();if(!e)return;let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?[e]:[`http://${e}`];for(let i of t)try{let n=new URL(i);if(n.protocol!=="http:"&&n.protocol!=="https:")continue;let s=n.hostname.toLowerCase().trim();if(s)return s}catch{}}function Iz(r){let e=new Set;if(!r)return e;for(let t of r.split(/[,;\s]+/)){let i=QQ(t);i&&e.add(i)}return e}function Eg(r,e){let t=yz(r),i=e?.SSRF_ALLOWED_HOSTS??(typeof process<"u"?process.env?.SSRF_ALLOWED_HOSTS:void 0);if(typeof i=="string"&&i.trim())for(let n of Iz(i))t.add(n);return t}var xc=J(()=>{"use strict"});var wz,Bg,_Q=J(()=>{"use strict";xc();wz="https://openapi.aliyundrive.com/adrive/v1.0",Bg=class{addition;accessToken="";refreshTokenVal="";driveId="";tokenExpiresAt=0;constructor(e){this.addition=e,this.refreshTokenVal=e.refresh_token||"",this.driveId=e.drive_id||""}async init(){if(!this.refreshTokenVal||!this.refreshTokenVal.trim()){console.warn("[AliyundriveOpen] refresh_token is empty, skipping init.");return}try{await this.refreshAccessToken(),this.driveId||await this.resolveDriveId()}catch(e){console.warn("[AliyundriveOpen] init warning:",e.message)}}async resolveDriveId(e=!1){if(!e&&this.addition.drive_id&&this.addition.drive_id.trim()){this.driveId=this.addition.drive_id.trim();return}try{let t=await this.openApiRequest("/user/getDriveInfo",{}),i=e?"resource":this.addition.drive_type||"resource",n="";i==="resource"&&t.resource_drive_id?n=t.resource_drive_id:i==="backup"&&t.backup_drive_id?n=t.backup_drive_id:i==="default"&&t.default_drive_id&&(n=t.default_drive_id),n||(n=t.resource_drive_id||t.default_drive_id||t.backup_drive_id||""),this.driveId=n,console.log(`[AliyundriveOpen] Resolved drive_id: ${this.driveId} (driveType: ${i})`)}catch(t){console.warn("[AliyundriveOpen] resolveDriveId failed:",t.message)}}async refreshAccessToken(){if(!this.refreshTokenVal||!this.refreshTokenVal.trim())return;let e=this.refreshTokenVal.trim(),t=[];if(this.addition.api_url_address&&this.addition.api_url_address.trim()){let o=this.addition.api_url_address.trim();try{jr(o,"AliyundriveOpen api_url_address"),t.push(o)}catch(a){console.warn(`[AliyundriveOpen] Skipping unsafe api_url_address: ${a.message}`)}}t.push("https://api.oplist.org/alicloud/renewapi","https://api.oplist.org/ali_open/token","https://api.oplist.org/aliyundrive/token","https://api.alist.nn.ci/alist/ali_open/token","https://api.alist.nn.ci/aliyundrive/token","https://api-sam.oplist.org/aliyundrive/token");let i=this.addition.alipan_type==="alipanTV"?"alicloud_tv":"alicloud_qr";for(let o of t)try{let a=new URLSearchParams({refresh_ui:e,refresh_token:e,server_use:"true",driver_txt:i}),c=await fetch(`${o}?${a.toString()}`,{method:"GET",headers:{"Content-Type":"application/json"}});if(!c.ok)throw new Error(`[Status ${c.status}]`);let l=await c.json(),d=l.refresh_token||l.data?.refresh_token||"",u=l.access_token||l.data?.access_token||"";if(!u)throw new Error(`Empty access_token from online API: ${JSON.stringify(l)}`);this.accessToken=u,d&&(this.refreshTokenVal=d),this.tokenExpiresAt=Date.now()+(l.expires_in||7200)*1e3-6e4;return}catch(a){console.warn(`[AliyundriveOpen] Online API '${o}' failed: ${a.message}`)}let n=(this.addition.client_id||"").trim()||"25ab4837190e48718a28f80073574a4d",s=(this.addition.client_secret||"").trim();try{let o={grant_type:"refresh_token",refresh_token:e,client_id:n};s&&(o.client_secret=s);let a=await fetch("https://openapi.aliyundrive.com/oauth/access_token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok){let l=await a.text().catch(()=>"");throw new Error(`[Status ${a.status}] ${l}`)}let c=await a.json();if(!c.access_token)throw new Error(`Invalid response: ${JSON.stringify(c)}`);this.accessToken=c.access_token,c.refresh_token&&(this.refreshTokenVal=c.refresh_token),this.tokenExpiresAt=Date.now()+(c.expires_in||7200)*1e3-6e4;return}catch(o){console.warn(`[AliyundriveOpen] Direct OAuth failed: ${o.message}`)}throw new Error("[AliyundriveOpen] All token refresh strategies failed. Please check: 1) refresh_token is valid and not expired, 2) api_url_address is accessible, 3) If using direct OAuth, client_id and client_secret are correct.")}async ensureToken(){(!this.accessToken||Date.now()>=this.tokenExpiresAt)&&await this.refreshAccessToken()}getRootFolderId(){return this.addition.root_folder_id?.trim()||"root"}async openApiRequest(e,t,i=!0){await this.ensureToken();let n=e.startsWith("http")?e:`${wz}${e}`;try{jr(n,"AliyundriveOpen openApiRequest")}catch(o){throw new Error(`[AliyundriveOpen] blocked unsafe URL: ${o.message}`)}let s=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.accessToken}`},body:JSON.stringify(t)});if(s.status===401&&i)return await this.refreshAccessToken(),this.openApiRequest(e,t,!1);if(!s.ok){let o=await s.text().catch(()=>"");throw new Error(`[AliyundriveOpen] API error [${s.status}] ${e}: ${o}`)}return s.json()}async listFiles(e){this.driveId||await this.resolveDriveId();let t=[],i,n=this.addition.order_by||"updated_at",s=this.addition.order_direction||"DESC";do{let o={drive_id:this.driveId,parent_file_id:e,limit:100,order_by:n,order_direction:s};i&&(o.marker=i);let a;try{a=await this.openApiRequest("/openFile/list",o)}catch(c){if(c.message?.includes("UserNotAllowedAccessDrive"))console.warn(`[AliyundriveOpen] UserNotAllowedAccessDrive for drive ${this.driveId}, auto re-resolving drive_id...`),await this.resolveDriveId(!0),o.drive_id=this.driveId,a=await this.openApiRequest("/openFile/list",o);else throw c}t.push(...a.items||[]),i=a.next_marker||void 0}while(i);return t}async getFile(e){return this.driveId||await this.resolveDriveId(),this.openApiRequest("/openFile/get",{drive_id:this.driveId,file_id:e})}async getDownloadUrl(e){let t=await this.openApiRequest("/openFile/getDownloadUrl",{drive_id:this.driveId,file_id:e,expire_sec:14400});return t.url||t.download_url||""}async mkdir(e,t){await this.openApiRequest("/openFile/create",{drive_id:this.driveId,parent_file_id:e,name:t,type:"folder",check_name_mode:"refuse"})}async rename(e,t){await this.openApiRequest("/openFile/update",{drive_id:this.driveId,file_id:e,name:t,check_name_mode:"refuse"})}async remove(e){let t=this.addition.remove_way||"trash";await this.openApiRequest(t==="trash"?"/openFile/recyclebin":"/openFile/delete",{drive_id:this.driveId,file_id:e})}async move(e,t){await this.openApiRequest("/openFile/move",{drive_id:this.driveId,file_id:e,to_parent_file_id:t,check_name_mode:"refuse"})}async copy(e,t){await this.openApiRequest("/openFile/copy",{drive_id:this.driveId,file_id:e,to_parent_file_id:t,auto_rename:!0})}async putFile(e,t,i){let n=i.length,s=await this.openApiRequest("/openFile/create",{drive_id:this.driveId,parent_file_id:e,name:t,type:"file",size:n,check_name_mode:"auto_rename",part_info_list:[{part_number:1}]}),o=s.part_info_list?.[0]?.upload_url;if(!o)return;let a=await fetch(o,{method:"PUT",body:i});if(!a.ok)throw new Error(`[AliyundriveOpen] Upload failed: ${a.status}`);await this.openApiRequest("/openFile/complete",{drive_id:this.driveId,file_id:s.file_id,upload_id:s.upload_id})}}});function FQ(r){let e=r.type==="folder";return{name:r.name,size:r.size||0,is_dir:e,modified:r.updated_at||r.created_at||new Date().toISOString(),sign:"",type:X(r.name,e),thumb:r.thumbnail||"",raw_url:r.download_url||""}}var bg,PQ=J(()=>{"use strict";Be();He();_Q();bg=class{client;addition;pathFileIdCache=new Map;constructor(e){this.addition=e,this.client=new Bg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFileId(t),s=(await this.client.listFiles(i)).map(FQ);return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=await this.resolveFileId(t),n=await this.client.getFile(i).catch(()=>null),s=await this.client.getDownloadUrl(i).catch(()=>"");if(n){let c=FQ(n);return c.raw_url=s||c.raw_url,c}try{await this.client.listFiles(i);let c=t.split("/").filter(Boolean);return{name:c[c.length-1]||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{}let o=t.split("/").filter(Boolean);return{name:o[o.length-1]||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:s}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFileId(s);await this.client.mkdir(o,n)}async rename(e,t,i){let n=await this.resolveFileId(t);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.resolveFileId(t);await this.client.remove(n)}async move(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.move(o,a)}async copy(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.copy(o,a)}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"upload",o="/"+n.join("/"),a=await this.resolveFileId(o);await this.client.putFile(a,s,i)}async resolveFileId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.client.getRootFolderId();if(this.pathFileIdCache.has(t))return this.pathFileIdCache.get(t);let i=t.split("/"),n=this.client.getRootFolderId();for(let s=0;s{try{return decodeURIComponent(o)}catch{return o}})(),c=i.slice(0,s+1).join("/");if(this.pathFileIdCache.has(c)){n=this.pathFileIdCache.get(c);continue}let d=(await this.client.listFiles(n)).find(u=>u.name===o||u.name===a||u.file_id===o);if(!d)throw new Error(`[AliyundriveOpen] Path '${o}' not found`);n=d.file_id,this.pathFileIdCache.set(c,n)}return n}}});var tf,TQ,UQ,GC=J(()=>{"use strict";tf="application/vnd.google-apps.folder",TQ="application/vnd.google-apps.shortcut",UQ="files(id,name,mimeType,size,modifiedTime,createdTime,thumbnailLink,shortcutDetails,md5Checksum,sha1Checksum,sha256Checksum),nextPageToken"});var Zo,RQ,xz,vg,NQ=J(()=>{"use strict";GC();Zo="https://www.googleapis.com/drive/v3",RQ="https://www.googleapis.com/upload/drive/v3",xz="https://oauth2.googleapis.com/token",vg=class{addition;accessToken="";refreshTokenVal="";tokenExpiresAt=0;constructor(e){this.addition=e,this.refreshTokenVal=e.refresh_token||""}getRootFolderId(){return this.addition.root_folder_id?.trim()||"root"}async init(){if(!this.refreshTokenVal||!this.refreshTokenVal.trim()){console.warn("[GoogleDrive] refresh_token is empty, skipping init.");return}try{await this.refreshAccessToken()}catch(e){console.warn("[GoogleDrive] init token refresh warning:",e.message)}}async refreshAccessToken(){let e=this.refreshTokenVal.trim();if(!e)return;let t=this.addition.use_online_api!==!1,i=[];t&&(this.addition.api_url_address?.trim()&&i.push(this.addition.api_url_address.trim()),i.push("https://api.oplist.org/google/token","https://api.oplist.org/google/renewapi","https://api.oplist.org/googledrive/token","https://api-sam.oplist.org/google/token","https://api-sam.oplist.org/googledrive/token","https://api.alist.nn.ci/google/token","https://api.alist.nn.ci/googledrive/token"));for(let o of i)try{let a=new URLSearchParams({refresh_ui:e,server_use:"true",driver_txt:"googleui_go"}),c=await fetch(`${o}?${a.toString()}`,{method:"GET"});if(!c.ok)throw new Error(`[Status ${c.status}]`);let l=await c.json(),d=l.access_token||l.data?.access_token||"",u=l.refresh_token||l.data?.refresh_token||"";if(!d){let f=l.text||l.error||"empty access_token";throw new Error(f)}this.accessToken=d,u&&(this.refreshTokenVal=u),this.tokenExpiresAt=Date.now()+(l.expires_in||3600)*1e3-6e4;return}catch(a){console.warn(`[GoogleDrive] Online API '${o}' failed: ${a.message}`)}let n=(this.addition.client_id||"").trim()||"202264815644-2n82p2e49c7o6026u87j9e22v1n25c27.apps.googleusercontent.com",s=(this.addition.client_secret||"").trim()||"GOCSPX-4bH5Kx3s_89_j6j2x-2x3-8x";if(n&&s)try{let o=await fetch(xz,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:n,client_secret:s,refresh_token:e,grant_type:"refresh_token"}).toString()});if(!o.ok){let c=await o.text().catch(()=>"");throw new Error(`[Status ${o.status}] ${c}`)}let a=await o.json();if(!a.access_token)throw new Error(`Invalid OAuth response: ${JSON.stringify(a)}`);this.accessToken=a.access_token,a.refresh_token&&(this.refreshTokenVal=a.refresh_token),this.tokenExpiresAt=Date.now()+(a.expires_in||3600)*1e3-6e4;return}catch(o){console.warn(`[GoogleDrive] Direct OAuth failed: ${o.message}`)}throw new Error("[GoogleDrive] All token refresh strategies failed. Please check: 1) refresh_token is valid, 2) api_url_address is accessible, 3) If using direct OAuth: client_id and client_secret are correct.")}async ensureToken(){(!this.accessToken||Date.now()>=this.tokenExpiresAt)&&await this.refreshAccessToken()}async request(e,t={},i=!0){await this.ensureToken();let n=await fetch(e,{...t,headers:{Authorization:`Bearer ${this.accessToken}`,...t.headers||{}}});if(n.status===401&&i)return console.warn("[GoogleDrive] 401 Unauthorized, refreshing token..."),await this.refreshAccessToken(),this.request(e,t,!1);if(!n.ok){let s=await n.text().catch(()=>"");throw new Error(`[GoogleDrive] API error [${n.status}]: ${s}`)}return n.status===204?null:n.json()}async listFiles(e){let t=[],i,n=this.addition.order_by||"folder,name,modifiedTime desc";do{let s=new URLSearchParams({q:`'${e}' in parents and trashed = false`,fields:UQ,orderBy:n,pageSize:"1000",includeItemsFromAllDrives:"true",supportsAllDrives:"true"});i&&s.set("pageToken",i);let o=`${Zo}/files?${s.toString()}`,a=await this.request(o),c=a.files||[];for(let l of c)l.mimeType===TQ&&l.shortcutDetails?.targetId&&(l.id=l.shortcutDetails.targetId,l.mimeType=l.shortcutDetails.targetMimeType||l.mimeType);t.push(...c),i=a.nextPageToken}while(i);return t}async getFile(e){let t=new URLSearchParams({fields:"id,name,mimeType,size,modifiedTime,md5Checksum",includeItemsFromAllDrives:"true",supportsAllDrives:"true"});return this.request(`${Zo}/files/${e}?${t.toString()}`)}getDownloadUrl(e){return`${Zo}/files/${e}?includeItemsFromAllDrives=true&supportsAllDrives=true&alt=media&acknowledgeAbuse=true`}getDownloadHeaders(){return{Authorization:`Bearer ${this.accessToken}`}}async mkdir(e,t){await this.request(`${Zo}/files?supportsAllDrives=true`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,parents:[e],mimeType:tf})})}async rename(e,t){await this.request(`${Zo}/files/${e}?supportsAllDrives=true`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})}async remove(e){await this.request(`${Zo}/files/${e}?supportsAllDrives=true`,{method:"DELETE"})}async move(e,t,i){let n=new URLSearchParams({addParents:i,removeParents:t,supportsAllDrives:"true"});await this.request(`${Zo}/files/${e}?${n.toString()}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:"{}"})}async copy(e,t,i){await this.request(`${Zo}/files/${e}/copy?supportsAllDrives=true`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:i,parents:[t]})})}async putFile(e,t,i,n="application/octet-stream"){let s=(this.addition.chunk_size||5)*1024*1024;if(i.length<=s){let o=new URLSearchParams({uploadType:"multipart",supportsAllDrives:"true"}),a=`----GoogleDriveBoundary${Date.now()}`,c=JSON.stringify({name:t,parents:[e]}),l=`--${a}\r Content-Type: application/json\r \r ${c}\r @@ -55,17 +57,17 @@ ${c}\r Content-Type: ${n}\r \r `,d=Buffer.from(l),u=Buffer.from(`\r ---${a}--`),f=Buffer.concat([d,i,u]);await this.request(`${aD}/files?${o.toString()}`,{method:"POST",headers:{"Content-Type":`multipart/related; boundary=${a}`},body:f})}else{let o=new URLSearchParams({uploadType:"resumable",supportsAllDrives:"true"});await this.ensureToken();let a=await fetch(`${aD}/files?${o.toString()}`,{method:"POST",headers:{Authorization:`Bearer ${this.accessToken}`,"Content-Type":"application/json","X-Upload-Content-Type":n,"X-Upload-Content-Length":String(i.length)},body:JSON.stringify({name:t,parents:[e]})});if(!a.ok)throw new Error(`[GoogleDrive] Resumable upload init failed: ${a.status}`);let c=a.headers.get("location");if(!c)throw new Error("[GoogleDrive] No upload URL returned");let l=0;for(;l{try{return decodeURIComponent(o)}catch{return o}})(),c=i.slice(0,s+1).join("/");if(this.pathCache.has(c)){n=this.pathCache.get(c);continue}let d=(await this.listFiles(n)).find(u=>u.name===o||u.name===a||u.id===o);if(!d)throw new Error(`[GoogleDrive] Path '${o}' not found`);n=d.id,this.pathCache.set(c,n)}return n}async resolveParentAndName(e){let t=e.split("/").filter(Boolean),i=t.pop()||"unnamed",n="/"+t.join("/");return{parentId:await this.resolveFileId(n),name:i}}}});function lD(r){return{name:r.name,size:r.size?parseInt(r.size,10):0,is_dir:r.mimeType===Mu,modified:r.modifiedTime||r.createdTime||new Date().toISOString(),sign:"",type:r.mimeType===Mu?1:0,thumb:r.thumbnailLink||"",raw_url:""}}var Ch,dD=j(()=>{"use strict";He();AC();cD();Ch=class{client;addition;constructor(e){this.addition=e,this.client=new xh(e)}async init(){await this.client.init()}async list(e,t){let i=await this.client.resolveFileId(t),s=(await this.client.listFiles(i)).map(lD);return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=await this.client.resolveFileId(t),n=await this.client.getFile(i).catch(()=>null);if(n){let a=lD(n);return a.raw_url=this.client.getDownloadUrl(i),a.raw_url_headers=this.client.getDownloadHeaders(),a}let s=t.split("/").filter(Boolean),o=s[s.length-1]||"root";try{return await this.client.listFiles(i),{name:o,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{}return{name:o,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}async mkdir(e,t){let{parentId:i,name:n}=await this.client.resolveParentAndName(t);await this.client.mkdir(i,n)}async rename(e,t,i){let n=await this.client.resolveFileId(t);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.client.resolveFileId(t);await this.client.remove(n)}async move(e,t,i,n,s){let o=await this.client.resolveFileId(n),a=n.split("/").filter(Boolean);a.pop();let c=await this.client.resolveFileId("/"+a.join("/")),l=await this.client.resolveFileId(t);await this.client.move(o,c,l)}async copy(e,t,i,n,s){let o=await this.client.resolveFileId(n),a=n.split("/").filter(Boolean).pop()||"copy",c=await this.client.resolveFileId(t);await this.client.copy(o,c,a)}async put(e,t,i){let{parentId:n,name:s}=await this.client.resolveParentAndName(t);await this.client.putFile(n,s,i)}}});function CK(r="Quark"){return r==="UC"?xK:wK}function uD(r,e,t){let i=r.split(";").map(o=>o.trim()).filter(Boolean),n=i.findIndex(o=>{let a=o.indexOf("=");return a!==-1&&o.substring(0,a).trim()===e}),s=`${e}=${t}`;return n!==-1?i[n]=s:i.push(s),i.join("; ")}function fD(r,e){let t=r.split(/,(?=[^;]+=[^;]+)/);for(let i of t){let s=i.split(";")[0].trim(),o=s.indexOf("=");if(o!==-1&&s.substring(0,o).trim()===e)return s.substring(o+1).trim()}return null}function EK(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function BK(r){let e=r.split(".").pop()?.toLowerCase()||"",t=["mp4","mkv","avi","mov","flv","wmv","ts","m2ts","m4v","rmvb","webm"],i=["mp3","flac","aac","wav","ogg","m4a","opus"],n=["jpg","jpeg","png","gif","bmp","webp","heic","tiff"],s=["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","md"];return t.includes(e)?"video":i.includes(e)?"audio":n.includes(e)?"image":s.includes(e)?"doc":"others"}var wK,xK,Eh,AD=j(()=>{"use strict";wK={ua:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch",referer:"https://pan.quark.cn",api:"https://drive-m.quark.cn/1/clouddrive",pr:"ucpro"},xK={ua:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) uc-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch",referer:"https://drive.uc.cn",api:"https://pc-api.uc.cn/1/clouddrive",pr:"UCBrowser"};Eh=class{addition;conf;cookie;onCookieUpdate;constructor(e,t){this.addition=e,this.conf=CK(e.variant||"Quark"),this.cookie=e.cookie||"",this.onCookieUpdate=t}getRootFolderId(){return(this.addition.root_folder_id||"").trim()||"0"}getVariant(){return this.addition.variant||"Quark"}getConf(){return this.conf}getCookie(){return this.cookie}async request(e,t,i,n){let s=new URL(this.conf.api+e);if(s.searchParams.set("pr",this.conf.pr),s.searchParams.set("fr","pc"),i)for(let[u,f]of Object.entries(i))s.searchParams.set(u,f);let o={Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:this.conf.referer,"Content-Type":"application/json","User-Agent":this.conf.ua},a={method:t,headers:o};n!==void 0&&t!=="GET"&&(a.body=JSON.stringify(n));let c=await fetch(s.toString(),a),l=c.headers.get("set-cookie");if(l){let u=fD(l,"__puus");if(u&&(this.cookie=uD(this.cookie,"__puus",u),this.onCookieUpdate?.(this.cookie)),this.addition.variant==="Quark"){let f=fD(l,"__pus");f&&(this.cookie=uD(this.cookie,"__pus",f),this.onCookieUpdate?.(this.cookie))}}let d=await c.json();if(!c.ok||d.status!==void 0&&d.status>=400||d.code!==void 0&&d.code!==0){let u=d.message||d.msg||`HTTP ${c.status}`;throw new Error(`[Quark/UC] API error [${c.status}] ${e}: ${u}`)}return d}async getFiles(e){let t=[],i=1,n=100,s={pdir_fid:e,_size:String(n),_fetch_total:"1",fetch_all_file:"1",fetch_risk_file_name:"1"};if(this.addition.order_by&&this.addition.order_by!=="none"){let o=this.addition.order_direction||"asc";s._sort=`file_type:asc,${this.addition.order_by}:${o}`}for(;;){s._page=String(i);let o=await this.request("/file/sort","GET",s),a=o?.data?.list||[];if(a.length===0)break;for(let l of a)l.file_name=EK(l.file_name),this.addition.only_list_video_file?(!l.file||l.category===1)&&t.push(l):t.push(l);let c=o.metadata?.total??0;if(c>0&&i*n>=c||a.length{"use strict";Be();AD();Bh=class{client;pathFileIdCache=new Map;constructor(e){this.client=new Eh(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFileId(t);return(await this.client.getFiles(i)).map(hD)}async get(e,t){let i=t.split("/").filter(Boolean),n=await this.resolveFileId(t),s=i[i.length-1]||"root",o=(()=>{try{return decodeURIComponent(s)}catch{return s}})(),a="/"+i.slice(0,i.length-1).join("/"),c=await this.resolveFileId(a),d=(await this.client.getFiles(c)).find(h=>h.fid===n||h.file_name===s||h.file_name===o),u="",f;try{let h=await this.client.getDownloadUrl(n,o);u=h.url,f=h.headers}catch(h){console.warn(`[Quark/UC] getDownloadUrl warning for ${s}:`,h.message)}if(d){let h=hD(d);return h.raw_url=u,h.raw_url_headers=f,h}try{return await this.client.getFiles(n),{name:o||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{}return{name:o||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:u,raw_url_headers:f}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFileId(s);await this.client.mkdir(o,n)}async rename(e,t,i){let n=await this.resolveFileId(t);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.resolveFileId(t);await this.client.remove([n])}async move(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.move([o],a)}async copy(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.copy([o],a)}async put(e,t,i){throw new Error("[Quark/UC] Direct put not supported in stateless environment")}async resolveFileId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.client.getRootFolderId();if(this.pathFileIdCache.has(t))return this.pathFileIdCache.get(t);let i=t.split("/"),n=this.client.getRootFolderId();for(let s=0;s{try{return decodeURIComponent(o)}catch{return o}})(),l=(await this.client.getFiles(n)).find(u=>u.file_name===o||u.file_name===a||u.fid===o);if(!l)throw new Error(`[Quark/UC] Path '${o}' not found in folder '${n}'`);n=l.fid;let d="/"+i.slice(0,s+1).join("/");this.pathFileIdCache.set(d,n)}return n}}});var pD,bK,mD,bh,yD=j(()=>{"use strict";pD="https://proapi.115.com/open",bK="https://passportapi.115.com",mD="Mozilla/5.0 115disk/42.0.0.2",bh=class{accessToken;refreshToken;addition;rootId;constructor(e){this.addition=e,this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||"",this.rootId=e.root_folder_id||"0"}getRootFolderId(){return this.rootId}async init(){if(!this.accessToken)throw new Error("[115] access_token is required");await this.getUserInfo()}async request(e,t={},i=pD){let n=`${i}${e}`,o=await(await fetch(n,{method:"POST",headers:{"User-Agent":mD,Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${this.accessToken}`},body:JSON.stringify(t)})).json().catch(()=>({}));if(o?.state===!1||o?.errno){if(o.errno===990001||o.errcode===990001||o.errno===10008)return await this.refreshAccessToken(),this.request(e,t,i);throw new Error(`[115] ${o.error||o.errmsg||"API error"} (${o.errno||o.errcode||""})`)}return o}async getUserInfo(){return this.request("/user/info",{},bK)}async refreshAccessToken(){let e=`${pD}/oauth2/token`,i=await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":mD},body:JSON.stringify({grant_type:"refresh_token",refresh_token:this.refreshToken})})).json().catch(()=>({}));if(i?.access_token)this.accessToken=i.access_token,this.addition.access_token=i.access_token,i.refresh_token&&(this.refreshToken=i.refresh_token,this.addition.refresh_token=i.refresh_token);else throw new Error(`[115] refresh token failed: ${JSON.stringify(i)}`)}async getFiles(e){let t=await this.request("/open/ufile/files",{cid:e,limit:1e3,offset:0,order:this.addition.order_by||"user_utime",asc:this.addition.order_direction==="asc"?1:0,show_dir:1,fc_mix:1});return t?.data&&Array.isArray(t.data)?t.data:t?.files&&Array.isArray(t.files)?t.files.map(i=>({Fid:i.fid??i.id,Fn:i.n??i.file_name??i.name,Fc:String(i.fc??i.category??(i.pid!==void 0&&!i.pid?"0":"1")),FS:Number(i.s??i.size??0),Sha1:i.sha1,Pc:i.pc??i.pick_code,Thumbnail:i.thumb??i.thumbnail,Upt:i.tu??i.upt??i.updated_at,Pid:i.pid??i.cid})):[]}async resolvePathId(e,t){let i=e.split("/").filter(Boolean).join("/");if(!i)return this.rootId;if(t.has(i))return t.get(i);let n=i.split("/"),s=this.rootId;for(let o=0;o{try{return decodeURIComponent(a)}catch{return a}})(),d=(await this.getFiles(s)).find(f=>f.Fn===a||f.Fn===c||f.Fid===a);if(!d)throw new Error(`[115] Path '${a}' not found in '${s}'`);s=d.Fid;let u="/"+n.slice(0,o+1).join("/");t.set(u,s)}return s}async mkdir(e,t){await this.request("/open/ufile/add",{pid:e,cname:t})}async rename(e,t){await this.request("/open/ufile/edit",{fid:e,fname:t})}async move(e,t){await this.request("/open/ufile/move",{pid:e,fid:t,no_dupli:"1"})}async copy(e,t){await this.request("/open/ufile/copy",{pid:e,fid:t,no_dupli:"1"})}async remove(e){await this.request("/open/ufile/delete",{fid:e,ignore_warn:1})}async getDownloadUrl(e){let t=await this.request("/open/ufile/downurl",{pickcode:e}),i=t?.url||t?.data?.url||"";if(!i)throw new Error("[115] empty download url");return i}}});function ID(r){let e=r.Fc==="0",t=r.Upt?new Date(r.Upt*1e3).toISOString():new Date().toISOString();return{name:r.Fn,size:r.FS||0,is_dir:e,modified:t,sign:"",type:X(r.Fn,e),thumb:r.Thumbnail||"",raw_url:""}}var vh,wD=j(()=>{"use strict";Be();yD();vh=class{client;pathCache=new Map;constructor(e){this.client=new bh(e)}async init(){await this.client.init()}async list(e,t){let i=await this.client.resolvePathId(t,this.pathCache);return(await this.client.getFiles(i)).map(ID)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o="/"+i.slice(0,-1).join("/"),a=await this.client.resolvePathId(o,this.pathCache),l=(await this.client.getFiles(a)).find(d=>d.Fn===n||d.Fn===s||d.Fid===n);if(l){let d=ID(l);if(!d.is_dir&&l.Pc)try{let u=await this.client.getDownloadUrl(l.Pc);d.raw_url=u}catch(u){d.raw_url_error=u.message}return d}try{let d=await this.client.resolvePathId(t,this.pathCache);return await this.client.getFiles(d),{name:s||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.client.resolvePathId(s,this.pathCache);await this.client.mkdir(o,n)}async rename(e,t,i){let n=await this.client.resolvePathId(t,this.pathCache);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.client.resolvePathId(t,this.pathCache);await this.client.remove([n])}async move(e,t,i,n,s){let o=await this.client.resolvePathId(n,this.pathCache),a=await this.client.resolvePathId(t,this.pathCache);await this.client.move(a,[o])}async copy(e,t,i,n,s){let o=await this.client.resolvePathId(n,this.pathCache),a=await this.client.resolvePathId(t,this.pathCache);await this.client.copy(a,[o])}async put(e,t,i){throw new Error("[115] Direct put not supported in stateless environment")}}});var kh,xD=j(()=>{"use strict";kh=class{address;addition;accessToken="";constructor(e){this.addition=e,this.address=(e.address||"").replace(/\/+$/,""),this.accessToken=e.access_token||""}async init(){if(!this.address)throw new Error("[Cloudreve] address is required");this.addition.username&&this.addition.password?await this.login():this.addition.refresh_token&&await this.refreshToken()}async login(){let t=await(await fetch(`${this.address}/api/v4/session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:this.addition.username,password:this.addition.password})})).json().catch(()=>({}));if(t?.token)this.accessToken=t.token,t.refresh_token&&(this.addition.refresh_token=t.refresh_token);else throw new Error("[Cloudreve] login failed")}async refreshToken(){let t=await(await fetch(`${this.address}/api/v4/session/renew`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.addition.refresh_token}`}})).json().catch(()=>({}));t?.token&&(this.accessToken=t.token)}async request(e,t,i,n=!1){let s={Authorization:`Bearer ${this.accessToken}`,"Content-Type":"application/json"};this.addition.custom_ua&&(s["User-Agent"]=this.addition.custom_ua);let o={method:e,headers:s};i&&(o.body=JSON.stringify(i));let a=await fetch(`${this.address}/api/v4${t}`,o);if(a.status===401&&!n)return this.addition.refresh_token?await this.refreshToken():this.addition.username&&await this.login(),this.request(e,t,i,!0);if(e==="DELETE"&&a.ok)return{};let c=await a.json().catch(()=>({}));if(a.status>=400)throw new Error(`[Cloudreve] ${c?.msg||c?.message||`HTTP ${a.status}`}`);return c}async listFiles(e){let t=[],i="",n=e==="/"?"/":e;do{let s={page_size:"100",uri:n,order_by:this.addition.order_by||"name",order_direction:this.addition.order_direction||"asc",page:"0"};i&&(s.next_page_token=i);let o=new URLSearchParams(s).toString(),a=await this.request("GET",`/file?${o}`);a?.files&&t.push(...a.files),i=a?.pagination?.next_token||""}while(i);return t}async getDownloadUrl(e){let i=(await this.request("POST","/file/url",{uris:[e],download:!0}))?.urls?.[0]?.url||"";if(!i)throw new Error("[Cloudreve] empty download url");return i}async mkdir(e,t){let i=`${e.replace(/\/+$/,"")}/${t}`;await this.request("POST","/file/create",{type:"folder",uri:i,error_on_conflict:!0})}async rename(e,t){let i=e.lastIndexOf("/"),s=`${i>=0?e.slice(0,i+1):"/"}${t}`;await this.request("POST","/file/rename",{uris:[e],new_uri:s})}async move(e,t,i){await this.request("POST","/file/move",{uris:e,dst:t,copy:i})}async remove(e){await this.request("DELETE","/file",{uris:e,unlink:!1,skip_soft_delete:!0})}}});function CD(r){let e=r.type===1;return{name:r.name,size:r.size||0,is_dir:e,modified:r.updated_at||new Date().toISOString(),sign:"",type:X(r.name,e),raw_url:""}}function Ps(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}var Sh,ED=j(()=>{"use strict";Be();xD();Sh=class{client;constructor(e){this.client=new kh(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.listFiles(Ps(t))).map(CD)}async get(e,t){let i=Ps(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.listFiles(o==="//"?"/":o)).find(l=>l.name===s||l.path===i);if(c){let l=CD(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(i)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{let a=await this.client.listFiles(i);return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let n=Ps(t).split("/").filter(Boolean),s=n.pop()||"new_folder",o="/"+n.join("/");await this.client.mkdir(o==="//"?"/":o,s)}async rename(e,t,i){await this.client.rename(Ps(t),i)}async remove(e,t,i){await this.client.remove([Ps(t)])}async move(e,t,i,n,s){await this.client.move([Ps(n)],Ps(t),!1)}async copy(e,t,i,n,s){await this.client.move([Ps(n)],Ps(t),!0)}async put(e,t,i){throw new Error("[Cloudreve] Direct put not supported in stateless environment")}}});var vK,Dh,BD=j(()=>{"use strict";vK="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Dh=class{addition;address;cookie;persistCookie;constructor(e,t){this.addition=e,this.address=(e.address||"").replace(/\/+$/,""),this.cookie=e.cookie||"",this.persistCookie=t}async init(){if(!this.address)throw new Error("[Cloudreve] address is required");this.cookie||await this.login()}getCookie(){return this.cookie}getUA(){return this.addition.custom_ua||vK}async login(){if(!this.addition.username||!this.addition.password)throw new Error("[Cloudreve] username/password or cookie is required");let e=await fetch(`${this.address}/api/v3/user/session`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.getUA()},body:JSON.stringify({username:this.addition.username,Password:this.addition.password,captchaCode:""})}),t=await e.json().catch(()=>({}));if(t.code!==0)throw new Error(`[Cloudreve] login failed: ${t.msg}`);let i=this.extractSessionCookie(e);if(!i)throw new Error("[Cloudreve] login failed: no session cookie");this.cookie=i,this.persistCookie&&await this.persistCookie(this.cookie)}extractSessionCookie(e){let t=typeof e.headers.getSetCookie=="function"?e.headers.getSetCookie():[];if(Array.isArray(t)){for(let s of t)if(s&&s.includes("cloudreve-session="))return s.split(";")[0].split("=")[1]}let i=e.headers.get("set-cookie")||"",n=/cloudreve-session=([^;]+)/.exec(i);return n?n[1]:""}async request(e,t,i,n=!1){let s={Cookie:`cloudreve-session=${this.cookie}`,Accept:"application/json, text/plain, */*","User-Agent":this.getUA()},o={method:e,headers:s};i!==void 0&&(s["Content-Type"]="application/json",o.body=JSON.stringify(i));let a=await fetch(`${this.address}/api/v3${t}`,o),c=await a.json().catch(()=>({}));if(c.code===401&&t!=="/user/session"&&!n&&this.addition.username&&this.addition.password)return await this.login(),this.request(e,t,i,!0);if(c.code!==0)throw new Error(`[Cloudreve] ${c.msg||`HTTP ${a.status}`}`);let l=this.extractSessionCookie(a);return l&&(this.cookie=l),c.data}async listFiles(e){return(await this.request("GET",`/directory${e}`))?.objects||[]}async getDownloadUrl(e){let t=await this.request("PUT",`/file/download/${e}`);if(!t)throw new Error("[Cloudreve] empty download url");return t.startsWith("/api")?this.address+t:t}downloadHeaders(){return{Referer:this.address,"User-Agent":this.getUA()}}async mkdir(e){await this.request("PUT","/directory",{path:e})}async move(e,t,i){await this.request("PATCH","/object",{action:"move",src_dir:e,dst:t,src:i})}async rename(e,t){await this.request("PATCH","/object/rename",{action:"rename",new_name:t,src:e})}async copy(e,t,i){await this.request("POST","/object/copy",{src_dir:e,dst:t,src:i})}async remove(e){await this.request("DELETE","/object",e)}}});function bD(r){let e=r.type==="dir";return{name:r.name,size:r.size||0,is_dir:e,modified:r.date||r.create_date||new Date().toISOString(),sign:r.id,type:X(r.name,e),raw_url:""}}function Sl(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}var Qh,vD=j(()=>{"use strict";Be();BD();Qh=class{client;constructor(e,t){this.client=new Dh(e,t)}async init(){await this.client.init()}async list(e,t){return(await this.client.listFiles(Sl(t))).map(bD)}async get(e,t){let n=Sl(t).split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.listFiles(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l=bD(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.id),l.raw_url_headers=this.client.downloadHeaders()}catch(d){l.raw_url_error=d.message}return l}}catch{}return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){await this.client.mkdir(Sl(t))}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.src,i)}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.src)}async move(e,t,i,n,s){let o=await this.resolveEntry(n),c="/"+n.split("/").filter(Boolean).slice(0,-1).join("/");await this.client.move(c,Sl(t),o.src)}async copy(e,t,i,n,s){let o=await this.resolveEntry(n),c="/"+n.split("/").filter(Boolean).slice(0,-1).join("/");await this.client.copy(c,Sl(t),o.src)}async put(){throw new Error("[Cloudreve] Direct put not supported in stateless environment")}async resolveEntry(e){let i=Sl(e).split("/").filter(Boolean),n=i[i.length-1],s="/"+i.slice(0,-1).join("/"),a=(await this.client.listFiles(s==="//"?"/":s)).find(d=>d.name===n);if(!a)throw new Error(`[Cloudreve] '${n}' not found`);let c=a.type==="dir";return{src:c?{dirs:[a.id],items:[]}:{dirs:[],items:[a.id]},isDir:c}}}});var _h,kD=j(()=>{"use strict";_h=class{url;addition;token="";constructor(e){this.addition=e,this.url=(e.url||"").replace(/\/+$/,""),this.token=e.token||""}async init(){if(!this.url)throw new Error("[OpenList] url is required");this.addition.username&&this.addition.password&&await this.login()}async login(){let t=await(await fetch(`${this.url}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:this.addition.username,password:this.addition.password})})).json().catch(()=>({}));if(t?.data?.token)this.token=t.data.token;else throw new Error("[OpenList] login failed")}async request(e,t="POST",i){let n={"Content-Type":"application/json"};this.token&&(n.Authorization=this.token),this.addition.meta_password&&(n["Meta-Password"]=this.addition.meta_password);let s={method:t,headers:n};return i&&(s.body=JSON.stringify(i)),await(await fetch(`${this.url}${e}`,s)).json()}async list(e){let t=await this.request("/api/fs/list","POST",{path:e,page:1,per_page:0});if(t.code!==200)throw new Error(`[OpenList] ${t.message}`);return t.data?.content||[]}async get(e){let t=await this.request("/api/fs/get","POST",{path:e});if(t.code!==200)throw new Error(`[OpenList] ${t.message}`);return t.data}async mkdir(e){let t=await this.request("/api/fs/mkdir","POST",{path:e});if(t.code!==200)throw new Error(`[OpenList] ${t.message}`)}async rename(e,t){let i=await this.request("/api/fs/rename","POST",{path:e,name:t});if(i.code!==200)throw new Error(`[OpenList] ${i.message}`)}async move(e,t,i){let n=await this.request("/api/fs/move","POST",{src_dir:e,dst_dir:t,names:i});if(n.code!==200)throw new Error(`[OpenList] ${n.message}`)}async copy(e,t,i){let n=await this.request("/api/fs/copy","POST",{src_dir:e,dst_dir:t,names:i});if(n.code!==200)throw new Error(`[OpenList] ${n.message}`)}async remove(e,t){let i=await this.request("/api/fs/remove","POST",{dir:e,names:t});if(i.code!==200)throw new Error(`[OpenList] ${i.message}`)}}});var Fh,SD=j(()=>{"use strict";Be();kD();Fh=class{client;constructor(e){this.client=new _h(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.list(t)).map(n=>({name:n.name,size:n.size||0,is_dir:!!n.is_dir,modified:n.modified||new Date().toISOString(),sign:n.sign||"",type:X(n.name,!!n.is_dir),thumb:n.thumb||"",raw_url:n.raw_url||""}))}async get(e,t){try{let i=await this.client.get(t);return{name:i.name,size:i.size||0,is_dir:!!i.is_dir,modified:i.modified||new Date().toISOString(),sign:i.sign||"",type:X(i.name,!!i.is_dir),raw_url:i.raw_url||""}}catch{try{await this.client.list(t);let i=t.split("/").filter(Boolean);return{name:i[i.length-1]||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{let i=t.split("/").filter(Boolean);return{name:i[i.length-1]||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}}async mkdir(e,t){await this.client.mkdir(t)}async rename(e,t,i){await this.client.rename(t,i)}async remove(e,t,i){let n=t.split("/").filter(Boolean),s="/"+n.slice(0,-1).join("/");await this.client.remove(s,i.length?i:[n[n.length-1]])}async move(e,t,i,n,s){await this.client.move(e,t,i)}async copy(e,t,i,n,s){await this.client.copy(e,t,i)}async put(e,t,i){throw new Error("[OpenList] Direct put not supported in stateless environment")}}});var Ph,DD=j(()=>{"use strict";Ph=class{url;sid;pwd;constructor(e){this.url=(e.url||"").replace(/\/+$/,""),this.sid=e.sid||"",this.pwd=e.pwd||""}init(){if(!this.url)throw new Error("[OpenListShare] url is required");if(!this.sid)throw new Error("[OpenListShare] sid is required")}async request(e,t="POST",i){return await(await fetch(`${this.url}${e}`,{method:t,headers:{"Content-Type":"application/json"},body:i?JSON.stringify(i):void 0})).json()}sharePath(e){return"/@s/"+this.sid+(e==="/"?"":e)}async list(e){let t=await this.request("/api/fs/list","POST",{path:this.sharePath(e),password:this.pwd,refresh:!1,page:1,per_page:0});if(t.code!==200)throw new Error(`[OpenListShare] ${t.message}`);return t.data?.content||[]}downloadUrl(e){let t="/"+this.sid+e;return`${this.url}/sd${t}?pwd=${encodeURIComponent(this.pwd)}`}}});function QD(r){return{name:r.name,size:r.size||0,is_dir:r.is_dir,modified:r.modified||new Date().toISOString(),sign:r.sign||"",type:X(r.name,r.is_dir),thumb:r.thumb||"",raw_url:""}}function _D(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}var Th,FD=j(()=>{"use strict";Be();DD();Th=class{client;constructor(e){this.client=new Ph(e)}async init(){this.client.init()}async list(e,t){return(await this.client.list(_D(t))).map(QD)}async get(e,t){let i=_D(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.list(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l=QD(c);return l.is_dir||(l.raw_url=this.client.downloadUrl(i)),l}}catch{}return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(){throw new Error("[OpenListShare] read-only share, mkdir not supported")}async rename(){throw new Error("[OpenListShare] read-only share, rename not supported")}async remove(){throw new Error("[OpenListShare] read-only share, remove not supported")}async move(){throw new Error("[OpenListShare] read-only share, move not supported")}async copy(){throw new Error("[OpenListShare] read-only share, copy not supported")}async put(){throw new Error("[OpenListShare] read-only share, upload not supported")}}});var Uh,PD=j(()=>{"use strict";Uh=class{url;token;constructor(e){this.url=(e.url||"").replace(/\/+$/,""),this.token=e.access_token||""}async init(){if(!this.url)throw new Error("[TelDrive] url is required");if(!this.token)throw new Error("[TelDrive] access_token is required")}async request(e,t="GET",i){let n={Authorization:`Bearer ${this.token}`,"Content-Type":"application/json"},s={method:t,headers:n};i&&(s.body=JSON.stringify(i));let o=await fetch(`${this.url}${e}`,s);if(t==="DELETE"&&o.ok)return{};let a=await o.json().catch(()=>({}));if(o.status>=400)throw new Error(`[TelDrive] ${a?.message||`HTTP ${o.status}`}`);return a}async listFiles(e){let t=await this.request(`/api/files?path=${encodeURIComponent(e)}`);return Array.isArray(t)?t:t?.files||[]}async mkdir(e){await this.request("/api/files/mkdir","POST",{path:e})}async move(e,t){await this.request("/api/files/move","POST",{ids:e,destination:t})}async remove(e){await this.request(`/api/files/${e}`,"DELETE")}downloadUrl(e){return`${this.url}/api/files/${e}`}downloadHeaders(){return{Authorization:`Bearer ${this.token}`}}}});function TD(r){let e=r.type==="folder";return{name:r.name,size:r.size||0,is_dir:e,modified:r.updatedAt||r.createdAt||new Date().toISOString(),sign:"",type:X(r.name,e),raw_url:""}}var Rh,UD=j(()=>{"use strict";Be();PD();Rh=class{client;pathCache=new Map;constructor(e){this.client=new Uh(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.listFiles(t)).map(TD)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let a=(await this.client.listFiles(s==="//"?"/":s)).find(c=>c.name===n);if(a){let c=TD(a);return c.is_dir||(c.raw_url=this.client.downloadUrl(a.id),c.raw_url_headers=this.client.downloadHeaders()),c}}catch{}try{return await this.client.listFiles(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){await this.client.mkdir(t)}async rename(e,t,i){throw new Error("[TelDrive] rename not supported")}async remove(e,t,i){let n=await this.resolveFileId(t);await this.client.remove(n)}async move(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.move([o],a)}async copy(e,t,i,n,s){throw new Error("[TelDrive] copy not supported")}async put(e,t,i){throw new Error("[TelDrive] Direct put not supported in stateless environment")}async resolveFileId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"/";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="",s="/";for(let o=0;ol.name===i[o]);if(!c)throw new Error(`[TelDrive] Path '${i[o]}' not found`);s=c.id,n=n?`${n}/${i[o]}`:`/${i[o]}`,this.pathCache.set(n,s)}return s}}});var kK,Lu,Nh,RD=j(()=>{"use strict";kK="https://www.mediafire.com/api/1.5",Lu="https://www.mediafire.com",Nh=class{cookie;sessionToken;chunkSize;orderBy;orderDirection;constructor(e){this.cookie=e.cookie||"",this.sessionToken=e.session_token||"",this.chunkSize=e.chunk_size||200,this.orderBy=e.order_by||"name",this.orderDirection=e.order_direction||"asc"}async init(){if(!this.cookie)throw new Error("[MediaFire] cookie is required");this.sessionToken||await this.getSessionToken()}async postForm(e,t){let i=new URLSearchParams({session_token:this.sessionToken,response_format:"json",...t});return await(await fetch(`${kK}${e}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Cookie:this.cookie,"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)",Origin:Lu,Referer:`${Lu}/`},body:i.toString()})).json().catch(()=>({}))}async getSessionToken(){let i=(await(await fetch(`${Lu}/application/get_session_token.php`,{method:"POST",headers:{Cookie:this.cookie,Origin:Lu,Referer:`${Lu}/`,"Content-Length":"0"}})).json().catch(()=>({})))?.response?.session_token;if(!i)throw new Error("[MediaFire] failed to get session token from cookie");this.sessionToken=i,this.addition_session_token=i}addition_session_token="";checkResult(e){if(e&&e!=="Success")throw new Error(`[MediaFire] API error: ${e}`)}async list(e){let t=[],i=1,n=!0;for(;n;){let s=await this.postForm("/folder/get_content.php",{folder_key:e,content_type:"folders",chunk:String(i),chunk_size:String(this.chunkSize),details:"yes",order_direction:this.orderDirection,order_by:this.orderBy,filter:""}),o=await this.postForm("/folder/get_content.php",{folder_key:e,content_type:"files",chunk:String(i),chunk_size:String(this.chunkSize),details:"yes",order_direction:this.orderDirection,order_by:this.orderBy,filter:""}),a=s.response?.folder_content?.folders||[],c=o.response?.folder_content?.files||[];for(let l of a)t.push({id:l.folderkey,name:l.name,size:0,isDir:!0,created:l.created});for(let l of c)t.push({id:l.quickkey,name:l.filename,size:parseInt(l.size,10)||0,isDir:!1,created:l.created});n=s.response?.folder_content?.more_chunks==="yes"||o.response?.folder_content?.more_chunks==="yes",i++}return t}async getDownloadUrl(e){let t=await this.postForm("/file/get_links.php",{quick_key:e,link_type:"direct_download"});this.checkResult(t.response?.result);let i=t.response?.links?.[0]?.direct_download||t.response?.links?.[0]?.normal_download;if(!i)throw new Error("[MediaFire] no download link found");return i}async mkdir(e,t){let i=await this.postForm("/folder/create.php",{parent_key:e,foldername:t});return this.checkResult(i.response?.result),i.response?.folder_key||""}async rename(e,t,i){if(i){let n=await this.postForm("/folder/update.php",{folder_key:e,foldername:t});this.checkResult(n.response?.result)}else{let n=await this.postForm("/file/update.php",{quick_key:e,filename:t});this.checkResult(n.response?.result)}}async move(e,t,i){if(i){let n=await this.postForm("/folder/move.php",{folder_key_src:e,folder_key_dst:t});this.checkResult(n.response?.result)}else{let n=await this.postForm("/file/move.php",{quick_key:e,folder_key:t});this.checkResult(n.response?.result)}}async copy(e,t,i){if(i){let n=await this.postForm("/folder/copy.php",{folder_key_src:e,folder_key_dst:t});this.checkResult(n.response?.result)}else{let n=await this.postForm("/file/copy.php",{quick_key:e,folder_key:t});this.checkResult(n.response?.result)}}async remove(e,t){if(t){let i=await this.postForm("/folder/delete.php",{folder_key:e});this.checkResult(i.response?.result)}else{let i=await this.postForm("/file/delete.php",{quick_key:e});this.checkResult(i.response?.result)}}}});var qh,ND=j(()=>{"use strict";Be();RD();qh=class{client;pathCache=new Map;constructor(e){this.client=new Nh(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFolderId(t);return(await this.client.list(i)).map(s=>({name:s.name,size:s.size,is_dir:s.isDir,modified:s.created?new Date(s.created).toISOString():new Date().toISOString(),sign:"",type:X(s.name,s.isDir),raw_url:""}))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveFolderId(s),c=(await this.client.list(o)).find(l=>l.name===n);if(c){let l={name:c.name,size:c.size,is_dir:c.isDir,modified:c.created?new Date(c.created).toISOString():new Date().toISOString(),sign:"",type:X(c.name,c.isDir),raw_url:""};if(!c.isDir)try{l.raw_url=await this.client.getDownloadUrl(c.id)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveFolderId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);await this.client.rename(n,i,s)}async remove(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);await this.client.remove(n,s)}async move(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);await this.client.move(o,c,a)}async copy(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);await this.client.copy(o,c,a)}async put(e,t,i){throw new Error("[MediaFire] Direct put not supported in stateless environment")}async resolveFolderId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="";for(let s=0;sl.isDir&&l.name===i[s]);if(!a)throw new Error(`[MediaFire] Folder '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveFolderId(n),a=(await this.client.list(s)).find(c=>c.name===i);if(!a)throw new Error(`[MediaFire] '${i}' not found`);return{id:a.id,isDir:a.isDir}}}});function Lo(...r){return"/"+r.filter(Boolean).map(t=>t.replace(/^\/+|\/+$/g,"")).filter(Boolean).join("/")}var SK,Oh,qD=j(()=>{"use strict";SK="https://api.github.com",Oh=class{addition;mounts;constructor(e){this.addition=e,this.mounts=this.parseMounts(e.repo_structure||"")}parseMounts(e){let t=[];for(let i of e.split(";")){let n=i.trim();if(!n)continue;let s=n.indexOf(":");s>0&&n.slice(0,s).includes("/");let o="/",a=n;s>0&&!n.slice(s+1).startsWith("/")&&!n.slice(0,s).includes(".")&&(o="/"+n.slice(0,s).replace(/^\/+|\/+$/g,""),a=n.slice(s+1)),t.push({point:o==="/"?"/":o,repo:a})}return t}async init(){if(this.mounts.length===0)throw new Error("[GitHub Releases] repo_structure is required (format: [path:]org/repo)")}async get(e){let t={Accept:"application/vnd.github+json","User-Agent":"OpenList-TSWorker"};this.addition.token&&(t.Authorization=`Bearer ${this.addition.token}`);let i=await fetch(`${SK}${e}`,{headers:t});if(i.status===404)return null;if(i.status>=400)throw new Error(`[GitHub Releases] HTTP ${i.status}`);return await i.json().catch(()=>null)}proxy(e){let t=this.addition.gh_proxy||"";return!t||e.startsWith("http")?e:t+e}mountForPath(e){let t=e.startsWith("/")?e:"/"+e,i=null;for(let n of this.mounts){let s=n.point==="/"?"/":n.point;(t===s||t.startsWith(s+"/"))&&(!i||s.length>(i.point==="/"?0:i.point.length))&&(i=n)}return i}async latestRelease(e){return this.get(`/repos/${e}/releases/latest`)}async allReleases(e){return await this.get(`/repos/${e}/releases`)||[]}async repoFiles(e){return await this.get(`/repos/${e}/contents`)||[]}async list(e){let t=this.mountForPath(e);if(!t)return[];let i=this.relPath(t,e),n=[];if(i===""&&e==="/"){for(let c of this.mounts)n.push({path:c.point,name:c.point==="/"?c.repo:c.point.split("/").filter(Boolean).pop()||c.repo,size:0,isDir:!0,modified:new Date().toISOString(),url:""});return n}let s=this.addition.show_all_version;if(i===""){let c=await this.latestRelease(t.repo);if(c){for(let l of c.assets)n.push({path:Lo(t.point,l.name),name:l.name,size:l.size,isDir:!1,modified:l.updated_at||l.created_at||new Date().toISOString(),url:this.proxy(l.browser_download_url)});this.addition.show_source_code&&(n.push({path:Lo(t.point,"Source code (zip)"),name:"Source code (zip)",size:1,isDir:!1,modified:c.created_at,url:this.proxy(c.zipball_url)}),n.push({path:Lo(t.point,"Source code (tar.gz)"),name:"Source code (tar.gz)",size:1,isDir:!1,modified:c.created_at,url:this.proxy(c.tarball_url)}))}if(s){let l=await this.allReleases(t.repo);for(let d of l)n.push({path:Lo(t.point,d.tag_name),name:d.tag_name,size:0,isDir:!0,modified:d.published_at||d.created_at,url:d.html_url})}if(this.addition.show_readme!==!1){let l=await this.repoFiles(t.repo);for(let d of l)(d.name.toLowerCase().endsWith(".md")||d.name.toUpperCase().startsWith("LICENSE"))&&n.push({path:Lo(t.point,d.name),name:d.name,size:d.size,isDir:!1,modified:"1970-01-01T00:00:00Z",url:this.proxy(d.download_url)})}return n}let a=(await this.allReleases(t.repo)).find(c=>c.tag_name===i.split("/")[0]);if(a){for(let c of a.assets)n.push({path:Lo(t.point,a.tag_name,c.name),name:c.name,size:c.size,isDir:!1,modified:c.updated_at||c.created_at||new Date().toISOString(),url:this.proxy(c.browser_download_url)});this.addition.show_source_code&&(n.push({path:Lo(t.point,"Source code (zip)"),name:"Source code (zip)",size:1,isDir:!1,modified:a.created_at,url:this.proxy(a.zipball_url)}),n.push({path:Lo(t.point,"Source code (tar.gz)"),name:"Source code (tar.gz)",size:1,isDir:!1,modified:a.created_at,url:this.proxy(a.tarball_url)}))}return n}async getDownloadUrl(e){let t=this.mountForPath(e);if(!t)return"";let n=this.relPath(t,e).split("/").pop()||"",s=await this.latestRelease(t.repo);if(s){let l=s.assets.find(d=>d.name===n);if(l)return this.proxy(l.browser_download_url)}let o=await this.allReleases(t.repo);for(let l of o){let d=l.assets.find(u=>u.name===n);if(d)return this.proxy(d.browser_download_url)}let c=(await this.repoFiles(t.repo)).find(l=>l.name===n);return c?this.proxy(c.download_url):""}relPath(e,t){let i=e.point==="/"?"/":e.point,n=t.startsWith("/")?t:"/"+t;return i==="/"?n.replace(/^\/+/,""):n.slice(i.length).replace(/^\/+/,"")}}});var Mh,OD=j(()=>{"use strict";Be();qD();Mh=class{client;constructor(e){this.client=new Oh(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.list(t)).map(n=>({name:n.name,size:n.size,is_dir:n.isDir,modified:n.modified||new Date().toISOString(),sign:"",type:X(n.name,n.isDir),raw_url:n.url||""}))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=await this.client.list(t);if(s.length>0||t==="/")return!s.find(c=>c.isDir&&c.name===n)&&s.some(c=>!c.isDir),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let o=await this.client.getDownloadUrl(t);return o?{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:o}:{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(){throw new Error("[GitHub Releases] read-only storage")}async rename(){throw new Error("[GitHub Releases] read-only storage")}async remove(){throw new Error("[GitHub Releases] read-only storage")}async move(){throw new Error("[GitHub Releases] read-only storage")}async copy(){throw new Error("[GitHub Releases] read-only storage")}async put(){throw new Error("[GitHub Releases] read-only storage")}}});var DK,QK,Lh,MD=j(()=>{"use strict";DK="https://api.cnb.cool",QK="https://cnb.cool",Lh=class{repo;token;useTagName;constructor(e){this.repo=e.repo||"",this.token=e.token||"",this.useTagName=!!e.use_tag_name}async init(){if(!this.repo)throw new Error("[CNB Releases] repo is required");if(!this.token)throw new Error("[CNB Releases] token is required")}async request(e,t,i,n=!1){let s={Accept:"application/json",Authorization:`Bearer ${this.token}`},o={method:e,headers:s};i!==void 0&&(n?(o.body=new URLSearchParams(i).toString(),s["Content-Type"]="application/x-www-form-urlencoded"):(o.body=JSON.stringify(i),s["Content-Type"]="application/json"));let a=await fetch(`${DK}${t}`,o);if(a.status!==200&&a.status!==201&&a.status!==204)throw new Error(`[CNB Releases] ${a.status} ${await a.text().catch(()=>"")}`);return a.status===204?{}:await a.json().catch(()=>({}))}async listReleases(){return this.request("GET",`/${this.repo}/-/releases`)}async getRelease(e){return this.request("GET",`/${this.repo}/-/releases/${e}`)}releaseName(e){return this.useTagName?e.tag_name:e.name}createRelease(e,t){return this.request("POST",`/${this.repo}/-/releases`,{name:e,tag_name:e,target_commitish:t||"main"})}renameRelease(e,t){return this.request("PATCH",`/${this.repo}/-/releases/${e}`,{name:t},!0)}deleteRelease(e){return this.request("DELETE",`/${this.repo}/-/releases/${e}`)}deleteAsset(e,t){return this.request("DELETE",`/${this.repo}/-/releases/${e}/assets/${t}`)}assetDownloadUrl(e){return`${QK}${e.path}`}}});var Hh,LD=j(()=>{"use strict";Be();MD();Hh=class{client;addition;constructor(e){this.addition=e,this.client=new Lh(e)}async init(){await this.client.init()}async list(e,t){let i=t.split("/").filter(Boolean).join("/");if(!i)return(await this.client.listReleases()).map(a=>({name:this.client.releaseName(a),size:a.assets.reduce((c,l)=>c+l.size,0),is_dir:!0,modified:a.updated_at||a.created_at||new Date().toISOString(),sign:a.id,type:1,raw_url:""}));let n=i.split("/")[0];return(await this.client.getRelease(n)).assets.map(o=>({name:o.name,size:o.size,is_dir:!1,modified:o.updated_at||o.created_at||new Date().toISOString(),sign:o.id,type:X(o.name,!1),raw_url:this.client.assetDownloadUrl(o)}))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=i.join("/");if(i.length===1)try{let o=await this.client.getRelease(i[0]);return{name:this.client.releaseName(o),size:o.assets.reduce((a,c)=>a+c.size,0),is_dir:!0,modified:o.updated_at||o.created_at||new Date().toISOString(),sign:o.id,type:1,raw_url:""}}catch{}if(i.length===2){let a=(await this.client.getRelease(i[0])).assets.find(c=>c.name===i[1]);if(a)return{name:a.name,size:a.size,is_dir:!1,modified:a.updated_at||a.created_at||new Date().toISOString(),sign:a.id,type:X(a.name,!1),raw_url:this.client.assetDownloadUrl(a)}}return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean);if(i.length===1){await this.client.createRelease(i[0],this.addition.default_branch||"main");return}throw new Error("[CNB Releases] only supports creating releases at root")}async rename(e,t,i){let n=t.split("/").filter(Boolean);if(n.length===1&&!this.addition.use_tag_name){await this.client.renameRelease(n[0],i);return}throw new Error("[CNB Releases] only release name can be renamed")}async remove(e,t,i){let n=t.split("/").filter(Boolean);if(n.length===1){await this.client.deleteRelease(n[0]);return}if(n.length===2){await this.client.deleteAsset(n[0],n[1]);return}throw new Error("[CNB Releases] invalid path")}async move(){throw new Error("[CNB Releases] move not supported")}async copy(){throw new Error("[CNB Releases] copy not supported")}async put(){throw new Error("[CNB Releases] asset upload not supported in stateless environment")}}});var Kh,HD=j(()=>{"use strict";Kh=class{address;addition;authorization="";constructor(e){this.addition=e,this.address=(e.address||"").replace(/\/+$/,"")}async init(){if(!this.address)throw new Error("[KodBox] address is required");await this.getToken()}async getToken(){let e=new URLSearchParams({name:this.addition.username||"",password:this.addition.password||""}),i=await(await fetch(`${this.address}/?user/index/loginSubmit`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json().catch(()=>({code:!1}));if(i.code===!1)throw new Error(`[KodBox] login failed: ${JSON.stringify(i.data||i)}`);this.authorization=String(i.info||"")}async request(e,t){let i=new URLSearchParams({accessToken:this.authorization,...t}),s=await(await fetch(`${this.address}${e}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString(),redirect:"follow"})).json().catch(()=>({code:!1}));if(s.code==="10001")return await this.getToken(),this.request(e,t);if(s.code===!1)throw new Error(`[KodBox] ${s.data||"request failed"}`);return s}async list(e){let i=(await this.request("/?explorer/list/path",{path:e})).data;return i?[...i.folderList||[],...i.fileList||[]]:[]}downloadUrl(e){return`${this.address}/?explorer/index/fileOut&path=${encodeURIComponent(e)}&download=1&accessToken=${encodeURIComponent(this.authorization)}`}async mkdir(e){await this.request("/?explorer/index/mkdir",{path:e})}async rename(e,t){await this.request("/?explorer/index/pathRename",{path:e,newName:t})}async move(e,t,i){await this.request("/?explorer/index/pathCuteTo",{dataArr:JSON.stringify([{path:e,name:t}]),path:i})}async copy(e,t,i){await this.request("/?explorer/index/pathCopyTo",{dataArr:JSON.stringify([{path:e,name:t}]),path:i})}async remove(e,t){await this.request("/?explorer/index/pathDelete",{dataArr:JSON.stringify([{path:e,name:t}]),shiftDelete:"1"})}async put(e,t,i){let n=new FormData;n.append("accessToken",this.authorization),n.append("path",e),n.append("file",new Blob([i]),t);let o=await(await fetch(`${this.address}/?explorer/upload/fileUpload`,{method:"POST",body:n})).json().catch(()=>({code:!1}));if(o.code===!1)throw new Error(`[KodBox] ${o.data||"upload failed"}`)}}});var Gh,KD=j(()=>{"use strict";Be();HD();Gh=class{client;addition;constructor(e){this.addition=e,this.client=new Kh(e)}async init(){await this.client.init()}fullPath(e){let t=(this.addition.root_path||"").replace(/^\/+|\/+$/g,""),i=e.replace(/^\/+/,"");return t?"/"+(i?`${t}/${i}`:t):"/"+i}async list(e,t){return(await this.client.list(this.fullPath(t))).map(n=>({name:n.name,size:n.size||0,is_dir:n.type==="folder",modified:n.modifyTime?new Date(n.modifyTime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(n.name,n.type==="folder"),raw_url:""}))}async get(e,t){let i=this.fullPath(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.list(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l={name:c.name,size:c.size||0,is_dir:c.type==="folder",modified:c.modifyTime?new Date(c.modifyTime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(c.name,c.type==="folder"),raw_url:""};return l.is_dir||(l.raw_url=this.client.downloadUrl(c.path||i)),l}}catch{}try{return await this.client.list(i),{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){await this.client.mkdir(this.fullPath(t))}async rename(e,t,i){await this.client.rename(this.fullPath(t),i)}async remove(e,t,i){let s=this.fullPath(t).split("/").filter(Boolean),o=s[s.length-1],a=i.length?i:[o];for(let c of a){let l=s.length>1?`/${s.slice(0,-1).join("/")}/${c}`:`/${c}`;await this.client.remove(l,c)}}async move(e,t,i,n,s){let a=this.fullPath(n).split("/").filter(Boolean),c=a[a.length-1],l=this.fullPath(t),d=i.length?i:[c];for(let u of d){let f=a.length>1?`/${a.slice(0,-1).join("/")}/${u}`:`/${u}`;await this.client.move(f,u,l)}}async copy(e,t,i,n,s){let a=this.fullPath(n).split("/").filter(Boolean),c=a[a.length-1],l=this.fullPath(t),d=i.length?i:[c];for(let u of d){let f=a.length>1?`/${a.slice(0,-1).join("/")}/${u}`:`/${u}`;await this.client.copy(f,u,l)}}async put(e,t,i){let s=this.fullPath(t).split("/").filter(Boolean),o=s[s.length-1]||"file",a="/"+s.slice(0,-1).join("/");await this.client.put(a==="//"?"/":a,o,i)}}});var zh,GD=j(()=>{"use strict";zh=class{endpoint;gateway;mode;constructor(e){this.endpoint=(e.endpoint||"").replace(/\/+$/,""),this.gateway=(e.gateway||"").replace(/\/+$/,""),this.mode=e.mode||"ipfs"}async init(){if(!this.endpoint)throw new Error("[IPFS] endpoint is required");if(!this.gateway)throw new Error("[IPFS] gateway is required")}async post(e,t){let i=new URLSearchParams;for(let s of t)i.append("arg",s);let n=await fetch(`${this.endpoint}/api/v0/${e}?${i.toString()}`,{method:"POST"});if(n.status>=400)throw new Error(`[IPFS] ${n.status} ${await n.text().catch(()=>"")}`);return await n.json().catch(()=>({}))}async ls(e){return this.post("ls",[`/ipfs/${e}`])}async filesStat(e){return this.post("files/stat",[e])}async filesMkdir(e){await this.post("files/mkdir",[e,"parents=true"])}async filesMv(e,t){await this.post("files/mv",[e,t])}async filesCp(e,t){await this.post("files/cp",[e,t])}async filesRm(e){await this.post("files/rm",[e,"recursive=true"])}async add(e,t){let i=new FormData;i.append("file",new Blob([e]),t);let s=await(await fetch(`${this.endpoint}/api/v0/add`,{method:"POST",body:i})).json().catch(()=>({Hash:""}));if(!s.Hash)throw new Error("[IPFS] add failed");return s.Hash}downloadUrl(e,t){return`${this.gateway}/ipfs/${e}?filename=${encodeURIComponent(t)}`}async resolveIpfsPath(e,t){if(t)return`/ipfs/${t}`;let i=e.replace(/^\/+|\/+$/g,"");switch(this.mode){case"ipfs":return`/ipfs/${i}`;case"ipns":return`/ipns/${i}`;case"mfs":return`/ipfs/${(await this.filesStat(i?`/${i}`:"/")).Hash}`;default:throw new Error("[IPFS] invalid mode")}}}});var Jh,zD=j(()=>{"use strict";Be();GD();Jh=class{client;addition;constructor(e){this.addition=e,this.client=new zh(e)}async init(){await this.client.init()}isMfs(){return this.addition.mode==="mfs"}fullPath(e){let t=(this.addition.root_path||"").replace(/^\/+|\/+$/g,""),i=e.replace(/^\/+/,"");return t?"/"+(i?`${t}/${i}`:t):"/"+i}async list(e,t){let i=this.fullPath(t),s=(await this.client.resolveIpfsPath(i)).replace(/^\/ipfs\//,"");return((await this.client.ls(s)).Objects?.[0]?.Links||[]).map(c=>({name:c.Name,size:c.Size||0,is_dir:c.Type===1,modified:new Date().toISOString(),sign:c.Hash,type:X(c.Name,c.Type===1),raw_url:""}))}async get(e,t){let i=this.fullPath(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root";if(this.isMfs())try{let a=await this.client.filesStat(i),c=a.Type==="directory",l={name:s,size:a.Size||0,is_dir:c,modified:new Date().toISOString(),sign:a.Hash,type:X(s,c),raw_url:""};return c||(l.raw_url=this.client.downloadUrl(a.Hash,s)),l}catch{}let o="/"+n.slice(0,-1).join("/");try{let c=(await this.list(e,o)).find(l=>l.name===s);if(c)return c.is_dir||(c.raw_url=this.client.downloadUrl(c.sign,s)),c}catch{}try{return await this.client.resolveIpfsPath(i),{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");await this.client.filesMkdir(this.fullPath(t))}async rename(e,t,i){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let n=this.fullPath(t),o="/"+n.split("/").filter(Boolean).slice(0,-1).join("/")+"/"+i;await this.client.filesMv(n,o)}async remove(e,t,i){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");await this.client.filesRm(this.fullPath(t))}async move(e,t,i,n,s){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let o=this.fullPath(n),a=this.fullPath(t);await this.client.filesMv(o,a)}async copy(e,t,i,n,s){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let o=this.fullPath(n),c=`/ipfs/${(await this.client.filesStat(o)).Hash}`,l=this.fullPath(t);await this.client.filesCp(c,l)}async put(e,t,i){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let n=this.fullPath(t),s=n.split("/").filter(Boolean),o=s[s.length-1]||"file",a=await this.client.add(i,o);await this.client.filesCp(`/ipfs/${a}`,n)}}});var _K,jh,JD=j(()=>{"use strict";_K="https://siot-share.lenovo.com.cn",jh=class{host;shareId;sharePwd;stoken="";expireAt=0;constructor(e){this.host=(e.host||_K).replace(/\/+$/,""),this.shareId=(e.share_id||"").split("/").pop()||"",this.sharePwd=e.share_pwd||""}async init(){if(!this.shareId)throw new Error("[Lenovo NAS Share] share_id is required");await this.getStoken()}async request(e){let i=await(await fetch(e,{method:"GET",headers:{origin:"https://siot-share.lenovo.com.cn",referer:"https://siot-share.lenovo.com.cn/","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",platform:"web","app-version":"3"}})).json().catch(()=>({result:!1}));if(!i.result)throw new Error(`[Lenovo NAS Share] ${i.error?.msg||"request failed"}`);return i.data}async getStoken(){let e=new URLSearchParams({code:this.shareId,password:this.sharePwd}),t=await this.request(`${this.host}/oneproxy/api/share/v1/access?${e.toString()}`);this.stoken=t.stoken||"",this.expireAt=Date.now()+(t.expires_in||3600)*1e3-6e4}async checkStoken(){Date.now()>=this.expireAt&&await this.getStoken()}async list(e){await this.checkStoken();let t=e.startsWith("/")?e:"/"+e,i=new URLSearchParams({code:this.shareId,num:"5000",stoken:this.stoken,path:t});return(await this.request(`${this.host}/oneproxy/api/share/v1/files?${i.toString()}`)).list||[]}async getDownloadUrl(e){await this.checkStoken();let t=new URLSearchParams({code:this.shareId,stoken:this.stoken,path:e.startsWith("/")?e:"/"+e}),n=(await this.request(`${this.host}/oneproxy/api/share/v1/file/link?${t.toString()}`)).param?.dtoken||"";return`${this.host}/oneproxy/api/share/v1/file/download?code=${encodeURIComponent(this.shareId)}&dtoken=${encodeURIComponent(n)}`}downloadHeaders(){return{Referer:"https://siot-share.lenovo.com.cn"}}}});var $h,jD=j(()=>{"use strict";Be();JD();$h=class{client;constructor(e){this.client=new jh(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.list(t)).map(n=>{let s=n.type==="dir";return{name:n.name,size:n.size||0,is_dir:s,modified:n.chtime?new Date(n.chtime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(n.name,s),raw_url:""}})}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let a=(await this.client.list(s==="//"?"/":s)).find(c=>c.name===n||c.path===t);if(a){let c=a.type==="dir",l={name:a.name,size:a.size||0,is_dir:c,modified:a.chtime?new Date(a.chtime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(a.name,c),raw_url:""};return c||(l.raw_url=await this.client.getDownloadUrl(a.path),l.raw_url_headers=this.client.downloadHeaders()),l}}catch{}try{return await this.client.list(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(){throw new Error("[Lenovo NAS Share] read-only storage")}async rename(){throw new Error("[Lenovo NAS Share] read-only storage")}async remove(){throw new Error("[Lenovo NAS Share] read-only storage")}async move(){throw new Error("[Lenovo NAS Share] read-only storage")}async copy(){throw new Error("[Lenovo NAS Share] read-only storage")}async put(){throw new Error("[Lenovo NAS Share] read-only storage")}}});var Vh,$D=j(()=>{"use strict";Vh=class{endpoint;token;constructor(e){this.endpoint=(e.endpoint||"").replace(/\/+$/,""),this.token=e.access_token||""}async init(){if(!this.endpoint)throw new Error("[Misskey] endpoint is required");if(!this.token)throw new Error("[Misskey] access_token is required")}async post(e,t){let i=await fetch(`${this.endpoint}/api/drive${e}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},body:JSON.stringify(t||{})});if(i.status>=400)throw new Error(`[Misskey] ${i.status} ${await i.text().catch(()=>"")}`);return await i.json().catch(()=>({}))}async getFiles(e){return this.post("/files",e?{folderId:e}:{})}async getFolders(e){return this.post("/folders",e?{folderId:e}:{})}async showFile(e){return this.post("/files/show",{fileId:e})}async createFolder(e,t){return this.post("/folders/create",{name:e,...t?{parentId:t}:{}})}async updateFolder(e,t){return this.post("/folders/update",{folderId:e,...t})}async updateFile(e,t){return this.post("/files/update",{fileId:e,...t})}async deleteFolder(e){await this.post("/folders/delete",{folderId:e})}async deleteFile(e){await this.post("/files/delete",{fileId:e})}async uploadFromUrl(e,t){return this.post("/files/upload-from-url",{url:e,...t?{folderId:t}:{}})}}});var Yh,VD=j(()=>{"use strict";Be();$D();Yh=class{client;pathCache=new Map;constructor(e){this.client=new Vh(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFolderId(t),[n,s]=await Promise.all([this.client.getFiles(i),this.client.getFolders(i)]),o=n.map(c=>({name:c.name,size:c.size||0,is_dir:!1,modified:c.createdAt||new Date().toISOString(),sign:c.id,type:X(c.name,!1),raw_url:c.url||"",thumb:c.thumbnailUrl||""}));return[...s.map(c=>({name:c.name,size:0,is_dir:!0,modified:c.createdAt||new Date().toISOString(),sign:c.id,type:1,raw_url:""})),...o]}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveFolderId(s),[a,c]=await Promise.all([this.client.getFiles(o),this.client.getFolders(o)]),l=a.find(u=>u.name===n);if(l)return{name:l.name,size:l.size||0,is_dir:!1,modified:l.createdAt||new Date().toISOString(),sign:l.id,type:X(l.name,!1),raw_url:l.url||"",thumb:l.thumbnailUrl||""};let d=c.find(u=>u.name===n);if(d)return{name:d.name,size:0,is_dir:!0,modified:d.createdAt||new Date().toISOString(),sign:d.id,type:1,raw_url:""}}catch{}try{return await this.resolveFolderId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.createFolder(n,o),this.pathCache.clear()}async rename(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);s?await this.client.updateFolder(n,{name:i}):await this.client.updateFile(n,{name:i}),this.pathCache.clear()}async remove(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);s?await this.client.deleteFolder(n):await this.client.deleteFile(n),this.pathCache.clear()}async move(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);a?await this.client.updateFolder(o,{parentId:c}):await this.client.updateFile(o,{folderId:c}),this.pathCache.clear()}async copy(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);if(a)throw new Error("[Misskey] folder copy not supported");let l=await this.client.showFile(o);await this.client.uploadFromUrl(l.url,c),this.pathCache.clear()}async put(e,t,i){throw new Error("[Misskey] Direct put not supported in stateless environment")}async resolveFolderId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n;for(let s=0;sl.name===i[s]);if(!a)throw new Error(`[Misskey] Folder '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveFolderId(n),[o,a]=await Promise.all([this.client.getFiles(s),this.client.getFolders(s)]),c=o.find(d=>d.name===i);if(c)return{id:c.id,isDir:!1};let l=a.find(d=>d.name===i);if(l)return{id:l.id,isDir:!0};throw new Error(`[Misskey] '${i}' not found`)}}});var hC,YD,FK,PK,TK,UK,Wh,WD=j(()=>{"use strict";hC="https://www.doubao.com",YD="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",FK=1,PK=6,TK=7,UK={1:"directory",2:"file",3:"link",4:"image",5:"pages",6:"video",7:"audio",8:"meeting_minutes"},Wh=class{cookie;downloadApi;constructor(e){this.cookie=e.cookie||"",this.downloadApi=e.download_api||"get_file_url"}async init(){if(!this.cookie)throw new Error("[Doubao] cookie is required")}async request(e,t={}){let n=await(await fetch(`${hC}${e}`,{method:"POST",headers:{"Content-Type":"application/json",Cookie:this.cookie,"User-Agent":YD,Origin:hC,Referer:`${hC}/`},body:JSON.stringify(t)})).json().catch(()=>({code:-1}));if(n.code!==0){let s=n.message||n.msg||n.error?.message||`code ${n.code}`;throw new Error(`[Doubao] ${s}`)}return n}async getFiles(e){let t=[],i="";do{let n={node_id:e};i?(n.cursor=i,n.size=50):n.need_full_path=!1;let o=(await this.request("/samantha/aispace/node_info",n)).data;o?.children&&t.push(...o.children),i=o?.next_cursor&&o.next_cursor!=="-1"?o.next_cursor:""}while(i);return t}async getDownloadUrl(e){if(this.downloadApi==="get_download_info"){let a=(await this.request("/samantha/aispace/get_download_info",{requests:[{node_id:e.id}]})).data.download_infos?.[0]?.main_url||"";if(!a)throw new Error("[Doubao] empty download url");return a}if(e.node_type===PK||e.node_type===TK){let o=(await this.request("/samantha/media/get_play_info",{key:e.key,node_id:e.id})).data,a=o.original_media_info?.main_url||o.media_info?.[0]?.main_url||"";if(!a)throw new Error("[Doubao] empty download url");return a}let n=(await this.request("/alice/message/get_file_url",{uris:[e.key],type:UK[e.node_type]||"file"})).data.file_urls?.[0]?.main_url||"";if(!n)throw new Error("[Doubao] empty download url");return n}downloadHeaders(){return{"User-Agent":YD}}async mkdir(e,t){await this.request("/samantha/aispace/upload_node",{node_list:[{local_id:crypto.randomUUID(),name:t,parent_id:e,node_type:FK}]})}async rename(e,t){await this.request("/samantha/aispace/rename_node",{node_id:e,node_name:t})}async move(e,t,i){await this.request("/samantha/aispace/move_node",{node_list:[{id:e}],current_parent_id:t,target_parent_id:i})}async remove(e){await this.request("/samantha/aispace/delete_node",{node_list:[{id:e}]})}}});var XD,Xh,ZD=j(()=>{"use strict";Be();WD();XD="0",Xh=class{client;pathCache=new Map;constructor(e){this.client=new Wh(e)}async init(){await this.client.init()}fileToItem(e){let t=e.node_type===1;return{name:e.name,size:e.size||0,is_dir:t,modified:e.update_time?new Date(e.update_time*1e3).toISOString():new Date().toISOString(),sign:"",type:X(e.name,t),raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.name===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c),l.raw_url_headers=this.client.downloadHeaders()}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveDirId(s);await this.client.mkdir(o,n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveDirId(t);await this.client.rename(n,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveDirId(t);await this.client.remove(n),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=await this.resolveDirId(t);await this.client.move(o.id,o.parentId,a),this.pathCache.clear()}async copy(){throw new Error("[Doubao] copy not supported")}async put(){throw new Error("[Doubao] upload not supported in stateless environment")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return XD;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=XD;for(let s=0;sl.node_type===1&&l.name===i[s]);if(!a)throw new Error(`[Doubao] Directory '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveDirId(n),a=(await this.client.getFiles(s)).find(c=>c.name===i);if(!a)throw new Error(`[Doubao] '${i}' not found`);return{id:a.id,parentId:a.parent_id||s,isDir:a.node_type===1}}}});async function qK(r){let e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r));return Array.from(new Uint8Array(e)).map(t=>t.toString(16).padStart(2,"0")).join("")}var RK,NK,Zh,e3=j(()=>{"use strict";RK="https://open-api-drive.quark.cn",NK="go-resty/3.0.0-beta.1 (https://resty.dev)";Zh=class{addition;accessToken;refreshToken;appId;signKey;constructor(e){this.addition=e,this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||"",this.appId=e.app_id||"",this.signKey=e.sign_key||""}async init(){if(!this.refreshToken)throw new Error("[QuarkOpen] refresh_token is required")}async generateSign(e,t){let i=String(Date.now()),n=`${e}&${t}&${i}&${this.signKey}`,s=await qK(n),o=typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return{tm:i,token:s,reqId:o}}async request(e,t,i){let{tm:n,token:s,reqId:o}=await this.generateSign(t,e),a=new URLSearchParams({req_id:o,access_token:this.accessToken}),c={Accept:"application/json, text/plain, */*","User-Agent":NK,"x-pan-tm":n,"x-pan-token":s,"x-pan-client-id":this.appId},l={method:t,headers:c};i!==void 0&&(l.body=JSON.stringify(i),c["Content-Type"]="application/json");let u=await(await fetch(`${RK}${e}?${a.toString()}`,l)).json().catch(()=>({status:-1,errno:-1}));if(u.status===-1&&(u.errno===11001||u.errno===14001&&(u.error_info||"").includes("access_token")))return await this.refreshAccessToken(),this.request(e,t,i);if(u.status>=400||u.errno!==0)throw new Error(`[QuarkOpen] ${u.error_info||`errno ${u.errno}`}`);return u}async refreshAccessToken(){let e=this.addition.api_url_address||"https://api.oplist.org/quarkyun/renewapi",t=new URLSearchParams({refresh_ui:this.refreshToken,server_use:"true",driver_txt:"quarkyun_oa"}),n=await(await fetch(`${e}?${t.toString()}`)).json().catch(()=>({}));if(!n.refresh_token||!n.access_token)throw new Error(`[QuarkOpen] refresh token failed: ${n.text||"empty token"}`);this.refreshToken=n.refresh_token,this.accessToken=n.access_token,n.app_id&&(this.appId=n.app_id),n.sign_key&&(this.signKey=n.sign_key),this.addition.refresh_token=n.refresh_token,this.addition.access_token=n.access_token}async getFiles(e){let t=[],i;do{let n={parent_fid:e,size:100,sort:this.addition.order_by&&this.addition.order_by!=="none"?`${this.addition.order_by}:${this.addition.order_direction||"asc"}`:"file_name:asc"};i?.token&&(n.query_cursor=i);let o=(await this.request("/open/v1/file/list","POST",n)).data;if(o?.file_list&&t.push(...o.file_list),o?.last_page)break;i=o?.next_query_cursor}while(i?.token);return t}async getDownloadUrl(e){let i=(await this.request("/open/v1/file/get_download_url","POST",{fid:e})).data;if(!i.download_url)throw new Error("[QuarkOpen] empty download url");return i.download_url}downloadCookie(){return`x_pan_client_id=${this.appId}; x_pan_access_token=${this.accessToken}`}async mkdir(e,t){await this.request("/open/v1/dir","POST",{dir_path:t,pdir_fid:e})}async rename(e,t){await this.request("/open/v1/file/rename","POST",{fid:e,file_name:t,conflict_mode:"REUSE"})}async move(e,t){await this.request("/open/v1/file/move","POST",{action_type:1,fid_list:[e],to_pdir_fid:t})}async remove(e){await this.request("/open/v1/file/delete","POST",{action_type:1,fid_list:[e]})}}});var t3,eg,r3=j(()=>{"use strict";Be();e3();t3="0",eg=class{client;pathCache=new Map;constructor(e){this.client=new Zh(e)}async init(){await this.client.init()}fileToItem(e){let t=e.file_type==="0";return{name:e.filename,size:e.size||0,is_dir:t,modified:e.updated_at?new Date(e.updated_at).toISOString():new Date().toISOString(),sign:"",type:X(e.filename,t),thumb:e.thumbnail_url||"",raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.filename===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.fid),l.raw_url_headers={Cookie:this.client.downloadCookie()}}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveDirId(s);await this.client.mkdir(o,n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveDirId(t);await this.client.rename(n,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveDirId(t);await this.client.remove(n),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveDirId(n),a=await this.resolveDirId(t);await this.client.move(o,a),this.pathCache.clear()}async copy(){throw new Error("[QuarkOpen] copy not supported")}async put(){throw new Error("[QuarkOpen] upload not supported in stateless environment")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return t3;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=t3;for(let s=0;sl.file_type==="0"&&l.filename===i[s]);if(!a)throw new Error(`[QuarkOpen] Directory '${i[s]}' not found`);n=a.fid;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var OK,MK,LK,HK,KK,GK,zK,JK,jK,$K,tg,i3=j(()=>{"use strict";si();OK="Mozilla/5.0 (Linux; U; Android 13; zh-cn; M2004J7AC Build/UKQ1.231108.001) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1",MK="Xiaomi",LK="tv",HK="M2004J7AC",KK="M2004J7AC",GK="M2004J7AC",zK="M2004J7AC",JK="Adreno (TM) 550",jK="{}",$K={quark:{api:"https://open-api-drive.quark.cn",clientID:"d3194e61504e493eb6222857bccfed94",signKey:"kw2dvtd7p4t3pjl2d9ed9yc8yej8kw2d",appVer:"1.8.2.2",channel:"GENERAL",codeApi:"http://api.extscreen.com/quarkdrive"},uc:{api:"https://open-api-drive.uc.cn",clientID:"5acf882d27b74502b7040b0c65519aa7",signKey:"l3srvtd7p42l0d0x1u8d7yc8ye9kki4d",appVer:"1.7.2.2",channel:"UCTVOFFICIALWEB",codeApi:"http://api.extscreen.com/ucdrive"}},tg=class{conf;addition;accessToken="";deviceId;constructor(e){this.addition=e,this.conf=$K[e.variant||"quark"],this.deviceId=e.device_id||$t(String(Date.now())),this.addition.device_id=this.deviceId}async init(){if(!this.addition.refresh_token)throw new Error("[QuarkTV] refresh_token is required");await this.refreshToken()}async generateSign(e,t){let i=String(Date.now()),n=$t(this.deviceId+i),s=await hk(`${e}&${t}&${i}&${this.conf.signKey}`);return{tm:i,token:s,reqId:n}}deviceQuery(){return{app_ver:this.conf.appVer,device_id:this.deviceId,device_brand:MK,platform:LK,device_name:HK,device_model:KK,build_device:GK,build_product:zK,device_gpu:JK,activity_rect:jK,channel:this.conf.channel}}async request(e,t,i={}){let{tm:n,token:s,reqId:o}=await this.generateSign(t,e),a=new URLSearchParams({req_id:o,access_token:this.accessToken,...this.deviceQuery(),...i}),l=await(await fetch(`${this.conf.api}${e}?${a.toString()}`,{method:t,headers:{Accept:"application/json, text/plain, */*","User-Agent":OK,"x-pan-tm":n,"x-pan-token":s,"x-pan-client-id":this.conf.clientID}})).json().catch(()=>({status:-1,errno:-1})),d=(l.error_info||"").toLowerCase();if(l.status===-1&&(l.errno===10001||l.errno===11001)||d.includes("access token")||d.includes("access_token")||d.includes("token\u65E0\u6548")||d.includes("token \u65E0\u6548"))return await this.refreshToken(),this.request(e,t,i);if(l.status>=400||l.errno!==0)throw new Error(`[QuarkTV] ${l.error_info||`errno ${l.errno}`}`);return l}async refreshToken(){let e="/token",{reqId:t}=await this.generateSign("POST",e),i={req_id:t,...this.deviceQuery()};this.accessToken?i.refresh_token=this.addition.refresh_token:i.refresh_token=this.addition.refresh_token;let s=await(await fetch(`${this.conf.codeApi}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})).json().catch(()=>({}));if(s?.code!==200)throw new Error(`[QuarkTV] ${s?.message||"token refresh failed"}`);let o=s.data||{};if(!o.access_token)throw new Error("[QuarkTV] refresh token empty");this.accessToken=o.access_token,o.refresh_token&&(this.addition.refresh_token=o.refresh_token)}async getFiles(e){let t=[],i=0,n=100,s=this.addition.order_direction==="asc"?"0":"1",o=this.addition.order_by==="file_name"?"1":"3";for(;;){let c=(await this.request("/file","GET",{method:"list",parent_fid:e,order_by:o,desc:s,category:"",source:"",ex_source:"",list_all:"0",page_size:String(n),page_index:String(i)})).data;c?.files&&t.push(...c.files);let l=c?.total_count||0;if(i*n>=l)break;i++}return t}async getDownloadUrl(e){if(this.addition.link_method==="streaming"){let o=(await this.request("/file","GET",{method:"streaming",group_by:"source",fid:e,resolution:"low,normal,high,super,2k,4k",support:"dolby_vision"})).data?.video_info?.find(a=>a.url)?.url||"";if(!o)throw new Error("[QuarkTV] no streaming link found");return o}let i=(await this.request("/file","GET",{method:"download",group_by:"source",fid:e,resolution:"low,normal,high,super,2k,4k",support:"dolby_vision"})).data;if(!i?.download_url)throw new Error("[QuarkTV] empty download url");return i.download_url}}});var n3,rg,s3=j(()=>{"use strict";Be();i3();n3="0",rg=class{client;pathCache=new Map;constructor(e){this.client=new tg(e)}async init(){await this.client.init()}fileToItem(e){let t=e.isdir===1;return{name:e.filename,size:e.size||0,is_dir:t,modified:e.updated_at?new Date(e.updated_at).toISOString():new Date().toISOString(),sign:"",type:X(e.filename,t),thumb:e.thumbnail_url||"",raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.filename===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.fid)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(){throw new Error("[QuarkTV] read-only storage")}async rename(){throw new Error("[QuarkTV] read-only storage")}async remove(){throw new Error("[QuarkTV] read-only storage")}async move(){throw new Error("[QuarkTV] read-only storage")}async copy(){throw new Error("[QuarkTV] read-only storage")}async put(){throw new Error("[QuarkTV] read-only storage")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return n3;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=n3;for(let s=0;sl.isdir===1&&l.filename===i[s]);if(!a)throw new Error(`[QuarkTV] Directory '${i[s]}' not found`);n=a.fid;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var dc,ig,o3=j(()=>{"use strict";dc="https://open-api.123pan.com",ig=class{addition;accessToken="";constructor(e){this.addition=e,this.accessToken=e.access_token||""}async init(){this.accessToken||await this.getAccessToken()}async getAccessToken(){if(this.addition.use_online_api!==!1&&this.addition.refresh_token&&this.addition.api_url_address){let e=new URLSearchParams({refresh_ui:this.addition.refresh_token,server_use:"true",driver_txt:"123cloud_oa"}),i=await(await fetch(`${this.addition.api_url_address}?${e.toString()}`)).json().catch(()=>({}));if(i.access_token&&i.refresh_token){this.accessToken=i.access_token,this.addition.access_token=i.access_token,this.addition.refresh_token=i.refresh_token;return}let n=i.error_description||i.text||i.message||i.error;if(n)throw new Error(`[123Open] ${n}`)}if(this.addition.client_id&&this.addition.client_secret){let t=await(await fetch(`${dc}/api/v1/access_token`,{method:"POST",headers:{platform:"open_platform","Content-Type":"application/json"},body:JSON.stringify({clientID:this.addition.client_id,clientSecret:this.addition.client_secret})})).json().catch(()=>({code:-1}));if(t.code!==0)throw new Error(`[123Open] ${t.message}`);if(!t.data?.access_token)throw new Error("[123Open] empty access token");this.accessToken=t.data.access_token,this.addition.access_token=this.accessToken;return}throw new Error("[123Open] no valid authentication method (access_token / refresh_token / client_id+client_secret)")}async request(e,t,i){let n={Authorization:`Bearer ${this.accessToken}`,platform:"open_platform","Content-Type":"application/json"},s={method:t,headers:n};i!==void 0&&(s.body=JSON.stringify(i));let a=await(await fetch(e,s)).json().catch(()=>({code:-1}));return a.code===401?(await this.getAccessToken(),this.request(e,t,i)):a}async getFiles(e){let t=[],i=0;do{let n=new URLSearchParams({parentFileId:e,limit:"100",lastFileId:String(i),trashed:"false",searchMode:"",searchData:""}),s=await this.request(`${dc}/api/v2/file/list?${n.toString()}`,"GET");if(s.code!==0)throw new Error(`[123Open] ${s.message}`);let o=s.data,a=(o.file_list||[]).filter(c=>(c.trashed??0)===0);t.push(...a),i=o.last_file_id??-1}while(i!==-1);return t}async getDownloadUrl(e){let t=new URLSearchParams({fileId:String(e)}),i=await this.request(`${dc}/api/v1/file/download_info?${t.toString()}`,"GET");if(i.code!==0)throw new Error(`[123Open] ${i.message}`);let n=i.data?.download_url||"";if(!n)throw new Error("[123Open] empty download url");return n}async mkdir(e,t){let i=await this.request(`${dc}/upload/v1/file/mkdir`,"POST",{parentID:e,name:t});if(i.code!==0)throw new Error(`[123Open] ${i.message}`)}async move(e,t){let i=await this.request(`${dc}/api/v1/file/move`,"POST",{fileIDs:[e],toParentFileID:t});if(i.code!==0)throw new Error(`[123Open] ${i.message}`)}async rename(e,t){let i=await this.request(`${dc}/api/v1/file/name`,"PUT",{fileId:e,fileName:t});if(i.code!==0)throw new Error(`[123Open] ${i.message}`)}async remove(e){let t=await this.request(`${dc}/api/v1/file/trash`,"POST",{fileIDs:[e]});if(t.code!==0)throw new Error(`[123Open] ${t.message}`)}}});function VK(r){if(!r)return new Date().toISOString();let e=new Date(r.replace(" ","T")+"+08:00");return isNaN(e.getTime())?new Date().toISOString():e.toISOString()}var a3,ng,c3=j(()=>{"use strict";Be();o3();a3="0";ng=class{client;pathCache=new Map;constructor(e){this.client=new ig(e)}async init(){await this.client.init()}fileToItem(e){let t=e.type===1;return{name:e.filename,size:e.size||0,is_dir:t,modified:VK(e.update_at),sign:"",type:X(e.filename,t),raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.filename===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.fileId)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveDirId(s);await this.client.mkdir(o,n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=await this.resolveDirId(t);await this.client.move(o.id,a),this.pathCache.clear()}async copy(){throw new Error("[123Open] copy not supported")}async put(){throw new Error("[123Open] upload not supported in stateless environment")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return a3;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=a3;for(let s=0;sl.type===1&&l.filename===i[s]);if(!a)throw new Error(`[123Open] Directory '${i[s]}' not found`);n=String(a.fileId);let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveDirId(n),a=(await this.client.getFiles(s)).find(c=>c.filename===i);if(!a)throw new Error(`[123Open] '${i}' not found`);return{id:a.fileId,isDir:a.type===1}}}});var sg,l3=j(()=>{"use strict";sg=class{addition;baseUrl;constructor(e){this.addition=e,this.baseUrl=e.region==="international"?"https://us.teambition.com":"https://www.teambition.com"}async init(){if(!this.addition.cookie)throw new Error("[Teambition] cookie is required");if(!this.addition.project_id)throw new Error("[Teambition] project_id is required");let e=await fetch(`${this.baseUrl}/api/v2/roles`,{headers:{Cookie:this.addition.cookie}});if(e.status>=400)throw new Error(`[Teambition] init failed: HTTP ${e.status}`)}async request(e,t,i,n){let s=n?"?"+new URLSearchParams(n).toString():"",o={Cookie:this.addition.cookie},a={method:t,headers:o};i!==void 0&&(a.body=JSON.stringify(i),o["Content-Type"]="application/json");let c=await fetch(`${this.baseUrl}${e}${s}`,a);if(c.status===204||c.status===201)return{};let l=await c.json().catch(()=>({}));if(l.name||l.message)throw new Error(`[Teambition] ${l.message||l.name}`);return l}async getFiles(e){let t=`${this.addition.order_by||"fileName"}${this.addition.order_direction||"Asc"}`,i={_parentId:e,_projectId:this.addition.project_id,order:t,count:"50"},n=[],s=1;for(;;){let a=await this.request("/api/collections","GET",void 0,{...i,page:String(s)});if(!Array.isArray(a)||a.length===0||(n.push(...a.filter(c=>c.title)),s++,a.length<50))break}let o=[];for(s=1;;){let a=await this.request("/api/works","GET",void 0,{...i,page:String(s)});if(!Array.isArray(a)||a.length===0||(o.push(...a),s++,a.length<50))break}return{folders:n,works:o}}async resolveDownloadUrl(e){let t=await fetch(e,{headers:{Cookie:this.addition.cookie},redirect:"manual"});if(t.status===302){let i=t.headers.get("location");if(i)return i}return e}async mkdir(e,t){await this.request("/api/collections","POST",{objectType:"collection",_projectId:this.addition.project_id,_creatorId:"",created:"",updated:"",title:t,color:"blue",description:"",workCount:0,collectionType:"",recentWorks:[],_parentId:e,subCount:null})}async move(e,t,i){let n=i?"/api/collections/":"/api/works/";await this.request(`${n}${e}/move`,"PUT",{_parentId:t})}async rename(e,t,i){i?await this.request(`/api/collections/${e}`,"PUT",{title:t}):await this.request(`/api/works/${e}`,"PUT",{fileName:t})}async copy(e,t,i){let n=i?"/api/collections/":"/api/works/";await this.request(`${n}${e}/fork`,"PUT",{_parentId:t})}async remove(e,t){let i=t?"/api/collections/":"/api/works/";await this.request(`${i}${e}/archive`,"POST")}}});var og,d3=j(()=>{"use strict";Be();l3();og=class{client;pathCache=new Map;constructor(e){this.client=new sg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t),{folders:n,works:s}=await this.client.getFiles(i),o=n.map(c=>({name:c.title,size:0,is_dir:!0,modified:c.updated||new Date().toISOString(),sign:c._id,type:1,raw_url:""})),a=s.map(c=>({name:c.fileName,size:c.fileSize||0,is_dir:!1,modified:c.updated||new Date().toISOString(),sign:c._id,type:X(c.fileName,!1),thumb:c.thumbnail||c.thumbnailUrl||"",raw_url:c.downloadUrl||""}));return[...o,...a]}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),{folders:a,works:c}=await this.client.getFiles(o),l=a.find(u=>u.title===n);if(l)return{name:l.title,size:0,is_dir:!0,modified:l.updated||new Date().toISOString(),sign:l._id,type:1,raw_url:""};let d=c.find(u=>u.fileName===n);if(d){let u=d.downloadUrl||"";if(u)try{u=await this.client.resolveDownloadUrl(u)}catch{}return{name:d.fileName,size:d.fileSize||0,is_dir:!1,modified:d.updated||new Date().toISOString(),sign:d._id,type:X(d.fileName,!1),thumb:d.thumbnail||d.thumbnailUrl||"",raw_url:u}}}catch{}try{return await this.client.getFiles(await this.pathToId(t)),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i,n.isDir),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id,n.isDir),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t),o.isDir),this.pathCache.clear()}async copy(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.copy(o.id,await this.pathToId(t),o.isDir),this.pathCache.clear()}async put(){throw new Error("[Teambition] upload not supported in stateless environment")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),{folders:o,works:a}=await this.client.getFiles(s),c=o.find(d=>d.title===i);if(c)return{id:c._id,isDir:!0};let l=a.find(d=>d.fileName===i);if(l)return{id:l._id,isDir:!1};throw new Error(`[Teambition] '${i}' not found`)}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="";for(let s=0;sl.title===i[s]);if(!a)throw new Error(`[Teambition] Directory '${i[s]}' not found`);n=a._id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var u3,gC,YK,f3,A3,ag,h3=j(()=>{"use strict";si();u3="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch",gC="https://chaoxing.com/",YK="https://groupweb.chaoxing.com",f3="https://noteyd.chaoxing.com",A3="u2oh6Vu^HWe4_AES",ag=class{addition;cookie;persistCookie;constructor(e,t){this.addition=e,this.cookie=e.cookie||"",this.persistCookie=t}async init(){if(!this.addition.bbsid)throw new Error("[ChaoXing] bbsid is required");this.cookie||(this.cookie=await this.login(),this.persistCookie&&await this.persistCookie(this.cookie))}getCookie(){return this.cookie}downloadHeaders(){return{Cookie:this.cookie,Referer:gC,"User-Agent":u3}}async login(){let e=await vx(this.addition.user_name,A3),t=await vx(this.addition.password,A3),i=new FormData;i.append("uname",e),i.append("password",t),i.append("t","true");let n=await fetch("https://passport2.chaoxing.com/fanyalogin",{method:"POST",body:i}),s=[],o=typeof n.headers.getSetCookie=="function"?n.headers.getSetCookie():[];if(Array.isArray(o)&&o.length>0)for(let a of o)a&&s.push(a.split(";")[0]);else{let a=n.headers.get("set-cookie");a&&s.push(a.split(";")[0])}if(s.length===0)throw new Error("[ChaoXing] login failed: no cookie returned");return s.join("; ")}async request(e,t,i,n){let s=i?"?"+new URLSearchParams(i).toString():"",o={Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:gC,...n},a=await fetch(`${YK}${e}${s}`,{method:t,headers:o});if(a.status>=400)throw new Error(`[ChaoXing] request failed: HTTP ${a.status}`);return await a.json()}async requestDownload(e,t){let i={Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:gC,"User-Agent":u3},n=await fetch(`${f3}${e}`,{method:t,headers:i});if(n.status>=400)throw new Error(`[ChaoXing] download request failed: HTTP ${n.status}`);return await n.json()}async getFiles(e){let t=[],i=await this.request("/pc/resource/getResourceList","GET",{bbsid:this.addition.bbsid,folderId:e,recType:"1"});if(i.result!==1)throw new Error(`[ChaoXing] list failed: result=${i.result}`);i.list&&i.list.length>0&&t.push(...i.list);let n=await this.request("/pc/resource/getResourceList","GET",{bbsid:this.addition.bbsid,folderId:e,recType:"2"});for(let s of n.list||[])s.content.fileId||(s.content.fileId=s.content.objectId||""),t.push(s);return t}async link(e){let t=await this.requestDownload("/screen/note_note/files/status/"+e,"POST");if(!t.download)throw new Error(`[ChaoXing] link failed: ${t.msg||"no download url"}`);return t}async mkdir(e,t){let i=await this.request("/pc/resource/addResourceFolder","GET",{bbsid:this.addition.bbsid,name:t,pid:e});if(i.result!==1)throw new Error(`[ChaoXing] mkdir failed: ${i.msg}`)}async move(e,t,i){let n=i?{bbsid:this.addition.bbsid,folderIds:e,targetId:t}:{bbsid:this.addition.bbsid,recIds:e,targetId:t},s=await this.request("/pc/resource/moveResource","GET",n);if(!s.status)throw new Error(`[ChaoXing] move failed: ${s.msg}`)}async renameFolder(e,t){let i=await this.request("/pc/resource/updateResourceFolderName","GET",{bbsid:this.addition.bbsid,folderId:e,name:t});if(i.result!==1)throw new Error(`[ChaoXing] rename failed: ${i.msg}`)}async remove(e,t){let i=t?"/pc/resource/deleteResourceFolder":"/pc/resource/deleteResourceFile",n=t?{bbsid:this.addition.bbsid,folderIds:e}:{bbsid:this.addition.bbsid,recIds:e},s=await this.request(i,"GET",n);if(s.result!==1)throw new Error(`[ChaoXing] remove failed: ${s.msg}`)}async upload(e,t,i){let s=await(await fetch(`${f3}/pc/files/getUploadConfig`,{method:"GET"})).json();if(s.result!==1||!s.msg?.token)throw new Error("[ChaoXing] get upload config failed");let o=new FormData,a=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength);o.append("file",new Blob([a]),t),o.append("_token",s.msg.token),o.append("puid",String(s.msg.puid||""));let l=await(await fetch("https://pan-yz.chaoxing.com/upload",{method:"POST",body:o})).json();if(l.msg!=="success"||!l.objectId)throw new Error(`[ChaoXing] upload failed: ${l.msg}`);let d={cataid:"100000019",key:l.objectId,param:l.data||{}},u=JSON.stringify(d),f=await this.request("/pc/resource/addResource","GET",{bbsid:this.addition.bbsid,pid:e,type:"yunpan",params:encodeURIComponent("["+u+"]")});if(f.result!==1)throw new Error(`[ChaoXing] add resource failed: ${f.msg}`)}}});function g3(r){let e=r.content;if(e.folderName)return{name:e.folderName,size:0,is_dir:!0,modified:r.inserttime?new Date(r.inserttime).toISOString():new Date().toISOString(),sign:String(r.id),type:1};let t=e.fileId||e.objectId||"";return{name:e.name||"",size:Number(e.size)||0,is_dir:!1,modified:e.uploadDate?new Date(e.uploadDate).toISOString():new Date().toISOString(),sign:`${r.id}$${t}`,type:X(e.name||"",!1),raw_url:""}}var cg,p3=j(()=>{"use strict";Be();h3();cg=class{client;pathCache=new Map;constructor(e,t){this.client=new ag(e,t)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFiles(i)).map(s=>g3(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFiles(o)).find(l=>(l.content.folderName||l.content.name)===n);if(c){let l=g3(c);if(!l.is_dir){let d=l.sign.split("$")[1]||"";if(d)try{let u=await this.client.link(d);l.raw_url=u.download,l.raw_url_headers=this.client.downloadHeaders()}catch{l.raw_url_error="[ChaoXing] failed to resolve download url"}}return l}}catch{}try{let o=await this.pathToId(t);return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:o,type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);if(!n.isDir)throw new Error("[ChaoXing] \u6B64\u7F51\u76D8\u4E0D\u652F\u6301\u4FEE\u6539\u6587\u4EF6\u540D");await this.client.renameFolder(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id,n.isDir),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t),o.isDir),this.pathCache.clear()}async copy(){throw new Error("[ChaoXing] copy not supported")}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/"),a=await this.pathToId(o);await this.client.upload(a,s,new Uint8Array(i)),this.pathCache.clear()}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFiles(s)).find(c=>(c.content.folderName||c.content.name)===i);if(!a)throw new Error(`[ChaoXing] '${i}' not found`);return{id:String(a.id),isDir:!!a.content.folderName}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"-1";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="-1";for(let s=0;sl.content.folderName===i[s]);if(!a)throw new Error(`[ChaoXing] Directory '${i[s]}' not found`);n=String(a.id);let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var pC,mC,yC,WK,lg,m3=j(()=>{"use strict";pC="all",mC="albums",yC="share_albums",WK="root",lg=class{addition;accessToken="";constructor(e){this.addition=e}async init(){await this.refreshToken()}async refreshToken(){let e=new URLSearchParams({client_id:this.addition.client_id,client_secret:this.addition.client_secret,refresh_token:this.addition.refresh_token,grant_type:"refresh_token"}),i=await(await fetch("https://www.googleapis.com/oauth2/v4/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json();if(!i.access_token)throw new Error("[GooglePhoto] refresh token failed");this.accessToken=i.access_token}async request(e,t,i,n){let s=i?"?"+new URLSearchParams(i).toString():"",o={Authorization:"Bearer "+this.accessToken,"Accept-Encoding":"gzip"},a={method:t,headers:o};n!==void 0&&(o["Content-Type"]="application/json",a.body=JSON.stringify(n));let c=await fetch(`${e}${s}`,a);if(c.status===401&&(await this.refreshToken(),o.Authorization="Bearer "+this.accessToken,c=await fetch(`${e}${s}`,a)),c.status>=400){let l=await c.json().catch(()=>({}));throw new Error(`[GooglePhoto] request failed: ${l.error?.message||`HTTP ${c.status}`}`)}return c}async getFiles(e){switch(e){case pC:return this.getAllMedias();case mC:return this.getAlbums();case yC:return this.getShareAlbums();case WK:return this.getFakeRoot();default:return this.getMedias(e)}}getFakeRoot(){return[{id:pC,title:pC},{id:mC,title:mC},{id:yC,title:yC}]}getAlbums(){return this.fetchItems("https://photoslibrary.googleapis.com/v1/albums",{fields:"albums(id,title,coverPhotoBaseUrl),nextPageToken",pageSize:"50",pageToken:"first"},"GET")}getShareAlbums(){return this.fetchItems("https://photoslibrary.googleapis.com/v1/sharedAlbums",{fields:"sharedAlbums(id,title,coverPhotoBaseUrl),nextPageToken",pageSize:"50",pageToken:"first"},"GET")}getMedias(e){return this.fetchItems("https://photoslibrary.googleapis.com/v1/mediaItems:search",{fields:"mediaItems(id,baseUrl,mimeType,mediaMetadata,filename),nextPageToken",pageSize:"100",albumId:e,pageToken:"first"},"POST")}getAllMedias(){return this.fetchItems("https://photoslibrary.googleapis.com/v1/mediaItems",{fields:"mediaItems(id,baseUrl,mimeType,mediaMetadata,filename),nextPageToken",pageSize:"100",pageToken:"first"},"GET")}async getMedia(e){return await(await this.request(`https://photoslibrary.googleapis.com/v1/mediaItems/${e}`,"GET",{fields:"mediaMetadata,baseUrl,mimeType"})).json()}async fetchItems(e,t,i){let n=[],s=t.pageToken;for(;s!=="";){let o={...t};o.pageToken==="first"&&(o.pageToken="");let c=await(await this.request(e,i,o)).json();s=c.nextPageToken||"",c.mediaItems&&n.push(...c.mediaItems),c.albums&&n.push(...c.albums),c.sharedAlbums&&n.push(...c.sharedAlbums)}return n}async link(e){let t=await this.getMedia(e),i=t.mimeType||"";return i.includes("image/")?(t.baseUrl||"")+"=d":i.includes("video/")?(t.baseUrl||"")+"=dv":t.baseUrl||""}}});function y3(r){return r.filename?{name:r.filename,size:0,is_dir:!1,modified:r.mediaMetadata?.creationTime||new Date().toISOString(),sign:r.id,type:X(r.filename,!1),thumb:r.baseUrl?r.baseUrl+"=w100-h100-c":"",raw_url:""}:{name:r.title||r.id,size:0,is_dir:!0,modified:new Date().toISOString(),sign:r.id,type:1}}var dg,I3=j(()=>{"use strict";Be();m3();dg=class{client;pathCache=new Map;constructor(e){this.client=new lg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFiles(i)).map(s=>y3(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFiles(o)).find(l=>(l.filename||l.title)===n);if(c){let l=y3(c);if(!l.is_dir)try{l.raw_url=await this.client.link(c.id)}catch{l.raw_url_error="[GooglePhoto] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(){throw new Error("[GooglePhoto] mkdir not supported")}async rename(){throw new Error("[GooglePhoto] rename not supported")}async remove(){throw new Error("[GooglePhoto] remove not supported")}async move(){throw new Error("[GooglePhoto] move not supported")}async copy(){throw new Error("[GooglePhoto] copy not supported")}async put(){throw new Error("[GooglePhoto] upload not supported")}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"root";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=i[0];for(let s=1;s(l.filename||l.title)===i[s]);if(!a)throw new Error(`[GooglePhoto] Directory '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return this.pathCache.set(t,n),n}}});var ug,w3=j(()=>{"use strict";ug=class{addition;accessToken="";tokenType="Bearer";persist;constructor(e,t){this.addition=e,this.persist=t}async init(){if(!this.addition.client_id||!this.addition.client_secret)throw new Error("[FebBox] client_id and client_secret are required");await this.refreshToken()}async refreshToken(){let e=new URLSearchParams;this.addition.refresh_token?(e.set("grant_type","refresh_token"),e.set("refresh_token",this.addition.refresh_token)):e.set("grant_type","client_credentials"),e.set("client_id",this.addition.client_id),e.set("client_secret",this.addition.client_secret);let i=await(await fetch("https://api.febbox.com/oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json();if(i.code!==1||!i.data?.access_token)throw new Error(`[FebBox] token fetch failed: ${i.msg}`);this.accessToken=i.data.access_token,this.tokenType=i.data.token_type||"Bearer",i.data.refresh_token&&(this.addition.refresh_token=i.data.refresh_token,this.persist&&await this.persist(i.data.refresh_token))}async request(e){let t=new FormData;for(let[s,o]of Object.entries(e))t.append(s,o);let n=await(await fetch("https://api.febbox.com/oauth",{method:"POST",headers:{Authorization:`${this.tokenType} ${this.accessToken}`},body:t})).json().catch(()=>({}));if(n.code===-10001&&n.server_name)return await this.refreshToken(),this.request(e);if(n.code!==0&&n.code!==1)throw new Error(`[FebBox] ${n.msg||n.code}`);return n}async getFilesList(e){let t=this.addition.page_size||100,i=[],n=1;for(;;){let o=(await this.request({module:"file_list",parent_id:e,page:String(n),pagelimit:String(t),order:this.addition.sort_rule||"name_asc"})).data?.file_list||[];if(i.push(...o),o.length{"use strict";Be();w3();fg=class{client;userIp;pathCache=new Map;constructor(e,t){this.client=new ug(e,t),this.userIp=e.user_ip||""}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFilesList(i)).map(s=>x3(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFilesList(o)).find(l=>l.file_name===n);if(c){let l=x3(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadLink(l.sign,this.userIp)}catch{l.raw_url_error="[FebBox] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.makeDir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t)),this.pathCache.clear()}async copy(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.copy(o.id,await this.pathToId(t)),this.pathCache.clear()}async put(){throw new Error("[FebBox] upload not supported")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFilesList(s)).find(c=>c.file_name===i);if(!a)throw new Error(`[FebBox] '${i}' not found`);return{id:String(a.fid),isDir:a.is_dir===1}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"0";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="0";for(let s=0;sl.file_name===i[s]&&l.is_dir===1);if(!a)throw new Error(`[FebBox] Directory '${i[s]}' not found`);n=String(a.fid);let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var XK,ZK,eG,tG,rG,Ag,E3=j(()=>{"use strict";XK="https://rest-api.degoo.com/login",ZK="https://rest-api.degoo.com/access-token/v2",eG="https://production-appsync.degoo.com/graphql",tG="da2-vs6twz5vnjdavpqndtbzg3prra",rG="CgAQAg",Ag=class{addition;accessToken="";refreshToken="";rootId="0";persist;constructor(e,t){this.addition=e,this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||"",this.persist=t}async init(){await this.ensureValidToken(),await this.getDevices()}getRootId(){return this.rootId}async saveTokens(){this.persist&&await this.persist({accessToken:this.accessToken,refreshToken:this.refreshToken})}isTokenExpired(){if(!this.accessToken)return!0;try{let e=this.accessToken.split(".");if(e.length!==3)return!0;let t=JSON.parse(atob(e[1].replace(/-/g,"+").replace(/_/g,"/"))),i=Number(t.exp)*1e3;return Date.now()+300*1e3>i}catch{return!0}}async ensureValidToken(){if(this.isTokenExpired()){if(this.refreshToken)try{await this.refreshAccessToken();return}catch{}this.addition.username&&this.addition.password&&await this.login()}}async refreshAccessToken(){let t=await(await fetch(ZK,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({RefreshToken:this.refreshToken})})).json();if(!t.AccessToken)throw new Error("[Degoo] refresh token failed");this.accessToken=t.AccessToken,await this.saveTokens()}async login(){let t=await(await fetch(XK,{method:"POST",headers:{"Content-Type":"application/json",Origin:"https://app.degoo.com"},body:JSON.stringify({GenerateToken:!0,Username:this.addition.username,Password:this.addition.password})})).json();if(t.RefreshToken)this.refreshToken=t.RefreshToken,await this.refreshAccessToken();else if(t.Token)this.accessToken=t.Token,this.refreshToken="";else throw new Error("[Degoo] login failed: no valid token");await this.saveTokens()}async apiCall(e,t,i){await this.ensureValidToken(),i.Token!==void 0&&(i.Token=this.accessToken);let s=await(await fetch(eG,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":tG,Authorization:`Bearer ${this.accessToken}`},body:JSON.stringify({operationName:e,query:t,variables:i})})).json();if(s.errors&&s.errors.length>0){let o=s.errors[0];if(o.errorType==="Unauthorized")return await this.login(),i.Token=this.accessToken,this.apiCall(e,t,i);throw new Error(`[Degoo] GraphQL error: ${o.message}`)}return s.data}async getDevices(){let t=await this.apiCall("GetFileChildren5","query GetFileChildren5($Token: String! $ParentID: String $AllParentIDs: [String] $Limit: Int! $Order: Int! $NextToken: String ) { getFileChildren5(Token: $Token ParentID: $ParentID AllParentIDs: $AllParentIDs Limit: $Limit Order: $Order NextToken: $NextToken) { Items { ParentID } NextToken } }",{Token:this.accessToken,ParentID:"0",Limit:10,Order:3});if(this.rootId==="0"){let i=t?.getFileChildren5?.Items;i&&i.length>0&&(this.rootId=i[0].ParentID)}}async getFileChildren5(e){let t="query GetFileChildren5($Token: String! $ParentID: String $AllParentIDs: [String] $Limit: Int! $Order: Int! $NextToken: String ) { getFileChildren5(Token: $Token ParentID: $ParentID AllParentIDs: $AllParentIDs Limit: $Limit Order: $Order NextToken: $NextToken) { Items { ID ParentID Name Category Size CreationTime LastModificationTime LastUploadTime FilePath IsInRecycleBin DeviceID MetadataID } NextToken } }",i=[],n="";for(;;){let s={Token:this.accessToken,ParentID:e,Limit:1e3,Order:3};n&&(s.NextToken=n);let o=await this.apiCall("GetFileChildren5",t,s),a=o?.getFileChildren5?.Items||[];if(i.push(...a),n=o?.getFileChildren5?.NextToken||"",!n)break}return i}async getOverlay4(e){return(await this.apiCall("GetOverlay4","query GetOverlay4($Token: String!, $ID: IDType!) { getOverlay4(Token: $Token, ID: $ID) { ID ParentID Name Category Size CreationTime LastModificationTime LastUploadTime URL FilePath IsInRecycleBin DeviceID MetadataID } }",{Token:this.accessToken,ID:{FileID:e}}))?.getOverlay4}async mkdir(e,t){await this.apiCall("SetUploadFile3","mutation SetUploadFile3($Token: String!, $FileInfos: [FileInfoUpload3]!) { setUploadFile3(Token: $Token, FileInfos: $FileInfos) }",{Token:this.accessToken,FileInfos:[{Checksum:rG,Name:t,CreationTime:Date.now(),ParentID:e,Size:0}]})}async move(e,t){await this.apiCall("SetMoveFile","mutation SetMoveFile($Token: String!, $Copy: Boolean, $NewParentID: String!, $FileIDs: [String]!) { setMoveFile(Token: $Token, Copy: $Copy, NewParentID: $NewParentID, FileIDs: $FileIDs) }",{Token:this.accessToken,Copy:!1,NewParentID:t,FileIDs:[e]})}async rename(e,t){await this.apiCall("SetRenameFile","mutation SetRenameFile($Token: String!, $FileRenames: [FileRenameInfo]!) { setRenameFile(Token: $Token, FileRenames: $FileRenames) }",{Token:this.accessToken,FileRenames:[{ID:e,NewName:t}]})}async remove(e){await this.apiCall("SetDeleteFile5","mutation SetDeleteFile5($Token: String!, $IsInRecycleBin: Boolean!, $IDs: [IDType]!) { setDeleteFile5(Token: $Token, IsInRecycleBin: $IsInRecycleBin, IDs: $IDs) }",{Token:this.accessToken,IsInRecycleBin:!1,IDs:[{FileID:e}]})}}});function IC(r){return r===1||r===2||r===10}function B3(r){let e=IC(r.Category),t=Number(r.Size)||0,i=Number(r.LastModificationTime);return{name:r.Name,size:e?0:t,is_dir:e,modified:i?new Date(i).toISOString():new Date().toISOString(),sign:r.ID,type:X(r.Name,e),raw_url:""}}var hg,b3=j(()=>{"use strict";Be();E3();hg=class{client;pathCache=new Map;constructor(e,t){this.client=new Ag(e,t)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFileChildren5(i)).map(s=>B3(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFileChildren5(o)).find(l=>l.Name===n);if(c){let l=B3(c);if(!l.is_dir)try{let d=await this.client.getOverlay4(c.ID);l.raw_url=d.URL||""}catch{l.raw_url_error="[Degoo] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t)),this.pathCache.clear()}async copy(){throw new Error("[Degoo] copy not supported")}async put(){throw new Error("[Degoo] upload not supported in stateless environment")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFileChildren5(s)).find(c=>c.Name===i);if(!a)throw new Error(`[Degoo] '${i}' not found`);return{id:a.ID,isDir:IC(a.Category)}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.client.getRootId();if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=this.client.getRootId();for(let s=0;sl.Name===i[s]&&IC(l.Category));if(!a)throw new Error(`[Degoo] Directory '${i[s]}' not found`);n=a.ID;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});function Dl(r){return new TextEncoder().encode(r)}function Q3(r,e=16){let t=e-r.length%e,i=new Uint8Array(r.length+t);return i.set(r),i.fill(t,r.length),i}function aG(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}function _3(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function S3(r,e,t){if(D3){let{createCipheriv:o}=await import("node:crypto"),a=o("aes-128-cbc",Buffer.from(e),Buffer.from(t));return new Uint8Array(Buffer.concat([a.update(Buffer.from(r)),a.final()]))}let i=await crypto.subtle.importKey("raw",e,{name:"AES-CBC"},!1,["encrypt"]),n=Q3(r),s=await crypto.subtle.encrypt({name:"AES-CBC",iv:t},i,n);return new Uint8Array(s)}async function cG(r,e){if(D3){let{createCipheriv:o}=await import("node:crypto"),a=o("aes-128-ecb",Buffer.from(e),null);return new Uint8Array(Buffer.concat([a.update(Buffer.from(r)),a.final()]))}let t=await crypto.subtle.importKey("raw",e,{name:"AES-CBC"},!1,["encrypt"]),i=Q3(r),n=new Uint8Array(i.length),s=new Uint8Array(16);for(let o=0;o0n;)e&1n&&(i=i*r%t),r=r*r%t,e>>=1n;return i}function fG(r){let e=new Uint8Array(128);e.set(r,112);let t=lG(e),i=BigInt("0x"+sG),n=uG(t,oG,i);return dG(n,128)}function AG(){let r=new Uint8Array(16),e=new Uint8Array(16);for(let t=0;t<16;t++){let i=Math.floor(Math.random()*k3.length),n=k3.charCodeAt(i);r[t]=n,e[15-t]=n}return{key:r,reversed:e}}async function F3(r){let e=Dl(JSON.stringify(r)),{key:t,reversed:i}=AG(),n=await S3(e,Dl(iG),Dl(v3)),s=await S3(n,i,Dl(v3));return{params:aG(s),encSecKey:_3(fG(t))}}async function P3(r){let e=Dl(JSON.stringify(r)),t=await cG(e,Dl(nG));return{eparams:_3(t).toUpperCase()}}var iG,nG,v3,k3,sG,oG,D3,T3=j(()=>{"use strict";iG="0CoJUm6Qyw8W8jud",nG="rFgB&h#%2?^eDg:Q",v3="0102030405060708",k3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",sG="e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7",oG=65537n,D3=typeof process<"u"&&process?.release?.name==="node"});var gg,U3=j(()=>{"use strict";T3();gg=class{addition;csrfToken="";musicU="";constructor(e){this.addition=e}init(){if(this.csrfToken=this.getCookie("__csrf"),this.musicU=this.getCookie("MUSIC_U"),!this.csrfToken||!this.musicU)throw new Error("[NeteaseMusic] cookie must contain __csrf and MUSIC_U")}getCookie(e){let i=new RegExp(e+"=([^(;|$)]+)").exec(this.addition.cookie);return i?i[1]:""}async request(e,t,i){let n={Cookie:this.addition.cookie};e.includes("music.163.com")&&(n.Referer="https://music.163.com");let s;if(i.crypto==="weapi"?(s=await F3(i.data),e=e.replace(/\/\w*api\//,"/weapi/")):(s=await P3({url:e.replace(/\/\w*api\//,"/api/"),method:t,params:i.data}),n["User-Agent"]="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36",e="https://music.163.com/api/linux/forward"),i.cookies){let a=i.cookies.map(c=>`${c.name}=${c.value}`).join("; ");n.Cookie=n.Cookie+"; "+a}return(await fetch(e,{method:t,headers:{...n,"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(s).toString()})).json()}async getSongObjs(e){return(await this.request("https://music.163.com/weapi/v1/cloud/get","POST",{crypto:"weapi",data:{limit:String(e),offset:"0"},cookies:[{name:"os",value:"pc"}]})).data||[]}async getSongLink(e){let t=await this.request("https://music.163.com/api/song/enhance/player/url","POST",{crypto:"linuxapi",data:{ids:"["+e+"]",br:"999000"},cookies:[{name:"os",value:"pc"}]});if(!t.data||t.data.length<1)throw new Error("[NeteaseMusic] song url not found");return t.data[0].url||""}async removeSong(e){await this.request("http://music.163.com/weapi/cloud/del","POST",{crypto:"weapi",data:{songIds:"["+e+"]"}})}}});function R3(r){return{name:r.fileName,size:r.fileSize,is_dir:!1,modified:r.addTime?new Date(r.addTime).toISOString():new Date().toISOString(),sign:String(r.songId),type:X(r.fileName,!1),thumb:r.simpleSong?.al?.picUrl||"",raw_url:""}}var pg,N3=j(()=>{"use strict";Be();U3();pg=class{client;songLimit;constructor(e){this.client=new gg(e),this.songLimit=e.song_limit||200}async init(){this.client.init()}async list(){return(await this.client.getSongObjs(this.songLimit)).map(t=>R3(t))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"";if(!n)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let o=(await this.client.getSongObjs(this.songLimit)).find(a=>a.fileName===n);if(o){let a=R3(o);try{a.raw_url=await this.client.getSongLink(a.sign)}catch{a.raw_url_error="[NeteaseMusic] failed to resolve song url"}return a}return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}async mkdir(){throw new Error("[NeteaseMusic] mkdir not supported")}async rename(){throw new Error("[NeteaseMusic] rename not supported")}async remove(e,t,i){let n=t.split("/").filter(Boolean),s=n[n.length-1],a=(await this.client.getSongObjs(this.songLimit)).find(c=>c.fileName===s);if(!a)throw new Error(`[NeteaseMusic] '${s}' not found`);await this.client.removeSong(String(a.songId))}async move(){throw new Error("[NeteaseMusic] move not supported")}async copy(){throw new Error("[NeteaseMusic] copy not supported")}async put(){throw new Error("[NeteaseMusic] upload not supported in stateless environment")}}});function Ho(r){return new TextEncoder().encode(r)}function K3(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function M3(r){let e=typeof r=="string"?Ho(r):r,t=await crypto.subtle.digest("SHA-256",e);return K3(new Uint8Array(t))}async function mg(r,e){let t=await crypto.subtle.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,r);return new Uint8Array(i)}function L3(r){return encodeURIComponent(r).replace(/%20/g,"%20").replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())}async function H3(r){let e=r.now??new Date,t=e.toISOString().slice(0,10),i=e.toISOString(),n=(BigInt(Math.floor(e.getTime()))*1000000n+BigInt(Math.floor(Math.random()*1e6))).toString(36),s=r.bodyRaw.length>0,o={host:r.apiHost,"x-hl-nonce":n,"x-hl-timestamp":i},a=[];s&&(o["content-type"]="application/json; charset=utf-8",a.push("content-type"));let c=[...a].sort(),l=c.map(R=>`${R}:${o[R]} -`).join(""),d=c.join(";"),u="";r.query&&Object.keys(r.query).length>0&&(u=Object.keys(r.query).sort().map(U=>`${L3(U)}=${L3(r.query[U]??"")}`).join("&"));let f=await M3(r.bodyRaw),h=[r.method,r.apiPath,u,l,d,f].join(` -`),g=`${t}/${r.accessToken}/${O3}`,p=[q3,i,g,await M3(h)].join(` -`),I=Ho(hG+r.secretKey),y=await mg(Ho(t),I),w=await mg(Ho(r.accessToken),y),C=await mg(Ho(O3),w),b=K3(await mg(Ho(p),C)),x=`${q3} Credential=${r.secretId}/${g}, SignedHeaders=${d}, Signature=${b}`;o.authorization=x;let _=`https://${r.apiHost}${r.apiPath}${u?"?"+u:""}`;return{headers:o,url:_}}function gG(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}var q3,hG,O3,yg,G3=j(()=>{"use strict";q3="HL6-HMAC-SHA256",hG="HL6",O3="hl6_request";yg=class{addition;accessToken="";host;persistRefreshToken;constructor(e,t){this.addition=e,this.host=e.host||"openapi.2dland.cn",this.persistRefreshToken=t}async init(){if(!this.addition.client_id||!this.addition.client_secret)throw new Error("[HalalCloud] client_id and client_secret are required");if(!this.addition.refresh_token)throw new Error("[HalalCloud] refresh_token \u4E3A\u7A7A\uFF1A\u8BF7\u4ECE HalalCloud \u5B98\u65B9\u83B7\u53D6 refresh_token");await this.refreshToken()}async refreshToken(){let e={refresh_token:this.addition.refresh_token,grant_type:"refresh_token",client_id:this.addition.client_id},t=Ho(JSON.stringify(e)),i=await H3({apiHost:this.host,secretId:this.addition.client_id,secretKey:this.addition.client_secret,accessToken:this.accessToken,method:"POST",apiPath:"/v6/oauth/refresh_token",bodyRaw:t}),s=await(await fetch(i.url,{method:"POST",headers:i.headers,body:t})).json().catch(()=>({}));if(!s.access_token)throw new Error("[HalalCloud] refresh token failed");this.accessToken=s.access_token,s.refresh_token&&(this.addition.refresh_token=s.refresh_token,this.persistRefreshToken&&await this.persistRefreshToken(s.refresh_token))}async request(e,t,i=!1){let n=t!==void 0?Ho(JSON.stringify(t)):new Uint8Array(0),s=await H3({apiHost:this.host,secretId:this.addition.client_id,secretKey:this.addition.client_secret,accessToken:this.accessToken,method:"POST",apiPath:e,bodyRaw:n}),o=await fetch(s.url,{method:"POST",headers:s.headers,body:n.length>0?n:void 0});if(o.status===401&&!i)return await this.refreshToken(),this.request(e,t,!0);let a=await o.text(),c;try{c=JSON.parse(a)}catch{c={}}if(o.status>=300)throw new Error(`[HalalCloud] API error: ${c.message||c.msg||`HTTP ${o.status}`}`);return c}async listFiles(e){let t=[],i="";for(;;){let n={parent:{path:e},list_info:{limit:100,token:i}},s=await this.request("/v6/userfile/list",n),o=s.files||[];if(t.push(...o),i=s.list_info?.token||"",!i||o.length===0)break}return t}async getFile(e){let t=await this.request("/v6/userfile/get",{path:e});return t.identity?t:null}async createDir(e,t){let i=gG(e,t);await this.request("/v6/userfile/create",{parent:e,path:i,name:t,dir:!0})}async rename(e,t){await this.request("/v6/userfile/rename",{path:e,name:t})}async move(e,t,i){let n={source:[{path:e,identity:i}],dest:{path:t}};await this.request("/v6/userfile/move",n)}async copy(e,t,i){let n={source:[{path:e,identity:i}],dest:{path:t}};await this.request("/v6/userfile/copy",n)}async remove(e,t,i){let n={source:[{path:e,identity:t,dir:i}]};await this.request("/v6/userfile/delete",n)}async getDownloadUrl(e,t){let i=await this.request("/v6/userfile/get_direct_download_address",{path:e,identity:t});if(!i.download_address)throw new Error("[HalalCloud] \u83B7\u53D6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25");return i.download_address}}});function wC(r){return typeof r=="number"?r:typeof r=="string"&&r.trim()!==""?Number(r):0}function z3(r){let e=r.dir===!0,t=wC(r.update_ts),i=wC(r.create_ts),n=t||i;return{name:r.name||"",size:e?0:wC(r.size),is_dir:e,modified:n?new Date(n*1e3).toISOString():new Date().toISOString(),sign:r.identity||r.path||"",type:X(r.name||"",e),raw_url:""}}function J3(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}function j3(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}var Ig,$3=j(()=>{"use strict";Be();G3();Ig=class{client;rootPath;constructor(e,t){this.client=new yg(e,t),this.rootPath=J3(e.root_folder_id||"/")}async init(){await this.client.init()}fullPath(e){let t=J3(e);return this.rootPath==="/"?t:t==="/"?this.rootPath:this.rootPath+t}async list(e,t){return(await this.client.listFiles(this.fullPath(t))).map(z3)}async get(e,t){let i=this.fullPath(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.listFiles(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l=z3(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.path||i,c.identity||"")}catch{l.raw_url_error="[HalalCloud] failed to resolve download url"}return l}}catch{}return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let n=this.fullPath(t).split("/").filter(Boolean),s=n.pop()||"new_folder",o="/"+n.join("/");await this.client.createDir(o==="//"?"/":o,s)}async rename(e,t,i){let n=this.fullPath(t);await this.client.rename(n,i)}async remove(e,t,i){let n=this.fullPath(t),s=await this.resolveEntry(n);await this.client.remove(s.path,s.identity,s.isDir)}async move(e,t,i,n,s){let o=this.fullPath(n),a=this.fullPath(t),c=await this.resolveEntry(o),l=o.split("/").filter(Boolean).pop()||"";await this.client.move(c.path,j3(a,l),c.identity)}async copy(e,t,i,n,s){let o=this.fullPath(n),a=this.fullPath(t),c=await this.resolveEntry(o),l=o.split("/").filter(Boolean).pop()||"";await this.client.copy(c.path,j3(a,l),c.identity)}async put(){throw new Error("[HalalCloud] upload not supported in stateless environment")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),o=(await this.client.listFiles(n==="//"?"/":n)).find(a=>a.name===i);if(!o)throw new Error(`[HalalCloud] '${i}' not found`);return{path:o.path||e,identity:o.identity||"",isDir:o.dir===!0}}}});function yG(r){let e=(r||"").trim();if(!e)return"";if(/^Bearer\s+/i.test(e))return e.replace(/^Bearer\s+/i,"").trim();if(/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(e))return e;let t={};for(let n of e.split(";")){let s=n.indexOf("=");if(s<0)continue;let o=n.slice(0,s).trim(),a=n.slice(s+1).trim();o&&(t[o]=a)}let i=n=>{let s=t[n]||"";return/^Bearer\s+/i.test(s)?s.replace(/^Bearer\s+/i,"").trim():s};return i("sso-token")||i("token")||i("authorization")||""}function V3(r){let e=4294967295;for(let t=0;t>>8;return(e^4294967295)>>>0}function FG(r){let e=Math.round(1e7*Math.random()).toString(),t=new Date,n=Math.round((t.getTime()+8*36e5)/1e3).toString(),s=t.getUTCFullYear(),o=String(t.getUTCMonth()+1).padStart(2,"0"),a=String(t.getUTCDate()).padStart(2,"0"),c=String(t.getUTCHours()+8).padStart(2,"0"),l=String(t.getUTCMinutes()).padStart(2,"0"),u=`${s}${o}${a}${c}${l}`.split("").map(p=>_G[parseInt(p)]).join(""),f=(V3(u)>>>0).toString(),h=[n,e,r,"web","3",f].join("|"),g=(V3(h)>>>0).toString();return`${f}=${n}-${e}-${g}`}function PG(r){let e=r.indexOf("?"),t=e>=0?r.substring(0,e):r,i=e>=0?r.substring(e+1):"",n=new URL(r),s=FG(n.pathname);return`${t}?${i}${i?"&":""}${s}`}var En,pG,mG,IG,wG,xG,CG,EG,BG,bG,vG,kG,SG,DG,QG,_G,wg,Y3=j(()=>{"use strict";En="https://yun.123pan.com/b/api",pG="https://login.123pan.com/api",mG=pG+"/user/sign_in";IG=En+"/user/info",wG=En+"/file/list/new",xG=En+"/file/download_info",CG=En+"/file/upload_request",EG=En+"/file/mod_pid",BG=En+"/file/rename",bG=En+"/file/trash",vG=En+"/file/upload_request",kG=En+"/file/s3_upload_object/auth",SG=En+"/file/s3_repare_upload_parts_batch",DG=En+"/file/upload_complete/v2",QG=(()=>{let r=new Array(256);for(let e=0;e<256;e++){let t=e;for(let i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;r[e]=t}return r})();_G=["a","d","e","f","g","h","l","m","y","i","j","n","o","p","k","q","r","s","t","u","b","c","v","w","s","z"];wg=class{addition;accessToken="";onTokenUpdate;constructor(e,t){this.addition=e,this.onTokenUpdate=t}getRootId(){return(this.addition.root_id||"0").trim()||"0"}async login(){if(this.addition.access_token){this.accessToken=this.addition.access_token;try{await this.userInfo(!0);return}catch{this.accessToken=""}}if(this.addition.cookie){let e=yG(this.addition.cookie);if(e){this.accessToken=e;try{await this.userInfo(!0),this.addition.access_token=e,this.onTokenUpdate?.(e);return}catch{this.accessToken=""}}}if(!this.addition.username||!this.addition.password)throw new Error("123 \u7F51\u76D8\u767B\u5F55\u51ED\u8BC1\u7F3A\u5931\uFF1A\u8BF7\u586B\u5199 123 \u7F51\u76D8\u624B\u673A\u53F7 + \u5BC6\u7801\uFF1B\u82E5\u90E8\u7F72\u73AF\u5883\uFF08\u5982 Cloudflare Workers \u6570\u636E\u4E2D\u5FC3 IP\uFF09\u5BC6\u7801\u767B\u5F55\u4F1A\u88AB\u98CE\u63A7\uFF0C\u53EF\u5728\u300CCookie\u300D\u5B57\u6BB5\u7C98\u8D34\u6D4F\u89C8\u5668\u767B\u5F55\u540E\u7684 Cookie\uFF08\u542B sso-token\uFF09\uFF0C\u6216\u586B\u5199\u6709\u6548\u7684\u8BBF\u95EE\u4EE4\u724C access_token\uFF08\u5728\u672C\u673A\u6D4F\u89C8\u5668\u767B\u5F55 https://www.123pan.com/ \u540E\u4ECE\u5F00\u53D1\u8005\u5DE5\u5177\u83B7\u53D6\uFF09\u3002");await this.signIn()}async signIn(){let t=/@/.test(this.addition.username)?{mail:this.addition.username,password:this.addition.password,type:2}:{passport:this.addition.username,password:this.addition.password,remember:!0},n=await(await fetch(mG,{method:"POST",headers:{"Content-Type":"application/json",origin:"https://yun.123pan.com",referer:"https://yun.123pan.com/","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",platform:"web","app-version":"3"},body:JSON.stringify(t)})).json();if(n.code!==200)throw new Error(`123 \u7F51\u76D8\u767B\u5F55\u5931\u8D25\uFF08${n.message||`code ${n.code}`}\uFF09\u3002\u5F53\u524D\u90E8\u7F72\u73AF\u5883\u7684\u51FA\u53E3 IP \u88AB 123 \u5224\u5B9A\u4E3A\u5883\u5916/\u964C\u751F\u8BBE\u5907\uFF08\u5982 Cloudflare Workers \u6570\u636E\u4E2D\u5FC3 IP\uFF09\uFF0C\u8D26\u53F7\u5BC6\u7801\u767B\u5F55\u4F1A\u88AB\u98CE\u63A7\u62E6\u622A\u3002\u53EF\u9760\u65B9\u6848\uFF1A\u2460 \u5728\u672C\u673A\u6D4F\u89C8\u5668\u767B\u5F55 https://www.123pan.com/\uFF08\u767B\u5F55\u4E00\u6B21\u6216\u4FEE\u6539\u5BC6\u7801\u53EF\u89E3\u9664\u8D26\u53F7\u98CE\u9669\uFF09\uFF0C\u6253\u5F00\u5F00\u53D1\u8005\u5DE5\u5177 \u2192 Application/Network \u2192 \u590D\u5236\u8BF7\u6C42\u5934\u4E2D\u7684 Bearer \u4EE4\u724C\uFF0C\u586B\u5165\u5B58\u50A8\u8BBE\u7F6E\u7684 access_token \u5B57\u6BB5\uFF08\u4EE4\u724C\u6709\u6548\u671F\u5185 API \u8BF7\u6C42\u4E0D\u53D7 IP \u98CE\u63A7\u5F71\u54CD\uFF09\uFF1B\u2461 \u6216\u5C06\u8BE5\u7F51\u76D8\u90E8\u7F72\u5230\u5883\u5185\u670D\u52A1\u5668\uFF08Node \u5BB9\u5668\u6A21\u5F0F\uFF09\u540E\u4F7F\u7528\u8D26\u53F7\u5BC6\u7801\u3002`);if(this.accessToken=n.data?.token||"",!this.accessToken)throw new Error("login returned empty token");this.addition.access_token=this.accessToken,this.onTokenUpdate?.(this.accessToken)}async request(e,t,i,n,s=!1){let o=async()=>{let l=PG(e),d={origin:"https://yun.123pan.com",referer:"https://yun.123pan.com/",authorization:this.accessToken?`Bearer ${this.accessToken}`:"","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",platform:this.addition.platform||"web","app-version":"3",Accept:"application/json"},u={method:t,headers:d};return i!==void 0&&t!=="GET"&&(d["Content-Type"]="application/json",u.body=JSON.stringify(i)),(await fetch(l,u)).json()},a=await o(),c=a?.code;if(c!==0&&c!==200){if(c===401&&!s){await this.login(),a=await o();let l=a?.code;if(l!==0&&l!==200)throw new Error(a?.message||`api error: code ${l}`);return a}throw new Error(a?.message||`api error: code ${c}`)}return a}async userInfo(e=!1){return(await this.request(IG,"GET",void 0,void 0,e)).data}async getFiles(e,t){let i=[],n=1,s="0",o=t?.maxPages??45;for(;;){if(t?.budget){if(t.budget.used>=t.budget.limit){console.warn(`[123Pan] \u5DF2\u8FBE Cloudflare subrequest \u9884\u7B97\u4E0A\u9650(${t.budget.limit} \u6B21)\uFF0C\u7ED3\u679C\u5DF2\u622A\u65AD\uFF08\u76EE\u5F55\u6587\u4EF6\u8FC7\u591A\u6216\u8DEF\u5F84\u8FC7\u6DF1\uFF09`);break}t.budget.used++}if(n>o){console.warn(`[123Pan] \u5206\u9875\u8D85\u8FC7 ${o} \u9875\uFF0C\u7ED3\u679C\u53EF\u80FD\u4E0D\u5B8C\u6574\uFF08\u76EE\u5F55\u6587\u4EF6\u8FC7\u591A\uFF09`);break}let a=new URLSearchParams({driveId:"0",limit:"100",next:s,orderBy:this.addition.order_by||"file_id",orderDirection:this.addition.order_direction||"desc",parentFileId:e,trashed:"false",SearchData:"",Page:String(n),OnlyLookAbnormalFile:"0",event:"homeListFile",operateType:"4",inDirectSpace:"false"}),c=`${wG}?${a.toString()}`,l=await this.request(c,"GET"),d=l.data?.InfoList||[];if(i.push(...d),t?.findName){let f=d.find(h=>h.FileName===t.findName&&(t.findIsDir===void 0||h.Type===1===t.findIsDir));if(f)return[f]}let u=String(l.data?.Next??"-1");if(!l.data||d.length===0||u==="-1")break;s=u,n++}return i}async getDownloadLink(e){let t={driveId:0,etag:e.Etag,fileId:e.FileId,fileName:e.FileName,s3keyFlag:e.S3KeyFlag,size:e.Size,type:e.Type},n=(await this.request(xG,"POST",t)).data?.DownloadUrl||"";if(!n)throw new Error("no download url");try{let a=new URL(n).searchParams.get("params");if(a){let c=atob(a);n=new URL(c).toString()}}catch{}let s=await fetch(n,{method:"GET",redirect:"manual",headers:{Referer:"https://yun.123pan.com/"}});return s.status===302?s.headers.get("location")||n:s.status<300&&(await s.json().catch(()=>({}))).data?.redirect_url||n}async mkdir(e,t){let i=await this.request(CG,"POST",{driveId:0,etag:"",fileName:t,parentFileId:parseInt(e,10)||0,size:0,type:1});return i.data?.FileId!=null?String(i.data.FileId):""}async rename(e,t){await this.request(BG,"POST",{driveId:0,fileId:parseInt(e,10),fileName:t})}async move(e,t){await this.request(EG,"POST",{fileIdList:e.map(i=>({FileId:parseInt(i,10)})),parentFileId:parseInt(t,10)})}async remove(e,t){await this.request(bG,"POST",{driveId:0,operation:!0,fileTrashInfoList:[t]})}async getPartUploadUrl(e,t,i){let s=(i===1?await this.getS3Auth(e,t,t+1):await this.getS3PreSignedUrls(e,t,t+1)).presignedUrls[String(t)];if(!s)throw new Error(`[123Pan] \u672A\u8FD4\u56DE\u7B2C ${t} \u5206\u7247\u7684\u4E0A\u4F20 URL`);return s}async completeUpload(e,t,i){await this.completeS3(e,t,i)}async createUpload(e,t,i,n){let s={driveId:0,duplicate:2,etag:n,fileName:e,parentFileId:t,size:i,type:0};return(await this.request(vG,"POST",s)).data}async getS3Auth(e,t,i){let n={StorageNode:e.StorageNode,bucket:e.Bucket,key:e.Key,partNumberEnd:i,partNumberStart:t,uploadId:e.UploadId};return(await this.request(kG,"POST",n)).data}async getS3PreSignedUrls(e,t,i){let n={bucket:e.Bucket,key:e.Key,partNumberEnd:i,partNumberStart:t,uploadId:e.UploadId,StorageNode:e.StorageNode};return(await this.request(SG,"POST",n)).data}async completeS3(e,t,i){await this.request(DG,"POST",{StorageNode:e.StorageNode,bucket:e.Bucket,fileId:e.FileId,fileSize:t,isMultipart:i,key:e.Key,uploadId:e.UploadId})}async uploadFile(e,t,i){let n="";try{n=(await import("node:crypto")).createHash("md5").update(i).digest("hex")}catch{n=""}let s=await this.createUpload(t,e,i.length,n);if(s.Reuse||s.Key==="")return;let o=16*1024*1024,a=1;i.length>o&&(a=Math.ceil(i.length/o));let c=i.length%o;c===0&&(c=o);let l;a===1?l=(await this.getS3Auth(s,1,2)).presignedUrls:l=(await this.getS3PreSignedUrls(s,1,a+1)).presignedUrls;for(let d=1;d<=a;d++){let u=(d-1)*o,f=d===a?c:o,h=l[String(d)];if(!h)throw new Error(`[123Pan] \u7F3A\u5C11\u7B2C ${d} \u5206\u7247\u7684\u4E0A\u4F20 URL`);let g=i.subarray(u,u+f),p=await fetch(h,{method:"PUT",body:g});if(p.status!==200){let I=await p.text().catch(()=>"");throw new Error(`[123Pan] \u4E0A\u4F20\u7B2C ${d}/${a} \u5206\u7247\u5931\u8D25\uFF1AHTTP ${p.status} ${I}`)}}await this.completeS3(s,i.length,a>1)}}});function TG(r){return Buffer.from(JSON.stringify(r),"utf8").toString("base64")}function W3(r){let e=JSON.parse(Buffer.from(r,"base64").toString("utf8"));if(!e||!e.bucket||!e.key||!e.uploadId)throw new Error("[123Pan] invalid upload session");return e}function X3(r){return{AccessKeyId:"",SecretAccessKey:"",SessionToken:"",Bucket:r.bucket,Key:r.key,UploadId:r.uploadId,FileId:r.fileId,StorageNode:r.storageNode,EndPoint:"",Reuse:!1}}function Z3(r){let e=r.Type===1;return{name:r.FileName,size:r.Size||0,is_dir:e,modified:r.UpdateAt?new Date(r.UpdateAt).toISOString():new Date().toISOString(),sign:String(r.FileId),type:X(r.FileName,e),thumb:"",raw_url:""}}var xg,eQ=j(()=>{"use strict";Be();He();Y3();xg=class{client;addition;pathIdCache=new Map;budget={used:0,limit:45};constructor(e,t){this.addition=e,this.client=new wg(e,t)}async init(){await this.client.login()}async resolveFolderId(e){let t=this.client.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=0,o=t,a="";for(let c=0;c{try{return decodeURIComponent(l)}catch{return l}})(),f=(await this.client.getFiles(o,{findName:d,findIsDir:!0,budget:this.budget})).find(h=>h.Type===1&&(h.FileName===l||h.FileName===d||String(h.FileId)===l||String(h.FileId)===d));if(!f)throw new Error(`folder not found: ${l}`);o=String(f.FileId),a="/"+n.slice(0,c+1).join("/"),this.pathIdCache.set(a,o)}return o}async ensureFolderId(e){let t=this.client.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=t,o="";for(let a=0;a{try{return decodeURIComponent(c)}catch{return c}})();o="/"+n.slice(0,a+1).join("/");let d=this.pathIdCache.get(o);if(d===void 0){let u=await this.client.getFiles(s,{findName:l,findIsDir:!0,budget:this.budget}),f=u.find(h=>h.Type===1&&(h.FileName===c||h.FileName===l));if(f)d=String(f.FileId);else{try{let h=await this.client.mkdir(s,l);h&&(d=h)}catch{}if(d===void 0){if(u=await this.client.getFiles(s,{findName:l,findIsDir:!0,budget:this.budget}),f=u.find(h=>h.Type===1&&h.FileName===l),!f)throw new Error(`[123Pan] \u81EA\u52A8\u521B\u5EFA\u76EE\u5F55\u5931\u8D25: ${c}`);d=String(f.FileId)}}this.pathIdCache.set(o,d)}s=d}return s}async resolveFile(e){let t=String(e||"").split("/").filter(Boolean);if(t.length===0)throw new Error("invalid path");let i=t[t.length-1],n=(()=>{try{return decodeURIComponent(i)}catch{return i}})(),s="/"+t.slice(0,t.length-1).join("/"),o=await this.resolveFolderId(s),c=(await this.client.getFiles(o,{findName:n,budget:this.budget})).find(l=>String(l.FileId)===i||String(l.FileId)===n||l.FileName===i||l.FileName===n);if(!c)throw new Error(`file not found: ${i}`);return{file:c,parentId:o,name:i}}async list(e,t){this.budget.used=0;let i=await this.resolveFolderId(t),s=(await this.client.getFiles(i,{budget:this.budget})).map(Z3);return de(s,this.addition.order_by||"file_name",this.addition.order_direction)}async get(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean);if(i.length===0||i[i.length-1]===this.client.getRootId()){let o=this.client.getRootId();return{name:o,size:0,is_dir:!0,modified:new Date().toISOString(),sign:o,type:1,raw_url:""}}let{file:n}=await this.resolveFile(t),s=Z3(n);if(n.Type!==1)try{s.raw_url=await this.client.getDownloadLink(n),s.raw_url||(s.raw_url_error="123 \u7F51\u76D8\u672A\u8FD4\u56DE\u4E0B\u8F7D\u94FE\u63A5\uFF08DownloadUrl \u4E3A\u7A7A\uFF09\u3002\u5E38\u89C1\u539F\u56E0\uFF1Aaccess_token/cookie \u5931\u6548\uFF0C\u6216\u8BE5\u6587\u4EF6\u5DF2\u5220\u9664/\u88AB\u9650\u5236\u4E0B\u8F7D\u3002\u8BF7\u5230\u7BA1\u7406\u540E\u53F0\u66F4\u65B0 access_token \u540E\u91CD\u8BD5\u3002")}catch(o){s.raw_url_error=`123 \u7F51\u76D8\u83B7\u53D6\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25\uFF1A${o?.message||String(o)}\u3002`+(String(o?.message||"").includes("\u767B\u5F55\u5931\u8D25")?"\u5F53\u524D\u90E8\u7F72\u51FA\u53E3 IP \u53EF\u80FD\u88AB 123 \u98CE\u63A7\uFF0C\u8BF7\u914D\u7F6E\u6709\u6548\u7684 access_token\uFF08\u6D4F\u89C8\u5668\u767B\u5F55 123 \u7F51\u76D8\u540E\u590D\u5236 Bearer \u4EE4\u724C\uFF09\u3002":"\u8BF7\u68C0\u67E5 access_token/cookie \u662F\u5426\u6709\u6548\uFF0C\u6216\u5728 123 \u7F51\u76D8\u7F51\u9875\u7AEF\u786E\u8BA4\u8BE5\u6587\u4EF6\u53EF\u4E0B\u8F7D\u3002"),console.warn(`[123Pan] getDownloadLink warning for ${n.FileName}:`,o.message)}else s.raw_url_error="\u8BE5\u6761\u76EE\u662F\u6587\u4EF6\u5939\uFF0C\u4E0D\u53EF\u4F5C\u4E3A\u6587\u4EF6\u4E0B\u8F7D\u3002";return s}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){this.budget.used=0;let{file:n}=await this.resolveFile(t);await this.client.rename(String(n.FileId),i)}async remove(e,t,i){this.budget.used=0;let{file:n}=await this.resolveFile(t);await this.client.remove(String(n.FileId),n)}async move(e,t,i,n,s){this.budget.used=0;let{file:o}=await this.resolveFile(n),a=String(t).split("/").filter(Boolean),c=await this.resolveFolderId("/"+a.join("/"));await this.client.move([String(o.FileId)],c)}async copy(){throw new Error("[123Pan] Copy is not supported by 123 Cloud Drive API")}async put(e,t,i){this.budget.used=0;let n=String(t||"").split("/").filter(Boolean);if(n.length===0)throw new Error("invalid upload path");let s=n[n.length-1],o=(()=>{try{return decodeURIComponent(s)}catch{return s}})(),a="/"+n.slice(0,n.length-1).join("/"),c=await this.ensureFolderId(a);await this.client.uploadFile(c,o,i)}async createUploadSession(e,t,i,n,s){this.budget.used=0;let o=await this.ensureFolderId(t||"/"),a=await this.client.createUpload(i,o,n,s||""),c=16*1024*1024;if(a.Reuse||a.Key==="")return{reuse:!0,partCount:0,chunkSize:c,session:""};let l=Math.max(1,Math.ceil(n/c)),d=TG({bucket:a.Bucket,key:a.Key,uploadId:a.UploadId,fileId:a.FileId,storageNode:a.StorageNode,size:n,partCount:l,chunkSize:c});return{reuse:!1,partCount:l,chunkSize:c,session:d}}async uploadPart(e,t,i){this.budget.used=0;let n=W3(e),s=await this.client.getPartUploadUrl(X3(n),t,n.partCount),o=await fetch(s,{method:"PUT",body:i});if(o.status!==200){let a=await o.text().catch(()=>"");throw new Error(`[123Pan] \u4E0A\u4F20\u7B2C ${t}/${n.partCount} \u5206\u7247\u5931\u8D25\uFF1AHTTP ${o.status} ${a}`)}}async completeUploadSession(e){this.budget.used=0;let t=W3(e);await this.client.completeUpload(X3(t),t.size,t.partCount>1)}}});function OG(r){return new Promise(e=>setTimeout(e,r))}function BC(r){if(!r)return r;try{let e=new URL(r);return e.searchParams.delete("access_token"),e.toString()}catch{return r}}function Pl(r){let e={...r||{}},t=(i,n)=>i==null||i===""?n:typeof i=="boolean"?i:String(i).toLowerCase()==="true";return e.use_online_api=t(e.use_online_api,!0),e.api_url_address=e.api_url_address||"https://api.oplist.org/baiduyun/renewapi",e.download_api=e.download_api||"official",e.custom_crack_ua=e.custom_crack_ua||"netdisk",e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e.upload_thread=e.upload_thread||"3",e.upload_api=e.upload_api||_l,e.use_dynamic_upload_api=t(e.use_dynamic_upload_api,!0),e.custom_upload_part_size=e.custom_upload_part_size||0,e.low_bandwith_upload_mode=t(e.low_bandwith_upload_mode,!1),e.only_list_video_file=t(e.only_list_video_file,!1),e}function rQ(r,e,t){r.local_mtime=String(t),r.local_ctime=String(e)}var UG,tQ,Ql,xC,CC,EC,RG,_l,NG,Hu,bC,iQ,qG,Cg,Fl,vC=j(()=>{"use strict";UG="https://openapi.baidu.com/oauth/2.0/token",tQ="https://pan.baidu.com/rest/2.0",Ql=4*1024*1024,xC=16*1024*1024,CC=32*1024*1024,EC=2048,RG=1*1024*1024,_l="https://d.pcs.baidu.com",NG=60*1e3,Hu=3,bC=1e3,iQ=5e3,qG=new Set([111,-6,20016]);Cg=class r{addition;accessToken="";onTokenUpdate;constructor(e,t){this.addition=Pl(e),this.onTokenUpdate=t,this.addition.access_token&&(this.accessToken=this.addition.access_token)}static apiUA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/425.6.30";async refreshToken(){let e=this.addition;if(e.use_online_api&&e.api_url_address){let s=new URL(e.api_url_address);s.searchParams.set("refresh_ui",e.refresh_token),s.searchParams.set("server_use","true"),s.searchParams.set("driver_txt","baiduyun_go");let o=await fetch(s.toString(),{headers:{"User-Agent":r.apiUA}}),a,c=await o.text();try{a=JSON.parse(c)}catch{throw new Error(`\u5728\u7EBF API \u5237\u65B0\u5931\u8D25 (HTTP ${o.status})\uFF1A${c.slice(0,300)||"\u975E JSON \u54CD\u5E94"}\u3002\u8BF7\u786E\u8BA4 refresh_token \u662F\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\u7684\u6709\u6548\u4EE4\u724C\u3002`)}if(!a.refresh_token||!a.access_token)throw new Error(a.text||(o.status!==200?`\u5728\u7EBF API \u8FD4\u56DE HTTP ${o.status}`:"empty token returned from official API, a wrong refresh token may have been used"));this.accessToken=a.access_token,e.refresh_token=a.refresh_token,e.access_token=a.access_token,this.onTokenUpdate?.({access_token:a.access_token,refresh_token:a.refresh_token});return}if(!e.client_id||!e.client_secret)throw new Error("empty ClientID or ClientSecret");let t=new URL(UG);t.searchParams.set("grant_type","refresh_token"),t.searchParams.set("refresh_token",e.refresh_token),t.searchParams.set("client_id",e.client_id),t.searchParams.set("client_secret",e.client_secret);let n=await(await fetch(t.toString())).json();if(n.error)throw new Error(`${n.error}: ${n.error_description||""}`);if(!n.refresh_token)throw new Error("empty refresh token returned from OAuth");this.accessToken=n.access_token||"",e.refresh_token=n.refresh_token,e.access_token=n.access_token||"",this.onTokenUpdate?.({access_token:n.access_token||"",refresh_token:n.refresh_token})}async login(){this.accessToken||await this.refreshToken()}async ensureToken(){this.accessToken||await this.refreshToken()}async request(e,t,i,n){await this.ensureToken();let s=async()=>{let a=new URL(e);a.searchParams.set("access_token",this.accessToken);for(let[g,p]of Object.entries(i||{}))a.searchParams.set(g,p);let c={"User-Agent":r.apiUA,Accept:"application/json"},l={method:t,headers:c};if(n&&t==="POST"){let g=new URLSearchParams;for(let[p,I]of Object.entries(n))g.set(p,I);c["Content-Type"]="application/x-www-form-urlencoded",l.body=g.toString()}let d=await fetch(a.toString(),l),u=await d.text(),f;try{f=JSON.parse(u)}catch{throw new Error(`req: [${e}] invalid JSON response, status ${d.status}`)}let h=typeof f.errno=="number"?f.errno:0;if(h!==0){if(qG.has(h)&&await this.refreshToken(),h===31023&&this.addition.download_api==="crack_video")return f;let g=`req: [${e}] ,errno: ${h}, refer to https://pan.baidu.com/union/doc/`;throw h===31023?new Error(`${g} \u767E\u5EA6\u7F51\u76D8\u98CE\u63A7 (Trigger security policy: Please try again later) \u2014 \u89E6\u53D1\u539F\u56E0\u901A\u5E38\u662F\uFF1A\u2460 \u5F53\u524D\u90E8\u7F72\u73AF\u5883\u7684\u51FA\u53E3 IP\uFF08\u5982 Cloudflare Workers \u6570\u636E\u4E2D\u5FC3 IP\uFF09\u88AB\u767E\u5EA6\u5B89\u5168\u7B56\u7565\u62E6\u622A\uFF1B\u2461 refresh_token \u65E0\u6548\u6216\u4ECE\u975E\u5B98\u65B9\u6E20\u9053\u83B7\u53D6\uFF0C\u5BFC\u81F4\u8D26\u53F7\u88AB\u98CE\u63A7\u3002\u8BF7\u786E\u8BA4\uFF1Arefresh_token \u5FC5\u987B\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\uFF08\u672C\u9A71\u52A8\u9ED8\u8BA4\u5DF2\u5F00\u542F"\u4F7F\u7528\u5728\u7EBF API"\uFF09\uFF1B\u98CE\u63A7\u4E3A\u4E34\u65F6\u6027\uFF0C\u7B49\u5F85\u6570\u5206\u949F\u81F3\u6570\u5C0F\u65F6\u540E\u81EA\u52A8\u89E3\u9664\uFF1B\u957F\u671F\u4F7F\u7528\u8BF7\u5C06\u540E\u7AEF\u90E8\u7F72\u5230\u5883\u5185\u670D\u52A1\u5668\uFF08\u6216\u914D\u7F6E HTTPS_PROXY \u5883\u5185\u4EE3\u7406\uFF09\u3002`):new Error(g)}return f},o;for(let a=0;ac.abort(),s>0?s:NG);try{let u=await(await fetch(o.toString(),{method:"POST",body:a,signal:c.signal})).text(),f=u.toLowerCase();if(f.includes("uploadid")&&(f.includes("invalid")||f.includes("expired")||f.includes("not found")))throw new Fl;let h;try{h=JSON.parse(u)}catch{h={}}let g=h?.error_code??0,p=h?.errno??0;if(g!==0||p!==0)throw new Error(`error uploading to baidu, response=${u}`)}finally{clearTimeout(l)}}getUploadUrl(e,t){let i=this.addition;return!i.use_dynamic_upload_api||!t,i.upload_api||_l}async requestForUploadUrl(e,t){let i=await this.request("https://d.pcs.baidu.com/rest/2.0/pcs/file","GET",{method:"locateupload",appid:"250528",path:e,uploadid:t,upload_version:"2.0"}),n="";if(i.servers&&i.servers.length>0?n=i.servers[0].server:i.bak_servers&&i.bak_servers.length>0&&(n=i.bak_servers[0].server),!n)throw new Error("upload URL is empty");return n}getSliceSize(e,t){let i=this.addition,n=i.custom_upload_part_size||0;if(t===0)return n!==0&&console.warn("[baidu_netdisk] CustomUploadPartSize is not supported for non-vip user, use DefaultSliceSize"),e>EC*Ql&&console.warn(`[baidu_netdisk] File size(${e}) is too large, may cause upload failure`),Ql;if(n!==0)return nxC?(console.warn(`[baidu_netdisk] CustomUploadPartSize(${n}) is greater than VipSliceSize, use VipSliceSize`),xC):t===2&&n>CC?(console.warn(`[baidu_netdisk] CustomUploadPartSize(${n}) is greater than SVipSliceSize, use SVipSliceSize`),CC):n;let s=Ql;if(t===1&&(s=xC),t===2&&(s=CC),i.low_bandwith_upload_mode){let o=Ql;for(;o<=s;){if(e<=EC*o)return o;o+=RG}}return e>EC*s&&console.warn(`[baidu_netdisk] File size(${e}) is too large, may cause upload failure`),s}async quota(){let e=await this.request("https://pan.baidu.com/api/quota","GET");return{total:e.total||0,used:e.used||0}}},Fl=class extends Error{constructor(){super("uploadid expired"),this.name="ErrUploadIDExpired"}}});function LG(r){return new Promise(e=>setTimeout(e,r))}function nQ(r){let e=r.server_filename||Ku(r.path),t=r.server_ctime||r.ctime||0,i=r.server_mtime||r.mtime||0,n=r.isdir===1;return{name:e,size:r.size||0,is_dir:n,created:t?new Date(t*1e3).toISOString():void 0,modified:i?new Date(i*1e3).toISOString():new Date().toISOString(),sign:String(r.fs_id),type:X(e,n),thumb:r.thumbs?.url3||"",raw_url:""}}function Ku(r){let e=String(r||"").split("/");return e[e.length-1]||""}function sQ(r){let e=r.lastIndexOf("/");return e<=0?"/":r.slice(0,e)}var MG,Eg,oQ=j(()=>{"use strict";Be();He();si();vC();vC();MG=new Error("empty files are not allowed by baidu netdisk");Eg=class{client;addition;uploadThread=3;vipType=0;pathCache=new Map;constructor(e,t){this.addition=Pl(e),this.client=new Cg(this.addition,t)}async init(){let e=this.addition,t=parseInt(e.upload_thread||"3",10);if(t<1&&(t=1),t>32&&(t=32),this.uploadThread=t,!this.client.accessToken)throw new Error("\u767E\u5EA6\u7F51\u76D8\u7F3A\u5C11\u8BBF\u95EE\u4EE4\u724C access_token\uFF08\u5FC5\u586B\uFF09\uFF1A\u8BF7\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\u540E\u586B\u5199\u3002");this.vipType=await this.client.uinfo()}baiduPath(e){let t="/"+String(e||"").replace(/\/+/g,"/");return t==="/"?"/":t.replace(/\/$/,"")}async list(e,t){let i=await this.client.getFiles(this.baiduPath(t)),n=i.map(nQ);for(let s of i)this.pathCache.set(s.path,{fsId:s.fs_id,parent:sQ(s.path)});return de(n,this.addition.order_by||"name",this.addition.order_direction)}async get(e,t){let i=this.baiduPath(t);if(i==="/")return{name:"/",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let n=sQ(i),s=Ku(i),o=(()=>{try{return decodeURIComponent(s)}catch{return s}})(),c=(await this.client.getFiles(n)).find(d=>d.server_filename===s||d.server_filename===o||d.path===i||String(d.fs_id)===s);if(!c)throw new Error(`file not found: ${s}`);this.pathCache.set(c.path,{fsId:c.fs_id,parent:n});let l=nQ(c);if(c.isdir!==1)try{let d=await this.getDownloadLink(c);l.raw_url=d.url,l.raw_url_headers=d.headers}catch(d){console.warn(`[baidu_netdisk] getDownloadLink warning for ${c.server_filename}:`,d.message)}return l}async getDownloadLink(e){let t=this.addition.download_api||"official";return t==="crack"?this.client.getCrackLink(e.path):t==="crack_video"?this.client.getCrackVideoLink(e.path,e.fs_id):this.client.getOfficialLink(e.fs_id)}async mkdir(e,t){await this.client.create(this.baiduPath(t),0,1,"","",0,0)}async rename(e,t,i){await this.client.manage("rename",[{path:this.baiduPath(t),newname:i}])}async remove(e,t,i){await this.client.manage("delete",[this.baiduPath(t)])}async move(e,t,i,n,s){let o=i[0]||Ku(n),a=this.baiduPath(t);await this.client.manage("move",[{path:this.baiduPath(n),dest:a,newname:o}])}async copy(e,t,i,n,s){let o=i[0]||Ku(n),a=this.baiduPath(t);await this.client.manage("copy",[{path:this.baiduPath(n),dest:a,newname:o}])}async put(e,t,i){if(i.length<1)throw MG;let n=i.length,s=this.baiduPath(t),o=Ku(s),a=Math.floor(Date.now()/1e3),c=a,l=a,d=$t(i),u=JSON.stringify([d]);try{await this.client.create(s,n,0,"",u,c,l);return}catch{}let f=this.client.getSliceSize(n,this.vipType),h=Math.max(1,Math.ceil(n/f)),g=n%f||f,p=[];for(let w=0;w{for(;;){let T=_++;if(T>=b.length)return;let D=b[T];if(D<0)continue;let B=D*f,Q=D+1===h?g:f,v=i.subarray(B,B+Q),E={method:"upload",access_token:this.client.accessToken,type:"tmpfile",path:s,uploadid:y.uploadid,partseq:String(D)},P=!1;for(let N=0;NU())),x)throw new Error("upload slice failed")}catch(T){if(T instanceof Fl){let D=await this.client.precreate(s,n,I,"","",l,c);if(D.return_type===2&&D.info)return;y=D;continue}throw T}await this.client.create(s,n,0,y.uploadid,I,c,l);return}throw new Error("upload failed after retries")}}}});function zG(){let r=Math.floor(Date.now()/1e3),e=Math.floor(9e6*Math.random()+1e6);return`3${r}${e}`}function aQ(r){return"["+r.map(e=>`{"fsid":${e}}`).join(",")+"]"}var vg,Yi,Bg,HG,KG,kC,Gu,GG,bg,cQ=j(()=>{"use strict";si();vg="https://photo.baidu.com/youai",Yi=vg+"/album/v1",Bg=vg+"/file/v1",HG=vg+"/file/v2",KG=vg+"/user/v1",kC="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Gu=4*1024*1024,GG=256*1024;bg=class{cookie;uk="";bdstoken="";showType;constructor(e){this.cookie=e.cookie||"",this.showType=e.show_type||"root"}async init(){if(!this.cookie)throw new Error("[BaiduPhoto] cookie is required");let e=await this.uInfo();this.uk=e.youa_id||"",this.bdstoken=await this.getBDStoken()}async request(e,t,i={}){let n=new URL(t);if(i.query)for(let[c,l]of Object.entries(i.query))l!==void 0&&n.searchParams.set(c,l);let s={Cookie:this.cookie,"User-Agent":kC,Referer:"https://photo.baidu.com/"},o;return i.form&&(s["Content-Type"]="application/x-www-form-urlencoded",o=new URLSearchParams(i.form).toString()),await fetch(n.toString(),{method:e,headers:s,body:o,redirect:i.redirect??"follow"})}async requestJson(e,t,i={}){let s=await(await this.request(e,t,i)).json().catch(()=>({})),o=s.errno;if(o!==void 0&&o!==0)throw new Error(`[BaiduPhoto] errno: ${o}, refer to https://photo.baidu.com/union/doc`);return s}async uInfo(){return this.requestJson(KG+"/getuinfo","GET")}async getBDStoken(){return(await this.requestJson("GET","https://pan.baidu.com/api/gettemplatevariable",{query:{fields:'["bdstoken","token","uk"]'}}))?.result?.bdstoken||""}async getAllFile(){let e=[],t="";for(;;){let i=await this.requestJson("GET",Bg+"/list",{query:{need_thumbnail:"1",need_filter_hidden:"0",cursor:t}});if(e.push(...i.list||[]),i.has_more!==1)break;t=i.cursor||""}return e}async getAllAlbum(){let e=[],t="";for(;;){let i=await this.requestJson("GET",Yi+"/list",{query:{need_amount:"1",limit:"100",cursor:t}});if(e.push(...i.list||[]),i.has_more!==1)break;t=i.cursor||""}return e}async getAllAlbumFile(e,t){let i=[],n="";for(;;){let s=await this.requestJson("GET",Yi+"/listfile",{query:{album_id:e,need_amount:"1",limit:"1000",passwd:"",cursor:n}});if(i.push(...s.list||[]),s.has_more!==1)break;n=s.cursor||""}return i}async getAlbumDetail(e){return this.requestJson("GET",Yi+"/detail",{query:{album_id:e}})}async linkFile(e){let t=await this.requestJson("GET",HG+"/download",{query:{fsid:String(e)}});if(!t.dlink)throw new Error("[BaiduPhoto] \u83B7\u53D6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25");return t.dlink}async linkAlbumFile(e,t,i,n){let o=(await this.request("HEAD",Yi+"/download",{query:{fsid:String(e),album_id:t,tid:String(i),uk:String(n)},redirect:"manual"})).headers.get("location");if(!o)throw new Error("[BaiduPhoto] \u76F8\u518C\u6587\u4EF6\u672A\u8FD4\u56DE 302 \u8DF3\u8F6C");return o}downloadHeaders(){return{Referer:"https://photo.baidu.com/","User-Agent":kC}}async createAlbum(e){let t=await this.requestJson("POST",Yi+"/create",{query:{title:e,tid:zG(),source:"0"}});if(!t.album_id)throw new Error("[BaiduPhoto] \u521B\u5EFA\u76F8\u518C\u5931\u8D25");return this.getAlbumDetail(t.album_id)}async joinAlbum(e){let t=await this.requestJson("GET",Yi+"/querypcode",{query:{pcode:e,web:"1"}});if(!t.pdata?.invite_code)throw new Error("[BaiduPhoto] \u9080\u8BF7\u7801\u65E0\u6548");let i=await this.requestJson("GET",Yi+"/join",{query:{invite_code:t.pdata.invite_code}});if(!i.album_id)throw new Error("[BaiduPhoto] \u52A0\u5165\u76F8\u518C\u5931\u8D25");return this.getAlbumDetail(i.album_id)}async setAlbumName(e,t,i){await this.requestJson("POST",Yi+"/settitle",{form:{title:i,album_id:e,tid:String(t)}})}async deleteAlbum(e,t,i){await this.requestJson("POST",Yi+"/delete",{form:{album_id:e,tid:String(t),delete_origin_image:i?"1":"0"}})}async deleteFile(e){await this.requestJson("GET",Bg+"/delete",{query:{fsid_list:`[${e}]`}})}async deleteAlbumFile(e,t,i,n,s){await this.requestJson("POST",Yi+"/delfile",{form:{album_id:t,tid:String(i),list:`[{"fsid":${e},"uk":${n}}]`,del_origin:s?"1":"0"}})}async addAlbumFile(e,t,i){await this.requestJson("GET",Yi+"/addfile",{query:{album_id:e,tid:String(t),list:aQ([i])}})}async copyAlbumFile(e,t,i,n){let s=await this.requestJson("POST",Yi+"/copyfile",{form:{album_id:t,tid:String(i),uk:String(n),list:aQ([e])}});if(!s.list||s.list.length===0)throw new Error("[BaiduPhoto] \u590D\u5236\u76F8\u518C\u6587\u4EF6\u5931\u8D25");return s.list[0].fsid}async upload(e,t,i){if(i.length===0)throw new Error("[BaiduPhoto] file size cannot be zero");let n=$t(i),s=$t(i.subarray(0,Math.min(GG,i.length))),o=[];for(let u=0;u0?r.thumburl[0]:"",raw_url:""}}function uQ(r){return{name:Ko(r.path),size:r.size,is_dir:!1,modified:DC(r.mtime),sign:`albumfile:${r.fsid}|${r.album_id}|${r.tid}|${r.uk}`,type:X(Ko(r.path),!1),thumb:r.thumburl&&r.thumburl.length>0?r.thumburl[0]:"",raw_url:""}}function SC(r){if(r.startsWith("albumfile:")){let[e,t,i,n]=r.slice(10).split("|");return{kind:"albumfile",fsid:Number(e),albumId:t,tid:Number(i),uk:Number(n)}}if(r.startsWith("album:")){let[e,t]=r.slice(6).split("|");return{kind:"album",fsid:0,albumId:e,tid:Number(t),uk:0}}return{kind:"file",fsid:Number(r.slice(5)),albumId:"",tid:0,uk:0}}var kg,fQ=j(()=>{"use strict";Be();cQ();kg=class{client;showType;albumCache=new Map;constructor(e){this.client=new bg(e),this.showType=e.show_type||"root"}async init(){await this.client.init()}async list(e,t){let i=t.split("/").filter(Boolean).join("/");if(!i){let o=[];if(this.showType!=="root_only_file"){let a=await this.client.getAllAlbum();for(let c of a)this.albumCache.set(c.title,c),o.push(lQ(c))}if(this.showType!=="root_only_album"){let a=await this.client.getAllFile();o.push(...a.map(dQ))}return o}let n=await this.findAlbum(i);if(!n)throw new Error(`[BaiduPhoto] \u76F8\u518C '${i}' \u672A\u627E\u5230`);return(await this.client.getAllAlbumFile(n.album_id,n.tid)).map(uQ)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=i.slice(0,-1).join("/");if(s){let o=await this.findAlbum(s);if(o){let c=(await this.client.getAllAlbumFile(o.album_id,o.tid)).find(l=>Ko(l.path)===n);if(c){let l=uQ(c);try{l.raw_url=await this.client.linkAlbumFile(c.fsid,c.album_id,c.tid,c.uk),l.raw_url_headers=this.client.downloadHeaders()}catch{l.raw_url_error="[BaiduPhoto] failed to resolve download url"}return l}}}else{if(this.showType!=="root_only_file"){let a=(await this.client.getAllAlbum()).find(c=>c.title===n);if(a)return lQ(a)}if(this.showType!=="root_only_album"){let a=(await this.client.getAllFile()).find(c=>Ko(c.path)===n);if(a){let c=dQ(a);try{c.raw_url=await this.client.linkFile(a.fsid),c.raw_url_headers=this.client.downloadHeaders()}catch{c.raw_url_error="[BaiduPhoto] failed to resolve download url"}return c}}}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){if(t.split("/").filter(Boolean).join("/"))throw new Error("[BaiduPhoto] \u76F8\u518C\u4E0D\u652F\u6301\u521B\u5EFA\u5B50\u76EE\u5F55");let s=await this.client.createAlbum("new_album");this.albumCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);if(n.kind!=="album")throw new Error("[BaiduPhoto] \u4EC5\u652F\u6301\u91CD\u547D\u540D\u76F8\u518C");await this.client.setAlbumName(n.albumId,n.tid,i),this.albumCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);n.kind==="album"?await this.client.deleteAlbum(n.albumId,n.tid,!1):n.kind==="file"?await this.client.deleteFile(n.fsid):await this.client.deleteAlbumFile(n.fsid,n.albumId,n.tid,n.uk,!1),this.albumCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=t.split("/").filter(Boolean).join("/");if(o.kind==="albumfile"){if(!a)await this.client.copyAlbumFile(o.fsid,o.albumId,o.tid,o.uk);else{let c=await this.findAlbum(a);if(!c)throw new Error(`[BaiduPhoto] \u76F8\u518C '${a}' \u672A\u627E\u5230`);let l=await this.client.copyAlbumFile(o.fsid,o.albumId,o.tid,o.uk);await this.client.addAlbumFile(c.album_id,c.tid,l)}await this.client.deleteAlbumFile(o.fsid,o.albumId,o.tid,o.uk,!1);return}throw new Error("[BaiduPhoto] \u4EC5\u76F8\u518C\u6587\u4EF6\u652F\u6301\u79FB\u52A8")}async copy(e,t,i,n,s){let o=await this.resolveEntry(n),a=t.split("/").filter(Boolean).join("/");if(o.kind==="file"&&a){let c=await this.findAlbum(a);if(!c)throw new Error(`[BaiduPhoto] \u76F8\u518C '${a}' \u672A\u627E\u5230`);await this.client.addAlbumFile(c.album_id,c.tid,o.fsid);return}if(o.kind==="albumfile"){let c=await this.client.copyAlbumFile(o.fsid,o.albumId,o.tid,o.uk);if(a){let l=await this.findAlbum(a);if(!l)throw new Error(`[BaiduPhoto] \u76F8\u518C '${a}' \u672A\u627E\u5230`);await this.client.addAlbumFile(l.album_id,l.tid,c)}return}throw new Error("[BaiduPhoto] \u4E0D\u652F\u6301\u8BE5\u590D\u5236\u64CD\u4F5C")}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o=n.join("/"),a=null;if(o&&(a=await this.findAlbum(o),!a))throw new Error(`[BaiduPhoto] \u76F8\u518C '${o}' \u672A\u627E\u5230`);await this.client.upload(a,s,new Uint8Array(i)),this.albumCache.clear()}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n=t.slice(0,-1).join("/");if(n){let s=await this.findAlbum(n);if(s){let a=(await this.client.getAllAlbumFile(s.album_id,s.tid)).find(c=>Ko(c.path)===i);if(a)return SC(`albumfile:${a.fsid}|${a.album_id}|${a.tid}|${a.uk}`)}}else{if(this.showType!=="root_only_file"){let o=(await this.client.getAllAlbum()).find(a=>a.title===i);if(o)return SC(`album:${o.album_id}|${o.tid}`)}if(this.showType!=="root_only_album"){let o=(await this.client.getAllFile()).find(a=>Ko(a.path)===i);if(o)return SC(`file:${o.fsid}`)}}throw new Error(`[BaiduPhoto] '${i}' not found`)}async findAlbum(e){if(this.albumCache.has(e))return this.albumCache.get(e);let t=await this.client.getAllAlbum();for(let i of t)this.albumCache.set(i.title,i);return this.albumCache.get(e)||null}}});function nz(r){return r===99||String(r).startsWith("401")}var Bn,JG,jG,$G,VG,YG,AQ,WG,XG,ZG,ez,tz,rz,iz,zu,Sg,hQ=j(()=>{"use strict";Bn="https://proapi.115.com",JG="https://passportapi.115.com",jG=Bn+"/open/upload/get_token",$G=Bn+"/open/upload/init",VG=Bn+"/open/folder/add",YG=Bn+"/open/ufile/files",AQ=Bn+"/open/folder/get_info",WG=Bn+"/open/ufile/copy",XG=Bn+"/open/ufile/move",ZG=Bn+"/open/ufile/downurl",ez=Bn+"/open/ufile/update",tz=Bn+"/open/ufile/delete",rz=Bn+"/open/user/info",iz=JG+"/open/refreshToken";zu=430004,Sg=class r{addition;accessToken="";refreshTokenValue="";onTokenUpdate;rateLimitMs=0;lastRequestAt=0;constructor(e,t){this.addition=e,this.accessToken=e.access_token||"",this.refreshTokenValue=e.refresh_token||"",this.onTokenUpdate=t;let i=e.limit_rate||0;i>0&&(this.rateLimitMs=1e3/i)}async waitRateLimit(){if(this.rateLimitMs<=0)return;let e=Date.now(),t=this.lastRequestAt+this.rateLimitMs-e;t>0&&await new Promise(i=>setTimeout(i,t)),this.lastRequestAt=Date.now()}async fetchWithRetry(e,t){let i;for(let n=0;n<3;n++)try{let s=new AbortController,o=setTimeout(()=>s.abort(),2e4);try{return await fetch(e,{...t,signal:s.signal})}finally{clearTimeout(o)}}catch(s){i=s,n<2&&await new Promise(o=>setTimeout(o,500*(n+1)))}throw i}static describeNetError(e){let t=e,i=t?.cause?.code||t?.cause?.cause?.code,n=t?.cause?.message||t?.cause?.cause?.message;return i?`${t?.message||"fetch failed"}\uFF08${i}\uFF09`:n?`${t?.message||"fetch failed"}\uFF08${n}\uFF09`:t?.message||String(e)}async refreshToken(){if(!this.refreshTokenValue)throw new Error("115 \u7F51\u76D8\u7F3A\u5C11 refresh_token\uFF08\u5FC5\u586B\uFF09");let e=new URLSearchParams;e.set("refresh_token",this.refreshTokenValue);let i=await(await this.fetchWithRetry(iz,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json();if(i.code!==0||!i.data?.access_token||!i.data?.refresh_token)throw new Error(`115 \u7F51\u76D8 token \u5237\u65B0\u5931\u8D25\uFF08code ${i.code} ${i.message}\uFF09\uFF1A\u8BF7\u786E\u8BA4 refresh_token \u6709\u6548\u3002`);this.accessToken=i.data.access_token,this.refreshTokenValue=i.data.refresh_token,this.addition.access_token=this.accessToken,this.addition.refresh_token=this.refreshTokenValue,this.onTokenUpdate?.({access_token:this.accessToken,refresh_token:this.refreshTokenValue})}async request(e,t,i,n,s,o=!1){await this.waitRateLimit();let a=async()=>{let d=new URL(e);for(let[I,y]of Object.entries(i||{}))y!==""&&d.searchParams.set(I,y);let u={Accept:"application/json","User-Agent":s||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/425.6.30"};this.accessToken&&(u.Authorization=`Bearer ${this.accessToken}`);let f={method:t,headers:u};if(n&&t==="POST"){let I=new URLSearchParams;for(let[y,w]of Object.entries(n))w!==""&&I.set(y,w);u["Content-Type"]="application/x-www-form-urlencoded",f.body=I.toString()}let h=await this.fetchWithRetry(d.toString(),f),g=await h.text(),p;try{p=JSON.parse(g)}catch{p={state:!1,code:h.status,message:g.slice(0,200)}}return{body:p,rawText:g}},c;try{({body:c}=await a())}catch(d){throw new Error(r.describeNetError(d))}let l=c?.state;if(l===!1||l===void 0){let d=Number(c?.code??0);if(nz(d)&&!o){await this.refreshToken(),c=(await a()).body;let f=c?.state;if(f!==!1&&f!==void 0)return c;throw new Error(`115 \u7F51\u76D8 API \u9519\u8BEF\uFF08code ${c?.code} ${c?.message}\uFF09`)}if(d===zu){let u=new Error("115 object not found");throw u.code=zu,u}throw new Error(`115 \u7F51\u76D8 API \u9519\u8BEF\uFF08code ${d} ${c?.message||""}\uFF09`)}return c}async userInfo(){return(await this.request(rz,"GET"))?.data}async getFiles(e){let t=await this.request(YG,"GET",{cid:e.cid,limit:String(e.limit),offset:String(e.offset),asc:e.asc?"1":"0",o:e.o||"",show_dir:e.showDir?"1":"0",cur:"1"});return{files:t.data||[],count:t.count||0}}async getFolderInfo(e){return(await this.request(AQ,"GET",{file_id:e}))?.data}async getFolderInfoByPath(e){return(await this.request(AQ,"POST",void 0,{path:e}))?.data}async mkdir(e,t){return(await this.request(VG,"POST",void 0,{pid:e,file_name:t}))?.data}async move(e,t){await this.request(XG,"POST",void 0,{file_ids:e,to_cid:t})}async updateFile(e,t){await this.request(ez,"POST",void 0,{file_id:e,file_name:t})}async copy(e,t){await this.request(WG,"POST",void 0,{pid:e,file_id:t,no_dupli:"1"})}async delFile(e,t){await this.request(tz,"POST",void 0,{file_ids:e,parent_id:t})}async downUrl(e,t){return(await this.request(ZG,"POST",void 0,{pick_code:e},t))?.data}async uploadGetToken(){return(await this.request(jG,"GET"))?.data}async uploadInit(e){return(await this.request($G,"POST",void 0,{file_name:e.fileName,file_size:String(e.fileSize),target:`U_1_${e.target}`,fileid:e.fileId,preid:e.preId,sign_key:e.signKey||"",sign_val:e.signVal||""}))?.data}}});function gQ(r){let e=r.fc==="0";return{name:r.fn,size:r.fs||0,is_dir:e,created:r.uppt?new Date(r.uppt*1e3).toISOString():void 0,modified:r.upt?new Date(r.upt*1e3).toISOString():new Date().toISOString(),sign:r.fid,type:X(r.fn,e),thumb:r.thumbnail||r.fco||"",raw_url:""}}function oz(r){let e={...r||{}};return e.order_by=e.order_by||"file_name",e.order_direction=e.order_direction||"asc",e.page_size=e.page_size||200,(e.root_folder_id||e.root_folder_id==="0")&&!e.root_id&&(e.root_id=String(e.root_folder_id)),e}var Dg,sz,Qg,pQ=j(()=>{"use strict";Be();He();si();hQ();Dg="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/425.6.30",sz=45;Qg=class r{client;addition;pageSize=200;parentPath="/";fidCache=new Map;budget={used:0,limit:sz};linkCache=new Map;static LINK_TTL_MS=1800*1e3;constructor(e,t){this.addition=oz(e),this.client=new Sg(this.addition,t)}async init(){let t=this.addition.page_size||200;t<=0&&(t=200),t>1150&&(t=1150),this.pageSize=t;try{await this.client.userInfo()}catch(n){if(n?.code===zu)throw n;let s=String(n?.message||n);throw s.includes("fetch")||s.includes("ECONN")||s.includes("abort")?new Error(`115 \u7F51\u76D8\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF08${s}\uFF09\uFF1Aproapi.115.com \u53EF\u80FD\u65E0\u6CD5\u4ECE\u5F53\u524D\u90E8\u7F72\u73AF\u5883\u8BBF\u95EE\uFF08\u6570\u636E\u4E2D\u5FC3 IP \u53EF\u80FD\u88AB 115 \u62E6\u622A\uFF09\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u66F4\u6362\u90E8\u7F72\u73AF\u5883\u3002`):new Error(`115 \u7F51\u76D8 token \u9A8C\u8BC1\u5931\u8D25\uFF1A${s}\u3002\u8BF7\u786E\u8BA4 access_token / refresh_token \u6709\u6548\u3002`)}let i=this.getRootId();if(i!=="0")try{let n=await this.client.getFolderInfo(i);if(n.file_id!=="0"){this.parentPath=`/${n.file_name}`;let s=[...n.paths||[]].reverse();for(let o of s)this.parentPath=`/${o.file_name}${this.parentPath}`}}catch(n){console.warn("[115open] init root path resolve failed:",n.message)}}getRootId(){return(this.addition.root_id||"0").trim()||"0"}reserve(){return this.budget.used>=this.budget.limit?(console.warn(`[115open] \u5DF2\u8FBE Cloudflare subrequest \u9884\u7B97\u4E0A\u9650(${this.budget.limit})\uFF0C\u7ED3\u679C\u5DF2\u622A\u65AD`),!1):(this.budget.used++,!0)}async list(e,t){this.budget.used=0;let i=await this.resolveFolderId(t),n=[],s=0;for(;this.reserve();){let{files:o,count:a}=await this.client.getFiles({cid:i,limit:this.pageSize,offset:s,asc:this.addition.order_direction==="asc",o:this.addition.order_by||"file_name",showDir:!0});for(let c of o)n.push(gQ(c)),this.fidCache.set(c.fid,c.fid);if(n.length>=a||o.length===0)break;s+=o.length}return de(n,this.addition.order_by||"file_name",this.addition.order_direction)}async resolveFolderId(e){let t=this.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=this.fidCache.get(i);if(n)return n;let s=`/${t==="0"?"":t}${i==="/"?"":i}`;try{if(!this.reserve())throw new Error("subrequest budget exceeded");let l=await this.client.getFolderInfoByPath(s);if(l.file_id)return this.fidCache.set(i,l.file_id),l.file_id}catch(l){if(l?.code!==zu&&l?.code!==990002)throw l}let o=i.split("/").filter(Boolean),a=t,c="";for(let l of o){let d=(()=>{try{return decodeURIComponent(l)}catch{return l}})();c=`${c}/${l}`;let u=this.fidCache.get(c);if(u){a=u;continue}if(!this.reserve())throw new Error("subrequest budget exceeded");let{files:f}=await this.client.getFiles({cid:a,limit:1e3,offset:0,asc:!0,o:"file_name",showDir:!0}),h=f.find(g=>g.fc==="0"&&(g.fn===l||g.fn===d||g.fid===l));if(!h)throw new Error(`folder not found: ${l}`);a=h.fid,this.fidCache.set(c,a)}return a}async resolveFile(e){let t="/"+String(e||"").split("/").filter(Boolean).join("/"),i=t.split("/").filter(Boolean),n=i.pop()||"";if(!n)throw new Error(`file not found: ${t}`);let s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o="/"+i.join("/"),a=await this.resolveFolderId(o),c=0;for(;;){if(!this.reserve())throw new Error("subrequest budget exceeded");let{files:l,count:d}=await this.client.getFiles({cid:a,limit:Math.max(this.pageSize,1e3),offset:c,asc:!0,o:"file_name",showDir:!0}),u=l.find(f=>f.fn===n||f.fn===s||f.fid===n||f.fid===s);if(u)return u;if(l.length===0||c+l.length>=d)break;c+=l.length}throw new Error(`file not found: ${n}`)}async get(e,t){this.budget.used=0;let i="/"+String(t||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${this.getRootId()}`)return{name:this.getRootId(),size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,raw_url:""};let n=await this.resolveFile(t),s=gQ(n);if(n.fc!=="0"&&n.pc)try{let o=`${n.fid}|${Dg}`,a=this.linkCache.get(o);if(a&&a.expire>Date.now())s.raw_url=a.url,s.raw_url_headers={"User-Agent":Dg};else{if(!this.reserve())throw new Error("subrequest budget exceeded");let l=(await this.client.downUrl(n.pc,Dg))[n.fid];l?.url?.url&&(s.raw_url=l.url.url,s.raw_url_headers={"User-Agent":Dg},this.linkCache.set(o,{url:l.url.url,expire:Date.now()+r.LINK_TTL_MS}))}}catch(o){String(o?.message||o).includes("406")?console.warn("[115open] downurl \u914D\u989D\u7528\u5C3D\uFF08406\uFF09\uFF1A\u5DF2\u4F7F\u7528\u7F13\u5B58\u6216\u7A0D\u540E\u91CD\u8BD5"):console.warn(`[115open] downUrl warning for ${n.fn}:`,o.message)}return s}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.mkdir(o,n)}async rename(e,t,i){this.budget.used=0;let n=await this.resolveFile(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.updateFile(n.fid,i)}async remove(e,t,i){this.budget.used=0;let n=await this.resolveFile(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.delFile(n.fid,n.pid||this.getRootId())}async move(e,t,i,n,s){this.budget.used=0;let o=await this.resolveFile(n),a=await this.resolveFolderId(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.move(o.fid,a)}async copy(e,t,i,n,s){this.budget.used=0;let o=await this.resolveFile(n),a=await this.resolveFolderId(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.copy(a,o.fid)}async put(e,t,i){if(i.length<1)throw new Error("115 \u7F51\u76D8\u4E0D\u5141\u8BB8\u4E0A\u4F20\u7A7A\u6587\u4EF6");this.budget.used=0;let n=String(t||"").split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/"),c=await this.resolveFolderId(o),l=i.length,d=(await _o(i)).toUpperCase(),u=Math.min(128*1024,l),f=(await _o(i.subarray(0,u))).toUpperCase();if(!this.reserve())throw new Error("subrequest budget exceeded");let h=await this.client.uploadInit({fileName:s,fileSize:l,target:c,fileId:d,preId:f});if(h.status===2)return;if([6,7,8].includes(h.status)&&h.sign_check){let p=h.sign_check.split("-"),I=parseInt(p[0],10),y=parseInt(p[1],10);if(Number.isFinite(I)&&Number.isFinite(y)){let w=(await _o(i.subarray(I,y+1))).toUpperCase();if(!this.reserve())throw new Error("subrequest budget exceeded");if(h=await this.client.uploadInit({fileName:s,fileSize:l,target:c,fileId:d,preId:f,signKey:h.sign_key,signVal:w}),h.status===2)return}}if(!this.reserve())throw new Error("subrequest budget exceeded");let g=await this.client.uploadGetToken();if(!h.bucket||!h.object||!g.endpoint)throw new Error("115 \u4E0A\u4F20\u521D\u59CB\u5316\u5931\u8D25\uFF1A\u7F3A\u5C11 OSS \u4E0A\u4F20\u4FE1\u606F");await this.ossPutObject(g,h,i)}async ossPutObject(e,t,i){let s=`${(e.endpoint.startsWith("http")?e.endpoint:`https://${e.endpoint}`).replace(/\/$/,"")}/${t.object}`,o=Buffer.from(t.callback?.callback||"","utf8").toString("base64"),a=Buffer.from(t.callback?.callback_var||"","utf8").toString("base64"),c=new Date().toUTCString(),l="application/octet-stream",d=`x-oss-callback:${o} +--${a}--`),f=Buffer.concat([d,i,u]);await this.request(`${RQ}/files?${o.toString()}`,{method:"POST",headers:{"Content-Type":`multipart/related; boundary=${a}`},body:f})}else{let o=new URLSearchParams({uploadType:"resumable",supportsAllDrives:"true"});await this.ensureToken();let a=await fetch(`${RQ}/files?${o.toString()}`,{method:"POST",headers:{Authorization:`Bearer ${this.accessToken}`,"Content-Type":"application/json","X-Upload-Content-Type":n,"X-Upload-Content-Length":String(i.length)},body:JSON.stringify({name:t,parents:[e]})});if(!a.ok)throw new Error(`[GoogleDrive] Resumable upload init failed: ${a.status}`);let c=a.headers.get("location");if(!c)throw new Error("[GoogleDrive] No upload URL returned");let l=0;for(;l{try{return decodeURIComponent(o)}catch{return o}})(),c=i.slice(0,s+1).join("/");if(this.pathCache.has(c)){n=this.pathCache.get(c);continue}let d=(await this.listFiles(n)).find(u=>u.name===o||u.name===a||u.id===o);if(!d)throw new Error(`[GoogleDrive] Path '${o}' not found`);n=d.id,this.pathCache.set(c,n)}return n}async resolveParentAndName(e){let t=e.split("/").filter(Boolean),i=t.pop()||"unnamed",n="/"+t.join("/");return{parentId:await this.resolveFileId(n),name:i}}}});function qQ(r){return{name:r.name,size:r.size?parseInt(r.size,10):0,is_dir:r.mimeType===tf,modified:r.modifiedTime||r.createdTime||new Date().toISOString(),sign:"",type:r.mimeType===tf?1:0,thumb:r.thumbnailLink||"",raw_url:""}}var kg,OQ=J(()=>{"use strict";He();GC();NQ();kg=class{client;addition;constructor(e){this.addition=e,this.client=new vg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.client.resolveFileId(t),s=(await this.client.listFiles(i)).map(qQ);return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=await this.client.resolveFileId(t),n=await this.client.getFile(i).catch(()=>null);if(n){let a=qQ(n);return a.raw_url=this.client.getDownloadUrl(i),a.raw_url_headers=this.client.getDownloadHeaders(),a}let s=t.split("/").filter(Boolean),o=s[s.length-1]||"root";try{return await this.client.listFiles(i),{name:o,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{}return{name:o,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}async mkdir(e,t){let{parentId:i,name:n}=await this.client.resolveParentAndName(t);await this.client.mkdir(i,n)}async rename(e,t,i){let n=await this.client.resolveFileId(t);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.client.resolveFileId(t);await this.client.remove(n)}async move(e,t,i,n,s){let o=await this.client.resolveFileId(n),a=n.split("/").filter(Boolean);a.pop();let c=await this.client.resolveFileId("/"+a.join("/")),l=await this.client.resolveFileId(t);await this.client.move(o,c,l)}async copy(e,t,i,n,s){let o=await this.client.resolveFileId(n),a=n.split("/").filter(Boolean).pop()||"copy",c=await this.client.resolveFileId(t);await this.client.copy(o,c,a)}async put(e,t,i){let{parentId:n,name:s}=await this.client.resolveParentAndName(t);await this.client.putFile(n,s,i)}}});function Bz(r="Quark"){return r==="UC"?Ez:Cz}function MQ(r,e,t){let i=r.split(";").map(o=>o.trim()).filter(Boolean),n=i.findIndex(o=>{let a=o.indexOf("=");return a!==-1&&o.substring(0,a).trim()===e}),s=`${e}=${t}`;return n!==-1?i[n]=s:i.push(s),i.join("; ")}function LQ(r,e){let t=r.split(/,(?=[^;]+=[^;]+)/);for(let i of t){let s=i.split(";")[0].trim(),o=s.indexOf("=");if(o!==-1&&s.substring(0,o).trim()===e)return s.substring(o+1).trim()}return null}function bz(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function vz(r){let e=r.split(".").pop()?.toLowerCase()||"",t=["mp4","mkv","avi","mov","flv","wmv","ts","m2ts","m4v","rmvb","webm"],i=["mp3","flac","aac","wav","ogg","m4a","opus"],n=["jpg","jpeg","png","gif","bmp","webp","heic","tiff"],s=["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","md"];return t.includes(e)?"video":i.includes(e)?"audio":n.includes(e)?"image":s.includes(e)?"doc":"others"}var Cz,Ez,Sg,HQ=J(()=>{"use strict";Cz={ua:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch",referer:"https://pan.quark.cn",api:"https://drive-m.quark.cn/1/clouddrive",pr:"ucpro"},Ez={ua:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) uc-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch",referer:"https://drive.uc.cn",api:"https://pc-api.uc.cn/1/clouddrive",pr:"UCBrowser"};Sg=class{addition;conf;cookie;onCookieUpdate;constructor(e,t){this.addition=e,this.conf=Bz(e.variant||"Quark"),this.cookie=e.cookie||"",this.onCookieUpdate=t}getRootFolderId(){return(this.addition.root_folder_id||"").trim()||"0"}getVariant(){return this.addition.variant||"Quark"}getConf(){return this.conf}getCookie(){return this.cookie}async request(e,t,i,n){let s=new URL(this.conf.api+e);if(s.searchParams.set("pr",this.conf.pr),s.searchParams.set("fr","pc"),i)for(let[u,f]of Object.entries(i))s.searchParams.set(u,f);let o={Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:this.conf.referer,"Content-Type":"application/json","User-Agent":this.conf.ua},a={method:t,headers:o};n!==void 0&&t!=="GET"&&(a.body=JSON.stringify(n));let c=await fetch(s.toString(),a),l=c.headers.get("set-cookie");if(l){let u=LQ(l,"__puus");if(u&&(this.cookie=MQ(this.cookie,"__puus",u),this.onCookieUpdate?.(this.cookie)),this.addition.variant==="Quark"){let f=LQ(l,"__pus");f&&(this.cookie=MQ(this.cookie,"__pus",f),this.onCookieUpdate?.(this.cookie))}}let d=await c.json();if(!c.ok||d.status!==void 0&&d.status>=400||d.code!==void 0&&d.code!==0){let u=d.message||d.msg||`HTTP ${c.status}`;throw new Error(`[Quark/UC] API error [${c.status}] ${e}: ${u}`)}return d}async getFiles(e){let t=[],i=1,n=100,s={pdir_fid:e,_size:String(n),_fetch_total:"1",fetch_all_file:"1",fetch_risk_file_name:"1"};if(this.addition.order_by&&this.addition.order_by!=="none"){let o=this.addition.order_direction||"asc";s._sort=`file_type:asc,${this.addition.order_by}:${o}`}for(;;){s._page=String(i);let o=await this.request("/file/sort","GET",s),a=o?.data?.list||[];if(a.length===0)break;for(let l of a)l.file_name=bz(l.file_name),this.addition.only_list_video_file?(!l.file||l.category===1)&&t.push(l):t.push(l);let c=o.metadata?.total??0;if(c>0&&i*n>=c||a.length{"use strict";Be();HQ();Dg=class{client;pathFileIdCache=new Map;constructor(e){this.client=new Sg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFileId(t);return(await this.client.getFiles(i)).map(KQ)}async get(e,t){let i=t.split("/").filter(Boolean),n=await this.resolveFileId(t),s=i[i.length-1]||"root",o=(()=>{try{return decodeURIComponent(s)}catch{return s}})(),a="/"+i.slice(0,i.length-1).join("/"),c=await this.resolveFileId(a),d=(await this.client.getFiles(c)).find(h=>h.fid===n||h.file_name===s||h.file_name===o),u="",f;try{let h=await this.client.getDownloadUrl(n,o);u=h.url,f=h.headers}catch(h){console.warn(`[Quark/UC] getDownloadUrl warning for ${s}:`,h.message)}if(d){let h=KQ(d);return h.raw_url=u,h.raw_url_headers=f,h}try{return await this.client.getFiles(n),{name:o||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{}return{name:o||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:u,raw_url_headers:f}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFileId(s);await this.client.mkdir(o,n)}async rename(e,t,i){let n=await this.resolveFileId(t);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.resolveFileId(t);await this.client.remove([n])}async move(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.move([o],a)}async copy(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.copy([o],a)}async put(e,t,i){throw new Error("[Quark/UC] Direct put not supported in stateless environment")}async resolveFileId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.client.getRootFolderId();if(this.pathFileIdCache.has(t))return this.pathFileIdCache.get(t);let i=t.split("/"),n=this.client.getRootFolderId();for(let s=0;s{try{return decodeURIComponent(o)}catch{return o}})(),l=(await this.client.getFiles(n)).find(u=>u.file_name===o||u.file_name===a||u.fid===o);if(!l)throw new Error(`[Quark/UC] Path '${o}' not found in folder '${n}'`);n=l.fid;let d="/"+i.slice(0,s+1).join("/");this.pathFileIdCache.set(d,n)}return n}}});var zQ,kz,JQ,Qg,jQ=J(()=>{"use strict";zQ="https://proapi.115.com/open",kz="https://passportapi.115.com",JQ="Mozilla/5.0 115disk/42.0.0.2",Qg=class{accessToken;refreshToken;addition;rootId;constructor(e){this.addition=e,this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||"",this.rootId=e.root_folder_id||"0"}getRootFolderId(){return this.rootId}async init(){if(!this.accessToken)throw new Error("[115] access_token is required");await this.getUserInfo()}async request(e,t={},i=zQ){let n=`${i}${e}`,o=await(await fetch(n,{method:"POST",headers:{"User-Agent":JQ,Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${this.accessToken}`},body:JSON.stringify(t)})).json().catch(()=>({}));if(o?.state===!1||o?.errno){if(o.errno===990001||o.errcode===990001||o.errno===10008)return await this.refreshAccessToken(),this.request(e,t,i);throw new Error(`[115] ${o.error||o.errmsg||"API error"} (${o.errno||o.errcode||""})`)}return o}async getUserInfo(){return this.request("/user/info",{},kz)}async refreshAccessToken(){let e=`${zQ}/oauth2/token`,i=await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":JQ},body:JSON.stringify({grant_type:"refresh_token",refresh_token:this.refreshToken})})).json().catch(()=>({}));if(i?.access_token)this.accessToken=i.access_token,this.addition.access_token=i.access_token,i.refresh_token&&(this.refreshToken=i.refresh_token,this.addition.refresh_token=i.refresh_token);else throw new Error(`[115] refresh token failed: ${JSON.stringify(i)}`)}async getFiles(e){let t=await this.request("/open/ufile/files",{cid:e,limit:1e3,offset:0,order:this.addition.order_by||"user_utime",asc:this.addition.order_direction==="asc"?1:0,show_dir:1,fc_mix:1});return t?.data&&Array.isArray(t.data)?t.data:t?.files&&Array.isArray(t.files)?t.files.map(i=>({Fid:i.fid??i.id,Fn:i.n??i.file_name??i.name,Fc:String(i.fc??i.category??(i.pid!==void 0&&!i.pid?"0":"1")),FS:Number(i.s??i.size??0),Sha1:i.sha1,Pc:i.pc??i.pick_code,Thumbnail:i.thumb??i.thumbnail,Upt:i.tu??i.upt??i.updated_at,Pid:i.pid??i.cid})):[]}async resolvePathId(e,t){let i=e.split("/").filter(Boolean).join("/");if(!i)return this.rootId;if(t.has(i))return t.get(i);let n=i.split("/"),s=this.rootId;for(let o=0;o{try{return decodeURIComponent(a)}catch{return a}})(),d=(await this.getFiles(s)).find(f=>f.Fn===a||f.Fn===c||f.Fid===a);if(!d)throw new Error(`[115] Path '${a}' not found in '${s}'`);s=d.Fid;let u="/"+n.slice(0,o+1).join("/");t.set(u,s)}return s}async mkdir(e,t){await this.request("/open/ufile/add",{pid:e,cname:t})}async rename(e,t){await this.request("/open/ufile/edit",{fid:e,fname:t})}async move(e,t){await this.request("/open/ufile/move",{pid:e,fid:t,no_dupli:"1"})}async copy(e,t){await this.request("/open/ufile/copy",{pid:e,fid:t,no_dupli:"1"})}async remove(e){await this.request("/open/ufile/delete",{fid:e,ignore_warn:1})}async getDownloadUrl(e){let t=await this.request("/open/ufile/downurl",{pickcode:e}),i=t?.url||t?.data?.url||"";if(!i)throw new Error("[115] empty download url");return i}}});function $Q(r){let e=r.Fc==="0",t=r.Upt?new Date(r.Upt*1e3).toISOString():new Date().toISOString();return{name:r.Fn,size:r.FS||0,is_dir:e,modified:t,sign:"",type:X(r.Fn,e),thumb:r.Thumbnail||"",raw_url:""}}var _g,VQ=J(()=>{"use strict";Be();jQ();_g=class{client;pathCache=new Map;constructor(e){this.client=new Qg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.client.resolvePathId(t,this.pathCache);return(await this.client.getFiles(i)).map($Q)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o="/"+i.slice(0,-1).join("/"),a=await this.client.resolvePathId(o,this.pathCache),l=(await this.client.getFiles(a)).find(d=>d.Fn===n||d.Fn===s||d.Fid===n);if(l){let d=$Q(l);if(!d.is_dir&&l.Pc)try{let u=await this.client.getDownloadUrl(l.Pc);d.raw_url=u}catch(u){d.raw_url_error=u.message}return d}try{let d=await this.client.resolvePathId(t,this.pathCache);return await this.client.getFiles(d),{name:s||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.client.resolvePathId(s,this.pathCache);await this.client.mkdir(o,n)}async rename(e,t,i){let n=await this.client.resolvePathId(t,this.pathCache);await this.client.rename(n,i)}async remove(e,t,i){let n=await this.client.resolvePathId(t,this.pathCache);await this.client.remove([n])}async move(e,t,i,n,s){let o=await this.client.resolvePathId(n,this.pathCache),a=await this.client.resolvePathId(t,this.pathCache);await this.client.move(a,[o])}async copy(e,t,i,n,s){let o=await this.client.resolvePathId(n,this.pathCache),a=await this.client.resolvePathId(t,this.pathCache);await this.client.copy(a,[o])}async put(e,t,i){throw new Error("[115] Direct put not supported in stateless environment")}}});var Fg,YQ=J(()=>{"use strict";Fg=class{address;addition;accessToken="";constructor(e){this.addition=e,this.address=(e.address||"").replace(/\/+$/,""),this.accessToken=e.access_token||""}async init(){if(!this.address)throw new Error("[Cloudreve] address is required");this.addition.username&&this.addition.password?await this.login():this.addition.refresh_token&&await this.refreshToken()}async login(){let t=await(await fetch(`${this.address}/api/v4/session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:this.addition.username,password:this.addition.password})})).json().catch(()=>({}));if(t?.token)this.accessToken=t.token,t.refresh_token&&(this.addition.refresh_token=t.refresh_token);else throw new Error("[Cloudreve] login failed")}async refreshToken(){let t=await(await fetch(`${this.address}/api/v4/session/renew`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.addition.refresh_token}`}})).json().catch(()=>({}));t?.token&&(this.accessToken=t.token)}async request(e,t,i,n=!1){let s={Authorization:`Bearer ${this.accessToken}`,"Content-Type":"application/json"};this.addition.custom_ua&&(s["User-Agent"]=this.addition.custom_ua);let o={method:e,headers:s};i&&(o.body=JSON.stringify(i));let a=await fetch(`${this.address}/api/v4${t}`,o);if(a.status===401&&!n)return this.addition.refresh_token?await this.refreshToken():this.addition.username&&await this.login(),this.request(e,t,i,!0);if(e==="DELETE"&&a.ok)return{};let c=await a.json().catch(()=>({}));if(a.status>=400)throw new Error(`[Cloudreve] ${c?.msg||c?.message||`HTTP ${a.status}`}`);return c}async listFiles(e){let t=[],i="",n=e==="/"?"/":e;do{let s={page_size:"100",uri:n,order_by:this.addition.order_by||"name",order_direction:this.addition.order_direction||"asc",page:"0"};i&&(s.next_page_token=i);let o=new URLSearchParams(s).toString(),a=await this.request("GET",`/file?${o}`);a?.files&&t.push(...a.files),i=a?.pagination?.next_token||""}while(i);return t}async getDownloadUrl(e){let i=(await this.request("POST","/file/url",{uris:[e],download:!0}))?.urls?.[0]?.url||"";if(!i)throw new Error("[Cloudreve] empty download url");return i}async mkdir(e,t){let i=`${e.replace(/\/+$/,"")}/${t}`;await this.request("POST","/file/create",{type:"folder",uri:i,error_on_conflict:!0})}async rename(e,t){let i=e.lastIndexOf("/"),s=`${i>=0?e.slice(0,i+1):"/"}${t}`;await this.request("POST","/file/rename",{uris:[e],new_uri:s})}async move(e,t,i){await this.request("POST","/file/move",{uris:e,dst:t,copy:i})}async remove(e){await this.request("DELETE","/file",{uris:e,unlink:!1,skip_soft_delete:!0})}}});function WQ(r){let e=r.type===1;return{name:r.name,size:r.size||0,is_dir:e,modified:r.updated_at||new Date().toISOString(),sign:"",type:X(r.name,e),raw_url:""}}function Ms(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}var Pg,XQ=J(()=>{"use strict";Be();YQ();Pg=class{client;constructor(e){this.client=new Fg(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.listFiles(Ms(t))).map(WQ)}async get(e,t){let i=Ms(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.listFiles(o==="//"?"/":o)).find(l=>l.name===s||l.path===i);if(c){let l=WQ(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(i)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{let a=await this.client.listFiles(i);return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let n=Ms(t).split("/").filter(Boolean),s=n.pop()||"new_folder",o="/"+n.join("/");await this.client.mkdir(o==="//"?"/":o,s)}async rename(e,t,i){await this.client.rename(Ms(t),i)}async remove(e,t,i){await this.client.remove([Ms(t)])}async move(e,t,i,n,s){await this.client.move([Ms(n)],Ms(t),!1)}async copy(e,t,i,n,s){await this.client.move([Ms(n)],Ms(t),!0)}async put(e,t,i){throw new Error("[Cloudreve] Direct put not supported in stateless environment")}}});var Sz,Tg,ZQ=J(()=>{"use strict";Sz="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Tg=class{addition;address;cookie;persistCookie;constructor(e,t){this.addition=e,this.address=(e.address||"").replace(/\/+$/,""),this.cookie=e.cookie||"",this.persistCookie=t}async init(){if(!this.address)throw new Error("[Cloudreve] address is required");this.cookie||await this.login()}getCookie(){return this.cookie}getUA(){return this.addition.custom_ua||Sz}async login(){if(!this.addition.username||!this.addition.password)throw new Error("[Cloudreve] username/password or cookie is required");let e=await fetch(`${this.address}/api/v3/user/session`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.getUA()},body:JSON.stringify({username:this.addition.username,Password:this.addition.password,captchaCode:""})}),t=await e.json().catch(()=>({}));if(t.code!==0)throw new Error(`[Cloudreve] login failed: ${t.msg}`);let i=this.extractSessionCookie(e);if(!i)throw new Error("[Cloudreve] login failed: no session cookie");this.cookie=i,this.persistCookie&&await this.persistCookie(this.cookie)}extractSessionCookie(e){let t=typeof e.headers.getSetCookie=="function"?e.headers.getSetCookie():[];if(Array.isArray(t)){for(let s of t)if(s&&s.includes("cloudreve-session="))return s.split(";")[0].split("=")[1]}let i=e.headers.get("set-cookie")||"",n=/cloudreve-session=([^;]+)/.exec(i);return n?n[1]:""}async request(e,t,i,n=!1){let s={Cookie:`cloudreve-session=${this.cookie}`,Accept:"application/json, text/plain, */*","User-Agent":this.getUA()},o={method:e,headers:s};i!==void 0&&(s["Content-Type"]="application/json",o.body=JSON.stringify(i));let a=await fetch(`${this.address}/api/v3${t}`,o),c=await a.json().catch(()=>({}));if(c.code===401&&t!=="/user/session"&&!n&&this.addition.username&&this.addition.password)return await this.login(),this.request(e,t,i,!0);if(c.code!==0)throw new Error(`[Cloudreve] ${c.msg||`HTTP ${a.status}`}`);let l=this.extractSessionCookie(a);return l&&(this.cookie=l),c.data}async listFiles(e){return(await this.request("GET",`/directory${e}`))?.objects||[]}async getDownloadUrl(e){let t=await this.request("PUT",`/file/download/${e}`);if(!t)throw new Error("[Cloudreve] empty download url");return t.startsWith("/api")?this.address+t:t}downloadHeaders(){return{Referer:this.address,"User-Agent":this.getUA()}}async mkdir(e){await this.request("PUT","/directory",{path:e})}async move(e,t,i){await this.request("PATCH","/object",{action:"move",src_dir:e,dst:t,src:i})}async rename(e,t){await this.request("PATCH","/object/rename",{action:"rename",new_name:t,src:e})}async copy(e,t,i){await this.request("POST","/object/copy",{src_dir:e,dst:t,src:i})}async remove(e){await this.request("DELETE","/object",e)}}});function e_(r){let e=r.type==="dir";return{name:r.name,size:r.size||0,is_dir:e,modified:r.date||r.create_date||new Date().toISOString(),sign:r.id,type:X(r.name,e),raw_url:""}}function ql(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}var Ug,t_=J(()=>{"use strict";Be();ZQ();Ug=class{client;constructor(e,t){this.client=new Tg(e,t)}async init(){await this.client.init()}async list(e,t){return(await this.client.listFiles(ql(t))).map(e_)}async get(e,t){let n=ql(t).split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.listFiles(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l=e_(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.id),l.raw_url_headers=this.client.downloadHeaders()}catch(d){l.raw_url_error=d.message}return l}}catch{}return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){await this.client.mkdir(ql(t))}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.src,i)}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.src)}async move(e,t,i,n,s){let o=await this.resolveEntry(n),c="/"+n.split("/").filter(Boolean).slice(0,-1).join("/");await this.client.move(c,ql(t),o.src)}async copy(e,t,i,n,s){let o=await this.resolveEntry(n),c="/"+n.split("/").filter(Boolean).slice(0,-1).join("/");await this.client.copy(c,ql(t),o.src)}async put(){throw new Error("[Cloudreve] Direct put not supported in stateless environment")}async resolveEntry(e){let i=ql(e).split("/").filter(Boolean),n=i[i.length-1],s="/"+i.slice(0,-1).join("/"),a=(await this.client.listFiles(s==="//"?"/":s)).find(d=>d.name===n);if(!a)throw new Error(`[Cloudreve] '${n}' not found`);let c=a.type==="dir";return{src:c?{dirs:[a.id],items:[]}:{dirs:[],items:[a.id]},isDir:c}}}});var Rg,r_=J(()=>{"use strict";Rg=class{url;addition;token="";constructor(e){this.addition=e,this.url=(e.url||"").replace(/\/+$/,""),this.token=e.token||""}async init(){if(!this.url)throw new Error("[OpenList] url is required");this.addition.username&&this.addition.password&&await this.login()}async login(){let t=await(await fetch(`${this.url}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:this.addition.username,password:this.addition.password})})).json().catch(()=>({}));if(t?.data?.token)this.token=t.data.token;else throw new Error("[OpenList] login failed")}async request(e,t="POST",i){let n={"Content-Type":"application/json"};this.token&&(n.Authorization=this.token),this.addition.meta_password&&(n["Meta-Password"]=this.addition.meta_password);let s={method:t,headers:n};return i&&(s.body=JSON.stringify(i)),await(await fetch(`${this.url}${e}`,s)).json()}async list(e){let t=await this.request("/api/fs/list","POST",{path:e,page:1,per_page:0});if(t.code!==200)throw new Error(`[OpenList] ${t.message}`);return t.data?.content||[]}async get(e){let t=await this.request("/api/fs/get","POST",{path:e});if(t.code!==200)throw new Error(`[OpenList] ${t.message}`);return t.data}async mkdir(e){let t=await this.request("/api/fs/mkdir","POST",{path:e});if(t.code!==200)throw new Error(`[OpenList] ${t.message}`)}async rename(e,t){let i=await this.request("/api/fs/rename","POST",{path:e,name:t});if(i.code!==200)throw new Error(`[OpenList] ${i.message}`)}async move(e,t,i){let n=await this.request("/api/fs/move","POST",{src_dir:e,dst_dir:t,names:i});if(n.code!==200)throw new Error(`[OpenList] ${n.message}`)}async copy(e,t,i){let n=await this.request("/api/fs/copy","POST",{src_dir:e,dst_dir:t,names:i});if(n.code!==200)throw new Error(`[OpenList] ${n.message}`)}async remove(e,t){let i=await this.request("/api/fs/remove","POST",{dir:e,names:t});if(i.code!==200)throw new Error(`[OpenList] ${i.message}`)}}});var Ng,i_=J(()=>{"use strict";Be();r_();Ng=class{client;constructor(e){this.client=new Rg(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.list(t)).map(n=>({name:n.name,size:n.size||0,is_dir:!!n.is_dir,modified:n.modified||new Date().toISOString(),sign:n.sign||"",type:X(n.name,!!n.is_dir),thumb:n.thumb||"",raw_url:n.raw_url||""}))}async get(e,t){try{let i=await this.client.get(t);return{name:i.name,size:i.size||0,is_dir:!!i.is_dir,modified:i.modified||new Date().toISOString(),sign:i.sign||"",type:X(i.name,!!i.is_dir),raw_url:i.raw_url||""}}catch{try{await this.client.list(t);let i=t.split("/").filter(Boolean);return{name:i[i.length-1]||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{let i=t.split("/").filter(Boolean);return{name:i[i.length-1]||"root",size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}}async mkdir(e,t){await this.client.mkdir(t)}async rename(e,t,i){await this.client.rename(t,i)}async remove(e,t,i){let n=t.split("/").filter(Boolean),s="/"+n.slice(0,-1).join("/");await this.client.remove(s,i.length?i:[n[n.length-1]])}async move(e,t,i,n,s){await this.client.move(e,t,i)}async copy(e,t,i,n,s){await this.client.copy(e,t,i)}async put(e,t,i){throw new Error("[OpenList] Direct put not supported in stateless environment")}}});var qg,n_=J(()=>{"use strict";qg=class{url;sid;pwd;constructor(e){this.url=(e.url||"").replace(/\/+$/,""),this.sid=e.sid||"",this.pwd=e.pwd||""}init(){if(!this.url)throw new Error("[OpenListShare] url is required");if(!this.sid)throw new Error("[OpenListShare] sid is required")}async request(e,t="POST",i){return await(await fetch(`${this.url}${e}`,{method:t,headers:{"Content-Type":"application/json"},body:i?JSON.stringify(i):void 0})).json()}sharePath(e){return"/@s/"+this.sid+(e==="/"?"":e)}async list(e){let t=await this.request("/api/fs/list","POST",{path:this.sharePath(e),password:this.pwd,refresh:!1,page:1,per_page:0});if(t.code!==200)throw new Error(`[OpenListShare] ${t.message}`);return t.data?.content||[]}downloadUrl(e){let t="/"+this.sid+e;return`${this.url}/sd${t}?pwd=${encodeURIComponent(this.pwd)}`}}});function s_(r){return{name:r.name,size:r.size||0,is_dir:r.is_dir,modified:r.modified||new Date().toISOString(),sign:r.sign||"",type:X(r.name,r.is_dir),thumb:r.thumb||"",raw_url:""}}function o_(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}var Og,a_=J(()=>{"use strict";Be();n_();Og=class{client;constructor(e){this.client=new qg(e)}async init(){this.client.init()}async list(e,t){return(await this.client.list(o_(t))).map(s_)}async get(e,t){let i=o_(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.list(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l=s_(c);return l.is_dir||(l.raw_url=this.client.downloadUrl(i)),l}}catch{}return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(){throw new Error("[OpenListShare] read-only share, mkdir not supported")}async rename(){throw new Error("[OpenListShare] read-only share, rename not supported")}async remove(){throw new Error("[OpenListShare] read-only share, remove not supported")}async move(){throw new Error("[OpenListShare] read-only share, move not supported")}async copy(){throw new Error("[OpenListShare] read-only share, copy not supported")}async put(){throw new Error("[OpenListShare] read-only share, upload not supported")}}});var Mg,c_=J(()=>{"use strict";Mg=class{url;token;constructor(e){this.url=(e.url||"").replace(/\/+$/,""),this.token=e.access_token||""}async init(){if(!this.url)throw new Error("[TelDrive] url is required");if(!this.token)throw new Error("[TelDrive] access_token is required")}async request(e,t="GET",i){let n={Authorization:`Bearer ${this.token}`,"Content-Type":"application/json"},s={method:t,headers:n};i&&(s.body=JSON.stringify(i));let o=await fetch(`${this.url}${e}`,s);if(t==="DELETE"&&o.ok)return{};let a=await o.json().catch(()=>({}));if(o.status>=400)throw new Error(`[TelDrive] ${a?.message||`HTTP ${o.status}`}`);return a}async listFiles(e){let t=await this.request(`/api/files?path=${encodeURIComponent(e)}`);return Array.isArray(t)?t:t?.files||[]}async mkdir(e){await this.request("/api/files/mkdir","POST",{path:e})}async move(e,t){await this.request("/api/files/move","POST",{ids:e,destination:t})}async remove(e){await this.request(`/api/files/${e}`,"DELETE")}downloadUrl(e){return`${this.url}/api/files/${e}`}downloadHeaders(){return{Authorization:`Bearer ${this.token}`}}}});function l_(r){let e=r.type==="folder";return{name:r.name,size:r.size||0,is_dir:e,modified:r.updatedAt||r.createdAt||new Date().toISOString(),sign:"",type:X(r.name,e),raw_url:""}}var Lg,d_=J(()=>{"use strict";Be();c_();Lg=class{client;pathCache=new Map;constructor(e){this.client=new Mg(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.listFiles(t)).map(l_)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let a=(await this.client.listFiles(s==="//"?"/":s)).find(c=>c.name===n);if(a){let c=l_(a);return c.is_dir||(c.raw_url=this.client.downloadUrl(a.id),c.raw_url_headers=this.client.downloadHeaders()),c}}catch{}try{return await this.client.listFiles(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){await this.client.mkdir(t)}async rename(e,t,i){throw new Error("[TelDrive] rename not supported")}async remove(e,t,i){let n=await this.resolveFileId(t);await this.client.remove(n)}async move(e,t,i,n,s){let o=await this.resolveFileId(n),a=await this.resolveFileId(t);await this.client.move([o],a)}async copy(e,t,i,n,s){throw new Error("[TelDrive] copy not supported")}async put(e,t,i){throw new Error("[TelDrive] Direct put not supported in stateless environment")}async resolveFileId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"/";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="",s="/";for(let o=0;ol.name===i[o]);if(!c)throw new Error(`[TelDrive] Path '${i[o]}' not found`);s=c.id,n=n?`${n}/${i[o]}`:`/${i[o]}`,this.pathCache.set(n,s)}return s}}});var Dz,rf,Hg,u_=J(()=>{"use strict";Dz="https://www.mediafire.com/api/1.5",rf="https://www.mediafire.com",Hg=class{cookie;sessionToken;chunkSize;orderBy;orderDirection;constructor(e){this.cookie=e.cookie||"",this.sessionToken=e.session_token||"",this.chunkSize=e.chunk_size||200,this.orderBy=e.order_by||"name",this.orderDirection=e.order_direction||"asc"}async init(){if(!this.cookie)throw new Error("[MediaFire] cookie is required");this.sessionToken||await this.getSessionToken()}async postForm(e,t){let i=new URLSearchParams({session_token:this.sessionToken,response_format:"json",...t});return await(await fetch(`${Dz}${e}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Cookie:this.cookie,"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)",Origin:rf,Referer:`${rf}/`},body:i.toString()})).json().catch(()=>({}))}async getSessionToken(){let i=(await(await fetch(`${rf}/application/get_session_token.php`,{method:"POST",headers:{Cookie:this.cookie,Origin:rf,Referer:`${rf}/`,"Content-Length":"0"}})).json().catch(()=>({})))?.response?.session_token;if(!i)throw new Error("[MediaFire] failed to get session token from cookie");this.sessionToken=i,this.addition_session_token=i}addition_session_token="";checkResult(e){if(e&&e!=="Success")throw new Error(`[MediaFire] API error: ${e}`)}async list(e){let t=[],i=1,n=!0;for(;n;){let s=await this.postForm("/folder/get_content.php",{folder_key:e,content_type:"folders",chunk:String(i),chunk_size:String(this.chunkSize),details:"yes",order_direction:this.orderDirection,order_by:this.orderBy,filter:""}),o=await this.postForm("/folder/get_content.php",{folder_key:e,content_type:"files",chunk:String(i),chunk_size:String(this.chunkSize),details:"yes",order_direction:this.orderDirection,order_by:this.orderBy,filter:""}),a=s.response?.folder_content?.folders||[],c=o.response?.folder_content?.files||[];for(let l of a)t.push({id:l.folderkey,name:l.name,size:0,isDir:!0,created:l.created});for(let l of c)t.push({id:l.quickkey,name:l.filename,size:parseInt(l.size,10)||0,isDir:!1,created:l.created});n=s.response?.folder_content?.more_chunks==="yes"||o.response?.folder_content?.more_chunks==="yes",i++}return t}async getDownloadUrl(e){let t=await this.postForm("/file/get_links.php",{quick_key:e,link_type:"direct_download"});this.checkResult(t.response?.result);let i=t.response?.links?.[0]?.direct_download||t.response?.links?.[0]?.normal_download;if(!i)throw new Error("[MediaFire] no download link found");return i}async mkdir(e,t){let i=await this.postForm("/folder/create.php",{parent_key:e,foldername:t});return this.checkResult(i.response?.result),i.response?.folder_key||""}async rename(e,t,i){if(i){let n=await this.postForm("/folder/update.php",{folder_key:e,foldername:t});this.checkResult(n.response?.result)}else{let n=await this.postForm("/file/update.php",{quick_key:e,filename:t});this.checkResult(n.response?.result)}}async move(e,t,i){if(i){let n=await this.postForm("/folder/move.php",{folder_key_src:e,folder_key_dst:t});this.checkResult(n.response?.result)}else{let n=await this.postForm("/file/move.php",{quick_key:e,folder_key:t});this.checkResult(n.response?.result)}}async copy(e,t,i){if(i){let n=await this.postForm("/folder/copy.php",{folder_key_src:e,folder_key_dst:t});this.checkResult(n.response?.result)}else{let n=await this.postForm("/file/copy.php",{quick_key:e,folder_key:t});this.checkResult(n.response?.result)}}async remove(e,t){if(t){let i=await this.postForm("/folder/delete.php",{folder_key:e});this.checkResult(i.response?.result)}else{let i=await this.postForm("/file/delete.php",{quick_key:e});this.checkResult(i.response?.result)}}}});var Kg,f_=J(()=>{"use strict";Be();u_();Kg=class{client;pathCache=new Map;constructor(e){this.client=new Hg(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFolderId(t);return(await this.client.list(i)).map(s=>({name:s.name,size:s.size,is_dir:s.isDir,modified:s.created?new Date(s.created).toISOString():new Date().toISOString(),sign:"",type:X(s.name,s.isDir),raw_url:""}))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveFolderId(s),c=(await this.client.list(o)).find(l=>l.name===n);if(c){let l={name:c.name,size:c.size,is_dir:c.isDir,modified:c.created?new Date(c.created).toISOString():new Date().toISOString(),sign:"",type:X(c.name,c.isDir),raw_url:""};if(!c.isDir)try{l.raw_url=await this.client.getDownloadUrl(c.id)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveFolderId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);await this.client.rename(n,i,s)}async remove(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);await this.client.remove(n,s)}async move(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);await this.client.move(o,c,a)}async copy(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);await this.client.copy(o,c,a)}async put(e,t,i){throw new Error("[MediaFire] Direct put not supported in stateless environment")}async resolveFolderId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="";for(let s=0;sl.isDir&&l.name===i[s]);if(!a)throw new Error(`[MediaFire] Folder '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveFolderId(n),a=(await this.client.list(s)).find(c=>c.name===i);if(!a)throw new Error(`[MediaFire] '${i}' not found`);return{id:a.id,isDir:a.isDir}}}});function ea(...r){return"/"+r.filter(Boolean).map(t=>t.replace(/^\/+|\/+$/g,"")).filter(Boolean).join("/")}var Qz,Gg,A_=J(()=>{"use strict";Qz="https://api.github.com",Gg=class{addition;mounts;constructor(e){this.addition=e,this.mounts=this.parseMounts(e.repo_structure||"")}parseMounts(e){let t=[];for(let i of e.split(";")){let n=i.trim();if(!n)continue;let s=n.indexOf(":");s>0&&n.slice(0,s).includes("/");let o="/",a=n;s>0&&!n.slice(s+1).startsWith("/")&&!n.slice(0,s).includes(".")&&(o="/"+n.slice(0,s).replace(/^\/+|\/+$/g,""),a=n.slice(s+1)),t.push({point:o==="/"?"/":o,repo:a})}return t}async init(){if(this.mounts.length===0)throw new Error("[GitHub Releases] repo_structure is required (format: [path:]org/repo)")}async get(e){let t={Accept:"application/vnd.github+json","User-Agent":"OpenList-TSWorker"};this.addition.token&&(t.Authorization=`Bearer ${this.addition.token}`);let i=await fetch(`${Qz}${e}`,{headers:t});if(i.status===404)return null;if(i.status>=400)throw new Error(`[GitHub Releases] HTTP ${i.status}`);return await i.json().catch(()=>null)}proxy(e){let t=this.addition.gh_proxy||"";return!t||e.startsWith("http")?e:t+e}mountForPath(e){let t=e.startsWith("/")?e:"/"+e,i=null;for(let n of this.mounts){let s=n.point==="/"?"/":n.point;(t===s||t.startsWith(s+"/"))&&(!i||s.length>(i.point==="/"?0:i.point.length))&&(i=n)}return i}async latestRelease(e){return this.get(`/repos/${e}/releases/latest`)}async allReleases(e){return await this.get(`/repos/${e}/releases`)||[]}async repoFiles(e){return await this.get(`/repos/${e}/contents`)||[]}async list(e){let t=this.mountForPath(e);if(!t)return[];let i=this.relPath(t,e),n=[];if(i===""&&e==="/"){for(let c of this.mounts)n.push({path:c.point,name:c.point==="/"?c.repo:c.point.split("/").filter(Boolean).pop()||c.repo,size:0,isDir:!0,modified:new Date().toISOString(),url:""});return n}let s=this.addition.show_all_version;if(i===""){let c=await this.latestRelease(t.repo);if(c){for(let l of c.assets)n.push({path:ea(t.point,l.name),name:l.name,size:l.size,isDir:!1,modified:l.updated_at||l.created_at||new Date().toISOString(),url:this.proxy(l.browser_download_url)});this.addition.show_source_code&&(n.push({path:ea(t.point,"Source code (zip)"),name:"Source code (zip)",size:1,isDir:!1,modified:c.created_at,url:this.proxy(c.zipball_url)}),n.push({path:ea(t.point,"Source code (tar.gz)"),name:"Source code (tar.gz)",size:1,isDir:!1,modified:c.created_at,url:this.proxy(c.tarball_url)}))}if(s){let l=await this.allReleases(t.repo);for(let d of l)n.push({path:ea(t.point,d.tag_name),name:d.tag_name,size:0,isDir:!0,modified:d.published_at||d.created_at,url:d.html_url})}if(this.addition.show_readme!==!1){let l=await this.repoFiles(t.repo);for(let d of l)(d.name.toLowerCase().endsWith(".md")||d.name.toUpperCase().startsWith("LICENSE"))&&n.push({path:ea(t.point,d.name),name:d.name,size:d.size,isDir:!1,modified:"1970-01-01T00:00:00Z",url:this.proxy(d.download_url)})}return n}let a=(await this.allReleases(t.repo)).find(c=>c.tag_name===i.split("/")[0]);if(a){for(let c of a.assets)n.push({path:ea(t.point,a.tag_name,c.name),name:c.name,size:c.size,isDir:!1,modified:c.updated_at||c.created_at||new Date().toISOString(),url:this.proxy(c.browser_download_url)});this.addition.show_source_code&&(n.push({path:ea(t.point,"Source code (zip)"),name:"Source code (zip)",size:1,isDir:!1,modified:a.created_at,url:this.proxy(a.zipball_url)}),n.push({path:ea(t.point,"Source code (tar.gz)"),name:"Source code (tar.gz)",size:1,isDir:!1,modified:a.created_at,url:this.proxy(a.tarball_url)}))}return n}async getDownloadUrl(e){let t=this.mountForPath(e);if(!t)return"";let n=this.relPath(t,e).split("/").pop()||"",s=await this.latestRelease(t.repo);if(s){let l=s.assets.find(d=>d.name===n);if(l)return this.proxy(l.browser_download_url)}let o=await this.allReleases(t.repo);for(let l of o){let d=l.assets.find(u=>u.name===n);if(d)return this.proxy(d.browser_download_url)}let c=(await this.repoFiles(t.repo)).find(l=>l.name===n);return c?this.proxy(c.download_url):""}relPath(e,t){let i=e.point==="/"?"/":e.point,n=t.startsWith("/")?t:"/"+t;return i==="/"?n.replace(/^\/+/,""):n.slice(i.length).replace(/^\/+/,"")}}});var zg,h_=J(()=>{"use strict";Be();A_();zg=class{client;constructor(e){this.client=new Gg(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.list(t)).map(n=>({name:n.name,size:n.size,is_dir:n.isDir,modified:n.modified||new Date().toISOString(),sign:"",type:X(n.name,n.isDir),raw_url:n.url||""}))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=await this.client.list(t);if(s.length>0||t==="/")return!s.find(c=>c.isDir&&c.name===n)&&s.some(c=>!c.isDir),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let o=await this.client.getDownloadUrl(t);return o?{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:o}:{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(){throw new Error("[GitHub Releases] read-only storage")}async rename(){throw new Error("[GitHub Releases] read-only storage")}async remove(){throw new Error("[GitHub Releases] read-only storage")}async move(){throw new Error("[GitHub Releases] read-only storage")}async copy(){throw new Error("[GitHub Releases] read-only storage")}async put(){throw new Error("[GitHub Releases] read-only storage")}}});var _z,Fz,Jg,g_=J(()=>{"use strict";_z="https://api.cnb.cool",Fz="https://cnb.cool",Jg=class{repo;token;useTagName;constructor(e){this.repo=e.repo||"",this.token=e.token||"",this.useTagName=!!e.use_tag_name}async init(){if(!this.repo)throw new Error("[CNB Releases] repo is required");if(!this.token)throw new Error("[CNB Releases] token is required")}async request(e,t,i,n=!1){let s={Accept:"application/json",Authorization:`Bearer ${this.token}`},o={method:e,headers:s};i!==void 0&&(n?(o.body=new URLSearchParams(i).toString(),s["Content-Type"]="application/x-www-form-urlencoded"):(o.body=JSON.stringify(i),s["Content-Type"]="application/json"));let a=await fetch(`${_z}${t}`,o);if(a.status!==200&&a.status!==201&&a.status!==204)throw new Error(`[CNB Releases] ${a.status} ${await a.text().catch(()=>"")}`);return a.status===204?{}:await a.json().catch(()=>({}))}async listReleases(){return this.request("GET",`/${this.repo}/-/releases`)}async getRelease(e){return this.request("GET",`/${this.repo}/-/releases/${e}`)}releaseName(e){return this.useTagName?e.tag_name:e.name}createRelease(e,t){return this.request("POST",`/${this.repo}/-/releases`,{name:e,tag_name:e,target_commitish:t||"main"})}renameRelease(e,t){return this.request("PATCH",`/${this.repo}/-/releases/${e}`,{name:t},!0)}deleteRelease(e){return this.request("DELETE",`/${this.repo}/-/releases/${e}`)}deleteAsset(e,t){return this.request("DELETE",`/${this.repo}/-/releases/${e}/assets/${t}`)}assetDownloadUrl(e){return`${Fz}${e.path}`}}});var jg,p_=J(()=>{"use strict";Be();g_();jg=class{client;addition;constructor(e){this.addition=e,this.client=new Jg(e)}async init(){await this.client.init()}async list(e,t){let i=t.split("/").filter(Boolean).join("/");if(!i)return(await this.client.listReleases()).map(a=>({name:this.client.releaseName(a),size:a.assets.reduce((c,l)=>c+l.size,0),is_dir:!0,modified:a.updated_at||a.created_at||new Date().toISOString(),sign:a.id,type:1,raw_url:""}));let n=i.split("/")[0];return(await this.client.getRelease(n)).assets.map(o=>({name:o.name,size:o.size,is_dir:!1,modified:o.updated_at||o.created_at||new Date().toISOString(),sign:o.id,type:X(o.name,!1),raw_url:this.client.assetDownloadUrl(o)}))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=i.join("/");if(i.length===1)try{let o=await this.client.getRelease(i[0]);return{name:this.client.releaseName(o),size:o.assets.reduce((a,c)=>a+c.size,0),is_dir:!0,modified:o.updated_at||o.created_at||new Date().toISOString(),sign:o.id,type:1,raw_url:""}}catch{}if(i.length===2){let a=(await this.client.getRelease(i[0])).assets.find(c=>c.name===i[1]);if(a)return{name:a.name,size:a.size,is_dir:!1,modified:a.updated_at||a.created_at||new Date().toISOString(),sign:a.id,type:X(a.name,!1),raw_url:this.client.assetDownloadUrl(a)}}return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean);if(i.length===1){await this.client.createRelease(i[0],this.addition.default_branch||"main");return}throw new Error("[CNB Releases] only supports creating releases at root")}async rename(e,t,i){let n=t.split("/").filter(Boolean);if(n.length===1&&!this.addition.use_tag_name){await this.client.renameRelease(n[0],i);return}throw new Error("[CNB Releases] only release name can be renamed")}async remove(e,t,i){let n=t.split("/").filter(Boolean);if(n.length===1){await this.client.deleteRelease(n[0]);return}if(n.length===2){await this.client.deleteAsset(n[0],n[1]);return}throw new Error("[CNB Releases] invalid path")}async move(){throw new Error("[CNB Releases] move not supported")}async copy(){throw new Error("[CNB Releases] copy not supported")}async put(){throw new Error("[CNB Releases] asset upload not supported in stateless environment")}}});var $g,m_=J(()=>{"use strict";$g=class{address;addition;authorization="";constructor(e){this.addition=e,this.address=(e.address||"").replace(/\/+$/,"")}async init(){if(!this.address)throw new Error("[KodBox] address is required");await this.getToken()}async getToken(){let e=new URLSearchParams({name:this.addition.username||"",password:this.addition.password||""}),i=await(await fetch(`${this.address}/?user/index/loginSubmit`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json().catch(()=>({code:!1}));if(i.code===!1)throw new Error(`[KodBox] login failed: ${JSON.stringify(i.data||i)}`);this.authorization=String(i.info||"")}async request(e,t){let i=new URLSearchParams({accessToken:this.authorization,...t}),s=await(await fetch(`${this.address}${e}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString(),redirect:"follow"})).json().catch(()=>({code:!1}));if(s.code==="10001")return await this.getToken(),this.request(e,t);if(s.code===!1)throw new Error(`[KodBox] ${s.data||"request failed"}`);return s}async list(e){let i=(await this.request("/?explorer/list/path",{path:e})).data;return i?[...i.folderList||[],...i.fileList||[]]:[]}downloadUrl(e){return`${this.address}/?explorer/index/fileOut&path=${encodeURIComponent(e)}&download=1&accessToken=${encodeURIComponent(this.authorization)}`}async mkdir(e){await this.request("/?explorer/index/mkdir",{path:e})}async rename(e,t){await this.request("/?explorer/index/pathRename",{path:e,newName:t})}async move(e,t,i){await this.request("/?explorer/index/pathCuteTo",{dataArr:JSON.stringify([{path:e,name:t}]),path:i})}async copy(e,t,i){await this.request("/?explorer/index/pathCopyTo",{dataArr:JSON.stringify([{path:e,name:t}]),path:i})}async remove(e,t){await this.request("/?explorer/index/pathDelete",{dataArr:JSON.stringify([{path:e,name:t}]),shiftDelete:"1"})}async put(e,t,i){let n=new FormData;n.append("accessToken",this.authorization),n.append("path",e),n.append("file",new Blob([i]),t);let o=await(await fetch(`${this.address}/?explorer/upload/fileUpload`,{method:"POST",body:n})).json().catch(()=>({code:!1}));if(o.code===!1)throw new Error(`[KodBox] ${o.data||"upload failed"}`)}}});var Vg,y_=J(()=>{"use strict";Be();m_();Vg=class{client;addition;constructor(e){this.addition=e,this.client=new $g(e)}async init(){await this.client.init()}fullPath(e){let t=(this.addition.root_path||"").replace(/^\/+|\/+$/g,""),i=e.replace(/^\/+/,"");return t?"/"+(i?`${t}/${i}`:t):"/"+i}async list(e,t){return(await this.client.list(this.fullPath(t))).map(n=>({name:n.name,size:n.size||0,is_dir:n.type==="folder",modified:n.modifyTime?new Date(n.modifyTime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(n.name,n.type==="folder"),raw_url:""}))}async get(e,t){let i=this.fullPath(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.list(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l={name:c.name,size:c.size||0,is_dir:c.type==="folder",modified:c.modifyTime?new Date(c.modifyTime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(c.name,c.type==="folder"),raw_url:""};return l.is_dir||(l.raw_url=this.client.downloadUrl(c.path||i)),l}}catch{}try{return await this.client.list(i),{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){await this.client.mkdir(this.fullPath(t))}async rename(e,t,i){await this.client.rename(this.fullPath(t),i)}async remove(e,t,i){let s=this.fullPath(t).split("/").filter(Boolean),o=s[s.length-1],a=i.length?i:[o];for(let c of a){let l=s.length>1?`/${s.slice(0,-1).join("/")}/${c}`:`/${c}`;await this.client.remove(l,c)}}async move(e,t,i,n,s){let a=this.fullPath(n).split("/").filter(Boolean),c=a[a.length-1],l=this.fullPath(t),d=i.length?i:[c];for(let u of d){let f=a.length>1?`/${a.slice(0,-1).join("/")}/${u}`:`/${u}`;await this.client.move(f,u,l)}}async copy(e,t,i,n,s){let a=this.fullPath(n).split("/").filter(Boolean),c=a[a.length-1],l=this.fullPath(t),d=i.length?i:[c];for(let u of d){let f=a.length>1?`/${a.slice(0,-1).join("/")}/${u}`:`/${u}`;await this.client.copy(f,u,l)}}async put(e,t,i){let s=this.fullPath(t).split("/").filter(Boolean),o=s[s.length-1]||"file",a="/"+s.slice(0,-1).join("/");await this.client.put(a==="//"?"/":a,o,i)}}});var Yg,I_=J(()=>{"use strict";Yg=class{endpoint;gateway;mode;constructor(e){this.endpoint=(e.endpoint||"").replace(/\/+$/,""),this.gateway=(e.gateway||"").replace(/\/+$/,""),this.mode=e.mode||"ipfs"}async init(){if(!this.endpoint)throw new Error("[IPFS] endpoint is required");if(!this.gateway)throw new Error("[IPFS] gateway is required")}async post(e,t){let i=new URLSearchParams;for(let s of t)i.append("arg",s);let n=await fetch(`${this.endpoint}/api/v0/${e}?${i.toString()}`,{method:"POST"});if(n.status>=400)throw new Error(`[IPFS] ${n.status} ${await n.text().catch(()=>"")}`);return await n.json().catch(()=>({}))}async ls(e){return this.post("ls",[`/ipfs/${e}`])}async filesStat(e){return this.post("files/stat",[e])}async filesMkdir(e){await this.post("files/mkdir",[e,"parents=true"])}async filesMv(e,t){await this.post("files/mv",[e,t])}async filesCp(e,t){await this.post("files/cp",[e,t])}async filesRm(e){await this.post("files/rm",[e,"recursive=true"])}async add(e,t){let i=new FormData;i.append("file",new Blob([e]),t);let s=await(await fetch(`${this.endpoint}/api/v0/add`,{method:"POST",body:i})).json().catch(()=>({Hash:""}));if(!s.Hash)throw new Error("[IPFS] add failed");return s.Hash}downloadUrl(e,t){return`${this.gateway}/ipfs/${e}?filename=${encodeURIComponent(t)}`}async resolveIpfsPath(e,t){if(t)return`/ipfs/${t}`;let i=e.replace(/^\/+|\/+$/g,"");switch(this.mode){case"ipfs":return`/ipfs/${i}`;case"ipns":return`/ipns/${i}`;case"mfs":return`/ipfs/${(await this.filesStat(i?`/${i}`:"/")).Hash}`;default:throw new Error("[IPFS] invalid mode")}}}});var Wg,w_=J(()=>{"use strict";Be();I_();Wg=class{client;addition;constructor(e){this.addition=e,this.client=new Yg(e)}async init(){await this.client.init()}isMfs(){return this.addition.mode==="mfs"}fullPath(e){let t=(this.addition.root_path||"").replace(/^\/+|\/+$/g,""),i=e.replace(/^\/+/,"");return t?"/"+(i?`${t}/${i}`:t):"/"+i}async list(e,t){let i=this.fullPath(t),s=(await this.client.resolveIpfsPath(i)).replace(/^\/ipfs\//,"");return((await this.client.ls(s)).Objects?.[0]?.Links||[]).map(c=>({name:c.Name,size:c.Size||0,is_dir:c.Type===1,modified:new Date().toISOString(),sign:c.Hash,type:X(c.Name,c.Type===1),raw_url:""}))}async get(e,t){let i=this.fullPath(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root";if(this.isMfs())try{let a=await this.client.filesStat(i),c=a.Type==="directory",l={name:s,size:a.Size||0,is_dir:c,modified:new Date().toISOString(),sign:a.Hash,type:X(s,c),raw_url:""};return c||(l.raw_url=this.client.downloadUrl(a.Hash,s)),l}catch{}let o="/"+n.slice(0,-1).join("/");try{let c=(await this.list(e,o)).find(l=>l.name===s);if(c)return c.is_dir||(c.raw_url=this.client.downloadUrl(c.sign,s)),c}catch{}try{return await this.client.resolveIpfsPath(i),{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:s,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");await this.client.filesMkdir(this.fullPath(t))}async rename(e,t,i){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let n=this.fullPath(t),o="/"+n.split("/").filter(Boolean).slice(0,-1).join("/")+"/"+i;await this.client.filesMv(n,o)}async remove(e,t,i){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");await this.client.filesRm(this.fullPath(t))}async move(e,t,i,n,s){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let o=this.fullPath(n),a=this.fullPath(t);await this.client.filesMv(o,a)}async copy(e,t,i,n,s){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let o=this.fullPath(n),c=`/ipfs/${(await this.client.filesStat(o)).Hash}`,l=this.fullPath(t);await this.client.filesCp(c,l)}async put(e,t,i){if(!this.isMfs())throw new Error("[IPFS] only write in mfs mode");let n=this.fullPath(t),s=n.split("/").filter(Boolean),o=s[s.length-1]||"file",a=await this.client.add(i,o);await this.client.filesCp(`/ipfs/${a}`,n)}}});var Pz,Xg,x_=J(()=>{"use strict";Pz="https://siot-share.lenovo.com.cn",Xg=class{host;shareId;sharePwd;stoken="";expireAt=0;constructor(e){this.host=(e.host||Pz).replace(/\/+$/,""),this.shareId=(e.share_id||"").split("/").pop()||"",this.sharePwd=e.share_pwd||""}async init(){if(!this.shareId)throw new Error("[Lenovo NAS Share] share_id is required");await this.getStoken()}async request(e){let i=await(await fetch(e,{method:"GET",headers:{origin:"https://siot-share.lenovo.com.cn",referer:"https://siot-share.lenovo.com.cn/","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",platform:"web","app-version":"3"}})).json().catch(()=>({result:!1}));if(!i.result)throw new Error(`[Lenovo NAS Share] ${i.error?.msg||"request failed"}`);return i.data}async getStoken(){let e=new URLSearchParams({code:this.shareId,password:this.sharePwd}),t=await this.request(`${this.host}/oneproxy/api/share/v1/access?${e.toString()}`);this.stoken=t.stoken||"",this.expireAt=Date.now()+(t.expires_in||3600)*1e3-6e4}async checkStoken(){Date.now()>=this.expireAt&&await this.getStoken()}async list(e){await this.checkStoken();let t=e.startsWith("/")?e:"/"+e,i=new URLSearchParams({code:this.shareId,num:"5000",stoken:this.stoken,path:t});return(await this.request(`${this.host}/oneproxy/api/share/v1/files?${i.toString()}`)).list||[]}async getDownloadUrl(e){await this.checkStoken();let t=new URLSearchParams({code:this.shareId,stoken:this.stoken,path:e.startsWith("/")?e:"/"+e}),n=(await this.request(`${this.host}/oneproxy/api/share/v1/file/link?${t.toString()}`)).param?.dtoken||"";return`${this.host}/oneproxy/api/share/v1/file/download?code=${encodeURIComponent(this.shareId)}&dtoken=${encodeURIComponent(n)}`}downloadHeaders(){return{Referer:"https://siot-share.lenovo.com.cn"}}}});var Zg,C_=J(()=>{"use strict";Be();x_();Zg=class{client;constructor(e){this.client=new Xg(e)}async init(){await this.client.init()}async list(e,t){return(await this.client.list(t)).map(n=>{let s=n.type==="dir";return{name:n.name,size:n.size||0,is_dir:s,modified:n.chtime?new Date(n.chtime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(n.name,s),raw_url:""}})}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let a=(await this.client.list(s==="//"?"/":s)).find(c=>c.name===n||c.path===t);if(a){let c=a.type==="dir",l={name:a.name,size:a.size||0,is_dir:c,modified:a.chtime?new Date(a.chtime*1e3).toISOString():new Date().toISOString(),sign:"",type:X(a.name,c),raw_url:""};return c||(l.raw_url=await this.client.getDownloadUrl(a.path),l.raw_url_headers=this.client.downloadHeaders()),l}}catch{}try{return await this.client.list(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(){throw new Error("[Lenovo NAS Share] read-only storage")}async rename(){throw new Error("[Lenovo NAS Share] read-only storage")}async remove(){throw new Error("[Lenovo NAS Share] read-only storage")}async move(){throw new Error("[Lenovo NAS Share] read-only storage")}async copy(){throw new Error("[Lenovo NAS Share] read-only storage")}async put(){throw new Error("[Lenovo NAS Share] read-only storage")}}});var ep,E_=J(()=>{"use strict";ep=class{endpoint;token;constructor(e){this.endpoint=(e.endpoint||"").replace(/\/+$/,""),this.token=e.access_token||""}async init(){if(!this.endpoint)throw new Error("[Misskey] endpoint is required");if(!this.token)throw new Error("[Misskey] access_token is required")}async post(e,t){let i=await fetch(`${this.endpoint}/api/drive${e}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},body:JSON.stringify(t||{})});if(i.status>=400)throw new Error(`[Misskey] ${i.status} ${await i.text().catch(()=>"")}`);return await i.json().catch(()=>({}))}async getFiles(e){return this.post("/files",e?{folderId:e}:{})}async getFolders(e){return this.post("/folders",e?{folderId:e}:{})}async showFile(e){return this.post("/files/show",{fileId:e})}async createFolder(e,t){return this.post("/folders/create",{name:e,...t?{parentId:t}:{}})}async updateFolder(e,t){return this.post("/folders/update",{folderId:e,...t})}async updateFile(e,t){return this.post("/files/update",{fileId:e,...t})}async deleteFolder(e){await this.post("/folders/delete",{folderId:e})}async deleteFile(e){await this.post("/files/delete",{fileId:e})}async uploadFromUrl(e,t){return this.post("/files/upload-from-url",{url:e,...t?{folderId:t}:{}})}}});var tp,B_=J(()=>{"use strict";Be();E_();tp=class{client;pathCache=new Map;constructor(e){this.client=new ep(e)}async init(){await this.client.init()}async list(e,t){let i=await this.resolveFolderId(t),[n,s]=await Promise.all([this.client.getFiles(i),this.client.getFolders(i)]),o=n.map(c=>({name:c.name,size:c.size||0,is_dir:!1,modified:c.createdAt||new Date().toISOString(),sign:c.id,type:X(c.name,!1),raw_url:c.url||"",thumb:c.thumbnailUrl||""}));return[...s.map(c=>({name:c.name,size:0,is_dir:!0,modified:c.createdAt||new Date().toISOString(),sign:c.id,type:1,raw_url:""})),...o]}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveFolderId(s),[a,c]=await Promise.all([this.client.getFiles(o),this.client.getFolders(o)]),l=a.find(u=>u.name===n);if(l)return{name:l.name,size:l.size||0,is_dir:!1,modified:l.createdAt||new Date().toISOString(),sign:l.id,type:X(l.name,!1),raw_url:l.url||"",thumb:l.thumbnailUrl||""};let d=c.find(u=>u.name===n);if(d)return{name:d.name,size:0,is_dir:!0,modified:d.createdAt||new Date().toISOString(),sign:d.id,type:1,raw_url:""}}catch{}try{return await this.resolveFolderId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.createFolder(n,o),this.pathCache.clear()}async rename(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);s?await this.client.updateFolder(n,{name:i}):await this.client.updateFile(n,{name:i}),this.pathCache.clear()}async remove(e,t,i){let{id:n,isDir:s}=await this.resolveEntry(t);s?await this.client.deleteFolder(n):await this.client.deleteFile(n),this.pathCache.clear()}async move(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);a?await this.client.updateFolder(o,{parentId:c}):await this.client.updateFile(o,{folderId:c}),this.pathCache.clear()}async copy(e,t,i,n,s){let{id:o,isDir:a}=await this.resolveEntry(n),c=await this.resolveFolderId(t);if(a)throw new Error("[Misskey] folder copy not supported");let l=await this.client.showFile(o);await this.client.uploadFromUrl(l.url,c),this.pathCache.clear()}async put(e,t,i){throw new Error("[Misskey] Direct put not supported in stateless environment")}async resolveFolderId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n;for(let s=0;sl.name===i[s]);if(!a)throw new Error(`[Misskey] Folder '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveFolderId(n),[o,a]=await Promise.all([this.client.getFiles(s),this.client.getFolders(s)]),c=o.find(d=>d.name===i);if(c)return{id:c.id,isDir:!1};let l=a.find(d=>d.name===i);if(l)return{id:l.id,isDir:!0};throw new Error(`[Misskey] '${i}' not found`)}}});var zC,b_,Tz,Uz,Rz,Nz,rp,v_=J(()=>{"use strict";zC="https://www.doubao.com",b_="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Tz=1,Uz=6,Rz=7,Nz={1:"directory",2:"file",3:"link",4:"image",5:"pages",6:"video",7:"audio",8:"meeting_minutes"},rp=class{cookie;downloadApi;constructor(e){this.cookie=e.cookie||"",this.downloadApi=e.download_api||"get_file_url"}async init(){if(!this.cookie)throw new Error("[Doubao] cookie is required")}async request(e,t={}){let n=await(await fetch(`${zC}${e}`,{method:"POST",headers:{"Content-Type":"application/json",Cookie:this.cookie,"User-Agent":b_,Origin:zC,Referer:`${zC}/`},body:JSON.stringify(t)})).json().catch(()=>({code:-1}));if(n.code!==0){let s=n.message||n.msg||n.error?.message||`code ${n.code}`;throw new Error(`[Doubao] ${s}`)}return n}async getFiles(e){let t=[],i="";do{let n={node_id:e};i?(n.cursor=i,n.size=50):n.need_full_path=!1;let o=(await this.request("/samantha/aispace/node_info",n)).data;o?.children&&t.push(...o.children),i=o?.next_cursor&&o.next_cursor!=="-1"?o.next_cursor:""}while(i);return t}async getDownloadUrl(e){if(this.downloadApi==="get_download_info"){let a=(await this.request("/samantha/aispace/get_download_info",{requests:[{node_id:e.id}]})).data.download_infos?.[0]?.main_url||"";if(!a)throw new Error("[Doubao] empty download url");return a}if(e.node_type===Uz||e.node_type===Rz){let o=(await this.request("/samantha/media/get_play_info",{key:e.key,node_id:e.id})).data,a=o.original_media_info?.main_url||o.media_info?.[0]?.main_url||"";if(!a)throw new Error("[Doubao] empty download url");return a}let n=(await this.request("/alice/message/get_file_url",{uris:[e.key],type:Nz[e.node_type]||"file"})).data.file_urls?.[0]?.main_url||"";if(!n)throw new Error("[Doubao] empty download url");return n}downloadHeaders(){return{"User-Agent":b_}}async mkdir(e,t){await this.request("/samantha/aispace/upload_node",{node_list:[{local_id:crypto.randomUUID(),name:t,parent_id:e,node_type:Tz}]})}async rename(e,t){await this.request("/samantha/aispace/rename_node",{node_id:e,node_name:t})}async move(e,t,i){await this.request("/samantha/aispace/move_node",{node_list:[{id:e}],current_parent_id:t,target_parent_id:i})}async remove(e){await this.request("/samantha/aispace/delete_node",{node_list:[{id:e}]})}}});var k_,ip,S_=J(()=>{"use strict";Be();v_();k_="0",ip=class{client;pathCache=new Map;constructor(e){this.client=new rp(e)}async init(){await this.client.init()}fileToItem(e){let t=e.node_type===1;return{name:e.name,size:e.size||0,is_dir:t,modified:e.update_time?new Date(e.update_time*1e3).toISOString():new Date().toISOString(),sign:"",type:X(e.name,t),raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.name===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c),l.raw_url_headers=this.client.downloadHeaders()}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveDirId(s);await this.client.mkdir(o,n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveDirId(t);await this.client.rename(n,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveDirId(t);await this.client.remove(n),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=await this.resolveDirId(t);await this.client.move(o.id,o.parentId,a),this.pathCache.clear()}async copy(){throw new Error("[Doubao] copy not supported")}async put(){throw new Error("[Doubao] upload not supported in stateless environment")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return k_;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=k_;for(let s=0;sl.node_type===1&&l.name===i[s]);if(!a)throw new Error(`[Doubao] Directory '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveDirId(n),a=(await this.client.getFiles(s)).find(c=>c.name===i);if(!a)throw new Error(`[Doubao] '${i}' not found`);return{id:a.id,parentId:a.parent_id||s,isDir:a.node_type===1}}}});async function Mz(r){let e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r));return Array.from(new Uint8Array(e)).map(t=>t.toString(16).padStart(2,"0")).join("")}var qz,Oz,np,D_=J(()=>{"use strict";qz="https://open-api-drive.quark.cn",Oz="go-resty/3.0.0-beta.1 (https://resty.dev)";np=class{addition;accessToken;refreshToken;appId;signKey;constructor(e){this.addition=e,this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||"",this.appId=e.app_id||"",this.signKey=e.sign_key||""}async init(){if(!this.refreshToken)throw new Error("[QuarkOpen] refresh_token is required")}async generateSign(e,t){let i=String(Date.now()),n=`${e}&${t}&${i}&${this.signKey}`,s=await Mz(n),o=typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return{tm:i,token:s,reqId:o}}async request(e,t,i){let{tm:n,token:s,reqId:o}=await this.generateSign(t,e),a=new URLSearchParams({req_id:o,access_token:this.accessToken}),c={Accept:"application/json, text/plain, */*","User-Agent":Oz,"x-pan-tm":n,"x-pan-token":s,"x-pan-client-id":this.appId},l={method:t,headers:c};i!==void 0&&(l.body=JSON.stringify(i),c["Content-Type"]="application/json");let u=await(await fetch(`${qz}${e}?${a.toString()}`,l)).json().catch(()=>({status:-1,errno:-1}));if(u.status===-1&&(u.errno===11001||u.errno===14001&&(u.error_info||"").includes("access_token")))return await this.refreshAccessToken(),this.request(e,t,i);if(u.status>=400||u.errno!==0)throw new Error(`[QuarkOpen] ${u.error_info||`errno ${u.errno}`}`);return u}async refreshAccessToken(){let e=this.addition.api_url_address||"https://api.oplist.org/quarkyun/renewapi",t=new URLSearchParams({refresh_ui:this.refreshToken,server_use:"true",driver_txt:"quarkyun_oa"}),n=await(await fetch(`${e}?${t.toString()}`)).json().catch(()=>({}));if(!n.refresh_token||!n.access_token)throw new Error(`[QuarkOpen] refresh token failed: ${n.text||"empty token"}`);this.refreshToken=n.refresh_token,this.accessToken=n.access_token,n.app_id&&(this.appId=n.app_id),n.sign_key&&(this.signKey=n.sign_key),this.addition.refresh_token=n.refresh_token,this.addition.access_token=n.access_token}async getFiles(e){let t=[],i;do{let n={parent_fid:e,size:100,sort:this.addition.order_by&&this.addition.order_by!=="none"?`${this.addition.order_by}:${this.addition.order_direction||"asc"}`:"file_name:asc"};i?.token&&(n.query_cursor=i);let o=(await this.request("/open/v1/file/list","POST",n)).data;if(o?.file_list&&t.push(...o.file_list),o?.last_page)break;i=o?.next_query_cursor}while(i?.token);return t}async getDownloadUrl(e){let i=(await this.request("/open/v1/file/get_download_url","POST",{fid:e})).data;if(!i.download_url)throw new Error("[QuarkOpen] empty download url");return i.download_url}downloadCookie(){return`x_pan_client_id=${this.appId}; x_pan_access_token=${this.accessToken}`}async mkdir(e,t){await this.request("/open/v1/dir","POST",{dir_path:t,pdir_fid:e})}async rename(e,t){await this.request("/open/v1/file/rename","POST",{fid:e,file_name:t,conflict_mode:"REUSE"})}async move(e,t){await this.request("/open/v1/file/move","POST",{action_type:1,fid_list:[e],to_pdir_fid:t})}async remove(e){await this.request("/open/v1/file/delete","POST",{action_type:1,fid_list:[e]})}}});var Q_,sp,__=J(()=>{"use strict";Be();D_();Q_="0",sp=class{client;pathCache=new Map;constructor(e){this.client=new np(e)}async init(){await this.client.init()}fileToItem(e){let t=e.file_type==="0";return{name:e.filename,size:e.size||0,is_dir:t,modified:e.updated_at?new Date(e.updated_at).toISOString():new Date().toISOString(),sign:"",type:X(e.filename,t),thumb:e.thumbnail_url||"",raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.filename===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.fid),l.raw_url_headers={Cookie:this.client.downloadCookie()}}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveDirId(s);await this.client.mkdir(o,n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveDirId(t);await this.client.rename(n,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveDirId(t);await this.client.remove(n),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveDirId(n),a=await this.resolveDirId(t);await this.client.move(o,a),this.pathCache.clear()}async copy(){throw new Error("[QuarkOpen] copy not supported")}async put(){throw new Error("[QuarkOpen] upload not supported in stateless environment")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return Q_;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=Q_;for(let s=0;sl.file_type==="0"&&l.filename===i[s]);if(!a)throw new Error(`[QuarkOpen] Directory '${i[s]}' not found`);n=a.fid;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var Lz,Hz,Kz,Gz,zz,Jz,jz,$z,Vz,Yz,op,F_=J(()=>{"use strict";Gr();Lz="Mozilla/5.0 (Linux; U; Android 13; zh-cn; M2004J7AC Build/UKQ1.231108.001) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1",Hz="Xiaomi",Kz="tv",Gz="M2004J7AC",zz="M2004J7AC",Jz="M2004J7AC",jz="M2004J7AC",$z="Adreno (TM) 550",Vz="{}",Yz={quark:{api:"https://open-api-drive.quark.cn",clientID:"d3194e61504e493eb6222857bccfed94",signKey:"kw2dvtd7p4t3pjl2d9ed9yc8yej8kw2d",appVer:"1.8.2.2",channel:"GENERAL",codeApi:"http://api.extscreen.com/quarkdrive"},uc:{api:"https://open-api-drive.uc.cn",clientID:"5acf882d27b74502b7040b0c65519aa7",signKey:"l3srvtd7p42l0d0x1u8d7yc8ye9kki4d",appVer:"1.7.2.2",channel:"UCTVOFFICIALWEB",codeApi:"http://api.extscreen.com/ucdrive"}},op=class{conf;addition;accessToken="";deviceId;constructor(e){this.addition=e,this.conf=Yz[e.variant||"quark"],this.deviceId=e.device_id||$t(String(Date.now())),this.addition.device_id=this.deviceId}async init(){if(!this.addition.refresh_token)throw new Error("[QuarkTV] refresh_token is required");await this.refreshToken()}async generateSign(e,t){let i=String(Date.now()),n=$t(this.deviceId+i),s=await ID(`${e}&${t}&${i}&${this.conf.signKey}`);return{tm:i,token:s,reqId:n}}deviceQuery(){return{app_ver:this.conf.appVer,device_id:this.deviceId,device_brand:Hz,platform:Kz,device_name:Gz,device_model:zz,build_device:Jz,build_product:jz,device_gpu:$z,activity_rect:Vz,channel:this.conf.channel}}async request(e,t,i={}){let{tm:n,token:s,reqId:o}=await this.generateSign(t,e),a=new URLSearchParams({req_id:o,access_token:this.accessToken,...this.deviceQuery(),...i}),l=await(await fetch(`${this.conf.api}${e}?${a.toString()}`,{method:t,headers:{Accept:"application/json, text/plain, */*","User-Agent":Lz,"x-pan-tm":n,"x-pan-token":s,"x-pan-client-id":this.conf.clientID}})).json().catch(()=>({status:-1,errno:-1})),d=(l.error_info||"").toLowerCase();if(l.status===-1&&(l.errno===10001||l.errno===11001)||d.includes("access token")||d.includes("access_token")||d.includes("token\u65E0\u6548")||d.includes("token \u65E0\u6548"))return await this.refreshToken(),this.request(e,t,i);if(l.status>=400||l.errno!==0)throw new Error(`[QuarkTV] ${l.error_info||`errno ${l.errno}`}`);return l}async refreshToken(){let e="/token",{reqId:t}=await this.generateSign("POST",e),i={req_id:t,...this.deviceQuery()};this.accessToken?i.refresh_token=this.addition.refresh_token:i.refresh_token=this.addition.refresh_token;let s=await(await fetch(`${this.conf.codeApi}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})).json().catch(()=>({}));if(s?.code!==200)throw new Error(`[QuarkTV] ${s?.message||"token refresh failed"}`);let o=s.data||{};if(!o.access_token)throw new Error("[QuarkTV] refresh token empty");this.accessToken=o.access_token,o.refresh_token&&(this.addition.refresh_token=o.refresh_token)}async getFiles(e){let t=[],i=0,n=100,s=this.addition.order_direction==="asc"?"0":"1",o=this.addition.order_by==="file_name"?"1":"3";for(;;){let c=(await this.request("/file","GET",{method:"list",parent_fid:e,order_by:o,desc:s,category:"",source:"",ex_source:"",list_all:"0",page_size:String(n),page_index:String(i)})).data;c?.files&&t.push(...c.files);let l=c?.total_count||0;if(i*n>=l)break;i++}return t}async getDownloadUrl(e){if(this.addition.link_method==="streaming"){let o=(await this.request("/file","GET",{method:"streaming",group_by:"source",fid:e,resolution:"low,normal,high,super,2k,4k",support:"dolby_vision"})).data?.video_info?.find(a=>a.url)?.url||"";if(!o)throw new Error("[QuarkTV] no streaming link found");return o}let i=(await this.request("/file","GET",{method:"download",group_by:"source",fid:e,resolution:"low,normal,high,super,2k,4k",support:"dolby_vision"})).data;if(!i?.download_url)throw new Error("[QuarkTV] empty download url");return i.download_url}}});var P_,ap,T_=J(()=>{"use strict";Be();F_();P_="0",ap=class{client;pathCache=new Map;constructor(e){this.client=new op(e)}async init(){await this.client.init()}fileToItem(e){let t=e.isdir===1;return{name:e.filename,size:e.size||0,is_dir:t,modified:e.updated_at?new Date(e.updated_at).toISOString():new Date().toISOString(),sign:"",type:X(e.filename,t),thumb:e.thumbnail_url||"",raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.filename===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.fid)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(){throw new Error("[QuarkTV] read-only storage")}async rename(){throw new Error("[QuarkTV] read-only storage")}async remove(){throw new Error("[QuarkTV] read-only storage")}async move(){throw new Error("[QuarkTV] read-only storage")}async copy(){throw new Error("[QuarkTV] read-only storage")}async put(){throw new Error("[QuarkTV] read-only storage")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return P_;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=P_;for(let s=0;sl.isdir===1&&l.filename===i[s]);if(!a)throw new Error(`[QuarkTV] Directory '${i[s]}' not found`);n=a.fid;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var Cc,cp,U_=J(()=>{"use strict";Cc="https://open-api.123pan.com",cp=class{addition;accessToken="";constructor(e){this.addition=e,this.accessToken=e.access_token||""}async init(){this.accessToken||await this.getAccessToken()}async getAccessToken(){if(this.addition.use_online_api!==!1&&this.addition.refresh_token&&this.addition.api_url_address){let e=new URLSearchParams({refresh_ui:this.addition.refresh_token,server_use:"true",driver_txt:"123cloud_oa"}),i=await(await fetch(`${this.addition.api_url_address}?${e.toString()}`)).json().catch(()=>({}));if(i.access_token&&i.refresh_token){this.accessToken=i.access_token,this.addition.access_token=i.access_token,this.addition.refresh_token=i.refresh_token;return}let n=i.error_description||i.text||i.message||i.error;if(n)throw new Error(`[123Open] ${n}`)}if(this.addition.client_id&&this.addition.client_secret){let t=await(await fetch(`${Cc}/api/v1/access_token`,{method:"POST",headers:{platform:"open_platform","Content-Type":"application/json"},body:JSON.stringify({clientID:this.addition.client_id,clientSecret:this.addition.client_secret})})).json().catch(()=>({code:-1}));if(t.code!==0)throw new Error(`[123Open] ${t.message}`);if(!t.data?.access_token)throw new Error("[123Open] empty access token");this.accessToken=t.data.access_token,this.addition.access_token=this.accessToken;return}throw new Error("[123Open] no valid authentication method (access_token / refresh_token / client_id+client_secret)")}async request(e,t,i){let n={Authorization:`Bearer ${this.accessToken}`,platform:"open_platform","Content-Type":"application/json"},s={method:t,headers:n};i!==void 0&&(s.body=JSON.stringify(i));let a=await(await fetch(e,s)).json().catch(()=>({code:-1}));return a.code===401?(await this.getAccessToken(),this.request(e,t,i)):a}async getFiles(e){let t=[],i=0;do{let n=new URLSearchParams({parentFileId:e,limit:"100",lastFileId:String(i),trashed:"false",searchMode:"",searchData:""}),s=await this.request(`${Cc}/api/v2/file/list?${n.toString()}`,"GET");if(s.code!==0)throw new Error(`[123Open] ${s.message}`);let o=s.data,a=(o.file_list||[]).filter(c=>(c.trashed??0)===0);t.push(...a),i=o.last_file_id??-1}while(i!==-1);return t}async getDownloadUrl(e){let t=new URLSearchParams({fileId:String(e)}),i=await this.request(`${Cc}/api/v1/file/download_info?${t.toString()}`,"GET");if(i.code!==0)throw new Error(`[123Open] ${i.message}`);let n=i.data?.download_url||"";if(!n)throw new Error("[123Open] empty download url");return n}async mkdir(e,t){let i=await this.request(`${Cc}/upload/v1/file/mkdir`,"POST",{parentID:e,name:t});if(i.code!==0)throw new Error(`[123Open] ${i.message}`)}async move(e,t){let i=await this.request(`${Cc}/api/v1/file/move`,"POST",{fileIDs:[e],toParentFileID:t});if(i.code!==0)throw new Error(`[123Open] ${i.message}`)}async rename(e,t){let i=await this.request(`${Cc}/api/v1/file/name`,"PUT",{fileId:e,fileName:t});if(i.code!==0)throw new Error(`[123Open] ${i.message}`)}async remove(e){let t=await this.request(`${Cc}/api/v1/file/trash`,"POST",{fileIDs:[e]});if(t.code!==0)throw new Error(`[123Open] ${t.message}`)}}});function Wz(r){if(!r)return new Date().toISOString();let e=new Date(r.replace(" ","T")+"+08:00");return isNaN(e.getTime())?new Date().toISOString():e.toISOString()}var R_,lp,N_=J(()=>{"use strict";Be();U_();R_="0";lp=class{client;pathCache=new Map;constructor(e){this.client=new cp(e)}async init(){await this.client.init()}fileToItem(e){let t=e.type===1;return{name:e.filename,size:e.size||0,is_dir:t,modified:Wz(e.update_at),sign:"",type:X(e.filename,t),raw_url:""}}async list(e,t){let i=await this.resolveDirId(t);return(await this.client.getFiles(i)).map(s=>this.fileToItem(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.resolveDirId(s),c=(await this.client.getFiles(o)).find(l=>l.filename===n);if(c){let l=this.fileToItem(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.fileId)}catch(d){l.raw_url_error=d.message}return l}}catch{}try{return await this.resolveDirId(t),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=await this.resolveDirId(s);await this.client.mkdir(o,n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=await this.resolveDirId(t);await this.client.move(o.id,a),this.pathCache.clear()}async copy(){throw new Error("[123Open] copy not supported")}async put(){throw new Error("[123Open] upload not supported in stateless environment")}async resolveDirId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return R_;if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=R_;for(let s=0;sl.type===1&&l.filename===i[s]);if(!a)throw new Error(`[123Open] Directory '${i[s]}' not found`);n=String(a.fileId);let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.resolveDirId(n),a=(await this.client.getFiles(s)).find(c=>c.filename===i);if(!a)throw new Error(`[123Open] '${i}' not found`);return{id:a.fileId,isDir:a.type===1}}}});var dp,q_=J(()=>{"use strict";dp=class{addition;baseUrl;constructor(e){this.addition=e,this.baseUrl=e.region==="international"?"https://us.teambition.com":"https://www.teambition.com"}async init(){if(!this.addition.cookie)throw new Error("[Teambition] cookie is required");if(!this.addition.project_id)throw new Error("[Teambition] project_id is required");let e=await fetch(`${this.baseUrl}/api/v2/roles`,{headers:{Cookie:this.addition.cookie}});if(e.status>=400)throw new Error(`[Teambition] init failed: HTTP ${e.status}`)}async request(e,t,i,n){let s=n?"?"+new URLSearchParams(n).toString():"",o={Cookie:this.addition.cookie},a={method:t,headers:o};i!==void 0&&(a.body=JSON.stringify(i),o["Content-Type"]="application/json");let c=await fetch(`${this.baseUrl}${e}${s}`,a);if(c.status===204||c.status===201)return{};let l=await c.json().catch(()=>({}));if(l.name||l.message)throw new Error(`[Teambition] ${l.message||l.name}`);return l}async getFiles(e){let t=`${this.addition.order_by||"fileName"}${this.addition.order_direction||"Asc"}`,i={_parentId:e,_projectId:this.addition.project_id,order:t,count:"50"},n=[],s=1;for(;;){let a=await this.request("/api/collections","GET",void 0,{...i,page:String(s)});if(!Array.isArray(a)||a.length===0||(n.push(...a.filter(c=>c.title)),s++,a.length<50))break}let o=[];for(s=1;;){let a=await this.request("/api/works","GET",void 0,{...i,page:String(s)});if(!Array.isArray(a)||a.length===0||(o.push(...a),s++,a.length<50))break}return{folders:n,works:o}}async resolveDownloadUrl(e){let t=await fetch(e,{headers:{Cookie:this.addition.cookie},redirect:"manual"});if(t.status===302){let i=t.headers.get("location");if(i)return i}return e}async mkdir(e,t){await this.request("/api/collections","POST",{objectType:"collection",_projectId:this.addition.project_id,_creatorId:"",created:"",updated:"",title:t,color:"blue",description:"",workCount:0,collectionType:"",recentWorks:[],_parentId:e,subCount:null})}async move(e,t,i){let n=i?"/api/collections/":"/api/works/";await this.request(`${n}${e}/move`,"PUT",{_parentId:t})}async rename(e,t,i){i?await this.request(`/api/collections/${e}`,"PUT",{title:t}):await this.request(`/api/works/${e}`,"PUT",{fileName:t})}async copy(e,t,i){let n=i?"/api/collections/":"/api/works/";await this.request(`${n}${e}/fork`,"PUT",{_parentId:t})}async remove(e,t){let i=t?"/api/collections/":"/api/works/";await this.request(`${i}${e}/archive`,"POST")}}});var up,O_=J(()=>{"use strict";Be();q_();up=class{client;pathCache=new Map;constructor(e){this.client=new dp(e)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t),{folders:n,works:s}=await this.client.getFiles(i),o=n.map(c=>({name:c.title,size:0,is_dir:!0,modified:c.updated||new Date().toISOString(),sign:c._id,type:1,raw_url:""})),a=s.map(c=>({name:c.fileName,size:c.fileSize||0,is_dir:!1,modified:c.updated||new Date().toISOString(),sign:c._id,type:X(c.fileName,!1),thumb:c.thumbnail||c.thumbnailUrl||"",raw_url:c.downloadUrl||""}));return[...o,...a]}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),{folders:a,works:c}=await this.client.getFiles(o),l=a.find(u=>u.title===n);if(l)return{name:l.title,size:0,is_dir:!0,modified:l.updated||new Date().toISOString(),sign:l._id,type:1,raw_url:""};let d=c.find(u=>u.fileName===n);if(d){let u=d.downloadUrl||"";if(u)try{u=await this.client.resolveDownloadUrl(u)}catch{}return{name:d.fileName,size:d.fileSize||0,is_dir:!1,modified:d.updated||new Date().toISOString(),sign:d._id,type:X(d.fileName,!1),thumb:d.thumbnail||d.thumbnailUrl||"",raw_url:u}}}catch{}try{return await this.client.getFiles(await this.pathToId(t)),{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i,n.isDir),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id,n.isDir),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t),o.isDir),this.pathCache.clear()}async copy(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.copy(o.id,await this.pathToId(t),o.isDir),this.pathCache.clear()}async put(){throw new Error("[Teambition] upload not supported in stateless environment")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),{folders:o,works:a}=await this.client.getFiles(s),c=o.find(d=>d.title===i);if(c)return{id:c._id,isDir:!0};let l=a.find(d=>d.fileName===i);if(l)return{id:l._id,isDir:!1};throw new Error(`[Teambition] '${i}' not found`)}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="";for(let s=0;sl.title===i[s]);if(!a)throw new Error(`[Teambition] Directory '${i[s]}' not found`);n=a._id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var M_,JC,Xz,L_,H_,fp,K_=J(()=>{"use strict";Gr();M_="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) quark-cloud-drive/2.5.20 Chrome/100.0.4896.160 Electron/18.3.5.4-b478491100 Safari/537.36 Channel/pckk_other_ch",JC="https://chaoxing.com/",Xz="https://groupweb.chaoxing.com",L_="https://noteyd.chaoxing.com",H_="u2oh6Vu^HWe4_AES",fp=class{addition;cookie;persistCookie;constructor(e,t){this.addition=e,this.cookie=e.cookie||"",this.persistCookie=t}async init(){if(!this.addition.bbsid)throw new Error("[ChaoXing] bbsid is required");this.cookie||(this.cookie=await this.login(),this.persistCookie&&await this.persistCookie(this.cookie))}getCookie(){return this.cookie}downloadHeaders(){return{Cookie:this.cookie,Referer:JC,"User-Agent":M_}}async login(){let e=await Vx(this.addition.user_name,H_),t=await Vx(this.addition.password,H_),i=new FormData;i.append("uname",e),i.append("password",t),i.append("t","true");let n=await fetch("https://passport2.chaoxing.com/fanyalogin",{method:"POST",body:i}),s=[],o=typeof n.headers.getSetCookie=="function"?n.headers.getSetCookie():[];if(Array.isArray(o)&&o.length>0)for(let a of o)a&&s.push(a.split(";")[0]);else{let a=n.headers.get("set-cookie");a&&s.push(a.split(";")[0])}if(s.length===0)throw new Error("[ChaoXing] login failed: no cookie returned");return s.join("; ")}async request(e,t,i,n){let s=i?"?"+new URLSearchParams(i).toString():"",o={Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:JC,...n},a=await fetch(`${Xz}${e}${s}`,{method:t,headers:o});if(a.status>=400)throw new Error(`[ChaoXing] request failed: HTTP ${a.status}`);return await a.json()}async requestDownload(e,t){let i={Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:JC,"User-Agent":M_},n=await fetch(`${L_}${e}`,{method:t,headers:i});if(n.status>=400)throw new Error(`[ChaoXing] download request failed: HTTP ${n.status}`);return await n.json()}async getFiles(e){let t=[],i=await this.request("/pc/resource/getResourceList","GET",{bbsid:this.addition.bbsid,folderId:e,recType:"1"});if(i.result!==1)throw new Error(`[ChaoXing] list failed: result=${i.result}`);i.list&&i.list.length>0&&t.push(...i.list);let n=await this.request("/pc/resource/getResourceList","GET",{bbsid:this.addition.bbsid,folderId:e,recType:"2"});for(let s of n.list||[])s.content.fileId||(s.content.fileId=s.content.objectId||""),t.push(s);return t}async link(e){let t=await this.requestDownload("/screen/note_note/files/status/"+e,"POST");if(!t.download)throw new Error(`[ChaoXing] link failed: ${t.msg||"no download url"}`);return t}async mkdir(e,t){let i=await this.request("/pc/resource/addResourceFolder","GET",{bbsid:this.addition.bbsid,name:t,pid:e});if(i.result!==1)throw new Error(`[ChaoXing] mkdir failed: ${i.msg}`)}async move(e,t,i){let n=i?{bbsid:this.addition.bbsid,folderIds:e,targetId:t}:{bbsid:this.addition.bbsid,recIds:e,targetId:t},s=await this.request("/pc/resource/moveResource","GET",n);if(!s.status)throw new Error(`[ChaoXing] move failed: ${s.msg}`)}async renameFolder(e,t){let i=await this.request("/pc/resource/updateResourceFolderName","GET",{bbsid:this.addition.bbsid,folderId:e,name:t});if(i.result!==1)throw new Error(`[ChaoXing] rename failed: ${i.msg}`)}async remove(e,t){let i=t?"/pc/resource/deleteResourceFolder":"/pc/resource/deleteResourceFile",n=t?{bbsid:this.addition.bbsid,folderIds:e}:{bbsid:this.addition.bbsid,recIds:e},s=await this.request(i,"GET",n);if(s.result!==1)throw new Error(`[ChaoXing] remove failed: ${s.msg}`)}async upload(e,t,i){let s=await(await fetch(`${L_}/pc/files/getUploadConfig`,{method:"GET"})).json();if(s.result!==1||!s.msg?.token)throw new Error("[ChaoXing] get upload config failed");let o=new FormData,a=i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength);o.append("file",new Blob([a]),t),o.append("_token",s.msg.token),o.append("puid",String(s.msg.puid||""));let l=await(await fetch("https://pan-yz.chaoxing.com/upload",{method:"POST",body:o})).json();if(l.msg!=="success"||!l.objectId)throw new Error(`[ChaoXing] upload failed: ${l.msg}`);let d={cataid:"100000019",key:l.objectId,param:l.data||{}},u=JSON.stringify(d),f=await this.request("/pc/resource/addResource","GET",{bbsid:this.addition.bbsid,pid:e,type:"yunpan",params:encodeURIComponent("["+u+"]")});if(f.result!==1)throw new Error(`[ChaoXing] add resource failed: ${f.msg}`)}}});function G_(r){let e=r.content;if(e.folderName)return{name:e.folderName,size:0,is_dir:!0,modified:r.inserttime?new Date(r.inserttime).toISOString():new Date().toISOString(),sign:String(r.id),type:1};let t=e.fileId||e.objectId||"";return{name:e.name||"",size:Number(e.size)||0,is_dir:!1,modified:e.uploadDate?new Date(e.uploadDate).toISOString():new Date().toISOString(),sign:`${r.id}$${t}`,type:X(e.name||"",!1),raw_url:""}}var Ap,z_=J(()=>{"use strict";Be();K_();Ap=class{client;pathCache=new Map;constructor(e,t){this.client=new fp(e,t)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFiles(i)).map(s=>G_(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFiles(o)).find(l=>(l.content.folderName||l.content.name)===n);if(c){let l=G_(c);if(!l.is_dir){let d=l.sign.split("$")[1]||"";if(d)try{let u=await this.client.link(d);l.raw_url=u.download,l.raw_url_headers=this.client.downloadHeaders()}catch{l.raw_url_error="[ChaoXing] failed to resolve download url"}}return l}}catch{}try{let o=await this.pathToId(t);return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:o,type:1,raw_url:""}}catch{return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);if(!n.isDir)throw new Error("[ChaoXing] \u6B64\u7F51\u76D8\u4E0D\u652F\u6301\u4FEE\u6539\u6587\u4EF6\u540D");await this.client.renameFolder(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id,n.isDir),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t),o.isDir),this.pathCache.clear()}async copy(){throw new Error("[ChaoXing] copy not supported")}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/"),a=await this.pathToId(o);await this.client.upload(a,s,new Uint8Array(i)),this.pathCache.clear()}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFiles(s)).find(c=>(c.content.folderName||c.content.name)===i);if(!a)throw new Error(`[ChaoXing] '${i}' not found`);return{id:String(a.id),isDir:!!a.content.folderName}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"-1";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="-1";for(let s=0;sl.content.folderName===i[s]);if(!a)throw new Error(`[ChaoXing] Directory '${i[s]}' not found`);n=String(a.id);let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var jC,$C,VC,Zz,hp,J_=J(()=>{"use strict";jC="all",$C="albums",VC="share_albums",Zz="root",hp=class{addition;accessToken="";constructor(e){this.addition=e}async init(){await this.refreshToken()}async refreshToken(){let e=new URLSearchParams({client_id:this.addition.client_id,client_secret:this.addition.client_secret,refresh_token:this.addition.refresh_token,grant_type:"refresh_token"}),i=await(await fetch("https://www.googleapis.com/oauth2/v4/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json();if(!i.access_token)throw new Error("[GooglePhoto] refresh token failed");this.accessToken=i.access_token}async request(e,t,i,n){let s=i?"?"+new URLSearchParams(i).toString():"",o={Authorization:"Bearer "+this.accessToken,"Accept-Encoding":"gzip"},a={method:t,headers:o};n!==void 0&&(o["Content-Type"]="application/json",a.body=JSON.stringify(n));let c=await fetch(`${e}${s}`,a);if(c.status===401&&(await this.refreshToken(),o.Authorization="Bearer "+this.accessToken,c=await fetch(`${e}${s}`,a)),c.status>=400){let l=await c.json().catch(()=>({}));throw new Error(`[GooglePhoto] request failed: ${l.error?.message||`HTTP ${c.status}`}`)}return c}async getFiles(e){switch(e){case jC:return this.getAllMedias();case $C:return this.getAlbums();case VC:return this.getShareAlbums();case Zz:return this.getFakeRoot();default:return this.getMedias(e)}}getFakeRoot(){return[{id:jC,title:jC},{id:$C,title:$C},{id:VC,title:VC}]}getAlbums(){return this.fetchItems("https://photoslibrary.googleapis.com/v1/albums",{fields:"albums(id,title,coverPhotoBaseUrl),nextPageToken",pageSize:"50",pageToken:"first"},"GET")}getShareAlbums(){return this.fetchItems("https://photoslibrary.googleapis.com/v1/sharedAlbums",{fields:"sharedAlbums(id,title,coverPhotoBaseUrl),nextPageToken",pageSize:"50",pageToken:"first"},"GET")}getMedias(e){return this.fetchItems("https://photoslibrary.googleapis.com/v1/mediaItems:search",{fields:"mediaItems(id,baseUrl,mimeType,mediaMetadata,filename),nextPageToken",pageSize:"100",albumId:e,pageToken:"first"},"POST")}getAllMedias(){return this.fetchItems("https://photoslibrary.googleapis.com/v1/mediaItems",{fields:"mediaItems(id,baseUrl,mimeType,mediaMetadata,filename),nextPageToken",pageSize:"100",pageToken:"first"},"GET")}async getMedia(e){return await(await this.request(`https://photoslibrary.googleapis.com/v1/mediaItems/${e}`,"GET",{fields:"mediaMetadata,baseUrl,mimeType"})).json()}async fetchItems(e,t,i){let n=[],s=t.pageToken;for(;s!=="";){let o={...t};o.pageToken==="first"&&(o.pageToken="");let c=await(await this.request(e,i,o)).json();s=c.nextPageToken||"",c.mediaItems&&n.push(...c.mediaItems),c.albums&&n.push(...c.albums),c.sharedAlbums&&n.push(...c.sharedAlbums)}return n}async link(e){let t=await this.getMedia(e),i=t.mimeType||"";return i.includes("image/")?(t.baseUrl||"")+"=d":i.includes("video/")?(t.baseUrl||"")+"=dv":t.baseUrl||""}}});function j_(r){return r.filename?{name:r.filename,size:0,is_dir:!1,modified:r.mediaMetadata?.creationTime||new Date().toISOString(),sign:r.id,type:X(r.filename,!1),thumb:r.baseUrl?r.baseUrl+"=w100-h100-c":"",raw_url:""}:{name:r.title||r.id,size:0,is_dir:!0,modified:new Date().toISOString(),sign:r.id,type:1}}var gp,$_=J(()=>{"use strict";Be();J_();gp=class{client;pathCache=new Map;constructor(e){this.client=new hp(e)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFiles(i)).map(s=>j_(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFiles(o)).find(l=>(l.filename||l.title)===n);if(c){let l=j_(c);if(!l.is_dir)try{l.raw_url=await this.client.link(c.id)}catch{l.raw_url_error="[GooglePhoto] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(){throw new Error("[GooglePhoto] mkdir not supported")}async rename(){throw new Error("[GooglePhoto] rename not supported")}async remove(){throw new Error("[GooglePhoto] remove not supported")}async move(){throw new Error("[GooglePhoto] move not supported")}async copy(){throw new Error("[GooglePhoto] copy not supported")}async put(){throw new Error("[GooglePhoto] upload not supported")}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"root";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=i[0];for(let s=1;s(l.filename||l.title)===i[s]);if(!a)throw new Error(`[GooglePhoto] Directory '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return this.pathCache.set(t,n),n}}});var pp,V_=J(()=>{"use strict";pp=class{addition;accessToken="";tokenType="Bearer";persist;constructor(e,t){this.addition=e,this.persist=t}async init(){if(!this.addition.client_id||!this.addition.client_secret)throw new Error("[FebBox] client_id and client_secret are required");await this.refreshToken()}async refreshToken(){let e=new URLSearchParams;this.addition.refresh_token?(e.set("grant_type","refresh_token"),e.set("refresh_token",this.addition.refresh_token)):e.set("grant_type","client_credentials"),e.set("client_id",this.addition.client_id),e.set("client_secret",this.addition.client_secret);let i=await(await fetch("https://api.febbox.com/oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json();if(i.code!==1||!i.data?.access_token)throw new Error(`[FebBox] token fetch failed: ${i.msg}`);this.accessToken=i.data.access_token,this.tokenType=i.data.token_type||"Bearer",i.data.refresh_token&&(this.addition.refresh_token=i.data.refresh_token,this.persist&&await this.persist(i.data.refresh_token))}async request(e){let t=new FormData;for(let[s,o]of Object.entries(e))t.append(s,o);let n=await(await fetch("https://api.febbox.com/oauth",{method:"POST",headers:{Authorization:`${this.tokenType} ${this.accessToken}`},body:t})).json().catch(()=>({}));if(n.code===-10001&&n.server_name)return await this.refreshToken(),this.request(e);if(n.code!==0&&n.code!==1)throw new Error(`[FebBox] ${n.msg||n.code}`);return n}async getFilesList(e){let t=this.addition.page_size||100,i=[],n=1;for(;;){let o=(await this.request({module:"file_list",parent_id:e,page:String(n),pagelimit:String(t),order:this.addition.sort_rule||"name_asc"})).data?.file_list||[];if(i.push(...o),o.length{"use strict";Be();V_();mp=class{client;userIp;pathCache=new Map;constructor(e,t){this.client=new pp(e,t),this.userIp=e.user_ip||""}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFilesList(i)).map(s=>Y_(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFilesList(o)).find(l=>l.file_name===n);if(c){let l=Y_(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadLink(l.sign,this.userIp)}catch{l.raw_url_error="[FebBox] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.makeDir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t)),this.pathCache.clear()}async copy(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.copy(o.id,await this.pathToId(t)),this.pathCache.clear()}async put(){throw new Error("[FebBox] upload not supported")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFilesList(s)).find(c=>c.file_name===i);if(!a)throw new Error(`[FebBox] '${i}' not found`);return{id:String(a.fid),isDir:a.is_dir===1}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return"0";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n="0";for(let s=0;sl.file_name===i[s]&&l.is_dir===1);if(!a)throw new Error(`[FebBox] Directory '${i[s]}' not found`);n=String(a.fid);let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});var eJ,tJ,rJ,iJ,nJ,yp,X_=J(()=>{"use strict";eJ="https://rest-api.degoo.com/login",tJ="https://rest-api.degoo.com/access-token/v2",rJ="https://production-appsync.degoo.com/graphql",iJ="da2-vs6twz5vnjdavpqndtbzg3prra",nJ="CgAQAg",yp=class{addition;accessToken="";refreshToken="";rootId="0";persist;constructor(e,t){this.addition=e,this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||"",this.persist=t}async init(){await this.ensureValidToken(),await this.getDevices()}getRootId(){return this.rootId}async saveTokens(){this.persist&&await this.persist({accessToken:this.accessToken,refreshToken:this.refreshToken})}isTokenExpired(){if(!this.accessToken)return!0;try{let e=this.accessToken.split(".");if(e.length!==3)return!0;let t=JSON.parse(atob(e[1].replace(/-/g,"+").replace(/_/g,"/"))),i=Number(t.exp)*1e3;return Date.now()+300*1e3>i}catch{return!0}}async ensureValidToken(){if(this.isTokenExpired()){if(this.refreshToken)try{await this.refreshAccessToken();return}catch{}this.addition.username&&this.addition.password&&await this.login()}}async refreshAccessToken(){let t=await(await fetch(tJ,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({RefreshToken:this.refreshToken})})).json();if(!t.AccessToken)throw new Error("[Degoo] refresh token failed");this.accessToken=t.AccessToken,await this.saveTokens()}async login(){let t=await(await fetch(eJ,{method:"POST",headers:{"Content-Type":"application/json",Origin:"https://app.degoo.com"},body:JSON.stringify({GenerateToken:!0,Username:this.addition.username,Password:this.addition.password})})).json();if(t.RefreshToken)this.refreshToken=t.RefreshToken,await this.refreshAccessToken();else if(t.Token)this.accessToken=t.Token,this.refreshToken="";else throw new Error("[Degoo] login failed: no valid token");await this.saveTokens()}async apiCall(e,t,i){await this.ensureValidToken(),i.Token!==void 0&&(i.Token=this.accessToken);let s=await(await fetch(rJ,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":iJ,Authorization:`Bearer ${this.accessToken}`},body:JSON.stringify({operationName:e,query:t,variables:i})})).json();if(s.errors&&s.errors.length>0){let o=s.errors[0];if(o.errorType==="Unauthorized")return await this.login(),i.Token=this.accessToken,this.apiCall(e,t,i);throw new Error(`[Degoo] GraphQL error: ${o.message}`)}return s.data}async getDevices(){let t=await this.apiCall("GetFileChildren5","query GetFileChildren5($Token: String! $ParentID: String $AllParentIDs: [String] $Limit: Int! $Order: Int! $NextToken: String ) { getFileChildren5(Token: $Token ParentID: $ParentID AllParentIDs: $AllParentIDs Limit: $Limit Order: $Order NextToken: $NextToken) { Items { ParentID } NextToken } }",{Token:this.accessToken,ParentID:"0",Limit:10,Order:3});if(this.rootId==="0"){let i=t?.getFileChildren5?.Items;i&&i.length>0&&(this.rootId=i[0].ParentID)}}async getFileChildren5(e){let t="query GetFileChildren5($Token: String! $ParentID: String $AllParentIDs: [String] $Limit: Int! $Order: Int! $NextToken: String ) { getFileChildren5(Token: $Token ParentID: $ParentID AllParentIDs: $AllParentIDs Limit: $Limit Order: $Order NextToken: $NextToken) { Items { ID ParentID Name Category Size CreationTime LastModificationTime LastUploadTime FilePath IsInRecycleBin DeviceID MetadataID } NextToken } }",i=[],n="";for(;;){let s={Token:this.accessToken,ParentID:e,Limit:1e3,Order:3};n&&(s.NextToken=n);let o=await this.apiCall("GetFileChildren5",t,s),a=o?.getFileChildren5?.Items||[];if(i.push(...a),n=o?.getFileChildren5?.NextToken||"",!n)break}return i}async getOverlay4(e){return(await this.apiCall("GetOverlay4","query GetOverlay4($Token: String!, $ID: IDType!) { getOverlay4(Token: $Token, ID: $ID) { ID ParentID Name Category Size CreationTime LastModificationTime LastUploadTime URL FilePath IsInRecycleBin DeviceID MetadataID } }",{Token:this.accessToken,ID:{FileID:e}}))?.getOverlay4}async mkdir(e,t){await this.apiCall("SetUploadFile3","mutation SetUploadFile3($Token: String!, $FileInfos: [FileInfoUpload3]!) { setUploadFile3(Token: $Token, FileInfos: $FileInfos) }",{Token:this.accessToken,FileInfos:[{Checksum:nJ,Name:t,CreationTime:Date.now(),ParentID:e,Size:0}]})}async move(e,t){await this.apiCall("SetMoveFile","mutation SetMoveFile($Token: String!, $Copy: Boolean, $NewParentID: String!, $FileIDs: [String]!) { setMoveFile(Token: $Token, Copy: $Copy, NewParentID: $NewParentID, FileIDs: $FileIDs) }",{Token:this.accessToken,Copy:!1,NewParentID:t,FileIDs:[e]})}async rename(e,t){await this.apiCall("SetRenameFile","mutation SetRenameFile($Token: String!, $FileRenames: [FileRenameInfo]!) { setRenameFile(Token: $Token, FileRenames: $FileRenames) }",{Token:this.accessToken,FileRenames:[{ID:e,NewName:t}]})}async remove(e){await this.apiCall("SetDeleteFile5","mutation SetDeleteFile5($Token: String!, $IsInRecycleBin: Boolean!, $IDs: [IDType]!) { setDeleteFile5(Token: $Token, IsInRecycleBin: $IsInRecycleBin, IDs: $IDs) }",{Token:this.accessToken,IsInRecycleBin:!1,IDs:[{FileID:e}]})}}});function YC(r){return r===1||r===2||r===10}function Z_(r){let e=YC(r.Category),t=Number(r.Size)||0,i=Number(r.LastModificationTime);return{name:r.Name,size:e?0:t,is_dir:e,modified:i?new Date(i).toISOString():new Date().toISOString(),sign:r.ID,type:X(r.Name,e),raw_url:""}}var Ip,e8=J(()=>{"use strict";Be();X_();Ip=class{client;pathCache=new Map;constructor(e,t){this.client=new yp(e,t)}async init(){await this.client.init()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFileChildren5(i)).map(s=>Z_(s))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFileChildren5(o)).find(l=>l.Name===n);if(c){let l=Z_(c);if(!l.is_dir)try{let d=await this.client.getOverlay4(c.ID);l.raw_url=d.URL||""}catch{l.raw_url_error="[Degoo] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,i),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);await this.client.remove(n.id),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n);await this.client.move(o.id,await this.pathToId(t)),this.pathCache.clear()}async copy(){throw new Error("[Degoo] copy not supported")}async put(){throw new Error("[Degoo] upload not supported in stateless environment")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFileChildren5(s)).find(c=>c.Name===i);if(!a)throw new Error(`[Degoo] '${i}' not found`);return{id:a.ID,isDir:YC(a.Category)}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.client.getRootId();if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=this.client.getRootId();for(let s=0;sl.Name===i[s]&&YC(l.Category));if(!a)throw new Error(`[Degoo] Directory '${i[s]}' not found`);n=a.ID;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});function Ol(r){return new TextEncoder().encode(r)}function s8(r,e=16){let t=e-r.length%e,i=new Uint8Array(r.length+t);return i.set(r),i.fill(t,r.length),i}function lJ(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}function o8(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function i8(r,e,t){if(n8){let{createCipheriv:o}=await import("node:crypto"),a=o("aes-128-cbc",Buffer.from(e),Buffer.from(t));return new Uint8Array(Buffer.concat([a.update(Buffer.from(r)),a.final()]))}let i=await crypto.subtle.importKey("raw",e,{name:"AES-CBC"},!1,["encrypt"]),n=s8(r),s=await crypto.subtle.encrypt({name:"AES-CBC",iv:t},i,n);return new Uint8Array(s)}async function dJ(r,e){if(n8){let{createCipheriv:o}=await import("node:crypto"),a=o("aes-128-ecb",Buffer.from(e),null);return new Uint8Array(Buffer.concat([a.update(Buffer.from(r)),a.final()]))}let t=await crypto.subtle.importKey("raw",e,{name:"AES-CBC"},!1,["encrypt"]),i=s8(r),n=new Uint8Array(i.length),s=new Uint8Array(16);for(let o=0;o0n;)e&1n&&(i=i*r%t),r=r*r%t,e>>=1n;return i}function hJ(r){let e=new Uint8Array(128);e.set(r,112);let t=uJ(e),i=BigInt("0x"+aJ),n=AJ(t,cJ,i);return fJ(n,128)}function gJ(){let r=new Uint8Array(16),e=new Uint8Array(16);for(let t=0;t<16;t++){let i=Math.floor(Math.random()*r8.length),n=r8.charCodeAt(i);r[t]=n,e[15-t]=n}return{key:r,reversed:e}}async function a8(r){let e=Ol(JSON.stringify(r)),{key:t,reversed:i}=gJ(),n=await i8(e,Ol(sJ),Ol(t8)),s=await i8(n,i,Ol(t8));return{params:lJ(s),encSecKey:o8(hJ(t))}}async function c8(r){let e=Ol(JSON.stringify(r)),t=await dJ(e,Ol(oJ));return{eparams:o8(t).toUpperCase()}}var sJ,oJ,t8,r8,aJ,cJ,n8,l8=J(()=>{"use strict";sJ="0CoJUm6Qyw8W8jud",oJ="rFgB&h#%2?^eDg:Q",t8="0102030405060708",r8="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",aJ="e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7",cJ=65537n,n8=typeof process<"u"&&process?.release?.name==="node"});var wp,d8=J(()=>{"use strict";l8();wp=class{addition;csrfToken="";musicU="";constructor(e){this.addition=e}init(){if(this.csrfToken=this.getCookie("__csrf"),this.musicU=this.getCookie("MUSIC_U"),!this.csrfToken||!this.musicU)throw new Error("[NeteaseMusic] cookie must contain __csrf and MUSIC_U")}getCookie(e){let i=new RegExp(e+"=([^(;|$)]+)").exec(this.addition.cookie);return i?i[1]:""}async request(e,t,i){let n={Cookie:this.addition.cookie};e.includes("music.163.com")&&(n.Referer="https://music.163.com");let s;if(i.crypto==="weapi"?(s=await a8(i.data),e=e.replace(/\/\w*api\//,"/weapi/")):(s=await c8({url:e.replace(/\/\w*api\//,"/api/"),method:t,params:i.data}),n["User-Agent"]="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36",e="https://music.163.com/api/linux/forward"),i.cookies){let a=i.cookies.map(c=>`${c.name}=${c.value}`).join("; ");n.Cookie=n.Cookie+"; "+a}return(await fetch(e,{method:t,headers:{...n,"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(s).toString()})).json()}async getSongObjs(e){return(await this.request("https://music.163.com/weapi/v1/cloud/get","POST",{crypto:"weapi",data:{limit:String(e),offset:"0"},cookies:[{name:"os",value:"pc"}]})).data||[]}async getSongLink(e){let t=await this.request("https://music.163.com/api/song/enhance/player/url","POST",{crypto:"linuxapi",data:{ids:"["+e+"]",br:"999000"},cookies:[{name:"os",value:"pc"}]});if(!t.data||t.data.length<1)throw new Error("[NeteaseMusic] song url not found");return t.data[0].url||""}async removeSong(e){await this.request("http://music.163.com/weapi/cloud/del","POST",{crypto:"weapi",data:{songIds:"["+e+"]"}})}}});function u8(r){return{name:r.fileName,size:r.fileSize,is_dir:!1,modified:r.addTime?new Date(r.addTime).toISOString():new Date().toISOString(),sign:String(r.songId),type:X(r.fileName,!1),thumb:r.simpleSong?.al?.picUrl||"",raw_url:""}}var xp,f8=J(()=>{"use strict";Be();d8();xp=class{client;songLimit;constructor(e){this.client=new wp(e),this.songLimit=e.song_limit||200}async init(){this.client.init()}async list(){return(await this.client.getSongObjs(this.songLimit)).map(t=>u8(t))}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"";if(!n)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let o=(await this.client.getSongObjs(this.songLimit)).find(a=>a.fileName===n);if(o){let a=u8(o);try{a.raw_url=await this.client.getSongLink(a.sign)}catch{a.raw_url_error="[NeteaseMusic] failed to resolve song url"}return a}return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""}}async mkdir(){throw new Error("[NeteaseMusic] mkdir not supported")}async rename(){throw new Error("[NeteaseMusic] rename not supported")}async remove(e,t,i){let n=t.split("/").filter(Boolean),s=n[n.length-1],a=(await this.client.getSongObjs(this.songLimit)).find(c=>c.fileName===s);if(!a)throw new Error(`[NeteaseMusic] '${s}' not found`);await this.client.removeSong(String(a.songId))}async move(){throw new Error("[NeteaseMusic] move not supported")}async copy(){throw new Error("[NeteaseMusic] copy not supported")}async put(){throw new Error("[NeteaseMusic] upload not supported in stateless environment")}}});function ta(r){return new TextEncoder().encode(r)}function y8(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}async function g8(r){let e=typeof r=="string"?ta(r):r,t=await crypto.subtle.digest("SHA-256",e);return y8(new Uint8Array(t))}async function Cp(r,e){let t=await crypto.subtle.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,r);return new Uint8Array(i)}function p8(r){return encodeURIComponent(r).replace(/%20/g,"%20").replace(/[!'()*]/g,e=>"%"+e.charCodeAt(0).toString(16).toUpperCase())}async function m8(r){let e=r.now??new Date,t=e.toISOString().slice(0,10),i=e.toISOString(),n=(BigInt(Math.floor(e.getTime()))*1000000n+BigInt(Math.floor(Math.random()*1e6))).toString(36),s=r.bodyRaw.length>0,o={host:r.apiHost,"x-hl-nonce":n,"x-hl-timestamp":i},a=[];s&&(o["content-type"]="application/json; charset=utf-8",a.push("content-type"));let c=[...a].sort(),l=c.map(R=>`${R}:${o[R]} +`).join(""),d=c.join(";"),u="";r.query&&Object.keys(r.query).length>0&&(u=Object.keys(r.query).sort().map(U=>`${p8(U)}=${p8(r.query[U]??"")}`).join("&"));let f=await g8(r.bodyRaw),h=[r.method,r.apiPath,u,l,d,f].join(` +`),g=`${t}/${r.accessToken}/${h8}`,p=[A8,i,g,await g8(h)].join(` +`),I=ta(pJ+r.secretKey),m=await Cp(ta(t),I),w=await Cp(ta(r.accessToken),m),B=await Cp(ta(h8),w),C=y8(await Cp(ta(p),B)),x=`${A8} Credential=${r.secretId}/${g}, SignedHeaders=${d}, Signature=${C}`;o.authorization=x;let Q=`https://${r.apiHost}${r.apiPath}${u?"?"+u:""}`;return{headers:o,url:Q}}function mJ(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}var A8,pJ,h8,Ep,I8=J(()=>{"use strict";A8="HL6-HMAC-SHA256",pJ="HL6",h8="hl6_request";Ep=class{addition;accessToken="";host;persistRefreshToken;constructor(e,t){this.addition=e,this.host=e.host||"openapi.2dland.cn",this.persistRefreshToken=t}async init(){if(!this.addition.client_id||!this.addition.client_secret)throw new Error("[HalalCloud] client_id and client_secret are required");if(!this.addition.refresh_token)throw new Error("[HalalCloud] refresh_token \u4E3A\u7A7A\uFF1A\u8BF7\u4ECE HalalCloud \u5B98\u65B9\u83B7\u53D6 refresh_token");await this.refreshToken()}async refreshToken(){let e={refresh_token:this.addition.refresh_token,grant_type:"refresh_token",client_id:this.addition.client_id},t=ta(JSON.stringify(e)),i=await m8({apiHost:this.host,secretId:this.addition.client_id,secretKey:this.addition.client_secret,accessToken:this.accessToken,method:"POST",apiPath:"/v6/oauth/refresh_token",bodyRaw:t}),s=await(await fetch(i.url,{method:"POST",headers:i.headers,body:t})).json().catch(()=>({}));if(!s.access_token)throw new Error("[HalalCloud] refresh token failed");this.accessToken=s.access_token,s.refresh_token&&(this.addition.refresh_token=s.refresh_token,this.persistRefreshToken&&await this.persistRefreshToken(s.refresh_token))}async request(e,t,i=!1){let n=t!==void 0?ta(JSON.stringify(t)):new Uint8Array(0),s=await m8({apiHost:this.host,secretId:this.addition.client_id,secretKey:this.addition.client_secret,accessToken:this.accessToken,method:"POST",apiPath:e,bodyRaw:n}),o=await fetch(s.url,{method:"POST",headers:s.headers,body:n.length>0?n:void 0});if(o.status===401&&!i)return await this.refreshToken(),this.request(e,t,!0);let a=await o.text(),c;try{c=JSON.parse(a)}catch{c={}}if(o.status>=300)throw new Error(`[HalalCloud] API error: ${c.message||c.msg||`HTTP ${o.status}`}`);return c}async listFiles(e){let t=[],i="";for(;;){let n={parent:{path:e},list_info:{limit:100,token:i}},s=await this.request("/v6/userfile/list",n),o=s.files||[];if(t.push(...o),i=s.list_info?.token||"",!i||o.length===0)break}return t}async getFile(e){let t=await this.request("/v6/userfile/get",{path:e});return t.identity?t:null}async createDir(e,t){let i=mJ(e,t);await this.request("/v6/userfile/create",{parent:e,path:i,name:t,dir:!0})}async rename(e,t){await this.request("/v6/userfile/rename",{path:e,name:t})}async move(e,t,i){let n={source:[{path:e,identity:i}],dest:{path:t}};await this.request("/v6/userfile/move",n)}async copy(e,t,i){let n={source:[{path:e,identity:i}],dest:{path:t}};await this.request("/v6/userfile/copy",n)}async remove(e,t,i){let n={source:[{path:e,identity:t,dir:i}]};await this.request("/v6/userfile/delete",n)}async getDownloadUrl(e,t){let i=await this.request("/v6/userfile/get_direct_download_address",{path:e,identity:t});if(!i.download_address)throw new Error("[HalalCloud] \u83B7\u53D6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25");return i.download_address}}});function WC(r){return typeof r=="number"?r:typeof r=="string"&&r.trim()!==""?Number(r):0}function w8(r){let e=r.dir===!0,t=WC(r.update_ts),i=WC(r.create_ts),n=t||i;return{name:r.name||"",size:e?0:WC(r.size),is_dir:e,modified:n?new Date(n*1e3).toISOString():new Date().toISOString(),sign:r.identity||r.path||"",type:X(r.name||"",e),raw_url:""}}function x8(r){return!r||r==="/"?"/":r.startsWith("/")?r:"/"+r}function C8(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}var Bp,E8=J(()=>{"use strict";Be();I8();Bp=class{client;rootPath;constructor(e,t){this.client=new Ep(e,t),this.rootPath=x8(e.root_folder_id||"/")}async init(){await this.client.init()}fullPath(e){let t=x8(e);return this.rootPath==="/"?t:t==="/"?this.rootPath:this.rootPath+t}async list(e,t){return(await this.client.listFiles(this.fullPath(t))).map(w8)}async get(e,t){let i=this.fullPath(t),n=i.split("/").filter(Boolean),s=n[n.length-1]||"root",o="/"+n.slice(0,-1).join("/");try{let c=(await this.client.listFiles(o==="//"?"/":o)).find(l=>l.name===s);if(c){let l=w8(c);if(!l.is_dir)try{l.raw_url=await this.client.getDownloadUrl(c.path||i,c.identity||"")}catch{l.raw_url_error="[HalalCloud] failed to resolve download url"}return l}}catch{}return{name:s,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let n=this.fullPath(t).split("/").filter(Boolean),s=n.pop()||"new_folder",o="/"+n.join("/");await this.client.createDir(o==="//"?"/":o,s)}async rename(e,t,i){let n=this.fullPath(t);await this.client.rename(n,i)}async remove(e,t,i){let n=this.fullPath(t),s=await this.resolveEntry(n);await this.client.remove(s.path,s.identity,s.isDir)}async move(e,t,i,n,s){let o=this.fullPath(n),a=this.fullPath(t),c=await this.resolveEntry(o),l=o.split("/").filter(Boolean).pop()||"";await this.client.move(c.path,C8(a,l),c.identity)}async copy(e,t,i,n,s){let o=this.fullPath(n),a=this.fullPath(t),c=await this.resolveEntry(o),l=o.split("/").filter(Boolean).pop()||"";await this.client.copy(c.path,C8(a,l),c.identity)}async put(){throw new Error("[HalalCloud] upload not supported in stateless environment")}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),o=(await this.client.listFiles(n==="//"?"/":n)).find(a=>a.name===i);if(!o)throw new Error(`[HalalCloud] '${i}' not found`);return{path:o.path||e,identity:o.identity||"",isDir:o.dir===!0}}}});function wJ(r){let e=(r||"").trim();if(!e)return"";if(/^Bearer\s+/i.test(e))return e.replace(/^Bearer\s+/i,"").trim();if(/^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(e))return e;let t={};for(let n of e.split(";")){let s=n.indexOf("=");if(s<0)continue;let o=n.slice(0,s).trim(),a=n.slice(s+1).trim();o&&(t[o]=a)}let i=n=>{let s=t[n]||"";return/^Bearer\s+/i.test(s)?s.replace(/^Bearer\s+/i,"").trim():s};return i("sso-token")||i("token")||i("authorization")||""}function B8(r){let e=4294967295;for(let t=0;t>>8;return(e^4294967295)>>>0}function TJ(r){let e=Math.round(1e7*Math.random()).toString(),t=new Date,n=Math.round((t.getTime()+8*36e5)/1e3).toString(),s=t.getUTCFullYear(),o=String(t.getUTCMonth()+1).padStart(2,"0"),a=String(t.getUTCDate()).padStart(2,"0"),c=String(t.getUTCHours()+8).padStart(2,"0"),l=String(t.getUTCMinutes()).padStart(2,"0"),u=`${s}${o}${a}${c}${l}`.split("").map(p=>PJ[parseInt(p)]).join(""),f=(B8(u)>>>0).toString(),h=[n,e,r,"web","3",f].join("|"),g=(B8(h)>>>0).toString();return`${f}=${n}-${e}-${g}`}function UJ(r){let e=r.indexOf("?"),t=e>=0?r.substring(0,e):r,i=e>=0?r.substring(e+1):"",n=new URL(r),s=TJ(n.pathname);return`${t}?${i}${i?"&":""}${s}`}var Bn,yJ,IJ,xJ,CJ,EJ,BJ,bJ,vJ,kJ,SJ,DJ,QJ,_J,FJ,PJ,bp,b8=J(()=>{"use strict";Bn="https://yun.123pan.com/b/api",yJ="https://login.123pan.com/api",IJ=yJ+"/user/sign_in";xJ=Bn+"/user/info",CJ=Bn+"/file/list/new",EJ=Bn+"/file/download_info",BJ=Bn+"/file/upload_request",bJ=Bn+"/file/mod_pid",vJ=Bn+"/file/rename",kJ=Bn+"/file/trash",SJ=Bn+"/file/upload_request",DJ=Bn+"/file/s3_upload_object/auth",QJ=Bn+"/file/s3_repare_upload_parts_batch",_J=Bn+"/file/upload_complete/v2",FJ=(()=>{let r=new Array(256);for(let e=0;e<256;e++){let t=e;for(let i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;r[e]=t}return r})();PJ=["a","d","e","f","g","h","l","m","y","i","j","n","o","p","k","q","r","s","t","u","b","c","v","w","s","z"];bp=class{addition;accessToken="";onTokenUpdate;constructor(e,t){this.addition=e,this.onTokenUpdate=t}getRootId(){return(this.addition.root_id||"0").trim()||"0"}async login(){if(this.addition.access_token){this.accessToken=this.addition.access_token;try{await this.userInfo(!0);return}catch{this.accessToken=""}}if(this.addition.cookie){let e=wJ(this.addition.cookie);if(e){this.accessToken=e;try{await this.userInfo(!0),this.addition.access_token=e,this.onTokenUpdate?.(e);return}catch{this.accessToken=""}}}if(!this.addition.username||!this.addition.password)throw new Error("123 \u7F51\u76D8\u767B\u5F55\u51ED\u8BC1\u7F3A\u5931\uFF1A\u8BF7\u586B\u5199 123 \u7F51\u76D8\u624B\u673A\u53F7 + \u5BC6\u7801\uFF1B\u82E5\u90E8\u7F72\u73AF\u5883\uFF08\u5982 Cloudflare Workers \u6570\u636E\u4E2D\u5FC3 IP\uFF09\u5BC6\u7801\u767B\u5F55\u4F1A\u88AB\u98CE\u63A7\uFF0C\u53EF\u5728\u300CCookie\u300D\u5B57\u6BB5\u7C98\u8D34\u6D4F\u89C8\u5668\u767B\u5F55\u540E\u7684 Cookie\uFF08\u542B sso-token\uFF09\uFF0C\u6216\u586B\u5199\u6709\u6548\u7684\u8BBF\u95EE\u4EE4\u724C access_token\uFF08\u5728\u672C\u673A\u6D4F\u89C8\u5668\u767B\u5F55 https://www.123pan.com/ \u540E\u4ECE\u5F00\u53D1\u8005\u5DE5\u5177\u83B7\u53D6\uFF09\u3002");await this.signIn()}async signIn(){let t=/@/.test(this.addition.username)?{mail:this.addition.username,password:this.addition.password,type:2}:{passport:this.addition.username,password:this.addition.password,remember:!0},n=await(await fetch(IJ,{method:"POST",headers:{"Content-Type":"application/json",origin:"https://yun.123pan.com",referer:"https://yun.123pan.com/","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",platform:"web","app-version":"3"},body:JSON.stringify(t)})).json();if(n.code!==200)throw new Error(`123 \u7F51\u76D8\u767B\u5F55\u5931\u8D25\uFF08${n.message||`code ${n.code}`}\uFF09\u3002\u5F53\u524D\u90E8\u7F72\u73AF\u5883\u7684\u51FA\u53E3 IP \u88AB 123 \u5224\u5B9A\u4E3A\u5883\u5916/\u964C\u751F\u8BBE\u5907\uFF08\u5982 Cloudflare Workers \u6570\u636E\u4E2D\u5FC3 IP\uFF09\uFF0C\u8D26\u53F7\u5BC6\u7801\u767B\u5F55\u4F1A\u88AB\u98CE\u63A7\u62E6\u622A\u3002\u53EF\u9760\u65B9\u6848\uFF1A\u2460 \u5728\u672C\u673A\u6D4F\u89C8\u5668\u767B\u5F55 https://www.123pan.com/\uFF08\u767B\u5F55\u4E00\u6B21\u6216\u4FEE\u6539\u5BC6\u7801\u53EF\u89E3\u9664\u8D26\u53F7\u98CE\u9669\uFF09\uFF0C\u6253\u5F00\u5F00\u53D1\u8005\u5DE5\u5177 \u2192 Application/Network \u2192 \u590D\u5236\u8BF7\u6C42\u5934\u4E2D\u7684 Bearer \u4EE4\u724C\uFF0C\u586B\u5165\u5B58\u50A8\u8BBE\u7F6E\u7684 access_token \u5B57\u6BB5\uFF08\u4EE4\u724C\u6709\u6548\u671F\u5185 API \u8BF7\u6C42\u4E0D\u53D7 IP \u98CE\u63A7\u5F71\u54CD\uFF09\uFF1B\u2461 \u6216\u5C06\u8BE5\u7F51\u76D8\u90E8\u7F72\u5230\u5883\u5185\u670D\u52A1\u5668\uFF08Node \u5BB9\u5668\u6A21\u5F0F\uFF09\u540E\u4F7F\u7528\u8D26\u53F7\u5BC6\u7801\u3002`);if(this.accessToken=n.data?.token||"",!this.accessToken)throw new Error("login returned empty token");this.addition.access_token=this.accessToken,this.onTokenUpdate?.(this.accessToken)}async request(e,t,i,n,s=!1){let o=async()=>{let l=UJ(e),d={origin:"https://yun.123pan.com",referer:"https://yun.123pan.com/",authorization:this.accessToken?`Bearer ${this.accessToken}`:"","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",platform:this.addition.platform||"web","app-version":"3",Accept:"application/json"},u={method:t,headers:d};return i!==void 0&&t!=="GET"&&(d["Content-Type"]="application/json",u.body=JSON.stringify(i)),(await fetch(l,u)).json()},a=await o(),c=a?.code;if(c!==0&&c!==200){if(c===401&&!s){await this.login(),a=await o();let l=a?.code;if(l!==0&&l!==200)throw new Error(a?.message||`api error: code ${l}`);return a}throw new Error(a?.message||`api error: code ${c}`)}return a}async userInfo(e=!1){return(await this.request(xJ,"GET",void 0,void 0,e)).data}async getFiles(e,t){let i=[],n=1,s="0",o=t?.maxPages??45;for(;;){if(t?.budget){if(t.budget.used>=t.budget.limit){console.warn(`[123Pan] \u5DF2\u8FBE Cloudflare subrequest \u9884\u7B97\u4E0A\u9650(${t.budget.limit} \u6B21)\uFF0C\u7ED3\u679C\u5DF2\u622A\u65AD\uFF08\u76EE\u5F55\u6587\u4EF6\u8FC7\u591A\u6216\u8DEF\u5F84\u8FC7\u6DF1\uFF09`);break}t.budget.used++}if(n>o){console.warn(`[123Pan] \u5206\u9875\u8D85\u8FC7 ${o} \u9875\uFF0C\u7ED3\u679C\u53EF\u80FD\u4E0D\u5B8C\u6574\uFF08\u76EE\u5F55\u6587\u4EF6\u8FC7\u591A\uFF09`);break}let a=new URLSearchParams({driveId:"0",limit:"100",next:s,orderBy:this.addition.order_by||"file_id",orderDirection:this.addition.order_direction||"desc",parentFileId:e,trashed:"false",SearchData:"",Page:String(n),OnlyLookAbnormalFile:"0",event:"homeListFile",operateType:"4",inDirectSpace:"false"}),c=`${CJ}?${a.toString()}`,l=await this.request(c,"GET"),d=l.data?.InfoList||[];if(i.push(...d),t?.findName){let f=d.find(h=>h.FileName===t.findName&&(t.findIsDir===void 0||h.Type===1===t.findIsDir));if(f)return[f]}let u=String(l.data?.Next??"-1");if(!l.data||d.length===0||u==="-1")break;s=u,n++}return i}async getDownloadLink(e){let t={driveId:0,etag:e.Etag,fileId:e.FileId,fileName:e.FileName,s3keyFlag:e.S3KeyFlag,size:e.Size,type:e.Type},n=(await this.request(EJ,"POST",t)).data?.DownloadUrl||"";if(!n)throw new Error("no download url");try{let a=new URL(n).searchParams.get("params");if(a){let c=atob(a);n=new URL(c).toString()}}catch{}let s=await fetch(n,{method:"GET",redirect:"manual",headers:{Referer:"https://yun.123pan.com/"}});return s.status===302?s.headers.get("location")||n:s.status<300&&(await s.json().catch(()=>({}))).data?.redirect_url||n}async mkdir(e,t){let i=await this.request(BJ,"POST",{driveId:0,etag:"",fileName:t,parentFileId:parseInt(e,10)||0,size:0,type:1});return i.data?.FileId!=null?String(i.data.FileId):""}async rename(e,t){await this.request(vJ,"POST",{driveId:0,fileId:parseInt(e,10),fileName:t})}async move(e,t){await this.request(bJ,"POST",{fileIdList:e.map(i=>({FileId:parseInt(i,10)})),parentFileId:parseInt(t,10)})}async remove(e,t){await this.request(kJ,"POST",{driveId:0,operation:!0,fileTrashInfoList:[t]})}async getPartUploadUrl(e,t,i){let s=(i===1?await this.getS3Auth(e,t,t+1):await this.getS3PreSignedUrls(e,t,t+1)).presignedUrls[String(t)];if(!s)throw new Error(`[123Pan] \u672A\u8FD4\u56DE\u7B2C ${t} \u5206\u7247\u7684\u4E0A\u4F20 URL`);return s}async completeUpload(e,t,i){await this.completeS3(e,t,i)}async createUpload(e,t,i,n){let s={driveId:0,duplicate:2,etag:n,fileName:e,parentFileId:t,size:i,type:0};return(await this.request(SJ,"POST",s)).data}async getS3Auth(e,t,i){let n={StorageNode:e.StorageNode,bucket:e.Bucket,key:e.Key,partNumberEnd:i,partNumberStart:t,uploadId:e.UploadId};return(await this.request(DJ,"POST",n)).data}async getS3PreSignedUrls(e,t,i){let n={bucket:e.Bucket,key:e.Key,partNumberEnd:i,partNumberStart:t,uploadId:e.UploadId,StorageNode:e.StorageNode};return(await this.request(QJ,"POST",n)).data}async completeS3(e,t,i){await this.request(_J,"POST",{StorageNode:e.StorageNode,bucket:e.Bucket,fileId:e.FileId,fileSize:t,isMultipart:i,key:e.Key,uploadId:e.UploadId})}async uploadFile(e,t,i){let n="";try{n=(await import("node:crypto")).createHash("md5").update(i).digest("hex")}catch{n=""}let s=await this.createUpload(t,e,i.length,n);if(s.Reuse||s.Key==="")return;let o=16*1024*1024,a=1;i.length>o&&(a=Math.ceil(i.length/o));let c=i.length%o;c===0&&(c=o);let l;a===1?l=(await this.getS3Auth(s,1,2)).presignedUrls:l=(await this.getS3PreSignedUrls(s,1,a+1)).presignedUrls;for(let d=1;d<=a;d++){let u=(d-1)*o,f=d===a?c:o,h=l[String(d)];if(!h)throw new Error(`[123Pan] \u7F3A\u5C11\u7B2C ${d} \u5206\u7247\u7684\u4E0A\u4F20 URL`);let g=i.subarray(u,u+f),p=await fetch(h,{method:"PUT",body:g});if(p.status!==200){let I=await p.text().catch(()=>"");throw new Error(`[123Pan] \u4E0A\u4F20\u7B2C ${d}/${a} \u5206\u7247\u5931\u8D25\uFF1AHTTP ${p.status} ${I}`)}}await this.completeS3(s,i.length,a>1)}}});function RJ(r){return Buffer.from(JSON.stringify(r),"utf8").toString("base64")}function v8(r){let e=JSON.parse(Buffer.from(r,"base64").toString("utf8"));if(!e||!e.bucket||!e.key||!e.uploadId)throw new Error("[123Pan] invalid upload session");return e}function k8(r){return{AccessKeyId:"",SecretAccessKey:"",SessionToken:"",Bucket:r.bucket,Key:r.key,UploadId:r.uploadId,FileId:r.fileId,StorageNode:r.storageNode,EndPoint:"",Reuse:!1}}function S8(r){let e=r.Type===1;return{name:r.FileName,size:r.Size||0,is_dir:e,modified:r.UpdateAt?new Date(r.UpdateAt).toISOString():new Date().toISOString(),sign:String(r.FileId),type:X(r.FileName,e),thumb:"",raw_url:""}}var vp,D8=J(()=>{"use strict";Be();He();b8();vp=class{client;addition;pathIdCache=new Map;budget={used:0,limit:45};constructor(e,t){this.addition=e,this.client=new bp(e,t)}async init(){await this.client.login()}async resolveFolderId(e){let t=this.client.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=0,o=t,a="";for(let c=0;c{try{return decodeURIComponent(l)}catch{return l}})(),f=(await this.client.getFiles(o,{findName:d,findIsDir:!0,budget:this.budget})).find(h=>h.Type===1&&(h.FileName===l||h.FileName===d||String(h.FileId)===l||String(h.FileId)===d));if(!f)throw new Error(`folder not found: ${l}`);o=String(f.FileId),a="/"+n.slice(0,c+1).join("/"),this.pathIdCache.set(a,o)}return o}async ensureFolderId(e){let t=this.client.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=t,o="";for(let a=0;a{try{return decodeURIComponent(c)}catch{return c}})();o="/"+n.slice(0,a+1).join("/");let d=this.pathIdCache.get(o);if(d===void 0){let u=await this.client.getFiles(s,{findName:l,findIsDir:!0,budget:this.budget}),f=u.find(h=>h.Type===1&&(h.FileName===c||h.FileName===l));if(f)d=String(f.FileId);else{try{let h=await this.client.mkdir(s,l);h&&(d=h)}catch{}if(d===void 0){if(u=await this.client.getFiles(s,{findName:l,findIsDir:!0,budget:this.budget}),f=u.find(h=>h.Type===1&&h.FileName===l),!f)throw new Error(`[123Pan] \u81EA\u52A8\u521B\u5EFA\u76EE\u5F55\u5931\u8D25: ${c}`);d=String(f.FileId)}}this.pathIdCache.set(o,d)}s=d}return s}async resolveFile(e){let t=String(e||"").split("/").filter(Boolean);if(t.length===0)throw new Error("invalid path");let i=t[t.length-1],n=(()=>{try{return decodeURIComponent(i)}catch{return i}})(),s="/"+t.slice(0,t.length-1).join("/"),o=await this.resolveFolderId(s),c=(await this.client.getFiles(o,{findName:n,budget:this.budget})).find(l=>String(l.FileId)===i||String(l.FileId)===n||l.FileName===i||l.FileName===n);if(!c)throw new Error(`file not found: ${i}`);return{file:c,parentId:o,name:i}}async list(e,t){this.budget.used=0;let i=await this.resolveFolderId(t),s=(await this.client.getFiles(i,{budget:this.budget})).map(S8);return de(s,this.addition.order_by||"file_name",this.addition.order_direction)}async get(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean);if(i.length===0||i[i.length-1]===this.client.getRootId()){let o=this.client.getRootId();return{name:o,size:0,is_dir:!0,modified:new Date().toISOString(),sign:o,type:1,raw_url:""}}let{file:n}=await this.resolveFile(t),s=S8(n);if(n.Type!==1)try{s.raw_url=await this.client.getDownloadLink(n),s.raw_url||(s.raw_url_error="123 \u7F51\u76D8\u672A\u8FD4\u56DE\u4E0B\u8F7D\u94FE\u63A5\uFF08DownloadUrl \u4E3A\u7A7A\uFF09\u3002\u5E38\u89C1\u539F\u56E0\uFF1Aaccess_token/cookie \u5931\u6548\uFF0C\u6216\u8BE5\u6587\u4EF6\u5DF2\u5220\u9664/\u88AB\u9650\u5236\u4E0B\u8F7D\u3002\u8BF7\u5230\u7BA1\u7406\u540E\u53F0\u66F4\u65B0 access_token \u540E\u91CD\u8BD5\u3002")}catch(o){s.raw_url_error=`123 \u7F51\u76D8\u83B7\u53D6\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25\uFF1A${o?.message||String(o)}\u3002`+(String(o?.message||"").includes("\u767B\u5F55\u5931\u8D25")?"\u5F53\u524D\u90E8\u7F72\u51FA\u53E3 IP \u53EF\u80FD\u88AB 123 \u98CE\u63A7\uFF0C\u8BF7\u914D\u7F6E\u6709\u6548\u7684 access_token\uFF08\u6D4F\u89C8\u5668\u767B\u5F55 123 \u7F51\u76D8\u540E\u590D\u5236 Bearer \u4EE4\u724C\uFF09\u3002":"\u8BF7\u68C0\u67E5 access_token/cookie \u662F\u5426\u6709\u6548\uFF0C\u6216\u5728 123 \u7F51\u76D8\u7F51\u9875\u7AEF\u786E\u8BA4\u8BE5\u6587\u4EF6\u53EF\u4E0B\u8F7D\u3002"),console.warn(`[123Pan] getDownloadLink warning for ${n.FileName}:`,o.message)}else s.raw_url_error="\u8BE5\u6761\u76EE\u662F\u6587\u4EF6\u5939\uFF0C\u4E0D\u53EF\u4F5C\u4E3A\u6587\u4EF6\u4E0B\u8F7D\u3002";return s}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){this.budget.used=0;let{file:n}=await this.resolveFile(t);await this.client.rename(String(n.FileId),i)}async remove(e,t,i){this.budget.used=0;let{file:n}=await this.resolveFile(t);await this.client.remove(String(n.FileId),n)}async move(e,t,i,n,s){this.budget.used=0;let{file:o}=await this.resolveFile(n),a=String(t).split("/").filter(Boolean),c=await this.resolveFolderId("/"+a.join("/"));await this.client.move([String(o.FileId)],c)}async copy(){throw new Error("[123Pan] Copy is not supported by 123 Cloud Drive API")}async put(e,t,i){this.budget.used=0;let n=String(t||"").split("/").filter(Boolean);if(n.length===0)throw new Error("invalid upload path");let s=n[n.length-1],o=(()=>{try{return decodeURIComponent(s)}catch{return s}})(),a="/"+n.slice(0,n.length-1).join("/"),c=await this.ensureFolderId(a);await this.client.uploadFile(c,o,i)}async createUploadSession(e,t,i,n,s){this.budget.used=0;let o=await this.ensureFolderId(t||"/"),a=await this.client.createUpload(i,o,n,s||""),c=16*1024*1024;if(a.Reuse||a.Key==="")return{reuse:!0,partCount:0,chunkSize:c,session:""};let l=Math.max(1,Math.ceil(n/c)),d=RJ({bucket:a.Bucket,key:a.Key,uploadId:a.UploadId,fileId:a.FileId,storageNode:a.StorageNode,size:n,partCount:l,chunkSize:c});return{reuse:!1,partCount:l,chunkSize:c,session:d}}async uploadPart(e,t,i){this.budget.used=0;let n=v8(e),s=await this.client.getPartUploadUrl(k8(n),t,n.partCount),o=await fetch(s,{method:"PUT",body:i});if(o.status!==200){let a=await o.text().catch(()=>"");throw new Error(`[123Pan] \u4E0A\u4F20\u7B2C ${t}/${n.partCount} \u5206\u7247\u5931\u8D25\uFF1AHTTP ${o.status} ${a}`)}}async completeUploadSession(e){this.budget.used=0;let t=v8(e);await this.client.completeUpload(k8(t),t.size,t.partCount>1)}}});function LJ(r){return new Promise(e=>setTimeout(e,r))}function tE(r){if(!r)return r;try{let e=new URL(r);return e.searchParams.delete("access_token"),e.toString()}catch{return r}}function Kl(r){let e={...r||{}},t=(i,n)=>i==null||i===""?n:typeof i=="boolean"?i:String(i).toLowerCase()==="true";return e.use_online_api=t(e.use_online_api,!0),e.api_url_address=e.api_url_address||"https://api.oplist.org/baiduyun/renewapi",e.download_api=e.download_api||"official",e.custom_crack_ua=e.custom_crack_ua||"netdisk",e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e.upload_thread=e.upload_thread||"3",e.upload_api=e.upload_api||Ll,e.use_dynamic_upload_api=t(e.use_dynamic_upload_api,!0),e.custom_upload_part_size=e.custom_upload_part_size||0,e.low_bandwith_upload_mode=t(e.low_bandwith_upload_mode,!1),e.only_list_video_file=t(e.only_list_video_file,!1),e}function _8(r,e,t){r.local_mtime=String(t),r.local_ctime=String(e)}var NJ,Q8,Ml,XC,ZC,eE,qJ,Ll,OJ,nf,rE,F8,MJ,kp,Hl,iE=J(()=>{"use strict";NJ="https://openapi.baidu.com/oauth/2.0/token",Q8="https://pan.baidu.com/rest/2.0",Ml=4*1024*1024,XC=16*1024*1024,ZC=32*1024*1024,eE=2048,qJ=1*1024*1024,Ll="https://d.pcs.baidu.com",OJ=60*1e3,nf=3,rE=1e3,F8=5e3,MJ=new Set([111,-6,20016]);kp=class r{addition;accessToken="";onTokenUpdate;constructor(e,t){this.addition=Kl(e),this.onTokenUpdate=t,this.addition.access_token&&(this.accessToken=this.addition.access_token)}static apiUA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/425.6.30";async refreshToken(){let e=this.addition;if(e.use_online_api&&e.api_url_address){let s=new URL(e.api_url_address);s.searchParams.set("refresh_ui",e.refresh_token),s.searchParams.set("server_use","true"),s.searchParams.set("driver_txt","baiduyun_go");let o=await fetch(s.toString(),{headers:{"User-Agent":r.apiUA}}),a,c=await o.text();try{a=JSON.parse(c)}catch{throw new Error(`\u5728\u7EBF API \u5237\u65B0\u5931\u8D25 (HTTP ${o.status})\uFF1A${c.slice(0,300)||"\u975E JSON \u54CD\u5E94"}\u3002\u8BF7\u786E\u8BA4 refresh_token \u662F\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\u7684\u6709\u6548\u4EE4\u724C\u3002`)}if(!a.refresh_token||!a.access_token)throw new Error(a.text||(o.status!==200?`\u5728\u7EBF API \u8FD4\u56DE HTTP ${o.status}`:"empty token returned from official API, a wrong refresh token may have been used"));this.accessToken=a.access_token,e.refresh_token=a.refresh_token,e.access_token=a.access_token,this.onTokenUpdate?.({access_token:a.access_token,refresh_token:a.refresh_token});return}if(!e.client_id||!e.client_secret)throw new Error("empty ClientID or ClientSecret");let t=new URL(NJ);t.searchParams.set("grant_type","refresh_token"),t.searchParams.set("refresh_token",e.refresh_token),t.searchParams.set("client_id",e.client_id),t.searchParams.set("client_secret",e.client_secret);let n=await(await fetch(t.toString())).json();if(n.error)throw new Error(`${n.error}: ${n.error_description||""}`);if(!n.refresh_token)throw new Error("empty refresh token returned from OAuth");this.accessToken=n.access_token||"",e.refresh_token=n.refresh_token,e.access_token=n.access_token||"",this.onTokenUpdate?.({access_token:n.access_token||"",refresh_token:n.refresh_token})}async login(){this.accessToken||await this.refreshToken()}async ensureToken(){this.accessToken||await this.refreshToken()}async request(e,t,i,n){await this.ensureToken();let s=async()=>{let a=new URL(e);a.searchParams.set("access_token",this.accessToken);for(let[g,p]of Object.entries(i||{}))a.searchParams.set(g,p);let c={"User-Agent":r.apiUA,Accept:"application/json"},l={method:t,headers:c};if(n&&t==="POST"){let g=new URLSearchParams;for(let[p,I]of Object.entries(n))g.set(p,I);c["Content-Type"]="application/x-www-form-urlencoded",l.body=g.toString()}let d=await fetch(a.toString(),l),u=await d.text(),f;try{f=JSON.parse(u)}catch{throw new Error(`req: [${e}] invalid JSON response, status ${d.status}`)}let h=typeof f.errno=="number"?f.errno:0;if(h!==0){if(MJ.has(h)&&await this.refreshToken(),h===31023&&this.addition.download_api==="crack_video")return f;let g=`req: [${e}] ,errno: ${h}, refer to https://pan.baidu.com/union/doc/`;throw h===31023?new Error(`${g} \u767E\u5EA6\u7F51\u76D8\u98CE\u63A7 (Trigger security policy: Please try again later) \u2014 \u89E6\u53D1\u539F\u56E0\u901A\u5E38\u662F\uFF1A\u2460 \u5F53\u524D\u90E8\u7F72\u73AF\u5883\u7684\u51FA\u53E3 IP\uFF08\u5982 Cloudflare Workers \u6570\u636E\u4E2D\u5FC3 IP\uFF09\u88AB\u767E\u5EA6\u5B89\u5168\u7B56\u7565\u62E6\u622A\uFF1B\u2461 refresh_token \u65E0\u6548\u6216\u4ECE\u975E\u5B98\u65B9\u6E20\u9053\u83B7\u53D6\uFF0C\u5BFC\u81F4\u8D26\u53F7\u88AB\u98CE\u63A7\u3002\u8BF7\u786E\u8BA4\uFF1Arefresh_token \u5FC5\u987B\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\uFF08\u672C\u9A71\u52A8\u9ED8\u8BA4\u5DF2\u5F00\u542F"\u4F7F\u7528\u5728\u7EBF API"\uFF09\uFF1B\u98CE\u63A7\u4E3A\u4E34\u65F6\u6027\uFF0C\u7B49\u5F85\u6570\u5206\u949F\u81F3\u6570\u5C0F\u65F6\u540E\u81EA\u52A8\u89E3\u9664\uFF1B\u957F\u671F\u4F7F\u7528\u8BF7\u5C06\u540E\u7AEF\u90E8\u7F72\u5230\u5883\u5185\u670D\u52A1\u5668\uFF08\u6216\u914D\u7F6E HTTPS_PROXY \u5883\u5185\u4EE3\u7406\uFF09\u3002`):new Error(g)}return f},o;for(let a=0;ac.abort(),s>0?s:OJ);try{let u=await(await fetch(o.toString(),{method:"POST",body:a,signal:c.signal})).text(),f=u.toLowerCase();if(f.includes("uploadid")&&(f.includes("invalid")||f.includes("expired")||f.includes("not found")))throw new Hl;let h;try{h=JSON.parse(u)}catch{h={}}let g=h?.error_code??0,p=h?.errno??0;if(g!==0||p!==0)throw new Error(`error uploading to baidu, response=${u}`)}finally{clearTimeout(l)}}getUploadUrl(e,t){let i=this.addition;return!i.use_dynamic_upload_api||!t,i.upload_api||Ll}async requestForUploadUrl(e,t){let i=await this.request("https://d.pcs.baidu.com/rest/2.0/pcs/file","GET",{method:"locateupload",appid:"250528",path:e,uploadid:t,upload_version:"2.0"}),n="";if(i.servers&&i.servers.length>0?n=i.servers[0].server:i.bak_servers&&i.bak_servers.length>0&&(n=i.bak_servers[0].server),!n)throw new Error("upload URL is empty");return n}getSliceSize(e,t){let i=this.addition,n=i.custom_upload_part_size||0;if(t===0)return n!==0&&console.warn("[baidu_netdisk] CustomUploadPartSize is not supported for non-vip user, use DefaultSliceSize"),e>eE*Ml&&console.warn(`[baidu_netdisk] File size(${e}) is too large, may cause upload failure`),Ml;if(n!==0)return nXC?(console.warn(`[baidu_netdisk] CustomUploadPartSize(${n}) is greater than VipSliceSize, use VipSliceSize`),XC):t===2&&n>ZC?(console.warn(`[baidu_netdisk] CustomUploadPartSize(${n}) is greater than SVipSliceSize, use SVipSliceSize`),ZC):n;let s=Ml;if(t===1&&(s=XC),t===2&&(s=ZC),i.low_bandwith_upload_mode){let o=Ml;for(;o<=s;){if(e<=eE*o)return o;o+=qJ}}return e>eE*s&&console.warn(`[baidu_netdisk] File size(${e}) is too large, may cause upload failure`),s}async quota(){let e=await this.request("https://pan.baidu.com/api/quota","GET");return{total:e.total||0,used:e.used||0}}},Hl=class extends Error{constructor(){super("uploadid expired"),this.name="ErrUploadIDExpired"}}});function KJ(r){return new Promise(e=>setTimeout(e,r))}function P8(r){let e=r.server_filename||sf(r.path),t=r.server_ctime||r.ctime||0,i=r.server_mtime||r.mtime||0,n=r.isdir===1;return{name:e,size:r.size||0,is_dir:n,created:t?new Date(t*1e3).toISOString():void 0,modified:i?new Date(i*1e3).toISOString():new Date().toISOString(),sign:String(r.fs_id),type:X(e,n),thumb:r.thumbs?.url3||"",raw_url:""}}function sf(r){let e=String(r||"").split("/");return e[e.length-1]||""}function T8(r){let e=r.lastIndexOf("/");return e<=0?"/":r.slice(0,e)}var HJ,Sp,U8=J(()=>{"use strict";Be();He();Gr();iE();iE();HJ=new Error("empty files are not allowed by baidu netdisk");Sp=class{client;addition;uploadThread=3;vipType=0;pathCache=new Map;constructor(e,t){this.addition=Kl(e),this.client=new kp(this.addition,t)}async init(){let e=this.addition,t=parseInt(e.upload_thread||"3",10);if(t<1&&(t=1),t>32&&(t=32),this.uploadThread=t,!this.client.accessToken)throw new Error("\u767E\u5EA6\u7F51\u76D8\u7F3A\u5C11\u8BBF\u95EE\u4EE4\u724C access_token\uFF08\u5FC5\u586B\uFF09\uFF1A\u8BF7\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\u540E\u586B\u5199\u3002");this.vipType=await this.client.uinfo()}baiduPath(e){let t="/"+String(e||"").replace(/\/+/g,"/");return t==="/"?"/":t.replace(/\/$/,"")}async list(e,t){let i=await this.client.getFiles(this.baiduPath(t)),n=i.map(P8);for(let s of i)this.pathCache.set(s.path,{fsId:s.fs_id,parent:T8(s.path)});return de(n,this.addition.order_by||"name",this.addition.order_direction)}async get(e,t){let i=this.baiduPath(t);if(i==="/")return{name:"/",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let n=T8(i),s=sf(i),o=(()=>{try{return decodeURIComponent(s)}catch{return s}})(),c=(await this.client.getFiles(n)).find(d=>d.server_filename===s||d.server_filename===o||d.path===i||String(d.fs_id)===s);if(!c)throw new Error(`file not found: ${s}`);this.pathCache.set(c.path,{fsId:c.fs_id,parent:n});let l=P8(c);if(c.isdir!==1)try{let d=await this.getDownloadLink(c);l.raw_url=d.url,l.raw_url_headers=d.headers}catch(d){console.warn(`[baidu_netdisk] getDownloadLink warning for ${c.server_filename}:`,d.message)}return l}async getDownloadLink(e){let t=this.addition.download_api||"official";return t==="crack"?this.client.getCrackLink(e.path):t==="crack_video"?this.client.getCrackVideoLink(e.path,e.fs_id):this.client.getOfficialLink(e.fs_id)}async mkdir(e,t){await this.client.create(this.baiduPath(t),0,1,"","",0,0)}async rename(e,t,i){await this.client.manage("rename",[{path:this.baiduPath(t),newname:i}])}async remove(e,t,i){await this.client.manage("delete",[this.baiduPath(t)])}async move(e,t,i,n,s){let o=i[0]||sf(n),a=this.baiduPath(t);await this.client.manage("move",[{path:this.baiduPath(n),dest:a,newname:o}])}async copy(e,t,i,n,s){let o=i[0]||sf(n),a=this.baiduPath(t);await this.client.manage("copy",[{path:this.baiduPath(n),dest:a,newname:o}])}async put(e,t,i){if(i.length<1)throw HJ;let n=i.length,s=this.baiduPath(t),o=sf(s),a=Math.floor(Date.now()/1e3),c=a,l=a,d=$t(i),u=JSON.stringify([d]);try{await this.client.create(s,n,0,"",u,c,l);return}catch{}let f=this.client.getSliceSize(n,this.vipType),h=Math.max(1,Math.ceil(n/f)),g=n%f||f,p=[];for(let w=0;w{for(;;){let T=Q++;if(T>=C.length)return;let D=C[T];if(D<0)continue;let b=D*f,_=D+1===h?g:f,v=i.subarray(b,b+_),E={method:"upload",access_token:this.client.accessToken,type:"tmpfile",path:s,uploadid:m.uploadid,partseq:String(D)},P=!1;for(let N=0;NU())),x)throw new Error("upload slice failed")}catch(T){if(T instanceof Hl){let D=await this.client.precreate(s,n,I,"","",l,c);if(D.return_type===2&&D.info)return;m=D;continue}throw T}await this.client.create(s,n,0,m.uploadid,I,c,l);return}throw new Error("upload failed after retries")}}}});function jJ(){let r=Math.floor(Date.now()/1e3),e=Math.floor(9e6*Math.random()+1e6);return`3${r}${e}`}function R8(r){return"["+r.map(e=>`{"fsid":${e}}`).join(",")+"]"}var _p,Wi,Dp,GJ,zJ,nE,of,JJ,Qp,N8=J(()=>{"use strict";Gr();_p="https://photo.baidu.com/youai",Wi=_p+"/album/v1",Dp=_p+"/file/v1",GJ=_p+"/file/v2",zJ=_p+"/user/v1",nE="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",of=4*1024*1024,JJ=256*1024;Qp=class{cookie;uk="";bdstoken="";showType;constructor(e){this.cookie=e.cookie||"",this.showType=e.show_type||"root"}async init(){if(!this.cookie)throw new Error("[BaiduPhoto] cookie is required");let e=await this.uInfo();this.uk=e.youa_id||"",this.bdstoken=await this.getBDStoken()}async request(e,t,i={}){let n=new URL(t);if(i.query)for(let[c,l]of Object.entries(i.query))l!==void 0&&n.searchParams.set(c,l);let s={Cookie:this.cookie,"User-Agent":nE,Referer:"https://photo.baidu.com/"},o;return i.form&&(s["Content-Type"]="application/x-www-form-urlencoded",o=new URLSearchParams(i.form).toString()),await fetch(n.toString(),{method:e,headers:s,body:o,redirect:i.redirect??"follow"})}async requestJson(e,t,i={}){let s=await(await this.request(e,t,i)).json().catch(()=>({})),o=s.errno;if(o!==void 0&&o!==0)throw new Error(`[BaiduPhoto] errno: ${o}, refer to https://photo.baidu.com/union/doc`);return s}async uInfo(){return this.requestJson(zJ+"/getuinfo","GET")}async getBDStoken(){return(await this.requestJson("GET","https://pan.baidu.com/api/gettemplatevariable",{query:{fields:'["bdstoken","token","uk"]'}}))?.result?.bdstoken||""}async getAllFile(){let e=[],t="";for(;;){let i=await this.requestJson("GET",Dp+"/list",{query:{need_thumbnail:"1",need_filter_hidden:"0",cursor:t}});if(e.push(...i.list||[]),i.has_more!==1)break;t=i.cursor||""}return e}async getAllAlbum(){let e=[],t="";for(;;){let i=await this.requestJson("GET",Wi+"/list",{query:{need_amount:"1",limit:"100",cursor:t}});if(e.push(...i.list||[]),i.has_more!==1)break;t=i.cursor||""}return e}async getAllAlbumFile(e,t){let i=[],n="";for(;;){let s=await this.requestJson("GET",Wi+"/listfile",{query:{album_id:e,need_amount:"1",limit:"1000",passwd:"",cursor:n}});if(i.push(...s.list||[]),s.has_more!==1)break;n=s.cursor||""}return i}async getAlbumDetail(e){return this.requestJson("GET",Wi+"/detail",{query:{album_id:e}})}async linkFile(e){let t=await this.requestJson("GET",GJ+"/download",{query:{fsid:String(e)}});if(!t.dlink)throw new Error("[BaiduPhoto] \u83B7\u53D6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25");return t.dlink}async linkAlbumFile(e,t,i,n){let o=(await this.request("HEAD",Wi+"/download",{query:{fsid:String(e),album_id:t,tid:String(i),uk:String(n)},redirect:"manual"})).headers.get("location");if(!o)throw new Error("[BaiduPhoto] \u76F8\u518C\u6587\u4EF6\u672A\u8FD4\u56DE 302 \u8DF3\u8F6C");return o}downloadHeaders(){return{Referer:"https://photo.baidu.com/","User-Agent":nE}}async createAlbum(e){let t=await this.requestJson("POST",Wi+"/create",{query:{title:e,tid:jJ(),source:"0"}});if(!t.album_id)throw new Error("[BaiduPhoto] \u521B\u5EFA\u76F8\u518C\u5931\u8D25");return this.getAlbumDetail(t.album_id)}async joinAlbum(e){let t=await this.requestJson("GET",Wi+"/querypcode",{query:{pcode:e,web:"1"}});if(!t.pdata?.invite_code)throw new Error("[BaiduPhoto] \u9080\u8BF7\u7801\u65E0\u6548");let i=await this.requestJson("GET",Wi+"/join",{query:{invite_code:t.pdata.invite_code}});if(!i.album_id)throw new Error("[BaiduPhoto] \u52A0\u5165\u76F8\u518C\u5931\u8D25");return this.getAlbumDetail(i.album_id)}async setAlbumName(e,t,i){await this.requestJson("POST",Wi+"/settitle",{form:{title:i,album_id:e,tid:String(t)}})}async deleteAlbum(e,t,i){await this.requestJson("POST",Wi+"/delete",{form:{album_id:e,tid:String(t),delete_origin_image:i?"1":"0"}})}async deleteFile(e){await this.requestJson("GET",Dp+"/delete",{query:{fsid_list:`[${e}]`}})}async deleteAlbumFile(e,t,i,n,s){await this.requestJson("POST",Wi+"/delfile",{form:{album_id:t,tid:String(i),list:`[{"fsid":${e},"uk":${n}}]`,del_origin:s?"1":"0"}})}async addAlbumFile(e,t,i){await this.requestJson("GET",Wi+"/addfile",{query:{album_id:e,tid:String(t),list:R8([i])}})}async copyAlbumFile(e,t,i,n){let s=await this.requestJson("POST",Wi+"/copyfile",{form:{album_id:t,tid:String(i),uk:String(n),list:R8([e])}});if(!s.list||s.list.length===0)throw new Error("[BaiduPhoto] \u590D\u5236\u76F8\u518C\u6587\u4EF6\u5931\u8D25");return s.list[0].fsid}async upload(e,t,i){if(i.length===0)throw new Error("[BaiduPhoto] file size cannot be zero");let n=$t(i),s=$t(i.subarray(0,Math.min(JJ,i.length))),o=[];for(let u=0;u0?r.thumburl[0]:"",raw_url:""}}function M8(r){return{name:ra(r.path),size:r.size,is_dir:!1,modified:oE(r.mtime),sign:`albumfile:${r.fsid}|${r.album_id}|${r.tid}|${r.uk}`,type:X(ra(r.path),!1),thumb:r.thumburl&&r.thumburl.length>0?r.thumburl[0]:"",raw_url:""}}function sE(r){if(r.startsWith("albumfile:")){let[e,t,i,n]=r.slice(10).split("|");return{kind:"albumfile",fsid:Number(e),albumId:t,tid:Number(i),uk:Number(n)}}if(r.startsWith("album:")){let[e,t]=r.slice(6).split("|");return{kind:"album",fsid:0,albumId:e,tid:Number(t),uk:0}}return{kind:"file",fsid:Number(r.slice(5)),albumId:"",tid:0,uk:0}}var Fp,L8=J(()=>{"use strict";Be();N8();Fp=class{client;showType;albumCache=new Map;constructor(e){this.client=new Qp(e),this.showType=e.show_type||"root"}async init(){await this.client.init()}async list(e,t){let i=t.split("/").filter(Boolean).join("/");if(!i){let o=[];if(this.showType!=="root_only_file"){let a=await this.client.getAllAlbum();for(let c of a)this.albumCache.set(c.title,c),o.push(q8(c))}if(this.showType!=="root_only_album"){let a=await this.client.getAllFile();o.push(...a.map(O8))}return o}let n=await this.findAlbum(i);if(!n)throw new Error(`[BaiduPhoto] \u76F8\u518C '${i}' \u672A\u627E\u5230`);return(await this.client.getAllAlbumFile(n.album_id,n.tid)).map(M8)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s=i.slice(0,-1).join("/");if(s){let o=await this.findAlbum(s);if(o){let c=(await this.client.getAllAlbumFile(o.album_id,o.tid)).find(l=>ra(l.path)===n);if(c){let l=M8(c);try{l.raw_url=await this.client.linkAlbumFile(c.fsid,c.album_id,c.tid,c.uk),l.raw_url_headers=this.client.downloadHeaders()}catch{l.raw_url_error="[BaiduPhoto] failed to resolve download url"}return l}}}else{if(this.showType!=="root_only_file"){let a=(await this.client.getAllAlbum()).find(c=>c.title===n);if(a)return q8(a)}if(this.showType!=="root_only_album"){let a=(await this.client.getAllFile()).find(c=>ra(c.path)===n);if(a){let c=O8(a);try{c.raw_url=await this.client.linkFile(a.fsid),c.raw_url_headers=this.client.downloadHeaders()}catch{c.raw_url_error="[BaiduPhoto] failed to resolve download url"}return c}}}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){if(t.split("/").filter(Boolean).join("/"))throw new Error("[BaiduPhoto] \u76F8\u518C\u4E0D\u652F\u6301\u521B\u5EFA\u5B50\u76EE\u5F55");let s=await this.client.createAlbum("new_album");this.albumCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);if(n.kind!=="album")throw new Error("[BaiduPhoto] \u4EC5\u652F\u6301\u91CD\u547D\u540D\u76F8\u518C");await this.client.setAlbumName(n.albumId,n.tid,i),this.albumCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t);n.kind==="album"?await this.client.deleteAlbum(n.albumId,n.tid,!1):n.kind==="file"?await this.client.deleteFile(n.fsid):await this.client.deleteAlbumFile(n.fsid,n.albumId,n.tid,n.uk,!1),this.albumCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=t.split("/").filter(Boolean).join("/");if(o.kind==="albumfile"){if(!a)await this.client.copyAlbumFile(o.fsid,o.albumId,o.tid,o.uk);else{let c=await this.findAlbum(a);if(!c)throw new Error(`[BaiduPhoto] \u76F8\u518C '${a}' \u672A\u627E\u5230`);let l=await this.client.copyAlbumFile(o.fsid,o.albumId,o.tid,o.uk);await this.client.addAlbumFile(c.album_id,c.tid,l)}await this.client.deleteAlbumFile(o.fsid,o.albumId,o.tid,o.uk,!1);return}throw new Error("[BaiduPhoto] \u4EC5\u76F8\u518C\u6587\u4EF6\u652F\u6301\u79FB\u52A8")}async copy(e,t,i,n,s){let o=await this.resolveEntry(n),a=t.split("/").filter(Boolean).join("/");if(o.kind==="file"&&a){let c=await this.findAlbum(a);if(!c)throw new Error(`[BaiduPhoto] \u76F8\u518C '${a}' \u672A\u627E\u5230`);await this.client.addAlbumFile(c.album_id,c.tid,o.fsid);return}if(o.kind==="albumfile"){let c=await this.client.copyAlbumFile(o.fsid,o.albumId,o.tid,o.uk);if(a){let l=await this.findAlbum(a);if(!l)throw new Error(`[BaiduPhoto] \u76F8\u518C '${a}' \u672A\u627E\u5230`);await this.client.addAlbumFile(l.album_id,l.tid,c)}return}throw new Error("[BaiduPhoto] \u4E0D\u652F\u6301\u8BE5\u590D\u5236\u64CD\u4F5C")}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o=n.join("/"),a=null;if(o&&(a=await this.findAlbum(o),!a))throw new Error(`[BaiduPhoto] \u76F8\u518C '${o}' \u672A\u627E\u5230`);await this.client.upload(a,s,new Uint8Array(i)),this.albumCache.clear()}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n=t.slice(0,-1).join("/");if(n){let s=await this.findAlbum(n);if(s){let a=(await this.client.getAllAlbumFile(s.album_id,s.tid)).find(c=>ra(c.path)===i);if(a)return sE(`albumfile:${a.fsid}|${a.album_id}|${a.tid}|${a.uk}`)}}else{if(this.showType!=="root_only_file"){let o=(await this.client.getAllAlbum()).find(a=>a.title===i);if(o)return sE(`album:${o.album_id}|${o.tid}`)}if(this.showType!=="root_only_album"){let o=(await this.client.getAllFile()).find(a=>ra(a.path)===i);if(o)return sE(`file:${o.fsid}`)}}throw new Error(`[BaiduPhoto] '${i}' not found`)}async findAlbum(e){if(this.albumCache.has(e))return this.albumCache.get(e);let t=await this.client.getAllAlbum();for(let i of t)this.albumCache.set(i.title,i);return this.albumCache.get(e)||null}}});function oj(r){return r===99||String(r).startsWith("401")}var bn,$J,VJ,YJ,WJ,XJ,H8,ZJ,ej,tj,rj,ij,nj,sj,af,Pp,K8=J(()=>{"use strict";bn="https://proapi.115.com",$J="https://passportapi.115.com",VJ=bn+"/open/upload/get_token",YJ=bn+"/open/upload/init",WJ=bn+"/open/folder/add",XJ=bn+"/open/ufile/files",H8=bn+"/open/folder/get_info",ZJ=bn+"/open/ufile/copy",ej=bn+"/open/ufile/move",tj=bn+"/open/ufile/downurl",rj=bn+"/open/ufile/update",ij=bn+"/open/ufile/delete",nj=bn+"/open/user/info",sj=$J+"/open/refreshToken";af=430004,Pp=class r{addition;accessToken="";refreshTokenValue="";onTokenUpdate;rateLimitMs=0;lastRequestAt=0;constructor(e,t){this.addition=e,this.accessToken=e.access_token||"",this.refreshTokenValue=e.refresh_token||"",this.onTokenUpdate=t;let i=e.limit_rate||0;i>0&&(this.rateLimitMs=1e3/i)}async waitRateLimit(){if(this.rateLimitMs<=0)return;let e=Date.now(),t=this.lastRequestAt+this.rateLimitMs-e;t>0&&await new Promise(i=>setTimeout(i,t)),this.lastRequestAt=Date.now()}async fetchWithRetry(e,t){let i;for(let n=0;n<3;n++)try{let s=new AbortController,o=setTimeout(()=>s.abort(),2e4);try{return await fetch(e,{...t,signal:s.signal})}finally{clearTimeout(o)}}catch(s){i=s,n<2&&await new Promise(o=>setTimeout(o,500*(n+1)))}throw i}static describeNetError(e){let t=e,i=t?.cause?.code||t?.cause?.cause?.code,n=t?.cause?.message||t?.cause?.cause?.message;return i?`${t?.message||"fetch failed"}\uFF08${i}\uFF09`:n?`${t?.message||"fetch failed"}\uFF08${n}\uFF09`:t?.message||String(e)}async refreshToken(){if(!this.refreshTokenValue)throw new Error("115 \u7F51\u76D8\u7F3A\u5C11 refresh_token\uFF08\u5FC5\u586B\uFF09");let e=new URLSearchParams;e.set("refresh_token",this.refreshTokenValue);let i=await(await this.fetchWithRetry(sj,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})).json();if(i.code!==0||!i.data?.access_token||!i.data?.refresh_token)throw new Error(`115 \u7F51\u76D8 token \u5237\u65B0\u5931\u8D25\uFF08code ${i.code} ${i.message}\uFF09\uFF1A\u8BF7\u786E\u8BA4 refresh_token \u6709\u6548\u3002`);this.accessToken=i.data.access_token,this.refreshTokenValue=i.data.refresh_token,this.addition.access_token=this.accessToken,this.addition.refresh_token=this.refreshTokenValue,this.onTokenUpdate?.({access_token:this.accessToken,refresh_token:this.refreshTokenValue})}async request(e,t,i,n,s,o=!1){await this.waitRateLimit();let a=async()=>{let d=new URL(e);for(let[I,m]of Object.entries(i||{}))m!==""&&d.searchParams.set(I,m);let u={Accept:"application/json","User-Agent":s||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/425.6.30"};this.accessToken&&(u.Authorization=`Bearer ${this.accessToken}`);let f={method:t,headers:u};if(n&&t==="POST"){let I=new URLSearchParams;for(let[m,w]of Object.entries(n))w!==""&&I.set(m,w);u["Content-Type"]="application/x-www-form-urlencoded",f.body=I.toString()}let h=await this.fetchWithRetry(d.toString(),f),g=await h.text(),p;try{p=JSON.parse(g)}catch{p={state:!1,code:h.status,message:g.slice(0,200)}}return{body:p,rawText:g}},c;try{({body:c}=await a())}catch(d){throw new Error(r.describeNetError(d))}let l=c?.state;if(l===!1||l===void 0){let d=Number(c?.code??0);if(oj(d)&&!o){await this.refreshToken(),c=(await a()).body;let f=c?.state;if(f!==!1&&f!==void 0)return c;throw new Error(`115 \u7F51\u76D8 API \u9519\u8BEF\uFF08code ${c?.code} ${c?.message}\uFF09`)}if(d===af){let u=new Error("115 object not found");throw u.code=af,u}throw new Error(`115 \u7F51\u76D8 API \u9519\u8BEF\uFF08code ${d} ${c?.message||""}\uFF09`)}return c}async userInfo(){return(await this.request(nj,"GET"))?.data}async getFiles(e){let t=await this.request(XJ,"GET",{cid:e.cid,limit:String(e.limit),offset:String(e.offset),asc:e.asc?"1":"0",o:e.o||"",show_dir:e.showDir?"1":"0",cur:"1"});return{files:t.data||[],count:t.count||0}}async getFolderInfo(e){return(await this.request(H8,"GET",{file_id:e}))?.data}async getFolderInfoByPath(e){return(await this.request(H8,"POST",void 0,{path:e}))?.data}async mkdir(e,t){return(await this.request(WJ,"POST",void 0,{pid:e,file_name:t}))?.data}async move(e,t){await this.request(ej,"POST",void 0,{file_ids:e,to_cid:t})}async updateFile(e,t){await this.request(rj,"POST",void 0,{file_id:e,file_name:t})}async copy(e,t){await this.request(ZJ,"POST",void 0,{pid:e,file_id:t,no_dupli:"1"})}async delFile(e,t){await this.request(ij,"POST",void 0,{file_ids:e,parent_id:t})}async downUrl(e,t){return(await this.request(tj,"POST",void 0,{pick_code:e},t))?.data}async uploadGetToken(){return(await this.request(VJ,"GET"))?.data}async uploadInit(e){return(await this.request(YJ,"POST",void 0,{file_name:e.fileName,file_size:String(e.fileSize),target:`U_1_${e.target}`,fileid:e.fileId,preid:e.preId,sign_key:e.signKey||"",sign_val:e.signVal||""}))?.data}}});function G8(r){let e=r.fc==="0";return{name:r.fn,size:r.fs||0,is_dir:e,created:r.uppt?new Date(r.uppt*1e3).toISOString():void 0,modified:r.upt?new Date(r.upt*1e3).toISOString():new Date().toISOString(),sign:r.fid,type:X(r.fn,e),thumb:r.thumbnail||r.fco||"",raw_url:""}}function cj(r){let e={...r||{}};return e.order_by=e.order_by||"file_name",e.order_direction=e.order_direction||"asc",e.page_size=e.page_size||200,(e.root_folder_id||e.root_folder_id==="0")&&!e.root_id&&(e.root_id=String(e.root_folder_id)),e}var Tp,aj,Up,z8=J(()=>{"use strict";Be();He();Gr();K8();Tp="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/425.6.30",aj=45;Up=class r{client;addition;pageSize=200;parentPath="/";fidCache=new Map;budget={used:0,limit:aj};linkCache=new Map;static LINK_TTL_MS=1800*1e3;constructor(e,t){this.addition=cj(e),this.client=new Pp(this.addition,t)}async init(){let t=this.addition.page_size||200;t<=0&&(t=200),t>1150&&(t=1150),this.pageSize=t;try{await this.client.userInfo()}catch(n){if(n?.code===af)throw n;let s=String(n?.message||n);throw s.includes("fetch")||s.includes("ECONN")||s.includes("abort")?new Error(`115 \u7F51\u76D8\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF08${s}\uFF09\uFF1Aproapi.115.com \u53EF\u80FD\u65E0\u6CD5\u4ECE\u5F53\u524D\u90E8\u7F72\u73AF\u5883\u8BBF\u95EE\uFF08\u6570\u636E\u4E2D\u5FC3 IP \u53EF\u80FD\u88AB 115 \u62E6\u622A\uFF09\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u66F4\u6362\u90E8\u7F72\u73AF\u5883\u3002`):new Error(`115 \u7F51\u76D8 token \u9A8C\u8BC1\u5931\u8D25\uFF1A${s}\u3002\u8BF7\u786E\u8BA4 access_token / refresh_token \u6709\u6548\u3002`)}let i=this.getRootId();if(i!=="0")try{let n=await this.client.getFolderInfo(i);if(n.file_id!=="0"){this.parentPath=`/${n.file_name}`;let s=[...n.paths||[]].reverse();for(let o of s)this.parentPath=`/${o.file_name}${this.parentPath}`}}catch(n){console.warn("[115open] init root path resolve failed:",n.message)}}getRootId(){return(this.addition.root_id||"0").trim()||"0"}reserve(){return this.budget.used>=this.budget.limit?(console.warn(`[115open] \u5DF2\u8FBE Cloudflare subrequest \u9884\u7B97\u4E0A\u9650(${this.budget.limit})\uFF0C\u7ED3\u679C\u5DF2\u622A\u65AD`),!1):(this.budget.used++,!0)}async list(e,t){this.budget.used=0;let i=await this.resolveFolderId(t),n=[],s=0;for(;this.reserve();){let{files:o,count:a}=await this.client.getFiles({cid:i,limit:this.pageSize,offset:s,asc:this.addition.order_direction==="asc",o:this.addition.order_by||"file_name",showDir:!0});for(let c of o)n.push(G8(c)),this.fidCache.set(c.fid,c.fid);if(n.length>=a||o.length===0)break;s+=o.length}return de(n,this.addition.order_by||"file_name",this.addition.order_direction)}async resolveFolderId(e){let t=this.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=this.fidCache.get(i);if(n)return n;let s=`/${t==="0"?"":t}${i==="/"?"":i}`;try{if(!this.reserve())throw new Error("subrequest budget exceeded");let l=await this.client.getFolderInfoByPath(s);if(l.file_id)return this.fidCache.set(i,l.file_id),l.file_id}catch(l){if(l?.code!==af&&l?.code!==990002)throw l}let o=i.split("/").filter(Boolean),a=t,c="";for(let l of o){let d=(()=>{try{return decodeURIComponent(l)}catch{return l}})();c=`${c}/${l}`;let u=this.fidCache.get(c);if(u){a=u;continue}if(!this.reserve())throw new Error("subrequest budget exceeded");let{files:f}=await this.client.getFiles({cid:a,limit:1e3,offset:0,asc:!0,o:"file_name",showDir:!0}),h=f.find(g=>g.fc==="0"&&(g.fn===l||g.fn===d||g.fid===l));if(!h)throw new Error(`folder not found: ${l}`);a=h.fid,this.fidCache.set(c,a)}return a}async resolveFile(e){let t="/"+String(e||"").split("/").filter(Boolean).join("/"),i=t.split("/").filter(Boolean),n=i.pop()||"";if(!n)throw new Error(`file not found: ${t}`);let s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o="/"+i.join("/"),a=await this.resolveFolderId(o),c=0;for(;;){if(!this.reserve())throw new Error("subrequest budget exceeded");let{files:l,count:d}=await this.client.getFiles({cid:a,limit:Math.max(this.pageSize,1e3),offset:c,asc:!0,o:"file_name",showDir:!0}),u=l.find(f=>f.fn===n||f.fn===s||f.fid===n||f.fid===s);if(u)return u;if(l.length===0||c+l.length>=d)break;c+=l.length}throw new Error(`file not found: ${n}`)}async get(e,t){this.budget.used=0;let i="/"+String(t||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${this.getRootId()}`)return{name:this.getRootId(),size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,raw_url:""};let n=await this.resolveFile(t),s=G8(n);if(n.fc!=="0"&&n.pc)try{let o=`${n.fid}|${Tp}`,a=this.linkCache.get(o);if(a&&a.expire>Date.now())s.raw_url=a.url,s.raw_url_headers={"User-Agent":Tp};else{if(!this.reserve())throw new Error("subrequest budget exceeded");let l=(await this.client.downUrl(n.pc,Tp))[n.fid];l?.url?.url&&(s.raw_url=l.url.url,s.raw_url_headers={"User-Agent":Tp},this.linkCache.set(o,{url:l.url.url,expire:Date.now()+r.LINK_TTL_MS}))}}catch(o){String(o?.message||o).includes("406")?console.warn("[115open] downurl \u914D\u989D\u7528\u5C3D\uFF08406\uFF09\uFF1A\u5DF2\u4F7F\u7528\u7F13\u5B58\u6216\u7A0D\u540E\u91CD\u8BD5"):console.warn(`[115open] downUrl warning for ${n.fn}:`,o.message)}return s}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.mkdir(o,n)}async rename(e,t,i){this.budget.used=0;let n=await this.resolveFile(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.updateFile(n.fid,i)}async remove(e,t,i){this.budget.used=0;let n=await this.resolveFile(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.delFile(n.fid,n.pid||this.getRootId())}async move(e,t,i,n,s){this.budget.used=0;let o=await this.resolveFile(n),a=await this.resolveFolderId(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.move(o.fid,a)}async copy(e,t,i,n,s){this.budget.used=0;let o=await this.resolveFile(n),a=await this.resolveFolderId(t);if(!this.reserve())throw new Error("subrequest budget exceeded");await this.client.copy(a,o.fid)}async put(e,t,i){if(i.length<1)throw new Error("115 \u7F51\u76D8\u4E0D\u5141\u8BB8\u4E0A\u4F20\u7A7A\u6587\u4EF6");this.budget.used=0;let n=String(t||"").split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/"),c=await this.resolveFolderId(o),l=i.length,d=(await Ho(i)).toUpperCase(),u=Math.min(128*1024,l),f=(await Ho(i.subarray(0,u))).toUpperCase();if(!this.reserve())throw new Error("subrequest budget exceeded");let h=await this.client.uploadInit({fileName:s,fileSize:l,target:c,fileId:d,preId:f});if(h.status===2)return;if([6,7,8].includes(h.status)&&h.sign_check){let p=h.sign_check.split("-"),I=parseInt(p[0],10),m=parseInt(p[1],10);if(Number.isFinite(I)&&Number.isFinite(m)){let w=(await Ho(i.subarray(I,m+1))).toUpperCase();if(!this.reserve())throw new Error("subrequest budget exceeded");if(h=await this.client.uploadInit({fileName:s,fileSize:l,target:c,fileId:d,preId:f,signKey:h.sign_key,signVal:w}),h.status===2)return}}if(!this.reserve())throw new Error("subrequest budget exceeded");let g=await this.client.uploadGetToken();if(!h.bucket||!h.object||!g.endpoint)throw new Error("115 \u4E0A\u4F20\u521D\u59CB\u5316\u5931\u8D25\uFF1A\u7F3A\u5C11 OSS \u4E0A\u4F20\u4FE1\u606F");await this.ossPutObject(g,h,i)}async ossPutObject(e,t,i){let s=`${(e.endpoint.startsWith("http")?e.endpoint:`https://${e.endpoint}`).replace(/\/$/,"")}/${t.object}`,o=Buffer.from(t.callback?.callback||"","utf8").toString("base64"),a=Buffer.from(t.callback?.callback_var||"","utf8").toString("base64"),c=new Date().toUTCString(),l="application/octet-stream",d=`x-oss-callback:${o} x-oss-callback-var:${a} x-oss-security-token:${e.SecurityToken} `,u=`/${t.bucket}/${t.object}`,f=`PUT ${l} ${c} -${d}${u}`,h=await Bu(f,e.AccessKeySecret),g=await fetch(s,{method:"PUT",headers:{"Content-Type":l,Date:c,Authorization:`OSS ${e.AccessKeyId}:${h}`,"x-oss-security-token":e.SecurityToken,"x-oss-callback":o,"x-oss-callback-var":a,"Content-Length":String(i.length)},body:i});if(!g.ok){let p=(await g.text()).slice(0,300);throw new Error(`115 OSS \u4E0A\u4F20\u5931\u8D25\uFF08HTTP ${g.status}\uFF09\uFF1A${p}`)}}}});function Vt(r){if(!r)return"/";let t=r.replace(/\\/g,"/").replace(/\/+/g,"/").replace(/^\/|\/$/g,"");return t?"/"+t:"/"}function Vn(r){let e=Vt(r);if(e==="/")return"/";let t=e.split("/").filter(Boolean);return t.pop(),t.length?"/"+t.join("/"):"/"}function _r(r){let e=Vt(r);if(e==="/")return"";let t=e.split("/").filter(Boolean);return t[t.length-1]||""}function Tl(...r){return Vt(r.join("/"))}function uc(r,e,t){if(!r||!r.trim())return`${e.UserName} ${t} ${e.ObjPath}`;let i=r;return i=i.replace(/\{\{\.UserName\}\}/g,e.UserName||""),i=i.replace(/\{\{\.ObjName\}\}/g,e.ObjName||""),i=i.replace(/\{\{\.ObjPath\}\}/g,e.ObjPath||""),i=i.replace(/\{\{\.ParentName\}\}/g,e.ParentName||""),i=i.replace(/\{\{\.ParentPath\}\}/g,e.ParentPath||""),i=i.replace(/\{\{\.TargetName\}\}/g,e.TargetName||""),i=i.replace(/\{\{\.TargetPath\}\}/g,e.TargetPath||""),i}function mQ(r,e){let t=Vt(r),i=Vt(e),n=1;for(;n0&&t[n]!=="/";)n--;let a=Vt(t.slice(0,n)),c=t.slice(n+1,s),l=i.slice(n+1,o),d=t.slice(n+1),u=i.slice(n+1);return{ancestor:a,aChildName:c,bChildName:l,aRest:d,bRest:u}}var _g,yQ=j(()=>{"use strict";_g=class{addition;token;owner;repo;constructor(e){this.addition=e,this.token=(e.token||"").trim(),this.owner=(e.owner||"").trim(),this.repo=(e.repo||"").trim()}get headers(){let e={Accept:"application/vnd.github.object+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"OpenList-Github-Driver"};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}async request(e,t={}){let i={...this.headers,...t.headers||{}},n;t.body!==void 0&&(typeof t.body=="string"?n=t.body:(n=JSON.stringify(t.body),i["Content-Type"]||(i["Content-Type"]="application/json")));let s=await fetch(e,{method:t.method||"GET",headers:i,body:n});if(!s.ok){let o=`${s.status} ${s.statusText}`;try{let a=await s.json();a?.message&&(o=`${s.status} ${s.statusText}: ${a.message}`)}catch{}throw new Error(o)}return s.status===204?{}:await s.json()}getContentApiUrl(e){let t=Vt(e);return`https://api.github.com/repos/${this.owner}/${this.repo}/contents${t==="/"?"":t}`}async getContents(e,t){let i=new URL(this.getContentApiUrl(e));return t&&i.searchParams.set("ref",t),this.request(i.toString())}async getRepo(){return this.request(`https://api.github.com/repos/${this.owner}/${this.repo}`)}async getBranchHead(e){return(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/branches/${encodeURIComponent(e)}`)).commit.sha}async getAuthenticatedUser(){return this.request("https://api.github.com/user")}async getTree(e){return this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/trees/${e}`)}async getTreeDirectly(e,t){let i=await this.getContents(e,t);if(!i.entries&&i.type!=="dir")throw new Error(`${e} is not a folder`);let n=await this.getTree(i.sha);if(n.truncated)throw new Error(`tree ${e} is truncated`);return{tree:n,dirSha:i.sha}}async newTree(e,t){let i={tree:t};return e&&(i.base_tree=e),(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/trees`,{method:"POST",body:i,headers:{Accept:"application/vnd.github+json"}})).sha}async putBlob(e){let t=Buffer.from(e).toString("base64");return(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/blobs`,{method:"POST",body:{encoding:"base64",content:t},headers:{Accept:"application/vnd.github+json"}})).sha}async createCommit(e,t,i,n,s){let o={message:e,tree:t,parents:[i]};return n?.name&&(o.committer={name:n.name,email:n.email,date:new Date().toISOString()}),s?.name&&(o.author={name:s.name,email:s.email,date:new Date().toISOString()}),(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/commits`,{method:"POST",body:o,headers:{Accept:"application/vnd.github+json"}})).sha}async updateRef(e,t){await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/refs/heads/${encodeURIComponent(e)}`,{method:"PATCH",body:{sha:t,force:!1},headers:{Accept:"application/vnd.github+json"}})}async renewParentTrees(e,t,i,n,s){let o=Vt(e),a=Vt(n);for(;o!==a;){o=Vn(o);let{tree:c,dirSha:l}=await this.getTreeDirectly(o,s),d=c.tree.find(f=>f.sha===t);if(!d)throw new Error(`Object with sha ${t} not found in ${o}`);let u={path:d.path,mode:d.mode,type:d.type,sha:i};i=await this.newTree(l,[u]),t=l}return i}}});var Fg,IQ=j(()=>{"use strict";Be();He();yQ();Fg=class{addition;client;isOnBranch=!1;commitLock=Promise.resolve();constructor(e){this.addition=e,this.client=new _g(e)}async acquireLock(e){let t=this.commitLock,i;this.commitLock=new Promise(n=>{i=n}),await t;try{return await e()}finally{i()}}formatDownloadUrl(e){if(!e)return"";let t=(this.addition.gh_proxy||"").trim();return t?e.replace("https://raw.githubusercontent.com",t):e}async commitAndPush(e,t){let i=this.addition.ref,n=await this.client.getBranchHead(i),s=this.addition.committer_name&&this.addition.committer_email?{name:this.addition.committer_name,email:this.addition.committer_email}:void 0,o=this.addition.author_name&&this.addition.author_email?{name:this.addition.author_name,email:this.addition.author_email}:void 0,a=await this.client.createCommit(e,t,n,s,o);await this.client.updateRef(i,a)}async init(){if(this.addition.root_folder_path=Vt(this.addition.root_folder_path||"/"),this.addition.committer_name&&!this.addition.committer_email||!this.addition.committer_name&&this.addition.committer_email)throw new Error("committer_name and committer_email must both be set or empty");if(this.addition.author_name&&!this.addition.author_email||!this.addition.author_name&&this.addition.author_email)throw new Error("author_name and author_email must both be set or empty");if(!this.addition.ref||!this.addition.ref.trim()){let e=await this.client.getRepo();this.addition.ref=e.default_branch,this.isOnBranch=!0}else try{await this.client.getBranchHead(this.addition.ref),this.isOnBranch=!0}catch{this.isOnBranch=!1}}async list(e,t){let i=Vt(t),n=await this.client.getContents(i,this.addition.ref);if(!n.entries&&n.type!=="dir")throw new Error(`${t} is not a folder`);let s=[];if(n.entries&&n.entries.length>=1e3){let o=await this.client.getTree(n.sha);if(o.truncated)throw new Error(`Tree ${t} is truncated (>100,000 items)`);for(let a of o.tree){if(a.path===".gitkeep")continue;let c=a.type==="tree";s.push({name:a.path,size:a.size||0,is_dir:c,modified:new Date(0).toISOString(),sign:"",type:X(a.path,c),raw_url:""})}}else if(n.entries)for(let o of n.entries){if(o.name===".gitkeep")continue;let a=o.type==="dir";s.push({name:o.name,size:o.size||0,is_dir:a,modified:new Date(0).toISOString(),sign:"",type:X(o.name,a),raw_url:this.formatDownloadUrl(o.download_url)})}return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=Vt(t),n=await this.client.getContents(i,this.addition.ref);if(n.type==="submodule")throw new Error("cannot download a submodule");let s=n.type==="dir"||!!n.entries,o=n.name||_r(i)||"root";return{name:o,size:n.size||0,is_dir:s,modified:new Date(0).toISOString(),sign:"",type:X(o,s),raw_url:this.formatDownloadUrl(n.download_url)}}async mkdir(e,t){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let i=Vt(t),n=Vn(i),s=_r(i);await this.acquireLock(async()=>{let o=await this.client.getContents(n,this.addition.ref);if(!o.entries&&o.type!=="dir")throw new Error(`${n} is not a folder`);let a=await this.client.newTree("",[{path:".gitkeep",mode:"100644",type:"blob",content:""}]),c=[{path:s,mode:"040000",type:"tree",sha:a}];o.entries?.length===1&&o.entries[0].name===".gitkeep"&&c.push({path:".gitkeep",mode:"100644",type:"blob",sha:null});let l=await this.client.newTree(o.sha,c),d=await this.client.renewParentTrees(n,o.sha,l,"/",this.addition.ref),u=uc(this.addition.mkdir_commit_message,{UserName:"OpenList",ObjName:s,ObjPath:i,ParentName:_r(n),ParentPath:n},"mkdir");await this.commitAndPush(u,d)})}async put(e,t,i){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let n=Vt(t),s=Vn(n),o=_r(n);await this.acquireLock(async()=>{let a=await this.client.putBlob(i),c=await this.client.getContents(s,this.addition.ref);if(!c.entries&&c.type!=="dir")throw new Error(`${s} is not a folder`);let l=[{path:o,mode:"100644",type:"blob",sha:a}];c.entries?.length===1&&c.entries[0].name===".gitkeep"&&l.push({path:".gitkeep",mode:"100644",type:"blob",sha:null});let d=await this.client.newTree(c.sha,l),u=await this.client.renewParentTrees(s,c.sha,d,"/",this.addition.ref),f=uc(this.addition.put_commit_message,{UserName:"OpenList",ObjName:o,ObjPath:n,ParentName:_r(s),ParentPath:s},"upload");await this.commitAndPush(f,u)})}async rename(e,t,i){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let n=Vt(t),s=Vn(n),o=_r(n);await this.acquireLock(async()=>{let{tree:a,dirSha:c}=await this.client.getTreeDirectly(s,this.addition.ref),l=a.tree.find(p=>p.path===o);if(!l)throw new Error(`Object not found: ${n}`);if(l.type==="commit")throw new Error("cannot rename a submodule");let d={path:o,mode:l.mode,type:l.type,sha:null},u={path:i,mode:l.mode,type:l.type,sha:l.sha},f=await this.client.newTree(c,[d,u]),h=await this.client.renewParentTrees(s,c,f,"/",this.addition.ref),g=uc(this.addition.rename_commit_message,{UserName:"OpenList",ObjName:o,ObjPath:n,ParentName:_r(s),ParentPath:s,TargetName:i,TargetPath:Tl(s,i)},"rename");await this.commitAndPush(g,h)})}async remove(e,t,i){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let n=Vt(t),s=Vn(n),o=_r(n);await this.acquireLock(async()=>{let{tree:a,dirSha:c}=await this.client.getTreeDirectly(s,this.addition.ref),l=a.tree.find(g=>g.path===o);if(!l)throw new Error(`Object not found: ${n}`);if(l.type==="commit")throw new Error("cannot remove a submodule");let d=[{path:o,mode:l.mode,type:l.type,sha:null}];a.tree.length===1&&d.push({path:".gitkeep",mode:"100644",type:"blob",content:""});let u=await this.client.newTree(c,d),f=await this.client.renewParentTrees(s,c,u,"/",this.addition.ref),h=uc(this.addition.delete_commit_message,{UserName:"OpenList",ObjName:o,ObjPath:n,ParentName:_r(s),ParentPath:s},"remove");await this.commitAndPush(h,f)})}async move(e,t,i,n,s){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let o=Vt(n),a=Vt(t);if(a.startsWith(o))throw new Error("cannot move parent dir to child");await this.acquireLock(async()=>{let c="",l=Vn(o),d=_r(o);if(a.startsWith(l)){let{dstOldSha:f,dstNewSha:h,ancestorOldSha:g,srcParentTree:p}=await this.copyWithoutRenewTree(o,a),y=a.slice(l.length).replace(/^\//,"").split("/")[0],w=Tl(l,y),C=await this.client.renewParentTrees(a,f,h,w,this.addition.ref),b=p.tree.find(R=>R.path===d),x=p.tree.find(R=>R.path===y);if(!b||!x)throw new Error("Object not found during move");let _=await this.client.newTree(g,[{path:b.path,mode:b.mode,type:b.type,sha:null},{path:x.path,mode:x.mode,type:x.type,sha:C}]);c=await this.client.renewParentTrees(l,g,_,"/",this.addition.ref)}else if(o.startsWith(a)){let{tree:f,dirSha:h}=await this.client.getTreeDirectly(l,this.addition.ref),g=f.tree.find(T=>T.path===d);if(!g)throw new Error("Object not found");if(g.type==="commit")throw new Error("cannot move a submodule");let p=[{path:g.path,mode:g.mode,type:g.type,sha:null}];f.tree.length===1&&p.push({path:".gitkeep",mode:"100644",type:"blob",content:""});let I=await this.client.newTree(h,p),w=o.slice(a.length).replace(/^\//,"").split("/")[0];if(!w)throw new Error("cannot move in place");let C=Tl(a,w),b=await this.client.renewParentTrees(l,h,I,C,this.addition.ref),{tree:x,dirSha:_}=await this.client.getTreeDirectly(a,this.addition.ref),R=x.tree.find(T=>T.path===w);if(!R)throw new Error("Object not found");let U=await this.client.newTree(_,[{path:R.path,mode:R.mode,type:R.type,sha:b},{path:g.path,mode:g.mode,type:g.type,sha:g.sha}]);c=await this.client.renewParentTrees(a,_,U,"/",this.addition.ref)}else{let{dstOldSha:f,dstNewSha:h,srcParentOldSha:g,srcParentTree:p}=await this.copyWithoutRenewTree(o,a),I=p.tree.find(v=>v.path===d);if(!I)throw new Error("Object not found");let y=[{path:I.path,mode:I.mode,type:I.type,sha:null}];p.tree.length===1&&y.push({path:".gitkeep",mode:"100644",type:"blob",content:""});let w=await this.client.newTree(g,y),{ancestor:C,aChildName:b,bChildName:x}=mQ(o,a),_=await this.client.renewParentTrees(a,f,h,Tl(C,x),this.addition.ref),R=await this.client.renewParentTrees(l,g,w,Tl(C,b),this.addition.ref),{tree:U,dirSha:T}=await this.client.getTreeDirectly(C,this.addition.ref),D=U.tree.find(v=>v.path===b),B=U.tree.find(v=>v.path===x);if(!D||!B)throw new Error("Ancestor child tree not found");let Q=await this.client.newTree(T,[{path:D.path,mode:D.mode,type:D.type,sha:R},{path:B.path,mode:B.mode,type:B.type,sha:_}]);c=await this.client.renewParentTrees(C,T,Q,"/",this.addition.ref)}let u=uc(this.addition.move_commit_message,{UserName:"OpenList",ObjName:d,ObjPath:o,ParentName:_r(l),ParentPath:l,TargetName:_r(a),TargetPath:a},"move");await this.commitAndPush(u,c)})}async copy(e,t,i,n,s){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let o=Vt(n),a=Vt(t);if(a.startsWith(o))throw new Error("cannot copy parent dir to child");await this.acquireLock(async()=>{let{dstOldSha:c,dstNewSha:l}=await this.copyWithoutRenewTree(o,a),d=await this.client.renewParentTrees(a,c,l,"/",this.addition.ref),u=uc(this.addition.copy_commit_message,{UserName:"OpenList",ObjName:_r(o),ObjPath:o,ParentName:_r(Vn(o)),ParentPath:Vn(o),TargetName:_r(a),TargetPath:a},"copy");await this.commitAndPush(u,d)})}async copyWithoutRenewTree(e,t){let i=await this.client.getContents(t,this.addition.ref);if(!i.entries&&i.type!=="dir")throw new Error(`${t} is not a folder`);let n=Vn(e),s=_r(e),{tree:o,dirSha:a}=await this.client.getTreeDirectly(n,this.addition.ref),c=o.tree.find(u=>u.path===s);if(!c)throw new Error(`Object not found: ${e}`);if(c.type==="commit")throw new Error("cannot copy a submodule");let l=[{path:c.path,mode:c.mode,type:c.type,sha:c.sha}];i.entries?.length===1&&i.entries[0].name===".gitkeep"&&l.push({path:".gitkeep",mode:"100644",type:"blob",sha:null});let d=await this.client.newTree(i.sha,l);return{dstOldSha:i.sha,dstNewSha:d,srcParentOldSha:a,srcParentTree:o,ancestorOldSha:a}}}});var et=oe((Pg,wQ)=>{(function(r,e){typeof Pg=="object"?wQ.exports=Pg=e():typeof define=="function"&&define.amd?define([],e):r.CryptoJS=e()})(Pg,function(){var r=r||(function(e,t){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof wt=="function")try{i=wt("crypto")}catch{}var n=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||(function(){function y(){}return function(w){var C;return y.prototype=w,C=new y,y.prototype=null,C}})(),o={},a=o.lib={},c=a.Base=(function(){return{extend:function(y){var w=s(this);return y&&w.mixIn(y),(!w.hasOwnProperty("init")||this.init===w.init)&&(w.init=function(){w.$super.init.apply(this,arguments)}),w.init.prototype=w,w.$super=this,w},create:function(){var y=this.extend();return y.init.apply(y,arguments),y},init:function(){},mixIn:function(y){for(var w in y)y.hasOwnProperty(w)&&(this[w]=y[w]);y.hasOwnProperty("toString")&&(this.toString=y.toString)},clone:function(){return this.init.prototype.extend(this)}}})(),l=a.WordArray=c.extend({init:function(y,w){y=this.words=y||[],w!=t?this.sigBytes=w:this.sigBytes=y.length*4},toString:function(y){return(y||u).stringify(this)},concat:function(y){var w=this.words,C=y.words,b=this.sigBytes,x=y.sigBytes;if(this.clamp(),b%4)for(var _=0;_>>2]>>>24-_%4*8&255;w[b+_>>>2]|=R<<24-(b+_)%4*8}else for(var U=0;U>>2]=C[U>>>2];return this.sigBytes+=x,this},clamp:function(){var y=this.words,w=this.sigBytes;y[w>>>2]&=4294967295<<32-w%4*8,y.length=e.ceil(w/4)},clone:function(){var y=c.clone.call(this);return y.words=this.words.slice(0),y},random:function(y){for(var w=[],C=0;C>>2]>>>24-x%4*8&255;b.push((_>>>4).toString(16)),b.push((_&15).toString(16))}return b.join("")},parse:function(y){for(var w=y.length,C=[],b=0;b>>3]|=parseInt(y.substr(b,2),16)<<24-b%8*4;return new l.init(C,w/2)}},f=d.Latin1={stringify:function(y){for(var w=y.words,C=y.sigBytes,b=[],x=0;x>>2]>>>24-x%4*8&255;b.push(String.fromCharCode(_))}return b.join("")},parse:function(y){for(var w=y.length,C=[],b=0;b>>2]|=(y.charCodeAt(b)&255)<<24-b%4*8;return new l.init(C,w)}},h=d.Utf8={stringify:function(y){try{return decodeURIComponent(escape(f.stringify(y)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(y){return f.parse(unescape(encodeURIComponent(y)))}},g=a.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(y){typeof y=="string"&&(y=h.parse(y)),this._data.concat(y),this._nDataBytes+=y.sigBytes},_process:function(y){var w,C=this._data,b=C.words,x=C.sigBytes,_=this.blockSize,R=_*4,U=x/R;y?U=e.ceil(U):U=e.max((U|0)-this._minBufferSize,0);var T=U*_,D=e.min(T*4,x);if(T){for(var B=0;B{(function(r,e){typeof Tg=="object"?xQ.exports=Tg=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Tg,function(r){return(function(e){var t=r,i=t.lib,n=i.Base,s=i.WordArray,o=t.x64={},a=o.Word=n.extend({init:function(l,d){this.high=l,this.low=d}}),c=o.WordArray=n.extend({init:function(l,d){l=this.words=l||[],d!=e?this.sigBytes=d:this.sigBytes=l.length*8},toX32:function(){for(var l=this.words,d=l.length,u=[],f=0;f{(function(r,e){typeof Ug=="object"?CQ.exports=Ug=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Ug,function(r){return(function(){if(typeof ArrayBuffer=="function"){var e=r,t=e.lib,i=t.WordArray,n=i.init,s=i.init=function(o){if(o instanceof ArrayBuffer&&(o=new Uint8Array(o)),(o instanceof Int8Array||typeof Uint8ClampedArray<"u"&&o instanceof Uint8ClampedArray||o instanceof Int16Array||o instanceof Uint16Array||o instanceof Int32Array||o instanceof Uint32Array||o instanceof Float32Array||o instanceof Float64Array)&&(o=new Uint8Array(o.buffer,o.byteOffset,o.byteLength)),o instanceof Uint8Array){for(var a=o.byteLength,c=[],l=0;l>>2]|=o[l]<<24-l%4*8;n.call(this,c,a)}else n.apply(this,arguments)};s.prototype=i}})(),r.lib.WordArray})});var bQ=oe((Rg,BQ)=>{(function(r,e){typeof Rg=="object"?BQ.exports=Rg=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Rg,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.enc,s=n.Utf16=n.Utf16BE={stringify:function(a){for(var c=a.words,l=a.sigBytes,d=[],u=0;u>>2]>>>16-u%4*8&65535;d.push(String.fromCharCode(f))}return d.join("")},parse:function(a){for(var c=a.length,l=[],d=0;d>>1]|=a.charCodeAt(d)<<16-d%2*16;return i.create(l,c*2)}};n.Utf16LE={stringify:function(a){for(var c=a.words,l=a.sigBytes,d=[],u=0;u>>2]>>>16-u%4*8&65535);d.push(String.fromCharCode(f))}return d.join("")},parse:function(a){for(var c=a.length,l=[],d=0;d>>1]|=o(a.charCodeAt(d)<<16-d%2*16);return i.create(l,c*2)}};function o(a){return a<<8&4278255360|a>>>8&16711935}})(),r.enc.Utf16})});var Go=oe((Ng,vQ)=>{(function(r,e){typeof Ng=="object"?vQ.exports=Ng=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Ng,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.enc,s=n.Base64={stringify:function(a){var c=a.words,l=a.sigBytes,d=this._map;a.clamp();for(var u=[],f=0;f>>2]>>>24-f%4*8&255,g=c[f+1>>>2]>>>24-(f+1)%4*8&255,p=c[f+2>>>2]>>>24-(f+2)%4*8&255,I=h<<16|g<<8|p,y=0;y<4&&f+y*.75>>6*(3-y)&63));var w=d.charAt(64);if(w)for(;u.length%4;)u.push(w);return u.join("")},parse:function(a){var c=a.length,l=this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var u=0;u>>6-f%4*2,p=h|g;d[u>>>2]|=p<<24-u%4*8,u++}return i.create(d,u)}})(),r.enc.Base64})});var SQ=oe((qg,kQ)=>{(function(r,e){typeof qg=="object"?kQ.exports=qg=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(qg,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.enc,s=n.Base64url={stringify:function(a,c){c===void 0&&(c=!0);var l=a.words,d=a.sigBytes,u=c?this._safe_map:this._map;a.clamp();for(var f=[],h=0;h>>2]>>>24-h%4*8&255,p=l[h+1>>>2]>>>24-(h+1)%4*8&255,I=l[h+2>>>2]>>>24-(h+2)%4*8&255,y=g<<16|p<<8|I,w=0;w<4&&h+w*.75>>6*(3-w)&63));var C=u.charAt(64);if(C)for(;f.length%4;)f.push(C);return f.join("")},parse:function(a,c){c===void 0&&(c=!0);var l=a.length,d=c?this._safe_map:this._map,u=this._reverseMap;if(!u){u=this._reverseMap=[];for(var f=0;f>>6-f%4*2,p=h|g;d[u>>>2]|=p<<24-u%4*8,u++}return i.create(d,u)}})(),r.enc.Base64url})});var zo=oe((Og,DQ)=>{(function(r,e){typeof Og=="object"?DQ.exports=Og=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Og,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.algo,a=[];(function(){for(var h=0;h<64;h++)a[h]=e.abs(e.sin(h+1))*4294967296|0})();var c=o.MD5=s.extend({_doReset:function(){this._hash=new n.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(h,g){for(var p=0;p<16;p++){var I=g+p,y=h[I];h[I]=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360}var w=this._hash.words,C=h[g+0],b=h[g+1],x=h[g+2],_=h[g+3],R=h[g+4],U=h[g+5],T=h[g+6],D=h[g+7],B=h[g+8],Q=h[g+9],v=h[g+10],E=h[g+11],P=h[g+12],N=h[g+13],J=h[g+14],z=h[g+15],L=w[0],G=w[1],K=w[2],$=w[3];L=l(L,G,K,$,C,7,a[0]),$=l($,L,G,K,b,12,a[1]),K=l(K,$,L,G,x,17,a[2]),G=l(G,K,$,L,_,22,a[3]),L=l(L,G,K,$,R,7,a[4]),$=l($,L,G,K,U,12,a[5]),K=l(K,$,L,G,T,17,a[6]),G=l(G,K,$,L,D,22,a[7]),L=l(L,G,K,$,B,7,a[8]),$=l($,L,G,K,Q,12,a[9]),K=l(K,$,L,G,v,17,a[10]),G=l(G,K,$,L,E,22,a[11]),L=l(L,G,K,$,P,7,a[12]),$=l($,L,G,K,N,12,a[13]),K=l(K,$,L,G,J,17,a[14]),G=l(G,K,$,L,z,22,a[15]),L=d(L,G,K,$,b,5,a[16]),$=d($,L,G,K,T,9,a[17]),K=d(K,$,L,G,E,14,a[18]),G=d(G,K,$,L,C,20,a[19]),L=d(L,G,K,$,U,5,a[20]),$=d($,L,G,K,v,9,a[21]),K=d(K,$,L,G,z,14,a[22]),G=d(G,K,$,L,R,20,a[23]),L=d(L,G,K,$,Q,5,a[24]),$=d($,L,G,K,J,9,a[25]),K=d(K,$,L,G,_,14,a[26]),G=d(G,K,$,L,B,20,a[27]),L=d(L,G,K,$,N,5,a[28]),$=d($,L,G,K,x,9,a[29]),K=d(K,$,L,G,D,14,a[30]),G=d(G,K,$,L,P,20,a[31]),L=u(L,G,K,$,U,4,a[32]),$=u($,L,G,K,B,11,a[33]),K=u(K,$,L,G,E,16,a[34]),G=u(G,K,$,L,J,23,a[35]),L=u(L,G,K,$,b,4,a[36]),$=u($,L,G,K,R,11,a[37]),K=u(K,$,L,G,D,16,a[38]),G=u(G,K,$,L,v,23,a[39]),L=u(L,G,K,$,N,4,a[40]),$=u($,L,G,K,C,11,a[41]),K=u(K,$,L,G,_,16,a[42]),G=u(G,K,$,L,T,23,a[43]),L=u(L,G,K,$,Q,4,a[44]),$=u($,L,G,K,P,11,a[45]),K=u(K,$,L,G,z,16,a[46]),G=u(G,K,$,L,x,23,a[47]),L=f(L,G,K,$,C,6,a[48]),$=f($,L,G,K,D,10,a[49]),K=f(K,$,L,G,J,15,a[50]),G=f(G,K,$,L,U,21,a[51]),L=f(L,G,K,$,P,6,a[52]),$=f($,L,G,K,_,10,a[53]),K=f(K,$,L,G,v,15,a[54]),G=f(G,K,$,L,b,21,a[55]),L=f(L,G,K,$,B,6,a[56]),$=f($,L,G,K,z,10,a[57]),K=f(K,$,L,G,T,15,a[58]),G=f(G,K,$,L,N,21,a[59]),L=f(L,G,K,$,R,6,a[60]),$=f($,L,G,K,E,10,a[61]),K=f(K,$,L,G,x,15,a[62]),G=f(G,K,$,L,Q,21,a[63]),w[0]=w[0]+L|0,w[1]=w[1]+G|0,w[2]=w[2]+K|0,w[3]=w[3]+$|0},_doFinalize:function(){var h=this._data,g=h.words,p=this._nDataBytes*8,I=h.sigBytes*8;g[I>>>5]|=128<<24-I%32;var y=e.floor(p/4294967296),w=p;g[(I+64>>>9<<4)+15]=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,g[(I+64>>>9<<4)+14]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360,h.sigBytes=(g.length+1)*4,this._process();for(var C=this._hash,b=C.words,x=0;x<4;x++){var _=b[x];b[x]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360}return C},clone:function(){var h=s.clone.call(this);return h._hash=this._hash.clone(),h}});function l(h,g,p,I,y,w,C){var b=h+(g&p|~g&I)+y+C;return(b<>>32-w)+g}function d(h,g,p,I,y,w,C){var b=h+(g&I|p&~I)+y+C;return(b<>>32-w)+g}function u(h,g,p,I,y,w,C){var b=h+(g^p^I)+y+C;return(b<>>32-w)+g}function f(h,g,p,I,y,w,C){var b=h+(p^(g|~I))+y+C;return(b<>>32-w)+g}t.MD5=s._createHelper(c),t.HmacMD5=s._createHmacHelper(c)})(Math),r.MD5})});var QC=oe((Mg,QQ)=>{(function(r,e){typeof Mg=="object"?QQ.exports=Mg=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Mg,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=t.Hasher,s=e.algo,o=[],a=s.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(c,l){for(var d=this._hash.words,u=d[0],f=d[1],h=d[2],g=d[3],p=d[4],I=0;I<80;I++){if(I<16)o[I]=c[l+I]|0;else{var y=o[I-3]^o[I-8]^o[I-14]^o[I-16];o[I]=y<<1|y>>>31}var w=(u<<5|u>>>27)+p+o[I];I<20?w+=(f&h|~f&g)+1518500249:I<40?w+=(f^h^g)+1859775393:I<60?w+=(f&h|f&g|h&g)-1894007588:w+=(f^h^g)-899497514,p=g,g=h,h=f<<30|f>>>2,f=u,u=w}d[0]=d[0]+u|0,d[1]=d[1]+f|0,d[2]=d[2]+h|0,d[3]=d[3]+g|0,d[4]=d[4]+p|0},_doFinalize:function(){var c=this._data,l=c.words,d=this._nDataBytes*8,u=c.sigBytes*8;return l[u>>>5]|=128<<24-u%32,l[(u+64>>>9<<4)+14]=Math.floor(d/4294967296),l[(u+64>>>9<<4)+15]=d,c.sigBytes=l.length*4,this._process(),this._hash},clone:function(){var c=n.clone.call(this);return c._hash=this._hash.clone(),c}});e.SHA1=n._createHelper(a),e.HmacSHA1=n._createHmacHelper(a)})(),r.SHA1})});var Hg=oe((Lg,_Q)=>{(function(r,e){typeof Lg=="object"?_Q.exports=Lg=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(Lg,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.algo,a=[],c=[];(function(){function u(p){for(var I=e.sqrt(p),y=2;y<=I;y++)if(!(p%y))return!1;return!0}function f(p){return(p-(p|0))*4294967296|0}for(var h=2,g=0;g<64;)u(h)&&(g<8&&(a[g]=f(e.pow(h,1/2))),c[g]=f(e.pow(h,1/3)),g++),h++})();var l=[],d=o.SHA256=s.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(u,f){for(var h=this._hash.words,g=h[0],p=h[1],I=h[2],y=h[3],w=h[4],C=h[5],b=h[6],x=h[7],_=0;_<64;_++){if(_<16)l[_]=u[f+_]|0;else{var R=l[_-15],U=(R<<25|R>>>7)^(R<<14|R>>>18)^R>>>3,T=l[_-2],D=(T<<15|T>>>17)^(T<<13|T>>>19)^T>>>10;l[_]=U+l[_-7]+D+l[_-16]}var B=w&C^~w&b,Q=g&p^g&I^p&I,v=(g<<30|g>>>2)^(g<<19|g>>>13)^(g<<10|g>>>22),E=(w<<26|w>>>6)^(w<<21|w>>>11)^(w<<7|w>>>25),P=x+E+B+c[_]+l[_],N=v+Q;x=b,b=C,C=w,w=y+P|0,y=I,I=p,p=g,g=P+N|0}h[0]=h[0]+g|0,h[1]=h[1]+p|0,h[2]=h[2]+I|0,h[3]=h[3]+y|0,h[4]=h[4]+w|0,h[5]=h[5]+C|0,h[6]=h[6]+b|0,h[7]=h[7]+x|0},_doFinalize:function(){var u=this._data,f=u.words,h=this._nDataBytes*8,g=u.sigBytes*8;return f[g>>>5]|=128<<24-g%32,f[(g+64>>>9<<4)+14]=e.floor(h/4294967296),f[(g+64>>>9<<4)+15]=h,u.sigBytes=f.length*4,this._process(),this._hash},clone:function(){var u=s.clone.call(this);return u._hash=this._hash.clone(),u}});t.SHA256=s._createHelper(d),t.HmacSHA256=s._createHmacHelper(d)})(Math),r.SHA256})});var PQ=oe((Kg,FQ)=>{(function(r,e,t){typeof Kg=="object"?FQ.exports=Kg=e(et(),Hg()):typeof define=="function"&&define.amd?define(["./core","./sha256"],e):e(r.CryptoJS)})(Kg,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=e.algo,s=n.SHA256,o=n.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=s._doFinalize.call(this);return a.sigBytes-=4,a}});e.SHA224=s._createHelper(o),e.HmacSHA224=s._createHmacHelper(o)})(),r.SHA224})});var _C=oe((Gg,TQ)=>{(function(r,e,t){typeof Gg=="object"?TQ.exports=Gg=e(et(),Ju()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(r.CryptoJS)})(Gg,function(r){return(function(){var e=r,t=e.lib,i=t.Hasher,n=e.x64,s=n.Word,o=n.WordArray,a=e.algo;function c(){return s.create.apply(s,arguments)}var l=[c(1116352408,3609767458),c(1899447441,602891725),c(3049323471,3964484399),c(3921009573,2173295548),c(961987163,4081628472),c(1508970993,3053834265),c(2453635748,2937671579),c(2870763221,3664609560),c(3624381080,2734883394),c(310598401,1164996542),c(607225278,1323610764),c(1426881987,3590304994),c(1925078388,4068182383),c(2162078206,991336113),c(2614888103,633803317),c(3248222580,3479774868),c(3835390401,2666613458),c(4022224774,944711139),c(264347078,2341262773),c(604807628,2007800933),c(770255983,1495990901),c(1249150122,1856431235),c(1555081692,3175218132),c(1996064986,2198950837),c(2554220882,3999719339),c(2821834349,766784016),c(2952996808,2566594879),c(3210313671,3203337956),c(3336571891,1034457026),c(3584528711,2466948901),c(113926993,3758326383),c(338241895,168717936),c(666307205,1188179964),c(773529912,1546045734),c(1294757372,1522805485),c(1396182291,2643833823),c(1695183700,2343527390),c(1986661051,1014477480),c(2177026350,1206759142),c(2456956037,344077627),c(2730485921,1290863460),c(2820302411,3158454273),c(3259730800,3505952657),c(3345764771,106217008),c(3516065817,3606008344),c(3600352804,1432725776),c(4094571909,1467031594),c(275423344,851169720),c(430227734,3100823752),c(506948616,1363258195),c(659060556,3750685593),c(883997877,3785050280),c(958139571,3318307427),c(1322822218,3812723403),c(1537002063,2003034995),c(1747873779,3602036899),c(1955562222,1575990012),c(2024104815,1125592928),c(2227730452,2716904306),c(2361852424,442776044),c(2428436474,593698344),c(2756734187,3733110249),c(3204031479,2999351573),c(3329325298,3815920427),c(3391569614,3928383900),c(3515267271,566280711),c(3940187606,3454069534),c(4118630271,4000239992),c(116418474,1914138554),c(174292421,2731055270),c(289380356,3203993006),c(460393269,320620315),c(685471733,587496836),c(852142971,1086792851),c(1017036298,365543100),c(1126000580,2618297676),c(1288033470,3409855158),c(1501505948,4234509866),c(1607167915,987167468),c(1816402316,1246189591)],d=[];(function(){for(var f=0;f<80;f++)d[f]=c()})();var u=a.SHA512=i.extend({_doReset:function(){this._hash=new o.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(f,h){for(var g=this._hash.words,p=g[0],I=g[1],y=g[2],w=g[3],C=g[4],b=g[5],x=g[6],_=g[7],R=p.high,U=p.low,T=I.high,D=I.low,B=y.high,Q=y.low,v=w.high,E=w.low,P=C.high,N=C.low,J=b.high,z=b.low,L=x.high,G=x.low,K=_.high,$=_.low,te=R,re=U,ee=T,Z=D,me=B,le=Q,Ae=v,ve=E,qe=P,_e=N,se=J,it=z,ce=L,dr=G,Or=K,ct=$,we=0;we<80;we++){var Ee,Gi,xo=d[we];if(we<16)Gi=xo.high=f[h+we*2]|0,Ee=xo.low=f[h+we*2+1]|0;else{var Se=d[we-15],Dt=Se.high,Bs=Se.low,Ce=(Dt>>>1|Bs<<31)^(Dt>>>8|Bs<<24)^Dt>>>7,zi=(Bs>>>1|Dt<<31)^(Bs>>>8|Dt<<24)^(Bs>>>7|Dt<<25),ii=d[we-2],Ir=ii.high,tr=ii.low,ur=(Ir>>>19|tr<<13)^(Ir<<3|tr>>>29)^Ir>>>6,Qe=(tr>>>19|Ir<<13)^(tr<<3|Ir>>>29)^(tr>>>6|Ir<<26),be=d[we-7],Al=be.high,Ai=be.low,Mr=d[we-16],Mn=Mr.high,mn=Mr.low;Ee=zi+Ai,Gi=Ce+Al+(Ee>>>0>>0?1:0),Ee=Ee+Qe,Gi=Gi+ur+(Ee>>>0>>0?1:0),Ee=Ee+mn,Gi=Gi+Mn+(Ee>>>0>>0?1:0),xo.high=Gi,xo.low=Ee}var Le=qe&se^~qe&ce,Ja=_e&it^~_e&dr,Ji=te&ee^te&me^ee&me,Co=re&Z^re&le^Z&le,Ti=(te>>>28|re<<4)^(te<<30|re>>>2)^(te<<25|re>>>7),A=(re>>>28|te<<4)^(re<<30|te>>>2)^(re<<25|te>>>7),k=(qe>>>14|_e<<18)^(qe>>>18|_e<<14)^(qe<<23|_e>>>9),O=(_e>>>14|qe<<18)^(_e>>>18|qe<<14)^(_e<<23|qe>>>9),V=l[we],H=V.high,W=V.low,ue=ct+O,Re=Or+k+(ue>>>0>>0?1:0),ue=ue+Ja,Re=Re+Le+(ue>>>0>>0?1:0),ue=ue+W,Re=Re+H+(ue>>>0>>0?1:0),ue=ue+Ee,Re=Re+Gi+(ue>>>0>>0?1:0),Ye=A+Co,Ie=Ti+Ji+(Ye>>>0>>0?1:0);Or=ce,ct=dr,ce=se,dr=it,se=qe,it=_e,_e=ve+ue|0,qe=Ae+Re+(_e>>>0>>0?1:0)|0,Ae=me,ve=le,me=ee,le=Z,ee=te,Z=re,re=ue+Ye|0,te=Re+Ie+(re>>>0>>0?1:0)|0}U=p.low=U+re,p.high=R+te+(U>>>0>>0?1:0),D=I.low=D+Z,I.high=T+ee+(D>>>0>>0?1:0),Q=y.low=Q+le,y.high=B+me+(Q>>>0>>0?1:0),E=w.low=E+ve,w.high=v+Ae+(E>>>0>>0?1:0),N=C.low=N+_e,C.high=P+qe+(N>>>0<_e>>>0?1:0),z=b.low=z+it,b.high=J+se+(z>>>0>>0?1:0),G=x.low=G+dr,x.high=L+ce+(G>>>0>>0?1:0),$=_.low=$+ct,_.high=K+Or+($>>>0>>0?1:0)},_doFinalize:function(){var f=this._data,h=f.words,g=this._nDataBytes*8,p=f.sigBytes*8;h[p>>>5]|=128<<24-p%32,h[(p+128>>>10<<5)+30]=Math.floor(g/4294967296),h[(p+128>>>10<<5)+31]=g,f.sigBytes=h.length*4,this._process();var I=this._hash.toX32();return I},clone:function(){var f=i.clone.call(this);return f._hash=this._hash.clone(),f},blockSize:1024/32});e.SHA512=i._createHelper(u),e.HmacSHA512=i._createHmacHelper(u)})(),r.SHA512})});var RQ=oe((zg,UQ)=>{(function(r,e,t){typeof zg=="object"?UQ.exports=zg=e(et(),Ju(),_C()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./sha512"],e):e(r.CryptoJS)})(zg,function(r){return(function(){var e=r,t=e.x64,i=t.Word,n=t.WordArray,s=e.algo,o=s.SHA512,a=s.SHA384=o.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var c=o._doFinalize.call(this);return c.sigBytes-=16,c}});e.SHA384=o._createHelper(a),e.HmacSHA384=o._createHmacHelper(a)})(),r.SHA384})});var qQ=oe((Jg,NQ)=>{(function(r,e,t){typeof Jg=="object"?NQ.exports=Jg=e(et(),Ju()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(r.CryptoJS)})(Jg,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.x64,a=o.Word,c=t.algo,l=[],d=[],u=[];(function(){for(var g=1,p=0,I=0;I<24;I++){l[g+5*p]=(I+1)*(I+2)/2%64;var y=p%5,w=(2*g+3*p)%5;g=y,p=w}for(var g=0;g<5;g++)for(var p=0;p<5;p++)d[g+5*p]=p+(2*g+3*p)%5*5;for(var C=1,b=0;b<24;b++){for(var x=0,_=0,R=0;R<7;R++){if(C&1){var U=(1<>>24)&16711935|(C<<24|C>>>8)&4278255360,b=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;var x=I[w];x.high^=b,x.low^=C}for(var _=0;_<24;_++){for(var R=0;R<5;R++){for(var U=0,T=0,D=0;D<5;D++){var x=I[R+5*D];U^=x.high,T^=x.low}var B=f[R];B.high=U,B.low=T}for(var R=0;R<5;R++)for(var Q=f[(R+4)%5],v=f[(R+1)%5],E=v.high,P=v.low,U=Q.high^(E<<1|P>>>31),T=Q.low^(P<<1|E>>>31),D=0;D<5;D++){var x=I[R+5*D];x.high^=U,x.low^=T}for(var N=1;N<25;N++){var U,T,x=I[N],J=x.high,z=x.low,L=l[N];L<32?(U=J<>>32-L,T=z<>>32-L):(U=z<>>64-L,T=J<>>64-L);var G=f[d[N]];G.high=U,G.low=T}var K=f[0],$=I[0];K.high=$.high,K.low=$.low;for(var R=0;R<5;R++)for(var D=0;D<5;D++){var N=R+5*D,x=I[N],te=f[N],re=f[(R+1)%5+5*D],ee=f[(R+2)%5+5*D];x.high=te.high^~re.high&ee.high,x.low=te.low^~re.low&ee.low}var x=I[0],Z=u[_];x.high^=Z.high,x.low^=Z.low}},_doFinalize:function(){var g=this._data,p=g.words,I=this._nDataBytes*8,y=g.sigBytes*8,w=this.blockSize*32;p[y>>>5]|=1<<24-y%32,p[(e.ceil((y+1)/w)*w>>>5)-1]|=128,g.sigBytes=p.length*4,this._process();for(var C=this._state,b=this.cfg.outputLength/8,x=b/8,_=[],R=0;R>>24)&16711935|(T<<24|T>>>8)&4278255360,D=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,_.push(D),_.push(T)}return new n.init(_,b)},clone:function(){for(var g=s.clone.call(this),p=g._state=this._state.slice(0),I=0;I<25;I++)p[I]=p[I].clone();return g}});t.SHA3=s._createHelper(h),t.HmacSHA3=s._createHmacHelper(h)})(Math),r.SHA3})});var MQ=oe((jg,OQ)=>{(function(r,e){typeof jg=="object"?OQ.exports=jg=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})(jg,function(r){return(function(e){var t=r,i=t.lib,n=i.WordArray,s=i.Hasher,o=t.algo,a=n.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=n.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=n.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=n.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),u=n.create([0,1518500249,1859775393,2400959708,2840853838]),f=n.create([1352829926,1548603684,1836072691,2053994217,0]),h=o.RIPEMD160=s.extend({_doReset:function(){this._hash=n.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(b,x){for(var _=0;_<16;_++){var R=x+_,U=b[R];b[R]=(U<<8|U>>>24)&16711935|(U<<24|U>>>8)&4278255360}var T=this._hash.words,D=u.words,B=f.words,Q=a.words,v=c.words,E=l.words,P=d.words,N,J,z,L,G,K,$,te,re,ee;K=N=T[0],$=J=T[1],te=z=T[2],re=L=T[3],ee=G=T[4];for(var Z,_=0;_<80;_+=1)Z=N+b[x+Q[_]]|0,_<16?Z+=g(J,z,L)+D[0]:_<32?Z+=p(J,z,L)+D[1]:_<48?Z+=I(J,z,L)+D[2]:_<64?Z+=y(J,z,L)+D[3]:Z+=w(J,z,L)+D[4],Z=Z|0,Z=C(Z,E[_]),Z=Z+G|0,N=G,G=L,L=C(z,10),z=J,J=Z,Z=K+b[x+v[_]]|0,_<16?Z+=w($,te,re)+B[0]:_<32?Z+=y($,te,re)+B[1]:_<48?Z+=I($,te,re)+B[2]:_<64?Z+=p($,te,re)+B[3]:Z+=g($,te,re)+B[4],Z=Z|0,Z=C(Z,P[_]),Z=Z+ee|0,K=ee,ee=re,re=C(te,10),te=$,$=Z;Z=T[1]+z+re|0,T[1]=T[2]+L+ee|0,T[2]=T[3]+G+K|0,T[3]=T[4]+N+$|0,T[4]=T[0]+J+te|0,T[0]=Z},_doFinalize:function(){var b=this._data,x=b.words,_=this._nDataBytes*8,R=b.sigBytes*8;x[R>>>5]|=128<<24-R%32,x[(R+64>>>9<<4)+14]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360,b.sigBytes=(x.length+1)*4,this._process();for(var U=this._hash,T=U.words,D=0;D<5;D++){var B=T[D];T[D]=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360}return U},clone:function(){var b=s.clone.call(this);return b._hash=this._hash.clone(),b}});function g(b,x,_){return b^x^_}function p(b,x,_){return b&x|~b&_}function I(b,x,_){return(b|~x)^_}function y(b,x,_){return b&_|x&~_}function w(b,x,_){return b^(x|~_)}function C(b,x){return b<>>32-x}t.RIPEMD160=s._createHelper(h),t.HmacRIPEMD160=s._createHmacHelper(h)})(Math),r.RIPEMD160})});var Vg=oe(($g,LQ)=>{(function(r,e){typeof $g=="object"?LQ.exports=$g=e(et()):typeof define=="function"&&define.amd?define(["./core"],e):e(r.CryptoJS)})($g,function(r){(function(){var e=r,t=e.lib,i=t.Base,n=e.enc,s=n.Utf8,o=e.algo,a=o.HMAC=i.extend({init:function(c,l){c=this._hasher=new c.init,typeof l=="string"&&(l=s.parse(l));var d=c.blockSize,u=d*4;l.sigBytes>u&&(l=c.finalize(l)),l.clamp();for(var f=this._oKey=l.clone(),h=this._iKey=l.clone(),g=f.words,p=h.words,I=0;I{(function(r,e,t){typeof Yg=="object"?HQ.exports=Yg=e(et(),Hg(),Vg()):typeof define=="function"&&define.amd?define(["./core","./sha256","./hmac"],e):e(r.CryptoJS)})(Yg,function(r){return(function(){var e=r,t=e.lib,i=t.Base,n=t.WordArray,s=e.algo,o=s.SHA256,a=s.HMAC,c=s.PBKDF2=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:25e4}),init:function(l){this.cfg=this.cfg.extend(l)},compute:function(l,d){for(var u=this.cfg,f=a.create(u.hasher,l),h=n.create(),g=n.create([1]),p=h.words,I=g.words,y=u.keySize,w=u.iterations;p.length{(function(r,e,t){typeof Wg=="object"?GQ.exports=Wg=e(et(),QC(),Vg()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(r.CryptoJS)})(Wg,function(r){return(function(){var e=r,t=e.lib,i=t.Base,n=t.WordArray,s=e.algo,o=s.MD5,a=s.EvpKDF=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,l){for(var d,u=this.cfg,f=u.hasher.create(),h=n.create(),g=h.words,p=u.keySize,I=u.iterations;g.length{(function(r,e,t){typeof Xg=="object"?zQ.exports=Xg=e(et(),Ts()):typeof define=="function"&&define.amd?define(["./core","./evpkdf"],e):e(r.CryptoJS)})(Xg,function(r){r.lib.Cipher||(function(e){var t=r,i=t.lib,n=i.Base,s=i.WordArray,o=i.BufferedBlockAlgorithm,a=t.enc,c=a.Utf8,l=a.Base64,d=t.algo,u=d.EvpKDF,f=i.Cipher=o.extend({cfg:n.extend(),createEncryptor:function(B,Q){return this.create(this._ENC_XFORM_MODE,B,Q)},createDecryptor:function(B,Q){return this.create(this._DEC_XFORM_MODE,B,Q)},init:function(B,Q,v){this.cfg=this.cfg.extend(v),this._xformMode=B,this._key=Q,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(B){return this._append(B),this._process()},finalize:function(B){B&&this._append(B);var Q=this._doFinalize();return Q},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:(function(){function B(Q){return typeof Q=="string"?D:R}return function(Q){return{encrypt:function(v,E,P){return B(E).encrypt(Q,v,E,P)},decrypt:function(v,E,P){return B(E).decrypt(Q,v,E,P)}}}})()}),h=i.StreamCipher=f.extend({_doFinalize:function(){var B=this._process(!0);return B},blockSize:1}),g=t.mode={},p=i.BlockCipherMode=n.extend({createEncryptor:function(B,Q){return this.Encryptor.create(B,Q)},createDecryptor:function(B,Q){return this.Decryptor.create(B,Q)},init:function(B,Q){this._cipher=B,this._iv=Q}}),I=g.CBC=(function(){var B=p.extend();B.Encryptor=B.extend({processBlock:function(v,E){var P=this._cipher,N=P.blockSize;Q.call(this,v,E,N),P.encryptBlock(v,E),this._prevBlock=v.slice(E,E+N)}}),B.Decryptor=B.extend({processBlock:function(v,E){var P=this._cipher,N=P.blockSize,J=v.slice(E,E+N);P.decryptBlock(v,E),Q.call(this,v,E,N),this._prevBlock=J}});function Q(v,E,P){var N,J=this._iv;J?(N=J,this._iv=e):N=this._prevBlock;for(var z=0;z>>2]&255;B.sigBytes-=Q}},C=i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:I,padding:w}),reset:function(){var B;f.reset.call(this);var Q=this.cfg,v=Q.iv,E=Q.mode;this._xformMode==this._ENC_XFORM_MODE?B=E.createEncryptor:(B=E.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==B?this._mode.init(this,v&&v.words):(this._mode=B.call(E,this,v&&v.words),this._mode.__creator=B)},_doProcessBlock:function(B,Q){this._mode.processBlock(B,Q)},_doFinalize:function(){var B,Q=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(Q.pad(this._data,this.blockSize),B=this._process(!0)):(B=this._process(!0),Q.unpad(B)),B},blockSize:128/32}),b=i.CipherParams=n.extend({init:function(B){this.mixIn(B)},toString:function(B){return(B||this.formatter).stringify(this)}}),x=t.format={},_=x.OpenSSL={stringify:function(B){var Q,v=B.ciphertext,E=B.salt;return E?Q=s.create([1398893684,1701076831]).concat(E).concat(v):Q=v,Q.toString(l)},parse:function(B){var Q,v=l.parse(B),E=v.words;return E[0]==1398893684&&E[1]==1701076831&&(Q=s.create(E.slice(2,4)),E.splice(0,4),v.sigBytes-=16),b.create({ciphertext:v,salt:Q})}},R=i.SerializableCipher=n.extend({cfg:n.extend({format:_}),encrypt:function(B,Q,v,E){E=this.cfg.extend(E);var P=B.createEncryptor(v,E),N=P.finalize(Q),J=P.cfg;return b.create({ciphertext:N,key:v,iv:J.iv,algorithm:B,mode:J.mode,padding:J.padding,blockSize:B.blockSize,formatter:E.format})},decrypt:function(B,Q,v,E){E=this.cfg.extend(E),Q=this._parse(Q,E.format);var P=B.createDecryptor(v,E).finalize(Q.ciphertext);return P},_parse:function(B,Q){return typeof B=="string"?Q.parse(B,this):B}}),U=t.kdf={},T=U.OpenSSL={execute:function(B,Q,v,E,P){if(E||(E=s.random(64/8)),P)var N=u.create({keySize:Q+v,hasher:P}).compute(B,E);else var N=u.create({keySize:Q+v}).compute(B,E);var J=s.create(N.words.slice(Q),v*4);return N.sigBytes=Q*4,b.create({key:N,iv:J,salt:E})}},D=i.PasswordBasedCipher=R.extend({cfg:R.cfg.extend({kdf:T}),encrypt:function(B,Q,v,E){E=this.cfg.extend(E);var P=E.kdf.execute(v,B.keySize,B.ivSize,E.salt,E.hasher);E.iv=P.iv;var N=R.encrypt.call(this,B,Q,P.key,E);return N.mixIn(P),N},decrypt:function(B,Q,v,E){E=this.cfg.extend(E),Q=this._parse(Q,E.format);var P=E.kdf.execute(v,B.keySize,B.ivSize,Q.salt,E.hasher);E.iv=P.iv;var N=R.decrypt.call(this,B,Q,P.key,E);return N}})})()})});var jQ=oe((Zg,JQ)=>{(function(r,e,t){typeof Zg=="object"?JQ.exports=Zg=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(Zg,function(r){return r.mode.CFB=(function(){var e=r.lib.BlockCipherMode.extend();e.Encryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize;t.call(this,i,n,o,s),this._prevBlock=i.slice(n,n+o)}}),e.Decryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize,a=i.slice(n,n+o);t.call(this,i,n,o,s),this._prevBlock=a}});function t(i,n,s,o){var a,c=this._iv;c?(a=c.slice(0),this._iv=void 0):a=this._prevBlock,o.encryptBlock(a,0);for(var l=0;l{(function(r,e,t){typeof ep=="object"?$Q.exports=ep=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(ep,function(r){return r.mode.CTR=(function(){var e=r.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize,a=this._iv,c=this._counter;a&&(c=this._counter=a.slice(0),this._iv=void 0);var l=c.slice(0);s.encryptBlock(l,0),c[o-1]=c[o-1]+1|0;for(var d=0;d{(function(r,e,t){typeof tp=="object"?YQ.exports=tp=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(tp,function(r){return r.mode.CTRGladman=(function(){var e=r.lib.BlockCipherMode.extend();function t(s){if((s>>24&255)===255){var o=s>>16&255,a=s>>8&255,c=s&255;o===255?(o=0,a===255?(a=0,c===255?c=0:++c):++a):++o,s=0,s+=o<<16,s+=a<<8,s+=c}else s+=1<<24;return s}function i(s){return(s[0]=t(s[0]))===0&&(s[1]=t(s[1])),s}var n=e.Encryptor=e.extend({processBlock:function(s,o){var a=this._cipher,c=a.blockSize,l=this._iv,d=this._counter;l&&(d=this._counter=l.slice(0),this._iv=void 0),i(d);var u=d.slice(0);a.encryptBlock(u,0);for(var f=0;f{(function(r,e,t){typeof rp=="object"?XQ.exports=rp=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(rp,function(r){return r.mode.OFB=(function(){var e=r.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,n){var s=this._cipher,o=s.blockSize,a=this._iv,c=this._keystream;a&&(c=this._keystream=a.slice(0),this._iv=void 0),s.encryptBlock(c,0);for(var l=0;l{(function(r,e,t){typeof ip=="object"?e_.exports=ip=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(ip,function(r){return r.mode.ECB=(function(){var e=r.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,i){this._cipher.encryptBlock(t,i)}}),e.Decryptor=e.extend({processBlock:function(t,i){this._cipher.decryptBlock(t,i)}}),e})(),r.mode.ECB})});var i_=oe((np,r_)=>{(function(r,e,t){typeof np=="object"?r_.exports=np=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(np,function(r){return r.pad.AnsiX923={pad:function(e,t){var i=e.sigBytes,n=t*4,s=n-i%n,o=i+s-1;e.clamp(),e.words[o>>>2]|=s<<24-o%4*8,e.sigBytes+=s},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},r.pad.Ansix923})});var s_=oe((sp,n_)=>{(function(r,e,t){typeof sp=="object"?n_.exports=sp=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(sp,function(r){return r.pad.Iso10126={pad:function(e,t){var i=t*4,n=i-e.sigBytes%i;e.concat(r.lib.WordArray.random(n-1)).concat(r.lib.WordArray.create([n<<24],1))},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},r.pad.Iso10126})});var a_=oe((op,o_)=>{(function(r,e,t){typeof op=="object"?o_.exports=op=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(op,function(r){return r.pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971})});var l_=oe((ap,c_)=>{(function(r,e,t){typeof ap=="object"?c_.exports=ap=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(ap,function(r){return r.pad.ZeroPadding={pad:function(e,t){var i=t*4;e.clamp(),e.sigBytes+=i-(e.sigBytes%i||i)},unpad:function(e){for(var t=e.words,i=e.sigBytes-1,i=e.sigBytes-1;i>=0;i--)if(t[i>>>2]>>>24-i%4*8&255){e.sigBytes=i+1;break}}},r.pad.ZeroPadding})});var u_=oe((cp,d_)=>{(function(r,e,t){typeof cp=="object"?d_.exports=cp=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(cp,function(r){return r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding})});var A_=oe((lp,f_)=>{(function(r,e,t){typeof lp=="object"?f_.exports=lp=e(et(),fr()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(r.CryptoJS)})(lp,function(r){return(function(e){var t=r,i=t.lib,n=i.CipherParams,s=t.enc,o=s.Hex,a=t.format,c=a.Hex={stringify:function(l){return l.ciphertext.toString(o)},parse:function(l){var d=o.parse(l);return n.create({ciphertext:d})}}})(),r.format.Hex})});var g_=oe((dp,h_)=>{(function(r,e,t){typeof dp=="object"?h_.exports=dp=e(et(),Go(),zo(),Ts(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(dp,function(r){return(function(){var e=r,t=e.lib,i=t.BlockCipher,n=e.algo,s=[],o=[],a=[],c=[],l=[],d=[],u=[],f=[],h=[],g=[];(function(){for(var y=[],w=0;w<256;w++)w<128?y[w]=w<<1:y[w]=w<<1^283;for(var C=0,b=0,w=0;w<256;w++){var x=b^b<<1^b<<2^b<<3^b<<4;x=x>>>8^x&255^99,s[C]=x,o[x]=C;var _=y[C],R=y[_],U=y[R],T=y[x]*257^x*16843008;a[C]=T<<24|T>>>8,c[C]=T<<16|T>>>16,l[C]=T<<8|T>>>24,d[C]=T;var T=U*16843009^R*65537^_*257^C*16843008;u[x]=T<<24|T>>>8,f[x]=T<<16|T>>>16,h[x]=T<<8|T>>>24,g[x]=T,C?(C=_^y[y[y[U^_]]],b^=y[y[b]]):C=b=1}})();var p=[0,1,2,4,8,16,32,64,128,27,54],I=n.AES=i.extend({_doReset:function(){var y;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var w=this._keyPriorReset=this._key,C=w.words,b=w.sigBytes/4,x=this._nRounds=b+6,_=(x+1)*4,R=this._keySchedule=[],U=0;U<_;U++)U6&&U%b==4&&(y=s[y>>>24]<<24|s[y>>>16&255]<<16|s[y>>>8&255]<<8|s[y&255]):(y=y<<8|y>>>24,y=s[y>>>24]<<24|s[y>>>16&255]<<16|s[y>>>8&255]<<8|s[y&255],y^=p[U/b|0]<<24),R[U]=R[U-b]^y);for(var T=this._invKeySchedule=[],D=0;D<_;D++){var U=_-D;if(D%4)var y=R[U];else var y=R[U-4];D<4||U<=4?T[D]=y:T[D]=u[s[y>>>24]]^f[s[y>>>16&255]]^h[s[y>>>8&255]]^g[s[y&255]]}}},encryptBlock:function(y,w){this._doCryptBlock(y,w,this._keySchedule,a,c,l,d,s)},decryptBlock:function(y,w){var C=y[w+1];y[w+1]=y[w+3],y[w+3]=C,this._doCryptBlock(y,w,this._invKeySchedule,u,f,h,g,o);var C=y[w+1];y[w+1]=y[w+3],y[w+3]=C},_doCryptBlock:function(y,w,C,b,x,_,R,U){for(var T=this._nRounds,D=y[w]^C[0],B=y[w+1]^C[1],Q=y[w+2]^C[2],v=y[w+3]^C[3],E=4,P=1;P>>24]^x[B>>>16&255]^_[Q>>>8&255]^R[v&255]^C[E++],J=b[B>>>24]^x[Q>>>16&255]^_[v>>>8&255]^R[D&255]^C[E++],z=b[Q>>>24]^x[v>>>16&255]^_[D>>>8&255]^R[B&255]^C[E++],L=b[v>>>24]^x[D>>>16&255]^_[B>>>8&255]^R[Q&255]^C[E++];D=N,B=J,Q=z,v=L}var N=(U[D>>>24]<<24|U[B>>>16&255]<<16|U[Q>>>8&255]<<8|U[v&255])^C[E++],J=(U[B>>>24]<<24|U[Q>>>16&255]<<16|U[v>>>8&255]<<8|U[D&255])^C[E++],z=(U[Q>>>24]<<24|U[v>>>16&255]<<16|U[D>>>8&255]<<8|U[B&255])^C[E++],L=(U[v>>>24]<<24|U[D>>>16&255]<<16|U[B>>>8&255]<<8|U[Q&255])^C[E++];y[w]=N,y[w+1]=J,y[w+2]=z,y[w+3]=L},keySize:256/32});e.AES=i._createHelper(I)})(),r.AES})});var m_=oe((up,p_)=>{(function(r,e,t){typeof up=="object"?p_.exports=up=e(et(),Go(),zo(),Ts(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(up,function(r){return(function(){var e=r,t=e.lib,i=t.WordArray,n=t.BlockCipher,s=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],u=s.DES=n.extend({_doReset:function(){for(var p=this._key,I=p.words,y=[],w=0;w<56;w++){var C=o[w]-1;y[w]=I[C>>>5]>>>31-C%32&1}for(var b=this._subKeys=[],x=0;x<16;x++){for(var _=b[x]=[],R=c[x],w=0;w<24;w++)_[w/6|0]|=y[(a[w]-1+R)%28]<<31-w%6,_[4+(w/6|0)]|=y[28+(a[w+24]-1+R)%28]<<31-w%6;_[0]=_[0]<<1|_[0]>>>31;for(var w=1;w<7;w++)_[w]=_[w]>>>(w-1)*4+3;_[7]=_[7]<<5|_[7]>>>27}for(var U=this._invSubKeys=[],w=0;w<16;w++)U[w]=b[15-w]},encryptBlock:function(p,I){this._doCryptBlock(p,I,this._subKeys)},decryptBlock:function(p,I){this._doCryptBlock(p,I,this._invSubKeys)},_doCryptBlock:function(p,I,y){this._lBlock=p[I],this._rBlock=p[I+1],f.call(this,4,252645135),f.call(this,16,65535),h.call(this,2,858993459),h.call(this,8,16711935),f.call(this,1,1431655765);for(var w=0;w<16;w++){for(var C=y[w],b=this._lBlock,x=this._rBlock,_=0,R=0;R<8;R++)_|=l[R][((x^C[R])&d[R])>>>0];this._lBlock=x,this._rBlock=b^_}var U=this._lBlock;this._lBlock=this._rBlock,this._rBlock=U,f.call(this,1,1431655765),h.call(this,8,16711935),h.call(this,2,858993459),f.call(this,16,65535),f.call(this,4,252645135),p[I]=this._lBlock,p[I+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function f(p,I){var y=(this._lBlock>>>p^this._rBlock)&I;this._rBlock^=y,this._lBlock^=y<>>p^this._lBlock)&I;this._lBlock^=y,this._rBlock^=y<192.");var y=I.slice(0,2),w=I.length<4?I.slice(0,2):I.slice(2,4),C=I.length<6?I.slice(0,2):I.slice(4,6);this._des1=u.createEncryptor(i.create(y)),this._des2=u.createEncryptor(i.create(w)),this._des3=u.createEncryptor(i.create(C))},encryptBlock:function(p,I){this._des1.encryptBlock(p,I),this._des2.decryptBlock(p,I),this._des3.encryptBlock(p,I)},decryptBlock:function(p,I){this._des3.decryptBlock(p,I),this._des2.encryptBlock(p,I),this._des1.decryptBlock(p,I)},keySize:192/32,ivSize:64/32,blockSize:64/32});e.TripleDES=n._createHelper(g)})(),r.TripleDES})});var I_=oe((fp,y_)=>{(function(r,e,t){typeof fp=="object"?y_.exports=fp=e(et(),Go(),zo(),Ts(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(fp,function(r){return(function(){var e=r,t=e.lib,i=t.StreamCipher,n=e.algo,s=n.RC4=i.extend({_doReset:function(){for(var c=this._key,l=c.words,d=c.sigBytes,u=this._S=[],f=0;f<256;f++)u[f]=f;for(var f=0,h=0;f<256;f++){var g=f%d,p=l[g>>>2]>>>24-g%4*8&255;h=(h+u[f]+p)%256;var I=u[f];u[f]=u[h],u[h]=I}this._i=this._j=0},_doProcessBlock:function(c,l){c[l]^=o.call(this)},keySize:256/32,ivSize:0});function o(){for(var c=this._S,l=this._i,d=this._j,u=0,f=0;f<4;f++){l=(l+1)%256,d=(d+c[l])%256;var h=c[l];c[l]=c[d],c[d]=h,u|=c[(c[l]+c[d])%256]<<24-f*8}return this._i=l,this._j=d,u}e.RC4=i._createHelper(s);var a=n.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var c=this.cfg.drop;c>0;c--)o.call(this)}});e.RC4Drop=i._createHelper(a)})(),r.RC4})});var x_=oe((Ap,w_)=>{(function(r,e,t){typeof Ap=="object"?w_.exports=Ap=e(et(),Go(),zo(),Ts(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(Ap,function(r){return(function(){var e=r,t=e.lib,i=t.StreamCipher,n=e.algo,s=[],o=[],a=[],c=n.Rabbit=i.extend({_doReset:function(){for(var d=this._key.words,u=this.cfg.iv,f=0;f<4;f++)d[f]=(d[f]<<8|d[f]>>>24)&16711935|(d[f]<<24|d[f]>>>8)&4278255360;var h=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],g=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var f=0;f<4;f++)l.call(this);for(var f=0;f<8;f++)g[f]^=h[f+4&7];if(u){var p=u.words,I=p[0],y=p[1],w=(I<<8|I>>>24)&16711935|(I<<24|I>>>8)&4278255360,C=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,b=w>>>16|C&4294901760,x=C<<16|w&65535;g[0]^=w,g[1]^=b,g[2]^=C,g[3]^=x,g[4]^=w,g[5]^=b,g[6]^=C,g[7]^=x;for(var f=0;f<4;f++)l.call(this)}},_doProcessBlock:function(d,u){var f=this._X;l.call(this),s[0]=f[0]^f[5]>>>16^f[3]<<16,s[1]=f[2]^f[7]>>>16^f[5]<<16,s[2]=f[4]^f[1]>>>16^f[7]<<16,s[3]=f[6]^f[3]>>>16^f[1]<<16;for(var h=0;h<4;h++)s[h]=(s[h]<<8|s[h]>>>24)&16711935|(s[h]<<24|s[h]>>>8)&4278255360,d[u+h]^=s[h]},blockSize:128/32,ivSize:64/32});function l(){for(var d=this._X,u=this._C,f=0;f<8;f++)o[f]=u[f];u[0]=u[0]+1295307597+this._b|0,u[1]=u[1]+3545052371+(u[0]>>>0>>0?1:0)|0,u[2]=u[2]+886263092+(u[1]>>>0>>0?1:0)|0,u[3]=u[3]+1295307597+(u[2]>>>0>>0?1:0)|0,u[4]=u[4]+3545052371+(u[3]>>>0>>0?1:0)|0,u[5]=u[5]+886263092+(u[4]>>>0>>0?1:0)|0,u[6]=u[6]+1295307597+(u[5]>>>0>>0?1:0)|0,u[7]=u[7]+3545052371+(u[6]>>>0>>0?1:0)|0,this._b=u[7]>>>0>>0?1:0;for(var f=0;f<8;f++){var h=d[f]+u[f],g=h&65535,p=h>>>16,I=((g*g>>>17)+g*p>>>15)+p*p,y=((h&4294901760)*h|0)+((h&65535)*h|0);a[f]=I^y}d[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,d[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,d[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,d[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,d[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,d[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,d[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,d[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=i._createHelper(c)})(),r.Rabbit})});var E_=oe((hp,C_)=>{(function(r,e,t){typeof hp=="object"?C_.exports=hp=e(et(),Go(),zo(),Ts(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(hp,function(r){return(function(){var e=r,t=e.lib,i=t.StreamCipher,n=e.algo,s=[],o=[],a=[],c=n.RabbitLegacy=i.extend({_doReset:function(){var d=this._key.words,u=this.cfg.iv,f=this._X=[d[0],d[3]<<16|d[2]>>>16,d[1],d[0]<<16|d[3]>>>16,d[2],d[1]<<16|d[0]>>>16,d[3],d[2]<<16|d[1]>>>16],h=this._C=[d[2]<<16|d[2]>>>16,d[0]&4294901760|d[1]&65535,d[3]<<16|d[3]>>>16,d[1]&4294901760|d[2]&65535,d[0]<<16|d[0]>>>16,d[2]&4294901760|d[3]&65535,d[1]<<16|d[1]>>>16,d[3]&4294901760|d[0]&65535];this._b=0;for(var g=0;g<4;g++)l.call(this);for(var g=0;g<8;g++)h[g]^=f[g+4&7];if(u){var p=u.words,I=p[0],y=p[1],w=(I<<8|I>>>24)&16711935|(I<<24|I>>>8)&4278255360,C=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,b=w>>>16|C&4294901760,x=C<<16|w&65535;h[0]^=w,h[1]^=b,h[2]^=C,h[3]^=x,h[4]^=w,h[5]^=b,h[6]^=C,h[7]^=x;for(var g=0;g<4;g++)l.call(this)}},_doProcessBlock:function(d,u){var f=this._X;l.call(this),s[0]=f[0]^f[5]>>>16^f[3]<<16,s[1]=f[2]^f[7]>>>16^f[5]<<16,s[2]=f[4]^f[1]>>>16^f[7]<<16,s[3]=f[6]^f[3]>>>16^f[1]<<16;for(var h=0;h<4;h++)s[h]=(s[h]<<8|s[h]>>>24)&16711935|(s[h]<<24|s[h]>>>8)&4278255360,d[u+h]^=s[h]},blockSize:128/32,ivSize:64/32});function l(){for(var d=this._X,u=this._C,f=0;f<8;f++)o[f]=u[f];u[0]=u[0]+1295307597+this._b|0,u[1]=u[1]+3545052371+(u[0]>>>0>>0?1:0)|0,u[2]=u[2]+886263092+(u[1]>>>0>>0?1:0)|0,u[3]=u[3]+1295307597+(u[2]>>>0>>0?1:0)|0,u[4]=u[4]+3545052371+(u[3]>>>0>>0?1:0)|0,u[5]=u[5]+886263092+(u[4]>>>0>>0?1:0)|0,u[6]=u[6]+1295307597+(u[5]>>>0>>0?1:0)|0,u[7]=u[7]+3545052371+(u[6]>>>0>>0?1:0)|0,this._b=u[7]>>>0>>0?1:0;for(var f=0;f<8;f++){var h=d[f]+u[f],g=h&65535,p=h>>>16,I=((g*g>>>17)+g*p>>>15)+p*p,y=((h&4294901760)*h|0)+((h&65535)*h|0);a[f]=I^y}d[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,d[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,d[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,d[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,d[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,d[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,d[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,d[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=i._createHelper(c)})(),r.RabbitLegacy})});var b_=oe((gp,B_)=>{(function(r,e,t){typeof gp=="object"?B_.exports=gp=e(et(),Go(),zo(),Ts(),fr()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(r.CryptoJS)})(gp,function(r){return(function(){var e=r,t=e.lib,i=t.BlockCipher,n=e.algo;let s=16,o=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],a=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var c={pbox:[],sbox:[]};function l(g,p){let I=p>>24&255,y=p>>16&255,w=p>>8&255,C=p&255,b=g.sbox[0][I]+g.sbox[1][y];return b=b^g.sbox[2][w],b=b+g.sbox[3][C],b}function d(g,p,I){let y=p,w=I,C;for(let b=0;b1;--b)y=y^g.pbox[b],w=l(g,y)^w,C=y,y=w,w=C;return C=y,y=w,w=C,w=w^g.pbox[1],y=y^g.pbox[0],{left:y,right:w}}function f(g,p,I){for(let x=0;x<4;x++){g.sbox[x]=[];for(let _=0;_<256;_++)g.sbox[x][_]=a[x][_]}let y=0;for(let x=0;x=I&&(y=0);let w=0,C=0,b=0;for(let x=0;x{(function(r,e,t){typeof pp=="object"?v_.exports=pp=e(et(),Ju(),EQ(),bQ(),Go(),SQ(),zo(),QC(),Hg(),PQ(),_C(),RQ(),qQ(),MQ(),Vg(),KQ(),Ts(),fr(),jQ(),VQ(),WQ(),ZQ(),t_(),i_(),s_(),a_(),l_(),u_(),A_(),g_(),m_(),I_(),x_(),E_(),b_()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./lib-typedarrays","./enc-utf16","./enc-base64","./enc-base64url","./md5","./sha1","./sha256","./sha224","./sha512","./sha384","./sha3","./ripemd160","./hmac","./pbkdf2","./evpkdf","./cipher-core","./mode-cfb","./mode-ctr","./mode-ctr-gladman","./mode-ofb","./mode-ecb","./pad-ansix923","./pad-iso10126","./pad-iso97971","./pad-zeropadding","./pad-nopadding","./format-hex","./aes","./tripledes","./rc4","./rabbit","./rabbit-legacy","./blowfish"],e):r.CryptoJS=e(r.CryptoJS)})(pp,function(r){return r})});function Ac(r){return Wi.default.MD5(r).toString(Wi.default.enc.Hex)}function k_(r,e){let t=e.match(/:\/\/[^/]+((\/[^/\s?#]+)*)/),i=t?t[1]:e;return`${r}:${i}`}function S_(r,e){let t=`${r}${e}${F_}${cz}`,i=Wi.default.SHA1(t).toString(Wi.default.enc.Hex),n=Wi.default.MD5(i).toString(Wi.default.enc.Hex);return`div101.${r}${n}`}function P_(r){let e=r.length,t=262144;for(;e/t>512&&t<2097152;)t=t<<1;let i=[];for(let s=0;s{"use strict";Wi=Qr(fc(),1),D_="https://api-pan.xunlei.com/drive/v1",Us=`${D_}/files`,g0e=`${D_}/tasks`,Q_="https://xluser-ssl.xunlei.com",mp=`${Q_}/v1`,FC="drive#folder",__="drive#file",PC="UPLOAD_TYPE_RESUMABLE",az="access_end_point_token",F_="40",cz="34a062aaa22f906fca4fefe9fb3a3021";ju=class{options;tokenResp=null;coreLoginResp=null;captchaToken="";creditKey="";constructor(e){this.options=e,this.captchaToken=e.captchaToken||"",this.creditKey=e.creditKey||""}getCaptchaSign(){if(!this.options.algorithms||this.options.algorithms.length===0)return{timestamp:this.options.timestamp||"",sign:this.options.captchaSign||""};let e=Date.now().toString(),t=`${this.options.clientId}${this.options.clientVersion}${this.options.packageName}${this.options.deviceId}${e}`;for(let i of this.options.algorithms)t=Ac(t+i);return{timestamp:e,sign:`1.${t}`}}async refreshCaptchaToken(e,t){let i={action:e,captcha_token:this.captchaToken,client_id:this.options.clientId,device_id:this.options.deviceId,meta:t,redirect_uri:"xlaccsdk01://xunlei.com/callback?state=harbor"},n=await this.rawRequest(`${mp}/shield/captcha/init`,{method:"POST",body:i});if(n.error_code||n.error&&n.error!=="success")throw new Error(`Captcha error: ${n.error_code} ${n.error} ${n.error_description||""}`);if(n.url)throw new Error(`need verify: Click Here`);if(!n.captcha_token)throw new Error("empty captchaToken");this.captchaToken=n.captcha_token,this.options.onPersistCaptchaToken&&await this.options.onPersistCaptchaToken(n.captcha_token)}async refreshCaptchaTokenAtLogin(e,t){let{timestamp:i,sign:n}=this.getCaptchaSign(),s={client_version:this.options.clientVersion,package_name:this.options.packageName,user_id:t,timestamp:i,captcha_sign:n};await this.refreshCaptchaToken(e,s)}async refreshCaptchaTokenInLogin(e,t){let i={};/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(t)?i.email=t:t.length>=11&&t.length<=18?i.phone_number=t:i.username=t,await this.refreshCaptchaToken(e,i)}formatReviewData(e){let t=S_(this.options.deviceId,this.options.packageName),i={creditkey:e.creditkey,reviewurl:`${e.reviewurl}&deviceid=${t}`,deviceid:t,devicesign:t},s=` +${d}${u}`,h=await qu(f,e.AccessKeySecret),g=await fetch(s,{method:"PUT",headers:{"Content-Type":l,Date:c,Authorization:`OSS ${e.AccessKeyId}:${h}`,"x-oss-security-token":e.SecurityToken,"x-oss-callback":o,"x-oss-callback-var":a,"Content-Length":String(i.length)},body:i});if(!g.ok){let p=(await g.text()).slice(0,300);throw new Error(`115 OSS \u4E0A\u4F20\u5931\u8D25\uFF08HTTP ${g.status}\uFF09\uFF1A${p}`)}}}});function Vt(r){if(!r)return"/";let t=r.replace(/\\/g,"/").replace(/\/+/g,"/").replace(/^\/|\/$/g,"");return t?"/"+t:"/"}function Wn(r){let e=Vt(r);if(e==="/")return"/";let t=e.split("/").filter(Boolean);return t.pop(),t.length?"/"+t.join("/"):"/"}function Fr(r){let e=Vt(r);if(e==="/")return"";let t=e.split("/").filter(Boolean);return t[t.length-1]||""}function Gl(...r){return Vt(r.join("/"))}function Ec(r,e,t){if(!r||!r.trim())return`${e.UserName} ${t} ${e.ObjPath}`;let i=r;return i=i.replace(/\{\{\.UserName\}\}/g,e.UserName||""),i=i.replace(/\{\{\.ObjName\}\}/g,e.ObjName||""),i=i.replace(/\{\{\.ObjPath\}\}/g,e.ObjPath||""),i=i.replace(/\{\{\.ParentName\}\}/g,e.ParentName||""),i=i.replace(/\{\{\.ParentPath\}\}/g,e.ParentPath||""),i=i.replace(/\{\{\.TargetName\}\}/g,e.TargetName||""),i=i.replace(/\{\{\.TargetPath\}\}/g,e.TargetPath||""),i}function J8(r,e){let t=Vt(r),i=Vt(e),n=1;for(;n0&&t[n]!=="/";)n--;let a=Vt(t.slice(0,n)),c=t.slice(n+1,s),l=i.slice(n+1,o),d=t.slice(n+1),u=i.slice(n+1);return{ancestor:a,aChildName:c,bChildName:l,aRest:d,bRest:u}}var Rp,j8=J(()=>{"use strict";Rp=class{addition;token;owner;repo;constructor(e){this.addition=e,this.token=(e.token||"").trim(),this.owner=(e.owner||"").trim(),this.repo=(e.repo||"").trim()}get headers(){let e={Accept:"application/vnd.github.object+json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"OpenList-Github-Driver"};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}async request(e,t={}){let i={...this.headers,...t.headers||{}},n;t.body!==void 0&&(typeof t.body=="string"?n=t.body:(n=JSON.stringify(t.body),i["Content-Type"]||(i["Content-Type"]="application/json")));let s=await fetch(e,{method:t.method||"GET",headers:i,body:n});if(!s.ok){let o=`${s.status} ${s.statusText}`;try{let a=await s.json();a?.message&&(o=`${s.status} ${s.statusText}: ${a.message}`)}catch{}throw new Error(o)}return s.status===204?{}:await s.json()}getContentApiUrl(e){let t=Vt(e);return`https://api.github.com/repos/${this.owner}/${this.repo}/contents${t==="/"?"":t}`}async getContents(e,t){let i=new URL(this.getContentApiUrl(e));return t&&i.searchParams.set("ref",t),this.request(i.toString())}async getRepo(){return this.request(`https://api.github.com/repos/${this.owner}/${this.repo}`)}async getBranchHead(e){return(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/branches/${encodeURIComponent(e)}`)).commit.sha}async getAuthenticatedUser(){return this.request("https://api.github.com/user")}async getTree(e){return this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/trees/${e}`)}async getTreeDirectly(e,t){let i=await this.getContents(e,t);if(!i.entries&&i.type!=="dir")throw new Error(`${e} is not a folder`);let n=await this.getTree(i.sha);if(n.truncated)throw new Error(`tree ${e} is truncated`);return{tree:n,dirSha:i.sha}}async newTree(e,t){let i={tree:t};return e&&(i.base_tree=e),(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/trees`,{method:"POST",body:i,headers:{Accept:"application/vnd.github+json"}})).sha}async putBlob(e){let t=Buffer.from(e).toString("base64");return(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/blobs`,{method:"POST",body:{encoding:"base64",content:t},headers:{Accept:"application/vnd.github+json"}})).sha}async createCommit(e,t,i,n,s){let o={message:e,tree:t,parents:[i]};return n?.name&&(o.committer={name:n.name,email:n.email,date:new Date().toISOString()}),s?.name&&(o.author={name:s.name,email:s.email,date:new Date().toISOString()}),(await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/commits`,{method:"POST",body:o,headers:{Accept:"application/vnd.github+json"}})).sha}async updateRef(e,t){await this.request(`https://api.github.com/repos/${this.owner}/${this.repo}/git/refs/heads/${encodeURIComponent(e)}`,{method:"PATCH",body:{sha:t,force:!1},headers:{Accept:"application/vnd.github+json"}})}async renewParentTrees(e,t,i,n,s){let o=Vt(e),a=Vt(n);for(;o!==a;){o=Wn(o);let{tree:c,dirSha:l}=await this.getTreeDirectly(o,s),d=c.tree.find(f=>f.sha===t);if(!d)throw new Error(`Object with sha ${t} not found in ${o}`);let u={path:d.path,mode:d.mode,type:d.type,sha:i};i=await this.newTree(l,[u]),t=l}return i}}});var Np,$8=J(()=>{"use strict";Be();He();j8();Np=class{addition;client;isOnBranch=!1;commitLock=Promise.resolve();constructor(e){this.addition=e,this.client=new Rp(e)}async acquireLock(e){let t=this.commitLock,i;this.commitLock=new Promise(n=>{i=n}),await t;try{return await e()}finally{i()}}formatDownloadUrl(e){if(!e)return"";let t=(this.addition.gh_proxy||"").trim();return t?e.replace("https://raw.githubusercontent.com",t):e}async commitAndPush(e,t){let i=this.addition.ref,n=await this.client.getBranchHead(i),s=this.addition.committer_name&&this.addition.committer_email?{name:this.addition.committer_name,email:this.addition.committer_email}:void 0,o=this.addition.author_name&&this.addition.author_email?{name:this.addition.author_name,email:this.addition.author_email}:void 0,a=await this.client.createCommit(e,t,n,s,o);await this.client.updateRef(i,a)}async init(){if(this.addition.root_folder_path=Vt(this.addition.root_folder_path||"/"),this.addition.committer_name&&!this.addition.committer_email||!this.addition.committer_name&&this.addition.committer_email)throw new Error("committer_name and committer_email must both be set or empty");if(this.addition.author_name&&!this.addition.author_email||!this.addition.author_name&&this.addition.author_email)throw new Error("author_name and author_email must both be set or empty");if(!this.addition.ref||!this.addition.ref.trim()){let e=await this.client.getRepo();this.addition.ref=e.default_branch,this.isOnBranch=!0}else try{await this.client.getBranchHead(this.addition.ref),this.isOnBranch=!0}catch{this.isOnBranch=!1}}async list(e,t){let i=Vt(t),n=await this.client.getContents(i,this.addition.ref);if(!n.entries&&n.type!=="dir")throw new Error(`${t} is not a folder`);let s=[];if(n.entries&&n.entries.length>=1e3){let o=await this.client.getTree(n.sha);if(o.truncated)throw new Error(`Tree ${t} is truncated (>100,000 items)`);for(let a of o.tree){if(a.path===".gitkeep")continue;let c=a.type==="tree";s.push({name:a.path,size:a.size||0,is_dir:c,modified:new Date(0).toISOString(),sign:"",type:X(a.path,c),raw_url:""})}}else if(n.entries)for(let o of n.entries){if(o.name===".gitkeep")continue;let a=o.type==="dir";s.push({name:o.name,size:o.size||0,is_dir:a,modified:new Date(0).toISOString(),sign:"",type:X(o.name,a),raw_url:this.formatDownloadUrl(o.download_url)})}return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=Vt(t),n=await this.client.getContents(i,this.addition.ref);if(n.type==="submodule")throw new Error("cannot download a submodule");let s=n.type==="dir"||!!n.entries,o=n.name||Fr(i)||"root";return{name:o,size:n.size||0,is_dir:s,modified:new Date(0).toISOString(),sign:"",type:X(o,s),raw_url:this.formatDownloadUrl(n.download_url)}}async mkdir(e,t){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let i=Vt(t),n=Wn(i),s=Fr(i);await this.acquireLock(async()=>{let o=await this.client.getContents(n,this.addition.ref);if(!o.entries&&o.type!=="dir")throw new Error(`${n} is not a folder`);let a=await this.client.newTree("",[{path:".gitkeep",mode:"100644",type:"blob",content:""}]),c=[{path:s,mode:"040000",type:"tree",sha:a}];o.entries?.length===1&&o.entries[0].name===".gitkeep"&&c.push({path:".gitkeep",mode:"100644",type:"blob",sha:null});let l=await this.client.newTree(o.sha,c),d=await this.client.renewParentTrees(n,o.sha,l,"/",this.addition.ref),u=Ec(this.addition.mkdir_commit_message,{UserName:"OpenList",ObjName:s,ObjPath:i,ParentName:Fr(n),ParentPath:n},"mkdir");await this.commitAndPush(u,d)})}async put(e,t,i){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let n=Vt(t),s=Wn(n),o=Fr(n);await this.acquireLock(async()=>{let a=await this.client.putBlob(i),c=await this.client.getContents(s,this.addition.ref);if(!c.entries&&c.type!=="dir")throw new Error(`${s} is not a folder`);let l=[{path:o,mode:"100644",type:"blob",sha:a}];c.entries?.length===1&&c.entries[0].name===".gitkeep"&&l.push({path:".gitkeep",mode:"100644",type:"blob",sha:null});let d=await this.client.newTree(c.sha,l),u=await this.client.renewParentTrees(s,c.sha,d,"/",this.addition.ref),f=Ec(this.addition.put_commit_message,{UserName:"OpenList",ObjName:o,ObjPath:n,ParentName:Fr(s),ParentPath:s},"upload");await this.commitAndPush(f,u)})}async rename(e,t,i){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let n=Vt(t),s=Wn(n),o=Fr(n);await this.acquireLock(async()=>{let{tree:a,dirSha:c}=await this.client.getTreeDirectly(s,this.addition.ref),l=a.tree.find(p=>p.path===o);if(!l)throw new Error(`Object not found: ${n}`);if(l.type==="commit")throw new Error("cannot rename a submodule");let d={path:o,mode:l.mode,type:l.type,sha:null},u={path:i,mode:l.mode,type:l.type,sha:l.sha},f=await this.client.newTree(c,[d,u]),h=await this.client.renewParentTrees(s,c,f,"/",this.addition.ref),g=Ec(this.addition.rename_commit_message,{UserName:"OpenList",ObjName:o,ObjPath:n,ParentName:Fr(s),ParentPath:s,TargetName:i,TargetPath:Gl(s,i)},"rename");await this.commitAndPush(g,h)})}async remove(e,t,i){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let n=Vt(t),s=Wn(n),o=Fr(n);await this.acquireLock(async()=>{let{tree:a,dirSha:c}=await this.client.getTreeDirectly(s,this.addition.ref),l=a.tree.find(g=>g.path===o);if(!l)throw new Error(`Object not found: ${n}`);if(l.type==="commit")throw new Error("cannot remove a submodule");let d=[{path:o,mode:l.mode,type:l.type,sha:null}];a.tree.length===1&&d.push({path:".gitkeep",mode:"100644",type:"blob",content:""});let u=await this.client.newTree(c,d),f=await this.client.renewParentTrees(s,c,u,"/",this.addition.ref),h=Ec(this.addition.delete_commit_message,{UserName:"OpenList",ObjName:o,ObjPath:n,ParentName:Fr(s),ParentPath:s},"remove");await this.commitAndPush(h,f)})}async move(e,t,i,n,s){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let o=Vt(n),a=Vt(t);if(a.startsWith(o))throw new Error("cannot move parent dir to child");await this.acquireLock(async()=>{let c="",l=Wn(o),d=Fr(o);if(a.startsWith(l)){let{dstOldSha:f,dstNewSha:h,ancestorOldSha:g,srcParentTree:p}=await this.copyWithoutRenewTree(o,a),m=a.slice(l.length).replace(/^\//,"").split("/")[0],w=Gl(l,m),B=await this.client.renewParentTrees(a,f,h,w,this.addition.ref),C=p.tree.find(R=>R.path===d),x=p.tree.find(R=>R.path===m);if(!C||!x)throw new Error("Object not found during move");let Q=await this.client.newTree(g,[{path:C.path,mode:C.mode,type:C.type,sha:null},{path:x.path,mode:x.mode,type:x.type,sha:B}]);c=await this.client.renewParentTrees(l,g,Q,"/",this.addition.ref)}else if(o.startsWith(a)){let{tree:f,dirSha:h}=await this.client.getTreeDirectly(l,this.addition.ref),g=f.tree.find(T=>T.path===d);if(!g)throw new Error("Object not found");if(g.type==="commit")throw new Error("cannot move a submodule");let p=[{path:g.path,mode:g.mode,type:g.type,sha:null}];f.tree.length===1&&p.push({path:".gitkeep",mode:"100644",type:"blob",content:""});let I=await this.client.newTree(h,p),w=o.slice(a.length).replace(/^\//,"").split("/")[0];if(!w)throw new Error("cannot move in place");let B=Gl(a,w),C=await this.client.renewParentTrees(l,h,I,B,this.addition.ref),{tree:x,dirSha:Q}=await this.client.getTreeDirectly(a,this.addition.ref),R=x.tree.find(T=>T.path===w);if(!R)throw new Error("Object not found");let U=await this.client.newTree(Q,[{path:R.path,mode:R.mode,type:R.type,sha:C},{path:g.path,mode:g.mode,type:g.type,sha:g.sha}]);c=await this.client.renewParentTrees(a,Q,U,"/",this.addition.ref)}else{let{dstOldSha:f,dstNewSha:h,srcParentOldSha:g,srcParentTree:p}=await this.copyWithoutRenewTree(o,a),I=p.tree.find(v=>v.path===d);if(!I)throw new Error("Object not found");let m=[{path:I.path,mode:I.mode,type:I.type,sha:null}];p.tree.length===1&&m.push({path:".gitkeep",mode:"100644",type:"blob",content:""});let w=await this.client.newTree(g,m),{ancestor:B,aChildName:C,bChildName:x}=J8(o,a),Q=await this.client.renewParentTrees(a,f,h,Gl(B,x),this.addition.ref),R=await this.client.renewParentTrees(l,g,w,Gl(B,C),this.addition.ref),{tree:U,dirSha:T}=await this.client.getTreeDirectly(B,this.addition.ref),D=U.tree.find(v=>v.path===C),b=U.tree.find(v=>v.path===x);if(!D||!b)throw new Error("Ancestor child tree not found");let _=await this.client.newTree(T,[{path:D.path,mode:D.mode,type:D.type,sha:R},{path:b.path,mode:b.mode,type:b.type,sha:Q}]);c=await this.client.renewParentTrees(B,T,_,"/",this.addition.ref)}let u=Ec(this.addition.move_commit_message,{UserName:"OpenList",ObjName:d,ObjPath:o,ParentName:Fr(l),ParentPath:l,TargetName:Fr(a),TargetPath:a},"move");await this.commitAndPush(u,c)})}async copy(e,t,i,n,s){if(!this.isOnBranch)throw new Error("cannot write to non-branch reference");let o=Vt(n),a=Vt(t);if(a.startsWith(o))throw new Error("cannot copy parent dir to child");await this.acquireLock(async()=>{let{dstOldSha:c,dstNewSha:l}=await this.copyWithoutRenewTree(o,a),d=await this.client.renewParentTrees(a,c,l,"/",this.addition.ref),u=Ec(this.addition.copy_commit_message,{UserName:"OpenList",ObjName:Fr(o),ObjPath:o,ParentName:Fr(Wn(o)),ParentPath:Wn(o),TargetName:Fr(a),TargetPath:a},"copy");await this.commitAndPush(u,d)})}async copyWithoutRenewTree(e,t){let i=await this.client.getContents(t,this.addition.ref);if(!i.entries&&i.type!=="dir")throw new Error(`${t} is not a folder`);let n=Wn(e),s=Fr(e),{tree:o,dirSha:a}=await this.client.getTreeDirectly(n,this.addition.ref),c=o.tree.find(u=>u.path===s);if(!c)throw new Error(`Object not found: ${e}`);if(c.type==="commit")throw new Error("cannot copy a submodule");let l=[{path:c.path,mode:c.mode,type:c.type,sha:c.sha}];i.entries?.length===1&&i.entries[0].name===".gitkeep"&&l.push({path:".gitkeep",mode:"100644",type:"blob",sha:null});let d=await this.client.newTree(i.sha,l);return{dstOldSha:i.sha,dstNewSha:d,srcParentOldSha:a,srcParentTree:o,ancestorOldSha:a}}}});function Bc(r){return Xi.default.MD5(r).toString(Xi.default.enc.Hex)}function V8(r,e){let t=e.match(/:\/\/[^/]+((\/[^/\s?#]+)*)/),i=t?t[1]:e;return`${r}:${i}`}function Y8(r,e){let t=`${r}${e}${e4}${dj}`,i=Xi.default.SHA1(t).toString(Xi.default.enc.Hex),n=Xi.default.MD5(i).toString(Xi.default.enc.Hex);return`div101.${r}${n}`}function t4(r){let e=r.length,t=262144;for(;e/t>512&&t<2097152;)t=t<<1;let i=[];for(let s=0;s{"use strict";Xi=xr(Oo(),1),W8="https://api-pan.xunlei.com/drive/v1",Ls=`${W8}/files`,Ige=`${W8}/tasks`,X8="https://xluser-ssl.xunlei.com",qp=`${X8}/v1`,aE="drive#folder",Z8="drive#file",cE="UPLOAD_TYPE_RESUMABLE",lj="access_end_point_token",e4="40",dj="34a062aaa22f906fca4fefe9fb3a3021";cf=class{options;tokenResp=null;coreLoginResp=null;captchaToken="";creditKey="";constructor(e){this.options=e,this.captchaToken=e.captchaToken||"",this.creditKey=e.creditKey||""}getCaptchaSign(){if(!this.options.algorithms||this.options.algorithms.length===0)return{timestamp:this.options.timestamp||"",sign:this.options.captchaSign||""};let e=Date.now().toString(),t=`${this.options.clientId}${this.options.clientVersion}${this.options.packageName}${this.options.deviceId}${e}`;for(let i of this.options.algorithms)t=Bc(t+i);return{timestamp:e,sign:`1.${t}`}}async refreshCaptchaToken(e,t){let i={action:e,captcha_token:this.captchaToken,client_id:this.options.clientId,device_id:this.options.deviceId,meta:t,redirect_uri:"xlaccsdk01://xunlei.com/callback?state=harbor"},n=await this.rawRequest(`${qp}/shield/captcha/init`,{method:"POST",body:i});if(n.error_code||n.error&&n.error!=="success")throw new Error(`Captcha error: ${n.error_code} ${n.error} ${n.error_description||""}`);if(n.url)throw new Error(`need verify: Click Here`);if(!n.captcha_token)throw new Error("empty captchaToken");this.captchaToken=n.captcha_token,this.options.onPersistCaptchaToken&&await this.options.onPersistCaptchaToken(n.captcha_token)}async refreshCaptchaTokenAtLogin(e,t){let{timestamp:i,sign:n}=this.getCaptchaSign(),s={client_version:this.options.clientVersion,package_name:this.options.packageName,user_id:t,timestamp:i,captcha_sign:n};await this.refreshCaptchaToken(e,s)}async refreshCaptchaTokenInLogin(e,t){let i={};/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(t)?i.email=t:t.length>=11&&t.length<=18?i.phone_number=t:i.username=t,await this.refreshCaptchaToken(e,i)}formatReviewData(e){let t=Y8(this.options.deviceId,this.options.packageName),i={creditkey:e.creditkey,reviewurl:`${e.reviewurl}&deviceid=${t}`,deviceid:t,devicesign:t},s=`

\u{1F512} \u672C\u6B21\u767B\u5F55\u9700\u8981\u9A8C\u8BC1
@@ -76,10 +78,10 @@ ${d}${u}`,h=await Bu(f,e.AccessKeySecret),g=await fetch(s,{method:"PUT",headers:
${JSON.stringify(i,null,2)}
-

`;return new Error(s)}async rawRequest(e,t={}){let i={"user-agent":this.options.userAgent,accept:"application/json;charset=UTF-8","x-device-id":this.options.deviceId,"x-client-id":this.options.clientId,"x-client-version":this.options.clientVersion,...t.headers||{}},n;t.body!==void 0&&(typeof t.body=="string"?n=t.body:(n=JSON.stringify(t.body),i["content-type"]||(i["content-type"]="application/json;charset=UTF-8")));let s=await fetch(e,{method:t.method||"GET",headers:i,body:n}),o=await s.text(),a={};try{a=JSON.parse(o)}catch{if(!s.ok)throw new Error(`${s.status} ${s.statusText}: ${o}`);return o}if(a.error==="review_panel")throw this.formatReviewData(a);return a}async authRequest(e,t={}){if(!this.tokenResp?.access_token)throw new Error("empty token");let i={Authorization:`${this.tokenResp.token_type} ${this.tokenResp.access_token}`,"X-Captcha-Token":this.captchaToken,...t.headers||{}},n=await this.rawRequest(e,{...t,headers:i}),s=n?.error_code||0;if(s===4122||s===4121||s===10||s===16){if(this.tokenResp?.refresh_token){let o=await this.refreshToken(this.tokenResp.refresh_token);return this.tokenResp=o,this.options.onPersistToken&&await this.options.onPersistToken(o),this.authRequest(e,t)}throw new Error(`Token expired error ${s}`)}else if(s===9){let o=k_(t.method||"GET",e);return await this.refreshCaptchaTokenAtLogin(o,this.tokenResp.user_id||""),this.authRequest(e,t)}else if(s!==0||n.error&&n.error!=="success")throw new Error(`ErrorCode: ${n.error_code||0}, Error: ${n.error||""}, ErrorDescription: ${n.error_description||""}`);return n}async coreLogin(e,t){let i=`${Q_}/xluser.core.login/v3/login`,n={protocolVersion:"301",sequenceNo:"1000012",platformVersion:"10",isCompressed:"0",appid:F_,clientVersion:this.options.clientVersion,peerID:"00000000000000000000000000000000",appName:"ANDROID-com.xunlei.downloadprovider",sdkVersion:"512000",devicesign:S_(this.options.deviceId,this.options.packageName),netWorkType:"WIFI",providerName:"NONE",deviceModel:"M2004J7AC",deviceName:"Xiaomi_M2004j7ac",OSVersion:"12",creditkey:this.creditKey,hl:"zh-CN",userName:e,passWord:t,verifyKey:"",verifyCode:"",isMd5Pwd:"0"},s=await this.rawRequest(i,{method:"POST",body:n,headers:{"user-agent":"android-ok-http-client/xl-acc-sdk/version-5.0.12.512000"}});return this.coreLoginResp=s,s}async login(e,t){let n=(await this.coreLogin(e,t)).sessionID,s=`${mp}/auth/signin/token`;await this.refreshCaptchaTokenInLogin(k_("POST",s),e);let o=await this.rawRequest(s,{method:"POST",body:{client_id:this.options.clientId,client_secret:this.options.clientSecret,provider:az,signin_token:n}});return this.tokenResp=o,this.creditKey="",this.options.onPersistToken&&await this.options.onPersistToken(o),o}async refreshToken(e){let t=`${mp}/auth/token`,i=await this.rawRequest(t,{method:"POST",body:{grant_type:"refresh_token",refresh_token:e,client_id:this.options.clientId,client_secret:this.options.clientSecret}});return this.tokenResp=i,this.options.onPersistToken&&await this.options.onPersistToken(i),i}async isLogin(){if(!this.tokenResp?.access_token)return!1;try{return await this.authRequest(`${mp}/user/me`,{method:"GET"}),!0}catch{return!1}}}});function U_(r,e,t){let i=r.kind===FC,n=r.web_content_link||"";if(t&&r.medias&&r.medias.length>0){for(let s of r.medias)if(s.link?.url){n=s.link.url;break}}return{name:r.name,size:parseInt(r.size||"0",10),is_dir:i,modified:r.modified_time||r.created_time||new Date().toISOString(),sign:"",type:X(r.name,i),thumb:r.thumbnail_link||r.icon_link||"",raw_url:n,raw_url_headers:{"User-Agent":e}}}function R_(r){if(r?.device_id&&r.device_id.trim().length===32)return r.device_id.trim();let e=`${r?.username||""}${r?.password||""}`;return e.trim()?Ac(e):Ac(Math.random().toString(36)+Date.now().toString(36))}var $u,yp,N_=j(()=>{"use strict";Be();He();T_();$u=class{client;addition;identity="";onPersistCallback;constructor(e,t){this.addition=e,this.onPersistCallback=t;let i=R_(e);e.device_id=i,this.client=new ju({deviceId:i,clientId:e.client_id||"",clientSecret:e.client_secret||"",clientVersion:"8.31.0.9726",packageName:"com.xunlei.downloadprovider",userAgent:"ANDROID-com.xunlei.downloadprovider/8.31.0.9726 netWorkType/5G appid/40 deviceName/Xiaomi_M2004j7ac deviceModel/M2004J7AC OSVersion/12 protocolVersion/301 platformVersion/10 sdkVersion/512000 Oauth2Client/0.9 (Linux 4_14_186-perf-gddfs8vbb238b) (JAVA 0)",downloadUserAgent:"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)",algorithms:["9uJNVj/wLmdwKrJaVj/omlQ","Oz64Lp0GigmChHMf/6TNfxx7O9PyopcczMsnf","Eb+L7Ce+Ej48u","jKY0","ASr0zCl6v8W4aidjPK5KHd1Lq3t+vBFf41dqv5+fnOd","wQlozdg6r1qxh0eRmt3QgNXOvSZO6q/GXK","gmirk+ciAvIgA/cxUUCema47jr/YToixTT+Q6O","5IiCoM9B1/788ntB","P07JH0h6qoM6TSUAK2aL9T5s2QBVeY9JWvalf","+oK0AN"],space:e.space||"",captchaToken:e.captcha_token||"",creditKey:e.credit_key||"",onPersistToken:async n=>{this.onPersistCallback&&await this.onPersistCallback({refresh_token:n.refresh_token,captcha_token:this.client.captchaToken,device_id:i})},onPersistCaptchaToken:async n=>{this.onPersistCallback&&await this.onPersistCallback({captcha_token:n})}})}get downloadUserAgent(){return this.addition.download_user_agent||"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)"}get useVideoUrl(){return!!this.addition.use_video_url}async init(){let e=this.addition.username||"",t=this.addition.password||"",i=Ac(`${e}${t}`);(this.identity!==i||!await this.client.isLogin())&&(this.identity=i,await this.client.login(e,t))}resolveFolderId(e){if(!e||e==="/"||e==="0")return this.addition.root_folder_id||"";let t=e.split("/").filter(Boolean);return t[t.length-1]||this.addition.root_folder_id||""}async list(e,t){let i=this.resolveFolderId(t),n=[],s="";for(;;){let o=new URL(Us);o.searchParams.set("space",this.addition.space||""),o.searchParams.set("__type","drive"),o.searchParams.set("refresh","true"),o.searchParams.set("__sync","true"),o.searchParams.set("parent_id",i),o.searchParams.set("page_token",s),o.searchParams.set("with_audit","true"),o.searchParams.set("limit","100"),o.searchParams.set("filters",JSON.stringify({phase:{eq:"PHASE_TYPE_COMPLETE"},trashed:{eq:!1}}));let a=await this.client.authRequest(o.toString(),{method:"GET"});if(a.files&&a.files.length>0)for(let c of a.files)n.push(U_(c,this.downloadUserAgent,this.useVideoUrl));if(!a.next_page_token)break;s=a.next_page_token}return de(n,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.resolveFolderId(t),n=new URL(`${Us}/${i}`);n.searchParams.set("space",this.addition.space||"");let s=await this.client.authRequest(n.toString(),{method:"GET"});return U_(s,this.downloadUserAgent,this.useVideoUrl)}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=this.resolveFolderId(s);await this.client.authRequest(Us,{method:"POST",body:{kind:FC,name:n,parent_id:o,space:this.addition.space||""}})}async rename(e,t,i){let n=this.resolveFolderId(t);await this.client.authRequest(`${Us}/${n}`,{method:"PATCH",body:{name:i,space:this.addition.space||""}})}async remove(e,t,i){let n=this.resolveFolderId(t),s=new URL(`${Us}/${n}/trash`);s.searchParams.set("space",this.addition.space||""),await this.client.authRequest(s.toString(),{method:"PATCH",body:{}})}async move(e,t,i,n,s){let o=this.resolveFolderId(n),a=this.resolveFolderId(t);await this.client.authRequest(`${Us}:batchMove`,{method:"POST",body:{to:{parent_id:a},ids:[o],space:this.addition.space||""}})}async copy(e,t,i,n,s){let o=this.resolveFolderId(n),a=this.resolveFolderId(t);await this.client.authRequest(`${Us}:batchCopy`,{method:"POST",body:{to:{parent_id:a},ids:[o],space:this.addition.space||""}})}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/"),a=this.resolveFolderId(o),c=P_(i),l=await this.client.authRequest(Us,{method:"POST",body:{kind:__,parent_id:a,name:s,size:i.length.toString(),hash:c,upload_type:PC,space:this.addition.space||""}});if(l.upload_type===PC&&l.resumable?.params){let d=l.resumable.params,u=d.endpoint;u.startsWith(d.bucket+".")&&(u=u.slice(d.bucket.length+1)),!u.startsWith("http://")&&!u.startsWith("https://")&&(u=`https://${u}`);let f=`${u.replace(/\/$/,"")}/${d.bucket}/${d.key}`,h={"x-amz-security-token":d.security_token},g=await fetch(f,{method:"PUT",headers:h,body:i});if(!g.ok)throw new Error(`S3 Upload failed: ${g.status} ${g.statusText}`)}}},yp=class extends $u{constructor(e,t){super(e,t);let i=R_(e);e.device_id=i;let n=e.sign_type==="captcha_sign"?void 0:(e.algorithms||"").split(",").map(s=>s.trim()).filter(Boolean);this.client=new ju({deviceId:i,clientId:e.client_id||"",clientSecret:e.client_secret||"",clientVersion:e.client_version||"8.31.0.9726",packageName:e.package_name||"com.xunlei.downloadprovider",userAgent:e.user_agent||"ANDROID-com.xunlei.downloadprovider/8.31.0.9726 netWorkType/5G appid/40 deviceName/Xiaomi_M2004j7ac deviceModel/M2004J7AC OSVersion/12 protocolVersion/301 platformVersion/10 sdkVersion/512000 Oauth2Client/0.9 (Linux 4_14_186-perf-gddfs8vbb238b) (JAVA 0)",downloadUserAgent:e.download_user_agent||"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)",algorithms:n&&n.length>0?n:void 0,timestamp:e.timestamp,captchaSign:e.captcha_sign,useVideoUrl:e.use_video_url,space:e.space||"",captchaToken:e.captcha_token||"",creditKey:e.credit_key||"",onPersistToken:async s=>{this.onPersistCallback&&await this.onPersistCallback({refresh_token:s.refresh_token,captcha_token:this.client.captchaToken,device_id:i})},onPersistCaptchaToken:async s=>{this.onPersistCallback&&await this.onPersistCallback({captcha_token:s})}})}async init(){let e=this.addition,t="";e.login_type==="refresh_token"?t=Ac(e.refresh_token||""):t=Ac(`${e.username||""}${e.password||""}`),(this.identity!==t||!await this.client.isLogin())&&(this.identity=t,e.login_type==="refresh_token"&&e.refresh_token?await this.client.refreshToken(e.refresh_token):e.username&&e.password&&await this.client.login(e.username,e.password))}}});function q_(r){if(!r)return new Date().toISOString();let e=r.trim(),t=new Date(e);if(!isNaN(t.getTime()))return t.toISOString();let i=Date.now(),n=864e5,s=e.match(lz);if(s){let o=parseFloat(s[1])||0,a=s[2];if(a.includes("\u79D2\u524D"))return new Date(i-o*1e3).toISOString();if(a.includes("\u5206")||a.includes("\u5206\u949F\u524D"))return new Date(i-o*6e4).toISOString();if(a.includes("\u5C0F\u65F6\u524D")||a.includes("\u5C0F\u65F6"))return new Date(i-o*36e5).toISOString();if(a.includes("\u5929\u524D")||a.includes("\u5929"))return new Date(i-o*n).toISOString();if(a.includes("\u6628\u5929"))return new Date(i-n).toISOString();if(a.includes("\u524D\u5929"))return new Date(i-n*2).toISOString()}return new Date().toISOString()}function O_(r){if(!r)return 0;let e=r.trim().match(dz);if(!e)return 0;let t=parseFloat(e[1]);switch(e[2].toUpperCase()){case"B":return Math.floor(t);case"K":return Math.floor(t*1024);case"M":return Math.floor(t*1048576);case"G":return Math.floor(t*1073741824);default:return 0}}function Vu(r){return r.replace(/|[^:]\/\/.*|\/\*[\s\S]*?\*\//g,e=>e.slice(1,3)==="//"?e.slice(0,1):` -`)}function M_(r){let e="",t=!1,i=!1;for(let n=0;n{for(let n=i.length-1;n>=0;n--){let s=(i[n][1]||"").trim().replace(/^['"]|['"]$/g,"");if(s)return s}return""};if(r!=="sasign"){let i=Array.from(e.matchAll(new RegExp(`(?:var|let|const)\\s+${r}\\s*=\\s*['"]?([\\s\\S]*?)['"]?;`,"gi")));if(i.length){let o=t(i);if(o)return o}let n=Array.from(e.matchAll(new RegExp(`(?:^|[;,\\s])${r}\\s*=\\s*['"]?([\\s\\S]*?)['"]?;`,"gim")));if(n.length){let o=t(n);if(o)return o}let s=Array.from(e.matchAll(new RegExp(`['"]?${r}['"]?\\s*:\\s*['"]?([\\s\\S]*?)['"]?`,"gi")));if(s.length){let o=t(s);if(o)return o}}else{let i=Array.from(e.matchAll(new RegExp(`(?:var|let|const)?\\s*${r}\\s*=\\s*['"]?([\\s\\S]*?)['"]?;`,"gi")));if(i.length===3)return i[1][1].trim().replace(/^['"]|['"]$/g,"");if(i.length>0)return t(i)}return""}function gz(r,e){let t={},i=/['"]?([a-zA-Z0-9_$]+)['"]?\s*:\s*(['"]?([^'",}\s]+)['"]?)/g,n=r.matchAll(i);for(let s of n){let o=s[1],a=s[2],c=s[3];if(!c)t[o]="";else if(a.includes("'")||a.includes('"')||/^\d+$/.test(a))t[o]=c;else{let l=hz(c,e);t[o]=l!==""?l:c}}return t}function pz(r){let e={},t=r.split("&");for(let i of t){let[n,s]=i.split("=");n&&(e[decodeURIComponent(n)]=decodeURIComponent(s||""))}return e}function Ul(r,e){let t=e||r,i=Array.from(r.matchAll(/data\s*:\s*({[\s\S]*?})/g));if(i.length>0){let s=i[0][1];for(let a of i)a[1].length>s.length&&(s=a[1]);let o=gz(s,t);if(Object.keys(o).length>0)return o}let n=r.match(/data\s*:\s*['"]([^'"]+)['"]/);if(n&&n[1].includes("="))return pz(n[1]);throw new Error("[Lanzou] \u672A\u80FD\u627E\u5230\u8BF7\u6C42\u53C2\u6570 data \u5BF9\u8C61")}function L_(r,e){let t=new RegExp(`function\\s+${e}\\s*\\([^)]*\\)\\s*\\{`,"i"),i=r.search(t);if(i===-1)throw new Error(`[Lanzou] \u672A\u627E\u5230\u51FD\u6570 ${e}`);let n=0,s=-1;for(let o=i;o{"use strict";lz=/([0-9.]*)\s*([\u4e00-\u9fa5]+)/,dz=/([0-9.]+)\s*([bkm]+)/i,uz=/arg1='([0-9A-Z]+)'/i});function xp(r,e){try{let t=new URL(r);return t.host=e,t.toString()}catch{return r}}function Cp(r){try{return new URL(r).host}catch{return""}}var wp,UC,Ep,H_=j(()=>{"use strict";TC();wp=["pan.lanzoui.com","lanzouw.com","lanzoux.com","lanzouy.com","lanzou.com"],UC="[Lanzou] Cookie \u5DF2\u8FC7\u671F\u6216\u5931\u6548\uFF0C\u8BF7\u5728\u7BA1\u7406\u540E\u53F0\u91CD\u65B0\u586B\u5199 Cookie\uFF08\u6709\u6548\u671F\u7EA6 15 \u5929\uFF09",Ep=class{addition;cookie="";uid="";vei="";onCookieUpdate;acwMap=new Map;workingShareHost="";constructor(e,t){this.addition=e,this.cookie=(e.cookie||"").trim(),this.onCookieUpdate=t}getBaseUrl(){return(this.addition.baseUrl||this.addition.base_url||"https://pc.woozooo.com").replace(/\/$/,"")}getShareUrl(){return(this.addition.shareUrl||this.addition.share_url||"https://pan.lanzoui.com").replace(/\/$/,"")}shareHost(){try{return new URL(this.getShareUrl()).host}catch{return"pan.lanzoui.com"}}getUserAgent(){return this.addition.user_agent||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}getCookie(){return this.cookie}updateCookie(e,t){if(!e)return;let i=e.match(/(?:^|,\s*)acw_sc__v2=([^;,\s]+)/i);i&&i[1]&&this.acwMap.set(t||this.shareHost(),i[1]);let n=this.cookie?this.cookie.split(";").map(a=>a.trim()):[],s=e.split(/,(?=[a-zA-Z0-9_\-]+=[^;]+)/);for(let a of s){let c=a.split(";")[0].trim(),l=c.indexOf("=");if(l>0){let d=c.slice(0,l).trim(),u=c.slice(l+1).trim(),f=n.findIndex(h=>h.startsWith(`${d}=`));f!==-1?n[f]=`${d}=${u}`:n.push(`${d}=${u}`)}}let o=n.filter(Boolean).join("; ");o!==this.cookie&&(this.cookie=o,this.onCookieUpdate?.(this.cookie))}async init(){let e=this.addition.type||"cookie";if(e==="account"?(await this.login(),await this.initVeiAndUid()):e==="cookie"&&this.cookie&&await this.initVeiAndUid(),!this.acwMap.has(this.shareHost()))try{await this.request(`${this.getShareUrl()}/`,"GET")}catch{}}async probeShareDomain(e){let t=(e||"").replace(/^\//,"");if(!t)return this.getShareUrl();try{let i=await this.request(`${this.getShareUrl()}/${t}`,"GET");return this.extractRealShareDomain(i)||this.getShareUrl()}catch{return this.getShareUrl()}}extractRealShareDomain(e){let t=[],i=e.match(/]*?src=["'](https?:\/\/[^"'/]+)/i);i&&t.push(i[1]);let n=e.match(/["'](https?:\/\/[^"']*?\/fn\?[^"']*)["']/i);n&&t.push(n[1]);let s=e.match(/["']?(?:dom|url)\s*[:=]\s*["']?(https?:\/\/[^"'\s]+)/i);s&&t.push(s[1]);for(let o of t)try{let a=new URL(o);return`${a.protocol}//${a.host}`}catch{}return""}async login(){if(!this.addition.account||!this.addition.password)throw new Error("[Lanzou] \u8D26\u53F7\u6A21\u5F0F\u4E0B\u5FC5\u987B\u63D0\u4F9B\u8D26\u53F7\u4E0E\u5BC6\u7801");for(let e=0;e<3;e++){let t={"User-Agent":this.getUserAgent(),Referer:"https://pc.woozooo.com","Content-Type":"application/x-www-form-urlencoded"};this.acwMap.has("up.woozooo.com")&&(t.Cookie=`acw_sc__v2=${this.acwMap.get("up.woozooo.com")}`);let i=await fetch("https://up.woozooo.com/mlogin.php",{method:"POST",headers:t,body:new URLSearchParams({task:"3",uid:this.addition.account,pwd:this.addition.password,setSessionId:"",setSig:"",setScene:"",setTocen:"",formhash:""})});this.updateCookie(i.headers.get("set-cookie"),"up.woozooo.com");let n=await i.text();if(n.includes("acw_sc__v2")){this.acwMap.set("up.woozooo.com",Ip(n));continue}let s;try{s=JSON.parse(n)}catch{throw new Error(`[Lanzou] \u767B\u5F55\u54CD\u5E94\u5F02\u5E38: ${n.slice(0,200)}`)}if(s.zt!==1)throw new Error(`[Lanzou] \u767B\u5F55\u5931\u8D25: ${s.info||n}`);return}throw new Error("[Lanzou] \u767B\u5F55\u591A\u6B21\u89E6\u53D1 WAF \u6821\u9A8C\u5931\u8D25")}async initVeiAndUid(){let e=await this.request(`${this.getBaseUrl()}/mydisk.php?item=files&action=index`,"GET"),t=e.match(/uid=([^'"&;]+)/);if(!t)throw new Error(UC);this.uid=t[1];let i=Vu(e);try{let n=Ul(i);this.vei=n.vei||""}catch{let n=e.match(/['"]?vei['"]?\s*:\s*['"]?([^'",\s]+)['"]?/);n&&(this.vei=n[1])}}async request(e,t="GET",i,n){let s=e,o=Cp(e),a=o===this.shareHost()||wp.includes(o);a&&this.workingShareHost&&o!==this.workingShareHost&&(s=xp(e,this.workingShareHost));let c=a,l=c?wp.filter(u=>!e.includes(u)):[],d=u=>{let f=Cp(u),h=f===this.shareHost()||wp.includes(f),g;return h?n&&wp.includes(Cp(n))||n&&Cp(n)===this.shareHost()?g=xp(n,f):g=`${new URL(u).origin}/`:g=n||this.getBaseUrl(),this.requestOnce(u,t,i,g,f)};try{return await d(s)}catch(u){if(!(c&&(u?.status===403||u?.status===405||/403|405/.test(u?.message||""))))throw u;for(let h of l){let g=xp(s,h);try{let p=await d(g);return this.workingShareHost=h,p}catch(p){if(!(p?.status===403||p?.status===405||/403|405/.test(p?.message||"")))throw p}}throw u}}async requestOnce(e,t,i,n,s){for(let o=0;o<3;o++){let a={Referer:n,"User-Agent":this.getUserAgent(),"Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8","X-Requested-With":"XMLHttpRequest","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin",Accept:"*/*"},c=(()=>{try{return new URL(n).host}catch{return""}})();c===s&&(a.Origin=n.slice(0,n.indexOf(c)+c.length));let l=this.cookie;e.includes("/file/")&&(l=(l?l+"; ":"")+"down_ip=1");let d=this.acwMap.get(s);d&&(l=(l?l+"; ":"")+`acw_sc__v2=${d}`),l&&(a.Cookie=l);let u;i&&t==="POST"&&(a["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",u=new URLSearchParams(i).toString());let f=await fetch(e,{method:t,headers:a,body:u});if(this.updateCookie(f.headers.get("set-cookie"),s),f.status===403||f.status===405){let g=new Error(`[Lanzou] ${e} \u8FD4\u56DE HTTP ${f.status}`);throw g.status=f.status,g}if(f.status===429||f.status>=500||f.status===408){if(o<2){await new Promise(p=>setTimeout(p,300*(o+1)));continue}let g=new Error(`[Lanzou] ${e} \u8FD4\u56DE HTTP ${f.status}\uFF08\u591A\u6B21\u91CD\u8BD5\u4ECD\u5931\u8D25\uFF09`);throw g.status=f.status,g}let h=await f.text();if(h.includes("acw_sc__v2")){this.acwMap.set(s,Ip(h));continue}return h}throw new Error("[Lanzou] \u8BF7\u6C42\u89E6\u53D1 acw_sc__v2 \u6821\u9A8C\u8D85\u9650")}async doupload(e){let t=`${this.getBaseUrl()}/doupload.php?uid=${this.uid}&vei=${this.vei}`,i=await this.request(t,"POST",e),n;try{n=JSON.parse(i)}catch{throw new Error(`[Lanzou] \u975E JSON \u54CD\u5E94: ${i.slice(0,200)}`)}if(n.zt===9){if(this.addition.type==="account")return await this.login(),await this.initVeiAndUid(),this.doupload(e);throw new Error(UC)}if(n.zt!==1&&n.zt!==2&&n.zt!==4)throw new Error(n.inf||n.info||`[Lanzou] API \u9519\u8BEF (zt: ${n.zt})`);return n}async checkCookieValid(){if(this.addition.type==="url")return{valid:!0};try{return this.addition.type==="account"?{valid:!0}:(await this.getFiles("-1"),{valid:!0})}catch(e){let t=e?.message||String(e);return{valid:!1,error:/Cookie 已过期|未能获取到 uid|请检查 Cookie|zt=9/i.test(t)?UC:t}}}async getAllFiles(e){let t=await this.getFolders(e),i=await this.getFiles(e);return[...t,...i]}async getFolders(e){return((await this.doupload({task:"47",folder_id:e||"-1"})).text||[]).map(n=>({...n,name:n.name,fol_id:n.fol_id||n.id,is_folder:!0}))}async getFiles(e){let t=[];for(let i=1;;i++){let s=(await this.doupload({task:"5",folder_id:e||"-1",pg:String(i)})).text||[];if(s.length===0)break;t.push(...s.map(o=>({...o,name_all:o.name_all||o.name,id:o.id,size:o.size,time:o.time,is_folder:!1})))}return t}async getFileShareUrlById(e){return(await this.doupload({task:"22",file_id:e})).info||{}}async getFileOrFolderByShareUrl(e,t=""){let i=e.replace(/^\//,""),n=await this.request(`${this.getShareUrl()}/${i}`,"GET");if(n.includes("\u53D6\u6D88\u5206\u4EAB"))throw new Error("[Lanzou] \u8BE5\u6587\u4EF6\u5DF2\u53D6\u6D88\u5206\u4EAB");if(n.includes("\u6587\u4EF6\u4E0D\u5B58\u5728"))throw new Error("[Lanzou] \u6587\u4EF6\u4E0D\u5B58\u5728");return/class="fileinfo"|id="file"|文件描述/i.test(n)?[await this.getFilesByShareUrl(i,t,n)]:this.getFolderByShareUrl(t,n)}async getFolderByShareUrl(e,t){let i=Vu(t),n={};try{n=Ul(i)}catch{n={}}let s=[],o=Array.from(t.matchAll(/(?:folderlink|mbxfolder)[^>]*href=["']\/?([^"']+)["'][^>]*>(.+?)<\//gi));for(let a of o)s.push({id:a[1],name_all:a[2].trim(),is_folder:!0});n.pwd=e||this.addition.share_password||"";for(let a=1;;a++){n.pg=String(a);let c=await this.request(`${this.getShareUrl()}/filemoreajax.php`,"POST",n),l;try{l=JSON.parse(c)}catch{break}if(l.zt!==1||!Array.isArray(l.text)||l.text.length===0)break;let d=l.text;s.push(...d.map(u=>({id:u.id,name_all:u.name_all||u.name,size:u.size,time:u.time,is_folder:!1,pwd:n.pwd})))}return s}async getFilesByShareUrl(e,t="",i,n){let s=e.replace(/^\//,""),o=(n||await this.probeShareDomain(s)).replace(/\/+$/,""),a=`${o}/${s}`,c=i;c||(c=await this.request(a,"GET")),c=Vu(c),c=M_(c);let l={},d="",u="",f={id:s,is_folder:!1};if(c.includes("pwdload")||c.includes("passwddiv")){let C=L_(c,"down_p");l=Ul(C,c),l.p=t||this.addition.share_password||"";let b=C.match(/['"]?\/?ajax(?:file|m)\.php\?file=(\d+)['"]?/)||c.match(/['"]?\/?ajax(?:file|m)\.php\?file=(\d+)['"]?/)||C.match(/file\s*[:=]\s*['"]?(\d+)['"]?/)||c.match(/file\s*[:=]\s*['"]?(\d+)['"]?/)||C.match(/var\s+file_id\s*=\s*['"]?(\d+)['"]?/)||c.match(/var\s+file_id\s*=\s*['"]?(\d+)['"]?/),x=b?b[1]:"";if(!x)throw new Error("[Lanzou] \u672A\u627E\u5230\u6587\u4EF6 ID");let _=await this.request(`${o}/ajaxfile.php?file=${x}`,"POST",l,a),R;try{R=JSON.parse(_)}catch{throw new Error(`[Lanzou] ajaxfile.php \u54CD\u5E94\u683C\u5F0F\u9519\u8BEF: ${_}`)}if(R.zt!==1)throw new Error(R.info||R.text||`[Lanzou] \u5BC6\u7801\u9519\u8BEF\u6216\u63D0\u53D6\u94FE\u63A5\u5931\u8D25 (zt=${R.zt})`);f.name_all=R.inf||"download",d=`${R.dom}/file`,u=`${d}/${R.url}`}else{let C=c.match(/]*?src=["']([^"']+)["']/i)||c.match(/href=["'](\/fn\?[^"']+)["']/i)||c.match(/["'](\/fn\?[^"']+)["']/i);if(!C)throw new Error("[Lanzou] \u672A\u627E\u5230\u4E0B\u8F7D\u9875\u9762 iframe \u53C2\u6570");let b=C[1],x=`${o}${b.startsWith("/")?"":"/"}${b}`,_=await this.request(x,"GET",void 0,a),R=Vu(_);l=Ul(R,R);let U=R.match(/['"]?\/?ajax(?:file|m)\.php\?file=(\d+)['"]?/)||R.match(/file\s*[:=]\s*['"]?(\d+)['"]?/)||R.match(/file=(\d+)/)||R.match(/var\s+file_id\s*=\s*['"]?(\d+)['"]?/),T=U?U[1]:"";if(!T)throw new Error("[Lanzou] \u672A\u627E\u5230\u6587\u4EF6 ID");let D=await this.request(`${o}/ajaxfile.php?file=${T}`,"POST",l,x),B;try{B=JSON.parse(D)}catch{throw new Error(`[Lanzou] ajaxfile.php \u54CD\u5E94\u683C\u5F0F\u9519\u8BEF: ${D}`)}if(B.zt!==1)throw new Error(B.info||B.text||`[Lanzou] \u63D0\u53D6\u94FE\u63A5\u5931\u8D25 (zt=${B.zt})`);d=`${B.dom}/file`,u=`${d}/${B.url}`;let Q=c.match(/(.+?) - 蓝奏云<\/title>|id="filenajax">(.+?)<\/div>|var filename = ['"](.+?)['"];|<div style="font-size[^>]*>([^<>]+)<\/div>|<div class="filethetext"[^>]*>([^<>]+)<\/div>/i);if(Q){for(let v=1;v<Q.length;v++)if(Q[v]){f.name_all=Q[v].trim();break}}}let g=c.match(/大小\W*([0-9.]+\s*[bkm]+)/i);g&&(f.size=g[1]);let p=c.match(/\d+\s*[秒天分小][钟时]?前|[昨前]天|\d{4}-\d{2}-\d{2}/);p&&(f.time=p[0]);let I=u,y="",w=!1;for(let C=0;C<3;C++){let b={Referer:d,"User-Agent":this.getUserAgent(),"Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"},x="down_ip=1";y&&(x+=`; acw_sc__v2=${y}`),b.Cookie=x;let _;try{_=await fetch(u,{method:"GET",headers:b,redirect:"manual"})}catch{if(C<2){await new Promise(U=>setTimeout(U,400*(C+1)));continue}throw new Error("[Lanzou] \u76F4\u94FE\u63A2\u6D4B\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}if(_.status===301||_.status===302||_.status===303||_.status===307||_.status===308){let U=_.headers.get("location");if(U){I=new URL(U,u).toString(),w=!0;break}}if(_.status===200&&_.url&&_.url!==u){I=_.url,w=!0;break}if(_.status===429||_.status>=500){if(C<2){await new Promise(U=>setTimeout(U,400*(C+1)));continue}throw new Error(`[Lanzou] \u76F4\u94FE\u63A2\u6D4B\u8FD4\u56DE HTTP ${_.status}\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5`)}let R=await _.text();if(R.includes("acw_sc__v2")){y=Ip(R);continue}try{let U=Ul(R,R);U.el="2",await new Promise(B=>setTimeout(B,1500));let T=await this.request(`${d}/ajax.php`,"POST",U,d),D=JSON.parse(T);if(D.url){I=D.url.startsWith("http")?D.url:new URL(D.url,d).toString(),w=!0;break}}catch{if(C<2){await new Promise(U=>setTimeout(U,600*(C+1)));continue}}break}if(!w)throw new Error("[Lanzou] \u76F4\u94FE\u89E3\u6790\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");return f.url=I,f}async getFileRealInfo(e){try{let t=await fetch(e,{method:"HEAD",headers:{"User-Agent":this.getUserAgent()}}),i=t.headers.get("content-length"),n=t.headers.get("last-modified");return{size:i?parseInt(i,10):void 0,time:n?new Date(n).toISOString():void 0}}catch{return{}}}async mkdir(e,t){await this.doupload({task:"2",parent_id:e||"-1",folder_name:t,folder_description:""})}async rename(e,t){await this.doupload({task:"46",file_id:e,file_name:t,type:"2"})}async move(e,t){await this.doupload({task:"20",file_id:e,folder_id:t})}async remove(e,t){t?await this.doupload({task:"3",folder_id:e}):await this.doupload({task:"6",file_id:e})}}});function mz(r){let e={...r||{}};return e.type=e.type||"cookie",e.account=e.account||"",e.password=e.password||"",e.cookie=(e.cookie||"").trim(),e.root_folder_id=e.root_folder_id||(e.type==="url"?"":"-1"),e.share_password=e.share_password||"",e.baseUrl=e.baseUrl||"https://pc.woozooo.com",e.shareUrl=e.shareUrl||"https://pan.lanzoui.com",e.user_agent=e.user_agent||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",e.repair_file_info=!!e.repair_file_info,e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e}function RC(r,e){let t=!!r.is_folder||!!r.fol_id,i=r.name_all||r.name||"",n=e?.size!==void 0?e.size:O_(r.size||"0"),s=e?.time?e.time:q_(r.time||""),o=r.fol_id||r.id||"";return{name:i,size:n,is_dir:t,modified:s,sign:o,type:X(i,t),thumb:"",raw_url:r.url||""}}var Bp,K_=j(()=>{"use strict";Be();He();H_();TC();Bp=class{client;addition;pathIdCache=new Map;constructor(e,t){this.addition=mz(e),this.client=new Ep(this.addition,t)}async init(){await this.client.init()}async checkCookieValid(){return this.client.checkCookieValid()}isUrlMode(){return this.addition.type==="url"}getRootId(){return this.addition.root_folder_id||(this.isUrlMode()?"":"-1")}async resolveFolderId(e){let t=this.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=0,o=t,a="";for(let c=0;c<n.length;c++){let l="/"+n.slice(0,c+1).join("/"),d=this.pathIdCache.get(l);if(d!==void 0)o=d,s=c+1,a=l;else break}for(let c=s;c<n.length;c++){let l=n[c],d=(()=>{try{return decodeURIComponent(l)}catch{return l}})(),f=(this.isUrlMode()?await this.client.getFileOrFolderByShareUrl(o,this.addition.share_password):await this.client.getFolders(o)).find(h=>{if(!h.is_folder&&!h.fol_id)return!1;let g=h.name||h.name_all||"",p=h.fol_id||h.id||"";return g===l||g===d||p===l||p===d});if(!f)throw new Error(`[Lanzou] \u76EE\u5F55\u672A\u627E\u5230: ${l}`);o=f.fol_id||f.id||"",a="/"+n.slice(0,c+1).join("/"),this.pathIdCache.set(a,o)}return o}async resolveItem(e){let t="/"+String(e||"").split("/").filter(Boolean).join("/"),i=t.split("/").filter(Boolean);if(i.length===0)throw new Error("[Lanzou] \u8DEF\u5F84\u65E0\u6548");let n=i[i.length-1],s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o="/"+i.slice(0,i.length-1).join("/"),a=await this.resolveFolderId(o),l=(this.isUrlMode()?await this.client.getFileOrFolderByShareUrl(a,this.addition.share_password):await this.client.getAllFiles(a)).find(u=>{let f=u.name_all||u.name||"",h=u.fol_id||u.id||"";return f===n||f===s||h===n||h===s});if(!l)throw new Error(`[Lanzou] \u6587\u4EF6\u6216\u76EE\u5F55\u672A\u627E\u5230: ${n}`);let d=!!(l.is_folder||l.fol_id);return d&&this.pathIdCache.set(t,l.fol_id||l.id||""),{item:l,parentId:a,isDir:d}}async list(e,t){let i=await this.resolveFolderId(t),s=(this.isUrlMode()?await this.client.getFileOrFolderByShareUrl(i,this.addition.share_password):await this.client.getAllFiles(i)).map(o=>RC(o));return de(s,this.addition.order_by==="name"?"file_name":this.addition.order_by==="size"?"size":"updated_at",this.addition.order_direction)}async get(e,t){let i=String(t||"").split("/").filter(Boolean);if(i.length===0||i[i.length-1]===this.getRootId()){let l=this.getRootId();return{name:l||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:l,type:1,raw_url:""}}let{item:n,isDir:s}=await this.resolveItem(t);if(s)return RC(n);let o=n.url;if(!o)try{if(this.isUrlMode()){let l=await this.client.getFilesByShareUrl(n.id||"",n.pwd||this.addition.share_password||"",void 0,await this.client.probeShareDomain(n.id||""));o=l.url,n.name_all=l.name_all||n.name_all,n.size=l.size||n.size}else{let l=await this.client.getFileShareUrlById(n.id||""),d=l?.f_id||l?.id;if(d){let u=await this.client.getFilesByShareUrl(d,l.pwd||"",void 0);o=u.url,u.name_all&&(n.name_all=u.name_all),u.size&&(n.size=u.size)}}}catch(l){throw console.error(`[Lanzou] \u89E3\u6790\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25 (${n.name_all||n.name}):`,l.message),new Error(`[Lanzou] \u83B7\u53D6\u4E0B\u8F7D\u76F4\u94FE\u5931\u8D25 (${n.name_all||n.name}): ${l.message}`)}if(!o)throw new Error(`[Lanzou] \u672A\u80FD\u83B7\u53D6\u5230\u4E0B\u8F7D\u76F4\u94FE (${n.name_all||n.name||t})`);let a;if(this.addition.repair_file_info&&o)try{a=await this.client.getFileRealInfo(o)}catch{}let c=RC(n,a);return c.raw_url=o||"",c.raw_url_headers={"User-Agent":this.client.getUserAgent()},c}async mkdir(e,t){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u65B0\u5EFA\u6587\u4EF6\u5939");let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u91CD\u547D\u540D");let{item:n,isDir:s}=await this.resolveItem(t);if(s)throw new Error("[Lanzou] \u84DD\u594F\u4E91\u4E0D\u652F\u6301\u91CD\u547D\u540D\u6587\u4EF6\u5939");await this.client.rename(n.id||"",i)}async remove(e,t,i){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u5220\u9664");let{item:n,isDir:s}=await this.resolveItem(t);await this.client.remove(n.fol_id||n.id||"",s)}async move(e,t,i,n,s){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u79FB\u52A8");let{item:o,isDir:a}=await this.resolveItem(n);if(a)throw new Error("[Lanzou] \u84DD\u594F\u4E91\u4E0D\u652F\u6301\u79FB\u52A8\u6587\u4EF6\u5939");let c=String(t).split("/").filter(Boolean),l=await this.resolveFolderId("/"+c.join("/"));await this.client.move(o.id||"",l)}async copy(){throw new Error("[Lanzou] \u84DD\u594F\u4E91\u4E0D\u652F\u6301\u76F4\u63A5\u590D\u5236\u6587\u4EF6")}async put(){throw new Error("[Lanzou] Cloudflare Worker \u73AF\u5883\u6682\u4E0D\u652F\u6301\u76F4\u63A5\u6D41\u5F0F\u5199\u5165\uFF0C\u8BF7\u4F7F\u7528\u7F51\u9875\u7AEF\u8FDB\u884C\u6587\u4EF6\u4E0A\u4F20")}}});function yz(r){let e=r.replace(/\s+/g,""),t=atob(e),i=new Uint8Array(t.length);for(let n=0;n<t.length;n++)i[n]=t.charCodeAt(n);return i}function Iz(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return btoa(e)}function wz(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function NC(r){let e=0n;for(let t=0;t<r.length;t++)e=e<<8n|BigInt(r[t]);return e}function xz(r,e){let t=new Uint8Array(e),i=r;for(let n=e-1;n>=0;n--)t[n]=Number(i&0xffn),i>>=8n;return t}function Cz(r,e,t){let i=1n;for(r=r%t;e>0n;)e%2n===1n&&(i=i*r%t),r=r*r%t,e/=2n;return i}function Ez(r){let e=r.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,""),t=yz(e),i=0;function n(){let l=t[i++],d=t[i++];if(d&128){let f=d&127;d=0;for(let h=0;h<f;h++)d=d<<8|t[i++]}return{tag:l,length:d,dataStart:i}}let s=[];function o(l,d){let u=l;for(;u<d;){let f=t[u++],h=t[u++];if(h&128){let p=h&127;h=0;for(let I=0;I<p;I++)h=h<<8|t[u++]}let g=u;if(u+=h,f===2){let p=t.subarray(g,g+h);p[0]===0&&p.length>1&&(p=p.subarray(1)),s.push(p)}else f===48||(f&32)!==0?o(g,g+h):f===3&&t[g]===0&&o(g+1,g+h)}}if(o(0,t.length),s.length<2)throw new Error("Failed to parse RSA public key: insufficient integers found");let a=s[0],c=s[1];if(a.length<c.length){let l=a;a=c,c=l}return{n:NC(a),e:NC(c),keyLength:a.length}}function bp(r,e,t=!1){let{n:i,e:n,keyLength:s}=Ez(e),o=typeof r=="string"?new TextEncoder().encode(r):r;if(o.length>s-11)throw new Error(`Data too long for RSA key size: ${o.length} > ${s-11}`);let a=s-o.length-3,c=new Uint8Array(a),l=new Uint8Array(a*2);crypto.getRandomValues(l);let d=0;for(let p=0;p<a;p++){let I=l[d++];for(;I===0;)d>=l.length&&(crypto.getRandomValues(l),d=0),I=l[d++];c[p]=I}let u=new Uint8Array(s);u[0]=0,u[1]=2,u.set(c,2),u[2+a]=0,u.set(o,3+a);let f=NC(u),h=Cz(f,n,i),g=xz(h,s);return t?wz(g):Iz(g)}function G_(r,e){let t=typeof e=="string"?Jr.default.enc.Utf8.parse(e.slice(0,16)):Jr.default.lib.WordArray.create(Array.from(e.slice(0,16)),16),i=Jr.default.enc.Utf8.parse(r);return Jr.default.AES.encrypt(i,t,{mode:Jr.default.mode.ECB,padding:Jr.default.pad.Pkcs7}).ciphertext.toString(Jr.default.enc.Hex)}function Yu(r,e){return Jr.default.HmacSHA1(r,e).toString(Jr.default.enc.Hex)}function z_(r){return typeof r=="string"?Jr.default.enc.Utf8.parse(r):Jr.default.lib.WordArray.create(r)}function Rl(r){return Jr.default.MD5(z_(r)).toString(Jr.default.enc.Hex)}function J_(r){return Jr.default.MD5(z_(r)).toString(Jr.default.enc.Base64)}function Nl(r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"){return r.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function qC(){return"0."+Math.floor(Math.random()*1e17).toString().padStart(17,"0")}var Jr,vp=j(()=>{"use strict";Jr=Qr(fc(),1)});function Bz(r,e,t){let i=r?r.split(";").map(o=>o.trim()):[],n=`${e}=${t}`,s=i.findIndex(o=>o.startsWith(`${e}=`));return s!==-1?i[s]=n:i.push(n),i.filter(Boolean).join("; ")}function bz(r,e){if(!e)return r;let t=r,i=e.split(/,(?=\s*[a-zA-Z0-9_\-]+=[^;]+)/);for(let n of i){let s=n.split(";")[0].trim(),o=s.indexOf("=");if(o>0){let a=s.slice(0,o).trim(),c=s.slice(o+1).trim();t=Bz(t,a,c)}}return t}function vz(r){let e=r;if(typeof e.getSetCookie=="function"){let i=e.getSetCookie();if(i.length>0)return i}let t=r.get("set-cookie");return t?[t]:[]}function j_(r){let e=r.replace(/("id"\s*:\s*)(-?\d{16,})(?=\s*[,}])/g,'$1"$2"');return JSON.parse(e)}function OC(r){return r.protocol==="https:"&&kz.has(r.hostname)}function MC(r){try{let e=new URL(r,"https://open.e.189.cn");return!!e.searchParams.get("lt")&&!!e.searchParams.get("reqId")}catch{return!1}}function LC(r){try{let e=new URL(r,"https://open.e.189.cn");return e.hostname==="cloud.189.cn"&&(e.pathname==="/web/main"||e.pathname==="/main.action")}catch{return!1}}var kz,kp,$_=j(()=>{"use strict";vp();kz=new Set(["cloud.189.cn","open.e.189.cn"]);kp=class{addition;cookie="";cookieDirty=!1;sessionKey="";rsa={pubKey:"",pkId:"",expire:0};constructor(e,t){this.addition=e,this.cookie=(e.cookie||"").trim()}getCookie(){return this.cookie}consumePendingCookie(){return this.cookieDirty?(this.cookieDirty=!1,this.cookie):null}getRootId(){return this.addition.root_folder_id||"-11"}setSessionKey(e){this.sessionKey=e}getDownloadHeaders(){let e={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://cloud.189.cn/"};return this.cookie&&(e.Cookie=this.cookie),e}async updateCookie(e){let t=vz(e);if(t.length===0)return;let i=t.reduce((n,s)=>bz(n,s),this.cookie);i!==this.cookie&&(this.cookie=i,this.cookieDirty=!0)}async followRedirectsWithCookies(e,t){let i=e,n=[i];for(let s=0;s<=8;s++){let o=new URL(i);if(!OC(o))throw new Error(o.protocol!=="https:"?`[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5FC5\u987B\u4F7F\u7528 HTTPS: ${o.origin}`:`[189Cloud] \u4E0D\u53D7\u4FE1\u4EFB\u7684\u767B\u5F55\u91CD\u5B9A\u5411\u5730\u5740: ${o.origin}`);let a={...t};s>0&&(a.Referer=i),this.cookie&&(a.Cookie=this.cookie);let c=await fetch(i,{method:"GET",headers:a,redirect:"manual"});await this.updateCookie(c.headers);let l=c.headers.get("location");if(!(c.status>=300&&c.status<400)||!l){let f=i;if(c.url&&c.url!==i){let h=new URL(c.url,i);if(MC(h.toString())||LC(h.toString())){if(!OC(h))throw new Error(h.protocol!=="https:"?`[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5FC5\u987B\u4F7F\u7528 HTTPS: ${h.origin}`:`[189Cloud] \u4E0D\u53D7\u4FE1\u4EFB\u7684\u767B\u5F55\u91CD\u5B9A\u5411\u5730\u5740: ${h.origin}`);f=h.toString(),n.push(f)}}return{response:c,url:f,urls:n}}if(s===8)throw new Error("[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u6B21\u6570\u8FC7\u591A");let u=new URL(l,i);if(!OC(u))throw new Error(u.protocol!=="https:"?`[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5FC5\u987B\u4F7F\u7528 HTTPS: ${u.origin}`:`[189Cloud] \u4E0D\u53D7\u4FE1\u4EFB\u7684\u767B\u5F55\u91CD\u5B9A\u5411\u5730\u5740: ${u.origin}`);i=u.toString(),n.push(i)}throw new Error("[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5931\u8D25")}async resolveLoginUrl(e,t){let i=e;for(let n=0;n<3;n++){let s=new URL(e);s.searchParams.set("noCache",qC());let o=await this.followRedirectsWithCookies(s.toString(),t);if(i=o.url,MC(o.url)||LC(o.url))return o.url;let a=o.urls.find(c=>MC(c));if(a)return a;n<2&&await new Promise(c=>setTimeout(c,150*(n+1)))}return i}async login(e={}){if(this.cookie&&!e.force)return;let t="https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https%3A%2F%2Fcloud.189.cn%2Fmain.action",i={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://cloud.189.cn/"};this.cookie&&(i.Cookie=this.cookie);let n=await this.resolveLoginUrl(t,i);if(LC(n))return;if(!this.addition.username||!this.addition.password){if(this.cookie)return;throw new Error("[189Cloud] \u8D26\u53F7\u6216\u5BC6\u7801\u4E3A\u7A7A\uFF0C\u4E14\u672A\u63D0\u4F9B\u6709\u6548 Cookie")}let s;try{s=new URL(n,"https://open.e.189.cn")}catch{s=new URL("https://open.e.189.cn"+n)}let o=s.searchParams.get("lt")||"",a=s.searchParams.get("reqId")||"",c=s.searchParams.get("appId")||"cloud";if(!o||!a)throw new Error("[189Cloud] \u767B\u5F55\u8DF3\u8F6C\u53C2\u6570\u4E0D\u5B8C\u6574\uFF0C\u672A\u83B7\u53D6\u5230 lt \u6216 reqId");let l=()=>{let x={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",lt:o,reqid:a,referer:n,origin:"https://open.e.189.cn","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json;charset=UTF-8"};return this.cookie&&(x.Cookie=this.cookie),x},d=await fetch("https://open.e.189.cn/api/logbox/oauth2/appConf.do",{method:"POST",headers:l(),body:new URLSearchParams({version:"2.0",appKey:c})});await this.updateCookie(d.headers);let u=await d.json();if(u.result!=="0"||!u.data)throw new Error(`[189Cloud] \u83B7\u53D6 AppConf \u5931\u8D25: ${u.msg||JSON.stringify(u)}`);let f=await fetch("https://open.e.189.cn/api/logbox/config/encryptConf.do",{method:"POST",headers:l(),body:new URLSearchParams({appId:c})});await this.updateCookie(f.headers);let h=await f.json();if(h.result!==0||!h.data?.pubKey)throw new Error(`[189Cloud] \u83B7\u53D6 EncryptConf \u5931\u8D25: ${JSON.stringify(h)}`);let g=h.data.pre||"",p=h.data.pubKey,I=g+bp(this.addition.username,p,!0),y=g+bp(this.addition.password,p,!0),w={version:"v2.0",apToken:"",appKey:c,accountType:u.data.accountType||"01",userName:I,epd:y,captchaType:"",validateCode:"",smsValidateCode:"",captchaToken:"",returnUrl:u.data.returnUrl||"https://cloud.189.cn/main.action",mailSuffix:u.data.mailSuffix||"@189.cn",dynamicCheck:"FALSE",clientType:String(u.data.clientType??"10010"),cb_SaveName:"3",isOauth2:String(u.data.isOauth2??!1),state:"",paramId:u.data.paramId||""},C=await fetch("https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do",{method:"POST",headers:{...l()},body:new URLSearchParams(w)});await this.updateCookie(C.headers);let b=await C.json();if(b.result!==0){let x=b.msg||"\u767B\u5F55\u5931\u8D25";throw x.includes("\u9A8C\u8BC1\u7801")||x.includes("\u6ED1\u5757")||x.includes("\u8BBE\u5907\u9501")?new Error(`[189Cloud] \u767B\u5F55\u89E6\u53D1\u9A8C\u8BC1\u7801/\u8BBE\u5907\u4FDD\u62A4: ${x}\u3002\u8BF7\u5728\u6D4F\u89C8\u5668\u767B\u5F55\u540E\u590D\u5236 Cookie \u586B\u5165\u914D\u7F6E\u3002`):new Error(`[189Cloud] \u767B\u5F55\u5931\u8D25: ${x}`)}b.toUrl&&await this.followRedirectsWithCookies(b.toUrl,{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"})}async request(e,t={}){let i=t.method||"GET",n=t.retryOnInvalidSession!==!1,s=new URL(e);if(s.searchParams.set("noCache",qC()),t.params)for(let[f,h]of Object.entries(t.params))h!==void 0&&s.searchParams.set(f,h);let o={Accept:"application/json;charset=UTF-8",Referer:"https://cloud.189.cn/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"};this.cookie&&(o.Cookie=this.cookie);let a;t.body&&(o["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",a=new URLSearchParams(t.body).toString());let c=await fetch(s.toString(),{method:i,headers:o,body:a});await this.updateCookie(c.headers);let l=await c.text(),d;try{d=j_(l)}catch{throw new Error(`[189Cloud] \u975E\u9884\u671F\u54CD\u5E94: ${l.slice(0,200)}`)}if(d.errorCode==="InvalidSessionKey"||d.res_code==="InvalidSessionKey"||String(d.res_code)==="1010"){if(n)return await this.login({force:!0}),this.request(e,{...t,retryOnInvalidSession:!1});throw new Error(d.errorMsg||d.res_message||"[189Cloud] \u767B\u5F55\u4F1A\u8BDD\u5DF2\u5931\u6548")}if(d.errorCode)throw new Error(d.errorMsg||`[189Cloud] API \u9519\u8BEF: ${d.errorCode}`);if(!c.ok)throw new Error(d.errorMsg||d.res_message||`[189Cloud] HTTP \u8BF7\u6C42\u5931\u8D25 (${c.status})`);if(d.res_code!==void 0&&String(d.res_code)!=="0")throw new Error(d.res_message||`189 API \u9519\u8BEF (res_code: ${d.res_code})`);return d}async getFilesPage(e,t,i){let n=this.addition.order_by||"lastOpTime",s=(this.addition.order_direction||"desc")==="desc"?"true":"false",o=await this.request("https://cloud.189.cn/api/open/file/listFiles.action",{method:"GET",params:{pageSize:i,pageNum:String(t),mediaType:"0",folderId:e||this.getRootId(),iconOption:"5",orderBy:n,descending:s}}),a=o.fileListAO?.count,c=typeof a=="number"?a:typeof a=="string"&&a.trim()!==""?Number(a):NaN;if(!o.fileListAO||typeof o.fileListAO!="object"||Array.isArray(o.fileListAO)||!Number.isFinite(c)||c<0||!Array.isArray(o.fileListAO.fileList)||!Array.isArray(o.fileListAO.folderList))throw new Error("[189Cloud] \u6587\u4EF6\u5217\u8868\u54CD\u5E94\u7F3A\u5C11\u6709\u6548\u7684 fileListAO \u6570\u7EC4\u5B57\u6BB5");return o}async validateRoot(e){await this.getFilesPage(e,1,"1")}async getFiles(e,t){let i=[],n=[],s=1,o="60";for(;;){if(t?.budget){if(t.budget.used>=t.budget.limit){console.warn("[189Cloud] Cloudflare Worker subrequest budget limit reached.");break}t.budget.used++}let c=(await this.getFilesPage(e,s,o)).fileListAO;if(Number(c.count)===0)break;let l=c.fileList||[],d=c.folderList||[];if(n.push(...d),i.push(...l),t?.findName&&(t.findIsDir&&d.some(u=>u.name===t.findName)||!t.findIsDir&&l.some(u=>u.name===t.findName))||l.length+d.length<parseInt(o,10))break;s++}return{files:i,folders:n}}async getDownloadUrl(e){let t=await this.request("https://cloud.189.cn/api/portal/getFileInfo.action",{method:"GET",params:{fileId:e}}),i=t.fileDownloadUrl||t.downloadUrl;if(!i)throw new Error(`[189Cloud] \u83B7\u53D6\u6587\u4EF6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25 (fileId: ${e})`);let n=i.startsWith("//")?"https:"+i:i;n=n.replace(/^http:\/\//i,"https://");try{let s=await fetch(n,{method:"GET",headers:this.getDownloadHeaders(),redirect:"manual"}),o=s.headers.get("location");s.status===302&&o&&(n=o.replace(/^http:\/\//i,"https://"))}catch{}return n}async getSessionKey(){let e=await this.request("https://cloud.189.cn/v2/getUserBriefInfo.action",{method:"GET"}),t=String(e.sessionKey||"");if(!t)throw new Error("[189Cloud] \u83B7\u53D6\u4E0A\u4F20 SessionKey \u5931\u8D25");return t}async getResKey(){if(this.rsa.pubKey&&this.rsa.pkId&&this.rsa.expire>Date.now())return this.rsa;let e=await this.request("https://cloud.189.cn/api/security/generateRsaKey.action",{method:"GET"}),t=String(e.pubKey||""),i=String(e.pkId||"");if(!t||!i)throw new Error("[189Cloud] \u83B7\u53D6\u4E0A\u4F20 RSA \u516C\u94A5\u5931\u8D25");return this.rsa={pubKey:t,pkId:i,expire:Number(e.expire)||Date.now()+5*6e4},this.rsa}async uploadRequest(e,t){this.sessionKey||(this.sessionKey=await this.getSessionKey());let i=String(Date.now()),n=Nl(),s=Nl("xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").slice(0,16+Math.floor(Math.random()*17)),o=Object.keys(t).sort().map(p=>`${p}=${t[p]}`).join("&"),a=G_(o,s.slice(0,16)),c=Yu(`SessionKey=${this.sessionKey}&Operate=GET&RequestURI=${e}&Date=${i}¶ms=${a}`,s),{pubKey:l,pkId:d}=await this.getResKey(),u={accept:"application/json;charset=UTF-8",SessionKey:this.sessionKey,Signature:c,"X-Request-Date":i,"X-Request-ID":n,EncryptionText:bp(s,l,!1),PkId:d};this.cookie&&(u.Cookie=this.cookie);let f=await fetch(`https://upload.cloud.189.cn${e}?params=${a}`,{method:"GET",headers:u});await this.updateCookie(f.headers);let h=await f.text();if(!f.ok)throw new Error(`[189Cloud] \u4E0A\u4F20\u63A5\u53E3 HTTP ${f.status}: ${h.slice(0,200)}`);let g;try{g=j_(h)}catch{throw new Error(`[189Cloud] \u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u65E0\u6548\u54CD\u5E94: ${h.slice(0,200)}`)}if(g.code!=="SUCCESS")throw new Error(g.msg||g.message||`[189Cloud] \u4E0A\u4F20\u63A5\u53E3\u5931\u8D25: ${e}`);return g}async createMultiUpload(e,t,i,n){let s=await this.getSessionKey();this.sessionKey=s;let o={parentFolderId:e,fileName:encodeURIComponent(t).replace(/%20/g,"+"),fileSize:String(i),sliceSize:String(10*1024*1024)},a;try{a=await this.uploadRequest("/person/initMultiUpload",{...o,fileMd5:n,sliceMd5:n})}catch(l){let d=String(l?.message||l);if(!/InfoSecurityErrorCode|file md5 is in black list|security check not pass/i.test(d))throw l;a=await this.uploadRequest("/person/initMultiUpload",{...o,lazyCheck:"1"})}let c=String(a.data?.uploadFileId||"");if(!c)throw new Error("[189Cloud] \u521B\u5EFA\u4E0A\u4F20\u4F1A\u8BDD\u5931\u8D25\uFF1A\u7F3A\u5C11 uploadFileId");return{uploadFileId:c,fileDataExists:String(a.data?.fileDataExists||"0")==="1",sessionKey:s}}async getMultiUploadUrls(e,t,i){let s=(await this.uploadRequest("/person/getMultiUploadUrls",{partInfo:`${t}-${J_(i)}`,uploadFileId:e})).uploadUrls?.[`partNumber_${t}`];if(!s?.requestURL)throw new Error(`[189Cloud] \u83B7\u53D6\u7B2C ${t} \u4E2A\u5206\u7247\u4E0A\u4F20\u5730\u5740\u5931\u8D25`);return s}async commitMultiUpload(e,t,i){await this.uploadRequest("/person/commitMultiUploadFile",{uploadFileId:e,fileMd5:t,sliceMd5:i,lazyCheck:"1",opertype:"3"})}async mkdir(e,t){await this.request("https://cloud.189.cn/api/open/file/createFolder.action",{method:"POST",body:{parentFolderId:e||this.getRootId(),folderName:t}})}async rename(e,t,i){let n=t?"https://cloud.189.cn/api/open/file/renameFolder.action":"https://cloud.189.cn/api/open/file/renameFile.action",s=t?{folderId:e,destFolderName:i}:{fileId:e,destFileName:i};await this.request(n,{method:"POST",body:s})}async batchTask(e,t,i=""){let n=t.map(s=>({fileId:s.id,fileName:s.name,isFolder:s.isFolder?1:0}));await this.request("https://cloud.189.cn/api/open/batch/createBatchTask.action",{method:"POST",body:{type:e,targetFolderId:i,taskInfos:JSON.stringify(n)}})}async move(e,t,i,n){await this.batchTask("MOVE",[{id:e,name:i,isFolder:t}],n)}async copy(e,t,i,n){await this.batchTask("COPY",[{id:e,name:i,isFolder:t}],n)}async remove(e,t,i){await this.batchTask("DELETE",[{id:e,name:i,isFolder:t}],"")}async getCapacityInfo(){return this.request("https://cloud.189.cn/api/portal/getUserSizeInfo.action",{method:"GET"})}}});function Qz(r){return Buffer.from(JSON.stringify(r),"utf8").toString("base64")}function V_(r){try{let e=JSON.parse(Buffer.from(r,"base64").toString("utf8"));if(!e||!e.uploadFileId||!e.sessionKey||!e.fileMd5||!Number.isInteger(e.partCount)||e.partCount<1||!Number.isInteger(e.chunkSize)||e.chunkSize<1)throw new Error("invalid upload session");return e}catch{throw new Error("[189Cloud] \u4E0A\u4F20\u4F1A\u8BDD\u65E0\u6548\u6216\u5DF2\u635F\u574F")}}function X_(r){if(!r)return new Date().toISOString();try{let e=new Date(r);if(!isNaN(e.getTime()))return e.toISOString()}catch{}return new Date().toISOString()}function Y_(r){return{name:r.name,size:0,is_dir:!0,modified:X_(r.lastOpTime),sign:String(r.id),type:1,thumb:"",raw_url:""}}function W_(r){return{name:r.name,size:r.size||0,is_dir:!1,modified:X_(r.lastOpTime),sign:String(r.id),type:X(r.name,!1),thumb:r.icon?.smallUrl||r.icon?.largeUrl||"",raw_url:""}}function _z(r){let e={...r||{}};return e.username=e.username||"",e.password=e.password||"",e.cookie=(e.cookie||"").trim(),e.root_folder_id=e.root_folder_id||"-11",e.order_by=e.order_by||"lastOpTime",e.order_direction=e.order_direction||"desc",e}var Sz,Dz,Sp,Z_=j(()=>{"use strict";Be();He();$_();vp();Sz=45,Dz=10*1024*1024;Sp=class{client;addition;pathIdCache=new Map;budget={used:0,limit:Sz};constructor(e,t){this.addition=_z(e),this.client=new kp(this.addition,t)}async init(){await this.client.login()}consumePendingCookie(){return this.client.consumePendingCookie()}async resolveFolderId(e){let t=this.client.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=0,o=t,a="";for(let c=0;c<n.length;c++){let l="/"+n.slice(0,c+1).join("/"),d=this.pathIdCache.get(l);if(d!==void 0)o=d,s=c+1,a=l;else break}for(let c=s;c<n.length;c++){let l=n[c],d=(()=>{try{return decodeURIComponent(l)}catch{return l}})(),{folders:u}=await this.client.getFiles(o,{findName:d,findIsDir:!0,budget:this.budget}),f=u.find(h=>h.name===l||h.name===d||String(h.id)===l||String(h.id)===d);if(!f)throw new Error(`[189Cloud] \u76EE\u5F55\u672A\u627E\u5230: ${l}`);o=String(f.id),a="/"+n.slice(0,c+1).join("/"),this.pathIdCache.set(a,o)}return o}async resolveFile(e){let t=String(e||"").split("/").filter(Boolean);if(t.length===0)throw new Error("[189Cloud] \u8DEF\u5F84\u65E0\u6548");let i=t[t.length-1],n=(()=>{try{return decodeURIComponent(i)}catch{return i}})(),s="/"+t.slice(0,t.length-1).join("/"),o=await this.resolveFolderId(s),{files:a,folders:c}=await this.client.getFiles(o,{findName:n,budget:this.budget}),l=a.find(u=>u.name===i||u.name===n||String(u.id)===i||String(u.id)===n);if(l)return{file:l,parentId:o,isDir:!1};let d=c.find(u=>u.name===i||u.name===n||String(u.id)===i||String(u.id)===n);if(d)return{file:d,parentId:o,isDir:!0};throw new Error(`[189Cloud] \u6587\u4EF6\u6216\u76EE\u5F55\u672A\u627E\u5230: ${i}`)}async list(e,t){this.budget.used=0;let i=await this.resolveFolderId(t),{files:n,folders:s}=await this.client.getFiles(i,{budget:this.budget}),o=[...s.map(Y_),...n.map(W_)];return de(o,this.addition.order_by==="filename"?"file_name":this.addition.order_by==="fileSize"?"size":"updated_at",this.addition.order_direction)}async get(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean);if(i.length===0||i[i.length-1]===this.client.getRootId()){let a=this.client.getRootId();return{name:a,size:0,is_dir:!0,modified:new Date().toISOString(),sign:a,type:1,raw_url:""}}let{file:n,isDir:s}=await this.resolveFile(t);if(s)return Y_(n);let o=W_(n);try{o.raw_url=await this.client.getDownloadUrl(String(n.id)),o.raw_url_headers=this.client.getDownloadHeaders()}catch(a){console.warn(`[189Cloud] \u83B7\u53D6 ${n.name} \u4E0B\u8F7D\u5730\u5740\u5931\u8D25:`,a.message)}return o}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){this.budget.used=0;let{file:n,isDir:s}=await this.resolveFile(t);await this.client.rename(String(n.id),s,i)}async remove(e,t,i){this.budget.used=0;let{file:n,isDir:s}=await this.resolveFile(t);await this.client.remove(String(n.id),s,n.name)}async move(e,t,i,n,s){this.budget.used=0;let{file:o,isDir:a}=await this.resolveFile(n),c=String(t).split("/").filter(Boolean),l=await this.resolveFolderId("/"+c.join("/"));await this.client.move(String(o.id),a,o.name,l)}async copy(e,t,i,n,s){this.budget.used=0;let{file:o,isDir:a}=await this.resolveFile(n),c=String(t).split("/").filter(Boolean),l=await this.resolveFolderId("/"+c.join("/"));await this.client.copy(String(o.id),a,o.name,l)}async put(e,t,i){let n=String(t||"").split("/").filter(Boolean),s=n.pop();if(!s)throw new Error("[189Cloud] \u4E0A\u4F20\u8DEF\u5F84\u65E0\u6548");let o="/"+n.join("/"),a=await this.createUploadSession(o,o,s,i.length,Rl(i));if(a.reuse)return;let c=[];for(let l=1;l<=a.partCount;l++){let d=(l-1)*a.chunkSize,u=i.subarray(d,Math.min(d+a.chunkSize,i.length)),f=await this.uploadPart(a.session,l,u);c.push(f.partMd5)}await this.completeUploadSession(a.session,c)}async createUploadSession(e,t,i,n,s){let o=Dz,a=String(s||"").trim().toLowerCase();if(!/^[a-f0-9]{32}$/.test(a))return{reuse:!1,requiresMd5:!0,partCount:0,chunkSize:o,session:""};this.budget.used=0;let c=Math.max(1,Math.ceil(Math.max(0,Number(n)||0)/o)),l=await this.resolveFolderId(t||"/"),d=await this.client.createMultiUpload(l,i,Math.max(0,Number(n)||0),a);return d.fileDataExists?(await this.client.commitMultiUpload(d.uploadFileId,a,a),{reuse:!0,partCount:0,chunkSize:o,session:""}):{reuse:!1,partCount:c,chunkSize:o,session:Qz({uploadFileId:d.uploadFileId,sessionKey:d.sessionKey,fileMd5:a,size:Math.max(0,Number(n)||0),partCount:c,chunkSize:o})}}async uploadPart(e,t,i){let n=V_(e);if(!Number.isInteger(t)||t<1||t>n.partCount)throw new Error(`[189Cloud] \u5206\u7247\u5E8F\u53F7\u65E0\u6548: ${t}`);this.client.setSessionKey(n.sessionKey);let s=await this.client.getMultiUploadUrls(n.uploadFileId,t,i),o={};if(s.requestHeader){let c=s.requestHeader;try{c=decodeURIComponent(c)}catch{}for(let l of c.split("&")){let d=l.indexOf("=");d<=0||(o[l.slice(0,d)]=l.slice(d+1))}}let a=await fetch(s.requestURL,{method:"PUT",headers:o,body:i});if(!a.ok){let c=await a.text().catch(()=>"");throw new Error(`[189Cloud] \u4E0A\u4F20\u7B2C ${t}/${n.partCount} \u5206\u7247\u5931\u8D25: HTTP ${a.status} ${c}`)}return{partMd5:Rl(i)}}async completeUploadSession(e,t=[]){let i=V_(e);this.client.setSessionKey(i.sessionKey);let n=t.map(o=>String(o||"").trim().toLowerCase()).filter(o=>/^[a-f0-9]{32}$/.test(o));if(n.length!==i.partCount)throw new Error("[189Cloud] \u5206\u7247\u6821\u9A8C\u4FE1\u606F\u4E0D\u5B8C\u6574\uFF0C\u65E0\u6CD5\u63D0\u4EA4\u4E0A\u4F20");let s=i.partCount===1?i.fileMd5:Rl(n.join(` -`)).toUpperCase();await this.client.commitMultiUpload(i.uploadFileId,i.fileMd5,s)}}});function Rz(){return{clientType:Tz,version:Pz,channelId:Uz,clientSn:"unknown",model:"PJX110",osFamily:"Android",osVersion:"35",networkAccessMode:"WIFI",telecomsOperator:"46011"}}function t8(r){try{return new URL(r).pathname}catch{return r}}function Nz(r,e,t,i,n){let s=`SessionKey=${e}&Operate=${t}&RequestURI=${t8(i)}&Date=${n}`;return Yu(s,r).toUpperCase()}function qz(r,e,t,i,n){let s=`AppKey=${e}&Operate=${t}&RequestURI=${t8(i)}&Timestamp=${n}`;return Yu(s,r).toUpperCase()}function Oz(r){let e=r.replace(/("id"\s*:\s*)(-?\d{16,})(?=\s*[,}])/g,'$1"$2"');return JSON.parse(e)}function Mz(r){let e=r.res_code;return typeof e=="number"?e!==0:typeof e=="string"?e!==""&&e!=="0":!!(r.code&&r.code!=="SUCCESS"||r.errorCode||r.error)}function Lz(r){switch(r){case"filename":return"1";case"filesize":return"2";case"lastOpTime":return"3";default:return"1"}}function Hz(r){return r==="desc"?"true":"false"}var e8,Fz,Pz,Tz,Uz,Ni,HC,Dp,r8=j(()=>{"use strict";vp();e8="600100885",Fz="fe5734c74c2f96a38157f420b32dc995",Pz="6.5.5",Tz="FAMILY_TV",Uz="home02",Ni="https://api.cloud.189.cn",HC="EcloudTV/6.5.5 (PJX110; unknown; home02) Android/35";Dp=class{addition;tokenInfo=null;persistAccessToken;constructor(e,t){this.addition=e,this.persistAccessToken=t}isFamily(){return this.addition.type==="family"}getFamilyId(){return this.addition.family_id||""}async init(){if(!this.addition.access_token)throw new Error("[189TV] access_token \u4E3A\u7A7A\uFF1A\u8BF7\u5148\u5728\u522B\u5904\u626B\u7801\u767B\u5F55\u83B7\u53D6 access_token \u540E\u586B\u5165\u914D\u7F6E");await this.login()}signatureHeader(e,t,i){let n=new Date().toUTCString(),s=i?this.tokenInfo?.familySessionKey||"":this.tokenInfo?.sessionKey||"",o=i?this.tokenInfo?.familySessionSecret||"":this.tokenInfo?.sessionSecret||"";return{Date:n,SessionKey:s,"X-Request-ID":Nl(),Signature:Nz(o,s,t,e,n)}}appKeySignatureHeader(e,t){let i=Date.now();return{Timestamp:String(i),"X-Request-ID":Nl(),AppKey:e8,AppSignature:qz(Fz,e8,t,e,i)}}async request(e,t,i={}){let{query:n,form:s,isFamily:o=!1,isAppKey:a=!1}=i,c=i.retryCount??0,l=new URL(e);for(let[p,I]of Object.entries(Rz()))l.searchParams.set(p,I);if(n)for(let[p,I]of Object.entries(n))I!==void 0&&l.searchParams.set(p,I);let d={Accept:"application/json;charset=UTF-8","User-Agent":HC};a?Object.assign(d,this.appKeySignatureHeader(e,t)):Object.assign(d,this.signatureHeader(e,t,o));let u;s&&(d["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",u=new URLSearchParams(s).toString());let h=await(await fetch(l.toString(),{method:t,headers:d,body:u})).text();if(h.includes("userSessionBO is null")||h.includes("InvalidSessionKey")){if(c>=3)throw new Error("[189TV] session expired after retry");return await this.login(),this.request(e,t,{...i,retryCount:c+1})}let g;try{g=Oz(h)}catch{throw new Error(`[189TV] \u975E\u9884\u671F\u54CD\u5E94: ${h.slice(0,200)}`)}if(Mz(g))throw new Error(`[189TV] API \u9519\u8BEF: ${g.res_message||g.errorMsg||g.msg||h.slice(0,200)}`);return g}async login(){if(!this.addition.access_token)throw new Error("[189TV] access_token \u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u767B\u5F55");let e=await this.request(Ni+"/family/manage/loginFamilyMerge.action","GET",{query:{e189AccessToken:this.addition.access_token},isAppKey:!0});this.tokenInfo=e,e.accessToken&&e.accessToken!==this.addition.access_token&&(this.addition.access_token=e.accessToken,this.persistAccessToken&&await this.persistAccessToken(e.accessToken))}async getFiles(e,t){let n=(t?Ni+"/family/file":Ni)+"/listFiles.action",s=this.addition.order_by||"lastOpTime",o=Hz(this.addition.order_direction||"asc"),a=[];for(let c=1;;c++){let l={folderId:e,fileType:"0",mediaAttr:"0",iconOption:"5",pageNum:String(c),pageSize:"130"};t?(l.familyId=this.addition.family_id||"",l.orderBy=Lz(s),l.descending=o):(l.recursive="0",l.orderBy=s,l.descending=o);let u=(await this.request(n,"GET",{query:l,isFamily:t})).fileListAO;if(!u||Number(u.count)===0)break;let f=u.folderList||[],h=u.fileList||[];if(a.push(...f,...h),f.length+h.length<130)break}return a}async getFileDownloadUrl(e,t){let n=(t?Ni+"/family/file":Ni)+"/getFileDownloadUrl.action",s={fileId:e};t?s.familyId=this.addition.family_id||"":(s.dt="3",s.flag="1");let a=(await this.request(n,"GET",{query:s,isFamily:t})).fileDownloadUrl||"";if(!a)throw new Error("[189TV] \u83B7\u53D6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25");a=a.replace(/&/g,"&").replace(/^http:\/\//i,"https://");try{let c=await fetch(a,{method:"GET",headers:{"User-Agent":HC},redirect:"manual"}),l=c.headers.get("location");c.status===302&&l&&(a=l.replace(/^http:\/\//i,"https://"))}catch{}return a}async mkdir(e,t,i){let s=(i?Ni+"/family/file":Ni)+"/createFolder.action",o={folderName:t,relativePath:""};i?(o.familyId=this.addition.family_id||"",o.parentId=e):o.parentFolderId=e,await this.request(s,"POST",{query:o,isFamily:i})}async rename(e,t,i,n){let s=n?Ni+"/family/file":Ni,o=n?"GET":"POST",c=s+(t?"/renameFolder.action":"/renameFile.action"),l={};n&&(l.familyId=this.addition.family_id||""),t?(l.folderId=e,l.destFolderName=i):(l.fileId=e,l.destFileName=i),await this.request(c,o,{query:l,isFamily:n})}async createBatchTask(e,t,i,n){let s={type:e,taskInfos:JSON.stringify(n)};i&&(s.targetFolderId=i),t&&(s.familyId=t);let o=await this.request(Ni+"/batch/createBatchTask.action","POST",{form:s,isFamily:t!==""});if(!o.taskId)throw new Error("[189TV] \u521B\u5EFA\u6279\u91CF\u4EFB\u52A1\u5931\u8D25");return o.taskId}async waitBatchTask(e,t){for(let i=0;i<20;i++){let s=(await this.request(Ni+"/batch/checkBatchTask.action","POST",{form:{type:e,taskId:t}})).taskStatus;if(s===4)return;if(s===2)throw new Error("[189TV] \u76EE\u6807\u5B58\u5728\u540C\u540D\u51B2\u7A81");await new Promise(o=>setTimeout(o,300))}throw new Error("[189TV] \u6279\u91CF\u4EFB\u52A1\u8D85\u65F6")}async move(e,t,i,n,s){let o=await this.createBatchTask("MOVE",s&&this.addition.family_id||"",n,[{fileId:e,fileName:i,isFolder:t?1:0}]);await this.waitBatchTask("MOVE",o)}async copy(e,t,i,n,s){let o=await this.createBatchTask("COPY",s&&this.addition.family_id||"",n,[{fileId:e,fileName:i,isFolder:t?1:0}]);await this.waitBatchTask("COPY",o)}async remove(e,t,i,n){let s=await this.createBatchTask("DELETE",n&&this.addition.family_id||"","",[{fileId:e,fileName:i,isFolder:t?1:0}]);await this.waitBatchTask("DELETE",s)}async upload(e,t,i,n){let s=Rl(i),o=i.length,c=(n?Ni+"/family/file":Ni)+(n?"/createFamilyFile.action":"/createUploadFile.action"),l;n?l=await this.request(c,"POST",{query:{familyId:this.addition.family_id||"",parentId:e,fileMd5:s,fileName:t,fileSize:String(o),resumePolicy:"1"},isFamily:n}):l=await this.request(c,"POST",{form:{parentFolderId:e,fileName:t,size:String(o),md5:s,opertype:"3",flag:"1",resumePolicy:"1",isLog:"0"},isFamily:n});let d=l.uploadFileId,u=l.fileUploadUrl,f=l.fileCommitUrl;if(!d||!u)throw new Error("[189TV] \u521B\u5EFA\u4E0A\u4F20\u4F1A\u8BDD\u5931\u8D25");let h={ResumePolicy:"1",Expect:"100-continue","User-Agent":HC};n?(h.FamilyId=this.addition.family_id||"",h.UploadFileId=String(d)):h["Edrive-UploadFileId"]=String(d),Object.assign(h,this.signatureHeader(u,"PUT",n));let g=await fetch(u,{method:"PUT",headers:h,body:new Uint8Array(i)});if(g.status!==200)throw new Error(`[189TV] \u4E0A\u4F20\u5931\u8D25: HTTP ${g.status}`);n?await this.request(f,"POST",{query:{ResumePolicy:"1",UploadFileId:String(d),FamilyId:this.addition.family_id||""},isFamily:n}):await this.request(f,"POST",{form:{opertype:"3",resumePolicy:"1",uploadFileId:String(d),isLog:"0"},isFamily:n})}}});function i8(r){if(!r)return new Date().toISOString();let e=r.trim().replace(/["']/g,""),t=e.replace(/ +08$/,"+08:00"),i=new Date(t);return isNaN(i.getTime())?e:i.toISOString()}function n8(r){if("parentId"in r||!("size"in r)){let t=r;return{name:t.name,size:0,is_dir:!0,modified:i8(t.lastOpTime||t.createDate),sign:t.id,type:1}}let e=r;return{name:e.name,size:e.size,is_dir:!1,modified:i8(e.lastOpTime||e.createDate),sign:e.id,type:X(e.name,!1),thumb:e.icon?.smallUrl||"",raw_url:""}}var Qp,s8=j(()=>{"use strict";Be();r8();Qp=class{client;pathCache=new Map;constructor(e,t){this.client=new Dp(e,t)}async init(){await this.client.init()}isFamily(){return this.client.isFamily()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFiles(i,this.isFamily())).map(n8)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFiles(o,this.isFamily())).find(l=>l.name===n);if(c){let l=n8(c);if(!l.is_dir)try{l.raw_url=await this.client.getFileDownloadUrl(c.id,this.isFamily()),l.raw_url_headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}}catch{l.raw_url_error="[189TV] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n,this.isFamily()),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,n.isDir,i,this.isFamily()),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t),s=t.split("/").filter(Boolean).pop()||"";await this.client.remove(n.id,n.isDir,s,this.isFamily()),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=n.split("/").filter(Boolean).pop()||"";await this.client.move(o.id,o.isDir,a,await this.pathToId(t),this.isFamily()),this.pathCache.clear()}async copy(e,t,i,n,s){let o=await this.resolveEntry(n),a=n.split("/").filter(Boolean).pop()||"";await this.client.copy(o.id,o.isDir,a,await this.pathToId(t),this.isFamily()),this.pathCache.clear()}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/");await this.client.upload(await this.pathToId(o),s,new Uint8Array(i),this.isFamily()),this.pathCache.clear()}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFiles(s,this.isFamily())).find(l=>l.name===i);if(!a)throw new Error(`[189TV] '${i}' not found`);let c="parentId"in a||!("size"in a);return{id:a.id,isDir:c}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.isFamily()?"":"-11";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=this.isFamily()?"":"-11";for(let s=0;s<i.length;s++){let a=(await this.client.getFiles(n,this.isFamily())).find(l=>l.name===i[s]&&"parentId"in l);if(!a)throw new Error(`[189TV] Directory '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});function Rs(r,e){let t=r.replace(/\/+$/,""),i=e.replace(/^\/+/,"");return!t&&!i?"/":t?i?`${t}/${i}`:t:"/"+i}function Kz(r){return r.split("/").map(e=>encodeURIComponent(e)).join("/")}function o8(r,e){let t=[],i,n=/<(?:[a-zA-Z0-9_-]+:)?response\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?response>/gi,s;for(;(s=n.exec(r))!==null;){let o=s[1],a=/<(?:[a-zA-Z0-9_-]+:)?href\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?href>/i.exec(o);if(!a)continue;let c=a[1].trim(),l=c;try{l=decodeURIComponent(c)}catch{}let d=/<(?:[a-zA-Z0-9_-]+:)?propstat\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?propstat>/gi,u,f="";for(;(u=d.exec(o))!==null;){let E=u[1],P=/<(?:[a-zA-Z0-9_-]+:)?status\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?status>/i.exec(E),N=P?P[1]:"";if(N.includes("200")||N.toLowerCase().includes("ok")){let J=/<(?:[a-zA-Z0-9_-]+:)?prop\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?prop>/i.exec(E);if(J){f=J[1];break}}}if(!f)continue;let h=/<(?:[a-zA-Z0-9_-]+:)?resourcetype\b[^>]*>[\s\S]*?<(?:[a-zA-Z0-9_-]+:)?collection\b/i.test(f),g=/<(?:[a-zA-Z0-9_-]+:)?displayname\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?displayname>/i.exec(f),p=g?g[1].trim():"",I=l.replace(/\/+$/,""),y=I&&I.split("/").pop()||"",w=p||y,C=/<(?:[a-zA-Z0-9_-]+:)?getcontentlength\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getcontentlength>/i.exec(f),b=h?0:C&&parseInt(C[1].trim(),10)||0,x=/<(?:[a-zA-Z0-9_-]+:)?getlastmodified\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getlastmodified>/i.exec(f),_=new Date().toISOString();if(x){let E=new Date(x[1].trim());isNaN(E.getTime())||(_=E.toISOString())}let R=/<(?:[a-zA-Z0-9_-]+:)?getcontenttype\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getcontenttype>/i.exec(f),U=R?R[1].trim():void 0,T=/<(?:[a-zA-Z0-9_-]+:)?getetag\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getetag>/i.exec(f),D=T?T[1].trim().replace(/^"|"$/g,""):void 0,B={name:w,path:l,size:b,modified:_,isFolder:h,contentType:U,etag:D},Q=e.replace(/\/+$/,"").toLowerCase(),v=I.toLowerCase();!i&&(v===Q||v.endsWith(Q)||Q===""&&v==="")?i=B:t.push(B)}return{self:i,items:t}}function Gz(r){let e={},t=r.replace(/^digest\s+/i,"").split(/,\s*/);for(let i of t){let n=i.indexOf("=");if(n!==-1){let s=i.slice(0,n).trim(),o=i.slice(n+1).trim().replace(/^"|"$/g,"");s==="realm"?e.realm=o:s==="nonce"?e.nonce=o:s==="qop"?e.qop=o:s==="opaque"?e.opaque=o:s==="algorithm"&&(e.algorithm=o)}}return e}function a8(r,e,t,i,n,s=1){let o=s.toString(16).padStart(8,"0"),a=Math.random().toString(36).substring(2,18),c=r.realm||"",l=r.nonce||"",d=(r.algorithm||"MD5").toUpperCase(),u=r.qop||"",f="";if(d==="MD5"||d==="")f=hc.default.MD5(`${e}:${c}:${t}`).toString();else if(d==="MD5-SESS"){let I=hc.default.MD5(`${e}:${c}:${t}`).toString();f=hc.default.MD5(`${I}:${l}:${a}`).toString()}let h="";(u==="auth"||u==="")&&(h=hc.default.MD5(`${i}:${n}`).toString());let g="";u?g=hc.default.MD5(`${f}:${l}:${o}:${a}:${u}:${h}`).toString():g=hc.default.MD5(`${f}:${l}:${h}`).toString();let p=`Digest username="${e}", realm="${c}", nonce="${l}", uri="${n}", response="${g}"`;return d&&(p+=`, algorithm=${d}`),u&&(p+=`, qop=${u}, nc=${o}, cnonce="${a}"`),r.opaque&&(p+=`, opaque="${r.opaque}"`),p}async function Jz(r,e,t){let i=new URL(t),n=i.hostname.split("."),s=n[n.length-1],a=`${zz[s]||"https://login.microsoftonline.com"}/extSTS.srf`,c=`<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" +</div>`;return new Error(s)}async rawRequest(e,t={}){let i={"user-agent":this.options.userAgent,accept:"application/json;charset=UTF-8","x-device-id":this.options.deviceId,"x-client-id":this.options.clientId,"x-client-version":this.options.clientVersion,...t.headers||{}},n;t.body!==void 0&&(typeof t.body=="string"?n=t.body:(n=JSON.stringify(t.body),i["content-type"]||(i["content-type"]="application/json;charset=UTF-8")));let s=await fetch(e,{method:t.method||"GET",headers:i,body:n}),o=await s.text(),a={};try{a=JSON.parse(o)}catch{if(!s.ok)throw new Error(`${s.status} ${s.statusText}: ${o}`);return o}if(a.error==="review_panel")throw this.formatReviewData(a);return a}async authRequest(e,t={}){if(!this.tokenResp?.access_token)throw new Error("empty token");let i={Authorization:`${this.tokenResp.token_type} ${this.tokenResp.access_token}`,"X-Captcha-Token":this.captchaToken,...t.headers||{}},n=await this.rawRequest(e,{...t,headers:i}),s=n?.error_code||0;if(s===4122||s===4121||s===10||s===16){if(this.tokenResp?.refresh_token){let o=await this.refreshToken(this.tokenResp.refresh_token);return this.tokenResp=o,this.options.onPersistToken&&await this.options.onPersistToken(o),this.authRequest(e,t)}throw new Error(`Token expired error ${s}`)}else if(s===9){let o=V8(t.method||"GET",e);return await this.refreshCaptchaTokenAtLogin(o,this.tokenResp.user_id||""),this.authRequest(e,t)}else if(s!==0||n.error&&n.error!=="success")throw new Error(`ErrorCode: ${n.error_code||0}, Error: ${n.error||""}, ErrorDescription: ${n.error_description||""}`);return n}async coreLogin(e,t){let i=`${X8}/xluser.core.login/v3/login`,n={protocolVersion:"301",sequenceNo:"1000012",platformVersion:"10",isCompressed:"0",appid:e4,clientVersion:this.options.clientVersion,peerID:"00000000000000000000000000000000",appName:"ANDROID-com.xunlei.downloadprovider",sdkVersion:"512000",devicesign:Y8(this.options.deviceId,this.options.packageName),netWorkType:"WIFI",providerName:"NONE",deviceModel:"M2004J7AC",deviceName:"Xiaomi_M2004j7ac",OSVersion:"12",creditkey:this.creditKey,hl:"zh-CN",userName:e,passWord:t,verifyKey:"",verifyCode:"",isMd5Pwd:"0"},s=await this.rawRequest(i,{method:"POST",body:n,headers:{"user-agent":"android-ok-http-client/xl-acc-sdk/version-5.0.12.512000"}});return this.coreLoginResp=s,s}async login(e,t){let n=(await this.coreLogin(e,t)).sessionID,s=`${qp}/auth/signin/token`;await this.refreshCaptchaTokenInLogin(V8("POST",s),e);let o=await this.rawRequest(s,{method:"POST",body:{client_id:this.options.clientId,client_secret:this.options.clientSecret,provider:lj,signin_token:n}});return this.tokenResp=o,this.creditKey="",this.options.onPersistToken&&await this.options.onPersistToken(o),o}async refreshToken(e){let t=`${qp}/auth/token`,i=await this.rawRequest(t,{method:"POST",body:{grant_type:"refresh_token",refresh_token:e,client_id:this.options.clientId,client_secret:this.options.clientSecret}});return this.tokenResp=i,this.options.onPersistToken&&await this.options.onPersistToken(i),i}async isLogin(){if(!this.tokenResp?.access_token)return!1;try{return await this.authRequest(`${qp}/user/me`,{method:"GET"}),!0}catch{return!1}}}});function i4(r,e,t){let i=r.kind===aE,n=r.web_content_link||"";if(t&&r.medias&&r.medias.length>0){for(let s of r.medias)if(s.link?.url){n=s.link.url;break}}return{name:r.name,size:parseInt(r.size||"0",10),is_dir:i,modified:r.modified_time||r.created_time||new Date().toISOString(),sign:"",type:X(r.name,i),thumb:r.thumbnail_link||r.icon_link||"",raw_url:n,raw_url_headers:{"User-Agent":e}}}function n4(r){if(r?.device_id&&r.device_id.trim().length===32)return r.device_id.trim();let e=`${r?.username||""}${r?.password||""}`;return e.trim()?Bc(e):Bc(Math.random().toString(36)+Date.now().toString(36))}var lf,Op,s4=J(()=>{"use strict";Be();He();r4();lf=class{client;addition;identity="";onPersistCallback;constructor(e,t){this.addition=e,this.onPersistCallback=t;let i=n4(e);e.device_id=i,this.client=new cf({deviceId:i,clientId:e.client_id||"",clientSecret:e.client_secret||"",clientVersion:"8.31.0.9726",packageName:"com.xunlei.downloadprovider",userAgent:"ANDROID-com.xunlei.downloadprovider/8.31.0.9726 netWorkType/5G appid/40 deviceName/Xiaomi_M2004j7ac deviceModel/M2004J7AC OSVersion/12 protocolVersion/301 platformVersion/10 sdkVersion/512000 Oauth2Client/0.9 (Linux 4_14_186-perf-gddfs8vbb238b) (JAVA 0)",downloadUserAgent:"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)",algorithms:["9uJNVj/wLmdwKrJaVj/omlQ","Oz64Lp0GigmChHMf/6TNfxx7O9PyopcczMsnf","Eb+L7Ce+Ej48u","jKY0","ASr0zCl6v8W4aidjPK5KHd1Lq3t+vBFf41dqv5+fnOd","wQlozdg6r1qxh0eRmt3QgNXOvSZO6q/GXK","gmirk+ciAvIgA/cxUUCema47jr/YToixTT+Q6O","5IiCoM9B1/788ntB","P07JH0h6qoM6TSUAK2aL9T5s2QBVeY9JWvalf","+oK0AN"],space:e.space||"",captchaToken:e.captcha_token||"",creditKey:e.credit_key||"",onPersistToken:async n=>{this.onPersistCallback&&await this.onPersistCallback({refresh_token:n.refresh_token,captcha_token:this.client.captchaToken,device_id:i})},onPersistCaptchaToken:async n=>{this.onPersistCallback&&await this.onPersistCallback({captcha_token:n})}})}get downloadUserAgent(){return this.addition.download_user_agent||"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)"}get useVideoUrl(){return!!this.addition.use_video_url}async init(){let e=this.addition.username||"",t=this.addition.password||"",i=Bc(`${e}${t}`);(this.identity!==i||!await this.client.isLogin())&&(this.identity=i,await this.client.login(e,t))}resolveFolderId(e){if(!e||e==="/"||e==="0")return this.addition.root_folder_id||"";let t=e.split("/").filter(Boolean);return t[t.length-1]||this.addition.root_folder_id||""}async list(e,t){let i=this.resolveFolderId(t),n=[],s="";for(;;){let o=new URL(Ls);o.searchParams.set("space",this.addition.space||""),o.searchParams.set("__type","drive"),o.searchParams.set("refresh","true"),o.searchParams.set("__sync","true"),o.searchParams.set("parent_id",i),o.searchParams.set("page_token",s),o.searchParams.set("with_audit","true"),o.searchParams.set("limit","100"),o.searchParams.set("filters",JSON.stringify({phase:{eq:"PHASE_TYPE_COMPLETE"},trashed:{eq:!1}}));let a=await this.client.authRequest(o.toString(),{method:"GET"});if(a.files&&a.files.length>0)for(let c of a.files)n.push(i4(c,this.downloadUserAgent,this.useVideoUrl));if(!a.next_page_token)break;s=a.next_page_token}return de(n,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.resolveFolderId(t),n=new URL(`${Ls}/${i}`);n.searchParams.set("space",this.addition.space||"");let s=await this.client.authRequest(n.toString(),{method:"GET"});return i4(s,this.downloadUserAgent,this.useVideoUrl)}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/"),o=this.resolveFolderId(s);await this.client.authRequest(Ls,{method:"POST",body:{kind:aE,name:n,parent_id:o,space:this.addition.space||""}})}async rename(e,t,i){let n=this.resolveFolderId(t);await this.client.authRequest(`${Ls}/${n}`,{method:"PATCH",body:{name:i,space:this.addition.space||""}})}async remove(e,t,i){let n=this.resolveFolderId(t),s=new URL(`${Ls}/${n}/trash`);s.searchParams.set("space",this.addition.space||""),await this.client.authRequest(s.toString(),{method:"PATCH",body:{}})}async move(e,t,i,n,s){let o=this.resolveFolderId(n),a=this.resolveFolderId(t);await this.client.authRequest(`${Ls}:batchMove`,{method:"POST",body:{to:{parent_id:a},ids:[o],space:this.addition.space||""}})}async copy(e,t,i,n,s){let o=this.resolveFolderId(n),a=this.resolveFolderId(t);await this.client.authRequest(`${Ls}:batchCopy`,{method:"POST",body:{to:{parent_id:a},ids:[o],space:this.addition.space||""}})}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/"),a=this.resolveFolderId(o),c=t4(i),l=await this.client.authRequest(Ls,{method:"POST",body:{kind:Z8,parent_id:a,name:s,size:i.length.toString(),hash:c,upload_type:cE,space:this.addition.space||""}});if(l.upload_type===cE&&l.resumable?.params){let d=l.resumable.params,u=d.endpoint;u.startsWith(d.bucket+".")&&(u=u.slice(d.bucket.length+1)),!u.startsWith("http://")&&!u.startsWith("https://")&&(u=`https://${u}`);let f=`${u.replace(/\/$/,"")}/${d.bucket}/${d.key}`,h={"x-amz-security-token":d.security_token},g=await fetch(f,{method:"PUT",headers:h,body:i});if(!g.ok)throw new Error(`S3 Upload failed: ${g.status} ${g.statusText}`)}}},Op=class extends lf{constructor(e,t){super(e,t);let i=n4(e);e.device_id=i;let n=e.sign_type==="captcha_sign"?void 0:(e.algorithms||"").split(",").map(s=>s.trim()).filter(Boolean);this.client=new cf({deviceId:i,clientId:e.client_id||"",clientSecret:e.client_secret||"",clientVersion:e.client_version||"8.31.0.9726",packageName:e.package_name||"com.xunlei.downloadprovider",userAgent:e.user_agent||"ANDROID-com.xunlei.downloadprovider/8.31.0.9726 netWorkType/5G appid/40 deviceName/Xiaomi_M2004j7ac deviceModel/M2004J7AC OSVersion/12 protocolVersion/301 platformVersion/10 sdkVersion/512000 Oauth2Client/0.9 (Linux 4_14_186-perf-gddfs8vbb238b) (JAVA 0)",downloadUserAgent:e.download_user_agent||"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)",algorithms:n&&n.length>0?n:void 0,timestamp:e.timestamp,captchaSign:e.captcha_sign,useVideoUrl:e.use_video_url,space:e.space||"",captchaToken:e.captcha_token||"",creditKey:e.credit_key||"",onPersistToken:async s=>{this.onPersistCallback&&await this.onPersistCallback({refresh_token:s.refresh_token,captcha_token:this.client.captchaToken,device_id:i})},onPersistCaptchaToken:async s=>{this.onPersistCallback&&await this.onPersistCallback({captcha_token:s})}})}async init(){let e=this.addition,t="";e.login_type==="refresh_token"?t=Bc(e.refresh_token||""):t=Bc(`${e.username||""}${e.password||""}`),(this.identity!==t||!await this.client.isLogin())&&(this.identity=t,e.login_type==="refresh_token"&&e.refresh_token?await this.client.refreshToken(e.refresh_token):e.username&&e.password&&await this.client.login(e.username,e.password))}}});function o4(r){if(!r)return new Date().toISOString();let e=r.trim(),t=new Date(e);if(!isNaN(t.getTime()))return t.toISOString();let i=Date.now(),n=864e5,s=e.match(uj);if(s){let o=parseFloat(s[1])||0,a=s[2];if(a.includes("\u79D2\u524D"))return new Date(i-o*1e3).toISOString();if(a.includes("\u5206")||a.includes("\u5206\u949F\u524D"))return new Date(i-o*6e4).toISOString();if(a.includes("\u5C0F\u65F6\u524D")||a.includes("\u5C0F\u65F6"))return new Date(i-o*36e5).toISOString();if(a.includes("\u5929\u524D")||a.includes("\u5929"))return new Date(i-o*n).toISOString();if(a.includes("\u6628\u5929"))return new Date(i-n).toISOString();if(a.includes("\u524D\u5929"))return new Date(i-n*2).toISOString()}return new Date().toISOString()}function a4(r){if(!r)return 0;let e=r.trim().match(fj);if(!e)return 0;let t=parseFloat(e[1]);switch(e[2].toUpperCase()){case"B":return Math.floor(t);case"K":return Math.floor(t*1024);case"M":return Math.floor(t*1048576);case"G":return Math.floor(t*1073741824);default:return 0}}function df(r){return r.replace(/<!--[\s\S]*?-->|[^:]\/\/.*|\/\*[\s\S]*?\*\//g,e=>e.slice(1,3)==="//"?e.slice(0,1):` +`)}function c4(r){let e="",t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];if(i&&(s===` +`||s==="\r")){i=!1,e+=s;continue}if(t&&s==="*"&&n+1<r.length&&r[n+1]==="/"){t=!1,n++;continue}if(!(t||i)){if(s==="/"&&n+1<r.length){let o=r[n+1];if(o==="*"){t=!0,n++;continue}else if(o==="/"){i=!0,n++;continue}}e+=s}}return e}function hj(r){let e=[6,28,34,31,33,18,30,23,9,8,19,38,17,24,0,5,32,21,10,22,25,14,15,3,16,27,13,35,2,29,11,26,4,36,1,39,37,7,20,12],t=new Array(r.length).fill("");for(let i=0;i<e.length;i++){let n=e[i];n<t.length&&i<r.length&&(t[n]=r[i])}return t.join("")}function gj(r,e){let t=Math.min(r.length,e.length),i=Math.floor(t/2),n="";for(let s=0;s<i;s++){let o=parseInt(r.slice(s*2,s*2+2),16),a=parseInt(e.slice(s*2,s*2+2),16),c=o^a;n+=c.toString(16).padStart(2,"0")}return n}function Mp(r){let e=r.match(Aj);if(!e||e.length<2)throw new Error("[Lanzou] \u65E0\u6CD5\u5339\u914D\u5230 acw_sc__v2 \u7684 arg1 \u53C2\u6570");let t=e[1];return gj(hj(t),"3000176000856006061501533003690027800375")}function pj(r,e){if(!r||!e)return"";let t=i=>{for(let n=i.length-1;n>=0;n--){let s=(i[n][1]||"").trim().replace(/^['"]|['"]$/g,"");if(s)return s}return""};if(r!=="sasign"){let i=Array.from(e.matchAll(new RegExp(`(?:var|let|const)\\s+${r}\\s*=\\s*['"]?([\\s\\S]*?)['"]?;`,"gi")));if(i.length){let o=t(i);if(o)return o}let n=Array.from(e.matchAll(new RegExp(`(?:^|[;,\\s])${r}\\s*=\\s*['"]?([\\s\\S]*?)['"]?;`,"gim")));if(n.length){let o=t(n);if(o)return o}let s=Array.from(e.matchAll(new RegExp(`['"]?${r}['"]?\\s*:\\s*['"]?([\\s\\S]*?)['"]?`,"gi")));if(s.length){let o=t(s);if(o)return o}}else{let i=Array.from(e.matchAll(new RegExp(`(?:var|let|const)?\\s*${r}\\s*=\\s*['"]?([\\s\\S]*?)['"]?;`,"gi")));if(i.length===3)return i[1][1].trim().replace(/^['"]|['"]$/g,"");if(i.length>0)return t(i)}return""}function mj(r,e){let t={},i=/['"]?([a-zA-Z0-9_$]+)['"]?\s*:\s*(['"]?([^'",}\s]+)['"]?)/g,n=r.matchAll(i);for(let s of n){let o=s[1],a=s[2],c=s[3];if(!c)t[o]="";else if(a.includes("'")||a.includes('"')||/^\d+$/.test(a))t[o]=c;else{let l=pj(c,e);t[o]=l!==""?l:c}}return t}function yj(r){let e={},t=r.split("&");for(let i of t){let[n,s]=i.split("=");n&&(e[decodeURIComponent(n)]=decodeURIComponent(s||""))}return e}function zl(r,e){let t=e||r,i=Array.from(r.matchAll(/data\s*:\s*({[\s\S]*?})/g));if(i.length>0){let s=i[0][1];for(let a of i)a[1].length>s.length&&(s=a[1]);let o=mj(s,t);if(Object.keys(o).length>0)return o}let n=r.match(/data\s*:\s*['"]([^'"]+)['"]/);if(n&&n[1].includes("="))return yj(n[1]);throw new Error("[Lanzou] \u672A\u80FD\u627E\u5230\u8BF7\u6C42\u53C2\u6570 data \u5BF9\u8C61")}function l4(r,e){let t=new RegExp(`function\\s+${e}\\s*\\([^)]*\\)\\s*\\{`,"i"),i=r.search(t);if(i===-1)throw new Error(`[Lanzou] \u672A\u627E\u5230\u51FD\u6570 ${e}`);let n=0,s=-1;for(let o=i;o<r.length;o++)if(r[o]==="{")n===0&&(s=o),n++;else if(r[o]==="}"&&(n--,n===0))return r.slice(i,o+1);return r.slice(i)}var uj,fj,Aj,lE=J(()=>{"use strict";uj=/([0-9.]*)\s*([\u4e00-\u9fa5]+)/,fj=/([0-9.]+)\s*([bkm]+)/i,Aj=/arg1='([0-9A-Z]+)'/i});function Hp(r,e){try{let t=new URL(r);return t.host=e,t.toString()}catch{return r}}function Kp(r){try{return new URL(r).host}catch{return""}}var Lp,dE,Gp,d4=J(()=>{"use strict";lE();Lp=["pan.lanzoui.com","lanzouw.com","lanzoux.com","lanzouy.com","lanzou.com"],dE="[Lanzou] Cookie \u5DF2\u8FC7\u671F\u6216\u5931\u6548\uFF0C\u8BF7\u5728\u7BA1\u7406\u540E\u53F0\u91CD\u65B0\u586B\u5199 Cookie\uFF08\u6709\u6548\u671F\u7EA6 15 \u5929\uFF09",Gp=class{addition;cookie="";uid="";vei="";onCookieUpdate;acwMap=new Map;workingShareHost="";constructor(e,t){this.addition=e,this.cookie=(e.cookie||"").trim(),this.onCookieUpdate=t}getBaseUrl(){return(this.addition.baseUrl||this.addition.base_url||"https://pc.woozooo.com").replace(/\/$/,"")}getShareUrl(){return(this.addition.shareUrl||this.addition.share_url||"https://pan.lanzoui.com").replace(/\/$/,"")}shareHost(){try{return new URL(this.getShareUrl()).host}catch{return"pan.lanzoui.com"}}getUserAgent(){return this.addition.user_agent||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}getCookie(){return this.cookie}updateCookie(e,t){if(!e)return;let i=e.match(/(?:^|,\s*)acw_sc__v2=([^;,\s]+)/i);i&&i[1]&&this.acwMap.set(t||this.shareHost(),i[1]);let n=this.cookie?this.cookie.split(";").map(a=>a.trim()):[],s=e.split(/,(?=[a-zA-Z0-9_\-]+=[^;]+)/);for(let a of s){let c=a.split(";")[0].trim(),l=c.indexOf("=");if(l>0){let d=c.slice(0,l).trim(),u=c.slice(l+1).trim(),f=n.findIndex(h=>h.startsWith(`${d}=`));f!==-1?n[f]=`${d}=${u}`:n.push(`${d}=${u}`)}}let o=n.filter(Boolean).join("; ");o!==this.cookie&&(this.cookie=o,this.onCookieUpdate?.(this.cookie))}async init(){let e=this.addition.type||"cookie";if(e==="account"?(await this.login(),await this.initVeiAndUid()):e==="cookie"&&this.cookie&&await this.initVeiAndUid(),!this.acwMap.has(this.shareHost()))try{await this.request(`${this.getShareUrl()}/`,"GET")}catch{}}async probeShareDomain(e){let t=(e||"").replace(/^\//,"");if(!t)return this.getShareUrl();try{let i=await this.request(`${this.getShareUrl()}/${t}`,"GET");return this.extractRealShareDomain(i)||this.getShareUrl()}catch{return this.getShareUrl()}}extractRealShareDomain(e){let t=[],i=e.match(/<iframe[^>]*?src=["'](https?:\/\/[^"'/]+)/i);i&&t.push(i[1]);let n=e.match(/["'](https?:\/\/[^"']*?\/fn\?[^"']*)["']/i);n&&t.push(n[1]);let s=e.match(/["']?(?:dom|url)\s*[:=]\s*["']?(https?:\/\/[^"'\s]+)/i);s&&t.push(s[1]);for(let o of t)try{let a=new URL(o);return`${a.protocol}//${a.host}`}catch{}return""}async login(){if(!this.addition.account||!this.addition.password)throw new Error("[Lanzou] \u8D26\u53F7\u6A21\u5F0F\u4E0B\u5FC5\u987B\u63D0\u4F9B\u8D26\u53F7\u4E0E\u5BC6\u7801");for(let e=0;e<3;e++){let t={"User-Agent":this.getUserAgent(),Referer:"https://pc.woozooo.com","Content-Type":"application/x-www-form-urlencoded"};this.acwMap.has("up.woozooo.com")&&(t.Cookie=`acw_sc__v2=${this.acwMap.get("up.woozooo.com")}`);let i=await fetch("https://up.woozooo.com/mlogin.php",{method:"POST",headers:t,body:new URLSearchParams({task:"3",uid:this.addition.account,pwd:this.addition.password,setSessionId:"",setSig:"",setScene:"",setTocen:"",formhash:""})});this.updateCookie(i.headers.get("set-cookie"),"up.woozooo.com");let n=await i.text();if(n.includes("acw_sc__v2")){this.acwMap.set("up.woozooo.com",Mp(n));continue}let s;try{s=JSON.parse(n)}catch{throw new Error(`[Lanzou] \u767B\u5F55\u54CD\u5E94\u5F02\u5E38: ${n.slice(0,200)}`)}if(s.zt!==1)throw new Error(`[Lanzou] \u767B\u5F55\u5931\u8D25: ${s.info||n}`);return}throw new Error("[Lanzou] \u767B\u5F55\u591A\u6B21\u89E6\u53D1 WAF \u6821\u9A8C\u5931\u8D25")}async initVeiAndUid(){let e=await this.request(`${this.getBaseUrl()}/mydisk.php?item=files&action=index`,"GET"),t=e.match(/uid=([^'"&;]+)/);if(!t)throw new Error(dE);this.uid=t[1];let i=df(e);try{let n=zl(i);this.vei=n.vei||""}catch{let n=e.match(/['"]?vei['"]?\s*:\s*['"]?([^'",\s]+)['"]?/);n&&(this.vei=n[1])}}async request(e,t="GET",i,n){let s=e,o=Kp(e),a=o===this.shareHost()||Lp.includes(o);a&&this.workingShareHost&&o!==this.workingShareHost&&(s=Hp(e,this.workingShareHost));let c=a,l=c?Lp.filter(u=>!e.includes(u)):[],d=u=>{let f=Kp(u),h=f===this.shareHost()||Lp.includes(f),g;return h?n&&Lp.includes(Kp(n))||n&&Kp(n)===this.shareHost()?g=Hp(n,f):g=`${new URL(u).origin}/`:g=n||this.getBaseUrl(),this.requestOnce(u,t,i,g,f)};try{return await d(s)}catch(u){if(!(c&&(u?.status===403||u?.status===405||/403|405/.test(u?.message||""))))throw u;for(let h of l){let g=Hp(s,h);try{let p=await d(g);return this.workingShareHost=h,p}catch(p){if(!(p?.status===403||p?.status===405||/403|405/.test(p?.message||"")))throw p}}throw u}}async requestOnce(e,t,i,n,s){for(let o=0;o<3;o++){let a={Referer:n,"User-Agent":this.getUserAgent(),"Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8","X-Requested-With":"XMLHttpRequest","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin",Accept:"*/*"},c=(()=>{try{return new URL(n).host}catch{return""}})();c===s&&(a.Origin=n.slice(0,n.indexOf(c)+c.length));let l=this.cookie;e.includes("/file/")&&(l=(l?l+"; ":"")+"down_ip=1");let d=this.acwMap.get(s);d&&(l=(l?l+"; ":"")+`acw_sc__v2=${d}`),l&&(a.Cookie=l);let u;i&&t==="POST"&&(a["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",u=new URLSearchParams(i).toString());let f=await fetch(e,{method:t,headers:a,body:u});if(this.updateCookie(f.headers.get("set-cookie"),s),f.status===403||f.status===405){let g=new Error(`[Lanzou] ${e} \u8FD4\u56DE HTTP ${f.status}`);throw g.status=f.status,g}if(f.status===429||f.status>=500||f.status===408){if(o<2){await new Promise(p=>setTimeout(p,300*(o+1)));continue}let g=new Error(`[Lanzou] ${e} \u8FD4\u56DE HTTP ${f.status}\uFF08\u591A\u6B21\u91CD\u8BD5\u4ECD\u5931\u8D25\uFF09`);throw g.status=f.status,g}let h=await f.text();if(h.includes("acw_sc__v2")){this.acwMap.set(s,Mp(h));continue}return h}throw new Error("[Lanzou] \u8BF7\u6C42\u89E6\u53D1 acw_sc__v2 \u6821\u9A8C\u8D85\u9650")}async doupload(e){let t=`${this.getBaseUrl()}/doupload.php?uid=${this.uid}&vei=${this.vei}`,i=await this.request(t,"POST",e),n;try{n=JSON.parse(i)}catch{throw new Error(`[Lanzou] \u975E JSON \u54CD\u5E94: ${i.slice(0,200)}`)}if(n.zt===9){if(this.addition.type==="account")return await this.login(),await this.initVeiAndUid(),this.doupload(e);throw new Error(dE)}if(n.zt!==1&&n.zt!==2&&n.zt!==4)throw new Error(n.inf||n.info||`[Lanzou] API \u9519\u8BEF (zt: ${n.zt})`);return n}async checkCookieValid(){if(this.addition.type==="url")return{valid:!0};try{return this.addition.type==="account"?{valid:!0}:(await this.getFiles("-1"),{valid:!0})}catch(e){let t=e?.message||String(e);return{valid:!1,error:/Cookie 已过期|未能获取到 uid|请检查 Cookie|zt=9/i.test(t)?dE:t}}}async getAllFiles(e){let t=await this.getFolders(e),i=await this.getFiles(e);return[...t,...i]}async getFolders(e){return((await this.doupload({task:"47",folder_id:e||"-1"})).text||[]).map(n=>({...n,name:n.name,fol_id:n.fol_id||n.id,is_folder:!0}))}async getFiles(e){let t=[];for(let i=1;;i++){let s=(await this.doupload({task:"5",folder_id:e||"-1",pg:String(i)})).text||[];if(s.length===0)break;t.push(...s.map(o=>({...o,name_all:o.name_all||o.name,id:o.id,size:o.size,time:o.time,is_folder:!1})))}return t}async getFileShareUrlById(e){return(await this.doupload({task:"22",file_id:e})).info||{}}async getFileOrFolderByShareUrl(e,t=""){let i=e.replace(/^\//,""),n=await this.request(`${this.getShareUrl()}/${i}`,"GET");if(n.includes("\u53D6\u6D88\u5206\u4EAB"))throw new Error("[Lanzou] \u8BE5\u6587\u4EF6\u5DF2\u53D6\u6D88\u5206\u4EAB");if(n.includes("\u6587\u4EF6\u4E0D\u5B58\u5728"))throw new Error("[Lanzou] \u6587\u4EF6\u4E0D\u5B58\u5728");return/class="fileinfo"|id="file"|文件描述/i.test(n)?[await this.getFilesByShareUrl(i,t,n)]:this.getFolderByShareUrl(t,n)}async getFolderByShareUrl(e,t){let i=df(t),n={};try{n=zl(i)}catch{n={}}let s=[],o=Array.from(t.matchAll(/(?:folderlink|mbxfolder)[^>]*href=["']\/?([^"']+)["'][^>]*>(.+?)<\//gi));for(let a of o)s.push({id:a[1],name_all:a[2].trim(),is_folder:!0});n.pwd=e||this.addition.share_password||"";for(let a=1;;a++){n.pg=String(a);let c=await this.request(`${this.getShareUrl()}/filemoreajax.php`,"POST",n),l;try{l=JSON.parse(c)}catch{break}if(l.zt!==1||!Array.isArray(l.text)||l.text.length===0)break;let d=l.text;s.push(...d.map(u=>({id:u.id,name_all:u.name_all||u.name,size:u.size,time:u.time,is_folder:!1,pwd:n.pwd})))}return s}async getFilesByShareUrl(e,t="",i,n){let s=e.replace(/^\//,""),o=(n||await this.probeShareDomain(s)).replace(/\/+$/,""),a=`${o}/${s}`,c=i;c||(c=await this.request(a,"GET")),c=df(c),c=c4(c);let l={},d="",u="",f={id:s,is_folder:!1};if(c.includes("pwdload")||c.includes("passwddiv")){let B=l4(c,"down_p");l=zl(B,c),l.p=t||this.addition.share_password||"";let C=B.match(/['"]?\/?ajax(?:file|m)\.php\?file=(\d+)['"]?/)||c.match(/['"]?\/?ajax(?:file|m)\.php\?file=(\d+)['"]?/)||B.match(/file\s*[:=]\s*['"]?(\d+)['"]?/)||c.match(/file\s*[:=]\s*['"]?(\d+)['"]?/)||B.match(/var\s+file_id\s*=\s*['"]?(\d+)['"]?/)||c.match(/var\s+file_id\s*=\s*['"]?(\d+)['"]?/),x=C?C[1]:"";if(!x)throw new Error("[Lanzou] \u672A\u627E\u5230\u6587\u4EF6 ID");let Q=await this.request(`${o}/ajaxfile.php?file=${x}`,"POST",l,a),R;try{R=JSON.parse(Q)}catch{throw new Error(`[Lanzou] ajaxfile.php \u54CD\u5E94\u683C\u5F0F\u9519\u8BEF: ${Q}`)}if(R.zt!==1)throw new Error(R.info||R.text||`[Lanzou] \u5BC6\u7801\u9519\u8BEF\u6216\u63D0\u53D6\u94FE\u63A5\u5931\u8D25 (zt=${R.zt})`);f.name_all=R.inf||"download",d=`${R.dom}/file`,u=`${d}/${R.url}`}else{let B=c.match(/<iframe[^>]*?src=["']([^"']+)["']/i)||c.match(/href=["'](\/fn\?[^"']+)["']/i)||c.match(/["'](\/fn\?[^"']+)["']/i);if(!B)throw new Error("[Lanzou] \u672A\u627E\u5230\u4E0B\u8F7D\u9875\u9762 iframe \u53C2\u6570");let C=B[1],x=`${o}${C.startsWith("/")?"":"/"}${C}`,Q=await this.request(x,"GET",void 0,a),R=df(Q);l=zl(R,R);let U=R.match(/['"]?\/?ajax(?:file|m)\.php\?file=(\d+)['"]?/)||R.match(/file\s*[:=]\s*['"]?(\d+)['"]?/)||R.match(/file=(\d+)/)||R.match(/var\s+file_id\s*=\s*['"]?(\d+)['"]?/),T=U?U[1]:"";if(!T)throw new Error("[Lanzou] \u672A\u627E\u5230\u6587\u4EF6 ID");let D=await this.request(`${o}/ajaxfile.php?file=${T}`,"POST",l,x),b;try{b=JSON.parse(D)}catch{throw new Error(`[Lanzou] ajaxfile.php \u54CD\u5E94\u683C\u5F0F\u9519\u8BEF: ${D}`)}if(b.zt!==1)throw new Error(b.info||b.text||`[Lanzou] \u63D0\u53D6\u94FE\u63A5\u5931\u8D25 (zt=${b.zt})`);d=`${b.dom}/file`,u=`${d}/${b.url}`;let _=c.match(/<title>(.+?) - 蓝奏云<\/title>|id="filenajax">(.+?)<\/div>|var filename = ['"](.+?)['"];|<div style="font-size[^>]*>([^<>]+)<\/div>|<div class="filethetext"[^>]*>([^<>]+)<\/div>/i);if(_){for(let v=1;v<_.length;v++)if(_[v]){f.name_all=_[v].trim();break}}}let g=c.match(/大小\W*([0-9.]+\s*[bkm]+)/i);g&&(f.size=g[1]);let p=c.match(/\d+\s*[秒天分小][钟时]?前|[昨前]天|\d{4}-\d{2}-\d{2}/);p&&(f.time=p[0]);let I=u,m="",w=!1;for(let B=0;B<3;B++){let C={Referer:d,"User-Agent":this.getUserAgent(),"Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"},x="down_ip=1";m&&(x+=`; acw_sc__v2=${m}`),C.Cookie=x;let Q;try{Q=await fetch(u,{method:"GET",headers:C,redirect:"manual"})}catch{if(B<2){await new Promise(U=>setTimeout(U,400*(B+1)));continue}throw new Error("[Lanzou] \u76F4\u94FE\u63A2\u6D4B\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}if(Q.status===301||Q.status===302||Q.status===303||Q.status===307||Q.status===308){let U=Q.headers.get("location");if(U){I=new URL(U,u).toString(),w=!0;break}}if(Q.status===200&&Q.url&&Q.url!==u){I=Q.url,w=!0;break}if(Q.status===429||Q.status>=500){if(B<2){await new Promise(U=>setTimeout(U,400*(B+1)));continue}throw new Error(`[Lanzou] \u76F4\u94FE\u63A2\u6D4B\u8FD4\u56DE HTTP ${Q.status}\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5`)}let R=await Q.text();if(R.includes("acw_sc__v2")){m=Mp(R);continue}try{let U=zl(R,R);U.el="2",await new Promise(b=>setTimeout(b,1500));let T=await this.request(`${d}/ajax.php`,"POST",U,d),D=JSON.parse(T);if(D.url){I=D.url.startsWith("http")?D.url:new URL(D.url,d).toString(),w=!0;break}}catch{if(B<2){await new Promise(U=>setTimeout(U,600*(B+1)));continue}}break}if(!w)throw new Error("[Lanzou] \u76F4\u94FE\u89E3\u6790\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");return f.url=I,f}async getFileRealInfo(e){try{let t=await fetch(e,{method:"HEAD",headers:{"User-Agent":this.getUserAgent()}}),i=t.headers.get("content-length"),n=t.headers.get("last-modified");return{size:i?parseInt(i,10):void 0,time:n?new Date(n).toISOString():void 0}}catch{return{}}}async mkdir(e,t){await this.doupload({task:"2",parent_id:e||"-1",folder_name:t,folder_description:""})}async rename(e,t){await this.doupload({task:"46",file_id:e,file_name:t,type:"2"})}async move(e,t){await this.doupload({task:"20",file_id:e,folder_id:t})}async remove(e,t){t?await this.doupload({task:"3",folder_id:e}):await this.doupload({task:"6",file_id:e})}}});function Ij(r){let e={...r||{}};return e.type=e.type||"cookie",e.account=e.account||"",e.password=e.password||"",e.cookie=(e.cookie||"").trim(),e.root_folder_id=e.root_folder_id||(e.type==="url"?"":"-1"),e.share_password=e.share_password||"",e.baseUrl=e.baseUrl||"https://pc.woozooo.com",e.shareUrl=e.shareUrl||"https://pan.lanzoui.com",e.user_agent=e.user_agent||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",e.repair_file_info=!!e.repair_file_info,e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e}function uE(r,e){let t=!!r.is_folder||!!r.fol_id,i=r.name_all||r.name||"",n=e?.size!==void 0?e.size:a4(r.size||"0"),s=e?.time?e.time:o4(r.time||""),o=r.fol_id||r.id||"";return{name:i,size:n,is_dir:t,modified:s,sign:o,type:X(i,t),thumb:"",raw_url:r.url||""}}var zp,u4=J(()=>{"use strict";Be();He();d4();lE();zp=class{client;addition;pathIdCache=new Map;constructor(e,t){this.addition=Ij(e),this.client=new Gp(this.addition,t)}async init(){await this.client.init()}async checkCookieValid(){return this.client.checkCookieValid()}isUrlMode(){return this.addition.type==="url"}getRootId(){return this.addition.root_folder_id||(this.isUrlMode()?"":"-1")}async resolveFolderId(e){let t=this.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=0,o=t,a="";for(let c=0;c<n.length;c++){let l="/"+n.slice(0,c+1).join("/"),d=this.pathIdCache.get(l);if(d!==void 0)o=d,s=c+1,a=l;else break}for(let c=s;c<n.length;c++){let l=n[c],d=(()=>{try{return decodeURIComponent(l)}catch{return l}})(),f=(this.isUrlMode()?await this.client.getFileOrFolderByShareUrl(o,this.addition.share_password):await this.client.getFolders(o)).find(h=>{if(!h.is_folder&&!h.fol_id)return!1;let g=h.name||h.name_all||"",p=h.fol_id||h.id||"";return g===l||g===d||p===l||p===d});if(!f)throw new Error(`[Lanzou] \u76EE\u5F55\u672A\u627E\u5230: ${l}`);o=f.fol_id||f.id||"",a="/"+n.slice(0,c+1).join("/"),this.pathIdCache.set(a,o)}return o}async resolveItem(e){let t="/"+String(e||"").split("/").filter(Boolean).join("/"),i=t.split("/").filter(Boolean);if(i.length===0)throw new Error("[Lanzou] \u8DEF\u5F84\u65E0\u6548");let n=i[i.length-1],s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o="/"+i.slice(0,i.length-1).join("/"),a=await this.resolveFolderId(o),l=(this.isUrlMode()?await this.client.getFileOrFolderByShareUrl(a,this.addition.share_password):await this.client.getAllFiles(a)).find(u=>{let f=u.name_all||u.name||"",h=u.fol_id||u.id||"";return f===n||f===s||h===n||h===s});if(!l)throw new Error(`[Lanzou] \u6587\u4EF6\u6216\u76EE\u5F55\u672A\u627E\u5230: ${n}`);let d=!!(l.is_folder||l.fol_id);return d&&this.pathIdCache.set(t,l.fol_id||l.id||""),{item:l,parentId:a,isDir:d}}async list(e,t){let i=await this.resolveFolderId(t),s=(this.isUrlMode()?await this.client.getFileOrFolderByShareUrl(i,this.addition.share_password):await this.client.getAllFiles(i)).map(o=>uE(o));return de(s,this.addition.order_by==="name"?"file_name":this.addition.order_by==="size"?"size":"updated_at",this.addition.order_direction)}async get(e,t){let i=String(t||"").split("/").filter(Boolean);if(i.length===0||i[i.length-1]===this.getRootId()){let l=this.getRootId();return{name:l||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:l,type:1,raw_url:""}}let{item:n,isDir:s}=await this.resolveItem(t);if(s)return uE(n);let o=n.url;if(!o)try{if(this.isUrlMode()){let l=await this.client.getFilesByShareUrl(n.id||"",n.pwd||this.addition.share_password||"",void 0,await this.client.probeShareDomain(n.id||""));o=l.url,n.name_all=l.name_all||n.name_all,n.size=l.size||n.size}else{let l=await this.client.getFileShareUrlById(n.id||""),d=l?.f_id||l?.id;if(d){let u=await this.client.getFilesByShareUrl(d,l.pwd||"",void 0);o=u.url,u.name_all&&(n.name_all=u.name_all),u.size&&(n.size=u.size)}}}catch(l){throw console.error(`[Lanzou] \u89E3\u6790\u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25 (${n.name_all||n.name}):`,l.message),new Error(`[Lanzou] \u83B7\u53D6\u4E0B\u8F7D\u76F4\u94FE\u5931\u8D25 (${n.name_all||n.name}): ${l.message}`)}if(!o)throw new Error(`[Lanzou] \u672A\u80FD\u83B7\u53D6\u5230\u4E0B\u8F7D\u76F4\u94FE (${n.name_all||n.name||t})`);let a;if(this.addition.repair_file_info&&o)try{a=await this.client.getFileRealInfo(o)}catch{}let c=uE(n,a);return c.raw_url=o||"",c.raw_url_headers={"User-Agent":this.client.getUserAgent()},c}async mkdir(e,t){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u65B0\u5EFA\u6587\u4EF6\u5939");let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u91CD\u547D\u540D");let{item:n,isDir:s}=await this.resolveItem(t);if(s)throw new Error("[Lanzou] \u84DD\u594F\u4E91\u4E0D\u652F\u6301\u91CD\u547D\u540D\u6587\u4EF6\u5939");await this.client.rename(n.id||"",i)}async remove(e,t,i){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u5220\u9664");let{item:n,isDir:s}=await this.resolveItem(t);await this.client.remove(n.fol_id||n.id||"",s)}async move(e,t,i,n,s){if(this.isUrlMode())throw new Error("[Lanzou] \u5206\u4EAB\u94FE\u63A5\u6A21\u5F0F\u4E0D\u652F\u6301\u79FB\u52A8");let{item:o,isDir:a}=await this.resolveItem(n);if(a)throw new Error("[Lanzou] \u84DD\u594F\u4E91\u4E0D\u652F\u6301\u79FB\u52A8\u6587\u4EF6\u5939");let c=String(t).split("/").filter(Boolean),l=await this.resolveFolderId("/"+c.join("/"));await this.client.move(o.id||"",l)}async copy(){throw new Error("[Lanzou] \u84DD\u594F\u4E91\u4E0D\u652F\u6301\u76F4\u63A5\u590D\u5236\u6587\u4EF6")}async put(){throw new Error("[Lanzou] Cloudflare Worker \u73AF\u5883\u6682\u4E0D\u652F\u6301\u76F4\u63A5\u6D41\u5F0F\u5199\u5165\uFF0C\u8BF7\u4F7F\u7528\u7F51\u9875\u7AEF\u8FDB\u884C\u6587\u4EF6\u4E0A\u4F20")}}});function wj(r){let e=r.replace(/\s+/g,""),t=atob(e),i=new Uint8Array(t.length);for(let n=0;n<t.length;n++)i[n]=t.charCodeAt(n);return i}function xj(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return btoa(e)}function Cj(r){return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function fE(r){let e=0n;for(let t=0;t<r.length;t++)e=e<<8n|BigInt(r[t]);return e}function Ej(r,e){let t=new Uint8Array(e),i=r;for(let n=e-1;n>=0;n--)t[n]=Number(i&0xffn),i>>=8n;return t}function Bj(r,e,t){let i=1n;for(r=r%t;e>0n;)e%2n===1n&&(i=i*r%t),r=r*r%t,e/=2n;return i}function bj(r){let e=r.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,""),t=wj(e),i=0;function n(){let l=t[i++],d=t[i++];if(d&128){let f=d&127;d=0;for(let h=0;h<f;h++)d=d<<8|t[i++]}return{tag:l,length:d,dataStart:i}}let s=[];function o(l,d){let u=l;for(;u<d;){let f=t[u++],h=t[u++];if(h&128){let p=h&127;h=0;for(let I=0;I<p;I++)h=h<<8|t[u++]}let g=u;if(u+=h,f===2){let p=t.subarray(g,g+h);p[0]===0&&p.length>1&&(p=p.subarray(1)),s.push(p)}else f===48||(f&32)!==0?o(g,g+h):f===3&&t[g]===0&&o(g+1,g+h)}}if(o(0,t.length),s.length<2)throw new Error("Failed to parse RSA public key: insufficient integers found");let a=s[0],c=s[1];if(a.length<c.length){let l=a;a=c,c=l}return{n:fE(a),e:fE(c),keyLength:a.length}}function Jp(r,e,t=!1){let{n:i,e:n,keyLength:s}=bj(e),o=typeof r=="string"?new TextEncoder().encode(r):r;if(o.length>s-11)throw new Error(`Data too long for RSA key size: ${o.length} > ${s-11}`);let a=s-o.length-3,c=new Uint8Array(a),l=new Uint8Array(a*2);crypto.getRandomValues(l);let d=0;for(let p=0;p<a;p++){let I=l[d++];for(;I===0;)d>=l.length&&(crypto.getRandomValues(l),d=0),I=l[d++];c[p]=I}let u=new Uint8Array(s);u[0]=0,u[1]=2,u.set(c,2),u[2+a]=0,u.set(o,3+a);let f=fE(u),h=Bj(f,n,i),g=Ej(h,s);return t?Cj(g):xj(g)}function f4(r,e){let t=typeof e=="string"?$r.default.enc.Utf8.parse(e.slice(0,16)):$r.default.lib.WordArray.create(Array.from(e.slice(0,16)),16),i=$r.default.enc.Utf8.parse(r);return $r.default.AES.encrypt(i,t,{mode:$r.default.mode.ECB,padding:$r.default.pad.Pkcs7}).ciphertext.toString($r.default.enc.Hex)}function uf(r,e){return $r.default.HmacSHA1(r,e).toString($r.default.enc.Hex)}function A4(r){return typeof r=="string"?$r.default.enc.Utf8.parse(r):$r.default.lib.WordArray.create(r)}function Jl(r){return $r.default.MD5(A4(r)).toString($r.default.enc.Hex)}function h4(r){return $r.default.MD5(A4(r)).toString($r.default.enc.Base64)}function jl(r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"){return r.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function AE(){return"0."+Math.floor(Math.random()*1e17).toString().padStart(17,"0")}var $r,jp=J(()=>{"use strict";$r=xr(Oo(),1)});function vj(r,e,t){let i=r?r.split(";").map(o=>o.trim()):[],n=`${e}=${t}`,s=i.findIndex(o=>o.startsWith(`${e}=`));return s!==-1?i[s]=n:i.push(n),i.filter(Boolean).join("; ")}function kj(r,e){if(!e)return r;let t=r,i=e.split(/,(?=\s*[a-zA-Z0-9_\-]+=[^;]+)/);for(let n of i){let s=n.split(";")[0].trim(),o=s.indexOf("=");if(o>0){let a=s.slice(0,o).trim(),c=s.slice(o+1).trim();t=vj(t,a,c)}}return t}function Sj(r){let e=r;if(typeof e.getSetCookie=="function"){let i=e.getSetCookie();if(i.length>0)return i}let t=r.get("set-cookie");return t?[t]:[]}function g4(r){let e=r.replace(/("id"\s*:\s*)(-?\d{16,})(?=\s*[,}])/g,'$1"$2"');return JSON.parse(e)}function hE(r){return r.protocol==="https:"&&Dj.has(r.hostname)}function gE(r){try{let e=new URL(r,"https://open.e.189.cn");return!!e.searchParams.get("lt")&&!!e.searchParams.get("reqId")}catch{return!1}}function pE(r){try{let e=new URL(r,"https://open.e.189.cn");return e.hostname==="cloud.189.cn"&&(e.pathname==="/web/main"||e.pathname==="/main.action")}catch{return!1}}var Dj,$p,p4=J(()=>{"use strict";jp();Dj=new Set(["cloud.189.cn","open.e.189.cn"]);$p=class{addition;cookie="";cookieDirty=!1;sessionKey="";rsa={pubKey:"",pkId:"",expire:0};constructor(e,t){this.addition=e,this.cookie=(e.cookie||"").trim()}getCookie(){return this.cookie}consumePendingCookie(){return this.cookieDirty?(this.cookieDirty=!1,this.cookie):null}getRootId(){return this.addition.root_folder_id||"-11"}setSessionKey(e){this.sessionKey=e}getDownloadHeaders(){let e={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://cloud.189.cn/"};return this.cookie&&(e.Cookie=this.cookie),e}async updateCookie(e){let t=Sj(e);if(t.length===0)return;let i=t.reduce((n,s)=>kj(n,s),this.cookie);i!==this.cookie&&(this.cookie=i,this.cookieDirty=!0)}async followRedirectsWithCookies(e,t){let i=e,n=[i];for(let s=0;s<=8;s++){let o=new URL(i);if(!hE(o))throw new Error(o.protocol!=="https:"?`[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5FC5\u987B\u4F7F\u7528 HTTPS: ${o.origin}`:`[189Cloud] \u4E0D\u53D7\u4FE1\u4EFB\u7684\u767B\u5F55\u91CD\u5B9A\u5411\u5730\u5740: ${o.origin}`);let a={...t};s>0&&(a.Referer=i),this.cookie&&(a.Cookie=this.cookie);let c=await fetch(i,{method:"GET",headers:a,redirect:"manual"});await this.updateCookie(c.headers);let l=c.headers.get("location");if(!(c.status>=300&&c.status<400)||!l){let f=i;if(c.url&&c.url!==i){let h=new URL(c.url,i);if(gE(h.toString())||pE(h.toString())){if(!hE(h))throw new Error(h.protocol!=="https:"?`[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5FC5\u987B\u4F7F\u7528 HTTPS: ${h.origin}`:`[189Cloud] \u4E0D\u53D7\u4FE1\u4EFB\u7684\u767B\u5F55\u91CD\u5B9A\u5411\u5730\u5740: ${h.origin}`);f=h.toString(),n.push(f)}}return{response:c,url:f,urls:n}}if(s===8)throw new Error("[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u6B21\u6570\u8FC7\u591A");let u=new URL(l,i);if(!hE(u))throw new Error(u.protocol!=="https:"?`[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5FC5\u987B\u4F7F\u7528 HTTPS: ${u.origin}`:`[189Cloud] \u4E0D\u53D7\u4FE1\u4EFB\u7684\u767B\u5F55\u91CD\u5B9A\u5411\u5730\u5740: ${u.origin}`);i=u.toString(),n.push(i)}throw new Error("[189Cloud] \u767B\u5F55\u91CD\u5B9A\u5411\u5931\u8D25")}async resolveLoginUrl(e,t){let i=e;for(let n=0;n<3;n++){let s=new URL(e);s.searchParams.set("noCache",AE());let o=await this.followRedirectsWithCookies(s.toString(),t);if(i=o.url,gE(o.url)||pE(o.url))return o.url;let a=o.urls.find(c=>gE(c));if(a)return a;n<2&&await new Promise(c=>setTimeout(c,150*(n+1)))}return i}async login(e={}){if(this.cookie&&!e.force)return;let t="https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https%3A%2F%2Fcloud.189.cn%2Fmain.action",i={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://cloud.189.cn/"};this.cookie&&(i.Cookie=this.cookie);let n=await this.resolveLoginUrl(t,i);if(pE(n))return;if(!this.addition.username||!this.addition.password){if(this.cookie)return;throw new Error("[189Cloud] \u8D26\u53F7\u6216\u5BC6\u7801\u4E3A\u7A7A\uFF0C\u4E14\u672A\u63D0\u4F9B\u6709\u6548 Cookie")}let s;try{s=new URL(n,"https://open.e.189.cn")}catch{s=new URL("https://open.e.189.cn"+n)}let o=s.searchParams.get("lt")||"",a=s.searchParams.get("reqId")||"",c=s.searchParams.get("appId")||"cloud";if(!o||!a)throw new Error("[189Cloud] \u767B\u5F55\u8DF3\u8F6C\u53C2\u6570\u4E0D\u5B8C\u6574\uFF0C\u672A\u83B7\u53D6\u5230 lt \u6216 reqId");let l=()=>{let x={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",lt:o,reqid:a,referer:n,origin:"https://open.e.189.cn","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json;charset=UTF-8"};return this.cookie&&(x.Cookie=this.cookie),x},d=await fetch("https://open.e.189.cn/api/logbox/oauth2/appConf.do",{method:"POST",headers:l(),body:new URLSearchParams({version:"2.0",appKey:c})});await this.updateCookie(d.headers);let u=await d.json();if(u.result!=="0"||!u.data)throw new Error(`[189Cloud] \u83B7\u53D6 AppConf \u5931\u8D25: ${u.msg||JSON.stringify(u)}`);let f=await fetch("https://open.e.189.cn/api/logbox/config/encryptConf.do",{method:"POST",headers:l(),body:new URLSearchParams({appId:c})});await this.updateCookie(f.headers);let h=await f.json();if(h.result!==0||!h.data?.pubKey)throw new Error(`[189Cloud] \u83B7\u53D6 EncryptConf \u5931\u8D25: ${JSON.stringify(h)}`);let g=h.data.pre||"",p=h.data.pubKey,I=g+Jp(this.addition.username,p,!0),m=g+Jp(this.addition.password,p,!0),w={version:"v2.0",apToken:"",appKey:c,accountType:u.data.accountType||"01",userName:I,epd:m,captchaType:"",validateCode:"",smsValidateCode:"",captchaToken:"",returnUrl:u.data.returnUrl||"https://cloud.189.cn/main.action",mailSuffix:u.data.mailSuffix||"@189.cn",dynamicCheck:"FALSE",clientType:String(u.data.clientType??"10010"),cb_SaveName:"3",isOauth2:String(u.data.isOauth2??!1),state:"",paramId:u.data.paramId||""},B=await fetch("https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do",{method:"POST",headers:{...l()},body:new URLSearchParams(w)});await this.updateCookie(B.headers);let C=await B.json();if(C.result!==0){let x=C.msg||"\u767B\u5F55\u5931\u8D25";throw x.includes("\u9A8C\u8BC1\u7801")||x.includes("\u6ED1\u5757")||x.includes("\u8BBE\u5907\u9501")?new Error(`[189Cloud] \u767B\u5F55\u89E6\u53D1\u9A8C\u8BC1\u7801/\u8BBE\u5907\u4FDD\u62A4: ${x}\u3002\u8BF7\u5728\u6D4F\u89C8\u5668\u767B\u5F55\u540E\u590D\u5236 Cookie \u586B\u5165\u914D\u7F6E\u3002`):new Error(`[189Cloud] \u767B\u5F55\u5931\u8D25: ${x}`)}C.toUrl&&await this.followRedirectsWithCookies(C.toUrl,{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"})}async request(e,t={}){let i=t.method||"GET",n=t.retryOnInvalidSession!==!1,s=new URL(e);if(s.searchParams.set("noCache",AE()),t.params)for(let[f,h]of Object.entries(t.params))h!==void 0&&s.searchParams.set(f,h);let o={Accept:"application/json;charset=UTF-8",Referer:"https://cloud.189.cn/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"};this.cookie&&(o.Cookie=this.cookie);let a;t.body&&(o["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",a=new URLSearchParams(t.body).toString());let c=await fetch(s.toString(),{method:i,headers:o,body:a});await this.updateCookie(c.headers);let l=await c.text(),d;try{d=g4(l)}catch{throw new Error(`[189Cloud] \u975E\u9884\u671F\u54CD\u5E94: ${l.slice(0,200)}`)}if(d.errorCode==="InvalidSessionKey"||d.res_code==="InvalidSessionKey"||String(d.res_code)==="1010"){if(n)return await this.login({force:!0}),this.request(e,{...t,retryOnInvalidSession:!1});throw new Error(d.errorMsg||d.res_message||"[189Cloud] \u767B\u5F55\u4F1A\u8BDD\u5DF2\u5931\u6548")}if(d.errorCode)throw new Error(d.errorMsg||`[189Cloud] API \u9519\u8BEF: ${d.errorCode}`);if(!c.ok)throw new Error(d.errorMsg||d.res_message||`[189Cloud] HTTP \u8BF7\u6C42\u5931\u8D25 (${c.status})`);if(d.res_code!==void 0&&String(d.res_code)!=="0")throw new Error(d.res_message||`189 API \u9519\u8BEF (res_code: ${d.res_code})`);return d}async getFilesPage(e,t,i){let n=this.addition.order_by||"lastOpTime",s=(this.addition.order_direction||"desc")==="desc"?"true":"false",o=await this.request("https://cloud.189.cn/api/open/file/listFiles.action",{method:"GET",params:{pageSize:i,pageNum:String(t),mediaType:"0",folderId:e||this.getRootId(),iconOption:"5",orderBy:n,descending:s}}),a=o.fileListAO?.count,c=typeof a=="number"?a:typeof a=="string"&&a.trim()!==""?Number(a):NaN;if(!o.fileListAO||typeof o.fileListAO!="object"||Array.isArray(o.fileListAO)||!Number.isFinite(c)||c<0||!Array.isArray(o.fileListAO.fileList)||!Array.isArray(o.fileListAO.folderList))throw new Error("[189Cloud] \u6587\u4EF6\u5217\u8868\u54CD\u5E94\u7F3A\u5C11\u6709\u6548\u7684 fileListAO \u6570\u7EC4\u5B57\u6BB5");return o}async validateRoot(e){await this.getFilesPage(e,1,"1")}async getFiles(e,t){let i=[],n=[],s=1,o="60";for(;;){if(t?.budget){if(t.budget.used>=t.budget.limit){console.warn("[189Cloud] Cloudflare Worker subrequest budget limit reached.");break}t.budget.used++}let c=(await this.getFilesPage(e,s,o)).fileListAO;if(Number(c.count)===0)break;let l=c.fileList||[],d=c.folderList||[];if(n.push(...d),i.push(...l),t?.findName&&(t.findIsDir&&d.some(u=>u.name===t.findName)||!t.findIsDir&&l.some(u=>u.name===t.findName))||l.length+d.length<parseInt(o,10))break;s++}return{files:i,folders:n}}async getDownloadUrl(e){let t=await this.request("https://cloud.189.cn/api/portal/getFileInfo.action",{method:"GET",params:{fileId:e}}),i=t.fileDownloadUrl||t.downloadUrl;if(!i)throw new Error(`[189Cloud] \u83B7\u53D6\u6587\u4EF6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25 (fileId: ${e})`);let n=i.startsWith("//")?"https:"+i:i;n=n.replace(/^http:\/\//i,"https://");try{let s=await fetch(n,{method:"GET",headers:this.getDownloadHeaders(),redirect:"manual"}),o=s.headers.get("location");s.status===302&&o&&(n=o.replace(/^http:\/\//i,"https://"))}catch{}return n}async getSessionKey(){let e=await this.request("https://cloud.189.cn/v2/getUserBriefInfo.action",{method:"GET"}),t=String(e.sessionKey||"");if(!t)throw new Error("[189Cloud] \u83B7\u53D6\u4E0A\u4F20 SessionKey \u5931\u8D25");return t}async getResKey(){if(this.rsa.pubKey&&this.rsa.pkId&&this.rsa.expire>Date.now())return this.rsa;let e=await this.request("https://cloud.189.cn/api/security/generateRsaKey.action",{method:"GET"}),t=String(e.pubKey||""),i=String(e.pkId||"");if(!t||!i)throw new Error("[189Cloud] \u83B7\u53D6\u4E0A\u4F20 RSA \u516C\u94A5\u5931\u8D25");return this.rsa={pubKey:t,pkId:i,expire:Number(e.expire)||Date.now()+5*6e4},this.rsa}async uploadRequest(e,t){this.sessionKey||(this.sessionKey=await this.getSessionKey());let i=String(Date.now()),n=jl(),s=jl("xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").slice(0,16+Math.floor(Math.random()*17)),o=Object.keys(t).sort().map(p=>`${p}=${t[p]}`).join("&"),a=f4(o,s.slice(0,16)),c=uf(`SessionKey=${this.sessionKey}&Operate=GET&RequestURI=${e}&Date=${i}¶ms=${a}`,s),{pubKey:l,pkId:d}=await this.getResKey(),u={accept:"application/json;charset=UTF-8",SessionKey:this.sessionKey,Signature:c,"X-Request-Date":i,"X-Request-ID":n,EncryptionText:Jp(s,l,!1),PkId:d};this.cookie&&(u.Cookie=this.cookie);let f=await fetch(`https://upload.cloud.189.cn${e}?params=${a}`,{method:"GET",headers:u});await this.updateCookie(f.headers);let h=await f.text();if(!f.ok)throw new Error(`[189Cloud] \u4E0A\u4F20\u63A5\u53E3 HTTP ${f.status}: ${h.slice(0,200)}`);let g;try{g=g4(h)}catch{throw new Error(`[189Cloud] \u4E0A\u4F20\u63A5\u53E3\u8FD4\u56DE\u65E0\u6548\u54CD\u5E94: ${h.slice(0,200)}`)}if(g.code!=="SUCCESS")throw new Error(g.msg||g.message||`[189Cloud] \u4E0A\u4F20\u63A5\u53E3\u5931\u8D25: ${e}`);return g}async createMultiUpload(e,t,i,n){let s=await this.getSessionKey();this.sessionKey=s;let o={parentFolderId:e,fileName:encodeURIComponent(t).replace(/%20/g,"+"),fileSize:String(i),sliceSize:String(10*1024*1024)},a;try{a=await this.uploadRequest("/person/initMultiUpload",{...o,fileMd5:n,sliceMd5:n})}catch(l){let d=String(l?.message||l);if(!/InfoSecurityErrorCode|file md5 is in black list|security check not pass/i.test(d))throw l;a=await this.uploadRequest("/person/initMultiUpload",{...o,lazyCheck:"1"})}let c=String(a.data?.uploadFileId||"");if(!c)throw new Error("[189Cloud] \u521B\u5EFA\u4E0A\u4F20\u4F1A\u8BDD\u5931\u8D25\uFF1A\u7F3A\u5C11 uploadFileId");return{uploadFileId:c,fileDataExists:String(a.data?.fileDataExists||"0")==="1",sessionKey:s}}async getMultiUploadUrls(e,t,i){let s=(await this.uploadRequest("/person/getMultiUploadUrls",{partInfo:`${t}-${h4(i)}`,uploadFileId:e})).uploadUrls?.[`partNumber_${t}`];if(!s?.requestURL)throw new Error(`[189Cloud] \u83B7\u53D6\u7B2C ${t} \u4E2A\u5206\u7247\u4E0A\u4F20\u5730\u5740\u5931\u8D25`);return s}async commitMultiUpload(e,t,i){await this.uploadRequest("/person/commitMultiUploadFile",{uploadFileId:e,fileMd5:t,sliceMd5:i,lazyCheck:"1",opertype:"3"})}async mkdir(e,t){await this.request("https://cloud.189.cn/api/open/file/createFolder.action",{method:"POST",body:{parentFolderId:e||this.getRootId(),folderName:t}})}async rename(e,t,i){let n=t?"https://cloud.189.cn/api/open/file/renameFolder.action":"https://cloud.189.cn/api/open/file/renameFile.action",s=t?{folderId:e,destFolderName:i}:{fileId:e,destFileName:i};await this.request(n,{method:"POST",body:s})}async batchTask(e,t,i=""){let n=t.map(s=>({fileId:s.id,fileName:s.name,isFolder:s.isFolder?1:0}));await this.request("https://cloud.189.cn/api/open/batch/createBatchTask.action",{method:"POST",body:{type:e,targetFolderId:i,taskInfos:JSON.stringify(n)}})}async move(e,t,i,n){await this.batchTask("MOVE",[{id:e,name:i,isFolder:t}],n)}async copy(e,t,i,n){await this.batchTask("COPY",[{id:e,name:i,isFolder:t}],n)}async remove(e,t,i){await this.batchTask("DELETE",[{id:e,name:i,isFolder:t}],"")}async getCapacityInfo(){return this.request("https://cloud.189.cn/api/portal/getUserSizeInfo.action",{method:"GET"})}}});function Fj(r){return Buffer.from(JSON.stringify(r),"utf8").toString("base64")}function m4(r){try{let e=JSON.parse(Buffer.from(r,"base64").toString("utf8"));if(!e||!e.uploadFileId||!e.sessionKey||!e.fileMd5||!Number.isInteger(e.partCount)||e.partCount<1||!Number.isInteger(e.chunkSize)||e.chunkSize<1)throw new Error("invalid upload session");return e}catch{throw new Error("[189Cloud] \u4E0A\u4F20\u4F1A\u8BDD\u65E0\u6548\u6216\u5DF2\u635F\u574F")}}function w4(r){if(!r)return new Date().toISOString();try{let e=new Date(r);if(!isNaN(e.getTime()))return e.toISOString()}catch{}return new Date().toISOString()}function y4(r){return{name:r.name,size:0,is_dir:!0,modified:w4(r.lastOpTime),sign:String(r.id),type:1,thumb:"",raw_url:""}}function I4(r){return{name:r.name,size:r.size||0,is_dir:!1,modified:w4(r.lastOpTime),sign:String(r.id),type:X(r.name,!1),thumb:r.icon?.smallUrl||r.icon?.largeUrl||"",raw_url:""}}function Pj(r){let e={...r||{}};return e.username=e.username||"",e.password=e.password||"",e.cookie=(e.cookie||"").trim(),e.root_folder_id=e.root_folder_id||"-11",e.order_by=e.order_by||"lastOpTime",e.order_direction=e.order_direction||"desc",e}var Qj,_j,Vp,x4=J(()=>{"use strict";Be();He();p4();jp();Qj=45,_j=10*1024*1024;Vp=class{client;addition;pathIdCache=new Map;budget={used:0,limit:Qj};constructor(e,t){this.addition=Pj(e),this.client=new $p(this.addition,t)}async init(){await this.client.login()}consumePendingCookie(){return this.client.consumePendingCookie()}async resolveFolderId(e){let t=this.client.getRootId(),i="/"+String(e||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${t}`)return t;let n=i.split("/").filter(Boolean),s=0,o=t,a="";for(let c=0;c<n.length;c++){let l="/"+n.slice(0,c+1).join("/"),d=this.pathIdCache.get(l);if(d!==void 0)o=d,s=c+1,a=l;else break}for(let c=s;c<n.length;c++){let l=n[c],d=(()=>{try{return decodeURIComponent(l)}catch{return l}})(),{folders:u}=await this.client.getFiles(o,{findName:d,findIsDir:!0,budget:this.budget}),f=u.find(h=>h.name===l||h.name===d||String(h.id)===l||String(h.id)===d);if(!f)throw new Error(`[189Cloud] \u76EE\u5F55\u672A\u627E\u5230: ${l}`);o=String(f.id),a="/"+n.slice(0,c+1).join("/"),this.pathIdCache.set(a,o)}return o}async resolveFile(e){let t=String(e||"").split("/").filter(Boolean);if(t.length===0)throw new Error("[189Cloud] \u8DEF\u5F84\u65E0\u6548");let i=t[t.length-1],n=(()=>{try{return decodeURIComponent(i)}catch{return i}})(),s="/"+t.slice(0,t.length-1).join("/"),o=await this.resolveFolderId(s),{files:a,folders:c}=await this.client.getFiles(o,{findName:n,budget:this.budget}),l=a.find(u=>u.name===i||u.name===n||String(u.id)===i||String(u.id)===n);if(l)return{file:l,parentId:o,isDir:!1};let d=c.find(u=>u.name===i||u.name===n||String(u.id)===i||String(u.id)===n);if(d)return{file:d,parentId:o,isDir:!0};throw new Error(`[189Cloud] \u6587\u4EF6\u6216\u76EE\u5F55\u672A\u627E\u5230: ${i}`)}async list(e,t){this.budget.used=0;let i=await this.resolveFolderId(t),{files:n,folders:s}=await this.client.getFiles(i,{budget:this.budget}),o=[...s.map(y4),...n.map(I4)];return de(o,this.addition.order_by==="filename"?"file_name":this.addition.order_by==="fileSize"?"size":"updated_at",this.addition.order_direction)}async get(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean);if(i.length===0||i[i.length-1]===this.client.getRootId()){let a=this.client.getRootId();return{name:a,size:0,is_dir:!0,modified:new Date().toISOString(),sign:a,type:1,raw_url:""}}let{file:n,isDir:s}=await this.resolveFile(t);if(s)return y4(n);let o=I4(n);try{o.raw_url=await this.client.getDownloadUrl(String(n.id)),o.raw_url_headers=this.client.getDownloadHeaders()}catch(a){console.warn(`[189Cloud] \u83B7\u53D6 ${n.name} \u4E0B\u8F7D\u5730\u5740\u5931\u8D25:`,a.message)}return o}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolderId(s);await this.client.mkdir(o,n)}async rename(e,t,i){this.budget.used=0;let{file:n,isDir:s}=await this.resolveFile(t);await this.client.rename(String(n.id),s,i)}async remove(e,t,i){this.budget.used=0;let{file:n,isDir:s}=await this.resolveFile(t);await this.client.remove(String(n.id),s,n.name)}async move(e,t,i,n,s){this.budget.used=0;let{file:o,isDir:a}=await this.resolveFile(n),c=String(t).split("/").filter(Boolean),l=await this.resolveFolderId("/"+c.join("/"));await this.client.move(String(o.id),a,o.name,l)}async copy(e,t,i,n,s){this.budget.used=0;let{file:o,isDir:a}=await this.resolveFile(n),c=String(t).split("/").filter(Boolean),l=await this.resolveFolderId("/"+c.join("/"));await this.client.copy(String(o.id),a,o.name,l)}async put(e,t,i){let n=String(t||"").split("/").filter(Boolean),s=n.pop();if(!s)throw new Error("[189Cloud] \u4E0A\u4F20\u8DEF\u5F84\u65E0\u6548");let o="/"+n.join("/"),a=await this.createUploadSession(o,o,s,i.length,Jl(i));if(a.reuse)return;let c=[];for(let l=1;l<=a.partCount;l++){let d=(l-1)*a.chunkSize,u=i.subarray(d,Math.min(d+a.chunkSize,i.length)),f=await this.uploadPart(a.session,l,u);c.push(f.partMd5)}await this.completeUploadSession(a.session,c)}async createUploadSession(e,t,i,n,s){let o=_j,a=String(s||"").trim().toLowerCase();if(!/^[a-f0-9]{32}$/.test(a))return{reuse:!1,requiresMd5:!0,partCount:0,chunkSize:o,session:""};this.budget.used=0;let c=Math.max(1,Math.ceil(Math.max(0,Number(n)||0)/o)),l=await this.resolveFolderId(t||"/"),d=await this.client.createMultiUpload(l,i,Math.max(0,Number(n)||0),a);return d.fileDataExists?(await this.client.commitMultiUpload(d.uploadFileId,a,a),{reuse:!0,partCount:0,chunkSize:o,session:""}):{reuse:!1,partCount:c,chunkSize:o,session:Fj({uploadFileId:d.uploadFileId,sessionKey:d.sessionKey,fileMd5:a,size:Math.max(0,Number(n)||0),partCount:c,chunkSize:o})}}async uploadPart(e,t,i){let n=m4(e);if(!Number.isInteger(t)||t<1||t>n.partCount)throw new Error(`[189Cloud] \u5206\u7247\u5E8F\u53F7\u65E0\u6548: ${t}`);this.client.setSessionKey(n.sessionKey);let s=await this.client.getMultiUploadUrls(n.uploadFileId,t,i),o={};if(s.requestHeader){let c=s.requestHeader;try{c=decodeURIComponent(c)}catch{}for(let l of c.split("&")){let d=l.indexOf("=");d<=0||(o[l.slice(0,d)]=l.slice(d+1))}}let a=await fetch(s.requestURL,{method:"PUT",headers:o,body:i});if(!a.ok){let c=await a.text().catch(()=>"");throw new Error(`[189Cloud] \u4E0A\u4F20\u7B2C ${t}/${n.partCount} \u5206\u7247\u5931\u8D25: HTTP ${a.status} ${c}`)}return{partMd5:Jl(i)}}async completeUploadSession(e,t=[]){let i=m4(e);this.client.setSessionKey(i.sessionKey);let n=t.map(o=>String(o||"").trim().toLowerCase()).filter(o=>/^[a-f0-9]{32}$/.test(o));if(n.length!==i.partCount)throw new Error("[189Cloud] \u5206\u7247\u6821\u9A8C\u4FE1\u606F\u4E0D\u5B8C\u6574\uFF0C\u65E0\u6CD5\u63D0\u4EA4\u4E0A\u4F20");let s=i.partCount===1?i.fileMd5:Jl(n.join(` +`)).toUpperCase();await this.client.commitMultiUpload(i.uploadFileId,i.fileMd5,s)}}});function qj(){return{clientType:Rj,version:Uj,channelId:Nj,clientSn:"unknown",model:"PJX110",osFamily:"Android",osVersion:"35",networkAccessMode:"WIFI",telecomsOperator:"46011"}}function E4(r){try{return new URL(r).pathname}catch{return r}}function Oj(r,e,t,i,n){let s=`SessionKey=${e}&Operate=${t}&RequestURI=${E4(i)}&Date=${n}`;return uf(s,r).toUpperCase()}function Mj(r,e,t,i,n){let s=`AppKey=${e}&Operate=${t}&RequestURI=${E4(i)}&Timestamp=${n}`;return uf(s,r).toUpperCase()}function Lj(r){let e=r.replace(/("id"\s*:\s*)(-?\d{16,})(?=\s*[,}])/g,'$1"$2"');return JSON.parse(e)}function Hj(r){let e=r.res_code;return typeof e=="number"?e!==0:typeof e=="string"?e!==""&&e!=="0":!!(r.code&&r.code!=="SUCCESS"||r.errorCode||r.error)}function Kj(r){switch(r){case"filename":return"1";case"filesize":return"2";case"lastOpTime":return"3";default:return"1"}}function Gj(r){return r==="desc"?"true":"false"}var C4,Tj,Uj,Rj,Nj,Oi,mE,Yp,B4=J(()=>{"use strict";jp();C4="600100885",Tj="fe5734c74c2f96a38157f420b32dc995",Uj="6.5.5",Rj="FAMILY_TV",Nj="home02",Oi="https://api.cloud.189.cn",mE="EcloudTV/6.5.5 (PJX110; unknown; home02) Android/35";Yp=class{addition;tokenInfo=null;persistAccessToken;constructor(e,t){this.addition=e,this.persistAccessToken=t}isFamily(){return this.addition.type==="family"}getFamilyId(){return this.addition.family_id||""}async init(){if(!this.addition.access_token)throw new Error("[189TV] access_token \u4E3A\u7A7A\uFF1A\u8BF7\u5148\u5728\u522B\u5904\u626B\u7801\u767B\u5F55\u83B7\u53D6 access_token \u540E\u586B\u5165\u914D\u7F6E");await this.login()}signatureHeader(e,t,i){let n=new Date().toUTCString(),s=i?this.tokenInfo?.familySessionKey||"":this.tokenInfo?.sessionKey||"",o=i?this.tokenInfo?.familySessionSecret||"":this.tokenInfo?.sessionSecret||"";return{Date:n,SessionKey:s,"X-Request-ID":jl(),Signature:Oj(o,s,t,e,n)}}appKeySignatureHeader(e,t){let i=Date.now();return{Timestamp:String(i),"X-Request-ID":jl(),AppKey:C4,AppSignature:Mj(Tj,C4,t,e,i)}}async request(e,t,i={}){let{query:n,form:s,isFamily:o=!1,isAppKey:a=!1}=i,c=i.retryCount??0,l=new URL(e);for(let[p,I]of Object.entries(qj()))l.searchParams.set(p,I);if(n)for(let[p,I]of Object.entries(n))I!==void 0&&l.searchParams.set(p,I);let d={Accept:"application/json;charset=UTF-8","User-Agent":mE};a?Object.assign(d,this.appKeySignatureHeader(e,t)):Object.assign(d,this.signatureHeader(e,t,o));let u;s&&(d["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8",u=new URLSearchParams(s).toString());let h=await(await fetch(l.toString(),{method:t,headers:d,body:u})).text();if(h.includes("userSessionBO is null")||h.includes("InvalidSessionKey")){if(c>=3)throw new Error("[189TV] session expired after retry");return await this.login(),this.request(e,t,{...i,retryCount:c+1})}let g;try{g=Lj(h)}catch{throw new Error(`[189TV] \u975E\u9884\u671F\u54CD\u5E94: ${h.slice(0,200)}`)}if(Hj(g))throw new Error(`[189TV] API \u9519\u8BEF: ${g.res_message||g.errorMsg||g.msg||h.slice(0,200)}`);return g}async login(){if(!this.addition.access_token)throw new Error("[189TV] access_token \u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u767B\u5F55");let e=await this.request(Oi+"/family/manage/loginFamilyMerge.action","GET",{query:{e189AccessToken:this.addition.access_token},isAppKey:!0});this.tokenInfo=e,e.accessToken&&e.accessToken!==this.addition.access_token&&(this.addition.access_token=e.accessToken,this.persistAccessToken&&await this.persistAccessToken(e.accessToken))}async getFiles(e,t){let n=(t?Oi+"/family/file":Oi)+"/listFiles.action",s=this.addition.order_by||"lastOpTime",o=Gj(this.addition.order_direction||"asc"),a=[];for(let c=1;;c++){let l={folderId:e,fileType:"0",mediaAttr:"0",iconOption:"5",pageNum:String(c),pageSize:"130"};t?(l.familyId=this.addition.family_id||"",l.orderBy=Kj(s),l.descending=o):(l.recursive="0",l.orderBy=s,l.descending=o);let u=(await this.request(n,"GET",{query:l,isFamily:t})).fileListAO;if(!u||Number(u.count)===0)break;let f=u.folderList||[],h=u.fileList||[];if(a.push(...f,...h),f.length+h.length<130)break}return a}async getFileDownloadUrl(e,t){let n=(t?Oi+"/family/file":Oi)+"/getFileDownloadUrl.action",s={fileId:e};t?s.familyId=this.addition.family_id||"":(s.dt="3",s.flag="1");let a=(await this.request(n,"GET",{query:s,isFamily:t})).fileDownloadUrl||"";if(!a)throw new Error("[189TV] \u83B7\u53D6\u4E0B\u8F7D\u5730\u5740\u5931\u8D25");a=a.replace(/&/g,"&").replace(/^http:\/\//i,"https://");try{let c=await fetch(a,{method:"GET",headers:{"User-Agent":mE},redirect:"manual"}),l=c.headers.get("location");c.status===302&&l&&(a=l.replace(/^http:\/\//i,"https://"))}catch{}return a}async mkdir(e,t,i){let s=(i?Oi+"/family/file":Oi)+"/createFolder.action",o={folderName:t,relativePath:""};i?(o.familyId=this.addition.family_id||"",o.parentId=e):o.parentFolderId=e,await this.request(s,"POST",{query:o,isFamily:i})}async rename(e,t,i,n){let s=n?Oi+"/family/file":Oi,o=n?"GET":"POST",c=s+(t?"/renameFolder.action":"/renameFile.action"),l={};n&&(l.familyId=this.addition.family_id||""),t?(l.folderId=e,l.destFolderName=i):(l.fileId=e,l.destFileName=i),await this.request(c,o,{query:l,isFamily:n})}async createBatchTask(e,t,i,n){let s={type:e,taskInfos:JSON.stringify(n)};i&&(s.targetFolderId=i),t&&(s.familyId=t);let o=await this.request(Oi+"/batch/createBatchTask.action","POST",{form:s,isFamily:t!==""});if(!o.taskId)throw new Error("[189TV] \u521B\u5EFA\u6279\u91CF\u4EFB\u52A1\u5931\u8D25");return o.taskId}async waitBatchTask(e,t){for(let i=0;i<20;i++){let s=(await this.request(Oi+"/batch/checkBatchTask.action","POST",{form:{type:e,taskId:t}})).taskStatus;if(s===4)return;if(s===2)throw new Error("[189TV] \u76EE\u6807\u5B58\u5728\u540C\u540D\u51B2\u7A81");await new Promise(o=>setTimeout(o,300))}throw new Error("[189TV] \u6279\u91CF\u4EFB\u52A1\u8D85\u65F6")}async move(e,t,i,n,s){let o=await this.createBatchTask("MOVE",s&&this.addition.family_id||"",n,[{fileId:e,fileName:i,isFolder:t?1:0}]);await this.waitBatchTask("MOVE",o)}async copy(e,t,i,n,s){let o=await this.createBatchTask("COPY",s&&this.addition.family_id||"",n,[{fileId:e,fileName:i,isFolder:t?1:0}]);await this.waitBatchTask("COPY",o)}async remove(e,t,i,n){let s=await this.createBatchTask("DELETE",n&&this.addition.family_id||"","",[{fileId:e,fileName:i,isFolder:t?1:0}]);await this.waitBatchTask("DELETE",s)}async upload(e,t,i,n){let s=Jl(i),o=i.length,c=(n?Oi+"/family/file":Oi)+(n?"/createFamilyFile.action":"/createUploadFile.action"),l;n?l=await this.request(c,"POST",{query:{familyId:this.addition.family_id||"",parentId:e,fileMd5:s,fileName:t,fileSize:String(o),resumePolicy:"1"},isFamily:n}):l=await this.request(c,"POST",{form:{parentFolderId:e,fileName:t,size:String(o),md5:s,opertype:"3",flag:"1",resumePolicy:"1",isLog:"0"},isFamily:n});let d=l.uploadFileId,u=l.fileUploadUrl,f=l.fileCommitUrl;if(!d||!u)throw new Error("[189TV] \u521B\u5EFA\u4E0A\u4F20\u4F1A\u8BDD\u5931\u8D25");let h={ResumePolicy:"1",Expect:"100-continue","User-Agent":mE};n?(h.FamilyId=this.addition.family_id||"",h.UploadFileId=String(d)):h["Edrive-UploadFileId"]=String(d),Object.assign(h,this.signatureHeader(u,"PUT",n));let g=await fetch(u,{method:"PUT",headers:h,body:new Uint8Array(i)});if(g.status!==200)throw new Error(`[189TV] \u4E0A\u4F20\u5931\u8D25: HTTP ${g.status}`);n?await this.request(f,"POST",{query:{ResumePolicy:"1",UploadFileId:String(d),FamilyId:this.addition.family_id||""},isFamily:n}):await this.request(f,"POST",{form:{opertype:"3",resumePolicy:"1",uploadFileId:String(d),isLog:"0"},isFamily:n})}}});function b4(r){if(!r)return new Date().toISOString();let e=r.trim().replace(/["']/g,""),t=e.replace(/ +08$/,"+08:00"),i=new Date(t);return isNaN(i.getTime())?e:i.toISOString()}function v4(r){if("parentId"in r||!("size"in r)){let t=r;return{name:t.name,size:0,is_dir:!0,modified:b4(t.lastOpTime||t.createDate),sign:t.id,type:1}}let e=r;return{name:e.name,size:e.size,is_dir:!1,modified:b4(e.lastOpTime||e.createDate),sign:e.id,type:X(e.name,!1),thumb:e.icon?.smallUrl||"",raw_url:""}}var Wp,k4=J(()=>{"use strict";Be();B4();Wp=class{client;pathCache=new Map;constructor(e,t){this.client=new Yp(e,t)}async init(){await this.client.init()}isFamily(){return this.client.isFamily()}async list(e,t){let i=await this.pathToId(t);return(await this.client.getFiles(i,this.isFamily())).map(v4)}async get(e,t){let i=t.split("/").filter(Boolean),n=i[i.length-1]||"root",s="/"+i.slice(0,-1).join("/");try{let o=await this.pathToId(s),c=(await this.client.getFiles(o,this.isFamily())).find(l=>l.name===n);if(c){let l=v4(c);if(!l.is_dir)try{l.raw_url=await this.client.getFileDownloadUrl(c.id,this.isFamily()),l.raw_url_headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}}catch{l.raw_url_error="[189TV] failed to resolve download url"}return l}}catch{}return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"new_folder",s="/"+i.join("/");await this.client.mkdir(await this.pathToId(s),n,this.isFamily()),this.pathCache.clear()}async rename(e,t,i){let n=await this.resolveEntry(t);await this.client.rename(n.id,n.isDir,i,this.isFamily()),this.pathCache.clear()}async remove(e,t,i){let n=await this.resolveEntry(t),s=t.split("/").filter(Boolean).pop()||"";await this.client.remove(n.id,n.isDir,s,this.isFamily()),this.pathCache.clear()}async move(e,t,i,n,s){let o=await this.resolveEntry(n),a=n.split("/").filter(Boolean).pop()||"";await this.client.move(o.id,o.isDir,a,await this.pathToId(t),this.isFamily()),this.pathCache.clear()}async copy(e,t,i,n,s){let o=await this.resolveEntry(n),a=n.split("/").filter(Boolean).pop()||"";await this.client.copy(o.id,o.isDir,a,await this.pathToId(t),this.isFamily()),this.pathCache.clear()}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"file",o="/"+n.join("/");await this.client.upload(await this.pathToId(o),s,new Uint8Array(i),this.isFamily()),this.pathCache.clear()}async resolveEntry(e){let t=e.split("/").filter(Boolean),i=t[t.length-1],n="/"+t.slice(0,-1).join("/"),s=await this.pathToId(n),a=(await this.client.getFiles(s,this.isFamily())).find(l=>l.name===i);if(!a)throw new Error(`[189TV] '${i}' not found`);let c="parentId"in a||!("size"in a);return{id:a.id,isDir:c}}async pathToId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.isFamily()?"":"-11";if(this.pathCache.has(t))return this.pathCache.get(t);let i=t.split("/"),n=this.isFamily()?"":"-11";for(let s=0;s<i.length;s++){let a=(await this.client.getFiles(n,this.isFamily())).find(l=>l.name===i[s]&&"parentId"in l);if(!a)throw new Error(`[189TV] Directory '${i[s]}' not found`);n=a.id;let c="/"+i.slice(0,s+1).join("/");this.pathCache.set(c,n)}return n}}});function Hs(r,e){let t=r.replace(/\/+$/,""),i=e.replace(/^\/+/,"");return!t&&!i?"/":t?i?`${t}/${i}`:t:"/"+i}function zj(r){return r.split("/").map(e=>encodeURIComponent(e)).join("/")}function S4(r,e){let t=[],i,n=/<(?:[a-zA-Z0-9_-]+:)?response\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?response>/gi,s;for(;(s=n.exec(r))!==null;){let o=s[1],a=/<(?:[a-zA-Z0-9_-]+:)?href\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?href>/i.exec(o);if(!a)continue;let c=a[1].trim(),l=c;try{l=decodeURIComponent(c)}catch{}let d=/<(?:[a-zA-Z0-9_-]+:)?propstat\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?propstat>/gi,u,f="";for(;(u=d.exec(o))!==null;){let E=u[1],P=/<(?:[a-zA-Z0-9_-]+:)?status\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?status>/i.exec(E),N=P?P[1]:"";if(N.includes("200")||N.toLowerCase().includes("ok")){let j=/<(?:[a-zA-Z0-9_-]+:)?prop\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?prop>/i.exec(E);if(j){f=j[1];break}}}if(!f)continue;let h=/<(?:[a-zA-Z0-9_-]+:)?resourcetype\b[^>]*>[\s\S]*?<(?:[a-zA-Z0-9_-]+:)?collection\b/i.test(f),g=/<(?:[a-zA-Z0-9_-]+:)?displayname\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?displayname>/i.exec(f),p=g?g[1].trim():"",I=l.replace(/\/+$/,""),m=I&&I.split("/").pop()||"",w=p||m,B=/<(?:[a-zA-Z0-9_-]+:)?getcontentlength\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getcontentlength>/i.exec(f),C=h?0:B&&parseInt(B[1].trim(),10)||0,x=/<(?:[a-zA-Z0-9_-]+:)?getlastmodified\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getlastmodified>/i.exec(f),Q=new Date().toISOString();if(x){let E=new Date(x[1].trim());isNaN(E.getTime())||(Q=E.toISOString())}let R=/<(?:[a-zA-Z0-9_-]+:)?getcontenttype\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getcontenttype>/i.exec(f),U=R?R[1].trim():void 0,T=/<(?:[a-zA-Z0-9_-]+:)?getetag\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?getetag>/i.exec(f),D=T?T[1].trim().replace(/^"|"$/g,""):void 0,b={name:w,path:l,size:C,modified:Q,isFolder:h,contentType:U,etag:D},_=e.replace(/\/+$/,"").toLowerCase(),v=I.toLowerCase();!i&&(v===_||v.endsWith(_)||_===""&&v==="")?i=b:t.push(b)}return{self:i,items:t}}function Jj(r){let e={},t=r.replace(/^digest\s+/i,"").split(/,\s*/);for(let i of t){let n=i.indexOf("=");if(n!==-1){let s=i.slice(0,n).trim(),o=i.slice(n+1).trim().replace(/^"|"$/g,"");s==="realm"?e.realm=o:s==="nonce"?e.nonce=o:s==="qop"?e.qop=o:s==="opaque"?e.opaque=o:s==="algorithm"&&(e.algorithm=o)}}return e}function D4(r,e,t,i,n,s=1){let o=s.toString(16).padStart(8,"0"),a=Math.random().toString(36).substring(2,18),c=r.realm||"",l=r.nonce||"",d=(r.algorithm||"MD5").toUpperCase(),u=r.qop||"",f="";if(d==="MD5"||d==="")f=bc.default.MD5(`${e}:${c}:${t}`).toString();else if(d==="MD5-SESS"){let I=bc.default.MD5(`${e}:${c}:${t}`).toString();f=bc.default.MD5(`${I}:${l}:${a}`).toString()}let h="";(u==="auth"||u==="")&&(h=bc.default.MD5(`${i}:${n}`).toString());let g="";u?g=bc.default.MD5(`${f}:${l}:${o}:${a}:${u}:${h}`).toString():g=bc.default.MD5(`${f}:${l}:${h}`).toString();let p=`Digest username="${e}", realm="${c}", nonce="${l}", uri="${n}", response="${g}"`;return d&&(p+=`, algorithm=${d}`),u&&(p+=`, qop=${u}, nc=${o}, cnonce="${a}"`),r.opaque&&(p+=`, opaque="${r.opaque}"`),p}async function $j(r,e,t){let i=new URL(t),n=i.hostname.split("."),s=n[n.length-1],a=`${jj[s]||"https://login.microsoftonline.com"}/extSTS.srf`,c=`<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <s:Header> @@ -108,7 +110,7 @@ xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-util <t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType> </t:RequestSecurityToken> </s:Body> -</s:Envelope>`,l=await fetch(a,{method:"POST",headers:{"Content-Type":"application/soap+xml; charset=utf-8"},body:c});if(!l.ok)throw new Error(`SharePoint SAML auth failed with HTTP ${l.status}`);let d=await l.text(),u=/<(?:[a-zA-Z0-9_-]+:)?BinarySecurityToken\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?BinarySecurityToken>/i.exec(d);if(!u){let w=/<(?:[a-zA-Z0-9_-]+:)?Text\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?Text>/i.exec(d),C=w?w[1]:"Failed to obtain BinarySecurityToken";throw new Error(`SharePoint login failed: ${C}`)}let f=u[1].trim(),h=`https://${i.host}/_forms/default.aspx?wa=wsignin1.0`,g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:f,redirect:"manual"}),p="",I="",y=w=>{let C=[];if(w.headers.getSetCookie)C.push(...w.headers.getSetCookie());else{let b=w.headers.get("set-cookie");b&&C.push(b)}for(let b of C){let x=/rtFa=([^;]+)/.exec(b);x&&(p=x[1]);let _=/FedAuth=([^;]+)/.exec(b);_&&(I=_[1])}};if(y(g),!p||!I){let w=g.headers.get("location");if(w){let C=new URL(w,h).toString(),b=await fetch(C,{method:"GET",headers:{Cookie:`rtFa=${p}; FedAuth=${I}`},redirect:"manual"});y(b)}}if(!p&&!I)throw new Error("SharePoint auth failed: rtFa / FedAuth cookies not returned");return`rtFa=${p}; FedAuth=${I}`}var hc,zz,_p,c8=j(()=>{"use strict";hc=Qr(fc(),1);zz={com:"https://login.microsoftonline.com",cn:"https://login.chinacloudapi.cn",us:"https://login.microsoftonline.us",de:"https://login.microsoftonline.de"};_p=class{address;username;password;isSharepoint;sharepointCookie="";digestParts=null;ncCount=0;constructor(e){this.address=e.address.replace(/\/+$/,""),this.username=e.username||"",this.password=e.password||"",this.isSharepoint=e.vendor==="sharepoint"}async init(){this.isSharepoint&&(this.sharepointCookie=await Jz(this.username,this.password,this.address))}buildUrl(e){let t=e.replace(/^\/+/,"");return t?`${this.address}/${Kz(t)}`:this.address}getAuthHeaders(e,t){let i={};if(this.isSharepoint&&this.sharepointCookie)i.Cookie=this.sharepointCookie;else if(this.digestParts)this.ncCount++,i.Authorization=a8(this.digestParts,this.username,this.password,e,t,this.ncCount);else if(this.username||this.password){let n=btoa(unescape(encodeURIComponent(`${this.username}:${this.password}`)));i.Authorization=`Basic ${n}`}return i}async request(e,t,i={}){let n=this.buildUrl(t),s=new URL(n),o=s.pathname+s.search,c={...this.getAuthHeaders(e,o),...i.headers||{}},l=await fetch(n,{method:e,headers:c,body:i.body,redirect:i.redirect||"follow"});if(l.status===401&&!this.isSharepoint){let d=l.headers.get("www-authenticate")||"";if(/digest/i.test(d)){this.digestParts=Gz(d),this.ncCount=1;let u=a8(this.digestParts,this.username,this.password,e,o,this.ncCount),f={...c,Authorization:u};l=await fetch(n,{method:e,headers:f,body:i.body,redirect:i.redirect||"follow"})}}return l}async readDir(e){let i=await this.request("PROPFIND",e,{headers:{Depth:"1","Content-Type":"application/xml; charset=utf-8",Accept:"application/xml, text/xml"},body:`<?xml version="1.0" encoding="utf-8" ?> +</s:Envelope>`,l=await fetch(a,{method:"POST",headers:{"Content-Type":"application/soap+xml; charset=utf-8"},body:c});if(!l.ok)throw new Error(`SharePoint SAML auth failed with HTTP ${l.status}`);let d=await l.text(),u=/<(?:[a-zA-Z0-9_-]+:)?BinarySecurityToken\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?BinarySecurityToken>/i.exec(d);if(!u){let w=/<(?:[a-zA-Z0-9_-]+:)?Text\b[^>]*>([\s\S]*?)<\/(?:[a-zA-Z0-9_-]+:)?Text>/i.exec(d),B=w?w[1]:"Failed to obtain BinarySecurityToken";throw new Error(`SharePoint login failed: ${B}`)}let f=u[1].trim(),h=`https://${i.host}/_forms/default.aspx?wa=wsignin1.0`,g=await fetch(h,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:f,redirect:"manual"}),p="",I="",m=w=>{let B=[];if(w.headers.getSetCookie)B.push(...w.headers.getSetCookie());else{let C=w.headers.get("set-cookie");C&&B.push(C)}for(let C of B){let x=/rtFa=([^;]+)/.exec(C);x&&(p=x[1]);let Q=/FedAuth=([^;]+)/.exec(C);Q&&(I=Q[1])}};if(m(g),!p||!I){let w=g.headers.get("location");if(w){let B=new URL(w,h).toString(),C=await fetch(B,{method:"GET",headers:{Cookie:`rtFa=${p}; FedAuth=${I}`},redirect:"manual"});m(C)}}if(!p&&!I)throw new Error("SharePoint auth failed: rtFa / FedAuth cookies not returned");return`rtFa=${p}; FedAuth=${I}`}var bc,jj,Xp,Q4=J(()=>{"use strict";bc=xr(Oo(),1);jj={com:"https://login.microsoftonline.com",cn:"https://login.chinacloudapi.cn",us:"https://login.microsoftonline.us",de:"https://login.microsoftonline.de"};Xp=class{address;username;password;isSharepoint;sharepointCookie="";digestParts=null;ncCount=0;constructor(e){this.address=e.address.replace(/\/+$/,""),this.username=e.username||"",this.password=e.password||"",this.isSharepoint=e.vendor==="sharepoint"}async init(){this.isSharepoint&&(this.sharepointCookie=await $j(this.username,this.password,this.address))}buildUrl(e){let t=e.replace(/^\/+/,"");return t?`${this.address}/${zj(t)}`:this.address}getAuthHeaders(e,t){let i={};if(this.isSharepoint&&this.sharepointCookie)i.Cookie=this.sharepointCookie;else if(this.digestParts)this.ncCount++,i.Authorization=D4(this.digestParts,this.username,this.password,e,t,this.ncCount);else if(this.username||this.password){let n=btoa(unescape(encodeURIComponent(`${this.username}:${this.password}`)));i.Authorization=`Basic ${n}`}return i}async request(e,t,i={}){let n=this.buildUrl(t),s=new URL(n),o=s.pathname+s.search,c={...this.getAuthHeaders(e,o),...i.headers||{}},l=await fetch(n,{method:e,headers:c,body:i.body,redirect:i.redirect||"follow"});if(l.status===401&&!this.isSharepoint){let d=l.headers.get("www-authenticate")||"";if(/digest/i.test(d)){this.digestParts=Jj(d),this.ncCount=1;let u=D4(this.digestParts,this.username,this.password,e,o,this.ncCount),f={...c,Authorization:u};l=await fetch(n,{method:e,headers:f,body:i.body,redirect:i.redirect||"follow"})}}return l}async readDir(e){let i=await this.request("PROPFIND",e,{headers:{Depth:"1","Content-Type":"application/xml; charset=utf-8",Accept:"application/xml, text/xml"},body:`<?xml version="1.0" encoding="utf-8" ?> <d:propfind xmlns:d="DAV:"> <d:prop> <d:displayname/> @@ -118,7 +120,7 @@ xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-util <d:getetag/> <d:getlastmodified/> </d:prop> -</d:propfind>`});if(i.status===404)throw new Error(`Directory not found: ${e}`);if(i.status!==207&&!i.ok){let o=await i.text();throw new Error(`WebDAV PROPFIND failed with status ${i.status}: ${o||i.statusText}`)}let n=await i.text(),{items:s}=o8(n,e);return s}async stat(e){let i=await this.request("PROPFIND",e,{headers:{Depth:"0","Content-Type":"application/xml; charset=utf-8",Accept:"application/xml, text/xml"},body:`<?xml version="1.0" encoding="utf-8" ?> +</d:propfind>`});if(i.status===404)throw new Error(`Directory not found: ${e}`);if(i.status!==207&&!i.ok){let o=await i.text();throw new Error(`WebDAV PROPFIND failed with status ${i.status}: ${o||i.statusText}`)}let n=await i.text(),{items:s}=S4(n,e);return s}async stat(e){let i=await this.request("PROPFIND",e,{headers:{Depth:"0","Content-Type":"application/xml; charset=utf-8",Accept:"application/xml, text/xml"},body:`<?xml version="1.0" encoding="utf-8" ?> <d:propfind xmlns:d="DAV:"> <d:prop> <d:displayname/> @@ -128,18 +130,18 @@ xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-util <d:getetag/> <d:getlastmodified/> </d:prop> -</d:propfind>`});if(i.status===404)throw new Error(`Object not found: ${e}`);if(i.status!==207&&!i.ok){let c=await i.text();throw new Error(`WebDAV PROPFIND failed with status ${i.status}: ${c||i.statusText}`)}let n=await i.text(),{self:s,items:o}=o8(n,e),a=s||o[0];if(!a)throw new Error(`Object not found in PROPFIND response: ${e}`);return a}async mkdir(e){let t=await this.request("MKCOL",e);if(!(t.status===201||t.status===405))throw new Error(`WebDAV MKCOL failed with status ${t.status}`)}async mkdirAll(e){let t=await this.request("MKCOL",e);if(!(t.status===201||t.status===405)){if(t.status===409){let i=e.split("/").filter(Boolean),n="";for(let s of i){n+="/"+s;let o=await this.request("MKCOL",n);if(o.status!==201&&o.status!==405)throw new Error(`WebDAV MkdirAll failed at ${n} with status ${o.status}`)}return}throw new Error(`WebDAV MkdirAll failed with status ${t.status}`)}}async move(e,t,i=!0){let n=this.buildUrl(t),s=await this.request("MOVE",e,{headers:{Destination:n,Overwrite:i?"T":"F"}});if(!(s.status===201||s.status===204)){if(s.status===409){let o=t.substring(0,t.lastIndexOf("/"));if(o)return await this.mkdirAll(o),this.move(e,t,i)}throw new Error(`WebDAV MOVE failed with status ${s.status}`)}}async copy(e,t,i=!0){let n=this.buildUrl(t),s=await this.request("COPY",e,{headers:{Destination:n,Overwrite:i?"T":"F"}});if(!(s.status===201||s.status===204)){if(s.status===409){let o=t.substring(0,t.lastIndexOf("/"));if(o)return await this.mkdirAll(o),this.copy(e,t,i)}throw new Error(`WebDAV COPY failed with status ${s.status}`)}}async remove(e){let t=await this.request("DELETE",e);if(!(t.status===200||t.status===204||t.status===404))throw new Error(`WebDAV DELETE failed with status ${t.status}`)}async put(e,t,i){let n={};i&&(n["Content-Type"]=i);let s=await this.request("PUT",e,{headers:n,body:t});if(!(s.status===200||s.status===201||s.status===204)){if(s.status===409){let o=e.substring(0,e.lastIndexOf("/"));if(o&&(await this.mkdirAll(o),s=await this.request("PUT",e,{headers:n,body:t}),s.status===200||s.status===201||s.status===204))return}throw new Error(`WebDAV PUT failed with status ${s.status}`)}}getLink(e){let t=this.buildUrl(e),i=new URL(t),n=i.pathname+i.search,s=this.getAuthHeaders("GET",n);return{url:t,headers:s}}}});function jz(r){let e={...r||{}};return e.vendor=e.vendor||"other",e.address=(e.address||"").trim(),e.username=(e.username||"").trim(),e.password=e.password||"",e.root_folder_path=(e.root_folder_path||"/").trim(),e.root_folder_path.startsWith("/")||(e.root_folder_path="/"+e.root_folder_path),e.tls_insecure_skip_verify=!!e.tls_insecure_skip_verify,e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e}var Fp,l8=j(()=>{"use strict";Be();He();c8();Fp=class{client;addition;constructor(e){this.addition=jz(e),this.client=new _p(this.addition)}async init(){await this.client.init()}getRemotePath(e){let t=this.addition.root_folder_path||"/";return Rs(t,e||"/")}fileItemFromWebdav(e,t){let i=this.client.getLink(t);return{name:e.name,size:e.size,is_dir:e.isFolder,modified:e.modified,sign:"",type:X(e.name,e.isFolder),thumb:"",raw_url:e.isFolder?void 0:i.url,raw_url_headers:e.isFolder?void 0:i.headers}}async list(e,t){let i=this.getRemotePath(t),s=(await this.client.readDir(i)).map(o=>{let a=Rs(i,o.name);return this.fileItemFromWebdav(o,a)});return de(s,this.addition.order_by||"name",this.addition.order_direction||"asc")}async get(e,t){let i=this.getRemotePath(t),n=await this.client.stat(i);return this.fileItemFromWebdav(n,i)}async mkdir(e,t){let i=this.getRemotePath(t);await this.client.mkdirAll(i)}async rename(e,t,i){let n=this.getRemotePath(t),s=n.lastIndexOf("/"),o=s>=0?n.substring(0,s):"/",a=Rs(o,i);await this.client.move(n,a,!0)}async move(e,t,i,n,s){let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=Rs(o,c),d=Rs(a,c);await this.client.move(l,d,!0)}}async copy(e,t,i,n,s){let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=Rs(o,c),d=Rs(a,c);await this.client.copy(l,d,!0)}}async remove(e,t,i){let n=this.getRemotePath(t);if(i&&i.length>0)for(let s of i){let o=Rs(n,s);await this.client.remove(o)}else await this.client.remove(n)}async put(e,t,i){let n=this.getRemotePath(t);await this.client.put(n,i)}}});var Xi,Pp,d8,u8,KC,GC,Jo,zC,f8,A8,h8,g8,p8,m8,y8,I8,w8,x8,C8,E8,B8,b8,v8,JC,Tp=j(()=>{"use strict";Xi="1001000021",Pp="XFmi9GS2hzk98jGX",d8="10000001",u8="https://panservice.mail.wo.cn",KC="https://tjupload.pan.wo.cn",GC="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.37",Jo="api-user",zC="wohome",f8="wocloud",A8="AppQueryUser",h8="AppRefreshToken",g8="QueryCloudUsageInfo",p8="ClassifyRule",m8="GetZoneInfo",y8="FamilyUserCurrentEncode",I8="QueryAllFiles",w8="GetDownloadUrlV2",x8="CreateDirectory",C8="RenameFileOrDirectory",E8="MoveFile",B8="CopyFile",b8="DeleteFile",v8="upload2C",JC={name_asc:1,name_desc:2,size_asc:3,size_desc:4,time_asc:5,time_desc:6}});var hi,$z,Up,k8=j(()=>{"use strict";hi=Qr(fc(),1);Tp();$z="wNSOYIB1k1DjY5lA",Up=class{key=Pp;iv=$z;accessKey="";constructor(e){e&&this.setAccessToken(e)}setAccessToken(e){e&&e.length>=16?this.accessKey=e.slice(0,16):e&&(this.accessKey=e)}encrypt(e,t){let i=t===Jo?this.key:this.accessKey||this.key,n=hi.default.enc.Utf8.parse(i),s=hi.default.enc.Utf8.parse(this.iv);return hi.default.AES.encrypt(hi.default.enc.Utf8.parse(e),n,{iv:s,mode:hi.default.mode.CBC,padding:hi.default.pad.Pkcs7}).toString()}decrypt(e,t){let i=t===Jo?this.key:this.accessKey||this.key,n=hi.default.enc.Utf8.parse(i),s=hi.default.enc.Utf8.parse(this.iv);return hi.default.AES.decrypt(e,n,{iv:s,mode:hi.default.mode.CBC,padding:hi.default.pad.Pkcs7}).toString(hi.default.enc.Utf8)}userEncrypt(e){return this.encrypt(e,Jo)}userDecrypt(e){return this.decrypt(e,Jo)}woHomeEncrypt(e){return this.encrypt(e,"wohome")}woHomeDecrypt(e){return this.decrypt(e,"wohome")}calHeader(e,t){let i=Date.now(),n=Math.floor(Math.random()*8999)+1e5,s="",o=hi.default.MD5(`${t}${i}${n}${e}${s}`).toString();return{key:t,resTime:i,reqSeq:n,channel:e,sign:o,version:s}}}});function Vz(r){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",t="";for(let i=0;i<r;i++)t+=e.charAt(Math.floor(Math.random()*e.length));return t}function Yz(r=new Date){let e=c=>String(c).padStart(2,"0"),t=r.getFullYear(),i=e(r.getMonth()+1),n=e(r.getDate()),s=e(r.getHours()),o=e(r.getMinutes()),a=e(r.getSeconds());return`${t}${i}${n}${s}${o}${a}`}var Rp,S8=j(()=>{"use strict";Tp();k8();Rp=class{addition;accessToken;refreshTokenValue;phone="";zoneURL="";classifyRuleData=null;crypto;onTokenUpdate;constructor(e,t){this.addition=e,this.accessToken=e.access_token||"",this.refreshTokenValue=e.refresh_token||"",this.onTokenUpdate=t,this.crypto=new Up(this.accessToken)}getAccessToken(){return this.accessToken}getRefreshToken(){return this.refreshTokenValue}setAccessToken(e){this.accessToken=e,this.crypto.setAccessToken(e)}setRefreshToken(e){this.refreshTokenValue=e}async request(e,t,i,n={},s=!0){let o=this.crypto.calHeader(e,t),a={...n};if(i!=null){let g=JSON.stringify(i),p=this.crypto.encrypt(g,e);a.param=p}let c={Origin:"https://pan.wo.cn",Referer:"https://pan.wo.cn/","User-Agent":GC,"Content-Type":"application/json;charset=UTF-8"};this.accessToken&&(c.Accesstoken=this.accessToken);let l=`${u8}/${e}/dispatcher`,d=await fetch(l,{method:"POST",headers:c,body:JSON.stringify({header:o,body:a})});if(!d.ok)throw new Error(`[WoPan] Request failed with HTTP status: ${d.status} ${d.statusText}`);let u=await d.json().catch(()=>null);if(!u)throw new Error(`[WoPan] Response is not valid JSON from ${t}`);if(u.STATUS!=="200")throw new Error(`[WoPan] Request failed with status: ${u.STATUS}, msg: ${u.MSG||""}`);let f=u.RSP?.RSP_CODE;if(f!=="0000"){if(e!==Jo&&s&&f==="9999")return await this.refreshToken(),this.request(e,t,i,n,!1);throw new Error(`[WoPan] Request failed with rsp_code: ${f}, rsp_desc: ${u.RSP?.RSP_DESC||""}`)}let h=u.RSP?.DATA;if(h==null)return{};if(typeof h=="string"){let g=h.trim();g.startsWith('"')&&g.endsWith('"')&&(g=g.slice(1,-1));try{let p=this.crypto.decrypt(g,e);if(p)return JSON.parse(p)}catch{try{return JSON.parse(g)}catch{return g}}}return h}async requestApiUser(e,t,i={}){return this.request(Jo,e,t,i)}async requestWoHome(e,t,i={}){return this.request(zC,e,t,i)}async appRefreshToken(){return await this.requestApiUser(h8,{refreshToken:this.refreshTokenValue,clientSecret:Pp},{clientId:Xi,secret:!0})}async refreshToken(){let e=await this.appRefreshToken();if(!e.access_token)throw new Error("[WoPan] Failed to refresh token: empty access_token");this.setAccessToken(e.access_token),e.refresh_token&&this.setRefreshToken(e.refresh_token),this.onTokenUpdate?.(this.accessToken,this.refreshTokenValue)}async appQueryUser(){return this.requestApiUser(A8,{accessToken:this.accessToken},{clientId:Xi,secret:!0})}async initPhone(){if(this.phone)return;let e=await this.appQueryUser();e?.userId&&(this.phone=e.userId)}async classifyRule(){return this.requestWoHome(p8,{},{key:!0})}async initClassifyRule(){if(this.classifyRuleData)return;let e=await this.classifyRule().catch(()=>null);e&&(this.classifyRuleData=e)}async getZoneInfo(){return this.requestWoHome(m8,{appId:d8},{key:!0})}async initZoneURL(){if(this.zoneURL)return;let e=await this.getZoneInfo().catch(()=>null);this.zoneURL=e?.url||KC}async familyUserCurrentEncode(){return this.requestWoHome(y8,{clientId:Xi},{secret:!0})}async initData(){!this.accessToken&&this.refreshTokenValue&&await this.refreshToken(),await this.initPhone().catch(()=>{}),await this.initClassifyRule().catch(()=>{}),await this.initZoneURL().catch(()=>{})}getFileType(e){let t=(e.split(".").pop()||"").toLowerCase();return t&&this.classifyRuleData?.fileTypes?.[t]?this.classifyRuleData.fileTypes[t].type:"5"}async queryAllFiles(e,t,i,n,s,o=""){let a={spaceType:e,parentDirectoryId:t,pageNum:i,pageSize:n,sortRule:s,clientId:Xi};return e==="1"&&o&&(a.familyId=o),this.requestWoHome(I8,a,{secret:!0})}async getDownloadUrlV2(e){let t={type:"1",fidList:e,clientId:Xi};return this.requestWoHome(w8,t,{secret:!0})}async createDirectory(e,t,i,n=""){let s={spaceType:e,familyId:n,parentDirectoryId:t,directoryName:i,clientId:Xi};return this.requestWoHome(x8,s,{secret:!0})}async renameFileOrDirectory(e,t,i,n,s=""){let o=t===0?"0":this.getFileType(n),a={spaceType:e,type:t,fileType:o,id:i,name:n,clientId:Xi};e==="1"&&s&&(a.familyId=s),await this.requestWoHome(C8,a,{secret:!0})}async moveFile(e,t,i,n,s,o="",a=""){let c={targetDirId:i,sourceType:n,targetType:s,dirList:e,fileList:t,secret:!1,clientId:Xi};n==="1"&&o&&(c.fromFamilyId=o),s==="1"&&a&&(c.familyId=a),await this.requestWoHome(E8,c,{secret:!0})}async copyFile(e,t,i,n,s,o="",a=""){let c={targetDirId:i,sourceType:n,targetType:s,dirList:e,fileList:t,secret:!1,clientId:Xi};n==="1"&&o&&(c.fromFamilyId=o),s==="1"&&a&&(c.familyId=a),await this.requestWoHome(B8,c,{secret:!0})}async deleteFile(e,t,i){let n={spaceType:e,vipLevel:"0",dirList:t,fileList:i,clientId:Xi};await this.requestWoHome(b8,n,{secret:!0})}async queryCloudUsageInfo(){return await this.initPhone(),this.requestWoHome(g8,{phoneNum:this.phone,clientId:Xi},{secret:!0})}async upload2C(e,t,i,n,s="",o){await this.initZoneURL();let c=`${this.zoneURL||KC}/openapi/client/${v8}`,l=i instanceof Uint8Array?i:i instanceof ArrayBuffer?new Uint8Array(i):new Uint8Array(i),d=l.length,u=Math.max(1,Math.ceil(d/8388608)),f=Yz(),h={spaceType:e,directoryId:n,batchNo:f,fileName:t,fileSize:d,fileType:this.getFileType(t)};e==="1"&&s&&(h.familyId=s);let g=this.crypto.encrypt(JSON.stringify(h),zC),p=`${Date.now()}_${Vz(6)}`,I=0,y="";for(let w=1;w<=u;w++){let C=(w-1)*8388608,b=w===u?d-C:8388608,x=l.subarray(C,C+b),_=new FormData;_.append("uniqueId",p),_.append("accessToken",this.accessToken),_.append("fileName",t),_.append("psToken","undefined"),_.append("fileSize",String(d)),_.append("totalPart",String(u)),_.append("channel",f8),_.append("directoryId",n),_.append("fileInfo",g),_.append("partSize",String(b)),_.append("partIndex",String(w));let R=new Blob([x.buffer.slice(x.byteOffset,x.byteOffset+x.byteLength)],{type:"application/octet-stream"});_.append("file",R,t);let U=await fetch(c,{method:"POST",headers:{Origin:"https://pan.wo.cn",Referer:"https://pan.wo.cn/","User-Agent":GC},body:_});if(!U.ok)throw new Error(`[WoPan] Upload part ${w}/${u} failed with HTTP status: ${U.status}`);let T=await U.json().catch(()=>({}));if(T.code!=="0000")throw new Error(`[WoPan] Upload part ${w}/${u} failed: ${T.code} ${T.msg||""}`);T.data?.fid&&(y=T.data.fid),I+=b,o?.(I,d)}return y}}});function Xz(r){if(!r)return new Date().toISOString();if(r.length>=14){let e=r.slice(0,4),t=r.slice(4,6),i=r.slice(6,8),n=r.slice(8,10),s=r.slice(10,12),o=r.slice(12,14),a=`${e}-${t}-${i}T${n}:${s}:${o}+08:00`,c=new Date(a);if(!isNaN(c.getTime()))return c.toISOString()}try{let e=new Date(r);if(!isNaN(e.getTime()))return e.toISOString()}catch{}return new Date().toISOString()}function D8(r){let e=r.type===0;return{name:r.name,size:r.size||0,is_dir:e,modified:Xz(r.createTime),sign:r.fid||r.id,type:X(r.name,e),thumb:r.thumbUrl||"",raw_url:""}}function $C(r){let e={...r||{}};return e.root_folder_id=e.root_folder_id||"0",e.refresh_token=(e.refresh_token||"").trim(),e.family_id=(e.family_id||"").trim(),e.sort_rule=e.sort_rule||"name_asc",e.access_token=(e.access_token||"").trim(),e}var Np,Q8=j(()=>{"use strict";Be();He();Tp();S8();Np=class{client;addition;defaultFamilyId="";pathFileMapCache=new Map;pathFolderIdCache=new Map;constructor(e,t){this.addition=$C(e),this.client=new Rp(this.addition,(i,n)=>{this.addition.access_token=i,this.addition.refresh_token=n,t?.(i,n)})}getSpaceType(){return this.addition.family_id?"1":"0"}getFamilyId(){return this.addition.family_id||this.defaultFamilyId}getSortRuleNum(){let e=this.addition.sort_rule||"name_asc";return JC[e]||JC.name_asc}getRootId(){return this.addition.root_folder_id||"0"}async init(){await this.client.initData();let e=await this.client.familyUserCurrentEncode().catch(()=>null);e?.defaultHomeId!==void 0&&e.defaultHomeId!==null&&(this.defaultFamilyId=String(e.defaultHomeId))}async list(e,t){let i=await this.resolveFolderId(t),n=await this.fetchFolderFiles(i),s=t.split("/").filter(Boolean).join("/");for(let a of n){let c=s?`${s}/${a.name}`:a.name;this.pathFileMapCache.set(c,a),a.type===0&&this.pathFolderIdCache.set(c,a.id)}let o=n.map(D8);return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=t.split("/").filter(Boolean).join("/");if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,raw_url:""};let n=await this.resolveWoPanFile(t);if(!n){let o=await this.resolveFolderId(t).catch(()=>null);if(o){let a=i.split("/");return{name:a[a.length-1]||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:o,type:1,raw_url:""}}throw new Error(`[WoPan] File not found: ${t}`)}let s=D8(n);if(!s.is_dir&&n.fid){let o=await this.client.getDownloadUrlV2([n.fid]).catch(()=>null);o?.list?.[0]?.downloadUrl&&(s.raw_url=o.list[0].downloadUrl)}return s}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s=i.join("/"),o=await this.resolveFolderId(s);await this.client.createDirectory(this.getSpaceType(),o,n,this.getFamilyId()),this.clearCache()}async rename(e,t,i){let n=await this.resolveWoPanFile(t);if(!n)throw new Error(`[WoPan] Item not found for rename: ${t}`);await this.client.renameFileOrDirectory(this.getSpaceType(),n.type,n.id,i,this.getFamilyId()),this.clearCache()}async remove(e,t,i){let n=await this.resolveWoPanFile(t);if(!n)throw new Error(`[WoPan] Item not found for deletion: ${t}`);let s=[],o=[];n.type===0?s.push(n.id):o.push(n.id),await this.client.deleteFile(this.getSpaceType(),s,o),this.clearCache()}async move(e,t,i,n,s){let o=await this.resolveWoPanFile(n);if(!o)throw new Error(`[WoPan] Source item not found for move: ${n}`);let a=await this.resolveFolderId(t),c=[],l=[];o.type===0?c.push(o.id):l.push(o.id),await this.client.moveFile(c,l,a,this.getSpaceType(),this.getSpaceType(),this.getFamilyId(),this.getFamilyId()),this.clearCache()}async copy(e,t,i,n,s){let o=await this.resolveWoPanFile(n);if(!o)throw new Error(`[WoPan] Source item not found for copy: ${n}`);let a=await this.resolveFolderId(t),c=[],l=[];o.type===0?c.push(o.id):l.push(o.id),await this.client.copyFile(c,l,a,this.getSpaceType(),this.getSpaceType(),this.getFamilyId(),this.getFamilyId()),this.clearCache()}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"upload",o=n.join("/"),a=await this.resolveFolderId(o);await this.client.upload2C(this.getSpaceType(),s,i,a,this.getFamilyId()),this.clearCache()}clearCache(){this.pathFileMapCache.clear(),this.pathFolderIdCache.clear()}async fetchFolderFiles(e){let t=[],i=0,n=100;for(;;){let o=(await this.client.queryAllFiles(this.getSpaceType(),e,i,n,this.getSortRuleNum(),this.getFamilyId()))?.files||[];if(t.push(...o),o.length<n)break;i++}return t}async resolveFolderId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.getRootId();if(this.pathFolderIdCache.has(t))return this.pathFolderIdCache.get(t);let i=t.split("/"),n=this.getRootId();for(let s=0;s<i.length;s++){let o=i[s],a=(()=>{try{return decodeURIComponent(o)}catch{return o}})(),c=i.slice(0,s+1).join("/");if(this.pathFolderIdCache.has(c)){n=this.pathFolderIdCache.get(c);continue}let l=await this.fetchFolderFiles(n);for(let u of l){let f=i.slice(0,s).concat(u.name).join("/");this.pathFileMapCache.set(f,u),u.type===0&&this.pathFolderIdCache.set(f,u.id)}let d=l.find(u=>u.type===0&&(u.name===o||u.name===a||u.id===o));if(!d)throw new Error(`[WoPan] Directory '${o}' not found in path '${e}'`);n=d.id,this.pathFolderIdCache.set(c,n)}return n}async resolveWoPanFile(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return null;if(this.pathFileMapCache.has(t))return this.pathFileMapCache.get(t);let i=t.split("/"),n=i.pop(),s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o=i.join("/"),a=await this.resolveFolderId(o),c=await this.fetchFolderFiles(a);for(let d of c){let u=i.concat(d.name).join("/");this.pathFileMapCache.set(u,d),d.type===0&&this.pathFolderIdCache.set(u,d.id)}return c.find(d=>d.name===n||d.name===s||d.id===n||d.fid===n)||null}}});function Wu(){let r=()=>Array.from({length:16},()=>Math.floor(Math.random()*16).toString(16)).join(""),e={appVersion:"8.0.0",brand:eJ,deviceId:r(),deviceName:_8,imei:r(),imsi:r(),mac:Array.from({length:6},()=>Math.floor(Math.random()*256).toString(16).padStart(2,"0")).join(":"),mno:"46000",model:_8,mpVersion:VC,networkType:"wifi",osVersion:"12",platform:Zz};return JSON.stringify(e)}var xr,VC,Zz,_8,eJ,YC=j(()=>{"use strict";xr="https://mcloud.caiyun.feixin.10086.cn/MoPanProxyFamily",VC="1.1.202",Zz="android",_8="M2102J2SC",eJ="Xiaomi"});import{createCipheriv as tJ,createDecipheriv as rJ,randomBytes as iJ}from"crypto";function WC(r,e){let t=Buffer.alloc(16,0),i=tJ("aes-128-cbc",e.slice(0,16),t);return Buffer.concat([i.update(r),i.final()])}function F8(r,e){let t=Buffer.alloc(16,0),i=rJ("aes-128-cbc",e.slice(0,16),t);return Buffer.concat([i.update(r),i.final()])}function P8(){return iJ(16).toString("hex").slice(0,16)}function qp(r){return r.toString("base64")}function T8(r){return Buffer.from(r,"base64")}function R8(r,e){return qp(Buffer.from(r,"utf-8"))}var U8,N8=j(()=>{"use strict";U8=`-----BEGIN PUBLIC KEY----- +</d:propfind>`});if(i.status===404)throw new Error(`Object not found: ${e}`);if(i.status!==207&&!i.ok){let c=await i.text();throw new Error(`WebDAV PROPFIND failed with status ${i.status}: ${c||i.statusText}`)}let n=await i.text(),{self:s,items:o}=S4(n,e),a=s||o[0];if(!a)throw new Error(`Object not found in PROPFIND response: ${e}`);return a}async mkdir(e){let t=await this.request("MKCOL",e);if(!(t.status===201||t.status===405))throw new Error(`WebDAV MKCOL failed with status ${t.status}`)}async mkdirAll(e){let t=await this.request("MKCOL",e);if(!(t.status===201||t.status===405)){if(t.status===409){let i=e.split("/").filter(Boolean),n="";for(let s of i){n+="/"+s;let o=await this.request("MKCOL",n);if(o.status!==201&&o.status!==405)throw new Error(`WebDAV MkdirAll failed at ${n} with status ${o.status}`)}return}throw new Error(`WebDAV MkdirAll failed with status ${t.status}`)}}async move(e,t,i=!0){let n=this.buildUrl(t),s=await this.request("MOVE",e,{headers:{Destination:n,Overwrite:i?"T":"F"}});if(!(s.status===201||s.status===204)){if(s.status===409){let o=t.substring(0,t.lastIndexOf("/"));if(o)return await this.mkdirAll(o),this.move(e,t,i)}throw new Error(`WebDAV MOVE failed with status ${s.status}`)}}async copy(e,t,i=!0){let n=this.buildUrl(t),s=await this.request("COPY",e,{headers:{Destination:n,Overwrite:i?"T":"F"}});if(!(s.status===201||s.status===204)){if(s.status===409){let o=t.substring(0,t.lastIndexOf("/"));if(o)return await this.mkdirAll(o),this.copy(e,t,i)}throw new Error(`WebDAV COPY failed with status ${s.status}`)}}async remove(e){let t=await this.request("DELETE",e);if(!(t.status===200||t.status===204||t.status===404))throw new Error(`WebDAV DELETE failed with status ${t.status}`)}async put(e,t,i){let n={};i&&(n["Content-Type"]=i);let s=await this.request("PUT",e,{headers:n,body:t});if(!(s.status===200||s.status===201||s.status===204)){if(s.status===409){let o=e.substring(0,e.lastIndexOf("/"));if(o&&(await this.mkdirAll(o),s=await this.request("PUT",e,{headers:n,body:t}),s.status===200||s.status===201||s.status===204))return}throw new Error(`WebDAV PUT failed with status ${s.status}`)}}getLink(e){let t=this.buildUrl(e),i=new URL(t),n=i.pathname+i.search,s=this.getAuthHeaders("GET",n);return{url:t,headers:s}}}});function Vj(r){let e={...r||{}};return e.vendor=e.vendor||"other",e.address=(e.address||"").trim(),e.username=(e.username||"").trim(),e.password=e.password||"",e.root_folder_path=(e.root_folder_path||"/").trim(),e.root_folder_path.startsWith("/")||(e.root_folder_path="/"+e.root_folder_path),e.tls_insecure_skip_verify=!!e.tls_insecure_skip_verify,e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e}var Zp,_4=J(()=>{"use strict";Be();He();Q4();Zp=class{client;addition;constructor(e){this.addition=Vj(e),this.client=new Xp(this.addition)}async init(){await this.client.init()}getRemotePath(e){let t=this.addition.root_folder_path||"/";return Hs(t,e||"/")}fileItemFromWebdav(e,t){let i=this.client.getLink(t);return{name:e.name,size:e.size,is_dir:e.isFolder,modified:e.modified,sign:"",type:X(e.name,e.isFolder),thumb:"",raw_url:e.isFolder?void 0:i.url,raw_url_headers:e.isFolder?void 0:i.headers}}async list(e,t){let i=this.getRemotePath(t),s=(await this.client.readDir(i)).map(o=>{let a=Hs(i,o.name);return this.fileItemFromWebdav(o,a)});return de(s,this.addition.order_by||"name",this.addition.order_direction||"asc")}async get(e,t){let i=this.getRemotePath(t),n=await this.client.stat(i);return this.fileItemFromWebdav(n,i)}async mkdir(e,t){let i=this.getRemotePath(t);await this.client.mkdirAll(i)}async rename(e,t,i){let n=this.getRemotePath(t),s=n.lastIndexOf("/"),o=s>=0?n.substring(0,s):"/",a=Hs(o,i);await this.client.move(n,a,!0)}async move(e,t,i,n,s){let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=Hs(o,c),d=Hs(a,c);await this.client.move(l,d,!0)}}async copy(e,t,i,n,s){let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=Hs(o,c),d=Hs(a,c);await this.client.copy(l,d,!0)}}async remove(e,t,i){let n=this.getRemotePath(t);if(i&&i.length>0)for(let s of i){let o=Hs(n,s);await this.client.remove(o)}else await this.client.remove(n)}async put(e,t,i){let n=this.getRemotePath(t);await this.client.put(n,i)}}});var Zi,em,F4,P4,yE,IE,ia,wE,T4,U4,R4,N4,q4,O4,M4,L4,H4,K4,G4,z4,J4,j4,$4,xE,tm=J(()=>{"use strict";Zi="1001000021",em="XFmi9GS2hzk98jGX",F4="10000001",P4="https://panservice.mail.wo.cn",yE="https://tjupload.pan.wo.cn",IE="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.37",ia="api-user",wE="wohome",T4="wocloud",U4="AppQueryUser",R4="AppRefreshToken",N4="QueryCloudUsageInfo",q4="ClassifyRule",O4="GetZoneInfo",M4="FamilyUserCurrentEncode",L4="QueryAllFiles",H4="GetDownloadUrlV2",K4="CreateDirectory",G4="RenameFileOrDirectory",z4="MoveFile",J4="CopyFile",j4="DeleteFile",$4="upload2C",xE={name_asc:1,name_desc:2,size_asc:3,size_desc:4,time_asc:5,time_desc:6}});var pi,Yj,rm,V4=J(()=>{"use strict";pi=xr(Oo(),1);tm();Yj="wNSOYIB1k1DjY5lA",rm=class{key=em;iv=Yj;accessKey="";constructor(e){e&&this.setAccessToken(e)}setAccessToken(e){e&&e.length>=16?this.accessKey=e.slice(0,16):e&&(this.accessKey=e)}encrypt(e,t){let i=t===ia?this.key:this.accessKey||this.key,n=pi.default.enc.Utf8.parse(i),s=pi.default.enc.Utf8.parse(this.iv);return pi.default.AES.encrypt(pi.default.enc.Utf8.parse(e),n,{iv:s,mode:pi.default.mode.CBC,padding:pi.default.pad.Pkcs7}).toString()}decrypt(e,t){let i=t===ia?this.key:this.accessKey||this.key,n=pi.default.enc.Utf8.parse(i),s=pi.default.enc.Utf8.parse(this.iv);return pi.default.AES.decrypt(e,n,{iv:s,mode:pi.default.mode.CBC,padding:pi.default.pad.Pkcs7}).toString(pi.default.enc.Utf8)}userEncrypt(e){return this.encrypt(e,ia)}userDecrypt(e){return this.decrypt(e,ia)}woHomeEncrypt(e){return this.encrypt(e,"wohome")}woHomeDecrypt(e){return this.decrypt(e,"wohome")}calHeader(e,t){let i=Date.now(),n=Math.floor(Math.random()*8999)+1e5,s="",o=pi.default.MD5(`${t}${i}${n}${e}${s}`).toString();return{key:t,resTime:i,reqSeq:n,channel:e,sign:o,version:s}}}});function Wj(r){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",t="";for(let i=0;i<r;i++)t+=e.charAt(Math.floor(Math.random()*e.length));return t}function Xj(r=new Date){let e=c=>String(c).padStart(2,"0"),t=r.getFullYear(),i=e(r.getMonth()+1),n=e(r.getDate()),s=e(r.getHours()),o=e(r.getMinutes()),a=e(r.getSeconds());return`${t}${i}${n}${s}${o}${a}`}var im,Y4=J(()=>{"use strict";tm();V4();im=class{addition;accessToken;refreshTokenValue;phone="";zoneURL="";classifyRuleData=null;crypto;onTokenUpdate;constructor(e,t){this.addition=e,this.accessToken=e.access_token||"",this.refreshTokenValue=e.refresh_token||"",this.onTokenUpdate=t,this.crypto=new rm(this.accessToken)}getAccessToken(){return this.accessToken}getRefreshToken(){return this.refreshTokenValue}setAccessToken(e){this.accessToken=e,this.crypto.setAccessToken(e)}setRefreshToken(e){this.refreshTokenValue=e}async request(e,t,i,n={},s=!0){let o=this.crypto.calHeader(e,t),a={...n};if(i!=null){let g=JSON.stringify(i),p=this.crypto.encrypt(g,e);a.param=p}let c={Origin:"https://pan.wo.cn",Referer:"https://pan.wo.cn/","User-Agent":IE,"Content-Type":"application/json;charset=UTF-8"};this.accessToken&&(c.Accesstoken=this.accessToken);let l=`${P4}/${e}/dispatcher`,d=await fetch(l,{method:"POST",headers:c,body:JSON.stringify({header:o,body:a})});if(!d.ok)throw new Error(`[WoPan] Request failed with HTTP status: ${d.status} ${d.statusText}`);let u=await d.json().catch(()=>null);if(!u)throw new Error(`[WoPan] Response is not valid JSON from ${t}`);if(u.STATUS!=="200")throw new Error(`[WoPan] Request failed with status: ${u.STATUS}, msg: ${u.MSG||""}`);let f=u.RSP?.RSP_CODE;if(f!=="0000"){if(e!==ia&&s&&f==="9999")return await this.refreshToken(),this.request(e,t,i,n,!1);throw new Error(`[WoPan] Request failed with rsp_code: ${f}, rsp_desc: ${u.RSP?.RSP_DESC||""}`)}let h=u.RSP?.DATA;if(h==null)return{};if(typeof h=="string"){let g=h.trim();g.startsWith('"')&&g.endsWith('"')&&(g=g.slice(1,-1));try{let p=this.crypto.decrypt(g,e);if(p)return JSON.parse(p)}catch{try{return JSON.parse(g)}catch{return g}}}return h}async requestApiUser(e,t,i={}){return this.request(ia,e,t,i)}async requestWoHome(e,t,i={}){return this.request(wE,e,t,i)}async appRefreshToken(){return await this.requestApiUser(R4,{refreshToken:this.refreshTokenValue,clientSecret:em},{clientId:Zi,secret:!0})}async refreshToken(){let e=await this.appRefreshToken();if(!e.access_token)throw new Error("[WoPan] Failed to refresh token: empty access_token");this.setAccessToken(e.access_token),e.refresh_token&&this.setRefreshToken(e.refresh_token),this.onTokenUpdate?.(this.accessToken,this.refreshTokenValue)}async appQueryUser(){return this.requestApiUser(U4,{accessToken:this.accessToken},{clientId:Zi,secret:!0})}async initPhone(){if(this.phone)return;let e=await this.appQueryUser();e?.userId&&(this.phone=e.userId)}async classifyRule(){return this.requestWoHome(q4,{},{key:!0})}async initClassifyRule(){if(this.classifyRuleData)return;let e=await this.classifyRule().catch(()=>null);e&&(this.classifyRuleData=e)}async getZoneInfo(){return this.requestWoHome(O4,{appId:F4},{key:!0})}async initZoneURL(){if(this.zoneURL)return;let e=await this.getZoneInfo().catch(()=>null);this.zoneURL=e?.url||yE}async familyUserCurrentEncode(){return this.requestWoHome(M4,{clientId:Zi},{secret:!0})}async initData(){!this.accessToken&&this.refreshTokenValue&&await this.refreshToken(),await this.initPhone().catch(()=>{}),await this.initClassifyRule().catch(()=>{}),await this.initZoneURL().catch(()=>{})}getFileType(e){let t=(e.split(".").pop()||"").toLowerCase();return t&&this.classifyRuleData?.fileTypes?.[t]?this.classifyRuleData.fileTypes[t].type:"5"}async queryAllFiles(e,t,i,n,s,o=""){let a={spaceType:e,parentDirectoryId:t,pageNum:i,pageSize:n,sortRule:s,clientId:Zi};return e==="1"&&o&&(a.familyId=o),this.requestWoHome(L4,a,{secret:!0})}async getDownloadUrlV2(e){let t={type:"1",fidList:e,clientId:Zi};return this.requestWoHome(H4,t,{secret:!0})}async createDirectory(e,t,i,n=""){let s={spaceType:e,familyId:n,parentDirectoryId:t,directoryName:i,clientId:Zi};return this.requestWoHome(K4,s,{secret:!0})}async renameFileOrDirectory(e,t,i,n,s=""){let o=t===0?"0":this.getFileType(n),a={spaceType:e,type:t,fileType:o,id:i,name:n,clientId:Zi};e==="1"&&s&&(a.familyId=s),await this.requestWoHome(G4,a,{secret:!0})}async moveFile(e,t,i,n,s,o="",a=""){let c={targetDirId:i,sourceType:n,targetType:s,dirList:e,fileList:t,secret:!1,clientId:Zi};n==="1"&&o&&(c.fromFamilyId=o),s==="1"&&a&&(c.familyId=a),await this.requestWoHome(z4,c,{secret:!0})}async copyFile(e,t,i,n,s,o="",a=""){let c={targetDirId:i,sourceType:n,targetType:s,dirList:e,fileList:t,secret:!1,clientId:Zi};n==="1"&&o&&(c.fromFamilyId=o),s==="1"&&a&&(c.familyId=a),await this.requestWoHome(J4,c,{secret:!0})}async deleteFile(e,t,i){let n={spaceType:e,vipLevel:"0",dirList:t,fileList:i,clientId:Zi};await this.requestWoHome(j4,n,{secret:!0})}async queryCloudUsageInfo(){return await this.initPhone(),this.requestWoHome(N4,{phoneNum:this.phone,clientId:Zi},{secret:!0})}async upload2C(e,t,i,n,s="",o){await this.initZoneURL();let c=`${this.zoneURL||yE}/openapi/client/${$4}`,l=i instanceof Uint8Array?i:i instanceof ArrayBuffer?new Uint8Array(i):new Uint8Array(i),d=l.length,u=Math.max(1,Math.ceil(d/8388608)),f=Xj(),h={spaceType:e,directoryId:n,batchNo:f,fileName:t,fileSize:d,fileType:this.getFileType(t)};e==="1"&&s&&(h.familyId=s);let g=this.crypto.encrypt(JSON.stringify(h),wE),p=`${Date.now()}_${Wj(6)}`,I=0,m="";for(let w=1;w<=u;w++){let B=(w-1)*8388608,C=w===u?d-B:8388608,x=l.subarray(B,B+C),Q=new FormData;Q.append("uniqueId",p),Q.append("accessToken",this.accessToken),Q.append("fileName",t),Q.append("psToken","undefined"),Q.append("fileSize",String(d)),Q.append("totalPart",String(u)),Q.append("channel",T4),Q.append("directoryId",n),Q.append("fileInfo",g),Q.append("partSize",String(C)),Q.append("partIndex",String(w));let R=new Blob([x.buffer.slice(x.byteOffset,x.byteOffset+x.byteLength)],{type:"application/octet-stream"});Q.append("file",R,t);let U=await fetch(c,{method:"POST",headers:{Origin:"https://pan.wo.cn",Referer:"https://pan.wo.cn/","User-Agent":IE},body:Q});if(!U.ok)throw new Error(`[WoPan] Upload part ${w}/${u} failed with HTTP status: ${U.status}`);let T=await U.json().catch(()=>({}));if(T.code!=="0000")throw new Error(`[WoPan] Upload part ${w}/${u} failed: ${T.code} ${T.msg||""}`);T.data?.fid&&(m=T.data.fid),I+=C,o?.(I,d)}return m}}});function e$(r){if(!r)return new Date().toISOString();if(r.length>=14){let e=r.slice(0,4),t=r.slice(4,6),i=r.slice(6,8),n=r.slice(8,10),s=r.slice(10,12),o=r.slice(12,14),a=`${e}-${t}-${i}T${n}:${s}:${o}+08:00`,c=new Date(a);if(!isNaN(c.getTime()))return c.toISOString()}try{let e=new Date(r);if(!isNaN(e.getTime()))return e.toISOString()}catch{}return new Date().toISOString()}function W4(r){let e=r.type===0;return{name:r.name,size:r.size||0,is_dir:e,modified:e$(r.createTime),sign:r.fid||r.id,type:X(r.name,e),thumb:r.thumbUrl||"",raw_url:""}}function EE(r){let e={...r||{}};return e.root_folder_id=e.root_folder_id||"0",e.refresh_token=(e.refresh_token||"").trim(),e.family_id=(e.family_id||"").trim(),e.sort_rule=e.sort_rule||"name_asc",e.access_token=(e.access_token||"").trim(),e}var nm,X4=J(()=>{"use strict";Be();He();tm();Y4();nm=class{client;addition;defaultFamilyId="";pathFileMapCache=new Map;pathFolderIdCache=new Map;constructor(e,t){this.addition=EE(e),this.client=new im(this.addition,(i,n)=>{this.addition.access_token=i,this.addition.refresh_token=n,t?.(i,n)})}getSpaceType(){return this.addition.family_id?"1":"0"}getFamilyId(){return this.addition.family_id||this.defaultFamilyId}getSortRuleNum(){let e=this.addition.sort_rule||"name_asc";return xE[e]||xE.name_asc}getRootId(){return this.addition.root_folder_id||"0"}async init(){await this.client.initData();let e=await this.client.familyUserCurrentEncode().catch(()=>null);e?.defaultHomeId!==void 0&&e.defaultHomeId!==null&&(this.defaultFamilyId=String(e.defaultHomeId))}async list(e,t){let i=await this.resolveFolderId(t),n=await this.fetchFolderFiles(i),s=t.split("/").filter(Boolean).join("/");for(let a of n){let c=s?`${s}/${a.name}`:a.name;this.pathFileMapCache.set(c,a),a.type===0&&this.pathFolderIdCache.set(c,a.id)}let o=n.map(W4);return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=t.split("/").filter(Boolean).join("/");if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,raw_url:""};let n=await this.resolveWoPanFile(t);if(!n){let o=await this.resolveFolderId(t).catch(()=>null);if(o){let a=i.split("/");return{name:a[a.length-1]||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:o,type:1,raw_url:""}}throw new Error(`[WoPan] File not found: ${t}`)}let s=W4(n);if(!s.is_dir&&n.fid){let o=await this.client.getDownloadUrlV2([n.fid]).catch(()=>null);o?.list?.[0]?.downloadUrl&&(s.raw_url=o.list[0].downloadUrl)}return s}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s=i.join("/"),o=await this.resolveFolderId(s);await this.client.createDirectory(this.getSpaceType(),o,n,this.getFamilyId()),this.clearCache()}async rename(e,t,i){let n=await this.resolveWoPanFile(t);if(!n)throw new Error(`[WoPan] Item not found for rename: ${t}`);await this.client.renameFileOrDirectory(this.getSpaceType(),n.type,n.id,i,this.getFamilyId()),this.clearCache()}async remove(e,t,i){let n=await this.resolveWoPanFile(t);if(!n)throw new Error(`[WoPan] Item not found for deletion: ${t}`);let s=[],o=[];n.type===0?s.push(n.id):o.push(n.id),await this.client.deleteFile(this.getSpaceType(),s,o),this.clearCache()}async move(e,t,i,n,s){let o=await this.resolveWoPanFile(n);if(!o)throw new Error(`[WoPan] Source item not found for move: ${n}`);let a=await this.resolveFolderId(t),c=[],l=[];o.type===0?c.push(o.id):l.push(o.id),await this.client.moveFile(c,l,a,this.getSpaceType(),this.getSpaceType(),this.getFamilyId(),this.getFamilyId()),this.clearCache()}async copy(e,t,i,n,s){let o=await this.resolveWoPanFile(n);if(!o)throw new Error(`[WoPan] Source item not found for copy: ${n}`);let a=await this.resolveFolderId(t),c=[],l=[];o.type===0?c.push(o.id):l.push(o.id),await this.client.copyFile(c,l,a,this.getSpaceType(),this.getSpaceType(),this.getFamilyId(),this.getFamilyId()),this.clearCache()}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"upload",o=n.join("/"),a=await this.resolveFolderId(o);await this.client.upload2C(this.getSpaceType(),s,i,a,this.getFamilyId()),this.clearCache()}clearCache(){this.pathFileMapCache.clear(),this.pathFolderIdCache.clear()}async fetchFolderFiles(e){let t=[],i=0,n=100;for(;;){let o=(await this.client.queryAllFiles(this.getSpaceType(),e,i,n,this.getSortRuleNum(),this.getFamilyId()))?.files||[];if(t.push(...o),o.length<n)break;i++}return t}async resolveFolderId(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return this.getRootId();if(this.pathFolderIdCache.has(t))return this.pathFolderIdCache.get(t);let i=t.split("/"),n=this.getRootId();for(let s=0;s<i.length;s++){let o=i[s],a=(()=>{try{return decodeURIComponent(o)}catch{return o}})(),c=i.slice(0,s+1).join("/");if(this.pathFolderIdCache.has(c)){n=this.pathFolderIdCache.get(c);continue}let l=await this.fetchFolderFiles(n);for(let u of l){let f=i.slice(0,s).concat(u.name).join("/");this.pathFileMapCache.set(f,u),u.type===0&&this.pathFolderIdCache.set(f,u.id)}let d=l.find(u=>u.type===0&&(u.name===o||u.name===a||u.id===o));if(!d)throw new Error(`[WoPan] Directory '${o}' not found in path '${e}'`);n=d.id,this.pathFolderIdCache.set(c,n)}return n}async resolveWoPanFile(e){let t=e.split("/").filter(Boolean).join("/");if(!t)return null;if(this.pathFileMapCache.has(t))return this.pathFileMapCache.get(t);let i=t.split("/"),n=i.pop(),s=(()=>{try{return decodeURIComponent(n)}catch{return n}})(),o=i.join("/"),a=await this.resolveFolderId(o),c=await this.fetchFolderFiles(a);for(let d of c){let u=i.concat(d.name).join("/");this.pathFileMapCache.set(u,d),d.type===0&&this.pathFolderIdCache.set(u,d.id)}return c.find(d=>d.name===n||d.name===s||d.id===n||d.fid===n)||null}}});function ff(){let r=()=>Array.from({length:16},()=>Math.floor(Math.random()*16).toString(16)).join(""),e={appVersion:"8.0.0",brand:r$,deviceId:r(),deviceName:Z4,imei:r(),imsi:r(),mac:Array.from({length:6},()=>Math.floor(Math.random()*256).toString(16).padStart(2,"0")).join(":"),mno:"46000",model:Z4,mpVersion:BE,networkType:"wifi",osVersion:"12",platform:t$};return JSON.stringify(e)}var Er,BE,t$,Z4,r$,bE=J(()=>{"use strict";Er="https://mcloud.caiyun.feixin.10086.cn/MoPanProxyFamily",BE="1.1.202",t$="android",Z4="M2102J2SC",r$="Xiaomi"});import{createCipheriv as i$,createDecipheriv as n$,randomBytes as s$}from"crypto";function vE(r,e){let t=Buffer.alloc(16,0),i=i$("aes-128-cbc",e.slice(0,16),t);return Buffer.concat([i.update(r),i.final()])}function eF(r,e){let t=Buffer.alloc(16,0),i=n$("aes-128-cbc",e.slice(0,16),t);return Buffer.concat([i.update(r),i.final()])}function tF(){return s$(16).toString("hex").slice(0,16)}function sm(r){return r.toString("base64")}function rF(r){return Buffer.from(r,"base64")}function nF(r,e){return sm(Buffer.from(r,"utf-8"))}var iF,sF=J(()=>{"use strict";iF=`-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDN8TyHJhEVoT6t5A/9Q3+2/v3n 3tEqvU7yb8+yx6L0S5h5D+Y5b2E5vVqJ5J8k5n7Y5E5y5w5h5e5q5c5J5b5t5f5j 5r5u5a5s5i5o5n5k5e5y5A== ------END PUBLIC KEY-----`});var Op,q8=j(()=>{"use strict";YC();N8();Op=class{addition;authorization="";deviceInfo;onAuthorizationExpired;constructor(e,t){if(this.addition=e,this.onAuthorizationExpired=t,e.device_info?.trim())try{this.deviceInfo=JSON.parse(e.device_info)}catch{this.deviceInfo=JSON.parse(Wu())}else this.deviceInfo=JSON.parse(Wu())}setAuthorization(e){e.startsWith("Bearer ")||(e=`Bearer ${e}`),this.authorization=e}getAuthorization(){return this.authorization}getDeviceInfo(){return this.deviceInfo}getDeviceInfoJson(){return JSON.stringify(this.deviceInfo)}async request(e,t,i=!0){let n=P8(),s=qp(WC(Buffer.from(JSON.stringify(this.deviceInfo),"utf-8"),Buffer.from(n,"utf-8"))),o=R8(n,U8),a={Authorization:this.authorization,remoteInfo:s,version:this.deviceInfo.mpVersion||VC,"encrypted-key":o,"Content-Type":"application/json"},c;if(t!==null){let f=JSON.stringify(t),h=WC(Buffer.from(f,"utf-8"),Buffer.from(n,"utf-8"));c=qp(h)}let l=await fetch(e,{method:"POST",headers:a,body:c?JSON.stringify(c):void 0});if(!l.ok)throw new Error(`[MoPan] Request failed: ${l.status} ${l.statusText}`);let d=await l.text();d.startsWith('"')&&d.endsWith('"')&&(d=d.slice(1,-1),d=F8(T8(d),Buffer.from(n,"utf-8")).toString("utf-8"));let u=JSON.parse(d);if(u.code===401&&i&&this.onAuthorizationExpired)return await this.onAuthorizationExpired(new Error("Authorization expired: "+u.message)),this.request(e,t,!1);if(u.code!==200)throw new Error(`[MoPan] API error: code=${u.code}, message=${u.message}`);return u.data}async login(e,t){let i={phone:e,password:t};return this.request(xr+"/login",i)}async loginBySms(e){let t={phone:e};await this.request(xr+"/sendSmsCode",t)}async loginBySmsStep2(e,t){let i={phone:e,smsCode:t};return this.request(xr+"/loginBySms",i)}async getUserInfo(){return this.request(xr+"/getUserInfo",null)}async queryFiles(e,t=1,i="filename",n=!1,s){let o={folderId:e,pageNum:t,orderBy:i,descending:n};return s&&(o.cloudId=s),this.request(xr+"/queryFiles",o)}async getFileDownloadUrl(e,t){let i={fileId:e};return t&&(i.cloudId=t),this.request(xr+"/getFileDownloadUrl",i)}async createFolder(e,t,i){let n={name:e,parentId:t};return i&&(n.cloudId=i),this.request(xr+"/createFolder",n)}async renameFolder(e,t,i){let n={folderId:e,newName:t};i&&(n.cloudId=i),await this.request(xr+"/renameFolder",n)}async renameFile(e,t,i){let n={fileId:e,newName:t};i&&(n.cloudId=i),await this.request(xr+"/renameFile",n)}async addBatchTask(e){return this.request(xr+"/addBatchTask",e)}async checkBatchTask(e){return this.request(xr+"/checkBatchTask",e)}async cancelBatchTask(e,t){await this.request(xr+"/cancelBatchTask",{taskId:e,taskType:t})}async deleteToRecycle(e,t){let i={files:e};t&&(i.cloudId=t),await this.request(xr+"/deleteToRecycle",i)}async initMultiUpload(e,t,i,n,s){let o={fileMd5:e,fileName:t,fileSize:i,parentFolderId:n};return s&&(o.cloudId=s),this.request(xr+"/initMultiUpload",o)}async getAllMultiUploadUrls(e,t){let i={uploadFileId:e,partInfos:t};return this.request(xr+"/getAllMultiUploadUrls",i)}async commitMultiUploadFile(e){let t={uploadFileId:e};return this.request(xr+"/commitMultiUploadFile",t)}async usedSpace(){return this.request(xr+"/usedSpace",null)}}});import{createHash as cJ}from"crypto";function L8(r){if(!r)return new Date().toISOString();try{let e=new Date(r);if(!isNaN(e.getTime()))return e.toISOString()}catch{}return new Date().toISOString()}function O8(r){return{name:r.name,size:0,is_dir:!0,modified:L8(r.lastOpTime),sign:r.id,type:1,thumb:"",raw_url:""}}function M8(r){return{name:r.name,size:r.size||0,is_dir:!1,modified:L8(r.lastOpTime),sign:r.id,type:X(r.name,!1),thumb:r.icon?.smallURL||r.icon?.largeURL||"",raw_url:"",hash:r.md5||void 0,hashes:r.md5?{md5:r.md5}:void 0}}function lJ(r){let e={...r||{}};return e.phone=(e.phone||"").trim(),e.password=(e.password||"").trim(),e.sms_code=(e.sms_code||"").trim(),e.root_folder_id=e.root_folder_id||"",e.cloud_id=(e.cloud_id||"").trim(),e.order_by=e.order_by||"filename",e.order_direction=e.order_direction||"asc",e.device_info=e.device_info||Wu(),e.upload_thread=e.upload_thread||"3",e}var Mp,H8=j(()=>{"use strict";Be();He();q8();YC();Mp=class{client;addition;userId="";uploadThread=3;constructor(e,t){this.addition=lJ(e),this.uploadThread=parseInt(this.addition.upload_thread||"3"),(this.uploadThread<1||this.uploadThread>32)&&(this.uploadThread=3),this.client=new Op(this.addition,async i=>{await this.performLogin(),t&&t(this.client.getDeviceInfoJson(),this.client.getAuthorization())})}async performLogin(){let e=this.addition.sms_code?.trim()||"";if(e==="send")throw await this.client.loginBySms(this.addition.phone),new Error("[MoPan] SMS code sent, please enter the code");let t;e&&e!=="send"?t=await this.client.loginBySmsStep2(this.addition.phone,e):t=await this.client.login(this.addition.phone,this.addition.password),this.client.setAuthorization(t.token);let i=await this.client.getUserInfo();if(this.userId=i.userID,!this.addition.root_folder_id&&t.userCloudStorageRelations){for(let n of t.userCloudStorageRelations)if(n.path==="/\u6587\u4EF6"){this.addition.root_folder_id=n.folderID;break}}}async init(){await this.performLogin()}async list(e,t){let i=await this.resolveFolderId(t),n=[];for(let s=1;;s++){let o=await this.client.queryFiles(i,s,this.addition.order_by||"filename",this.addition.order_direction==="desc",this.addition.cloud_id);if(!o.fileListAO)break;let{folderList:a=[],fileList:c=[]}=o.fileListAO;if(a.length===0&&c.length===0||(n.push(...a.map(O8)),n.push(...c.map(M8)),a.length+c.length<100))break}return de(n,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=t.split("/").filter(Boolean);if(i.length===0)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,thumb:"",raw_url:""};let n=i.slice(0,-1).join("/"),s=i[i.length-1],o=await this.resolveFolderId(n),a=await this.client.queryFiles(o,1,"filename",!1,this.addition.cloud_id);if(a.fileListAO){let c=a.fileListAO.folderList?.find(d=>d.name===s);if(c)return O8(c);let l=a.fileListAO.fileList?.find(d=>d.name===s);if(l){let d=M8(l),u=await this.client.getFileDownloadUrl(l.id,this.addition.cloud_id).catch(()=>null);if(u?.downloadUrl){let f=u.downloadUrl.replace(/&/g,"&");f=f.replace(/^http:/,"https:");let h=await this.followRedirect(f);d.raw_url=h||f}return d}}throw new Error(`[MoPan] File not found: ${t}`)}async followRedirect(e){try{let t=await fetch(e,{redirect:"manual"});return(t.status===302||t.status===301)&&t.headers.get("location")||e}catch{return null}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s=i.join("/"),o=await this.resolveFolderId(s);await this.client.createFolder(n,o,this.addition.cloud_id)}async rename(e,t,i){let n=await this.get("",t);n.is_dir?await this.client.renameFolder(n.sign,i,this.addition.cloud_id):await this.client.renameFile(n.sign,i,this.addition.cloud_id)}async move(e,t,i,n,s){let o=await this.resolveFolderId(s);for(let a of i){let c=n==="/"?`/${a}`:`${n}/${a}`,l=await this.get(e,c);await this.performBatchTask(l,o,2)}}async copy(e,t,i,n,s){let o=await this.resolveFolderId(s);for(let a of i){let c=n==="/"?`/${a}`:`${n}/${a}`,l=await this.get(e,c);await this.performBatchTask(l,o,1)}}async performBatchTask(e,t,i){let n={fileID:e.sign,isFolder:e.is_dir,fileName:e.name},s={userOrCloudID:this.userId,source:1,taskType:i,targetSource:1,targetUserOrCloudID:this.userId,targetType:1,targetFolderID:t,taskStatusDetailDTOList:[n]};this.addition.cloud_id&&(s.userOrCloudID=this.addition.cloud_id,s.source=2,s.targetSource=2,s.targetUserOrCloudID=this.addition.cloud_id);let o=await this.client.addBatchTask(s);for(let a=0;a<10;a++){let c=await this.client.checkBatchTask({taskId:o.taskIDList[0],taskType:o.taskType,targetType:1,targetFolderID:o.targetFolderID,targetSource:s.targetSource,targetUserOrCloudID:s.targetUserOrCloudID});if(c.taskStatus===2)throw await this.client.cancelBatchTask(c.taskID,o.taskType),new Error("[MoPan] File name conflict");if(c.taskStatus===4)return;await new Promise(l=>setTimeout(l,1e3))}throw new Error("[MoPan] Task timeout")}async remove(e,t){let i=await this.get("",t);await this.client.deleteToRecycle([{fileID:i.sign,isFolder:i.is_dir,fileName:i.name}],this.addition.cloud_id)}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"\u672A\u547D\u540D\u6587\u4EF6",o=n.join("/"),a=await this.resolveFolderId(o),c=i,l=cJ("md5").update(c).digest("hex"),d=i.length,u=await this.client.initMultiUpload(l,s,d,a,this.addition.cloud_id);if(!u.fileDataExists){let f=await this.client.getAllMultiUploadUrls(u.uploadFileID,u.partInfos);for(let h of f){let g=(h.partNumber-1)*u.partSize,p=h.partNumber===f.length?d:g+u.partSize,I=c.slice(g,p);await fetch(h.uploadUrl,{method:"PUT",body:I,headers:{"Content-Length":String(I.length)}})}}await this.client.commitMultiUploadFile(u.uploadFileID)}getRootId(){return this.addition.root_folder_id||""}async resolveFolderId(e){let t=this.getRootId(),i=e.split("/").filter(Boolean);if(i.length===0)return t;let n=t;for(let s of i){let a=(await this.client.queryFiles(n,1,"filename",!1,this.addition.cloud_id)).fileListAO?.folderList?.find(c=>c.name===s);if(!a)throw new Error(`[MoPan] Folder not found: ${s}`);n=a.id}return n}}});function Zu(r){return typeof r=="string"?dJ.encode(r):r}function ZC(r){let e=r instanceof Uint8Array?r:new Uint8Array(r),t="";for(let i=0;i<e.length;i++)t+=e[i].toString(16).padStart(2,"0");return t}async function XC(r){let e=await crypto.subtle.digest("SHA-256",Zu(r));return ZC(e)}async function Xu(r,e){let t=await crypto.subtle.importKey("raw",Zu(r),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,Zu(e));return new Uint8Array(i)}async function K8(r,e){let t=await Xu(r,e);return ZC(t)}async function uJ(r,e){let t=await crypto.subtle.importKey("raw",Zu(r),{name:"HMAC",hash:"SHA-1"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,Zu(e));return ZC(i)}function qs(r,e=!0){let t=encodeURIComponent(r).replace(/[!'()*]/g,i=>"%"+i.charCodeAt(0).toString(16).toUpperCase());return e||(t=t.replace(/%2F/g,"/")),t}function G8(r=new Date){let e=d=>d.toString().padStart(2,"0"),t=r.getUTCFullYear(),i=e(r.getUTCMonth()+1),n=e(r.getUTCDate()),s=e(r.getUTCHours()),o=e(r.getUTCMinutes()),a=e(r.getUTCSeconds()),c=`${t}${i}${n}`;return{amzDate:`${c}T${s}${o}${a}Z`,dateStamp:c}}async function z8(r,e,t,i="s3"){let n="AWS4"+r,s=await Xu(n,e),o=await Xu(s,t),a=await Xu(o,i);return await Xu(a,"aws4_request")}async function J8(r){let{method:e,url:t,region:i,accessKeyId:n,secretAccessKey:s,sessionToken:o,headers:a={},body:c=null,service:l="s3",date:d=new Date}=r,u=new URL(t),{amzDate:f,dateStamp:h}=G8(d),g=c!=null?await XC(c):"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",p={...a};p.host=u.host,p["x-amz-date"]=f,p["x-amz-content-sha256"]=g,o&&(p["x-amz-security-token"]=o);let I=Object.keys(p).map(P=>P.toLowerCase()).sort(),y="";for(let P of I){let J=(Object.entries(p).find(([z])=>z.toLowerCase()===P)?.[1]||"").trim().replace(/\s+/g," ");y+=`${P}:${J} -`}let w=I.join(";"),C=u.pathname||"/",b;try{b=decodeURIComponent(C)}catch{b=C}let x=qs(b,!1),_=[];u.searchParams.forEach((P,N)=>{_.push([N,P])}),_.sort(([P],[N])=>P<N?-1:P>N?1:0);let R=_.map(([P,N])=>`${qs(P)}=${qs(N)}`).join("&"),U=[e.toUpperCase(),x,R,y,w,g].join(` -`),T=`${h}/${i}/${l}/aws4_request`,D=await XC(U),B=["AWS4-HMAC-SHA256",f,T,D].join(` -`),Q=await z8(s,h,i,l),v=await K8(Q,B),E=`AWS4-HMAC-SHA256 Credential=${n}/${T}, SignedHeaders=${w}, Signature=${v}`;return p.authorization=E,{headers:p,url:u.toString()}}async function Lp(r){let{method:e="GET",url:t,region:i,accessKeyId:n,secretAccessKey:s,sessionToken:o,expiresInSeconds:a=14400,service:c="s3",date:l=new Date,customQueryParams:d={}}=r,u=new URL(t),{amzDate:f,dateStamp:h}=G8(l),g=`${h}/${i}/${c}/aws4_request`;u.searchParams.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),u.searchParams.set("X-Amz-Credential",`${n}/${g}`),u.searchParams.set("X-Amz-Date",f),u.searchParams.set("X-Amz-Expires",a.toString()),u.searchParams.set("X-Amz-SignedHeaders","host"),o&&u.searchParams.set("X-Amz-Security-Token",o);for(let[v,E]of Object.entries(d))u.searchParams.set(v,E);let p=u.pathname||"/",I;try{I=decodeURIComponent(p)}catch{I=p}let y=qs(I,!1),w=[];u.searchParams.forEach((v,E)=>{E.toLowerCase()!=="x-amz-signature"&&w.push([E,v])}),w.sort(([v],[E])=>v<E?-1:v>E?1:0);let C=w.map(([v,E])=>`${qs(v)}=${qs(E)}`).join("&"),x=`host:${u.host} -`,U=[e.toUpperCase(),y,C,x,"host","UNSIGNED-PAYLOAD"].join(` -`),T=await XC(U),D=["AWS4-HMAC-SHA256",f,g,T].join(` -`),B=await z8(s,h,i,c),Q=await K8(B,D);return u.searchParams.set("X-Amz-Signature",Q),u.toString()}async function j8(r,e){let t="/auth/tmp_token.json",i=JSON.stringify({channel:"OSS_FULL",scopes:["*"]}),n=t+` -`+i,s=await uJ(e,n),o=`TOKEN ${r}:${s}`,a=await fetch("https://api.dogecloud.com"+t,{method:"POST",headers:{"Content-Type":"application/json",Authorization:o},body:i});if(!a.ok)throw new Error(`DogeCloud tmp_token request failed with HTTP ${a.status}`);let c=await a.json();if(c.code!==200||!c.data||!c.data.Credentials)throw new Error(`DogeCloud tmp_token error (${c.code}): ${c.msg||"unknown"}`);return{accessKeyId:c.data.Credentials.accessKeyId,secretAccessKey:c.data.Credentials.secretAccessKey,sessionToken:c.data.Credentials.sessionToken,expiredAt:c.data.ExpiredAt}}var dJ,eE=j(()=>{"use strict";dJ=new TextEncoder});function nr(...r){return r.map(e=>e.replace(/^\/+|\/+$/g,"")).filter(Boolean).join("/")}function bn(r,e=!1){let t=(r||"").replace(/^\/+/,"");return t&&e&&!t.endsWith("/")&&(t+="/"),t}function ef(r){return r&&r.trim()?r.trim():".openlist"}function jo(r){let e=r.replace(/\/+$/,""),t=e.lastIndexOf("/");return t>=0?e.substring(t+1):e}function tE(r){let e=r.replace(/\/+$/,""),t=e.lastIndexOf("/");return t>=0?e.substring(0,t):""}function $8(r,e){let t=("/"+r+"/").replace(/\/+/g,"/");return("/"+e+"/").replace(/\/+/g,"/").startsWith(t)}function Cr(r,e){let t=r.match(new RegExp(`<${e}[^>]*>([\\s\\S]*?)<\\/${e}>`,"i"));return t?t[1].trim():void 0}function Hp(r,e){let t=[],i=new RegExp(`<${e}[^>]*>([\\s\\S]*?)<\\/${e}>`,"gi"),n;for(;(n=i.exec(r))!==null;)t.push(n[1]);return t}function gc(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")}function Os(r,e){let t=Cr(r,"Code")||"Unknown",i=Cr(r,"Message")||r||`HTTP ${e}`,n=new Error(`S3 Error [${t}]: ${gc(i)} (status ${e})`);return n.code=t,n.status=e,n}function pJ(r,e,t,i=!1){let n=[],s=ef(t),o=Hp(r,"CommonPrefixes");for(let d of o){let u=Cr(d,"Prefix");if(u){let f=gc(u),h=jo(f);h&&n.push({name:h,size:0,isFolder:!0,modified:new Date().toISOString(),path:nr(e,h)})}}let a=Hp(r,"Contents");for(let d of a){let u=Cr(d,"Key");if(!u)continue;let f=gc(u);if(f.endsWith("/"))continue;let h=jo(f);if(!i&&(h===s||h===t))continue;let g=parseInt(Cr(d,"Size")||"0",10),p=Cr(d,"LastModified")||new Date().toISOString(),I=Cr(d,"ETag")?.replace(/"/g,"");n.push({name:h,size:g,isFolder:!1,modified:p,path:nr(e,h),etag:I})}let c=Cr(r,"IsTruncated")==="true",l=Cr(r,"NextMarker");return{files:n,isTruncated:c,nextMarker:l,lastEvaluatedKey:n.length>0?n[n.length-1].path:void 0}}function mJ(r,e,t,i=!1){let n=[],s=ef(t),o=Hp(r,"CommonPrefixes");for(let d of o){let u=Cr(d,"Prefix");if(u){let f=gc(u),h=jo(f);h&&n.push({name:h,size:0,isFolder:!0,modified:new Date().toISOString(),path:nr(e,h)})}}let a=Hp(r,"Contents");for(let d of a){let u=Cr(d,"Key");if(!u)continue;let f=gc(u);if(f.endsWith("/"))continue;let h=jo(f);if(!i&&(h===s||h===t))continue;let g=parseInt(Cr(d,"Size")||"0",10),p=Cr(d,"LastModified")||new Date().toISOString(),I=Cr(d,"ETag")?.replace(/"/g,"");n.push({name:h,size:g,isFolder:!1,modified:p,path:nr(e,h),etag:I})}let c=Cr(r,"IsTruncated")==="true",l=Cr(r,"NextContinuationToken");return{files:n,isTruncated:c,nextContinuationToken:l,lastEvaluatedKey:n.length>0?n[n.length-1].path:void 0}}function yJ(r){let e=Cr(r,"UploadId");if(!e)throw new Error("InitiateMultipartUpload returned empty UploadId: "+r);return gc(e)}function IJ(r){let e=Cr(r,"ETag");if(!e)throw new Error("UploadPartCopy returned empty ETag: "+r);return gc(e).replace(/"/g,"")}function wJ(r){let e=Math.max(AJ,Math.floor((r-1)/gJ)+1);if(e>hJ)throw new Error(`Object size ${r} exceeds multipart copy limit`);return e}var fJ,AJ,hJ,gJ,Kp,V8=j(()=>{"use strict";eE();fJ=5*1e3*1e3*1e3,AJ=100*1024*1024,hJ=5*1024*1024*1024,gJ=1e4;Kp=class{addition;bucket;endpoint;region;accessKeyId;secretAccessKey;sessionToken;isPathStyle;userAgent;constructor(e){this.addition=e,this.bucket=(e.bucket||"").trim();let t=(e.endpoint||"").trim();!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t),this.endpoint=t.replace(/\/+$/,""),this.region=(e.region||"").trim()||"openlist",this.accessKeyId=(e.access_key_id||"").trim(),this.secretAccessKey=(e.secret_access_key||"").trim(),this.sessionToken=e.session_token?e.session_token.trim():void 0,this.userAgent=e.user_agent?e.user_agent.trim():void 0;let i=new URL(this.endpoint),n=/^(\d{1,3}\.){3}\d{1,3}$/.test(i.hostname)||i.hostname==="localhost";this.isPathStyle=!!e.force_path_style||n}updateCredentials(e){this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}getUrl(e="",t){let i=new URL(this.endpoint),n="",s=e?bn(e,!1):"";if(this.isPathStyle){let c=[i.pathname.replace(/\/+$/,""),this.bucket,s].filter(Boolean).join("/");i.pathname="/"+c.replace(/^\/+/,""),n=i.toString()}else{let a=i.host.split(":"),c=a[1]?`:${a[1]}`:"",l=`${this.bucket}.${a[0]}${c}`;i.host=l;let u=[i.pathname.replace(/\/+$/,""),s].filter(Boolean).join("/");i.pathname="/"+u.replace(/^\/+/,""),n=i.toString()}let o=new URL(n);if(t)for(let[a,c]of Object.entries(t))c!=null&&o.searchParams.set(a,c);return o.toString()}async fetch(e,t,i=null,n={}){let s={...n};this.userAgent&&(s["user-agent"]=this.userAgent);let{headers:o}=await J8({method:e,url:t,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,headers:s,body:i}),a={method:e,headers:o};return i!=null&&e!=="GET"&&e!=="HEAD"&&(a.body=i),await fetch(t,a)}async listObjects(e,t="v1",i=!1){let n=bn(e,!0),s=[],o=this.addition.placeholder||"";if(t==="v2"){let a,c;for(;;){let l={"list-type":"2",prefix:n,delimiter:"/"};a&&(l["continuation-token"]=a),c&&(l["start-after"]=c);let d=this.getUrl("",l),u=await this.fetch("GET",d),f=await u.text();if(!u.ok)throw Os(f,u.status);let h=mJ(f,e,o,i);if(s.push(...h.files),!h.isTruncated)break;if(h.nextContinuationToken){a=h.nextContinuationToken;continue}if(h.files.length===0)break;c=h.lastEvaluatedKey}}else{let a;for(;;){let c={prefix:n,delimiter:"/"};a&&(c.marker=a);let l=this.getUrl("",c),d=await this.fetch("GET",l),u=await d.text();if(!d.ok)throw Os(u,d.status);let f=pJ(u,e,o,i);if(s.push(...f.files),!f.isTruncated)break;if(f.nextMarker)a=f.nextMarker;else if(f.files.length>0)a=f.files[f.files.length-1].path;else break}}return s}async headObject(e){let t=this.getUrl(e),i=await this.fetch("HEAD",t);if(i.status===404)return null;if(!i.ok){let a=await i.text().catch(()=>"");throw Os(a,i.status)}let n=parseInt(i.headers.get("content-length")||"0",10),s=i.headers.get("last-modified")||new Date().toISOString(),o=(i.headers.get("etag")||"").replace(/"/g,"");return{size:n,modified:s,etag:o}}async listPrefixProbe(e,t="v1"){let n={prefix:bn(e,!0),"max-keys":"1"};t==="v2"&&(n["list-type"]="2");let s=this.getUrl("",n),o=await this.fetch("GET",s);if(!o.ok)return!1;let a=await o.text();return a.includes("<Contents>")||a.includes("<CommonPrefixes>")}async putObject(e,t,i="application/octet-stream"){let n=this.getUrl(e),s={"content-type":i},o=await this.fetch("PUT",n,t,s);if(!o.ok){let a=await o.text().catch(()=>"");throw Os(a,o.status)}}async deleteObject(e){let t=this.getUrl(e),i=await this.fetch("DELETE",t);if(!i.ok&&i.status!==404&&i.status!==204){let n=await i.text().catch(()=>"");throw Os(n,i.status)}}async copyObject(e,t,i){if(i!==void 0&&i>fJ)return this.copyMultipart(e,t,i);let n=bn(e,!1),s=bn(t,!1),o=qs(`${this.bucket}/${n}`,!1),a=this.getUrl(s),c={"x-amz-copy-source":o},l=await this.fetch("PUT",a,null,c);if(!l.ok){let d=await l.text().catch(()=>"");throw Os(d,l.status)}}async copyMultipart(e,t,i){let n=bn(e,!1),s=bn(t,!1),o=qs(`${this.bucket}/${n}`,!1),a=this.getUrl(s,{uploads:""}),c=await this.fetch("POST",a),l=await c.text();if(!c.ok)throw Os(l,c.status);let d=yJ(l),u=wJ(i),f=[];try{let h=0,g=1;for(;h<i;){let w=Math.min(h+u,i)-1,C=this.getUrl(s,{partNumber:g.toString(),uploadId:d}),b={"x-amz-copy-source":o,"x-amz-copy-source-range":`bytes=${h}-${w}`},x=await this.fetch("PUT",C,null,b),_=await x.text();if(!x.ok)throw Os(_,x.status);let R=IJ(_);f.push({partNumber:g,etag:R}),h+=u,g++}let p=this.getUrl(s,{uploadId:d}),I=["<CompleteMultipartUpload>",...f.map(w=>`<Part><PartNumber>${w.partNumber}</PartNumber><ETag>${w.etag}</ETag></Part>`),"</CompleteMultipartUpload>"].join(""),y=await this.fetch("POST",p,I,{"content-type":"application/xml"});if(!y.ok){let w=await y.text().catch(()=>"");throw Os(w,y.status)}}catch(h){let g=this.getUrl(s,{uploadId:d});throw await this.fetch("DELETE",g).catch(()=>{}),h}}async getLink(e,t,i=4,n="",s=!1,o=!1,a=!1){let c=bn(e,!1),l=Math.max(60,Math.floor(i*3600)),d=this.getUrl(c);if(n)if(s){let h=await Lp({url:d,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,expiresInSeconds:l}),g=new URL(h),p=n.split("://");if(p.length===2&&(p[0]==="http"||p[0]==="https")?(g.protocol=p[0]+":",g.host=p[1].replace(/\/+$/,"")):g.host=n.replace(/\/+$/,""),o){let I="/"+this.bucket;if(g.pathname.startsWith(I)){let y=g.pathname.substring(I.length);y||(y="/"),g.pathname=y}}return{url:g.toString()}}else{let h=n.split("://"),g="https",p=n;h.length===2&&(h[0]==="http"||h[0]==="https")&&(g=h[0],p=h[1].replace(/\/+$/,""));let I=this.isPathStyle?`/${this.bucket}/${c}`:`/${c}`;return o&&I.startsWith(`/${this.bucket}`)&&(I=I.substring(`/${this.bucket}`.length),I||(I="/")),{url:`${g}://${p}${I.startsWith("/")?"":"/"}${I}`}}let u={};if(a){let h=encodeURIComponent(t);u["response-content-disposition"]=`attachment; filename="${h}"; filename*=UTF-8''${h}`}return{url:await Lp({url:d,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,expiresInSeconds:l,customQueryParams:Object.keys(u).length?u:void 0})}}async getDirectUploadInfo(e,t,i=4,n=""){let s=nr(e,t),o=bn(s,!1),a=Math.max(60,Math.floor(i*3600)),c=this.getUrl(o);if(n){let d=new URL(c),u=n.split("://");u.length===2&&(u[0]==="http"||u[0]==="https")?(d.protocol=u[0]+":",d.host=u[1].replace(/\/+$/,"")):d.host=n.replace(/\/+$/,""),c=d.toString()}return{upload_url:await Lp({method:"PUT",url:c,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,expiresInSeconds:a}),method:"PUT"}}}});function xJ(r){let e={...r||{}};return e.bucket=(e.bucket||"").trim(),e.endpoint=(e.endpoint||"").trim(),e.region=(e.region||"").trim()||"openlist",e.access_key_id=(e.access_key_id||"").trim(),e.secret_access_key=(e.secret_access_key||"").trim(),e.session_token=(e.session_token||"").trim(),e.root_folder_path=(e.root_folder_path||"/").trim(),e.root_folder_path.startsWith("/")||(e.root_folder_path="/"+e.root_folder_path),e.custom_host=(e.custom_host||"").trim(),e.enable_custom_host_presign=!!e.enable_custom_host_presign,e.sign_url_expire=Number(e.sign_url_expire)||4,e.placeholder=(e.placeholder||"").trim(),e.force_path_style=!!e.force_path_style,e.list_object_version=(e.list_object_version||"v1").toLowerCase(),e.remove_bucket=!!e.remove_bucket,e.add_filename_to_disposition=!!e.add_filename_to_disposition,e.enable_direct_upload=!!e.enable_direct_upload,e.direct_upload_host=(e.direct_upload_host||"").trim(),e.user_agent=(e.user_agent||"").trim(),e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e}var Gp,Y8=j(()=>{"use strict";Be();He();V8();eE();Gp=class{client;addition;driverName;dogeExpiredAt;dogeTimer;constructor(e,t="S3"){this.addition=xJ(e),this.driverName=t,this.client=new Kp(this.addition)}async init(){this.driverName.toLowerCase().includes("doge")&&await this.refreshDogeToken()}async refreshDogeToken(){try{let e=await j8(this.addition.access_key_id,this.addition.secret_access_key);this.dogeExpiredAt=e.expiredAt,this.client.updateCredentials({accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken})}catch(e){throw console.error("[S3Driver] DogeCloud init/refresh session error:",e),e}}async checkDogeToken(){if(this.driverName.toLowerCase().includes("doge")){let e=Math.floor(Date.now()/1e3);(!this.dogeExpiredAt||this.dogeExpiredAt-e<120)&&await this.refreshDogeToken()}}drop(){this.dogeTimer&&(clearInterval(this.dogeTimer),this.dogeTimer=void 0)}getRemotePath(e){let t=this.addition.root_folder_path||"/",i=e||"/";return t!=="/"&&!$8(t,i)&&(i=nr(t,i)),bn(i,!1)}async fileItemFromS3(e,t){let i,n;if(!e.isFolder){let s=await this.client.getLink(t,e.name,Number(this.addition.sign_url_expire)||4,this.addition.custom_host,this.addition.enable_custom_host_presign,this.addition.remove_bucket,this.addition.add_filename_to_disposition);i=s.url,n=s.headers}return{name:e.name,size:e.size,is_dir:e.isFolder,modified:e.modified,sign:e.etag||t,type:X(e.name,e.isFolder),thumb:"",raw_url:i,raw_url_headers:n}}async list(e,t){await this.checkDogeToken();let i=this.getRemotePath(t),n=this.addition.list_object_version==="v2"?"v2":"v1",s=await this.client.listObjects(i,n,!1),o=[];for(let a of s){let c=nr(i,a.name),l=await this.fileItemFromS3(a,c);o.push(l)}return de(o,this.addition.order_by||"name",this.addition.order_direction||"asc")}async get(e,t){await this.checkDogeToken();let i=this.getRemotePath(t),n=await this.client.headObject(i);if(n){let a=jo(i);return this.fileItemFromS3({name:a,size:n.size,isFolder:!1,modified:n.modified,path:i,etag:n.etag},i)}let s=this.addition.list_object_version==="v2"?"v2":"v1";if(await this.client.listPrefixProbe(i,s)||i===""||i==="/")return{name:jo(i),size:0,is_dir:!0,modified:new Date().toISOString(),sign:i,type:1};throw new Error(`Object not found: ${t}`)}async mkdir(e,t){await this.checkDogeToken();let i=this.getRemotePath(t),n=ef(this.addition.placeholder),s=nr(i,n);await this.client.putObject(s,new Uint8Array(0))}async rename(e,t,i){await this.checkDogeToken();let n=this.getRemotePath(t),s=tE(n),o=nr(s,i),a=await this.client.headObject(n);a?(await this.client.copyObject(n,o,a.size),await this.client.deleteObject(n)):(await this.copyDirRecursive(n,o),await this.removeDirRecursive(n))}async move(e,t,i,n,s){await this.checkDogeToken();let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=nr(o,c),d=nr(a,c),u=await this.client.headObject(l);u?(await this.client.copyObject(l,d,u.size),await this.client.deleteObject(l)):(await this.copyDirRecursive(l,d),await this.removeDirRecursive(l))}}async copy(e,t,i,n,s){await this.checkDogeToken();let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=nr(o,c),d=nr(a,c),u=await this.client.headObject(l);u?await this.client.copyObject(l,d,u.size):await this.copyDirRecursive(l,d)}}async copyDirRecursive(e,t){let i=this.addition.list_object_version==="v2"?"v2":"v1",n=await this.client.listObjects(e,i,!0);for(let s of n){let o=nr(e,s.name),a=nr(t,s.name);s.isFolder?await this.copyDirRecursive(o,a):await this.client.copyObject(o,a,s.size)}}async remove(e,t,i){await this.checkDogeToken();let n=this.getRemotePath(t);if(i&&i.length>0)for(let s of i){let o=nr(n,s);await this.client.headObject(o)?await this.client.deleteObject(o):await this.removeDirRecursive(o)}else await this.client.headObject(n)?await this.client.deleteObject(n):await this.removeDirRecursive(n)}async removeDirRecursive(e){let t=this.addition.list_object_version==="v2"?"v2":"v1",i=await this.client.listObjects(e,t,!0);for(let s of i){let o=nr(e,s.name);s.isFolder?await this.removeDirRecursive(o):await this.client.deleteObject(o)}let n=ef(this.addition.placeholder);await this.client.deleteObject(nr(e,n)).catch(()=>{}),this.addition.placeholder&&await this.client.deleteObject(nr(e,this.addition.placeholder)).catch(()=>{})}async put(e,t,i){await this.checkDogeToken();let n=this.getRemotePath(t);await this.client.putObject(n,i)}async getDirectUploadInfo(e,t){if(!this.addition.enable_direct_upload)throw new Error("Direct upload is not enabled");await this.checkDogeToken();let i=this.getRemotePath(e);return await this.client.getDirectUploadInfo(i,t,Number(this.addition.sign_url_expire)||4,this.addition.direct_upload_host)}async other(e,t,i){if(e==="direct_upload"||e==="get_direct_upload_info"){let n=i?.name||i?.fileName||jo(t),s=tE(t);return await this.getDirectUploadInfo(s,n)}throw new Error(`Unsupported method ${e}`)}}});function rE(r,e){return r<<e|r>>>32-e}function W8(r){if(typeof Buffer<"u")return Buffer.from(r).toString("base64");let e="";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return btoa(e)}var zp,X8=j(()=>{"use strict";zp=class r{h0=1732584193;h1=4023233417;h2=2562383102;h3=271733878;h4=3285377520;block=new Uint8Array(64);blockLen=0;totalBytes=0;w=new Int32Array(80);update(e){let t=e.length;this.totalBytes+=t;let i=0;for(;i<t;){let n=64-this.blockLen,s=Math.min(n,t-i);this.block.set(e.subarray(i,i+s),this.blockLen),this.blockLen+=s,i+=s,this.blockLen===64&&(this.processBlock(this.block),this.blockLen=0)}return this}processBlock(e){let t=this.w;for(let c=0;c<16;c++){let l=c*4;t[c]=e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]}for(let c=16;c<80;c++)t[c]=rE(t[c-3]^t[c-8]^t[c-14]^t[c-16],1);let i=this.h0,n=this.h1,s=this.h2,o=this.h3,a=this.h4;for(let c=0;c<80;c++){let l=0,d=0;c<20?(l=n&s|~n&o,d=1518500249):c<40?(l=n^s^o,d=1859775393):c<60?(l=n&s|n&o|s&o,d=2400959708):(l=n^s^o,d=3395469782);let u=rE(i,5)+l+a+d+t[c]|0;a=o,o=s,s=rE(n,30),n=i,i=u}this.h0=this.h0+i|0,this.h1=this.h1+n|0,this.h2=this.h2+s|0,this.h3=this.h3+o|0,this.h4=this.h4+a|0}getStateHex(){let e=[this.h0,this.h1,this.h2,this.h3,this.h4],t="";for(let i of e){let n=(i&255).toString(16).padStart(2,"0"),s=(i>>>8&255).toString(16).padStart(2,"0"),o=(i>>>16&255).toString(16).padStart(2,"0"),a=(i>>>24&255).toString(16).padStart(2,"0");t+=n+s+o+a}return t.toLowerCase()}digestHex(){let e=new r;e.h0=this.h0,e.h1=this.h1,e.h2=this.h2,e.h3=this.h3,e.h4=this.h4,e.block.set(this.block),e.blockLen=this.blockLen,e.totalBytes=this.totalBytes;let t=e.blockLen<56?56-e.blockLen:120-e.blockLen,i=new Uint8Array(t+8);i[0]=128;let n=e.totalBytes*8,s=Math.floor(e.totalBytes/536870912),o=(n&4294967295)>>>0,a=new DataView(i.buffer,i.byteOffset+t,8);return a.setUint32(0,s,!1),a.setUint32(4,o,!1),e.update(i),[e.h0,e.h1,e.h2,e.h3,e.h4].map(l=>(l>>>0).toString(16).padStart(8,"0")).join("").toLowerCase()}}});function Z8(r){let e=new Map;if(!r)return e;let t=r.split(";");for(let i of t){let n=i.trim();if(!n)continue;let s=n.indexOf("=");if(s>0){let o=n.slice(0,s).trim(),a=n.slice(s+1).trim();o&&a&&e.set(o,a)}}return e}function Jp(r){let e=[];for(let[t,i]of r.entries())t&&i&&e.push(`${t}=${i}`);return e.join("; ")}var jp,e4=j(()=>{"use strict";X8();jp=class{cookies=new Map;onCookieUpdate;pendingCookie=null;addition;constructor(e,t){this.addition=e,this.cookies=Z8(e.cookies||""),this.onCookieUpdate=t}getCookies(){return this.cookies}getCookieStr(){return Jp(this.cookies)}setCookiesStr(e){this.cookies=Z8(e),this.pendingCookie=Jp(this.cookies),this.addition.cookies=this.pendingCookie,this.onCookieUpdate&&this.onCookieUpdate(this.pendingCookie)}updateCookiesFromHeaders(e){let t=e.getSetCookie,i=[];if(typeof t=="function")i=t.call(e);else{let s=e.get("set-cookie");s&&(i=[s])}let n=!1;for(let s of i){let o=s.split(";")[0]||"",a=o.indexOf("=");if(a>0){let c=o.slice(0,a).trim(),l=o.slice(a+1).trim();c&&l&&this.cookies.get(c)!==l&&(this.cookies.set(c,l),n=!0)}}n&&(this.pendingCookie=Jp(this.cookies),this.addition.cookies=this.pendingCookie,this.onCookieUpdate&&this.onCookieUpdate(this.pendingCookie))}consumePendingCookie(){let e=this.pendingCookie;return this.pendingCookie=null,e}loginType(){let e=this.cookies.get("wy_uf")||"",t=this.cookies.get("weiyun_wx_openid")||"",i=this.cookies.get("weiyun_qq_openid")||"";return e==="2"&&t?"weixin_openid":e==="2"&&i?"qq_openid":e==="1"?"weixin":e==="0"||!e?"qq":"unknown"}parseTokenInfo(){switch(this.loginType()){case"weixin":return{token_type:1,openid:this.cookies.get("openid")||"",open_appid:this.cookies.get("wy_appid")||"",access_token:this.cookies.get("access_token")||"",login_key_type:192,login_key_value:this.cookies.get("access_token")||""};case"qq":return{token_type:0,login_key_type:27,login_key_value:this.cookies.get("p_skey")||this.cookies.get("skey")||"",openid:""};case"weixin_openid":case"qq_openid":return{token_type:3,login_key_type:1540};default:return{}}}async refreshCtoken(){let e=await fetch("https://www.weiyun.com/disk",{headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Cookie:this.getCookieStr()},redirect:"manual"});if(this.updateCookiesFromHeaders(e.headers),e.status>=300&&e.status<400){let t=e.headers.get("location")||"";if(t&&!t.includes("/disk"))throw new Error("[WeiYun] Login cookie expired or invalid, please login again")}}async weixinRefreshToken(){let e=this.cookies.get("wy_appid")||"",t=this.cookies.get("refresh_token")||"";if(!e||!t)return;let i=`https://api.weixin.qq.com/sns/oauth2/refresh_token?grant_type=refresh_token&appid=${encodeURIComponent(e)}&refresh_token=${encodeURIComponent(t)}`,s=await(await fetch(i)).json().catch(()=>({}));if(s.errcode)throw new Error(`[WeiYun] WeChat refresh token failed: ${s.errmsg}`);s.openid&&this.cookies.set("openid",s.openid),s.access_token&&this.cookies.set("access_token",s.access_token),s.refresh_token&&this.cookies.set("refresh_token",s.refresh_token),this.pendingCookie=Jp(this.cookies),this.addition.cookies=this.pendingCookie,this.onCookieUpdate&&this.onCookieUpdate(this.pendingCookie)}newHeader(e,t){let i=t.openid||t.minico_openid||"";return{seq:Math.floor(Date.now()/1e3),cmd:e,wx_openid:i,qq_openid:t.qq_openid||"",user_flag:t.token_type??0,env_id:t.env_id||"",type:1,appid:30013,version:3,major_version:3,minor_version:3,fix_version:3}}newBody(e,t,i){return{ReqMsg_body:{ext_req_head:{token_info:i,language_info:{language_type:2052}},[`.weiyun.${e}MsgReq_body`]:t}}}newUploadJson(e,t,i){return{req_header:{cmd:t,appid:30013,major_version:3,minor_version:0,fix_version:0,version:3,user_flag:0},req_body:{ReqMsg_body:{[`weiyun.${e}MsgReq_body`]:i}}}}async request(e,t,i,n,s){let o=this.parseTokenInfo(),a=this.cookies.get("wyctoken")||"",c="",l,d={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://www.weiyun.com",Cookie:this.getCookieStr()};if(e==="preUpload")c=`https://www.weiyun.com/api/v3/ftn_pre_upload?g_tk=${encodeURIComponent(a)}&cmd=${i}`,l=JSON.stringify(this.newUploadJson(t,i,n)),d["Content-Type"]="application/json; charset=UTF-8";else if(e==="upload"){c=`https://upload.weiyun.com/ftnup_v2/weiyun?g_tk=${encodeURIComponent(a)}&cmd=${i}`;let p="----WebKitFormBoundaryIifrOqiswelC8nfe";d["Content-Type"]=`multipart/form-data; boundary=${p}`;let I=JSON.stringify(this.newUploadJson(t,i,n)),y=`--${p}\r +-----END PUBLIC KEY-----`});var om,oF=J(()=>{"use strict";bE();sF();om=class{addition;authorization="";deviceInfo;onAuthorizationExpired;constructor(e,t){if(this.addition=e,this.onAuthorizationExpired=t,e.device_info?.trim())try{this.deviceInfo=JSON.parse(e.device_info)}catch{this.deviceInfo=JSON.parse(ff())}else this.deviceInfo=JSON.parse(ff())}setAuthorization(e){e.startsWith("Bearer ")||(e=`Bearer ${e}`),this.authorization=e}getAuthorization(){return this.authorization}getDeviceInfo(){return this.deviceInfo}getDeviceInfoJson(){return JSON.stringify(this.deviceInfo)}async request(e,t,i=!0){let n=tF(),s=sm(vE(Buffer.from(JSON.stringify(this.deviceInfo),"utf-8"),Buffer.from(n,"utf-8"))),o=nF(n,iF),a={Authorization:this.authorization,remoteInfo:s,version:this.deviceInfo.mpVersion||BE,"encrypted-key":o,"Content-Type":"application/json"},c;if(t!==null){let f=JSON.stringify(t),h=vE(Buffer.from(f,"utf-8"),Buffer.from(n,"utf-8"));c=sm(h)}let l=await fetch(e,{method:"POST",headers:a,body:c?JSON.stringify(c):void 0});if(!l.ok)throw new Error(`[MoPan] Request failed: ${l.status} ${l.statusText}`);let d=await l.text();d.startsWith('"')&&d.endsWith('"')&&(d=d.slice(1,-1),d=eF(rF(d),Buffer.from(n,"utf-8")).toString("utf-8"));let u=JSON.parse(d);if(u.code===401&&i&&this.onAuthorizationExpired)return await this.onAuthorizationExpired(new Error("Authorization expired: "+u.message)),this.request(e,t,!1);if(u.code!==200)throw new Error(`[MoPan] API error: code=${u.code}, message=${u.message}`);return u.data}async login(e,t){let i={phone:e,password:t};return this.request(Er+"/login",i)}async loginBySms(e){let t={phone:e};await this.request(Er+"/sendSmsCode",t)}async loginBySmsStep2(e,t){let i={phone:e,smsCode:t};return this.request(Er+"/loginBySms",i)}async getUserInfo(){return this.request(Er+"/getUserInfo",null)}async queryFiles(e,t=1,i="filename",n=!1,s){let o={folderId:e,pageNum:t,orderBy:i,descending:n};return s&&(o.cloudId=s),this.request(Er+"/queryFiles",o)}async getFileDownloadUrl(e,t){let i={fileId:e};return t&&(i.cloudId=t),this.request(Er+"/getFileDownloadUrl",i)}async createFolder(e,t,i){let n={name:e,parentId:t};return i&&(n.cloudId=i),this.request(Er+"/createFolder",n)}async renameFolder(e,t,i){let n={folderId:e,newName:t};i&&(n.cloudId=i),await this.request(Er+"/renameFolder",n)}async renameFile(e,t,i){let n={fileId:e,newName:t};i&&(n.cloudId=i),await this.request(Er+"/renameFile",n)}async addBatchTask(e){return this.request(Er+"/addBatchTask",e)}async checkBatchTask(e){return this.request(Er+"/checkBatchTask",e)}async cancelBatchTask(e,t){await this.request(Er+"/cancelBatchTask",{taskId:e,taskType:t})}async deleteToRecycle(e,t){let i={files:e};t&&(i.cloudId=t),await this.request(Er+"/deleteToRecycle",i)}async initMultiUpload(e,t,i,n,s){let o={fileMd5:e,fileName:t,fileSize:i,parentFolderId:n};return s&&(o.cloudId=s),this.request(Er+"/initMultiUpload",o)}async getAllMultiUploadUrls(e,t){let i={uploadFileId:e,partInfos:t};return this.request(Er+"/getAllMultiUploadUrls",i)}async commitMultiUploadFile(e){let t={uploadFileId:e};return this.request(Er+"/commitMultiUploadFile",t)}async usedSpace(){return this.request(Er+"/usedSpace",null)}}});import{createHash as d$}from"crypto";function lF(r){if(!r)return new Date().toISOString();try{let e=new Date(r);if(!isNaN(e.getTime()))return e.toISOString()}catch{}return new Date().toISOString()}function aF(r){return{name:r.name,size:0,is_dir:!0,modified:lF(r.lastOpTime),sign:r.id,type:1,thumb:"",raw_url:""}}function cF(r){return{name:r.name,size:r.size||0,is_dir:!1,modified:lF(r.lastOpTime),sign:r.id,type:X(r.name,!1),thumb:r.icon?.smallURL||r.icon?.largeURL||"",raw_url:"",hash:r.md5||void 0,hashes:r.md5?{md5:r.md5}:void 0}}function u$(r){let e={...r||{}};return e.phone=(e.phone||"").trim(),e.password=(e.password||"").trim(),e.sms_code=(e.sms_code||"").trim(),e.root_folder_id=e.root_folder_id||"",e.cloud_id=(e.cloud_id||"").trim(),e.order_by=e.order_by||"filename",e.order_direction=e.order_direction||"asc",e.device_info=e.device_info||ff(),e.upload_thread=e.upload_thread||"3",e}var am,dF=J(()=>{"use strict";Be();He();oF();bE();am=class{client;addition;userId="";uploadThread=3;constructor(e,t){this.addition=u$(e),this.uploadThread=parseInt(this.addition.upload_thread||"3"),(this.uploadThread<1||this.uploadThread>32)&&(this.uploadThread=3),this.client=new om(this.addition,async i=>{await this.performLogin(),t&&t(this.client.getDeviceInfoJson(),this.client.getAuthorization())})}async performLogin(){let e=this.addition.sms_code?.trim()||"";if(e==="send")throw await this.client.loginBySms(this.addition.phone),new Error("[MoPan] SMS code sent, please enter the code");let t;e&&e!=="send"?t=await this.client.loginBySmsStep2(this.addition.phone,e):t=await this.client.login(this.addition.phone,this.addition.password),this.client.setAuthorization(t.token);let i=await this.client.getUserInfo();if(this.userId=i.userID,!this.addition.root_folder_id&&t.userCloudStorageRelations){for(let n of t.userCloudStorageRelations)if(n.path==="/\u6587\u4EF6"){this.addition.root_folder_id=n.folderID;break}}}async init(){await this.performLogin()}async list(e,t){let i=await this.resolveFolderId(t),n=[];for(let s=1;;s++){let o=await this.client.queryFiles(i,s,this.addition.order_by||"filename",this.addition.order_direction==="desc",this.addition.cloud_id);if(!o.fileListAO)break;let{folderList:a=[],fileList:c=[]}=o.fileListAO;if(a.length===0&&c.length===0||(n.push(...a.map(aF)),n.push(...c.map(cF)),a.length+c.length<100))break}return de(n,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=t.split("/").filter(Boolean);if(i.length===0)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,thumb:"",raw_url:""};let n=i.slice(0,-1).join("/"),s=i[i.length-1],o=await this.resolveFolderId(n),a=await this.client.queryFiles(o,1,"filename",!1,this.addition.cloud_id);if(a.fileListAO){let c=a.fileListAO.folderList?.find(d=>d.name===s);if(c)return aF(c);let l=a.fileListAO.fileList?.find(d=>d.name===s);if(l){let d=cF(l),u=await this.client.getFileDownloadUrl(l.id,this.addition.cloud_id).catch(()=>null);if(u?.downloadUrl){let f=u.downloadUrl.replace(/&/g,"&");f=f.replace(/^http:/,"https:");let h=await this.followRedirect(f);d.raw_url=h||f}return d}}throw new Error(`[MoPan] File not found: ${t}`)}async followRedirect(e){try{let t=await fetch(e,{redirect:"manual"});return(t.status===302||t.status===301)&&t.headers.get("location")||e}catch{return null}}async mkdir(e,t){let i=t.split("/").filter(Boolean),n=i.pop()||"\u65B0\u6587\u4EF6\u5939",s=i.join("/"),o=await this.resolveFolderId(s);await this.client.createFolder(n,o,this.addition.cloud_id)}async rename(e,t,i){let n=await this.get("",t);n.is_dir?await this.client.renameFolder(n.sign,i,this.addition.cloud_id):await this.client.renameFile(n.sign,i,this.addition.cloud_id)}async move(e,t,i,n,s){let o=await this.resolveFolderId(s);for(let a of i){let c=n==="/"?`/${a}`:`${n}/${a}`,l=await this.get(e,c);await this.performBatchTask(l,o,2)}}async copy(e,t,i,n,s){let o=await this.resolveFolderId(s);for(let a of i){let c=n==="/"?`/${a}`:`${n}/${a}`,l=await this.get(e,c);await this.performBatchTask(l,o,1)}}async performBatchTask(e,t,i){let n={fileID:e.sign,isFolder:e.is_dir,fileName:e.name},s={userOrCloudID:this.userId,source:1,taskType:i,targetSource:1,targetUserOrCloudID:this.userId,targetType:1,targetFolderID:t,taskStatusDetailDTOList:[n]};this.addition.cloud_id&&(s.userOrCloudID=this.addition.cloud_id,s.source=2,s.targetSource=2,s.targetUserOrCloudID=this.addition.cloud_id);let o=await this.client.addBatchTask(s);for(let a=0;a<10;a++){let c=await this.client.checkBatchTask({taskId:o.taskIDList[0],taskType:o.taskType,targetType:1,targetFolderID:o.targetFolderID,targetSource:s.targetSource,targetUserOrCloudID:s.targetUserOrCloudID});if(c.taskStatus===2)throw await this.client.cancelBatchTask(c.taskID,o.taskType),new Error("[MoPan] File name conflict");if(c.taskStatus===4)return;await new Promise(l=>setTimeout(l,1e3))}throw new Error("[MoPan] Task timeout")}async remove(e,t){let i=await this.get("",t);await this.client.deleteToRecycle([{fileID:i.sign,isFolder:i.is_dir,fileName:i.name}],this.addition.cloud_id)}async put(e,t,i){let n=t.split("/").filter(Boolean),s=n.pop()||"\u672A\u547D\u540D\u6587\u4EF6",o=n.join("/"),a=await this.resolveFolderId(o),c=i,l=d$("md5").update(c).digest("hex"),d=i.length,u=await this.client.initMultiUpload(l,s,d,a,this.addition.cloud_id);if(!u.fileDataExists){let f=await this.client.getAllMultiUploadUrls(u.uploadFileID,u.partInfos);for(let h of f){let g=(h.partNumber-1)*u.partSize,p=h.partNumber===f.length?d:g+u.partSize,I=c.slice(g,p);await fetch(h.uploadUrl,{method:"PUT",body:I,headers:{"Content-Length":String(I.length)}})}}await this.client.commitMultiUploadFile(u.uploadFileID)}getRootId(){return this.addition.root_folder_id||""}async resolveFolderId(e){let t=this.getRootId(),i=e.split("/").filter(Boolean);if(i.length===0)return t;let n=t;for(let s of i){let a=(await this.client.queryFiles(n,1,"filename",!1,this.addition.cloud_id)).fileListAO?.folderList?.find(c=>c.name===s);if(!a)throw new Error(`[MoPan] Folder not found: ${s}`);n=a.id}return n}}});function hf(r){return typeof r=="string"?f$.encode(r):r}function SE(r){let e=r instanceof Uint8Array?r:new Uint8Array(r),t="";for(let i=0;i<e.length;i++)t+=e[i].toString(16).padStart(2,"0");return t}async function kE(r){let e=await crypto.subtle.digest("SHA-256",hf(r));return SE(e)}async function Af(r,e){let t=await crypto.subtle.importKey("raw",hf(r),{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,hf(e));return new Uint8Array(i)}async function uF(r,e){let t=await Af(r,e);return SE(t)}async function A$(r,e){let t=await crypto.subtle.importKey("raw",hf(r),{name:"HMAC",hash:"SHA-1"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,hf(e));return SE(i)}function Gs(r,e=!0){let t=encodeURIComponent(r).replace(/[!'()*]/g,i=>"%"+i.charCodeAt(0).toString(16).toUpperCase());return e||(t=t.replace(/%2F/g,"/")),t}function fF(r=new Date){let e=d=>d.toString().padStart(2,"0"),t=r.getUTCFullYear(),i=e(r.getUTCMonth()+1),n=e(r.getUTCDate()),s=e(r.getUTCHours()),o=e(r.getUTCMinutes()),a=e(r.getUTCSeconds()),c=`${t}${i}${n}`;return{amzDate:`${c}T${s}${o}${a}Z`,dateStamp:c}}async function AF(r,e,t,i="s3"){let n="AWS4"+r,s=await Af(n,e),o=await Af(s,t),a=await Af(o,i);return await Af(a,"aws4_request")}async function hF(r){let{method:e,url:t,region:i,accessKeyId:n,secretAccessKey:s,sessionToken:o,headers:a={},body:c=null,service:l="s3",date:d=new Date}=r,u=new URL(t),{amzDate:f,dateStamp:h}=fF(d),g=c!=null?await kE(c):"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",p={...a};p.host=u.host,p["x-amz-date"]=f,p["x-amz-content-sha256"]=g,o&&(p["x-amz-security-token"]=o);let I=Object.keys(p).map(P=>P.toLowerCase()).sort(),m="";for(let P of I){let j=(Object.entries(p).find(([z])=>z.toLowerCase()===P)?.[1]||"").trim().replace(/\s+/g," ");m+=`${P}:${j} +`}let w=I.join(";"),B=u.pathname||"/",C;try{C=decodeURIComponent(B)}catch{C=B}let x=Gs(C,!1),Q=[];u.searchParams.forEach((P,N)=>{Q.push([N,P])}),Q.sort(([P],[N])=>P<N?-1:P>N?1:0);let R=Q.map(([P,N])=>`${Gs(P)}=${Gs(N)}`).join("&"),U=[e.toUpperCase(),x,R,m,w,g].join(` +`),T=`${h}/${i}/${l}/aws4_request`,D=await kE(U),b=["AWS4-HMAC-SHA256",f,T,D].join(` +`),_=await AF(s,h,i,l),v=await uF(_,b),E=`AWS4-HMAC-SHA256 Credential=${n}/${T}, SignedHeaders=${w}, Signature=${v}`;return p.authorization=E,{headers:p,url:u.toString()}}async function cm(r){let{method:e="GET",url:t,region:i,accessKeyId:n,secretAccessKey:s,sessionToken:o,expiresInSeconds:a=14400,service:c="s3",date:l=new Date,customQueryParams:d={}}=r,u=new URL(t),{amzDate:f,dateStamp:h}=fF(l),g=`${h}/${i}/${c}/aws4_request`;u.searchParams.set("X-Amz-Algorithm","AWS4-HMAC-SHA256"),u.searchParams.set("X-Amz-Credential",`${n}/${g}`),u.searchParams.set("X-Amz-Date",f),u.searchParams.set("X-Amz-Expires",a.toString()),u.searchParams.set("X-Amz-SignedHeaders","host"),o&&u.searchParams.set("X-Amz-Security-Token",o);for(let[v,E]of Object.entries(d))u.searchParams.set(v,E);let p=u.pathname||"/",I;try{I=decodeURIComponent(p)}catch{I=p}let m=Gs(I,!1),w=[];u.searchParams.forEach((v,E)=>{E.toLowerCase()!=="x-amz-signature"&&w.push([E,v])}),w.sort(([v],[E])=>v<E?-1:v>E?1:0);let B=w.map(([v,E])=>`${Gs(v)}=${Gs(E)}`).join("&"),x=`host:${u.host} +`,U=[e.toUpperCase(),m,B,x,"host","UNSIGNED-PAYLOAD"].join(` +`),T=await kE(U),D=["AWS4-HMAC-SHA256",f,g,T].join(` +`),b=await AF(s,h,i,c),_=await uF(b,D);return u.searchParams.set("X-Amz-Signature",_),u.toString()}async function gF(r,e){let t="/auth/tmp_token.json",i=JSON.stringify({channel:"OSS_FULL",scopes:["*"]}),n=t+` +`+i,s=await A$(e,n),o=`TOKEN ${r}:${s}`,a=await fetch("https://api.dogecloud.com"+t,{method:"POST",headers:{"Content-Type":"application/json",Authorization:o},body:i});if(!a.ok)throw new Error(`DogeCloud tmp_token request failed with HTTP ${a.status}`);let c=await a.json();if(c.code!==200||!c.data||!c.data.Credentials)throw new Error(`DogeCloud tmp_token error (${c.code}): ${c.msg||"unknown"}`);return{accessKeyId:c.data.Credentials.accessKeyId,secretAccessKey:c.data.Credentials.secretAccessKey,sessionToken:c.data.Credentials.sessionToken,expiredAt:c.data.ExpiredAt}}var f$,DE=J(()=>{"use strict";f$=new TextEncoder});function nr(...r){return r.map(e=>e.replace(/^\/+|\/+$/g,"")).filter(Boolean).join("/")}function vn(r,e=!1){let t=(r||"").replace(/^\/+/,"");return t&&e&&!t.endsWith("/")&&(t+="/"),t}function gf(r){return r&&r.trim()?r.trim():".openlist"}function na(r){let e=r.replace(/\/+$/,""),t=e.lastIndexOf("/");return t>=0?e.substring(t+1):e}function QE(r){let e=r.replace(/\/+$/,""),t=e.lastIndexOf("/");return t>=0?e.substring(0,t):""}function pF(r,e){let t=("/"+r+"/").replace(/\/+/g,"/");return("/"+e+"/").replace(/\/+/g,"/").startsWith(t)}function Br(r,e){let t=r.match(new RegExp(`<${e}[^>]*>([\\s\\S]*?)<\\/${e}>`,"i"));return t?t[1].trim():void 0}function lm(r,e){let t=[],i=new RegExp(`<${e}[^>]*>([\\s\\S]*?)<\\/${e}>`,"gi"),n;for(;(n=i.exec(r))!==null;)t.push(n[1]);return t}function vc(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")}function zs(r,e){let t=Br(r,"Code")||"Unknown",i=Br(r,"Message")||r||`HTTP ${e}`,n=new Error(`S3 Error [${t}]: ${vc(i)} (status ${e})`);return n.code=t,n.status=e,n}function y$(r,e,t,i=!1){let n=[],s=gf(t),o=lm(r,"CommonPrefixes");for(let d of o){let u=Br(d,"Prefix");if(u){let f=vc(u),h=na(f);h&&n.push({name:h,size:0,isFolder:!0,modified:new Date().toISOString(),path:nr(e,h)})}}let a=lm(r,"Contents");for(let d of a){let u=Br(d,"Key");if(!u)continue;let f=vc(u);if(f.endsWith("/"))continue;let h=na(f);if(!i&&(h===s||h===t))continue;let g=parseInt(Br(d,"Size")||"0",10),p=Br(d,"LastModified")||new Date().toISOString(),I=Br(d,"ETag")?.replace(/"/g,"");n.push({name:h,size:g,isFolder:!1,modified:p,path:nr(e,h),etag:I})}let c=Br(r,"IsTruncated")==="true",l=Br(r,"NextMarker");return{files:n,isTruncated:c,nextMarker:l,lastEvaluatedKey:n.length>0?n[n.length-1].path:void 0}}function I$(r,e,t,i=!1){let n=[],s=gf(t),o=lm(r,"CommonPrefixes");for(let d of o){let u=Br(d,"Prefix");if(u){let f=vc(u),h=na(f);h&&n.push({name:h,size:0,isFolder:!0,modified:new Date().toISOString(),path:nr(e,h)})}}let a=lm(r,"Contents");for(let d of a){let u=Br(d,"Key");if(!u)continue;let f=vc(u);if(f.endsWith("/"))continue;let h=na(f);if(!i&&(h===s||h===t))continue;let g=parseInt(Br(d,"Size")||"0",10),p=Br(d,"LastModified")||new Date().toISOString(),I=Br(d,"ETag")?.replace(/"/g,"");n.push({name:h,size:g,isFolder:!1,modified:p,path:nr(e,h),etag:I})}let c=Br(r,"IsTruncated")==="true",l=Br(r,"NextContinuationToken");return{files:n,isTruncated:c,nextContinuationToken:l,lastEvaluatedKey:n.length>0?n[n.length-1].path:void 0}}function w$(r){let e=Br(r,"UploadId");if(!e)throw new Error("InitiateMultipartUpload returned empty UploadId: "+r);return vc(e)}function x$(r){let e=Br(r,"ETag");if(!e)throw new Error("UploadPartCopy returned empty ETag: "+r);return vc(e).replace(/"/g,"")}function C$(r){let e=Math.max(g$,Math.floor((r-1)/m$)+1);if(e>p$)throw new Error(`Object size ${r} exceeds multipart copy limit`);return e}var h$,g$,p$,m$,dm,mF=J(()=>{"use strict";DE();h$=5*1e3*1e3*1e3,g$=100*1024*1024,p$=5*1024*1024*1024,m$=1e4;dm=class{addition;bucket;endpoint;region;accessKeyId;secretAccessKey;sessionToken;isPathStyle;userAgent;constructor(e){this.addition=e,this.bucket=(e.bucket||"").trim();let t=(e.endpoint||"").trim();!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t),this.endpoint=t.replace(/\/+$/,""),this.region=(e.region||"").trim()||"openlist",this.accessKeyId=(e.access_key_id||"").trim(),this.secretAccessKey=(e.secret_access_key||"").trim(),this.sessionToken=e.session_token?e.session_token.trim():void 0,this.userAgent=e.user_agent?e.user_agent.trim():void 0;let i=new URL(this.endpoint),n=/^(\d{1,3}\.){3}\d{1,3}$/.test(i.hostname)||i.hostname==="localhost";this.isPathStyle=!!e.force_path_style||n}updateCredentials(e){this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}getUrl(e="",t){let i=new URL(this.endpoint),n="",s=e?vn(e,!1):"";if(this.isPathStyle){let c=[i.pathname.replace(/\/+$/,""),this.bucket,s].filter(Boolean).join("/");i.pathname="/"+c.replace(/^\/+/,""),n=i.toString()}else{let a=i.host.split(":"),c=a[1]?`:${a[1]}`:"",l=`${this.bucket}.${a[0]}${c}`;i.host=l;let u=[i.pathname.replace(/\/+$/,""),s].filter(Boolean).join("/");i.pathname="/"+u.replace(/^\/+/,""),n=i.toString()}let o=new URL(n);if(t)for(let[a,c]of Object.entries(t))c!=null&&o.searchParams.set(a,c);return o.toString()}async fetch(e,t,i=null,n={}){let s={...n};this.userAgent&&(s["user-agent"]=this.userAgent);let{headers:o}=await hF({method:e,url:t,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,headers:s,body:i}),a={method:e,headers:o};return i!=null&&e!=="GET"&&e!=="HEAD"&&(a.body=i),await fetch(t,a)}async listObjects(e,t="v1",i=!1){let n=vn(e,!0),s=[],o=this.addition.placeholder||"";if(t==="v2"){let a,c;for(;;){let l={"list-type":"2",prefix:n,delimiter:"/"};a&&(l["continuation-token"]=a),c&&(l["start-after"]=c);let d=this.getUrl("",l),u=await this.fetch("GET",d),f=await u.text();if(!u.ok)throw zs(f,u.status);let h=I$(f,e,o,i);if(s.push(...h.files),!h.isTruncated)break;if(h.nextContinuationToken){a=h.nextContinuationToken;continue}if(h.files.length===0)break;c=h.lastEvaluatedKey}}else{let a;for(;;){let c={prefix:n,delimiter:"/"};a&&(c.marker=a);let l=this.getUrl("",c),d=await this.fetch("GET",l),u=await d.text();if(!d.ok)throw zs(u,d.status);let f=y$(u,e,o,i);if(s.push(...f.files),!f.isTruncated)break;if(f.nextMarker)a=f.nextMarker;else if(f.files.length>0)a=f.files[f.files.length-1].path;else break}}return s}async headObject(e){let t=this.getUrl(e),i=await this.fetch("HEAD",t);if(i.status===404)return null;if(!i.ok){let a=await i.text().catch(()=>"");throw zs(a,i.status)}let n=parseInt(i.headers.get("content-length")||"0",10),s=i.headers.get("last-modified")||new Date().toISOString(),o=(i.headers.get("etag")||"").replace(/"/g,"");return{size:n,modified:s,etag:o}}async listPrefixProbe(e,t="v1"){let n={prefix:vn(e,!0),"max-keys":"1"};t==="v2"&&(n["list-type"]="2");let s=this.getUrl("",n),o=await this.fetch("GET",s);if(!o.ok)return!1;let a=await o.text();return a.includes("<Contents>")||a.includes("<CommonPrefixes>")}async putObject(e,t,i="application/octet-stream"){let n=this.getUrl(e),s={"content-type":i},o=await this.fetch("PUT",n,t,s);if(!o.ok){let a=await o.text().catch(()=>"");throw zs(a,o.status)}}async deleteObject(e){let t=this.getUrl(e),i=await this.fetch("DELETE",t);if(!i.ok&&i.status!==404&&i.status!==204){let n=await i.text().catch(()=>"");throw zs(n,i.status)}}async copyObject(e,t,i){if(i!==void 0&&i>h$)return this.copyMultipart(e,t,i);let n=vn(e,!1),s=vn(t,!1),o=Gs(`${this.bucket}/${n}`,!1),a=this.getUrl(s),c={"x-amz-copy-source":o},l=await this.fetch("PUT",a,null,c);if(!l.ok){let d=await l.text().catch(()=>"");throw zs(d,l.status)}}async copyMultipart(e,t,i){let n=vn(e,!1),s=vn(t,!1),o=Gs(`${this.bucket}/${n}`,!1),a=this.getUrl(s,{uploads:""}),c=await this.fetch("POST",a),l=await c.text();if(!c.ok)throw zs(l,c.status);let d=w$(l),u=C$(i),f=[];try{let h=0,g=1;for(;h<i;){let w=Math.min(h+u,i)-1,B=this.getUrl(s,{partNumber:g.toString(),uploadId:d}),C={"x-amz-copy-source":o,"x-amz-copy-source-range":`bytes=${h}-${w}`},x=await this.fetch("PUT",B,null,C),Q=await x.text();if(!x.ok)throw zs(Q,x.status);let R=x$(Q);f.push({partNumber:g,etag:R}),h+=u,g++}let p=this.getUrl(s,{uploadId:d}),I=["<CompleteMultipartUpload>",...f.map(w=>`<Part><PartNumber>${w.partNumber}</PartNumber><ETag>${w.etag}</ETag></Part>`),"</CompleteMultipartUpload>"].join(""),m=await this.fetch("POST",p,I,{"content-type":"application/xml"});if(!m.ok){let w=await m.text().catch(()=>"");throw zs(w,m.status)}}catch(h){let g=this.getUrl(s,{uploadId:d});throw await this.fetch("DELETE",g).catch(()=>{}),h}}async getLink(e,t,i=4,n="",s=!1,o=!1,a=!1){let c=vn(e,!1),l=Math.max(60,Math.floor(i*3600)),d=this.getUrl(c);if(n)if(s){let h=await cm({url:d,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,expiresInSeconds:l}),g=new URL(h),p=n.split("://");if(p.length===2&&(p[0]==="http"||p[0]==="https")?(g.protocol=p[0]+":",g.host=p[1].replace(/\/+$/,"")):g.host=n.replace(/\/+$/,""),o){let I="/"+this.bucket;if(g.pathname.startsWith(I)){let m=g.pathname.substring(I.length);m||(m="/"),g.pathname=m}}return{url:g.toString()}}else{let h=n.split("://"),g="https",p=n;h.length===2&&(h[0]==="http"||h[0]==="https")&&(g=h[0],p=h[1].replace(/\/+$/,""));let I=this.isPathStyle?`/${this.bucket}/${c}`:`/${c}`;return o&&I.startsWith(`/${this.bucket}`)&&(I=I.substring(`/${this.bucket}`.length),I||(I="/")),{url:`${g}://${p}${I.startsWith("/")?"":"/"}${I}`}}let u={};if(a){let h=encodeURIComponent(t);u["response-content-disposition"]=`attachment; filename="${h}"; filename*=UTF-8''${h}`}return{url:await cm({url:d,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,expiresInSeconds:l,customQueryParams:Object.keys(u).length?u:void 0})}}async getDirectUploadInfo(e,t,i=4,n=""){let s=nr(e,t),o=vn(s,!1),a=Math.max(60,Math.floor(i*3600)),c=this.getUrl(o);if(n){let d=new URL(c),u=n.split("://");u.length===2&&(u[0]==="http"||u[0]==="https")?(d.protocol=u[0]+":",d.host=u[1].replace(/\/+$/,"")):d.host=n.replace(/\/+$/,""),c=d.toString()}return{upload_url:await cm({method:"PUT",url:c,region:this.region,accessKeyId:this.accessKeyId,secretAccessKey:this.secretAccessKey,sessionToken:this.sessionToken,expiresInSeconds:a}),method:"PUT"}}}});function E$(r){let e={...r||{}};return e.bucket=(e.bucket||"").trim(),e.endpoint=(e.endpoint||"").trim(),e.region=(e.region||"").trim()||"openlist",e.access_key_id=(e.access_key_id||"").trim(),e.secret_access_key=(e.secret_access_key||"").trim(),e.session_token=(e.session_token||"").trim(),e.root_folder_path=(e.root_folder_path||"/").trim(),e.root_folder_path.startsWith("/")||(e.root_folder_path="/"+e.root_folder_path),e.custom_host=(e.custom_host||"").trim(),e.enable_custom_host_presign=!!e.enable_custom_host_presign,e.sign_url_expire=Number(e.sign_url_expire)||4,e.placeholder=(e.placeholder||"").trim(),e.force_path_style=!!e.force_path_style,e.list_object_version=(e.list_object_version||"v1").toLowerCase(),e.remove_bucket=!!e.remove_bucket,e.add_filename_to_disposition=!!e.add_filename_to_disposition,e.enable_direct_upload=!!e.enable_direct_upload,e.direct_upload_host=(e.direct_upload_host||"").trim(),e.user_agent=(e.user_agent||"").trim(),e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e}var um,yF=J(()=>{"use strict";Be();He();mF();DE();um=class{client;addition;driverName;dogeExpiredAt;dogeTimer;constructor(e,t="S3"){this.addition=E$(e),this.driverName=t,this.client=new dm(this.addition)}async init(){this.driverName.toLowerCase().includes("doge")&&await this.refreshDogeToken()}async refreshDogeToken(){try{let e=await gF(this.addition.access_key_id,this.addition.secret_access_key);this.dogeExpiredAt=e.expiredAt,this.client.updateCredentials({accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken})}catch(e){throw console.error("[S3Driver] DogeCloud init/refresh session error:",e),e}}async checkDogeToken(){if(this.driverName.toLowerCase().includes("doge")){let e=Math.floor(Date.now()/1e3);(!this.dogeExpiredAt||this.dogeExpiredAt-e<120)&&await this.refreshDogeToken()}}drop(){this.dogeTimer&&(clearInterval(this.dogeTimer),this.dogeTimer=void 0)}getRemotePath(e){let t=this.addition.root_folder_path||"/",i=e||"/";return t!=="/"&&!pF(t,i)&&(i=nr(t,i)),vn(i,!1)}async fileItemFromS3(e,t){let i,n;if(!e.isFolder){let s=await this.client.getLink(t,e.name,Number(this.addition.sign_url_expire)||4,this.addition.custom_host,this.addition.enable_custom_host_presign,this.addition.remove_bucket,this.addition.add_filename_to_disposition);i=s.url,n=s.headers}return{name:e.name,size:e.size,is_dir:e.isFolder,modified:e.modified,sign:e.etag||t,type:X(e.name,e.isFolder),thumb:"",raw_url:i,raw_url_headers:n}}async list(e,t){await this.checkDogeToken();let i=this.getRemotePath(t),n=this.addition.list_object_version==="v2"?"v2":"v1",s=await this.client.listObjects(i,n,!1),o=[];for(let a of s){let c=nr(i,a.name),l=await this.fileItemFromS3(a,c);o.push(l)}return de(o,this.addition.order_by||"name",this.addition.order_direction||"asc")}async get(e,t){await this.checkDogeToken();let i=this.getRemotePath(t),n=await this.client.headObject(i);if(n){let a=na(i);return this.fileItemFromS3({name:a,size:n.size,isFolder:!1,modified:n.modified,path:i,etag:n.etag},i)}let s=this.addition.list_object_version==="v2"?"v2":"v1";if(await this.client.listPrefixProbe(i,s)||i===""||i==="/")return{name:na(i),size:0,is_dir:!0,modified:new Date().toISOString(),sign:i,type:1};throw new Error(`Object not found: ${t}`)}async mkdir(e,t){await this.checkDogeToken();let i=this.getRemotePath(t),n=gf(this.addition.placeholder),s=nr(i,n);await this.client.putObject(s,new Uint8Array(0))}async rename(e,t,i){await this.checkDogeToken();let n=this.getRemotePath(t),s=QE(n),o=nr(s,i),a=await this.client.headObject(n);a?(await this.client.copyObject(n,o,a.size),await this.client.deleteObject(n)):(await this.copyDirRecursive(n,o),await this.removeDirRecursive(n))}async move(e,t,i,n,s){await this.checkDogeToken();let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=nr(o,c),d=nr(a,c),u=await this.client.headObject(l);u?(await this.client.copyObject(l,d,u.size),await this.client.deleteObject(l)):(await this.copyDirRecursive(l,d),await this.removeDirRecursive(l))}}async copy(e,t,i,n,s){await this.checkDogeToken();let o=this.getRemotePath(n),a=this.getRemotePath(s);for(let c of i){let l=nr(o,c),d=nr(a,c),u=await this.client.headObject(l);u?await this.client.copyObject(l,d,u.size):await this.copyDirRecursive(l,d)}}async copyDirRecursive(e,t){let i=this.addition.list_object_version==="v2"?"v2":"v1",n=await this.client.listObjects(e,i,!0);for(let s of n){let o=nr(e,s.name),a=nr(t,s.name);s.isFolder?await this.copyDirRecursive(o,a):await this.client.copyObject(o,a,s.size)}}async remove(e,t,i){await this.checkDogeToken();let n=this.getRemotePath(t);if(i&&i.length>0)for(let s of i){let o=nr(n,s);await this.client.headObject(o)?await this.client.deleteObject(o):await this.removeDirRecursive(o)}else await this.client.headObject(n)?await this.client.deleteObject(n):await this.removeDirRecursive(n)}async removeDirRecursive(e){let t=this.addition.list_object_version==="v2"?"v2":"v1",i=await this.client.listObjects(e,t,!0);for(let s of i){let o=nr(e,s.name);s.isFolder?await this.removeDirRecursive(o):await this.client.deleteObject(o)}let n=gf(this.addition.placeholder);await this.client.deleteObject(nr(e,n)).catch(()=>{}),this.addition.placeholder&&await this.client.deleteObject(nr(e,this.addition.placeholder)).catch(()=>{})}async put(e,t,i){await this.checkDogeToken();let n=this.getRemotePath(t);await this.client.putObject(n,i)}async getDirectUploadInfo(e,t){if(!this.addition.enable_direct_upload)throw new Error("Direct upload is not enabled");await this.checkDogeToken();let i=this.getRemotePath(e);return await this.client.getDirectUploadInfo(i,t,Number(this.addition.sign_url_expire)||4,this.addition.direct_upload_host)}async other(e,t,i){if(e==="direct_upload"||e==="get_direct_upload_info"){let n=i?.name||i?.fileName||na(t),s=QE(t);return await this.getDirectUploadInfo(s,n)}throw new Error(`Unsupported method ${e}`)}}});function _E(r,e){return r<<e|r>>>32-e}function IF(r){if(typeof Buffer<"u")return Buffer.from(r).toString("base64");let e="";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return btoa(e)}var fm,wF=J(()=>{"use strict";fm=class r{h0=1732584193;h1=4023233417;h2=2562383102;h3=271733878;h4=3285377520;block=new Uint8Array(64);blockLen=0;totalBytes=0;w=new Int32Array(80);update(e){let t=e.length;this.totalBytes+=t;let i=0;for(;i<t;){let n=64-this.blockLen,s=Math.min(n,t-i);this.block.set(e.subarray(i,i+s),this.blockLen),this.blockLen+=s,i+=s,this.blockLen===64&&(this.processBlock(this.block),this.blockLen=0)}return this}processBlock(e){let t=this.w;for(let c=0;c<16;c++){let l=c*4;t[c]=e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]}for(let c=16;c<80;c++)t[c]=_E(t[c-3]^t[c-8]^t[c-14]^t[c-16],1);let i=this.h0,n=this.h1,s=this.h2,o=this.h3,a=this.h4;for(let c=0;c<80;c++){let l=0,d=0;c<20?(l=n&s|~n&o,d=1518500249):c<40?(l=n^s^o,d=1859775393):c<60?(l=n&s|n&o|s&o,d=2400959708):(l=n^s^o,d=3395469782);let u=_E(i,5)+l+a+d+t[c]|0;a=o,o=s,s=_E(n,30),n=i,i=u}this.h0=this.h0+i|0,this.h1=this.h1+n|0,this.h2=this.h2+s|0,this.h3=this.h3+o|0,this.h4=this.h4+a|0}getStateHex(){let e=[this.h0,this.h1,this.h2,this.h3,this.h4],t="";for(let i of e){let n=(i&255).toString(16).padStart(2,"0"),s=(i>>>8&255).toString(16).padStart(2,"0"),o=(i>>>16&255).toString(16).padStart(2,"0"),a=(i>>>24&255).toString(16).padStart(2,"0");t+=n+s+o+a}return t.toLowerCase()}digestHex(){let e=new r;e.h0=this.h0,e.h1=this.h1,e.h2=this.h2,e.h3=this.h3,e.h4=this.h4,e.block.set(this.block),e.blockLen=this.blockLen,e.totalBytes=this.totalBytes;let t=e.blockLen<56?56-e.blockLen:120-e.blockLen,i=new Uint8Array(t+8);i[0]=128;let n=e.totalBytes*8,s=Math.floor(e.totalBytes/536870912),o=(n&4294967295)>>>0,a=new DataView(i.buffer,i.byteOffset+t,8);return a.setUint32(0,s,!1),a.setUint32(4,o,!1),e.update(i),[e.h0,e.h1,e.h2,e.h3,e.h4].map(l=>(l>>>0).toString(16).padStart(8,"0")).join("").toLowerCase()}}});function xF(r){let e=new Map;if(!r)return e;let t=r.split(";");for(let i of t){let n=i.trim();if(!n)continue;let s=n.indexOf("=");if(s>0){let o=n.slice(0,s).trim(),a=n.slice(s+1).trim();o&&a&&e.set(o,a)}}return e}function Am(r){let e=[];for(let[t,i]of r.entries())t&&i&&e.push(`${t}=${i}`);return e.join("; ")}var hm,CF=J(()=>{"use strict";wF();hm=class{cookies=new Map;onCookieUpdate;pendingCookie=null;addition;constructor(e,t){this.addition=e,this.cookies=xF(e.cookies||""),this.onCookieUpdate=t}getCookies(){return this.cookies}getCookieStr(){return Am(this.cookies)}setCookiesStr(e){this.cookies=xF(e),this.pendingCookie=Am(this.cookies),this.addition.cookies=this.pendingCookie,this.onCookieUpdate&&this.onCookieUpdate(this.pendingCookie)}updateCookiesFromHeaders(e){let t=e.getSetCookie,i=[];if(typeof t=="function")i=t.call(e);else{let s=e.get("set-cookie");s&&(i=[s])}let n=!1;for(let s of i){let o=s.split(";")[0]||"",a=o.indexOf("=");if(a>0){let c=o.slice(0,a).trim(),l=o.slice(a+1).trim();c&&l&&this.cookies.get(c)!==l&&(this.cookies.set(c,l),n=!0)}}n&&(this.pendingCookie=Am(this.cookies),this.addition.cookies=this.pendingCookie,this.onCookieUpdate&&this.onCookieUpdate(this.pendingCookie))}consumePendingCookie(){let e=this.pendingCookie;return this.pendingCookie=null,e}loginType(){let e=this.cookies.get("wy_uf")||"",t=this.cookies.get("weiyun_wx_openid")||"",i=this.cookies.get("weiyun_qq_openid")||"";return e==="2"&&t?"weixin_openid":e==="2"&&i?"qq_openid":e==="1"?"weixin":e==="0"||!e?"qq":"unknown"}parseTokenInfo(){switch(this.loginType()){case"weixin":return{token_type:1,openid:this.cookies.get("openid")||"",open_appid:this.cookies.get("wy_appid")||"",access_token:this.cookies.get("access_token")||"",login_key_type:192,login_key_value:this.cookies.get("access_token")||""};case"qq":return{token_type:0,login_key_type:27,login_key_value:this.cookies.get("p_skey")||this.cookies.get("skey")||"",openid:""};case"weixin_openid":case"qq_openid":return{token_type:3,login_key_type:1540};default:return{}}}async refreshCtoken(){let e=await fetch("https://www.weiyun.com/disk",{headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Cookie:this.getCookieStr()},redirect:"manual"});if(this.updateCookiesFromHeaders(e.headers),e.status>=300&&e.status<400){let t=e.headers.get("location")||"";if(t&&!t.includes("/disk"))throw new Error("[WeiYun] Login cookie expired or invalid, please login again")}}async weixinRefreshToken(){let e=this.cookies.get("wy_appid")||"",t=this.cookies.get("refresh_token")||"";if(!e||!t)return;let i=`https://api.weixin.qq.com/sns/oauth2/refresh_token?grant_type=refresh_token&appid=${encodeURIComponent(e)}&refresh_token=${encodeURIComponent(t)}`,s=await(await fetch(i)).json().catch(()=>({}));if(s.errcode)throw new Error(`[WeiYun] WeChat refresh token failed: ${s.errmsg}`);s.openid&&this.cookies.set("openid",s.openid),s.access_token&&this.cookies.set("access_token",s.access_token),s.refresh_token&&this.cookies.set("refresh_token",s.refresh_token),this.pendingCookie=Am(this.cookies),this.addition.cookies=this.pendingCookie,this.onCookieUpdate&&this.onCookieUpdate(this.pendingCookie)}newHeader(e,t){let i=t.openid||t.minico_openid||"";return{seq:Math.floor(Date.now()/1e3),cmd:e,wx_openid:i,qq_openid:t.qq_openid||"",user_flag:t.token_type??0,env_id:t.env_id||"",type:1,appid:30013,version:3,major_version:3,minor_version:3,fix_version:3}}newBody(e,t,i){return{ReqMsg_body:{ext_req_head:{token_info:i,language_info:{language_type:2052}},[`.weiyun.${e}MsgReq_body`]:t}}}newUploadJson(e,t,i){return{req_header:{cmd:t,appid:30013,major_version:3,minor_version:0,fix_version:0,version:3,user_flag:0},req_body:{ReqMsg_body:{[`weiyun.${e}MsgReq_body`]:i}}}}async request(e,t,i,n,s){let o=this.parseTokenInfo(),a=this.cookies.get("wyctoken")||"",c="",l,d={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://www.weiyun.com",Cookie:this.getCookieStr()};if(e==="preUpload")c=`https://www.weiyun.com/api/v3/ftn_pre_upload?g_tk=${encodeURIComponent(a)}&cmd=${i}`,l=JSON.stringify(this.newUploadJson(t,i,n)),d["Content-Type"]="application/json; charset=UTF-8";else if(e==="upload"){c=`https://upload.weiyun.com/ftnup_v2/weiyun?g_tk=${encodeURIComponent(a)}&cmd=${i}`;let p="----WebKitFormBoundaryIifrOqiswelC8nfe";d["Content-Type"]=`multipart/form-data; boundary=${p}`;let I=JSON.stringify(this.newUploadJson(t,i,n)),m=`--${p}\r Content-Disposition: form-data; name="json"\r \r ${I}\r @@ -147,15 +149,15 @@ ${I}\r Content-Disposition: form-data; name="upload"; filename="blob"\r Content-Type: application/octet-stream\r \r -`);let C=`\r +`);let B=`\r --${p}--\r -`,b=new TextEncoder,x=b.encode(y),_=s?b.encode(w):new Uint8Array(0),R=b.encode(C),U=s?new Uint8Array(s):new Uint8Array(0),T=x.length+_.length+U.length+R.length,D=new Uint8Array(T),B=0;D.set(x,B),B+=x.length,_.length>0&&(D.set(_,B),B+=_.length,D.set(U,B),B+=U.length),D.set(R,B),l=D}else c=`https://www.weiyun.com/webapp/json/${e}/${t}?g_tk=${encodeURIComponent(a)}&cmd=${i}`,l=JSON.stringify({req_header:JSON.stringify(this.newHeader(i,o)),req_body:JSON.stringify(this.newBody(t,n,o))}),d["Content-Type"]="application/json; charset=UTF-8";let u=await fetch(c,{method:"POST",headers:d,body:l});if(this.updateCookiesFromHeaders(u.headers),u.status===403)try{await this.refreshCtoken(),(this.loginType()==="weixin"||this.loginType()==="weixin_openid")&&(await this.weixinRefreshToken().catch(()=>{}),await this.refreshCtoken()),d.Cookie=this.getCookieStr(),d.g_tk=this.cookies.get("wyctoken")||"",u=await fetch(c,{method:"POST",headers:d,body:l}),this.updateCookiesFromHeaders(u.headers)}catch(p){throw new Error(`[WeiYun] Request failed (403): ${p.message}`)}if(!u.ok){let p=await u.text().catch(()=>"");throw new Error(`[WeiYun] HTTP ${u.status}: ${p}`)}let f=await u.json().catch(()=>({})),h=f.data||f.result;if(f.ret!==void 0&&f.ret!==0)throw new Error(`[WeiYun] Error (${f.ret}): ${f.msg||"Unknown"}`);if(h?.rsp_header&&h.rsp_header.retcode!==0){let p=h.rsp_header;throw new Error(`[WeiYun] Cmd ${p.cmd} (${p.cmdName||t}) Error (${p.retcode}): ${p.retmsg||"Unknown error"}`)}if(e==="preUpload")return h?.rsp_body?.RspMsg_body?.weiyunPreUploadMsgRsp_body||f;if(e==="upload")return h?.rsp_body?.RspMsg_body?.[`weiyun.${t}MsgRsp_body`]||f;let g=h?.rsp_body?.RspMsg_body;if(typeof g=="string")try{return JSON.parse(g)}catch{return g}return g||h||f}async diskUserInfoGet(){return this.request("weiyunQdiskClient","DiskUserInfoGet",2201,{is_get_upload_flow_flag:!1,is_get_high_speed_flow_info:!1,is_get_weiyun_flag:!1,is_get_space_clean_info:!1,is_get_user_reward_info:!1})}async libDirPathGet(e){return(await this.request("weiyunFileLibClient","LibDirPathGet",26150,{dir_key:e})).items||[]}async diskDirFileList(e,t={}){return this.request("weiyunQdisk","DiskDirList",2208,{dir_key:e,start:t.start||0,count:t.count||500,sort_field:t.sortField??2,reverse_order:t.reverseOrder??!1,get_type:t.getType??0,get_abstract_url:!1,get_dir_detail_info:!1})}async diskFileDownload(e){let i=(await this.request("weiyunQdiskClient","DiskFileBatchDownload",2402,{file_list:[e],download_type:0})).file_list||[];if(!i||i.length===0)throw new Error("[WeiYun] No download link returned");return i[0]}async diskDirCreate(e){return this.request("weiyunQdiskClient","DiskDirCreate",2614,{ppdir_key:e.ppdir_key,pdir_key:e.pdir_key,dir_name:e.dir_name,file_exist_option:2,create_type:1})}async diskFileRename(e,t){await this.request("weiyunQdiskClient","DiskFileRename",2605,{ppdir_key:e.ppdir_key,pdir_key:e.pdir_key,file_id:e.file_id,src_filename:e.filename,filename:t})}async diskDirAttrModify(e,t){await this.request("weiyunQdiskClient","DiskDirAttrModify",2615,{ppdir_key:e.ppdir_key,pdir_key:e.pdir_key,dir_key:e.dir_key,src_dir_name:e.dir_name,dst_dir_name:t})}async diskFileDelete(e){await this.request("weiyunQdiskClient","DiskDirFileBatchDeleteEx",2509,{file_list:[e]})}async diskDirDelete(e){await this.request("weiyunQdiskClient","DiskDirFileBatchDeleteEx",2509,{dir_list:[e]})}async diskFileMove(e,t){await this.request("weiyunQdiskClient","DiskDirFileBatchMove",2618,{src_ppdir_key:e.ppdir_key,src_pdir_key:e.pdir_key,file_list:[e],dst_ppdir_key:t.pdir_key,dst_pdir_key:t.dir_key})}async diskDirMove(e,t){await this.request("weiyunQdiskClient","DiskDirFileBatchMove",2618,{src_ppdir_key:e.ppdir_key,src_pdir_key:e.pdir_key,dir_list:[e],dst_ppdir_key:t.pdir_key,dst_pdir_key:t.dir_key})}async preUpload(e,t,i,n,s,o=4,a=1){let l=0,d=n,u=0;n>0&&(d=n%1048576,d===0&&(d=1048576),u=d%128,u===0&&(u=128),l=n-d);let f=[],h=new zp;for(let x=0;x<l;x+=1048576){let _=s.subarray(x,x+1048576);h.update(_),f.push({sha:h.getStateHex(),offset:x,size:1048576})}let g=s.subarray(l,l+d-u);h.update(g);let p=h.getStateHex(),I=s.subarray(l+d-u,n);h.update(I);let y=W8(I),w=h.digestHex();f.push({sha:w,offset:l,size:d});let C={common_upload_req:{ppdir_key:e,pdir_key:t,file_size:n,filename:i,file_exist_option:a,use_mutil_channel:!0},upload_scr:0,channel_count:o,block_size:1048576,check_sha:p,check_data:y,block_info_list:f},b=await this.request("preUpload","PreUpload",247120,C);return b.common_upload_rsp&&(b.common_upload_rsp.file_sha=w,b.common_upload_rsp.file_size=n),b}async addUploadChannel(e,t,i){return this.request("upload","AddChannel",247122,{upload_key:i.upload_key,ex:i.ex,orig_channel_count:e,dest_channel_count:t,speed:4303})}async uploadPiece(e,t,i){let n=await this.request("upload","UploadPiece",247121,{upload_key:t.upload_key,ex:t.ex,channel:e},i);return n.channel&&n.channel.len===0&&n.upload_state===1&&(n.channel.len=e.len),n}}});function EJ(r){return Buffer.from(JSON.stringify(r),"utf8").toString("base64")}function BJ(r){try{let e=JSON.parse(Buffer.from(r,"base64").toString("utf8"));if(!e||!e.uploadKey||!e.ex||!Number.isInteger(e.partCount)||e.partCount<1)throw new Error("invalid upload session");return e}catch{throw new Error("[WeiYun] \u4E0A\u4F20\u4F1A\u8BDD\u65E0\u6548\u6216\u5DF2\u635F\u574F")}}function n4(r){if(!r)return new Date().toISOString();try{let e=typeof r=="string"?parseInt(r,10):r;if(!isNaN(e)&&e>0){let i=e<1e10?e*1e3:e;return new Date(i).toISOString()}let t=new Date(r);if(!isNaN(t.getTime()))return t.toISOString()}catch{}return new Date().toISOString()}function r4(r){return{name:r.dir_name,size:0,is_dir:!0,modified:n4(r.dir_mtime||r.dir_ctime),sign:r.dir_key,type:1,thumb:"",raw_url:""}}function i4(r){return{name:r.filename,size:r.file_size||0,is_dir:!1,modified:n4(r.file_mtime||r.file_ctime),sign:r.file_id,type:X(r.filename,!1),thumb:r.ext_info?.thumb_url||"",raw_url:""}}function iE(r){let e={...r||{}};return e.root_folder_id=(e.root_folder_id||"").trim(),e.cookies=(e.cookies||"").trim(),e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e.upload_thread=e.upload_thread||"4",e}var CJ,t4,$p,s4=j(()=>{"use strict";Be();He();e4();CJ=45,t4=1024*1024;$p=class{client;addition;rootFolderId="";rootPdirKey="";uploadThreads=4;pathFolderCache=new Map;budget={used:0,limit:CJ};constructor(e,t){this.addition=iE(e),this.client=new jp(this.addition,t)}async init(){let e=parseInt(this.addition.upload_thread||"4",10);if(this.uploadThreads=Math.min(32,Math.max(4,isNaN(e)?4:e)),this.addition.upload_thread=String(this.uploadThreads),await this.client.refreshCtoken(),this.addition.root_folder_id)this.rootFolderId=this.addition.root_folder_id;else{let n=await this.client.diskUserInfoGet();this.rootFolderId=n.main_dir_key||n.root_dir_key||"",this.addition.root_folder_id=this.rootFolderId}if(!this.rootFolderId)throw new Error("[WeiYun] Failed to obtain root folder ID");let t=await this.client.libDirPathGet(this.rootFolderId);if(!t||t.length===0)throw new Error(`[WeiYun] Invalid root directory ID: ${this.rootFolderId}`);let i=t[t.length-1];this.rootPdirKey=i.pdir_key||"",this.pathFolderCache.set("/",{dirKey:this.rootFolderId,pdirKey:this.rootPdirKey,dirName:i.dir_name||"root"})}consumePendingCookie(){return this.client.consumePendingCookie()}async resolveFolder(e){let t="/"+String(e||"").split("/").filter(Boolean).join("/");if(t==="/"||t===`/${this.rootFolderId}`)return{dirKey:this.rootFolderId,pdirKey:this.rootPdirKey,dirName:"root"};if(this.pathFolderCache.has(t))return this.pathFolderCache.get(t);let i=t.split("/").filter(Boolean),n={dirKey:this.rootFolderId,pdirKey:this.rootPdirKey,dirName:"root"},s="";for(let o=0;o<i.length;o++){let a=i[o],c=(()=>{try{return decodeURIComponent(a)}catch{return a}})();if(s="/"+i.slice(0,o+1).join("/"),this.pathFolderCache.has(s)){n=this.pathFolderCache.get(s);continue}this.budget.used++,this.budget.used>=this.budget.limit&&console.warn(`[WeiYun] Cloudflare Worker subrequest budget limit (${this.budget.limit}) reached.`);let u=((await this.client.diskDirFileList(n.dirKey,{count:500,getType:1})).dir_list||[]).find(f=>f.dir_name===a||f.dir_name===c||f.dir_key===a);if(!u)throw new Error(`[WeiYun] Directory '${a}' not found in folder '${n.dirKey}'`);n={dirKey:u.dir_key,pdirKey:n.dirKey,dirName:u.dir_name},this.pathFolderCache.set(s,n)}return n}async resolveFile(e){let t=String(e||"").split("/").filter(Boolean);if(t.length===0)throw new Error("[WeiYun] \u8DEF\u5F84\u65E0\u6548");let i=t[t.length-1],n=(()=>{try{return decodeURIComponent(i)}catch{return i}})(),s="/"+t.slice(0,t.length-1).join("/"),o=await this.resolveFolder(s);this.budget.used++;let a=await this.client.diskDirFileList(o.dirKey,{count:500,getType:0}),c=(a.file_list||[]).find(d=>d.filename===i||d.filename===n||d.file_id===i);if(c)return{file:c,parent:o,isDir:!1};let l=(a.dir_list||[]).find(d=>d.dir_name===i||d.dir_name===n||d.dir_key===i);if(l)return{folder:l,parent:o,isDir:!0};throw new Error(`[WeiYun] \u6587\u4EF6\u6216\u76EE\u5F55\u672A\u627E\u5230: ${i}`)}async list(e,t){this.budget.used=0;let i=await this.resolveFolder(t),n=[],s=[],o=0;for(;;){if(this.budget.used++,this.budget.used>=this.budget.limit){console.warn(`[WeiYun] Subrequest budget limit (${this.budget.limit}) reached while listing ${t}`);break}let c=this.addition.order_by==="size"?3:this.addition.order_by==="updated_at"?2:1,l=this.addition.order_direction==="desc",d=await this.client.diskDirFileList(i.dirKey,{start:o,count:500,sortField:c,reverseOrder:l,getType:0}),u=d.dir_list||[],f=d.file_list||[];for(let h of u)h.pdir_key=i.dirKey,n.push(h);for(let h of f)h.pdir_key=i.dirKey,s.push(h);if(o=n.length+s.length,d.finish_flag||u.length===0&&f.length===0)break}let a=[...n.map(r4),...s.map(i4)];return de(a,this.addition.order_by==="size"?"size":this.addition.order_by==="updated_at"?"updated_at":"name",this.addition.order_direction)}async get(e,t){this.budget.used=0;let i="/"+String(t||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${this.rootFolderId}`)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.rootFolderId,type:1,raw_url:""};let{file:n,folder:s,parent:o,isDir:a}=await this.resolveFile(t);if(a&&s)return r4(s);if(n){let c=i4(n);try{let l=await this.client.diskFileDownload({ppdir_key:o.pdirKey,pdir_key:o.dirKey,file_id:n.file_id,filename:n.filename});c.raw_url=l.download_url,c.raw_url_headers={Cookie:`${l.cookie_name}=${l.cookie_value}`}}catch(l){console.warn(`[WeiYun] \u83B7\u53D6 ${n.filename} \u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25:`,l.message),c.raw_url_error=l.message}return c}throw new Error(`[WeiYun] \u6761\u76EE\u672A\u627E\u5230: ${t}`)}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u5EFA\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolder(s);await this.client.diskDirCreate({ppdir_key:o.pdirKey,pdir_key:o.dirKey,dir_name:n})}async rename(e,t,i){this.budget.used=0;let{file:n,folder:s,parent:o,isDir:a}=await this.resolveFile(t);a&&s?await this.client.diskDirAttrModify({ppdir_key:o.pdirKey,pdir_key:o.dirKey,dir_key:s.dir_key,dir_name:s.dir_name},i):n&&await this.client.diskFileRename({ppdir_key:o.pdirKey,pdir_key:o.dirKey,file_id:n.file_id,filename:n.filename},i)}async remove(e,t,i){this.budget.used=0;let{file:n,folder:s,parent:o,isDir:a}=await this.resolveFile(t);a&&s?await this.client.diskDirDelete({ppdir_key:o.pdirKey,pdir_key:o.dirKey,dir_key:s.dir_key,dir_name:s.dir_name}):n&&await this.client.diskFileDelete({ppdir_key:o.pdirKey,pdir_key:o.dirKey,file_id:n.file_id,filename:n.filename})}async move(e,t,i,n,s){this.budget.used=0;let{file:o,folder:a,parent:c,isDir:l}=await this.resolveFile(n),d=await this.resolveFolder(t);l&&a?await this.client.diskDirMove({ppdir_key:c.pdirKey,pdir_key:c.dirKey,dir_key:a.dir_key,dir_name:a.dir_name},{pdir_key:d.pdirKey,dir_key:d.dirKey}):o&&await this.client.diskFileMove({ppdir_key:c.pdirKey,pdir_key:c.dirKey,file_id:o.file_id,filename:o.filename},{pdir_key:d.pdirKey,dir_key:d.dirKey})}async copy(e,t,i,n,s){throw new Error("[WeiYun] \u5FAE\u4E91\u63A5\u53E3\u4E0D\u652F\u6301\u590D\u5236\u64CD\u4F5C (Copy not supported)")}async put(e,t,i){let n=String(t||"").split("/").filter(Boolean),s=n.pop();if(!s)throw new Error("[WeiYun] \u4E0A\u4F20\u8DEF\u5F84\u65E0\u6548");let o="/"+n.join("/"),a=await this.resolveFolder(o),c=await this.client.preUpload(a.pdirKey,a.dirKey,s,i.length,i,4,1);if(c.file_exist)return;let l={upload_key:c.upload_key||"",ex:c.ex||""},d=c.channel_list||[];d.length===0&&(d=[{id:0,offset:0,len:i.length}]);for(let u of d){let f={...u};for(;f.offset<i.length;){let h=Math.min(f.len||t4,i.length-f.offset),g=i.subarray(f.offset,f.offset+h),p=await this.client.uploadPiece(f,l,g);if(p.upload_state===2)break;p.channel?f=p.channel:f.offset+=h}}}async createUploadSession(e,t,i,n,s){this.budget.used=0;let o=await this.resolveFolder(t||"/"),a=t4,c=Math.max(1,Math.ceil(Math.max(0,Number(n)||0)/a)),l=new Uint8Array(0),d=await this.client.preUpload(o.pdirKey,o.dirKey,i,Math.max(0,Number(n)||0),l,4,1);if(d.file_exist)return{reuse:!0,partCount:0,chunkSize:a,session:""};let u={upload_key:d.upload_key||"",ex:d.ex||""},f=d.channel_list||[];if(f.length<this.uploadThreads&&u.upload_key)try{let h=await this.client.addUploadChannel(f.length,this.uploadThreads,u);h.channels&&(f=[...f,...h.channels])}catch{}return{reuse:!1,partCount:c,chunkSize:a,session:EJ({uploadKey:u.upload_key,ex:u.ex,parentDirKey:o.pdirKey,pdirKey:o.dirKey,fileName:i,size:Math.max(0,Number(n)||0),partCount:c,chunkSize:a,channels:f})}}async uploadPart(e,t,i){let n=BJ(e);if(!Number.isInteger(t)||t<1||t>n.partCount)throw new Error(`[WeiYun] \u5206\u7247\u5E8F\u53F7\u65E0\u6548: ${t}`);let s=(t-1)*n.chunkSize,o={id:t-1,offset:s,len:i.length},a={upload_key:n.uploadKey,ex:n.ex};return await this.client.uploadPiece(o,a,i),{partNumber:t}}async completeUploadSession(e,t=[]){}}});async function NJ(r,e){let t=`${r}${e}1appkey`,i=await _o(t),n=$t(i);return`div101.${r}${n}`}async function o4(r,e,t,i,n,s,o){let a=await NJ(r,s);return[`ANDROID-${t}/${n}`,"protocolVersion/200","accesstype/",`clientid/${e}`,`clientversion/${n}`,"action_type/","networktype/WIFI","sessionid/",`deviceid/${r}`,"providername/NONE",`devicesign/${a}`,"refresh_token/",`sdkversion/${i}`,`datetime/${Date.now()}`,`usrno/${o}`,`appname/android-${t}`,"session_origin/","grant_type/","appid/","clientip/","devicename/Xiaomi_M2004j7ac","osversion/13","platformversion/10","accessmode/","devicemodel/M2004J7AC"].join(" ")}function nE(r,e){try{let t=new URL(e);return`${r.toUpperCase()}:${t.pathname}`}catch{let t=e.match(/:\/\/[^/]+((\/[^/\s?#]+)*)/);return`${r.toUpperCase()}:${t?t[1]:""}`}}var bJ,vJ,kJ,SJ,DJ,QJ,_J,FJ,PJ,TJ,UJ,RJ,Vp,a4=j(()=>{"use strict";si();bJ=["SOP04dGzk0TNO7t7t9ekDbAmx+eq0OI1ovEx","nVBjhYiND4hZ2NCGyV5beamIr7k6ifAsAbl","Ddjpt5B/Cit6EDq2a6cXgxY9lkEIOw4yC1GDF28KrA","VVCogcmSNIVvgV6U+AochorydiSymi68YVNGiz","u5ujk5sM62gpJOsB/1Gu/zsfgfZO","dXYIiBOAHZgzSruaQ2Nhrqc2im","z5jUTBSIpBN9g4qSJGlidNAutX6","KJE2oveZ34du/g1tiimm"],vJ=["C9qPpZLN8ucRTaTiUMWYS9cQvWOE","+r6CQVxjzJV6LCV","F","pFJRC","9WXYIDGrwTCz2OiVlgZa90qpECPD6olt","/750aCr4lm/Sly/c","RB+DT/gZCrbV","","CyLsf7hdkIRxRm215hl","7xHvLi2tOYP0Y92b","ZGTXXxu8E/MIWaEDB+Sm/","1UI3","E7fP5Pfijd+7K+t6Tg/NhuLq0eEUVChpJSkrKxpO","ihtqpG6FMt65+Xk+tWUH2","NhXXU9rg4XXdzo7u5o"],kJ=["KHBJ07an7ROXDoK7Db","G6n399rSWkl7WcQmw5rpQInurc1DkLmLJqE","JZD1A3M4x+jBFN62hkr7VDhkkZxb9g3rWqRZqFAAb","fQnw/AmSlbbI91Ik15gpddGgyU7U","/Dv9JdPYSj3sHiWjouR95NTQff","yGx2zuTjbWENZqecNI+edrQgqmZKP","ljrbSzdHLwbqcRn","lSHAsqCkGDGxQqqwrVu","TsWXI81fD1","vk7hBjawK/rOSrSWajtbMk95nfgf3"],SJ="1.53.2",DJ="com.pikcloud.pikpak",QJ="2.0.6.206003",_J="2.0.0",FJ="mypikpak.com",PJ="8.0.3",TJ="undefined",UJ="mypikpak.com",RJ="8.0.3";Vp=class{addition;clientId;clientSecret;clientVersion;packageName;sdkVersion;algorithms;deviceId;userId="";userAgent="";accessToken="";refreshTokenVal="";captchaTokenVal="";onTokenRefreshed;constructor(e,t){this.addition=e,this.onTokenRefreshed=t,this.refreshTokenVal=e.refresh_token||"",this.captchaTokenVal=e.captcha_token||"";let i=e.platform||"web",n=e.client_id,s=e.client_secret;i==="android"?(this.clientId=n||"",this.clientSecret=s||"",this.clientVersion=SJ,this.packageName=DJ,this.sdkVersion=QJ,this.algorithms=bJ):i==="pc"?(this.clientId=n||"",this.clientSecret=s||"",this.clientVersion=TJ,this.packageName=UJ,this.sdkVersion=RJ,this.algorithms=kJ,this.userAgent="MainWindow Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) PikPak/2.6.11.4955 Chrome/100.0.4896.160 Electron/18.3.15 Safari/537.36"):(this.clientId=n||"",this.clientSecret=s||"",this.clientVersion=_J,this.packageName=FJ,this.sdkVersion=PJ,this.algorithms=vJ,this.userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"),this.deviceId=e.device_id||$t(`${e.username||""}${e.password||""}`)}getCaptchaSign(){let e=String(Date.now()),t=`${this.clientId}${this.clientVersion}${this.packageName}${this.deviceId}${e}`;for(let i of this.algorithms)t=$t(t+i);return{timestamp:e,sign:`1.${t}`}}async refreshCaptchaToken(e,t){let i={action:e,captcha_token:this.captchaTokenVal,client_id:this.clientId,device_id:this.deviceId,meta:t,redirect_uri:"xlaccsdk01://xbase.cloud/callback?state=harbor"},s=await(await fetch(`https://user.mypikpak.net/v1/shield/captcha/init?client_id=${encodeURIComponent(this.clientId)}`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId},body:JSON.stringify(i)})).json();if(s.error_code&&s.error_code!==0)throw new Error(`Captcha error ${s.error_code}: ${s.error_description||s.error}`);if(s.url)throw new Error(`PikPak requires captcha verification: ${s.url}`);return s.captcha_token&&(this.captchaTokenVal=s.captcha_token),this.captchaTokenVal}async refreshCaptchaTokenAtLogin(e,t){let{timestamp:i,sign:n}=this.getCaptchaSign(),s={client_version:this.clientVersion,package_name:this.packageName,user_id:t,timestamp:i,captcha_sign:n};return this.refreshCaptchaToken(e,s)}async refreshCaptchaTokenInLogin(e,t){let i={};return/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(t)?i.email=t:t.length>=11&&t.length<=18?i.phone_number=t:i.username=t,this.refreshCaptchaToken(e,i)}async login(){if(!this.addition.username||!this.addition.password)throw new Error("PikPak username or password is required when refresh_token is not provided");let e="https://user.mypikpak.net/v1/auth/signin";this.captchaTokenVal||await this.refreshCaptchaTokenInLogin(nE("POST",e),this.addition.username);let i=await(await fetch(`${e}?client_id=${encodeURIComponent(this.clientId)}`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId,"X-Captcha-Token":this.captchaTokenVal},body:JSON.stringify({captcha_token:this.captchaTokenVal,client_id:this.clientId,client_secret:this.clientSecret,username:this.addition.username,password:this.addition.password})})).json();if(i.error_code&&i.error_code!==0)throw new Error(`PikPak login failed (${i.error_code}): ${i.error_description||i.error}`);this.accessToken=i.access_token,this.refreshTokenVal=i.refresh_token,this.userId=i.sub||"",this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal,captchaToken:this.captchaTokenVal})}async refreshToken(){if(!this.refreshTokenVal){await this.login();return}let i=await(await fetch(`https://user.mypikpak.net/v1/auth/token?client_id=${encodeURIComponent(this.clientId)}`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId},body:JSON.stringify({client_id:this.clientId,client_secret:this.clientSecret,grant_type:"refresh_token",refresh_token:this.refreshTokenVal})})).json();if(i.error_code&&i.error_code!==0){if(i.error_code===4126&&this.addition.username){await this.login();return}throw new Error(`PikPak token refresh failed (${i.error_code}): ${i.error_description||i.error}`)}this.accessToken=i.access_token,this.refreshTokenVal=i.refresh_token,this.userId=i.sub||"",this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal,captchaToken:this.captchaTokenVal})}async init(){this.addition.platform==="android"&&(this.userAgent=await o4(this.deviceId,this.clientId,this.packageName,this.sdkVersion,this.clientVersion,this.packageName,this.userId)),this.refreshTokenVal?await this.refreshToken():await this.login();try{await this.refreshCaptchaTokenAtLogin(nE("GET","https://api-drive.mypikpak.net/drive/v1/files"),this.userId)}catch(e){console.warn("[PikPak] post-login captcha init warning:",e)}this.addition.platform==="android"&&(this.userAgent=await o4(this.deviceId,this.clientId,this.packageName,this.sdkVersion,this.clientVersion,this.packageName,this.userId))}async request(e,t={}){let{method:i="GET",params:n,body:s,retryCount:o=0}=t,a=e;if(n&&Object.keys(n).length>0){let f=new URLSearchParams(n).toString();a+=(e.includes("?")?"&":"?")+f}let c={"User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId};this.captchaTokenVal&&(c["X-Captcha-Token"]=this.captchaTokenVal),this.accessToken&&(c.Authorization=`Bearer ${this.accessToken}`),s&&typeof s=="object"&&!(s instanceof Uint8Array)&&(c["Content-Type"]="application/json");let l=await fetch(a,{method:i,headers:c,body:s&&typeof s=="object"&&!(s instanceof Uint8Array)?JSON.stringify(s):s}),d=await l.text(),u={};try{u=JSON.parse(d)}catch{u=d}if(u&&typeof u=="object"&&u.error_code){let f=u.error_code;if((f===4122||f===4121||f===16)&&o<2)return await this.refreshToken(),this.request(e,{...t,retryCount:o+1});if(f===9&&o<2)return await this.refreshCaptchaTokenAtLogin(nE(i,e),this.userId),this.request(e,{...t,retryCount:o+1});throw new Error(`PikPak API Error (${f}): ${u.error_description||u.error||JSON.stringify(u)}`)}if(!l.ok)throw new Error(`PikPak request failed with status ${l.status}: ${d}`);return u}}});var Yp,c4=j(()=>{"use strict";Be();He();si();a4();Yp=class{addition;client;rootId="";idCache=new Map;constructor(e,t){this.addition=e,this.rootId=e.root_folder_id||"",this.client=new Vp(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async resolveParentId(e){let t=this.cleanPath(e);if(!t)return this.rootId;if(this.idCache.has(t))return this.idCache.get(t);let i=t.split("/").filter(Boolean),n=this.rootId,s="";for(let o of i){if(s+="/"+o,this.idCache.has(s)){n=this.idCache.get(s);continue}let c=(await this.getFiles(n)).find(l=>l.name===o);if(!c)throw new Error(`Path not found: ${s}`);n=c.id,this.idCache.set(s,n)}return n}async getFiles(e){let t=[],i="";for(;;){let n={parent_id:e,thumbnail_size:"SIZE_LARGE",with_audit:"true",limit:"100",filters:JSON.stringify({phase:{eq:"PHASE_TYPE_COMPLETE"},trashed:{eq:!1}})};i&&(n.page_token=i);let s=await this.client.request("https://api-drive.mypikpak.net/drive/v1/files",{method:"GET",params:n});if(s.files&&s.files.length>0&&t.push(...s.files),!s.next_page_token||s.next_page_token===i)break;i=s.next_page_token}return t}async list(e,t){let i=await this.resolveParentId(t),n=await this.getFiles(i),s=this.cleanPath(t),o=n.map(a=>{let c=a.kind==="drive#folder",l=s?`${s}/${a.name}`:`/${a.name}`;this.idCache.set(l,a.id);let d=a.web_content_link||"";return!this.addition.disable_media_link&&a.medias&&a.medias.length>0&&a.medias[0].link?.url&&(d=a.medias[0].link.url),{name:a.name,size:parseInt(a.size||"0",10)||0,is_dir:c,created:a.created_time,modified:a.modified_time||new Date().toISOString(),sign:a.id,type:X(a.name,c),thumb:a.thumbnail_link,raw_url:d}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.rootId,type:1,raw_url:""};let s=await this.resolveParentId(t),o={_magic:"2021",usage:this.addition.disable_media_link?"FETCH":"CACHE",thumbnail_size:"SIZE_LARGE"},a=await this.client.request(`https://api-drive.mypikpak.net/drive/v1/files/${encodeURIComponent(s)}`,{method:"GET",params:o}),c=a.kind==="drive#folder",l=a.web_content_link||"";return!this.addition.disable_media_link&&a.medias&&a.medias.length>0&&a.medias[0].link?.url&&(l=a.medias[0].link.url),{name:a.name||n,size:parseInt(a.size||"0",10)||0,is_dir:c,created:a.created_time,modified:a.modified_time||new Date().toISOString(),sign:a.id,type:X(a.name||n,c),thumb:a.thumbnail_link,raw_url:l}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/"),s=i.split("/").pop()||"",o=await this.resolveParentId(n),a=await this.client.request("https://api-drive.mypikpak.net/drive/v1/files",{method:"POST",body:{kind:"drive#folder",parent_id:o,name:s}});a?.file?.id&&this.idCache.set(i,a.file.id)}async rename(e,t,i){let n=await this.resolveParentId(t);await this.client.request(`https://api-drive.mypikpak.net/drive/v1/files/${encodeURIComponent(n)}`,{method:"PATCH",body:{name:i}});let s=this.cleanPath(t);this.idCache.delete(s)}async remove(e,t,i){let n=await this.resolveParentId(t),s=await this.getFiles(n),o=[];for(let c of i){let l=s.find(d=>d.name===c);l&&o.push(l.id)}if(o.length===0)return;await this.client.request("https://api-drive.mypikpak.net/drive/v1/files:batchTrash",{method:"POST",body:{ids:o}});let a=this.cleanPath(t);for(let c of i)this.idCache.delete(a?`${a}/${c}`:`/${c}`)}async move(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.getFiles(o),l=[];for(let u of i){let f=c.find(h=>h.name===u);f&&l.push(f.id)}if(l.length===0)return;await this.client.request("https://api-drive.mypikpak.net/drive/v1/files:batchMove",{method:"POST",body:{ids:l,to:{parent_id:a}}});let d=this.cleanPath(n);for(let u of i)this.idCache.delete(d?`${d}/${u}`:`/${u}`)}async copy(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.getFiles(o),l=[];for(let d of i){let u=c.find(f=>f.name===d);u&&l.push(u.id)}l.length!==0&&await this.client.request("https://api-drive.mypikpak.net/drive/v1/files:batchCopy",{method:"POST",body:{ids:l,to:{parent_id:a}}})}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/"),o=n.split("/").pop()||"upload",a=await this.resolveParentId(s),c=(await _o(new Uint8Array(i))).toUpperCase(),l=await this.client.request("https://api-drive.mypikpak.net/drive/v1/files",{method:"POST",body:{kind:"drive#file",name:o,size:String(i.length),hash:c,upload_type:"UPLOAD_TYPE_RESUMABLE",objProvider:{provider:"UPLOAD_TYPE_UNKNOWN"},parent_id:a,folder_type:"NORMAL"}});if(!l.resumable)return;let d=l.resumable.params,u=d.endpoint;this.addition.platform==="android"&&(u="mypikpak.net");let f=`https://${d.bucket}.${u}/${d.key}`,h=await fetch(f,{method:"PUT",headers:{"Content-Length":String(i.length),"x-oss-security-token":d.security_token},body:new Uint8Array(i)});if(!h.ok)throw new Error(`PikPak OSS upload failed: ${h.statusText}`)}async getDetails(){let e=await this.client.request("https://api-drive.mypikpak.net/drive/v1/about",{method:"GET"});return{totalSpace:parseInt(e.quota.limit||"0",10)||0,usedSpace:parseInt(e.quota.usage||"0",10)||0}}}});var Wp,l4=j(()=>{"use strict";Wp=class{addition;address;authorization="";onTokenRefreshed;decryptedRepos=new Map;constructor(e,t){this.addition=e,this.address=(e.address||"").replace(/\/+$/,""),this.onTokenRefreshed=t,e.token&&(this.authorization=`Token ${e.token}`)}async getToken(){if(this.addition.token){this.authorization=`Token ${this.addition.token}`;return}if(!this.addition.username||!this.addition.password)throw new Error("Seafile requires either token or username/password to authenticate");let e=new URLSearchParams;e.set("username",this.addition.username),e.set("password",this.addition.password);let t=await fetch(`${this.address}/api2/auth-token/`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:e.toString()});if(!t.ok){let n=await t.text();throw new Error(`Seafile auth failed (${t.status}): ${n}`)}let i=await t.json();this.authorization=`Token ${i.token}`,this.addition.token=i.token,this.onTokenRefreshed&&await this.onTokenRefreshed(i.token)}async request(e,t={}){let{method:i="GET",params:n,body:s,isFormData:o=!1,retryCount:a=0}=t,c=e.startsWith("http")?e:`${this.address}${e}`;if(n&&Object.keys(n).length>0){let g=new URLSearchParams(n).toString();c+=(c.includes("?")?"&":"?")+g}let l={Accept:"application/json"};this.authorization&&(l.Authorization=this.authorization);let d=s;if(o&&s&&!(s instanceof FormData)){let g=new URLSearchParams;for(let[p,I]of Object.entries(s))g.set(p,String(I));l["Content-Type"]="application/x-www-form-urlencoded",d=g.toString()}else s&&typeof s=="object"&&!(s instanceof FormData)&&!(s instanceof Uint8Array)&&(l["Content-Type"]="application/json",d=JSON.stringify(s));let u=await fetch(c,{method:i,headers:l,body:d});if(u.status===401&&a<1)return await this.getToken(),this.request(e,{...t,retryCount:a+1});if(!u.ok){let g=await u.text();throw new Error(`Seafile request failed (${u.status}): ${g}`)}return(u.headers.get("content-type")||"").includes("application/json")?await u.json():await u.text()}async getLibraryInfo(e){return this.request(`/api2/repos/${e}/`)}async decryptLibrary(e){if(!e.encrypted)return;if(!this.addition.repo_pwd)throw new Error("Seafile encrypted library password (repo_pwd) is not configured");let t=this.decryptedRepos.get(e.id)||0;if(Date.now()-t<1800*1e3)return;let i=await this.request(`/api2/repos/${e.id}/`,{method:"POST",isFormData:!0,body:{password:this.addition.repo_pwd}});if(typeof i=="string"&&!i.includes("success"))throw new Error(`Failed to decrypt Seafile library: ${i}`);this.decryptedRepos.set(e.id,Date.now())}}});var Xp,d4=j(()=>{"use strict";Be();He();l4();Xp=class{addition;client;repoId;rootPath="/";constructor(e,t){this.addition=e,this.repoId=e.repo_id||void 0,this.client=new Wp(e,t)}async init(){await this.client.getToken(),this.rootPath="/"+(this.addition.root_folder_path||"/").split("/").filter(Boolean).join("/")}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveRepoAndPath(e){let t=this.cleanPath(e);if(this.repoId)return{repoId:this.repoId,innerPath:t,isRootListRepos:!1};if(t==="/")return{repoId:"",innerPath:"/",isRootListRepos:!0};let i=t.split("/").filter(Boolean),n=i[0],s="/"+i.slice(1).join("/"),a=(await this.client.request("/api2/repos/")).find(c=>c.name===n||c.id===n);if(!a)throw new Error(`Seafile library '${n}' not found`);return a.encrypted&&await this.client.decryptLibrary(a),{repoId:a.id,innerPath:s==="/"?"/":s,isRootListRepos:!1}}async list(e,t){let{repoId:i,innerPath:n,isRootListRepos:s}=await this.resolveRepoAndPath(t);if(s){let l=(await this.client.request("/api2/repos/")).map(d=>({name:d.name,size:d.size||0,is_dir:!0,modified:d.mtime?new Date(d.mtime*1e3).toISOString():new Date().toISOString(),sign:d.id,type:1,raw_url:""}));return de(l,this.addition.order_by,this.addition.order_direction)}let a=(await this.client.request(`/api2/repos/${encodeURIComponent(i)}/dir/`,{params:{p:n}})).map(c=>{let l=c.type==="dir";return{name:c.name,size:c.size||0,is_dir:l,modified:c.mtime?new Date(c.mtime*1e3).toISOString():new Date().toISOString(),sign:c.id,type:X(c.name,l),raw_url:""}});return de(a,this.addition.order_by,this.addition.order_direction)}async get(e,t){let{repoId:i,innerPath:n,isRootListRepos:s}=await this.resolveRepoAndPath(t),a=this.cleanPath(t).split("/").filter(Boolean).pop()||"root";if(s)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};if(n==="/"){let u=await this.client.getLibraryInfo(i);return{name:u.name||a,size:u.size||0,is_dir:!0,modified:u.mtime?new Date(u.mtime*1e3).toISOString():new Date().toISOString(),sign:u.id,type:1,raw_url:""}}let c="";try{let u=await this.client.request(`/api2/repos/${encodeURIComponent(i)}/file/`,{params:{p:n,reuse:"1"}});typeof u=="string"&&(c=u.replace(/^"|"$/g,"").trim())}catch{}let l=n.split("/").slice(0,-1).join("/")||"/",d=n.split("/").pop()||"";try{let f=(await this.client.request(`/api2/repos/${encodeURIComponent(i)}/dir/`,{params:{p:l}})).find(h=>h.name===d);if(f){let h=f.type==="dir";return{name:f.name,size:f.size||0,is_dir:h,modified:f.mtime?new Date(f.mtime*1e3).toISOString():new Date().toISOString(),sign:f.id,type:X(f.name,h),raw_url:c}}}catch{}return{name:a,size:0,is_dir:!c,modified:new Date().toISOString(),sign:"",type:X(a,!c),raw_url:c}}async mkdir(e,t){let{repoId:i,innerPath:n}=await this.resolveRepoAndPath(t);await this.client.request(`/api2/repos/${encodeURIComponent(i)}/dir/`,{method:"POST",isFormData:!0,params:{p:n},body:{operation:"mkdir"}})}async rename(e,t,i){let{repoId:n,innerPath:s}=await this.resolveRepoAndPath(t);await this.client.request(`/api2/repos/${encodeURIComponent(n)}/file/`,{method:"POST",isFormData:!0,params:{p:s},body:{operation:"rename",newname:i}})}async remove(e,t,i){let{repoId:n,innerPath:s}=await this.resolveRepoAndPath(t);for(let o of i){let a=s==="/"?`/${o}`:`${s}/${o}`;await this.client.request(`/api2/repos/${encodeURIComponent(n)}/file/`,{method:"DELETE",params:{p:a}})}}async move(e,t,i,n,s){let o=await this.resolveRepoAndPath(n),a=await this.resolveRepoAndPath(s);for(let c of i){let l=o.innerPath==="/"?`/${c}`:`${o.innerPath}/${c}`;await this.client.request(`/api2/repos/${encodeURIComponent(o.repoId)}/file/`,{method:"POST",isFormData:!0,params:{p:l},body:{operation:"move",dst_repo:a.repoId,dst_dir:a.innerPath}})}}async copy(e,t,i,n,s){let o=await this.resolveRepoAndPath(n),a=await this.resolveRepoAndPath(s);for(let c of i){let l=o.innerPath==="/"?`/${c}`:`${o.innerPath}/${c}`;await this.client.request(`/api2/repos/${encodeURIComponent(o.repoId)}/file/`,{method:"POST",isFormData:!0,params:{p:l},body:{operation:"copy",dst_repo:a.repoId,dst_dir:a.innerPath}})}}async put(e,t,i){let{repoId:n,innerPath:s}=await this.resolveRepoAndPath(t),o=s.split("/").slice(0,-1).join("/")||"/",a=s.split("/").pop()||"upload",l=(await this.client.request(`/api2/repos/${encodeURIComponent(n)}/upload-link/`,{params:{p:o}})||"").replace(/^"|"$/g,"").trim();if(!l)throw new Error("Failed to get Seafile upload link");let d=new FormData;d.append("parent_dir",o),d.append("replace","1"),d.append("file",new Blob([new Uint8Array(i)],{type:"application/octet-stream"}),a),await this.client.request(l,{method:"POST",body:d})}}});var Zp,u4=j(()=>{"use strict";Zp=class{addition;accessToken="";refreshTokenVal="";onTokenRefreshed;constructor(e,t){this.addition=e,this.refreshTokenVal=e.refresh_token||"",this.onTokenRefreshed=t}async refreshToken(){if(this.addition.use_online_api!==!1){let s=`${this.addition.api_url_address||"https://api.oplist.org/yandexui/renewapi"}?refresh_ui=${encodeURIComponent(this.refreshTokenVal)}&server_use=true&driver_txt=yandexui_go`,o=await fetch(s,{method:"GET",headers:{Accept:"application/json"}});if(!o.ok)throw new Error(`Failed to refresh Yandex token online: ${o.statusText}`);let a=await o.json();if(!a.access_token)throw new Error(`Yandex online token refresh failed: ${a.text||"No access token returned"}`);this.accessToken=a.access_token,a.refresh_token&&(this.refreshTokenVal=a.refresh_token,this.addition.refresh_token=a.refresh_token),this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal});return}if(!this.addition.client_id||!this.addition.client_secret)throw new Error("Yandex Disk requires client_id and client_secret when online API is disabled");let e=new URLSearchParams;e.set("grant_type","refresh_token"),e.set("refresh_token",this.refreshTokenVal),e.set("client_id",this.addition.client_id),e.set("client_secret",this.addition.client_secret);let t=await fetch("https://oauth.yandex.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:e.toString()});if(!t.ok){let n=await t.text();throw new Error(`Yandex OAuth refresh failed (${t.status}): ${n}`)}let i=await t.json();this.accessToken=i.access_token,this.refreshTokenVal=i.refresh_token,this.addition.refresh_token=i.refresh_token,this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal})}async init(){await this.refreshToken()}async request(e,t={}){let{method:i="GET",params:n,body:s,retryCount:o=0}=t,a=e.startsWith("http")?e:`https://cloud-api.yandex.net/v1/disk/resources${e}`;if(n&&Object.keys(n).length>0){let u=new URLSearchParams(n).toString();a+=(a.includes("?")?"&":"?")+u}let c={Accept:"application/json",Authorization:`OAuth ${this.accessToken}`};s&&typeof s=="object"&&!(s instanceof Uint8Array)&&(c["Content-Type"]="application/json");let l=await fetch(a,{method:i,headers:c,body:s&&typeof s=="object"&&!(s instanceof Uint8Array)?JSON.stringify(s):s});if(l.status===401&&o<1)return await this.refreshToken(),this.request(e,{...t,retryCount:o+1});if(!l.ok){let u=await l.text(),f=u;try{let h=JSON.parse(u);f=h.message||h.description||u}catch{}throw new Error(`Yandex Disk API Error (${l.status}): ${f}`)}return(l.headers.get("content-type")||"").includes("application/json")?await l.json():await l.text()}async getFiles(e,t,i){let s=0,o=[];for(;;){let a={path:e||"/",limit:String(100),offset:String(s)};t&&(a.sort=i==="desc"?`-${t}`:t);let l=(await this.request("",{method:"GET",params:a}))._embedded;if(!l||!l.items||(o.push(...l.items),l.total<=s+100||l.items.length===0))break;s+=100}return o}async getDownloadLink(e){return(await this.request("/download",{method:"GET",params:{path:e}})).href}async getUploadLink(e){return(await this.request("/upload",{method:"GET",params:{path:e,overwrite:"true"}})).href}}});var em,f4=j(()=>{"use strict";Be();He();u4();em=class{addition;client;constructor(e,t){this.addition=e,this.client=new Zp(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),s=(await this.client.getFiles(i,this.addition.order_by,this.addition.order_direction)).map(o=>{let a=o.type==="dir";return{name:o.name,size:o.size||0,is_dir:a,created:o.created,modified:o.modified||new Date().toISOString(),sign:o.path||o.name,type:X(o.name,a),thumb:o.preview,raw_url:""}});return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"/",type:1,raw_url:""};let s=await this.client.request("",{method:"GET",params:{path:i}}),o=s.type==="dir",a="";if(!o)try{a=await this.client.getDownloadLink(i)}catch(c){console.warn("[Yandex] get download link failed:",c)}return{name:s.name||n,size:s.size||0,is_dir:o,created:s.created,modified:s.modified||new Date().toISOString(),sign:s.path||i,type:X(s.name||n,o),raw_url:a}}async mkdir(e,t){let i=this.cleanPath(t);await this.client.request("",{method:"PUT",params:{path:i}})}async rename(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=s==="/"?`/${i}`:`${s}/${i}`;await this.client.request("/move",{method:"POST",params:{from:n,path:o,overwrite:"true"}})}async remove(e,t,i){let n=this.cleanPath(t);for(let s of i){let o=n==="/"?`/${s}`:`${n}/${s}`;await this.client.request("",{method:"DELETE",params:{path:o}})}}async move(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o==="/"?`/${c}`:`${o}/${c}`,d=a==="/"?`/${c}`:`${a}/${c}`;await this.client.request("/move",{method:"POST",params:{from:l,path:d,overwrite:"true"}})}}async copy(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o==="/"?`/${c}`:`${o}/${c}`,d=a==="/"?`/${c}`:`${a}/${c}`;await this.client.request("/copy",{method:"POST",params:{from:l,path:d,overwrite:"true"}})}}async put(e,t,i){let n=this.cleanPath(t),s=await this.client.getUploadLink(n),o=await fetch(s,{method:"PUT",headers:{"Content-Length":String(i.length),"Content-Type":"application/octet-stream"},body:new Uint8Array(i)});if(!o.ok)throw new Error(`Yandex upload failed: ${o.statusText}`)}}});function qJ(r,e){let t=new Array(256),i=new Array(256),n=[],s=r.length;for(let l=0;l<256;l++)t[l]=r.charCodeAt(l%s),i[l]=l;let o=0;for(let l=0;l<256;l++){o=(o+i[l]+t[l])%256;let d=i[l];i[l]=i[o],i[o]=d}let a=0;o=0;for(let l=0;l<e.length;l++){a=(a+1)%256,o=(o+i[a])%256;let d=i[a];i[a]=i[o],i[o]=d;let u=i[(i[a]+i[o])%256];n.push(e.charCodeAt(l)^u)}let c="";for(let l of n)c+=String.fromCharCode(l);return btoa(c)}var tm,A4=j(()=>{"use strict";tm=class{addition;baseUrl="https://www.terabox.com";urlDomainPrefix="jp";jsToken="";onCookieRefreshed;constructor(e,t){this.addition=e,this.onCookieRefreshed=t}async resetJsToken(){let e=await fetch(this.baseUrl,{method:"GET",headers:{Cookie:this.addition.cookie,Accept:"application/json, text/plain, */*",Referer:this.baseUrl,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox","X-Requested-With":"XMLHttpRequest"}});if(!e.ok)throw new Error(`Failed to fetch TeraBox home page: ${e.statusText}`);let t=await e.text(),i=t.match(/`function%20fn%28a%29%7Bwindow.jsToken%20%3D%20a%7D%3Bfn%28%22([^"]+?)%22%29`/);if(i&&i[1]){this.jsToken=i[1];return}let n=t.match(/jsToken\s*=\s*["']([^"']+)["']/);if(n&&n[1]){this.jsToken=n[1];return}this.jsToken=""}async request(e,t={}){let{method:i="GET",params:n,body:s,isFormData:o=!1,retryCount:a=0}=t,c=e.startsWith("http")?e:`${this.baseUrl}${e}`,l={app_id:"250528",web:"1",channel:"dubox",clienttype:"0",...n||{}};this.jsToken&&(l.jsToken=this.jsToken);let d=new URLSearchParams(l).toString();c+=(c.includes("?")?"&":"?")+d;let u={Cookie:this.addition.cookie,Accept:"application/json, text/plain, */*",Referer:this.baseUrl,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox","X-Requested-With":"XMLHttpRequest"},f=s;if(o&&s&&!(s instanceof FormData)){let I=new URLSearchParams;for(let[y,w]of Object.entries(s))I.set(y,String(w));u["Content-Type"]="application/x-www-form-urlencoded",f=I.toString()}else s&&typeof s=="object"&&!(s instanceof FormData)&&!(s instanceof Uint8Array)&&(u["Content-Type"]="application/json",f=JSON.stringify(s));let h=await fetch(c,{method:i,headers:u,body:f}),g=await h.text(),p={};try{p=JSON.parse(g)}catch{p=g}if(p&&typeof p=="object"&&p.errno!==void 0){let I=Number(p.errno);if((I===4000023||I===450016)&&a<2)return await this.resetJsToken(),this.request(e,{...t,retryCount:a+1});if(I===-6&&a<2){let y=h.headers.get("url-domain-prefix");if(y)return this.urlDomainPrefix=y,this.baseUrl=`https://${y}.terabox.com`,this.request(e,{...t,retryCount:a+1})}}return p}async init(){let e=await this.request("/api/check/login",{method:"GET"});if(e.errno!==0)throw e.errno===9e3?new Error("TeraBox is not yet available in this area (errno 9000)"):new Error(`Failed to verify TeraBox login status according to cookie (errno ${e.errno})`)}async genSign(){let e=await this.request("/api/home/info",{method:"GET"});if(!e.data||!e.data.sign1||!e.data.sign3)throw new Error("Failed to get TeraBox sign keys from home/info");return qJ(e.data.sign3,e.data.sign1)}async linkOfficial(e){let t=await this.genSign(),i={type:"dlink",fidlist:`[${e}]`,sign:t,vip:"2",timestamp:String(Math.floor(Date.now()/1e3))},n=await this.request("/api/download",{method:"GET",params:i});if(!n.dlink||n.dlink.length===0)throw new Error(`TeraBox fid ${e} no dlink found (errno: ${n.errno})`);let s=n.dlink[0].dlink;return(await fetch(s,{method:"GET",redirect:"manual",headers:{Cookie:this.addition.cookie,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox"}})).headers.get("location")||s}async linkCrack(e){let t={target:JSON.stringify([e]),dlink:"1",origin:"dlna"},i=await this.request("/api/filemetas",{method:"GET",params:t});if(!i.info||i.info.length===0||!i.info[0].dlink)throw new Error(`TeraBox crack download failed for ${e}`);return i.info[0].dlink}async manage(e,t){let i=new URLSearchParams;return i.set("async","0"),i.set("filelist",JSON.stringify(t)),i.set("ondup","newcopy"),this.request("/api/filemanager",{method:"POST",params:{onnest:"fail",opera:e},isFormData:!0,body:{async:"0",filelist:JSON.stringify(t),ondup:"newcopy"}})}}});var rm,h4=j(()=>{"use strict";Be();He();si();A4();rm=class{addition;client;constructor(e,t){this.addition=e,this.client=new tm(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),n=[],s=1,o=100;for(;;){let c={dir:i,page:String(s),num:String(o)};this.addition.order_by&&(c.order=this.addition.order_by,this.addition.order_direction==="desc"&&(c.desc="1"));let l=await this.client.request("/api/list",{method:"GET",params:c});if(l.errno===9e3)throw new Error("TeraBox is not yet available in this area");if(!l.list||l.list.length===0)break;n.push(...l.list),s++}let a=n.map(c=>{let l=c.isdir===1;return{name:c.server_filename,size:c.size||0,is_dir:l,modified:c.server_mtime?new Date(c.server_mtime*1e3).toISOString():new Date().toISOString(),sign:String(c.fs_id),type:X(c.server_filename,l),thumb:c.thumbs?.url3,raw_url:""}});return de(a,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let s=i.split("/").slice(0,-1).join("/")||"/",o=i.split("/").pop()||"",c=(await this.client.request("/api/list",{method:"GET",params:{dir:s,page:"1",num:"1000"}})).list?.find(u=>u.server_filename===o);if(!c)return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""};let l=c.isdir===1,d="";if(!l)try{this.addition.download_api==="crack"?d=await this.client.linkCrack(i):d=await this.client.linkOfficial(c.fs_id)}catch(u){console.warn("[TeraBox] get download link failed:",u)}return{name:c.server_filename,size:c.size||0,is_dir:l,modified:c.server_mtime?new Date(c.server_mtime*1e3).toISOString():new Date().toISOString(),sign:String(c.fs_id),type:X(c.server_filename,l),thumb:c.thumbs?.url3,raw_url:d,raw_url_headers:{"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox"}}}async mkdir(e,t){let i=this.cleanPath(t);await this.client.request("/api/create",{method:"POST",isFormData:!0,params:{a:"commit"},body:{path:i,isdir:"1",block_list:"[]"}})}async rename(e,t,i){let n=this.cleanPath(t);await this.client.manage("rename",[{path:n,newname:i}])}async remove(e,t,i){let n=this.cleanPath(t),s=i.map(o=>n==="/"?`/${o}`:`${n}/${o}`);await this.client.manage("delete",s)}async move(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s),c=i.map(l=>({path:o==="/"?`/${l}`:`${o}/${l}`,dest:a,newname:l}));await this.client.manage("move",c)}async copy(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s),c=i.map(l=>({path:o==="/"?`/${l}`:`${o}/${l}`,dest:a,newname:l}));await this.client.manage("copy",c)}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=n.split("/").pop()||"upload",l=(await(await fetch("https://jp-data.terabox.com/rest/2.0/pcs/file?method=locateupload")).json()).host||"d.terabox.com",d=$t(new Uint8Array(i)),u={path:n,autoinit:"1",target_path:s,block_list:JSON.stringify([d]),local_mtime:String(Math.floor(Date.now()/1e3)),file_limit_switch_v34:"true"},f=await this.client.request("/api/precreate",{method:"POST",isFormData:!0,body:u});if(f.errno!==0)throw new Error(`TeraBox precreate failed (errno: ${f.errno})`);if(f.return_type===2)return;let h=`https://${l}/rest/2.0/pcs/superfile2?method=upload&path=${encodeURIComponent(n)}&uploadid=${encodeURIComponent(f.uploadid)}&partseq=0`,g=new FormData;g.append("file",new Blob([new Uint8Array(i)],{type:"application/octet-stream"}),o);let p=await fetch(h,{method:"POST",headers:{Cookie:this.addition.cookie,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox"},body:g});if(!p.ok)throw new Error(`TeraBox upload chunk failed: ${p.statusText}`);let I={path:n,size:String(i.length),uploadid:f.uploadid,target_path:s,block_list:JSON.stringify([d]),local_mtime:String(Math.floor(Date.now()/1e3))};await this.client.request("/api/create",{method:"POST",isFormData:!0,params:{isdir:"0",rtype:"1"},body:I})}}});var im,g4=j(()=>{"use strict";im=class{addition;constructor(e){this.addition=e}async request(e,t={}){let{method:i="GET",params:n,body:s}=t,o=e;if(n&&Object.keys(n).length>0){let u=new URLSearchParams(n).toString();o+=(o.includes("?")?"&":"?")+u}let a={Authorization:`Bearer ${this.addition.access_token}`,Accept:"application/json"};s&&typeof s=="object"&&!(s instanceof Uint8Array)&&(a["Content-Type"]="application/json");let c=await fetch(o,{method:i,headers:a,body:s&&typeof s=="object"&&!(s instanceof Uint8Array)?JSON.stringify(s):s}),l=await c.text(),d={};try{d=JSON.parse(l)}catch{d=l}if(d&&typeof d=="object"&&d.status&&d.status!=="SUCCESS")throw new Error(`MediaTrack API Error: ${d.message||JSON.stringify(d)}`);if(!c.ok)throw new Error(`MediaTrack request failed (${c.status}): ${l}`);return d}async init(){await this.request("https://kayle.api.mediatrack.cn/users",{method:"GET"})}async getFiles(e){let t=[],i=1,n="";for(this.addition.order_by&&(n=(this.addition.order_desc?"-":"")+this.addition.order_by);;){let s={page:String(i),size:"50"};n&&(s.sort=n);let a=(await this.request(`https://jayce.api.mediatrack.cn/v4/assets/${encodeURIComponent(e)}/children`,{method:"GET",params:s})).data?.assets||[];if(a.length===0)break;t.push(...a),i++}return t}async getDownloadUrl(e){let t=this.addition.project_id||"",i=`https://kayn.api.mediatrack.cn/v1/download_token/asset?asset_id=${encodeURIComponent(e)}&source_type=project&password=&source_id=${encodeURIComponent(t)}`,s=(await this.request(i,{method:"GET"}))?.data?.token;if(!s)throw new Error(`Failed to get download token for asset ${e}`);let o=`https://kayn.api.mediatrack.cn/v1/download/redirect?token=${encodeURIComponent(s)}`;return(await fetch(o,{method:"GET",redirect:"manual"})).headers.get("location")||o}}});var nm,p4=j(()=>{"use strict";Be();He();g4();nm=class{addition;client;rootId="";idCache=new Map;constructor(e){this.addition=e,this.rootId=e.root_folder_id||"",this.client=new im(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async resolveParentId(e){let t=this.cleanPath(e);if(!t)return this.rootId;if(this.idCache.has(t))return this.idCache.get(t);let i=t.split("/").filter(Boolean),n=this.rootId,s="";for(let o of i){if(s+="/"+o,this.idCache.has(s)){n=this.idCache.get(s);continue}let c=(await this.client.getFiles(n)).find(l=>l.title===o);if(!c)throw new Error(`Path not found: ${s}`);n=c.id,this.idCache.set(s,n)}return n}async list(e,t){let i=await this.resolveParentId(t),n=await this.client.getFiles(i),s=this.cleanPath(t),o=n.map(a=>{let c=!a.file,l=s?`${s}/${a.title}`:`/${a.title}`;this.idCache.set(l,a.id);let d="";return a.file&&a.file.cover&&(d="https://nano.mtres.cn/"+a.file.cover),{name:a.title,size:parseInt(a.size||"0",10)||0,is_dir:c,created:a.created_at,modified:a.updated_at||new Date().toISOString(),sign:a.id,type:X(a.title,c),thumb:d,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_desc?"desc":"asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.rootId,type:1,raw_url:""};let s=i.split("/").slice(0,-1).join("/"),o=await this.resolveParentId(s),c=(await this.client.getFiles(o)).find(f=>f.title===n);if(!c)return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""};let l=!c.file,d="";if(!l)try{d=await this.client.getDownloadUrl(c.id)}catch(f){console.warn("[MediaTrack] get download URL failed:",f)}let u="";return c.file&&c.file.cover&&(u="https://nano.mtres.cn/"+c.file.cover),{name:c.title,size:parseInt(c.size||"0",10)||0,is_dir:l,created:c.created_at,modified:c.updated_at||new Date().toISOString(),sign:c.id,type:X(c.title,l),thumb:u,raw_url:d}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/"),s=i.split("/").pop()||"",o=await this.resolveParentId(n);await this.client.request(`https://jayce.api.mediatrack.cn/v3/assets/${encodeURIComponent(o)}/children`,{method:"POST",body:{type:1,title:s}})}async rename(e,t,i){let n=await this.resolveParentId(t);await this.client.request(`https://jayce.api.mediatrack.cn/v3/assets/${encodeURIComponent(n)}`,{method:"PUT",body:{title:i}});let s=this.cleanPath(t);this.idCache.delete(s)}async remove(e,t,i){let n=await this.resolveParentId(t),s=await this.client.getFiles(n),o=[];for(let c of i){let l=s.find(d=>d.title===c);l&&o.push(l.id)}if(o.length===0)return;await this.client.request("https://jayce.api.mediatrack.cn/v4/assets/batch/delete",{method:"DELETE",body:{origin_id:n,ids:o}});let a=this.cleanPath(t);for(let c of i)this.idCache.delete(a?`${a}/${c}`:`/${c}`)}async move(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.client.getFiles(o),l=[];for(let d of i){let u=c.find(f=>f.title===d);u&&l.push(u.id)}l.length!==0&&await this.client.request("https://jayce.api.mediatrack.cn/v4/assets/batch/move",{method:"POST",body:{parent_id:a,ids:l}})}async copy(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.client.getFiles(o),l=[];for(let d of i){let u=c.find(f=>f.title===d);u&&l.push(u.id)}l.length!==0&&await this.client.request("https://jayce.api.mediatrack.cn/v4/assets/batch/clone",{method:"POST",body:{parent_id:a,ids:l}})}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/"),o=n.split("/").pop()||"upload",a=await this.resolveParentId(s),l=`assets/${Math.random().toString(36).slice(2)}`,u=(await this.client.request("https://jayce.api.mediatrack.cn/v3/storage/tokens/asset",{method:"GET",params:{src:l}})).data?.url;u&&await fetch(u,{method:"PUT",headers:{"Content-Length":String(i.length)},body:new Uint8Array(i)}),await this.client.request(`https://jayce.api.mediatrack.cn/v3/assets/${encodeURIComponent(a)}/children`,{method:"POST",body:{category:0,description:o,mime:"application/octet-stream",size:String(i.length),src:l,title:o,type:0}})}}});var sm,m4=j(()=>{"use strict";Be();He();sm=class{addition;pathPairs=[];rootOrder=[];pathMap=new Map;constructor(e){this.addition=e,this.parsePaths()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}parsePaths(){let t=(this.addition.paths||"").split(` -`).map(i=>i.trim()).filter(Boolean);this.pathPairs=[],this.rootOrder=[],this.pathMap.clear();for(let i of t){let n="/",s=i,o=i.indexOf(":");o>0&&(n=this.cleanPath(i.slice(0,o)),s=i.slice(o+1).trim()),s=this.cleanPath(s),this.pathPairs.push({aliasSubPath:n,targetPath:s}),this.pathMap.has(n)||(this.rootOrder.push(n),this.pathMap.set(n,[])),this.pathMap.get(n).push(s)}}async init(){this.parsePaths()}getTargetsForPath(e){let t=this.cleanPath(e),i=[];if(this.rootOrder.length===1&&this.rootOrder[0]==="/"){let n=this.pathMap.get("/")||[];for(let s of n){let o=t==="/"?s:`${s}${t}`;i.push({targetFullPath:this.cleanPath(o),subPath:t})}return i}for(let[n,s]of this.pathMap.entries())if(n===t)for(let o of s)i.push({targetFullPath:o,subPath:"/"});else if(t.startsWith(n==="/"?"/":`${n}/`)){let o=t.slice(n==="/"?0:n.length);for(let a of s){let c=o==="/"?a:`${a}${o}`;i.push({targetFullPath:this.cleanPath(c),subPath:o})}}return i}async list(e,t){let i=this.cleanPath(t),{listItems:n}=await Promise.resolve().then(()=>(Yt(),qi));if(i==="/"&&this.rootOrder.length>1){let c=[];for(let l of this.rootOrder){let d=l.replace(/^\//,"").split("/")[0]||l;c.some(u=>u.name===d)||c.push({name:d,size:0,is_dir:!0,modified:new Date().toISOString(),sign:l,type:1,raw_url:""})}return de(c,this.addition.order_by,this.addition.order_direction)}let s=this.getTargetsForPath(t);if(s.length===0)return[];let o=new Map;for(let c of s)try{let l=await n(c.targetFullPath);for(let d of l.content)o.has(d.name)||o.set(d.name,d)}catch(l){console.warn(`[Alias] listing target ${c.targetFullPath} warning:`,l)}let a=Array.from(o.values());return de(a,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/"&&this.rootOrder.length>1)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"/",type:1,raw_url:""};let s=this.getTargetsForPath(t);if(s.length===0)return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""};let{getItem:o}=await Promise.resolve().then(()=>(Yt(),qi));for(let a of s)try{let c=await o(a.targetFullPath);if(c?.item)return{...c.item,raw_url:c.item.raw_url||c.rawUrl}}catch{}return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(e,t){let i=this.getTargetsForPath(t);if(i.length===0)throw new Error(`[Alias] no target found for path ${t}`);let{makeDirectory:n}=await Promise.resolve().then(()=>(Yt(),qi));await n(i[0].targetFullPath)}async rename(e,t,i){let n=this.getTargetsForPath(t);if(n.length===0)throw new Error(`[Alias] no target found for path ${t}`);let{renameItem:s}=await Promise.resolve().then(()=>(Yt(),qi));await s(n[0].targetFullPath,i)}async remove(e,t,i){let n=this.getTargetsForPath(t);if(n.length===0)return;let{removeItems:s}=await Promise.resolve().then(()=>(Yt(),qi));await s(n[0].targetFullPath,i)}async move(e,t,i,n,s){let o=this.getTargetsForPath(n),a=this.getTargetsForPath(s);if(o.length===0||a.length===0)throw new Error("[Alias] cannot resolve source or destination path");let{moveItems:c}=await Promise.resolve().then(()=>(Yt(),qi));await c(o[0].targetFullPath,a[0].targetFullPath,i)}async copy(e,t,i,n,s){let o=this.getTargetsForPath(n),a=this.getTargetsForPath(s);if(o.length===0||a.length===0)throw new Error("[Alias] cannot resolve source or destination path");let{copyItems:c}=await Promise.resolve().then(()=>(Yt(),qi));await c(o[0].targetFullPath,a[0].targetFullPath,i)}async put(e,t,i){let n=this.getTargetsForPath(t);if(n.length===0)throw new Error(`[Alias] no target found for upload path ${t}`);let{putItem:s}=await Promise.resolve().then(()=>(Yt(),qi));await s(n[0].targetFullPath,i)}}});var om,y4=j(()=>{"use strict";om=class{addition;onTokenRefreshed;base="https://api.dropboxapi.com";contentBase="https://content.dropboxapi.com";constructor(e,t){this.addition=e,this.onTokenRefreshed=t}async refreshToken(){if(this.addition.use_online_api&&this.addition.api_url_address){let e=new URL(this.addition.api_url_address);e.searchParams.set("refresh_ui",this.addition.refresh_token),e.searchParams.set("server_use","true"),e.searchParams.set("driver_txt","dropboxs_go");let t=await fetch(e.toString());if(!t.ok)throw new Error(`Failed to refresh token: HTTP ${t.status}`);let i=await t.json();if(!i.access_token)throw new Error(i.text||"Empty token returned from renew API");this.addition.access_token=i.access_token,i.refresh_token&&(this.addition.refresh_token=i.refresh_token)}else{let e=`${this.base}/oauth2/token`,t=new URLSearchParams({grant_type:"refresh_token",refresh_token:this.addition.refresh_token,client_id:this.addition.client_id||"",client_secret:this.addition.client_secret||""}),i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t.toString()});if(!i.ok){let s=await i.text();throw new Error(`Failed to refresh token: HTTP ${i.status} - ${s}`)}let n=await i.json();this.addition.access_token=n.access_token,n.refresh_token&&(this.addition.refresh_token=n.refresh_token)}this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.addition.access_token||"",refreshToken:this.addition.refresh_token||""})}async request(e,t={},i=!0){this.addition.access_token||await this.refreshToken();let s=`${t.isContentApi?this.contentBase:this.base}${e}`,o={Authorization:`Bearer ${this.addition.access_token}`,...t.customHeaders};this.addition.root_namespace_id&&(o["Dropbox-API-Path-Root"]=JSON.stringify({".tag":"root",root:this.addition.root_namespace_id}));let a;t.body!==void 0&&(typeof t.body=="object"&&!(t.body instanceof Uint8Array)&&!(t.body instanceof ArrayBuffer)&&!(t.body instanceof ReadableStream)?(o["Content-Type"]="application/json",a=JSON.stringify(t.body)):a=t.body);let c=await fetch(s,{method:t.method||"POST",headers:o,body:a});if(!c.ok){let d=await c.text(),u=c.status===401||d.includes("expired_access_token")||d.includes("invalid_access_token");if(i&&u)return await this.refreshToken(),this.request(e,t,!1);throw new Error(`Dropbox API error (${c.status}): ${d}`)}return(c.headers.get("content-type")||"").includes("application/json")?await c.json():await c.text()}async init(){if(!this.addition.access_token&&this.addition.refresh_token&&await this.refreshToken(),!this.addition.root_namespace_id)try{let e=await this.getCurrentAccount();e.root_info?.root_namespace_id&&(this.addition.root_namespace_id=e.root_info.root_namespace_id)}catch(e){console.warn("[Dropbox] failed to get root namespace ID:",e)}}async getCurrentAccount(){return this.request("/2/users/get_current_account",{method:"POST",body:null})}async getSpaceUsage(){return this.request("/2/users/get_space_usage",{method:"POST",body:null})}async getFiles(e){let t=e==="/"||e===""?"":e,i=await this.request("/2/files/list_folder",{method:"POST",body:{path:t,recursive:!1,include_deleted:!1,include_has_explicit_shared_members:!1,include_mounted_folders:!0,include_non_downloadable_files:!1,limit:2e3}}),n=[...i.entries];for(;i.has_more;)i=await this.request("/2/files/list_folder/continue",{method:"POST",body:{cursor:i.cursor}}),n.push(...i.entries);return n}async getTemporaryLink(e){return(await this.request("/2/files/get_temporary_link",{method:"POST",body:{path:e}})).link}async createFolder(e){await this.request("/2/files/create_folder_v2",{method:"POST",body:{path:e,autorename:!1}})}async move(e,t){await this.request("/2/files/move_v2",{method:"POST",body:{from_path:e,to_path:t,autorename:!1,allow_ownership_transfer:!1,allow_shared_folder:!1}})}async copy(e,t){await this.request("/2/files/copy_v2",{method:"POST",body:{from_path:e,to_path:t,autorename:!1,allow_ownership_transfer:!1,allow_shared_folder:!1}})}async delete(e){await this.request("/2/files/delete_v2",{method:"POST",body:{path:e}})}}});var am,I4=j(()=>{"use strict";Be();He();y4();am=class{addition;client;constructor(e,t){this.addition=e,this.client=new om(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async list(e,t){let i=this.cleanPath(t),s=(await this.client.getFiles(i)).map(o=>{let a=o[".tag"]==="folder",c=o.path_display||o.path_lower||`/${o.name}`;return{name:o.name,size:o.size||0,is_dir:a,modified:o.server_modified||o.client_modified||new Date().toISOString(),sign:o.id||c,type:X(o.name,a),raw_url:""}});return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"/",type:1,raw_url:""};try{let s=await this.client.getTemporaryLink(i);return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:s}}catch{return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:i,type:1,raw_url:""}}}async link(e,t){let i=this.cleanPath(t);return{url:await this.client.getTemporaryLink(i)}}async mkdir(e,t){let i=this.cleanPath(t);await this.client.createFolder(i)}async rename(e,t,i){let n=this.cleanPath(t),s=n.substring(0,n.lastIndexOf("/")),o=s?`${s}/${i}`:`/${i}`;await this.client.move(n,o)}async remove(e,t,i){let n=this.cleanPath(t);for(let s of i){let o=n===""?`/${s}`:`${n}/${s}`;await this.client.delete(o)}}async move(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o===""?`/${c}`:`${o}/${c}`,d=a===""?`/${c}`:`${a}/${c}`;await this.client.move(l,d)}}async copy(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o===""?`/${c}`:`${o}/${c}`,d=a===""?`/${c}`:`${a}/${c}`;await this.client.copy(l,d)}}async put(e,t,i){let n=this.cleanPath(t);await this.client.request("/2/files/upload",{method:"POST",isContentApi:!0,customHeaders:{"Dropbox-API-Arg":JSON.stringify({path:n,mode:"overwrite",autorename:!1,mute:!1,strict_conflict:!1}),"Content-Type":"application/octet-stream"},body:i})}async getDetails(){try{let e=await this.client.getSpaceUsage();return{total_space:e.allocation?.allocated||0,used_space:e.used||0}}catch{return{}}}}});var sE,w4,cm,x4=j(()=>{"use strict";sE="https://365.kdocs.cn",w4="https://drive.wps.cn",cm=class{addition;loginState;constructor(e){this.addition=e}isPersonal(){return this.loginState?.is_company_account!==void 0?!this.loginState.is_company_account:(this.addition.mode||"Personal")==="Personal"}driveHost(){return this.isPersonal()?w4:sE}drivePrefix(){return this.isPersonal()?"":"/3rd/drive"}driveUrl(e){return`${this.driveHost()}${this.drivePrefix()}${e}`}getUA(){return this.addition.custom_ua||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}async request(e,t={}){let i=new URL(e);if(t.params)for(let[c,l]of Object.entries(t.params))i.searchParams.set(c,l);let n={Cookie:this.addition.cookie,Accept:"application/json","User-Agent":this.getUA(),Origin:this.driveHost(),...t.headers},s;t.body!==void 0&&(typeof t.body=="object"?(n["Content-Type"]="application/json",s=JSON.stringify(t.body)):s=t.body);let o=await fetch(i.toString(),{method:t.method||"GET",headers:n,body:s});if(!o.ok){let c=await o.text();throw new Error(`WPS API error (${o.status}): ${c}`)}if((o.headers.get("content-type")||"").includes("application/json")){let c=await o.json();if(c.result&&c.result!=="ok"&&c.result!=="success")throw new Error(`WPS API error: ${c.result} - ${c.msg||""}`);return c}return await o.text()}async init(){if(!this.addition.cookie)throw new Error("WPS cookie is required");let e=await this.request("https://account.kdocs.cn/api/v3/islogin",{method:"GET"});this.loginState=e}async getGroups(){if(this.isPersonal())return((await this.request(this.driveUrl("/api/v3/groups"))).groups||[]).map(s=>({group_id:s.id,id:s.id,name:s.name}));let e=this.loginState?.companyid||0,t=`${sE}/3rd/plus/groups/v1/companies/${e}/users/self/groups/private`;return(await this.request(t)).groups||[]}async getFiles(e,t){let i=[],n=0;for(let s=0;s<50;s++){let o=this.driveUrl(`/api/v5/groups/${e}/files`),a=await this.request(o,{params:{parentid:String(t),offset:String(n)}});if(a.files&&a.files.length>0&&i.push(...a.files),a.next_offset===-1||a.next_offset===void 0)break;n=a.next_offset}return i}async getDownloadUrl(e,t){let i=this.driveUrl(`/api/v5/groups/${e}/files/${t}/download?support_checksums=sha1`),n=await this.request(i);if(!n.url)throw new Error("Empty download url received from WPS");return n.url}async createFolder(e,t,i){await this.request(this.driveUrl("/api/v5/files/folder"),{method:"POST",body:{groupid:e,parentid:t,name:i}})}async rename(e,t,i){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/${t}`),{method:"PUT",body:{fname:i}})}async move(e,t,i,n){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/batch/move`),{method:"POST",body:{fileids:[t],target_groupid:i,target_parentid:n}})}async copy(e,t,i,n){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/batch/copy`),{method:"POST",body:{fileids:[t],groupid:e,target_groupid:i,target_parentid:n,duplicated_name_model:1}})}async delete(e,t){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/batch/delete`),{method:"POST",body:{fileids:[t]}})}async getStorageDetails(){if(this.isPersonal()){let s=`${w4}/api/v3/spaces`,o=await this.request(s);return{total:o.total,used:o.used}}let e=this.loginState?.companyid||0,t=`${sE}/3rd/plussvr/compose/v1/u/companies/batch/service-space?comp_ids=${e}`,n=((await this.request(t)).info||[]).find(s=>s.id===e);return n?{total:n.space_total,used:n.space_used}:{}}}});var lm,C4=j(()=>{"use strict";Be();He();x4();lm=class{addition;client;constructor(e){this.addition=e,this.client=new cm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolvePath(e){let t=this.cleanPath(e);if(t==="/")return{kind:"root",groupId:0,fileId:0,name:"root",isDir:!0,size:0,modified:new Date().toISOString()};let i=t.split("/").filter(Boolean),s=(await this.client.getGroups()).find(l=>l.name===i[0]);if(!s)return null;let o=s.group_id||s.id||0;if(i.length===1)return{kind:"group",groupId:o,fileId:0,name:s.name,isDir:!0,size:0,modified:new Date().toISOString()};let a=0,c=null;for(let l=1;l<i.length;l++){let d=i[l],f=(await this.client.getFiles(o,a)).find(g=>g.fname===d);if(!f)return null;let h=f.ftype==="folder";c={kind:h?"folder":"file",groupId:o,fileId:f.id,name:f.fname,isDir:h,size:f.fsize||0,modified:f.mtime?new Date(f.mtime*1e3).toISOString():new Date().toISOString()},a=f.id}return c}async list(e,t){let i=this.cleanPath(t),n=await this.resolvePath(i);if(!n||!n.isDir)return[];if(n.kind==="root"){let c=(await this.client.getGroups()).map(l=>({name:l.name,size:0,is_dir:!0,modified:new Date().toISOString(),sign:String(l.group_id||l.id),type:1,raw_url:""}));return de(c,this.addition.order_by,this.addition.order_direction)}let o=(await this.client.getFiles(n.groupId,n.fileId)).map(a=>{let c=a.ftype==="folder";return{name:a.fname,size:a.fsize||0,is_dir:c,modified:a.mtime?new Date(a.mtime*1e3).toISOString():new Date().toISOString(),sign:String(a.id),type:X(a.fname,c),raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=await this.resolvePath(i);if(!n)throw new Error(`Path not found: ${i}`);let s="";if(!n.isDir&&n.kind==="file")try{s=await this.client.getDownloadUrl(n.groupId,n.fileId)}catch(o){console.warn("[WPS] failed to get download url in get():",o)}return{name:n.name,size:n.size,is_dir:n.isDir,modified:n.modified,sign:String(n.fileId||n.groupId),type:X(n.name,n.isDir),raw_url:s}}async link(e,t){let i=this.cleanPath(t),n=await this.resolvePath(i);if(!n||n.isDir||n.kind!=="file")throw new Error(`Cannot get link for non-file: ${i}`);return{url:await this.client.getDownloadUrl(n.groupId,n.fileId),headers:{"User-Agent":this.client.getUA(),Referer:this.client.driveHost()}}}async mkdir(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolvePath(n);if(!o||!o.isDir||o.kind==="root")throw new Error("Cannot create folder directly in root (groups are read-only)");await this.client.createFolder(o.groupId,o.fileId,s)}async move(e,t,i,n,s){let o=await this.resolvePath(this.cleanPath(s));if(!o||!o.isDir||o.kind==="root")throw new Error("Target destination directory not found");for(let a of i){let c=this.cleanPath(n)==="/"?`/${a}`:`${this.cleanPath(n)}/${a}`,l=await this.resolvePath(c);l&&await this.client.move(l.groupId,l.fileId,o.groupId,o.fileId)}}async rename(e,t,i){let n=await this.resolvePath(this.cleanPath(t));if(!n)throw new Error("Source node not found");await this.client.rename(n.groupId,n.fileId,i)}async copy(e,t,i,n,s){let o=await this.resolvePath(this.cleanPath(s));if(!o||!o.isDir||o.kind==="root")throw new Error("Target destination directory not found");for(let a of i){let c=this.cleanPath(n)==="/"?`/${a}`:`${this.cleanPath(n)}/${a}`,l=await this.resolvePath(c);l&&await this.client.copy(l.groupId,l.fileId,o.groupId,o.fileId)}}async remove(e,t,i){for(let n of i){let s=this.cleanPath(t)==="/"?`/${n}`:`${this.cleanPath(t)}/${n}`,o=await this.resolvePath(s);o&&o.kind!=="root"&&o.kind!=="group"&&await this.client.delete(o.groupId,o.fileId)}}async put(e,t,i){let n=this.cleanPath(t),s=n.substring(0,n.lastIndexOf("/"))||"/",o=n.substring(n.lastIndexOf("/")+1),a=await this.resolvePath(s);if(!a||!a.isDir)throw new Error(`Parent directory not found: ${s}`);console.warn(`[WPS] direct small upload for ${o}`)}async getDetails(){try{let e=await this.client.getStorageDetails();return{total_space:e.total,used_space:e.used}}catch{return{}}}}});function OJ(r){let e=encodeURIComponent(r);return e=e.replace(/\+/g,"%20"),e=e.replace(/!/g,"%21"),e=e.replace(/'/g,"%27"),e=e.replace(/\(/g,"%28"),e=e.replace(/\)/g,"%29"),e=e.replace(/\*/g,"%2A"),e}function oE(r){return pc.default.MD5(r).toString(pc.default.enc.Hex)}function MJ(r,e,t){let n=OJ(r).split("").sort().join(""),s=pc.default.enc.Utf8.parse(n),o=pc.default.enc.Base64.stringify(s),a=oE(o)+oE(`${e}:${t}`);return oE(a).toUpperCase()}function LJ(r){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let i=0;i<r;i++)t+=e.charAt(Math.floor(Math.random()*e.length));return t}function HJ(r){let e=t=>String(t).padStart(2,"0");return`${r.getFullYear()}-${e(r.getMonth()+1)}-${e(r.getDate())} ${e(r.getHours())}:${e(r.getMinutes())}:${e(r.getSeconds())}`}var pc,dm,E4=j(()=>{"use strict";pc=Qr(fc(),1);dm=class{addition;personalHost="https://yun.139.com";familyHost="https://yun.139.com";groupHost="https://yun.139.com";account="";constructor(e){this.addition=e,this.extractAccount()}extractAccount(){if(this.addition.authorization)try{let e=this.getAuthString(),i=pc.default.enc.Base64.parse(e).toString(pc.default.enc.Utf8).split(":");i.length>=2&&(this.account=i[1])}catch{}}getAuthString(){let e=(this.addition.authorization||"").trim();return e.startsWith("Basic ")&&(e=e.slice(6).trim()),e}isPersonalNew(){return!this.addition.type||this.addition.type==="personal_new"}isFamily(){return this.addition.type==="family"}isGroup(){return this.addition.type==="group"}getHost(){return this.isFamily()?this.familyHost:this.isGroup()?this.groupHost:this.personalHost}async request(e,t){let i=HJ(new Date),n=LJ(16),s=JSON.stringify(t||{}),o=MJ(s,i,n),a;e.startsWith("http://")||e.startsWith("https://")?a=e:e.startsWith("/orchestration/")?a=`https://yun.139.com${e}`:a=`${this.getHost()}${e}`;let c=this.isFamily()?"2":"1",l={Accept:"application/json, text/plain, */*","Content-Type":"application/json","CMS-DEVICE":"default",Authorization:`Basic ${this.getAuthString()}`,Caller:"web","Mcloud-Channel":"1000101","Mcloud-Client":"10701","Mcloud-Route":"001","mcloud-channel":"1000101","mcloud-client":"10701","mcloud-sign":`${i},${n},${o}`,"mcloud-version":"7.14.0",Origin:"https://yun.139.com",Referer:"https://yun.139.com/w/","x-DeviceInfo":"||9|7.14.0|chrome|120.0.0.0|||windows 10||zh-CN|||","x-huawei-channelSrc":"10000034","x-inner-ntwk":"2","x-m4c-caller":"PC","x-m4c-src":"10002","x-SvcType":c,"Inner-Hcy-Router-Https":"1","X-Yun-Api-Version":"v1","X-Yun-App-Channel":"10000034","X-Yun-Channel-Source":"10000034","X-Yun-Client-Info":"||9|7.14.0|chrome|120.0.0.0|||windows 10||zh-CN|||dW5kZWZpbmVk||","X-Yun-Module-Type":"100","X-Yun-Svc-Type":"1"},d=await fetch(a,{method:"POST",headers:l,body:s});if(!d.ok){let f=await d.text();throw new Error(`139 Cloud API error (${d.status}): ${f}`)}let u=await d.json();if(u.success===!1&&u.message)throw new Error(`139 Cloud API error: ${u.message}`);return u}async init(){if(!this.addition.authorization)throw new Error("139 Cloud Authorization is required");try{let e=await this.request("https://user-njs.yun.139.com/user/route/qryRoutePolicy",{userInfo:{userType:1,accountType:1,accountName:this.account},modAddrType:1});if(e.data?.routePolicyList)for(let t of e.data.routePolicyList)t.modName==="personal"&&t.httpsUrl?this.personalHost=t.httpsUrl:t.modName==="group"&&t.httpsUrl?this.groupHost=t.httpsUrl:t.modName==="family"&&t.httpsUrl&&(this.familyHost=t.httpsUrl)}catch(e){console.warn("[139] queryRoutePolicy warning, fallback to default host:",e)}}async listFiles(e=""){if(this.isPersonalNew()){let t="",i=[],n=e||this.addition.root_folder_id||"/";do{let a=await this.request("/file/list",{parentFileId:n,pageInfo:{pageCursor:t,pageSize:100},orderBy:"updated_at",orderDirection:"DESC",imageThumbnailStyleList:["Small","Large"]}),c=a.data?.items||[];i.push(...c),t=a.data?.nextPageCursor||""}while(t);let s=i.filter(a=>a.type==="folder").map(a=>({catalogID:a.fileId,catalogName:a.name,updateTime:a.updatedAt}));return{files:i.filter(a=>a.type!=="folder").map(a=>({contentID:a.fileId,contentName:a.name,contentSize:a.size,updateTime:a.updatedAt,createTime:a.createdAt,thumbnailURL:a.thumbnailUrls?.[0]?.url})),folders:s}}return this.getDisk(e)}async getDisk(e=""){let i=(await this.request("/orchestration/personalCloud/catalog/v1.0/getDisk",{catalogID:e||"",sortDirection:1,filterType:0,catalogSortType:0,contentSortType:0,startNumber:1,endNumber:5e3,commonAccountInfo:{account:this.account,accountType:1}})).data?.getDiskResult;return{files:i?.fileList||[],folders:i?.catalogList||[]}}async getDownloadUrl(e){if(this.isPersonalNew()){let n=await this.request("/file/getDownloadUrl",{fileId:e}),s=(n.data?.cdnSwitch?n.data?.cdnUrl:null)||n.data?.url||n.data?.cdnUrl;if(!s)throw new Error("Empty download URL received from 139 Cloud");return s}let t=await this.request("/orchestration/personalCloud/uploadAndDownload/v1.0/downloadRequest",{contentID:e,commonAccountInfo:{account:this.account,accountType:1}}),i=t.data?.downloadURL||t.data?.url;if(!i)throw new Error("Empty download URL received from 139 Cloud");return i}async createCatalog(e,t){return this.isPersonalNew()?(await this.request("/file/create",{parentFileId:e||this.addition.root_folder_id||"/",name:t,description:"",type:"folder",fileRenameMode:"force_rename"})).data?.fileId||"":(await this.request("/orchestration/personalCloud/catalog/v1.0/createCatalog",{parentCatalogID:e||"",catalogName:t,commonAccountInfo:{account:this.account,accountType:1}})).data?.catalogID||""}async deleteFile(e){if(this.isPersonalNew()){await this.request("/file/delete",{fileIds:[e]});return}await this.request("/orchestration/personalCloud/catalog/v1.0/deleteContent",{contentID:e,commonAccountInfo:{account:this.account,accountType:1}})}async deleteCatalog(e){if(this.isPersonalNew()){await this.request("/file/delete",{fileIds:[e]});return}await this.request("/orchestration/personalCloud/catalog/v1.0/deleteCatalog",{catalogID:e,commonAccountInfo:{account:this.account,accountType:1}})}async rename(e,t){if(this.isPersonalNew()){await this.request("/file/update",{fileId:e,name:t,description:""});return}await this.request("/orchestration/personalCloud/catalog/v1.0/updateCatalogInfo",{catalogID:e,catalogName:t,commonAccountInfo:{account:this.account,accountType:1}})}async getStorageDetails(){try{let e=await this.request("/orchestration/personalCloud/catalog/v1.0/getUserDomainInfo",{commonAccountInfo:{account:this.account,accountType:1}});return{total:e.data?.totalSize,used:e.data?.usedSize}}catch{return{}}}}});var um,B4=j(()=>{"use strict";Be();He();E4();um=class{addition;client;constructor(e){this.addition=e,this.client=new dm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}getRootId(){return this.addition.root_folder_id?this.addition.root_folder_id:this.client.isPersonalNew()?"/":""}async resolveCatalogId(e){let t=this.cleanPath(e);if(t==="/")return this.getRootId();let i=t.split("/").filter(Boolean),n=this.getRootId();for(let s of i){let a=(await this.client.listFiles(n)).folders.find(c=>c.catalogName===s);if(a)n=a.catalogID;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveCatalogId(i),s=await this.client.listFiles(n),o=s.folders.map(l=>({name:l.catalogName,size:0,is_dir:!0,modified:l.updateTime||new Date().toISOString(),sign:l.catalogID,type:1,raw_url:""})),a=s.files.map(l=>{let d=typeof l.contentSize=="number"?l.contentSize:parseInt(String(l.contentSize||"0"),10),u=l.contentName||"file";return{name:u,size:isNaN(d)?0:d,is_dir:!1,modified:l.updateTime||l.createTime||new Date().toISOString(),sign:l.contentID||u,type:X(u,!1),thumb:l.thumbnailURL||l.bigThumbnailURL,raw_url:""}}),c=[...o,...a];return de(c,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveCatalogId(s),a=await this.client.listFiles(o),c=a.folders.find(d=>d.catalogName===n);if(c)return{name:c.catalogName,size:0,is_dir:!0,modified:c.updateTime||new Date().toISOString(),sign:c.catalogID,type:1,raw_url:""};let l=a.files.find(d=>d.contentName===n);if(l){let d=typeof l.contentSize=="number"?l.contentSize:parseInt(String(l.contentSize||"0"),10),u="";if(l.contentID)try{u=await this.client.getDownloadUrl(l.contentID)}catch(f){console.warn("[139] failed to get download url in get():",f)}return{name:l.contentName||n,size:isNaN(d)?0:d,is_dir:!1,modified:l.updateTime||l.createTime||new Date().toISOString(),sign:l.contentID||n,type:X(n,!1),thumb:l.thumbnailURL||l.bigThumbnailURL,raw_url:u}}throw new Error(`Item not found: ${i}`)}async link(e,t){let i=await this.get(e,t);if(i.is_dir)throw new Error(`Cannot get link for folder: ${t}`);return{url:await this.client.getDownloadUrl(i.sign),headers:{Referer:"https://yun.139.com/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}}}async mkdir(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveCatalogId(n);await this.client.createCatalog(o,s)}async rename(e,t,i){let n=await this.get(e,t);await this.client.rename(n.sign,i)}async remove(e,t,i){let n=this.cleanPath(t),s=await this.resolveCatalogId(n),o=await this.client.listFiles(s);for(let a of i){let c=o.folders.find(l=>l.catalogName===a);if(c)await this.client.deleteCatalog(c.catalogID);else{let l=o.files.find(d=>d.contentName===a);l&&l.contentID&&await this.client.deleteFile(l.contentID)}}}async move(e,t,i,n,s){console.warn(`[139] move from ${n} to ${s}`)}async copy(e,t,i,n,s){console.warn(`[139] copy from ${n} to ${s}`)}async put(e,t,i){console.warn(`[139] put for ${t}`)}async getDetails(){try{let e=await this.client.getStorageDetails();return{total_space:e.total,used_space:e.used}}catch{return{}}}}});function KJ(r){let e=r.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4!==0;)e+="=";return mc.default.enc.Base64.parse(e)}function GJ(r){return mc.default.enc.Base64.stringify(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function zJ(r){return mc.default.enc.Utf8.parse(r)}var mc,fm,b4=j(()=>{"use strict";mc=Qr(fc(),1);fm=class{addition;sid="";seq=Math.floor(Math.random()*268435456);masterKey=null;nodes=new Map;rootId="";constructor(e){this.addition=e}nextSeq(){return this.seq=(this.seq+1)%268435456,this.seq}async request(e){let i=`https://g.api.mega.co.nz/cs?id=${this.nextSeq()}`;this.sid&&(i+=`&sid=${this.sid}`);let n=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok)throw new Error(`Mega API HTTP error: ${n.status}`);let s=await n.json();if(typeof s=="number"&&s<0)throw new Error(`Mega API error code: ${s}`);return s}async init(){if(!this.addition.email||!this.addition.password)throw new Error("Mega email and password are required");let e=mc.default.enc.Base64.stringify(mc.default.enc.Utf8.parse(this.addition.email.toLowerCase())).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),i=(await this.request([{a:"us",user:this.addition.email.toLowerCase(),uh:e}]))[0];if(typeof i=="number"&&i<0)throw new Error(`Mega authentication failed: ${i}`);this.sid=i.sid||"",await this.fetchNodes()}async fetchNodes(){if(!this.sid)return;let t=(await this.request([{a:"f",c:1}]))[0];if(t?.f&&Array.isArray(t.f)){this.nodes.clear();for(let i of t.f){let n=i.t===1||i.t===2||i.t===3||i.t===4;i.t===2&&(this.rootId=i.h);let s="unnamed";if(i.a)try{let a=this.decryptAttributes(i.a,i.k);a?.n&&(s=a.n)}catch{s=i.h}let o={id:i.h,parent_id:i.p,name:s,size:i.s||0,is_dir:n,modified:i.ts?new Date(i.ts*1e3).toISOString():new Date().toISOString(),type:i.t,key:i.k};this.nodes.set(i.h,o)}}}decryptAttributes(e,t){try{let i=KJ(e),n=mc.default.enc.Utf8.stringify(i);if(n.startsWith("MEGA{")){let s=n.substring(4);return JSON.parse(s)}}catch{}return null}getChildren(e){let t=e||this.rootId,i=[];for(let n of this.nodes.values())n.parent_id===t&&i.push(n);return i}getNode(e){return this.nodes.get(e)}getRootId(){return this.rootId}async getDownloadLink(e){let i=(await this.request([{a:"g",g:1,n:e}]))[0];if(i?.g)return i.g;throw new Error(`Failed to get download URL for node ${e}`)}async createFolder(e,t){let i=t||this.rootId,n=JSON.stringify({n:e}),s=GJ(zJ(`MEGA${n}`)),o=await this.request([{a:"p",t:i,n:[{h:"xxxxxxxx",t:1,a:s,k:"dummy_key"}]}]);return await this.fetchNodes(),o[0]?.f?.[0]?.h||""}async deleteNode(e){await this.request([{a:"d",n:e}]),this.nodes.delete(e)}async moveNode(e,t){await this.request([{a:"m",n:e,t}]);let i=this.nodes.get(e);i&&(i.parent_id=t)}async getQuota(){let t=(await this.request([{a:"uq",strg:1}]))[0];return{total:t?.mstrg||0,used:t?.cstrg||0}}}});var Am,v4=j(()=>{"use strict";Be();He();b4();Am=class{addition;client;constructor(e){this.addition=e,this.client=new fm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}resolveNodeByPath(e){let t=this.cleanPath(e);if(t==="/")return{id:this.client.getRootId(),name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),type:2};let i=t.split("/").filter(Boolean),n=this.client.getRootId(),s=null;for(let o of i){let c=this.client.getChildren(n).find(l=>l.name===o);if(!c)return null;s=c,n=c.id}return s}async list(e,t){let i=this.cleanPath(t),n=this.resolveNodeByPath(i);if(!n||!n.is_dir)return[];let o=this.client.getChildren(n.id).map(a=>({name:a.name,size:a.size||0,is_dir:a.is_dir,modified:a.modified||new Date().toISOString(),sign:a.id,type:X(a.name,a.is_dir),raw_url:""}));return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=this.resolveNodeByPath(i);if(!n)throw new Error(`Node not found: ${i}`);let s="";if(!n.is_dir)try{s=await this.client.getDownloadLink(n.id)}catch(o){console.warn("[Mega] failed to get download link in get():",o)}return{name:n.name,size:n.size,is_dir:n.is_dir,modified:n.modified,sign:n.id,type:X(n.name,n.is_dir),raw_url:s}}async link(e,t){let i=this.cleanPath(t),n=this.resolveNodeByPath(i);if(!n||n.is_dir)throw new Error(`Cannot get link for non-file: ${i}`);return{url:await this.client.getDownloadLink(n.id)}}async mkdir(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=this.resolveNodeByPath(n);if(!o||!o.is_dir)throw new Error(`Parent folder not found: ${n}`);await this.client.createFolder(s,o.id)}async rename(e,t,i){if(!this.resolveNodeByPath(this.cleanPath(t)))throw new Error("Node not found");console.warn(`[Mega] rename ${t} to ${i}`)}async move(e,t,i,n,s){let o=this.resolveNodeByPath(this.cleanPath(s));if(!o||!o.is_dir)throw new Error("Destination folder not found");for(let a of i){let c=this.cleanPath(n)==="/"?`/${a}`:`${this.cleanPath(n)}/${a}`,l=this.resolveNodeByPath(c);l&&await this.client.moveNode(l.id,o.id)}}async copy(e,t,i,n,s){console.warn(`[Mega] copy not supported natively from ${n} to ${s}`)}async remove(e,t,i){for(let n of i){let s=this.cleanPath(t)==="/"?`/${n}`:`${this.cleanPath(t)}/${n}`,o=this.resolveNodeByPath(s);o&&await this.client.deleteNode(o.id)}}async put(e,t,i){console.warn(`[Mega] put for ${t}`)}async getDetails(){try{let e=await this.client.getQuota();return{total_space:e.total,used_space:e.used}}catch{return{}}}}});var hm,k4=j(()=>{"use strict";hm=class{addition;constructor(e){this.addition=e}async init(){if(!this.addition.share_code||!this.addition.receive_code)throw new Error("115 Share: share_code and receive_code are required")}async getFiles(e="0"){let t=this.addition.page_size||1e3,i=[],n=0,s=0;do{let o=new URL("https://webapi.115.com/share/snap");o.searchParams.set("share_code",this.addition.share_code),o.searchParams.set("receive_code",this.addition.receive_code),o.searchParams.set("cid",e||"0"),o.searchParams.set("limit",String(t)),o.searchParams.set("offset",String(n));let a={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://115.com/"};this.addition.cookie&&(a.Cookie=this.addition.cookie);let c=await fetch(o.toString(),{headers:a});if(!c.ok)throw new Error(`115 Share API error: HTTP ${c.status}`);let l=await c.json();if(!l.state)throw new Error(`115 Share API error: ${l.msg||"failed"}`);let d=l.data?.list||[];if(i.push(...d),s=l.data?.count||0,n+=d.length,d.length===0)break}while(n<s);return i}async getDownloadUrl(e){let t=new URL("https://proapi.115.com/app/share/downurl"),i=new URLSearchParams({share_code:this.addition.share_code,receive_code:this.addition.receive_code,file_id:e}),n={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36","Content-Type":"application/x-www-form-urlencoded"};this.addition.cookie&&(n.Cookie=this.addition.cookie);let s=await fetch(t.toString(),{method:"POST",headers:n,body:i.toString()});if(!s.ok)throw new Error(`115 Share download error: HTTP ${s.status}`);let o=await s.json(),a=o.data?.url?.url||o.data?.url;if(!a)throw new Error(o.msg||"Empty download URL received from 115 Share");return a}}});var gm,S4=j(()=>{"use strict";Be();He();k4();gm=class{addition;client;constructor(e){this.addition=e,this.client=new hm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveCid(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"0";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"0";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.is_file===0&&c.file_name===s);if(a&&a.category_id)n=a.category_id;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveCid(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.is_file===0,l=typeof a.file_size=="number"?a.file_size:parseInt(String(a.file_size||"0"),10),d=typeof a.user_utime=="number"?a.user_utime:parseInt(String(a.user_utime||"0"),10),u=a.file_name||"file";return{name:u,size:c||isNaN(l)?0:l,is_dir:c,modified:d>0?new Date(d*1e3).toISOString():new Date().toISOString(),sign:c?a.category_id||"":a.file_id||"",type:X(u,c),thumb:a.thumb_url,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"0",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveCid(s),c=(await this.client.getFiles(o)).find(h=>h.file_name===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.is_file===0,d=typeof c.file_size=="number"?c.file_size:parseInt(String(c.file_size||"0"),10),u=typeof c.user_utime=="number"?c.user_utime:parseInt(String(c.user_utime||"0"),10),f="";if(!l&&c.file_id)try{f=await this.client.getDownloadUrl(c.file_id)}catch(h){console.warn("[115Share] failed to get download url:",h)}return{name:c.file_name||n,size:l||isNaN(d)?0:d,is_dir:l,modified:u>0?new Date(u*1e3).toISOString():new Date().toISOString(),sign:l?c.category_id||"":c.file_id||"",type:X(c.file_name||n,l),thumb:c.thumb_url,raw_url:f}}async link(e,t){let i=await this.get(e,t);if(i.is_dir)throw new Error(`Cannot get link for folder: ${t}`);return{url:await this.client.getDownloadUrl(i.sign),headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",Referer:"https://115.com/"}}}async mkdir(e,t){throw new Error("115 Share is read-only")}async rename(e,t,i){throw new Error("115 Share is read-only")}async remove(e,t,i){throw new Error("115 Share is read-only")}async move(e,t,i,n,s){throw new Error("115 Share is read-only")}async copy(e,t,i,n,s){throw new Error("115 Share is read-only")}async put(e,t,i){throw new Error("115 Share is read-only")}}});function D4(r){let e=typeof r=="string"?new TextEncoder().encode(r):r,t=-1;for(let i=0;i<e.length;i++)t=t>>>8^JJ[(t^e[i])&255];return(t^-1)>>>0}function jJ(r,e="web",t="3"){let i=["a","d","e","f","g","h","l","m","y","i","j","n","o","p","k","q","r","s","t","u","b","c","v","w","s","z"],n=String(Math.round(1e7*Math.random())),s=new Date,o=String(Math.floor(s.getTime()/1e3)),a=h=>String(h).padStart(2,"0"),c=`${s.getFullYear()}${a(s.getMonth()+1)}${a(s.getDate())}${a(s.getHours())}${a(s.getMinutes())}`,l=[];for(let h=0;h<c.length;h++){let g=c.charCodeAt(h)-48;l.push(i[g]||"a")}let d=String(D4(l.join(""))),u=[o,n,r,e,t,d].join("|"),f=String(D4(u));return[d,[o,n,f].join("-")]}function $J(r){let e=new URL(r),[t,i]=jJ(e.pathname,"web","3");return e.searchParams.set(t,i),e.toString()}var JJ,pm,Q4=j(()=>{"use strict";JJ=(()=>{let r=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;r[e]=t}return r})();pm=class{addition;mainApi="https://yun.123pan.com/b/api";constructor(e){this.addition=e}async init(){if(!this.addition.sharekey)throw new Error("123Pan Share: sharekey is required")}async request(e,t={}){let i=new URL(e);if(t.params)for(let[l,d]of Object.entries(t.params))i.searchParams.set(l,d);let n=$J(i.toString()),s={Origin:"https://yun.123pan.com",Referer:"https://yun.123pan.com/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",Platform:"web","App-Version":"3"};this.addition.accesstoken&&(s.Authorization=`Bearer ${this.addition.accesstoken}`);let o;t.body&&(s["Content-Type"]="application/json",o=JSON.stringify(t.body));let a=await fetch(n,{method:t.method||"GET",headers:s,body:o});if(!a.ok)throw new Error(`123Pan Share API error: HTTP ${a.status}`);let c=await a.json();if(c.code!==0&&c.code!==200)throw new Error(c.message||`123Pan Share API error (${c.code})`);return c}async getFiles(e="0"){let t=[],i=1;for(;;){let n=await this.request(`${this.mainApi}/share/get`,{method:"GET",params:{limit:"100",next:"0",orderBy:"file_id",orderDirection:"desc",parentFileId:e||"0",Page:String(i),shareKey:this.addition.sharekey,SharePwd:this.addition.sharepassword||""}}),s=n.data?.InfoList||[];if(t.push(...s),i++,s.length===0||n.data?.Next==="-1"||n.data?.Next===-1)break}return t}async getDownloadUrl(e){let i=(await this.request(`${this.mainApi}/share/download/info`,{method:"POST",body:{shareKey:this.addition.sharekey,SharePwd:this.addition.sharepassword||"",etag:e.Etag||"",fileId:e.FileId,s3keyFlag:e.S3KeyFlag||"",size:e.Size}})).data?.DownloadURL||"";if(!i)throw new Error("Failed to obtain download URL from 123Pan Share");try{let s=new URL(i).searchParams.get("params");s&&(i=atob(s))}catch{}return i}}});var mm,_4=j(()=>{"use strict";Be();He();Q4();mm=class{addition;client;constructor(e){this.addition=e,this.client=new pm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveParentId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"0";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"0";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.Type===1&&c.FileName===s);if(a)n=String(a.FileId);else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveParentId(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.Type===1;return{name:a.FileName,size:c?0:a.Size||0,is_dir:c,modified:a.UpdateAt||a.CreateAt||new Date().toISOString(),sign:String(a.FileId),type:X(a.FileName,c),raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"0",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveParentId(s),c=(await this.client.getFiles(o)).find(u=>u.FileName===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.Type===1,d="";if(!l)try{d=await this.client.getDownloadUrl(c)}catch(u){console.warn("[123Share] failed to get download url in get():",u)}return{name:c.FileName,size:l?0:c.Size||0,is_dir:l,modified:c.UpdateAt||c.CreateAt||new Date().toISOString(),sign:String(c.FileId),type:X(c.FileName,l),raw_url:d}}async link(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveParentId(n),c=(await this.client.getFiles(o)).find(d=>d.FileName===s);if(!c||c.Type===1)throw new Error(`Cannot get link for: ${t}`);return{url:await this.client.getDownloadUrl(c),headers:{Referer:"https://yun.123pan.com/"}}}async mkdir(e,t){throw new Error("123Pan Share is read-only")}async rename(e,t,i){throw new Error("123Pan Share is read-only")}async remove(e,t,i){throw new Error("123Pan Share is read-only")}async move(e,t,i,n,s){throw new Error("123Pan Share is read-only")}async copy(e,t,i,n,s){throw new Error("123Pan Share is read-only")}async put(e,t,i){throw new Error("123Pan Share is read-only")}}});var ym,F4=j(()=>{"use strict";ym=class{addition;shareToken="";driveId="";constructor(e){this.addition=e}async getShareToken(){if(!this.addition.share_id)throw new Error("Aliyundrive Share: share_id is required");let e={share_id:this.addition.share_id};this.addition.share_pwd&&(e.share_pwd=this.addition.share_pwd);let t=await fetch("https://api.alipan.com/v2/share_link/get_share_token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Aliyundrive Share token error: HTTP ${t.status}`);let i=await t.json();if(i.code)throw new Error(i.message||`Aliyundrive Share error: ${i.code}`);return this.shareToken=i.share_token||"",this.shareToken}async init(){await this.getShareToken()}async getFiles(e="root"){this.shareToken||await this.getShareToken();let t=[],i="";do{let n={image_thumbnail_process:"image/resize,w_160/format,jpeg",image_url_process:"image/resize,w_1920/format,jpeg",limit:200,order_by:this.addition.order_by||"name",order_direction:this.addition.order_direction||"ASC",parent_file_id:e||"root",share_id:this.addition.share_id,video_thumbnail_process:"video/snapshot,t_1000,f_jpg,ar_auto,w_300",marker:i||void 0},s=await fetch("https://api.alipan.com/adrive/v3/file/list",{method:"POST",headers:{"Content-Type":"application/json","x-share-token":this.shareToken,"X-Canary":"client=web,app=share,version=v2.3.1"},body:JSON.stringify(n)});if(!s.ok)throw new Error(`Aliyundrive Share list error: HTTP ${s.status}`);let o=await s.json();if(o.code==="ShareLinkTokenInvalid"||o.code==="AccessTokenInvalid")return await this.getShareToken(),this.getFiles(e);if(o.code)throw new Error(o.message||`Aliyundrive list error (${o.code})`);let a=o.items||[];t.push(...a),i=o.next_marker||"",a.length>0&&!this.driveId&&a[0].drive_id&&(this.driveId=a[0].drive_id)}while(i);return t}async getDownloadUrl(e){this.shareToken||await this.getShareToken();let t={share_id:this.addition.share_id,file_id:e,drive_id:this.driveId||void 0,expire_sec:14400},i=await fetch("https://api.alipan.com/v2/file/get_share_link_download_url",{method:"POST",headers:{"Content-Type":"application/json","x-share-token":this.shareToken,"X-Canary":"client=web,app=share,version=v2.3.1"},body:JSON.stringify(t)});if(!i.ok)throw new Error(`Aliyundrive download URL error: HTTP ${i.status}`);let n=await i.json();if(n.code==="ShareLinkTokenInvalid")return await this.getShareToken(),this.getDownloadUrl(e);let s=n.download_url||n.url;if(!s)throw new Error("Failed to get download URL from Aliyundrive Share");return s}}});var Im,P4=j(()=>{"use strict";Be();He();F4();Im=class{addition;client;constructor(e){this.addition=e,this.client=new ym(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveFileId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"root";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"root";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.type==="folder"&&c.name===s);if(a)n=a.file_id;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveFileId(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.type==="folder";return{name:a.name,size:c?0:a.size||0,is_dir:c,modified:a.updated_at||a.created_at||new Date().toISOString(),sign:a.file_id,type:X(a.name,c),thumb:a.thumbnail,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"root",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveFileId(s),c=(await this.client.getFiles(o)).find(u=>u.name===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.type==="folder",d="";if(!l)try{d=await this.client.getDownloadUrl(c.file_id)}catch(u){console.warn("[AliyundriveShare] failed to get download url in get():",u)}return{name:c.name,size:l?0:c.size||0,is_dir:l,modified:c.updated_at||c.created_at||new Date().toISOString(),sign:c.file_id,type:X(c.name,l),thumb:c.thumbnail,raw_url:d}}async link(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveFileId(n),c=(await this.client.getFiles(o)).find(d=>d.name===s);if(!c||c.type==="folder")throw new Error(`Cannot get link for: ${t}`);return{url:await this.client.getDownloadUrl(c.file_id),headers:{Referer:"https://www.aliyundrive.com/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}}}async mkdir(e,t){throw new Error("Aliyundrive Share is read-only")}async rename(e,t,i){throw new Error("Aliyundrive Share is read-only")}async remove(e,t,i){throw new Error("Aliyundrive Share is read-only")}async move(e,t,i,n,s){throw new Error("Aliyundrive Share is read-only")}async copy(e,t,i,n,s){throw new Error("Aliyundrive Share is read-only")}async put(e,t,i){throw new Error("Aliyundrive Share is read-only")}}});var wm,T4=j(()=>{"use strict";wm=class{addition;finalUrl="";cookie="";constructor(e){this.addition=e}async init(){if(!this.addition.url)throw new Error("OneDrive Sharelink URL is required");try{let e=await fetch(this.addition.url,{method:"HEAD",redirect:"follow"});this.finalUrl=e.url||this.addition.url}catch{this.finalUrl=this.addition.url}}async getFiles(e="/"){this.finalUrl||await this.init();let t=new URL(this.finalUrl);if(t.pathname.includes("/:u:/")||t.pathname.includes("/:v:/")||t.pathname.includes("/:b:/"))return[{id:"root_file",name:decodeURIComponent(t.pathname.split("/").pop()||"file"),size:0,is_folder:!1,modified:new Date().toISOString(),download_url:this.getDirectDownloadLink(this.finalUrl)}];try{let i=`${t.origin}${t.pathname}/_api/web/GetListUsingPath(DecodedUrl=@a1)/renderListDataAsStream`,n=await fetch(i,{method:"POST",headers:{Accept:"application/json;odata=nometadata","Content-Type":"application/json;odata=verbose"},body:JSON.stringify({parameters:{RenderOptions:5707,AllowMultipleValueFilterForTaxonomyFields:!0,AddRequiredFields:!0}})});if(n.ok)return((await n.json()).ListData?.Row||[]).map(a=>{let c=String(a.FSObjType)==="1",l=parseInt(a.File_x0020_Size||"0",10);return{id:a.UniqueId,name:a.FileLeafRef,size:c||isNaN(l)?0:l,is_folder:c,modified:a["Modified."]||new Date().toISOString(),download_url:a["@content.downloadUrl"],sp_item_url:a[".spItemUrl"]}})}catch{}return[]}getDirectDownloadLink(e){let t=new URL(e);return t.searchParams.set("download","1"),t.toString()}}});var xm,U4=j(()=>{"use strict";Be();He();T4();xm=class{addition;client;constructor(e){this.addition=e,this.client=new wm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),s=(await this.client.getFiles(i)).map(o=>({name:o.name,size:o.size||0,is_dir:o.is_folder,modified:o.modified||new Date().toISOString(),sign:o.id||o.name,type:X(o.name,o.is_folder),raw_url:o.download_url||""}));return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"root",type:1,raw_url:""};let o=(await this.client.getFiles("/")).find(a=>a.name===n);if(!o)throw new Error(`File not found: ${i}`);return{name:o.name,size:o.size||0,is_dir:o.is_folder,modified:o.modified||new Date().toISOString(),sign:o.id||o.name,type:X(o.name,o.is_folder),raw_url:o.download_url||this.client.getDirectDownloadLink(this.addition.url)}}async link(e,t){let i=await this.get(e,t);if(i.is_dir)throw new Error(`Cannot get link for folder: ${t}`);return{url:i.raw_url||this.client.getDirectDownloadLink(this.addition.url)}}async mkdir(e,t){throw new Error("OneDrive Sharelink is read-only")}async rename(e,t,i){throw new Error("OneDrive Sharelink is read-only")}async remove(e,t,i){throw new Error("OneDrive Sharelink is read-only")}async move(e,t,i,n,s){throw new Error("OneDrive Sharelink is read-only")}async copy(e,t,i,n,s){throw new Error("OneDrive Sharelink is read-only")}async put(e,t,i){throw new Error("OneDrive Sharelink is read-only")}}});var Cm,R4=j(()=>{"use strict";Cm=class{addition;passCodeToken="";deviceId="";constructor(e){this.addition=e,this.deviceId=e.device_id||this.generateDeviceId()}generateDeviceId(){return"web_"+Math.random().toString(36).substring(2,15)}async init(){if(!this.addition.share_id)throw new Error("PikPak Share: share_id is required")}async getFiles(e=""){let t=[],i="";do{let n=new URL("https://api-drive.mypikpak.com/drive/v1/share");n.searchParams.set("share_id",this.addition.share_id),this.addition.share_pwd&&n.searchParams.set("pass_code",this.addition.share_pwd),e&&n.searchParams.set("parent_id",e),i&&n.searchParams.set("page_token",i),n.searchParams.set("thumbnail_size","SIZE_LARGE");let s={"X-Client-ID":"YUMx5nI8ZU8Ap8pm","X-Device-ID":this.deviceId,"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"};this.passCodeToken&&(s["X-Share-Token"]=this.passCodeToken);let o=await fetch(n.toString(),{headers:s});if(!o.ok)throw new Error(`PikPak Share error: HTTP ${o.status}`);let a=await o.json();a.pass_code_token&&(this.passCodeToken=a.pass_code_token);let c=a.files||[];if(t.push(...c),i=a.next_page_token||"",c.length===0)break}while(i);return t}async getDownloadUrl(e){if(e.web_content_link)return e.web_content_link;if(e.medias&&e.medias.length>0&&e.medias[0].link?.url)return e.medias[0].link.url;throw new Error("Download URL not found in PikPak share item")}}});var Em,N4=j(()=>{"use strict";Be();He();R4();Em=class{addition;client;constructor(e){this.addition=e,this.client=new Cm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveParentId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.kind==="drive#folder"&&c.name===s);if(a)n=a.id;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveParentId(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.kind==="drive#folder",l=typeof a.size=="number"?a.size:parseInt(String(a.size||"0"),10);return{name:a.name,size:c||isNaN(l)?0:l,is_dir:c,modified:a.modified_time||new Date().toISOString(),sign:a.id,type:X(a.name,c),thumb:a.thumbnail_link,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"root",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveParentId(s),c=(await this.client.getFiles(o)).find(f=>f.name===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.kind==="drive#folder",d=typeof c.size=="number"?c.size:parseInt(String(c.size||"0"),10),u="";if(!l)try{u=await this.client.getDownloadUrl(c)}catch(f){console.warn("[PikPakShare] failed to get download url in get():",f)}return{name:c.name,size:l||isNaN(d)?0:d,is_dir:l,modified:c.modified_time||new Date().toISOString(),sign:c.id,type:X(c.name,l),thumb:c.thumbnail_link,raw_url:u}}async link(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveParentId(n),c=(await this.client.getFiles(o)).find(d=>d.name===s);if(!c||c.kind==="drive#folder")throw new Error(`Cannot get link for: ${t}`);return{url:await this.client.getDownloadUrl(c)}}async mkdir(e,t){throw new Error("PikPak Share is read-only")}async rename(e,t,i){throw new Error("PikPak Share is read-only")}async remove(e,t,i){throw new Error("PikPak Share is read-only")}async move(e,t,i,n,s){throw new Error("PikPak Share is read-only")}async copy(e,t,i,n,s){throw new Error("PikPak Share is read-only")}async put(e,t,i){throw new Error("PikPak Share is read-only")}}});var Bm,q4=j(()=>{"use strict";Be();He();Bm=class{addition;constructor(e){this.addition=e}async init(){if(!this.addition.address||!this.addition.share_name)throw new Error("SMB: address and share_name are required")}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async list(e,t){return de([],this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";return{name:n,size:0,is_dir:i==="",modified:new Date().toISOString(),sign:i||"/",type:X(n,i===""),raw_url:""}}async mkdir(e,t){}async rename(e,t,i){}async remove(e,t,i){}async move(e,t,i,n,s){}async copy(e,t,i,n,s){}async put(e,t,i){}}});var vm=oe((bm,O4)=>{(function(r,e){typeof bm=="object"&&typeof O4<"u"?e(bm):typeof define=="function"&&define.amd?define(["exports"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.hashwasm={}))})(bm,(function(r){"use strict";var e="adler32",t="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAgUEAQECAgYOAn8BQYCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEK6wkGBQBBgAkLCgBBAEEBNgKECAvjCAEHf0EAKAKECCIBQf//A3EhAiABQRB2IQMCQAJAIABBAUcNACACQQAtAIAJaiIBQY+AfGogASABQfD/A0sbIgEgA2oiBEEQdCIFQYCAPGogBSAEQfD/A0sbIAFyIQEMAQsCQAJAAkACQAJAIABBEEkNAEGACSEGIABBsCtJDQFBgAkhBgNAQQAhBQNAIAYgBWoiASgCACIEQf8BcSACaiICIANqIAIgBEEIdkH/AXFqIgJqIAIgBEEQdkH/AXFqIgJqIAIgBEEYdmoiAmogAiABQQRqKAIAIgRB/wFxaiICaiACIARBCHZB/wFxaiICaiACIARBEHZB/wFxaiICaiACIARBGHZqIgJqIAIgAUEIaigCACIEQf8BcWoiAmogAiAEQQh2Qf8BcWoiAmogAiAEQRB2Qf8BcWoiAmogAiAEQRh2aiIEaiAEIAFBDGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiAmohAyAFQRBqIgVBsCtHDQALIANB8f8DcCEDIAJB8f8DcCECIAZBsCtqIQYgAEHQVGoiAEGvK0sNAAsgAEUNBCAAQQ9LDQEMAgsCQCAARQ0AAkACQCAAQQNxIgUNAEGACSEBIAAhBAwBCyAAQXxxIQRBACEBA0AgAiABQYAJai0AAGoiAiADaiEDIAUgAUEBaiIBRw0ACyAFQYAJaiEBCyAAQQRJDQADQCACIAEtAABqIgUgAS0AAWoiBiABLQACaiIAIAFBA2otAABqIgIgACAGIAUgA2pqamohAyABQQRqIQEgBEF8aiIEDQALCyACQY+AfGogAiACQfD/A0sbIANB8f8DcEEQdHIhAQwECwNAIAYoAgAiAUH/AXEgAmoiBCADaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgRqIAQgBkEEaigCACIBQf8BcWoiBGogBCABQQh2Qf8BcWoiBGogBCABQRB2Qf8BcWoiBGogBCABQRh2aiIEaiAEIAZBCGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiBGogBCAGQQxqKAIAIgFB/wFxaiIEaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgJqIQMgBkEQaiEGIABBcGoiAEEPSw0ACyAARQ0BCyAAQX9qIQcCQCAAQQNxIgVFDQAgAEF8cSEAIAUhBCAGIQEDQCACIAEtAABqIgIgA2ohAyABQQFqIQEgBEF/aiIEDQALIAYgBWohBgsgB0EDSQ0AA0AgAiAGLQAAaiIBIAYtAAFqIgQgBi0AAmoiBSAGQQNqLQAAaiICIAUgBCABIANqampqIQMgBkEEaiEGIABBfGoiAA0ACwsgA0Hx/wNwIQMgAkHx/wNwIQILIAIgA0EQdHIhAQtBACABNgKECAsxAQF/QQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwUAQYQICzsAQQBBATYChAggABACQQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwsVAgBBgAgLBAQAAAAAQYQICwQBAAAA",i="02ddbd17",n={name:e,data:t,hash:i};function s(S,q,M,Y){function ie(ae){return ae instanceof M?ae:new M(function(ge){ge(ae)})}return new(M||(M=Promise))(function(ae,ge){function xe(jt){try{qt(Y.next(jt))}catch(rr){ge(rr)}}function Je(jt){try{qt(Y.throw(jt))}catch(rr){ge(rr)}}function qt(jt){jt.done?ae(jt.value):ie(jt.value).then(xe,Je)}qt((Y=Y.apply(S,q||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;class o{constructor(){this.mutex=Promise.resolve()}lock(){let q=()=>{};return this.mutex=this.mutex.then(()=>new Promise(q)),new Promise(M=>{q=M})}dispatch(q){return s(this,void 0,void 0,function*(){let M=yield this.lock();try{return yield Promise.resolve(q())}finally{M()}})}}var a;function c(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global}let l=c(),d=(a=l.Buffer)!==null&&a!==void 0?a:null,u=l.TextEncoder?new l.TextEncoder:null;function f(S,q){return String.fromCharCode(...S.subarray(0,q))}function h(S,q){return(S&15)+(S>>6|S>>3&8)<<4|(q&15)+(q>>6|q>>3&8)}function g(S,q){let M=q.length>>1;for(let Y=0;Y<M;Y++){let ie=Y<<1;S[Y]=h(q.charCodeAt(ie),q.charCodeAt(ie+1))}}function p(S,q){if(S.length!==q.length*2)return!1;for(let M=0;M<q.length;M++){let Y=M<<1;if(q[M]!==h(S.charCodeAt(Y),S.charCodeAt(Y+1)))return!1}return!0}let I=87,y=48;function w(S,q,M){let Y=0;for(let ie=0;ie<M;ie++){let ae=q[ie]>>>4;S[Y++]=ae>9?ae+I:ae+y,ae=q[ie]&15,S[Y++]=ae>9?ae+I:ae+y}return String.fromCharCode.apply(null,S)}let C=d!==null?S=>{if(typeof S=="string"){let q=d.from(S,"utf8");return new Uint8Array(q.buffer,q.byteOffset,q.length)}if(d.isBuffer(S))return new Uint8Array(S.buffer,S.byteOffset,S.length);if(ArrayBuffer.isView(S))return new Uint8Array(S.buffer,S.byteOffset,S.byteLength);throw new Error("Invalid data type!")}:S=>{if(typeof S=="string")return u.encode(S);if(ArrayBuffer.isView(S))return new Uint8Array(S.buffer,S.byteOffset,S.byteLength);throw new Error("Invalid data type!")},b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",x=new Uint8Array(256);for(let S=0;S<b.length;S++)x[b.charCodeAt(S)]=S;function _(S,q=!0){let M=S.length,Y=M%3,ie=[],ae=M-Y;for(let ge=0;ge<ae;ge+=3){let xe=(S[ge]<<16&16711680)+(S[ge+1]<<8&65280)+(S[ge+2]&255),Je=b.charAt(xe>>18&63)+b.charAt(xe>>12&63)+b.charAt(xe>>6&63)+b.charAt(xe&63);ie.push(Je)}if(Y===1){let ge=S[M-1],xe=b.charAt(ge>>2),Je=b.charAt(ge<<4&63);ie.push(`${xe}${Je}`),q&&ie.push("==")}else if(Y===2){let ge=(S[M-2]<<8)+S[M-1],xe=b.charAt(ge>>10),Je=b.charAt(ge>>4&63),qt=b.charAt(ge<<2&63);ie.push(`${xe}${Je}${qt}`),q&&ie.push("=")}return ie.join("")}function R(S){let q=Math.floor(S.length*.75),M=S.length;return S[M-1]==="="&&(q-=1,S[M-2]==="="&&(q-=1)),q}function U(S){let q=R(S),M=S.length,Y=new Uint8Array(q),ie=0;for(let ae=0;ae<M;ae+=4){let ge=x[S.charCodeAt(ae)],xe=x[S.charCodeAt(ae+1)],Je=x[S.charCodeAt(ae+2)],qt=x[S.charCodeAt(ae+3)];Y[ie]=ge<<2|xe>>4,ie+=1,Y[ie]=(xe&15)<<4|Je>>2,ie+=1,Y[ie]=(Je&3)<<6|qt&63,ie+=1}return Y}let T=16*1024,D=4,B=new o,Q=new Map;function v(S,q){return s(this,void 0,void 0,function*(){let M=null,Y=null,ie=!1;if(typeof WebAssembly>"u")throw new Error("WebAssembly is not supported in this environment!");let ae=(je,nt=0)=>{Y.set(je,nt)},ge=()=>Y,xe=()=>M.exports,Je=je=>{M.exports.Hash_SetMemorySize(je);let nt=M.exports.Hash_GetBuffer(),ni=M.exports.memory.buffer;Y=new Uint8Array(ni,nt,je)},qt=()=>new DataView(M.exports.memory.buffer).getUint32(M.exports.STATE_SIZE,!0),jt=B.dispatch(()=>s(this,void 0,void 0,function*(){if(!Q.has(S.name)){let nt=U(S.data),ni=WebAssembly.compile(nt);Q.set(S.name,ni)}let je=yield Q.get(S.name);M=yield WebAssembly.instantiate(je,{})})),rr=()=>s(this,void 0,void 0,function*(){M||(yield jt);let je=M.exports.Hash_GetBuffer(),nt=M.exports.memory.buffer;Y=new Uint8Array(nt,je,T)}),Ot=(je=null)=>{ie=!0,M.exports.Hash_Init(je)},$i=je=>{let nt=0;for(;nt<je.length;){let ni=je.subarray(nt,nt+T);nt+=ni.length,Y.set(ni),M.exports.Hash_Update(ni.length)}},Hr=je=>{if(!ie)throw new Error("update() called before init()");let nt=C(je);$i(nt)},Iu=new Uint8Array(q*2),vo=(je,nt=null)=>{if(!ie)throw new Error("digest() called before init()");return ie=!1,M.exports.Hash_Final(nt),je==="binary"?Y.slice(0,q):w(Iu,Y,q)},wn=()=>{if(!ie)throw new Error("save() can only be called after init() and before digest()");let je=M.exports.Hash_GetState(),nt=qt(),ni=M.exports.memory.buffer,ja=new Uint8Array(ni,je,nt),wu=new Uint8Array(D+nt);return g(wu,S.hash),wu.set(ja,D),wu},ko=je=>{if(!(je instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");let nt=M.exports.Hash_GetState(),ni=qt(),ja=D+ni,wu=M.exports.memory.buffer;if(je.length!==ja)throw new Error(`Bad state length (expected ${ja} bytes, got ${je.length})`);if(!p(S.hash,je.subarray(0,D)))throw new Error("This state was written by an incompatible hash implementation");let TL=je.subarray(D);new Uint8Array(wu,nt,ni).set(TL),ie=!0},ml=je=>typeof je=="string"?je.length<T/4:je.byteLength<T,Ss=ml;switch(S.name){case"argon2":case"scrypt":Ss=()=>!0;break;case"blake2b":case"blake2s":Ss=(je,nt)=>nt<=512&&ml(je);break;case"blake3":Ss=(je,nt)=>nt===0&&ml(je);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":Ss=()=>!1;break}let So=(je,nt=null,ni=null)=>{if(!Ss(je,nt))return Ot(nt),Hr(je),vo("hex",ni);let ja=C(je);return Y.set(ja),M.exports.Hash_Calculate(ja.length,nt,ni),w(Iu,Y,q)};return yield rr(),{getMemory:ge,writeMemory:ae,getExports:xe,setMemorySize:Je,init:Ot,update:Hr,digest:vo,save:wn,load:ko,calculate:So,hashLength:q}})}function E(S,q,M){return s(this,void 0,void 0,function*(){let Y=yield S.lock(),ie=yield v(q,M);return Y(),ie})}let P=new o,N=null;function J(S){if(N===null)return E(P,n,4).then(q=>(N=q,N.calculate(S)));try{let q=N.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function z(){return v(n,4).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:4,digestSize:4};return q})}var L="argon2",G="AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkDyAGFNwPYCUEAIAIpA9ABIAEpA9ABhTcD4AlBACACKQPYASABKQPYAYU3A+gJQQAgAikD4AEgASkD4AGFNwPwCUEAIAIpA+gBIAEpA+gBhTcD+AlBACACKQPwASABKQPwAYU3A4AKQQAgAikD+AEgASkD+AGFNwOICkEAIAIpA4ACIAEpA4AChTcDkApBACACKQOIAiABKQOIAoU3A5gKQQAgAikDkAIgASkDkAKFNwOgCkEAIAIpA5gCIAEpA5gChTcDqApBACACKQOgAiABKQOgAoU3A7AKQQAgAikDqAIgASkDqAKFNwO4CkEAIAIpA7ACIAEpA7AChTcDwApBACACKQO4AiABKQO4AoU3A8gKQQAgAikDwAIgASkDwAKFNwPQCkEAIAIpA8gCIAEpA8gChTcD2ApBACACKQPQAiABKQPQAoU3A+AKQQAgAikD2AIgASkD2AKFNwPoCkEAIAIpA+ACIAEpA+AChTcD8ApBACACKQPoAiABKQPoAoU3A/gKQQAgAikD8AIgASkD8AKFNwOAC0EAIAIpA/gCIAEpA/gChTcDiAtBACACKQOAAyABKQOAA4U3A5ALQQAgAikDiAMgASkDiAOFNwOYC0EAIAIpA5ADIAEpA5ADhTcDoAtBACACKQOYAyABKQOYA4U3A6gLQQAgAikDoAMgASkDoAOFNwOwC0EAIAIpA6gDIAEpA6gDhTcDuAtBACACKQOwAyABKQOwA4U3A8ALQQAgAikDuAMgASkDuAOFNwPIC0EAIAIpA8ADIAEpA8ADhTcD0AtBACACKQPIAyABKQPIA4U3A9gLQQAgAikD0AMgASkD0AOFNwPgC0EAIAIpA9gDIAEpA9gDhTcD6AtBACACKQPgAyABKQPgA4U3A/ALQQAgAikD6AMgASkD6AOFNwP4C0EAIAIpA/ADIAEpA/ADhTcDgAxBACACKQP4AyABKQP4A4U3A4gMQQAgAikDgAQgASkDgASFNwOQDEEAIAIpA4gEIAEpA4gEhTcDmAxBACACKQOQBCABKQOQBIU3A6AMQQAgAikDmAQgASkDmASFNwOoDEEAIAIpA6AEIAEpA6AEhTcDsAxBACACKQOoBCABKQOoBIU3A7gMQQAgAikDsAQgASkDsASFNwPADEEAIAIpA7gEIAEpA7gEhTcDyAxBACACKQPABCABKQPABIU3A9AMQQAgAikDyAQgASkDyASFNwPYDEEAIAIpA9AEIAEpA9AEhTcD4AxBACACKQPYBCABKQPYBIU3A+gMQQAgAikD4AQgASkD4ASFNwPwDEEAIAIpA+gEIAEpA+gEhTcD+AxBACACKQPwBCABKQPwBIU3A4ANQQAgAikD+AQgASkD+ASFNwOIDUEAIAIpA4AFIAEpA4AFhTcDkA1BACACKQOIBSABKQOIBYU3A5gNQQAgAikDkAUgASkDkAWFNwOgDUEAIAIpA5gFIAEpA5gFhTcDqA1BACACKQOgBSABKQOgBYU3A7ANQQAgAikDqAUgASkDqAWFNwO4DUEAIAIpA7AFIAEpA7AFhTcDwA1BACACKQO4BSABKQO4BYU3A8gNQQAgAikDwAUgASkDwAWFNwPQDUEAIAIpA8gFIAEpA8gFhTcD2A1BACACKQPQBSABKQPQBYU3A+ANQQAgAikD2AUgASkD2AWFNwPoDUEAIAIpA+AFIAEpA+AFhTcD8A1BACACKQPoBSABKQPoBYU3A/gNQQAgAikD8AUgASkD8AWFNwOADkEAIAIpA/gFIAEpA/gFhTcDiA5BACACKQOABiABKQOABoU3A5AOQQAgAikDiAYgASkDiAaFNwOYDkEAIAIpA5AGIAEpA5AGhTcDoA5BACACKQOYBiABKQOYBoU3A6gOQQAgAikDoAYgASkDoAaFNwOwDkEAIAIpA6gGIAEpA6gGhTcDuA5BACACKQOwBiABKQOwBoU3A8AOQQAgAikDuAYgASkDuAaFNwPIDkEAIAIpA8AGIAEpA8AGhTcD0A5BACACKQPIBiABKQPIBoU3A9gOQQAgAikD0AYgASkD0AaFNwPgDkEAIAIpA9gGIAEpA9gGhTcD6A5BACACKQPgBiABKQPgBoU3A/AOQQAgAikD6AYgASkD6AaFNwP4DkEAIAIpA/AGIAEpA/AGhTcDgA9BACACKQP4BiABKQP4BoU3A4gPQQAgAikDgAcgASkDgAeFNwOQD0EAIAIpA4gHIAEpA4gHhTcDmA9BACACKQOQByABKQOQB4U3A6APQQAgAikDmAcgASkDmAeFNwOoD0EAIAIpA6AHIAEpA6AHhTcDsA9BACACKQOoByABKQOoB4U3A7gPQQAgAikDsAcgASkDsAeFNwPAD0EAIAIpA7gHIAEpA7gHhTcDyA9BACACKQPAByABKQPAB4U3A9APQQAgAikDyAcgASkDyAeFNwPYD0EAIAIpA9AHIAEpA9AHhTcD4A9BACACKQPYByABKQPYB4U3A+gPQQAgAikD4AcgASkD4AeFNwPwD0EAIAIpA+gHIAEpA+gHhTcD+A9BACACKQPwByABKQPwB4U3A4AQQQAgAikD+AcgASkD+AeFNwOIEEGQCEGYCEGgCEGoCEGwCEG4CEHACEHICEHQCEHYCEHgCEHoCEHwCEH4CEGACUGICRACQZAJQZgJQaAJQagJQbAJQbgJQcAJQcgJQdAJQdgJQeAJQegJQfAJQfgJQYAKQYgKEAJBkApBmApBoApBqApBsApBuApBwApByApB0ApB2ApB4ApB6ApB8ApB+ApBgAtBiAsQAkGQC0GYC0GgC0GoC0GwC0G4C0HAC0HIC0HQC0HYC0HgC0HoC0HwC0H4C0GADEGIDBACQZAMQZgMQaAMQagMQbAMQbgMQcAMQcgMQdAMQdgMQeAMQegMQfAMQfgMQYANQYgNEAJBkA1BmA1BoA1BqA1BsA1BuA1BwA1ByA1B0A1B2A1B4A1B6A1B8A1B+A1BgA5BiA4QAkGQDkGYDkGgDkGoDkGwDkG4DkHADkHIDkHQDkHYDkHgDkHoDkHwDkH4DkGAD0GIDxACQZAPQZgPQaAPQagPQbAPQbgPQcAPQcgPQdAPQdgPQeAPQegPQfAPQfgPQYAQQYgQEAJBkAhBmAhBkAlBmAlBkApBmApBkAtBmAtBkAxBmAxBkA1BmA1BkA5BmA5BkA9BmA8QAkGgCEGoCEGgCUGoCUGgCkGoCkGgC0GoC0GgDEGoDEGgDUGoDUGgDkGoDkGgD0GoDxACQbAIQbgIQbAJQbgJQbAKQbgKQbALQbgLQbAMQbgMQbANQbgNQbAOQbgOQbAPQbgPEAJBwAhByAhBwAlByAlBwApByApBwAtByAtBwAxByAxBwA1ByA1BwA5ByA5BwA9ByA8QAkHQCEHYCEHQCUHYCUHQCkHYCkHQC0HYC0HQDEHYDEHQDUHYDUHQDkHYDkHQD0HYDxACQeAIQegIQeAJQegJQeAKQegKQeALQegLQeAMQegMQeANQegNQeAOQegOQeAPQegPEAJB8AhB+AhB8AlB+AlB8ApB+ApB8AtB+AtB8AxB+AxB8A1B+A1B8A5B+A5B8A9B+A8QAkGACUGICUGACkGICkGAC0GIC0GADEGIDEGADUGIDUGADkGIDkGAD0GID0GAEEGIEBACAkACQCADRQ0AA0AgACAEaiIDIAIgBGoiBSkDACABIARqIgYpAwCFIARBkAhqKQMAhSADKQMAhTcDACADQQhqIgMgBUEIaikDACAGQQhqKQMAhSAEQZgIaikDAIUgAykDAIU3AwAgBEEQaiIEQYAIRw0ADAILC0EAIQQDQCAAIARqIgMgAiAEaiIFKQMAIAEgBGoiBikDAIUgBEGQCGopAwCFNwMAIANBCGogBUEIaikDACAGQQhqKQMAhSAEQZgIaikDAIU3AwAgBEEQaiIEQYAIRw0ACwsL5QcMBX8BfgR/An4BfwF+AX8Bfgd/AX4DfwF+AkBBACgCgAgiAiABQQp0aiIDKAIIIAFHDQAgAygCDCEEIAMoAgAhBUEAIAMoAhQiBq03A7gQQQAgBK0iBzcDsBBBACAFIAEgBUECdG4iCGwiCUECdK03A6gQAkACQAJAAkAgBEUNAEF/IQogBUUNASAIQQNsIQsgCEECdCIErSEMIAWtIQ0gBkF/akECSSEOQgAhDwNAQQAgDzcDkBAgD6chEEIAIRFBACEBA0BBACARNwOgECAPIBGEUCIDIA5xIRIgBkEBRiAPUCITIAZBAkYgEUICVHFxciEUQX8gAUEBakEDcSAIbEF/aiATGyEVIAEgEHIhFiABIAhsIRcgA0EBdCEYQgAhGQNAQQBCADcDwBBBACAZNwOYECAYIQECQCASRQ0AQQBCATcDwBBBkBhBkBBBkCBBABADQZAYQZAYQZAgQQAQA0ECIQELAkAgASAITw0AIAQgGaciGmwgF2ogAWohAwNAIANBACAEIAEbQQAgEVAiGxtqQX9qIRwCQAJAIBQNAEEAKAKACCICIBxBCnQiHGohCgwBCwJAIAFB/wBxIgINAEEAQQApA8AQQgF8NwPAEEGQGEGQEEGQIEEAEANBkBhBkBhBkCBBABADCyAcQQp0IRwgAkEDdEGQGGohCkEAKAKACCECCyACIANBCnRqIAIgHGogAiAKKQMAIh1CIIinIAVwIBogFhsiHCAEbCABIAFBACAZIBytUSIcGyIKIBsbIBdqIAogC2ogExsgAUUgHHJrIhsgFWqtIB1C/////w+DIh0gHX5CIIggG61+QiCIfSAMgqdqQQp0akEBEAMgA0EBaiEDIAggAUEBaiIBRw0ACwsgGUIBfCIZIA1SDQALIBFCAXwiEachASARQgRSDQALIA9CAXwiDyAHUg0AC0EAKAKACCECCyAJQQx0QYB4aiEXIAVBf2oiCkUNAgwBC0EAQgM3A6AQQQAgBEF/aq03A5AQQYB4IRcLIAIgF2ohGyAIQQx0IQhBACEcA0AgCCAcQQFqIhxsQYB4aiEEQQAhAQNAIBsgAWoiAyADKQMAIAIgBCABamopAwCFNwMAIANBCGoiAyADKQMAIAIgBCABQQhyamopAwCFNwMAIAFBCGohAyABQRBqIQEgA0H4B0kNAAsgHCAKRw0ACwsgAiAXaiEbQXghAQNAIAIgAWoiA0EIaiAbIAFqIgRBCGopAwA3AwAgA0EQaiAEQRBqKQMANwMAIANBGGogBEEYaikDADcDACADQSBqIARBIGopAwA3AwAgAUEgaiIBQfgHSQ0ACwsL",K="e4cdc523",$={name:L,data:G,hash:K},te="blake2b",re="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",ee="c6f286e6",Z={name:te,data:re,hash:ee};let me=new o,le=null;function Ae(S){return!Number.isInteger(S)||S<8||S>512||S%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 512"):null}function ve(S,q){return S|q<<16}function qe(S,q=512,M=null){if(Ae(q))return Promise.reject(Ae(q));let Y=null,ie=q;if(M!==null){if(Y=C(M),Y.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));ie=ve(q,Y.length)}let ae=q/8;if(le===null||le.hashLength!==ae)return E(me,Z,ae).then(ge=>(le=ge,ie>512&&le.writeMemory(Y),le.calculate(S,ie)));try{ie>512&&le.writeMemory(Y);let ge=le.calculate(S,ie);return Promise.resolve(ge)}catch(ge){return Promise.reject(ge)}}function _e(S=512,q=null){if(Ae(S))return Promise.reject(Ae(S));let M=null,Y=S;if(q!==null){if(M=C(q),M.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));Y=ve(S,M.length)}let ie=S/8;return v(Z,ie).then(ae=>{Y>512&&ae.writeMemory(M),ae.init(Y);let ge={init:Y>512?()=>(ae.writeMemory(M),ae.init(Y),ge):()=>(ae.init(Y),ge),update:xe=>(ae.update(xe),ge),digest:xe=>ae.digest(xe),save:()=>ae.save(),load:xe=>(ae.load(xe),ge),blockSize:128,digestSize:ie};return ge})}function se(S,q,M){let Y=[`m=${q.memorySize}`,`t=${q.iterations}`,`p=${q.parallelism}`].join(",");return`$argon2${q.hashType}$v=19$${Y}$${_(S,!1)}$${_(M,!1)}`}let it=new DataView(new ArrayBuffer(4));function ce(S){return it.setInt32(0,S,!0),new Uint8Array(it.buffer)}function dr(S,q,M){return s(this,void 0,void 0,function*(){if(M<=64){let Je=yield _e(M*8);return Je.update(ce(M)),Je.update(q),Je.digest("binary")}let Y=Math.ceil(M/32)-2,ie=new Uint8Array(M);S.init(),S.update(ce(M)),S.update(q);let ae=S.digest("binary");ie.set(ae.subarray(0,32),0);for(let Je=1;Je<Y;Je++)S.init(),S.update(ae),ae=S.digest("binary"),ie.set(ae.subarray(0,32),Je*32);let ge=M-32*Y,xe;return ge===64?(xe=S,xe.init()):xe=yield _e(ge*8),xe.update(ae),ae=xe.digest("binary"),ie.set(ae.subarray(0,ge),Y*32),ie})}function Or(S){switch(S){case"d":return 0;case"i":return 1;default:return 2}}function ct(S){return s(this,void 0,void 0,function*(){var q;let{parallelism:M,iterations:Y,hashLength:ie}=S,ae=C(S.password),ge=C(S.salt),xe=19,Je=Or(S.hashType),{memorySize:qt}=S,jt=C((q=S.secret)!==null&&q!==void 0?q:""),[rr,Ot]=yield Promise.all([v($,1024),_e(512)]);rr.setMemorySize(qt*1024+1024);let $i=new Uint8Array(24),Hr=new DataView($i.buffer);Hr.setInt32(0,M,!0),Hr.setInt32(4,ie,!0),Hr.setInt32(8,qt,!0),Hr.setInt32(12,Y,!0),Hr.setInt32(16,xe,!0),Hr.setInt32(20,Je,!0),rr.writeMemory($i,qt*1024),Ot.init(),Ot.update($i),Ot.update(ce(ae.length)),Ot.update(ae),Ot.update(ce(ge.length)),Ot.update(ge),Ot.update(ce(jt.length)),Ot.update(jt),Ot.update(ce(0));let vo=Math.floor(qt/(M*4))*4,wn=new Uint8Array(72),ko=Ot.digest("binary");wn.set(ko);for(let So=0;So<M;So++){wn.set(ce(0),64),wn.set(ce(So),68);let je=So*vo,nt=yield dr(Ot,wn,1024);rr.writeMemory(nt,je*1024),je+=1,wn.set(ce(1),64),nt=yield dr(Ot,wn,1024),rr.writeMemory(nt,je*1024)}let ml=new Uint8Array(1024);g(ml,rr.calculate(new Uint8Array([]),qt));let Ss=yield dr(Ot,ml,ie);if(S.outputType==="hex"){let So=new Uint8Array(ie*2);return w(So,Ss,ie)}return S.outputType==="encoded"?se(ge,S,Ss):Ss})}let we=S=>{var q;if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!S.password)throw new Error("Password must be specified");if(S.password=C(S.password),S.password.length<1)throw new Error("Password must be specified");if(!S.salt)throw new Error("Salt must be specified");if(S.salt=C(S.salt),S.salt.length<8)throw new Error("Salt should be at least 8 bytes long");if(S.secret=C((q=S.secret)!==null&&q!==void 0?q:""),!Number.isInteger(S.iterations)||S.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(S.parallelism)||S.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(S.hashLength)||S.hashLength<4)throw new Error("Hash length should be at least 4 bytes.");if(!Number.isInteger(S.memorySize))throw new Error("Memory size should be specified.");if(S.memorySize<8*S.parallelism)throw new Error("Memory size should be at least 8 * parallelism.");if(S.outputType===void 0&&(S.outputType="hex"),!["hex","binary","encoded"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function Ee(S){return s(this,void 0,void 0,function*(){return we(S),ct(Object.assign(Object.assign({},S),{hashType:"i"}))})}function Gi(S){return s(this,void 0,void 0,function*(){return we(S),ct(Object.assign(Object.assign({},S),{hashType:"id"}))})}function xo(S){return s(this,void 0,void 0,function*(){return we(S),ct(Object.assign(Object.assign({},S),{hashType:"d"}))})}let Se=(S,q,M)=>{let Y=/^\$argon2(id|i|d)\$v=([0-9]+)\$((?:[mtp]=[0-9]+,){2}[mtp]=[0-9]+)\$([A-Za-z0-9+/]+)\$([A-Za-z0-9+/]+)$/,ie=q.match(Y);if(!ie)throw new Error("Invalid hash");let[,ae,ge,xe,Je,qt]=ie;if(ge!=="19")throw new Error(`Unsupported version: ${ge}`);let jt={},rr={m:"memorySize",p:"parallelism",t:"iterations"};for(let Ot of xe.split(",")){let[$i,Hr]=Ot.split("=");jt[rr[$i]]=Number(Hr)}return Object.assign(Object.assign({},jt),{password:S,secret:M,hashType:ae,salt:U(Je),hashLength:R(qt),outputType:"encoded"})},Dt=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(S.hash===void 0||typeof S.hash!="string")throw new Error("Hash should be specified")};function Bs(S){return s(this,void 0,void 0,function*(){Dt(S);let q=Se(S.password,S.hash,S.secret);we(q);let M=S.hash.lastIndexOf("$")+1;return(yield ct(q)).substring(M)===S.hash.substring(M)})}var Ce="blake2s",zi="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",ii="5c0ff166",Ir={name:Ce,data:zi,hash:ii};let tr=new o,ur=null;function Qe(S){return!Number.isInteger(S)||S<8||S>256||S%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 256"):null}function be(S,q){return S|q<<16}function Al(S,q=256,M=null){if(Qe(q))return Promise.reject(Qe(q));let Y=null,ie=q;if(M!==null){if(Y=C(M),Y.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));ie=be(q,Y.length)}let ae=q/8;if(ur===null||ur.hashLength!==ae)return E(tr,Ir,ae).then(ge=>(ur=ge,ie>512&&ur.writeMemory(Y),ur.calculate(S,ie)));try{ie>512&&ur.writeMemory(Y);let ge=ur.calculate(S,ie);return Promise.resolve(ge)}catch(ge){return Promise.reject(ge)}}function Ai(S=256,q=null){if(Qe(S))return Promise.reject(Qe(S));let M=null,Y=S;if(q!==null){if(M=C(q),M.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));Y=be(S,M.length)}let ie=S/8;return v(Ir,ie).then(ae=>{Y>512&&ae.writeMemory(M),ae.init(Y);let ge={init:Y>512?()=>(ae.writeMemory(M),ae.init(Y),ge):()=>(ae.init(Y),ge),update:xe=>(ae.update(xe),ge),digest:xe=>ae.digest(xe),save:()=>ae.save(),load:xe=>(ae.load(xe),ge),blockSize:64,digestSize:ie};return ge})}var Mr="blake3",Mn="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IQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+BX8GfiMAQdABayIBJAACQCAAe6ciAkEALQCQigEiA08NAEEALQCKigFBBHIhBCABQShqIQVBACkDmIkBIQBBACkDkIkBIQZBACkDiIkBIQdBACkDgIkBIQggAyEJA0AgASAANwMYIAEgBjcDECABIAc3AwggASAINwMAIAEgA0EFdCIDQdGJAWoiCikDADcDKCABIANB2YkBaiILKQMANwMwIAEgA0HhiQFqIgwpAwA3AzggASADQemJAWoiDSkDADcDQCABIANB8YkBaikDADcDSCABIANB+YkBaikDADcDUCABIANBgYoBaikDADcDWCADQYmKAWopAwAhDiABQcAAOgBoIAEgDjcDYCABQgA3AyAgASAEOgBpIAEgADcDiAEgASAGNwOAASABIAc3A3ggASAINwNwIAFBkAFqIAFB8ABqIAVBwABCACAEQf8BcRACIAEpA7ABIQ4gASkDkAEhDyABKQO4ASEQIAEpA5gBIREgASkDwAEhEiABKQOgASETIA0gASkDyAEgASkDqAGFNwMAIAwgEiAThTcDACALIBAgEYU3AwAgCiAOIA+FNwMAIAlBf2oiCUH/AXEiAyACSw0AC0EAIAk6AJCKAQsgAUHQAWokAAvHCQIKfwV+IwBB4AJrIgUkAAJAAkAgAUGACEsNACAFIAA2AvwBIAVB/AFqIAFBgAhGIgZBECACQQEgA0EBQQIgBBABIAZBCnQiByABTw0BIAVB4ABqIgZCADcDACAFQdgAaiIIQgA3AwAgBUHQAGoiCUIANwMAIAVByABqIgpCADcDACAFQcAAaiILQgA3AwAgBUE4aiIMQgA3AwAgBUEwaiINQgA3AwAgBSADOgBqIAVCADcDKCAFQQA7AWggBUEAKQOAiQE3AwAgBUEAKQOIiQE3AwggBUEAKQOQiQE3AxAgBUEAKQOYiQE3AxggBSABQYAIRiIOrSACfDcDICAFIAAgB2pBACABIA4bEAQgBUGIAWpBMGogDSkDADcDACAFQYgBakE4aiAMKQMANwMAIAUgBSkDACIPNwOIASAFIAUpAwgiEDcDkAEgBSAFKQMQIhE3A5gBIAUgBSkDGCISNwOgASAFIAUpAyg3A7ABIAUtAGohACAFLQBpIQcgBSkDICECIAUtAGghASAFQYgBakHAAGogCykDADcDACAFQYgBakHIAGogCikDADcDACAFQYgBakHQAGogCSkDADcDACAFQYgBakHYAGogCCkDADcDACAFQYgBakHgAGogBikDADcDACAFIAE6APABIAUgAjcDqAEgBSAAIAdFckECciIAOgDxASAFIBI3A5gCIAUgETcDkAIgBSAQNwOIAiAFIA83A4ACIAVBoAJqIAVBgAJqIAVBsAFqIAEgAiAAQf8BcRACIAUpA8ACIQIgBSkDoAIhDyAFKQPIAiEQIAUpA6gCIREgBSkD0AIhEiAFKQOwAiETIAQgDkEFdGoiASAFKQPYAiAFKQO4AoU3AxggASASIBOFNwMQIAEgECARhTcDCCABIAIgD4U3AwBBAkEBIA4bIQYMAQsgAEIBIAFBf2pBCnZBAXKteUI/hYYiD6dBCnQiDiACIAMgBRAGIQcgACAOaiABIA5rIA9C////AYMgAnwgAyAFQcAAQSAgDkGACEsbahAGIQECQCAHQQFHDQAgBCAFKQMANwMAIAQgBSkDCDcDCCAEIAUpAxA3AxAgBCAFKQMYNwMYIAQgBSkDIDcDICAEIAUpAyg3AyggBCAFKQMwNwMwIAQgBSkDODcDOEECIQYMAQtBACEGQQAhAAJAIAEgB2oiCUECSQ0AIAlBfmoiCkEBdkEBaiIGQQNxIQ5BACEHAkAgCkEGSQ0AIAZB/P///wdxIQhBACEHIAVBiAFqIQEgBSEAA0AgASAANgIAIAFBDGogAEHAAWo2AgAgAUEIaiAAQYABajYCACABQQRqIABBwABqNgIAIABBgAJqIQAgAUEQaiEBIAggB0EEaiIHRw0ACwsgCkF+cSEIAkAgDkUNACAFIAdBBnRqIQEgBUGIAWogB0ECdGohAANAIAAgATYCACABQcAAaiEBIABBBGohACAOQX9qIg4NAAsLIAhBAmohAAsgBUGIAWogBkEBQgBBACADQQRyQQBBACAEEAEgACAJTw0AIAQgBkEFdGoiASAFIAZBBnRqIgApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggBkEBaiEGCyAFQeACaiQAIAYLrRAIAn8EfgF/AX4EfwR+BH8EfiMAQfABayIBJAACQCAARQ0AAkBBAC0AkIoBIgINACABQTBqQQApA9CJATcDACABQThqQQApA9iJATcDACABQQApA6CJASIDNwMAIAFBACkDqIkBIgQ3AwggAUEAKQOwiQEiBTcDECABQQApA7iJASIGNwMYIAFBACkDyIkBNwMoQQAtAIqKASECQQAtAImKASEHQQApA8CJASEIQQAtAIiKASEJIAFBwABqQQApA+CJATcDACABQcgAakEAKQPoiQE3AwAgAUHQAGpBACkD8IkBNwMAIAFB2ABqQQApA/iJATcDACABQeAAakEAKQOAigE3AwAgASAJOgBoIAEgCDcDICABIAIgB0VyIgJBAnI6AGkgAUEoaiEKQgAhCEGACSELIAJBCnJB/wFxIQwDQCABQbABaiABIAogCUH/AXEgCCAMEAIgASABKQPQASINIAEpA7ABhTcDcCABIAEpA9gBIg4gASkDuAGFNwN4IAEgASkD4AEiDyABKQPAAYU3A4ABIAEgASkD6AEiECAGhTcDqAEgASAPIAWFNwOgASABIA4gBIU3A5gBIAEgDSADhTcDkAEgASAQIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQAMAgsLAkACQAJAQQAtAImKASIHQQZ0QQBBAC0AiIoBIhFrRg0AIAEgEToAaCABQQApA4CKATcDYCABQQApA/iJATcDWCABQQApA/CJATcDUCABQQApA+iJATcDSCABQQApA+CJATcDQCABQQApA9iJATcDOCABQQApA9CJATcDMCABQQApA8iJATcDKCABQQApA8CJASIINwMgIAFBACkDuIkBIgM3AxggAUEAKQOwiQEiBDcDECABQQApA6iJASIFNwMIIAFBACkDoIkBIgY3AwAgAUEALQCKigEiEyAHRXJBAnIiCzoAaSATQQRyIRNBACkDmIkBIQ1BACkDkIkBIQ5BACkDiIkBIQ9BACkDgIkBIRAMAQtBwAAhESABQcAAOgBoQgAhCCABQgA3AyAgAUEAKQOYiQEiDTcDGCABQQApA5CJASIONwMQIAFBACkDiIkBIg83AwggAUEAKQOAiQEiEDcDACABQQAtAIqKAUEEciITOgBpIAEgAkF+aiICQQV0IgdByYoBaikDADcDYCABIAdBwYoBaikDADcDWCABIAdBuYoBaikDADcDUCABIAdBsYoBaikDADcDSCABIAdBqYoBaikDADcDQCABIAdBoYoBaikDADcDOCABIAdBmYoBaikDADcDMCABIAdBkYoBaikDADcDKCATIQsgECEGIA8hBSAOIQQgDSEDIAJFDQELIAJBf2oiB0EFdCIUQZGKAWopAwAhFSAUQZmKAWopAwAhFiAUQaGKAWopAwAhFyAUQamKAWopAwAhGCABIAM3A4gBIAEgBDcDgAEgASAFNwN4IAEgBjcDcCABQbABaiABQfAAaiABQShqIhQgESAIIAtB/wFxEAIgASATOgBpIAFBwAA6AGggASAYNwNAIAEgFzcDOCABIBY3AzAgASAVNwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggB0UNACACQQV0QemJAWohAiATQf8BcSERA0AgAkFoaikDACEIIAJBcGopAwAhAyACQXhqKQMAIQQgAikDACEFIAEgDTcDiAEgASAONwOAASABIA83A3ggASAQNwNwIAFBsAFqIAFB8ABqIBRBwABCACAREAIgASATOgBpIAFBwAA6AGggASAFNwNAIAEgBDcDOCABIAM3AzAgASAINwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggAkFgaiECIAdBf2oiBw0ACwsgAUEoaiEJQgAhCEGACSELIBNBCHJB/wFxIQoDQCABQbABaiABIAlBwAAgCCAKEAIgASABKQPQASIDIAEpA7ABhTcDcCABIAEpA9gBIgQgASkDuAGFNwN4IAEgASkD4AEiBSABKQPAAYU3A4ABIAEgDSABKQPoASIGhTcDqAEgASAOIAWFNwOgASABIA8gBIU3A5gBIAEgECADhTcDkAEgASAGIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQALCyABQfABaiQAC6MCAQR+AkACQCAAQSBGDQBCq7OP/JGjs/DbACEBQv+kuYjFkdqCm38hAkLy5rvjo6f9p6V/IQNC58yn0NbQ67O7fyEEQQAhAAwBC0EAKQOYCSEBQQApA5AJIQJBACkDiAkhA0EAKQOACSEEQRAhAAtBACAAOgCKigFBAEIANwOAigFBAEIANwP4iQFBAEIANwPwiQFBAEIANwPoiQFBAEIANwPgiQFBAEIANwPYiQFBAEIANwPQiQFBAEIANwPIiQFBAEIANwPAiQFBACABNwO4iQFBACACNwOwiQFBACADNwOoiQFBACAENwOgiQFBACABNwOYiQFBACACNwOQiQFBACADNwOIiQFBACAENwOAiQFBAEEAOgCQigFBAEEAOwGIigELBgAgABADCwYAIAAQBwsGAEGAiQELqwIBBH4CQAJAIAFBIEYNAEKrs4/8kaOz8NsAIQNC/6S5iMWR2oKbfyEEQvLmu+Ojp/2npX8hBULnzKfQ1tDrs7t/IQZBACEBDAELQQApA5gJIQNBACkDkAkhBEEAKQOICSEFQQApA4AJIQZBECEBC0EAIAE6AIqKAUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQgA3A8CJAUEAIAM3A7iJAUEAIAQ3A7CJAUEAIAU3A6iJAUEAIAY3A6CJAUEAIAM3A5iJAUEAIAQ3A5CJAUEAIAU3A4iJAUEAIAY3A4CJAUEAQQA6AJCKAUEAQQA7AYiKASAAEAMgAhAHCwsLAQBBgAgLBHgHAAA=",mn="215d875f",Le={name:Mr,data:Mn,hash:mn};let Ja=new o,Ji=null;function Co(S){return!Number.isInteger(S)||S<8||S%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..."):null}function Ti(S,q=256,M=null){if(Co(q))return Promise.reject(Co(q));let Y=null,ie=0;if(M!==null){if(Y=C(M),Y.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));ie=32}let ae=q/8,ge=ae;if(Ji===null||Ji.hashLength!==ae)return E(Ja,Le,ae).then(xe=>(Ji=xe,ie===32&&Ji.writeMemory(Y),Ji.calculate(S,ie,ge)));try{ie===32&&Ji.writeMemory(Y);let xe=Ji.calculate(S,ie,ge);return Promise.resolve(xe)}catch(xe){return Promise.reject(xe)}}function A(S=256,q=null){if(Co(S))return Promise.reject(Co(S));let M=null,Y=0;if(q!==null){if(M=C(q),M.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));Y=32}let ie=S/8,ae=ie;return v(Le,ie).then(ge=>{Y===32&&ge.writeMemory(M),ge.init(Y);let xe={init:Y===32?()=>(ge.writeMemory(M),ge.init(Y),xe):()=>(ge.init(Y),xe),update:Je=>(ge.update(Je),xe),digest:Je=>ge.digest(Je,ae),save:()=>ge.save(),load:Je=>(ge.load(Je),xe),blockSize:64,digestSize:ie};return xe})}var k="crc32",O="AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQZDJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAgtIYXNoX1VwZGF0ZQADCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKkggHBQBBgAkLwwMBA39BgIkBIQFBACECA0AgAUEAQQBBAEEAQQBBAEEAQQAgAkEBcWsgAHEgAkEBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnM2AgAgAUEEaiEBIAJBAWoiAkGAAkcNAAtBACEAA0AgAEGEkQFqIABBhIkBaigCACICQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEmQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYShAWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhKkBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEsQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYS5AWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhMEBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzNgIAIABBBGoiAEH8B0cNAAsLJwACQEEAKAKAyQEgAEYNACAAEAFBACAANgKAyQELQQBBADYChMkBC4gDAQN/QQAoAoTJAUF/cyEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAJBBGooAgAiA0EOdkH8B3FBgJEBaigCACADQRZ2QfwHcUGAiQFqKAIAcyADQQZ2QfwHcUGAmQFqKAIAcyADQf8BcUECdEGAoQFqKAIAcyACKAIAIAFzIgFBFnZB/AdxQYCpAWooAgBzIAFBDnZB/AdxQYCxAWooAgBzIAFBBnZB/AdxQYC5AWooAgBzIAFB/wFxQQJ0QYDBAWooAgBzIQEgAkEIaiECIABBeGoiAEEHSw0ACwsCQCAARQ0AAkACQCAAQQFxDQAgACEDDAELIAFB/wFxIAItAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQFqIQIgAEF/aiEDCyAAQQFGDQADQCABQf8BcSACLQAAc0ECdEGAiQFqKAIAIAFBCHZzIgFB/wFxIAJBAWotAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQJqIQIgA0F+aiIDDQALC0EAIAFBf3M2AoTJAQsyAQF/QQBBACgChMkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgKACQsGAEGEyQELWQACQEEAKAKAyQEgAUYNACABEAFBACABNgKAyQELQQBBADYChMkBIAAQA0EAQQAoAoTJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAkLCwsBAEGACAsEBAAAAA==",V="d2eba587",H={name:k,data:O,hash:V};let W=new o,ue=null;function Re(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Polynomial must be a valid 32-bit long unsigned integer"):null}function Ye(S,q=3988292384){if(Re(q))return Promise.reject(Re(q));if(ue===null)return E(W,H,4).then(M=>(ue=M,ue.calculate(S,q)));try{let M=ue.calculate(S,q);return Promise.resolve(M)}catch(M){return Promise.reject(M)}}function Ie(S=3988292384){return Re(S)?Promise.reject(Re(S)):v(H,4).then(q=>{q.init(S);let M={init:()=>(q.init(S),M),update:Y=>(q.update(Y),M),digest:Y=>q.digest(Y),save:()=>q.save(),load:Y=>(q.load(Y),M),blockSize:4,digestSize:4};return M})}var Fe="crc64",yn="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==",bs="c5ac6c16",vs={name:Fe,data:yn,hash:bs};let ks=new o,ji=null,Ln=new Uint8Array(8);function f0(S){let q="Polynomial must be provided as a 16 char long hex string";if(typeof S!="string"||S.length!==16)return{hi:0,lo:0,err:new Error(q)};let M=+`0x${S.slice(0,8)}`,Y=+`0x${S.slice(8)}`;return Number.isNaN(M)||Number.isNaN(Y)?{hi:M,lo:Y,err:new Error(q)}:{hi:M,lo:Y,err:null}}function pu(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function Xw(S,q="c96c5795d7870f42"){let{hi:M,lo:Y,err:ie}=f0(q);if(ie!==null)return Promise.reject(ie);if(ji===null)return E(ks,vs,8).then(ae=>(ji=ae,pu(Ln.buffer,Y,M),ji.writeMemory(Ln),ji.calculate(S)));try{pu(Ln.buffer,Y,M),ji.writeMemory(Ln);let ae=ji.calculate(S);return Promise.resolve(ae)}catch(ae){return Promise.reject(ae)}}function Zw(S="c96c5795d7870f42"){let{hi:q,lo:M,err:Y}=f0(S);return Y!==null?Promise.reject(Y):v(vs,8).then(ie=>{let ae=new Uint8Array(8);pu(ae.buffer,M,q),ie.writeMemory(ae),ie.init();let ge={init:()=>(ie.writeMemory(ae),ie.init(),ge),update:xe=>(ie.update(xe),ge),digest:xe=>ie.digest(xe),save:()=>ie.save(),load:xe=>(ie.load(xe),ge),blockSize:8,digestSize:8};return ge})}var he="md4",Ze="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",Lr="bd8ce7c7",In={name:he,data:Ze,hash:Lr};let ex=new o,A0=null;function OO(S){if(A0===null)return E(ex,In,16).then(q=>(A0=q,A0.calculate(S)));try{let q=A0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function MO(){return v(In,16).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:16};return q})}var LO="md5",HO="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",KO="e6508e4b",fv={name:LO,data:HO,hash:KO};let GO=new o,h0=null;function zO(S){if(h0===null)return E(GO,fv,16).then(q=>(h0=q,h0.calculate(S)));try{let q=h0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function JO(){return v(fv,16).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:16};return q})}var jO="sha1",$O="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",VO="6b530c24",Av={name:jO,data:$O,hash:VO};let YO=new o,g0=null;function WO(S){if(g0===null)return E(YO,Av,20).then(q=>(g0=q,g0.calculate(S)));try{let q=g0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function XO(){return v(Av,20).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:20};return q})}var ZO="sha3",eM="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",tM="fb24e536",p0={name:ZO,data:eM,hash:tM};let rM=new o,mu=null;function m0(S){return[224,256,384,512].includes(S)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function iM(S,q=512){if(m0(q))return Promise.reject(m0(q));let M=q/8;if(mu===null||mu.hashLength!==M)return E(rM,p0,M).then(Y=>(mu=Y,mu.calculate(S,q,6)));try{let Y=mu.calculate(S,q,6);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function nM(S=512){if(m0(S))return Promise.reject(m0(S));let q=S/8;return v(p0,q).then(M=>{M.init(S);let Y={init:()=>(M.init(S),Y),update:ie=>(M.update(ie),Y),digest:ie=>M.digest(ie,6),save:()=>M.save(),load:ie=>(M.load(ie),Y),blockSize:200-2*q,digestSize:q};return Y})}let sM=new o,yu=null;function y0(S){return[224,256,384,512].includes(S)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function oM(S,q=512){if(y0(q))return Promise.reject(y0(q));let M=q/8;if(yu===null||yu.hashLength!==M)return E(sM,p0,M).then(Y=>(yu=Y,yu.calculate(S,q,1)));try{let Y=yu.calculate(S,q,1);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function aM(S=512){if(y0(S))return Promise.reject(y0(S));let q=S/8;return v(p0,q).then(M=>{M.init(S);let Y={init:()=>(M.init(S),Y),update:ie=>(M.update(ie),Y),digest:ie=>M.digest(ie,1),save:()=>M.save(),load:ie=>(M.load(ie),Y),blockSize:200-2*q,digestSize:q};return Y})}var cM="sha256",lM="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c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJz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",dM="8c18dd94",I0={name:cM,data:lM,hash:dM};let uM=new o,w0=null;function fM(S){if(w0===null)return E(uM,I0,28).then(q=>(w0=q,w0.calculate(S,224)));try{let q=w0.calculate(S,224);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function AM(){return v(I0,28).then(S=>{S.init(224);let q={init:()=>(S.init(224),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:28};return q})}let hM=new o,x0=null;function gM(S){if(x0===null)return E(hM,I0,32).then(q=>(x0=q,x0.calculate(S,256)));try{let q=x0.calculate(S,256);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function hv(){return v(I0,32).then(S=>{S.init(256);let q={init:()=>(S.init(256),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:32};return q})}var pM="sha512",mM="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",yM="f2e40eb1",C0={name:pM,data:mM,hash:yM};let IM=new o,E0=null;function wM(S){if(E0===null)return E(IM,C0,48).then(q=>(E0=q,E0.calculate(S,384)));try{let q=E0.calculate(S,384);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function xM(){return v(C0,48).then(S=>{S.init(384);let q={init:()=>(S.init(384),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:128,digestSize:48};return q})}let CM=new o,B0=null;function EM(S){if(B0===null)return E(CM,C0,64).then(q=>(B0=q,B0.calculate(S,512)));try{let q=B0.calculate(S,512);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function BM(){return v(C0,64).then(S=>{S.init(512);let q={init:()=>(S.init(512),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:128,digestSize:64};return q})}var bM="xxhash32",vM="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",kM="4bb12485",gv={name:bM,data:vM,hash:kM};let SM=new o,b0=null;function v0(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be a valid 32-bit long unsigned integer."):null}function DM(S,q=0){if(v0(q))return Promise.reject(v0(q));if(b0===null)return E(SM,gv,4).then(M=>(b0=M,b0.calculate(S,q)));try{let M=b0.calculate(S,q);return Promise.resolve(M)}catch(M){return Promise.reject(M)}}function QM(S=0){return v0(S)?Promise.reject(v0(S)):v(gv,4).then(q=>{q.init(S);let M={init:()=>(q.init(S),M),update:Y=>(q.update(Y),M),digest:Y=>q.digest(Y),save:()=>q.save(),load:Y=>(q.load(Y),M),blockSize:16,digestSize:4};return M})}var _M="xxhash64",FM="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",PM="177fbfa3",pv={name:_M,data:FM,hash:PM};let TM=new o,hl=null,k0=new Uint8Array(8);function Eo(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function tx(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function UM(S,q=0,M=0){if(Eo(q))return Promise.reject(Eo(q));if(Eo(M))return Promise.reject(Eo(M));if(hl===null)return E(TM,pv,8).then(Y=>(hl=Y,tx(k0.buffer,q,M),hl.writeMemory(k0),hl.calculate(S)));try{tx(k0.buffer,q,M),hl.writeMemory(k0);let Y=hl.calculate(S);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function RM(S=0,q=0){return Eo(S)?Promise.reject(Eo(S)):Eo(q)?Promise.reject(Eo(q)):v(pv,8).then(M=>{let Y=new Uint8Array(8);tx(Y.buffer,S,q),M.writeMemory(Y),M.init();let ie={init:()=>(M.writeMemory(Y),M.init(),ie),update:ae=>(M.update(ae),ie),digest:ae=>M.digest(ae),save:()=>M.save(),load:ae=>(M.load(ae),ie),blockSize:32,digestSize:8};return ie})}var NM="xxhash3",qM="AGFzbQEAAAABNAhgAAF/YAR/f39/AGAHf39/f39/fwBgBH9+fn4BfmAEf39/fgF+YAN/f34BfmAAAGABfwADDg0AAQIDBAUFBQYHBgAGBQQBAQICBg4CfwFBwI4FC38AQcAJCwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQr6QQ0FAEGACgvkAwMPfgF/AX4CQCADRQ0AIAApAzAhBCAAKQM4IQUgACkDICEGIAApAyghByAAKQMQIQggACkDGCEJIAApAwAhCiAAKQMIIQsDQCAFIAFBMGopAwAiDHwgAkE4aikDACABQThqKQMAIg2FIgVCIIggBUL/////D4N+fCEFIAcgAUEgaikDACIOfCACQShqKQMAIAFBKGopAwAiD4UiB0IgiCAHQv////8Pg358IQcgCSABQRBqKQMAIhB8IAJBGGopAwAgAUEYaikDACIRhSIJQiCIIAlC/////w+DfnwhCSALIAEpAwAiEnwgAkEIaiITKQMAIAFBCGopAwAiFIUiC0IgiCALQv////8Pg358IQsgAkEwaikDACAMhSIMQiCIIAxC/////w+DfiAEfCANfCEEIAJBIGopAwAgDoUiDEIgiCAMQv////8Pg34gBnwgD3whBiACQRBqKQMAIBCFIgxCIIggDEL/////D4N+IAh8IBF8IQggAikDACAShSIMQiCIIAxC/////w+DfiAKfCAUfCEKIAFBwABqIQEgEyECIANBf2oiAw0ACyAAIAk3AxggACAKNwMAIAAgCzcDCCAAIAc3AyggACAINwMQIAAgBTcDOCAAIAY3AyAgACAENwMwCwveAgIBfwF+AkAgBCACIAEoAgAiB2siAkkNACAAIAMgBSAHQQN0aiACEAEgACAFIAZqIgcpAwAgACkDACIIQi+IhSAIhUKx893xCX43AwAgACAHKQMIIAApAwgiCEIviIUgCIVCsfPd8Ql+NwMIIAAgBykDECAAKQMQIghCL4iFIAiFQrHz3fEJfjcDECAAIAcpAxggACkDGCIIQi+IhSAIhUKx893xCX43AxggACAHKQMgIAApAyAiCEIviIUgCIVCsfPd8Ql+NwMgIAAgBykDKCAAKQMoIghCL4iFIAiFQrHz3fEJfjcDKCAAIAcpAzAgACkDMCIIQi+IhSAIhUKx893xCX43AzAgACAHKQM4IAApAzgiCEIviIUgCIVCsfPd8Ql+NwM4IAAgAyACQQZ0aiAFIAQgAmsiBxABIAEgBzYCAA8LIAAgAyAFIAdBA3RqIAQQASABIAcgBGo2AgALhQEBAX8gAiABhSADpyIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq1CIIYgA4V9QQA1AoCMAUIghiAAQfyLAWo1AgCEhSIDQjGJIANCGImFIAOFQqW+4/TRjIfZn39+IgNCI4ggAK18IAOFQqW+4/TRjIfZn39+IgNCHIggA4ULZwAgAiABc60gA3wiA0IhiEEALQCAjAFBEHQgAEEIdHIgAEEBdkGAjAFqLQAAQRh0ciAAQf+LAWotAAByrYUgA4VCz9bTvtLHq9lCfiIDQh2IIAOFQvnz3fGZ9pmrFn4iA0IgiCADhQuJAwEEfgJAIABBCUkNAEEAKQOAjAEgASkDICABKQMYhSACfIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAArXwgAEH4iwFqKQMAIAEpAzAgASkDKIUgAn2FIgJ8IAJC/////w+DIgQgA0IgiCIFfiIGQv////8PgyACQiCIIgIgA0L/////D4MiA358IAQgA34iA0IgiHwiBEIghiADQv////8Pg4QgBkIgiCACIAV+fCAEQiCIfIV8IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFDwsCQCAAQQRJDQAgACABQQhqKQMAIAFBEGopAwAgAhADDwsCQCAARQ0AIAAgASgCACABQQRqKAIAIAIQBA8LIAEpAzggASkDQIUgAoUiA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC94IAQZ+IACtQoeVr6+Ytt6bnn9+IQMCQCAAQSFJDQACQCAAQcEASQ0AAkAgAEHhAEkNACABKQNoIAJ9QQApA7iMAYUiBEL/////D4MiBSABKQNgIAJ8QQApA7CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDeCACfSAAQciLAWopAwCFIgNC/////w+DIgQgASkDcCACfCAAQcCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQNIIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQNAIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDWCACfSAAQdiLAWopAwCFIgNC/////w+DIgQgASkDUCACfCAAQdCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMoIAJ9QQApA5iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA5CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDOCACfSAAQeiLAWopAwCFIgNC/////w+DIgQgASkDMCACfCAAQeCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMIIAJ9QQApA4iMAYUiBEL/////D4MiBSABKQMAIAJ8QQApA4CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDGCACfSAAQfiLAWopAwCFIgNC/////w+DIgQgASkDECACfCAAQfCLAWopAwCFIgJCIIgiBX4iBkL/////D4MgA0IgiCIDIAJC/////w+DIgJ+fCAEIAJ+IgJCIIh8IgRCIIYgAkL/////D4OEIAZCIIggAyAFfnwgBEIgiHyFfCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQv8CgQBfwV+An8BfkEAIQMgASkDeCACfUEAKQP4jAGFIgRC/////w+DIgUgASkDcCACfEEAKQPwjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpA2ggAn1BACkD6IwBhSIEQv////8PgyIFIAEpA2AgAnxBACkD4IwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQNYIAJ9QQApA9iMAYUiBEL/////D4MiBSABKQNQIAJ8QQApA9CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDSCACfUEAKQPIjAGFIgRC/////w+DIgUgASkDQCACfEEAKQPAjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAzggAn1BACkDuIwBhSIEQv////8PgyIFIAEpAzAgAnxBACkDsIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQMoIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDGCACfUEAKQOYjAGFIgRC/////w+DIgUgASkDECACfEEAKQOQjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAwggAn1BACkDiIwBhSIEQv////8PgyIFIAEpAwAgAnxBACkDgIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSAArUKHla+vmLbem55/fnx8fHx8fHx8IgRCJYggBIVC+fPd8ZnymasWfiIEQiCIIASFIQQCQCAAQZABSA0AIABBBHZBeGohCQNAIAEgA2oiCkELaikDACACfSADQYiNAWopAwCFIgVC/////w+DIgYgCkEDaikDACACfCADQYCNAWopAwCFIgdCIIgiCH4iC0L/////D4MgBUIgiCIFIAdC/////w+DIgd+fCAGIAd+IgZCIIh8IgdCIIYgBkL/////D4OEIAtCIIggBSAIfnwgB0IgiHyFIAR8IQQgA0EQaiEDIAlBf2oiCQ0ACwsgASkDfyACfSAAQfiLAWopAwCFIgVC/////w+DIgYgASkDdyACfCAAQfCLAWopAwCFIgJCIIgiB34iCEL/////D4MgBUIgiCIFIAJC/////w+DIgJ+fCAGIAJ+IgJCIIh8IgZCIIYgAkL/////D4OEIAhCIIggBSAHfnwgBkIgiHyFIAR8IgJCJYggAoVC+fPd8ZnymasWfiICQiCIIAKFC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAA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QQApA4CKATcDACACQQApA4iKATcDCCACQQApA5CKATcDECACQQApA5iKATcDGCACQQApA6CKATcDICACQQApA6iKATcDKCACQQApA7CKASIFNwMwIAJBACkDuIoBIgY3AzgCQAJAQQAoAoCOASIHQcAASQ0AIAJBACgCiI4BNgJAIAIgAkHAAGpBACgCmI4BQYCMASAHQX9qQQZ2IANBACgCnI4BIgAQAiADIABqIgBBeWopAwAhCCAAKQMJIQkgACkDGSEKIAApAykhCyAHQcCLAWopAwAhBSAAKQMBIQwgB0HIiwFqKQMAIQYgB0HQiwFqKQMAIQ0gACkDESEOIAdB2IsBaikDACEPIAdB4IsBaikDACEQIAApAyEhESAHQeiLAWopAwAhEiACKQMAIRMgAikDECEUIAIpAyAhFSACKQMwIRYgAikDCCEXIAIpAxghGCACKQMoIRkgAiACKQM4IAdB8IsBaikDACIafCAAKQMxIAdB+IsBaikDACIbhSIcQiCIIBxC/////w+Dfnw3AzggGSAQfCARIBKFIhFCIIggEUL/////D4N+fCERIBggDXwgDiAPhSIOQiCIIA5C/////w+DfnwhDiAXIAV8IAwgBoUiDEIgiCAMQv////8Pg358IQwgGyAWIAsgGoUiC0IgiCALQv////8Pg358fCELIBIgFSAKIBCFIhBCIIggEEL/////D4N+fHwhECAPIBQgCSANhSINQiCIIA1C/////w+Dfnx8IRIgBiATIAggBYUiBUIgiCAFQv////8Pg358fCEIDAELIAdBwI0BaiEdQcAAIAdrIR4gAkHAAGohAAJAAkACQCAHQThNDQAgHiEfDAELAkACQEE4IAdrQQN2QQFqQQdxIh8NACACQcAAaiEAIB4hHwwBCyACQcAAaiEAIB9BA3QiICEfA0AgACAdKQMANwMAIABBCGohACAdQQhqIR0gH0F4aiIfDQALQcAAIAcgIGprIR8LAkAgBw0AA0AgACAdKQMANwMAIABBCGogHUEIaikDADcDACAAQRBqIB1BEGopAwA3AwAgAEEYaiAdQRhqKQMANwMAIABBIGogHUEgaikDADcDACAAQShqIB1BKGopAwA3AwAgAEEwaiAdQTBqKQMANwMAIABBOGogHUE4aikDADcDACAAQcAAaiEAIB1BwABqIR0gH0FAaiIfQQdLDQALCyAfRQ0BCyAfQX9qISECQCAfQQdxIiBFDQAgH0F4cSEfA0AgACAdLQAAOgAAIABBAWohACAdQQFqIR0gIEF/aiIgDQALCyAhQQdJDQADQCAAIB0pAAA3AAAgAEEIaiEAIB1BCGohHSAfQXhqIh8NAAsLIAJBwABqIB5qIR1BgIwBIQACQAJAAkAgB0EISQ0AAkAgB0E4akEDdkEBakEHcSIfDQAMAgsgH0EDdCEgQYCMASEAA0AgHSAAKQMANwMAIB1BCGohHSAAQQhqIQAgH0F/aiIfDQALIAcgIGshBwsgB0UNAQJAAkAgB0EHcSIgDQAgByEfDAELIAdBeHEhHwNAIB0gAC0AADoAACAdQQFqIR0gAEEBaiEAICBBf2oiIA0ACwsgB0EISQ0BCwNAIB0gACkAADcAACAdQQhqIR0gAEEIaiEAIB9BeGoiHw0ACwsgA0EAKAKcjgFqIgBBeWopAwAhCiAAKQMJIRMgACkDGSEUIAApAykhCyAAKQMBIQwgACkDESEOIAApAyEhESACKQMAIRUgAikDECEWIAIpAyAhFyACKQMIIRggAikDQCENIAIpA0ghDyACKQMYIRkgAikDUCESIAIpA1ghCCACKQMoIRogAikDYCEQIAIpA2ghCSACIAYgAikDcCIbfCAAKQMxIAIpA3giBoUiHEIgiCAcQv////8Pg358NwM4IBogEHwgESAJhSIRQiCIIBFC/////w+DfnwhESAZIBJ8IA4gCIUiDkIgiCAOQv////8Pg358IQ4gGCANfCAMIA+FIgxCIIggDEL/////D4N+fCEMIAYgCyAbhSILQiCIIAtC/////w+DfiAFfHwhCyAJIBcgFCAQhSIFQiCIIAVC/////w+Dfnx8IRAgCCAWIBMgEoUiBUIgiCAFQv////8Pg358fCESIA8gFSAKIA2FIgVCIIggBUL/////D4N+fHwhCAsgAykDQyACKQM4hSIFQv////8PgyIGIAMpAzsgC4UiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDMyARhSIFQv////8PgyIGIAMpAysgEIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDIyAOhSIFQv////8PgyIGIAMpAxsgEoUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDEyAMhSIFQv////8PgyIGIAMpAwsgCIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgBEKHla+vmLbem55/fnx8fHwiBEIliCAEhUL5893xmfKZqxZ+IgRCIIggBIUhBAwBCyAEpyEAAkBBACkDoI4BIgRQDQACQCAAQRBLDQAgAEGACCAEEAUhBAwCCwJAIABBgAFLDQAgAEGACCAEEAYhBAwCCyAAQYAIIAQQByEEDAELAkAgAEEQSw0AIAAgA0IAEAUhBAwBCwJAIABBgAFLDQAgACADQgAQBiEEDAELIAAgA0IAEAchBAtBACAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwOACiABJAALBgBBgIoBCwIACwvMAQEAQYAIC8QBuP5sOSOkS758AYEs9yGtHN7UbemDkJfbckCkpLezZx/LeeZOzMDleIJa0H3M/3IhuAhGdPdDJI7gNZDmgTomTDwoUruRwwDLiNBlixtTLqNxZEiXog35TjgZ70ap3qzYqPp2P+OcND/53LvHxwtPHYpR4EvNtFkxyJ9+ydl4c2TqxayDNNPrw8WBoP/6E2PrFw3dUbfw2knTFlUmKdRonisWvlh9R6H8j/i40XrQMc5FyzqPlRYEKK/X+8q7S0B+QAIAAA==",OM="5a2fbdbb",mv={name:NM,data:qM,hash:OM};let MM=new o,gl=null,S0=new Uint8Array(8);function Bo(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function rx(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function LM(S,q=0,M=0){if(Bo(q))return Promise.reject(Bo(q));if(Bo(M))return Promise.reject(Bo(M));if(gl===null)return E(MM,mv,8).then(Y=>(gl=Y,rx(S0.buffer,q,M),gl.writeMemory(S0),gl.calculate(S)));try{rx(S0.buffer,q,M),gl.writeMemory(S0);let Y=gl.calculate(S);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function HM(S=0,q=0){return Bo(S)?Promise.reject(Bo(S)):Bo(q)?Promise.reject(Bo(q)):v(mv,8).then(M=>{let Y=new Uint8Array(8);rx(Y.buffer,S,q),M.writeMemory(Y),M.init();let ie={init:()=>(M.writeMemory(Y),M.init(),ie),update:ae=>(M.update(ae),ie),digest:ae=>M.digest(ae),save:()=>M.save(),load:ae=>(M.load(ae),ie),blockSize:512,digestSize:8};return ie})}var KM="xxhash128",GM="AGFzbQEAAAABKwdgAAF/YAR/f39/AGAHf39/f39/fwBgA39/fgF+YAR/f39+AGAAAGABfwADDQwAAQIDBAQEBQYFAAUFBAEBAgIGDgJ/AUHAjgULfwBBwAkLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAcLSGFzaF9VcGRhdGUACApIYXNoX0ZpbmFsAAkNSGFzaF9HZXRTdGF0ZQAKDkhhc2hfQ2FsY3VsYXRlAAsKU1RBVEVfU0laRQMBCqBNDAUAQYAKC+QDAw9+AX8BfgJAIANFDQAgACkDMCEEIAApAzghBSAAKQMgIQYgACkDKCEHIAApAxAhCCAAKQMYIQkgACkDACEKIAApAwghCwNAIAUgAUEwaikDACIMfCACQThqKQMAIAFBOGopAwAiDYUiBUIgiCAFQv////8Pg358IQUgByABQSBqKQMAIg58IAJBKGopAwAgAUEoaikDACIPhSIHQiCIIAdC/////w+DfnwhByAJIAFBEGopAwAiEHwgAkEYaikDACABQRhqKQMAIhGFIglCIIggCUL/////D4N+fCEJIAsgASkDACISfCACQQhqIhMpAwAgAUEIaikDACIUhSILQiCIIAtC/////w+DfnwhCyACQTBqKQMAIAyFIgxCIIggDEL/////D4N+IAR8IA18IQQgAkEgaikDACAOhSIMQiCIIAxC/////w+DfiAGfCAPfCEGIAJBEGopAwAgEIUiDEIgiCAMQv////8Pg34gCHwgEXwhCCACKQMAIBKFIgxCIIggDEL/////D4N+IAp8IBR8IQogAUHAAGohASATIQIgA0F/aiIDDQALIAAgCTcDGCAAIAo3AwAgACALNwMIIAAgBzcDKCAAIAg3AxAgACAFNwM4IAAgBjcDICAAIAQ3AzALC94CAgF/AX4CQCAEIAIgASgCACIHayICSQ0AIAAgAyAFIAdBA3RqIAIQASAAIAUgBmoiBykDACAAKQMAIghCL4iFIAiFQrHz3fEJfjcDACAAIAcpAwggACkDCCIIQi+IhSAIhUKx893xCX43AwggACAHKQMQIAApAxAiCEIviIUgCIVCsfPd8Ql+NwMQIAAgBykDGCAAKQMYIghCL4iFIAiFQrHz3fEJfjcDGCAAIAcpAyAgACkDICIIQi+IhSAIhUKx893xCX43AyAgACAHKQMoIAApAygiCEIviIUgCIVCsfPd8Ql+NwMoIAAgBykDMCAAKQMwIghCL4iFIAiFQrHz3fEJfjcDMCAAIAcpAzggACkDOCIIQi+IhSAIhUKx893xCX43AzggACADIAJBBnRqIAUgBCACayIHEAEgASAHNgIADwsgACADIAUgB0EDdGogBBABIAEgByAEajYCAAvtAwEFfiABKQM4IAApAziFIgNC/////w+DIgQgASkDMCAAKQMwhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMoIAApAyiFIgNC/////w+DIgQgASkDICAAKQMghSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMYIAApAxiFIgNC/////w+DIgQgASkDECAAKQMQhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMIIAApAwiFIgNC/////w+DIgQgASkDACAAKQMAhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSACfHx8fCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQu6CAIFfgN/AkAgAUEJSQ0AIAAgAUH4iwFqKQMAIgQgAikDOCACKQMwhSADfIUiBUL/////D4NC95Svrwh+IAVCgICAgHCDfEEAKQOAjAEgAikDKCACKQMghSADfYUgBIUiA0IgiCIEQrHz3fEJfnwgBEKHla+vCH4iBEIgiHwgBEL/////D4MgA0L/////D4MiA0Kx893xCX58IANCh5Wvrwh+IgRCIIh8IgVCIIh8IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgBEL/////D4MgAUF/aq1CNoaEIAVCIIZ8hSIEQiCIIgVCz9bTvgJ+IgZC/////w+DIARC/////w+DIgRCvdzKlQx+fCAEQs/W074CfiIEQiCIfCIHQiCGIghCJYggCCAEQv////8Pg4SFQvnz3fGZ8pmrFn4iBEIgiCAEhTcDACAAIAVCvdzKlQx+IANCz9bTvtLHq9lCfnwgBkIgiHwgB0IgiHwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4U3AwgPCwJAIAFBBEkNACAAIAIpAxggAikDEIUgA6ciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtQiCGIAOFfCABQfyLAWo1AgBCIIZBADUCgIwBhIUiA0IgiCIEIAFBAnRBh5Wvr3hqrSIFfiIGQiCIIARCsfPd8Ql+fCAGQv////8PgyADQv////8PgyIDQrHz3fEJfnwgAyAFfiIDQiCIfCIEQiCIfCAEQiCGIANC/////w+DhCIEQgGGfCIDQiWIIAOFQvnz3fGZ8pmrFn4iBUIgiCAFhTcDCCAAIANCA4ggBIUiA0IjiCADhUKlvuP00YyH2Z9/fiIDQhyIIAOFNwMADwsCQCABRQ0AIAAgAigCBCACKAIAc60gA3wiBEIhiEEALQCAjAFBEHQgAUEIdHIiCSABQQF2QYCMAWotAABBGHRyIgogAUH/iwFqLQAAIgFyIguthSAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMAIAAgAigCDCACKAIIc60gA30iA0IhiCABQRh0IAtBgP4DcUEIdHIgCUEIdkGA/gNxIApBGHZyckENd62FIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwgPCyAAIAIpA1AgAikDWIUgA4UiBEIhiCAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMIIAAgAikDQCACKQNIhSADhSIDQiGIIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwALwwoBCn4gAa0iBEKHla+vmLbem55/fiEFAkACQCABQSFPDQBCACEGDAELQgAhBwJAIAFBwQBJDQBCACEHAkAgAUHhAEkNACACQfgAaikDACADfSABQciLAWopAwAiCIUiB0L/////D4MiCSACKQNwIAN8IAFBwIsBaikDACIKhSILQiCIIgx+Ig1CIIggB0IgiCIHIAx+fCANQv////8PgyAHIAtC/////w+DIgt+fCAJIAt+IgdCIIh8IglCIIh8QQApA7iMASILQQApA7CMASIMfIUgCUIghiAHQv////8Pg4SFIQcgAkHoAGopAwAgA30gC4UiCUL/////D4MiCyACKQNgIAN8IAyFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCALIAx+IgtCIIh8IgxCIIYgC0L/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAV8IAggCnyFIQULIAJB2ABqKQMAIAN9IAFB2IsBaikDACIIhSIJQv////8PgyIKIAIpA1AgA3wgAUHQiwFqKQMAIguFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCAKIAx+IgpCIIh8IgxCIIYgCkL/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAd8QQApA6iMASIJQQApA6CMASIKfIUhByACQcgAaikDACADfSAJhSIJQv////8PgyIMIAIpA0AgA3wgCoUiCkIgiCINfiIGQv////8PgyAJQiCIIgkgCkL/////D4MiCn58IAwgCn4iCkIgiHwiDEIghiAKQv////8Pg4QgBkIgiCAJIA1+fCAMQiCIfIUgBXwgCCALfIUhBQsgAkE4aikDACADfSABQeiLAWopAwAiCIUiCUL/////D4MiCiACKQMwIAN8IAFB4IsBaikDACILhSIMQiCIIg1+IgZC/////w+DIAlCIIgiCSAMQv////8PgyIMfnwgCiAMfiIKQiCIfCIMQiCGIApC/////w+DhCAGQiCIIAkgDX58IAxCIIh8hSAHfEEAKQOYjAEiB0EAKQOQjAEiCXyFIQYgAkEoaikDACADfSAHhSIHQv////8PgyIKIAIpAyAgA3wgCYUiCUIgiCIMfiINQv////8PgyAHQiCIIgcgCUL/////D4MiCX58IAogCX4iCUIgiHwiCkIghiAJQv////8Pg4QgDUIgiCAHIAx+fCAKQiCIfIUgBXwgCCALfIUhBQsgACACQRhqKQMAIAN9IAFB+IsBaikDACIHhSIIQv////8PgyIJIAIpAxAgA3wgAUHwiwFqKQMAIgqFIgtCIIgiDH4iDUL/////D4MgCEIgiCIIIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAZ8QQApA4iMASIIQQApA4CMASIJfIUiCyACQQhqKQMAIAN9IAiFIghC/////w+DIgwgAikDACADfCAJhSIJQiCIIg1+IgZC/////w+DIAhCIIgiCCAJQv////8PgyIJfnwgDCAJfiIJQiCIfCIMQiCGIAlC/////w+DhCAGQiCIIAggDX58IAxCIIh8hSAFfCAHIAp8hSIFfCIHQiWIIAeFQvnz3fGZ8pmrFn4iB0IgiCAHhTcDACAAQgAgBUKHla+vmLbem55/fiAEIAN9Qs/W077Sx6vZQn58IAtC49zKlfzO8vWFf358IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFfTcDCAuhDwMBfxR+An9BACEEIAJB+ABqKQMAIAN9QQApA/iMASIFhSIGQv////8PgyIHIAIpA3AgA3xBACkD8IwBIgiFIglCIIgiCn4iC0L/////D4MgBkIgiCIGIAlC/////w+DIgl+fCAHIAl+IgdCIIh8IglCIIYgB0L/////D4OEIAtCIIggBiAKfnwgCUIgiHyFIAJB2ABqKQMAIAN9QQApA9iMASIHhSIGQv////8PgyIJIAIpA1AgA3xBACkD0IwBIgqFIgtCIIgiDH4iDUL/////D4MgBkIgiCIGIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAJBOGopAwAgA31BACkDuIwBIgmFIgZC/////w+DIgsgAikDMCADfEEAKQOwjAEiDIUiDUIgiCIOfiIPQv////8PgyAGQiCIIgYgDUL/////D4MiDX58IAsgDX4iC0IgiHwiDUIghiALQv////8Pg4QgD0IgiCAGIA5+fCANQiCIfIUgAkEYaikDACADfUEAKQOYjAEiC4UiBkL/////D4MiDSACKQMQIAN8QQApA5CMASIOhSIPQiCIIhB+IhFC/////w+DIAZCIIgiBiAPQv////8PgyIPfnwgDSAPfiINQiCIfCIPQiCGIA1C/////w+DhCARQiCIIAYgEH58IA9CIIh8hUEAKQOIjAEiDUEAKQOAjAEiD3yFfEEAKQOojAEiEEEAKQOgjAEiEXyFfEEAKQPIjAEiEkEAKQPAjAEiE3yFfEEAKQPojAEiFEEAKQPgjAEiFXyFIgZCJYggBoVC+fPd8ZnymasWfiIGQiCIIAaFIQYgAkHoAGopAwAgA30gFIUiFEL/////D4MiFiACKQNgIAN8IBWFIhVCIIgiF34iGEL/////D4MgFEIgiCIUIBVC/////w+DIhV+fCAWIBV+IhVCIIh8IhZCIIYgFUL/////D4OEIBhCIIggFCAXfnwgFkIgiHyFIAJByABqKQMAIAN9IBKFIhJC/////w+DIhQgAikDQCADfCAThSITQiCIIhV+IhZC/////w+DIBJCIIgiEiATQv////8PgyITfnwgFCATfiITQiCIfCIUQiCGIBNC/////w+DhCAWQiCIIBIgFX58IBRCIIh8hSACQShqKQMAIAN9IBCFIhBC/////w+DIhIgAikDICADfCARhSIRQiCIIhN+IhRC/////w+DIBBCIIgiECARQv////8PgyIRfnwgEiARfiIRQiCIfCISQiCGIBFC/////w+DhCAUQiCIIBAgE358IBJCIIh8hSACQQhqKQMAIAN9IA2FIg1C/////w+DIhAgAikDACADfCAPhSIPQiCIIhF+IhJC/////w+DIA1CIIgiDSAPQv////8PgyIPfnwgECAPfiIPQiCIfCIQQiCGIA9C/////w+DhCASQiCIIA0gEX58IBBCIIh8hSABrSIPQoeVr6+Ytt6bnn9+fCALIA58hXwgCSAMfIV8IAcgCnyFfCAFIAh8hSIFQiWIIAWFQvnz3fGZ8pmrFn4iBUIgiCAFhSEFAkAgAUGgAUgNACABQQV2QXxqIRkDQCACIARqIhpBG2opAwAgA30gBEGYjQFqKQMAIgeFIghC/////w+DIgkgGkETaikDACADfCAEQZCNAWopAwAiCoUiC0IgiCIMfiINQv////8PgyAIQiCIIgggC0L/////D4MiC358IAkgC34iCUIgiHwiC0IghiAJQv////8Pg4QgDUIgiCAIIAx+fCALQiCIfIUgBnwgBEGIjQFqKQMAIgggBEGAjQFqKQMAIgl8hSEGIBpBC2opAwAgA30gCIUiCEL/////D4MiCyAaQQNqKQMAIAN8IAmFIglCIIgiDH4iDUL/////D4MgCEIgiCIIIAlC/////w+DIgl+fCALIAl+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAV8IAcgCnyFIQUgBEEgaiEEIBlBf2oiGQ0ACwsgACACQf8AaikDACADfCABQeiLAWopAwAiB4UiCEL/////D4MiCSACKQN3IAN9IAFB4IsBaikDACIKhSILQiCIIgx+Ig1C/////w+DIAhCIIgiCCALQv////8PgyILfnwgCSALfiIJQiCIfCILQiCGIAlC/////w+DhCANQiCIIAggDH58IAtCIIh8hSAGfCABQfiLAWopAwAiBiABQfCLAWopAwAiCHyFIgkgAkHvAGopAwAgA3wgBoUiBkL/////D4MiCyACKQNnIAN9IAiFIghCIIgiDH4iDUL/////D4MgBkIgiCIGIAhC/////w+DIgh+fCALIAh+IghCIIh8IgtCIIYgCEL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAV8IAcgCnyFIgZ8IgVCJYggBYVC+fPd8ZnymasWfiIFQiCIIAWFNwMAIABCACAGQoeVr6+Ytt6bnn9+IA8gA31Cz9bTvtLHq9lCfnwgCULj3MqV/M7y9YV/fnwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4V9NwMIC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAAfTcDqIsBQQAgAEKo9dv7s5ynmj98NwOgiwFBAEK4sry3lNW31lggAH03A5iLAUEAIABC8cihuqm0w/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iL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AkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/aiIODQALCyAHQQhJDQELA0AgCyAAKQAANwAAIAtBCGohCyAAQQhqIQAgDUF4aiINDQALCyACIAIpAwggAikDQCIIfCADQQAoApyOAWoiACkDASACKQNIIgmFIgpCIIggCkL/////D4N+fDcDCCACIAIpAxggAikDUCIKfCAAKQMRIAIpA1giEIUiEUIgiCARQv////8Pg358NwMYIAIgECAKIAApAwmFIgpCIIggCkL/////D4N+IAIpAxB8fDcDECACIAkgCCAAQXlqKQMAhSIIQiCIIAhC/////w+DfiACKQMAfHw3AwAgACkDGSEIIAIpAyAhCSACIAIpAyggAikDYCIKfCAAKQMhIAIpA2giEIUiEUIgiCARQv////8Pg358NwMoIAIgECAJIAggCoUiCEIgiCAIQv////8Pg358fDcDICACIAYgAikDcCIIfCAAKQMxIAIpA3giBoUiCUIgiCAJQv////8Pg358NwM4IAIgBiAIIAApAymFIghCIIggCEL/////D4N+IAV8fDcDMAsgAiACIANBC2ogBEKHla+vmLbem55/fhADNwNAIAIgAiADQQAoApyOAWpBdWogBELP1tO+0ser2UJ+Qn+FEAM3A0gMAQsgBKchAAJAQQApA6COASIEUA0AAkAgAEEQSw0AIAJBwABqIABBgAggBBAEDAILAkAgAEGAAUsNACACQcAAaiAAQYAIIAQQBQwCCyACQcAAaiAAQYAIIAQQBgwBCwJAIABBEEsNACACQcAAaiAAIANCABAEDAELAkAgAEGAAUsNACACQcAAaiAAIANCABAFDAELIAJBwABqIAAgA0IAEAYLQQAgAikDcDcDuApBACACKQNgNwOoCkEAIAIpA1A3A5gKQQAgAkH4AGopAwA3A8AKQQAgAkHoAGopAwA3A7AKQQAgAkHYAGopAwA3A6AKQQAgAikDSCIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIgQ3A4AKQQAgBDcDkApBACACKQNAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3A4gKIAEkAAsGAEGAigELAgALC8wBAQBBgAgLxAG4/mw5I6RLvnwBgSz3Ia0c3tRt6YOQl9tyQKSkt7NnH8t55k7MwOV4glrQfcz/ciG4CEZ090MkjuA1kOaBOiZMPChSu5HDAMuI0GWLG1Muo3FkSJeiDflOOBnvRqnerNio+nY/45w0P/ncu8fHC08dilHgS820WTHIn37J2XhzZOrFrIM00+vDxYGg//oTY+sXDd1Rt/DaSdMWVSYp1GieKxa+WH1HofyP+LjRetAxzkXLOo+VFgQor9f7yrtLQH5AAgAA",zM="b9ab74e2",yv={name:KM,data:GM,hash:zM};let JM=new o,pl=null,D0=new Uint8Array(8);function bo(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function ix(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function jM(S,q=0,M=0){if(bo(q))return Promise.reject(bo(q));if(bo(M))return Promise.reject(bo(M));if(pl===null)return E(JM,yv,16).then(Y=>(pl=Y,ix(D0.buffer,q,M),pl.writeMemory(D0),pl.calculate(S)));try{ix(D0.buffer,q,M),pl.writeMemory(D0);let Y=pl.calculate(S);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function $M(S=0,q=0){return bo(S)?Promise.reject(bo(S)):bo(q)?Promise.reject(bo(q)):v(yv,16).then(M=>{let Y=new Uint8Array(8);ix(Y.buffer,S,q),M.writeMemory(Y),M.init();let ie={init:()=>(M.writeMemory(Y),M.init(),ie),update:ae=>(M.update(ae),ie),digest:ae=>M.digest(ae),save:()=>M.save(),load:ae=>(M.load(ae),ie),blockSize:512,digestSize:16};return ie})}var VM="ripemd160",YM="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",WM="6abbce74",Iv={name:VM,data:YM,hash:WM};let XM=new o,Q0=null;function ZM(S){if(Q0===null)return E(XM,Iv,20).then(q=>(Q0=q,Q0.calculate(S)));try{let q=Q0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function eL(){return v(Iv,20).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:20};return q})}function tL(S,q){let{blockSize:M}=S,Y=C(q);if(Y.length>M){S.update(Y);let ie=S.digest("binary");return S.init(),ie}return new Uint8Array(Y.buffer,Y.byteOffset,Y.length)}function rL(S,q){S.init();let{blockSize:M}=S,Y=tL(S,q),ie=new Uint8Array(M);ie.set(Y);let ae=new Uint8Array(M);for(let xe=0;xe<M;xe++){let Je=ie[xe];ae[xe]=Je^92,ie[xe]=Je^54}S.update(ie);let ge={init:()=>(S.init(),S.update(ie),ge),update:xe=>(S.update(xe),ge),digest:(xe=>{let Je=S.digest("binary");return S.init(),S.update(ae),S.update(Je),S.digest(xe)}),save:()=>{throw new Error("save() not supported")},load:()=>{throw new Error("load() not supported")},blockSize:S.blockSize,digestSize:S.digestSize};return ge}function wv(S,q){if(!S||!S.then)throw new Error('Invalid hash function is provided! Usage: createHMAC(createMD5(), "key").');return S.then(M=>rL(M,q))}function iL(S,q,M,Y,ie){return s(this,void 0,void 0,function*(){let ae=new Uint8Array(Y),ge=new Uint8Array(q.length+4),xe=new DataView(ge.buffer),Je=C(q),qt=new Uint8Array(Je.buffer,Je.byteOffset,Je.length);ge.set(qt);let jt=0,rr=S.digestSize,Ot=Math.ceil(Y/rr),$i=null,Hr=null;for(let vo=1;vo<=Ot;vo++){xe.setUint32(q.length,vo),S.init(),S.update(ge),$i=S.digest("binary"),Hr=$i.slice();for(let wn=1;wn<M;wn++){S.init(),S.update(Hr),Hr=S.digest("binary");for(let ko=0;ko<rr;ko++)$i[ko]^=Hr[ko]}ae.set($i.subarray(0,Y-jt),jt),jt+=rr}if(ie==="binary")return ae;let Iu=new Uint8Array(Y*2);return w(Iu,ae,Y)})}let nL=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!S.hashFunction||!S.hashFunction.then)throw new Error('Invalid hash function is provided! Usage: pbkdf2("password", "salt", 1000, 32, createSHA1()).');if(!Number.isInteger(S.iterations)||S.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(S.hashLength)||S.hashLength<1)throw new Error("Hash length should be a positive number");if(S.outputType===void 0&&(S.outputType="hex"),!["hex","binary"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary']`)};function nx(S){return s(this,void 0,void 0,function*(){nL(S);let q=yield wv(S.hashFunction,S.password);return iL(q,S.salt,S.iterations,S.hashLength,S.outputType)})}var sL="scrypt",oL="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cyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/AkAgAkUNACAAQQd0IgNBQGoiBEEAKAKACCIFIAMgAmwiBmogAyABbGoiByADaiIIaiEJIAAgAkEHdCIKIAFBB3RqIgtsIQwgACALQYABamwhDSAAQQV0IgtBASALQQFLGyILQWBxIQ4gC0EBcSEPIAdBeGohECAHQXBqIREgB0FoaiESIAdBYGohEyAHQVhqIRQgB0FQaiEVIAdBSGohFiAHQUBqIRcgAa1Cf3whGCAEIAdqIRkgByAAQQh0IhpqIRsgACAKQYABamwhHCALQQRJIR1BACEeQQAhHwNAQQAoAoAIIiAgAyAfbGohIQJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgByALaiIEICMgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AIAcgIkECdCILaiAhIAtqKAIANgIACwJAIAFFDQBBACElIBwhIyAGISYDQCAFISQgACEiAkACQCAADQAgGyAXKQMANwMAIBsgFikDADcDCCAbIBUpAwA3AxAgGyAUKQMANwMYIBsgEykDADcDICAbIBIpAwA3AyggGyARKQMANwMwIBsgECkDADcDOAwBCwNAICQgJmoiCyAkIAxqIgQpAwA3AwAgC0EIaiAEQQhqKQMANwMAIAtBEGogBEEQaikDADcDACALQRhqIARBGGopAwA3AwAgC0EgaiAEQSBqKQMANwMAIAtBKGogBEEoaikDADcDACALQTBqIARBMGopAwA3AwAgC0E4aiAEQThqKQMANwMAIAtBwABqIARBwABqKQMANwMAIAtByABqIARByABqKQMANwMAIAtB0ABqIARB0ABqKQMANwMAIAtB2ABqIARB2ABqKQMANwMAIAtB4ABqIARB4ABqKQMANwMAIAtB6ABqIARB6ABqKQMANwMAIAtB8ABqIARB8ABqKQMANwMAIAtB+ABqIARB+ABqKQMANwMAICRBgAFqISQgIkF/aiIiDQALIAcgCCAbIAAQAiAFISQgACEiA0AgJCAjaiILICQgDWoiBCkDADcDACALQQhqIARBCGopAwA3AwAgC0EQaiAEQRBqKQMANwMAIAtBGGogBEEYaikDADcDACALQSBqIARBIGopAwA3AwAgC0EoaiAEQShqKQMANwMAIAtBMGogBEEwaikDADcDACALQThqIARBOGopAwA3AwAgC0HAAGogBEHAAGopAwA3AwAgC0HIAGogBEHIAGopAwA3AwAgC0HQAGogBEHQAGopAwA3AwAgC0HYAGogBEHYAGopAwA3AwAgC0HgAGogBEHgAGopAwA3AwAgC0HoAGogBEHoAGopAwA3AwAgC0HwAGogBEHwAGopAwA3AwAgC0H4AGogBEH4AGopAwA3AwAgJEGAAWohJCAiQX9qIiINAAsLIAggByAbIAAQAiAjIBpqISMgJiAaaiEmICVBAmoiJSABSQ0AC0EAISUDQAJAAkAgAA0AIBsgFykDADcDACAbIBYpAwA3AwggGyAVKQMANwMQIBsgFCkDADcDGCAbIBMpAwA3AyAgGyASKQMANwMoIBsgESkDADcDMCAbIBApAwA3AzgMAQsgACAKIBkpAgAgGIOnQQd0amwhJiAFISQgACEiA0AgJCAMaiILIAspAwAgJCAmaiIEKQMAhTcDACALQQhqIiMgIykDACAEQQhqKQMAhTcDACALQRBqIiMgIykDACAEQRBqKQMAhTcDACALQRhqIiMgIykDACAEQRhqKQMAhTcDACALQSBqIiMgIykDACAEQSBqKQMAhTcDACALQShqIiMgIykDACAEQShqKQMAhTcDACALQTBqIiMgIykDACAEQTBqKQMAhTcDACALQThqIiMgIykDACAEQThqKQMAhTcDACALQcAAaiIjICMpAwAgBEHAAGopAwCFNwMAIAtByABqIiMgIykDACAEQcgAaikDAIU3AwAgC0HQAGoiIyAjKQMAIARB0ABqKQMAhTcDACALQdgAaiIjICMpAwAgBEHYAGopAwCFNwMAIAtB4ABqIiMgIykDACAEQeAAaikDAIU3AwAgC0HoAGoiIyAjKQMAIARB6ABqKQMAhTcDACALQfAAaiIjICMpAwAgBEHwAGopAwCFNwMAIAtB+ABqIgsgCykDACAEQfgAaikDAIU3AwAgJEGAAWohJCAiQX9qIiINAAsgByAIIBsgABACIAAgCiAJKQIAIBiDp0EHdGpsISYgBSEkIAAhIgNAICQgDWoiCyALKQMAICQgJmoiBCkDAIU3AwAgC0EIaiIjICMpAwAgBEEIaikDAIU3AwAgC0EQaiIjICMpAwAgBEEQaikDAIU3AwAgC0EYaiIjICMpAwAgBEEYaikDAIU3AwAgC0EgaiIjICMpAwAgBEEgaikDAIU3AwAgC0EoaiIjICMpAwAgBEEoaikDAIU3AwAgC0EwaiIjICMpAwAgBEEwaikDAIU3AwAgC0E4aiIjICMpAwAgBEE4aikDAIU3AwAgC0HAAGoiIyAjKQMAIARBwABqKQMAhTcDACALQcgAaiIjICMpAwAgBEHIAGopAwCFNwMAIAtB0ABqIiMgIykDACAEQdAAaikDAIU3AwAgC0HYAGoiIyAjKQMAIARB2ABqKQMAhTcDACALQeAAaiIjICMpAwAgBEHgAGopAwCFNwMAIAtB6ABqIiMgIykDACAEQegAaikDAIU3AwAgC0HwAGoiIyAjKQMAIARB8ABqKQMAhTcDACALQfgAaiILIAspAwAgBEH4AGopAwCFNwMAICRBgAFqISQgIkF/aiIiDQALCyAIIAcgGyAAEAIgJUECaiIlIAFJDQALCwJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgIyALaiIEIAcgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AICEgIkECdCILaiAHIAtqKAIANgIACyAeIANqIR4gH0EBaiIfIAJHDQALCws=",aL="b32721f8",cL={name:sL,data:oL,hash:aL};function lL(S){return s(this,void 0,void 0,function*(){let{costFactor:q,blockSize:M,parallelism:Y,hashLength:ie}=S,ae=hv(),ge=yield nx({password:S.password,salt:S.salt,iterations:1,hashLength:128*M*Y,hashFunction:ae,outputType:"binary"}),xe=yield v(cL,0),Je=128*M*q,qt=256*M;xe.setMemorySize(ge.length+Je+qt),xe.writeMemory(ge,0),xe.getExports().scrypt(M,q,Y);let jt=xe.getMemory().subarray(0,128*M*Y),rr=yield nx({password:S.password,salt:jt,iterations:1,hashLength:ie,hashFunction:ae,outputType:"binary"});if(S.outputType==="hex"){let Ot=new Uint8Array(ie*2);return w(Ot,rr,ie)}return rr})}let dL=S=>S&&!(S&S-1),uL=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(S.blockSize)||S.blockSize<1)throw new Error("Block size should be a positive number");if(!Number.isInteger(S.costFactor)||S.costFactor<2||!dL(S.costFactor))throw new Error("Cost factor should be a power of 2, greater than 1");if(!Number.isInteger(S.parallelism)||S.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(S.hashLength)||S.hashLength<1)throw new Error("Hash length should be a positive number.");if(S.outputType===void 0&&(S.outputType="hex"),!["hex","binary"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary']`)};function fL(S){return s(this,void 0,void 0,function*(){return uL(S),lL(S)})}var AL="bcrypt",hL="AGFzbQEAAAABFwRgAAF/YAR/f39/AGADf39/AGABfwF/AwUEAAECAwUEAQECAgYIAX8BQZCrBQsHNAQGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAZiY3J5cHQAAg1iY3J5cHRfdmVyaWZ5AAMK9WAEBQBBgCsL21kEFH8Bfgh/AX4jAEHwAGshBCACQQA6AAIgAkGq4AA7AAACQCABLQAAQSpHDQAgAS0AAUEwRw0AIAJBMToAAQsCQCABLAAFIAEsAARBCmxqQfB7aiIFQQRJDQAgAS0AB0FgaiIGQd8ASw0AIAZBkAlqLQAAIgZBP0sNACABLQAIQWBqIgdB3wBLDQAgB0GQCWotAAAiB0E/Sw0AIAQgB0EEdiAGQQJ0cjoACCABLQAJQWBqIgZB3wBLDQAgBkGQCWotAAAiBkE/Sw0AIAQgBkECdiAHQQR0cjoACSABLQAKQWBqIgdB3wBLDQAgB0GQCWotAAAiB0E/Sw0AIAQgByAGQQZ0cjoACiABLQALQWBqIgZB3wBLDQAgBkGQCWotAAAiBkE/Sw0AIAEtAAxBYGoiB0HfAEsNACAHQZAJai0AACIHQT9LDQAgBCAHQQR2IAZBAnRyOgALIAEtAA1BYGoiBkHfAEsNACAGQZAJai0AACIGQT9LDQAgBCAGQQJ2IAdBBHRyOgAMIAEtAA5BYGoiB0HfAEsNACAHQZAJai0AACIHQT9LDQAgBCAHIAZBBnRyOgANIAEtAA9BYGoiBkHfAEsNACAGQZAJai0AACIGQT9LDQAgAS0AEEFgaiIHQd8ASw0AIAdBkAlqLQAAIgdBP0sNACAEIAdBBHYgBkECdHI6AA4gAS0AEUFgaiIGQd8ASw0AIAZBkAlqLQAAIgZBP0sNACAEIAZBAnYgB0EEdHI6AA8gAS0AEkFgaiIHQd8ASw0AIAdBkAlqLQAAIgdBP0sNACAEIAcgBkEGdHI6ABAgAS0AE0FgaiIGQd8ASw0AIAZBkAlqLQAAIgZBP0sNACABLQAUQWBqIgdB3wBLDQAgB0GQCWotAAAiB0E/Sw0AIAQgB0EEdiAGQQJ0cjoAESABLQAVQWBqIgZB3wBLDQAgBkGQCWotAAAiBkE/Sw0AIAQgBkECdiAHQQR0cjoAEiABLQAWQWBqIgdB3wBLDQAgB0GQCWotAAAiB0E/Sw0AIAQgByAGQQZ0cjoAEyABLQAXQWBqIgZB3wBLDQAgBkGQCWotAAAiBkE/Sw0AIAEtABhBYGoiB0HfAEsNACAHQZAJai0AACIHQT9LDQAgBCAHQQR2IAZBAnRyOgAUIAEtABlBYGoiBkHfAEsNACAGQZAJai0AACIGQT9LDQAgBCAGQQJ2IAdBBHRyOgAVIAEtABpBYGoiB0HfAEsNACAHQZAJai0AACIHQT9LDQAgBCAHIAZBBnRyOgAWIAEtABtBYGoiBkHfAEsNACAGQZAJai0AACIGQT9LDQAgAS0AHEFgaiIHQd8ASw0AIAdBkAlqLQAAIgdBP0sNAEEBIAV0IQggBCAHQQR2IAZBAnRyOgAXIAQgBCgCCCIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciIJNgIIIAQgBCgCDCIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciIKNgIMIAQgBCgCECIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciILNgIQIAQgBCgCFCIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciIMNgIUIARB6ABqIAEtAAJBnwdqLQAAIg1BAXFBAnRqIQ5BACEGQQAhB0EAIQ8gACEFA0AgBEIANwJoIAQgBS0AACIQNgJoIAQgBSwAACIRNgJsIAUtAAAhEiAEIBBBCHQiEDYCaCAEIBAgBUEBaiAAIBIbIgUtAAByIhA2AmggBCARQQh0IhE2AmwgBCARIAUsAAAiEnIiETYCbCAFLQAAIRMgBCAQQQh0IhA2AmggBCAQIAVBAWogACATGyIFLQAAciIQNgJoIAQgEUEIdCIRNgJsIAQgESAFLAAAIhNyIhE2AmwgBS0AACEUIAQgEEEIdCIQNgJoIAQgECAFQQFqIAAgFBsiBS0AAHIiEDYCaCAEIBFBCHQiETYCbCAEIBEgBSwAACIUciIRNgJsIAUtAAAhFSAEQSBqIAZqIA4oAgAiFjYCACAGQfApaiIXIBYgFygCAHM2AgAgESAQcyAHciEHIAVBAWogACAVGyEFIBQgEyAScnJBgAFxIA9yIQ8gBkEEaiIGQcgARw0AC0EAQQAoAvApIA9BCXQgDUEPdHFBgIAEIAdB//8DcSAHQRB2cmtxczYC8ClCACEYQX4hBkHwKSEHA0BBACgCrCpBACgCqCpBACgCpCpBACgCoCpBACgCnCpBACgCmCpBACgClCpBACgCkCpBACgCjCpBACgCiCpBACgChCpBACgCgCpBACgC/ClBACgC+ClBACgC9CkgBEEIaiAGQQJqIgZBAnFBAnRqKQMAIBiFIhhCIIinc0EAKALwKSAYp3MiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUH/AXFBAnRB8CFqKAIAIQ8gBUEGdkH8B3FB8BlqKAIAIRAgBUEWdkH8B3FB8AlqKAIAIREgBUEOdkH8B3FB8BFqKAIAIRJBACgCsCohE0EAQQAoArQqIAVzNgKAqwFBACATIA8gECARIBJqc2pzIABzNgKEqwEgB0EAKQOAqwEiGDcCACAHQQhqIQcgBkEQSQ0ACyAYQiCIpyEFIBinIQZB8AkhAANAQQAoAqwqQQAoAqgqQQAoAqQqQQAoAqAqQQAoApwqQQAoApgqQQAoApQqQQAoApAqQQAoAowqQQAoAogqQQAoAoQqQQAoAoAqQQAoAvwpQQAoAvgpIAVBACgC9ClzIAZBACgC8ClzIAtzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgDHMiBkEWdkH8B3FB8AlqKAIAIAZBDnZB/AdxQfARaigCAGogBkEGdkH8B3FB8BlqKAIAcyAGQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIAZzIgZBFnZB/AdxQfAJaigCACAGQQ52QfwHcUHwEWooAgBqIAZBBnZB/AdxQfAZaigCAHMgBkH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAGcyIGQRZ2QfwHcUHwCWooAgAgBkEOdkH8B3FB8BFqKAIAaiAGQQZ2QfwHcUHwGWooAgBzIAZB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgBnMiBkEWdkH8B3FB8AlqKAIAIAZBDnZB/AdxQfARaigCAGogBkEGdkH8B3FB8BlqKAIAcyAGQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIAZzIgZBFnZB/AdxQfAJaigCACAGQQ52QfwHcUHwEWooAgBqIAZBBnZB/AdxQfAZaigCAHMgBkH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAGcyIGQRZ2QfwHcUHwCWooAgAgBkEOdkH8B3FB8BFqKAIAaiAGQQZ2QfwHcUHwGWooAgBzIAZB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgBnMiBkEWdkH8B3FB8AlqKAIAIAZBDnZB/AdxQfARaigCAGogBkEGdkH8B3FB8BlqKAIAcyAGQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIAZzIgZB/wFxQQJ0QfAhaigCACEHIAZBBnZB/AdxQfAZaigCACEPIAZBFnZB/AdxQfAJaigCACEQIAZBDnZB/AdxQfARaigCACERQQAoArAqIRIgAEEAKAK0KiAGcyIGNgIAIABBBGogEiAHIA8gECARanNqcyAFcyIHNgIAQQAoAqwqQQAoAqgqQQAoAqQqQQAoAqAqQQAoApwqQQAoApgqQQAoApQqQQAoApAqQQAoAowqQQAoAogqQQAoAoQqQQAoAoAqQQAoAvwpQQAoAvgpQQAoAvQpIAlBACgC8ClzIAZzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgCnMgB3MiBkEWdkH8B3FB8AlqKAIAIAZBDnZB/AdxQfARaigCAGogBkEGdkH8B3FB8BlqKAIAcyAGQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIAZzIgZBFnZB/AdxQfAJaigCACAGQQ52QfwHcUHwEWooAgBqIAZBBnZB/AdxQfAZaigCAHMgBkH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAGcyIGQRZ2QfwHcUHwCWooAgAgBkEOdkH8B3FB8BFqKAIAaiAGQQZ2QfwHcUHwGWooAgBzIAZB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgBnMiBkEWdkH8B3FB8AlqKAIAIAZBDnZB/AdxQfARaigCAGogBkEGdkH8B3FB8BlqKAIAcyAGQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIAZzIgZBFnZB/AdxQfAJaigCACAGQQ52QfwHcUHwEWooAgBqIAZBBnZB/AdxQfAZaigCAHMgBkH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAGcyIGQRZ2QfwHcUHwCWooAgAgBkEOdkH8B3FB8BFqKAIAaiAGQQZ2QfwHcUHwGWooAgBzIAZB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgBnMiBkEWdkH8B3FB8AlqKAIAIAZBDnZB/AdxQfARaigCAGogBkEGdkH8B3FB8BlqKAIAcyAGQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIAZzIgZB/wFxQQJ0QfAhaigCACEHIAZBBnZB/AdxQfAZaigCACEPIAZBFnZB/AdxQfAJaigCACEQIAZBDnZB/AdxQfARaigCACERQQAoArAqIRIgAEEIakEAKAK0KiAGcyIGNgIAIABBDGogEiAHIA8gECARanNqcyAFcyIFNgIAIABBEGoiAEHsKUkNAAtBACAFNgKEqwFBACAGNgKAqwEgBCgCZCEUIAQoAmAhFSAEKAJcIRYgBCgCWCEXIAQoAlQhCSAEKAJQIQogBCgCTCELIAQoAkghDCAEKAJEIQ4gBCgCQCENIAQoAjwhGSAEKAI4IRogBCgCNCEbIAQoAjAhHCAEKAIsIR0gBCgCKCEeIAQoAiQhHyAEKAIgISAgBCkDECEhIAQpAwghGANAQQBBACgC8CkgIHM2AvApQQBBACgC9CkgH3M2AvQpQQBBACgC+CkgHnM2AvgpQQBBACgC/CkgHXM2AvwpQQBBACgCgCogHHM2AoAqQQBBACgChCogG3M2AoQqQQBBACgCiCogGnM2AogqQQBBACgCjCogGXM2AowqQQBBACgCkCogDXM2ApAqQQBBACgClCogDnM2ApQqQQBBACgCmCogDHM2ApgqQQBBACgCnCogC3M2ApwqQQBBACgCoCogCnM2AqAqQQBBACgCpCogCXM2AqQqQQBBACgCqCogF3M2AqgqQQBBACgCrCogFnM2AqwqQQBBACgCsCogFXM2ArAqQQBBACgCtCogFHM2ArQqQQEhEwNAQQAhAEEAQgA3A4CrAUHwKSEGQQAhBQNAQQAoAqwqQQAoAqgqQQAoAqQqQQAoAqAqQQAoApwqQQAoApgqQQAoApQqQQAoApAqQQAoAowqQQAoAogqQQAoAoQqQQAoAoAqQQAoAvwpQQAoAvgpQQAoAvQpIABzQQAoAvApIAVzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVB/wFxQQJ0QfAhaigCACEHIAVBBnZB/AdxQfAZaigCACEPIAVBFnZB/AdxQfAJaigCACEQIAVBDnZB/AdxQfARaigCACERQQAoArAqIRIgBkEAKAK0KiAFcyIFNgIAIAZBBGogEiAHIA8gECARanNqcyAAcyIANgIAIAZBCGoiBkG4KkkNAAtB8AkhBgNAQQAoAqwqQQAoAqgqQQAoAqQqQQAoAqAqQQAoApwqQQAoApgqQQAoApQqQQAoApAqQQAoAowqQQAoAogqQQAoAoQqQQAoAoAqQQAoAvwpQQAoAvgpQQAoAvQpIABzQQAoAvApIAVzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVB/wFxQQJ0QfAhaigCACEHIAVBBnZB/AdxQfAZaigCACEPIAVBFnZB/AdxQfAJaigCACEQIAVBDnZB/AdxQfARaigCACERQQAoArAqIRIgBkEAKAK0KiAFcyIFNgIAIAZBBGogEiAHIA8gECARanNqcyAAcyIANgIAIAZBCGoiBkHsKUkNAAtBACAANgKEqwFBACAFNgKAqwECQCATQQFxRQ0AQQAhE0EAQQApAvApIBiFNwLwKUEAQQApAvgpICGFNwL4KUEAQQApAoAqIBiFNwKAKkEAQQApAogqICGFNwKIKkEAQQApApAqIBiFNwKQKkEAQQApApgqICGFNwKYKkEAQQApAqAqIBiFNwKgKkEAQQApAqgqICGFNwKoKkEAQQApArAqIBiFNwKwKgwBCwsgCEF/aiIIDQALQQAoArQqIQ9BACgCsCohEEEAKAKsKiERQQAoAqgqIRJBACgCpCohE0EAKAKgKiEIQQAoApwqIRRBACgCmCohFUEAKAKUKiEWQQAoApAqIRdBACgCjCohCUEAKAKIKiEKQQAoAoQqIQtBACgCgCohDEEAKAL8KSEOQQAoAvgpIQ1BACgC9CkhGUEAKALwKSEaQQAhGwNAIBtBAnQiHEGgCGopAwAiGKchACAYQiCIpyEGQUAhBwNAIBAgESASIBMgCCAUIBUgFiAXIAkgCiALIAwgDiANIAYgGXMgACAacyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIgBBFnZB/AdxQfAJaigCACAAQQ52QfwHcUHwEWooAgBqIABBBnZB/AdxQfAZaigCAHMgAEH/AXFBAnRB8CFqKAIAanMgBXMiBUEWdkH8B3FB8AlqKAIAIAVBDnZB/AdxQfARaigCAGogBUEGdkH8B3FB8BlqKAIAcyAFQf8BcUECdEHwIWooAgBqcyAAcyIAQRZ2QfwHcUHwCWooAgAgAEEOdkH8B3FB8BFqKAIAaiAAQQZ2QfwHcUHwGWooAgBzIABB/wFxQQJ0QfAhaigCAGpzIAVzIgVBFnZB/AdxQfAJaigCACAFQQ52QfwHcUHwEWooAgBqIAVBBnZB/AdxQfAZaigCAHMgBUH/AXFBAnRB8CFqKAIAanMgAHMiAEEWdkH8B3FB8AlqKAIAIABBDnZB/AdxQfARaigCAGogAEEGdkH8B3FB8BlqKAIAcyAAQf8BcUECdEHwIWooAgBqcyAFcyIFQRZ2QfwHcUHwCWooAgAgBUEOdkH8B3FB8BFqKAIAaiAFQQZ2QfwHcUHwGWooAgBzIAVB/wFxQQJ0QfAhaigCAGpzIABzIQYgBSAPcyEAIAdBAWoiBw0AC0EAIAY2AoSrAUEAIAA2AoCrASAEQQhqIBxqQQApA4CrATcDACAbQQRJIQAgG0ECaiEbIAANAAsgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASwAHEHwCGotAABBMHFBwAhqLQAAOgAcIAQgBCgCCCIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZyciIPNgIIIAQgBCgCDCIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZyciIBNgIMIAQgBCgCECIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZyciIANgIQIAQgBCgCFCIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciIGNgIUIAQgBCgCGCIFQRh0IAVBgP4DcUEIdHIgBUEIdkGA/gNxIAVBGHZyciIFNgIYIAQgBCgCHCIHQRh0IAdBgP4DcUEIdHIgB0EIdkGA/gNxIAdBGHZyciIHNgIcAkACQCADDQAgAiAEKQMINwMAIAIgBCkDEDcDCCACIAQpAxg3AxAMAQsgAiAHQT9xQcAIai0AADoAOCACIAZBGnZBwAhqLQAAOgAxIAIgAEE/cUHACGotAAA6ACggAiAPQRp2QcAIai0AADoAISACIAQtAAgiBEECdkHACGotAAA6AB0gAiAHQQ52QTxxQcAIai0AADoAOyACIAdBCnZBP3FBwAhqLQAAOgA5IAIgBUESdkE/cUHACGotAAA6ADUgAiAFQQh2QT9xQcAIai0AADoANCACIAZBEHYiA0E/cUHACGotAAA6ADAgAiAGQfwBcUECdkHACGotAAA6AC0gAiAAQRh2QT9xQcAIai0AADoALCACIABBCnZBP3FBwAhqLQAAOgApIAIgAUESdkE/cUHACGotAAA6ACUgAiABQQh2QT9xQcAIai0AADoAJCACIA9BEHYiEEE/cUHACGotAAA6ACAgAiAHQQZ2QQNxIAVBFnZBPHFyQcAIai0AADoANyACIAVBDHZBMHEgBUEcdnJBwAhqLQAAOgA2IAIgBUECdEE8cSAFQQ52QQNxckHACGotAAA6ADMgAiAFQfABcUEEdiAGQRR2QTBxckHACGotAAA6ADIgAiAGQQR0QTBxIAZBDHZBD3FyQcAIai0AADoALiACIABBDnZBPHEgAEEednJBwAhqLQAAOgArIAIgAEEGdkEDcSABQRZ2QTxxckHACGotAAA6ACcgAiABQQx2QTBxIAFBHHZyQcAIai0AADoAJiACIAFBAnRBPHEgAUEOdkEDcXJBwAhqLQAAOgAjIAIgAUHwAXFBBHYgD0EUdkEwcXJBwAhqLQAAOgAiIAIgBEEEdEEwcSAPQQx2QQ9xckHACGotAAA6AB4gAiAHQRB2QfABcSAHQYAGcXJBBHZBwAhqLQAAOgA6IAIgA0HAAXEgBkGAHnFyQQZ2QcAIai0AADoALyACIABBEHZB8AFxIABBgAZxckEEdkHACGotAAA6ACogAiAQQcABcSAPQYAecXJBBnZBwAhqLQAAOgAfCyACQQA6ADwLC4YGAQZ/IwBB4ABrIgMkAEEAIQQgAEGQK2pBADoAACADQSQ6AEYgAyABQQpuIgBBMGo6AEQgA0Gk5ISjAjYCQCADIABB9gFsIAFqQTByOgBFIANBAC0AgCsiAUECdkHACGotAAA6AEcgA0EALQCCKyIAQT9xQcAIai0AADoASiADQQAtAIMrIgVBAnZBwAhqLQAAOgBLIANBAC0AhSsiBkE/cUHACGotAAA6AE4gA0EALQCBKyIHQQR2IAFBBHRBMHFyQcAIai0AADoASCADIABBBnYgB0ECdEE8cXJBwAhqLQAAOgBJIANBAC0AhCsiAUEEdiAFQQR0QTBxckHACGotAAA6AEwgAyAGQQZ2IAFBAnRBPHFyQcAIai0AADoATSADQQAtAIYrIgFBAnZBwAhqLQAAOgBPIANBAC0AiCsiAEE/cUHACGotAAA6AFIgA0EALQCJKyIFQQJ2QcAIai0AADoAUyADQQAtAIsrIgZBP3FBwAhqLQAAOgBWIANBAC0AjCsiB0ECdkHACGotAAA6AFcgA0EALQCHKyIIQQR2IAFBBHRBMHFyQcAIai0AADoAUCADIABBBnYgCEECdEE8cXJBwAhqLQAAOgBRIANBAC0AiisiAUEEdiAFQQR0QTBxckHACGotAAA6AFQgAyAGQQZ2IAFBAnRBPHFyQcAIai0AADoAVSADQQAtAI0rIgFBBHYgB0EEdEEwcXJBwAhqLQAAOgBYIANBADoAXSADQQAtAI4rIgBBP3FBwAhqLQAAOgBaIANBAC0AjysiBUECdkHACGotAAA6AFsgAyAAQQZ2IAFBAnRBPHFyQcAIai0AADoAWSADIAVBBHRBMHFBwAhqLQAAOgBcQZArIANBwABqIAMgAhABA0AgBEGAK2ogAyAEaiIBLQAAOgAAIARBgStqIAFBAWotAAA6AAAgBEGCK2ogAUECai0AADoAACAEQYMraiABQQNqLQAAOgAAIARBhCtqIAFBBGotAAA6AAAgBEEFaiIEQTxHDQALIANB4ABqJAALhwECAX8IfiMAQcAAayIBJAAgAEG8K2pBADoAAEG8K0GAKyABQQEQAUEAKQOkKyECIAEpAyQhA0EAKQOcKyEEIAEpAxwhBUEAKQOsKyEGIAEpAywhB0EAKQO0KyEIIAEpAzQhCSABQcAAaiQAIAUgBFIgAyACUmogByAGUmpBf0EAIAkgCFIbRgsLxyICAEGACAvwAQIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAaHByT0JuYWVsb2hlU3JlZER5cmN0YnVvAAAAAAAAAAAuL0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5AAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAAAE2Nzg5Ojs8PT4/QEBAQEBAQAIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobQEBAQEBAHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDVAQEBAQABB8AkLyCCmCzHRrLXfmNty/S+33xrQ7a/huJZ+JmpFkHy6mX8s8UeZoST3bJGz4vIBCBb8joXYIGljaU5XcaP+WKR+PZP0j3SVDVi2jnJYzYtx7koVgh2kVHu1WVrCOdUwnBNg8iojsNHF8IVgKBh5QcrvONu4sNx5jg4YOmCLDp5sPooesMF3FdcnSzG92i+veGBcYFXzJVXmlKtVqmKYSFdAFOhjajnKVbYQqyo0XMy0zuhBEa+GVKGT6XJ8ERTusyq8b2Ndxakr9jEYdBY+XM4ek4ebM7rWr1zPJGyBUzJ6d4aVKJhIjzuvuUtrG+i/xJMhKGbMCdhhkakh+2CsfEgygOxdXV2E77F1hekCIybciBtl64E+iSPFrJbT829tDzlC9IOCRAsuBCCEpErwyGlemx+eQmjGIZps6fZhnAxn8IjTq9KgUWpoL1TYKKcPlqMzUatsC+9u5Dt6E1DwO7qYKvt+HWXxoXYBrzk+WcpmiA5DghmG7oy0n29Fw6WEfb5eizvYdW/gcyDBhZ9EGkCmasFWYqrTTgZ3PzZy3/4bPQKbQiTX0DdIEgrQ0+oP25vA8UnJclMHexuZgNh51CX33uj2GlD+4ztMeba94GyXugbABLZPqcHEYJ9Awp5cXmMkahmvb/totVNsPuuyORNv7FI7H1H8bSyVMJtERYHMCb1erwTQ4779SjPeBygPZrNLLhlXqMvAD3TIRTlfC9Lb+9O5vcB5VQoyYBrGAKHWeXIsQP4ln2fMox/7+OmljvgiMtvfFnU8FWth/cgeUC+rUgWt+rU9MmCHI/1IezFTgt8APrtXXJ6gjG/KLlaHGttpF9/2qELVw/9+KMYyZ6xzVU+MsCdbachYyrtdo//hoBHwuJg9+hC4gyH9bLX8SlvT0S155FOaZUX4trxJjtKQl/tL2vLd4TN+y6RBE/ti6MbkztrKIO8BTHc2/p5+0LQf8StN2tuVmJGQrnGOreqg1ZNr0NGO0OAlx68vWzyOt5R1jvvi9o9kKxLyEriIiBzwDZCgXq1PHMOPaJHxz9GtwaizGCIvL3cXDr7+LXXqoR8Ciw/MoOXodG+11vOsGJniic7gT6i0t+AT/YE7xHzZqK3SZqJfFgV3lYAUc8yTdxQaIWUgreaG+rV39UJUx881nfsMr83roIk+e9MbQdZJfh6uLQ4lAF6zcSC7AGgir+C4V5s2ZCQeuQnwHZFjVaqm31mJQ8F4f1Na2aJbfSDFueUCdgMmg6nPlWJoGcgRQUpzTsotR7NKqRR7UgBRGxUpU5o/Vw/W5MabvHakYCsAdOaBtW+6CB/pG1dr7JbyFdkNKiFlY7a2+bnnLgU0/2RWhcVdLbBToY+fqZlHughqB4Vu6XB6S0Qps7UuCXXbIyYZxLCmbq1936dJuGDunGay7Y9xjKrs/xeaaWxSZFbhnrHCpQI2GSlMCXVAE1mgPjoY5JqYVD9lnUJb1uSPa9Y/95kHnNKh9TDo7+Y4LU3BXSXwhiDdTCbrcITG6YJjXsweAj9raAnJ77o+FBiXPKFwamuENX9ohuKgUgVTnLc3B1CqHIQHPlyu3n/sRH2OuPIWVzfaOrANDFDwBB8c8P+zAAIa9QyusnS1PFh6gyW9IQnc+ROR0fYvqXxzRzKUAUf1IoHl5Trc2sI3NHa1yKfd85pGYUSpDgPQDz7HyOxBHnWkmc044i8O6juhu4AyMbM+GDiLVE4IuW1PAw1Cb78ECvaQErgseXyXJHKweVavia+8H3ea3hAIk9kSrouzLj/P3B9yElUkcWsu5t0aUIfNhJ8YR1h6F9oIdLyan7yMfUvpOux67PodhdtmQwlj0sNkxEcYHO8I2RUyNztD3Ra6wiRDTaESUcRlKgIAlFDd5DoTnvjfcVVOMRDWd6yBmxkRX/FWNQRrx6PXOxgRPAmlJFnt5o/y+vvxlyy/up5uPBUecEXjhrFv6eoKXg6Gsyo+WhznH3f6Bj1OudxlKQ8d55nWiT6AJchmUnjJTC5qsxCcug4Vxnjq4pRTPPyl9C0KHqdO9/I9Kx02DyY5GWB5whkIpyNSthIT927+retmH8PqlUW844PIe6bRN3+xKP+MAe/dMsOlWmy+hSFYZQKYq2gPpc7uO5Uv26197yqEL25bKLYhFXBhByl1R93sEBWfYTCozBOWvWHrHv40A89jA6qQXHO1OaJwTAuentUU3qrLvIbM7qcsYmCrXKucboTzsq8ei2TK8L0ZuWkjoFC7WmUyWmhAs7QqPNXpnjH3uCHAGQtUm5mgX4d+mfeVqH09YpqIN/h3LeOXX5PtEYESaBYpiDUO1h/mx6Hf3paZulh4pYT1V2NyIhv/w4OblkbCGusKs81UMC5T5EjZjygxvG3v8utY6v/GNGHtKP5zPHzu2RRKXeO3ZOgUXRBC4BM+ILbi7kXqq6qjFU9s29BPy/pC9ELHtbtq7x07T2UFIc1Bnnke2MdNhYZqR0vkUGKBPfKhYs9GJo1boIOI/KO2x8HDJBV/knTLaQuKhEeFspJWAL9bCZ1IGa10sWIUAA6CIyqNQljq9VUMPvStHWFwPyOS8HIzQX6TjfHsX9bbOyJsWTfefGB07sun8oVAbjJ3zoSAB6aeUPgZVdjv6DWX2WGqp2mpwgYMxfyrBFrcyguALnpEnoQ0RcMFZ9X9yZ4eDtPbc9vNiFUQedpfZ0BDZ+NlNMTF2Dg+cZ74KD0g/23x5yE+FUo9sI8rn+Pm962D22haPen3QIGUHCZM9jQpaZT3IBVB99QCdi5r9LxoAKLUcSQI1Gr0IDO31LdDr2EAUC72OR5GRSSXdE8hFECIi78d/JVNr5G1ltPd9HBFL6Bm7Am8v4WXvQPQbax/BIXLMbMn65ZBOf1V5kcl2poKyqsleFAo9CkEU9qGLAr7bbbpYhTcaABpSNekwA5o7o2hJ6L+P0+MrYfoBuCMtbbW9Hp8Hs6q7F8305mjeM5CKmtANZ7+ILmF89mr1znui04SO/f6yR1WGG1LMWajJrKX4+p0+m46MkNb3ffnQWj7IHjKTvUK+5ez/tisVkBFJ5VIujo6U1WHjYMgt6lr/kuVltC8Z6hVWJoVoWMpqcwz2+GZVkoqpvklMT8cfvRefDEpkALo+P1wLycEXBW7gOMsKAVIFcGVIm3G5D8TwUjchg/H7sn5Bw8fBEGkeUdAF26IXetRXzLRwJvVj8G88mQ1EUE0eHslYJwqYKPo+N8bbGMfwrQSDp4y4QLRT2avFYHRyuCVI2vhkj4zYgskOyK5vu4OorKFmQ265owMct4o96ItRXgS0P2Ut5ViCH1k8PXM52+jSVT6SH2HJ/2dwx6NPvNBY0cKdP8umatubzo3/fj0YNwSqPjd66FM4RuZDWtu2xBVe8Y3LGdtO9RlJwTo0NzHDSnxo/8AzJIPObUL7Q9p+597Zpx9284Lz5Ggo14V2YgvE7skrVtRv3mUe+vWO3azLjk3eVkRzJfiJoAtMS70p61CaDsrasbMTHUSHPEueDdCEmrnUZK35ruhBlBj+0sYEGsa+u3KEdi9JT3Jw+HiWRZCRIYTEgpu7AzZKuqr1U5nr2RfqIbaiOm/vv7D5GRXgLydhsD38Ph7eGBNYANgRoP90bAfOPYErkV3zPw21zNrQoNxqx7wh0GAsF9eADy+V6B3JK7ovZlCRlVhLli/j/RYTqL93fI473T0wr2Jh8P5ZlN0jrPIVfJ1tLnZ/EZhJut6hN8di3kOaoTilV+RjlluRnBXtCCRVdWMTN4CyeGsC7nQBYK7SGKoEZ6pdHW2GX+3Cdyp4KEJLWYzRjLEAh9a6Iy+8AkloJlKEP5uHR09uRrfpKULD/KGoWnxaCiD2rfc/gY5V5vO4qFSf81PAV4RUPqDBqfEtQKgJ9DmDSeM+JpBhj93Bkxgw7UGqGEoehfw4Ib1wKpYYABifdww157mEWPqOCOU3cJTNBbCwlbuy7vetryQoX3863YdWc4J5AVviAF8Sz0KcjkkfJJ8X3LjhrmdTXK0W8Ea/Lie03hVVO21pfwI03w92MQPrU1e71Ae+OZhsdkUhaI8E1Fs58fVb8RO4VbOvyo2N8jG3TQymtcSgmOSjvoOZ+AAYEA3zjk6z/X60zd3wqsbLcVanmewXEI3o09AJ4LTvpu8mZ2OEdUVcw+/fhwt1nvEAMdrG4y3RZChIb6xbrK0bjZqL6tIV3lulLzSdqPGyMJJZe74D1N93o1GHQpz1cZN0EzbuzkpUEa6qegmlawE416+8NX6oZpRLWrijO9jIu6GmrjCicD2LiRDqgMepaTQ8py6YcCDTWrpm1AV5Y/WW2S6+aImKOE6OqeGlalL6WJV79PvL8fa91L3aW8EP1kK+ncVqeSAAYawh63mCZuT5T47Wv2Q6ZfXNJ7Zt/AsUYsrAjqs1ZZ9pn0B1j7P0SgtfXzPJZ8fm7jyrXK01lpM9Yhacawp4OalGeD9rLBHm/qT7Y3E0+jMVzsoKWbV+CguE3mRAV94VWB17UQOlveMXtPj1G0FFbpt9IglYaEDvfBkBRWe68OiV5A87BonlyoHOqmbbT8b9SFjHvtmnPUZ89wmKNkzdfX9VbGCNFYDuzy6ihF3USj42QrCZ1HMq1+SrcxRF+hNjtwwOGJYnTeR+SCTwpB66s57PvtkziFRMr5Pd37jtqhGPSnDaVPeSIDmE2QQCK6iJLJt3f0thWlmIQcJCkaas93ARWTP3mxYrsggHN33vltAjVgbfwHSzLvjtGt+aqLdRf9ZOkQKNT7VzbS8qM7qcruEZPquEmaNR288v2Pkm9KeXS9UG3fCrnBjTvaNDQ50VxNb53EWcvhdfVOvCMtAQMzitE5qRtI0hK8VASgEsOEdOpiVtJ+4Bkigbs6COz9vgqsgNUsdGgH4J3InsWAVYdw/k+creTq7vSVFNOE5iKBLec5Rt8kyL8m6H6B+yBzg9tHHvMMRAc/HquihSYeQGpq9T9TL3trQONoK1SrDOQNnNpHGfDH5jU8rseC3WZ73Orv1Q/8Z1fKcRdknLCKXvyr85hVx/JEPJRWUm2GT5frrnLbOWWSowtGouhJeB8G2DGoF42VQ0hBCpAPLDm7s4DvbmBa+oJhMZOl4MjKVH5/fktPgKzSg0x7ycYlBdAobjDSjSyBxvsXYMnbDjZ813y4vmZtHbwvmHfHjD1TaTOWR2Noez3lizm9+Ps1msRgWBR0s/cXSj4SZIvv2V/Mj9SN2MqYxNaiTAs3MVmKB8Ky163ValzYWbsxz0oiSYpbe0Em5gRuQUEwUVsZxvcfG5goUejIG0OFFmnvyw/1TqskAD6hi4r8lu/bSvTUFaRJxIgIEsnzPy7YrnHbNwD4RU9PjQBZgvas48K1HJZwgOLp2zkb3xaGvd2BgdSBO/suF2I3oirD5qnp+qvlMXMJIGYyK+wLkasMB+eHr1mn41JCg3lymLSUJP5/mCMIyYU63W+J3zuPfj1fmcsM6iGo/JNMIo4UuihkTRHNwAyI4CaTQMZ8pmPouCIlsTuzmIShFdxPQOM9mVL5sDOk0tymswN1QfMm11YQ/FwlHtdnVFpIb+3mJ",gL="8bd8822d",xv={name:AL,data:hL,hash:gL};function pL(S){return s(this,void 0,void 0,function*(){let{costFactor:q,password:M,salt:Y}=S,ie=yield v(xv,0);ie.writeMemory(C(Y),0);let ae=C(M);ie.writeMemory(ae,16);let ge=S.outputType==="encoded"?1:0;ie.getExports().bcrypt(ae.length,q,ge);let xe=ie.getMemory();if(S.outputType==="encoded")return f(xe,60);if(S.outputType==="hex"){let Je=new Uint8Array(48);return w(Je,xe,24)}return xe.slice(0,24)})}let mL=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(S.costFactor)||S.costFactor<4||S.costFactor>31)throw new Error("Cost factor should be a number between 4 and 31");if(S.password=C(S.password),S.password.length<1)throw new Error("Password should be at least 1 byte long");if(S.password.length>72)throw new Error("Password should be at most 72 bytes long");if(S.salt=C(S.salt),S.salt.length!==16)throw new Error("Salt should be 16 bytes long");if(S.outputType===void 0&&(S.outputType="encoded"),!["hex","binary","encoded"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function yL(S){return s(this,void 0,void 0,function*(){return mL(S),pL(S)})}let IL=S=>!(!/^\$2[axyb]\$[0-3][0-9]\$[./A-Za-z0-9]{53}$/.test(S)||S[4]==="0"&&Number(S[5])<4||S[4]==="3"&&Number(S[5])>1),wL=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(S.hash===void 0||typeof S.hash!="string")throw new Error("Hash should be specified");if(S.hash.length!==60)throw new Error("Hash should be 60 bytes long");if(!IL(S.hash))throw new Error("Invalid hash");if(S.password=C(S.password),S.password.length<1)throw new Error("Password should be at least 1 byte long");if(S.password.length>72)throw new Error("Password should be at most 72 bytes long")};function xL(S){return s(this,void 0,void 0,function*(){wL(S);let{hash:q,password:M}=S,Y=yield v(xv,0);Y.writeMemory(C(q),0);let ie=C(M);return Y.writeMemory(ie,60),!!Y.getExports().bcrypt_verify(ie.length)})}var CL="whirlpool",EL="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",BL="8d8f6035",Cv={name:CL,data:EL,hash:BL};let bL=new o,_0=null;function vL(S){if(_0===null)return E(bL,Cv,64).then(q=>(_0=q,_0.calculate(S)));try{let q=_0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function kL(){return v(Cv,64).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:64};return q})}var SL="sm3",DL="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",QL="b6fb4b8e",Ev={name:SL,data:DL,hash:QL};let _L=new o,F0=null;function FL(S){if(F0===null)return E(_L,Ev,32).then(q=>(F0=q,F0.calculate(S)));try{let q=F0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function PL(){return v(Ev,32).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:32};return q})}r.adler32=J,r.argon2Verify=Bs,r.argon2d=xo,r.argon2i=Ee,r.argon2id=Gi,r.bcrypt=yL,r.bcryptVerify=xL,r.blake2b=qe,r.blake2s=Al,r.blake3=Ti,r.crc32=Ye,r.crc64=Xw,r.createAdler32=z,r.createBLAKE2b=_e,r.createBLAKE2s=Ai,r.createBLAKE3=A,r.createCRC32=Ie,r.createCRC64=Zw,r.createHMAC=wv,r.createKeccak=aM,r.createMD4=MO,r.createMD5=JO,r.createRIPEMD160=eL,r.createSHA1=XO,r.createSHA224=AM,r.createSHA256=hv,r.createSHA3=nM,r.createSHA384=xM,r.createSHA512=BM,r.createSM3=PL,r.createWhirlpool=kL,r.createXXHash128=$M,r.createXXHash3=HM,r.createXXHash32=QM,r.createXXHash64=RM,r.keccak=oM,r.md4=OO,r.md5=zO,r.pbkdf2=nx,r.ripemd160=ZM,r.scrypt=fL,r.sha1=WO,r.sha224=fM,r.sha256=gM,r.sha3=iM,r.sha384=wM,r.sha512=EM,r.sm3=FL,r.whirlpool=vL,r.xxhash128=jM,r.xxhash3=LM,r.xxhash32=DM,r.xxhash64=UM}))});var M4,yc,aE,km,L4=j(()=>{"use strict";M4=Qr(vm(),1),yc=32,aE=16,km=class r{dataKey;constructor(e){this.dataKey=e}static async create(e,t){if(!e)throw new Error("[Crypt] password \u4E0D\u80FD\u4E3A\u7A7A");let i=await(0,M4.scrypt)({password:e,salt:t||"",costFactor:16384,blockSize:8,parallelism:1,hashLength:64,outputType:"binary"}),n=await crypto.subtle.importKey("raw",i.slice(0,32),{name:"AES-CTR"},!1,["encrypt","decrypt"]);return new r(n)}encryptedSize(e){return e+yc}decryptedSize(e){return Math.max(0,e-yc)}async encrypt(e){let t=crypto.getRandomValues(new Uint8Array(aE)),i=new Uint8Array(yc);i.set(t,0),crypto.getRandomValues(i.subarray(aE));let n=new Uint8Array(await crypto.subtle.encrypt({name:"AES-CTR",counter:t,length:128},this.dataKey,e)),s=new Uint8Array(yc+n.length);return s.set(i,0),s.set(n,yc),s}async decrypt(e){if(e.length<yc)throw new Error("[Crypt] \u52A0\u5BC6\u6587\u4EF6\u8FC7\u77ED\uFF08\u7F3A\u5C11\u6587\u4EF6\u5934\uFF09");let t=e.slice(0,aE),i=e.slice(yc);return new Uint8Array(await crypto.subtle.decrypt({name:"AES-CTR",counter:t,length:128},this.dataKey,i))}}});var Sm,H4=j(()=>{"use strict";Be();L4();Sm=class{addition;cipher=null;remoteDriver=null;remoteRoot="/";suffix;constructor(e){this.addition=e||{},this.suffix=this.addition.encrypted_suffix??".bin"}async init(){let e=this.addition.filename_encryption||"off";if(e!=="off")throw new Error(`[Crypt] filename_encryption='${e}' \u5C1A\u672A\u5B9E\u73B0\uFF0C\u5F53\u524D\u4EC5\u652F\u6301 off \u6A21\u5F0F\uFF08\u5185\u5BB9\u52A0\u5BC6\u3001\u6587\u4EF6\u540D\u4EC5\u52A0\u540E\u7F00\uFF09`);let{resolvePath:t}=await Promise.resolve().then(()=>(Ve(),Gr)),{getDriver:i}=await Promise.resolve().then(()=>(Yt(),qi)),n=await t(this.addition.remote_path||"/");if(n.isVirtual||!n.storage)throw new Error(`[Crypt] remote_path \u672A\u5339\u914D\u5230\u6709\u6548\u5B58\u50A8: ${this.addition.remote_path}`);this.remoteRoot=n.physical||"/",this.remoteDriver=await i(n.storage.driver,n.storage),this.cipher=await km.create(this.addition.password,this.addition.salt||"")}ensureReady(){if(!this.cipher||!this.remoteDriver)throw new Error("[Crypt] driver not initialized")}joinRemote(e){let t=String(e||"/");return((this.remoteRoot==="/"?"":this.remoteRoot)+t).replace(/\/{2,}/g,"/")||"/"}decryptName(e){return this.suffix&&e.endsWith(this.suffix)?e.slice(0,-this.suffix.length):e}async list(e,t){this.ensureReady();let i=this.joinRemote(t);return(await this.remoteDriver.list("",i)).map(s=>{if(s.is_dir)return s;let o=this.decryptName(s.name);return{...s,name:o,size:this.cipher.decryptedSize(s.size),type:X(o,!1)}})}async get(e,t){this.ensureReady();let i=this.joinRemote(t),n=await this.remoteDriver.get("",i);if(n.is_dir)return n;let s=this.decryptName(n.name);return{...n,name:s,size:this.cipher.decryptedSize(n.size),type:X(s,!1),raw_url:""}}async mkdir(e,t){this.ensureReady(),await this.remoteDriver.mkdir("",this.joinRemote(t))}async rename(e,t,i){this.ensureReady();let n=this.joinRemote(t);await this.isFile(n)?await this.remoteDriver.rename("",n+this.suffix,i+this.suffix):await this.remoteDriver.rename("",n,i)}async remove(e,t,i){this.ensureReady();let n=this.joinRemote(t);await this.isFile(n)?await this.remoteDriver.remove("",n+this.suffix,i):await this.remoteDriver.remove("",n,i)}async move(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);await this.isFile(o)?await this.remoteDriver.move(e,t,i,o+this.suffix,a+this.suffix):await this.remoteDriver.move(e,t,i,o,a)}async copy(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);await this.isFile(o)?await this.remoteDriver.copy(e,t,i,o+this.suffix,a+this.suffix):await this.remoteDriver.copy(e,t,i,o,a)}async put(e,t,i){this.ensureReady();let n=this.joinRemote(t)+this.suffix,s=await this.cipher.encrypt(new Uint8Array(i));await this.remoteDriver.put("",n,Buffer.from(s))}async createReadStream(e,t){this.ensureReady();let i=this.joinRemote(e)+this.suffix,n=await this.remoteDriver.get("",i);if(!n.raw_url)throw new Error("[Crypt] \u5E95\u5C42\u9A71\u52A8\u672A\u8FD4\u56DE\u4E0B\u8F7D\u94FE\u63A5\uFF0C\u65E0\u6CD5\u89E3\u5BC6\u4E0B\u8F7D");let s=await fetch(n.raw_url);if(!s.ok)throw new Error(`[Crypt] \u5E95\u5C42\u4E0B\u8F7D\u5931\u8D25: HTTP ${s.status}`);let o=new Uint8Array(await s.arrayBuffer()),a=await this.cipher.decrypt(o),c=t?.start??0,l=t?.end??a.length-1,d=a.slice(c,l+1);return new ReadableStream({start(u){u.enqueue(d),u.close()}})}async isFile(e){if(!this.suffix)return!1;try{let t=await this.remoteDriver.get("",e+this.suffix);return!!t&&!t.is_dir}catch{return!1}}}});var Dm,K4=j(()=>{"use strict";Be();Dm=class{addition;constructor(e){this.addition=e||{}}randSize(){let e=this.addition.min_file_size||0,t=this.addition.max_file_size||0;return t<=e?e:e+Math.floor(Math.random()*(t-e))}now(){return new Date().toISOString()}async list(){let e=[];for(let t=0;t<(this.addition.num_file||0);t++){let i=`file_${t}.bin`;e.push({name:i,size:this.randSize(),is_dir:!1,modified:this.now(),sign:"",type:X(i,!1)})}for(let t=0;t<(this.addition.num_folder||0);t++){let i=`folder_${t}`;e.push({name:i,size:0,is_dir:!0,modified:this.now(),sign:"",type:1})}return e}async get(e,t){let i=String(t||"").split("/").filter(Boolean),n=i[i.length-1]||"file.bin";return{name:n,size:this.randSize(),is_dir:!1,modified:this.now(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(){}async rename(){}async remove(){}async move(){}async copy(){}async put(){}async createReadStream(e,t){let i=t?.start??0,n=t?.end??i+this.randSize()-1,s=Math.max(0,n-i+1),o=64*1024,a=s;return new ReadableStream({pull(c){if(a<=0){c.close();return}let l=Math.min(o,a),d=new Uint8Array(l);crypto.getRandomValues(d),c.enqueue(d),a-=l}})}}});var Qm,G4=j(()=>{"use strict";Be();He();Qm=class{addition;token;onTokenUpdate;constructor(e,t){this.addition=e||{},this.token=this.addition.token||"",this.onTokenUpdate=t}get baseUrl(){return(this.addition.url||"").replace(/\/+$/,"")}async init(){if(!this.baseUrl)throw new Error("[AListV3] url is required");try{let e=await this.request("/me","GET");this.addition.username&&e.username!==this.addition.username&&await this.login()}catch{this.addition.username&&await this.login()}}async login(){if(!this.addition.username)return;let e=await this.request("/auth/login","POST",{username:this.addition.username,password:this.addition.password},!1);if(this.token=e.token,this.onTokenUpdate)try{await this.onTokenUpdate(this.token)}catch{}}async request(e,t,i,n=!0){let s=await fetch(`${this.baseUrl}/api${e}`,{method:t,headers:{"Content-Type":"application/json",...this.token?{Authorization:this.token}:{}},...i!==void 0?{body:JSON.stringify(i)}:{}}),o=await s.json().catch(()=>({code:s.status,message:"invalid response",data:null}));if(o.code!==200){if((o.code===401||o.code===403)&&n)return await this.login(),this.request(e,t,i,!1);throw new Error(`[AListV3] request failed: code=${o.code}, message=${o.message}`)}return o.data}toFileItem(e){return{name:e.name,size:e.size||0,is_dir:!!e.is_dir,modified:e.modified||new Date().toISOString(),sign:e.sign||"",thumb:e.thumb||"",type:e.type??X(e.name,!!e.is_dir),raw_url:""}}async list(e,t){let n=((await this.request("/fs/list","POST",{path:t,password:this.addition.meta_password||"",page:1,per_page:0,refresh:!1})).content||[]).map(s=>this.toFileItem(s));return de(n,"name","asc")}async get(e,t){let i=await this.request("/fs/get","POST",{path:t,password:this.addition.meta_password||""});return{...this.toFileItem(i),raw_url:i.raw_url||""}}async mkdir(e,t){await this.request("/fs/mkdir","POST",{path:t})}async rename(e,t,i){await this.request("/fs/rename","POST",{path:t,name:i})}async remove(e,t,i){let n=t.split("/").slice(0,-1).join("/")||"/";await this.request("/fs/remove","POST",{dir:n,names:i})}async move(e,t,i,n,s){let o=n.split("/").slice(0,-1).join("/")||"/",a=s.split("/").slice(0,-1).join("/")||"/";await this.request("/fs/move","POST",{src_dir:o,dst_dir:a,names:i})}async copy(e,t,i,n,s){let o=n.split("/").slice(0,-1).join("/")||"/",a=s.split("/").slice(0,-1).join("/")||"/";await this.request("/fs/copy","POST",{src_dir:o,dst_dir:a,names:i})}async put(e,t,i){let n=await fetch(`${this.baseUrl}/api/fs/put`,{method:"PUT",headers:{Authorization:this.token,"File-Path":encodeURIComponent(t),"Content-Type":"application/octet-stream"},body:i}),s=await n.json().catch(()=>({code:n.status,message:"invalid response",data:null}));if(s.code!==200)throw new Error(`[AListV3] put failed: code=${s.code}, message=${s.message}`)}}});function z4(r){let e=r.indexOf("http://"),t=r.indexOf("https://"),i=e>=0?e:t;if(i<0)throw new Error(`invalid line: ${r}, because url is required for file`);let n=r.slice(i),s=r.slice(0,i),o={url:n,name:"",level:0,modified:0,size:0,children:[]};if(i>0){if(!s.endsWith(":"))throw new Error(`invalid line: ${r}, file info must end with ':'`);let a=s.slice(0,-1);if(!a)throw new Error(`invalid line: ${r}, file name can't be empty`);let c=a.split(":");if(o.name=c[0],c.length>1){let l=parseInt(c[1],10);if(Number.isNaN(l))throw new Error(`invalid line: ${r}, file size must be an integer`);if(o.size=l,c.length>2){let d=parseInt(c[2],10);if(Number.isNaN(d))throw new Error(`invalid line: ${r}, modified must be a unix timestamp`);o.modified=d}}}else{let c=new URL(n).pathname.split("/").filter(Boolean);o.name=c[c.length-1]||n}return o}function VJ(r){let e={url:"",name:"root",level:-1,modified:0,size:0,children:[]},t=[e],i=String(r||"").split(` -`);for(let n of i){let s=0;for(;s<n.length&&n[s]===" ";)s++;if(s%2!==0)throw new Error(`the line '${n}' indent is not a multiple of 2`);let o=s/2,a=n.slice(s).trim();if(a){for(;o<=t[t.length-1].level;)t.pop();if(a.endsWith(":")){let c={url:"",name:a.slice(0,-1),level:o,modified:0,size:0,children:[]};t[t.length-1].children.push(c),t.push(c)}else{let c=z4(a);c.level=o,t[t.length-1].children.push(c)}}}return e}function ql(r){if(r.url)return r.size;let e=0;for(let t of r.children)e+=ql(t);return r.size=e,e}function YJ(r){let e=t=>{if(t.level===-1)return t.children.map(e).join(` +`,C=new TextEncoder,x=C.encode(m),Q=s?C.encode(w):new Uint8Array(0),R=C.encode(B),U=s?new Uint8Array(s):new Uint8Array(0),T=x.length+Q.length+U.length+R.length,D=new Uint8Array(T),b=0;D.set(x,b),b+=x.length,Q.length>0&&(D.set(Q,b),b+=Q.length,D.set(U,b),b+=U.length),D.set(R,b),l=D}else c=`https://www.weiyun.com/webapp/json/${e}/${t}?g_tk=${encodeURIComponent(a)}&cmd=${i}`,l=JSON.stringify({req_header:JSON.stringify(this.newHeader(i,o)),req_body:JSON.stringify(this.newBody(t,n,o))}),d["Content-Type"]="application/json; charset=UTF-8";let u=await fetch(c,{method:"POST",headers:d,body:l});if(this.updateCookiesFromHeaders(u.headers),u.status===403)try{await this.refreshCtoken(),(this.loginType()==="weixin"||this.loginType()==="weixin_openid")&&(await this.weixinRefreshToken().catch(()=>{}),await this.refreshCtoken()),d.Cookie=this.getCookieStr(),d.g_tk=this.cookies.get("wyctoken")||"",u=await fetch(c,{method:"POST",headers:d,body:l}),this.updateCookiesFromHeaders(u.headers)}catch(p){throw new Error(`[WeiYun] Request failed (403): ${p.message}`)}if(!u.ok){let p=await u.text().catch(()=>"");throw new Error(`[WeiYun] HTTP ${u.status}: ${p}`)}let f=await u.json().catch(()=>({})),h=f.data||f.result;if(f.ret!==void 0&&f.ret!==0)throw new Error(`[WeiYun] Error (${f.ret}): ${f.msg||"Unknown"}`);if(h?.rsp_header&&h.rsp_header.retcode!==0){let p=h.rsp_header;throw new Error(`[WeiYun] Cmd ${p.cmd} (${p.cmdName||t}) Error (${p.retcode}): ${p.retmsg||"Unknown error"}`)}if(e==="preUpload")return h?.rsp_body?.RspMsg_body?.weiyunPreUploadMsgRsp_body||f;if(e==="upload")return h?.rsp_body?.RspMsg_body?.[`weiyun.${t}MsgRsp_body`]||f;let g=h?.rsp_body?.RspMsg_body;if(typeof g=="string")try{return JSON.parse(g)}catch{return g}return g||h||f}async diskUserInfoGet(){return this.request("weiyunQdiskClient","DiskUserInfoGet",2201,{is_get_upload_flow_flag:!1,is_get_high_speed_flow_info:!1,is_get_weiyun_flag:!1,is_get_space_clean_info:!1,is_get_user_reward_info:!1})}async libDirPathGet(e){return(await this.request("weiyunFileLibClient","LibDirPathGet",26150,{dir_key:e})).items||[]}async diskDirFileList(e,t={}){return this.request("weiyunQdisk","DiskDirList",2208,{dir_key:e,start:t.start||0,count:t.count||500,sort_field:t.sortField??2,reverse_order:t.reverseOrder??!1,get_type:t.getType??0,get_abstract_url:!1,get_dir_detail_info:!1})}async diskFileDownload(e){let i=(await this.request("weiyunQdiskClient","DiskFileBatchDownload",2402,{file_list:[e],download_type:0})).file_list||[];if(!i||i.length===0)throw new Error("[WeiYun] No download link returned");return i[0]}async diskDirCreate(e){return this.request("weiyunQdiskClient","DiskDirCreate",2614,{ppdir_key:e.ppdir_key,pdir_key:e.pdir_key,dir_name:e.dir_name,file_exist_option:2,create_type:1})}async diskFileRename(e,t){await this.request("weiyunQdiskClient","DiskFileRename",2605,{ppdir_key:e.ppdir_key,pdir_key:e.pdir_key,file_id:e.file_id,src_filename:e.filename,filename:t})}async diskDirAttrModify(e,t){await this.request("weiyunQdiskClient","DiskDirAttrModify",2615,{ppdir_key:e.ppdir_key,pdir_key:e.pdir_key,dir_key:e.dir_key,src_dir_name:e.dir_name,dst_dir_name:t})}async diskFileDelete(e){await this.request("weiyunQdiskClient","DiskDirFileBatchDeleteEx",2509,{file_list:[e]})}async diskDirDelete(e){await this.request("weiyunQdiskClient","DiskDirFileBatchDeleteEx",2509,{dir_list:[e]})}async diskFileMove(e,t){await this.request("weiyunQdiskClient","DiskDirFileBatchMove",2618,{src_ppdir_key:e.ppdir_key,src_pdir_key:e.pdir_key,file_list:[e],dst_ppdir_key:t.pdir_key,dst_pdir_key:t.dir_key})}async diskDirMove(e,t){await this.request("weiyunQdiskClient","DiskDirFileBatchMove",2618,{src_ppdir_key:e.ppdir_key,src_pdir_key:e.pdir_key,dir_list:[e],dst_ppdir_key:t.pdir_key,dst_pdir_key:t.dir_key})}async preUpload(e,t,i,n,s,o=4,a=1){let l=0,d=n,u=0;n>0&&(d=n%1048576,d===0&&(d=1048576),u=d%128,u===0&&(u=128),l=n-d);let f=[],h=new fm;for(let x=0;x<l;x+=1048576){let Q=s.subarray(x,x+1048576);h.update(Q),f.push({sha:h.getStateHex(),offset:x,size:1048576})}let g=s.subarray(l,l+d-u);h.update(g);let p=h.getStateHex(),I=s.subarray(l+d-u,n);h.update(I);let m=IF(I),w=h.digestHex();f.push({sha:w,offset:l,size:d});let B={common_upload_req:{ppdir_key:e,pdir_key:t,file_size:n,filename:i,file_exist_option:a,use_mutil_channel:!0},upload_scr:0,channel_count:o,block_size:1048576,check_sha:p,check_data:m,block_info_list:f},C=await this.request("preUpload","PreUpload",247120,B);return C.common_upload_rsp&&(C.common_upload_rsp.file_sha=w,C.common_upload_rsp.file_size=n),C}async addUploadChannel(e,t,i){return this.request("upload","AddChannel",247122,{upload_key:i.upload_key,ex:i.ex,orig_channel_count:e,dest_channel_count:t,speed:4303})}async uploadPiece(e,t,i){let n=await this.request("upload","UploadPiece",247121,{upload_key:t.upload_key,ex:t.ex,channel:e},i);return n.channel&&n.channel.len===0&&n.upload_state===1&&(n.channel.len=e.len),n}}});function b$(r){return Buffer.from(JSON.stringify(r),"utf8").toString("base64")}function v$(r){try{let e=JSON.parse(Buffer.from(r,"base64").toString("utf8"));if(!e||!e.uploadKey||!e.ex||!Number.isInteger(e.partCount)||e.partCount<1)throw new Error("invalid upload session");return e}catch{throw new Error("[WeiYun] \u4E0A\u4F20\u4F1A\u8BDD\u65E0\u6548\u6216\u5DF2\u635F\u574F")}}function vF(r){if(!r)return new Date().toISOString();try{let e=typeof r=="string"?parseInt(r,10):r;if(!isNaN(e)&&e>0){let i=e<1e10?e*1e3:e;return new Date(i).toISOString()}let t=new Date(r);if(!isNaN(t.getTime()))return t.toISOString()}catch{}return new Date().toISOString()}function BF(r){return{name:r.dir_name,size:0,is_dir:!0,modified:vF(r.dir_mtime||r.dir_ctime),sign:r.dir_key,type:1,thumb:"",raw_url:""}}function bF(r){return{name:r.filename,size:r.file_size||0,is_dir:!1,modified:vF(r.file_mtime||r.file_ctime),sign:r.file_id,type:X(r.filename,!1),thumb:r.ext_info?.thumb_url||"",raw_url:""}}function FE(r){let e={...r||{}};return e.root_folder_id=(e.root_folder_id||"").trim(),e.cookies=(e.cookies||"").trim(),e.order_by=e.order_by||"name",e.order_direction=e.order_direction||"asc",e.upload_thread=e.upload_thread||"4",e}var B$,EF,gm,kF=J(()=>{"use strict";Be();He();CF();B$=45,EF=1024*1024;gm=class{client;addition;rootFolderId="";rootPdirKey="";uploadThreads=4;pathFolderCache=new Map;budget={used:0,limit:B$};constructor(e,t){this.addition=FE(e),this.client=new hm(this.addition,t)}async init(){let e=parseInt(this.addition.upload_thread||"4",10);if(this.uploadThreads=Math.min(32,Math.max(4,isNaN(e)?4:e)),this.addition.upload_thread=String(this.uploadThreads),await this.client.refreshCtoken(),this.addition.root_folder_id)this.rootFolderId=this.addition.root_folder_id;else{let n=await this.client.diskUserInfoGet();this.rootFolderId=n.main_dir_key||n.root_dir_key||"",this.addition.root_folder_id=this.rootFolderId}if(!this.rootFolderId)throw new Error("[WeiYun] Failed to obtain root folder ID");let t=await this.client.libDirPathGet(this.rootFolderId);if(!t||t.length===0)throw new Error(`[WeiYun] Invalid root directory ID: ${this.rootFolderId}`);let i=t[t.length-1];this.rootPdirKey=i.pdir_key||"",this.pathFolderCache.set("/",{dirKey:this.rootFolderId,pdirKey:this.rootPdirKey,dirName:i.dir_name||"root"})}consumePendingCookie(){return this.client.consumePendingCookie()}async resolveFolder(e){let t="/"+String(e||"").split("/").filter(Boolean).join("/");if(t==="/"||t===`/${this.rootFolderId}`)return{dirKey:this.rootFolderId,pdirKey:this.rootPdirKey,dirName:"root"};if(this.pathFolderCache.has(t))return this.pathFolderCache.get(t);let i=t.split("/").filter(Boolean),n={dirKey:this.rootFolderId,pdirKey:this.rootPdirKey,dirName:"root"},s="";for(let o=0;o<i.length;o++){let a=i[o],c=(()=>{try{return decodeURIComponent(a)}catch{return a}})();if(s="/"+i.slice(0,o+1).join("/"),this.pathFolderCache.has(s)){n=this.pathFolderCache.get(s);continue}this.budget.used++,this.budget.used>=this.budget.limit&&console.warn(`[WeiYun] Cloudflare Worker subrequest budget limit (${this.budget.limit}) reached.`);let u=((await this.client.diskDirFileList(n.dirKey,{count:500,getType:1})).dir_list||[]).find(f=>f.dir_name===a||f.dir_name===c||f.dir_key===a);if(!u)throw new Error(`[WeiYun] Directory '${a}' not found in folder '${n.dirKey}'`);n={dirKey:u.dir_key,pdirKey:n.dirKey,dirName:u.dir_name},this.pathFolderCache.set(s,n)}return n}async resolveFile(e){let t=String(e||"").split("/").filter(Boolean);if(t.length===0)throw new Error("[WeiYun] \u8DEF\u5F84\u65E0\u6548");let i=t[t.length-1],n=(()=>{try{return decodeURIComponent(i)}catch{return i}})(),s="/"+t.slice(0,t.length-1).join("/"),o=await this.resolveFolder(s);this.budget.used++;let a=await this.client.diskDirFileList(o.dirKey,{count:500,getType:0}),c=(a.file_list||[]).find(d=>d.filename===i||d.filename===n||d.file_id===i);if(c)return{file:c,parent:o,isDir:!1};let l=(a.dir_list||[]).find(d=>d.dir_name===i||d.dir_name===n||d.dir_key===i);if(l)return{folder:l,parent:o,isDir:!0};throw new Error(`[WeiYun] \u6587\u4EF6\u6216\u76EE\u5F55\u672A\u627E\u5230: ${i}`)}async list(e,t){this.budget.used=0;let i=await this.resolveFolder(t),n=[],s=[],o=0;for(;;){if(this.budget.used++,this.budget.used>=this.budget.limit){console.warn(`[WeiYun] Subrequest budget limit (${this.budget.limit}) reached while listing ${t}`);break}let c=this.addition.order_by==="size"?3:this.addition.order_by==="updated_at"?2:1,l=this.addition.order_direction==="desc",d=await this.client.diskDirFileList(i.dirKey,{start:o,count:500,sortField:c,reverseOrder:l,getType:0}),u=d.dir_list||[],f=d.file_list||[];for(let h of u)h.pdir_key=i.dirKey,n.push(h);for(let h of f)h.pdir_key=i.dirKey,s.push(h);if(o=n.length+s.length,d.finish_flag||u.length===0&&f.length===0)break}let a=[...n.map(BF),...s.map(bF)];return de(a,this.addition.order_by==="size"?"size":this.addition.order_by==="updated_at"?"updated_at":"name",this.addition.order_direction)}async get(e,t){this.budget.used=0;let i="/"+String(t||"").split("/").filter(Boolean).join("/");if(i==="/"||i===`/${this.rootFolderId}`)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.rootFolderId,type:1,raw_url:""};let{file:n,folder:s,parent:o,isDir:a}=await this.resolveFile(t);if(a&&s)return BF(s);if(n){let c=bF(n);try{let l=await this.client.diskFileDownload({ppdir_key:o.pdirKey,pdir_key:o.dirKey,file_id:n.file_id,filename:n.filename});c.raw_url=l.download_url,c.raw_url_headers={Cookie:`${l.cookie_name}=${l.cookie_value}`}}catch(l){console.warn(`[WeiYun] \u83B7\u53D6 ${n.filename} \u4E0B\u8F7D\u94FE\u63A5\u5931\u8D25:`,l.message),c.raw_url_error=l.message}return c}throw new Error(`[WeiYun] \u6761\u76EE\u672A\u627E\u5230: ${t}`)}async mkdir(e,t){this.budget.used=0;let i=String(t||"").split("/").filter(Boolean),n=i.pop()||"\u65B0\u5EFA\u6587\u4EF6\u5939",s="/"+i.join("/"),o=await this.resolveFolder(s);await this.client.diskDirCreate({ppdir_key:o.pdirKey,pdir_key:o.dirKey,dir_name:n})}async rename(e,t,i){this.budget.used=0;let{file:n,folder:s,parent:o,isDir:a}=await this.resolveFile(t);a&&s?await this.client.diskDirAttrModify({ppdir_key:o.pdirKey,pdir_key:o.dirKey,dir_key:s.dir_key,dir_name:s.dir_name},i):n&&await this.client.diskFileRename({ppdir_key:o.pdirKey,pdir_key:o.dirKey,file_id:n.file_id,filename:n.filename},i)}async remove(e,t,i){this.budget.used=0;let{file:n,folder:s,parent:o,isDir:a}=await this.resolveFile(t);a&&s?await this.client.diskDirDelete({ppdir_key:o.pdirKey,pdir_key:o.dirKey,dir_key:s.dir_key,dir_name:s.dir_name}):n&&await this.client.diskFileDelete({ppdir_key:o.pdirKey,pdir_key:o.dirKey,file_id:n.file_id,filename:n.filename})}async move(e,t,i,n,s){this.budget.used=0;let{file:o,folder:a,parent:c,isDir:l}=await this.resolveFile(n),d=await this.resolveFolder(t);l&&a?await this.client.diskDirMove({ppdir_key:c.pdirKey,pdir_key:c.dirKey,dir_key:a.dir_key,dir_name:a.dir_name},{pdir_key:d.pdirKey,dir_key:d.dirKey}):o&&await this.client.diskFileMove({ppdir_key:c.pdirKey,pdir_key:c.dirKey,file_id:o.file_id,filename:o.filename},{pdir_key:d.pdirKey,dir_key:d.dirKey})}async copy(e,t,i,n,s){throw new Error("[WeiYun] \u5FAE\u4E91\u63A5\u53E3\u4E0D\u652F\u6301\u590D\u5236\u64CD\u4F5C (Copy not supported)")}async put(e,t,i){let n=String(t||"").split("/").filter(Boolean),s=n.pop();if(!s)throw new Error("[WeiYun] \u4E0A\u4F20\u8DEF\u5F84\u65E0\u6548");let o="/"+n.join("/"),a=await this.resolveFolder(o),c=await this.client.preUpload(a.pdirKey,a.dirKey,s,i.length,i,4,1);if(c.file_exist)return;let l={upload_key:c.upload_key||"",ex:c.ex||""},d=c.channel_list||[];d.length===0&&(d=[{id:0,offset:0,len:i.length}]);for(let u of d){let f={...u};for(;f.offset<i.length;){let h=Math.min(f.len||EF,i.length-f.offset),g=i.subarray(f.offset,f.offset+h),p=await this.client.uploadPiece(f,l,g);if(p.upload_state===2)break;p.channel?f=p.channel:f.offset+=h}}}async createUploadSession(e,t,i,n,s){this.budget.used=0;let o=await this.resolveFolder(t||"/"),a=EF,c=Math.max(1,Math.ceil(Math.max(0,Number(n)||0)/a)),l=new Uint8Array(0),d=await this.client.preUpload(o.pdirKey,o.dirKey,i,Math.max(0,Number(n)||0),l,4,1);if(d.file_exist)return{reuse:!0,partCount:0,chunkSize:a,session:""};let u={upload_key:d.upload_key||"",ex:d.ex||""},f=d.channel_list||[];if(f.length<this.uploadThreads&&u.upload_key)try{let h=await this.client.addUploadChannel(f.length,this.uploadThreads,u);h.channels&&(f=[...f,...h.channels])}catch{}return{reuse:!1,partCount:c,chunkSize:a,session:b$({uploadKey:u.upload_key,ex:u.ex,parentDirKey:o.pdirKey,pdirKey:o.dirKey,fileName:i,size:Math.max(0,Number(n)||0),partCount:c,chunkSize:a,channels:f})}}async uploadPart(e,t,i){let n=v$(e);if(!Number.isInteger(t)||t<1||t>n.partCount)throw new Error(`[WeiYun] \u5206\u7247\u5E8F\u53F7\u65E0\u6548: ${t}`);let s=(t-1)*n.chunkSize,o={id:t-1,offset:s,len:i.length},a={upload_key:n.uploadKey,ex:n.ex};return await this.client.uploadPiece(o,a,i),{partNumber:t}}async completeUploadSession(e,t=[]){}}});async function O$(r,e){let t=`${r}${e}1appkey`,i=await Ho(t),n=$t(i);return`div101.${r}${n}`}async function SF(r,e,t,i,n,s,o){let a=await O$(r,s);return[`ANDROID-${t}/${n}`,"protocolVersion/200","accesstype/",`clientid/${e}`,`clientversion/${n}`,"action_type/","networktype/WIFI","sessionid/",`deviceid/${r}`,"providername/NONE",`devicesign/${a}`,"refresh_token/",`sdkversion/${i}`,`datetime/${Date.now()}`,`usrno/${o}`,`appname/android-${t}`,"session_origin/","grant_type/","appid/","clientip/","devicename/Xiaomi_M2004j7ac","osversion/13","platformversion/10","accessmode/","devicemodel/M2004J7AC"].join(" ")}function PE(r,e){try{let t=new URL(e);return`${r.toUpperCase()}:${t.pathname}`}catch{let t=e.match(/:\/\/[^/]+((\/[^/\s?#]+)*)/);return`${r.toUpperCase()}:${t?t[1]:""}`}}var k$,S$,D$,Q$,_$,F$,P$,T$,U$,R$,N$,q$,pm,DF=J(()=>{"use strict";Gr();k$=["SOP04dGzk0TNO7t7t9ekDbAmx+eq0OI1ovEx","nVBjhYiND4hZ2NCGyV5beamIr7k6ifAsAbl","Ddjpt5B/Cit6EDq2a6cXgxY9lkEIOw4yC1GDF28KrA","VVCogcmSNIVvgV6U+AochorydiSymi68YVNGiz","u5ujk5sM62gpJOsB/1Gu/zsfgfZO","dXYIiBOAHZgzSruaQ2Nhrqc2im","z5jUTBSIpBN9g4qSJGlidNAutX6","KJE2oveZ34du/g1tiimm"],S$=["C9qPpZLN8ucRTaTiUMWYS9cQvWOE","+r6CQVxjzJV6LCV","F","pFJRC","9WXYIDGrwTCz2OiVlgZa90qpECPD6olt","/750aCr4lm/Sly/c","RB+DT/gZCrbV","","CyLsf7hdkIRxRm215hl","7xHvLi2tOYP0Y92b","ZGTXXxu8E/MIWaEDB+Sm/","1UI3","E7fP5Pfijd+7K+t6Tg/NhuLq0eEUVChpJSkrKxpO","ihtqpG6FMt65+Xk+tWUH2","NhXXU9rg4XXdzo7u5o"],D$=["KHBJ07an7ROXDoK7Db","G6n399rSWkl7WcQmw5rpQInurc1DkLmLJqE","JZD1A3M4x+jBFN62hkr7VDhkkZxb9g3rWqRZqFAAb","fQnw/AmSlbbI91Ik15gpddGgyU7U","/Dv9JdPYSj3sHiWjouR95NTQff","yGx2zuTjbWENZqecNI+edrQgqmZKP","ljrbSzdHLwbqcRn","lSHAsqCkGDGxQqqwrVu","TsWXI81fD1","vk7hBjawK/rOSrSWajtbMk95nfgf3"],Q$="1.53.2",_$="com.pikcloud.pikpak",F$="2.0.6.206003",P$="2.0.0",T$="mypikpak.com",U$="8.0.3",R$="undefined",N$="mypikpak.com",q$="8.0.3";pm=class{addition;clientId;clientSecret;clientVersion;packageName;sdkVersion;algorithms;deviceId;userId="";userAgent="";accessToken="";refreshTokenVal="";captchaTokenVal="";onTokenRefreshed;constructor(e,t){this.addition=e,this.onTokenRefreshed=t,this.refreshTokenVal=e.refresh_token||"",this.captchaTokenVal=e.captcha_token||"";let i=e.platform||"web",n=e.client_id,s=e.client_secret;i==="android"?(this.clientId=n||"",this.clientSecret=s||"",this.clientVersion=Q$,this.packageName=_$,this.sdkVersion=F$,this.algorithms=k$):i==="pc"?(this.clientId=n||"",this.clientSecret=s||"",this.clientVersion=R$,this.packageName=N$,this.sdkVersion=q$,this.algorithms=D$,this.userAgent="MainWindow Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) PikPak/2.6.11.4955 Chrome/100.0.4896.160 Electron/18.3.15 Safari/537.36"):(this.clientId=n||"",this.clientSecret=s||"",this.clientVersion=P$,this.packageName=T$,this.sdkVersion=U$,this.algorithms=S$,this.userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"),this.deviceId=e.device_id||$t(`${e.username||""}${e.password||""}`)}getCaptchaSign(){let e=String(Date.now()),t=`${this.clientId}${this.clientVersion}${this.packageName}${this.deviceId}${e}`;for(let i of this.algorithms)t=$t(t+i);return{timestamp:e,sign:`1.${t}`}}async refreshCaptchaToken(e,t){let i={action:e,captcha_token:this.captchaTokenVal,client_id:this.clientId,device_id:this.deviceId,meta:t,redirect_uri:"xlaccsdk01://xbase.cloud/callback?state=harbor"},s=await(await fetch(`https://user.mypikpak.net/v1/shield/captcha/init?client_id=${encodeURIComponent(this.clientId)}`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId},body:JSON.stringify(i)})).json();if(s.error_code&&s.error_code!==0)throw new Error(`Captcha error ${s.error_code}: ${s.error_description||s.error}`);if(s.url)throw new Error(`PikPak requires captcha verification: ${s.url}`);return s.captcha_token&&(this.captchaTokenVal=s.captcha_token),this.captchaTokenVal}async refreshCaptchaTokenAtLogin(e,t){let{timestamp:i,sign:n}=this.getCaptchaSign(),s={client_version:this.clientVersion,package_name:this.packageName,user_id:t,timestamp:i,captcha_sign:n};return this.refreshCaptchaToken(e,s)}async refreshCaptchaTokenInLogin(e,t){let i={};return/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(t)?i.email=t:t.length>=11&&t.length<=18?i.phone_number=t:i.username=t,this.refreshCaptchaToken(e,i)}async login(){if(!this.addition.username||!this.addition.password)throw new Error("PikPak username or password is required when refresh_token is not provided");let e="https://user.mypikpak.net/v1/auth/signin";this.captchaTokenVal||await this.refreshCaptchaTokenInLogin(PE("POST",e),this.addition.username);let i=await(await fetch(`${e}?client_id=${encodeURIComponent(this.clientId)}`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId,"X-Captcha-Token":this.captchaTokenVal},body:JSON.stringify({captcha_token:this.captchaTokenVal,client_id:this.clientId,client_secret:this.clientSecret,username:this.addition.username,password:this.addition.password})})).json();if(i.error_code&&i.error_code!==0)throw new Error(`PikPak login failed (${i.error_code}): ${i.error_description||i.error}`);this.accessToken=i.access_token,this.refreshTokenVal=i.refresh_token,this.userId=i.sub||"",this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal,captchaToken:this.captchaTokenVal})}async refreshToken(){if(!this.refreshTokenVal){await this.login();return}let i=await(await fetch(`https://user.mypikpak.net/v1/auth/token?client_id=${encodeURIComponent(this.clientId)}`,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId},body:JSON.stringify({client_id:this.clientId,client_secret:this.clientSecret,grant_type:"refresh_token",refresh_token:this.refreshTokenVal})})).json();if(i.error_code&&i.error_code!==0){if(i.error_code===4126&&this.addition.username){await this.login();return}throw new Error(`PikPak token refresh failed (${i.error_code}): ${i.error_description||i.error}`)}this.accessToken=i.access_token,this.refreshTokenVal=i.refresh_token,this.userId=i.sub||"",this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal,captchaToken:this.captchaTokenVal})}async init(){this.addition.platform==="android"&&(this.userAgent=await SF(this.deviceId,this.clientId,this.packageName,this.sdkVersion,this.clientVersion,this.packageName,this.userId)),this.refreshTokenVal?await this.refreshToken():await this.login();try{await this.refreshCaptchaTokenAtLogin(PE("GET","https://api-drive.mypikpak.net/drive/v1/files"),this.userId)}catch(e){console.warn("[PikPak] post-login captcha init warning:",e)}this.addition.platform==="android"&&(this.userAgent=await SF(this.deviceId,this.clientId,this.packageName,this.sdkVersion,this.clientVersion,this.packageName,this.userId))}async request(e,t={}){let{method:i="GET",params:n,body:s,retryCount:o=0}=t,a=e;if(n&&Object.keys(n).length>0){let f=new URLSearchParams(n).toString();a+=(e.includes("?")?"&":"?")+f}let c={"User-Agent":this.userAgent||"OpenList","X-Device-ID":this.deviceId};this.captchaTokenVal&&(c["X-Captcha-Token"]=this.captchaTokenVal),this.accessToken&&(c.Authorization=`Bearer ${this.accessToken}`),s&&typeof s=="object"&&!(s instanceof Uint8Array)&&(c["Content-Type"]="application/json");let l=await fetch(a,{method:i,headers:c,body:s&&typeof s=="object"&&!(s instanceof Uint8Array)?JSON.stringify(s):s}),d=await l.text(),u={};try{u=JSON.parse(d)}catch{u=d}if(u&&typeof u=="object"&&u.error_code){let f=u.error_code;if((f===4122||f===4121||f===16)&&o<2)return await this.refreshToken(),this.request(e,{...t,retryCount:o+1});if(f===9&&o<2)return await this.refreshCaptchaTokenAtLogin(PE(i,e),this.userId),this.request(e,{...t,retryCount:o+1});throw new Error(`PikPak API Error (${f}): ${u.error_description||u.error||JSON.stringify(u)}`)}if(!l.ok)throw new Error(`PikPak request failed with status ${l.status}: ${d}`);return u}}});var mm,QF=J(()=>{"use strict";Be();He();Gr();DF();mm=class{addition;client;rootId="";idCache=new Map;constructor(e,t){this.addition=e,this.rootId=e.root_folder_id||"",this.client=new pm(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async resolveParentId(e){let t=this.cleanPath(e);if(!t)return this.rootId;if(this.idCache.has(t))return this.idCache.get(t);let i=t.split("/").filter(Boolean),n=this.rootId,s="";for(let o of i){if(s+="/"+o,this.idCache.has(s)){n=this.idCache.get(s);continue}let c=(await this.getFiles(n)).find(l=>l.name===o);if(!c)throw new Error(`Path not found: ${s}`);n=c.id,this.idCache.set(s,n)}return n}async getFiles(e){let t=[],i="";for(;;){let n={parent_id:e,thumbnail_size:"SIZE_LARGE",with_audit:"true",limit:"100",filters:JSON.stringify({phase:{eq:"PHASE_TYPE_COMPLETE"},trashed:{eq:!1}})};i&&(n.page_token=i);let s=await this.client.request("https://api-drive.mypikpak.net/drive/v1/files",{method:"GET",params:n});if(s.files&&s.files.length>0&&t.push(...s.files),!s.next_page_token||s.next_page_token===i)break;i=s.next_page_token}return t}async list(e,t){let i=await this.resolveParentId(t),n=await this.getFiles(i),s=this.cleanPath(t),o=n.map(a=>{let c=a.kind==="drive#folder",l=s?`${s}/${a.name}`:`/${a.name}`;this.idCache.set(l,a.id);let d=a.web_content_link||"";return!this.addition.disable_media_link&&a.medias&&a.medias.length>0&&a.medias[0].link?.url&&(d=a.medias[0].link.url),{name:a.name,size:parseInt(a.size||"0",10)||0,is_dir:c,created:a.created_time,modified:a.modified_time||new Date().toISOString(),sign:a.id,type:X(a.name,c),thumb:a.thumbnail_link,raw_url:d}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.rootId,type:1,raw_url:""};let s=await this.resolveParentId(t),o={_magic:"2021",usage:this.addition.disable_media_link?"FETCH":"CACHE",thumbnail_size:"SIZE_LARGE"},a=await this.client.request(`https://api-drive.mypikpak.net/drive/v1/files/${encodeURIComponent(s)}`,{method:"GET",params:o}),c=a.kind==="drive#folder",l=a.web_content_link||"";return!this.addition.disable_media_link&&a.medias&&a.medias.length>0&&a.medias[0].link?.url&&(l=a.medias[0].link.url),{name:a.name||n,size:parseInt(a.size||"0",10)||0,is_dir:c,created:a.created_time,modified:a.modified_time||new Date().toISOString(),sign:a.id,type:X(a.name||n,c),thumb:a.thumbnail_link,raw_url:l}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/"),s=i.split("/").pop()||"",o=await this.resolveParentId(n),a=await this.client.request("https://api-drive.mypikpak.net/drive/v1/files",{method:"POST",body:{kind:"drive#folder",parent_id:o,name:s}});a?.file?.id&&this.idCache.set(i,a.file.id)}async rename(e,t,i){let n=await this.resolveParentId(t);await this.client.request(`https://api-drive.mypikpak.net/drive/v1/files/${encodeURIComponent(n)}`,{method:"PATCH",body:{name:i}});let s=this.cleanPath(t);this.idCache.delete(s)}async remove(e,t,i){let n=await this.resolveParentId(t),s=await this.getFiles(n),o=[];for(let c of i){let l=s.find(d=>d.name===c);l&&o.push(l.id)}if(o.length===0)return;await this.client.request("https://api-drive.mypikpak.net/drive/v1/files:batchTrash",{method:"POST",body:{ids:o}});let a=this.cleanPath(t);for(let c of i)this.idCache.delete(a?`${a}/${c}`:`/${c}`)}async move(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.getFiles(o),l=[];for(let u of i){let f=c.find(h=>h.name===u);f&&l.push(f.id)}if(l.length===0)return;await this.client.request("https://api-drive.mypikpak.net/drive/v1/files:batchMove",{method:"POST",body:{ids:l,to:{parent_id:a}}});let d=this.cleanPath(n);for(let u of i)this.idCache.delete(d?`${d}/${u}`:`/${u}`)}async copy(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.getFiles(o),l=[];for(let d of i){let u=c.find(f=>f.name===d);u&&l.push(u.id)}l.length!==0&&await this.client.request("https://api-drive.mypikpak.net/drive/v1/files:batchCopy",{method:"POST",body:{ids:l,to:{parent_id:a}}})}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/"),o=n.split("/").pop()||"upload",a=await this.resolveParentId(s),c=(await Ho(new Uint8Array(i))).toUpperCase(),l=await this.client.request("https://api-drive.mypikpak.net/drive/v1/files",{method:"POST",body:{kind:"drive#file",name:o,size:String(i.length),hash:c,upload_type:"UPLOAD_TYPE_RESUMABLE",objProvider:{provider:"UPLOAD_TYPE_UNKNOWN"},parent_id:a,folder_type:"NORMAL"}});if(!l.resumable)return;let d=l.resumable.params,u=d.endpoint;this.addition.platform==="android"&&(u="mypikpak.net");let f=`https://${d.bucket}.${u}/${d.key}`,h=await fetch(f,{method:"PUT",headers:{"Content-Length":String(i.length),"x-oss-security-token":d.security_token},body:new Uint8Array(i)});if(!h.ok)throw new Error(`PikPak OSS upload failed: ${h.statusText}`)}async getDetails(){let e=await this.client.request("https://api-drive.mypikpak.net/drive/v1/about",{method:"GET"});return{totalSpace:parseInt(e.quota.limit||"0",10)||0,usedSpace:parseInt(e.quota.usage||"0",10)||0}}}});var ym,_F=J(()=>{"use strict";ym=class{addition;address;authorization="";onTokenRefreshed;decryptedRepos=new Map;constructor(e,t){this.addition=e,this.address=(e.address||"").replace(/\/+$/,""),this.onTokenRefreshed=t,e.token&&(this.authorization=`Token ${e.token}`)}async getToken(){if(this.addition.token){this.authorization=`Token ${this.addition.token}`;return}if(!this.addition.username||!this.addition.password)throw new Error("Seafile requires either token or username/password to authenticate");let e=new URLSearchParams;e.set("username",this.addition.username),e.set("password",this.addition.password);let t=await fetch(`${this.address}/api2/auth-token/`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:e.toString()});if(!t.ok){let n=await t.text();throw new Error(`Seafile auth failed (${t.status}): ${n}`)}let i=await t.json();this.authorization=`Token ${i.token}`,this.addition.token=i.token,this.onTokenRefreshed&&await this.onTokenRefreshed(i.token)}async request(e,t={}){let{method:i="GET",params:n,body:s,isFormData:o=!1,retryCount:a=0}=t,c=e.startsWith("http")?e:`${this.address}${e}`;if(n&&Object.keys(n).length>0){let g=new URLSearchParams(n).toString();c+=(c.includes("?")?"&":"?")+g}let l={Accept:"application/json"};this.authorization&&(l.Authorization=this.authorization);let d=s;if(o&&s&&!(s instanceof FormData)){let g=new URLSearchParams;for(let[p,I]of Object.entries(s))g.set(p,String(I));l["Content-Type"]="application/x-www-form-urlencoded",d=g.toString()}else s&&typeof s=="object"&&!(s instanceof FormData)&&!(s instanceof Uint8Array)&&(l["Content-Type"]="application/json",d=JSON.stringify(s));let u=await fetch(c,{method:i,headers:l,body:d});if(u.status===401&&a<1)return await this.getToken(),this.request(e,{...t,retryCount:a+1});if(!u.ok){let g=await u.text();throw new Error(`Seafile request failed (${u.status}): ${g}`)}return(u.headers.get("content-type")||"").includes("application/json")?await u.json():await u.text()}async getLibraryInfo(e){return this.request(`/api2/repos/${e}/`)}async decryptLibrary(e){if(!e.encrypted)return;if(!this.addition.repo_pwd)throw new Error("Seafile encrypted library password (repo_pwd) is not configured");let t=this.decryptedRepos.get(e.id)||0;if(Date.now()-t<1800*1e3)return;let i=await this.request(`/api2/repos/${e.id}/`,{method:"POST",isFormData:!0,body:{password:this.addition.repo_pwd}});if(typeof i=="string"&&!i.includes("success"))throw new Error(`Failed to decrypt Seafile library: ${i}`);this.decryptedRepos.set(e.id,Date.now())}}});var Im,FF=J(()=>{"use strict";Be();He();_F();Im=class{addition;client;repoId;rootPath="/";constructor(e,t){this.addition=e,this.repoId=e.repo_id||void 0,this.client=new ym(e,t)}async init(){await this.client.getToken(),this.rootPath="/"+(this.addition.root_folder_path||"/").split("/").filter(Boolean).join("/")}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveRepoAndPath(e){let t=this.cleanPath(e);if(this.repoId)return{repoId:this.repoId,innerPath:t,isRootListRepos:!1};if(t==="/")return{repoId:"",innerPath:"/",isRootListRepos:!0};let i=t.split("/").filter(Boolean),n=i[0],s="/"+i.slice(1).join("/"),a=(await this.client.request("/api2/repos/")).find(c=>c.name===n||c.id===n);if(!a)throw new Error(`Seafile library '${n}' not found`);return a.encrypted&&await this.client.decryptLibrary(a),{repoId:a.id,innerPath:s==="/"?"/":s,isRootListRepos:!1}}async list(e,t){let{repoId:i,innerPath:n,isRootListRepos:s}=await this.resolveRepoAndPath(t);if(s){let l=(await this.client.request("/api2/repos/")).map(d=>({name:d.name,size:d.size||0,is_dir:!0,modified:d.mtime?new Date(d.mtime*1e3).toISOString():new Date().toISOString(),sign:d.id,type:1,raw_url:""}));return de(l,this.addition.order_by,this.addition.order_direction)}let a=(await this.client.request(`/api2/repos/${encodeURIComponent(i)}/dir/`,{params:{p:n}})).map(c=>{let l=c.type==="dir";return{name:c.name,size:c.size||0,is_dir:l,modified:c.mtime?new Date(c.mtime*1e3).toISOString():new Date().toISOString(),sign:c.id,type:X(c.name,l),raw_url:""}});return de(a,this.addition.order_by,this.addition.order_direction)}async get(e,t){let{repoId:i,innerPath:n,isRootListRepos:s}=await this.resolveRepoAndPath(t),a=this.cleanPath(t).split("/").filter(Boolean).pop()||"root";if(s)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};if(n==="/"){let u=await this.client.getLibraryInfo(i);return{name:u.name||a,size:u.size||0,is_dir:!0,modified:u.mtime?new Date(u.mtime*1e3).toISOString():new Date().toISOString(),sign:u.id,type:1,raw_url:""}}let c="";try{let u=await this.client.request(`/api2/repos/${encodeURIComponent(i)}/file/`,{params:{p:n,reuse:"1"}});typeof u=="string"&&(c=u.replace(/^"|"$/g,"").trim())}catch{}let l=n.split("/").slice(0,-1).join("/")||"/",d=n.split("/").pop()||"";try{let f=(await this.client.request(`/api2/repos/${encodeURIComponent(i)}/dir/`,{params:{p:l}})).find(h=>h.name===d);if(f){let h=f.type==="dir";return{name:f.name,size:f.size||0,is_dir:h,modified:f.mtime?new Date(f.mtime*1e3).toISOString():new Date().toISOString(),sign:f.id,type:X(f.name,h),raw_url:c}}}catch{}return{name:a,size:0,is_dir:!c,modified:new Date().toISOString(),sign:"",type:X(a,!c),raw_url:c}}async mkdir(e,t){let{repoId:i,innerPath:n}=await this.resolveRepoAndPath(t);await this.client.request(`/api2/repos/${encodeURIComponent(i)}/dir/`,{method:"POST",isFormData:!0,params:{p:n},body:{operation:"mkdir"}})}async rename(e,t,i){let{repoId:n,innerPath:s}=await this.resolveRepoAndPath(t);await this.client.request(`/api2/repos/${encodeURIComponent(n)}/file/`,{method:"POST",isFormData:!0,params:{p:s},body:{operation:"rename",newname:i}})}async remove(e,t,i){let{repoId:n,innerPath:s}=await this.resolveRepoAndPath(t);for(let o of i){let a=s==="/"?`/${o}`:`${s}/${o}`;await this.client.request(`/api2/repos/${encodeURIComponent(n)}/file/`,{method:"DELETE",params:{p:a}})}}async move(e,t,i,n,s){let o=await this.resolveRepoAndPath(n),a=await this.resolveRepoAndPath(s);for(let c of i){let l=o.innerPath==="/"?`/${c}`:`${o.innerPath}/${c}`;await this.client.request(`/api2/repos/${encodeURIComponent(o.repoId)}/file/`,{method:"POST",isFormData:!0,params:{p:l},body:{operation:"move",dst_repo:a.repoId,dst_dir:a.innerPath}})}}async copy(e,t,i,n,s){let o=await this.resolveRepoAndPath(n),a=await this.resolveRepoAndPath(s);for(let c of i){let l=o.innerPath==="/"?`/${c}`:`${o.innerPath}/${c}`;await this.client.request(`/api2/repos/${encodeURIComponent(o.repoId)}/file/`,{method:"POST",isFormData:!0,params:{p:l},body:{operation:"copy",dst_repo:a.repoId,dst_dir:a.innerPath}})}}async put(e,t,i){let{repoId:n,innerPath:s}=await this.resolveRepoAndPath(t),o=s.split("/").slice(0,-1).join("/")||"/",a=s.split("/").pop()||"upload",l=(await this.client.request(`/api2/repos/${encodeURIComponent(n)}/upload-link/`,{params:{p:o}})||"").replace(/^"|"$/g,"").trim();if(!l)throw new Error("Failed to get Seafile upload link");let d=new FormData;d.append("parent_dir",o),d.append("replace","1"),d.append("file",new Blob([new Uint8Array(i)],{type:"application/octet-stream"}),a),await this.client.request(l,{method:"POST",body:d})}}});var wm,PF=J(()=>{"use strict";wm=class{addition;accessToken="";refreshTokenVal="";onTokenRefreshed;constructor(e,t){this.addition=e,this.refreshTokenVal=e.refresh_token||"",this.onTokenRefreshed=t}async refreshToken(){if(this.addition.use_online_api!==!1){let s=`${this.addition.api_url_address||"https://api.oplist.org/yandexui/renewapi"}?refresh_ui=${encodeURIComponent(this.refreshTokenVal)}&server_use=true&driver_txt=yandexui_go`,o=await fetch(s,{method:"GET",headers:{Accept:"application/json"}});if(!o.ok)throw new Error(`Failed to refresh Yandex token online: ${o.statusText}`);let a=await o.json();if(!a.access_token)throw new Error(`Yandex online token refresh failed: ${a.text||"No access token returned"}`);this.accessToken=a.access_token,a.refresh_token&&(this.refreshTokenVal=a.refresh_token,this.addition.refresh_token=a.refresh_token),this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal});return}if(!this.addition.client_id||!this.addition.client_secret)throw new Error("Yandex Disk requires client_id and client_secret when online API is disabled");let e=new URLSearchParams;e.set("grant_type","refresh_token"),e.set("refresh_token",this.refreshTokenVal),e.set("client_id",this.addition.client_id),e.set("client_secret",this.addition.client_secret);let t=await fetch("https://oauth.yandex.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:e.toString()});if(!t.ok){let n=await t.text();throw new Error(`Yandex OAuth refresh failed (${t.status}): ${n}`)}let i=await t.json();this.accessToken=i.access_token,this.refreshTokenVal=i.refresh_token,this.addition.refresh_token=i.refresh_token,this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.accessToken,refreshToken:this.refreshTokenVal})}async init(){await this.refreshToken()}async request(e,t={}){let{method:i="GET",params:n,body:s,retryCount:o=0}=t,a=e.startsWith("http")?e:`https://cloud-api.yandex.net/v1/disk/resources${e}`;if(n&&Object.keys(n).length>0){let u=new URLSearchParams(n).toString();a+=(a.includes("?")?"&":"?")+u}let c={Accept:"application/json",Authorization:`OAuth ${this.accessToken}`};s&&typeof s=="object"&&!(s instanceof Uint8Array)&&(c["Content-Type"]="application/json");let l=await fetch(a,{method:i,headers:c,body:s&&typeof s=="object"&&!(s instanceof Uint8Array)?JSON.stringify(s):s});if(l.status===401&&o<1)return await this.refreshToken(),this.request(e,{...t,retryCount:o+1});if(!l.ok){let u=await l.text(),f=u;try{let h=JSON.parse(u);f=h.message||h.description||u}catch{}throw new Error(`Yandex Disk API Error (${l.status}): ${f}`)}return(l.headers.get("content-type")||"").includes("application/json")?await l.json():await l.text()}async getFiles(e,t,i){let s=0,o=[];for(;;){let a={path:e||"/",limit:String(100),offset:String(s)};t&&(a.sort=i==="desc"?`-${t}`:t);let l=(await this.request("",{method:"GET",params:a}))._embedded;if(!l||!l.items||(o.push(...l.items),l.total<=s+100||l.items.length===0))break;s+=100}return o}async getDownloadLink(e){return(await this.request("/download",{method:"GET",params:{path:e}})).href}async getUploadLink(e){return(await this.request("/upload",{method:"GET",params:{path:e,overwrite:"true"}})).href}}});var xm,TF=J(()=>{"use strict";Be();He();PF();xm=class{addition;client;constructor(e,t){this.addition=e,this.client=new wm(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),s=(await this.client.getFiles(i,this.addition.order_by,this.addition.order_direction)).map(o=>{let a=o.type==="dir";return{name:o.name,size:o.size||0,is_dir:a,created:o.created,modified:o.modified||new Date().toISOString(),sign:o.path||o.name,type:X(o.name,a),thumb:o.preview,raw_url:""}});return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"/",type:1,raw_url:""};let s=await this.client.request("",{method:"GET",params:{path:i}}),o=s.type==="dir",a="";if(!o)try{a=await this.client.getDownloadLink(i)}catch(c){console.warn("[Yandex] get download link failed:",c)}return{name:s.name||n,size:s.size||0,is_dir:o,created:s.created,modified:s.modified||new Date().toISOString(),sign:s.path||i,type:X(s.name||n,o),raw_url:a}}async mkdir(e,t){let i=this.cleanPath(t);await this.client.request("",{method:"PUT",params:{path:i}})}async rename(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=s==="/"?`/${i}`:`${s}/${i}`;await this.client.request("/move",{method:"POST",params:{from:n,path:o,overwrite:"true"}})}async remove(e,t,i){let n=this.cleanPath(t);for(let s of i){let o=n==="/"?`/${s}`:`${n}/${s}`;await this.client.request("",{method:"DELETE",params:{path:o}})}}async move(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o==="/"?`/${c}`:`${o}/${c}`,d=a==="/"?`/${c}`:`${a}/${c}`;await this.client.request("/move",{method:"POST",params:{from:l,path:d,overwrite:"true"}})}}async copy(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o==="/"?`/${c}`:`${o}/${c}`,d=a==="/"?`/${c}`:`${a}/${c}`;await this.client.request("/copy",{method:"POST",params:{from:l,path:d,overwrite:"true"}})}}async put(e,t,i){let n=this.cleanPath(t),s=await this.client.getUploadLink(n),o=await fetch(s,{method:"PUT",headers:{"Content-Length":String(i.length),"Content-Type":"application/octet-stream"},body:new Uint8Array(i)});if(!o.ok)throw new Error(`Yandex upload failed: ${o.statusText}`)}}});function M$(r,e){let t=new Array(256),i=new Array(256),n=[],s=r.length;for(let l=0;l<256;l++)t[l]=r.charCodeAt(l%s),i[l]=l;let o=0;for(let l=0;l<256;l++){o=(o+i[l]+t[l])%256;let d=i[l];i[l]=i[o],i[o]=d}let a=0;o=0;for(let l=0;l<e.length;l++){a=(a+1)%256,o=(o+i[a])%256;let d=i[a];i[a]=i[o],i[o]=d;let u=i[(i[a]+i[o])%256];n.push(e.charCodeAt(l)^u)}let c="";for(let l of n)c+=String.fromCharCode(l);return btoa(c)}var Cm,UF=J(()=>{"use strict";Cm=class{addition;baseUrl="https://www.terabox.com";urlDomainPrefix="jp";jsToken="";onCookieRefreshed;constructor(e,t){this.addition=e,this.onCookieRefreshed=t}async resetJsToken(){let e=await fetch(this.baseUrl,{method:"GET",headers:{Cookie:this.addition.cookie,Accept:"application/json, text/plain, */*",Referer:this.baseUrl,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox","X-Requested-With":"XMLHttpRequest"}});if(!e.ok)throw new Error(`Failed to fetch TeraBox home page: ${e.statusText}`);let t=await e.text(),i=t.match(/`function%20fn%28a%29%7Bwindow.jsToken%20%3D%20a%7D%3Bfn%28%22([^"]+?)%22%29`/);if(i&&i[1]){this.jsToken=i[1];return}let n=t.match(/jsToken\s*=\s*["']([^"']+)["']/);if(n&&n[1]){this.jsToken=n[1];return}this.jsToken=""}async request(e,t={}){let{method:i="GET",params:n,body:s,isFormData:o=!1,retryCount:a=0}=t,c=e.startsWith("http")?e:`${this.baseUrl}${e}`,l={app_id:"250528",web:"1",channel:"dubox",clienttype:"0",...n||{}};this.jsToken&&(l.jsToken=this.jsToken);let d=new URLSearchParams(l).toString();c+=(c.includes("?")?"&":"?")+d;let u={Cookie:this.addition.cookie,Accept:"application/json, text/plain, */*",Referer:this.baseUrl,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox","X-Requested-With":"XMLHttpRequest"},f=s;if(o&&s&&!(s instanceof FormData)){let I=new URLSearchParams;for(let[m,w]of Object.entries(s))I.set(m,String(w));u["Content-Type"]="application/x-www-form-urlencoded",f=I.toString()}else s&&typeof s=="object"&&!(s instanceof FormData)&&!(s instanceof Uint8Array)&&(u["Content-Type"]="application/json",f=JSON.stringify(s));let h=await fetch(c,{method:i,headers:u,body:f}),g=await h.text(),p={};try{p=JSON.parse(g)}catch{p=g}if(p&&typeof p=="object"&&p.errno!==void 0){let I=Number(p.errno);if((I===4000023||I===450016)&&a<2)return await this.resetJsToken(),this.request(e,{...t,retryCount:a+1});if(I===-6&&a<2){let m=h.headers.get("url-domain-prefix");if(m)return this.urlDomainPrefix=m,this.baseUrl=`https://${m}.terabox.com`,this.request(e,{...t,retryCount:a+1})}}return p}async init(){let e=await this.request("/api/check/login",{method:"GET"});if(e.errno!==0)throw e.errno===9e3?new Error("TeraBox is not yet available in this area (errno 9000)"):new Error(`Failed to verify TeraBox login status according to cookie (errno ${e.errno})`)}async genSign(){let e=await this.request("/api/home/info",{method:"GET"});if(!e.data||!e.data.sign1||!e.data.sign3)throw new Error("Failed to get TeraBox sign keys from home/info");return M$(e.data.sign3,e.data.sign1)}async linkOfficial(e){let t=await this.genSign(),i={type:"dlink",fidlist:`[${e}]`,sign:t,vip:"2",timestamp:String(Math.floor(Date.now()/1e3))},n=await this.request("/api/download",{method:"GET",params:i});if(!n.dlink||n.dlink.length===0)throw new Error(`TeraBox fid ${e} no dlink found (errno: ${n.errno})`);let s=n.dlink[0].dlink;return(await fetch(s,{method:"GET",redirect:"manual",headers:{Cookie:this.addition.cookie,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox"}})).headers.get("location")||s}async linkCrack(e){let t={target:JSON.stringify([e]),dlink:"1",origin:"dlna"},i=await this.request("/api/filemetas",{method:"GET",params:t});if(!i.info||i.info.length===0||!i.info[0].dlink)throw new Error(`TeraBox crack download failed for ${e}`);return i.info[0].dlink}async manage(e,t){let i=new URLSearchParams;return i.set("async","0"),i.set("filelist",JSON.stringify(t)),i.set("ondup","newcopy"),this.request("/api/filemanager",{method:"POST",params:{onnest:"fail",opera:e},isFormData:!0,body:{async:"0",filelist:JSON.stringify(t),ondup:"newcopy"}})}}});var Em,RF=J(()=>{"use strict";Be();He();Gr();UF();Em=class{addition;client;constructor(e,t){this.addition=e,this.client=new Cm(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),n=[],s=1,o=100;for(;;){let c={dir:i,page:String(s),num:String(o)};this.addition.order_by&&(c.order=this.addition.order_by,this.addition.order_direction==="desc"&&(c.desc="1"));let l=await this.client.request("/api/list",{method:"GET",params:c});if(l.errno===9e3)throw new Error("TeraBox is not yet available in this area");if(!l.list||l.list.length===0)break;n.push(...l.list),s++}let a=n.map(c=>{let l=c.isdir===1;return{name:c.server_filename,size:c.size||0,is_dir:l,modified:c.server_mtime?new Date(c.server_mtime*1e3).toISOString():new Date().toISOString(),sign:String(c.fs_id),type:X(c.server_filename,l),thumb:c.thumbs?.url3,raw_url:""}});return de(a,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""};let s=i.split("/").slice(0,-1).join("/")||"/",o=i.split("/").pop()||"",c=(await this.client.request("/api/list",{method:"GET",params:{dir:s,page:"1",num:"1000"}})).list?.find(u=>u.server_filename===o);if(!c)return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""};let l=c.isdir===1,d="";if(!l)try{this.addition.download_api==="crack"?d=await this.client.linkCrack(i):d=await this.client.linkOfficial(c.fs_id)}catch(u){console.warn("[TeraBox] get download link failed:",u)}return{name:c.server_filename,size:c.size||0,is_dir:l,modified:c.server_mtime?new Date(c.server_mtime*1e3).toISOString():new Date().toISOString(),sign:String(c.fs_id),type:X(c.server_filename,l),thumb:c.thumbs?.url3,raw_url:d,raw_url_headers:{"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox"}}}async mkdir(e,t){let i=this.cleanPath(t);await this.client.request("/api/create",{method:"POST",isFormData:!0,params:{a:"commit"},body:{path:i,isdir:"1",block_list:"[]"}})}async rename(e,t,i){let n=this.cleanPath(t);await this.client.manage("rename",[{path:n,newname:i}])}async remove(e,t,i){let n=this.cleanPath(t),s=i.map(o=>n==="/"?`/${o}`:`${n}/${o}`);await this.client.manage("delete",s)}async move(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s),c=i.map(l=>({path:o==="/"?`/${l}`:`${o}/${l}`,dest:a,newname:l}));await this.client.manage("move",c)}async copy(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s),c=i.map(l=>({path:o==="/"?`/${l}`:`${o}/${l}`,dest:a,newname:l}));await this.client.manage("copy",c)}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=n.split("/").pop()||"upload",l=(await(await fetch("https://jp-data.terabox.com/rest/2.0/pcs/file?method=locateupload")).json()).host||"d.terabox.com",d=$t(new Uint8Array(i)),u={path:n,autoinit:"1",target_path:s,block_list:JSON.stringify([d]),local_mtime:String(Math.floor(Date.now()/1e3)),file_limit_switch_v34:"true"},f=await this.client.request("/api/precreate",{method:"POST",isFormData:!0,body:u});if(f.errno!==0)throw new Error(`TeraBox precreate failed (errno: ${f.errno})`);if(f.return_type===2)return;let h=`https://${l}/rest/2.0/pcs/superfile2?method=upload&path=${encodeURIComponent(n)}&uploadid=${encodeURIComponent(f.uploadid)}&partseq=0`,g=new FormData;g.append("file",new Blob([new Uint8Array(i)],{type:"application/octet-stream"}),o);let p=await fetch(h,{method:"POST",headers:{Cookie:this.addition.cookie,"User-Agent":"terabox;1.37.0.7;PC;PC-Windows;10.0.22631;WindowsTeraBox"},body:g});if(!p.ok)throw new Error(`TeraBox upload chunk failed: ${p.statusText}`);let I={path:n,size:String(i.length),uploadid:f.uploadid,target_path:s,block_list:JSON.stringify([d]),local_mtime:String(Math.floor(Date.now()/1e3))};await this.client.request("/api/create",{method:"POST",isFormData:!0,params:{isdir:"0",rtype:"1"},body:I})}}});var Bm,NF=J(()=>{"use strict";Bm=class{addition;constructor(e){this.addition=e}async request(e,t={}){let{method:i="GET",params:n,body:s}=t,o=e;if(n&&Object.keys(n).length>0){let u=new URLSearchParams(n).toString();o+=(o.includes("?")?"&":"?")+u}let a={Authorization:`Bearer ${this.addition.access_token}`,Accept:"application/json"};s&&typeof s=="object"&&!(s instanceof Uint8Array)&&(a["Content-Type"]="application/json");let c=await fetch(o,{method:i,headers:a,body:s&&typeof s=="object"&&!(s instanceof Uint8Array)?JSON.stringify(s):s}),l=await c.text(),d={};try{d=JSON.parse(l)}catch{d=l}if(d&&typeof d=="object"&&d.status&&d.status!=="SUCCESS")throw new Error(`MediaTrack API Error: ${d.message||JSON.stringify(d)}`);if(!c.ok)throw new Error(`MediaTrack request failed (${c.status}): ${l}`);return d}async init(){await this.request("https://kayle.api.mediatrack.cn/users",{method:"GET"})}async getFiles(e){let t=[],i=1,n="";for(this.addition.order_by&&(n=(this.addition.order_desc?"-":"")+this.addition.order_by);;){let s={page:String(i),size:"50"};n&&(s.sort=n);let a=(await this.request(`https://jayce.api.mediatrack.cn/v4/assets/${encodeURIComponent(e)}/children`,{method:"GET",params:s})).data?.assets||[];if(a.length===0)break;t.push(...a),i++}return t}async getDownloadUrl(e){let t=this.addition.project_id||"",i=`https://kayn.api.mediatrack.cn/v1/download_token/asset?asset_id=${encodeURIComponent(e)}&source_type=project&password=&source_id=${encodeURIComponent(t)}`,s=(await this.request(i,{method:"GET"}))?.data?.token;if(!s)throw new Error(`Failed to get download token for asset ${e}`);let o=`https://kayn.api.mediatrack.cn/v1/download/redirect?token=${encodeURIComponent(s)}`;return(await fetch(o,{method:"GET",redirect:"manual"})).headers.get("location")||o}}});var bm,qF=J(()=>{"use strict";Be();He();NF();bm=class{addition;client;rootId="";idCache=new Map;constructor(e){this.addition=e,this.rootId=e.root_folder_id||"",this.client=new Bm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async resolveParentId(e){let t=this.cleanPath(e);if(!t)return this.rootId;if(this.idCache.has(t))return this.idCache.get(t);let i=t.split("/").filter(Boolean),n=this.rootId,s="";for(let o of i){if(s+="/"+o,this.idCache.has(s)){n=this.idCache.get(s);continue}let c=(await this.client.getFiles(n)).find(l=>l.title===o);if(!c)throw new Error(`Path not found: ${s}`);n=c.id,this.idCache.set(s,n)}return n}async list(e,t){let i=await this.resolveParentId(t),n=await this.client.getFiles(i),s=this.cleanPath(t),o=n.map(a=>{let c=!a.file,l=s?`${s}/${a.title}`:`/${a.title}`;this.idCache.set(l,a.id);let d="";return a.file&&a.file.cover&&(d="https://nano.mtres.cn/"+a.file.cover),{name:a.title,size:parseInt(a.size||"0",10)||0,is_dir:c,created:a.created_at,modified:a.updated_at||new Date().toISOString(),sign:a.id,type:X(a.title,c),thumb:d,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_desc?"desc":"asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.rootId,type:1,raw_url:""};let s=i.split("/").slice(0,-1).join("/"),o=await this.resolveParentId(s),c=(await this.client.getFiles(o)).find(f=>f.title===n);if(!c)return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:0,raw_url:""};let l=!c.file,d="";if(!l)try{d=await this.client.getDownloadUrl(c.id)}catch(f){console.warn("[MediaTrack] get download URL failed:",f)}let u="";return c.file&&c.file.cover&&(u="https://nano.mtres.cn/"+c.file.cover),{name:c.title,size:parseInt(c.size||"0",10)||0,is_dir:l,created:c.created_at,modified:c.updated_at||new Date().toISOString(),sign:c.id,type:X(c.title,l),thumb:u,raw_url:d}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/"),s=i.split("/").pop()||"",o=await this.resolveParentId(n);await this.client.request(`https://jayce.api.mediatrack.cn/v3/assets/${encodeURIComponent(o)}/children`,{method:"POST",body:{type:1,title:s}})}async rename(e,t,i){let n=await this.resolveParentId(t);await this.client.request(`https://jayce.api.mediatrack.cn/v3/assets/${encodeURIComponent(n)}`,{method:"PUT",body:{title:i}});let s=this.cleanPath(t);this.idCache.delete(s)}async remove(e,t,i){let n=await this.resolveParentId(t),s=await this.client.getFiles(n),o=[];for(let c of i){let l=s.find(d=>d.title===c);l&&o.push(l.id)}if(o.length===0)return;await this.client.request("https://jayce.api.mediatrack.cn/v4/assets/batch/delete",{method:"DELETE",body:{origin_id:n,ids:o}});let a=this.cleanPath(t);for(let c of i)this.idCache.delete(a?`${a}/${c}`:`/${c}`)}async move(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.client.getFiles(o),l=[];for(let d of i){let u=c.find(f=>f.title===d);u&&l.push(u.id)}l.length!==0&&await this.client.request("https://jayce.api.mediatrack.cn/v4/assets/batch/move",{method:"POST",body:{parent_id:a,ids:l}})}async copy(e,t,i,n,s){let o=await this.resolveParentId(n),a=await this.resolveParentId(s),c=await this.client.getFiles(o),l=[];for(let d of i){let u=c.find(f=>f.title===d);u&&l.push(u.id)}l.length!==0&&await this.client.request("https://jayce.api.mediatrack.cn/v4/assets/batch/clone",{method:"POST",body:{parent_id:a,ids:l}})}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/"),o=n.split("/").pop()||"upload",a=await this.resolveParentId(s),l=`assets/${Math.random().toString(36).slice(2)}`,u=(await this.client.request("https://jayce.api.mediatrack.cn/v3/storage/tokens/asset",{method:"GET",params:{src:l}})).data?.url;u&&await fetch(u,{method:"PUT",headers:{"Content-Length":String(i.length)},body:new Uint8Array(i)}),await this.client.request(`https://jayce.api.mediatrack.cn/v3/assets/${encodeURIComponent(a)}/children`,{method:"POST",body:{category:0,description:o,mime:"application/octet-stream",size:String(i.length),src:l,title:o,type:0}})}}});var vm,OF=J(()=>{"use strict";Be();He();vm=class{addition;pathPairs=[];rootOrder=[];pathMap=new Map;constructor(e){this.addition=e,this.parsePaths()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}parsePaths(){let t=(this.addition.paths||"").split(` +`).map(i=>i.trim()).filter(Boolean);this.pathPairs=[],this.rootOrder=[],this.pathMap.clear();for(let i of t){let n="/",s=i,o=i.indexOf(":");o>0&&(n=this.cleanPath(i.slice(0,o)),s=i.slice(o+1).trim()),s=this.cleanPath(s),this.pathPairs.push({aliasSubPath:n,targetPath:s}),this.pathMap.has(n)||(this.rootOrder.push(n),this.pathMap.set(n,[])),this.pathMap.get(n).push(s)}}async init(){this.parsePaths()}getTargetsForPath(e){let t=this.cleanPath(e),i=[];if(this.rootOrder.length===1&&this.rootOrder[0]==="/"){let n=this.pathMap.get("/")||[];for(let s of n){let o=t==="/"?s:`${s}${t}`;i.push({targetFullPath:this.cleanPath(o),subPath:t})}return i}for(let[n,s]of this.pathMap.entries())if(n===t)for(let o of s)i.push({targetFullPath:o,subPath:"/"});else if(t.startsWith(n==="/"?"/":`${n}/`)){let o=t.slice(n==="/"?0:n.length);for(let a of s){let c=o==="/"?a:`${a}${o}`;i.push({targetFullPath:this.cleanPath(c),subPath:o})}}return i}async list(e,t){let i=this.cleanPath(t),{listItems:n}=await Promise.resolve().then(()=>(Yt(),Mi));if(i==="/"&&this.rootOrder.length>1){let c=[];for(let l of this.rootOrder){let d=l.replace(/^\//,"").split("/")[0]||l;c.some(u=>u.name===d)||c.push({name:d,size:0,is_dir:!0,modified:new Date().toISOString(),sign:l,type:1,raw_url:""})}return de(c,this.addition.order_by,this.addition.order_direction)}let s=this.getTargetsForPath(t);if(s.length===0)return[];let o=new Map;for(let c of s)try{let l=await n(c.targetFullPath);for(let d of l.content)o.has(d.name)||o.set(d.name,d)}catch(l){console.warn(`[Alias] listing target ${c.targetFullPath} warning:`,l)}let a=Array.from(o.values());return de(a,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/"&&this.rootOrder.length>1)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"/",type:1,raw_url:""};let s=this.getTargetsForPath(t);if(s.length===0)return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""};let{getItem:o}=await Promise.resolve().then(()=>(Yt(),Mi));for(let a of s)try{let c=await o(a.targetFullPath);if(c?.item)return{...c.item,raw_url:c.item.raw_url||c.rawUrl}}catch{}return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(e,t){let i=this.getTargetsForPath(t);if(i.length===0)throw new Error(`[Alias] no target found for path ${t}`);let{makeDirectory:n}=await Promise.resolve().then(()=>(Yt(),Mi));await n(i[0].targetFullPath)}async rename(e,t,i){let n=this.getTargetsForPath(t);if(n.length===0)throw new Error(`[Alias] no target found for path ${t}`);let{renameItem:s}=await Promise.resolve().then(()=>(Yt(),Mi));await s(n[0].targetFullPath,i)}async remove(e,t,i){let n=this.getTargetsForPath(t);if(n.length===0)return;let{removeItems:s}=await Promise.resolve().then(()=>(Yt(),Mi));await s(n[0].targetFullPath,i)}async move(e,t,i,n,s){let o=this.getTargetsForPath(n),a=this.getTargetsForPath(s);if(o.length===0||a.length===0)throw new Error("[Alias] cannot resolve source or destination path");let{moveItems:c}=await Promise.resolve().then(()=>(Yt(),Mi));await c(o[0].targetFullPath,a[0].targetFullPath,i)}async copy(e,t,i,n,s){let o=this.getTargetsForPath(n),a=this.getTargetsForPath(s);if(o.length===0||a.length===0)throw new Error("[Alias] cannot resolve source or destination path");let{copyItems:c}=await Promise.resolve().then(()=>(Yt(),Mi));await c(o[0].targetFullPath,a[0].targetFullPath,i)}async put(e,t,i){let n=this.getTargetsForPath(t);if(n.length===0)throw new Error(`[Alias] no target found for upload path ${t}`);let{putItem:s}=await Promise.resolve().then(()=>(Yt(),Mi));await s(n[0].targetFullPath,i)}}});var km,MF=J(()=>{"use strict";km=class{addition;onTokenRefreshed;base="https://api.dropboxapi.com";contentBase="https://content.dropboxapi.com";constructor(e,t){this.addition=e,this.onTokenRefreshed=t}async refreshToken(){if(this.addition.use_online_api&&this.addition.api_url_address){let e=new URL(this.addition.api_url_address);e.searchParams.set("refresh_ui",this.addition.refresh_token),e.searchParams.set("server_use","true"),e.searchParams.set("driver_txt","dropboxs_go");let t=await fetch(e.toString());if(!t.ok)throw new Error(`Failed to refresh token: HTTP ${t.status}`);let i=await t.json();if(!i.access_token)throw new Error(i.text||"Empty token returned from renew API");this.addition.access_token=i.access_token,i.refresh_token&&(this.addition.refresh_token=i.refresh_token)}else{let e=`${this.base}/oauth2/token`,t=new URLSearchParams({grant_type:"refresh_token",refresh_token:this.addition.refresh_token,client_id:this.addition.client_id||"",client_secret:this.addition.client_secret||""}),i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t.toString()});if(!i.ok){let s=await i.text();throw new Error(`Failed to refresh token: HTTP ${i.status} - ${s}`)}let n=await i.json();this.addition.access_token=n.access_token,n.refresh_token&&(this.addition.refresh_token=n.refresh_token)}this.onTokenRefreshed&&await this.onTokenRefreshed({accessToken:this.addition.access_token||"",refreshToken:this.addition.refresh_token||""})}async request(e,t={},i=!0){this.addition.access_token||await this.refreshToken();let s=`${t.isContentApi?this.contentBase:this.base}${e}`,o={Authorization:`Bearer ${this.addition.access_token}`,...t.customHeaders};this.addition.root_namespace_id&&(o["Dropbox-API-Path-Root"]=JSON.stringify({".tag":"root",root:this.addition.root_namespace_id}));let a;t.body!==void 0&&(typeof t.body=="object"&&!(t.body instanceof Uint8Array)&&!(t.body instanceof ArrayBuffer)&&!(t.body instanceof ReadableStream)?(o["Content-Type"]="application/json",a=JSON.stringify(t.body)):a=t.body);let c=await fetch(s,{method:t.method||"POST",headers:o,body:a});if(!c.ok){let d=await c.text(),u=c.status===401||d.includes("expired_access_token")||d.includes("invalid_access_token");if(i&&u)return await this.refreshToken(),this.request(e,t,!1);throw new Error(`Dropbox API error (${c.status}): ${d}`)}return(c.headers.get("content-type")||"").includes("application/json")?await c.json():await c.text()}async init(){if(!this.addition.access_token&&this.addition.refresh_token&&await this.refreshToken(),!this.addition.root_namespace_id)try{let e=await this.getCurrentAccount();e.root_info?.root_namespace_id&&(this.addition.root_namespace_id=e.root_info.root_namespace_id)}catch(e){console.warn("[Dropbox] failed to get root namespace ID:",e)}}async getCurrentAccount(){return this.request("/2/users/get_current_account",{method:"POST",body:null})}async getSpaceUsage(){return this.request("/2/users/get_space_usage",{method:"POST",body:null})}async getFiles(e){let t=e==="/"||e===""?"":e,i=await this.request("/2/files/list_folder",{method:"POST",body:{path:t,recursive:!1,include_deleted:!1,include_has_explicit_shared_members:!1,include_mounted_folders:!0,include_non_downloadable_files:!1,limit:2e3}}),n=[...i.entries];for(;i.has_more;)i=await this.request("/2/files/list_folder/continue",{method:"POST",body:{cursor:i.cursor}}),n.push(...i.entries);return n}async getTemporaryLink(e){return(await this.request("/2/files/get_temporary_link",{method:"POST",body:{path:e}})).link}async createFolder(e){await this.request("/2/files/create_folder_v2",{method:"POST",body:{path:e,autorename:!1}})}async move(e,t){await this.request("/2/files/move_v2",{method:"POST",body:{from_path:e,to_path:t,autorename:!1,allow_ownership_transfer:!1,allow_shared_folder:!1}})}async copy(e,t){await this.request("/2/files/copy_v2",{method:"POST",body:{from_path:e,to_path:t,autorename:!1,allow_ownership_transfer:!1,allow_shared_folder:!1}})}async delete(e){await this.request("/2/files/delete_v2",{method:"POST",body:{path:e}})}}});var Sm,LF=J(()=>{"use strict";Be();He();MF();Sm=class{addition;client;constructor(e,t){this.addition=e,this.client=new km(e,t)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async list(e,t){let i=this.cleanPath(t),s=(await this.client.getFiles(i)).map(o=>{let a=o[".tag"]==="folder",c=o.path_display||o.path_lower||`/${o.name}`;return{name:o.name,size:o.size||0,is_dir:a,modified:o.server_modified||o.client_modified||new Date().toISOString(),sign:o.id||c,type:X(o.name,a),raw_url:""}});return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"/",type:1,raw_url:""};try{let s=await this.client.getTemporaryLink(i);return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:s}}catch{return{name:n,size:0,is_dir:!0,modified:new Date().toISOString(),sign:i,type:1,raw_url:""}}}async link(e,t){let i=this.cleanPath(t);return{url:await this.client.getTemporaryLink(i)}}async mkdir(e,t){let i=this.cleanPath(t);await this.client.createFolder(i)}async rename(e,t,i){let n=this.cleanPath(t),s=n.substring(0,n.lastIndexOf("/")),o=s?`${s}/${i}`:`/${i}`;await this.client.move(n,o)}async remove(e,t,i){let n=this.cleanPath(t);for(let s of i){let o=n===""?`/${s}`:`${n}/${s}`;await this.client.delete(o)}}async move(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o===""?`/${c}`:`${o}/${c}`,d=a===""?`/${c}`:`${a}/${c}`;await this.client.move(l,d)}}async copy(e,t,i,n,s){let o=this.cleanPath(n),a=this.cleanPath(s);for(let c of i){let l=o===""?`/${c}`:`${o}/${c}`,d=a===""?`/${c}`:`${a}/${c}`;await this.client.copy(l,d)}}async put(e,t,i){let n=this.cleanPath(t);await this.client.request("/2/files/upload",{method:"POST",isContentApi:!0,customHeaders:{"Dropbox-API-Arg":JSON.stringify({path:n,mode:"overwrite",autorename:!1,mute:!1,strict_conflict:!1}),"Content-Type":"application/octet-stream"},body:i})}async getDetails(){try{let e=await this.client.getSpaceUsage();return{total_space:e.allocation?.allocated||0,used_space:e.used||0}}catch{return{}}}}});var TE,HF,Dm,KF=J(()=>{"use strict";TE="https://365.kdocs.cn",HF="https://drive.wps.cn",Dm=class{addition;loginState;constructor(e){this.addition=e}isPersonal(){return this.loginState?.is_company_account!==void 0?!this.loginState.is_company_account:(this.addition.mode||"Personal")==="Personal"}driveHost(){return this.isPersonal()?HF:TE}drivePrefix(){return this.isPersonal()?"":"/3rd/drive"}driveUrl(e){return`${this.driveHost()}${this.drivePrefix()}${e}`}getUA(){return this.addition.custom_ua||"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}async request(e,t={}){let i=new URL(e);if(t.params)for(let[c,l]of Object.entries(t.params))i.searchParams.set(c,l);let n={Cookie:this.addition.cookie,Accept:"application/json","User-Agent":this.getUA(),Origin:this.driveHost(),...t.headers},s;t.body!==void 0&&(typeof t.body=="object"?(n["Content-Type"]="application/json",s=JSON.stringify(t.body)):s=t.body);let o=await fetch(i.toString(),{method:t.method||"GET",headers:n,body:s});if(!o.ok){let c=await o.text();throw new Error(`WPS API error (${o.status}): ${c}`)}if((o.headers.get("content-type")||"").includes("application/json")){let c=await o.json();if(c.result&&c.result!=="ok"&&c.result!=="success")throw new Error(`WPS API error: ${c.result} - ${c.msg||""}`);return c}return await o.text()}async init(){if(!this.addition.cookie)throw new Error("WPS cookie is required");let e=await this.request("https://account.kdocs.cn/api/v3/islogin",{method:"GET"});this.loginState=e}async getGroups(){if(this.isPersonal())return((await this.request(this.driveUrl("/api/v3/groups"))).groups||[]).map(s=>({group_id:s.id,id:s.id,name:s.name}));let e=this.loginState?.companyid||0,t=`${TE}/3rd/plus/groups/v1/companies/${e}/users/self/groups/private`;return(await this.request(t)).groups||[]}async getFiles(e,t){let i=[],n=0;for(let s=0;s<50;s++){let o=this.driveUrl(`/api/v5/groups/${e}/files`),a=await this.request(o,{params:{parentid:String(t),offset:String(n)}});if(a.files&&a.files.length>0&&i.push(...a.files),a.next_offset===-1||a.next_offset===void 0)break;n=a.next_offset}return i}async getDownloadUrl(e,t){let i=this.driveUrl(`/api/v5/groups/${e}/files/${t}/download?support_checksums=sha1`),n=await this.request(i);if(!n.url)throw new Error("Empty download url received from WPS");return n.url}async createFolder(e,t,i){await this.request(this.driveUrl("/api/v5/files/folder"),{method:"POST",body:{groupid:e,parentid:t,name:i}})}async rename(e,t,i){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/${t}`),{method:"PUT",body:{fname:i}})}async move(e,t,i,n){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/batch/move`),{method:"POST",body:{fileids:[t],target_groupid:i,target_parentid:n}})}async copy(e,t,i,n){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/batch/copy`),{method:"POST",body:{fileids:[t],groupid:e,target_groupid:i,target_parentid:n,duplicated_name_model:1}})}async delete(e,t){await this.request(this.driveUrl(`/api/v3/groups/${e}/files/batch/delete`),{method:"POST",body:{fileids:[t]}})}async getStorageDetails(){if(this.isPersonal()){let s=`${HF}/api/v3/spaces`,o=await this.request(s);return{total:o.total,used:o.used}}let e=this.loginState?.companyid||0,t=`${TE}/3rd/plussvr/compose/v1/u/companies/batch/service-space?comp_ids=${e}`,n=((await this.request(t)).info||[]).find(s=>s.id===e);return n?{total:n.space_total,used:n.space_used}:{}}}});var Qm,GF=J(()=>{"use strict";Be();He();KF();Qm=class{addition;client;constructor(e){this.addition=e,this.client=new Dm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolvePath(e){let t=this.cleanPath(e);if(t==="/")return{kind:"root",groupId:0,fileId:0,name:"root",isDir:!0,size:0,modified:new Date().toISOString()};let i=t.split("/").filter(Boolean),s=(await this.client.getGroups()).find(l=>l.name===i[0]);if(!s)return null;let o=s.group_id||s.id||0;if(i.length===1)return{kind:"group",groupId:o,fileId:0,name:s.name,isDir:!0,size:0,modified:new Date().toISOString()};let a=0,c=null;for(let l=1;l<i.length;l++){let d=i[l],f=(await this.client.getFiles(o,a)).find(g=>g.fname===d);if(!f)return null;let h=f.ftype==="folder";c={kind:h?"folder":"file",groupId:o,fileId:f.id,name:f.fname,isDir:h,size:f.fsize||0,modified:f.mtime?new Date(f.mtime*1e3).toISOString():new Date().toISOString()},a=f.id}return c}async list(e,t){let i=this.cleanPath(t),n=await this.resolvePath(i);if(!n||!n.isDir)return[];if(n.kind==="root"){let c=(await this.client.getGroups()).map(l=>({name:l.name,size:0,is_dir:!0,modified:new Date().toISOString(),sign:String(l.group_id||l.id),type:1,raw_url:""}));return de(c,this.addition.order_by,this.addition.order_direction)}let o=(await this.client.getFiles(n.groupId,n.fileId)).map(a=>{let c=a.ftype==="folder";return{name:a.fname,size:a.fsize||0,is_dir:c,modified:a.mtime?new Date(a.mtime*1e3).toISOString():new Date().toISOString(),sign:String(a.id),type:X(a.fname,c),raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=await this.resolvePath(i);if(!n)throw new Error(`Path not found: ${i}`);let s="";if(!n.isDir&&n.kind==="file")try{s=await this.client.getDownloadUrl(n.groupId,n.fileId)}catch(o){console.warn("[WPS] failed to get download url in get():",o)}return{name:n.name,size:n.size,is_dir:n.isDir,modified:n.modified,sign:String(n.fileId||n.groupId),type:X(n.name,n.isDir),raw_url:s}}async link(e,t){let i=this.cleanPath(t),n=await this.resolvePath(i);if(!n||n.isDir||n.kind!=="file")throw new Error(`Cannot get link for non-file: ${i}`);return{url:await this.client.getDownloadUrl(n.groupId,n.fileId),headers:{"User-Agent":this.client.getUA(),Referer:this.client.driveHost()}}}async mkdir(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolvePath(n);if(!o||!o.isDir||o.kind==="root")throw new Error("Cannot create folder directly in root (groups are read-only)");await this.client.createFolder(o.groupId,o.fileId,s)}async move(e,t,i,n,s){let o=await this.resolvePath(this.cleanPath(s));if(!o||!o.isDir||o.kind==="root")throw new Error("Target destination directory not found");for(let a of i){let c=this.cleanPath(n)==="/"?`/${a}`:`${this.cleanPath(n)}/${a}`,l=await this.resolvePath(c);l&&await this.client.move(l.groupId,l.fileId,o.groupId,o.fileId)}}async rename(e,t,i){let n=await this.resolvePath(this.cleanPath(t));if(!n)throw new Error("Source node not found");await this.client.rename(n.groupId,n.fileId,i)}async copy(e,t,i,n,s){let o=await this.resolvePath(this.cleanPath(s));if(!o||!o.isDir||o.kind==="root")throw new Error("Target destination directory not found");for(let a of i){let c=this.cleanPath(n)==="/"?`/${a}`:`${this.cleanPath(n)}/${a}`,l=await this.resolvePath(c);l&&await this.client.copy(l.groupId,l.fileId,o.groupId,o.fileId)}}async remove(e,t,i){for(let n of i){let s=this.cleanPath(t)==="/"?`/${n}`:`${this.cleanPath(t)}/${n}`,o=await this.resolvePath(s);o&&o.kind!=="root"&&o.kind!=="group"&&await this.client.delete(o.groupId,o.fileId)}}async put(e,t,i){let n=this.cleanPath(t),s=n.substring(0,n.lastIndexOf("/"))||"/",o=n.substring(n.lastIndexOf("/")+1),a=await this.resolvePath(s);if(!a||!a.isDir)throw new Error(`Parent directory not found: ${s}`);console.warn(`[WPS] direct small upload for ${o}`)}async getDetails(){try{let e=await this.client.getStorageDetails();return{total_space:e.total,used_space:e.used}}catch{return{}}}}});function L$(r){let e=encodeURIComponent(r);return e=e.replace(/\+/g,"%20"),e=e.replace(/!/g,"%21"),e=e.replace(/'/g,"%27"),e=e.replace(/\(/g,"%28"),e=e.replace(/\)/g,"%29"),e=e.replace(/\*/g,"%2A"),e}function UE(r){return kc.default.MD5(r).toString(kc.default.enc.Hex)}function H$(r,e,t){let n=L$(r).split("").sort().join(""),s=kc.default.enc.Utf8.parse(n),o=kc.default.enc.Base64.stringify(s),a=UE(o)+UE(`${e}:${t}`);return UE(a).toUpperCase()}function K$(r){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let i=0;i<r;i++)t+=e.charAt(Math.floor(Math.random()*e.length));return t}function G$(r){let e=t=>String(t).padStart(2,"0");return`${r.getFullYear()}-${e(r.getMonth()+1)}-${e(r.getDate())} ${e(r.getHours())}:${e(r.getMinutes())}:${e(r.getSeconds())}`}var kc,_m,zF=J(()=>{"use strict";kc=xr(Oo(),1);_m=class{addition;personalHost="https://yun.139.com";familyHost="https://yun.139.com";groupHost="https://yun.139.com";account="";constructor(e){this.addition=e,this.extractAccount()}extractAccount(){if(this.addition.authorization)try{let e=this.getAuthString(),i=kc.default.enc.Base64.parse(e).toString(kc.default.enc.Utf8).split(":");i.length>=2&&(this.account=i[1])}catch{}}getAuthString(){let e=(this.addition.authorization||"").trim();return e.startsWith("Basic ")&&(e=e.slice(6).trim()),e}isPersonalNew(){return!this.addition.type||this.addition.type==="personal_new"}isFamily(){return this.addition.type==="family"}isGroup(){return this.addition.type==="group"}getHost(){return this.isFamily()?this.familyHost:this.isGroup()?this.groupHost:this.personalHost}async request(e,t){let i=G$(new Date),n=K$(16),s=JSON.stringify(t||{}),o=H$(s,i,n),a;e.startsWith("http://")||e.startsWith("https://")?a=e:e.startsWith("/orchestration/")?a=`https://yun.139.com${e}`:a=`${this.getHost()}${e}`;let c=this.isFamily()?"2":"1",l={Accept:"application/json, text/plain, */*","Content-Type":"application/json","CMS-DEVICE":"default",Authorization:`Basic ${this.getAuthString()}`,Caller:"web","Mcloud-Channel":"1000101","Mcloud-Client":"10701","Mcloud-Route":"001","mcloud-channel":"1000101","mcloud-client":"10701","mcloud-sign":`${i},${n},${o}`,"mcloud-version":"7.14.0",Origin:"https://yun.139.com",Referer:"https://yun.139.com/w/","x-DeviceInfo":"||9|7.14.0|chrome|120.0.0.0|||windows 10||zh-CN|||","x-huawei-channelSrc":"10000034","x-inner-ntwk":"2","x-m4c-caller":"PC","x-m4c-src":"10002","x-SvcType":c,"Inner-Hcy-Router-Https":"1","X-Yun-Api-Version":"v1","X-Yun-App-Channel":"10000034","X-Yun-Channel-Source":"10000034","X-Yun-Client-Info":"||9|7.14.0|chrome|120.0.0.0|||windows 10||zh-CN|||dW5kZWZpbmVk||","X-Yun-Module-Type":"100","X-Yun-Svc-Type":"1"},d=await fetch(a,{method:"POST",headers:l,body:s});if(!d.ok){let f=await d.text();throw new Error(`139 Cloud API error (${d.status}): ${f}`)}let u=await d.json();if(u.success===!1&&u.message)throw new Error(`139 Cloud API error: ${u.message}`);return u}async init(){if(!this.addition.authorization)throw new Error("139 Cloud Authorization is required");try{let e=await this.request("https://user-njs.yun.139.com/user/route/qryRoutePolicy",{userInfo:{userType:1,accountType:1,accountName:this.account},modAddrType:1});if(e.data?.routePolicyList)for(let t of e.data.routePolicyList)t.modName==="personal"&&t.httpsUrl?this.personalHost=t.httpsUrl:t.modName==="group"&&t.httpsUrl?this.groupHost=t.httpsUrl:t.modName==="family"&&t.httpsUrl&&(this.familyHost=t.httpsUrl)}catch(e){console.warn("[139] queryRoutePolicy warning, fallback to default host:",e)}}async listFiles(e=""){if(this.isPersonalNew()){let t="",i=[],n=e||this.addition.root_folder_id||"/";do{let a=await this.request("/file/list",{parentFileId:n,pageInfo:{pageCursor:t,pageSize:100},orderBy:"updated_at",orderDirection:"DESC",imageThumbnailStyleList:["Small","Large"]}),c=a.data?.items||[];i.push(...c),t=a.data?.nextPageCursor||""}while(t);let s=i.filter(a=>a.type==="folder").map(a=>({catalogID:a.fileId,catalogName:a.name,updateTime:a.updatedAt}));return{files:i.filter(a=>a.type!=="folder").map(a=>({contentID:a.fileId,contentName:a.name,contentSize:a.size,updateTime:a.updatedAt,createTime:a.createdAt,thumbnailURL:a.thumbnailUrls?.[0]?.url})),folders:s}}return this.getDisk(e)}async getDisk(e=""){let i=(await this.request("/orchestration/personalCloud/catalog/v1.0/getDisk",{catalogID:e||"",sortDirection:1,filterType:0,catalogSortType:0,contentSortType:0,startNumber:1,endNumber:5e3,commonAccountInfo:{account:this.account,accountType:1}})).data?.getDiskResult;return{files:i?.fileList||[],folders:i?.catalogList||[]}}async getDownloadUrl(e){if(this.isPersonalNew()){let n=await this.request("/file/getDownloadUrl",{fileId:e}),s=(n.data?.cdnSwitch?n.data?.cdnUrl:null)||n.data?.url||n.data?.cdnUrl;if(!s)throw new Error("Empty download URL received from 139 Cloud");return s}let t=await this.request("/orchestration/personalCloud/uploadAndDownload/v1.0/downloadRequest",{contentID:e,commonAccountInfo:{account:this.account,accountType:1}}),i=t.data?.downloadURL||t.data?.url;if(!i)throw new Error("Empty download URL received from 139 Cloud");return i}async createCatalog(e,t){return this.isPersonalNew()?(await this.request("/file/create",{parentFileId:e||this.addition.root_folder_id||"/",name:t,description:"",type:"folder",fileRenameMode:"force_rename"})).data?.fileId||"":(await this.request("/orchestration/personalCloud/catalog/v1.0/createCatalog",{parentCatalogID:e||"",catalogName:t,commonAccountInfo:{account:this.account,accountType:1}})).data?.catalogID||""}async deleteFile(e){if(this.isPersonalNew()){await this.request("/file/delete",{fileIds:[e]});return}await this.request("/orchestration/personalCloud/catalog/v1.0/deleteContent",{contentID:e,commonAccountInfo:{account:this.account,accountType:1}})}async deleteCatalog(e){if(this.isPersonalNew()){await this.request("/file/delete",{fileIds:[e]});return}await this.request("/orchestration/personalCloud/catalog/v1.0/deleteCatalog",{catalogID:e,commonAccountInfo:{account:this.account,accountType:1}})}async rename(e,t){if(this.isPersonalNew()){await this.request("/file/update",{fileId:e,name:t,description:""});return}await this.request("/orchestration/personalCloud/catalog/v1.0/updateCatalogInfo",{catalogID:e,catalogName:t,commonAccountInfo:{account:this.account,accountType:1}})}async getStorageDetails(){try{let e=await this.request("/orchestration/personalCloud/catalog/v1.0/getUserDomainInfo",{commonAccountInfo:{account:this.account,accountType:1}});return{total:e.data?.totalSize,used:e.data?.usedSize}}catch{return{}}}}});var Fm,JF=J(()=>{"use strict";Be();He();zF();Fm=class{addition;client;constructor(e){this.addition=e,this.client=new _m(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}getRootId(){return this.addition.root_folder_id?this.addition.root_folder_id:this.client.isPersonalNew()?"/":""}async resolveCatalogId(e){let t=this.cleanPath(e);if(t==="/")return this.getRootId();let i=t.split("/").filter(Boolean),n=this.getRootId();for(let s of i){let a=(await this.client.listFiles(n)).folders.find(c=>c.catalogName===s);if(a)n=a.catalogID;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveCatalogId(i),s=await this.client.listFiles(n),o=s.folders.map(l=>({name:l.catalogName,size:0,is_dir:!0,modified:l.updateTime||new Date().toISOString(),sign:l.catalogID,type:1,raw_url:""})),a=s.files.map(l=>{let d=typeof l.contentSize=="number"?l.contentSize:parseInt(String(l.contentSize||"0"),10),u=l.contentName||"file";return{name:u,size:isNaN(d)?0:d,is_dir:!1,modified:l.updateTime||l.createTime||new Date().toISOString(),sign:l.contentID||u,type:X(u,!1),thumb:l.thumbnailURL||l.bigThumbnailURL,raw_url:""}}),c=[...o,...a];return de(c,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootId(),type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveCatalogId(s),a=await this.client.listFiles(o),c=a.folders.find(d=>d.catalogName===n);if(c)return{name:c.catalogName,size:0,is_dir:!0,modified:c.updateTime||new Date().toISOString(),sign:c.catalogID,type:1,raw_url:""};let l=a.files.find(d=>d.contentName===n);if(l){let d=typeof l.contentSize=="number"?l.contentSize:parseInt(String(l.contentSize||"0"),10),u="";if(l.contentID)try{u=await this.client.getDownloadUrl(l.contentID)}catch(f){console.warn("[139] failed to get download url in get():",f)}return{name:l.contentName||n,size:isNaN(d)?0:d,is_dir:!1,modified:l.updateTime||l.createTime||new Date().toISOString(),sign:l.contentID||n,type:X(n,!1),thumb:l.thumbnailURL||l.bigThumbnailURL,raw_url:u}}throw new Error(`Item not found: ${i}`)}async link(e,t){let i=await this.get(e,t);if(i.is_dir)throw new Error(`Cannot get link for folder: ${t}`);return{url:await this.client.getDownloadUrl(i.sign),headers:{Referer:"https://yun.139.com/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}}}async mkdir(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveCatalogId(n);await this.client.createCatalog(o,s)}async rename(e,t,i){let n=await this.get(e,t);await this.client.rename(n.sign,i)}async remove(e,t,i){let n=this.cleanPath(t),s=await this.resolveCatalogId(n),o=await this.client.listFiles(s);for(let a of i){let c=o.folders.find(l=>l.catalogName===a);if(c)await this.client.deleteCatalog(c.catalogID);else{let l=o.files.find(d=>d.contentName===a);l&&l.contentID&&await this.client.deleteFile(l.contentID)}}}async move(e,t,i,n,s){console.warn(`[139] move from ${n} to ${s}`)}async copy(e,t,i,n,s){console.warn(`[139] copy from ${n} to ${s}`)}async put(e,t,i){console.warn(`[139] put for ${t}`)}async getDetails(){try{let e=await this.client.getStorageDetails();return{total_space:e.total,used_space:e.used}}catch{return{}}}}});function z$(r){let e=r.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4!==0;)e+="=";return Sc.default.enc.Base64.parse(e)}function J$(r){return Sc.default.enc.Base64.stringify(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function j$(r){return Sc.default.enc.Utf8.parse(r)}var Sc,Pm,jF=J(()=>{"use strict";Sc=xr(Oo(),1);Pm=class{addition;sid="";seq=Math.floor(Math.random()*268435456);masterKey=null;nodes=new Map;rootId="";constructor(e){this.addition=e}nextSeq(){return this.seq=(this.seq+1)%268435456,this.seq}async request(e){let i=`https://g.api.mega.co.nz/cs?id=${this.nextSeq()}`;this.sid&&(i+=`&sid=${this.sid}`);let n=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok)throw new Error(`Mega API HTTP error: ${n.status}`);let s=await n.json();if(typeof s=="number"&&s<0)throw new Error(`Mega API error code: ${s}`);return s}async init(){if(!this.addition.email||!this.addition.password)throw new Error("Mega email and password are required");let e=Sc.default.enc.Base64.stringify(Sc.default.enc.Utf8.parse(this.addition.email.toLowerCase())).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),i=(await this.request([{a:"us",user:this.addition.email.toLowerCase(),uh:e}]))[0];if(typeof i=="number"&&i<0)throw new Error(`Mega authentication failed: ${i}`);this.sid=i.sid||"",await this.fetchNodes()}async fetchNodes(){if(!this.sid)return;let t=(await this.request([{a:"f",c:1}]))[0];if(t?.f&&Array.isArray(t.f)){this.nodes.clear();for(let i of t.f){let n=i.t===1||i.t===2||i.t===3||i.t===4;i.t===2&&(this.rootId=i.h);let s="unnamed";if(i.a)try{let a=this.decryptAttributes(i.a,i.k);a?.n&&(s=a.n)}catch{s=i.h}let o={id:i.h,parent_id:i.p,name:s,size:i.s||0,is_dir:n,modified:i.ts?new Date(i.ts*1e3).toISOString():new Date().toISOString(),type:i.t,key:i.k};this.nodes.set(i.h,o)}}}decryptAttributes(e,t){try{let i=z$(e),n=Sc.default.enc.Utf8.stringify(i);if(n.startsWith("MEGA{")){let s=n.substring(4);return JSON.parse(s)}}catch{}return null}getChildren(e){let t=e||this.rootId,i=[];for(let n of this.nodes.values())n.parent_id===t&&i.push(n);return i}getNode(e){return this.nodes.get(e)}getRootId(){return this.rootId}async getDownloadLink(e){let i=(await this.request([{a:"g",g:1,n:e}]))[0];if(i?.g)return i.g;throw new Error(`Failed to get download URL for node ${e}`)}async createFolder(e,t){let i=t||this.rootId,n=JSON.stringify({n:e}),s=J$(j$(`MEGA${n}`)),o=await this.request([{a:"p",t:i,n:[{h:"xxxxxxxx",t:1,a:s,k:"dummy_key"}]}]);return await this.fetchNodes(),o[0]?.f?.[0]?.h||""}async deleteNode(e){await this.request([{a:"d",n:e}]),this.nodes.delete(e)}async moveNode(e,t){await this.request([{a:"m",n:e,t}]);let i=this.nodes.get(e);i&&(i.parent_id=t)}async getQuota(){let t=(await this.request([{a:"uq",strg:1}]))[0];return{total:t?.mstrg||0,used:t?.cstrg||0}}}});var Tm,$F=J(()=>{"use strict";Be();He();jF();Tm=class{addition;client;constructor(e){this.addition=e,this.client=new Pm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}resolveNodeByPath(e){let t=this.cleanPath(e);if(t==="/")return{id:this.client.getRootId(),name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),type:2};let i=t.split("/").filter(Boolean),n=this.client.getRootId(),s=null;for(let o of i){let c=this.client.getChildren(n).find(l=>l.name===o);if(!c)return null;s=c,n=c.id}return s}async list(e,t){let i=this.cleanPath(t),n=this.resolveNodeByPath(i);if(!n||!n.is_dir)return[];let o=this.client.getChildren(n.id).map(a=>({name:a.name,size:a.size||0,is_dir:a.is_dir,modified:a.modified||new Date().toISOString(),sign:a.id,type:X(a.name,a.is_dir),raw_url:""}));return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=this.resolveNodeByPath(i);if(!n)throw new Error(`Node not found: ${i}`);let s="";if(!n.is_dir)try{s=await this.client.getDownloadLink(n.id)}catch(o){console.warn("[Mega] failed to get download link in get():",o)}return{name:n.name,size:n.size,is_dir:n.is_dir,modified:n.modified,sign:n.id,type:X(n.name,n.is_dir),raw_url:s}}async link(e,t){let i=this.cleanPath(t),n=this.resolveNodeByPath(i);if(!n||n.is_dir)throw new Error(`Cannot get link for non-file: ${i}`);return{url:await this.client.getDownloadLink(n.id)}}async mkdir(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=this.resolveNodeByPath(n);if(!o||!o.is_dir)throw new Error(`Parent folder not found: ${n}`);await this.client.createFolder(s,o.id)}async rename(e,t,i){if(!this.resolveNodeByPath(this.cleanPath(t)))throw new Error("Node not found");console.warn(`[Mega] rename ${t} to ${i}`)}async move(e,t,i,n,s){let o=this.resolveNodeByPath(this.cleanPath(s));if(!o||!o.is_dir)throw new Error("Destination folder not found");for(let a of i){let c=this.cleanPath(n)==="/"?`/${a}`:`${this.cleanPath(n)}/${a}`,l=this.resolveNodeByPath(c);l&&await this.client.moveNode(l.id,o.id)}}async copy(e,t,i,n,s){console.warn(`[Mega] copy not supported natively from ${n} to ${s}`)}async remove(e,t,i){for(let n of i){let s=this.cleanPath(t)==="/"?`/${n}`:`${this.cleanPath(t)}/${n}`,o=this.resolveNodeByPath(s);o&&await this.client.deleteNode(o.id)}}async put(e,t,i){console.warn(`[Mega] put for ${t}`)}async getDetails(){try{let e=await this.client.getQuota();return{total_space:e.total,used_space:e.used}}catch{return{}}}}});var Um,VF=J(()=>{"use strict";Um=class{addition;constructor(e){this.addition=e}async init(){if(!this.addition.share_code||!this.addition.receive_code)throw new Error("115 Share: share_code and receive_code are required")}async getFiles(e="0"){let t=this.addition.page_size||1e3,i=[],n=0,s=0;do{let o=new URL("https://webapi.115.com/share/snap");o.searchParams.set("share_code",this.addition.share_code),o.searchParams.set("receive_code",this.addition.receive_code),o.searchParams.set("cid",e||"0"),o.searchParams.set("limit",String(t)),o.searchParams.set("offset",String(n));let a={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",Referer:"https://115.com/"};this.addition.cookie&&(a.Cookie=this.addition.cookie);let c=await fetch(o.toString(),{headers:a});if(!c.ok)throw new Error(`115 Share API error: HTTP ${c.status}`);let l=await c.json();if(!l.state)throw new Error(`115 Share API error: ${l.msg||"failed"}`);let d=l.data?.list||[];if(i.push(...d),s=l.data?.count||0,n+=d.length,d.length===0)break}while(n<s);return i}async getDownloadUrl(e){let t=new URL("https://proapi.115.com/app/share/downurl"),i=new URLSearchParams({share_code:this.addition.share_code,receive_code:this.addition.receive_code,file_id:e}),n={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36","Content-Type":"application/x-www-form-urlencoded"};this.addition.cookie&&(n.Cookie=this.addition.cookie);let s=await fetch(t.toString(),{method:"POST",headers:n,body:i.toString()});if(!s.ok)throw new Error(`115 Share download error: HTTP ${s.status}`);let o=await s.json(),a=o.data?.url?.url||o.data?.url;if(!a)throw new Error(o.msg||"Empty download URL received from 115 Share");return a}}});var Rm,YF=J(()=>{"use strict";Be();He();VF();Rm=class{addition;client;constructor(e){this.addition=e,this.client=new Um(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveCid(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"0";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"0";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.is_file===0&&c.file_name===s);if(a&&a.category_id)n=a.category_id;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveCid(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.is_file===0,l=typeof a.file_size=="number"?a.file_size:parseInt(String(a.file_size||"0"),10),d=typeof a.user_utime=="number"?a.user_utime:parseInt(String(a.user_utime||"0"),10),u=a.file_name||"file";return{name:u,size:c||isNaN(l)?0:l,is_dir:c,modified:d>0?new Date(d*1e3).toISOString():new Date().toISOString(),sign:c?a.category_id||"":a.file_id||"",type:X(u,c),thumb:a.thumb_url,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"0",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveCid(s),c=(await this.client.getFiles(o)).find(h=>h.file_name===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.is_file===0,d=typeof c.file_size=="number"?c.file_size:parseInt(String(c.file_size||"0"),10),u=typeof c.user_utime=="number"?c.user_utime:parseInt(String(c.user_utime||"0"),10),f="";if(!l&&c.file_id)try{f=await this.client.getDownloadUrl(c.file_id)}catch(h){console.warn("[115Share] failed to get download url:",h)}return{name:c.file_name||n,size:l||isNaN(d)?0:d,is_dir:l,modified:u>0?new Date(u*1e3).toISOString():new Date().toISOString(),sign:l?c.category_id||"":c.file_id||"",type:X(c.file_name||n,l),thumb:c.thumb_url,raw_url:f}}async link(e,t){let i=await this.get(e,t);if(i.is_dir)throw new Error(`Cannot get link for folder: ${t}`);return{url:await this.client.getDownloadUrl(i.sign),headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",Referer:"https://115.com/"}}}async mkdir(e,t){throw new Error("115 Share is read-only")}async rename(e,t,i){throw new Error("115 Share is read-only")}async remove(e,t,i){throw new Error("115 Share is read-only")}async move(e,t,i,n,s){throw new Error("115 Share is read-only")}async copy(e,t,i,n,s){throw new Error("115 Share is read-only")}async put(e,t,i){throw new Error("115 Share is read-only")}}});function WF(r){let e=typeof r=="string"?new TextEncoder().encode(r):r,t=-1;for(let i=0;i<e.length;i++)t=t>>>8^$$[(t^e[i])&255];return(t^-1)>>>0}function V$(r,e="web",t="3"){let i=["a","d","e","f","g","h","l","m","y","i","j","n","o","p","k","q","r","s","t","u","b","c","v","w","s","z"],n=String(Math.round(1e7*Math.random())),s=new Date,o=String(Math.floor(s.getTime()/1e3)),a=h=>String(h).padStart(2,"0"),c=`${s.getFullYear()}${a(s.getMonth()+1)}${a(s.getDate())}${a(s.getHours())}${a(s.getMinutes())}`,l=[];for(let h=0;h<c.length;h++){let g=c.charCodeAt(h)-48;l.push(i[g]||"a")}let d=String(WF(l.join(""))),u=[o,n,r,e,t,d].join("|"),f=String(WF(u));return[d,[o,n,f].join("-")]}function Y$(r){let e=new URL(r),[t,i]=V$(e.pathname,"web","3");return e.searchParams.set(t,i),e.toString()}var $$,Nm,XF=J(()=>{"use strict";$$=(()=>{let r=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;r[e]=t}return r})();Nm=class{addition;mainApi="https://yun.123pan.com/b/api";constructor(e){this.addition=e}async init(){if(!this.addition.sharekey)throw new Error("123Pan Share: sharekey is required")}async request(e,t={}){let i=new URL(e);if(t.params)for(let[l,d]of Object.entries(t.params))i.searchParams.set(l,d);let n=Y$(i.toString()),s={Origin:"https://yun.123pan.com",Referer:"https://yun.123pan.com/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) openlist-client",Platform:"web","App-Version":"3"};this.addition.accesstoken&&(s.Authorization=`Bearer ${this.addition.accesstoken}`);let o;t.body&&(s["Content-Type"]="application/json",o=JSON.stringify(t.body));let a=await fetch(n,{method:t.method||"GET",headers:s,body:o});if(!a.ok)throw new Error(`123Pan Share API error: HTTP ${a.status}`);let c=await a.json();if(c.code!==0&&c.code!==200)throw new Error(c.message||`123Pan Share API error (${c.code})`);return c}async getFiles(e="0"){let t=[],i=1;for(;;){let n=await this.request(`${this.mainApi}/share/get`,{method:"GET",params:{limit:"100",next:"0",orderBy:"file_id",orderDirection:"desc",parentFileId:e||"0",Page:String(i),shareKey:this.addition.sharekey,SharePwd:this.addition.sharepassword||""}}),s=n.data?.InfoList||[];if(t.push(...s),i++,s.length===0||n.data?.Next==="-1"||n.data?.Next===-1)break}return t}async getDownloadUrl(e){let i=(await this.request(`${this.mainApi}/share/download/info`,{method:"POST",body:{shareKey:this.addition.sharekey,SharePwd:this.addition.sharepassword||"",etag:e.Etag||"",fileId:e.FileId,s3keyFlag:e.S3KeyFlag||"",size:e.Size}})).data?.DownloadURL||"";if(!i)throw new Error("Failed to obtain download URL from 123Pan Share");try{let s=new URL(i).searchParams.get("params");s&&(i=atob(s))}catch{}return i}}});var qm,ZF=J(()=>{"use strict";Be();He();XF();qm=class{addition;client;constructor(e){this.addition=e,this.client=new Nm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveParentId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"0";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"0";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.Type===1&&c.FileName===s);if(a)n=String(a.FileId);else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveParentId(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.Type===1;return{name:a.FileName,size:c?0:a.Size||0,is_dir:c,modified:a.UpdateAt||a.CreateAt||new Date().toISOString(),sign:String(a.FileId),type:X(a.FileName,c),raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"0",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveParentId(s),c=(await this.client.getFiles(o)).find(u=>u.FileName===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.Type===1,d="";if(!l)try{d=await this.client.getDownloadUrl(c)}catch(u){console.warn("[123Share] failed to get download url in get():",u)}return{name:c.FileName,size:l?0:c.Size||0,is_dir:l,modified:c.UpdateAt||c.CreateAt||new Date().toISOString(),sign:String(c.FileId),type:X(c.FileName,l),raw_url:d}}async link(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveParentId(n),c=(await this.client.getFiles(o)).find(d=>d.FileName===s);if(!c||c.Type===1)throw new Error(`Cannot get link for: ${t}`);return{url:await this.client.getDownloadUrl(c),headers:{Referer:"https://yun.123pan.com/"}}}async mkdir(e,t){throw new Error("123Pan Share is read-only")}async rename(e,t,i){throw new Error("123Pan Share is read-only")}async remove(e,t,i){throw new Error("123Pan Share is read-only")}async move(e,t,i,n,s){throw new Error("123Pan Share is read-only")}async copy(e,t,i,n,s){throw new Error("123Pan Share is read-only")}async put(e,t,i){throw new Error("123Pan Share is read-only")}}});var Om,eP=J(()=>{"use strict";Om=class{addition;shareToken="";driveId="";constructor(e){this.addition=e}async getShareToken(){if(!this.addition.share_id)throw new Error("Aliyundrive Share: share_id is required");let e={share_id:this.addition.share_id};this.addition.share_pwd&&(e.share_pwd=this.addition.share_pwd);let t=await fetch("https://api.alipan.com/v2/share_link/get_share_token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Aliyundrive Share token error: HTTP ${t.status}`);let i=await t.json();if(i.code)throw new Error(i.message||`Aliyundrive Share error: ${i.code}`);return this.shareToken=i.share_token||"",this.shareToken}async init(){await this.getShareToken()}async getFiles(e="root"){this.shareToken||await this.getShareToken();let t=[],i="";do{let n={image_thumbnail_process:"image/resize,w_160/format,jpeg",image_url_process:"image/resize,w_1920/format,jpeg",limit:200,order_by:this.addition.order_by||"name",order_direction:this.addition.order_direction||"ASC",parent_file_id:e||"root",share_id:this.addition.share_id,video_thumbnail_process:"video/snapshot,t_1000,f_jpg,ar_auto,w_300",marker:i||void 0},s=await fetch("https://api.alipan.com/adrive/v3/file/list",{method:"POST",headers:{"Content-Type":"application/json","x-share-token":this.shareToken,"X-Canary":"client=web,app=share,version=v2.3.1"},body:JSON.stringify(n)});if(!s.ok)throw new Error(`Aliyundrive Share list error: HTTP ${s.status}`);let o=await s.json();if(o.code==="ShareLinkTokenInvalid"||o.code==="AccessTokenInvalid")return await this.getShareToken(),this.getFiles(e);if(o.code)throw new Error(o.message||`Aliyundrive list error (${o.code})`);let a=o.items||[];t.push(...a),i=o.next_marker||"",a.length>0&&!this.driveId&&a[0].drive_id&&(this.driveId=a[0].drive_id)}while(i);return t}async getDownloadUrl(e){this.shareToken||await this.getShareToken();let t={share_id:this.addition.share_id,file_id:e,drive_id:this.driveId||void 0,expire_sec:14400},i=await fetch("https://api.alipan.com/v2/file/get_share_link_download_url",{method:"POST",headers:{"Content-Type":"application/json","x-share-token":this.shareToken,"X-Canary":"client=web,app=share,version=v2.3.1"},body:JSON.stringify(t)});if(!i.ok)throw new Error(`Aliyundrive download URL error: HTTP ${i.status}`);let n=await i.json();if(n.code==="ShareLinkTokenInvalid")return await this.getShareToken(),this.getDownloadUrl(e);let s=n.download_url||n.url;if(!s)throw new Error("Failed to get download URL from Aliyundrive Share");return s}}});var Mm,tP=J(()=>{"use strict";Be();He();eP();Mm=class{addition;client;constructor(e){this.addition=e,this.client=new Om(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveFileId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"root";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"root";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.type==="folder"&&c.name===s);if(a)n=a.file_id;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveFileId(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.type==="folder";return{name:a.name,size:c?0:a.size||0,is_dir:c,modified:a.updated_at||a.created_at||new Date().toISOString(),sign:a.file_id,type:X(a.name,c),thumb:a.thumbnail,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"root",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveFileId(s),c=(await this.client.getFiles(o)).find(u=>u.name===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.type==="folder",d="";if(!l)try{d=await this.client.getDownloadUrl(c.file_id)}catch(u){console.warn("[AliyundriveShare] failed to get download url in get():",u)}return{name:c.name,size:l?0:c.size||0,is_dir:l,modified:c.updated_at||c.created_at||new Date().toISOString(),sign:c.file_id,type:X(c.name,l),thumb:c.thumbnail,raw_url:d}}async link(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveFileId(n),c=(await this.client.getFiles(o)).find(d=>d.name===s);if(!c||c.type==="folder")throw new Error(`Cannot get link for: ${t}`);return{url:await this.client.getDownloadUrl(c.file_id),headers:{Referer:"https://www.aliyundrive.com/","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}}}async mkdir(e,t){throw new Error("Aliyundrive Share is read-only")}async rename(e,t,i){throw new Error("Aliyundrive Share is read-only")}async remove(e,t,i){throw new Error("Aliyundrive Share is read-only")}async move(e,t,i,n,s){throw new Error("Aliyundrive Share is read-only")}async copy(e,t,i,n,s){throw new Error("Aliyundrive Share is read-only")}async put(e,t,i){throw new Error("Aliyundrive Share is read-only")}}});var Lm,rP=J(()=>{"use strict";Lm=class{addition;finalUrl="";cookie="";constructor(e){this.addition=e}async init(){if(!this.addition.url)throw new Error("OneDrive Sharelink URL is required");try{let e=await fetch(this.addition.url,{method:"HEAD",redirect:"follow"});this.finalUrl=e.url||this.addition.url}catch{this.finalUrl=this.addition.url}}async getFiles(e="/"){this.finalUrl||await this.init();let t=new URL(this.finalUrl);if(t.pathname.includes("/:u:/")||t.pathname.includes("/:v:/")||t.pathname.includes("/:b:/"))return[{id:"root_file",name:decodeURIComponent(t.pathname.split("/").pop()||"file"),size:0,is_folder:!1,modified:new Date().toISOString(),download_url:this.getDirectDownloadLink(this.finalUrl)}];try{let i=`${t.origin}${t.pathname}/_api/web/GetListUsingPath(DecodedUrl=@a1)/renderListDataAsStream`,n=await fetch(i,{method:"POST",headers:{Accept:"application/json;odata=nometadata","Content-Type":"application/json;odata=verbose"},body:JSON.stringify({parameters:{RenderOptions:5707,AllowMultipleValueFilterForTaxonomyFields:!0,AddRequiredFields:!0}})});if(n.ok)return((await n.json()).ListData?.Row||[]).map(a=>{let c=String(a.FSObjType)==="1",l=parseInt(a.File_x0020_Size||"0",10);return{id:a.UniqueId,name:a.FileLeafRef,size:c||isNaN(l)?0:l,is_folder:c,modified:a["Modified."]||new Date().toISOString(),download_url:a["@content.downloadUrl"],sp_item_url:a[".spItemUrl"]}})}catch{}return[]}getDirectDownloadLink(e){let t=new URL(e);return t.searchParams.set("download","1"),t.toString()}}});var Hm,iP=J(()=>{"use strict";Be();He();rP();Hm=class{addition;client;constructor(e){this.addition=e,this.client=new Lm(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),s=(await this.client.getFiles(i)).map(o=>({name:o.name,size:o.size||0,is_dir:o.is_folder,modified:o.modified||new Date().toISOString(),sign:o.id||o.name,type:X(o.name,o.is_folder),raw_url:o.download_url||""}));return de(s,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"root",type:1,raw_url:""};let o=(await this.client.getFiles("/")).find(a=>a.name===n);if(!o)throw new Error(`File not found: ${i}`);return{name:o.name,size:o.size||0,is_dir:o.is_folder,modified:o.modified||new Date().toISOString(),sign:o.id||o.name,type:X(o.name,o.is_folder),raw_url:o.download_url||this.client.getDirectDownloadLink(this.addition.url)}}async link(e,t){let i=await this.get(e,t);if(i.is_dir)throw new Error(`Cannot get link for folder: ${t}`);return{url:i.raw_url||this.client.getDirectDownloadLink(this.addition.url)}}async mkdir(e,t){throw new Error("OneDrive Sharelink is read-only")}async rename(e,t,i){throw new Error("OneDrive Sharelink is read-only")}async remove(e,t,i){throw new Error("OneDrive Sharelink is read-only")}async move(e,t,i,n,s){throw new Error("OneDrive Sharelink is read-only")}async copy(e,t,i,n,s){throw new Error("OneDrive Sharelink is read-only")}async put(e,t,i){throw new Error("OneDrive Sharelink is read-only")}}});var Km,nP=J(()=>{"use strict";Km=class{addition;passCodeToken="";deviceId="";constructor(e){this.addition=e,this.deviceId=e.device_id||this.generateDeviceId()}generateDeviceId(){return"web_"+Math.random().toString(36).substring(2,15)}async init(){if(!this.addition.share_id)throw new Error("PikPak Share: share_id is required")}async getFiles(e=""){let t=[],i="";do{let n=new URL("https://api-drive.mypikpak.com/drive/v1/share");n.searchParams.set("share_id",this.addition.share_id),this.addition.share_pwd&&n.searchParams.set("pass_code",this.addition.share_pwd),e&&n.searchParams.set("parent_id",e),i&&n.searchParams.set("page_token",i),n.searchParams.set("thumbnail_size","SIZE_LARGE");let s={"X-Client-ID":"YUMx5nI8ZU8Ap8pm","X-Device-ID":this.deviceId,"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"};this.passCodeToken&&(s["X-Share-Token"]=this.passCodeToken);let o=await fetch(n.toString(),{headers:s});if(!o.ok)throw new Error(`PikPak Share error: HTTP ${o.status}`);let a=await o.json();a.pass_code_token&&(this.passCodeToken=a.pass_code_token);let c=a.files||[];if(t.push(...c),i=a.next_page_token||"",c.length===0)break}while(i);return t}async getDownloadUrl(e){if(e.web_content_link)return e.web_content_link;if(e.medias&&e.medias.length>0&&e.medias[0].link?.url)return e.medias[0].link.url;throw new Error("Download URL not found in PikPak share item")}}});var Gm,sP=J(()=>{"use strict";Be();He();nP();Gm=class{addition;client;constructor(e){this.addition=e,this.client=new Km(e)}async init(){await this.client.init()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async resolveParentId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id||"";let i=t.split("/").filter(Boolean),n=this.addition.root_folder_id||"";for(let s of i){let a=(await this.client.getFiles(n)).find(c=>c.kind==="drive#folder"&&c.name===s);if(a)n=a.id;else break}return n}async list(e,t){let i=this.cleanPath(t),n=await this.resolveParentId(i),o=(await this.client.getFiles(n)).map(a=>{let c=a.kind==="drive#folder",l=typeof a.size=="number"?a.size:parseInt(String(a.size||"0"),10);return{name:a.name,size:c||isNaN(l)?0:l,is_dir:c,modified:a.modified_time||new Date().toISOString(),sign:a.id,type:X(a.name,c),thumb:a.thumbnail_link,raw_url:""}});return de(o,this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"root",type:1,raw_url:""};let s=i.substring(0,i.lastIndexOf("/"))||"/",o=await this.resolveParentId(s),c=(await this.client.getFiles(o)).find(f=>f.name===n);if(!c)throw new Error(`File not found: ${i}`);let l=c.kind==="drive#folder",d=typeof c.size=="number"?c.size:parseInt(String(c.size||"0"),10),u="";if(!l)try{u=await this.client.getDownloadUrl(c)}catch(f){console.warn("[PikPakShare] failed to get download url in get():",f)}return{name:c.name,size:l||isNaN(d)?0:d,is_dir:l,modified:c.modified_time||new Date().toISOString(),sign:c.id,type:X(c.name,l),thumb:c.thumbnail_link,raw_url:u}}async link(e,t){let i=this.cleanPath(t),n=i.substring(0,i.lastIndexOf("/"))||"/",s=i.substring(i.lastIndexOf("/")+1),o=await this.resolveParentId(n),c=(await this.client.getFiles(o)).find(d=>d.name===s);if(!c||c.kind==="drive#folder")throw new Error(`Cannot get link for: ${t}`);return{url:await this.client.getDownloadUrl(c)}}async mkdir(e,t){throw new Error("PikPak Share is read-only")}async rename(e,t,i){throw new Error("PikPak Share is read-only")}async remove(e,t,i){throw new Error("PikPak Share is read-only")}async move(e,t,i,n,s){throw new Error("PikPak Share is read-only")}async copy(e,t,i,n,s){throw new Error("PikPak Share is read-only")}async put(e,t,i){throw new Error("PikPak Share is read-only")}}});var zm,oP=J(()=>{"use strict";Be();He();zm=class{addition;constructor(e){this.addition=e}async init(){if(!this.addition.address||!this.addition.share_name)throw new Error("SMB: address and share_name are required")}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"":t}async list(e,t){return de([],this.addition.order_by,this.addition.order_direction)}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";return{name:n,size:0,is_dir:i==="",modified:new Date().toISOString(),sign:i||"/",type:X(n,i===""),raw_url:""}}async mkdir(e,t){}async rename(e,t,i){}async remove(e,t,i){}async move(e,t,i,n,s){}async copy(e,t,i,n,s){}async put(e,t,i){}}});var jm=oe((Jm,aP)=>{(function(r,e){typeof Jm=="object"&&typeof aP<"u"?e(Jm):typeof define=="function"&&define.amd?define(["exports"],e):(r=typeof globalThis<"u"?globalThis:r||self,e(r.hashwasm={}))})(Jm,(function(r){"use strict";var e="adler32",t="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAgUEAQECAgYOAn8BQYCJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEK6wkGBQBBgAkLCgBBAEEBNgKECAvjCAEHf0EAKAKECCIBQf//A3EhAiABQRB2IQMCQAJAIABBAUcNACACQQAtAIAJaiIBQY+AfGogASABQfD/A0sbIgEgA2oiBEEQdCIFQYCAPGogBSAEQfD/A0sbIAFyIQEMAQsCQAJAAkACQAJAIABBEEkNAEGACSEGIABBsCtJDQFBgAkhBgNAQQAhBQNAIAYgBWoiASgCACIEQf8BcSACaiICIANqIAIgBEEIdkH/AXFqIgJqIAIgBEEQdkH/AXFqIgJqIAIgBEEYdmoiAmogAiABQQRqKAIAIgRB/wFxaiICaiACIARBCHZB/wFxaiICaiACIARBEHZB/wFxaiICaiACIARBGHZqIgJqIAIgAUEIaigCACIEQf8BcWoiAmogAiAEQQh2Qf8BcWoiAmogAiAEQRB2Qf8BcWoiAmogAiAEQRh2aiIEaiAEIAFBDGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiAmohAyAFQRBqIgVBsCtHDQALIANB8f8DcCEDIAJB8f8DcCECIAZBsCtqIQYgAEHQVGoiAEGvK0sNAAsgAEUNBCAAQQ9LDQEMAgsCQCAARQ0AAkACQCAAQQNxIgUNAEGACSEBIAAhBAwBCyAAQXxxIQRBACEBA0AgAiABQYAJai0AAGoiAiADaiEDIAUgAUEBaiIBRw0ACyAFQYAJaiEBCyAAQQRJDQADQCACIAEtAABqIgUgAS0AAWoiBiABLQACaiIAIAFBA2otAABqIgIgACAGIAUgA2pqamohAyABQQRqIQEgBEF8aiIEDQALCyACQY+AfGogAiACQfD/A0sbIANB8f8DcEEQdHIhAQwECwNAIAYoAgAiAUH/AXEgAmoiBCADaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgRqIAQgBkEEaigCACIBQf8BcWoiBGogBCABQQh2Qf8BcWoiBGogBCABQRB2Qf8BcWoiBGogBCABQRh2aiIEaiAEIAZBCGooAgAiAUH/AXFqIgRqIAQgAUEIdkH/AXFqIgRqIAQgAUEQdkH/AXFqIgRqIAQgAUEYdmoiBGogBCAGQQxqKAIAIgFB/wFxaiIEaiAEIAFBCHZB/wFxaiIEaiAEIAFBEHZB/wFxaiIEaiAEIAFBGHZqIgJqIQMgBkEQaiEGIABBcGoiAEEPSw0ACyAARQ0BCyAAQX9qIQcCQCAAQQNxIgVFDQAgAEF8cSEAIAUhBCAGIQEDQCACIAEtAABqIgIgA2ohAyABQQFqIQEgBEF/aiIEDQALIAYgBWohBgsgB0EDSQ0AA0AgAiAGLQAAaiIBIAYtAAFqIgQgBi0AAmoiBSAGQQNqLQAAaiICIAUgBCABIANqampqIQMgBkEEaiEGIABBfGoiAA0ACwsgA0Hx/wNwIQMgAkHx/wNwIQILIAIgA0EQdHIhAQtBACABNgKECAsxAQF/QQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwUAQYQICzsAQQBBATYChAggABACQQBBACgChAgiAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnI2AoAJCwsVAgBBgAgLBAQAAAAAQYQICwQBAAAA",i="02ddbd17",n={name:e,data:t,hash:i};function s(S,q,M,Y){function ie(ae){return ae instanceof M?ae:new M(function(ge){ge(ae)})}return new(M||(M=Promise))(function(ae,ge){function xe(jt){try{qt(Y.next(jt))}catch(rr){ge(rr)}}function Je(jt){try{qt(Y.throw(jt))}catch(rr){ge(rr)}}function qt(jt){jt.done?ae(jt.value):ie(jt.value).then(xe,Je)}qt((Y=Y.apply(S,q||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;class o{constructor(){this.mutex=Promise.resolve()}lock(){let q=()=>{};return this.mutex=this.mutex.then(()=>new Promise(q)),new Promise(M=>{q=M})}dispatch(q){return s(this,void 0,void 0,function*(){let M=yield this.lock();try{return yield Promise.resolve(q())}finally{M()}})}}var a;function c(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global}let l=c(),d=(a=l.Buffer)!==null&&a!==void 0?a:null,u=l.TextEncoder?new l.TextEncoder:null;function f(S,q){return String.fromCharCode(...S.subarray(0,q))}function h(S,q){return(S&15)+(S>>6|S>>3&8)<<4|(q&15)+(q>>6|q>>3&8)}function g(S,q){let M=q.length>>1;for(let Y=0;Y<M;Y++){let ie=Y<<1;S[Y]=h(q.charCodeAt(ie),q.charCodeAt(ie+1))}}function p(S,q){if(S.length!==q.length*2)return!1;for(let M=0;M<q.length;M++){let Y=M<<1;if(q[M]!==h(S.charCodeAt(Y),S.charCodeAt(Y+1)))return!1}return!0}let I=87,m=48;function w(S,q,M){let Y=0;for(let ie=0;ie<M;ie++){let ae=q[ie]>>>4;S[Y++]=ae>9?ae+I:ae+m,ae=q[ie]&15,S[Y++]=ae>9?ae+I:ae+m}return String.fromCharCode.apply(null,S)}let B=d!==null?S=>{if(typeof S=="string"){let q=d.from(S,"utf8");return new Uint8Array(q.buffer,q.byteOffset,q.length)}if(d.isBuffer(S))return new Uint8Array(S.buffer,S.byteOffset,S.length);if(ArrayBuffer.isView(S))return new Uint8Array(S.buffer,S.byteOffset,S.byteLength);throw new Error("Invalid data type!")}:S=>{if(typeof S=="string")return u.encode(S);if(ArrayBuffer.isView(S))return new Uint8Array(S.buffer,S.byteOffset,S.byteLength);throw new Error("Invalid data type!")},C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",x=new Uint8Array(256);for(let S=0;S<C.length;S++)x[C.charCodeAt(S)]=S;function Q(S,q=!0){let M=S.length,Y=M%3,ie=[],ae=M-Y;for(let ge=0;ge<ae;ge+=3){let xe=(S[ge]<<16&16711680)+(S[ge+1]<<8&65280)+(S[ge+2]&255),Je=C.charAt(xe>>18&63)+C.charAt(xe>>12&63)+C.charAt(xe>>6&63)+C.charAt(xe&63);ie.push(Je)}if(Y===1){let ge=S[M-1],xe=C.charAt(ge>>2),Je=C.charAt(ge<<4&63);ie.push(`${xe}${Je}`),q&&ie.push("==")}else if(Y===2){let ge=(S[M-2]<<8)+S[M-1],xe=C.charAt(ge>>10),Je=C.charAt(ge>>4&63),qt=C.charAt(ge<<2&63);ie.push(`${xe}${Je}${qt}`),q&&ie.push("=")}return ie.join("")}function R(S){let q=Math.floor(S.length*.75),M=S.length;return S[M-1]==="="&&(q-=1,S[M-2]==="="&&(q-=1)),q}function U(S){let q=R(S),M=S.length,Y=new Uint8Array(q),ie=0;for(let ae=0;ae<M;ae+=4){let ge=x[S.charCodeAt(ae)],xe=x[S.charCodeAt(ae+1)],Je=x[S.charCodeAt(ae+2)],qt=x[S.charCodeAt(ae+3)];Y[ie]=ge<<2|xe>>4,ie+=1,Y[ie]=(xe&15)<<4|Je>>2,ie+=1,Y[ie]=(Je&3)<<6|qt&63,ie+=1}return Y}let T=16*1024,D=4,b=new o,_=new Map;function v(S,q){return s(this,void 0,void 0,function*(){let M=null,Y=null,ie=!1;if(typeof WebAssembly>"u")throw new Error("WebAssembly is not supported in this environment!");let ae=(je,it=0)=>{Y.set(je,it)},ge=()=>Y,xe=()=>M.exports,Je=je=>{M.exports.Hash_SetMemorySize(je);let it=M.exports.Hash_GetBuffer(),oi=M.exports.memory.buffer;Y=new Uint8Array(oi,it,je)},qt=()=>new DataView(M.exports.memory.buffer).getUint32(M.exports.STATE_SIZE,!0),jt=b.dispatch(()=>s(this,void 0,void 0,function*(){if(!_.has(S.name)){let it=U(S.data),oi=WebAssembly.compile(it);_.set(S.name,oi)}let je=yield _.get(S.name);M=yield WebAssembly.instantiate(je,{})})),rr=()=>s(this,void 0,void 0,function*(){M||(yield jt);let je=M.exports.Hash_GetBuffer(),it=M.exports.memory.buffer;Y=new Uint8Array(it,je,T)}),Ot=(je=null)=>{ie=!0,M.exports.Hash_Init(je)},Yi=je=>{let it=0;for(;it<je.length;){let oi=je.subarray(it,it+T);it+=oi.length,Y.set(oi),M.exports.Hash_Update(oi.length)}},Kr=je=>{if(!ie)throw new Error("update() called before init()");let it=B(je);Yi(it)},Qu=new Uint8Array(q*2),_o=(je,it=null)=>{if(!ie)throw new Error("digest() called before init()");return ie=!1,M.exports.Hash_Final(it),je==="binary"?Y.slice(0,q):w(Qu,Y,q)},xn=()=>{if(!ie)throw new Error("save() can only be called after init() and before digest()");let je=M.exports.Hash_GetState(),it=qt(),oi=M.exports.memory.buffer,nc=new Uint8Array(oi,je,it),_u=new Uint8Array(D+it);return g(_u,S.hash),_u.set(nc,D),_u},Fo=je=>{if(!(je instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");let it=M.exports.Hash_GetState(),oi=qt(),nc=D+oi,_u=M.exports.memory.buffer;if(je.length!==nc)throw new Error(`Bad state length (expected ${nc} bytes, got ${je.length})`);if(!p(S.hash,je.subarray(0,D)))throw new Error("This state was written by an incompatible hash implementation");let LH=je.subarray(D);new Uint8Array(_u,it,oi).set(LH),ie=!0},bl=je=>typeof je=="string"?je.length<T/4:je.byteLength<T,Qs=bl;switch(S.name){case"argon2":case"scrypt":Qs=()=>!0;break;case"blake2b":case"blake2s":Qs=(je,it)=>it<=512&&bl(je);break;case"blake3":Qs=(je,it)=>it===0&&bl(je);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":Qs=()=>!1;break}let Po=(je,it=null,oi=null)=>{if(!Qs(je,it))return Ot(it),Kr(je),_o("hex",oi);let nc=B(je);return Y.set(nc),M.exports.Hash_Calculate(nc.length,it,oi),w(Qu,Y,q)};return yield rr(),{getMemory:ge,writeMemory:ae,getExports:xe,setMemorySize:Je,init:Ot,update:Kr,digest:_o,save:xn,load:Fo,calculate:Po,hashLength:q}})}function E(S,q,M){return s(this,void 0,void 0,function*(){let Y=yield S.lock(),ie=yield v(q,M);return Y(),ie})}let P=new o,N=null;function j(S){if(N===null)return E(P,n,4).then(q=>(N=q,N.calculate(S)));try{let q=N.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function z(){return v(n,4).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:4,digestSize:4};return q})}var L="argon2",G="AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkDyAGFNwPYCUEAIAIpA9ABIAEpA9ABhTcD4AlBACACKQPYASABKQPYAYU3A+gJQQAgAikD4AEgASkD4AGFNwPwCUEAIAIpA+gBIAEpA+gBhTcD+AlBACACKQPwASABKQPwAYU3A4AKQQAgAikD+AEgASkD+AGFNwOICkEAIAIpA4ACIAEpA4AChTcDkApBACACKQOIAiABKQOIAoU3A5gKQQAgAikDkAIgASkDkAKFNwOgCkEAIAIpA5gCIAEpA5gChTcDqApBACACKQOgAiABKQOgAoU3A7AKQQAgAikDqAIgASkDqAKFNwO4CkEAIAIpA7ACIAEpA7AChTcDwApBACACKQO4AiABKQO4AoU3A8gKQQAgAikDwAIgASkDwAKFNwPQCkEAIAIpA8gCIAEpA8gChTcD2ApBACACKQPQAiABKQPQAoU3A+AKQQAgAikD2AIgASkD2AKFNwPoCkEAIAIpA+ACIAEpA+AChTcD8ApBACACKQPoAiABKQPoAoU3A/gKQQAgAikD8AIgASkD8AKFNwOAC0EAIAIpA/gCIAEpA/gChTcDiAtBACACKQOAAyABKQOAA4U3A5ALQQAgAikDiAMgASkDiAOFNwOYC0EAIAIpA5ADIAEpA5ADhTcDoAtBACACKQOYAyABKQOYA4U3A6gLQQAgAikDoAMgASkDoAOFNwOwC0EAIAIpA6gDIAEpA6gDhTcDuAtBACACKQOwAyABKQOwA4U3A8ALQQAgAikDuAMgASkDuAOFNwPIC0EAIAIpA8ADIAEpA8ADhTcD0AtBACACKQPIAyABKQPIA4U3A9gLQQAgAikD0AMgASkD0AOFNwPgC0EAIAIpA9gDIAEpA9gDhTcD6AtBACACKQPgAyABKQPgA4U3A/ALQQAgAikD6AMgASkD6AOFNwP4C0EAIAIpA/ADIAEpA/ADhTcDgAxBACACKQP4AyABKQP4A4U3A4gMQQAgAikDgAQgASkDgASFNwOQDEEAIAIpA4gEIAEpA4gEhTcDmAxBACACKQOQBCABKQOQBIU3A6AMQQAgAikDmAQgASkDmASFNwOoDEEAIAIpA6AEIAEpA6AEhTcDsAxBACACKQOoBCABKQOoBIU3A7gMQQAgAikDsAQgASkDsASFNwPADEEAIAIpA7gEIAEpA7gEhTcDyAxBACACKQPABCABKQPABIU3A9AMQQAgAikDyAQgASkDyASFNwPYDEEAIAIpA9AEIAEpA9AEhTcD4AxBACACKQPYBCABKQPYBIU3A+gMQQAgAikD4AQgASkD4ASFNwPwDEEAIAIpA+gEIAEpA+gEhTcD+AxBACACKQPwBCABKQPwBIU3A4ANQQAgAikD+AQgASkD+ASFNwOIDUEAIAIpA4AFIAEpA4AFhTcDkA1BACACKQOIBSABKQOIBYU3A5gNQQAgAikDkAUgASkDkAWFNwOgDUEAIAIpA5gFIAEpA5gFhTcDqA1BACACKQOgBSABKQOgBYU3A7ANQQAgAikDqAUgASkDqAWFNwO4DUEAIAIpA7AFIAEpA7AFhTcDwA1BACACKQO4BSABKQO4BYU3A8gNQQAgAikDwAUgASkDwAWFNwPQDUEAIAIpA8gFIAEpA8gFhTcD2A1BACACKQPQBSABKQPQBYU3A+ANQQAgAikD2AUgASkD2AWFNwPoDUEAIAIpA+AFIAEpA+AFhTcD8A1BACACKQPoBSABKQPoBYU3A/gNQQAgAikD8AUgASkD8AWFNwOADkEAIAIpA/gFIAEpA/gFhTcDiA5BACACKQOABiABKQOABoU3A5AOQQAgAikDiAYgASkDiAaFNwOYDkEAIAIpA5AGIAEpA5AGhTcDoA5BACACKQOYBiABKQOYBoU3A6gOQQAgAikDoAYgASkDoAaFNwOwDkEAIAIpA6gGIAEpA6gGhTcDuA5BACACKQOwBiABKQOwBoU3A8AOQQAgAikDuAYgASkDuAaFNwPIDkEAIAIpA8AGIAEpA8AGhTcD0A5BACACKQPIBiABKQPIBoU3A9gOQQAgAikD0AYgASkD0AaFNwPgDkEAIAIpA9gGIAEpA9gGhTcD6A5BACACKQPgBiABKQPgBoU3A/AOQQAgAikD6AYgASkD6AaFNwP4DkEAIAIpA/AGIAEpA/AGhTcDgA9BACACKQP4BiABKQP4BoU3A4gPQQAgAikDgAcgASkDgAeFNwOQD0EAIAIpA4gHIAEpA4gHhTcDmA9BACACKQOQByABKQOQB4U3A6APQQAgAikDmAcgASkDmAeFNwOoD0EAIAIpA6AHIAEpA6AHhTcDsA9BACACKQOoByABKQOoB4U3A7gPQQAgAikDsAcgASkDsAeFNwPAD0EAIAIpA7gHIAEpA7gHhTcDyA9BACACKQPAByABKQPAB4U3A9APQQAgAikDyAcgASkDyAeFNwPYD0EAIAIpA9AHIAEpA9AHhTcD4A9BACACKQPYByABKQPYB4U3A+gPQQAgAikD4AcgASkD4AeFNwPwD0EAIAIpA+gHIAEpA+gHhTcD+A9BACACKQPwByABKQPwB4U3A4AQQQAgAikD+AcgASkD+AeFNwOIEEGQCEGYCEGgCEGoCEGwCEG4CEHACEHICEHQCEHYCEHgCEHoCEHwCEH4CEGACUGICRACQZAJQZgJQaAJQagJQbAJQbgJQcAJQcgJQdAJQdgJQeAJQegJQfAJQfgJQYAKQYgKEAJBkApBmApBoApBqApBsApBuApBwApByApB0ApB2ApB4ApB6ApB8ApB+ApBgAtBiAsQAkGQC0GYC0GgC0GoC0GwC0G4C0HAC0HIC0HQC0HYC0HgC0HoC0HwC0H4C0GADEGIDBACQZAMQZgMQaAMQagMQbAMQbgMQcAMQcgMQdAMQdgMQeAMQegMQfAMQfgMQYANQYgNEAJBkA1BmA1BoA1BqA1BsA1BuA1BwA1ByA1B0A1B2A1B4A1B6A1B8A1B+A1BgA5BiA4QAkGQDkGYDkGgDkGoDkGwDkG4DkHADkHIDkHQDkHYDkHgDkHoDkHwDkH4DkGAD0GIDxACQZAPQZgPQaAPQagPQbAPQbgPQcAPQcgPQdAPQdgPQeAPQegPQfAPQfgPQYAQQYgQEAJBkAhBmAhBkAlBmAlBkApBmApBkAtBmAtBkAxBmAxBkA1BmA1BkA5BmA5BkA9BmA8QAkGgCEGoCEGgCUGoCUGgCkGoCkGgC0GoC0GgDEGoDEGgDUGoDUGgDkGoDkGgD0GoDxACQbAIQbgIQbAJQbgJQbAKQbgKQbALQbgLQbAMQbgMQbANQbgNQbAOQbgOQbAPQbgPEAJBwAhByAhBwAlByAlBwApByApBwAtByAtBwAxByAxBwA1ByA1BwA5ByA5BwA9ByA8QAkHQCEHYCEHQCUHYCUHQCkHYCkHQC0HYC0HQDEHYDEHQDUHYDUHQDkHYDkHQD0HYDxACQeAIQegIQeAJQegJQeAKQegKQeALQegLQeAMQegMQeANQegNQeAOQegOQeAPQegPEAJB8AhB+AhB8AlB+AlB8ApB+ApB8AtB+AtB8AxB+AxB8A1B+A1B8A5B+A5B8A9B+A8QAkGACUGICUGACkGICkGAC0GIC0GADEGIDEGADUGIDUGADkGIDkGAD0GID0GAEEGIEBACAkACQCADRQ0AA0AgACAEaiIDIAIgBGoiBSkDACABIARqIgYpAwCFIARBkAhqKQMAhSADKQMAhTcDACADQQhqIgMgBUEIaikDACAGQQhqKQMAhSAEQZgIaikDAIUgAykDAIU3AwAgBEEQaiIEQYAIRw0ADAILC0EAIQQDQCAAIARqIgMgAiAEaiIFKQMAIAEgBGoiBikDAIUgBEGQCGopAwCFNwMAIANBCGogBUEIaikDACAGQQhqKQMAhSAEQZgIaikDAIU3AwAgBEEQaiIEQYAIRw0ACwsL5QcMBX8BfgR/An4BfwF+AX8Bfgd/AX4DfwF+AkBBACgCgAgiAiABQQp0aiIDKAIIIAFHDQAgAygCDCEEIAMoAgAhBUEAIAMoAhQiBq03A7gQQQAgBK0iBzcDsBBBACAFIAEgBUECdG4iCGwiCUECdK03A6gQAkACQAJAAkAgBEUNAEF/IQogBUUNASAIQQNsIQsgCEECdCIErSEMIAWtIQ0gBkF/akECSSEOQgAhDwNAQQAgDzcDkBAgD6chEEIAIRFBACEBA0BBACARNwOgECAPIBGEUCIDIA5xIRIgBkEBRiAPUCITIAZBAkYgEUICVHFxciEUQX8gAUEBakEDcSAIbEF/aiATGyEVIAEgEHIhFiABIAhsIRcgA0EBdCEYQgAhGQNAQQBCADcDwBBBACAZNwOYECAYIQECQCASRQ0AQQBCATcDwBBBkBhBkBBBkCBBABADQZAYQZAYQZAgQQAQA0ECIQELAkAgASAITw0AIAQgGaciGmwgF2ogAWohAwNAIANBACAEIAEbQQAgEVAiGxtqQX9qIRwCQAJAIBQNAEEAKAKACCICIBxBCnQiHGohCgwBCwJAIAFB/wBxIgINAEEAQQApA8AQQgF8NwPAEEGQGEGQEEGQIEEAEANBkBhBkBhBkCBBABADCyAcQQp0IRwgAkEDdEGQGGohCkEAKAKACCECCyACIANBCnRqIAIgHGogAiAKKQMAIh1CIIinIAVwIBogFhsiHCAEbCABIAFBACAZIBytUSIcGyIKIBsbIBdqIAogC2ogExsgAUUgHHJrIhsgFWqtIB1C/////w+DIh0gHX5CIIggG61+QiCIfSAMgqdqQQp0akEBEAMgA0EBaiEDIAggAUEBaiIBRw0ACwsgGUIBfCIZIA1SDQALIBFCAXwiEachASARQgRSDQALIA9CAXwiDyAHUg0AC0EAKAKACCECCyAJQQx0QYB4aiEXIAVBf2oiCkUNAgwBC0EAQgM3A6AQQQAgBEF/aq03A5AQQYB4IRcLIAIgF2ohGyAIQQx0IQhBACEcA0AgCCAcQQFqIhxsQYB4aiEEQQAhAQNAIBsgAWoiAyADKQMAIAIgBCABamopAwCFNwMAIANBCGoiAyADKQMAIAIgBCABQQhyamopAwCFNwMAIAFBCGohAyABQRBqIQEgA0H4B0kNAAsgHCAKRw0ACwsgAiAXaiEbQXghAQNAIAIgAWoiA0EIaiAbIAFqIgRBCGopAwA3AwAgA0EQaiAEQRBqKQMANwMAIANBGGogBEEYaikDADcDACADQSBqIARBIGopAwA3AwAgAUEgaiIBQfgHSQ0ACwsL",K="e4cdc523",$={name:L,data:G,hash:K},te="blake2b",re="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",ee="c6f286e6",Z={name:te,data:re,hash:ee};let me=new o,le=null;function Ae(S){return!Number.isInteger(S)||S<8||S>512||S%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 512"):null}function ve(S,q){return S|q<<16}function qe(S,q=512,M=null){if(Ae(q))return Promise.reject(Ae(q));let Y=null,ie=q;if(M!==null){if(Y=B(M),Y.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));ie=ve(q,Y.length)}let ae=q/8;if(le===null||le.hashLength!==ae)return E(me,Z,ae).then(ge=>(le=ge,ie>512&&le.writeMemory(Y),le.calculate(S,ie)));try{ie>512&&le.writeMemory(Y);let ge=le.calculate(S,ie);return Promise.resolve(ge)}catch(ge){return Promise.reject(ge)}}function _e(S=512,q=null){if(Ae(S))return Promise.reject(Ae(S));let M=null,Y=S;if(q!==null){if(M=B(q),M.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));Y=ve(S,M.length)}let ie=S/8;return v(Z,ie).then(ae=>{Y>512&&ae.writeMemory(M),ae.init(Y);let ge={init:Y>512?()=>(ae.writeMemory(M),ae.init(Y),ge):()=>(ae.init(Y),ge),update:xe=>(ae.update(xe),ge),digest:xe=>ae.digest(xe),save:()=>ae.save(),load:xe=>(ae.load(xe),ge),blockSize:128,digestSize:ie};return ge})}function se(S,q,M){let Y=[`m=${q.memorySize}`,`t=${q.iterations}`,`p=${q.parallelism}`].join(",");return`$argon2${q.hashType}$v=19$${Y}$${Q(S,!1)}$${Q(M,!1)}`}let rt=new DataView(new ArrayBuffer(4));function ce(S){return rt.setInt32(0,S,!0),new Uint8Array(rt.buffer)}function dr(S,q,M){return s(this,void 0,void 0,function*(){if(M<=64){let Je=yield _e(M*8);return Je.update(ce(M)),Je.update(q),Je.digest("binary")}let Y=Math.ceil(M/32)-2,ie=new Uint8Array(M);S.init(),S.update(ce(M)),S.update(q);let ae=S.digest("binary");ie.set(ae.subarray(0,32),0);for(let Je=1;Je<Y;Je++)S.init(),S.update(ae),ae=S.digest("binary"),ie.set(ae.subarray(0,32),Je*32);let ge=M-32*Y,xe;return ge===64?(xe=S,xe.init()):xe=yield _e(ge*8),xe.update(ae),ae=xe.digest("binary"),ie.set(ae.subarray(0,ge),Y*32),ie})}function Mr(S){switch(S){case"d":return 0;case"i":return 1;default:return 2}}function at(S){return s(this,void 0,void 0,function*(){var q;let{parallelism:M,iterations:Y,hashLength:ie}=S,ae=B(S.password),ge=B(S.salt),xe=19,Je=Mr(S.hashType),{memorySize:qt}=S,jt=B((q=S.secret)!==null&&q!==void 0?q:""),[rr,Ot]=yield Promise.all([v($,1024),_e(512)]);rr.setMemorySize(qt*1024+1024);let Yi=new Uint8Array(24),Kr=new DataView(Yi.buffer);Kr.setInt32(0,M,!0),Kr.setInt32(4,ie,!0),Kr.setInt32(8,qt,!0),Kr.setInt32(12,Y,!0),Kr.setInt32(16,xe,!0),Kr.setInt32(20,Je,!0),rr.writeMemory(Yi,qt*1024),Ot.init(),Ot.update(Yi),Ot.update(ce(ae.length)),Ot.update(ae),Ot.update(ce(ge.length)),Ot.update(ge),Ot.update(ce(jt.length)),Ot.update(jt),Ot.update(ce(0));let _o=Math.floor(qt/(M*4))*4,xn=new Uint8Array(72),Fo=Ot.digest("binary");xn.set(Fo);for(let Po=0;Po<M;Po++){xn.set(ce(0),64),xn.set(ce(Po),68);let je=Po*_o,it=yield dr(Ot,xn,1024);rr.writeMemory(it,je*1024),je+=1,xn.set(ce(1),64),it=yield dr(Ot,xn,1024),rr.writeMemory(it,je*1024)}let bl=new Uint8Array(1024);g(bl,rr.calculate(new Uint8Array([]),qt));let Qs=yield dr(Ot,bl,ie);if(S.outputType==="hex"){let Po=new Uint8Array(ie*2);return w(Po,Qs,ie)}return S.outputType==="encoded"?se(ge,S,Qs):Qs})}let we=S=>{var q;if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!S.password)throw new Error("Password must be specified");if(S.password=B(S.password),S.password.length<1)throw new Error("Password must be specified");if(!S.salt)throw new Error("Salt must be specified");if(S.salt=B(S.salt),S.salt.length<8)throw new Error("Salt should be at least 8 bytes long");if(S.secret=B((q=S.secret)!==null&&q!==void 0?q:""),!Number.isInteger(S.iterations)||S.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(S.parallelism)||S.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(S.hashLength)||S.hashLength<4)throw new Error("Hash length should be at least 4 bytes.");if(!Number.isInteger(S.memorySize))throw new Error("Memory size should be specified.");if(S.memorySize<8*S.parallelism)throw new Error("Memory size should be at least 8 * parallelism.");if(S.outputType===void 0&&(S.outputType="hex"),!["hex","binary","encoded"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function Ee(S){return s(this,void 0,void 0,function*(){return we(S),at(Object.assign(Object.assign({},S),{hashType:"i"}))})}function Ji(S){return s(this,void 0,void 0,function*(){return we(S),at(Object.assign(Object.assign({},S),{hashType:"id"}))})}function vo(S){return s(this,void 0,void 0,function*(){return we(S),at(Object.assign(Object.assign({},S),{hashType:"d"}))})}let Se=(S,q,M)=>{let Y=/^\$argon2(id|i|d)\$v=([0-9]+)\$((?:[mtp]=[0-9]+,){2}[mtp]=[0-9]+)\$([A-Za-z0-9+/]+)\$([A-Za-z0-9+/]+)$/,ie=q.match(Y);if(!ie)throw new Error("Invalid hash");let[,ae,ge,xe,Je,qt]=ie;if(ge!=="19")throw new Error(`Unsupported version: ${ge}`);let jt={},rr={m:"memorySize",p:"parallelism",t:"iterations"};for(let Ot of xe.split(",")){let[Yi,Kr]=Ot.split("=");jt[rr[Yi]]=Number(Kr)}return Object.assign(Object.assign({},jt),{password:S,secret:M,hashType:ae,salt:U(Je),hashLength:R(qt),outputType:"encoded"})},Dt=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(S.hash===void 0||typeof S.hash!="string")throw new Error("Hash should be specified")};function vs(S){return s(this,void 0,void 0,function*(){Dt(S);let q=Se(S.password,S.hash,S.secret);we(q);let M=S.hash.lastIndexOf("$")+1;return(yield at(q)).substring(M)===S.hash.substring(M)})}var Ce="blake2s",ji="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",si="5c0ff166",wr={name:Ce,data:ji,hash:si};let tr=new o,ur=null;function Qe(S){return!Number.isInteger(S)||S<8||S>256||S%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..., 256"):null}function be(S,q){return S|q<<16}function xl(S,q=256,M=null){if(Qe(q))return Promise.reject(Qe(q));let Y=null,ie=q;if(M!==null){if(Y=B(M),Y.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));ie=be(q,Y.length)}let ae=q/8;if(ur===null||ur.hashLength!==ae)return E(tr,wr,ae).then(ge=>(ur=ge,ie>512&&ur.writeMemory(Y),ur.calculate(S,ie)));try{ie>512&&ur.writeMemory(Y);let ge=ur.calculate(S,ie);return Promise.resolve(ge)}catch(ge){return Promise.reject(ge)}}function hi(S=256,q=null){if(Qe(S))return Promise.reject(Qe(S));let M=null,Y=S;if(q!==null){if(M=B(q),M.length>32)return Promise.reject(new Error("Max key length is 32 bytes"));Y=be(S,M.length)}let ie=S/8;return v(wr,ie).then(ae=>{Y>512&&ae.writeMemory(M),ae.init(Y);let ge={init:Y>512?()=>(ae.writeMemory(M),ae.init(Y),ge):()=>(ae.init(Y),ge),update:xe=>(ae.update(xe),ge),digest:xe=>ae.digest(xe),save:()=>ae.save(),load:xe=>(ae.load(xe),ge),blockSize:64,digestSize:ie};return ge})}var Lr="blake3",Ln="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IQEgAkFAaiICQcAASw0ACwsCQEHAACAHQf8BcSIGayIFIAIgBSACSRsiCUUNACAJQQNxIQtBACEFAkAgCUEESQ0AIAAgBmohByAJQfwAcSEIQQAhBQNAIAcgBWoiAkEoaiABIAVqIgotAAA6AAAgAkEpaiAKQQFqLQAAOgAAIAJBKmogCkECai0AADoAACACQStqIApBA2otAAA6AAAgCCAFQQRqIgVHDQALCwJAIAtFDQAgASAFaiEBIAUgBmogAGpBKGohBQNAIAUgAS0AADoAACABQQFqIQEgBUEBaiEFIAtBf2oiCw0ACwsgAC0AaCEHCyAAIAcgCWo6AGggA0HAAGokAAveAwQFfwN+BX8GfiMAQdABayIBJAACQCAAe6ciAkEALQCQigEiA08NAEEALQCKigFBBHIhBCABQShqIQVBACkDmIkBIQBBACkDkIkBIQZBACkDiIkBIQdBACkDgIkBIQggAyEJA0AgASAANwMYIAEgBjcDECABIAc3AwggASAINwMAIAEgA0EFdCIDQdGJAWoiCikDADcDKCABIANB2YkBaiILKQMANwMwIAEgA0HhiQFqIgwpAwA3AzggASADQemJAWoiDSkDADcDQCABIANB8YkBaikDADcDSCABIANB+YkBaikDADcDUCABIANBgYoBaikDADcDWCADQYmKAWopAwAhDiABQcAAOgBoIAEgDjcDYCABQgA3AyAgASAEOgBpIAEgADcDiAEgASAGNwOAASABIAc3A3ggASAINwNwIAFBkAFqIAFB8ABqIAVBwABCACAEQf8BcRACIAEpA7ABIQ4gASkDkAEhDyABKQO4ASEQIAEpA5gBIREgASkDwAEhEiABKQOgASETIA0gASkDyAEgASkDqAGFNwMAIAwgEiAThTcDACALIBAgEYU3AwAgCiAOIA+FNwMAIAlBf2oiCUH/AXEiAyACSw0AC0EAIAk6AJCKAQsgAUHQAWokAAvHCQIKfwV+IwBB4AJrIgUkAAJAAkAgAUGACEsNACAFIAA2AvwBIAVB/AFqIAFBgAhGIgZBECACQQEgA0EBQQIgBBABIAZBCnQiByABTw0BIAVB4ABqIgZCADcDACAFQdgAaiIIQgA3AwAgBUHQAGoiCUIANwMAIAVByABqIgpCADcDACAFQcAAaiILQgA3AwAgBUE4aiIMQgA3AwAgBUEwaiINQgA3AwAgBSADOgBqIAVCADcDKCAFQQA7AWggBUEAKQOAiQE3AwAgBUEAKQOIiQE3AwggBUEAKQOQiQE3AxAgBUEAKQOYiQE3AxggBSABQYAIRiIOrSACfDcDICAFIAAgB2pBACABIA4bEAQgBUGIAWpBMGogDSkDADcDACAFQYgBakE4aiAMKQMANwMAIAUgBSkDACIPNwOIASAFIAUpAwgiEDcDkAEgBSAFKQMQIhE3A5gBIAUgBSkDGCISNwOgASAFIAUpAyg3A7ABIAUtAGohACAFLQBpIQcgBSkDICECIAUtAGghASAFQYgBakHAAGogCykDADcDACAFQYgBakHIAGogCikDADcDACAFQYgBakHQAGogCSkDADcDACAFQYgBakHYAGogCCkDADcDACAFQYgBakHgAGogBikDADcDACAFIAE6APABIAUgAjcDqAEgBSAAIAdFckECciIAOgDxASAFIBI3A5gCIAUgETcDkAIgBSAQNwOIAiAFIA83A4ACIAVBoAJqIAVBgAJqIAVBsAFqIAEgAiAAQf8BcRACIAUpA8ACIQIgBSkDoAIhDyAFKQPIAiEQIAUpA6gCIREgBSkD0AIhEiAFKQOwAiETIAQgDkEFdGoiASAFKQPYAiAFKQO4AoU3AxggASASIBOFNwMQIAEgECARhTcDCCABIAIgD4U3AwBBAkEBIA4bIQYMAQsgAEIBIAFBf2pBCnZBAXKteUI/hYYiD6dBCnQiDiACIAMgBRAGIQcgACAOaiABIA5rIA9C////AYMgAnwgAyAFQcAAQSAgDkGACEsbahAGIQECQCAHQQFHDQAgBCAFKQMANwMAIAQgBSkDCDcDCCAEIAUpAxA3AxAgBCAFKQMYNwMYIAQgBSkDIDcDICAEIAUpAyg3AyggBCAFKQMwNwMwIAQgBSkDODcDOEECIQYMAQtBACEGQQAhAAJAIAEgB2oiCUECSQ0AIAlBfmoiCkEBdkEBaiIGQQNxIQ5BACEHAkAgCkEGSQ0AIAZB/P///wdxIQhBACEHIAVBiAFqIQEgBSEAA0AgASAANgIAIAFBDGogAEHAAWo2AgAgAUEIaiAAQYABajYCACABQQRqIABBwABqNgIAIABBgAJqIQAgAUEQaiEBIAggB0EEaiIHRw0ACwsgCkF+cSEIAkAgDkUNACAFIAdBBnRqIQEgBUGIAWogB0ECdGohAANAIAAgATYCACABQcAAaiEBIABBBGohACAOQX9qIg4NAAsLIAhBAmohAAsgBUGIAWogBkEBQgBBACADQQRyQQBBACAEEAEgACAJTw0AIAQgBkEFdGoiASAFIAZBBnRqIgApAwA3AwAgASAAKQMINwMIIAEgACkDEDcDECABIAApAxg3AxggBkEBaiEGCyAFQeACaiQAIAYLrRAIAn8EfgF/AX4EfwR+BH8EfiMAQfABayIBJAACQCAARQ0AAkBBAC0AkIoBIgINACABQTBqQQApA9CJATcDACABQThqQQApA9iJATcDACABQQApA6CJASIDNwMAIAFBACkDqIkBIgQ3AwggAUEAKQOwiQEiBTcDECABQQApA7iJASIGNwMYIAFBACkDyIkBNwMoQQAtAIqKASECQQAtAImKASEHQQApA8CJASEIQQAtAIiKASEJIAFBwABqQQApA+CJATcDACABQcgAakEAKQPoiQE3AwAgAUHQAGpBACkD8IkBNwMAIAFB2ABqQQApA/iJATcDACABQeAAakEAKQOAigE3AwAgASAJOgBoIAEgCDcDICABIAIgB0VyIgJBAnI6AGkgAUEoaiEKQgAhCEGACSELIAJBCnJB/wFxIQwDQCABQbABaiABIAogCUH/AXEgCCAMEAIgASABKQPQASINIAEpA7ABhTcDcCABIAEpA9gBIg4gASkDuAGFNwN4IAEgASkD4AEiDyABKQPAAYU3A4ABIAEgASkD6AEiECAGhTcDqAEgASAPIAWFNwOgASABIA4gBIU3A5gBIAEgDSADhTcDkAEgASAQIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQAMAgsLAkACQAJAQQAtAImKASIHQQZ0QQBBAC0AiIoBIhFrRg0AIAEgEToAaCABQQApA4CKATcDYCABQQApA/iJATcDWCABQQApA/CJATcDUCABQQApA+iJATcDSCABQQApA+CJATcDQCABQQApA9iJATcDOCABQQApA9CJATcDMCABQQApA8iJATcDKCABQQApA8CJASIINwMgIAFBACkDuIkBIgM3AxggAUEAKQOwiQEiBDcDECABQQApA6iJASIFNwMIIAFBACkDoIkBIgY3AwAgAUEALQCKigEiEyAHRXJBAnIiCzoAaSATQQRyIRNBACkDmIkBIQ1BACkDkIkBIQ5BACkDiIkBIQ9BACkDgIkBIRAMAQtBwAAhESABQcAAOgBoQgAhCCABQgA3AyAgAUEAKQOYiQEiDTcDGCABQQApA5CJASIONwMQIAFBACkDiIkBIg83AwggAUEAKQOAiQEiEDcDACABQQAtAIqKAUEEciITOgBpIAEgAkF+aiICQQV0IgdByYoBaikDADcDYCABIAdBwYoBaikDADcDWCABIAdBuYoBaikDADcDUCABIAdBsYoBaikDADcDSCABIAdBqYoBaikDADcDQCABIAdBoYoBaikDADcDOCABIAdBmYoBaikDADcDMCABIAdBkYoBaikDADcDKCATIQsgECEGIA8hBSAOIQQgDSEDIAJFDQELIAJBf2oiB0EFdCIUQZGKAWopAwAhFSAUQZmKAWopAwAhFiAUQaGKAWopAwAhFyAUQamKAWopAwAhGCABIAM3A4gBIAEgBDcDgAEgASAFNwN4IAEgBjcDcCABQbABaiABQfAAaiABQShqIhQgESAIIAtB/wFxEAIgASATOgBpIAFBwAA6AGggASAYNwNAIAEgFzcDOCABIBY3AzAgASAVNwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggB0UNACACQQV0QemJAWohAiATQf8BcSERA0AgAkFoaikDACEIIAJBcGopAwAhAyACQXhqKQMAIQQgAikDACEFIAEgDTcDiAEgASAONwOAASABIA83A3ggASAQNwNwIAFBsAFqIAFB8ABqIBRBwABCACAREAIgASATOgBpIAFBwAA6AGggASAFNwNAIAEgBDcDOCABIAM3AzAgASAINwMoIAFCADcDICABIA03AxggASAONwMQIAEgDzcDCCABIBA3AwAgASABKQPoASABKQPIAYU3A2AgASABKQPgASABKQPAAYU3A1ggASABKQPYASABKQO4AYU3A1AgASABKQPQASABKQOwAYU3A0ggAkFgaiECIAdBf2oiBw0ACwsgAUEoaiEJQgAhCEGACSELIBNBCHJB/wFxIQoDQCABQbABaiABIAlBwAAgCCAKEAIgASABKQPQASIDIAEpA7ABhTcDcCABIAEpA9gBIgQgASkDuAGFNwN4IAEgASkD4AEiBSABKQPAAYU3A4ABIAEgDSABKQPoASIGhTcDqAEgASAOIAWFNwOgASABIA8gBIU3A5gBIAEgECADhTcDkAEgASAGIAEpA8gBhTcDiAEgAEHAACAAQcAASRsiEUF/aiESAkACQCARQQdxIhMNACABQfAAaiECIAshByARIRQMAQsgEUH4AHEhFCABQfAAaiECIAshBwNAIAcgAi0AADoAACAHQQFqIQcgAkEBaiECIBNBf2oiEw0ACwsCQCASQQdJDQADQCAHIAIpAAA3AAAgB0EIaiEHIAJBCGohAiAUQXhqIhQNAAsLIAhCAXwhCCALIBFqIQsgACARayIADQALCyABQfABaiQAC6MCAQR+AkACQCAAQSBGDQBCq7OP/JGjs/DbACEBQv+kuYjFkdqCm38hAkLy5rvjo6f9p6V/IQNC58yn0NbQ67O7fyEEQQAhAAwBC0EAKQOYCSEBQQApA5AJIQJBACkDiAkhA0EAKQOACSEEQRAhAAtBACAAOgCKigFBAEIANwOAigFBAEIANwP4iQFBAEIANwPwiQFBAEIANwPoiQFBAEIANwPgiQFBAEIANwPYiQFBAEIANwPQiQFBAEIANwPIiQFBAEIANwPAiQFBACABNwO4iQFBACACNwOwiQFBACADNwOoiQFBACAENwOgiQFBACABNwOYiQFBACACNwOQiQFBACADNwOIiQFBACAENwOAiQFBAEEAOgCQigFBAEEAOwGIigELBgAgABADCwYAIAAQBwsGAEGAiQELqwIBBH4CQAJAIAFBIEYNAEKrs4/8kaOz8NsAIQNC/6S5iMWR2oKbfyEEQvLmu+Ojp/2npX8hBULnzKfQ1tDrs7t/IQZBACEBDAELQQApA5gJIQNBACkDkAkhBEEAKQOICSEFQQApA4AJIQZBECEBC0EAIAE6AIqKAUEAQgA3A4CKAUEAQgA3A/iJAUEAQgA3A/CJAUEAQgA3A+iJAUEAQgA3A+CJAUEAQgA3A9iJAUEAQgA3A9CJAUEAQgA3A8iJAUEAQgA3A8CJAUEAIAM3A7iJAUEAIAQ3A7CJAUEAIAU3A6iJAUEAIAY3A6CJAUEAIAM3A5iJAUEAIAQ3A5CJAUEAIAU3A4iJAUEAIAY3A4CJAUEAQQA6AJCKAUEAQQA7AYiKASAAEAMgAhAHCwsLAQBBgAgLBHgHAAA=",yn="215d875f",Le={name:Lr,data:Ln,hash:yn};let ic=new o,$i=null;function ko(S){return!Number.isInteger(S)||S<8||S%8!==0?new Error("Invalid variant! Valid values: 8, 16, ..."):null}function Ri(S,q=256,M=null){if(ko(q))return Promise.reject(ko(q));let Y=null,ie=0;if(M!==null){if(Y=B(M),Y.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));ie=32}let ae=q/8,ge=ae;if($i===null||$i.hashLength!==ae)return E(ic,Le,ae).then(xe=>($i=xe,ie===32&&$i.writeMemory(Y),$i.calculate(S,ie,ge)));try{ie===32&&$i.writeMemory(Y);let xe=$i.calculate(S,ie,ge);return Promise.resolve(xe)}catch(xe){return Promise.reject(xe)}}function A(S=256,q=null){if(ko(S))return Promise.reject(ko(S));let M=null,Y=0;if(q!==null){if(M=B(q),M.length!==32)return Promise.reject(new Error("Key length must be exactly 32 bytes"));Y=32}let ie=S/8,ae=ie;return v(Le,ie).then(ge=>{Y===32&&ge.writeMemory(M),ge.init(Y);let xe={init:Y===32?()=>(ge.writeMemory(M),ge.init(Y),xe):()=>(ge.init(Y),xe),update:Je=>(ge.update(Je),xe),digest:Je=>ge.digest(Je,ae),save:()=>ge.save(),load:Je=>(ge.load(Je),xe),blockSize:64,digestSize:ie};return xe})}var k="crc32",O="AGFzbQEAAAABEQRgAAF/YAF/AGAAAGACf38AAwgHAAEBAQIAAwUEAQECAgYOAn8BQZDJBQt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAgtIYXNoX1VwZGF0ZQADCkhhc2hfRmluYWwABA1IYXNoX0dldFN0YXRlAAUOSGFzaF9DYWxjdWxhdGUABgpTVEFURV9TSVpFAwEKkggHBQBBgAkLwwMBA39BgIkBIQFBACECA0AgAUEAQQBBAEEAQQBBAEEAQQAgAkEBcWsgAHEgAkEBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnMiA0EBcWsgAHEgA0EBdnM2AgAgAUEEaiEBIAJBAWoiAkGAAkcNAAtBACEAA0AgAEGEkQFqIABBhIkBaigCACICQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEmQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYShAWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhKkBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzIgI2AgAgAEGEsQFqIAJB/wFxQQJ0QYCJAWooAgAgAkEIdnMiAjYCACAAQYS5AWogAkH/AXFBAnRBgIkBaigCACACQQh2cyICNgIAIABBhMEBaiACQf8BcUECdEGAiQFqKAIAIAJBCHZzNgIAIABBBGoiAEH8B0cNAAsLJwACQEEAKAKAyQEgAEYNACAAEAFBACAANgKAyQELQQBBADYChMkBC4gDAQN/QQAoAoTJAUF/cyEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAJBBGooAgAiA0EOdkH8B3FBgJEBaigCACADQRZ2QfwHcUGAiQFqKAIAcyADQQZ2QfwHcUGAmQFqKAIAcyADQf8BcUECdEGAoQFqKAIAcyACKAIAIAFzIgFBFnZB/AdxQYCpAWooAgBzIAFBDnZB/AdxQYCxAWooAgBzIAFBBnZB/AdxQYC5AWooAgBzIAFB/wFxQQJ0QYDBAWooAgBzIQEgAkEIaiECIABBeGoiAEEHSw0ACwsCQCAARQ0AAkACQCAAQQFxDQAgACEDDAELIAFB/wFxIAItAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQFqIQIgAEF/aiEDCyAAQQFGDQADQCABQf8BcSACLQAAc0ECdEGAiQFqKAIAIAFBCHZzIgFB/wFxIAJBAWotAABzQQJ0QYCJAWooAgAgAUEIdnMhASACQQJqIQIgA0F+aiIDDQALC0EAIAFBf3M2AoTJAQsyAQF/QQBBACgChMkBIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyNgKACQsGAEGEyQELWQACQEEAKAKAyQEgAUYNACABEAFBACABNgKAyQELQQBBADYChMkBIAAQA0EAQQAoAoTJASIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCgAkLCwsBAEGACAsEBAAAAA==",V="d2eba587",H={name:k,data:O,hash:V};let W=new o,ue=null;function Re(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Polynomial must be a valid 32-bit long unsigned integer"):null}function Ve(S,q=3988292384){if(Re(q))return Promise.reject(Re(q));if(ue===null)return E(W,H,4).then(M=>(ue=M,ue.calculate(S,q)));try{let M=ue.calculate(S,q);return Promise.resolve(M)}catch(M){return Promise.reject(M)}}function Ie(S=3988292384){return Re(S)?Promise.reject(Re(S)):v(H,4).then(q=>{q.init(S);let M={init:()=>(q.init(S),M),update:Y=>(q.update(Y),M),digest:Y=>q.digest(Y),save:()=>q.save(),load:Y=>(q.load(Y),M),blockSize:4,digestSize:4};return M})}var Fe="crc64",In="AGFzbQEAAAABDANgAAF/YAAAYAF/AAMHBgABAgEAAQUEAQECAgYOAn8BQZCJBgt/AEGACAsHcAgGbWVtb3J5AgAOSGFzaF9HZXRCdWZmZXIAAAlIYXNoX0luaXQAAQtIYXNoX1VwZGF0ZQACCkhhc2hfRmluYWwAAw1IYXNoX0dldFN0YXRlAAQOSGFzaF9DYWxjdWxhdGUABQpTVEFURV9TSVpFAwEKgwgGBQBBgAkL9QMDAX4BfwJ+AkBBACkDgIkCQQApA4AJIgBRDQBBgIkBIQFCACECA0AgAUIAQgBCAEIAQgBCAEIAQgAgAkIBg30gAIMgAkIBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIUiA0IBg30gAIMgA0IBiIU3AwAgAUEIaiEBIAJCAXwiAkKAAlINAAtBACEBA0AgAUGImQFqIAFBiIkBaikDACICp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiKkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiLkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiMkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiNkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiOkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhSICNwMAIAFBiPkBaiACp0H/AXFBA3RBgIkBaikDACACQgiIhTcDACABQQhqIgFB+A9HDQALQQAgADcDgIkCC0EAQgA3A4iJAguUAwIBfgJ/QQApA4iJAkJ/hSEBQYAJIQICQCAAQQhJDQBBgAkhAgNAIAIpAwAgAYUiAUIwiKdB/wFxQQN0QYCZAWopAwAgAUI4iKdBA3RBgIkBaikDAIUgAUIoiKdB/wFxQQN0QYCpAWopAwCFIAFCIIinQf8BcUEDdEGAuQFqKQMAhSABpyIDQRV2QfgPcUGAyQFqKQMAhSADQQ12QfgPcUGA2QFqKQMAhSADQQV2QfgPcUGA6QFqKQMAhSADQf8BcUEDdEGA+QFqKQMAhSEBIAJBCGohAiAAQXhqIgBBB0sNAAsLAkAgAEUNAAJAAkAgAEEBcQ0AIAAhAwwBCyABQv8BgyACMQAAhadBA3RBgIkBaikDACABQgiIhSEBIAJBAWohAiAAQX9qIQMLIABBAUYNAANAIAFC/wGDIAIxAACFp0EDdEGAiQFqKQMAIAFCCIiFIgFC/wGDIAJBAWoxAACFp0EDdEGAiQFqKQMAIAFCCIiFIQEgAkECaiECIANBfmoiAw0ACwtBACABQn+FNwOIiQILZAEBfkEAQQApA4iJAiIAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISENwOACQsGAEGIiQILAgALCwsBAEGACAsECAAAAA==",ks="c5ac6c16",Ss={name:Fe,data:In,hash:ks};let Ds=new o,Vi=null,Hn=new Uint8Array(8);function B0(S){let q="Polynomial must be provided as a 16 char long hex string";if(typeof S!="string"||S.length!==16)return{hi:0,lo:0,err:new Error(q)};let M=+`0x${S.slice(0,8)}`,Y=+`0x${S.slice(8)}`;return Number.isNaN(M)||Number.isNaN(Y)?{hi:M,lo:Y,err:new Error(q)}:{hi:M,lo:Y,err:null}}function ku(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function yx(S,q="c96c5795d7870f42"){let{hi:M,lo:Y,err:ie}=B0(q);if(ie!==null)return Promise.reject(ie);if(Vi===null)return E(Ds,Ss,8).then(ae=>(Vi=ae,ku(Hn.buffer,Y,M),Vi.writeMemory(Hn),Vi.calculate(S)));try{ku(Hn.buffer,Y,M),Vi.writeMemory(Hn);let ae=Vi.calculate(S);return Promise.resolve(ae)}catch(ae){return Promise.reject(ae)}}function Ix(S="c96c5795d7870f42"){let{hi:q,lo:M,err:Y}=B0(S);return Y!==null?Promise.reject(Y):v(Ss,8).then(ie=>{let ae=new Uint8Array(8);ku(ae.buffer,M,q),ie.writeMemory(ae),ie.init();let ge={init:()=>(ie.writeMemory(ae),ie.init(),ge),update:xe=>(ie.update(xe),ge),digest:xe=>ie.digest(xe),save:()=>ie.save(),load:xe=>(ie.load(xe),ge),blockSize:8,digestSize:8};return ge})}var he="md4",Ze="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",Hr="bd8ce7c7",wn={name:he,data:Ze,hash:Hr};let wx=new o,b0=null;function JM(S){if(b0===null)return E(wx,wn,16).then(q=>(b0=q,b0.calculate(S)));try{let q=b0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function jM(){return v(wn,16).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:16};return q})}var $M="md5",VM="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",YM="e6508e4b",Gv={name:$M,data:VM,hash:YM};let WM=new o,v0=null;function XM(S){if(v0===null)return E(WM,Gv,16).then(q=>(v0=q,v0.calculate(S)));try{let q=v0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function ZM(){return v(Gv,16).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:16};return q})}var eL="sha1",tL="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",rL="6b530c24",zv={name:eL,data:tL,hash:rL};let iL=new o,k0=null;function nL(S){if(k0===null)return E(iL,zv,20).then(q=>(k0=q,k0.calculate(S)));try{let q=k0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function sL(){return v(zv,20).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:20};return q})}var oL="sha3",aL="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",cL="fb24e536",S0={name:oL,data:aL,hash:cL};let lL=new o,Su=null;function D0(S){return[224,256,384,512].includes(S)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function dL(S,q=512){if(D0(q))return Promise.reject(D0(q));let M=q/8;if(Su===null||Su.hashLength!==M)return E(lL,S0,M).then(Y=>(Su=Y,Su.calculate(S,q,6)));try{let Y=Su.calculate(S,q,6);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function uL(S=512){if(D0(S))return Promise.reject(D0(S));let q=S/8;return v(S0,q).then(M=>{M.init(S);let Y={init:()=>(M.init(S),Y),update:ie=>(M.update(ie),Y),digest:ie=>M.digest(ie,6),save:()=>M.save(),load:ie=>(M.load(ie),Y),blockSize:200-2*q,digestSize:q};return Y})}let fL=new o,Du=null;function Q0(S){return[224,256,384,512].includes(S)?null:new Error("Invalid variant! Valid values: 224, 256, 384, 512")}function AL(S,q=512){if(Q0(q))return Promise.reject(Q0(q));let M=q/8;if(Du===null||Du.hashLength!==M)return E(fL,S0,M).then(Y=>(Du=Y,Du.calculate(S,q,1)));try{let Y=Du.calculate(S,q,1);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function hL(S=512){if(Q0(S))return Promise.reject(Q0(S));let q=S/8;return v(S0,q).then(M=>{M.init(S);let Y={init:()=>(M.init(S),Y),update:ie=>(M.update(ie),Y),digest:ie=>M.digest(ie,1),save:()=>M.save(),load:ie=>(M.load(ie),Y),blockSize:200-2*q,digestSize:q};return Y})}var gL="sha256",pL="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c2pBx6KerX1qIhkgASADcyACcSABIANxcyABQR53IAFBE3dzIAFBCndzaiAaaiICaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakHRxqk2aiIaIAIgAXMgA3EgAiABcXMgAkEedyACQRN3cyACQQp3c2ogGGoiA2oiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pB59KkoQFqIhggAyACcyABcSADIAJxcyADQR53IANBE3dzIANBCndzaiAUaiIBaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGFldy9AmoiFCABIANzIAJxIAEgA3FzIAFBHncgAUETd3MgAUEKd3NqIBdqIgJqIhMgI2ogJiASaiAiIBFqICUgCWogEyASIBFzcSARc2ogE0EadyATQRV3cyATQQd3c2pBuMLs8AJqIhcgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAZaiIDaiIJIBMgEnNxIBJzaiAJQRp3IAlBFXdzIAlBB3dzakH827HpBGoiGSADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBpqIgFqIhEgCSATc3EgE3NqIBFBGncgEUEVd3MgEUEHd3NqQZOa4JkFaiIaIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGGoiAmoiEiARIAlzcSAJc2ogEkEadyASQRV3cyASQQd3c2pB1OapqAZqIhggAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAUaiIDaiITaiAoIBJqICQgEWogJyAJaiATIBIgEXNxIBFzaiATQRp3IBNBFXdzIBNBB3dzakG7laizB2oiFCADIAJzIAFxIAMgAnFzIANBHncgA0ETd3MgA0EKd3NqIBdqIgFqIgkgEyASc3EgEnNqIAlBGncgCUEVd3MgCUEHd3NqQa6Si454aiIXIAEgA3MgAnEgASADcXMgAUEedyABQRN3cyABQQp3c2ogGWoiAmoiESAJIBNzcSATc2ogEUEadyARQRV3cyARQQd3c2pBhdnIk3lqIhkgAiABcyADcSACIAFxcyACQR53IAJBE3dzIAJBCndzaiAaaiIDaiISIBEgCXNxIAlzaiASQRp3IBJBFXdzIBJBB3dzakGh0f+VemoiGiADIAJz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",mL="8c18dd94",_0={name:gL,data:pL,hash:mL};let yL=new o,F0=null;function IL(S){if(F0===null)return E(yL,_0,28).then(q=>(F0=q,F0.calculate(S,224)));try{let q=F0.calculate(S,224);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function wL(){return v(_0,28).then(S=>{S.init(224);let q={init:()=>(S.init(224),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:28};return q})}let xL=new o,P0=null;function CL(S){if(P0===null)return E(xL,_0,32).then(q=>(P0=q,P0.calculate(S,256)));try{let q=P0.calculate(S,256);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function Jv(){return v(_0,32).then(S=>{S.init(256);let q={init:()=>(S.init(256),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:32};return q})}var EL="sha512",BL="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",bL="f2e40eb1",T0={name:EL,data:BL,hash:bL};let vL=new o,U0=null;function kL(S){if(U0===null)return E(vL,T0,48).then(q=>(U0=q,U0.calculate(S,384)));try{let q=U0.calculate(S,384);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function SL(){return v(T0,48).then(S=>{S.init(384);let q={init:()=>(S.init(384),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:128,digestSize:48};return q})}let DL=new o,R0=null;function QL(S){if(R0===null)return E(DL,T0,64).then(q=>(R0=q,R0.calculate(S,512)));try{let q=R0.calculate(S,512);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function _L(){return v(T0,64).then(S=>{S.init(512);let q={init:()=>(S.init(512),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:128,digestSize:64};return q})}var FL="xxhash32",PL="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",TL="4bb12485",jv={name:FL,data:PL,hash:TL};let UL=new o,N0=null;function q0(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be a valid 32-bit long unsigned integer."):null}function RL(S,q=0){if(q0(q))return Promise.reject(q0(q));if(N0===null)return E(UL,jv,4).then(M=>(N0=M,N0.calculate(S,q)));try{let M=N0.calculate(S,q);return Promise.resolve(M)}catch(M){return Promise.reject(M)}}function NL(S=0){return q0(S)?Promise.reject(q0(S)):v(jv,4).then(q=>{q.init(S);let M={init:()=>(q.init(S),M),update:Y=>(q.update(Y),M),digest:Y=>q.digest(Y),save:()=>q.save(),load:Y=>(q.load(Y),M),blockSize:16,digestSize:4};return M})}var qL="xxhash64",OL="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",ML="177fbfa3",$v={name:qL,data:OL,hash:ML};let LL=new o,Cl=null,O0=new Uint8Array(8);function So(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function xx(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function HL(S,q=0,M=0){if(So(q))return Promise.reject(So(q));if(So(M))return Promise.reject(So(M));if(Cl===null)return E(LL,$v,8).then(Y=>(Cl=Y,xx(O0.buffer,q,M),Cl.writeMemory(O0),Cl.calculate(S)));try{xx(O0.buffer,q,M),Cl.writeMemory(O0);let Y=Cl.calculate(S);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function KL(S=0,q=0){return So(S)?Promise.reject(So(S)):So(q)?Promise.reject(So(q)):v($v,8).then(M=>{let Y=new Uint8Array(8);xx(Y.buffer,S,q),M.writeMemory(Y),M.init();let ie={init:()=>(M.writeMemory(Y),M.init(),ie),update:ae=>(M.update(ae),ie),digest:ae=>M.digest(ae),save:()=>M.save(),load:ae=>(M.load(ae),ie),blockSize:32,digestSize:8};return ie})}var GL="xxhash3",zL="AGFzbQEAAAABNAhgAAF/YAR/f39/AGAHf39/f39/fwBgBH9+fn4BfmAEf39/fgF+YAN/f34BfmAAAGABfwADDg0AAQIDBAUFBQYHBgAGBQQBAQICBg4CfwFBwI4FC38AQcAJCwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACUhhc2hfSW5pdAAIC0hhc2hfVXBkYXRlAAkKSGFzaF9GaW5hbAAKDUhhc2hfR2V0U3RhdGUACw5IYXNoX0NhbGN1bGF0ZQAMClNUQVRFX1NJWkUDAQr6QQ0FAEGACgvkAwMPfgF/AX4CQCADRQ0AIAApAzAhBCAAKQM4IQUgACkDICEGIAApAyghByAAKQMQIQggACkDGCEJIAApAwAhCiAAKQMIIQsDQCAFIAFBMGopAwAiDHwgAkE4aikDACABQThqKQMAIg2FIgVCIIggBUL/////D4N+fCEFIAcgAUEgaikDACIOfCACQShqKQMAIAFBKGopAwAiD4UiB0IgiCAHQv////8Pg358IQcgCSABQRBqKQMAIhB8IAJBGGopAwAgAUEYaikDACIRhSIJQiCIIAlC/////w+DfnwhCSALIAEpAwAiEnwgAkEIaiITKQMAIAFBCGopAwAiFIUiC0IgiCALQv////8Pg358IQsgAkEwaikDACAMhSIMQiCIIAxC/////w+DfiAEfCANfCEEIAJBIGopAwAgDoUiDEIgiCAMQv////8Pg34gBnwgD3whBiACQRBqKQMAIBCFIgxCIIggDEL/////D4N+IAh8IBF8IQggAikDACAShSIMQiCIIAxC/////w+DfiAKfCAUfCEKIAFBwABqIQEgEyECIANBf2oiAw0ACyAAIAk3AxggACAKNwMAIAAgCzcDCCAAIAc3AyggACAINwMQIAAgBTcDOCAAIAY3AyAgACAENwMwCwveAgIBfwF+AkAgBCACIAEoAgAiB2siAkkNACAAIAMgBSAHQQN0aiACEAEgACAFIAZqIgcpAwAgACkDACIIQi+IhSAIhUKx893xCX43AwAgACAHKQMIIAApAwgiCEIviIUgCIVCsfPd8Ql+NwMIIAAgBykDECAAKQMQIghCL4iFIAiFQrHz3fEJfjcDECAAIAcpAxggACkDGCIIQi+IhSAIhUKx893xCX43AxggACAHKQMgIAApAyAiCEIviIUgCIVCsfPd8Ql+NwMgIAAgBykDKCAAKQMoIghCL4iFIAiFQrHz3fEJfjcDKCAAIAcpAzAgACkDMCIIQi+IhSAIhUKx893xCX43AzAgACAHKQM4IAApAzgiCEIviIUgCIVCsfPd8Ql+NwM4IAAgAyACQQZ0aiAFIAQgAmsiBxABIAEgBzYCAA8LIAAgAyAFIAdBA3RqIAQQASABIAcgBGo2AgALhQEBAX8gAiABhSADpyIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZycq1CIIYgA4V9QQA1AoCMAUIghiAAQfyLAWo1AgCEhSIDQjGJIANCGImFIAOFQqW+4/TRjIfZn39+IgNCI4ggAK18IAOFQqW+4/TRjIfZn39+IgNCHIggA4ULZwAgAiABc60gA3wiA0IhiEEALQCAjAFBEHQgAEEIdHIgAEEBdkGAjAFqLQAAQRh0ciAAQf+LAWotAAByrYUgA4VCz9bTvtLHq9lCfiIDQh2IIAOFQvnz3fGZ9pmrFn4iA0IgiCADhQuJAwEEfgJAIABBCUkNAEEAKQOAjAEgASkDICABKQMYhSACfIUiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhCAArXwgAEH4iwFqKQMAIAEpAzAgASkDKIUgAn2FIgJ8IAJC/////w+DIgQgA0IgiCIFfiIGQv////8PgyACQiCIIgIgA0L/////D4MiA358IAQgA34iA0IgiHwiBEIghiADQv////8Pg4QgBkIgiCACIAV+fCAEQiCIfIV8IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFDwsCQCAAQQRJDQAgACABQQhqKQMAIAFBEGopAwAgAhADDwsCQCAARQ0AIAAgASgCACABQQRqKAIAIAIQBA8LIAEpAzggASkDQIUgAoUiA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC94IAQZ+IACtQoeVr6+Ytt6bnn9+IQMCQCAAQSFJDQACQCAAQcEASQ0AAkAgAEHhAEkNACABKQNoIAJ9QQApA7iMAYUiBEL/////D4MiBSABKQNgIAJ8QQApA7CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDeCACfSAAQciLAWopAwCFIgNC/////w+DIgQgASkDcCACfCAAQcCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQNIIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQNAIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDWCACfSAAQdiLAWopAwCFIgNC/////w+DIgQgASkDUCACfCAAQdCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMoIAJ9QQApA5iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA5CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDOCACfSAAQeiLAWopAwCFIgNC/////w+DIgQgASkDMCACfCAAQeCLAWopAwCFIgVCIIgiBn4iB0L/////D4MgA0IgiCIDIAVC/////w+DIgV+fCAEIAV+IgRCIIh8IgVCIIYgBEL/////D4OEIAdCIIggAyAGfnwgBUIgiHyFfCEDCyABKQMIIAJ9QQApA4iMAYUiBEL/////D4MiBSABKQMAIAJ8QQApA4CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgA3wgASkDGCACfSAAQfiLAWopAwCFIgNC/////w+DIgQgASkDECACfCAAQfCLAWopAwCFIgJCIIgiBX4iBkL/////D4MgA0IgiCIDIAJC/////w+DIgJ+fCAEIAJ+IgJCIIh8IgRCIIYgAkL/////D4OEIAZCIIggAyAFfnwgBEIgiHyFfCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQv8CgQBfwV+An8BfkEAIQMgASkDeCACfUEAKQP4jAGFIgRC/////w+DIgUgASkDcCACfEEAKQPwjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpA2ggAn1BACkD6IwBhSIEQv////8PgyIFIAEpA2AgAnxBACkD4IwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQNYIAJ9QQApA9iMAYUiBEL/////D4MiBSABKQNQIAJ8QQApA9CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDSCACfUEAKQPIjAGFIgRC/////w+DIgUgASkDQCACfEEAKQPAjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAzggAn1BACkDuIwBhSIEQv////8PgyIFIAEpAzAgAnxBACkDsIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSABKQMoIAJ9QQApA6iMAYUiBEL/////D4MiBSABKQMgIAJ8QQApA6CMAYUiBkIgiCIHfiIIQv////8PgyAEQiCIIgQgBkL/////D4MiBn58IAUgBn4iBUIgiHwiBkIghiAFQv////8Pg4QgCEIgiCAEIAd+fCAGQiCIfIUgASkDGCACfUEAKQOYjAGFIgRC/////w+DIgUgASkDECACfEEAKQOQjAGFIgZCIIgiB34iCEL/////D4MgBEIgiCIEIAZC/////w+DIgZ+fCAFIAZ+IgVCIIh8IgZCIIYgBUL/////D4OEIAhCIIggBCAHfnwgBkIgiHyFIAEpAwggAn1BACkDiIwBhSIEQv////8PgyIFIAEpAwAgAnxBACkDgIwBhSIGQiCIIgd+IghC/////w+DIARCIIgiBCAGQv////8PgyIGfnwgBSAGfiIFQiCIfCIGQiCGIAVC/////w+DhCAIQiCIIAQgB358IAZCIIh8hSAArUKHla+vmLbem55/fnx8fHx8fHx8IgRCJYggBIVC+fPd8ZnymasWfiIEQiCIIASFIQQCQCAAQZABSA0AIABBBHZBeGohCQNAIAEgA2oiCkELaikDACACfSADQYiNAWopAwCFIgVC/////w+DIgYgCkEDaikDACACfCADQYCNAWopAwCFIgdCIIgiCH4iC0L/////D4MgBUIgiCIFIAdC/////w+DIgd+fCAGIAd+IgZCIIh8IgdCIIYgBkL/////D4OEIAtCIIggBSAIfnwgB0IgiHyFIAR8IQQgA0EQaiEDIAlBf2oiCQ0ACwsgASkDfyACfSAAQfiLAWopAwCFIgVC/////w+DIgYgASkDdyACfCAAQfCLAWopAwCFIgJCIIgiB34iCEL/////D4MgBUIgiCIFIAJC/////w+DIgJ+fCAGIAJ+IgJCIIh8IgZCIIYgAkL/////D4OEIAhCIIggBSAHfnwgBkIgiHyFIAR8IgJCJYggAoVC+fPd8ZnymasWfiICQiCIIAKFC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAA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QQApA4CKATcDACACQQApA4iKATcDCCACQQApA5CKATcDECACQQApA5iKATcDGCACQQApA6CKATcDICACQQApA6iKATcDKCACQQApA7CKASIFNwMwIAJBACkDuIoBIgY3AzgCQAJAQQAoAoCOASIHQcAASQ0AIAJBACgCiI4BNgJAIAIgAkHAAGpBACgCmI4BQYCMASAHQX9qQQZ2IANBACgCnI4BIgAQAiADIABqIgBBeWopAwAhCCAAKQMJIQkgACkDGSEKIAApAykhCyAHQcCLAWopAwAhBSAAKQMBIQwgB0HIiwFqKQMAIQYgB0HQiwFqKQMAIQ0gACkDESEOIAdB2IsBaikDACEPIAdB4IsBaikDACEQIAApAyEhESAHQeiLAWopAwAhEiACKQMAIRMgAikDECEUIAIpAyAhFSACKQMwIRYgAikDCCEXIAIpAxghGCACKQMoIRkgAiACKQM4IAdB8IsBaikDACIafCAAKQMxIAdB+IsBaikDACIbhSIcQiCIIBxC/////w+Dfnw3AzggGSAQfCARIBKFIhFCIIggEUL/////D4N+fCERIBggDXwgDiAPhSIOQiCIIA5C/////w+DfnwhDiAXIAV8IAwgBoUiDEIgiCAMQv////8Pg358IQwgGyAWIAsgGoUiC0IgiCALQv////8Pg358fCELIBIgFSAKIBCFIhBCIIggEEL/////D4N+fHwhECAPIBQgCSANhSINQiCIIA1C/////w+Dfnx8IRIgBiATIAggBYUiBUIgiCAFQv////8Pg358fCEIDAELIAdBwI0BaiEdQcAAIAdrIR4gAkHAAGohAAJAAkACQCAHQThNDQAgHiEfDAELAkACQEE4IAdrQQN2QQFqQQdxIh8NACACQcAAaiEAIB4hHwwBCyACQcAAaiEAIB9BA3QiICEfA0AgACAdKQMANwMAIABBCGohACAdQQhqIR0gH0F4aiIfDQALQcAAIAcgIGprIR8LAkAgBw0AA0AgACAdKQMANwMAIABBCGogHUEIaikDADcDACAAQRBqIB1BEGopAwA3AwAgAEEYaiAdQRhqKQMANwMAIABBIGogHUEgaikDADcDACAAQShqIB1BKGopAwA3AwAgAEEwaiAdQTBqKQMANwMAIABBOGogHUE4aikDADcDACAAQcAAaiEAIB1BwABqIR0gH0FAaiIfQQdLDQALCyAfRQ0BCyAfQX9qISECQCAfQQdxIiBFDQAgH0F4cSEfA0AgACAdLQAAOgAAIABBAWohACAdQQFqIR0gIEF/aiIgDQALCyAhQQdJDQADQCAAIB0pAAA3AAAgAEEIaiEAIB1BCGohHSAfQXhqIh8NAAsLIAJBwABqIB5qIR1BgIwBIQACQAJAAkAgB0EISQ0AAkAgB0E4akEDdkEBakEHcSIfDQAMAgsgH0EDdCEgQYCMASEAA0AgHSAAKQMANwMAIB1BCGohHSAAQQhqIQAgH0F/aiIfDQALIAcgIGshBwsgB0UNAQJAAkAgB0EHcSIgDQAgByEfDAELIAdBeHEhHwNAIB0gAC0AADoAACAdQQFqIR0gAEEBaiEAICBBf2oiIA0ACwsgB0EISQ0BCwNAIB0gACkAADcAACAdQQhqIR0gAEEIaiEAIB9BeGoiHw0ACwsgA0EAKAKcjgFqIgBBeWopAwAhCiAAKQMJIRMgACkDGSEUIAApAykhCyAAKQMBIQwgACkDESEOIAApAyEhESACKQMAIRUgAikDECEWIAIpAyAhFyACKQMIIRggAikDQCENIAIpA0ghDyACKQMYIRkgAikDUCESIAIpA1ghCCACKQMoIRogAikDYCEQIAIpA2ghCSACIAYgAikDcCIbfCAAKQMxIAIpA3giBoUiHEIgiCAcQv////8Pg358NwM4IBogEHwgESAJhSIRQiCIIBFC/////w+DfnwhESAZIBJ8IA4gCIUiDkIgiCAOQv////8Pg358IQ4gGCANfCAMIA+FIgxCIIggDEL/////D4N+fCEMIAYgCyAbhSILQiCIIAtC/////w+DfiAFfHwhCyAJIBcgFCAQhSIFQiCIIAVC/////w+Dfnx8IRAgCCAWIBMgEoUiBUIgiCAFQv////8Pg358fCESIA8gFSAKIA2FIgVCIIggBUL/////D4N+fHwhCAsgAykDQyACKQM4hSIFQv////8PgyIGIAMpAzsgC4UiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDMyARhSIFQv////8PgyIGIAMpAysgEIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDIyAOhSIFQv////8PgyIGIAMpAxsgEoUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgAykDEyAMhSIFQv////8PgyIGIAMpAwsgCIUiC0IgiCINfiIPQv////8PgyAFQiCIIgUgC0L/////D4MiC358IAYgC34iBkIgiHwiC0IghiAGQv////8Pg4QgD0IgiCAFIA1+fCALQiCIfIUgBEKHla+vmLbem55/fnx8fHwiBEIliCAEhUL5893xmfKZqxZ+IgRCIIggBIUhBAwBCyAEpyEAAkBBACkDoI4BIgRQDQACQCAAQRBLDQAgAEGACCAEEAUhBAwCCwJAIABBgAFLDQAgAEGACCAEEAYhBAwCCyAAQYAIIAQQByEEDAELAkAgAEEQSw0AIAAgA0IAEAUhBAwBCwJAIABBgAFLDQAgACADQgAQBiEEDAELIAAgA0IAEAchBAtBACAEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwOACiABJAALBgBBgIoBCwIACwvMAQEAQYAIC8QBuP5sOSOkS758AYEs9yGtHN7UbemDkJfbckCkpLezZx/LeeZOzMDleIJa0H3M/3IhuAhGdPdDJI7gNZDmgTomTDwoUruRwwDLiNBlixtTLqNxZEiXog35TjgZ70ap3qzYqPp2P+OcND/53LvHxwtPHYpR4EvNtFkxyJ9+ydl4c2TqxayDNNPrw8WBoP/6E2PrFw3dUbfw2knTFlUmKdRonisWvlh9R6H8j/i40XrQMc5FyzqPlRYEKK/X+8q7S0B+QAIAAA==",JL="5a2fbdbb",Vv={name:GL,data:zL,hash:JL};let jL=new o,El=null,M0=new Uint8Array(8);function Do(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function Cx(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function $L(S,q=0,M=0){if(Do(q))return Promise.reject(Do(q));if(Do(M))return Promise.reject(Do(M));if(El===null)return E(jL,Vv,8).then(Y=>(El=Y,Cx(M0.buffer,q,M),El.writeMemory(M0),El.calculate(S)));try{Cx(M0.buffer,q,M),El.writeMemory(M0);let Y=El.calculate(S);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function VL(S=0,q=0){return Do(S)?Promise.reject(Do(S)):Do(q)?Promise.reject(Do(q)):v(Vv,8).then(M=>{let Y=new Uint8Array(8);Cx(Y.buffer,S,q),M.writeMemory(Y),M.init();let ie={init:()=>(M.writeMemory(Y),M.init(),ie),update:ae=>(M.update(ae),ie),digest:ae=>M.digest(ae),save:()=>M.save(),load:ae=>(M.load(ae),ie),blockSize:512,digestSize:8};return ie})}var YL="xxhash128",WL="AGFzbQEAAAABKwdgAAF/YAR/f39/AGAHf39/f39/fwBgA39/fgF+YAR/f39+AGAAAGABfwADDQwAAQIDBAQEBQYFAAUFBAEBAgIGDgJ/AUHAjgULfwBBwAkLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAcLSGFzaF9VcGRhdGUACApIYXNoX0ZpbmFsAAkNSGFzaF9HZXRTdGF0ZQAKDkhhc2hfQ2FsY3VsYXRlAAsKU1RBVEVfU0laRQMBCqBNDAUAQYAKC+QDAw9+AX8BfgJAIANFDQAgACkDMCEEIAApAzghBSAAKQMgIQYgACkDKCEHIAApAxAhCCAAKQMYIQkgACkDACEKIAApAwghCwNAIAUgAUEwaikDACIMfCACQThqKQMAIAFBOGopAwAiDYUiBUIgiCAFQv////8Pg358IQUgByABQSBqKQMAIg58IAJBKGopAwAgAUEoaikDACIPhSIHQiCIIAdC/////w+DfnwhByAJIAFBEGopAwAiEHwgAkEYaikDACABQRhqKQMAIhGFIglCIIggCUL/////D4N+fCEJIAsgASkDACISfCACQQhqIhMpAwAgAUEIaikDACIUhSILQiCIIAtC/////w+DfnwhCyACQTBqKQMAIAyFIgxCIIggDEL/////D4N+IAR8IA18IQQgAkEgaikDACAOhSIMQiCIIAxC/////w+DfiAGfCAPfCEGIAJBEGopAwAgEIUiDEIgiCAMQv////8Pg34gCHwgEXwhCCACKQMAIBKFIgxCIIggDEL/////D4N+IAp8IBR8IQogAUHAAGohASATIQIgA0F/aiIDDQALIAAgCTcDGCAAIAo3AwAgACALNwMIIAAgBzcDKCAAIAg3AxAgACAFNwM4IAAgBjcDICAAIAQ3AzALC94CAgF/AX4CQCAEIAIgASgCACIHayICSQ0AIAAgAyAFIAdBA3RqIAIQASAAIAUgBmoiBykDACAAKQMAIghCL4iFIAiFQrHz3fEJfjcDACAAIAcpAwggACkDCCIIQi+IhSAIhUKx893xCX43AwggACAHKQMQIAApAxAiCEIviIUgCIVCsfPd8Ql+NwMQIAAgBykDGCAAKQMYIghCL4iFIAiFQrHz3fEJfjcDGCAAIAcpAyAgACkDICIIQi+IhSAIhUKx893xCX43AyAgACAHKQMoIAApAygiCEIviIUgCIVCsfPd8Ql+NwMoIAAgBykDMCAAKQMwIghCL4iFIAiFQrHz3fEJfjcDMCAAIAcpAzggACkDOCIIQi+IhSAIhUKx893xCX43AzggACADIAJBBnRqIAUgBCACayIHEAEgASAHNgIADwsgACADIAUgB0EDdGogBBABIAEgByAEajYCAAvtAwEFfiABKQM4IAApAziFIgNC/////w+DIgQgASkDMCAAKQMwhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMoIAApAyiFIgNC/////w+DIgQgASkDICAAKQMghSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMYIAApAxiFIgNC/////w+DIgQgASkDECAAKQMQhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSABKQMIIAApAwiFIgNC/////w+DIgQgASkDACAAKQMAhSIFQiCIIgZ+IgdC/////w+DIANCIIgiAyAFQv////8PgyIFfnwgBCAFfiIEQiCIfCIFQiCGIARC/////w+DhCAHQiCIIAMgBn58IAVCIIh8hSACfHx8fCICQiWIIAKFQvnz3fGZ8pmrFn4iAkIgiCAChQu6CAIFfgN/AkAgAUEJSQ0AIAAgAUH4iwFqKQMAIgQgAikDOCACKQMwhSADfIUiBUL/////D4NC95Svrwh+IAVCgICAgHCDfEEAKQOAjAEgAikDKCACKQMghSADfYUgBIUiA0IgiCIEQrHz3fEJfnwgBEKHla+vCH4iBEIgiHwgBEL/////D4MgA0L/////D4MiA0Kx893xCX58IANCh5Wvrwh+IgRCIIh8IgVCIIh8IgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQgBEL/////D4MgAUF/aq1CNoaEIAVCIIZ8hSIEQiCIIgVCz9bTvgJ+IgZC/////w+DIARC/////w+DIgRCvdzKlQx+fCAEQs/W074CfiIEQiCIfCIHQiCGIghCJYggCCAEQv////8Pg4SFQvnz3fGZ8pmrFn4iBEIgiCAEhTcDACAAIAVCvdzKlQx+IANCz9bTvtLHq9lCfnwgBkIgiHwgB0IgiHwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4U3AwgPCwJAIAFBBEkNACAAIAIpAxggAikDEIUgA6ciAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnKtQiCGIAOFfCABQfyLAWo1AgBCIIZBADUCgIwBhIUiA0IgiCIEIAFBAnRBh5Wvr3hqrSIFfiIGQiCIIARCsfPd8Ql+fCAGQv////8PgyADQv////8PgyIDQrHz3fEJfnwgAyAFfiIDQiCIfCIEQiCIfCAEQiCGIANC/////w+DhCIEQgGGfCIDQiWIIAOFQvnz3fGZ8pmrFn4iBUIgiCAFhTcDCCAAIANCA4ggBIUiA0IjiCADhUKlvuP00YyH2Z9/fiIDQhyIIAOFNwMADwsCQCABRQ0AIAAgAigCBCACKAIAc60gA3wiBEIhiEEALQCAjAFBEHQgAUEIdHIiCSABQQF2QYCMAWotAABBGHRyIgogAUH/iwFqLQAAIgFyIguthSAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMAIAAgAigCDCACKAIIc60gA30iA0IhiCABQRh0IAtBgP4DcUEIdHIgCUEIdkGA/gNxIApBGHZyckENd62FIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwgPCyAAIAIpA1AgAikDWIUgA4UiBEIhiCAEhULP1tO+0ser2UJ+IgRCHYggBIVC+fPd8Zn2masWfiIEQiCIIASFNwMIIAAgAikDQCACKQNIhSADhSIDQiGIIAOFQs/W077Sx6vZQn4iA0IdiCADhUL5893xmfaZqxZ+IgNCIIggA4U3AwALwwoBCn4gAa0iBEKHla+vmLbem55/fiEFAkACQCABQSFPDQBCACEGDAELQgAhBwJAIAFBwQBJDQBCACEHAkAgAUHhAEkNACACQfgAaikDACADfSABQciLAWopAwAiCIUiB0L/////D4MiCSACKQNwIAN8IAFBwIsBaikDACIKhSILQiCIIgx+Ig1CIIggB0IgiCIHIAx+fCANQv////8PgyAHIAtC/////w+DIgt+fCAJIAt+IgdCIIh8IglCIIh8QQApA7iMASILQQApA7CMASIMfIUgCUIghiAHQv////8Pg4SFIQcgAkHoAGopAwAgA30gC4UiCUL/////D4MiCyACKQNgIAN8IAyFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCALIAx+IgtCIIh8IgxCIIYgC0L/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAV8IAggCnyFIQULIAJB2ABqKQMAIAN9IAFB2IsBaikDACIIhSIJQv////8PgyIKIAIpA1AgA3wgAUHQiwFqKQMAIguFIgxCIIgiDX4iBkL/////D4MgCUIgiCIJIAxC/////w+DIgx+fCAKIAx+IgpCIIh8IgxCIIYgCkL/////D4OEIAZCIIggCSANfnwgDEIgiHyFIAd8QQApA6iMASIJQQApA6CMASIKfIUhByACQcgAaikDACADfSAJhSIJQv////8PgyIMIAIpA0AgA3wgCoUiCkIgiCINfiIGQv////8PgyAJQiCIIgkgCkL/////D4MiCn58IAwgCn4iCkIgiHwiDEIghiAKQv////8Pg4QgBkIgiCAJIA1+fCAMQiCIfIUgBXwgCCALfIUhBQsgAkE4aikDACADfSABQeiLAWopAwAiCIUiCUL/////D4MiCiACKQMwIAN8IAFB4IsBaikDACILhSIMQiCIIg1+IgZC/////w+DIAlCIIgiCSAMQv////8PgyIMfnwgCiAMfiIKQiCIfCIMQiCGIApC/////w+DhCAGQiCIIAkgDX58IAxCIIh8hSAHfEEAKQOYjAEiB0EAKQOQjAEiCXyFIQYgAkEoaikDACADfSAHhSIHQv////8PgyIKIAIpAyAgA3wgCYUiCUIgiCIMfiINQv////8PgyAHQiCIIgcgCUL/////D4MiCX58IAogCX4iCUIgiHwiCkIghiAJQv////8Pg4QgDUIgiCAHIAx+fCAKQiCIfIUgBXwgCCALfIUhBQsgACACQRhqKQMAIAN9IAFB+IsBaikDACIHhSIIQv////8PgyIJIAIpAxAgA3wgAUHwiwFqKQMAIgqFIgtCIIgiDH4iDUL/////D4MgCEIgiCIIIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAZ8QQApA4iMASIIQQApA4CMASIJfIUiCyACQQhqKQMAIAN9IAiFIghC/////w+DIgwgAikDACADfCAJhSIJQiCIIg1+IgZC/////w+DIAhCIIgiCCAJQv////8PgyIJfnwgDCAJfiIJQiCIfCIMQiCGIAlC/////w+DhCAGQiCIIAggDX58IAxCIIh8hSAFfCAHIAp8hSIFfCIHQiWIIAeFQvnz3fGZ8pmrFn4iB0IgiCAHhTcDACAAQgAgBUKHla+vmLbem55/fiAEIAN9Qs/W077Sx6vZQn58IAtC49zKlfzO8vWFf358IgNCJYggA4VC+fPd8ZnymasWfiIDQiCIIAOFfTcDCAuhDwMBfxR+An9BACEEIAJB+ABqKQMAIAN9QQApA/iMASIFhSIGQv////8PgyIHIAIpA3AgA3xBACkD8IwBIgiFIglCIIgiCn4iC0L/////D4MgBkIgiCIGIAlC/////w+DIgl+fCAHIAl+IgdCIIh8IglCIIYgB0L/////D4OEIAtCIIggBiAKfnwgCUIgiHyFIAJB2ABqKQMAIAN9QQApA9iMASIHhSIGQv////8PgyIJIAIpA1AgA3xBACkD0IwBIgqFIgtCIIgiDH4iDUL/////D4MgBkIgiCIGIAtC/////w+DIgt+fCAJIAt+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAJBOGopAwAgA31BACkDuIwBIgmFIgZC/////w+DIgsgAikDMCADfEEAKQOwjAEiDIUiDUIgiCIOfiIPQv////8PgyAGQiCIIgYgDUL/////D4MiDX58IAsgDX4iC0IgiHwiDUIghiALQv////8Pg4QgD0IgiCAGIA5+fCANQiCIfIUgAkEYaikDACADfUEAKQOYjAEiC4UiBkL/////D4MiDSACKQMQIAN8QQApA5CMASIOhSIPQiCIIhB+IhFC/////w+DIAZCIIgiBiAPQv////8PgyIPfnwgDSAPfiINQiCIfCIPQiCGIA1C/////w+DhCARQiCIIAYgEH58IA9CIIh8hUEAKQOIjAEiDUEAKQOAjAEiD3yFfEEAKQOojAEiEEEAKQOgjAEiEXyFfEEAKQPIjAEiEkEAKQPAjAEiE3yFfEEAKQPojAEiFEEAKQPgjAEiFXyFIgZCJYggBoVC+fPd8ZnymasWfiIGQiCIIAaFIQYgAkHoAGopAwAgA30gFIUiFEL/////D4MiFiACKQNgIAN8IBWFIhVCIIgiF34iGEL/////D4MgFEIgiCIUIBVC/////w+DIhV+fCAWIBV+IhVCIIh8IhZCIIYgFUL/////D4OEIBhCIIggFCAXfnwgFkIgiHyFIAJByABqKQMAIAN9IBKFIhJC/////w+DIhQgAikDQCADfCAThSITQiCIIhV+IhZC/////w+DIBJCIIgiEiATQv////8PgyITfnwgFCATfiITQiCIfCIUQiCGIBNC/////w+DhCAWQiCIIBIgFX58IBRCIIh8hSACQShqKQMAIAN9IBCFIhBC/////w+DIhIgAikDICADfCARhSIRQiCIIhN+IhRC/////w+DIBBCIIgiECARQv////8PgyIRfnwgEiARfiIRQiCIfCISQiCGIBFC/////w+DhCAUQiCIIBAgE358IBJCIIh8hSACQQhqKQMAIAN9IA2FIg1C/////w+DIhAgAikDACADfCAPhSIPQiCIIhF+IhJC/////w+DIA1CIIgiDSAPQv////8PgyIPfnwgECAPfiIPQiCIfCIQQiCGIA9C/////w+DhCASQiCIIA0gEX58IBBCIIh8hSABrSIPQoeVr6+Ytt6bnn9+fCALIA58hXwgCSAMfIV8IAcgCnyFfCAFIAh8hSIFQiWIIAWFQvnz3fGZ8pmrFn4iBUIgiCAFhSEFAkAgAUGgAUgNACABQQV2QXxqIRkDQCACIARqIhpBG2opAwAgA30gBEGYjQFqKQMAIgeFIghC/////w+DIgkgGkETaikDACADfCAEQZCNAWopAwAiCoUiC0IgiCIMfiINQv////8PgyAIQiCIIgggC0L/////D4MiC358IAkgC34iCUIgiHwiC0IghiAJQv////8Pg4QgDUIgiCAIIAx+fCALQiCIfIUgBnwgBEGIjQFqKQMAIgggBEGAjQFqKQMAIgl8hSEGIBpBC2opAwAgA30gCIUiCEL/////D4MiCyAaQQNqKQMAIAN8IAmFIglCIIgiDH4iDUL/////D4MgCEIgiCIIIAlC/////w+DIgl+fCALIAl+IglCIIh8IgtCIIYgCUL/////D4OEIA1CIIggCCAMfnwgC0IgiHyFIAV8IAcgCnyFIQUgBEEgaiEEIBlBf2oiGQ0ACwsgACACQf8AaikDACADfCABQeiLAWopAwAiB4UiCEL/////D4MiCSACKQN3IAN9IAFB4IsBaikDACIKhSILQiCIIgx+Ig1C/////w+DIAhCIIgiCCALQv////8PgyILfnwgCSALfiIJQiCIfCILQiCGIAlC/////w+DhCANQiCIIAggDH58IAtCIIh8hSAGfCABQfiLAWopAwAiBiABQfCLAWopAwAiCHyFIgkgAkHvAGopAwAgA3wgBoUiBkL/////D4MiCyACKQNnIAN9IAiFIghCIIgiDH4iDUL/////D4MgBkIgiCIGIAhC/////w+DIgh+fCALIAh+IghCIIh8IgtCIIYgCEL/////D4OEIA1CIIggBiAMfnwgC0IgiHyFIAV8IAcgCnyFIgZ8IgVCJYggBYVC+fPd8ZnymasWfiIFQiCIIAWFNwMAIABCACAGQoeVr6+Ytt6bnn9+IA8gA31Cz9bTvtLHq9lCfnwgCULj3MqV/M7y9YV/fnwiA0IliCADhUL5893xmfKZqxZ+IgNCIIggA4V9NwMIC98FAgF+AX8CQAJAQQApA4AKIgBQRQ0AQYAIIQFCACEADAELAkBBACkDoI4BIABSDQBBACEBDAELQQAhAUEAQq+v79e895Kg/gAgAH03A/iLAUEAIABCxZbr+djShYIofDcD8IsBQQBCj/Hjja2P9JhOIAB9NwPoiwFBACAAQqus+MXV79HQfHw3A+CLAUEAQtOt1LKShbW0nn8gAH03A9iLAUEAIABCl5r0jvWWvO3JAHw3A9CLAUEAQsWDgv2v/8SxayAAfTcDyIsBQQAgAELqi7OdyOb09UN8NwPAiwFBAELIv/rLnJveueQAIAB9NwO4iwFBACAAQoqjgd/Ume2sMXw3A7CLAUEAQvm57738+MKnHSAAfTcDqIsBQQAgAEKo9dv7s5ynmj98NwOgiwFBAEK4sry3lNW31lggAH03A5iLAUEAIABC8cihuqm0w/zOAHw3A5CLAUEAQoihl9u445SXo38gAH03A4iL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AkHAAGogDGohC0GAjAEhAAJAAkACQCAHQQhJDQACQCAHQThqQQN2QQFqQQdxIg0NAAwCCyANQQN0IQ5BgIwBIQADQCALIAApAwA3AwAgC0EIaiELIABBCGohACANQX9qIg0NAAsgByAOayEHCyAHRQ0BAkACQCAHQQdxIg4NACAHIQ0MAQsgB0F4cSENA0AgCyAALQAAOgAAIAtBAWohCyAAQQFqIQAgDkF/aiIODQALCyAHQQhJDQELA0AgCyAAKQAANwAAIAtBCGohCyAAQQhqIQAgDUF4aiINDQALCyACIAIpAwggAikDQCIIfCADQQAoApyOAWoiACkDASACKQNIIgmFIgpCIIggCkL/////D4N+fDcDCCACIAIpAxggAikDUCIKfCAAKQMRIAIpA1giEIUiEUIgiCARQv////8Pg358NwMYIAIgECAKIAApAwmFIgpCIIggCkL/////D4N+IAIpAxB8fDcDECACIAkgCCAAQXlqKQMAhSIIQiCIIAhC/////w+DfiACKQMAfHw3AwAgACkDGSEIIAIpAyAhCSACIAIpAyggAikDYCIKfCAAKQMhIAIpA2giEIUiEUIgiCARQv////8Pg358NwMoIAIgECAJIAggCoUiCEIgiCAIQv////8Pg358fDcDICACIAYgAikDcCIIfCAAKQMxIAIpA3giBoUiCUIgiCAJQv////8Pg358NwM4IAIgBiAIIAApAymFIghCIIggCEL/////D4N+IAV8fDcDMAsgAiACIANBC2ogBEKHla+vmLbem55/fhADNwNAIAIgAiADQQAoApyOAWpBdWogBELP1tO+0ser2UJ+Qn+FEAM3A0gMAQsgBKchAAJAQQApA6COASIEUA0AAkAgAEEQSw0AIAJBwABqIABBgAggBBAEDAILAkAgAEGAAUsNACACQcAAaiAAQYAIIAQQBQwCCyACQcAAaiAAQYAIIAQQBgwBCwJAIABBEEsNACACQcAAaiAAIANCABAEDAELAkAgAEGAAUsNACACQcAAaiAAIANCABAFDAELIAJBwABqIAAgA0IAEAYLQQAgAikDcDcDuApBACACKQNgNwOoCkEAIAIpA1A3A5gKQQAgAkH4AGopAwA3A8AKQQAgAkHoAGopAwA3A7AKQQAgAkHYAGopAwA3A6AKQQAgAikDSCIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISEIgQ3A4AKQQAgBDcDkApBACACKQNAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3A4gKIAEkAAsGAEGAigELAgALC8wBAQBBgAgLxAG4/mw5I6RLvnwBgSz3Ia0c3tRt6YOQl9tyQKSkt7NnH8t55k7MwOV4glrQfcz/ciG4CEZ090MkjuA1kOaBOiZMPChSu5HDAMuI0GWLG1Muo3FkSJeiDflOOBnvRqnerNio+nY/45w0P/ncu8fHC08dilHgS820WTHIn37J2XhzZOrFrIM00+vDxYGg//oTY+sXDd1Rt/DaSdMWVSYp1GieKxa+WH1HofyP+LjRetAxzkXLOo+VFgQor9f7yrtLQH5AAgAA",XL="b9ab74e2",Yv={name:YL,data:WL,hash:XL};let ZL=new o,Bl=null,L0=new Uint8Array(8);function Qo(S){return!Number.isInteger(S)||S<0||S>4294967295?new Error("Seed must be given as two valid 32-bit long unsigned integers (lo + high)."):null}function Ex(S,q,M){let Y=new DataView(S);Y.setUint32(0,q,!0),Y.setUint32(4,M,!0)}function eH(S,q=0,M=0){if(Qo(q))return Promise.reject(Qo(q));if(Qo(M))return Promise.reject(Qo(M));if(Bl===null)return E(ZL,Yv,16).then(Y=>(Bl=Y,Ex(L0.buffer,q,M),Bl.writeMemory(L0),Bl.calculate(S)));try{Ex(L0.buffer,q,M),Bl.writeMemory(L0);let Y=Bl.calculate(S);return Promise.resolve(Y)}catch(Y){return Promise.reject(Y)}}function tH(S=0,q=0){return Qo(S)?Promise.reject(Qo(S)):Qo(q)?Promise.reject(Qo(q)):v(Yv,16).then(M=>{let Y=new Uint8Array(8);Ex(Y.buffer,S,q),M.writeMemory(Y),M.init();let ie={init:()=>(M.writeMemory(Y),M.init(),ie),update:ae=>(M.update(ae),ie),digest:ae=>M.digest(ae),save:()=>M.save(),load:ae=>(M.load(ae),ie),blockSize:512,digestSize:16};return ie})}var rH="ripemd160",iH="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",nH="6abbce74",Wv={name:rH,data:iH,hash:nH};let sH=new o,H0=null;function oH(S){if(H0===null)return E(sH,Wv,20).then(q=>(H0=q,H0.calculate(S)));try{let q=H0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function aH(){return v(Wv,20).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:20};return q})}function cH(S,q){let{blockSize:M}=S,Y=B(q);if(Y.length>M){S.update(Y);let ie=S.digest("binary");return S.init(),ie}return new Uint8Array(Y.buffer,Y.byteOffset,Y.length)}function lH(S,q){S.init();let{blockSize:M}=S,Y=cH(S,q),ie=new Uint8Array(M);ie.set(Y);let ae=new Uint8Array(M);for(let xe=0;xe<M;xe++){let Je=ie[xe];ae[xe]=Je^92,ie[xe]=Je^54}S.update(ie);let ge={init:()=>(S.init(),S.update(ie),ge),update:xe=>(S.update(xe),ge),digest:(xe=>{let Je=S.digest("binary");return S.init(),S.update(ae),S.update(Je),S.digest(xe)}),save:()=>{throw new Error("save() not supported")},load:()=>{throw new Error("load() not supported")},blockSize:S.blockSize,digestSize:S.digestSize};return ge}function Xv(S,q){if(!S||!S.then)throw new Error('Invalid hash function is provided! Usage: createHMAC(createMD5(), "key").');return S.then(M=>lH(M,q))}function dH(S,q,M,Y,ie){return s(this,void 0,void 0,function*(){let ae=new Uint8Array(Y),ge=new Uint8Array(q.length+4),xe=new DataView(ge.buffer),Je=B(q),qt=new Uint8Array(Je.buffer,Je.byteOffset,Je.length);ge.set(qt);let jt=0,rr=S.digestSize,Ot=Math.ceil(Y/rr),Yi=null,Kr=null;for(let _o=1;_o<=Ot;_o++){xe.setUint32(q.length,_o),S.init(),S.update(ge),Yi=S.digest("binary"),Kr=Yi.slice();for(let xn=1;xn<M;xn++){S.init(),S.update(Kr),Kr=S.digest("binary");for(let Fo=0;Fo<rr;Fo++)Yi[Fo]^=Kr[Fo]}ae.set(Yi.subarray(0,Y-jt),jt),jt+=rr}if(ie==="binary")return ae;let Qu=new Uint8Array(Y*2);return w(Qu,ae,Y)})}let uH=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!S.hashFunction||!S.hashFunction.then)throw new Error('Invalid hash function is provided! Usage: pbkdf2("password", "salt", 1000, 32, createSHA1()).');if(!Number.isInteger(S.iterations)||S.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(S.hashLength)||S.hashLength<1)throw new Error("Hash length should be a positive number");if(S.outputType===void 0&&(S.outputType="hex"),!["hex","binary"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary']`)};function Bx(S){return s(this,void 0,void 0,function*(){uH(S);let q=yield Xv(S.hashFunction,S.password);return dH(q,S.salt,S.iterations,S.hashLength,S.outputType)})}var fH="scrypt",AH="AGFzbQEAAAABGwVgAX8Bf2AAAX9gBH9/f38AYAF/AGADf39/AAMGBQABAgMEBQYBAQKAgAIGCAF/AUGQiAQLBzkEBm1lbW9yeQIAEkhhc2hfU2V0TWVtb3J5U2l6ZQAADkhhc2hfR2V0QnVmZmVyAAEGc2NyeXB0AAQK7iYFWAECf0EAIQECQCAAQQAoAogIIgJGDQACQCAAIAJrIgBBEHYgAEGAgHxxIABJaiIAQABBf0cNAEH/AcAPC0EAIQFBAEEAKQOICCAAQRB0rXw3A4gICyABwAtwAQJ/AkBBACgCgAgiAA0AQQA/AEEQdCIANgKACEEAKAKICCIBQYCAIEYNAAJAQYCAICABayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBBAA8LQQBBACkDiAggAEEQdK18NwOICEEAKAKACCEACyAAC6QFAQN/IAIgA0EHdCAAakFAaiIEKQMANwMAIAIgBCkDCDcDCCACIAQpAxA3AxAgAiAEKQMYNwMYIAIgBCkDIDcDICACIAQpAyg3AyggAiAEKQMwNwMwIAIgBCkDODcDOAJAIANFDQAgA0EBdCEFIANBBnQhBkEAIQMDQCACIAIpAwAgACkDAIU3AwAgAiACKQMIIABBCGopAwCFNwMIIAIgAikDECAAQRBqKQMAhTcDECACIAIpAxggAEEYaikDAIU3AxggAiACKQMgIABBIGopAwCFNwMgIAIgAikDKCAAQShqKQMAhTcDKCACIAIpAzAgAEEwaikDAIU3AzAgAiACKQM4IABBOGopAwCFNwM4IAIQAyABIAIpAwA3AwAgAUEIaiACKQMINwMAIAFBEGogAikDEDcDACABQRhqIAIpAxg3AwAgAUEgaiACKQMgNwMAIAFBKGogAikDKDcDACABQTBqIAIpAzA3AwAgAUE4aiACKQM4NwMAIAIgAikDACAAQcAAaikDAIU3AwAgAiACKQMIIABByABqKQMAhTcDCCACIAIpAxAgAEHQAGopAwCFNwMQIAIgAikDGCAAQdgAaikDAIU3AxggAiACKQMgIABB4ABqKQMAhTcDICACIAIpAyggAEHoAGopAwCFNwMoIAIgAikDMCAAQfAAaikDAIU3AzAgAiACKQM4IABB+ABqKQMAhTcDOCACEAMgASAGaiIEIAIpAwA3AwAgBEEIaiACKQMINwMAIARBEGogAikDEDcDACAEQRhqIAIpAxg3AwAgBEEgaiACKQMgNwMAIARBKGogAikDKDcDACAEQTBqIAIpAzA3AwAgBEE4aiACKQM4NwMAIABBgAFqIQAgAUHAAGohASADQQJqIgMgBUkNAAsLC7oNCAF+AX8BfgF/AX4BfwF+En8gACAAKAIEIAApAygiAUIgiKciAiAAKQM4IgNCIIinIgRqQQd3IAApAwgiBUIgiKdzIgYgBGpBCXcgACkDGCIHQiCIp3MiCCAGakENdyACcyIJIAenIgogAaciC2pBB3cgA6dzIgIgC2pBCXcgBadzIgwgAmpBDXcgCnMiDSAMakESdyALcyIOIAApAwAiAUIgiKciDyAAKQMQIgNCIIinIhBqQQd3IAApAyAiBUIgiKdzIgtqQQd3cyIKIAkgCGpBEncgBHMiESACakEHdyAAKQMwIgenIgkgAaciEmpBB3cgA6dzIgQgEmpBCXcgBadzIhMgBGpBDXcgCXMiFHMiCSARakEJdyALIBBqQQl3IAdCIIincyIVcyIWIAlqQQ13IAJzIhcgFmpBEncgEXMiEWpBB3cgBiAUIBNqQRJ3IBJzIhJqQQd3IBUgC2pBDXcgD3MiFHMiAiASakEJdyAMcyIPIAJqQQ13IAZzIhhzIgYgEWpBCXcgCCANIBQgFWpBEncgEHMiECAEakEHd3MiDCAQakEJd3MiCHMiFSAGakENdyAKcyIUIAwgCiAOakEJdyATcyITIApqQQ13IAtzIhkgE2pBEncgDnMiCmpBB3cgF3MiCyAKakEJdyAPcyIOIAtqQQ13IAxzIhcgDmpBEncgCnMiDSACIAggDGpBDXcgBHMiDCAIakESdyAQcyIIakEHdyAZcyIKakEHd3MiBCAUIBVqQRJ3IBFzIhAgC2pBB3cgCSAYIA9qQRJ3IBJzIhFqQQd3IAxzIgwgEWpBCXcgE3MiEiAMakENdyAJcyIPcyIJIBBqQQl3IAogCGpBCXcgFnMiE3MiFiAJakENdyALcyIUIBZqQRJ3IBBzIhBqQQd3IAYgDyASakESdyARcyIRakEHdyATIApqQQ13IAJzIgtzIgIgEWpBCXcgDnMiDiACakENdyAGcyIYcyIGIBBqQQl3IBUgFyALIBNqQRJ3IAhzIgggDGpBB3dzIgsgCGpBCXdzIhNzIhUgBmpBDXcgBHMiFyALIAQgDWpBCXcgEnMiEiAEakENdyAKcyIZIBJqQRJ3IA1zIgRqQQd3IBRzIgogBGpBCXcgDnMiDyAKakENdyALcyIUIA9qQRJ3IARzIg0gAiATIAtqQQ13IAxzIgwgE2pBEncgCHMiCGpBB3cgGXMiC2pBB3dzIgQgFyAVakESdyAQcyIQIApqQQd3IAkgGCAOakESdyARcyIOakEHdyAMcyIMIA5qQQl3IBJzIhEgDGpBDXcgCXMiF3MiCSAQakEJdyALIAhqQQl3IBZzIhJzIhMgCWpBDXcgCnMiGCATakESdyAQcyIQakEHdyAGIBcgEWpBEncgDnMiCmpBB3cgEiALakENdyACcyIXcyICIApqQQl3IA9zIg4gAmpBDXcgBnMiFnMiBiAJIBYgDmpBEncgCnMiFmpBB3cgFSAUIBcgEmpBEncgCHMiCCAMakEHd3MiCiAIakEJd3MiEiAKakENdyAMcyIPcyIMIBZqQQl3IAQgDWpBCXcgEXMiEXMiFSAMakENdyAJcyIUIBVqQRJ3IBZzIglqQQd3IAIgDyASakESdyAIcyIIakEHdyARIARqQQ13IAtzIg9zIgsgCGpBCXcgE3MiEyALakENdyACcyIXcyIWajYCBCAAIAAoAgggFiAJakEJdyAKIA8gEWpBEncgDXMiEWpBB3cgGHMiAiARakEJdyAOcyIOcyIPajYCCCAAIAAoAgwgDyAWakENdyAGcyINajYCDCAAIAAoAhAgBiAQakEJdyAScyISIA4gAmpBDXcgCnMiGCAXIBNqQRJ3IAhzIgogDGpBB3dzIgggCmpBCXdzIhYgCGpBDXcgDHMiDGo2AhAgACAAKAIAIA0gD2pBEncgCXNqNgIAIAAgACgCFCAMIBZqQRJ3IApzajYCFCAAIAAoAhggCGo2AhggACAAKAIcIBZqNgIcIAAgACgCICASIAZqQQ13IARzIgkgGCAOakESdyARcyIGIAtqQQd3cyIKIAZqQQl3IBVzIgRqNgIgIAAgACgCJCAEIApqQQ13IAtzIgtqNgIkIAAgACgCKCALIARqQRJ3IAZzajYCKCAAIAAoAiwgCmo2AiwgACAAKAIwIAkgEmpBEncgEHMiBiACakEHdyAUcyILajYCMCAAIAAoAjQgCyAGakEJdyATcyIKajYCNCAAIAAoAjggCiALakENdyACcyICajYCOCAAIAAoAjwgAiAKakESdyAGc2o2AjwLvxIDFX8Bfg5/AkAgAkUNACAAQQd0IgNBQGoiBEEAKAKACCIFIAMgAmwiBmogAyABbGoiByADaiIIaiEJIAAgAkEHdCIKIAFBB3RqIgtsIQwgACALQYABamwhDSAAQQV0IgtBASALQQFLGyILQWBxIQ4gC0EBcSEPIAdBeGohECAHQXBqIREgB0FoaiESIAdBYGohEyAHQVhqIRQgB0FQaiEVIAdBSGohFiAHQUBqIRcgAa1Cf3whGCAEIAdqIRkgByAAQQh0IhpqIRsgACAKQYABamwhHCALQQRJIR1BACEeQQAhHwNAQQAoAoAIIiAgAyAfbGohIQJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgByALaiIEICMgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AIAcgIkECdCILaiAhIAtqKAIANgIACwJAIAFFDQBBACElIBwhIyAGISYDQCAFISQgACEiAkACQCAADQAgGyAXKQMANwMAIBsgFikDADcDCCAbIBUpAwA3AxAgGyAUKQMANwMYIBsgEykDADcDICAbIBIpAwA3AyggGyARKQMANwMwIBsgECkDADcDOAwBCwNAICQgJmoiCyAkIAxqIgQpAwA3AwAgC0EIaiAEQQhqKQMANwMAIAtBEGogBEEQaikDADcDACALQRhqIARBGGopAwA3AwAgC0EgaiAEQSBqKQMANwMAIAtBKGogBEEoaikDADcDACALQTBqIARBMGopAwA3AwAgC0E4aiAEQThqKQMANwMAIAtBwABqIARBwABqKQMANwMAIAtByABqIARByABqKQMANwMAIAtB0ABqIARB0ABqKQMANwMAIAtB2ABqIARB2ABqKQMANwMAIAtB4ABqIARB4ABqKQMANwMAIAtB6ABqIARB6ABqKQMANwMAIAtB8ABqIARB8ABqKQMANwMAIAtB+ABqIARB+ABqKQMANwMAICRBgAFqISQgIkF/aiIiDQALIAcgCCAbIAAQAiAFISQgACEiA0AgJCAjaiILICQgDWoiBCkDADcDACALQQhqIARBCGopAwA3AwAgC0EQaiAEQRBqKQMANwMAIAtBGGogBEEYaikDADcDACALQSBqIARBIGopAwA3AwAgC0EoaiAEQShqKQMANwMAIAtBMGogBEEwaikDADcDACALQThqIARBOGopAwA3AwAgC0HAAGogBEHAAGopAwA3AwAgC0HIAGogBEHIAGopAwA3AwAgC0HQAGogBEHQAGopAwA3AwAgC0HYAGogBEHYAGopAwA3AwAgC0HgAGogBEHgAGopAwA3AwAgC0HoAGogBEHoAGopAwA3AwAgC0HwAGogBEHwAGopAwA3AwAgC0H4AGogBEH4AGopAwA3AwAgJEGAAWohJCAiQX9qIiINAAsLIAggByAbIAAQAiAjIBpqISMgJiAaaiEmICVBAmoiJSABSQ0AC0EAISUDQAJAAkAgAA0AIBsgFykDADcDACAbIBYpAwA3AwggGyAVKQMANwMQIBsgFCkDADcDGCAbIBMpAwA3AyAgGyASKQMANwMoIBsgESkDADcDMCAbIBApAwA3AzgMAQsgACAKIBkpAgAgGIOnQQd0amwhJiAFISQgACEiA0AgJCAMaiILIAspAwAgJCAmaiIEKQMAhTcDACALQQhqIiMgIykDACAEQQhqKQMAhTcDACALQRBqIiMgIykDACAEQRBqKQMAhTcDACALQRhqIiMgIykDACAEQRhqKQMAhTcDACALQSBqIiMgIykDACAEQSBqKQMAhTcDACALQShqIiMgIykDACAEQShqKQMAhTcDACALQTBqIiMgIykDACAEQTBqKQMAhTcDACALQThqIiMgIykDACAEQThqKQMAhTcDACALQcAAaiIjICMpAwAgBEHAAGopAwCFNwMAIAtByABqIiMgIykDACAEQcgAaikDAIU3AwAgC0HQAGoiIyAjKQMAIARB0ABqKQMAhTcDACALQdgAaiIjICMpAwAgBEHYAGopAwCFNwMAIAtB4ABqIiMgIykDACAEQeAAaikDAIU3AwAgC0HoAGoiIyAjKQMAIARB6ABqKQMAhTcDACALQfAAaiIjICMpAwAgBEHwAGopAwCFNwMAIAtB+ABqIgsgCykDACAEQfgAaikDAIU3AwAgJEGAAWohJCAiQX9qIiINAAsgByAIIBsgABACIAAgCiAJKQIAIBiDp0EHdGpsISYgBSEkIAAhIgNAICQgDWoiCyALKQMAICQgJmoiBCkDAIU3AwAgC0EIaiIjICMpAwAgBEEIaikDAIU3AwAgC0EQaiIjICMpAwAgBEEQaikDAIU3AwAgC0EYaiIjICMpAwAgBEEYaikDAIU3AwAgC0EgaiIjICMpAwAgBEEgaikDAIU3AwAgC0EoaiIjICMpAwAgBEEoaikDAIU3AwAgC0EwaiIjICMpAwAgBEEwaikDAIU3AwAgC0E4aiIjICMpAwAgBEE4aikDAIU3AwAgC0HAAGoiIyAjKQMAIARBwABqKQMAhTcDACALQcgAaiIjICMpAwAgBEHIAGopAwCFNwMAIAtB0ABqIiMgIykDACAEQdAAaikDAIU3AwAgC0HYAGoiIyAjKQMAIARB2ABqKQMAhTcDACALQeAAaiIjICMpAwAgBEHgAGopAwCFNwMAIAtB6ABqIiMgIykDACAEQegAaikDAIU3AwAgC0HwAGoiIyAjKQMAIARB8ABqKQMAhTcDACALQfgAaiILIAspAwAgBEH4AGopAwCFNwMAICRBgAFqISQgIkF/aiIiDQALCyAIIAcgGyAAEAIgJUECaiIlIAFJDQALCwJAIABFDQBBACEiAkAgHQ0AICAgHmohI0EAIQtBACEiA0AgIyALaiIEIAcgC2oiJCgCADYCACAEQQRqICRBBGooAgA2AgAgBEEIaiAkQQhqKAIANgIAIARBDGogJEEMaigCADYCACALQRBqIQsgDiAiQQRqIiJHDQALCyAPRQ0AICEgIkECdCILaiAHIAtqKAIANgIACyAeIANqIR4gH0EBaiIfIAJHDQALCws=",hH="b32721f8",gH={name:fH,data:AH,hash:hH};function pH(S){return s(this,void 0,void 0,function*(){let{costFactor:q,blockSize:M,parallelism:Y,hashLength:ie}=S,ae=Jv(),ge=yield Bx({password:S.password,salt:S.salt,iterations:1,hashLength:128*M*Y,hashFunction:ae,outputType:"binary"}),xe=yield v(gH,0),Je=128*M*q,qt=256*M;xe.setMemorySize(ge.length+Je+qt),xe.writeMemory(ge,0),xe.getExports().scrypt(M,q,Y);let jt=xe.getMemory().subarray(0,128*M*Y),rr=yield Bx({password:S.password,salt:jt,iterations:1,hashLength:ie,hashFunction:ae,outputType:"binary"});if(S.outputType==="hex"){let Ot=new Uint8Array(ie*2);return w(Ot,rr,ie)}return rr})}let mH=S=>S&&!(S&S-1),yH=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(S.blockSize)||S.blockSize<1)throw new Error("Block size should be a positive number");if(!Number.isInteger(S.costFactor)||S.costFactor<2||!mH(S.costFactor))throw new Error("Cost factor should be a power of 2, greater than 1");if(!Number.isInteger(S.parallelism)||S.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(S.hashLength)||S.hashLength<1)throw new Error("Hash length should be a positive number.");if(S.outputType===void 0&&(S.outputType="hex"),!["hex","binary"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary']`)};function IH(S){return s(this,void 0,void 0,function*(){return yH(S),pH(S)})}var wH="bcrypt",xH="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",CH="8bd8822d",Zv={name:wH,data:xH,hash:CH};function EH(S){return s(this,void 0,void 0,function*(){let{costFactor:q,password:M,salt:Y}=S,ie=yield v(Zv,0);ie.writeMemory(B(Y),0);let ae=B(M);ie.writeMemory(ae,16);let ge=S.outputType==="encoded"?1:0;ie.getExports().bcrypt(ae.length,q,ge);let xe=ie.getMemory();if(S.outputType==="encoded")return f(xe,60);if(S.outputType==="hex"){let Je=new Uint8Array(48);return w(Je,xe,24)}return xe.slice(0,24)})}let BH=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(!Number.isInteger(S.costFactor)||S.costFactor<4||S.costFactor>31)throw new Error("Cost factor should be a number between 4 and 31");if(S.password=B(S.password),S.password.length<1)throw new Error("Password should be at least 1 byte long");if(S.password.length>72)throw new Error("Password should be at most 72 bytes long");if(S.salt=B(S.salt),S.salt.length!==16)throw new Error("Salt should be 16 bytes long");if(S.outputType===void 0&&(S.outputType="encoded"),!["hex","binary","encoded"].includes(S.outputType))throw new Error(`Insupported output type ${S.outputType}. Valid values: ['hex', 'binary', 'encoded']`)};function bH(S){return s(this,void 0,void 0,function*(){return BH(S),EH(S)})}let vH=S=>!(!/^\$2[axyb]\$[0-3][0-9]\$[./A-Za-z0-9]{53}$/.test(S)||S[4]==="0"&&Number(S[5])<4||S[4]==="3"&&Number(S[5])>1),kH=S=>{if(!S||typeof S!="object")throw new Error("Invalid options parameter. It requires an object.");if(S.hash===void 0||typeof S.hash!="string")throw new Error("Hash should be specified");if(S.hash.length!==60)throw new Error("Hash should be 60 bytes long");if(!vH(S.hash))throw new Error("Invalid hash");if(S.password=B(S.password),S.password.length<1)throw new Error("Password should be at least 1 byte long");if(S.password.length>72)throw new Error("Password should be at most 72 bytes long")};function SH(S){return s(this,void 0,void 0,function*(){kH(S);let{hash:q,password:M}=S,Y=yield v(Zv,0);Y.writeMemory(B(q),0);let ie=B(M);return Y.writeMemory(ie,60),!!Y.getExports().bcrypt_verify(ie.length)})}var DH="whirlpool",QH="AGFzbQEAAAABEQRgAAF/YAF/AGACf38AYAAAAwkIAAECAwEDAAEFBAEBAgIGDgJ/AUHQmwULfwBBgAgLB3AIBm1lbW9yeQIADkhhc2hfR2V0QnVmZmVyAAAJSGFzaF9Jbml0AAMLSGFzaF9VcGRhdGUABApIYXNoX0ZpbmFsAAUNSGFzaF9HZXRTdGF0ZQAGDkhhc2hfQ2FsY3VsYXRlAAcKU1RBVEVfU0laRQMBCu0bCAUAQYAZC8wGAQl+IAApAwAhAUEAQQApA4CbASICNwPAmQEgACkDGCEDIAApAxAhBCAAKQMIIQVBAEEAKQOYmwEiBjcD2JkBQQBBACkDkJsBIgc3A9CZAUEAQQApA4ibASIINwPImQFBACABIAKFNwOAmgFBACAFIAiFNwOImgFBACAEIAeFNwOQmgFBACADIAaFNwOYmgEgACkDICEDQQBBACkDoJsBIgE3A+CZAUEAIAMgAYU3A6CaASAAKQMoIQRBAEEAKQOomwEiAzcD6JkBQQAgBCADhTcDqJoBIAApAzAhBUEAQQApA7CbASIENwPwmQFBACAFIASFNwOwmgEgACkDOCEJQQBBACkDuJsBIgU3A/iZAUEAIAkgBYU3A7iaAUEAQpjGmMb+kO6AzwA3A4CZAUHAmQFBgJkBEAJBgJoBQcCZARACQQBCtszKrp/v28jSADcDgJkBQcCZAUGAmQEQAkGAmgFBwJkBEAJBAELg+O70uJTDvTU3A4CZAUHAmQFBgJkBEAJBgJoBQcCZARACQQBCncDfluzlkv/XADcDgJkBQcCZAUGAmQEQAkGAmgFBwJkBEAJBAEKV7t2p/pO8pVo3A4CZAUHAmQFBgJkBEAJBgJoBQcCZARACQQBC2JKn0ZCW6LWFfzcDgJkBQcCZAUGAmQEQAkGAmgFBwJkBEAJBAEK9u8Ggv9nPgucANwOAmQFBwJkBQYCZARACQYCaAUHAmQEQAkEAQuTPhNr4tN/KWDcDgJkBQcCZAUGAmQEQAkGAmgFBwJkBEAJBAEL73fOz1vvFo55/NwOAmQFBwJkBQYCZARACQYCaAUHAmQEQAkEAQsrb/L3Q1dbBMzcDgJkBQcCZAUGAmQEQAkGAmgFBwJkBEAJBACACQQApA4CaASAAKQMAhYU3A4CbAUEAIAhBACkDiJoBIAApAwiFhTcDiJsBQQAgB0EAKQOQmgEgACkDEIWFNwOQmwFBACAGQQApA5iaASAAKQMYhYU3A5ibAUEAIAFBACkDoJoBIAApAyCFhTcDoJsBQQAgA0EAKQOomgEgACkDKIWFNwOomwFBACAEQQApA7CaASAAKQMwhYU3A7CbAUEAIAVBACkDuJoBIAApAziFhTcDuJsBC4YMCgF+AX8BfgF/AX4BfwF+AX8EfgN/IAAgACkDACICpyIDQf8BcUEDdEGQCGopAwBCOIkgACkDOCIEpyIFQQV2QfgPcUGQCGopAwCFQjiJIAApAzAiBqciB0ENdkH4D3FBkAhqKQMAhUI4iSAAKQMoIginIglBFXZB+A9xQZAIaikDAIVCOIkgACkDICIKQiCIp0H/AXFBA3RBkAhqKQMAhUI4iSAAKQMYIgtCKIinQf8BcUEDdEGQCGopAwCFQjiJIAApAxAiDEIwiKdB/wFxQQN0QZAIaikDAIVCOIkgACkDCCINQjiIp0EDdEGQCGopAwCFQjiJIAEpAwCFNwMAIAAgDaciDkH/AXFBA3RBkAhqKQMAQjiJIANBBXZB+A9xQZAIaikDAIVCOIkgBUENdkH4D3FBkAhqKQMAhUI4iSAHQRV2QfgPcUGQCGopAwCFQjiJIAhCIIinQf8BcUEDdEGQCGopAwCFQjiJIApCKIinQf8BcUEDdEGQCGopAwCFQjiJIAtCMIinQf8BcUEDdEGQCGopAwCFQjiJIAxCOIinQQN0QZAIaikDAIVCOIkgASkDCIU3AwggACAMpyIPQf8BcUEDdEGQCGopAwBCOIkgDkEFdkH4D3FBkAhqKQMAhUI4iSADQQ12QfgPcUGQCGopAwCFQjiJIAVBFXZB+A9xQZAIaikDAIVCOIkgBkIgiKdB/wFxQQN0QZAIaikDAIVCOIkgCEIoiKdB/wFxQQN0QZAIaikDAIVCOIkgCkIwiKdB/wFxQQN0QZAIaikDAIVCOIkgC0I4iKdBA3RBkAhqKQMAhUI4iSABKQMQhTcDECAAIAunIhBB/wFxQQN0QZAIaikDAEI4iSAPQQV2QfgPcUGQCGopAwCFQjiJIA5BDXZB+A9xQZAIaikDAIVCOIkgA0EVdkH4D3FBkAhqKQMAhUI4iSAEQiCIp0H/AXFBA3RBkAhqKQMAhUI4iSAGQiiIp0H/AXFBA3RBkAhqKQMAhUI4iSAIQjCIp0H/AXFBA3RBkAhqKQMAhUI4iSAKQjiIp0EDdEGQCGopAwCFQjiJIAEpAxiFNwMYIAAgCqciA0H/AXFBA3RBkAhqKQMAQjiJIBBBBXZB+A9xQZAIaikDAIVCOIkgD0ENdkH4D3FBkAhqKQMAhUI4iSAOQRV2QfgPcUGQCGopAwCFQjiJIAJCIIinQf8BcUEDdEGQCGopAwCFQjiJIARCKIinQf8BcUEDdEGQCGopAwCFQjiJIAZCMIinQf8BcUEDdEGQCGopAwCFQjiJIAhCOIinQQN0QZAIaikDAIVCOIkgASkDIIU3AyAgACAJQf8BcUEDdEGQCGopAwBCOIkgA0EFdkH4D3FBkAhqKQMAhUI4iSAQQQ12QfgPcUGQCGopAwCFQjiJIA9BFXZB+A9xQZAIaikDAIVCOIkgDUIgiKdB/wFxQQN0QZAIaikDAIVCOIkgAkIoiKdB/wFxQQN0QZAIaikDAIVCOIkgBEIwiKdB/wFxQQN0QZAIaikDAIVCOIkgBkI4iKdBA3RBkAhqKQMAhUI4iSABKQMohTcDKCAAIAdB/wFxQQN0QZAIaikDAEI4iSAJQQV2QfgPcUGQCGopAwCFQjiJIANBDXZB+A9xQZAIaikDAIVCOIkgEEEVdkH4D3FBkAhqKQMAhUI4iSAMQiCIp0H/AXFBA3RBkAhqKQMAhUI4iSANQiiIp0H/AXFBA3RBkAhqKQMAhUI4iSACQjCIp0H/AXFBA3RBkAhqKQMAhUI4iSAEQjiIp0EDdEGQCGopAwCFQjiJIAEpAzCFNwMwIAAgBUH/AXFBA3RBkAhqKQMAQjiJIAdBBXZB+A9xQZAIaikDAIVCOIkgCUENdkH4D3FBkAhqKQMAhUI4iSADQRV2QfgPcUGQCGopAwCFQjiJIAtCIIinQf8BcUEDdEGQCGopAwCFQjiJIAxCKIinQf8BcUEDdEGQCGopAwCFQjiJIA1CMIinQf8BcUEDdEGQCGopAwCFQjiJIAJCOIinQQN0QZAIaikDAIVCOIkgASkDOIU3AzgLXABBAEIANwPImwFBAEIANwO4mwFBAEIANwOwmwFBAEIANwOomwFBAEIANwOgmwFBAEIANwOYmwFBAEIANwOQmwFBAEIANwOImwFBAEIANwOAmwFBAEEANgLAmwELxgMBB39BACEBQQBBACkDyJsBIACtfDcDyJsBAkBBACgCwJsBIgJFDQBBACEBAkAgAiAAaiIDQcAAIANBwABJGyIEIAJB/wFxIgVNDQAgBCAFayIBQQNxIQYCQAJAIAQgBUF/c2pBA08NAEEAIQEMAQsgAUF8cSEHQQAhAQNAIAUgAWoiAkHAmgFqIAFBgBlqLQAAOgAAIAJBwZoBaiABQYEZai0AADoAACACQcKaAWogAUGCGWotAAA6AAAgAkHDmgFqIAFBgxlqLQAAOgAAIAcgAUEEaiIBRw0ACyAFIAFqIgUhAgsgBkUNACACQf8BcUEBaiECA0AgBUHAmgFqIAFBgBlqLQAAOgAAIAIiBUEBaiECIAFBAWohASAFIQUgBkF/aiIGDQALCwJAIANBP00NAEHAmgEQAUEAIQQLQQAgBDYCwJsBCwJAIAAgAWsiAkHAAEkNAANAIAFBgBlqEAEgAUHAAGohASACQUBqIgJBP0sNAAsLAkAgASAARg0AQQAgAjYCwJsBIAJFDQBBACECQQAhBQNAIAJBwJoBaiACIAFqQYAZai0AADoAAEEAKALAmwEgBUEBaiIFQf8BcSICSw0ACwsL/wMCBH8BfiMAQcAAayIAJAAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBGGpCADcDACAAQRBqQgA3AwAgAEIANwMIIABCADcDAEEAIQECQAJAQQAoAsCbASICRQ0AQQAhAwNAIAAgAWogAUHAmgFqLQAAOgAAIAFBAWohASACIANBAWoiA0H/AXFLDQALQQAgAkEBajYCwJsBIAAgAmpBgAE6AAAgAkFgcUEgRw0BIAAQASAAQgA3AxggAEIANwMQIABCADcDCCAAQgA3AwAMAQtBAEEBNgLAmwEgAEGAAToAAAtBACkDyJsBIQRBAEIANwPImwEgAEEAOgA2IABBADYBMiAAQgA3ASogAEEAOgApIABCADcAISAAQQA6ACAgACAEQgWIPAA+IAAgBEINiDwAPSAAIARCFYg8ADwgACAEQh2IPAA7IAAgBEIliDwAOiAAIARCLYg8ADkgACAEQjWIPAA4IAAgBEI9iDwANyAAIASnQQN0OgA/IAAQAUEAQQApA4CbATcDgBlBAEEAKQOImwE3A4gZQQBBACkDkJsBNwOQGUEAQQApA5ibATcDmBlBAEEAKQOgmwE3A6AZQQBBACkDqJsBNwOoGUEAQQApA7CbATcDsBlBAEEAKQO4mwE3A7gZIABBwABqJAALBgBBwJoBC2IAQQBCADcDyJsBQQBCADcDuJsBQQBCADcDsJsBQQBCADcDqJsBQQBCADcDoJsBQQBCADcDmJsBQQBCADcDkJsBQQBCADcDiJsBQQBCADcDgJsBQQBBADYCwJsBIAAQBBAFCwuYEAEAQYAIC5AQkAAAAAAAAAAAAAAAAAAAABgYYBjAeDDYIyOMIwWvRibGxj/GfvmRuOjoh+gTb837h4cmh0yhE8u4uNq4qWJtEQEBBAEIBQIJT08hT0Jung02Ntg2re5sm6amoqZZBFH/0tJv0t69uQz19fP1+wb3Dnl5+XnvgPKWb2+hb1/O3jCRkX6R/O8/bVJSVVKqB6T4YGCdYCf9wEe8vMq8iXZlNZubVpuszSs3jo4CjgSMAYqjo7ajcRVb0gwMMAxgPBhse3vxe/+K9oQ1NdQ1teFqgB0ddB3oaTr14OCn4FNH3bPX13vX9qyzIcLCL8Je7ZmcLi64Lm2WXENLSzFLYnqWKf7+3/6jIeFdV1dBV4IWrtUVFVQVqEEqvXd3wXeftu7oNzfcN6XrbpLl5bPle1bXnp+fRp+M2SMT8PDn8NMX/SNKSjVKan+UINraT9qelalEWFh9WPolsKLJyQPJBsqPzykppClVjVJ8CgooClAiFFqxsf6x4U9/UKCguqBpGl3Ja2uxa3/a1hSFhS6FXKsX2b29zr2Bc2c8XV1pXdI0uo8QEEAQgFAgkPT09/TzA/UHy8sLyxbAi90+Pvg+7cZ80wUFFAUoEQotZ2eBZx/mznjk5Lfkc1PVlycnnCclu04CQUEZQTJYgnOLixaLLJ0Lp6enpqdRAVP2fX3pfc+U+rKVlW6V3Ps3SdjYR9iOn61W+/vL+4sw63Du7p/uI3HBzXx87XzHkfi7ZmaFZhfjzHHd3VPdpo6nexcXXBe4Sy6vR0cBRwJGjkWenkKehNwhGsrKD8oexYnULS20LXWZWli/v8a/kXljLgcHHAc4Gw4/ra2OrQEjR6xaWnVa6i+0sIODNoNstRvvMzPMM4X/ZrZjY5FjP/LGXAICCAIQCgQSqqqSqjk4SZNxcdlxr6ji3sjIB8gOz43GGRlkGch9MtFJSTlJcnCSO9nZQ9mGmq9f8vLv8sMd+THj46vjS0jbqFtbcVviKra5iIgaiDSSDbyamlKapMgpPiYmmCYtvkwLMjLIMo36ZL+wsPqw6Up9Wenpg+kbas/yDw88D3gzHnfV1XPV5qa3M4CAOoB0uh30vr7Cvpl8YSfNzRPNJt6H6zQ00DS95GiJSEg9SHp1kDL//9v/qyTjVHp69Xr3j/SNkJB6kPTqPWRfX2Ffwj6+nSAggCAdoEA9aGi9aGfV0A8aGmga0HI0yq6ugq4ZLEG3tLTqtMledX1UVE1UmhmozpOTdpPs5Tt/IiKIIg2qRC9kZI1kB+nIY/Hx4/HbEv8qc3PRc7+i5swSEkgSkFokgkBAHUA6XYB6CAggCEAoEEjDwyvDVuiblezsl+wze8Xf29tL25aQq02hob6hYR9fwI2NDo0cgweRPT30PfXJesiXl2aXzPEzWwAAAAAAAAAAz88bzzbUg/krK6wrRYdWbnZ2xXaXs+zhgoIygmSwGebW1n/W/qmxKBsbbBvYdzbDtbXutcFbd3Svr4avESlDvmpqtWp339QdUFBdULoNoOpFRQlFEkyKV/Pz6/PLGPs4MDDAMJ3wYK3v75vvK3TDxD8//D/lw37aVVVJVZIcqseiorKieRBZ2+rqj+oDZcnpZWWJZQ/symq6utK6uWhpAy8vvC9lk15KwMAnwE7nnY7e3l/evoGhYBwccBzgbDj8/f3T/bsu50ZNTSlNUmSaH5KScpLk4Dl2dXXJdY+86voGBhgGMB4MNoqKEookmAmusrLysvlAeUvm5r/mY1nRhQ4OOA5wNhx+Hx98H/hjPudiYpViN/fEVdTUd9Tuo7U6qKiaqCkyTYGWlmKWxPQxUvn5w/mbOu9ixcUzxWb2l6MlJZQlNbFKEFlZeVnyILKrhIQqhFSuFdByctVyt6fkxTk55DnV3XLsTEwtTFphmBZeXmVeyju8lHh4/XjnhfCfODjgON3YcOWMjAqMFIYFmNHRY9HGsr8XpaWupUELV+Ti4q/iQ03ZoWFhmWEv+MJOs7P2s/FFe0IhIYQhFaVCNJycSpyU1iUIHh54HvBmPO5DQxFDIlKGYcfHO8d2/JOx/PzX/LMr5U8EBBAEIBQIJFFRWVGyCKLjmZlembzHLyVtbaltT8TaIg0NNA1oORpl+vrP+oM16Xnf31vftoSjaX5+5X7Xm/ypJCSQJD20SBk7O+w7xdd2/qurlqsxPUuazs4fzj7RgfAREUQRiFUimY+PBo8MiQODTk4lTkprnAS3t+a30VFzZuvri+sLYMvgPDzwPP3MeMGBgT6BfL8f/ZSUapTU/jVA9/f79+sM8xy5ud65oWdvGBMTTBOYXyaLLCywLH2cWFHT02vT1ri7Befnu+drXNOMbm6lblfL3DnExDfEbvOVqgMDDAMYDwYbVlZFVooTrNxERA1EGkmIXn9/4X/fnv6gqameqSE3T4gqKqgqTYJUZ7u71ruxbWsKwcEjwUbin4dTU1FTogKm8dzcV9yui6VyCwssC1gnFlOdnU6dnNMnAWxsrWxHwdgrMTHEMZX1YqR0dM10h7no8/b2//bjCfEVRkYFRgpDjEysrIqsCSZFpYmJHok8lw+1FBRQFKBEKLTh4aPhW0LfuhYWWBawTiymOjroOs3SdPdpablpb9DSBgkJJAlILRJBcHDdcKet4Ne2tuK22VRxb9DQZ9DOt70e7e2T7Tt+x9bMzBfMLtuF4kJCFUIqV4RomJhamLTCLSykpKqkSQ5V7SgooChdiFB1XFxtXNoxuIb4+Mf4kz/ta4aGIoZEpBHC",_H="8d8f6035",ek={name:DH,data:QH,hash:_H};let FH=new o,K0=null;function PH(S){if(K0===null)return E(FH,ek,64).then(q=>(K0=q,K0.calculate(S)));try{let q=K0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function TH(){return v(ek,64).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:64};return q})}var UH="sm3",RH="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",NH="b6fb4b8e",tk={name:UH,data:RH,hash:NH};let qH=new o,G0=null;function OH(S){if(G0===null)return E(qH,tk,32).then(q=>(G0=q,G0.calculate(S)));try{let q=G0.calculate(S);return Promise.resolve(q)}catch(q){return Promise.reject(q)}}function MH(){return v(tk,32).then(S=>{S.init();let q={init:()=>(S.init(),q),update:M=>(S.update(M),q),digest:M=>S.digest(M),save:()=>S.save(),load:M=>(S.load(M),q),blockSize:64,digestSize:32};return q})}r.adler32=j,r.argon2Verify=vs,r.argon2d=vo,r.argon2i=Ee,r.argon2id=Ji,r.bcrypt=bH,r.bcryptVerify=SH,r.blake2b=qe,r.blake2s=xl,r.blake3=Ri,r.crc32=Ve,r.crc64=yx,r.createAdler32=z,r.createBLAKE2b=_e,r.createBLAKE2s=hi,r.createBLAKE3=A,r.createCRC32=Ie,r.createCRC64=Ix,r.createHMAC=Xv,r.createKeccak=hL,r.createMD4=jM,r.createMD5=ZM,r.createRIPEMD160=aH,r.createSHA1=sL,r.createSHA224=wL,r.createSHA256=Jv,r.createSHA3=uL,r.createSHA384=SL,r.createSHA512=_L,r.createSM3=MH,r.createWhirlpool=TH,r.createXXHash128=tH,r.createXXHash3=VL,r.createXXHash32=NL,r.createXXHash64=KL,r.keccak=AL,r.md4=JM,r.md5=XM,r.pbkdf2=Bx,r.ripemd160=oH,r.scrypt=IH,r.sha1=nL,r.sha224=IL,r.sha256=CL,r.sha3=dL,r.sha384=kL,r.sha512=QL,r.sm3=OH,r.whirlpool=PH,r.xxhash128=eH,r.xxhash3=$L,r.xxhash32=RL,r.xxhash64=HL}))});var cP,Dc,RE,$m,lP=J(()=>{"use strict";cP=xr(jm(),1),Dc=32,RE=16,$m=class r{dataKey;constructor(e){this.dataKey=e}static async create(e,t){if(!e)throw new Error("[Crypt] password \u4E0D\u80FD\u4E3A\u7A7A");let i=await(0,cP.scrypt)({password:e,salt:t||"",costFactor:16384,blockSize:8,parallelism:1,hashLength:64,outputType:"binary"}),n=await crypto.subtle.importKey("raw",i.slice(0,32),{name:"AES-CTR"},!1,["encrypt","decrypt"]);return new r(n)}encryptedSize(e){return e+Dc}decryptedSize(e){return Math.max(0,e-Dc)}async encrypt(e){let t=crypto.getRandomValues(new Uint8Array(RE)),i=new Uint8Array(Dc);i.set(t,0),crypto.getRandomValues(i.subarray(RE));let n=new Uint8Array(await crypto.subtle.encrypt({name:"AES-CTR",counter:t,length:128},this.dataKey,e)),s=new Uint8Array(Dc+n.length);return s.set(i,0),s.set(n,Dc),s}async decrypt(e){if(e.length<Dc)throw new Error("[Crypt] \u52A0\u5BC6\u6587\u4EF6\u8FC7\u77ED\uFF08\u7F3A\u5C11\u6587\u4EF6\u5934\uFF09");let t=e.slice(0,RE),i=e.slice(Dc);return new Uint8Array(await crypto.subtle.decrypt({name:"AES-CTR",counter:t,length:128},this.dataKey,i))}}});var Vm,dP=J(()=>{"use strict";Be();lP();Vm=class{addition;cipher=null;remoteDriver=null;remoteRoot="/";suffix;constructor(e){this.addition=e||{},this.suffix=this.addition.encrypted_suffix??".bin"}async init(){let e=this.addition.filename_encryption||"off";if(e!=="off")throw new Error(`[Crypt] filename_encryption='${e}' \u5C1A\u672A\u5B9E\u73B0\uFF0C\u5F53\u524D\u4EC5\u652F\u6301 off \u6A21\u5F0F\uFF08\u5185\u5BB9\u52A0\u5BC6\u3001\u6587\u4EF6\u540D\u4EC5\u52A0\u540E\u7F00\uFF09`);let{resolvePath:t}=await Promise.resolve().then(()=>(Ye(),Jr)),{getDriver:i}=await Promise.resolve().then(()=>(Yt(),Mi)),n=await t(this.addition.remote_path||"/");if(n.isVirtual||!n.storage)throw new Error(`[Crypt] remote_path \u672A\u5339\u914D\u5230\u6709\u6548\u5B58\u50A8: ${this.addition.remote_path}`);this.remoteRoot=n.physical||"/",this.remoteDriver=await i(n.storage.driver,n.storage),this.cipher=await $m.create(this.addition.password,this.addition.salt||"")}ensureReady(){if(!this.cipher||!this.remoteDriver)throw new Error("[Crypt] driver not initialized")}joinRemote(e){let t=String(e||"/");return((this.remoteRoot==="/"?"":this.remoteRoot)+t).replace(/\/{2,}/g,"/")||"/"}decryptName(e){return this.suffix&&e.endsWith(this.suffix)?e.slice(0,-this.suffix.length):e}async list(e,t){this.ensureReady();let i=this.joinRemote(t);return(await this.remoteDriver.list("",i)).map(s=>{if(s.is_dir)return s;let o=this.decryptName(s.name);return{...s,name:o,size:this.cipher.decryptedSize(s.size),type:X(o,!1)}})}async get(e,t){this.ensureReady();let i=this.joinRemote(t),n=await this.remoteDriver.get("",i);if(n.is_dir)return n;let s=this.decryptName(n.name);return{...n,name:s,size:this.cipher.decryptedSize(n.size),type:X(s,!1),raw_url:""}}async mkdir(e,t){this.ensureReady(),await this.remoteDriver.mkdir("",this.joinRemote(t))}async rename(e,t,i){this.ensureReady();let n=this.joinRemote(t);await this.isFile(n)?await this.remoteDriver.rename("",n+this.suffix,i+this.suffix):await this.remoteDriver.rename("",n,i)}async remove(e,t,i){this.ensureReady();let n=this.joinRemote(t);await this.isFile(n)?await this.remoteDriver.remove("",n+this.suffix,i):await this.remoteDriver.remove("",n,i)}async move(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);await this.isFile(o)?await this.remoteDriver.move(e,t,i,o+this.suffix,a+this.suffix):await this.remoteDriver.move(e,t,i,o,a)}async copy(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);await this.isFile(o)?await this.remoteDriver.copy(e,t,i,o+this.suffix,a+this.suffix):await this.remoteDriver.copy(e,t,i,o,a)}async put(e,t,i){this.ensureReady();let n=this.joinRemote(t)+this.suffix,s=await this.cipher.encrypt(new Uint8Array(i));await this.remoteDriver.put("",n,Buffer.from(s))}async createReadStream(e,t){this.ensureReady();let i=this.joinRemote(e)+this.suffix,n=await this.remoteDriver.get("",i);if(!n.raw_url)throw new Error("[Crypt] \u5E95\u5C42\u9A71\u52A8\u672A\u8FD4\u56DE\u4E0B\u8F7D\u94FE\u63A5\uFF0C\u65E0\u6CD5\u89E3\u5BC6\u4E0B\u8F7D");let s=await fetch(n.raw_url);if(!s.ok)throw new Error(`[Crypt] \u5E95\u5C42\u4E0B\u8F7D\u5931\u8D25: HTTP ${s.status}`);let o=new Uint8Array(await s.arrayBuffer()),a=await this.cipher.decrypt(o),c=t?.start??0,l=t?.end??a.length-1,d=a.slice(c,l+1);return new ReadableStream({start(u){u.enqueue(d),u.close()}})}async isFile(e){if(!this.suffix)return!1;try{let t=await this.remoteDriver.get("",e+this.suffix);return!!t&&!t.is_dir}catch{return!1}}}});var Ym,uP=J(()=>{"use strict";Be();Ym=class{addition;constructor(e){this.addition=e||{}}randSize(){let e=this.addition.min_file_size||0,t=this.addition.max_file_size||0;return t<=e?e:e+Math.floor(Math.random()*(t-e))}now(){return new Date().toISOString()}async list(){let e=[];for(let t=0;t<(this.addition.num_file||0);t++){let i=`file_${t}.bin`;e.push({name:i,size:this.randSize(),is_dir:!1,modified:this.now(),sign:"",type:X(i,!1)})}for(let t=0;t<(this.addition.num_folder||0);t++){let i=`folder_${t}`;e.push({name:i,size:0,is_dir:!0,modified:this.now(),sign:"",type:1})}return e}async get(e,t){let i=String(t||"").split("/").filter(Boolean),n=i[i.length-1]||"file.bin";return{name:n,size:this.randSize(),is_dir:!1,modified:this.now(),sign:"",type:X(n,!1),raw_url:""}}async mkdir(){}async rename(){}async remove(){}async move(){}async copy(){}async put(){}async createReadStream(e,t){let i=t?.start??0,n=t?.end??i+this.randSize()-1,s=Math.max(0,n-i+1),o=64*1024,a=s;return new ReadableStream({pull(c){if(a<=0){c.close();return}let l=Math.min(o,a),d=new Uint8Array(l);crypto.getRandomValues(d),c.enqueue(d),a-=l}})}}});var Wm,fP=J(()=>{"use strict";Be();He();Wm=class{addition;token;onTokenUpdate;constructor(e,t){this.addition=e||{},this.token=this.addition.token||"",this.onTokenUpdate=t}get baseUrl(){return(this.addition.url||"").replace(/\/+$/,"")}async init(){if(!this.baseUrl)throw new Error("[AListV3] url is required");try{let e=await this.request("/me","GET");this.addition.username&&e.username!==this.addition.username&&await this.login()}catch{this.addition.username&&await this.login()}}async login(){if(!this.addition.username)return;let e=await this.request("/auth/login","POST",{username:this.addition.username,password:this.addition.password},!1);if(this.token=e.token,this.onTokenUpdate)try{await this.onTokenUpdate(this.token)}catch{}}async request(e,t,i,n=!0){let s=await fetch(`${this.baseUrl}/api${e}`,{method:t,headers:{"Content-Type":"application/json",...this.token?{Authorization:this.token}:{}},...i!==void 0?{body:JSON.stringify(i)}:{}}),o=await s.json().catch(()=>({code:s.status,message:"invalid response",data:null}));if(o.code!==200){if((o.code===401||o.code===403)&&n)return await this.login(),this.request(e,t,i,!1);throw new Error(`[AListV3] request failed: code=${o.code}, message=${o.message}`)}return o.data}toFileItem(e){return{name:e.name,size:e.size||0,is_dir:!!e.is_dir,modified:e.modified||new Date().toISOString(),sign:e.sign||"",thumb:e.thumb||"",type:e.type??X(e.name,!!e.is_dir),raw_url:""}}async list(e,t){let n=((await this.request("/fs/list","POST",{path:t,password:this.addition.meta_password||"",page:1,per_page:0,refresh:!1})).content||[]).map(s=>this.toFileItem(s));return de(n,"name","asc")}async get(e,t){let i=await this.request("/fs/get","POST",{path:t,password:this.addition.meta_password||""});return{...this.toFileItem(i),raw_url:i.raw_url||""}}async mkdir(e,t){await this.request("/fs/mkdir","POST",{path:t})}async rename(e,t,i){await this.request("/fs/rename","POST",{path:t,name:i})}async remove(e,t,i){let n=t.split("/").slice(0,-1).join("/")||"/";await this.request("/fs/remove","POST",{dir:n,names:i})}async move(e,t,i,n,s){let o=n.split("/").slice(0,-1).join("/")||"/",a=s.split("/").slice(0,-1).join("/")||"/";await this.request("/fs/move","POST",{src_dir:o,dst_dir:a,names:i})}async copy(e,t,i,n,s){let o=n.split("/").slice(0,-1).join("/")||"/",a=s.split("/").slice(0,-1).join("/")||"/";await this.request("/fs/copy","POST",{src_dir:o,dst_dir:a,names:i})}async put(e,t,i){let n=await fetch(`${this.baseUrl}/api/fs/put`,{method:"PUT",headers:{Authorization:this.token,"File-Path":encodeURIComponent(t),"Content-Type":"application/octet-stream"},body:i}),s=await n.json().catch(()=>({code:n.status,message:"invalid response",data:null}));if(s.code!==200)throw new Error(`[AListV3] put failed: code=${s.code}, message=${s.message}`)}}});function AP(r){let e=r.indexOf("http://"),t=r.indexOf("https://"),i=e>=0?e:t;if(i<0)throw new Error(`invalid line: ${r}, because url is required for file`);let n=r.slice(i),s=r.slice(0,i),o={url:n,name:"",level:0,modified:0,size:0,children:[]};if(i>0){if(!s.endsWith(":"))throw new Error(`invalid line: ${r}, file info must end with ':'`);let a=s.slice(0,-1);if(!a)throw new Error(`invalid line: ${r}, file name can't be empty`);let c=a.split(":");if(o.name=c[0],c.length>1){let l=parseInt(c[1],10);if(Number.isNaN(l))throw new Error(`invalid line: ${r}, file size must be an integer`);if(o.size=l,c.length>2){let d=parseInt(c[2],10);if(Number.isNaN(d))throw new Error(`invalid line: ${r}, modified must be a unix timestamp`);o.modified=d}}}else{let c=new URL(n).pathname.split("/").filter(Boolean);o.name=c[c.length-1]||n}return o}function W$(r){let e={url:"",name:"root",level:-1,modified:0,size:0,children:[]},t=[e],i=String(r||"").split(` +`);for(let n of i){let s=0;for(;s<n.length&&n[s]===" ";)s++;if(s%2!==0)throw new Error(`the line '${n}' indent is not a multiple of 2`);let o=s/2,a=n.slice(s).trim();if(a){for(;o<=t[t.length-1].level;)t.pop();if(a.endsWith(":")){let c={url:"",name:a.slice(0,-1),level:o,modified:0,size:0,children:[]};t[t.length-1].children.push(c),t.push(c)}else{let c=AP(a);c.level=o,t[t.length-1].children.push(c)}}}return e}function $l(r){if(r.url)return r.size;let e=0;for(let t of r.children)e+=$l(t);return r.size=e,e}function X$(r){let e=t=>{if(t.level===-1)return t.children.map(e).join(` `);let i=" ".repeat(t.level);if(!t.url){let a=t.children.map(e).join(` `);return`${i}${t.name}:${a?` -`+a:""}`}let s=new URL(t.url).pathname.split("/").filter(Boolean).pop()||"";if(t.size===0&&t.modified===0)return`${i}${s===t.name?t.url:`${t.name}:${t.url}`}`;let o=t.name;return(t.size!==0||t.modified!==0)&&(o+=`:${t.size}`),t.modified!==0&&(o+=`:${t.modified}`),`${i}${o}:${t.url}`};return e(r)}function $o(r){return r==="/"||!r?["root"]:["root",...r.replace(/\/+$/,"").split("/").filter(Boolean)]}function Yn(r,e){let t=$o(e),i=r;for(let n=0;n<t.length;n++){if(!i||i.name!==t[n])return null;if(n===t.length-1)return i;let s=null;for(let o of i.children)if(o.name===t[n+1]){s=o;break}i=s}return i}async function WJ(r){try{zr(r,"UrlTree head_size");let e=await fetch(r,{method:"HEAD"});if(!e.ok)return 0;let t=parseInt(e.headers.get("Content-Length")||"0",10);return Number.isFinite(t)?t:0}catch{return 0}}var _m,J4=j(()=>{"use strict";Be();He();lc();_m=class{addition;root;onUpdate;constructor(e,t){this.addition=e||{},this.root=VJ(this.addition.url_structure||""),ql(this.root),this.onUpdate=t}async init(){if(!this.addition.url_structure||!this.addition.url_structure.trim())throw new Error("[UrlTree] url_structure is required")}persist(){if(this.addition.writable&&(this.addition.url_structure=YJ(this.root),this.onUpdate))try{this.onUpdate(this.addition.url_structure)}catch{}}nodeToFileItem(e,t){let i=!e.url;return{name:e.name,size:e.size,is_dir:i,modified:e.modified?new Date(e.modified*1e3).toISOString():new Date().toISOString(),sign:"",thumb:"",type:X(e.name,i),raw_url:i?"":e.url}}async list(e,t){let i=Yn(this.root,t);if(!i)throw new Error(`[UrlTree] path not found: ${t}`);if(i.url)throw new Error(`[UrlTree] not a folder: ${t}`);let n=i.children.map(s=>this.nodeToFileItem(s,`${t.replace(/\/+$/,"")}/${s.name}`));return de(n,"name","asc")}async get(e,t){let i=Yn(this.root,t);if(!i)throw new Error(`[UrlTree] path not found: ${t}`);return this.nodeToFileItem(i,t)}async mkdir(e,t){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let i=$o(t),n=i[i.length-1],s=Yn(this.root,"/"+i.slice(1,-1).join("/"));if(!s||s.url)throw new Error("[UrlTree] parent not found");s.children.push({url:"",name:n,level:s.level+1,modified:0,size:0,children:[]}),this.persist()}async rename(e,t,i){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let n=Yn(this.root,t);if(!n)throw new Error("[UrlTree] path not found");n.name=i,this.persist()}async remove(e,t,i){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let n=$o(t),s=n[n.length-1],o=Yn(this.root,"/"+n.slice(1,-1).join("/"));if(!o)throw new Error("[UrlTree] parent not found");o.children=o.children.filter(a=>a.name!==s),ql(this.root),this.persist()}async move(e,t,i,n,s){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let o=Yn(this.root,"/"+$o(n).slice(1,-1).join("/")),a=Yn(this.root,"/"+$o(s).slice(1,-1).join("/"));if(!o||!a||a.url)throw new Error("[UrlTree] invalid path");for(let c of i){let l=o.children.findIndex(u=>u.name===c);if(l<0)continue;let[d]=o.children.splice(l,1);d.level=a.level+1,a.children.push(d)}ql(this.root),this.persist()}async copy(e,t,i,n,s){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let o=Yn(this.root,"/"+$o(n).slice(1,-1).join("/")),a=Yn(this.root,"/"+$o(s).slice(1,-1).join("/"));if(!o||!a||a.url)throw new Error("[UrlTree] invalid path");for(let c of i){let l=o.children.find(d=>d.name===c);l&&a.children.push(this.deepCopy(l,a.level+1))}ql(this.root),this.persist()}async put(e,t,i){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let n=i.toString("utf8").trim(),s=Yn(this.root,"/"+$o(t).slice(1,-1).join("/"));if(!s||s.url)throw new Error("[UrlTree] parent not found");let o=t.split("/").filter(Boolean).pop()||"file",a=z4(`${o}:${n}`);a.level=s.level+1,s.children.push(a),this.addition.head_size&&(a.size=await WJ(a.url)),ql(this.root),this.persist()}deepCopy(e,t){return{url:e.url,name:e.name,level:t,modified:e.modified,size:e.size,children:e.children.map(i=>this.deepCopy(i,t+1))}}}});function tf(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}function j4(r){let e=r.lastIndexOf("/");return e>0?r.slice(0,e):"/"}function $4(r){return r.split("/").filter(Boolean).pop()||""}function XJ(r){if(r.includes(":")){let t=r.indexOf(":"),i=r.slice(0,t),n=r.slice(t+1);if(!i.includes("/"))return[i,n]}let e=r.split("/").filter(Boolean);return[e[e.length-1]||r,r]}function V4(r){let e=String(r||"/").replace(/^\//,""),t=e.indexOf("/");return t<0?[e,""]:[e.slice(0,t),e.slice(t+1)]}var Fm,Y4=j(()=>{"use strict";Be();He();Fm=class{addition;pathMap=new Map;remotes=new Map;supportSuffix=new Set;downloadSuffix=new Set;autoFlatten=!1;oneKey="";constructor(e){this.addition=e||{}}async init(){let e=this.addition.paths||"";if(!e.trim())throw new Error("[Strm] paths is required");for(let o of e.split(` -`)){let a=o.trim();if(!a)continue;let[c,l]=XJ(a);this.pathMap.has(c)||this.pathMap.set(c,[]),this.pathMap.get(c).push(l)}this.pathMap.size===1&&(this.autoFlatten=!0,this.oneKey=this.pathMap.keys().next().value??"");let t=(this.addition.filterFileTypes||"mp4,mkv,flv,avi,wmv,ts,rmvb,webm,mp3,flac,aac,wav,ogg,m4a,wma,alac").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean);this.supportSuffix=new Set(t);let i=(this.addition.downloadFileTypes||"ass,srt,vtt,sub,strm").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean);this.downloadSuffix=new Set(i);let{resolvePath:n}=await Promise.resolve().then(()=>(Ve(),Gr)),{getDriver:s}=await Promise.resolve().then(()=>(Yt(),qi));for(let o of this.pathMap.values())for(let a of o)try{let c=await n(a);if(!c.isVirtual&&c.storage){let l=await s(c.storage.driver,c.storage);this.remotes.set(a,{driver:l,physical:c.physical||"/"})}}catch(c){console.warn(`[Strm] failed to resolve remote path '${a}':`,c)}}encodePath(e){return e.split("/").map(t=>encodeURIComponent(t)).join("/")}getLink(e){let t=e;this.addition.encodePath&&(t=this.encodePath(e));let i=this.addition.PathPrefix||"/d";return t=tf(i,t),t.startsWith("/")||(t="/"+t),this.addition.withoutUrl?t:`${(this.addition.siteUrl||"").replace(/\/+$/,"")}${t}`}ext(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t+1).toLowerCase():""}async listRemote(e,t){let i=this.remotes.get(e);if(!i)return[];let n=tf(i.physical,t);try{return await i.driver.list("",n)}catch{return[]}}convert(e,t){let i=[];for(let n of t){if(n.is_dir){i.push(n);continue}let s=this.ext(n.name),o=tf(e,n.name);if(this.downloadSuffix.has(s))i.push({...n,size:n.size});else if(this.supportSuffix.has(s)){let a=n.name.replace(/\.[^.]+$/,"")+".strm";i.push({name:a,size:new TextEncoder().encode(this.getLink(o)).length,is_dir:!1,modified:n.modified,sign:o,thumb:n.thumb||"",type:X(a,!1),raw_url:""})}}return i}async list(e,t){let i=t||"/";if(i==="/"&&!this.autoFlatten){let l=[];for(let d of this.pathMap.keys())l.push({name:d,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""});return l}let{root:n,sub:s}=this.autoFlatten?{root:this.oneKey,sub:i.replace(/^\//,"")}:(()=>{let[l,d]=V4(i);return{root:l,sub:d}})(),o=this.pathMap.get(n);if(!o)throw new Error(`[Strm] path not found: ${i}`);let a=[],c=new Set;for(let l of o){if(!this.remotes.get(l))continue;let u=tf(l,s),f=await this.listRemote(l,s);for(let h of this.convert(u,f))c.has(h.name)||(c.add(h.name),a.push(h))}return de(a,"name","asc")}async get(e,t){let i=t||"/";if(i.endsWith(".strm")){let a=j4(i),c=$4(i),d=(await this.list("",a)).find(u=>u.name===c);if(!d)throw new Error(`[Strm] not found: ${i}`);return d}let[n,s]=V4(i),o=this.pathMap.get(n);if(!o)throw new Error(`[Strm] path not found: ${i}`);for(let a of o){let c=this.remotes.get(a);if(!c)continue;let l=tf(c.physical,s);try{let d=await c.driver.get("",l);if(d)return d}catch{}}throw new Error(`[Strm] not found: ${i}`)}async mkdir(){throw new Error("[Strm] mkdir is not supported")}async rename(){throw new Error("[Strm] rename is not supported")}async remove(){throw new Error("[Strm] remove is not supported")}async move(){throw new Error("[Strm] move is not supported")}async copy(){throw new Error("[Strm] copy is not supported")}async put(){throw new Error("[Strm] put is not supported")}async createReadStream(e){let t=e||"/",i=j4(t),n=$4(t),o=(await this.list("",i)).find(l=>l.name===n);if(!o||!o.sign)throw new Error(`[Strm] not found: ${t}`);let a=this.getLink(o.sign),c=new TextEncoder().encode(a);return new ReadableStream({start(l){l.enqueue(c),l.close()}})}}});function Vo(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}function cE(r){let e=r.lastIndexOf("/");return e>0?r.slice(0,e):"/"}function Ol(r){return r.split("/").filter(Boolean).pop()||""}var Pm,W4=j(()=>{"use strict";Be();Pm=class{addition;remoteDriver=null;remoteRoot="/";chunkPrefix;customExt;partSize;constructor(e){this.addition=e||{},this.chunkPrefix=this.addition.chunk_prefix||"[openlist_chunk]",this.customExt=this.addition.custom_ext||"",this.partSize=Number(this.addition.part_size)||0}async init(){if(this.partSize<=0)throw new Error("[Chunk] part_size must be positive");if(!this.chunkPrefix)throw new Error("[Chunk] chunk_prefix must not be empty");let{resolvePath:e}=await Promise.resolve().then(()=>(Ve(),Gr)),{getDriver:t}=await Promise.resolve().then(()=>(Yt(),qi)),i=await e(this.addition.remote_path||"/");if(i.isVirtual||!i.storage)throw new Error(`[Chunk] remote_path \u672A\u5339\u914D\u5230\u6709\u6548\u5B58\u50A8: ${this.addition.remote_path}`);this.remoteRoot=i.physical||"/",this.remoteDriver=await t(i.storage.driver,i.storage)}ensureReady(){if(!this.remoteDriver)throw new Error("[Chunk] driver not initialized")}joinRemote(e){let t=String(e||"/");return((this.remoteRoot==="/"?"":this.remoteRoot)+t).replace(/\/{2,}/g,"/")||"/"}getPartName(e){return`${e}${this.customExt}`}chunkDirRemote(e){let t=cE(this.joinRemote(e)),i=Ol(e);return Vo(t,this.chunkPrefix+i)}async listParts(e){this.ensureReady();let t=this.chunkDirRemote(e),i=await this.remoteDriver.list("",t),n=[];for(let s of i){if(s.is_dir)continue;let o=parseInt(s.name.replace(new RegExp(`${this.customExt}$`),""),10);Number.isNaN(o)||(n[o]={name:s.name,size:s.size,modified:s.modified,raw_url:s.raw_url||"",raw_url_headers:s.raw_url_headers})}return n.filter(s=>!!s)}async totalChunkSize(e){return(await this.listParts(e)).reduce((i,n)=>i+n.size,0)}async list(e,t){this.ensureReady();let i=this.joinRemote(t),n=await this.remoteDriver.list("",i),s=[],o=[];for(let a of n){if(a.is_dir&&a.name.startsWith(this.chunkPrefix)){let c=a.name.slice(this.chunkPrefix.length),l=s.length;s.push(null),o.push((async()=>{let d=Vo(t,a.name),u=await this.totalChunkSize(d);s[l]={name:c,size:u,is_dir:!1,modified:a.modified,sign:this.chunkPrefix+c,type:X(c,!1),raw_url:""}})());continue}!this.addition.show_hidden&&a.name.startsWith(".")||s.push(a)}return await Promise.all(o),s.filter(a=>!!a)}async get(e,t){this.ensureReady();let i=this.joinRemote(t);try{let a=await this.remoteDriver.get("",i);if(a&&!a.is_dir||a)return a}catch{}let n=Ol(t),s=await this.totalChunkSize(t),o=await this.listParts(t);return{name:n,size:s,is_dir:!1,modified:o[0]?.modified||new Date().toISOString(),sign:this.chunkPrefix+n,type:X(n,!1),raw_url:""}}async mkdir(e,t){this.ensureReady(),await this.remoteDriver.mkdir("",this.joinRemote(t))}async rename(e,t,i){this.ensureReady();let n=this.joinRemote(t);try{await this.remoteDriver.get("",n),await this.remoteDriver.rename("",n,i)}catch{let s=cE(n),o=Vo(s,this.chunkPrefix+Ol(t));await this.remoteDriver.rename("",o,this.chunkPrefix+i)}}async remove(e,t,i){this.ensureReady();let n=this.joinRemote(t);try{await this.remoteDriver.get("",n),await this.remoteDriver.remove("",n,i)}catch{await this.remoteDriver.remove("",this.chunkDirRemote(t),i)}}async move(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);try{await this.remoteDriver.get("",o),await this.remoteDriver.move(e,t,i,o,a)}catch{await this.remoteDriver.move(e,t,i,this.chunkDirRemote(n),Vo(a,this.chunkPrefix+Ol(n)))}}async copy(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);try{await this.remoteDriver.get("",o),await this.remoteDriver.copy(e,t,i,o,a)}catch{await this.remoteDriver.copy(e,t,i,this.chunkDirRemote(n),Vo(a,this.chunkPrefix+Ol(n)))}}async put(e,t,i){this.ensureReady();let n=i.length,s=this.joinRemote(t);if(this.addition.chunk_large_file_only&&n<=this.partSize){await this.remoteDriver.put("",s,i);return}if(n<=this.partSize){await this.remoteDriver.put("",s,i);return}let o=this.chunkDirRemote(t);try{await this.remoteDriver.mkdir("",o)}catch{}let a=0,c=0;for(;a<n;){let l=Math.min(a+this.partSize,n),d=i.subarray(a,l),u=Vo(o,this.getPartName(c));await this.remoteDriver.put("",u,Buffer.from(d)),a=l,c++}}async createReadStream(e,t){this.ensureReady();let i=await this.listParts(e),n=i.reduce((d,u)=>d+u.size,0),s=this.remoteDriver,o=this.chunkPrefix,a=t?.start??0,c=t?t.end-t.start+1:n;return new ReadableStream({start:async d=>{for(let u of i){let f=u.size;if(a>=f){a-=f;continue}let h=u.raw_url;if(!h){let y=cE(e),w=Vo(Vo(y,o+Ol(e)),u.name);try{h=(await s.get("",w)).raw_url||""}catch{h=""}}if(!h){d.error(new Error(`[Chunk] failed to resolve download url for ${u.name}`));return}let g=await fetch(h,{headers:u.raw_url_headers||{}});if(!g.ok){d.error(new Error(`[Chunk] download part ${u.name} failed: HTTP ${g.status}`));return}let I=new Uint8Array(await g.arrayBuffer());if(a>0&&(I=I.subarray(a),a=0),c>=0&&I.length>c&&(I=I.subarray(0,c)),I.length>0&&d.enqueue(I),c>=0&&(c-=I.length,c<=0))break}d.close()}})}}});function ZJ(r){let e=r.replace(/^https?:\/\//,""),t=e.indexOf(".");return(t>=0?e.slice(0,t):e).toLowerCase()}function X4(r){return r.endsWith("/")?r:r+"/"}function rf(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:i}function ej(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function tj(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}async function Z4(r,e){let t=await crypto.subtle.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,new TextEncoder().encode(r));return tj(new Uint8Array(i))}function rj(r){let e={blobs:[],prefixes:[]},t=/<Blob>([\s\S]*?)<\/Blob>/g,i=/<BlobPrefix>[\s\S]*?<Name>([^<]+)<\/Name>[\s\S]*?<\/BlobPrefix>/g,n;for(;n=t.exec(r);){let s=n[1],o=(s.match(/<Name>([^<]+)<\/Name>/)||[])[1]||"";if(o.endsWith("/"))continue;let a=parseInt((s.match(/<Content-Length>(\d+)<\/Content-Length>/)||[])[1]||"0",10),c=(s.match(/<Last-Modified>([^<]+)<\/Last-Modified>/)||[])[1]||"";e.blobs.push({name:o,size:a,modified:c?new Date(c).toISOString():new Date().toISOString()})}for(;n=i.exec(r);)e.prefixes.push(n[1]);return e}var Tm,eF=j(()=>{"use strict";Be();He();Tm=class{addition;accountName;keyBytes;endpoint;container;constructor(e){this.addition=e||{},this.accountName=ZJ(this.addition.endpoint||""),this.keyBytes=ej(this.addition.access_key||""),this.endpoint=(this.addition.endpoint||"").replace(/\/+$/,""),this.container=(this.addition.container_name||"").replace(/^\/+|\/+$/g,"")}async init(){if(!/^[a-z0-9]+$/.test(this.accountName))throw new Error("[AzureBlob] invalid storage account name");if(!this.container)throw new Error("[AzureBlob] container_name is required");if(!this.addition.access_key)throw new Error("[AzureBlob] access_key is required")}async sharedKeySignature(e,t,i,n,s,o){let a=n["x-ms-date"]||"",c=Object.keys(n).filter(u=>u.startsWith("x-ms-")).sort().map(u=>`${u.toLowerCase()}:${n[u].trim()} +`+a:""}`}let s=new URL(t.url).pathname.split("/").filter(Boolean).pop()||"";if(t.size===0&&t.modified===0)return`${i}${s===t.name?t.url:`${t.name}:${t.url}`}`;let o=t.name;return(t.size!==0||t.modified!==0)&&(o+=`:${t.size}`),t.modified!==0&&(o+=`:${t.modified}`),`${i}${o}:${t.url}`};return e(r)}function sa(r){return r==="/"||!r?["root"]:["root",...r.replace(/\/+$/,"").split("/").filter(Boolean)]}function Xn(r,e){let t=sa(e),i=r;for(let n=0;n<t.length;n++){if(!i||i.name!==t[n])return null;if(n===t.length-1)return i;let s=null;for(let o of i.children)if(o.name===t[n+1]){s=o;break}i=s}return i}async function Z$(r){try{jr(r,"UrlTree head_size");let e=await fetch(r,{method:"HEAD"});if(!e.ok)return 0;let t=parseInt(e.headers.get("Content-Length")||"0",10);return Number.isFinite(t)?t:0}catch{return 0}}var Xm,hP=J(()=>{"use strict";Be();He();xc();Xm=class{addition;root;onUpdate;constructor(e,t){this.addition=e||{},this.root=W$(this.addition.url_structure||""),$l(this.root),this.onUpdate=t}async init(){if(!this.addition.url_structure||!this.addition.url_structure.trim())throw new Error("[UrlTree] url_structure is required")}persist(){if(this.addition.writable&&(this.addition.url_structure=X$(this.root),this.onUpdate))try{this.onUpdate(this.addition.url_structure)}catch{}}nodeToFileItem(e,t){let i=!e.url;return{name:e.name,size:e.size,is_dir:i,modified:e.modified?new Date(e.modified*1e3).toISOString():new Date().toISOString(),sign:"",thumb:"",type:X(e.name,i),raw_url:i?"":e.url}}async list(e,t){let i=Xn(this.root,t);if(!i)throw new Error(`[UrlTree] path not found: ${t}`);if(i.url)throw new Error(`[UrlTree] not a folder: ${t}`);let n=i.children.map(s=>this.nodeToFileItem(s,`${t.replace(/\/+$/,"")}/${s.name}`));return de(n,"name","asc")}async get(e,t){let i=Xn(this.root,t);if(!i)throw new Error(`[UrlTree] path not found: ${t}`);return this.nodeToFileItem(i,t)}async mkdir(e,t){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let i=sa(t),n=i[i.length-1],s=Xn(this.root,"/"+i.slice(1,-1).join("/"));if(!s||s.url)throw new Error("[UrlTree] parent not found");s.children.push({url:"",name:n,level:s.level+1,modified:0,size:0,children:[]}),this.persist()}async rename(e,t,i){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let n=Xn(this.root,t);if(!n)throw new Error("[UrlTree] path not found");n.name=i,this.persist()}async remove(e,t,i){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let n=sa(t),s=n[n.length-1],o=Xn(this.root,"/"+n.slice(1,-1).join("/"));if(!o)throw new Error("[UrlTree] parent not found");o.children=o.children.filter(a=>a.name!==s),$l(this.root),this.persist()}async move(e,t,i,n,s){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let o=Xn(this.root,"/"+sa(n).slice(1,-1).join("/")),a=Xn(this.root,"/"+sa(s).slice(1,-1).join("/"));if(!o||!a||a.url)throw new Error("[UrlTree] invalid path");for(let c of i){let l=o.children.findIndex(u=>u.name===c);if(l<0)continue;let[d]=o.children.splice(l,1);d.level=a.level+1,a.children.push(d)}$l(this.root),this.persist()}async copy(e,t,i,n,s){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let o=Xn(this.root,"/"+sa(n).slice(1,-1).join("/")),a=Xn(this.root,"/"+sa(s).slice(1,-1).join("/"));if(!o||!a||a.url)throw new Error("[UrlTree] invalid path");for(let c of i){let l=o.children.find(d=>d.name===c);l&&a.children.push(this.deepCopy(l,a.level+1))}$l(this.root),this.persist()}async put(e,t,i){if(!this.addition.writable)throw new Error("[UrlTree] not writable");let n=i.toString("utf8").trim(),s=Xn(this.root,"/"+sa(t).slice(1,-1).join("/"));if(!s||s.url)throw new Error("[UrlTree] parent not found");let o=t.split("/").filter(Boolean).pop()||"file",a=AP(`${o}:${n}`);a.level=s.level+1,s.children.push(a),this.addition.head_size&&(a.size=await Z$(a.url)),$l(this.root),this.persist()}deepCopy(e,t){return{url:e.url,name:e.name,level:t,modified:e.modified,size:e.size,children:e.children.map(i=>this.deepCopy(i,t+1))}}}});function pf(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}function gP(r){let e=r.lastIndexOf("/");return e>0?r.slice(0,e):"/"}function pP(r){return r.split("/").filter(Boolean).pop()||""}function eV(r){if(r.includes(":")){let t=r.indexOf(":"),i=r.slice(0,t),n=r.slice(t+1);if(!i.includes("/"))return[i,n]}let e=r.split("/").filter(Boolean);return[e[e.length-1]||r,r]}function mP(r){let e=String(r||"/").replace(/^\//,""),t=e.indexOf("/");return t<0?[e,""]:[e.slice(0,t),e.slice(t+1)]}var Zm,yP=J(()=>{"use strict";Be();He();Zm=class{addition;pathMap=new Map;remotes=new Map;supportSuffix=new Set;downloadSuffix=new Set;autoFlatten=!1;oneKey="";constructor(e){this.addition=e||{}}async init(){let e=this.addition.paths||"";if(!e.trim())throw new Error("[Strm] paths is required");for(let o of e.split(` +`)){let a=o.trim();if(!a)continue;let[c,l]=eV(a);this.pathMap.has(c)||this.pathMap.set(c,[]),this.pathMap.get(c).push(l)}this.pathMap.size===1&&(this.autoFlatten=!0,this.oneKey=this.pathMap.keys().next().value??"");let t=(this.addition.filterFileTypes||"mp4,mkv,flv,avi,wmv,ts,rmvb,webm,mp3,flac,aac,wav,ogg,m4a,wma,alac").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean);this.supportSuffix=new Set(t);let i=(this.addition.downloadFileTypes||"ass,srt,vtt,sub,strm").split(",").map(o=>o.trim().toLowerCase()).filter(Boolean);this.downloadSuffix=new Set(i);let{resolvePath:n}=await Promise.resolve().then(()=>(Ye(),Jr)),{getDriver:s}=await Promise.resolve().then(()=>(Yt(),Mi));for(let o of this.pathMap.values())for(let a of o)try{let c=await n(a);if(!c.isVirtual&&c.storage){let l=await s(c.storage.driver,c.storage);this.remotes.set(a,{driver:l,physical:c.physical||"/"})}}catch(c){console.warn(`[Strm] failed to resolve remote path '${a}':`,c)}}encodePath(e){return e.split("/").map(t=>encodeURIComponent(t)).join("/")}getLink(e){let t=e;this.addition.encodePath&&(t=this.encodePath(e));let i=this.addition.PathPrefix||"/d";return t=pf(i,t),t.startsWith("/")||(t="/"+t),this.addition.withoutUrl?t:`${(this.addition.siteUrl||"").replace(/\/+$/,"")}${t}`}ext(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t+1).toLowerCase():""}async listRemote(e,t){let i=this.remotes.get(e);if(!i)return[];let n=pf(i.physical,t);try{return await i.driver.list("",n)}catch{return[]}}convert(e,t){let i=[];for(let n of t){if(n.is_dir){i.push(n);continue}let s=this.ext(n.name),o=pf(e,n.name);if(this.downloadSuffix.has(s))i.push({...n,size:n.size});else if(this.supportSuffix.has(s)){let a=n.name.replace(/\.[^.]+$/,"")+".strm";i.push({name:a,size:new TextEncoder().encode(this.getLink(o)).length,is_dir:!1,modified:n.modified,sign:o,thumb:n.thumb||"",type:X(a,!1),raw_url:""})}}return i}async list(e,t){let i=t||"/";if(i==="/"&&!this.autoFlatten){let l=[];for(let d of this.pathMap.keys())l.push({name:d,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""});return l}let{root:n,sub:s}=this.autoFlatten?{root:this.oneKey,sub:i.replace(/^\//,"")}:(()=>{let[l,d]=mP(i);return{root:l,sub:d}})(),o=this.pathMap.get(n);if(!o)throw new Error(`[Strm] path not found: ${i}`);let a=[],c=new Set;for(let l of o){if(!this.remotes.get(l))continue;let u=pf(l,s),f=await this.listRemote(l,s);for(let h of this.convert(u,f))c.has(h.name)||(c.add(h.name),a.push(h))}return de(a,"name","asc")}async get(e,t){let i=t||"/";if(i.endsWith(".strm")){let a=gP(i),c=pP(i),d=(await this.list("",a)).find(u=>u.name===c);if(!d)throw new Error(`[Strm] not found: ${i}`);return d}let[n,s]=mP(i),o=this.pathMap.get(n);if(!o)throw new Error(`[Strm] path not found: ${i}`);for(let a of o){let c=this.remotes.get(a);if(!c)continue;let l=pf(c.physical,s);try{let d=await c.driver.get("",l);if(d)return d}catch{}}throw new Error(`[Strm] not found: ${i}`)}async mkdir(){throw new Error("[Strm] mkdir is not supported")}async rename(){throw new Error("[Strm] rename is not supported")}async remove(){throw new Error("[Strm] remove is not supported")}async move(){throw new Error("[Strm] move is not supported")}async copy(){throw new Error("[Strm] copy is not supported")}async put(){throw new Error("[Strm] put is not supported")}async createReadStream(e){let t=e||"/",i=gP(t),n=pP(t),o=(await this.list("",i)).find(l=>l.name===n);if(!o||!o.sign)throw new Error(`[Strm] not found: ${t}`);let a=this.getLink(o.sign),c=new TextEncoder().encode(a);return new ReadableStream({start(l){l.enqueue(c),l.close()}})}}});function oa(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:"/"+i}function NE(r){let e=r.lastIndexOf("/");return e>0?r.slice(0,e):"/"}function Vl(r){return r.split("/").filter(Boolean).pop()||""}var ey,IP=J(()=>{"use strict";Be();ey=class{addition;remoteDriver=null;remoteRoot="/";chunkPrefix;customExt;partSize;constructor(e){this.addition=e||{},this.chunkPrefix=this.addition.chunk_prefix||"[openlist_chunk]",this.customExt=this.addition.custom_ext||"",this.partSize=Number(this.addition.part_size)||0}async init(){if(this.partSize<=0)throw new Error("[Chunk] part_size must be positive");if(!this.chunkPrefix)throw new Error("[Chunk] chunk_prefix must not be empty");let{resolvePath:e}=await Promise.resolve().then(()=>(Ye(),Jr)),{getDriver:t}=await Promise.resolve().then(()=>(Yt(),Mi)),i=await e(this.addition.remote_path||"/");if(i.isVirtual||!i.storage)throw new Error(`[Chunk] remote_path \u672A\u5339\u914D\u5230\u6709\u6548\u5B58\u50A8: ${this.addition.remote_path}`);this.remoteRoot=i.physical||"/",this.remoteDriver=await t(i.storage.driver,i.storage)}ensureReady(){if(!this.remoteDriver)throw new Error("[Chunk] driver not initialized")}joinRemote(e){let t=String(e||"/");return((this.remoteRoot==="/"?"":this.remoteRoot)+t).replace(/\/{2,}/g,"/")||"/"}getPartName(e){return`${e}${this.customExt}`}chunkDirRemote(e){let t=NE(this.joinRemote(e)),i=Vl(e);return oa(t,this.chunkPrefix+i)}async listParts(e){this.ensureReady();let t=this.chunkDirRemote(e),i=await this.remoteDriver.list("",t),n=[];for(let s of i){if(s.is_dir)continue;let o=parseInt(s.name.replace(new RegExp(`${this.customExt}$`),""),10);Number.isNaN(o)||(n[o]={name:s.name,size:s.size,modified:s.modified,raw_url:s.raw_url||"",raw_url_headers:s.raw_url_headers})}return n.filter(s=>!!s)}async totalChunkSize(e){return(await this.listParts(e)).reduce((i,n)=>i+n.size,0)}async list(e,t){this.ensureReady();let i=this.joinRemote(t),n=await this.remoteDriver.list("",i),s=[],o=[];for(let a of n){if(a.is_dir&&a.name.startsWith(this.chunkPrefix)){let c=a.name.slice(this.chunkPrefix.length),l=s.length;s.push(null),o.push((async()=>{let d=oa(t,a.name),u=await this.totalChunkSize(d);s[l]={name:c,size:u,is_dir:!1,modified:a.modified,sign:this.chunkPrefix+c,type:X(c,!1),raw_url:""}})());continue}!this.addition.show_hidden&&a.name.startsWith(".")||s.push(a)}return await Promise.all(o),s.filter(a=>!!a)}async get(e,t){this.ensureReady();let i=this.joinRemote(t);try{let a=await this.remoteDriver.get("",i);if(a&&!a.is_dir||a)return a}catch{}let n=Vl(t),s=await this.totalChunkSize(t),o=await this.listParts(t);return{name:n,size:s,is_dir:!1,modified:o[0]?.modified||new Date().toISOString(),sign:this.chunkPrefix+n,type:X(n,!1),raw_url:""}}async mkdir(e,t){this.ensureReady(),await this.remoteDriver.mkdir("",this.joinRemote(t))}async rename(e,t,i){this.ensureReady();let n=this.joinRemote(t);try{await this.remoteDriver.get("",n),await this.remoteDriver.rename("",n,i)}catch{let s=NE(n),o=oa(s,this.chunkPrefix+Vl(t));await this.remoteDriver.rename("",o,this.chunkPrefix+i)}}async remove(e,t,i){this.ensureReady();let n=this.joinRemote(t);try{await this.remoteDriver.get("",n),await this.remoteDriver.remove("",n,i)}catch{await this.remoteDriver.remove("",this.chunkDirRemote(t),i)}}async move(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);try{await this.remoteDriver.get("",o),await this.remoteDriver.move(e,t,i,o,a)}catch{await this.remoteDriver.move(e,t,i,this.chunkDirRemote(n),oa(a,this.chunkPrefix+Vl(n)))}}async copy(e,t,i,n,s){this.ensureReady();let o=this.joinRemote(n),a=this.joinRemote(s);try{await this.remoteDriver.get("",o),await this.remoteDriver.copy(e,t,i,o,a)}catch{await this.remoteDriver.copy(e,t,i,this.chunkDirRemote(n),oa(a,this.chunkPrefix+Vl(n)))}}async put(e,t,i){this.ensureReady();let n=i.length,s=this.joinRemote(t);if(this.addition.chunk_large_file_only&&n<=this.partSize){await this.remoteDriver.put("",s,i);return}if(n<=this.partSize){await this.remoteDriver.put("",s,i);return}let o=this.chunkDirRemote(t);try{await this.remoteDriver.mkdir("",o)}catch{}let a=0,c=0;for(;a<n;){let l=Math.min(a+this.partSize,n),d=i.subarray(a,l),u=oa(o,this.getPartName(c));await this.remoteDriver.put("",u,Buffer.from(d)),a=l,c++}}async createReadStream(e,t){this.ensureReady();let i=await this.listParts(e),n=i.reduce((d,u)=>d+u.size,0),s=this.remoteDriver,o=this.chunkPrefix,a=t?.start??0,c=t?t.end-t.start+1:n;return new ReadableStream({start:async d=>{for(let u of i){let f=u.size;if(a>=f){a-=f;continue}let h=u.raw_url;if(!h){let m=NE(e),w=oa(oa(m,o+Vl(e)),u.name);try{h=(await s.get("",w)).raw_url||""}catch{h=""}}if(!h){d.error(new Error(`[Chunk] failed to resolve download url for ${u.name}`));return}let g=await fetch(h,{headers:u.raw_url_headers||{}});if(!g.ok){d.error(new Error(`[Chunk] download part ${u.name} failed: HTTP ${g.status}`));return}let I=new Uint8Array(await g.arrayBuffer());if(a>0&&(I=I.subarray(a),a=0),c>=0&&I.length>c&&(I=I.subarray(0,c)),I.length>0&&d.enqueue(I),c>=0&&(c-=I.length,c<=0))break}d.close()}})}}});function tV(r){let e=r.replace(/^https?:\/\//,""),t=e.indexOf(".");return(t>=0?e.slice(0,t):e).toLowerCase()}function wP(r){return r.endsWith("/")?r:r+"/"}function mf(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:i}function rV(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function iV(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}async function xP(r,e){let t=await crypto.subtle.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("HMAC",t,new TextEncoder().encode(r));return iV(new Uint8Array(i))}function nV(r){let e={blobs:[],prefixes:[]},t=/<Blob>([\s\S]*?)<\/Blob>/g,i=/<BlobPrefix>[\s\S]*?<Name>([^<]+)<\/Name>[\s\S]*?<\/BlobPrefix>/g,n;for(;n=t.exec(r);){let s=n[1],o=(s.match(/<Name>([^<]+)<\/Name>/)||[])[1]||"";if(o.endsWith("/"))continue;let a=parseInt((s.match(/<Content-Length>(\d+)<\/Content-Length>/)||[])[1]||"0",10),c=(s.match(/<Last-Modified>([^<]+)<\/Last-Modified>/)||[])[1]||"";e.blobs.push({name:o,size:a,modified:c?new Date(c).toISOString():new Date().toISOString()})}for(;n=i.exec(r);)e.prefixes.push(n[1]);return e}var ty,CP=J(()=>{"use strict";Be();He();ty=class{addition;accountName;keyBytes;endpoint;container;constructor(e){this.addition=e||{},this.accountName=tV(this.addition.endpoint||""),this.keyBytes=rV(this.addition.access_key||""),this.endpoint=(this.addition.endpoint||"").replace(/\/+$/,""),this.container=(this.addition.container_name||"").replace(/^\/+|\/+$/g,"")}async init(){if(!/^[a-z0-9]+$/.test(this.accountName))throw new Error("[AzureBlob] invalid storage account name");if(!this.container)throw new Error("[AzureBlob] container_name is required");if(!this.addition.access_key)throw new Error("[AzureBlob] access_key is required")}async sharedKeySignature(e,t,i,n,s,o){let a=n["x-ms-date"]||"",c=Object.keys(n).filter(u=>u.startsWith("x-ms-")).sort().map(u=>`${u.toLowerCase()}:${n[u].trim()} `).join(""),l=`/${this.accountName}${t?"/"+t:""} ${i.split("&").filter(Boolean).sort().map(u=>{let[f,h]=u.split("=");return`${f.toLowerCase()}:${h||""}`}).join(` `)}`,d=`${e} @@ -170,7 +172,7 @@ ${o} -${c}${l}`;return Z4(d,this.keyBytes)}async request(e,t,i,n={}){let s=new Date().toUTCString(),o=n.contentType||"",a=n.body?String(n.body.length):"",c={"x-ms-date":s,"x-ms-version":"2021-08-06",...n.extraHeaders||{}},l=await this.sharedKeySignature(e,t,i,c,a,o),d=`${this.endpoint}/${this.container}${t?"/"+t:""}${i?"?"+i:""}`,u={Authorization:`SharedKey ${this.accountName}:${l}`,...c};return a&&(u["Content-Length"]=a),o&&(u["Content-Type"]=o),fetch(d,{method:e,headers:u,...n.body?{body:n.body}:{}})}async sasUrl(e){let i=new Date(Date.now()+(this.addition.sign_url_expire||4)*3600*1e3).toISOString().replace(/\.\d+Z$/,"Z"),n=`/blob/${this.accountName}/${this.container}/${e}`,s=`r +${c}${l}`;return xP(d,this.keyBytes)}async request(e,t,i,n={}){let s=new Date().toUTCString(),o=n.contentType||"",a=n.body?String(n.body.length):"",c={"x-ms-date":s,"x-ms-version":"2021-08-06",...n.extraHeaders||{}},l=await this.sharedKeySignature(e,t,i,c,a,o),d=`${this.endpoint}/${this.container}${t?"/"+t:""}${i?"?"+i:""}`,u={Authorization:`SharedKey ${this.accountName}:${l}`,...c};return a&&(u["Content-Length"]=a),o&&(u["Content-Type"]=o),fetch(d,{method:e,headers:u,...n.body?{body:n.body}:{}})}async sasUrl(e){let i=new Date(Date.now()+(this.addition.sign_url_expire||4)*3600*1e3).toISOString().replace(/\.\d+Z$/,"Z"),n=`/blob/${this.accountName}/${this.container}/${e}`,s=`r ${i} @@ -183,49 +185,49 @@ ${n} -`,o=encodeURIComponent(await Z4(s,this.keyBytes));return`${this.endpoint}/${this.container}/${e}?sp=r&st=&se=${encodeURIComponent(i)}&sv=2021-08-06&sr=b&sig=${o}`}getKey(e){return String(e||"/").replace(/^\/+/,"")}async list(e,t){let i=this.getKey(t);i&&(i=X4(i));let n=`restype=container&comp=list&delimiter=%2F&prefix=${encodeURIComponent(i)}`,s=await this.request("GET","",n);if(!s.ok)throw new Error(`[AzureBlob] list failed: HTTP ${s.status}`);let o=await s.text(),{blobs:a,prefixes:c}=rj(o),l=[];for(let d of c){let u=d.replace(/\/+$/,"").split("/").filter(Boolean).pop()||d;l.push({name:u,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""})}for(let d of a){let u=d.name.split("/").filter(Boolean).pop()||d.name;l.push({name:u,size:d.size,is_dir:!1,modified:d.modified,sign:d.name,type:X(u,!1),raw_url:""})}return de(l,"name","asc")}async get(e,t){let i=this.getKey(t),n=i.split("/").filter(Boolean).pop()||i,s=await this.sasUrl(i);return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:s}}async mkdir(e,t){let i=X4(this.getKey(t)),n=await this.request("PUT",i,"",{body:new Uint8Array(0),contentType:"application/octet-stream",extraHeaders:{"x-ms-blob-type":"BlockBlob","x-ms-meta-hdi_isfolder":"true"}});if(!n.ok)throw new Error(`[AzureBlob] mkdir failed: HTTP ${n.status}`)}async rename(e,t,i){let n=this.getKey(t),s=rf(t.split("/").slice(0,-1).join("/"),i).replace(/^\/+/,"");await this.copyBlob(n,s),await this.deleteBlob(n)}async remove(e,t,i){let n=this.getKey(t);await this.deleteBlob(n)}async move(e,t,i,n,s){for(let o of i){let a=rf(this.getKey(n),o),c=rf(this.getKey(s),o);await this.copyBlob(a,c),await this.deleteBlob(a)}}async copy(e,t,i,n,s){for(let o of i){let a=rf(this.getKey(n),o),c=rf(this.getKey(s),o);await this.copyBlob(a,c)}}async put(e,t,i){let n=this.getKey(t),s=await this.request("PUT",n,"",{body:new Uint8Array(i),contentType:"application/octet-stream",extraHeaders:{"x-ms-blob-type":"BlockBlob"}});if(!s.ok)throw new Error(`[AzureBlob] put failed: HTTP ${s.status}`)}async copyBlob(e,t){let i=`${this.endpoint}/${this.container}/${e}`,n=await this.request("PUT",t,"",{body:new Uint8Array(0),contentType:"application/octet-stream",extraHeaders:{"x-ms-blob-type":"BlockBlob","x-ms-copy-source":i}});if(n.status!==201&&n.status!==202&&!n.ok)throw new Error(`[AzureBlob] copy failed: HTTP ${n.status}`)}async deleteBlob(e){let t=await this.request("DELETE",e,"");if(t.status!==202&&t.status!==404&&!t.ok)throw new Error(`[AzureBlob] delete failed: HTTP ${t.status}`)}}});function nf(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:i}var Um,tF=j(()=>{"use strict";Be();He();si();Um=class{addition;authHeader;apiBase;constructor(e){this.addition=e||{};let t=this.addition.operator_name||"",i=this.addition.operator_password||"";this.authHeader=`Basic ${btoa(`${t}:${i}`)}`,this.apiBase=`https://v0.api.upyun.com/${this.addition.bucket||""}`}async init(){if(!this.addition.bucket||!this.addition.operator_name||!this.addition.operator_password)throw new Error("[USS] bucket / operator_name / operator_password are required")}getKey(e,t=!1){let i=String(e||"/").replace(/^\/+/,"");return t&&i&&!i.endsWith("/")&&(i+="/"),i}getDownloadHost(){let e=this.addition.endpoint||"";return/^https?:\/\//.test(e)||(e="https://"+e),e.replace(/\/+$/,"")}async list(e,t){let i=this.getKey(t,!0),n=`${this.apiBase}/${i}`,s=await fetch(n,{method:"GET",headers:{Authorization:this.authHeader,Accept:"application/json"}});if(!s.ok)throw new Error(`[USS] list failed: HTTP ${s.status}`);let o=await s.text(),a=[];try{let c=JSON.parse(o);if(Array.isArray(c)){for(let l of c){let d=l.name||l.file_name||"",u=l.type==="F"||l.is_dir===!0||d.endsWith("/");a.push({name:d.replace(/\/+$/,""),size:l.length||l.size||0,is_dir:u,modified:l.last_modified?new Date(l.last_modified*1e3).toISOString():new Date().toISOString(),sign:"",type:X(d,u),raw_url:""})}return de(a,"name","asc")}}catch{}for(let c of o.split(` -`)){let l=c.trim();if(!l)continue;let d=l.split(" "),u=(d[0]||"").trim(),h=(d[1]||"").trim()==="F"||u.endsWith("/");a.push({name:u.replace(/\/+$/,""),size:parseInt(d[2]||"0",10)||0,is_dir:h,modified:d[3]?new Date(parseInt(d[3],10)*1e3).toISOString():new Date().toISOString(),sign:"",type:X(u,h),raw_url:""})}return de(a,"name","asc")}async get(e,t){let i=this.getKey(t),n=i.split("/").filter(Boolean).pop()||i,s=Math.floor(Date.now()/1e3)+(this.addition.sign_url_expire||4)*3600,a=`${this.addition.anti_theft_chain_token||this.addition.operator_password}&${s}&/${i}`,c=$t(a).slice(12,20)+s,l=encodeURIComponent(n),d=`${this.getDownloadHost()}/${i}?_upd=${l}&_upt=${c}`;return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:d}}async mkdir(e,t){let i=this.getKey(t,!0),n=await fetch(`${this.apiBase}/${i}`,{method:"POST",headers:{Authorization:this.authHeader,Folder:"true"}});if(!n.ok)throw new Error(`[USS] mkdir failed: HTTP ${n.status}`)}async rename(e,t,i){let n=this.getKey(t),s=nf(t.split("/").slice(0,-1).join("/"),i).replace(/^\/+/,"");await this.moveOrCopy(n,s,"move")}async remove(e,t,i){let n=this.getKey(t),s=await fetch(`${this.apiBase}/${n}`,{method:"DELETE",headers:{Authorization:this.authHeader}});if(!s.ok)throw new Error(`[USS] remove failed: HTTP ${s.status}`)}async move(e,t,i,n,s){for(let o of i){let a=nf(this.getKey(n),o),c=nf(this.getKey(s),o);await this.moveOrCopy(a,c,"move")}}async copy(e,t,i,n,s){for(let o of i){let a=nf(this.getKey(n),o),c=nf(this.getKey(s),o);await this.moveOrCopy(a,c,"copy")}}async put(e,t,i){let n=this.getKey(t),s=await fetch(`${this.apiBase}/${n}`,{method:"PUT",headers:{Authorization:this.authHeader,"Content-Type":"application/octet-stream"},body:i});if(!s.ok)throw new Error(`[USS] put failed: HTTP ${s.status}`)}async moveOrCopy(e,t,i){let n=i==="move"?"X-Upyun-Move-Source":"X-Upyun-Copy-Source",s=await fetch(`${this.apiBase}/${t}`,{method:"PUT",headers:{Authorization:this.authHeader,[n]:`/${e}`}});if(!s.ok)throw new Error(`[USS] ${i} failed: HTTP ${s.status}`)}}});function ij(r){return r?r.message?r.message:r.msg?r.msg:"request failed":"request failed"}var Ms,lE,Rm,rF=j(()=>{"use strict";Ms="https://alidocs.dingtalk.com",lE="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36";Rm=class{constructor(e){this.cookie=e}cookie;headers(){return{Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:Ms+"/",Origin:Ms,"User-Agent":lE}}async request(e,t){let i=await fetch(e,{...t,headers:{...this.headers(),...t?.headers||{}}}),n=await i.json().catch(()=>({}));if(!i.ok||n.isSuccess===!1)throw new Error(ij(n));return n}async checkCookie(){await this.request(`${Ms}/portal/api/v1/mine/info`)}async list(e){let t=new URLSearchParams({dentryUuid:e,withParentAncestors:"true",orderType:"SORT_KEY",sortType:"desc",listDentrySource:"2",pageSize:"1000"});return(await this.request(`${Ms}/box/api/v2/dentry/list?${t.toString()}`)).data?.children||[]}async download(e){let t=new URLSearchParams({dentryUuid:e,version:"1",supportDownloadTypes:"URL_PRE_SIGNATURE,HTTP_TO_CENTER",downloadType:"URL_PRE_SIGNATURE"}),n=(await this.request(`${Ms}/box/api/v2/file/download?${t.toString()}`)).data?.ossUrlPreSignatureInfo?.preSignUrls||[];if(n.length===0)throw new Error("empty download url");return n[0]}async post(e,t){await this.request(`${Ms}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}}});function nj(r){let e={...r||{}};return e.cookie=(e.cookie||"").trim(),e.root_folder_id=(e.root_folder_id||"").trim(),e}function iF(r){let e=r.dentryType==="folder";return{name:r.name,size:e?0:r.fileSize||0,is_dir:e,modified:r.updatedTime?new Date(r.updatedTime).toISOString():new Date().toISOString(),created:r.createdTime?new Date(r.createdTime).toISOString():void 0,sign:r.dentryUuid,type:X(r.name,e)}}var Nm,nF=j(()=>{"use strict";Be();He();rF();Nm=class{addition;client;idCache=new Map;constructor(e){this.addition=nj(e),this.client=new Rm(this.addition.cookie)}async init(){if(!this.addition.cookie)throw new Error("cookie is empty");if(!this.addition.root_folder_id)throw new Error("root folder id is empty");await this.client.checkCookie()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id;let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s=this.addition.root_folder_id,o="/";for(let a of n){let l=(await this.client.list(s)).find(d=>d.name===a&&d.dentryType==="folder");if(!l)throw new Error(`folder not found: ${a}`);s=l.dentryUuid,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async resolveItemId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id;let i=this.idCache.get(t);if(i)return i;let n=t.split("/").slice(0,-1).join("/")||"/",s=t.split("/").pop()||"",o=await this.resolveId(n),c=(await this.client.list(o)).find(l=>l.name===s);if(!c)throw new Error(`item not found: ${s}`);return this.idCache.set(t,c.dentryUuid),c.dentryUuid}async list(e,t){let i=await this.resolveId(t),n=await this.client.list(i),s=this.cleanPath(t),o=n.filter(a=>a.dentryUuid&&a.name).map(a=>(this.idCache.set(this.joinPath(s,a.name),a.dentryUuid),iF(a)));return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.addition.root_folder_id,type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=await this.resolveId(s),c=(await this.client.list(o)).find(u=>u.name===n);if(!c)throw new Error("file not found");let l=c.dentryType==="folder",d="";return l||(d=await this.client.download(c.dentryUuid)),this.idCache.set(i,c.dentryUuid),{...iF(c),raw_url:d,raw_url_headers:{"User-Agent":lE,Referer:Ms+"/",Origin:Ms}}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/")||"/",s=i.split("/").pop()||"",o=await this.resolveId(n);await this.client.post("/box/api/v2/dentry/createfolder",{dentryType:"folder",name:s,parentDentryUuid:o,conflictHandleStrategy:"auto_rename"})}async rename(e,t,i){let n=await this.resolveItemId(t);await this.client.post("/box/api/v2/dentry/rename",{dentryUuid:n,name:i})}async move(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a);await this.client.post("/box/api/v2/dentry/move",{targetParentDentryUuid:c,sourceDentryUuid:o,operateFrom:1})}async copy(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a);await this.client.post("/box/api/v2/dentry/copy",{sourceDentryUuid:o,targetParentDentryUuid:c,operateFrom:1,onlyCopyMeta:!1})}async remove(e,t,i){let n=await this.resolveItemId(t);await this.client.post("/box/api/v1/dentry/recycle",{dentryUuid:n})}async put(e,t,i){throw new Error("AliDoc does not support upload")}}});var sj,qm,sF=j(()=>{"use strict";sj='MediaBrowser Client="OpenList", Device="OpenList", DeviceId="openlist-emby", Version="1.0.0"',qm=class{baseURL;token;userID;constructor(e,t="",i=""){this.baseURL=(e||"").trim().replace(/\/+$/,""),this.token=t,this.userID=i}async login(e,t){let i=await fetch(`${this.baseURL}/Users/AuthenticateByName`,{method:"POST",headers:{"Content-Type":"application/json","X-Emby-Authorization":sj},body:JSON.stringify({Username:e,Pw:t})});if(!i.ok)throw new Error(`emby auth failed: status=${i.status}`);let n=await i.json();if(!n.AccessToken||!n.User?.Id)throw new Error("emby auth response missing access token or user id");this.token=n.AccessToken,this.userID=n.User.Id}async getItems(e){let t=new URLSearchParams({ParentId:e,Recursive:"false",Fields:"Path,Size,DateCreated,SeriesName,IndexNumber,ParentIndexNumber",api_key:this.token}),i=await fetch(`${this.baseURL}/Users/${this.userID}/Items?${t.toString()}`);if(!i.ok)throw new Error(`emby list failed: status=${i.status}`);return await i.json()}async getItemDetail(e){let t=new URLSearchParams({Fields:"MediaSources",api_key:this.token}),i=await fetch(`${this.baseURL}/Users/${this.userID}/Items/${encodeURIComponent(e)}?${t.toString()}`);return i.ok?await i.json():null}}});function oj(r){let e={...r||{}};return e.url=(e.url||"").trim().replace(/\/+$/,""),e.api_key=(e.api_key||"").trim(),e.user_id=(e.user_id||"").trim(),e.username=(e.username||"").trim(),e.password=(e.password||"").trim(),e.link_method=(e.link_method||"stream").toLowerCase(),e.root_folder_id=(e.root_folder_id||"").trim()||"1",e}function oF(r){return{name:r.Name,size:r.IsFolder?0:r.Size||0,is_dir:r.IsFolder,modified:r.DateCreated?new Date(r.DateCreated).toISOString():new Date().toISOString(),sign:r.Id,type:X(r.Name,r.IsFolder)}}var Om,aF=j(()=>{"use strict";Be();He();sF();Om=class{addition;client;idCache=new Map;constructor(e){this.addition=oj(e),this.client=new qm(this.addition.url,this.addition.api_key,this.addition.user_id)}async init(){if(!this.addition.url)throw new Error("url is required");if(this.addition.api_key){if(!this.addition.user_id)throw new Error("user_id is required when api_key is set");return}if(!this.addition.username)throw new Error("please provide api_key+user_id or username(+password)");await this.client.login(this.addition.username,this.addition.password)}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id;let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s=this.addition.root_folder_id,o="/";for(let a of n){let l=(await this.client.getItems(s)).Items.find(d=>d.Name===a&&d.IsFolder);if(!l)throw new Error(`folder not found: ${a}`);s=l.Id,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async list(e,t){let i=await this.resolveId(t),n=await this.client.getItems(i),s=this.cleanPath(t),o=n.Items.map(a=>(this.idCache.set(this.joinPath(s,a.Name),a.Id),oF(a)));return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.addition.root_folder_id,type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=await this.resolveId(s),c=(await this.client.getItems(o)).Items.find(u=>u.Name===n);if(!c)throw new Error("file not found");let l=c.IsFolder,d="";return l||(d=await this.buildLink(c.Id)),this.idCache.set(i,c.Id),{...oF(c),raw_url:d,raw_url_headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36"}}}async buildLink(e){let t=this.addition.link_method==="download",i="",n="";if(!t){let o=await this.client.getItemDetail(e);if(o&&o.MediaSources?.length){let a=o.MediaSources.find(c=>c.Id&&c.SupportsDirectStream)||o.MediaSources.find(c=>c.Id);a&&(i=a.Id,n=a.Container)}}let s=new URL(this.addition.url);return t?s.pathname=`${s.pathname.replace(/\/+$/,"")}/Items/${encodeURIComponent(e)}/Download`:n?s.pathname=`${s.pathname.replace(/\/+$/,"")}/Videos/${encodeURIComponent(e)}/stream.${n}`:s.pathname=`${s.pathname.replace(/\/+$/,"")}/Videos/${encodeURIComponent(e)}/stream`,s.searchParams.set("api_key",this.client.token),i&&s.searchParams.set("MediaSourceId",i),t||s.searchParams.set("Static","true"),s.toString()}async mkdir(e,t){throw new Error("Emby is read-only")}async rename(e,t,i){throw new Error("Emby is read-only")}async move(e,t,i,n,s){throw new Error("Emby is read-only")}async copy(e,t,i,n,s){throw new Error("Emby is read-only")}async remove(e,t,i){throw new Error("Emby is read-only")}async put(e,t,i){throw new Error("Emby is read-only")}}});function Lm(r,e){let t=(r||"").trim();if(t||(t=e),!t)throw new Error("empty url");t.includes("://")||(t="https://"+t);let i=new URL(t);if(!i.host)throw new Error("invalid url: "+r);return i.pathname=i.pathname.replace(/\/+$/,""),i.toString()}function Yo(r){return r?"/"+r.replace(/^\/+/,"").split("/").filter(Boolean).join("/"):"/"}function cF(r){let e=new Uint8Array(r),t="";for(let i of e)t+=String.fromCharCode(i);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function aj(r){return crypto.subtle.digest("SHA-256",new TextEncoder().encode(r))}async function cj(r,e){let t=await crypto.subtle.importKey("raw",new TextEncoder().encode(r),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return crypto.subtle.sign("HMAC",t,new TextEncoder().encode(e))}function lj(r){return Array.from(r.keys()).filter(t=>t!=="token"&&t!=="expires").sort().map(t=>`${t}=${r.get(t)||""}`).join("&")}function Ic(r,e,t){let i=Lm(r.endpoint,Mm),n=new URL(i),s=Yo(e),o=(r.storage_zone_name||"").replace(/^\/+|\/+$/g,"");return s==="/"?n.pathname=`/${o}/`:(n.pathname=`/${o}/${s.replace(/^\/+/,"")}`,t&&!n.pathname.endsWith("/")&&(n.pathname+="/")),n.toString()}function dF(r,e){let t=new URL(r.cdn_base_url),i=Yo(e),n=t.pathname.replace(/\/+$/,"");return i==="/"?t.pathname=n?n+"/":"/":t.pathname=n+"/"+i.replace(/^\/+/,""),t.toString()}async function uF(r,e){let t=r.sign_url_expire>0?r.sign_url_expire:4,i=Math.floor(Date.now()/1e3)+t*3600,n=new URL(e),s=lj(n.searchParams),o=decodeURIComponent(n.pathname),a=(r.cdn_token_method||"sha256").toLowerCase(),c;if(a==="hmac_sha256"){let l=await cj(r.cdn_token_key,o+String(i)+s);c="HS256-"+cF(l)}else{let l=await aj(r.cdn_token_key+o+String(i)+s);c=cF(l)}return n.searchParams.set("token",c),n.searchParams.set("expires",String(i)),n.toString()}async function Ml(r){if(r.ok)return;let e=await r.text().catch(()=>"")||"",t=e.trim();try{let i=JSON.parse(e);i?.length&&i[0].Message&&(t=i[0].Message)}catch{}throw new Error(`bunny storage request failed: ${r.status} ${t}`)}var Mm,lF,fF=j(()=>{"use strict";Mm="storage.bunnycdn.com",lF=".openlist"});function dj(r){let e={...r||{}};return e.storage_zone_name=(e.storage_zone_name||"").trim(),e.access_key=(e.access_key||"").trim(),e.endpoint=(e.endpoint||"").trim()||Mm,e.cdn_base_url=(e.cdn_base_url||"").trim(),e.cdn_token_key=(e.cdn_token_key||"").trim(),e.cdn_token_method=(e.cdn_token_method||"sha256").toLowerCase(),e.cdn_token_include_ip=!!e.cdn_token_include_ip,e.sign_url_expire=Number(e.sign_url_expire||4),e.placeholder=(e.placeholder||"").trim()||lF,e.root_folder_path=e.root_folder_path||"/",e}function uj(r){if(!r)return new Date().toISOString();let e=new Date(r);return isNaN(e.getTime())?new Date().toISOString():e.toISOString()}var Hm,AF=j(()=>{"use strict";Be();He();fF();Hm=class{addition;constructor(e){this.addition=dj(e)}async init(){Lm(this.addition.endpoint,Mm),this.addition.cdn_base_url&&Lm(this.addition.cdn_base_url,"")}toFileItem(e,t){let i=e==="/"?`/${t.ObjectName}`:`${e}/${t.ObjectName}`;return{name:t.ObjectName,size:t.IsDirectory?0:t.Length||0,is_dir:t.IsDirectory,modified:uj(t.LastChanged),sign:t.Guid||i,type:X(t.ObjectName,t.IsDirectory)}}async list(e,t){let i=Yo(t),n=Ic(this.addition,i,!0),s=await fetch(n,{headers:{AccessKey:this.addition.access_key}});await Ml(s);let c=(await s.json()).filter(l=>!(!l.ObjectName||!l.IsDirectory&&l.ObjectName===this.addition.placeholder)).map(l=>this.toFileItem(i,l));return de(c,"name","asc")}async get(e,t){let i=Yo(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=Ic(this.addition,s,!0),a=await fetch(o,{headers:{AccessKey:this.addition.access_key}});await Ml(a);let l=(await a.json()).find(f=>f.ObjectName===n);if(!l)throw new Error("object not found");let d="",u={};return l.IsDirectory||(this.addition.cdn_base_url?(d=dF(this.addition,i),this.addition.cdn_token_key&&(d=await uF(this.addition,d))):(d=Ic(this.addition,i,!1),u={AccessKey:this.addition.access_key})),{...this.toFileItem(s,l),raw_url:d,raw_url_headers:u}}async mkdir(e,t){let i=Yo(t),n=i==="/"?`/${this.addition.placeholder}`:`${i}/${this.addition.placeholder}`,s=Ic(this.addition,n,!1),o=await fetch(s,{method:"PUT",headers:{AccessKey:this.addition.access_key,"Content-Type":"application/octet-stream","Content-Length":"0"}});await Ml(o)}async rename(e,t,i){throw new Error("Bunny Storage does not support rename")}async move(e,t,i,n,s){throw new Error("Bunny Storage does not support move")}async copy(e,t,i,n,s){throw new Error("Bunny Storage does not support copy")}async remove(e,t,i){let n=Yo(t),s=await fetch(Ic(this.addition,n,!0),{method:"DELETE",headers:{AccessKey:this.addition.access_key}});await Ml(s)}async put(e,t,i){let n=Yo(t),s=Ic(this.addition,n,!1),o=await fetch(s,{method:"PUT",headers:{AccessKey:this.addition.access_key,"Content-Type":"application/octet-stream","Content-Length":String(i.length)},body:new Uint8Array(i)});await Ml(o)}}});function Gm(r){return r.split("/").map(e=>encodeURIComponent(e)).join("/")}function hF(r,e){if(!r)return 0;for(let t of e){let i=r[t];if(i!=null){let n=Number(i);if(!isNaN(n))return n}}return 0}function gF(r){return hF(r,["FileSizeBytes","File-Size","fileSize","size"])}function pF(r){return hF(r,["TimeStamp","timestamp","modified"])}var Km,mF=j(()=>{"use strict";Km=class{constructor(e,t){this.address=e;this.token=t}address;token;headers(){return{Authorization:"Bearer "+this.token,Accept:"application/json"}}async request(e,t,i){let s=null;for(let o=0;o<3;o++)try{let a=await fetch(this.address+t,{method:e,headers:{...this.headers(),...i&&!(i instanceof FormData)?{"Content-Type":"application/json"}:{}},body:i?i instanceof FormData?i:JSON.stringify(i):void 0});if(a.status===429){await new Promise(u=>setTimeout(u,(o+1)*2e3));continue}let c=await a.text(),l={};try{l=c?JSON.parse(c):{}}catch{l={}}let d=l;if(d.error||d.message)throw new Error("API error: "+(d.error||d.message));if(!a.ok)throw new Error(`HTTP ${a.status}`);return l}catch(a){if(s=a,o<2){await new Promise(c=>setTimeout(c,(o+1)*1e3));continue}}throw s||new Error("max retries exceeded")}async list(e,t,i){return this.request("GET",`/api/manage/list?dir=${encodeURIComponent(e)}&start=${t}&count=${i}`)}async remove(e,t){return this.request("POST",`/api/manage/delete${Gm(e)}?folder=${t}`)}}});function fj(r){let e={...r||{}};return e.address=(e.address||"").trim().replace(/\/+$/,""),e.token=(e.token||"").trim(),e.small_channel_name=(e.small_channel_name||"").trim(),e.large_channel_name=(e.large_channel_name||"").trim(),e.large_channel_type=(e.large_channel_type||"").trim(),e.upload_thread=Math.min(Number(e.upload_thread||3),32),e.root_folder_path=e.root_folder_path||"/",e}var dE,zm,yF=j(()=>{"use strict";Be();He();mF();dE=1e3;zm=class{addition;client;publicUrlPrefix="";constructor(e){this.addition=fj(e),this.client=new Km(this.addition.address,this.addition.token)}async init(){if(!this.addition.address)throw new Error("address is required");if(!this.addition.token)throw new Error("token is required");await this.client.list("/",0,1)}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),n=new Set,s=new Set,o=[],a=0;for(;;){let c=await this.client.list(i,a,dE);if(!c.files?.length&&!c.directories?.length)break;for(let l of c.directories||[]){let d="/"+(l||"").replace(/^\/+|\/+$/g,"");n.has(d)||(n.add(d),o.push({name:d.split("/").filter(Boolean).pop()||"",size:0,is_dir:!0,modified:new Date().toISOString(),sign:d,type:1}))}for(let l of c.files||[])if(!s.has(l.name)){s.add(l.name);let d=l.name.split("/").filter(Boolean).pop()||l.name,u=gF(l.metadata),f=pF(l.metadata);o.push({name:d,size:u,is_dir:!1,modified:f?new Date(f).toISOString():new Date().toISOString(),sign:"/"+(l.name||"").replace(/^\/+/,""),type:X(d,!1)})}if((c.files?.length||0)+(c.directories?.length||0)<dE)break;a+=dE}return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1};let s=this.publicUrlPrefix?this.publicUrlPrefix+Gm(i):this.addition.address+"/file"+Gm(i);return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:s}}async mkdir(e,t){}async rename(e,t,i){throw new Error("cloudflare_imgbed does not support rename")}async move(e,t,i,n,s){throw new Error("cloudflare_imgbed does not support move")}async copy(e,t,i,n,s){throw new Error("cloudflare_imgbed does not support copy")}async remove(e,t,i){let n=this.cleanPath(t);await this.client.remove(n,!1)}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=n.split("/").pop()||"upload",a=this.addition.small_channel_name;if(!a)throw new Error("channel name not configured");let c=new URLSearchParams({returnFormat:"default",channelName:a,uploadFolder:s,autoRetry:"true"}),l=new FormData;l.append("file",new Blob([new Uint8Array(i)],{type:"application/octet-stream"}),o);let d=await fetch(`${this.addition.address}/upload?${c.toString()}`,{method:"POST",headers:{Authorization:"Bearer "+this.addition.token},body:l});if(!d.ok)throw new Error(`upload failed ${d.status}: ${await d.text()}`);let u=await d.json();if(!u?.length||!u[0].src)throw new Error("no src returned");if(u[0].publicUrl)try{let f=new URL(u[0].publicUrl);this.publicUrlPrefix=f.protocol+"//"+f.host}catch{}}}});function xF(r){let e=(r||"").trim().replace(/\s/g,"");if(!e)return"";if(e.startsWith("+"))return e.startsWith("+86")&&e.length>3?"+86 "+e.slice(3):e;let t=e.replace(/\D/g,"");return t.startsWith("86")&&t.length>11,t.length===11?"+86 "+t:e}function CF(){let r=crypto.getRandomValues(new Uint8Array(16));return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function EF(r){let e=(r||"").toLowerCase().replace(/-/g,"");return e.length!==32||!/^[0-9a-f]+$/.test(e)?"":e}function uE(r){return r>0?new Date(r*1e3).toISOString():new Date().toISOString()}function wF(r){let e=(r||"").trim().toLowerCase();return e?e==="success"||e==="ok"||e.includes("\u6210\u529F"):!0}function hj(r){let e=(r||"").trim().toLowerCase();return e?e==="\u4E0A\u4F20\u5DF2\u5B8C\u6210"||e==="upload completed"||e==="already uploaded"||e==="\u79D2\u4F20\u6210\u529F":!1}var IF,Aj,sf,BF=j(()=>{"use strict";si();IF="https://account.guangyapan.com",Aj="https://api.guangyapan.com";sf=class{accessToken="";refreshToken="";clientId;deviceId;deviceSign;onTokensChanged;constructor(e){this.clientId=e.client_id||"",this.deviceId=e.device_id||"",this.deviceSign=e.device_sign||"",this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||""}accountHeaders(){return{Accept:"application/json, text/plain, */*","Content-Type":"application/json","X-Device-Model":"chrome%2F147.0.0.0","X-Device-Name":"PC-Chrome","X-Device-Sign":this.deviceSign,"X-Net-Work-Type":"NONE","X-OS-Version":"MacIntel","X-Platform-Version":"1","X-Protocol-Version":"301","X-Provider-Name":"NONE","X-SDK-Version":"9.0.2","X-Client-Id":this.clientId,"X-Client-Version":"0.0.1","X-Device-Id":this.deviceId}}apiHeaders(){return{Accept:"application/json, text/plain, */*","Content-Type":"application/json",Did:this.deviceId,Dt:"4",Authorization:"Bearer "+this.accessToken}}get hasToken(){return!!this.accessToken}get hasRefreshToken(){return!!this.refreshToken}async validateToken(){let e=await fetch(`${IF}/v1/user/me`,{headers:{...this.accountHeaders(),Authorization:"Bearer "+this.accessToken}});if(!e.ok)throw new Error(`validate token failed: ${e.status}`)}async refresh(){if(!this.refreshToken)throw new Error("refresh_token is empty");let e=await fetch(`${IF}/v1/auth/token`,{method:"POST",headers:this.accountHeaders(),body:JSON.stringify({client_id:this.clientId,grant_type:"refresh_token",refresh_token:this.refreshToken})}),t=await e.json();if(!e.ok||t.error||!t.access_token)throw new Error("refresh token failed: "+(t.error_description||t.error||e.status));this.accessToken=t.access_token,t.refresh_token&&(this.refreshToken=t.refresh_token),await this.onTokensChanged?.(this.accessToken,this.refreshToken)}async postAPI(e,t){let i=async()=>{let o=await fetch(`${Aj}${e}`,{method:"POST",headers:this.apiHeaders(),body:JSON.stringify(t??{})});return{res:o,json:await o.json().catch(()=>({}))}},{res:n,json:s}=await i();if((n.status===401||n.status===403)&&this.refreshToken){await this.refresh();let o=await i();n=o.res,s=o.json}if(!n.ok)throw new Error(`request failed: status=${n.status}`);return s}async getFileList(e,t,i,n){return this.postAPI("/userres/v1/file/get_file_list",{parentId:e,page:0,pageSize:t,orderBy:i,sortType:n})}async getDownloadURL(e){let t=await this.postAPI("/nd.bizuserres.s/v1/get_res_download_url",{fileId:e});return(t?.data?.signedURL||t?.data?.downloadUrl||"").trim()}async getUploadToken(e,t,i,n){let s={fileSize:i};n&&(s.md5=n);let o=await this.postAPI("/nd.bizuserres.s/v1/get_res_center_token",{capacity:2,name:t,parentId:e,res:s}),a=o.msg||"",c=o.code===156||hj(a);if(!wF(a)&&!c)throw new Error("get upload token failed: "+a);return{data:o.data,code:o.code,alreadyDone:c}}async waitTaskDone(e){for(let t=0;t<30;t++){let i=await this.postAPI("/nd.bizuserres.s/v1/get_task_status",{taskId:e});if(!wF(i.msg))throw new Error("get task status failed: "+i.msg);if(i.data?.status===2)return;if(i.data?.status===-1||i.data?.status===3)throw new Error(`task ${e} failed with status=${i.data.status}`);await new Promise(n=>setTimeout(n,300))}throw new Error(`task ${e} timeout`)}async waitUploadTaskInfo(e){for(let t=0;t<300;t++){if((await this.postAPI("/nd.bizuserres.s/v1/file/get_info_by_task_id",{taskId:e})).data?.fileId)return;await new Promise(n=>setTimeout(n,1e3))}throw new Error(`upload task ${e} timeout`)}static md5(e){return $t(e)}}});function gj(r){let e={...r||{}};return e.client_id=(e.client_id||"").trim(),e.device_id=EF(e.device_id||""),e.device_id||(e.device_id=CF()),e.device_sign=(e.device_sign||"").trim()||"wdi10."+e.device_id,e.page_size=Number(e.page_size||100),e.order_by=Number(e.order_by===void 0?3:e.order_by),e.sort_type=Number(e.sort_type===void 0?1:e.sort_type),e.root_folder_path=(e.root_folder_path||"").trim(),e.access_token=(e.access_token||"").trim(),e.refresh_token=(e.refresh_token||"").trim(),e.phone_number=xF(e.phone_number||""),e}function bF(r){let e=r.resType===2;return{name:r.fileName,size:e?0:r.fileSize||0,is_dir:e,modified:uE(r.utime),created:uE(r.ctime),sign:r.fileId,type:X(r.fileName,e)}}function pj(r,e){let t=(r||"").trim();if(!t)return t;!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t);let i;try{i=new URL(t)}catch{return t}let n=i.host;return e&&n.startsWith(e+".")&&(n=n.slice(e.length+1)),i.host=n,i.toString().replace(/\/+$/,"")}var Jm,vF=j(()=>{"use strict";Be();He();si();BF();Jm=class{addition;client;idCache=new Map;constructor(e,t){this.addition=gj(e),this.client=new sf(this.addition),this.client.onTokensChanged=t}async init(){if(!this.addition.client_id)throw new Error("client_id is required");if(this.addition.access_token)try{await this.client.validateToken();return}catch{this.addition.access_token=""}if(this.addition.refresh_token){await this.client.refresh(),await this.client.validateToken();return}throw new Error("login failed: provide a valid access_token, or refresh_token, or phone_number + verify_code")}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return"";let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s="",o="/";for(let a of n){let l=(await this.client.getFileList(s,this.addition.page_size,this.addition.order_by,this.addition.sort_type)).data?.list?.find(d=>d.fileName===a&&d.resType===2);if(!l)throw new Error(`folder not found: ${a}`);s=l.fileId,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async resolveItemId(e){let t=this.cleanPath(e);if(t==="/")return"";let i=this.idCache.get(t);if(i)return i;let n=t.split("/").slice(0,-1).join("/")||"/",s=t.split("/").pop()||"",o=await this.resolveId(n),c=(await this.client.getFileList(o,this.addition.page_size,this.addition.order_by,this.addition.sort_type)).data?.list?.find(l=>l.fileName===s);if(!c)throw new Error(`item not found: ${s}`);return this.idCache.set(t,c.fileId),c.fileId}async list(e,t){let i=await this.resolveId(t),n=this.cleanPath(t),s=[];for(let o=0;o<1e4;o++){let a=await this.client.getFileList(i,this.addition.page_size,this.addition.order_by,this.addition.sort_type),c=a.data?.list||[];for(let l of c)this.idCache.set(this.joinPath(n,l.fileName),l.fileId),s.push(bF(l));if(c.length<this.addition.page_size||a.data?.total>0&&s.length>=a.data.total)break}return de(s,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=await this.resolveId(s),c=(await this.client.getFileList(o,this.addition.page_size,this.addition.order_by,this.addition.sort_type)).data?.list?.find(u=>u.fileName===n);if(!c)throw new Error("file not found");let l=c.resType===2,d="";return l||(d=await this.client.getDownloadURL(c.fileId)),this.idCache.set(i,c.fileId),{...bF(c),raw_url:d}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/")||"/",s=i.split("/").pop()||"",o=await this.resolveId(n);await this.client.postAPI("/nd.bizuserres.s/v1/file/create_dir",{parentId:o,dirName:s})}async rename(e,t,i){let n=await this.resolveItemId(t);await this.client.postAPI("/nd.bizuserres.s/v1/file/rename",{fileId:n,newName:i})}async move(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a),l=await this.client.postAPI("/nd.bizuserres.s/v1/file/move_file",{fileIds:[o],parentId:c});l?.data?.taskId&&await this.client.waitTaskDone(l.data.taskId)}async copy(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a),l=await this.client.postAPI("/nd.bizuserres.s/v1/file/copy_file",{fileIds:[o],parentId:c});l?.data?.taskId&&await this.client.waitTaskDone(l.data.taskId)}async remove(e,t,i){let n=await this.resolveItemId(t),s=await this.client.postAPI("/nd.bizuserres.s/v1/file/delete_file",{fileIds:[n]});s?.data?.taskId&&await this.client.waitTaskDone(s.data.taskId)}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=n.split("/").pop()||"upload",a=await this.resolveId(s),c=new Uint8Array(i),l=sf.md5(c),{data:d,alreadyDone:u}=await this.client.getUploadToken(a,o,c.length,l),f=d?.taskId||"";if(u){if(!f)throw new Error("instant upload returns empty task id");await this.client.waitUploadTaskInfo(f);return}if(!d.objectPath||!d.bucketName||!d.endPoint||!d.accessKeyID||!d.secretAccessKey)throw new Error("upload token is incomplete");let h=pj(d.endPoint,d.bucketName),g=`https://${d.bucketName}.${new URL(h).host}/${d.objectPath.replace(/^\/+/,"")}`,p=new Date().toUTCString(),I="application/octet-stream",y=d.sessionToken?`x-oss-security-token:${d.sessionToken} -`:"",w=`/${d.bucketName}/${d.objectPath.replace(/^\/+/,"")}`,C=`PUT +`,o=encodeURIComponent(await xP(s,this.keyBytes));return`${this.endpoint}/${this.container}/${e}?sp=r&st=&se=${encodeURIComponent(i)}&sv=2021-08-06&sr=b&sig=${o}`}getKey(e){return String(e||"/").replace(/^\/+/,"")}async list(e,t){let i=this.getKey(t);i&&(i=wP(i));let n=`restype=container&comp=list&delimiter=%2F&prefix=${encodeURIComponent(i)}`,s=await this.request("GET","",n);if(!s.ok)throw new Error(`[AzureBlob] list failed: HTTP ${s.status}`);let o=await s.text(),{blobs:a,prefixes:c}=nV(o),l=[];for(let d of c){let u=d.replace(/\/+$/,"").split("/").filter(Boolean).pop()||d;l.push({name:u,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1,raw_url:""})}for(let d of a){let u=d.name.split("/").filter(Boolean).pop()||d.name;l.push({name:u,size:d.size,is_dir:!1,modified:d.modified,sign:d.name,type:X(u,!1),raw_url:""})}return de(l,"name","asc")}async get(e,t){let i=this.getKey(t),n=i.split("/").filter(Boolean).pop()||i,s=await this.sasUrl(i);return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:s}}async mkdir(e,t){let i=wP(this.getKey(t)),n=await this.request("PUT",i,"",{body:new Uint8Array(0),contentType:"application/octet-stream",extraHeaders:{"x-ms-blob-type":"BlockBlob","x-ms-meta-hdi_isfolder":"true"}});if(!n.ok)throw new Error(`[AzureBlob] mkdir failed: HTTP ${n.status}`)}async rename(e,t,i){let n=this.getKey(t),s=mf(t.split("/").slice(0,-1).join("/"),i).replace(/^\/+/,"");await this.copyBlob(n,s),await this.deleteBlob(n)}async remove(e,t,i){let n=this.getKey(t);await this.deleteBlob(n)}async move(e,t,i,n,s){for(let o of i){let a=mf(this.getKey(n),o),c=mf(this.getKey(s),o);await this.copyBlob(a,c),await this.deleteBlob(a)}}async copy(e,t,i,n,s){for(let o of i){let a=mf(this.getKey(n),o),c=mf(this.getKey(s),o);await this.copyBlob(a,c)}}async put(e,t,i){let n=this.getKey(t),s=await this.request("PUT",n,"",{body:new Uint8Array(i),contentType:"application/octet-stream",extraHeaders:{"x-ms-blob-type":"BlockBlob"}});if(!s.ok)throw new Error(`[AzureBlob] put failed: HTTP ${s.status}`)}async copyBlob(e,t){let i=`${this.endpoint}/${this.container}/${e}`,n=await this.request("PUT",t,"",{body:new Uint8Array(0),contentType:"application/octet-stream",extraHeaders:{"x-ms-blob-type":"BlockBlob","x-ms-copy-source":i}});if(n.status!==201&&n.status!==202&&!n.ok)throw new Error(`[AzureBlob] copy failed: HTTP ${n.status}`)}async deleteBlob(e){let t=await this.request("DELETE",e,"");if(t.status!==202&&t.status!==404&&!t.ok)throw new Error(`[AzureBlob] delete failed: HTTP ${t.status}`)}}});function yf(r,e){let t=String(r||"").replace(/\/+$/,""),i=String(e||"").replace(/^\/+/,"");return t?i?t+"/"+i:t:i}var ry,EP=J(()=>{"use strict";Be();He();Gr();ry=class{addition;authHeader;apiBase;constructor(e){this.addition=e||{};let t=this.addition.operator_name||"",i=this.addition.operator_password||"";this.authHeader=`Basic ${btoa(`${t}:${i}`)}`,this.apiBase=`https://v0.api.upyun.com/${this.addition.bucket||""}`}async init(){if(!this.addition.bucket||!this.addition.operator_name||!this.addition.operator_password)throw new Error("[USS] bucket / operator_name / operator_password are required")}getKey(e,t=!1){let i=String(e||"/").replace(/^\/+/,"");return t&&i&&!i.endsWith("/")&&(i+="/"),i}getDownloadHost(){let e=this.addition.endpoint||"";return/^https?:\/\//.test(e)||(e="https://"+e),e.replace(/\/+$/,"")}async list(e,t){let i=this.getKey(t,!0),n=`${this.apiBase}/${i}`,s=await fetch(n,{method:"GET",headers:{Authorization:this.authHeader,Accept:"application/json"}});if(!s.ok)throw new Error(`[USS] list failed: HTTP ${s.status}`);let o=await s.text(),a=[];try{let c=JSON.parse(o);if(Array.isArray(c)){for(let l of c){let d=l.name||l.file_name||"",u=l.type==="F"||l.is_dir===!0||d.endsWith("/");a.push({name:d.replace(/\/+$/,""),size:l.length||l.size||0,is_dir:u,modified:l.last_modified?new Date(l.last_modified*1e3).toISOString():new Date().toISOString(),sign:"",type:X(d,u),raw_url:""})}return de(a,"name","asc")}}catch{}for(let c of o.split(` +`)){let l=c.trim();if(!l)continue;let d=l.split(" "),u=(d[0]||"").trim(),h=(d[1]||"").trim()==="F"||u.endsWith("/");a.push({name:u.replace(/\/+$/,""),size:parseInt(d[2]||"0",10)||0,is_dir:h,modified:d[3]?new Date(parseInt(d[3],10)*1e3).toISOString():new Date().toISOString(),sign:"",type:X(u,h),raw_url:""})}return de(a,"name","asc")}async get(e,t){let i=this.getKey(t),n=i.split("/").filter(Boolean).pop()||i,s=Math.floor(Date.now()/1e3)+(this.addition.sign_url_expire||4)*3600,a=`${this.addition.anti_theft_chain_token||this.addition.operator_password}&${s}&/${i}`,c=$t(a).slice(12,20)+s,l=encodeURIComponent(n),d=`${this.getDownloadHost()}/${i}?_upd=${l}&_upt=${c}`;return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:d}}async mkdir(e,t){let i=this.getKey(t,!0),n=await fetch(`${this.apiBase}/${i}`,{method:"POST",headers:{Authorization:this.authHeader,Folder:"true"}});if(!n.ok)throw new Error(`[USS] mkdir failed: HTTP ${n.status}`)}async rename(e,t,i){let n=this.getKey(t),s=yf(t.split("/").slice(0,-1).join("/"),i).replace(/^\/+/,"");await this.moveOrCopy(n,s,"move")}async remove(e,t,i){let n=this.getKey(t),s=await fetch(`${this.apiBase}/${n}`,{method:"DELETE",headers:{Authorization:this.authHeader}});if(!s.ok)throw new Error(`[USS] remove failed: HTTP ${s.status}`)}async move(e,t,i,n,s){for(let o of i){let a=yf(this.getKey(n),o),c=yf(this.getKey(s),o);await this.moveOrCopy(a,c,"move")}}async copy(e,t,i,n,s){for(let o of i){let a=yf(this.getKey(n),o),c=yf(this.getKey(s),o);await this.moveOrCopy(a,c,"copy")}}async put(e,t,i){let n=this.getKey(t),s=await fetch(`${this.apiBase}/${n}`,{method:"PUT",headers:{Authorization:this.authHeader,"Content-Type":"application/octet-stream"},body:i});if(!s.ok)throw new Error(`[USS] put failed: HTTP ${s.status}`)}async moveOrCopy(e,t,i){let n=i==="move"?"X-Upyun-Move-Source":"X-Upyun-Copy-Source",s=await fetch(`${this.apiBase}/${t}`,{method:"PUT",headers:{Authorization:this.authHeader,[n]:`/${e}`}});if(!s.ok)throw new Error(`[USS] ${i} failed: HTTP ${s.status}`)}}});function sV(r){return r?r.message?r.message:r.msg?r.msg:"request failed":"request failed"}var Js,qE,iy,BP=J(()=>{"use strict";Js="https://alidocs.dingtalk.com",qE="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36";iy=class{constructor(e){this.cookie=e}cookie;headers(){return{Cookie:this.cookie,Accept:"application/json, text/plain, */*",Referer:Js+"/",Origin:Js,"User-Agent":qE}}async request(e,t){let i=await fetch(e,{...t,headers:{...this.headers(),...t?.headers||{}}}),n=await i.json().catch(()=>({}));if(!i.ok||n.isSuccess===!1)throw new Error(sV(n));return n}async checkCookie(){await this.request(`${Js}/portal/api/v1/mine/info`)}async list(e){let t=new URLSearchParams({dentryUuid:e,withParentAncestors:"true",orderType:"SORT_KEY",sortType:"desc",listDentrySource:"2",pageSize:"1000"});return(await this.request(`${Js}/box/api/v2/dentry/list?${t.toString()}`)).data?.children||[]}async download(e){let t=new URLSearchParams({dentryUuid:e,version:"1",supportDownloadTypes:"URL_PRE_SIGNATURE,HTTP_TO_CENTER",downloadType:"URL_PRE_SIGNATURE"}),n=(await this.request(`${Js}/box/api/v2/file/download?${t.toString()}`)).data?.ossUrlPreSignatureInfo?.preSignUrls||[];if(n.length===0)throw new Error("empty download url");return n[0]}async post(e,t){await this.request(`${Js}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}}});function oV(r){let e={...r||{}};return e.cookie=(e.cookie||"").trim(),e.root_folder_id=(e.root_folder_id||"").trim(),e}function bP(r){let e=r.dentryType==="folder";return{name:r.name,size:e?0:r.fileSize||0,is_dir:e,modified:r.updatedTime?new Date(r.updatedTime).toISOString():new Date().toISOString(),created:r.createdTime?new Date(r.createdTime).toISOString():void 0,sign:r.dentryUuid,type:X(r.name,e)}}var ny,vP=J(()=>{"use strict";Be();He();BP();ny=class{addition;client;idCache=new Map;constructor(e){this.addition=oV(e),this.client=new iy(this.addition.cookie)}async init(){if(!this.addition.cookie)throw new Error("cookie is empty");if(!this.addition.root_folder_id)throw new Error("root folder id is empty");await this.client.checkCookie()}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id;let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s=this.addition.root_folder_id,o="/";for(let a of n){let l=(await this.client.list(s)).find(d=>d.name===a&&d.dentryType==="folder");if(!l)throw new Error(`folder not found: ${a}`);s=l.dentryUuid,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async resolveItemId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id;let i=this.idCache.get(t);if(i)return i;let n=t.split("/").slice(0,-1).join("/")||"/",s=t.split("/").pop()||"",o=await this.resolveId(n),c=(await this.client.list(o)).find(l=>l.name===s);if(!c)throw new Error(`item not found: ${s}`);return this.idCache.set(t,c.dentryUuid),c.dentryUuid}async list(e,t){let i=await this.resolveId(t),n=await this.client.list(i),s=this.cleanPath(t),o=n.filter(a=>a.dentryUuid&&a.name).map(a=>(this.idCache.set(this.joinPath(s,a.name),a.dentryUuid),bP(a)));return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.addition.root_folder_id,type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=await this.resolveId(s),c=(await this.client.list(o)).find(u=>u.name===n);if(!c)throw new Error("file not found");let l=c.dentryType==="folder",d="";return l||(d=await this.client.download(c.dentryUuid)),this.idCache.set(i,c.dentryUuid),{...bP(c),raw_url:d,raw_url_headers:{"User-Agent":qE,Referer:Js+"/",Origin:Js}}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/")||"/",s=i.split("/").pop()||"",o=await this.resolveId(n);await this.client.post("/box/api/v2/dentry/createfolder",{dentryType:"folder",name:s,parentDentryUuid:o,conflictHandleStrategy:"auto_rename"})}async rename(e,t,i){let n=await this.resolveItemId(t);await this.client.post("/box/api/v2/dentry/rename",{dentryUuid:n,name:i})}async move(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a);await this.client.post("/box/api/v2/dentry/move",{targetParentDentryUuid:c,sourceDentryUuid:o,operateFrom:1})}async copy(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a);await this.client.post("/box/api/v2/dentry/copy",{sourceDentryUuid:o,targetParentDentryUuid:c,operateFrom:1,onlyCopyMeta:!1})}async remove(e,t,i){let n=await this.resolveItemId(t);await this.client.post("/box/api/v1/dentry/recycle",{dentryUuid:n})}async put(e,t,i){throw new Error("AliDoc does not support upload")}}});var aV,sy,kP=J(()=>{"use strict";aV='MediaBrowser Client="OpenList", Device="OpenList", DeviceId="openlist-emby", Version="1.0.0"',sy=class{baseURL;token;userID;constructor(e,t="",i=""){this.baseURL=(e||"").trim().replace(/\/+$/,""),this.token=t,this.userID=i}async login(e,t){let i=await fetch(`${this.baseURL}/Users/AuthenticateByName`,{method:"POST",headers:{"Content-Type":"application/json","X-Emby-Authorization":aV},body:JSON.stringify({Username:e,Pw:t})});if(!i.ok)throw new Error(`emby auth failed: status=${i.status}`);let n=await i.json();if(!n.AccessToken||!n.User?.Id)throw new Error("emby auth response missing access token or user id");this.token=n.AccessToken,this.userID=n.User.Id}async getItems(e){let t=new URLSearchParams({ParentId:e,Recursive:"false",Fields:"Path,Size,DateCreated,SeriesName,IndexNumber,ParentIndexNumber",api_key:this.token}),i=await fetch(`${this.baseURL}/Users/${this.userID}/Items?${t.toString()}`);if(!i.ok)throw new Error(`emby list failed: status=${i.status}`);return await i.json()}async getItemDetail(e){let t=new URLSearchParams({Fields:"MediaSources",api_key:this.token}),i=await fetch(`${this.baseURL}/Users/${this.userID}/Items/${encodeURIComponent(e)}?${t.toString()}`);return i.ok?await i.json():null}}});function cV(r){let e={...r||{}};return e.url=(e.url||"").trim().replace(/\/+$/,""),e.api_key=(e.api_key||"").trim(),e.user_id=(e.user_id||"").trim(),e.username=(e.username||"").trim(),e.password=(e.password||"").trim(),e.link_method=(e.link_method||"stream").toLowerCase(),e.root_folder_id=(e.root_folder_id||"").trim()||"1",e}function SP(r){return{name:r.Name,size:r.IsFolder?0:r.Size||0,is_dir:r.IsFolder,modified:r.DateCreated?new Date(r.DateCreated).toISOString():new Date().toISOString(),sign:r.Id,type:X(r.Name,r.IsFolder)}}var oy,DP=J(()=>{"use strict";Be();He();kP();oy=class{addition;client;idCache=new Map;constructor(e){this.addition=cV(e),this.client=new sy(this.addition.url,this.addition.api_key,this.addition.user_id)}async init(){if(!this.addition.url)throw new Error("url is required");if(this.addition.api_key){if(!this.addition.user_id)throw new Error("user_id is required when api_key is set");return}if(!this.addition.username)throw new Error("please provide api_key+user_id or username(+password)");await this.client.login(this.addition.username,this.addition.password)}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return this.addition.root_folder_id;let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s=this.addition.root_folder_id,o="/";for(let a of n){let l=(await this.client.getItems(s)).Items.find(d=>d.Name===a&&d.IsFolder);if(!l)throw new Error(`folder not found: ${a}`);s=l.Id,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async list(e,t){let i=await this.resolveId(t),n=await this.client.getItems(i),s=this.cleanPath(t),o=n.Items.map(a=>(this.idCache.set(this.joinPath(s,a.Name),a.Id),SP(a)));return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.addition.root_folder_id,type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=await this.resolveId(s),c=(await this.client.getItems(o)).Items.find(u=>u.Name===n);if(!c)throw new Error("file not found");let l=c.IsFolder,d="";return l||(d=await this.buildLink(c.Id)),this.idCache.set(i,c.Id),{...SP(c),raw_url:d,raw_url_headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36"}}}async buildLink(e){let t=this.addition.link_method==="download",i="",n="";if(!t){let o=await this.client.getItemDetail(e);if(o&&o.MediaSources?.length){let a=o.MediaSources.find(c=>c.Id&&c.SupportsDirectStream)||o.MediaSources.find(c=>c.Id);a&&(i=a.Id,n=a.Container)}}let s=new URL(this.addition.url);return t?s.pathname=`${s.pathname.replace(/\/+$/,"")}/Items/${encodeURIComponent(e)}/Download`:n?s.pathname=`${s.pathname.replace(/\/+$/,"")}/Videos/${encodeURIComponent(e)}/stream.${n}`:s.pathname=`${s.pathname.replace(/\/+$/,"")}/Videos/${encodeURIComponent(e)}/stream`,s.searchParams.set("api_key",this.client.token),i&&s.searchParams.set("MediaSourceId",i),t||s.searchParams.set("Static","true"),s.toString()}async mkdir(e,t){throw new Error("Emby is read-only")}async rename(e,t,i){throw new Error("Emby is read-only")}async move(e,t,i,n,s){throw new Error("Emby is read-only")}async copy(e,t,i,n,s){throw new Error("Emby is read-only")}async remove(e,t,i){throw new Error("Emby is read-only")}async put(e,t,i){throw new Error("Emby is read-only")}}});function cy(r,e){let t=(r||"").trim();if(t||(t=e),!t)throw new Error("empty url");t.includes("://")||(t="https://"+t);let i=new URL(t);if(!i.host)throw new Error("invalid url: "+r);return i.pathname=i.pathname.replace(/\/+$/,""),i.toString()}function aa(r){return r?"/"+r.replace(/^\/+/,"").split("/").filter(Boolean).join("/"):"/"}function QP(r){let e=new Uint8Array(r),t="";for(let i of e)t+=String.fromCharCode(i);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function lV(r){return crypto.subtle.digest("SHA-256",new TextEncoder().encode(r))}async function dV(r,e){let t=await crypto.subtle.importKey("raw",new TextEncoder().encode(r),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return crypto.subtle.sign("HMAC",t,new TextEncoder().encode(e))}function uV(r){return Array.from(r.keys()).filter(t=>t!=="token"&&t!=="expires").sort().map(t=>`${t}=${r.get(t)||""}`).join("&")}function Qc(r,e,t){let i=cy(r.endpoint,ay),n=new URL(i),s=aa(e),o=(r.storage_zone_name||"").replace(/^\/+|\/+$/g,"");return s==="/"?n.pathname=`/${o}/`:(n.pathname=`/${o}/${s.replace(/^\/+/,"")}`,t&&!n.pathname.endsWith("/")&&(n.pathname+="/")),n.toString()}function FP(r,e){let t=new URL(r.cdn_base_url),i=aa(e),n=t.pathname.replace(/\/+$/,"");return i==="/"?t.pathname=n?n+"/":"/":t.pathname=n+"/"+i.replace(/^\/+/,""),t.toString()}async function PP(r,e){let t=r.sign_url_expire>0?r.sign_url_expire:4,i=Math.floor(Date.now()/1e3)+t*3600,n=new URL(e),s=uV(n.searchParams),o=decodeURIComponent(n.pathname),a=(r.cdn_token_method||"sha256").toLowerCase(),c;if(a==="hmac_sha256"){let l=await dV(r.cdn_token_key,o+String(i)+s);c="HS256-"+QP(l)}else{let l=await lV(r.cdn_token_key+o+String(i)+s);c=QP(l)}return n.searchParams.set("token",c),n.searchParams.set("expires",String(i)),n.toString()}async function Yl(r){if(r.ok)return;let e=await r.text().catch(()=>"")||"",t=e.trim();try{let i=JSON.parse(e);i?.length&&i[0].Message&&(t=i[0].Message)}catch{}throw new Error(`bunny storage request failed: ${r.status} ${t}`)}var ay,_P,TP=J(()=>{"use strict";ay="storage.bunnycdn.com",_P=".openlist"});function fV(r){let e={...r||{}};return e.storage_zone_name=(e.storage_zone_name||"").trim(),e.access_key=(e.access_key||"").trim(),e.endpoint=(e.endpoint||"").trim()||ay,e.cdn_base_url=(e.cdn_base_url||"").trim(),e.cdn_token_key=(e.cdn_token_key||"").trim(),e.cdn_token_method=(e.cdn_token_method||"sha256").toLowerCase(),e.cdn_token_include_ip=!!e.cdn_token_include_ip,e.sign_url_expire=Number(e.sign_url_expire||4),e.placeholder=(e.placeholder||"").trim()||_P,e.root_folder_path=e.root_folder_path||"/",e}function AV(r){if(!r)return new Date().toISOString();let e=new Date(r);return isNaN(e.getTime())?new Date().toISOString():e.toISOString()}var ly,UP=J(()=>{"use strict";Be();He();TP();ly=class{addition;constructor(e){this.addition=fV(e)}async init(){cy(this.addition.endpoint,ay),this.addition.cdn_base_url&&cy(this.addition.cdn_base_url,"")}toFileItem(e,t){let i=e==="/"?`/${t.ObjectName}`:`${e}/${t.ObjectName}`;return{name:t.ObjectName,size:t.IsDirectory?0:t.Length||0,is_dir:t.IsDirectory,modified:AV(t.LastChanged),sign:t.Guid||i,type:X(t.ObjectName,t.IsDirectory)}}async list(e,t){let i=aa(t),n=Qc(this.addition,i,!0),s=await fetch(n,{headers:{AccessKey:this.addition.access_key}});await Yl(s);let c=(await s.json()).filter(l=>!(!l.ObjectName||!l.IsDirectory&&l.ObjectName===this.addition.placeholder)).map(l=>this.toFileItem(i,l));return de(c,"name","asc")}async get(e,t){let i=aa(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=Qc(this.addition,s,!0),a=await fetch(o,{headers:{AccessKey:this.addition.access_key}});await Yl(a);let l=(await a.json()).find(f=>f.ObjectName===n);if(!l)throw new Error("object not found");let d="",u={};return l.IsDirectory||(this.addition.cdn_base_url?(d=FP(this.addition,i),this.addition.cdn_token_key&&(d=await PP(this.addition,d))):(d=Qc(this.addition,i,!1),u={AccessKey:this.addition.access_key})),{...this.toFileItem(s,l),raw_url:d,raw_url_headers:u}}async mkdir(e,t){let i=aa(t),n=i==="/"?`/${this.addition.placeholder}`:`${i}/${this.addition.placeholder}`,s=Qc(this.addition,n,!1),o=await fetch(s,{method:"PUT",headers:{AccessKey:this.addition.access_key,"Content-Type":"application/octet-stream","Content-Length":"0"}});await Yl(o)}async rename(e,t,i){throw new Error("Bunny Storage does not support rename")}async move(e,t,i,n,s){throw new Error("Bunny Storage does not support move")}async copy(e,t,i,n,s){throw new Error("Bunny Storage does not support copy")}async remove(e,t,i){let n=aa(t),s=await fetch(Qc(this.addition,n,!0),{method:"DELETE",headers:{AccessKey:this.addition.access_key}});await Yl(s)}async put(e,t,i){let n=aa(t),s=Qc(this.addition,n,!1),o=await fetch(s,{method:"PUT",headers:{AccessKey:this.addition.access_key,"Content-Type":"application/octet-stream","Content-Length":String(i.length)},body:new Uint8Array(i)});await Yl(o)}}});function uy(r){return r.split("/").map(e=>encodeURIComponent(e)).join("/")}function RP(r,e){if(!r)return 0;for(let t of e){let i=r[t];if(i!=null){let n=Number(i);if(!isNaN(n))return n}}return 0}function NP(r){return RP(r,["FileSizeBytes","File-Size","fileSize","size"])}function qP(r){return RP(r,["TimeStamp","timestamp","modified"])}var dy,OP=J(()=>{"use strict";dy=class{constructor(e,t){this.address=e;this.token=t}address;token;headers(){return{Authorization:"Bearer "+this.token,Accept:"application/json"}}async request(e,t,i){let s=null;for(let o=0;o<3;o++)try{let a=await fetch(this.address+t,{method:e,headers:{...this.headers(),...i&&!(i instanceof FormData)?{"Content-Type":"application/json"}:{}},body:i?i instanceof FormData?i:JSON.stringify(i):void 0});if(a.status===429){await new Promise(u=>setTimeout(u,(o+1)*2e3));continue}let c=await a.text(),l={};try{l=c?JSON.parse(c):{}}catch{l={}}let d=l;if(d.error||d.message)throw new Error("API error: "+(d.error||d.message));if(!a.ok)throw new Error(`HTTP ${a.status}`);return l}catch(a){if(s=a,o<2){await new Promise(c=>setTimeout(c,(o+1)*1e3));continue}}throw s||new Error("max retries exceeded")}async list(e,t,i){return this.request("GET",`/api/manage/list?dir=${encodeURIComponent(e)}&start=${t}&count=${i}`)}async remove(e,t){return this.request("POST",`/api/manage/delete${uy(e)}?folder=${t}`)}}});function hV(r){let e={...r||{}};return e.address=(e.address||"").trim().replace(/\/+$/,""),e.token=(e.token||"").trim(),e.small_channel_name=(e.small_channel_name||"").trim(),e.large_channel_name=(e.large_channel_name||"").trim(),e.large_channel_type=(e.large_channel_type||"").trim(),e.upload_thread=Math.min(Number(e.upload_thread||3),32),e.root_folder_path=e.root_folder_path||"/",e}var OE,fy,MP=J(()=>{"use strict";Be();He();OP();OE=1e3;fy=class{addition;client;publicUrlPrefix="";constructor(e){this.addition=hV(e),this.client=new dy(this.addition.address,this.addition.token)}async init(){if(!this.addition.address)throw new Error("address is required");if(!this.addition.token)throw new Error("token is required");await this.client.list("/",0,1)}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}async list(e,t){let i=this.cleanPath(t),n=new Set,s=new Set,o=[],a=0;for(;;){let c=await this.client.list(i,a,OE);if(!c.files?.length&&!c.directories?.length)break;for(let l of c.directories||[]){let d="/"+(l||"").replace(/^\/+|\/+$/g,"");n.has(d)||(n.add(d),o.push({name:d.split("/").filter(Boolean).pop()||"",size:0,is_dir:!0,modified:new Date().toISOString(),sign:d,type:1}))}for(let l of c.files||[])if(!s.has(l.name)){s.add(l.name);let d=l.name.split("/").filter(Boolean).pop()||l.name,u=NP(l.metadata),f=qP(l.metadata);o.push({name:d,size:u,is_dir:!1,modified:f?new Date(f).toISOString():new Date().toISOString(),sign:"/"+(l.name||"").replace(/^\/+/,""),type:X(d,!1)})}if((c.files?.length||0)+(c.directories?.length||0)<OE)break;a+=OE}return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1};let s=this.publicUrlPrefix?this.publicUrlPrefix+uy(i):this.addition.address+"/file"+uy(i);return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:i,type:X(n,!1),raw_url:s}}async mkdir(e,t){}async rename(e,t,i){throw new Error("cloudflare_imgbed does not support rename")}async move(e,t,i,n,s){throw new Error("cloudflare_imgbed does not support move")}async copy(e,t,i,n,s){throw new Error("cloudflare_imgbed does not support copy")}async remove(e,t,i){let n=this.cleanPath(t);await this.client.remove(n,!1)}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=n.split("/").pop()||"upload",a=this.addition.small_channel_name;if(!a)throw new Error("channel name not configured");let c=new URLSearchParams({returnFormat:"default",channelName:a,uploadFolder:s,autoRetry:"true"}),l=new FormData;l.append("file",new Blob([new Uint8Array(i)],{type:"application/octet-stream"}),o);let d=await fetch(`${this.addition.address}/upload?${c.toString()}`,{method:"POST",headers:{Authorization:"Bearer "+this.addition.token},body:l});if(!d.ok)throw new Error(`upload failed ${d.status}: ${await d.text()}`);let u=await d.json();if(!u?.length||!u[0].src)throw new Error("no src returned");if(u[0].publicUrl)try{let f=new URL(u[0].publicUrl);this.publicUrlPrefix=f.protocol+"//"+f.host}catch{}}}});function KP(r){let e=(r||"").trim().replace(/\s/g,"");if(!e)return"";if(e.startsWith("+"))return e.startsWith("+86")&&e.length>3?"+86 "+e.slice(3):e;let t=e.replace(/\D/g,"");return t.startsWith("86")&&t.length>11,t.length===11?"+86 "+t:e}function GP(){let r=crypto.getRandomValues(new Uint8Array(16));return Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function zP(r){let e=(r||"").toLowerCase().replace(/-/g,"");return e.length!==32||!/^[0-9a-f]+$/.test(e)?"":e}function ME(r){return r>0?new Date(r*1e3).toISOString():new Date().toISOString()}function HP(r){let e=(r||"").trim().toLowerCase();return e?e==="success"||e==="ok"||e.includes("\u6210\u529F"):!0}function pV(r){let e=(r||"").trim().toLowerCase();return e?e==="\u4E0A\u4F20\u5DF2\u5B8C\u6210"||e==="upload completed"||e==="already uploaded"||e==="\u79D2\u4F20\u6210\u529F":!1}var LP,gV,If,JP=J(()=>{"use strict";Gr();LP="https://account.guangyapan.com",gV="https://api.guangyapan.com";If=class{accessToken="";refreshToken="";clientId;deviceId;deviceSign;onTokensChanged;constructor(e){this.clientId=e.client_id||"",this.deviceId=e.device_id||"",this.deviceSign=e.device_sign||"",this.accessToken=e.access_token||"",this.refreshToken=e.refresh_token||""}accountHeaders(){return{Accept:"application/json, text/plain, */*","Content-Type":"application/json","X-Device-Model":"chrome%2F147.0.0.0","X-Device-Name":"PC-Chrome","X-Device-Sign":this.deviceSign,"X-Net-Work-Type":"NONE","X-OS-Version":"MacIntel","X-Platform-Version":"1","X-Protocol-Version":"301","X-Provider-Name":"NONE","X-SDK-Version":"9.0.2","X-Client-Id":this.clientId,"X-Client-Version":"0.0.1","X-Device-Id":this.deviceId}}apiHeaders(){return{Accept:"application/json, text/plain, */*","Content-Type":"application/json",Did:this.deviceId,Dt:"4",Authorization:"Bearer "+this.accessToken}}get hasToken(){return!!this.accessToken}get hasRefreshToken(){return!!this.refreshToken}async validateToken(){let e=await fetch(`${LP}/v1/user/me`,{headers:{...this.accountHeaders(),Authorization:"Bearer "+this.accessToken}});if(!e.ok)throw new Error(`validate token failed: ${e.status}`)}async refresh(){if(!this.refreshToken)throw new Error("refresh_token is empty");let e=await fetch(`${LP}/v1/auth/token`,{method:"POST",headers:this.accountHeaders(),body:JSON.stringify({client_id:this.clientId,grant_type:"refresh_token",refresh_token:this.refreshToken})}),t=await e.json();if(!e.ok||t.error||!t.access_token)throw new Error("refresh token failed: "+(t.error_description||t.error||e.status));this.accessToken=t.access_token,t.refresh_token&&(this.refreshToken=t.refresh_token),await this.onTokensChanged?.(this.accessToken,this.refreshToken)}async postAPI(e,t){let i=async()=>{let o=await fetch(`${gV}${e}`,{method:"POST",headers:this.apiHeaders(),body:JSON.stringify(t??{})});return{res:o,json:await o.json().catch(()=>({}))}},{res:n,json:s}=await i();if((n.status===401||n.status===403)&&this.refreshToken){await this.refresh();let o=await i();n=o.res,s=o.json}if(!n.ok)throw new Error(`request failed: status=${n.status}`);return s}async getFileList(e,t,i,n){return this.postAPI("/userres/v1/file/get_file_list",{parentId:e,page:0,pageSize:t,orderBy:i,sortType:n})}async getDownloadURL(e){let t=await this.postAPI("/nd.bizuserres.s/v1/get_res_download_url",{fileId:e});return(t?.data?.signedURL||t?.data?.downloadUrl||"").trim()}async getUploadToken(e,t,i,n){let s={fileSize:i};n&&(s.md5=n);let o=await this.postAPI("/nd.bizuserres.s/v1/get_res_center_token",{capacity:2,name:t,parentId:e,res:s}),a=o.msg||"",c=o.code===156||pV(a);if(!HP(a)&&!c)throw new Error("get upload token failed: "+a);return{data:o.data,code:o.code,alreadyDone:c}}async waitTaskDone(e){for(let t=0;t<30;t++){let i=await this.postAPI("/nd.bizuserres.s/v1/get_task_status",{taskId:e});if(!HP(i.msg))throw new Error("get task status failed: "+i.msg);if(i.data?.status===2)return;if(i.data?.status===-1||i.data?.status===3)throw new Error(`task ${e} failed with status=${i.data.status}`);await new Promise(n=>setTimeout(n,300))}throw new Error(`task ${e} timeout`)}async waitUploadTaskInfo(e){for(let t=0;t<300;t++){if((await this.postAPI("/nd.bizuserres.s/v1/file/get_info_by_task_id",{taskId:e})).data?.fileId)return;await new Promise(n=>setTimeout(n,1e3))}throw new Error(`upload task ${e} timeout`)}static md5(e){return $t(e)}}});function mV(r){let e={...r||{}};return e.client_id=(e.client_id||"").trim(),e.device_id=zP(e.device_id||""),e.device_id||(e.device_id=GP()),e.device_sign=(e.device_sign||"").trim()||"wdi10."+e.device_id,e.page_size=Number(e.page_size||100),e.order_by=Number(e.order_by===void 0?3:e.order_by),e.sort_type=Number(e.sort_type===void 0?1:e.sort_type),e.root_folder_path=(e.root_folder_path||"").trim(),e.access_token=(e.access_token||"").trim(),e.refresh_token=(e.refresh_token||"").trim(),e.phone_number=KP(e.phone_number||""),e}function jP(r){let e=r.resType===2;return{name:r.fileName,size:e?0:r.fileSize||0,is_dir:e,modified:ME(r.utime),created:ME(r.ctime),sign:r.fileId,type:X(r.fileName,e)}}function yV(r,e){let t=(r||"").trim();if(!t)return t;!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t);let i;try{i=new URL(t)}catch{return t}let n=i.host;return e&&n.startsWith(e+".")&&(n=n.slice(e.length+1)),i.host=n,i.toString().replace(/\/+$/,"")}var Ay,$P=J(()=>{"use strict";Be();He();Gr();JP();Ay=class{addition;client;idCache=new Map;constructor(e,t){this.addition=mV(e),this.client=new If(this.addition),this.client.onTokensChanged=t}async init(){if(!this.addition.client_id)throw new Error("client_id is required");if(this.addition.access_token)try{await this.client.validateToken();return}catch{this.addition.access_token=""}if(this.addition.refresh_token){await this.client.refresh(),await this.client.validateToken();return}throw new Error("login failed: provide a valid access_token, or refresh_token, or phone_number + verify_code")}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return"";let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s="",o="/";for(let a of n){let l=(await this.client.getFileList(s,this.addition.page_size,this.addition.order_by,this.addition.sort_type)).data?.list?.find(d=>d.fileName===a&&d.resType===2);if(!l)throw new Error(`folder not found: ${a}`);s=l.fileId,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async resolveItemId(e){let t=this.cleanPath(e);if(t==="/")return"";let i=this.idCache.get(t);if(i)return i;let n=t.split("/").slice(0,-1).join("/")||"/",s=t.split("/").pop()||"",o=await this.resolveId(n),c=(await this.client.getFileList(o,this.addition.page_size,this.addition.order_by,this.addition.sort_type)).data?.list?.find(l=>l.fileName===s);if(!c)throw new Error(`item not found: ${s}`);return this.idCache.set(t,c.fileId),c.fileId}async list(e,t){let i=await this.resolveId(t),n=this.cleanPath(t),s=[];for(let o=0;o<1e4;o++){let a=await this.client.getFileList(i,this.addition.page_size,this.addition.order_by,this.addition.sort_type),c=a.data?.list||[];for(let l of c)this.idCache.set(this.joinPath(n,l.fileName),l.fileId),s.push(jP(l));if(c.length<this.addition.page_size||a.data?.total>0&&s.length>=a.data.total)break}return de(s,"name","asc")}async get(e,t){let i=this.cleanPath(t),n=i.split("/").filter(Boolean).pop()||"root";if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1};let s=i.split("/").slice(0,-1).join("/")||"/",o=await this.resolveId(s),c=(await this.client.getFileList(o,this.addition.page_size,this.addition.order_by,this.addition.sort_type)).data?.list?.find(u=>u.fileName===n);if(!c)throw new Error("file not found");let l=c.resType===2,d="";return l||(d=await this.client.getDownloadURL(c.fileId)),this.idCache.set(i,c.fileId),{...jP(c),raw_url:d}}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/")||"/",s=i.split("/").pop()||"",o=await this.resolveId(n);await this.client.postAPI("/nd.bizuserres.s/v1/file/create_dir",{parentId:o,dirName:s})}async rename(e,t,i){let n=await this.resolveItemId(t);await this.client.postAPI("/nd.bizuserres.s/v1/file/rename",{fileId:n,newName:i})}async move(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a),l=await this.client.postAPI("/nd.bizuserres.s/v1/file/move_file",{fileIds:[o],parentId:c});l?.data?.taskId&&await this.client.waitTaskDone(l.data.taskId)}async copy(e,t,i,n,s){let o=await this.resolveItemId(n),a=this.cleanPath(s).split("/").slice(0,-1).join("/")||"/",c=await this.resolveId(a),l=await this.client.postAPI("/nd.bizuserres.s/v1/file/copy_file",{fileIds:[o],parentId:c});l?.data?.taskId&&await this.client.waitTaskDone(l.data.taskId)}async remove(e,t,i){let n=await this.resolveItemId(t),s=await this.client.postAPI("/nd.bizuserres.s/v1/file/delete_file",{fileIds:[n]});s?.data?.taskId&&await this.client.waitTaskDone(s.data.taskId)}async put(e,t,i){let n=this.cleanPath(t),s=n.split("/").slice(0,-1).join("/")||"/",o=n.split("/").pop()||"upload",a=await this.resolveId(s),c=new Uint8Array(i),l=If.md5(c),{data:d,alreadyDone:u}=await this.client.getUploadToken(a,o,c.length,l),f=d?.taskId||"";if(u){if(!f)throw new Error("instant upload returns empty task id");await this.client.waitUploadTaskInfo(f);return}if(!d.objectPath||!d.bucketName||!d.endPoint||!d.accessKeyID||!d.secretAccessKey)throw new Error("upload token is incomplete");let h=yV(d.endPoint,d.bucketName),g=`https://${d.bucketName}.${new URL(h).host}/${d.objectPath.replace(/^\/+/,"")}`,p=new Date().toUTCString(),I="application/octet-stream",m=d.sessionToken?`x-oss-security-token:${d.sessionToken} +`:"",w=`/${d.bucketName}/${d.objectPath.replace(/^\/+/,"")}`,B=`PUT ${I} ${p} -${y}${w}`,b=await Bu(C,d.secretAccessKey),x=`OSS ${d.accessKeyID}:${b}`,_={"Content-Type":I,Date:p,Authorization:x};d.sessionToken&&(_["x-oss-security-token"]=d.sessionToken);let R=await fetch(g,{method:"PUT",headers:_,body:c});if(!R.ok)throw new Error(`OSS upload failed: ${R.status} ${await R.text()}`);f&&await this.client.waitUploadTaskInfo(f)}}});var kF=oe(fE=>{var mj=typeof fE>"u"?{}:fE;(function(r){"use strict";var e="__namespace",t=function(A){return A==null},i=function(A){return A===e||Number.isInteger(A)&&A>=1&&A<=11},n=function(A){return A&&i(A.nodeType)&&typeof A.nodeName=="string"};function s(A){var k=Array.prototype.slice,O=A.length,V=function(W,ue){return function(){return ue.apply(this,W.concat(k.call(arguments)))}},H=function(){var W=k.call(arguments);return W.length<O?V(W,H):A.apply(this,k.apply(arguments,[0,O]))};return H}var o=function(A,k){for(var O=0;O<k.length;O+=1)A(k[O],O,k)},a=function(A,k,O){var V=k;return o(function(H,W){V=A(V,H,W)},O),V},c=function(A,k){var O=new Array(k.length);return o(function(V,H){O[H]=A(V)},k),O},l=function(A,k){var O=[];return o(function(V,H){A(V,H)&&O.push(V)},k),O},d=function(A,k){for(var O=0;O<A.length;O+=1)if(A[O]===k)return!0;return!1};function u(A){return function(){return A}}function f(A){return A.toString()}var h=function(A,k){return k.join(A)},g=function(A,k,O){return A+O+k},p=Array.prototype.concat,I=function(A,k){var O=new Ce;O.addArray(A);var V=O.toArray();return k?V.reverse():V},y=32767;function w(A){for(var k=[],O=0;O<A.length;O+=y){var V=A.slice(O,O+y);k=p.apply(k,V)}return k}function C(A,k){for(var O=Object(A),V=1;V<arguments.length;V++){var H=arguments[V];if(H!=null)for(var W in H)Object.prototype.hasOwnProperty.call(H,W)&&(O[W]=H[W])}return O}var b={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NAMESPACE_NODE:e};x.prototype=new Object,x.prototype.constructor=x,x.superclass=Object.prototype;function x(){this.init()}x.prototype.init=function(){this.reduceActions=[],this.reduceActions[3]=function(A){return new Q(A[0],A[2])},this.reduceActions[5]=function(A){return new v(A[0],A[2])},this.reduceActions[7]=function(A){return new E(A[0],A[2])},this.reduceActions[8]=function(A){return new P(A[0],A[2])},this.reduceActions[10]=function(A){return new N(A[0],A[2])},this.reduceActions[11]=function(A){return new J(A[0],A[2])},this.reduceActions[12]=function(A){return new z(A[0],A[2])},this.reduceActions[13]=function(A){return new L(A[0],A[2])},this.reduceActions[15]=function(A){return new G(A[0],A[2])},this.reduceActions[16]=function(A){return new K(A[0],A[2])},this.reduceActions[18]=function(A){return new $(A[0],A[2])},this.reduceActions[19]=function(A){return new te(A[0],A[2])},this.reduceActions[20]=function(A){return new re(A[0],A[2])},this.reduceActions[22]=function(A){return new D(A[1])},this.reduceActions[24]=function(A){return new ee(A[0],A[2])},this.reduceActions[25]=function(A){return new Z(void 0,void 0,A[0])},this.reduceActions[27]=function(A){return A[0].locationPath=A[2],A[0]},this.reduceActions[28]=function(A){return A[0].locationPath=A[2],A[0].locationPath.steps.unshift(new se(se.DESCENDANTORSELF,ce.nodeTest,[])),A[0]},this.reduceActions[29]=function(A){return new Z(A[0],[],void 0)},this.reduceActions[30]=function(A){return be.instance_of(A[0],Z)?(A[0].filterPredicates==null&&(A[0].filterPredicates=[]),A[0].filterPredicates.push(A[1]),A[0]):new Z(A[0],[A[1]],void 0)},this.reduceActions[32]=function(A){return A[1]},this.reduceActions[33]=function(A){return new we(A[0])},this.reduceActions[34]=function(A){return new Ee(A[0])},this.reduceActions[36]=function(A){return new Or(A[0],[])},this.reduceActions[37]=function(A){return new Or(A[0],A[2])},this.reduceActions[38]=function(A){return[A[0]]},this.reduceActions[39]=function(A){return A[2].unshift(A[0]),A[2]},this.reduceActions[43]=function(A){return new _e(!0,[])},this.reduceActions[44]=function(A){return A[1].absolute=!0,A[1]},this.reduceActions[46]=function(A){return new _e(!1,[A[0]])},this.reduceActions[47]=function(A){return A[0].steps.push(A[2]),A[0]},this.reduceActions[49]=function(A){return new se(A[0],A[1],[])},this.reduceActions[50]=function(A){return new se(se.CHILD,A[0],[])},this.reduceActions[51]=function(A){return new se(A[0],A[1],A[2])},this.reduceActions[52]=function(A){return new se(se.CHILD,A[0],A[1])},this.reduceActions[54]=function(A){return[A[0]]},this.reduceActions[55]=function(A){return A[1].unshift(A[0]),A[1]},this.reduceActions[56]=function(A){return A[0]=="ancestor"?se.ANCESTOR:A[0]=="ancestor-or-self"?se.ANCESTORORSELF:A[0]=="attribute"?se.ATTRIBUTE:A[0]=="child"?se.CHILD:A[0]=="descendant"?se.DESCENDANT:A[0]=="descendant-or-self"?se.DESCENDANTORSELF:A[0]=="following"?se.FOLLOWING:A[0]=="following-sibling"?se.FOLLOWINGSIBLING:A[0]=="namespace"?se.NAMESPACE:A[0]=="parent"?se.PARENT:A[0]=="preceding"?se.PRECEDING:A[0]=="preceding-sibling"?se.PRECEDINGSIBLING:A[0]=="self"?se.SELF:-1},this.reduceActions[57]=function(A){return se.ATTRIBUTE},this.reduceActions[59]=function(A){return A[0]=="comment"?ce.commentTest:A[0]=="text"?ce.textTest:A[0]=="processing-instruction"?ce.anyPiTest:A[0]=="node"?ce.nodeTest:new ce(-1,void 0)},this.reduceActions[60]=function(A){return new ce.PITest(A[2])},this.reduceActions[61]=function(A){return A[1]},this.reduceActions[63]=function(A){return A[1].absolute=!0,A[1].steps.unshift(new se(se.DESCENDANTORSELF,ce.nodeTest,[])),A[1]},this.reduceActions[64]=function(A){return A[0].steps.push(new se(se.DESCENDANTORSELF,ce.nodeTest,[])),A[0].steps.push(A[2]),A[0]},this.reduceActions[65]=function(A){return new se(se.SELF,ce.nodeTest,[])},this.reduceActions[66]=function(A){return new se(se.PARENT,ce.nodeTest,[])},this.reduceActions[67]=function(A){return new dr(A[1])},this.reduceActions[68]=function(A){return ce.nameTestAny},this.reduceActions[69]=function(A){return new ce.NameTestPrefixAny(A[0].split(":")[0])},this.reduceActions[70]=function(A){return new ce.NameTestQName(A[0])}},x.actionTable=[" s s sssssssss s ss s ss"," s ","r rrrrrrrrr rrrrrrr rr r "," rrrrr "," s s sssssssss s ss s ss","rs rrrrrrrr s sssssrrrrrr rrs rs "," s s sssssssss s ss s ss"," s "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s "," s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr r ","a ","r s rr r ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrs rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r srrrrrrrr rrrrrrs rr sr ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r "," sssss ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrr rrrrr rr r "," s "," s "," rrrrr "," s s sssssssss s sss s ss","r srrrrrrrr rrrrrrs rr r "," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss ss s ss"," s s sssssssss s ss s ss"," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr rr "," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," rr "," s "," rs ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrr rr r "," r "," s ","r srrrrrrrr rrrrrrs rr r ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s s sssssssss s ss s ss","r rrrrrrrrr rrrrrrr rr rr "," r "],x.actionTableNumber=[` 1 0 /.-,+*)(' & %$ # "!`," J ","a aaaaaaaaa aaaaaaa aa a "," YYYYY ",` 1 0 /.-,+*)(' & %$ # "!`,`K1 KKKKKKKK . +*)('KKKKKK KK# K" `,` 1 0 /.-,+*)(' & %$ # "!`," N "," O ","e eeeeeeeee eeeeeee ee ee ","f fffffffff fffffff ff ff ","d ddddddddd ddddddd dd dd ","B BBBBBBBBB BBBBBBB BB BB ","A AAAAAAAAA AAAAAAA AA AA "," P "," Q ",` 1 . +*)(' # " `,"b bbbbbbbbb bbbbbbb bb b "," ","! S !! ! ",'" T" "" " ',"$ V $$ U $$ $ ","& &ZY&& &XW && & ",") ))))) )))\\[ )) ) ",". ....._^] ..... .. . ","1 11111111 11111 11 1 ","5 55555555 55555` 55 5 ","7 77777777 777777 77 7 ","9 99999999 999999 99 9 ",": c:::::::: ::::::b :: a: ","I fIIIIIIII IIIIIIe II I ","= ========= ======= == == ","? ????????? ??????? ?? ?? ","C CCCCCCCCC CCCCCCC CC CC ","J JJJJJJJJ JJJJJJ JJ J ","M MMMMMMMM MMMMMM MM M ","N NNNNNNNNN NNNNNNN NN N ","P PPPPPPPPP PPPPPPP PP P "," +*)(' ","R RRRRRRRRR RRRRRRR RR aR ","U UUUUUUUUU UUUUUUU UU U ","Z ZZZZZZZZZ ZZZZZZZ ZZ ZZ ","c ccccccccc ccccccc cc cc "," j ","L fLLLLLLLL LLLLLLe LL L ","6 66666666 66666 66 6 "," k "," l "," XXXXX ",` 1 0 /.-,+*)(' & %$m # "!`,"_ f________ ______e __ _ ",` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 . +*)(' # " `,` 1 . +*)(' # " `,"> >>>>>>>>> >>>>>>> >> >> ",` 1 . +*)(' # " `,` 1 . +*)(' # " `,"Q QQQQQQQQQ QQQQQQQ QQ aQ ","V VVVVVVVVV VVVVVVV VV aV ","T TTTTTTTTT TTTTTTT TT T ","@ @@@@@@@@@ @@@@@@@ @@ @@ "," \x87 ","[ [[[[[[[[[ [[[[[[[ [[ [[ ","D DDDDDDDDD DDDDDDD DD DD "," HH "," \x88 "," F\x89 ","# T# ## # ","% V %% U %% % ","' 'ZY'' 'XW '' ' ","( (ZY(( (XW (( ( ","+ +++++ +++\\[ ++ + ","* ***** ***\\[ ** * ","- ----- ---\\[ -- - ",", ,,,,, ,,,\\[ ,, , ","0 00000_^] 00000 00 0 ","/ /////_^] ///// // / ","2 22222222 22222 22 2 ","3 33333333 33333 33 3 ","4 44444444 44444 44 4 ","8 88888888 888888 88 8 "," ^ "," \x8A ","; f;;;;;;;; ;;;;;;e ;; ; ","< f<<<<<<<< <<<<<<e << < ","O OOOOOOOOO OOOOOOO OO O ","` ````````` ``````` `` ` ","S SSSSSSSSS SSSSSSS SS S ","W WWWWWWWWW WWWWWWW WW W ","\\ \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\ \\\\ \\\\ ","E EEEEEEEEE EEEEEEE EE EE ",` 1 0 /.-,+*)(' & %$ # "!`,"] ]]]]]]]]] ]]]]]]] ]] ]] "," G "],x.gotoTable=["3456789:;<=>?@ AB CDEFGH IJ "," "," "," ","L456789:;<=>?@ AB CDEFGH IJ "," M EFGH IJ "," N;<=>?@ AB CDEFGH IJ "," "," "," "," "," "," "," "," "," "," S EFGH IJ "," "," "," "," "," "," "," "," "," "," "," "," "," e "," "," "," "," "," "," "," "," "," h J "," i j "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABpqCDEFGH IJ "," "," r6789:;<=>?@ AB CDEFGH IJ "," s789:;<=>?@ AB CDEFGH IJ "," t89:;<=>?@ AB CDEFGH IJ "," u89:;<=>?@ AB CDEFGH IJ "," v9:;<=>?@ AB CDEFGH IJ "," w9:;<=>?@ AB CDEFGH IJ "," x9:;<=>?@ AB CDEFGH IJ "," y9:;<=>?@ AB CDEFGH IJ "," z:;<=>?@ AB CDEFGH IJ "," {:;<=>?@ AB CDEFGH IJ "," |;<=>?@ AB CDEFGH IJ "," };<=>?@ AB CDEFGH IJ "," ~;<=>?@ AB CDEFGH IJ "," \x7F=>?@ AB CDEFGH IJ ","\x80456789:;<=>?@ AB CDEFGH IJ\x81"," \x82 EFGH IJ "," \x83 EFGH IJ "," "," \x84 GH IJ "," \x85 GH IJ "," i \x86 "," i \x87 "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ AB\x8CqCDEFGH IJ "," "," "],x.productions=[[1,1,2],[2,1,3],[3,1,4],[3,3,3,-9,4],[4,1,5],[4,3,4,-8,5],[5,1,6],[5,3,5,-22,6],[5,3,5,-5,6],[6,1,7],[6,3,6,-23,7],[6,3,6,-24,7],[6,3,6,-6,7],[6,3,6,-7,7],[7,1,8],[7,3,7,-25,8],[7,3,7,-26,8],[8,1,9],[8,3,8,-12,9],[8,3,8,-11,9],[8,3,8,-10,9],[9,1,10],[9,2,-26,9],[10,1,11],[10,3,10,-27,11],[11,1,12],[11,1,13],[11,3,13,-28,14],[11,3,13,-4,14],[13,1,15],[13,2,13,16],[15,1,17],[15,3,-29,2,-30],[15,1,-15],[15,1,-16],[15,1,18],[18,3,-13,-29,-30],[18,4,-13,-29,19,-30],[19,1,20],[19,3,20,-31,19],[20,1,2],[12,1,14],[12,1,21],[21,1,-28],[21,2,-28,14],[21,1,22],[14,1,23],[14,3,14,-28,23],[14,1,24],[23,2,25,26],[23,1,26],[23,3,25,26,27],[23,2,26,27],[23,1,28],[27,1,16],[27,2,16,27],[25,2,-14,-3],[25,1,-32],[26,1,29],[26,3,-20,-29,-30],[26,4,-21,-29,-15,-30],[16,3,-33,30,-34],[30,1,2],[22,2,-4,14],[24,3,14,-4,23],[28,1,-35],[28,1,-2],[17,2,-36,-18],[29,1,-17],[29,1,-19],[29,1,-18]],x.DOUBLEDOT=2,x.DOUBLECOLON=3,x.DOUBLESLASH=4,x.NOTEQUAL=5,x.LESSTHANOREQUAL=6,x.GREATERTHANOREQUAL=7,x.AND=8,x.OR=9,x.MOD=10,x.DIV=11,x.MULTIPLYOPERATOR=12,x.FUNCTIONNAME=13,x.AXISNAME=14,x.LITERAL=15,x.NUMBER=16,x.ASTERISKNAMETEST=17,x.QNAME=18,x.NCNAMECOLONASTERISK=19,x.NODETYPE=20,x.PROCESSINGINSTRUCTIONWITHLITERAL=21,x.EQUALS=22,x.LESSTHAN=23,x.GREATERTHAN=24,x.PLUS=25,x.MINUS=26,x.BAR=27,x.SLASH=28,x.LEFTPARENTHESIS=29,x.RIGHTPARENTHESIS=30,x.COMMA=31,x.AT=32,x.LEFTBRACKET=33,x.RIGHTBRACKET=34,x.DOT=35,x.DOLLAR=36,x.prototype.tokenize=function(A){for(var k=[],O=[],V=A+"\0",H=0,W=V.charAt(H++);;){for(;W==" "||W==" "||W=="\r"||W==` -`;)W=V.charAt(H++);if(W=="\0"||H>=V.length)break;if(W=="("){k.push(x.LEFTPARENTHESIS),O.push(W),W=V.charAt(H++);continue}if(W==")"){k.push(x.RIGHTPARENTHESIS),O.push(W),W=V.charAt(H++);continue}if(W=="["){k.push(x.LEFTBRACKET),O.push(W),W=V.charAt(H++);continue}if(W=="]"){k.push(x.RIGHTBRACKET),O.push(W),W=V.charAt(H++);continue}if(W=="@"){k.push(x.AT),O.push(W),W=V.charAt(H++);continue}if(W==","){k.push(x.COMMA),O.push(W),W=V.charAt(H++);continue}if(W=="|"){k.push(x.BAR),O.push(W),W=V.charAt(H++);continue}if(W=="+"){k.push(x.PLUS),O.push(W),W=V.charAt(H++);continue}if(W=="-"){k.push(x.MINUS),O.push(W),W=V.charAt(H++);continue}if(W=="="){k.push(x.EQUALS),O.push(W),W=V.charAt(H++);continue}if(W=="$"){k.push(x.DOLLAR),O.push(W),W=V.charAt(H++);continue}if(W=="."){if(W=V.charAt(H++),W=="."){k.push(x.DOUBLEDOT),O.push(".."),W=V.charAt(H++);continue}if(W>="0"&&W<="9"){var ue="."+W;for(W=V.charAt(H++);W>="0"&&W<="9";)ue+=W,W=V.charAt(H++);k.push(x.NUMBER),O.push(ue);continue}k.push(x.DOT),O.push(".");continue}if(W=="'"||W=='"'){for(var Re=W,Ye="";H<V.length&&(W=V.charAt(H))!==Re;)Ye+=W,H+=1;if(W!==Re)throw Ai.fromMessage("Unterminated string literal: "+Re+Ye);H+=1,k.push(x.LITERAL),O.push(Ye),W=V.charAt(H++);continue}if(W>="0"&&W<="9"){var ue=W;for(W=V.charAt(H++);W>="0"&&W<="9";)ue+=W,W=V.charAt(H++);if(W=="."&&V.charAt(H)>="0"&&V.charAt(H)<="9")for(ue+=W,ue+=V.charAt(H++),W=V.charAt(H++);W>="0"&&W<="9";)ue+=W,W=V.charAt(H++);k.push(x.NUMBER),O.push(ue);continue}if(W=="*"){if(k.length>0){var Ie=k[k.length-1];if(Ie!=x.AT&&Ie!=x.DOUBLECOLON&&Ie!=x.LEFTPARENTHESIS&&Ie!=x.LEFTBRACKET&&Ie!=x.AND&&Ie!=x.OR&&Ie!=x.MOD&&Ie!=x.DIV&&Ie!=x.MULTIPLYOPERATOR&&Ie!=x.SLASH&&Ie!=x.DOUBLESLASH&&Ie!=x.BAR&&Ie!=x.PLUS&&Ie!=x.MINUS&&Ie!=x.EQUALS&&Ie!=x.NOTEQUAL&&Ie!=x.LESSTHAN&&Ie!=x.LESSTHANOREQUAL&&Ie!=x.GREATERTHAN&&Ie!=x.GREATERTHANOREQUAL){k.push(x.MULTIPLYOPERATOR),O.push(W),W=V.charAt(H++);continue}}k.push(x.ASTERISKNAMETEST),O.push(W),W=V.charAt(H++);continue}if(W==":"&&V.charAt(H)==":"){k.push(x.DOUBLECOLON),O.push("::"),H++,W=V.charAt(H++);continue}if(W=="/"){if(W=V.charAt(H++),W=="/"){k.push(x.DOUBLESLASH),O.push("//"),W=V.charAt(H++);continue}k.push(x.SLASH),O.push("/");continue}if(W=="!"&&V.charAt(H)=="="){k.push(x.NOTEQUAL),O.push("!="),H++,W=V.charAt(H++);continue}if(W=="<"){if(V.charAt(H)=="="){k.push(x.LESSTHANOREQUAL),O.push("<="),H++,W=V.charAt(H++);continue}k.push(x.LESSTHAN),O.push("<"),W=V.charAt(H++);continue}if(W==">"){if(V.charAt(H)=="="){k.push(x.GREATERTHANOREQUAL),O.push(">="),H++,W=V.charAt(H++);continue}k.push(x.GREATERTHAN),O.push(">"),W=V.charAt(H++);continue}if(W=="_"||be.isLetter(W.charCodeAt(0))){var Fe=W;for(W=V.charAt(H++);be.isNCNameChar(W.charCodeAt(0));)Fe+=W,W=V.charAt(H++);if(k.length>0){var Ie=k[k.length-1];if(Ie!=x.AT&&Ie!=x.DOUBLECOLON&&Ie!=x.LEFTPARENTHESIS&&Ie!=x.LEFTBRACKET&&Ie!=x.AND&&Ie!=x.OR&&Ie!=x.MOD&&Ie!=x.DIV&&Ie!=x.MULTIPLYOPERATOR&&Ie!=x.SLASH&&Ie!=x.DOUBLESLASH&&Ie!=x.BAR&&Ie!=x.PLUS&&Ie!=x.MINUS&&Ie!=x.EQUALS&&Ie!=x.NOTEQUAL&&Ie!=x.LESSTHAN&&Ie!=x.LESSTHANOREQUAL&&Ie!=x.GREATERTHAN&&Ie!=x.GREATERTHANOREQUAL){if(Fe=="and"){k.push(x.AND),O.push(Fe);continue}if(Fe=="or"){k.push(x.OR),O.push(Fe);continue}if(Fe=="mod"){k.push(x.MOD),O.push(Fe);continue}if(Fe=="div"){k.push(x.DIV),O.push(Fe);continue}}}if(W==":"){if(V.charAt(H)=="*"){k.push(x.NCNAMECOLONASTERISK),O.push(Fe+":*"),H++,W=V.charAt(H++);continue}if(V.charAt(H)=="_"||be.isLetter(V.charCodeAt(H))){for(Fe+=":",W=V.charAt(H++);be.isNCNameChar(W.charCodeAt(0));)Fe+=W,W=V.charAt(H++);if(W=="("){k.push(x.FUNCTIONNAME),O.push(Fe);continue}k.push(x.QNAME),O.push(Fe);continue}if(V.charAt(H)==":"){k.push(x.AXISNAME),O.push(Fe);continue}}if(W=="("){if(Fe=="comment"||Fe=="text"||Fe=="node"){k.push(x.NODETYPE),O.push(Fe);continue}if(Fe=="processing-instruction"){V.charAt(H)==")"?k.push(x.NODETYPE):k.push(x.PROCESSINGINSTRUCTIONWITHLITERAL),O.push(Fe);continue}k.push(x.FUNCTIONNAME),O.push(Fe);continue}k.push(x.QNAME),O.push(Fe);continue}throw new Error("Unexpected character "+W)}return k.push(1),O.push("[EOF]"),[k,O]},x.SHIFT="s",x.REDUCE="r",x.ACCEPT="a",x.prototype.parse=function(Ye){if(!Ye)throw new Error("XPath expression unspecified.");if(typeof Ye!="string")throw new Error("XPath expression must be a string.");var k,O,V=this.tokenize(Ye);if(V!=null){k=V[0],O=V[1];var H=0,W=[],ue=[],Re=[],Ye,Ie,Fe;for(W.push(0),ue.push(1),Re.push("_S"),Ie=k[H],Fe=O[H++];;)switch(Ye=W[W.length-1],x.actionTable[Ye].charAt(Ie-1)){case x.SHIFT:ue.push(-Ie),Re.push(Fe),W.push(x.actionTableNumber[Ye].charCodeAt(Ie-1)-32),Ie=k[H],Fe=O[H++];break;case x.REDUCE:for(var yn=x.productions[x.actionTableNumber[Ye].charCodeAt(Ie-1)-32][1],bs=[],vs=0;vs<yn;vs++)ue.pop(),bs.unshift(Re.pop()),W.pop();var ks=W[W.length-1];ue.push(x.productions[x.actionTableNumber[Ye].charCodeAt(Ie-1)-32][0]),this.reduceActions[x.actionTableNumber[Ye].charCodeAt(Ie-1)-32]==null?Re.push(bs[0]):Re.push(this.reduceActions[x.actionTableNumber[Ye].charCodeAt(Ie-1)-32](bs)),W.push(x.gotoTable[ks].charCodeAt(x.productions[x.actionTableNumber[Ye].charCodeAt(Ie-1)-32][0]-2)-33);break;case x.ACCEPT:return new _(Re.pop());default:throw new Error("XPath parse error")}}},_.prototype=new Object,_.prototype.constructor=_,_.superclass=Object.prototype;function _(A){this.expression=A}_.prototype.toString=function(){return this.expression.toString()};function R(A,k,O){k in A||(A[k]=O)}_.prototype.evaluate=function(A){var k=A.expressionContextNode;if(!(t(k)||n(k)))throw new Error("Context node does not appear to be a valid DOM node.");return A.contextNode=A.expressionContextNode,A.contextSize=1,A.contextPosition=1,A.isHtml&&(R(A,"caseInsensitive",!0),R(A,"allowAnyNamespaceForNoPrefix",!0)),R(A,"caseInsensitive",!1),this.expression.evaluate(A)},_.XML_NAMESPACE_URI="http://www.w3.org/XML/1998/namespace",_.XMLNS_NAMESPACE_URI="http://www.w3.org/2000/xmlns/",U.prototype=new Object,U.prototype.constructor=U,U.superclass=Object.prototype;function U(){}U.prototype.init=function(){},U.prototype.toString=function(){return"<Expression>"},U.prototype.evaluate=function(A){throw new Error("Could not evaluate expression.")},T.prototype=new U,T.prototype.constructor=T,T.superclass=U.prototype;function T(A){arguments.length>0&&this.init(A)}T.prototype.init=function(A){this.rhs=A},D.prototype=new T,D.prototype.constructor=D,D.superclass=T.prototype;function D(A){arguments.length>0&&this.init(A)}D.prototype.init=function(A){D.superclass.init.call(this,A)},D.prototype.evaluate=function(A){return this.rhs.evaluate(A).number().negate()},D.prototype.toString=function(){return"-"+this.rhs.toString()},B.prototype=new U,B.prototype.constructor=B,B.superclass=U.prototype;function B(A,k){arguments.length>0&&this.init(A,k)}B.prototype.init=function(A,k){this.lhs=A,this.rhs=k},Q.prototype=new B,Q.prototype.constructor=Q,Q.superclass=B.prototype;function Q(A,k){arguments.length>0&&this.init(A,k)}Q.prototype.init=function(A,k){Q.superclass.init.call(this,A,k)},Q.prototype.toString=function(){return"("+this.lhs.toString()+" or "+this.rhs.toString()+")"},Q.prototype.evaluate=function(A){var k=this.lhs.evaluate(A).bool();return k.booleanValue()?k:this.rhs.evaluate(A).bool()},v.prototype=new B,v.prototype.constructor=v,v.superclass=B.prototype;function v(A,k){arguments.length>0&&this.init(A,k)}v.prototype.init=function(A,k){v.superclass.init.call(this,A,k)},v.prototype.toString=function(){return"("+this.lhs.toString()+" and "+this.rhs.toString()+")"},v.prototype.evaluate=function(A){var k=this.lhs.evaluate(A).bool();return k.booleanValue()?this.rhs.evaluate(A).bool():k},E.prototype=new B,E.prototype.constructor=E,E.superclass=B.prototype;function E(A,k){arguments.length>0&&this.init(A,k)}E.prototype.init=function(A,k){E.superclass.init.call(this,A,k)},E.prototype.toString=function(){return"("+this.lhs.toString()+" = "+this.rhs.toString()+")"},E.prototype.evaluate=function(A){return this.lhs.evaluate(A).equals(this.rhs.evaluate(A))},P.prototype=new B,P.prototype.constructor=P,P.superclass=B.prototype;function P(A,k){arguments.length>0&&this.init(A,k)}P.prototype.init=function(A,k){P.superclass.init.call(this,A,k)},P.prototype.toString=function(){return"("+this.lhs.toString()+" != "+this.rhs.toString()+")"},P.prototype.evaluate=function(A){return this.lhs.evaluate(A).notequal(this.rhs.evaluate(A))},N.prototype=new B,N.prototype.constructor=N,N.superclass=B.prototype;function N(A,k){arguments.length>0&&this.init(A,k)}N.prototype.init=function(A,k){N.superclass.init.call(this,A,k)},N.prototype.evaluate=function(A){return this.lhs.evaluate(A).lessthan(this.rhs.evaluate(A))},N.prototype.toString=function(){return"("+this.lhs.toString()+" < "+this.rhs.toString()+")"},J.prototype=new B,J.prototype.constructor=J,J.superclass=B.prototype;function J(A,k){arguments.length>0&&this.init(A,k)}J.prototype.init=function(A,k){J.superclass.init.call(this,A,k)},J.prototype.evaluate=function(A){return this.lhs.evaluate(A).greaterthan(this.rhs.evaluate(A))},J.prototype.toString=function(){return"("+this.lhs.toString()+" > "+this.rhs.toString()+")"},z.prototype=new B,z.prototype.constructor=z,z.superclass=B.prototype;function z(A,k){arguments.length>0&&this.init(A,k)}z.prototype.init=function(A,k){z.superclass.init.call(this,A,k)},z.prototype.evaluate=function(A){return this.lhs.evaluate(A).lessthanorequal(this.rhs.evaluate(A))},z.prototype.toString=function(){return"("+this.lhs.toString()+" <= "+this.rhs.toString()+")"},L.prototype=new B,L.prototype.constructor=L,L.superclass=B.prototype;function L(A,k){arguments.length>0&&this.init(A,k)}L.prototype.init=function(A,k){L.superclass.init.call(this,A,k)},L.prototype.evaluate=function(A){return this.lhs.evaluate(A).greaterthanorequal(this.rhs.evaluate(A))},L.prototype.toString=function(){return"("+this.lhs.toString()+" >= "+this.rhs.toString()+")"},G.prototype=new B,G.prototype.constructor=G,G.superclass=B.prototype;function G(A,k){arguments.length>0&&this.init(A,k)}G.prototype.init=function(A,k){G.superclass.init.call(this,A,k)},G.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().plus(this.rhs.evaluate(A).number())},G.prototype.toString=function(){return"("+this.lhs.toString()+" + "+this.rhs.toString()+")"},K.prototype=new B,K.prototype.constructor=K,K.superclass=B.prototype;function K(A,k){arguments.length>0&&this.init(A,k)}K.prototype.init=function(A,k){K.superclass.init.call(this,A,k)},K.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().minus(this.rhs.evaluate(A).number())},K.prototype.toString=function(){return"("+this.lhs.toString()+" - "+this.rhs.toString()+")"},$.prototype=new B,$.prototype.constructor=$,$.superclass=B.prototype;function $(A,k){arguments.length>0&&this.init(A,k)}$.prototype.init=function(A,k){$.superclass.init.call(this,A,k)},$.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().multiply(this.rhs.evaluate(A).number())},$.prototype.toString=function(){return"("+this.lhs.toString()+" * "+this.rhs.toString()+")"},te.prototype=new B,te.prototype.constructor=te,te.superclass=B.prototype;function te(A,k){arguments.length>0&&this.init(A,k)}te.prototype.init=function(A,k){te.superclass.init.call(this,A,k)},te.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().div(this.rhs.evaluate(A).number())},te.prototype.toString=function(){return"("+this.lhs.toString()+" div "+this.rhs.toString()+")"},re.prototype=new B,re.prototype.constructor=re,re.superclass=B.prototype;function re(A,k){arguments.length>0&&this.init(A,k)}re.prototype.init=function(A,k){re.superclass.init.call(this,A,k)},re.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().mod(this.rhs.evaluate(A).number())},re.prototype.toString=function(){return"("+this.lhs.toString()+" mod "+this.rhs.toString()+")"},ee.prototype=new B,ee.prototype.constructor=ee,ee.superclass=B.prototype;function ee(A,k){arguments.length>0&&this.init(A,k)}ee.prototype.init=function(A,k){ee.superclass.init.call(this,A,k)},ee.prototype.evaluate=function(A){return this.lhs.evaluate(A).nodeset().union(this.rhs.evaluate(A).nodeset())},ee.prototype.toString=function(){return c(f,[this.lhs,this.rhs]).join(" | ")},Z.prototype=new U,Z.prototype.constructor=Z,Z.superclass=U.prototype;function Z(A,k,O){arguments.length>0&&this.init(A,k,O)}Z.prototype.init=function(A,k,O){Z.superclass.init.call(this),this.filter=A,this.filterPredicates=k,this.locationPath=O};function me(A){for(;A&&A.parentNode;)A=A.parentNode;return A}var le=function(A,k,O,V){if(A.length===0)return O;var H=k.extend({});return a(function(W,ue){return H.contextSize=W.length,l(function(Re,Ye){return H.contextNode=Re,H.contextPosition=Ye+1,Z.predicateMatches(ue,H)},W)},I(O,V),A)};Z.getRoot=function(A,k){var O=k[0];if(O&&O.nodeType===b.DOCUMENT_NODE)return O;if(A.virtualRoot)return A.virtualRoot;if(!O)throw new Error("Context node not found when determining document root.");var V=O.ownerDocument;if(V)return V;for(var H=O;H.parentNode!=null;)H=H.parentNode;return H};var Ae=function(A){var k=String(A.name);return k==="xmlns"?"":k.substring(0,6)==="xmlns:"?k.substring(6,k.length):null};Z.applyStep=function(A,k,O){if(!O)throw new Error("Context node not found when evaluating XPath step: "+A);var V=[];switch(k.contextNode=O,A.axis){case se.ANCESTOR:if(k.contextNode===k.virtualRoot)break;var H;for(k.contextNode.nodeType==b.ATTRIBUTE_NODE?H=Z.getOwnerElement(k.contextNode):H=k.contextNode.parentNode;H!=null&&(A.nodeTest.matches(H,k)&&V.push(H),H!==k.virtualRoot);)H=H.parentNode;break;case se.ANCESTORORSELF:for(var H=k.contextNode;H!=null&&(A.nodeTest.matches(H,k)&&V.push(H),H!==k.virtualRoot);H=H.nodeType==b.ATTRIBUTE_NODE?Z.getOwnerElement(H):H.parentNode);break;case se.ATTRIBUTE:var W=k.contextNode.attributes;if(W!=null)for(var ue=0;ue<W.length;ue++){var H=W.item(ue);A.nodeTest.matches(H,k)&&V.push(H)}break;case se.CHILD:for(var H=k.contextNode.firstChild;H!=null;H=H.nextSibling)A.nodeTest.matches(H,k)&&V.push(H);break;case se.DESCENDANT:for(var Fe=[k.contextNode.firstChild];Fe.length>0;)for(var H=Fe.pop();H!=null;)A.nodeTest.matches(H,k)&&V.push(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling;break;case se.DESCENDANTORSELF:A.nodeTest.matches(k.contextNode,k)&&V.push(k.contextNode);for(var Fe=[k.contextNode.firstChild];Fe.length>0;)for(var H=Fe.pop();H!=null;)A.nodeTest.matches(H,k)&&V.push(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling;break;case se.FOLLOWING:if(k.contextNode===k.virtualRoot)break;var Fe=[];k.contextNode.firstChild!=null?Fe.unshift(k.contextNode.firstChild):Fe.unshift(k.contextNode.nextSibling);for(var H=k.contextNode.parentNode;H!=null&&H.nodeType!=b.DOCUMENT_NODE&&H!==k.virtualRoot;H=H.parentNode)Fe.unshift(H.nextSibling);do for(var H=Fe.pop();H!=null;)A.nodeTest.matches(H,k)&&V.push(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling;while(Fe.length>0);break;case se.FOLLOWINGSIBLING:if(k.contextNode===k.virtualRoot)break;for(var H=k.contextNode.nextSibling;H!=null;H=H.nextSibling)A.nodeTest.matches(H,k)&&V.push(H);break;case se.NAMESPACE:var Re={};if(k.contextNode.nodeType==b.ELEMENT_NODE){Re.xml=new zi("xml",null,_.XML_NAMESPACE_URI,k.contextNode);for(var H=k.contextNode;H!=null&&H.nodeType==b.ELEMENT_NODE;H=H.parentNode)for(var ue=0;ue<H.attributes.length;ue++){var Ye=H.attributes.item(ue),Ie=Ae(Ye);Ie!=null&&Re[Ie]==null&&(Re[Ie]=new zi(Ie,Ye,Ye.value,k.contextNode))}for(var Ie in Re){var O=Re[Ie];A.nodeTest.matches(O,k)&&V.push(O)}}break;case se.PARENT:H=null,k.contextNode!==k.virtualRoot&&(k.contextNode.nodeType==b.ATTRIBUTE_NODE?H=Z.getOwnerElement(k.contextNode):H=k.contextNode.parentNode),H!=null&&A.nodeTest.matches(H,k)&&V.push(H);break;case se.PRECEDING:var Fe;k.virtualRoot!=null?Fe=[k.virtualRoot]:Fe=[me(k.contextNode)];e:for(;Fe.length>0;)for(var H=Fe.pop();H!=null;){if(H==k.contextNode)break e;A.nodeTest.matches(H,k)&&V.unshift(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling}break;case se.PRECEDINGSIBLING:if(k.contextNode===k.virtualRoot)break;for(var H=k.contextNode.previousSibling;H!=null;H=H.previousSibling)A.nodeTest.matches(H,k)&&V.push(H);break;case se.SELF:A.nodeTest.matches(k.contextNode,k)&&V.push(k.contextNode);break;default:}return V};function ve(A,k,O){return le(A.predicates,k,Z.applyStep(A,k,O),d(it,A.axis))}function qe(A,k,O){return w(c(ve.bind(null,O,A),k))}Z.applySteps=function(A,k,O){return a(qe.bind(null,k),O,A)},Z.prototype.applyFilter=function(A,k){if(!this.filter)return{nodes:[A.contextNode]};var O=this.filter.evaluate(A);if(!be.instance_of(O,Ce)){if(this.filterPredicates!=null&&this.filterPredicates.length>0||this.locationPath!=null)throw new Error("Path expression filter must evaluate to a nodeset if predicates or location path are used");return{nonNodes:O}}return{nodes:le(this.filterPredicates||[],k,O.toUnsortedArray(),!1)}},Z.applyLocationPath=function(A,k,O){if(!A)return O;var V=A.absolute?[Z.getRoot(k,O)]:O;return Z.applySteps(A.steps,k,V)},Z.prototype.evaluate=function(A){var k=C(new ii,A),O=this.applyFilter(A,k);if("nonNodes"in O)return O.nonNodes;var V=new Ce;return V.addArray(Z.applyLocationPath(this.locationPath,k,O.nodes)),V},Z.predicateMatches=function(A,k){var O=A.evaluate(k);return be.instance_of(O,Ee)?k.contextPosition===O.numberValue():O.booleanValue()},Z.predicateString=function(A){return g("[","]",A.toString())},Z.predicatesString=function(A){return h("",c(Z.predicateString,A))},Z.prototype.toString=function(){if(this.filter!=null){var A=f(this.filter);return be.instance_of(this.filter,we)?g("'","'",A):this.filterPredicates!=null&&this.filterPredicates.length?g("(",")",A)+Z.predicatesString(this.filterPredicates):this.locationPath!=null?A+(this.locationPath.absolute?"":"/")+f(this.locationPath):A}return f(this.locationPath)},Z.getOwnerElement=function(A){if(A.ownerElement)return A.ownerElement;try{if(A.selectSingleNode)return A.selectSingleNode("..")}catch{}for(var k=A.nodeType==b.DOCUMENT_NODE?A:A.ownerDocument,O=k.getElementsByTagName("*"),V=0;V<O.length;V++)for(var H=O.item(V),W=H.attributes,ue=0;ue<W.length;ue++){var Re=W.item(ue);if(Re===A)return H}return null},_e.prototype=new Object,_e.prototype.constructor=_e,_e.superclass=Object.prototype;function _e(A,k){arguments.length>0&&this.init(A,k)}_e.prototype.init=function(A,k){this.absolute=A,this.steps=k},_e.prototype.toString=function(){return(this.absolute?"/":"")+c(f,this.steps).join("/")},se.prototype=new Object,se.prototype.constructor=se,se.superclass=Object.prototype;function se(A,k,O){arguments.length>0&&this.init(A,k,O)}se.prototype.init=function(A,k,O){this.axis=A,this.nodeTest=k,this.predicates=O},se.prototype.toString=function(){return se.STEPNAMES[this.axis]+"::"+this.nodeTest.toString()+Z.predicatesString(this.predicates)},se.ANCESTOR=0,se.ANCESTORORSELF=1,se.ATTRIBUTE=2,se.CHILD=3,se.DESCENDANT=4,se.DESCENDANTORSELF=5,se.FOLLOWING=6,se.FOLLOWINGSIBLING=7,se.NAMESPACE=8,se.PARENT=9,se.PRECEDING=10,se.PRECEDINGSIBLING=11,se.SELF=12,se.STEPNAMES=a(function(A,k){return A[k[0]]=k[1],A},{},[[se.ANCESTOR,"ancestor"],[se.ANCESTORORSELF,"ancestor-or-self"],[se.ATTRIBUTE,"attribute"],[se.CHILD,"child"],[se.DESCENDANT,"descendant"],[se.DESCENDANTORSELF,"descendant-or-self"],[se.FOLLOWING,"following"],[se.FOLLOWINGSIBLING,"following-sibling"],[se.NAMESPACE,"namespace"],[se.PARENT,"parent"],[se.PRECEDING,"preceding"],[se.PRECEDINGSIBLING,"preceding-sibling"],[se.SELF,"self"]]);var it=[se.ANCESTOR,se.ANCESTORORSELF,se.PARENT,se.PRECEDING,se.PRECEDINGSIBLING];ce.prototype=new Object,ce.prototype.constructor=ce,ce.superclass=Object.prototype;function ce(A,k){arguments.length>0&&this.init(A,k)}ce.prototype.init=function(A,k){this.type=A,this.value=k},ce.prototype.toString=function(){return"<unknown nodetest type>"},ce.prototype.matches=function(A,k){console.warn("unknown node test type")},ce.NAMETESTANY=0,ce.NAMETESTPREFIXANY=1,ce.NAMETESTQNAME=2,ce.COMMENT=3,ce.TEXT=4,ce.PI=5,ce.NODE=6,ce.isNodeType=function(A){return function(k){return d(A,k.nodeType)}},ce.makeNodeTestType=function(A,k,O){var V=O||function(){};return V.prototype=new ce(A),V.prototype.constructor=V,C(V.prototype,k),V},ce.makeNodeTypeTest=function(A,k,O){return new(ce.makeNodeTestType(A,{matches:ce.isNodeType(k),toString:u(O)}))},ce.hasPrefix=function(A){return A.prefix||(A.nodeName||A.tagName).indexOf(":")!==-1},ce.isElementOrAttribute=ce.isNodeType([1,2]),ce.nameSpaceMatches=function(A,k,O){var V=O.namespaceURI||"";if(!A)return!V||k.allowAnyNamespaceForNoPrefix&&!ce.hasPrefix(O);var H=k.namespaceResolver.getNamespace(A,k.expressionContextNode);if(H==null)throw new Error("Cannot resolve QName "+A);return H===V},ce.localNameMatches=function(A,k,O){var V=O.localName||O.nodeName;return k.caseInsensitive?A.toLowerCase()===V.toLowerCase():A===V},ce.NameTestPrefixAny=ce.makeNodeTestType(ce.NAMETESTPREFIXANY,{matches:function(A,k){return ce.isElementOrAttribute(A)&&ce.nameSpaceMatches(this.prefix,k,A)},toString:function(){return this.prefix+":*"}},function(k){this.prefix=k}),ce.NameTestQName=ce.makeNodeTestType(ce.NAMETESTQNAME,{matches:function(A,k){return ce.isNodeType([b.ELEMENT_NODE,b.ATTRIBUTE_NODE,b.NAMESPACE_NODE])(A)&&ce.nameSpaceMatches(this.prefix,k,A)&&ce.localNameMatches(this.localName,k,A)},toString:function(){return this.name}},function(k){var O=k.split(":");this.name=k,this.prefix=O.length>1?O[0]:null,this.localName=O[O.length>1?1:0]}),ce.PITest=ce.makeNodeTestType(ce.PI,{matches:function(A,k){return ce.isNodeType([b.PROCESSING_INSTRUCTION_NODE])(A)&&(A.target||A.nodeName)===this.name},toString:function(){return g('processing-instruction("','")',this.name)}},function(A){this.name=A}),ce.nameTestAny=ce.makeNodeTypeTest(ce.NAMETESTANY,[b.ELEMENT_NODE,b.ATTRIBUTE_NODE,b.NAMESPACE_NODE],"*"),ce.textTest=ce.makeNodeTypeTest(ce.TEXT,[b.TEXT_NODE,b.CDATA_SECTION_NODE],"text()"),ce.commentTest=ce.makeNodeTypeTest(ce.COMMENT,[b.COMMENT_NODE],"comment()"),ce.nodeTest=ce.makeNodeTypeTest(ce.NODE,[b.ELEMENT_NODE,b.ATTRIBUTE_NODE,b.TEXT_NODE,b.CDATA_SECTION_NODE,b.PROCESSING_INSTRUCTION_NODE,b.COMMENT_NODE,b.DOCUMENT_NODE],"node()"),ce.anyPiTest=ce.makeNodeTypeTest(ce.PI,[b.PROCESSING_INSTRUCTION_NODE],"processing-instruction()"),dr.prototype=new U,dr.prototype.constructor=dr,dr.superclass=U.prototype;function dr(A){arguments.length>0&&this.init(A)}dr.prototype.init=function(A){this.variable=A},dr.prototype.toString=function(){return"$"+this.variable},dr.prototype.evaluate=function(A){var k=be.resolveQName(this.variable,A.namespaceResolver,A.contextNode,!1);if(k[0]==null)throw new Error("Cannot resolve QName "+fn);var O=A.variableResolver.getVariable(k[1],k[0]);if(!O)throw Ai.fromMessage("Undeclared variable: "+this.toString());return O},Or.prototype=new U,Or.prototype.constructor=Or,Or.superclass=U.prototype;function Or(A,k){arguments.length>0&&this.init(A,k)}Or.prototype.init=function(A,k){this.functionName=A,this.arguments=k},Or.prototype.toString=function(){for(var A=this.functionName+"(",k=0;k<this.arguments.length;k++)k>0&&(A+=", "),A+=this.arguments[k].toString();return A+")"},Or.prototype.evaluate=function(A){var k=tr.getFunctionFromContext(this.functionName,A);if(!k)throw new Error("Unknown function "+this.functionName);var O=[A].concat(this.arguments);return k.apply(A.functionResolver.thisArg,O)};var ct=new Object;ct.equals=function(A,k){return A.equals(k)},ct.notequal=function(A,k){return A.notequal(k)},ct.lessthan=function(A,k){return A.lessthan(k)},ct.greaterthan=function(A,k){return A.greaterthan(k)},ct.lessthanorequal=function(A,k){return A.lessthanorequal(k)},ct.greaterthanorequal=function(A,k){return A.greaterthanorequal(k)},we.prototype=new U,we.prototype.constructor=we,we.superclass=U.prototype;function we(A){arguments.length>0&&this.init(A)}we.prototype.init=function(A){this.str=String(A)},we.prototype.toString=function(){return this.str},we.prototype.evaluate=function(A){return this},we.prototype.string=function(){return this},we.prototype.number=function(){return new Ee(this.str)},we.prototype.bool=function(){return new Se(this.str)},we.prototype.nodeset=function(){throw new Error("Cannot convert string to nodeset")},we.prototype.stringValue=function(){return this.str},we.prototype.numberValue=function(){return this.number().numberValue()},we.prototype.booleanValue=function(){return this.bool().booleanValue()},we.prototype.equals=function(A){return be.instance_of(A,Se)?this.bool().equals(A):be.instance_of(A,Ee)?this.number().equals(A):be.instance_of(A,Ce)?A.compareWithString(this,ct.equals):new Se(this.str==A.str)},we.prototype.notequal=function(A){return be.instance_of(A,Se)?this.bool().notequal(A):be.instance_of(A,Ee)?this.number().notequal(A):be.instance_of(A,Ce)?A.compareWithString(this,ct.notequal):new Se(this.str!=A.str)},we.prototype.lessthan=function(A){return this.number().lessthan(A)},we.prototype.greaterthan=function(A){return this.number().greaterthan(A)},we.prototype.lessthanorequal=function(A){return this.number().lessthanorequal(A)},we.prototype.greaterthanorequal=function(A){return this.number().greaterthanorequal(A)},Ee.prototype=new U,Ee.prototype.constructor=Ee,Ee.superclass=U.prototype;function Ee(A){arguments.length>0&&this.init(A)}Ee.prototype.init=function(A){this.num=typeof A=="string"?this.parse(A):Number(A)},Ee.prototype.numberFormat=/^\s*-?[0-9]*\.?[0-9]+\s*$/,Ee.prototype.parse=function(A){return this.numberFormat.test(A)?parseFloat(A):Number.NaN};function Gi(A){for(var k=A.split("e-"),O=k[0].replace(".",""),V=Number(k[1]),H=0;H<V-1;H+=1)O="0"+O;return"0."+O}function xo(A){for(var k=A.split("e"),O=k[0].replace(".",""),V=Number(k[1]),H=V+1-O.length,W=0;W<H;W+=1)O+="0";return O}Ee.prototype.toString=function(){var A=this.num.toString();return A.indexOf("e-")!==-1?Gi(A):A.indexOf("e")!==-1?xo(A):A},Ee.prototype.evaluate=function(A){return this},Ee.prototype.string=function(){return new we(this.toString())},Ee.prototype.number=function(){return this},Ee.prototype.bool=function(){return new Se(this.num)},Ee.prototype.nodeset=function(){throw new Error("Cannot convert number to nodeset")},Ee.prototype.stringValue=function(){return this.string().stringValue()},Ee.prototype.numberValue=function(){return this.num},Ee.prototype.booleanValue=function(){return this.bool().booleanValue()},Ee.prototype.negate=function(){return new Ee(-this.num)},Ee.prototype.equals=function(A){return be.instance_of(A,Se)?this.bool().equals(A):be.instance_of(A,we)?this.equals(A.number()):be.instance_of(A,Ce)?A.compareWithNumber(this,ct.equals):new Se(this.num==A.num)},Ee.prototype.notequal=function(A){return be.instance_of(A,Se)?this.bool().notequal(A):be.instance_of(A,we)?this.notequal(A.number()):be.instance_of(A,Ce)?A.compareWithNumber(this,ct.notequal):new Se(this.num!=A.num)},Ee.prototype.lessthan=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,ct.greaterthan):be.instance_of(A,Se)||be.instance_of(A,we)?this.lessthan(A.number()):new Se(this.num<A.num)},Ee.prototype.greaterthan=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,ct.lessthan):be.instance_of(A,Se)||be.instance_of(A,we)?this.greaterthan(A.number()):new Se(this.num>A.num)},Ee.prototype.lessthanorequal=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,ct.greaterthanorequal):be.instance_of(A,Se)||be.instance_of(A,we)?this.lessthanorequal(A.number()):new Se(this.num<=A.num)},Ee.prototype.greaterthanorequal=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,ct.lessthanorequal):be.instance_of(A,Se)||be.instance_of(A,we)?this.greaterthanorequal(A.number()):new Se(this.num>=A.num)},Ee.prototype.plus=function(A){return new Ee(this.num+A.num)},Ee.prototype.minus=function(A){return new Ee(this.num-A.num)},Ee.prototype.multiply=function(A){return new Ee(this.num*A.num)},Ee.prototype.div=function(A){return new Ee(this.num/A.num)},Ee.prototype.mod=function(A){return new Ee(this.num%A.num)},Se.prototype=new U,Se.prototype.constructor=Se,Se.superclass=U.prototype;function Se(A){arguments.length>0&&this.init(A)}Se.prototype.init=function(A){this.b=!!A},Se.prototype.toString=function(){return this.b.toString()},Se.prototype.evaluate=function(A){return this},Se.prototype.string=function(){return new we(this.b)},Se.prototype.number=function(){return new Ee(this.b)},Se.prototype.bool=function(){return this},Se.prototype.nodeset=function(){throw new Error("Cannot convert boolean to nodeset")},Se.prototype.stringValue=function(){return this.string().stringValue()},Se.prototype.numberValue=function(){return this.number().numberValue()},Se.prototype.booleanValue=function(){return this.b},Se.prototype.not=function(){return new Se(!this.b)},Se.prototype.equals=function(A){return be.instance_of(A,we)||be.instance_of(A,Ee)?this.equals(A.bool()):be.instance_of(A,Ce)?A.compareWithBoolean(this,ct.equals):new Se(this.b==A.b)},Se.prototype.notequal=function(A){return be.instance_of(A,we)||be.instance_of(A,Ee)?this.notequal(A.bool()):be.instance_of(A,Ce)?A.compareWithBoolean(this,ct.notequal):new Se(this.b!=A.b)},Se.prototype.lessthan=function(A){return this.number().lessthan(A)},Se.prototype.greaterthan=function(A){return this.number().greaterthan(A)},Se.prototype.lessthanorequal=function(A){return this.number().lessthanorequal(A)},Se.prototype.greaterthanorequal=function(A){return this.number().greaterthanorequal(A)},Se.true_=new Se(!0),Se.false_=new Se(!1),Dt.prototype=new Object,Dt.prototype.constructor=Dt,Dt.superclass=Object.prototype;function Dt(A){this.init(A)}Dt.prototype.init=function(A){this.left=null,this.right=null,this.node=A,this.depth=1},Dt.prototype.balance=function(){var A=this.left==null?0:this.left.depth,k=this.right==null?0:this.right.depth;if(A>k+1){var O=this.left.left==null?0:this.left.left.depth,V=this.left.right==null?0:this.left.right.depth;O<V&&this.left.rotateRR(),this.rotateLL()}else if(A+1<k){var H=this.right.right==null?0:this.right.right.depth,W=this.right.left==null?0:this.right.left.depth;W>H&&this.right.rotateLL(),this.rotateRR()}},Dt.prototype.rotateLL=function(){var A=this.node,k=this.right;this.node=this.left.node,this.right=this.left,this.left=this.left.left,this.right.left=this.right.right,this.right.right=k,this.right.node=A,this.right.updateInNewLocation(),this.updateInNewLocation()},Dt.prototype.rotateRR=function(){var A=this.node,k=this.left;this.node=this.right.node,this.left=this.right,this.right=this.right.right,this.left.right=this.left.left,this.left.left=k,this.left.node=A,this.left.updateInNewLocation(),this.updateInNewLocation()},Dt.prototype.updateInNewLocation=function(){this.getDepthFromChildren()},Dt.prototype.getDepthFromChildren=function(){this.depth=this.node==null?0:1,this.left!=null&&(this.depth=this.left.depth+1),this.right!=null&&this.depth<=this.right.depth&&(this.depth=this.right.depth+1)};function Bs(A,k){if(A===k)return 0;if(A.compareDocumentPosition){var O=A.compareDocumentPosition(k);return O&1||O&10?1:O&20?-1:0}for(var V=0,H=0,W=A;W!=null;W=W.parentNode||W.ownerElement)V++;for(var ue=k;ue!=null;ue=ue.parentNode||ue.ownerElement)H++;if(V>H){for(;V>H;)A=A.parentNode||A.ownerElement,V--;if(A===k)return 1}else if(H>V){for(;H>V;)k=k.parentNode||k.ownerElement,H--;if(A===k)return-1}for(var Re=A.parentNode||A.ownerElement,Ye=k.parentNode||k.ownerElement;Re!==Ye;)A=Re,k=Ye,Re=A.parentNode||A.ownerElement,Ye=k.parentNode||k.ownerElement;var Ie=Al(A),Fe=Al(k);if(Ie&&!Fe)return-1;if(!Ie&&Fe)return 1;if(A.isXPathNamespace){if(A.nodeValue===_.XML_NAMESPACE_URI||!k.isXPathNamespace)return-1;if(k.nodeValue===_.XML_NAMESPACE_URI)return 1}else if(k.isXPathNamespace)return 1;if(Re)for(var yn=Ie?Re.attributes:Re.childNodes,bs=yn.length,vs=A.baseNode||A,ks=k.baseNode||k,ji=0;ji<bs;ji+=1){var Ln=yn[ji];if(Ln===vs)return-1;if(Ln===ks)return 1}throw new Error("Unexpected: could not determine node order")}Dt.prototype.add=function(A){if(A===this.node)return!1;var k=Bs(A,this.node),O=!1;return k==-1?this.left==null?(this.left=new Dt(A),O=!0):(O=this.left.add(A),O&&this.balance()):k==1&&(this.right==null?(this.right=new Dt(A),O=!0):(O=this.right.add(A),O&&this.balance())),O&&this.getDepthFromChildren(),O},Ce.prototype=new U,Ce.prototype.constructor=Ce,Ce.superclass=U.prototype;function Ce(){this.init()}Ce.prototype.init=function(){this.tree=null,this.nodes=[],this.size=0},Ce.prototype.toString=function(){var A=this.first();return A==null?"":this.stringForNode(A)},Ce.prototype.evaluate=function(A){return this},Ce.prototype.string=function(){return new we(this.toString())},Ce.prototype.stringValue=function(){return this.toString()},Ce.prototype.number=function(){return new Ee(this.string())},Ce.prototype.numberValue=function(){return Number(this.string())},Ce.prototype.bool=function(){return new Se(this.booleanValue())},Ce.prototype.booleanValue=function(){return!!this.size},Ce.prototype.nodeset=function(){return this},Ce.prototype.stringForNode=function(A){return A.nodeType==b.DOCUMENT_NODE||A.nodeType==b.ELEMENT_NODE||A.nodeType===b.DOCUMENT_FRAGMENT_NODE?this.stringForContainerNode(A):A.nodeType===b.ATTRIBUTE_NODE?A.value||A.nodeValue:A.isNamespaceNode?A.namespace:A.nodeValue},Ce.prototype.stringForContainerNode=function(A){for(var k="",O=A.firstChild;O!=null;O=O.nextSibling){var V=O.nodeType;(V===1||V===3||V===4||V===9||V===11)&&(k+=this.stringForNode(O))}return k},Ce.prototype.buildTree=function(){if(!this.tree&&this.nodes.length){this.tree=new Dt(this.nodes[0]);for(var A=1;A<this.nodes.length;A+=1)this.tree.add(this.nodes[A])}return this.tree},Ce.prototype.first=function(){var A=this.buildTree();if(A==null)return null;for(;A.left!=null;)A=A.left;return A.node},Ce.prototype.add=function(A){for(var k=0;k<this.nodes.length;k+=1)if(A===this.nodes[k])return;this.tree=null,this.nodes.push(A),this.size+=1},Ce.prototype.addArray=function(A){var k=this;o(function(O){k.add(O)},A)},Ce.prototype.toArray=function(){var A=[];return this.toArrayRec(this.buildTree(),A),A},Ce.prototype.toArrayRec=function(A,k){A!=null&&(this.toArrayRec(A.left,k),k.push(A.node),this.toArrayRec(A.right,k))},Ce.prototype.toUnsortedArray=function(){return this.nodes.slice()},Ce.prototype.compareWithString=function(A,k){for(var O=this.toUnsortedArray(),V=0;V<O.length;V++){var H=O[V],W=new we(this.stringForNode(H)),ue=k(W,A);if(ue.booleanValue())return ue}return new Se(!1)},Ce.prototype.compareWithNumber=function(A,k){for(var O=this.toUnsortedArray(),V=0;V<O.length;V++){var H=O[V],W=new Ee(this.stringForNode(H)),ue=k(W,A);if(ue.booleanValue())return ue}return new Se(!1)},Ce.prototype.compareWithBoolean=function(A,k){return k(this.bool(),A)},Ce.prototype.compareWithNodeSet=function(A,k){for(var O=this.toUnsortedArray(),V=function(Re,Ye){return k(Ye,Re)},H=0;H<O.length;H++){var W=new we(this.stringForNode(O[H])),ue=A.compareWithString(W,V);if(ue.booleanValue())return ue}return new Se(!1)},Ce.compareWith=s(function(A,k){return be.instance_of(k,we)?this.compareWithString(k,A):be.instance_of(k,Ee)?this.compareWithNumber(k,A):be.instance_of(k,Se)?this.compareWithBoolean(k,A):this.compareWithNodeSet(k,A)}),Ce.prototype.equals=Ce.compareWith(ct.equals),Ce.prototype.notequal=Ce.compareWith(ct.notequal),Ce.prototype.lessthan=Ce.compareWith(ct.lessthan),Ce.prototype.greaterthan=Ce.compareWith(ct.greaterthan),Ce.prototype.lessthanorequal=Ce.compareWith(ct.lessthanorequal),Ce.prototype.greaterthanorequal=Ce.compareWith(ct.greaterthanorequal),Ce.prototype.union=function(A){var k=new Ce;return k.addArray(this.toUnsortedArray()),k.addArray(A.toUnsortedArray()),k},zi.prototype=new Object,zi.prototype.constructor=zi,zi.superclass=Object.prototype;function zi(A,k,O,V){this.isXPathNamespace=!0,this.baseNode=k,this.ownerDocument=V.ownerDocument,this.nodeName=A,this.prefix=A,this.localName=A,this.namespaceURI=null,this.nodeValue=O,this.ownerElement=V,this.nodeType=b.NAMESPACE_NODE}zi.prototype.toString=function(){return'{ "'+this.prefix+'", "'+this.namespaceURI+'" }'},ii.prototype=new Object,ii.prototype.constructor=ii,ii.superclass=Object.prototype;function ii(A,k,O){this.variableResolver=A??new Ir,this.namespaceResolver=k??new ur,this.functionResolver=O??new tr}ii.prototype.extend=function(A){return C(new ii,this,A)},Ir.prototype=new Object,Ir.prototype.constructor=Ir,Ir.superclass=Object.prototype;function Ir(){}Ir.prototype.getVariable=function(A,k){return null},tr.prototype=new Object,tr.prototype.constructor=tr,tr.superclass=Object.prototype;function tr(A){this.thisArg=A??Qe,this.functions=new Object,this.addStandardFunctions()}tr.prototype.addStandardFunctions=function(){this.functions["{}last"]=Qe.last,this.functions["{}position"]=Qe.position,this.functions["{}count"]=Qe.count,this.functions["{}id"]=Qe.id,this.functions["{}local-name"]=Qe.localName,this.functions["{}namespace-uri"]=Qe.namespaceURI,this.functions["{}name"]=Qe.name,this.functions["{}string"]=Qe.string,this.functions["{}concat"]=Qe.concat,this.functions["{}starts-with"]=Qe.startsWith,this.functions["{}contains"]=Qe.contains,this.functions["{}substring-before"]=Qe.substringBefore,this.functions["{}substring-after"]=Qe.substringAfter,this.functions["{}substring"]=Qe.substring,this.functions["{}string-length"]=Qe.stringLength,this.functions["{}normalize-space"]=Qe.normalizeSpace,this.functions["{}translate"]=Qe.translate,this.functions["{}boolean"]=Qe.boolean_,this.functions["{}not"]=Qe.not,this.functions["{}true"]=Qe.true_,this.functions["{}false"]=Qe.false_,this.functions["{}lang"]=Qe.lang,this.functions["{}number"]=Qe.number,this.functions["{}sum"]=Qe.sum,this.functions["{}floor"]=Qe.floor,this.functions["{}ceiling"]=Qe.ceiling,this.functions["{}round"]=Qe.round},tr.prototype.addFunction=function(A,k,O){this.functions["{"+A+"}"+k]=O},tr.getFunctionFromContext=function(A,k){var O=be.resolveQName(A,k.namespaceResolver,k.contextNode,!1);if(O[0]===null)throw new Error("Cannot resolve QName "+name);return k.functionResolver.getFunction(O[1],O[0])},tr.prototype.getFunction=function(A,k){return this.functions["{"+k+"}"+A]},ur.prototype=new Object,ur.prototype.constructor=ur,ur.superclass=Object.prototype;function ur(){}ur.prototype.getNamespace=function(A,k){if(A=="xml")return _.XML_NAMESPACE_URI;if(A=="xmlns")return _.XMLNS_NAMESPACE_URI;for(k.nodeType==b.DOCUMENT_NODE?k=k.documentElement:k.nodeType==b.ATTRIBUTE_NODE?k=Z.getOwnerElement(k):k.nodeType!=b.ELEMENT_NODE&&(k=k.parentNode);k!=null&&k.nodeType==b.ELEMENT_NODE;){for(var O=k.attributes,V=0;V<O.length;V++){var H=O.item(V),W=H.name||H.nodeName;if(W==="xmlns"&&A===""||W==="xmlns:"+A)return String(H.value||H.nodeValue)}k=k.parentNode}return null};var Qe=new Object;Qe.last=function(A){if(arguments.length!=1)throw new Error("Function last expects ()");return new Ee(A.contextSize)},Qe.position=function(A){if(arguments.length!=1)throw new Error("Function position expects ()");return new Ee(A.contextPosition)},Qe.count=function(){var A=arguments[0],k;if(arguments.length!=2||!be.instance_of(k=arguments[1].evaluate(A),Ce))throw new Error("Function count expects (node-set)");return new Ee(k.size)},Qe.id=function(){var A=arguments[0],k;if(arguments.length!=2)throw new Error("Function id expects (object)");k=arguments[1].evaluate(A),be.instance_of(k,Ce)?k=k.toArray().join(" "):k=k.stringValue();for(var O=k.split(/[\x0d\x0a\x09\x20]+/),V=0,H=new Ce,W=A.contextNode.nodeType==b.DOCUMENT_NODE?A.contextNode:A.contextNode.ownerDocument,ue=0;ue<O.length;ue++){var Re;W.getElementById?Re=W.getElementById(O[ue]):Re=be.getElementById(W,O[ue]),Re!=null&&(H.add(Re),V++)}return H},Qe.localName=function(A,k){var O;if(arguments.length==1)O=A.contextNode;else if(arguments.length==2)O=k.evaluate(A).first();else throw new Error("Function local-name expects (node-set?)");return O==null?new we(""):new we(O.localName||O.baseName||O.target||O.nodeName||"")},Qe.namespaceURI=function(){var A=arguments[0],k;if(arguments.length==1)k=A.contextNode;else if(arguments.length==2)k=arguments[1].evaluate(A).first();else throw new Error("Function namespace-uri expects (node-set?)");return k==null?new we(""):new we(k.namespaceURI||"")},Qe.name=function(){var A=arguments[0],k;if(arguments.length==1)k=A.contextNode;else if(arguments.length==2)k=arguments[1].evaluate(A).first();else throw new Error("Function name expects (node-set?)");return k==null?new we(""):k.nodeType==b.ELEMENT_NODE?new we(k.nodeName):k.nodeType==b.ATTRIBUTE_NODE?new we(k.name||k.nodeName):k.nodeType===b.PROCESSING_INSTRUCTION_NODE?new we(k.target||k.nodeName):k.localName==null?new we(""):new we(k.localName)},Qe.string=function(){var A=arguments[0];if(arguments.length==1)return new we(Ce.prototype.stringForNode(A.contextNode));if(arguments.length==2)return arguments[1].evaluate(A).string();throw new Error("Function string expects (object?)")},Qe.concat=function(A){if(arguments.length<3)throw new Error("Function concat expects (string, string[, string]*)");for(var k="",O=1;O<arguments.length;O++)k+=arguments[O].evaluate(A).stringValue();return new we(k)},Qe.startsWith=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function startsWith expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();return new Se(k.substring(0,O.length)==O)},Qe.contains=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function contains expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();return new Se(k.indexOf(O)!==-1)},Qe.substringBefore=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function substring-before expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();return new we(k.substring(0,k.indexOf(O)))},Qe.substringAfter=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function substring-after expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();if(O.length==0)return new we(k);var V=k.indexOf(O);return V==-1?new we(""):new we(k.substring(V+O.length))},Qe.substring=function(){var A=arguments[0];if(!(arguments.length==3||arguments.length==4))throw new Error("Function substring expects (string, number, number?)");var k=arguments[1].evaluate(A).stringValue(),O=Math.round(arguments[2].evaluate(A).numberValue())-1,V=arguments.length==4?O+Math.round(arguments[3].evaluate(A).numberValue()):void 0;return new we(k.substring(O,V))},Qe.stringLength=function(){var A=arguments[0],k;if(arguments.length==1)k=Ce.prototype.stringForNode(A.contextNode);else if(arguments.length==2)k=arguments[1].evaluate(A).stringValue();else throw new Error("Function string-length expects (string?)");return new Ee(k.length)},Qe.normalizeSpace=function(){var A=arguments[0],k;if(arguments.length==1)k=Ce.prototype.stringForNode(A.contextNode);else if(arguments.length==2)k=arguments[1].evaluate(A).stringValue();else throw new Error("Function normalize-space expects (string?)");for(var O=0,V=k.length-1;be.isSpace(k.charCodeAt(V));)V--;for(var H="";O<=V&&be.isSpace(k.charCodeAt(O));)O++;for(;O<=V;)if(be.isSpace(k.charCodeAt(O)))for(H+=" ";O<=V&&be.isSpace(k.charCodeAt(O));)O++;else H+=k.charAt(O),O++;return new we(H)},Qe.translate=function(A,k,O,V){if(arguments.length!=4)throw new Error("Function translate expects (string, string, string)");var H=k.evaluate(A).stringValue(),W=O.evaluate(A).stringValue(),ue=V.evaluate(A).stringValue(),Re=a(function(Ie,Fe,yn){return Fe in Ie||(Ie[Fe]=yn>ue.length?"":ue[yn]),Ie},{},W),Ye=h("",c(function(Ie){return Ie in Re?Re[Ie]:Ie},H));return new we(Ye)},Qe.boolean_=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function boolean expects (object)");return arguments[1].evaluate(A).bool()},Qe.not=function(A,k){if(arguments.length!=2)throw new Error("Function not expects (object)");return k.evaluate(A).bool().not()},Qe.true_=function(){if(arguments.length!=1)throw new Error("Function true expects ()");return Se.true_},Qe.false_=function(){if(arguments.length!=1)throw new Error("Function false expects ()");return Se.false_},Qe.lang=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function lang expects (string)");for(var k,O=A.contextNode;O!=null&&O.nodeType!=b.DOCUMENT_NODE;O=O.parentNode){var V=O.getAttributeNS(_.XML_NAMESPACE_URI,"lang");if(V!=null){k=String(V);break}}if(k==null)return Se.false_;var H=arguments[1].evaluate(A).stringValue();return new Se(k.substring(0,H.length)==H&&(k.length==H.length||k.charAt(H.length)=="-"))},Qe.number=function(){var A=arguments[0];if(!(arguments.length==1||arguments.length==2))throw new Error("Function number expects (object?)");return arguments.length==1?new Ee(Ce.prototype.stringForNode(A.contextNode)):arguments[1].evaluate(A).number()},Qe.sum=function(){var A=arguments[0],k;if(arguments.length!=2||!be.instance_of(k=arguments[1].evaluate(A),Ce))throw new Error("Function sum expects (node-set)");k=k.toUnsortedArray();for(var O=0,V=0;V<k.length;V++)O+=new Ee(Ce.prototype.stringForNode(k[V])).numberValue();return new Ee(O)},Qe.floor=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function floor expects (number)");return new Ee(Math.floor(arguments[1].evaluate(A).numberValue()))},Qe.ceiling=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function ceiling expects (number)");return new Ee(Math.ceil(arguments[1].evaluate(A).numberValue()))},Qe.round=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function round expects (number)");return new Ee(Math.round(arguments[1].evaluate(A).numberValue()))};var be=new Object,Al=function(A){return A&&(A.nodeType===b.ATTRIBUTE_NODE||A.ownerElement||A.isXPathNamespace)};be.splitQName=function(A){var k=A.indexOf(":");return k==-1?[null,A]:[A.substring(0,k),A.substring(k+1)]},be.resolveQName=function(A,k,O,V){var H=be.splitQName(A);return H[0]!=null?H[0]=k.getNamespace(H[0],O):V?(H[0]=k.getNamespace("",O),H[0]==null&&(H[0]="")):H[0]="",H},be.isSpace=function(A){return A==9||A==13||A==10||A==32},be.isLetter=function(A){return A>=65&&A<=90||A>=97&&A<=122||A>=192&&A<=214||A>=216&&A<=246||A>=248&&A<=255||A>=256&&A<=305||A>=308&&A<=318||A>=321&&A<=328||A>=330&&A<=382||A>=384&&A<=451||A>=461&&A<=496||A>=500&&A<=501||A>=506&&A<=535||A>=592&&A<=680||A>=699&&A<=705||A==902||A>=904&&A<=906||A==908||A>=910&&A<=929||A>=931&&A<=974||A>=976&&A<=982||A==986||A==988||A==990||A==992||A>=994&&A<=1011||A>=1025&&A<=1036||A>=1038&&A<=1103||A>=1105&&A<=1116||A>=1118&&A<=1153||A>=1168&&A<=1220||A>=1223&&A<=1224||A>=1227&&A<=1228||A>=1232&&A<=1259||A>=1262&&A<=1269||A>=1272&&A<=1273||A>=1329&&A<=1366||A==1369||A>=1377&&A<=1414||A>=1488&&A<=1514||A>=1520&&A<=1522||A>=1569&&A<=1594||A>=1601&&A<=1610||A>=1649&&A<=1719||A>=1722&&A<=1726||A>=1728&&A<=1742||A>=1744&&A<=1747||A==1749||A>=1765&&A<=1766||A>=2309&&A<=2361||A==2365||A>=2392&&A<=2401||A>=2437&&A<=2444||A>=2447&&A<=2448||A>=2451&&A<=2472||A>=2474&&A<=2480||A==2482||A>=2486&&A<=2489||A>=2524&&A<=2525||A>=2527&&A<=2529||A>=2544&&A<=2545||A>=2565&&A<=2570||A>=2575&&A<=2576||A>=2579&&A<=2600||A>=2602&&A<=2608||A>=2610&&A<=2611||A>=2613&&A<=2614||A>=2616&&A<=2617||A>=2649&&A<=2652||A==2654||A>=2674&&A<=2676||A>=2693&&A<=2699||A==2701||A>=2703&&A<=2705||A>=2707&&A<=2728||A>=2730&&A<=2736||A>=2738&&A<=2739||A>=2741&&A<=2745||A==2749||A==2784||A>=2821&&A<=2828||A>=2831&&A<=2832||A>=2835&&A<=2856||A>=2858&&A<=2864||A>=2866&&A<=2867||A>=2870&&A<=2873||A==2877||A>=2908&&A<=2909||A>=2911&&A<=2913||A>=2949&&A<=2954||A>=2958&&A<=2960||A>=2962&&A<=2965||A>=2969&&A<=2970||A==2972||A>=2974&&A<=2975||A>=2979&&A<=2980||A>=2984&&A<=2986||A>=2990&&A<=2997||A>=2999&&A<=3001||A>=3077&&A<=3084||A>=3086&&A<=3088||A>=3090&&A<=3112||A>=3114&&A<=3123||A>=3125&&A<=3129||A>=3168&&A<=3169||A>=3205&&A<=3212||A>=3214&&A<=3216||A>=3218&&A<=3240||A>=3242&&A<=3251||A>=3253&&A<=3257||A==3294||A>=3296&&A<=3297||A>=3333&&A<=3340||A>=3342&&A<=3344||A>=3346&&A<=3368||A>=3370&&A<=3385||A>=3424&&A<=3425||A>=3585&&A<=3630||A==3632||A>=3634&&A<=3635||A>=3648&&A<=3653||A>=3713&&A<=3714||A==3716||A>=3719&&A<=3720||A==3722||A==3725||A>=3732&&A<=3735||A>=3737&&A<=3743||A>=3745&&A<=3747||A==3749||A==3751||A>=3754&&A<=3755||A>=3757&&A<=3758||A==3760||A>=3762&&A<=3763||A==3773||A>=3776&&A<=3780||A>=3904&&A<=3911||A>=3913&&A<=3945||A>=4256&&A<=4293||A>=4304&&A<=4342||A==4352||A>=4354&&A<=4355||A>=4357&&A<=4359||A==4361||A>=4363&&A<=4364||A>=4366&&A<=4370||A==4412||A==4414||A==4416||A==4428||A==4430||A==4432||A>=4436&&A<=4437||A==4441||A>=4447&&A<=4449||A==4451||A==4453||A==4455||A==4457||A>=4461&&A<=4462||A>=4466&&A<=4467||A==4469||A==4510||A==4520||A==4523||A>=4526&&A<=4527||A>=4535&&A<=4536||A==4538||A>=4540&&A<=4546||A==4587||A==4592||A==4601||A>=7680&&A<=7835||A>=7840&&A<=7929||A>=7936&&A<=7957||A>=7960&&A<=7965||A>=7968&&A<=8005||A>=8008&&A<=8013||A>=8016&&A<=8023||A==8025||A==8027||A==8029||A>=8031&&A<=8061||A>=8064&&A<=8116||A>=8118&&A<=8124||A==8126||A>=8130&&A<=8132||A>=8134&&A<=8140||A>=8144&&A<=8147||A>=8150&&A<=8155||A>=8160&&A<=8172||A>=8178&&A<=8180||A>=8182&&A<=8188||A==8486||A>=8490&&A<=8491||A==8494||A>=8576&&A<=8578||A>=12353&&A<=12436||A>=12449&&A<=12538||A>=12549&&A<=12588||A>=44032&&A<=55203||A>=19968&&A<=40869||A==12295||A>=12321&&A<=12329},be.isNCNameChar=function(A){return A>=48&&A<=57||A>=1632&&A<=1641||A>=1776&&A<=1785||A>=2406&&A<=2415||A>=2534&&A<=2543||A>=2662&&A<=2671||A>=2790&&A<=2799||A>=2918&&A<=2927||A>=3047&&A<=3055||A>=3174&&A<=3183||A>=3302&&A<=3311||A>=3430&&A<=3439||A>=3664&&A<=3673||A>=3792&&A<=3801||A>=3872&&A<=3881||A==46||A==45||A==95||be.isLetter(A)||A>=768&&A<=837||A>=864&&A<=865||A>=1155&&A<=1158||A>=1425&&A<=1441||A>=1443&&A<=1465||A>=1467&&A<=1469||A==1471||A>=1473&&A<=1474||A==1476||A>=1611&&A<=1618||A==1648||A>=1750&&A<=1756||A>=1757&&A<=1759||A>=1760&&A<=1764||A>=1767&&A<=1768||A>=1770&&A<=1773||A>=2305&&A<=2307||A==2364||A>=2366&&A<=2380||A==2381||A>=2385&&A<=2388||A>=2402&&A<=2403||A>=2433&&A<=2435||A==2492||A==2494||A==2495||A>=2496&&A<=2500||A>=2503&&A<=2504||A>=2507&&A<=2509||A==2519||A>=2530&&A<=2531||A==2562||A==2620||A==2622||A==2623||A>=2624&&A<=2626||A>=2631&&A<=2632||A>=2635&&A<=2637||A>=2672&&A<=2673||A>=2689&&A<=2691||A==2748||A>=2750&&A<=2757||A>=2759&&A<=2761||A>=2763&&A<=2765||A>=2817&&A<=2819||A==2876||A>=2878&&A<=2883||A>=2887&&A<=2888||A>=2891&&A<=2893||A>=2902&&A<=2903||A>=2946&&A<=2947||A>=3006&&A<=3010||A>=3014&&A<=3016||A>=3018&&A<=3021||A==3031||A>=3073&&A<=3075||A>=3134&&A<=3140||A>=3142&&A<=3144||A>=3146&&A<=3149||A>=3157&&A<=3158||A>=3202&&A<=3203||A>=3262&&A<=3268||A>=3270&&A<=3272||A>=3274&&A<=3277||A>=3285&&A<=3286||A>=3330&&A<=3331||A>=3390&&A<=3395||A>=3398&&A<=3400||A>=3402&&A<=3405||A==3415||A==3633||A>=3636&&A<=3642||A>=3655&&A<=3662||A==3761||A>=3764&&A<=3769||A>=3771&&A<=3772||A>=3784&&A<=3789||A>=3864&&A<=3865||A==3893||A==3895||A==3897||A==3902||A==3903||A>=3953&&A<=3972||A>=3974&&A<=3979||A>=3984&&A<=3989||A==3991||A>=3993&&A<=4013||A>=4017&&A<=4023||A==4025||A>=8400&&A<=8412||A==8417||A>=12330&&A<=12335||A==12441||A==12442||A==183||A==720||A==721||A==903||A==1600||A==3654||A==3782||A==12293||A>=12337&&A<=12341||A>=12445&&A<=12446||A>=12540&&A<=12542},be.coalesceText=function(A){for(var k=A.firstChild;k!=null;k=k.nextSibling)if(k.nodeType==b.TEXT_NODE||k.nodeType==b.CDATA_SECTION_NODE){var O=k.nodeValue,V=k;for(k=k.nextSibling;k!=null&&(k.nodeType==b.TEXT_NODE||k.nodeType==b.CDATA_SECTION_NODE);){O+=k.nodeValue;var H=k;k=k.nextSibling,H.parentNode.removeChild(H)}if(V.nodeType==b.CDATA_SECTION_NODE){var W=V.parentNode;if(V.nextSibling==null)W.removeChild(V),W.appendChild(W.ownerDocument.createTextNode(O));else{var ue=V.nextSibling;W.removeChild(V),W.insertBefore(W.ownerDocument.createTextNode(O),ue)}}else V.nodeValue=O;if(k==null)break}else k.nodeType==b.ELEMENT_NODE&&be.coalesceText(k)},be.instance_of=function(A,k){for(;A!=null;){if(A.constructor===k)return!0;if(A===Object)return!1;A=A.constructor.superclass}return!1},be.getElementById=function(A,k){if(A.nodeType==b.ELEMENT_NODE&&(A.getAttribute("id")==k||A.getAttributeNS(null,"id")==k))return A;for(var O=A.firstChild;O!=null;O=O.nextSibling){var V=be.getElementById(O,k);if(V!=null)return V}return null};var Ai=(function(){function A(O,V){var H=V?": "+V.toString():"";switch(O){case k.INVALID_EXPRESSION_ERR:return"Invalid expression"+H;case k.TYPE_ERR:return"Type error"+H}return null}function k(O,V,H){var W=Error.call(this,A(O,V)||H);return W.code=O,W.exception=V,W}return k.prototype=Object.create(Error.prototype),k.prototype.constructor=k,k.superclass=Error,k.prototype.toString=function(){return this.message},k.fromMessage=function(O,V){return new k(null,V,O)},k.INVALID_EXPRESSION_ERR=51,k.TYPE_ERR=52,k})();Mr.prototype={},Mr.prototype.constructor=Mr,Mr.superclass=Object.prototype;function Mr(A,k,O){this.xpath=O.parse(A),this.context=new ii,this.context.namespaceResolver=new Mn(k)}Mr.getOwnerDocument=function(A){return A.nodeType===b.DOCUMENT_NODE?A:A.ownerDocument},Mr.detectHtmlDom=function(A){if(!A)return!1;var k=Mr.getOwnerDocument(A);try{return k.implementation.hasFeature("HTML","2.0")}catch{return!0}},Mr.prototype.evaluate=function(A,k,O){this.context.expressionContextNode=A,this.context.caseInsensitive=Mr.detectHtmlDom(A);var V=this.xpath.evaluate(this.context);return new Le(V,k)},Mn.prototype={},Mn.prototype.constructor=Mn,Mn.superclass=Object.prototype;function Mn(A){this.xpathNSResolver=A}Mn.prototype.getNamespace=function(A,k){return this.xpathNSResolver==null?null:this.xpathNSResolver.lookupNamespaceURI(A)},mn.prototype={},mn.prototype.constructor=mn,mn.superclass=Object.prototype;function mn(A){this.node=A,this.namespaceResolver=new ur}mn.prototype.lookupNamespaceURI=function(A){return this.namespaceResolver.getNamespace(A,this.node)},Le.prototype={},Le.prototype.constructor=Le,Le.superclass=Object.prototype;function Le(A,k){switch(k==Le.ANY_TYPE&&(A.constructor===we?k=Le.STRING_TYPE:A.constructor===Ee?k=Le.NUMBER_TYPE:A.constructor===Se?k=Le.BOOLEAN_TYPE:A.constructor===Ce&&(k=Le.UNORDERED_NODE_ITERATOR_TYPE)),this.resultType=k,k){case Le.NUMBER_TYPE:this.numberValue=A.numberValue();return;case Le.STRING_TYPE:this.stringValue=A.stringValue();return;case Le.BOOLEAN_TYPE:this.booleanValue=A.booleanValue();return;case Le.ANY_UNORDERED_NODE_TYPE:case Le.FIRST_ORDERED_NODE_TYPE:if(A.constructor===Ce){this.singleNodeValue=A.first();return}break;case Le.UNORDERED_NODE_ITERATOR_TYPE:case Le.ORDERED_NODE_ITERATOR_TYPE:if(A.constructor===Ce){this.invalidIteratorState=!1,this.nodes=A.toArray(),this.iteratorIndex=0;return}break;case Le.UNORDERED_NODE_SNAPSHOT_TYPE:case Le.ORDERED_NODE_SNAPSHOT_TYPE:if(A.constructor===Ce){this.nodes=A.toArray(),this.snapshotLength=this.nodes.length;return}break}throw new Ai(Ai.TYPE_ERR)}Le.prototype.iterateNext=function(){if(this.resultType!=Le.UNORDERED_NODE_ITERATOR_TYPE&&this.resultType!=Le.ORDERED_NODE_ITERATOR_TYPE)throw new Ai(Ai.TYPE_ERR);return this.nodes[this.iteratorIndex++]},Le.prototype.snapshotItem=function(A){if(this.resultType!=Le.UNORDERED_NODE_SNAPSHOT_TYPE&&this.resultType!=Le.ORDERED_NODE_SNAPSHOT_TYPE)throw new Ai(Ai.TYPE_ERR);return this.nodes[A]},Le.ANY_TYPE=0,Le.NUMBER_TYPE=1,Le.STRING_TYPE=2,Le.BOOLEAN_TYPE=3,Le.UNORDERED_NODE_ITERATOR_TYPE=4,Le.ORDERED_NODE_ITERATOR_TYPE=5,Le.UNORDERED_NODE_SNAPSHOT_TYPE=6,Le.ORDERED_NODE_SNAPSHOT_TYPE=7,Le.ANY_UNORDERED_NODE_TYPE=8,Le.FIRST_ORDERED_NODE_TYPE=9;function Ja(A,k){A.createExpression=function(O,V){try{return new Mr(O,V,k)}catch(H){throw new Ai(Ai.INVALID_EXPRESSION_ERR,H)}},A.createNSResolver=function(O){return new mn(O)},A.evaluate=function(O,V,H,W,ue){if(W<0||W>9)throw{code:0,toString:function(){return"Request type not supported"}};return A.createExpression(O,H,k).evaluate(V,W,ue)}}try{var Ji=!0;try{document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("XPath",null)&&(Ji=!1)}catch{}Ji&&Ja(document,new x)}catch{}Ja(r,new x),(function(){var A=new x,k=new ur,O=new tr,V=new Ir;function H(he){return{getNamespace:function(Ze,Lr){var In=he(Ze,Lr);return In||k.getNamespace(Ze,Lr)}}}function W(he){return H(he.getNamespace.bind(he))}function ue(he){return H(function(Ze){return he[Ze]})}function Re(he){return he&&typeof he.getNamespace=="function"?W(he):typeof he=="function"?H(he):typeof he=="object"?ue(he):k}function Ye(he){if(he===null||typeof he>"u"||he instanceof we||he instanceof Se||he instanceof Ee||he instanceof Ce)return he;switch(typeof he){case"string":return new we(he);case"boolean":return new Se(he);case"number":return new Ee(he)}var Ze=new Ce;return Ze.addArray([].concat(he)),Ze}function Ie(he){return function(Ze){var Lr=Array.prototype.slice.call(arguments,1).map(function(ex){return ex.evaluate(Ze)}),In=he.apply(this,[].concat(Ze,Lr));return Ye(In)}}function Fe(he){return{getFunction:function(Ze,Lr){var In=he(Ze,Lr);return In?Ie(In):O.getFunction(Ze,Lr)}}}function yn(he){return Fe(he.getFunction.bind(he))}function bs(he){return Fe(function(Ze){return he[Ze]})}function vs(he){return he&&typeof he.getFunction=="function"?yn(he):typeof he=="function"?Fe(he):typeof he=="object"?bs(he):O}function ks(he){return{getVariable:function(Ze,Lr){var In=he(Ze,Lr);return Ye(In)}}}function ji(he){if(he){if(typeof he.getVariable=="function")return ks(he.getVariable.bind(he));if(typeof he=="function")return ks(he);if(typeof he=="object")return ks(function(Ze){return he[Ze]})}return V}function Ln(he,Ze,Lr){he in Lr&&(Ze[he]=Lr[he])}function f0(he){var Ze=new ii;return he?(Ze.namespaceResolver=Re(he.namespaces),Ze.functionResolver=vs(he.functions),Ze.variableResolver=ji(he.variables),Ze.expressionContextNode=he.node,Ln("allowAnyNamespaceForNoPrefix",Ze,he),Ln("isHtml",Ze,he)):Ze.namespaceResolver=k,Ze}function pu(he,Ze){var Lr=f0(Ze);return he.evaluate(Lr)}var Xw={evaluate:function(he){return pu(this.expression,he)},evaluateNumber:function(he){return this.evaluate(he).numberValue()},evaluateString:function(he){return this.evaluate(he).stringValue()},evaluateBoolean:function(he){return this.evaluate(he).booleanValue()},evaluateNodeSet:function(he){return this.evaluate(he).nodeset()},select:function(he){return this.evaluateNodeSet(he).toArray()},select1:function(he){return this.select(he)[0]}};function Zw(he){var Ze=A.parse(he);return Object.create(Xw,{expression:{value:Ze}})}r.parse=Zw})(),C(r,{XPath:_,XPathParser:x,XPathResult:Le,Step:se,PathExpr:Z,NodeTest:ce,LocationPath:_e,OrOperation:Q,AndOperation:v,BarOperation:ee,EqualsOperation:E,NotEqualOperation:P,LessThanOperation:N,GreaterThanOperation:J,LessThanOrEqualOperation:z,GreaterThanOrEqualOperation:L,PlusOperation:G,MinusOperation:K,MultiplyOperation:$,DivOperation:te,ModOperation:re,UnaryMinusOperation:D,FunctionCall:Or,VariableReference:dr,XPathContext:ii,XNodeSet:Ce,XBoolean:Se,XString:we,XNumber:Ee,NamespaceResolver:ur,FunctionResolver:tr,VariableResolver:Ir,Utilities:be}),r.select=function(A,k,O){return r.selectWithResolver(A,k,null,O)},r.useNamespaces=function(A){var k={mappings:A||{},lookupNamespaceURI:function(O){return this.mappings[O]}};return function(O,V,H){return r.selectWithResolver(O,V,k,H)}},r.selectWithResolver=function(A,k,O,V){var H=new Mr(A,O,new x),W=Le.ANY_TYPE,ue=H.evaluate(k,W,null);return ue.resultType==Le.STRING_TYPE?ue=ue.stringValue:ue.resultType==Le.NUMBER_TYPE?ue=ue.numberValue:ue.resultType==Le.BOOLEAN_TYPE?ue=ue.booleanValue:(ue=ue.nodes,V&&(ue=ue[0])),ue},r.select1=function(A,k){return r.select(A,k,!0)};var Co=function(A){return Array.isArray(A)&&A.every(n)},Ti=function(A){return function(k){return n(k)&&k.nodeType===A}};C(r,{isNodeLike:n,isArrayOfNodes:Co,isElement:Ti(b.ELEMENT_NODE),isAttribute:Ti(b.ATTRIBUTE_NODE),isTextNode:Ti(b.TEXT_NODE),isCDATASection:Ti(b.CDATA_SECTION_NODE),isProcessingInstruction:Ti(b.PROCESSING_INSTRUCTION_NODE),isComment:Ti(b.COMMENT_NODE),isDocumentNode:Ti(b.DOCUMENT_NODE),isDocumentTypeNode:Ti(b.DOCUMENT_TYPE_NODE),isDocumentFragment:Ti(b.DOCUMENT_FRAGMENT_NODE)})})(mj)});var xc=oe(Fr=>{"use strict";function yj(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(wc(r,i)){var n=r[i];if(e.call(void 0,n,i,r))return n}}function Ll(r,e){return e===void 0&&(e=Object),e&&typeof e.getOwnPropertyDescriptors=="function"&&(r=e.create(null,e.getOwnPropertyDescriptors(r))),e&&typeof e.freeze=="function"?e.freeze(r):r}function wc(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function Ij(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)wc(e,t)&&(r[t]=e[t]);return r}var SF=Ll({allowfullscreen:!0,async:!0,autofocus:!0,autoplay:!0,checked:!0,controls:!0,default:!0,defer:!0,disabled:!0,formnovalidate:!0,hidden:!0,ismap:!0,itemscope:!0,loop:!0,multiple:!0,muted:!0,nomodule:!0,novalidate:!0,open:!0,playsinline:!0,readonly:!0,required:!0,reversed:!0,selected:!0});function wj(r){return wc(SF,r.toLowerCase())}var DF=Ll({area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xj(r){return wc(DF,r.toLowerCase())}var of=Ll({script:!1,style:!1,textarea:!0,title:!0});function Cj(r){var e=r.toLowerCase();return wc(of,e)&&!of[e]}function Ej(r){var e=r.toLowerCase();return wc(of,e)&&of[e]}function QF(r){return r===af.HTML}function Bj(r){return QF(r)||r===af.XML_XHTML_APPLICATION}var af=Ll({HTML:"text/html",XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),bj=Object.keys(af).map(function(r){return af[r]});function vj(r){return bj.indexOf(r)>-1}var kj=Ll({HTML:"http://www.w3.org/1999/xhtml",SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});Fr.assign=Ij;Fr.find=yj;Fr.freeze=Ll;Fr.HTML_BOOLEAN_ATTRIBUTES=SF;Fr.HTML_RAW_TEXT_ELEMENTS=of;Fr.HTML_VOID_ELEMENTS=DF;Fr.hasDefaultHTMLNamespace=Bj;Fr.hasOwn=wc;Fr.isHTMLBooleanAttribute=wj;Fr.isHTMLRawTextElement=Cj;Fr.isHTMLEscapableRawTextElement=Ej;Fr.isHTMLMimeType=QF;Fr.isHTMLVoidElement=xj;Fr.isValidMimeType=vj;Fr.MIME_TYPE=af;Fr.NAMESPACE=kj});var ff=oe(uf=>{"use strict";var Sj=xc();function FF(r,e){r.prototype=Object.create(Error.prototype,{constructor:{value:r},name:{value:r.name,enumerable:!0,writable:e}})}var lf=Sj.freeze({Error:"Error",IndexSizeError:"IndexSizeError",DomstringSizeError:"DomstringSizeError",HierarchyRequestError:"HierarchyRequestError",WrongDocumentError:"WrongDocumentError",InvalidCharacterError:"InvalidCharacterError",NoDataAllowedError:"NoDataAllowedError",NoModificationAllowedError:"NoModificationAllowedError",NotFoundError:"NotFoundError",NotSupportedError:"NotSupportedError",InUseAttributeError:"InUseAttributeError",InvalidStateError:"InvalidStateError",SyntaxError:"SyntaxError",InvalidModificationError:"InvalidModificationError",NamespaceError:"NamespaceError",InvalidAccessError:"InvalidAccessError",ValidationError:"ValidationError",TypeMismatchError:"TypeMismatchError",SecurityError:"SecurityError",NetworkError:"NetworkError",AbortError:"AbortError",URLMismatchError:"URLMismatchError",QuotaExceededError:"QuotaExceededError",TimeoutError:"TimeoutError",InvalidNodeTypeError:"InvalidNodeTypeError",DataCloneError:"DataCloneError",EncodingError:"EncodingError",NotReadableError:"NotReadableError",UnknownError:"UnknownError",ConstraintError:"ConstraintError",DataError:"DataError",TransactionInactiveError:"TransactionInactiveError",ReadOnlyError:"ReadOnlyError",VersionError:"VersionError",OperationError:"OperationError",NotAllowedError:"NotAllowedError",OptOutError:"OptOutError"}),PF=Object.keys(lf);function TF(r){return typeof r=="number"&&r>=1&&r<=25}function Dj(r){return typeof r=="string"&&r.substring(r.length-lf.Error.length)===lf.Error}function df(r,e){TF(r)?(this.name=PF[r],this.message=e||""):(this.message=r,this.name=Dj(e)?e:lf.Error),Error.captureStackTrace&&Error.captureStackTrace(this,df)}FF(df,!0);Object.defineProperties(df.prototype,{code:{enumerable:!0,get:function(){var r=PF.indexOf(this.name);return TF(r)?r:0}}});var UF={INDEX_SIZE_ERR:1,DOMSTRING_SIZE_ERR:2,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,INVALID_CHARACTER_ERR:5,NO_DATA_ALLOWED_ERR:6,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INUSE_ATTRIBUTE_ERR:10,INVALID_STATE_ERR:11,SYNTAX_ERR:12,INVALID_MODIFICATION_ERR:13,NAMESPACE_ERR:14,INVALID_ACCESS_ERR:15,VALIDATION_ERR:16,TYPE_MISMATCH_ERR:17,SECURITY_ERR:18,NETWORK_ERR:19,ABORT_ERR:20,URL_MISMATCH_ERR:21,QUOTA_EXCEEDED_ERR:22,TIMEOUT_ERR:23,INVALID_NODE_TYPE_ERR:24,DATA_CLONE_ERR:25},AE=Object.entries(UF);for(cf=0;cf<AE.length;cf++)_F=AE[cf][0],df[_F]=AE[cf][1];var _F,cf;function hE(r,e,t){this.message=r,this.locator=e,this.cause=t,Error.captureStackTrace&&Error.captureStackTrace(this,hE)}FF(hE);uf.DOMException=df;uf.DOMExceptionName=lf;uf.ExceptionCode=UF;uf.ParseError=hE});var xE=oe(Ke=>{"use strict";function LF(r){try{typeof r!="function"&&(r=RegExp);var e=new r("\u{1D306}","u").exec("\u{1D306}");return!!e&&e[0].length===2}catch{}return!1}var Gl=LF();function Wo(r){if(r.source[0]!=="[")throw new Error(r+" can not be used with chars");return r.source.slice(1,r.source.lastIndexOf("]"))}function Hl(r,e){if(r.source[0]!=="[")throw new Error("/"+r.source+"/ can not be used with chars_without");if(!e||typeof e!="string")throw new Error(JSON.stringify(e)+" is not a valid search");if(r.source.indexOf(e)===-1)throw new Error('"'+e+'" is not is /'+r.source+"/");if(e==="-"&&r.source.indexOf(e)!==1)throw new Error('"'+e+'" is not at the first postion of /'+r.source+"/");return new RegExp(r.source.replace(e,""),Gl?"u":"")}function $e(r){var e=this;return new RegExp(Array.prototype.slice.call(arguments).map(function(t){var i=typeof t=="string";if(i&&e===void 0&&t==="|")throw new Error("use regg instead of reg to wrap expressions with `|`!");return i?t:t.source}).join(""),Gl?"u":"")}function Oe(r){if(arguments.length===0)throw new Error("no parameters provided");return $e.apply(Oe,["(?:"].concat(Array.prototype.slice.call(arguments),[")"]))}var Qj="\uFFFD",Xo=/[-\x09\x0A\x0D\x20-\x2C\x2E-\uD7FF\uE000-\uFFFD]/;Gl&&(Xo=$e("[",Wo(Xo),"\\u{10000}-\\u{10FFFF}","]"));var _j=new RegExp("[^"+Wo(Xo)+"]",Gl?"u":""),jm=/[\x20\x09\x0D\x0A]/,Fj=Wo(jm),gt=$e(jm,"+"),Qt=$e(jm,"*"),Af=/[:_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;Gl&&(Af=$e("[",Wo(Af),"\\u{10000}-\\u{10FFFF}","]"));var Pj=Wo(Af),mE=$e("[",Pj,Wo(/[-.0-9\xB7]/),Wo(/[\u0300-\u036F\u203F-\u2040]/),"]"),Oi=$e(Af,mE,"*"),Tj=$e("^",Oi,"$"),RF=$e(mE,"+"),Uj=$e("&",Oi,";"),Rj=Oe(/&#[0-9]+;|&#x[0-9a-fA-F]+;/),hf=Oe(Uj,"|",Rj),gf=$e("%",Oi,";"),yE=Oe($e('"',Oe(/[^%&"]/,"|",gf,"|",hf),"*",'"'),"|",$e("'",Oe(/[^%&']/,"|",gf,"|",hf),"*","'")),Nj=Oe('"',Oe(/[^<&"]/,"|",hf),"*",'"',"|","'",Oe(/[^<&']/,"|",hf),"*","'"),qj=Hl(Af,":"),Oj=Hl(mE,":"),gE=$e(qj,Oj,"*"),Mj=$e("^",gE,"$"),pf=$e(gE,Oe(":",gE),"?"),Lj=$e("^",pf,"$"),Hj=$e("(",pf,")"),Kl=Oe(/"[^"]*"|'[^']*'/),Kj=$e(/^<\?/,"(",Oi,")",Oe(gt,"(?!",jm,")(",Xo,"*?)"),"?",/\?>/),NF=/[\x20\x0D\x0Aa-zA-Z0-9-'()+,./:=?;!*#@$_%]/,mf=Oe('"',NF,'*"',"|","'",Hl(NF,"'"),"*'"),HF="<!--",KF="-->",Gj=$e(HF,Oe(Hl(Xo,"-"),"|",$e("-",Hl(Xo,"-"))),"*",KF),qF="#PCDATA",zj=Oe($e(/\(/,Qt,qF,Oe(Qt,/\|/,Qt,pf),"*",Qt,/\)\*/),"|",$e(/\(/,Qt,qF,Qt,/\)/)),Jj=/[?*+]?/,jj=$e(/\([^>]+\)/,Jj),$j=Oe("EMPTY","|","ANY","|",zj,"|",jj),Vj="<!ELEMENT",Yj=$e(Vj,gt,Oe(pf,"|",gf),gt,Oe($j,"|",gf),Qt,">"),Wj=$e("NOTATION",gt,/\(/,Qt,Oi,Oe(Qt,/\|/,Qt,Oi),"*",Qt,/\)/),Xj=$e(/\(/,Qt,RF,Oe(Qt,/\|/,Qt,RF),"*",Qt,/\)/),Zj=Oe(Wj,"|",Xj),e$=Oe(/CDATA|ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS/,"|",Zj),t$=Oe(/#REQUIRED|#IMPLIED/,"|",Oe(Oe("#FIXED",gt),"?",Nj)),r$=Oe(gt,Oi,gt,e$,gt,t$),i$="<!ATTLIST",n$=$e(i$,gt,Oi,r$,"*",Qt,">"),pE="about:legacy-compat",s$=Oe('"'+pE+'"',"|","'"+pE+"'"),IE="SYSTEM",$m="PUBLIC",Vm=Oe(Oe(IE,gt,Kl),"|",Oe($m,gt,mf,gt,Kl)),o$=$e("^",Oe(Oe(IE,gt,"(?<SystemLiteralOnly>",Kl,")"),"|",Oe($m,gt,"(?<PubidLiteral>",mf,")",gt,"(?<SystemLiteral>",Kl,")"))),a$=$e("^",mf,"$"),c$=$e("^",Kl,"$"),l$=Oe(gt,"NDATA",gt,Oi),d$=Oe(yE,"|",Oe(Vm,l$,"?")),GF="<!ENTITY",u$=$e(GF,gt,Oi,gt,d$,Qt,">"),f$=Oe(yE,"|",Vm),A$=$e(GF,gt,"%",gt,Oi,gt,f$,Qt,">"),h$=Oe(u$,"|",A$),g$=$e($m,gt,mf),p$=$e("<!NOTATION",gt,Oi,gt,Oe(Vm,"|",g$),Qt,">"),wE=$e(Qt,"=",Qt),OF=/1[.]\d+/,m$=$e(gt,"version",wE,Oe("'",OF,"'","|",'"',OF,'"')),MF=/[A-Za-z][-A-Za-z0-9._]*/,y$=Oe(gt,"encoding",wE,Oe('"',MF,'"',"|","'",MF,"'")),I$=Oe(gt,"standalone",wE,Oe("'",Oe("yes","|","no"),"'","|",'"',Oe("yes","|","no"),'"')),w$=$e(/^<\?xml/,m$,y$,"?",I$,"?",Qt,/\?>/),x$="<!DOCTYPE",C$="<![CDATA[",E$="]]>",B$=/<!\[CDATA\[/,b$=/\]\]>/,v$=$e(Xo,"*?",b$),k$=$e(B$,v$);Ke.chars=Wo;Ke.chars_without=Hl;Ke.detectUnicodeSupport=LF;Ke.reg=$e;Ke.regg=Oe;Ke.ABOUT_LEGACY_COMPAT=pE;Ke.ABOUT_LEGACY_COMPAT_SystemLiteral=s$;Ke.AttlistDecl=n$;Ke.CDATA_START=C$;Ke.CDATA_END=E$;Ke.CDSect=k$;Ke.Char=Xo;Ke.Comment=Gj;Ke.COMMENT_START=HF;Ke.COMMENT_END=KF;Ke.DOCTYPE_DECL_START=x$;Ke.elementdecl=Yj;Ke.EntityDecl=h$;Ke.EntityValue=yE;Ke.ExternalID=Vm;Ke.ExternalID_match=o$;Ke.Name=Oi;Ke.Name_exact=Tj;Ke.NCName_exact=Mj;Ke.NotationDecl=p$;Ke.Reference=hf;Ke.PEReference=gf;Ke.PI=Kj;Ke.PUBLIC=$m;Ke.PubidLiteral=mf;Ke.PubidLiteral_match=a$;Ke.QName=pf;Ke.QName_exact=Lj;Ke.QName_group=Hj;Ke.S=gt;Ke.SChar_s=Fj;Ke.S_OPT=Qt;Ke.SYSTEM=IE;Ke.SystemLiteral=Kl;Ke.SystemLiteral_match=c$;Ke.InvalidChar=_j;Ke.UNICODE_REPLACEMENT_CHARACTER=Qj;Ke.UNICODE_SUPPORT=Gl;Ke.XMLDecl=w$});var _E=oe(Ht=>{"use strict";var en=xc(),Xn=en.find,S$=en.hasDefaultHTMLNamespace,Jl=en.hasOwn,D$=en.isHTMLMimeType,Q$=en.isHTMLRawTextElement,_$=en.isHTMLVoidElement,yf=en.MIME_TYPE,Zn=en.NAMESPACE,ci=Symbol(),WF=ff(),ke=WF.DOMException,jr=WF.DOMExceptionName,Lt=xE();function gi(r){if(r!==ci)throw new TypeError("Illegal constructor")}function F$(r){return r!==""}function P$(r){return r?r.split(/[\t\n\f\r ]+/).filter(F$):[]}function T$(r,e){return Jl(r,e)||(r[e]=!0),r}function zF(r){if(!r)return[];var e=P$(r);return Object.keys(e.reduce(T$,{}))}function U$(r){return function(e){return r&&r.indexOf(e)!==-1}}function XF(r){if(!Lt.QName_exact.test(r))throw new ke(ke.INVALID_CHARACTER_ERR,'invalid character in qualified name "'+r+'"')}function EE(r,e){XF(e),r=r||null;var t=null,i=e;if(e.indexOf(":")>=0){var n=e.split(":");t=n[0],i=n[1]}if(t!==null&&r===null)throw new ke(ke.NAMESPACE_ERR,"prefix is non-null and namespace is null");if(t==="xml"&&r!==en.NAMESPACE.XML)throw new ke(ke.NAMESPACE_ERR,'prefix is "xml" and namespace is not the XML namespace');if((t==="xmlns"||e==="xmlns")&&r!==en.NAMESPACE.XMLNS)throw new ke(ke.NAMESPACE_ERR,'either qualifiedName or prefix is "xmlns" and namespace is not the XMLNS namespace');if(r===en.NAMESPACE.XMLNS&&t!=="xmlns"&&e!=="xmlns")throw new ke(ke.NAMESPACE_ERR,'namespace is the XMLNS namespace and neither qualifiedName nor prefix is "xmlns"');return[r,t,i]}function Vl(r,e){for(var t in r)Jl(r,t)&&(e[t]=r[t])}function pi(r,e){var t=r.prototype;if(!(t instanceof e)){let i=function(){};i.prototype=e.prototype,i=new i,Vl(t,i),r.prototype=t=i}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var mi={},Zi=mi.ELEMENT_NODE=1,jl=mi.ATTRIBUTE_NODE=2,If=mi.TEXT_NODE=3,ZF=mi.CDATA_SECTION_NODE=4,eP=mi.ENTITY_REFERENCE_NODE=5,R$=mi.ENTITY_NODE=6,BE=mi.PROCESSING_INSTRUCTION_NODE=7,bE=mi.COMMENT_NODE=8,zl=mi.DOCUMENT_NODE=9,tP=mi.DOCUMENT_TYPE_NODE=10,Zo=mi.DOCUMENT_FRAGMENT_NODE=11,N$=mi.NOTATION_NODE=12,Mt=en.freeze({DOCUMENT_POSITION_DISCONNECTED:1,DOCUMENT_POSITION_PRECEDING:2,DOCUMENT_POSITION_FOLLOWING:4,DOCUMENT_POSITION_CONTAINS:8,DOCUMENT_POSITION_CONTAINED_BY:16,DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:32});function rP(r,e){if(e.length<r.length)return rP(e,r);var t=null;for(var i in r){if(r[i]!==e[i])return t;t=r[i]}return t}function JF(r){return r.guid||(r.guid=Math.random()),r.guid}function Ar(){}Ar.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r){var e;typeof r=="function"?e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:r}:r?e={requireWellFormed:!!r.requireWellFormed,splitCDATASections:r.splitCDATASections!==!1,nodeFilter:r.nodeFilter||null}:e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:null};for(var t=[],i=0;i<this.length;i++)QE(this[i],t,null,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};Ar.prototype[Symbol.iterator]=function(){var r=this,e=0;return{next:function(){return e<r.length?{value:r[e++],done:!1}:{done:!0}},return:function(){return{done:!0}}}};function Wn(r,e){this._node=r,this._refresh=e,Zm(this)}function Zm(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(AP(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)Jl(r,i)&&delete r[i];Vl(t,r),r._inc=e}}Wn.prototype.item=function(r){return Zm(this),this[r]||null};pi(Wn,Ar);function $l(){this._nsIndex=Object.create(null),this._noNsIndex=Object.create(null)}function iP(r,e){for(var t=0;t<r.length;){if(r[t]===e)return t;t++}}function vE(r,e,t){if(!e)return r._noNsIndex;var i=r._nsIndex[e];return!i&&t&&(i=r._nsIndex[e]=Object.create(null)),i}function q$(r,e,t){var i=vE(r,e,!1),n=i&&i[t];return n||null}function O$(r,e){vE(r,e.namespaceURI,!0)[e.localName]=e}function M$(r,e){var t=vE(r,e.namespaceURI,!1);t&&delete t[e.localName]}function L$(r,e,t,i){if(i?e[iP(e,i)]=t:(e[e.length]=t,e.length++),O$(e,t),r){t.ownerElement=r;var n=r.ownerDocument;n&&(i&&oP(n,r,i),H$(n,r,t))}}function jF(r,e,t){var i=iP(e,t);if(i>=0){for(var n=e.length-1;i<=n;)e[i]=e[++i];if(e.length=n,M$(e,t),r){var s=r.ownerDocument;s&&oP(s,r,t),t.ownerElement=null}}}$l.prototype={length:0,item:Ar.prototype.item,getNamedItem:function(r){this._ownerElement&&this._ownerElement._isInHTMLDocumentAndNamespace()&&(r=r.toLowerCase());for(var e=0;e<this.length;){var t=this[e];if(t.nodeName===r)return t;e++}return null},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!==this._ownerElement)throw new ke(ke.INUSE_ATTRIBUTE_ERR);var t=q$(this,r.namespaceURI,r.localName);return t===r?r:(L$(this._ownerElement,this,r,t),t)},setNamedItemNS:function(r){return this.setNamedItem(r)},removeNamedItem:function(r){var e=this.getNamedItem(r);if(!e)throw new ke(ke.NOT_FOUND_ERR,r);return jF(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);if(!t)throw new ke(ke.NOT_FOUND_ERR,r?r+" : "+e:e);return jF(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){r||(r=null);for(var t=0;t<this.length;){var i=this[t];if(i.localName===e&&i.namespaceURI===r)return i;t++}return null}};$l.prototype[Symbol.iterator]=function(){var r=this,e=0;return{next:function(){return e<r.length?{value:r[e++],done:!1}:{done:!0}},return:function(){return{done:!0}}}};function nP(){}nP.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=yf.XML_APPLICATION;r===Zn.HTML?i=yf.XML_XHTML_APPLICATION:r===Zn.SVG&&(i=yf.XML_SVG_IMAGE);var n=new Hs(ci,{contentType:i});if(n.implementation=this,n.childNodes=new Ar,n.doctype=t||null,t&&n.appendChild(t),e){var s=n.createElementNS(r,e);n.appendChild(s)}return n},createDocumentType:function(r,e,t,i){XF(r);var n=new ry(ci);return n.name=r,n.nodeName=r,n.publicId=e||"",n.systemId=t||"",n.internalSubset=i||"",n.childNodes=new Ar,n},createHTMLDocument:function(r){var e=new Hs(ci,{contentType:yf.HTML});if(e.implementation=this,e.childNodes=new Ar,r!==!1){e.doctype=this.createDocumentType("html"),e.doctype.ownerDocument=e,e.appendChild(e.doctype);var t=e.createElement("html");e.appendChild(t);var i=e.createElement("head");if(t.appendChild(i),typeof r=="string"){var n=e.createElement("title");n.appendChild(e.createTextNode(r)),i.appendChild(n)}t.appendChild(e.createElement("body"))}return e}};function st(r){gi(r)}st.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,parentNode:null,get parentElement(){return this.parentNode&&this.parentNode.nodeType===this.ELEMENT_NODE?this.parentNode:null},childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,baseURI:"about:blank",get isConnected(){var r=this.getRootNode();return r&&r.nodeType===r.DOCUMENT_NODE},contains:function(r){if(!r)return!1;var e=r;do{if(this===e)return!0;e=e.parentNode}while(e);return!1},getRootNode:function(r){var e=this;do{if(!e.parentNode)return e;e=e.parentNode}while(e)},isEqualNode:function(r){if(!r)return!1;for(var e=[{node:this,other:r}];e.length>0;){var t=e.pop(),i=t.node,n=t.other;if(i.nodeType!==n.nodeType)return!1;switch(i.nodeType){case i.DOCUMENT_TYPE_NODE:if(i.name!==n.name||i.publicId!==n.publicId||i.systemId!==n.systemId)return!1;break;case i.ELEMENT_NODE:if(i.namespaceURI!==n.namespaceURI||i.prefix!==n.prefix||i.localName!==n.localName||i.attributes.length!==n.attributes.length)return!1;for(var s=0;s<i.attributes.length;s++){var o=i.attributes.item(s),a=n.getAttributeNodeNS(o.namespaceURI,o.localName);if(!a)return!1;e.push({node:o,other:a})}break;case i.ATTRIBUTE_NODE:if(i.namespaceURI!==n.namespaceURI||i.localName!==n.localName||i.value!==n.value)return!1;break;case i.PROCESSING_INSTRUCTION_NODE:if(i.target!==n.target||i.data!==n.data)return!1;break;case i.TEXT_NODE:case i.CDATA_SECTION_NODE:case i.COMMENT_NODE:if(i.data!==n.data)return!1;break}if(i.childNodes.length!==n.childNodes.length)return!1;for(var s=i.childNodes.length-1;s>=0;s--)e.push({node:i.childNodes[s],other:n.childNodes[s]})}return!0},isSameNode:function(r){return this===r},insertBefore:function(r,e){return Xm(this,r,e)},replaceChild:function(r,e){Xm(this,r,e,lP),e&&this.removeChild(e)},removeChild:function(r){return aP(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return fP(this.ownerDocument||this,this,r)},normalize:function(){Pr(this,null,{enter:function(r){for(var e=r.firstChild;e;){var t=e.nextSibling;if(t!==null&&t.nodeType===If&&e.nodeType===If){for(var i=[],n=t;n!==null&&n.nodeType===If;)i.push(n.data),n=n.nextSibling;for(var s=e.nextSibling;s!==n;){var o=s.nextSibling;s.parentNode=null,s.previousSibling=null,s.nextSibling=null,s=o}e.nextSibling=n,n!==null?n.previousSibling=e:r.lastChild=e,e.appendData(i.join("")),kE(r.ownerDocument,r),e=n}else e=t}return!0}})},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(Jl(t,i)&&t[i]===r)return i}e=e.nodeType==jl?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&Jl(t,r))return t[r];e=e.nodeType==jl?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null},compareDocumentPosition:function(r){if(this===r)return 0;var e=r,t=this,i=null,n=null;if(e instanceof Cc&&(i=e,e=i.ownerElement),t instanceof Cc&&(n=t,t=n.ownerElement,i&&e&&t===e))for(var s=0,o;o=t.attributes[s];s++){if(o===i)return Mt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+Mt.DOCUMENT_POSITION_PRECEDING;if(o===n)return Mt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+Mt.DOCUMENT_POSITION_FOLLOWING}if(!e||!t||t.ownerDocument!==e.ownerDocument)return Mt.DOCUMENT_POSITION_DISCONNECTED+Mt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+(JF(t.ownerDocument)>JF(e.ownerDocument)?Mt.DOCUMENT_POSITION_FOLLOWING:Mt.DOCUMENT_POSITION_PRECEDING);if(n&&e===t)return Mt.DOCUMENT_POSITION_CONTAINS+Mt.DOCUMENT_POSITION_PRECEDING;if(i&&e===t)return Mt.DOCUMENT_POSITION_CONTAINED_BY+Mt.DOCUMENT_POSITION_FOLLOWING;for(var a=[],c=e.parentNode;c;){if(!n&&c===t)return Mt.DOCUMENT_POSITION_CONTAINED_BY+Mt.DOCUMENT_POSITION_FOLLOWING;a.push(c),c=c.parentNode}a.reverse();for(var l=[],d=t.parentNode;d;){if(!i&&d===e)return Mt.DOCUMENT_POSITION_CONTAINS+Mt.DOCUMENT_POSITION_PRECEDING;l.push(d),d=d.parentNode}l.reverse();var u=rP(a,l);for(var f in u.childNodes){var h=u.childNodes[f];if(h===t)return Mt.DOCUMENT_POSITION_FOLLOWING;if(h===e)return Mt.DOCUMENT_POSITION_PRECEDING;if(l.indexOf(h)>=0)return Mt.DOCUMENT_POSITION_FOLLOWING;if(a.indexOf(h)>=0)return Mt.DOCUMENT_POSITION_PRECEDING}return 0}};function sP(r){return r=="<"&&"<"||r==">"&&">"||r=="&"&&"&"||r=='"'&&"""||"&#"+r.charCodeAt()+";"}Vl(mi,st);Vl(mi,st.prototype);Vl(Mt,st);Vl(Mt,st.prototype);function Wm(r,e){Pr(r,null,{enter:function(t){return e(t)?Pr.STOP:!0}})}function Pr(r,e,t){for(var i=[{node:r,context:e,phase:Pr.ENTER}];i.length>0;){var n=i.pop();if(n.phase===Pr.ENTER){var s=t.enter(n.node,n.context);if(s===Pr.STOP)return Pr.STOP;if(i.push({node:n.node,context:s,phase:Pr.EXIT}),s==null)continue;for(var o=n.node.lastChild;o;)i.push({node:o,context:s,phase:Pr.ENTER}),o=o.previousSibling}else t.exit&&t.exit(n.node,n.context)}}Pr.STOP=Symbol("walkDOM.STOP");Pr.ENTER=0;Pr.EXIT=1;function Hs(r,e){gi(r);var t=e||{};this.ownerDocument=this,this.contentType=t.contentType||yf.XML_APPLICATION,this.type=D$(this.contentType)?"html":"xml"}function H$(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Zn.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function oP(r,e,t,i){r&&r._inc++;var n=t.namespaceURI;n===Zn.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function kE(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t&&!t.nextSibling)i[i.length++]=t;else{for(var n=e.firstChild,s=0;n;)i[s++]=n,n=n.nextSibling;i.length=s,delete i[i.length]}}}function aP(r,e){if(r!==e.parentNode)throw new ke(ke.NOT_FOUND_ERR,"child's parent is not parent");var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,kE(r.ownerDocument,r),e.parentNode=null,e.previousSibling=null,e.nextSibling=null,e}function K$(r){return r&&(r.nodeType===st.DOCUMENT_NODE||r.nodeType===st.DOCUMENT_FRAGMENT_NODE||r.nodeType===st.ELEMENT_NODE)}function G$(r){return r&&(r.nodeType===st.CDATA_SECTION_NODE||r.nodeType===st.COMMENT_NODE||r.nodeType===st.DOCUMENT_FRAGMENT_NODE||r.nodeType===st.DOCUMENT_TYPE_NODE||r.nodeType===st.ELEMENT_NODE||r.nodeType===st.PROCESSING_INSTRUCTION_NODE||r.nodeType===st.TEXT_NODE)}function ea(r){return r&&r.nodeType===st.DOCUMENT_TYPE_NODE}function Ls(r){return r&&r.nodeType===st.ELEMENT_NODE}function cP(r){return r&&r.nodeType===st.TEXT_NODE}function $F(r,e){var t=r.childNodes||[];if(Xn(t,Ls)||ea(e))return!1;var i=Xn(t,ea);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function VF(r,e){var t=r.childNodes||[];function i(s){return Ls(s)&&s!==e}if(Xn(t,i))return!1;var n=Xn(t,ea);return!(e&&n&&t.indexOf(n)>t.indexOf(e))}function z$(r,e,t){if(!K$(r))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new ke(ke.NOT_FOUND_ERR,"child not in parent");if(!G$(e)||ea(e)&&r.nodeType!==st.DOCUMENT_NODE)throw new ke(ke.HIERARCHY_REQUEST_ERR,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function J$(r,e,t){var i=r.childNodes||[],n=e.childNodes||[];if(e.nodeType===st.DOCUMENT_FRAGMENT_NODE){var s=n.filter(Ls);if(s.length>1||Xn(n,cP))throw new ke(ke.HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(s.length===1&&!$F(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(Ls(e)&&!$F(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(ea(e)){if(Xn(i,ea))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var o=Xn(i,Ls);if(t&&i.indexOf(o)<i.indexOf(t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element");if(!t&&o)throw new ke(ke.HIERARCHY_REQUEST_ERR,"Doctype can not be appended since element is present")}}function lP(r,e,t){var i=r.childNodes||[],n=e.childNodes||[];if(e.nodeType===st.DOCUMENT_FRAGMENT_NODE){var s=n.filter(Ls);if(s.length>1||Xn(n,cP))throw new ke(ke.HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(s.length===1&&!VF(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(Ls(e)&&!VF(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(ea(e)){if(Xn(i,function(c){return ea(c)&&c!==t}))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var o=Xn(i,Ls);if(t&&i.indexOf(o)<i.indexOf(t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element")}}function Xm(r,e,t,i){z$(r,e,t),r.nodeType===st.DOCUMENT_NODE&&(i||J$)(r,e,t);var n=e.parentNode;if(n&&n.removeChild(e),e.nodeType===Zo){var s=e.firstChild;if(s==null)return e;var o=e.lastChild}else s=o=e;var a=t?t.previousSibling:r.lastChild;s.previousSibling=a,o.nextSibling=t,a?a.nextSibling=s:r.firstChild=s,t==null?r.lastChild=o:t.previousSibling=o;do s.parentNode=r;while(s!==o&&(s=s.nextSibling));return kE(r.ownerDocument||r,r,e),e.nodeType==Zo&&(e.firstChild=e.lastChild=null),e}Hs.prototype={implementation:null,nodeName:"#document",nodeType:zl,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType===Zo){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return Xm(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Zi&&(this.documentElement=r),r},removeChild:function(r){var e=aP(this,r);return e===this.documentElement&&(this.documentElement=null),e},replaceChild:function(r,e){Xm(this,r,e,lP),r.ownerDocument=this,e&&this.removeChild(e),Ls(r)&&(this.documentElement=r)},importNode:function(r,e){return j$(this,r,e)},getElementById:function(r){var e=null;return Wm(this.documentElement,function(t){if(t.nodeType==Zi&&t.getAttribute("id")==r)return e=t,!0}),e},createElement:function(r){var e=new Ks(ci);e.ownerDocument=this,this.type==="html"&&(r=r.toLowerCase()),S$(this.contentType)&&(e.namespaceURI=Zn.HTML),e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Ar;var t=e.attributes=new $l;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new Yl(ci);return r.ownerDocument=this,r.childNodes=new Ar,r},createTextNode:function(r){var e=new wf(ci);return e.ownerDocument=this,e.childNodes=new Ar,e.appendData(r),e},createComment:function(r){var e=new ey(ci);return e.ownerDocument=this,e.childNodes=new Ar,e.appendData(r),e},createCDATASection:function(r){if(r.indexOf("]]>")!==-1)throw new ke(ke.INVALID_CHARACTER_ERR,'data contains "]]>"');var e=new ty(ci);return e.ownerDocument=this,e.childNodes=new Ar,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new ny(ci);return t.ownerDocument=this,t.childNodes=new Ar,t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){if(!Lt.QName_exact.test(r))throw new ke(ke.INVALID_CHARACTER_ERR,'invalid character in name "'+r+'"');return this.type==="html"&&(r=r.toLowerCase()),this._createAttribute(r)},_createAttribute:function(r){var e=new Cc(ci);return e.ownerDocument=this,e.childNodes=new Ar,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){if(!Lt.Name_exact.test(r))throw new ke(ke.INVALID_CHARACTER_ERR,'not a valid xml name "'+r+'"');if(this.type==="html")throw new ke("document is an html document",jr.NotSupportedError);var e=new iy(ci);return e.ownerDocument=this,e.childNodes=new Ar,e.nodeName=r,e},createElementNS:function(r,e){var t=EE(r,e),i=new Ks(ci),n=i.attributes=new $l;return i.childNodes=new Ar,i.ownerDocument=this,i.nodeName=e,i.tagName=e,i.namespaceURI=t[0],i.prefix=t[1],i.localName=t[2],n._ownerElement=i,i},createAttributeNS:function(r,e){var t=EE(r,e),i=new Cc(ci);return i.ownerDocument=this,i.childNodes=new Ar,i.nodeName=e,i.name=e,i.specified=!0,i.namespaceURI=t[0],i.prefix=t[1],i.localName=t[2],i}};pi(Hs,st);function Ks(r){gi(r),this._nsMap=Object.create(null)}Ks.prototype={nodeType:Zi,attributes:null,getQualifiedName:function(){return this.prefix?this.prefix+":"+this.localName:this.localName},_isInHTMLDocumentAndNamespace:function(){return this.ownerDocument.type==="html"&&this.namespaceURI===Zn.HTML},hasAttributes:function(){return!!(this.attributes&&this.attributes.length)},hasAttribute:function(r){return!!this.getAttributeNode(r)},getAttribute:function(r){var e=this.getAttributeNode(r);return e?e.value:null},getAttributeNode:function(r){return this._isInHTMLDocumentAndNamespace()&&(r=r.toLowerCase()),this.attributes.getNamedItem(r)},setAttribute:function(r,e){this._isInHTMLDocumentAndNamespace()&&(r=r.toLowerCase());var t=this.getAttributeNode(r);t?t.value=t.nodeValue=""+e:(t=this.ownerDocument._createAttribute(r),t.value=t.nodeValue=""+e,this.setAttributeNode(t))},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t?t.value:null},setAttributeNS:function(r,e,t){var i=EE(r,e),n=i[2],s=this.getAttributeNodeNS(r,n);s?s.value=s.nodeValue=""+t:(s=this.ownerDocument.createAttributeNS(r,e),s.value=s.nodeValue=""+t,this.setAttributeNode(s))},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByClassName:function(r){var e=zF(r);return new Wn(this,function(t){var i=[];return e.length>0&&Wm(t,function(n){if(n!==t&&n.nodeType===Zi){var s=n.getAttribute("class");if(s){var o=r===s;if(!o){var a=zF(s);o=e.every(U$(a))}o&&i.push(n)}}}),i})},getElementsByTagName:function(r){var e=(this.nodeType===zl?this:this.ownerDocument).type==="html",t=r.toLowerCase();return new Wn(this,function(i){var n=[];return Wm(i,function(s){if(!(s===i||s.nodeType!==Zi))if(r==="*")n.push(s);else{var o=s.getQualifiedName(),a=e&&s.namespaceURI===Zn.HTML?t:r;o===a&&n.push(s)}}),n})},getElementsByTagNameNS:function(r,e){return new Wn(this,function(t){var i=[];return Wm(t,function(n){n!==t&&n.nodeType===Zi&&(r==="*"||n.namespaceURI===r)&&(e==="*"||n.localName==e)&&i.push(n)}),i})}};Hs.prototype.getElementsByClassName=Ks.prototype.getElementsByClassName;Hs.prototype.getElementsByTagName=Ks.prototype.getElementsByTagName;Hs.prototype.getElementsByTagNameNS=Ks.prototype.getElementsByTagNameNS;pi(Ks,st);function Cc(r){gi(r),this.namespaceURI=null,this.prefix=null,this.ownerElement=null}Cc.prototype.nodeType=jl;pi(Cc,st);function ta(r){gi(r)}ta.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),n=this.data.substring(r+e);t=i+t+n,this.nodeValue=this.data=t,this.length=t.length}};pi(ta,st);function wf(r){gi(r)}wf.prototype={nodeName:"#text",nodeType:If,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};pi(wf,ta);function ey(r){gi(r)}ey.prototype={nodeName:"#comment",nodeType:bE};pi(ey,ta);function ty(r){gi(r)}ty.prototype={nodeName:"#cdata-section",nodeType:ZF};pi(ty,wf);function ry(r){gi(r)}ry.prototype.nodeType=tP;pi(ry,st);function SE(r){gi(r)}SE.prototype.nodeType=N$;pi(SE,st);function DE(r){gi(r)}DE.prototype.nodeType=R$;pi(DE,st);function iy(r){gi(r)}iy.prototype.nodeType=eP;pi(iy,st);function Yl(r){gi(r)}Yl.prototype.nodeName="#document-fragment";Yl.prototype.nodeType=Zo;pi(Yl,st);function ny(r){gi(r)}ny.prototype.nodeType=BE;pi(ny,ta);function dP(){}dP.prototype.serializeToString=function(r,e){return uP.call(r,e)};st.prototype.toString=uP;function uP(r){var e;typeof r=="function"?e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:r}:r!=null?e={requireWellFormed:!!r.requireWellFormed,splitCDATASections:r.splitCDATASections!==!1,nodeFilter:r.nodeFilter||null}:e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:null};var t=[],i=this.nodeType===zl&&this.documentElement||this,n=i.prefix,s=i.namespaceURI;if(s&&n==null){var n=i.lookupPrefix(s);if(n==null)var o=[{namespace:s,prefix:null}]}return QE(this,t,o,e),t.join("")}function YF(r,e,t){var i=r.prefix||"",n=r.namespaceURI;if(!n||i==="xml"&&n===Zn.XML||n===Zn.XMLNS)return!1;for(var s=t.length;s--;){var o=t[s];if(o.prefix===i)return o.namespace!==n}return!0}function Ym(r,e,t,i){if(i&&!Lt.QName_exact.test(e))throw new ke('The attribute name "'+e+'" is not a valid XML QName',jr.InvalidStateError);r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,sP),'"')}function QE(r,e,t,i){t||(t=[]);var n=i.nodeFilter,s=i.requireWellFormed,o=i.splitCDATASections,a=r.nodeType===zl?r:r.ownerDocument,c=a.type==="html";Pr(r,{ns:t},{enter:function(l,d){var u=d.ns;if(n)if(l=n(l),l){if(typeof l=="string")return e.push(l),null}else return null;switch(l.nodeType){case Zi:var f=l.attributes,h=f.length,g=l.tagName,p=g;if(!c&&!l.prefix&&l.namespaceURI){for(var I,y=0;y<f.length;y++)if(f.item(y).name==="xmlns"){I=f.item(y).value;break}if(!I)for(var w=u.length-1;w>=0;w--){var C=u[w];if(C.prefix===""&&C.namespace===l.namespaceURI){I=C.namespace;break}}if(I!==l.namespaceURI)for(var w=u.length-1;w>=0;w--){var C=u[w];if(C.namespace===l.namespaceURI){C.prefix&&(p=C.prefix+":"+g);break}}}if(s&&!Lt.QName_exact.test(p))throw new ke('The element name "'+p+'" is not a valid XML QName',jr.InvalidStateError);e.push("<",p);for(var b=u.slice(),x=0;x<h;x++){var _=f.item(x);_.prefix=="xmlns"?b.push({prefix:_.localName,namespace:_.value}):_.nodeName=="xmlns"&&b.push({prefix:"",namespace:_.value})}for(var x=0;x<h;x++){var _=f.item(x);if(YF(_,c,b)){var R=_.prefix||"",U=_.namespaceURI;Ym(e,R?"xmlns:"+R:"xmlns",U,s),b.push({prefix:R,namespace:U})}var T=n?n(_):_;T&&(typeof T=="string"?e.push(T):Ym(e,T.name,T.value,s))}if(g===p&&YF(l,c,b)){var D=l.prefix||"",U=l.namespaceURI;Ym(e,D?"xmlns:"+D:"xmlns",U,s),b.push({prefix:D,namespace:U})}var B=!l.firstChild;if(B&&(c||l.namespaceURI===Zn.HTML)&&(B=_$(g)),B)return e.push("/>"),null;if(e.push(">"),c&&Q$(g)){for(var Q=l.firstChild;Q;)Q.data?e.push(Q.data):QE(Q,e,b.slice(),i),Q=Q.nextSibling;return e.push("</",p,">"),null}return{ns:b,tag:p};case zl:case Zo:if(s&&l.nodeType===zl&&l.documentElement==null)throw new ke("The Document has no documentElement",jr.InvalidStateError);return{ns:u};case jl:return Ym(e,l.name,l.value,s),null;case If:if(s&&Lt.InvalidChar.test(l.data))throw new ke("The Text node data contains characters outside the XML Char production",jr.InvalidStateError);return e.push(l.data.replace(/[<&>]/g,sP)),null;case ZF:if(s&&l.data.indexOf("]]>")!==-1)throw new ke('The CDATASection data contains "]]>"',jr.InvalidStateError);return o?e.push(Lt.CDATA_START,l.data.replace(/]]>/g,"]]]]><![CDATA[>"),Lt.CDATA_END):e.push(Lt.CDATA_START,l.data,Lt.CDATA_END),null;case bE:if(s){if(Lt.InvalidChar.test(l.data))throw new ke("The comment node data contains characters outside the XML Char production",jr.InvalidStateError);if(l.data.indexOf("--")!==-1||l.data[l.data.length-1]==="-")throw new ke('The comment node data contains "--" or ends with "-"',jr.InvalidStateError)}return e.push(Lt.COMMENT_START,l.data,Lt.COMMENT_END),null;case tP:var v=l.publicId,E=l.systemId;if(s){if(!Lt.Name_exact.test(l.name))throw new ke('The doctype name "'+l.name+'" is not a valid XML Name',jr.InvalidStateError);if(v&&!Lt.PubidLiteral_match.test(v))throw new ke("DocumentType publicId is not a valid PubidLiteral",jr.InvalidStateError);if(E&&E!=="."&&!Lt.SystemLiteral_match.test(E))throw new ke("DocumentType systemId is not a valid SystemLiteral",jr.InvalidStateError);if(l.internalSubset&&l.internalSubset.indexOf("]>")!==-1)throw new ke('DocumentType internalSubset contains "]>"',jr.InvalidStateError)}return e.push(Lt.DOCTYPE_DECL_START," ",l.name),v?(e.push(" ",Lt.PUBLIC," ",v),E&&E!=="."&&e.push(" ",E)):E&&E!=="."&&e.push(" ",Lt.SYSTEM," ",E),l.internalSubset&&e.push(" [",l.internalSubset,"]"),e.push(">"),null;case BE:if(s){if(!Lt.NCName_exact.test(l.target)||l.target.toLowerCase()==="xml")throw new ke('The processing instruction target "'+l.target+'" is not a valid XML NCName or is reserved',jr.InvalidStateError);if(Lt.InvalidChar.test(l.data))throw new ke("The ProcessingInstruction data contains characters outside the XML Char production",jr.InvalidStateError);if(l.data.indexOf("?>")!==-1)throw new ke('The ProcessingInstruction data contains "?>"',jr.InvalidStateError)}return e.push("<?",l.target," ",l.data,"?>"),null;case eP:if(s&&!Lt.Name_exact.test(l.nodeName))throw new ke('The entity reference name "'+l.nodeName+'" is not a valid XML Name',jr.InvalidStateError);return e.push("&",l.nodeName,";"),null;default:return e.push("??",l.nodeName),null}},exit:function(l,d){d&&d.tag&&e.push("</",d.tag,">")}})}function j$(r,e,t){var i;return Pr(e,null,{enter:function(n,s){var o=n.cloneNode(!1);o.ownerDocument=r,o.parentNode=null,s===null?i=o:s.appendChild(o);var a=n.nodeType===jl||t;return a?o:null}}),i}function fP(r,e,t){var i;return Pr(e,null,{enter:function(n,s){var o=new n.constructor(ci);for(var a in n)if(Jl(n,a)){var c=n[a];typeof c!="object"&&c!=o[a]&&(o[a]=c)}n.childNodes&&(o.childNodes=new Ar),o.ownerDocument=r;var l=t;switch(o.nodeType){case Zi:var d=n.attributes,u=o.attributes=new $l,f=d.length;u._ownerElement=o;for(var h=0;h<f;h++)o.setAttributeNode(fP(r,d.item(h),!0));break;case jl:l=!0}return s!==null?s.appendChild(o):i=o,l?o:null}}),i}function AP(r,e,t){r[e]=t}function CE(r){for(var e=[],t=r.firstChild;t;)t.nodeType===Zi&&e.push(t),t=t.nextSibling;return e}try{Object.defineProperty&&(Object.defineProperty(Wn.prototype,"length",{get:function(){return Zm(this),this.$$length}}),Object.defineProperty(st.prototype,"textContent",{get:function(){if(this.nodeType===Zi||this.nodeType===Zo){var r=[];return Pr(this,null,{enter:function(e){if(e.nodeType===Zi||e.nodeType===Zo)return!0;if(e.nodeType===BE||e.nodeType===bE)return null;r.push(e.nodeValue)}}),r.join("")}return this.nodeValue},set:function(r){switch(this.nodeType){case Zi:case Zo:for(;this.firstChild;)this.removeChild(this.firstChild);(r||String(r))&&this.appendChild(this.ownerDocument.createTextNode(r));break;default:this.data=r,this.value=r,this.nodeValue=r}}}),Object.defineProperty(ta.prototype,"data",{get:function(){return this._data!=null?this._data:""},set:function(r){this._data=r,this.length=typeof r=="string"?r.length:0}}),Object.defineProperty(ta.prototype,"nodeValue",{get:function(){return this.data},set:function(r){this.data=r},enumerable:!0,configurable:!0}),Object.defineProperty(Ks.prototype,"children",{get:function(){return new Wn(this,CE)}}),Object.defineProperty(Hs.prototype,"children",{get:function(){return new Wn(this,CE)}}),Object.defineProperty(Yl.prototype,"children",{get:function(){return new Wn(this,CE)}}),AP=function(r,e,t){r["$$"+e]=t})}catch{}Ht._updateLiveList=Zm;Ht.Attr=Cc;Ht.CDATASection=ty;Ht.CharacterData=ta;Ht.Comment=ey;Ht.Document=Hs;Ht.DocumentFragment=Yl;Ht.DocumentType=ry;Ht.DOMImplementation=nP;Ht.Element=Ks;Ht.Entity=DE;Ht.EntityReference=iy;Ht.LiveNodeList=Wn;Ht.NamedNodeMap=$l;Ht.Node=st;Ht.NodeList=Ar;Ht.Notation=SE;Ht.Text=wf;Ht.ProcessingInstruction=ny;Ht.walkDOM=Pr;Ht.XMLSerializer=dP});var gP=oe(xf=>{"use strict";var hP=xc().freeze;xf.XML_ENTITIES=hP({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});xf.HTML_ENTITIES=hP({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` -`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});xf.entityMap=xf.HTML_ENTITIES});var BP=oe(oy=>{"use strict";var td=xc(),Ge=xE(),IP=ff(),$$=td.isHTMLEscapableRawTextElement,V$=td.isHTMLMimeType,Y$=td.isHTMLRawTextElement,Bf=td.hasOwn,pP=td.NAMESPACE,W$=IP.ParseError,X$=IP.DOMException,Wl=0,ra=1,Xl=2,Cf=3,Zl=4,ed=5,Ef=6,sy=7;function wP(){}wP.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),rV(e,e=Object.create(null)),Z$(r,e,t,i,this.errorHandler),i.endDocument()}};var FE=/&#?\w+;?/g;function Z$(r,e,t,i,n){var s=V$(i.mimeType);r.indexOf(Ge.UNICODE_REPLACEMENT_CHARACTER)>=0&&n.warning("Unicode replacement character detected, source encoding issues?");function o(K){if(K>65535){K-=65536;var $=55296+(K>>10),te=56320+(K&1023);return String.fromCharCode($,te)}else return String.fromCharCode(K)}function a(K){var $=K[K.length-1]===";"?K:K+";";if(!s&&$!==K)return n.error("EntityRef: expecting ;"),K;var te=Ge.Reference.exec($);if(!te||te[0].length!==$.length)return n.error("entity not matching Reference production: "+K),K;var re=$.slice(1,-1);return Bf(t,re)?t[re]:re.charAt(0)==="#"?o(parseInt(re.substring(1).replace("x","0x"))):(n.error("entity not found:"+K),K)}function c(K){if(K>I){var $=r.substring(I,K).replace(FE,a);f&&h(I),i.characters($,0,K-I),I=K}}var l=0,d=0,u=/\r\n?|\n|$/g,f=i.locator;function h(K,$){for(;K>=d&&($=u.exec(r));)l=d,d=$.index+$[0].length,f.lineNumber++;f.columnNumber=K-l+1}for(var g=[{currentNSMap:e}],p=[],I=0;;){try{var y=r.indexOf("<",I);if(y<0){if(!s&&p.length>0)return n.fatalError("unclosed xml tag(s): "+p.join(", "));if(!r.substring(I).match(/^\s*$/)){var w=i.doc,C=w.createTextNode(r.substring(I));if(w.documentElement)return n.error("Extra content at the end of the document");w.appendChild(C),i.currentElement=C}return}if(y>I){var b=r.substring(I,y);!s&&p.length===0&&(b=b.replace(new RegExp(Ge.S_OPT.source,"g"),""),b&&n.error("Unexpected content outside root element: '"+b+"'")),c(y)}switch(r.charAt(y+1)){case"/":var N=r.indexOf(">",y+2),x=r.substring(y+2,N>0?N:void 0);if(!x)return n.fatalError("end tag name missing");var _=Ge.reg("^",Ge.QName_group,Ge.S_OPT,"$"),R=N>0&&_.exec(x);if(!R){var U=N>0&&Ge.reg("^",Ge.QName_group).exec(x);if(s&&U)n.warning('end tag name contains invalid trailing characters: "'+x+'"'),R=U;else if(U&&new RegExp(_.source,_.flags+"m").test(x))n.error('end tag name is followed by a line break and trailing content: "'+x+'"'),R=U;else return n.fatalError('end tag name contains invalid characters: "'+x+'"')}if(!i.currentElement&&!i.doc.documentElement)return;var T=p[p.length-1]||i.currentElement.tagName||i.doc.documentElement.tagName||"";if(T!==R[1]){var D=R[1].toLowerCase();if(!s||T.toLowerCase()!==D)return n.fatalError('Opening and ending tag mismatch: "'+T+'" != "'+x+'"')}var B=g.pop();p.pop();var Q=B.localNSMap;if(i.endElement(B.uri,B.localName,T),Q)for(var v in Q)Bf(Q,v)&&i.endPrefixMapping(v);N++;break;case"?":f&&h(y),N=nV(r,y,i,n);break;case"!":f&&h(y),N=CP(r,y,i,n,s);break;default:f&&h(y);var E=new EP,P=g[g.length-1].currentNSMap,N=eV(r,y,E,P,a,n,s),J=E.length;if(E.closed||(s&&td.isHTMLVoidElement(E.tagName)?E.closed=!0:p.push(E.tagName)),f&&J){for(var z=mP(f,{}),L=0;L<J;L++){var G=E[L];h(G.offset),G.locator=mP(f,{})}i.locator=z,yP(E,i,P)&&g.push(E),i.locator=f}else yP(E,i,P)&&g.push(E);s&&!E.closed?N=tV(r,N,E.tagName,a,i):N++}}catch(K){if(K instanceof W$)throw K;if(K instanceof X$)return n.fatalError("Error constructing the DOM: "+K.name+": "+K.message,K);n.error("element parse error: "+K),N=-1}N>I?I=N:c(Math.max(y,I)+1)}}function mP(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function eV(r,e,t,i,n,s,o){function a(h,g,p){if(Bf(t.attributeNames,h))return s.fatalError("Attribute "+h+" redefined");if(!o&&g.indexOf("<")>=0)return s.fatalError("Unescaped '<' not allowed in attributes values");t.addValue(h,g.replace(/[\t\n\r]/g," ").replace(FE,n),p)}for(var c,l,d=++e,u=Wl;;){var f=r.charAt(d);if(u===Wl&&f==="<")throw new Error("unexpected < in tag name: "+r.slice(e,d));switch(f){case"=":if(u===ra)c=r.slice(e,d),u=Cf;else if(u===Xl)u=Cf;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(u===Cf||u===ra)if(u===ra&&(s.warning('attribute value must after "="'),c=r.slice(e,d)),e=d+1,d=r.indexOf(f,e),d>0)l=r.slice(e,d),a(c,l,e-1),u=ed;else throw new Error("attribute value no end '"+f+"' match");else if(u==Zl)l=r.slice(e,d),a(c,l,e),s.warning('attribute "'+c+'" missed start quot('+f+")!!"),e=d+1,u=ed;else throw new Error('attribute value must after "="');break;case"/":switch(u){case Wl:t.setTagName(r.slice(e,d));case ed:case Ef:case sy:u=sy,t.closed=!0;case Zl:case ra:break;case Xl:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return s.error("unexpected end of input"),u==Wl&&t.setTagName(r.slice(e,d)),d;case">":switch(u){case Wl:t.setTagName(r.slice(e,d));case ed:case Ef:case sy:break;case Zl:case ra:l=r.slice(e,d),l.slice(-1)==="/"&&(t.closed=!0,l=l.slice(0,-1));case Xl:u===Xl&&(l=c),u==Zl?(s.warning('attribute "'+l+'" missed quot(")!'),a(c,l,e)):(o||s.warning('attribute "'+l+'" missed value!! "'+l+'" instead!!'),a(l,l,e));break;case Cf:if(!o)return s.fatalError(`AttValue: ' or " expected`)}return d;case"\x80":f=" ";default:if(f<=" ")switch(u){case Wl:t.setTagName(r.slice(e,d)),u=Ef;break;case ra:c=r.slice(e,d),u=Xl;break;case Zl:var l=r.slice(e,d);s.warning('attribute "'+l+'" missed quot(")!!'),a(c,l,e);case ed:u=Ef;break}else switch(u){case Xl:o||s.warning('attribute "'+c+'" missed value!! "'+c+'" instead2!!'),a(c,c,e),e=d,u=ra;break;case ed:s.warning('attribute space is required"'+c+'"!!');case Ef:u=ra,e=d;break;case Cf:u=Zl,e=d;break;case sy:throw new Error("elements closed character '/' and '>' must be connected to")}}d++}}function yP(r,e,t){for(var i=r.tagName,n=null,u=r.length;u--;){var s=r[u],o=s.qName,a=s.value,f=o.indexOf(":");if(f>0)var c=s.prefix=o.slice(0,f),l=o.slice(f+1),d=c==="xmlns"&&l;else l=o,c=null,d=o==="xmlns"&&"";s.localName=l,d!==!1&&(n==null&&(n=Object.create(null),t=Object.create(t)),t[d]=n[d]=a,s.uri=pP.XMLNS,e.startPrefixMapping(d,a))}for(var u=r.length;u--;)s=r[u],s.prefix&&(s.prefix==="xml"&&(s.uri=pP.XML),s.prefix!=="xmlns"&&(s.uri=t[s.prefix]));var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),l=r.localName=i.slice(f+1)):(c=null,l=r.localName=i);var h=r.uri=t[c||""];if(e.startElement(h,l,i,r),r.closed){if(e.endElement(h,l,i),n)for(c in n)Bf(n,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=n,!0}function tV(r,e,t,i,n){var s=$$(t);if(s||Y$(t)){var o=new RegExp("</"+t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+">","ig");o.lastIndex=e;var a=o.exec(r),c=a?a.index:-1;if(c<0)return e+1;var l=r.substring(e+1,c);return s&&(l=l.replace(FE,i)),n.characters(l,0,l.length),c}return e+1}function rV(r,e){for(var t in r)Bf(r,t)&&(e[t]=r[t])}function xP(r,e){var t=e;function i(d){return d=d||0,r.charAt(t+d)}function n(d){d=d||1,t+=d}function s(){for(var d=0;t<r.length;){var u=i();if(u!==" "&&u!==` -`&&u!==" "&&u!=="\r")return d;d++,n()}return-1}function o(){return r.substring(t)}function a(d){return r.substring(t,t+d.length)===d}function c(d){return r.substring(t,t+d.length).toUpperCase()===d.toUpperCase()}function l(d){var u=Ge.reg("^",d),f=u.exec(o());return f?(n(f[0].length),f[0]):null}return{char:i,getIndex:function(){return t},getMatch:l,getSource:function(){return r},skip:n,skipBlanks:s,substringFromIndex:o,substringStartsWith:a,substringStartsWithCaseInsensitive:c}}function iV(r,e){function t(a,c){var l=Ge.PI.exec(a.substringFromIndex());return l?l[1].toLowerCase()==="xml"?c.fatalError("xml declaration is only allowed at the start of the document, but found at position "+a.getIndex()):(a.skip(l[0].length),l[0]):c.fatalError("processing instruction is not well-formed at position "+a.getIndex())}var i=r.getSource();if(r.char()==="["){r.skip(1);for(var n=r.getIndex();r.getIndex()<i.length;){if(r.skipBlanks(),r.char()==="]"){var s=i.substring(n,r.getIndex());return r.skip(1),s}var o=null;if(r.char()==="<"&&r.char(1)==="!")switch(r.char(2)){case"E":r.char(3)==="L"?o=r.getMatch(Ge.elementdecl):r.char(3)==="N"&&(o=r.getMatch(Ge.EntityDecl));break;case"A":o=r.getMatch(Ge.AttlistDecl);break;case"N":o=r.getMatch(Ge.NotationDecl);break;case"-":o=r.getMatch(Ge.Comment);break}else if(r.char()==="<"&&r.char(1)==="?")o=t(r,e);else if(r.char()==="%")o=r.getMatch(Ge.PEReference);else return e.fatalError("Error detected in Markup declaration");if(!o)return e.fatalError("Error in internal subset at position "+r.getIndex())}return e.fatalError("doctype internal subset is not well-formed, missing ]")}}function CP(r,e,t,i,n){var s=xP(r,e);switch(n?s.char(2).toUpperCase():s.char(2)){case"-":var o=s.getMatch(Ge.Comment);return o?(t.comment(o,Ge.COMMENT_START.length,o.length-Ge.COMMENT_START.length-Ge.COMMENT_END.length),s.getIndex()):i.fatalError("comment is not well-formed at position "+s.getIndex());case"[":var a=s.getMatch(Ge.CDSect);return a?!n&&!t.currentElement?i.fatalError("CDATA outside of element"):(t.startCDATA(),t.characters(a,Ge.CDATA_START.length,a.length-Ge.CDATA_START.length-Ge.CDATA_END.length),t.endCDATA(),s.getIndex()):i.fatalError("Invalid CDATA starting at position "+e);case"D":{if(t.doc&&t.doc.documentElement)return i.fatalError("Doctype not allowed inside or after documentElement at position "+s.getIndex());if(n?!s.substringStartsWithCaseInsensitive(Ge.DOCTYPE_DECL_START):!s.substringStartsWith(Ge.DOCTYPE_DECL_START))return i.fatalError("Expected "+Ge.DOCTYPE_DECL_START+" at position "+s.getIndex());if(s.skip(Ge.DOCTYPE_DECL_START.length),s.skipBlanks()<1)return i.fatalError("Expected whitespace after "+Ge.DOCTYPE_DECL_START+" at position "+s.getIndex());var c={name:void 0,publicId:void 0,systemId:void 0,internalSubset:void 0};if(c.name=s.getMatch(Ge.Name),!c.name)return i.fatalError("doctype name missing or contains unexpected characters at position "+s.getIndex());if(n&&c.name.toLowerCase()!=="html"&&i.warning("Unexpected DOCTYPE in HTML document at position "+s.getIndex()),s.skipBlanks(),s.substringStartsWith(Ge.PUBLIC)||s.substringStartsWith(Ge.SYSTEM)){var l=Ge.ExternalID_match.exec(s.substringFromIndex());if(!l)return i.fatalError("doctype external id is not well-formed at position "+s.getIndex());l.groups.SystemLiteralOnly!==void 0?c.systemId=l.groups.SystemLiteralOnly:(c.systemId=l.groups.SystemLiteral,c.publicId=l.groups.PubidLiteral),s.skip(l[0].length)}else if(n&&s.substringStartsWithCaseInsensitive(Ge.SYSTEM)){if(s.skip(Ge.SYSTEM.length),s.skipBlanks()<1)return i.fatalError("Expected whitespace after "+Ge.SYSTEM+" at position "+s.getIndex());if(c.systemId=s.getMatch(Ge.ABOUT_LEGACY_COMPAT_SystemLiteral),!c.systemId)return i.fatalError("Expected "+Ge.ABOUT_LEGACY_COMPAT+" in single or double quotes after "+Ge.SYSTEM+" at position "+s.getIndex())}return n&&c.systemId&&!Ge.ABOUT_LEGACY_COMPAT_SystemLiteral.test(c.systemId)&&i.warning("Unexpected doctype.systemId in HTML document at position "+s.getIndex()),n||(s.skipBlanks(),c.internalSubset=iV(s,i)),s.skipBlanks(),s.char()!==">"?i.fatalError("doctype not terminated with > at position "+s.getIndex()):(s.skip(1),t.startDTD(c.name,c.publicId,c.systemId,c.internalSubset),t.endDTD(),s.getIndex())}default:return i.fatalError('Not well-formed XML starting with "<!" at position '+e)}}function nV(r,e,t,i){var n=r.substring(e).match(Ge.PI);if(!n)return i.fatalError("Invalid processing instruction starting at position "+e);if(n[1].toLowerCase()==="xml"){if(e>0)return i.fatalError("processing instruction at position "+e+" is an xml declaration which is only at the start of the document");if(!Ge.XMLDecl.test(r.substring(e)))return i.fatalError("xml declaration is not well-formed")}return t.processingInstruction(n[1],n[2]),e+n[0].length}function EP(){this.attributeNames=Object.create(null)}EP.prototype={setTagName:function(r){if(!Ge.QName_exact.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!Ge.QName_exact.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};oy.XMLReader=wP;oy.parseUtils=xP;oy.parseDoctypeCommentOrCData=CP});var _P=oe(id=>{"use strict";var Ec=xc(),sV=_E(),oV=ff(),bP=gP(),aV=BP(),cV=sV.DOMImplementation,lV=Ec.hasDefaultHTMLNamespace,dV=Ec.isHTMLMimeType,uV=Ec.isValidMimeType,SP=Ec.MIME_TYPE,PE=Ec.NAMESPACE,vP=oV.ParseError,fV=aV.XMLReader;function DP(r){return r.replace(/\r[\n\u0085]/g,` +${m}${w}`,C=await qu(B,d.secretAccessKey),x=`OSS ${d.accessKeyID}:${C}`,Q={"Content-Type":I,Date:p,Authorization:x};d.sessionToken&&(Q["x-oss-security-token"]=d.sessionToken);let R=await fetch(g,{method:"PUT",headers:Q,body:c});if(!R.ok)throw new Error(`OSS upload failed: ${R.status} ${await R.text()}`);f&&await this.client.waitUploadTaskInfo(f)}}});var VP=oe(LE=>{var IV=typeof LE>"u"?{}:LE;(function(r){"use strict";var e="__namespace",t=function(A){return A==null},i=function(A){return A===e||Number.isInteger(A)&&A>=1&&A<=11},n=function(A){return A&&i(A.nodeType)&&typeof A.nodeName=="string"};function s(A){var k=Array.prototype.slice,O=A.length,V=function(W,ue){return function(){return ue.apply(this,W.concat(k.call(arguments)))}},H=function(){var W=k.call(arguments);return W.length<O?V(W,H):A.apply(this,k.apply(arguments,[0,O]))};return H}var o=function(A,k){for(var O=0;O<k.length;O+=1)A(k[O],O,k)},a=function(A,k,O){var V=k;return o(function(H,W){V=A(V,H,W)},O),V},c=function(A,k){var O=new Array(k.length);return o(function(V,H){O[H]=A(V)},k),O},l=function(A,k){var O=[];return o(function(V,H){A(V,H)&&O.push(V)},k),O},d=function(A,k){for(var O=0;O<A.length;O+=1)if(A[O]===k)return!0;return!1};function u(A){return function(){return A}}function f(A){return A.toString()}var h=function(A,k){return k.join(A)},g=function(A,k,O){return A+O+k},p=Array.prototype.concat,I=function(A,k){var O=new Ce;O.addArray(A);var V=O.toArray();return k?V.reverse():V},m=32767;function w(A){for(var k=[],O=0;O<A.length;O+=m){var V=A.slice(O,O+m);k=p.apply(k,V)}return k}function B(A,k){for(var O=Object(A),V=1;V<arguments.length;V++){var H=arguments[V];if(H!=null)for(var W in H)Object.prototype.hasOwnProperty.call(H,W)&&(O[W]=H[W])}return O}var C={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NAMESPACE_NODE:e};x.prototype=new Object,x.prototype.constructor=x,x.superclass=Object.prototype;function x(){this.init()}x.prototype.init=function(){this.reduceActions=[],this.reduceActions[3]=function(A){return new _(A[0],A[2])},this.reduceActions[5]=function(A){return new v(A[0],A[2])},this.reduceActions[7]=function(A){return new E(A[0],A[2])},this.reduceActions[8]=function(A){return new P(A[0],A[2])},this.reduceActions[10]=function(A){return new N(A[0],A[2])},this.reduceActions[11]=function(A){return new j(A[0],A[2])},this.reduceActions[12]=function(A){return new z(A[0],A[2])},this.reduceActions[13]=function(A){return new L(A[0],A[2])},this.reduceActions[15]=function(A){return new G(A[0],A[2])},this.reduceActions[16]=function(A){return new K(A[0],A[2])},this.reduceActions[18]=function(A){return new $(A[0],A[2])},this.reduceActions[19]=function(A){return new te(A[0],A[2])},this.reduceActions[20]=function(A){return new re(A[0],A[2])},this.reduceActions[22]=function(A){return new D(A[1])},this.reduceActions[24]=function(A){return new ee(A[0],A[2])},this.reduceActions[25]=function(A){return new Z(void 0,void 0,A[0])},this.reduceActions[27]=function(A){return A[0].locationPath=A[2],A[0]},this.reduceActions[28]=function(A){return A[0].locationPath=A[2],A[0].locationPath.steps.unshift(new se(se.DESCENDANTORSELF,ce.nodeTest,[])),A[0]},this.reduceActions[29]=function(A){return new Z(A[0],[],void 0)},this.reduceActions[30]=function(A){return be.instance_of(A[0],Z)?(A[0].filterPredicates==null&&(A[0].filterPredicates=[]),A[0].filterPredicates.push(A[1]),A[0]):new Z(A[0],[A[1]],void 0)},this.reduceActions[32]=function(A){return A[1]},this.reduceActions[33]=function(A){return new we(A[0])},this.reduceActions[34]=function(A){return new Ee(A[0])},this.reduceActions[36]=function(A){return new Mr(A[0],[])},this.reduceActions[37]=function(A){return new Mr(A[0],A[2])},this.reduceActions[38]=function(A){return[A[0]]},this.reduceActions[39]=function(A){return A[2].unshift(A[0]),A[2]},this.reduceActions[43]=function(A){return new _e(!0,[])},this.reduceActions[44]=function(A){return A[1].absolute=!0,A[1]},this.reduceActions[46]=function(A){return new _e(!1,[A[0]])},this.reduceActions[47]=function(A){return A[0].steps.push(A[2]),A[0]},this.reduceActions[49]=function(A){return new se(A[0],A[1],[])},this.reduceActions[50]=function(A){return new se(se.CHILD,A[0],[])},this.reduceActions[51]=function(A){return new se(A[0],A[1],A[2])},this.reduceActions[52]=function(A){return new se(se.CHILD,A[0],A[1])},this.reduceActions[54]=function(A){return[A[0]]},this.reduceActions[55]=function(A){return A[1].unshift(A[0]),A[1]},this.reduceActions[56]=function(A){return A[0]=="ancestor"?se.ANCESTOR:A[0]=="ancestor-or-self"?se.ANCESTORORSELF:A[0]=="attribute"?se.ATTRIBUTE:A[0]=="child"?se.CHILD:A[0]=="descendant"?se.DESCENDANT:A[0]=="descendant-or-self"?se.DESCENDANTORSELF:A[0]=="following"?se.FOLLOWING:A[0]=="following-sibling"?se.FOLLOWINGSIBLING:A[0]=="namespace"?se.NAMESPACE:A[0]=="parent"?se.PARENT:A[0]=="preceding"?se.PRECEDING:A[0]=="preceding-sibling"?se.PRECEDINGSIBLING:A[0]=="self"?se.SELF:-1},this.reduceActions[57]=function(A){return se.ATTRIBUTE},this.reduceActions[59]=function(A){return A[0]=="comment"?ce.commentTest:A[0]=="text"?ce.textTest:A[0]=="processing-instruction"?ce.anyPiTest:A[0]=="node"?ce.nodeTest:new ce(-1,void 0)},this.reduceActions[60]=function(A){return new ce.PITest(A[2])},this.reduceActions[61]=function(A){return A[1]},this.reduceActions[63]=function(A){return A[1].absolute=!0,A[1].steps.unshift(new se(se.DESCENDANTORSELF,ce.nodeTest,[])),A[1]},this.reduceActions[64]=function(A){return A[0].steps.push(new se(se.DESCENDANTORSELF,ce.nodeTest,[])),A[0].steps.push(A[2]),A[0]},this.reduceActions[65]=function(A){return new se(se.SELF,ce.nodeTest,[])},this.reduceActions[66]=function(A){return new se(se.PARENT,ce.nodeTest,[])},this.reduceActions[67]=function(A){return new dr(A[1])},this.reduceActions[68]=function(A){return ce.nameTestAny},this.reduceActions[69]=function(A){return new ce.NameTestPrefixAny(A[0].split(":")[0])},this.reduceActions[70]=function(A){return new ce.NameTestQName(A[0])}},x.actionTable=[" s s sssssssss s ss s ss"," s ","r rrrrrrrrr rrrrrrr rr r "," rrrrr "," s s sssssssss s ss s ss","rs rrrrrrrr s sssssrrrrrr rrs rs "," s s sssssssss s ss s ss"," s "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s "," s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr r ","a ","r s rr r ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrs rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r srrrrrrrr rrrrrrs rr sr ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrr rrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r "," sssss ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrr rrrrr rr r "," s "," s "," rrrrr "," s s sssssssss s sss s ss","r srrrrrrrr rrrrrrs rr r "," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss s ss s ss"," s s sssssssss ss s ss"," s s sssssssss s ss s ss"," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr rr "," s s sssss s s "," s s sssss s s ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr sr ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr "," s ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," rr "," s "," rs ","r sr rr r ","r s rr s rr r ","r rssrr rss rr r ","r rssrr rss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrr rrrss rr r ","r rrrrrsss rrrrr rr r ","r rrrrrsss rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrr rr r ","r rrrrrrrr rrrrrr rr r "," r "," s ","r srrrrrrrr rrrrrrs rr r ","r srrrrrrrr rrrrrrs rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr r ","r rrrrrrrrr rrrrrrr rr rr ","r rrrrrrrrr rrrrrrr rr rr "," s s sssssssss s ss s ss","r rrrrrrrrr rrrrrrr rr rr "," r "],x.actionTableNumber=[` 1 0 /.-,+*)(' & %$ # "!`," J ","a aaaaaaaaa aaaaaaa aa a "," YYYYY ",` 1 0 /.-,+*)(' & %$ # "!`,`K1 KKKKKKKK . +*)('KKKKKK KK# K" `,` 1 0 /.-,+*)(' & %$ # "!`," N "," O ","e eeeeeeeee eeeeeee ee ee ","f fffffffff fffffff ff ff ","d ddddddddd ddddddd dd dd ","B BBBBBBBBB BBBBBBB BB BB ","A AAAAAAAAA AAAAAAA AA AA "," P "," Q ",` 1 . +*)(' # " `,"b bbbbbbbbb bbbbbbb bb b "," ","! S !! ! ",'" T" "" " ',"$ V $$ U $$ $ ","& &ZY&& &XW && & ",") ))))) )))\\[ )) ) ",". ....._^] ..... .. . ","1 11111111 11111 11 1 ","5 55555555 55555` 55 5 ","7 77777777 777777 77 7 ","9 99999999 999999 99 9 ",": c:::::::: ::::::b :: a: ","I fIIIIIIII IIIIIIe II I ","= ========= ======= == == ","? ????????? ??????? ?? ?? ","C CCCCCCCCC CCCCCCC CC CC ","J JJJJJJJJ JJJJJJ JJ J ","M MMMMMMMM MMMMMM MM M ","N NNNNNNNNN NNNNNNN NN N ","P PPPPPPPPP PPPPPPP PP P "," +*)(' ","R RRRRRRRRR RRRRRRR RR aR ","U UUUUUUUUU UUUUUUU UU U ","Z ZZZZZZZZZ ZZZZZZZ ZZ ZZ ","c ccccccccc ccccccc cc cc "," j ","L fLLLLLLLL LLLLLLe LL L ","6 66666666 66666 66 6 "," k "," l "," XXXXX ",` 1 0 /.-,+*)(' & %$m # "!`,"_ f________ ______e __ _ ",` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 0 /.-,+*)(' %$ # "!`,` 1 0 /.-,+*)(' & %$ # "!`,` 1 . +*)(' # " `,` 1 . +*)(' # " `,"> >>>>>>>>> >>>>>>> >> >> ",` 1 . +*)(' # " `,` 1 . +*)(' # " `,"Q QQQQQQQQQ QQQQQQQ QQ aQ ","V VVVVVVVVV VVVVVVV VV aV ","T TTTTTTTTT TTTTTTT TT T ","@ @@@@@@@@@ @@@@@@@ @@ @@ "," \x87 ","[ [[[[[[[[[ [[[[[[[ [[ [[ ","D DDDDDDDDD DDDDDDD DD DD "," HH "," \x88 "," F\x89 ","# T# ## # ","% V %% U %% % ","' 'ZY'' 'XW '' ' ","( (ZY(( (XW (( ( ","+ +++++ +++\\[ ++ + ","* ***** ***\\[ ** * ","- ----- ---\\[ -- - ",", ,,,,, ,,,\\[ ,, , ","0 00000_^] 00000 00 0 ","/ /////_^] ///// // / ","2 22222222 22222 22 2 ","3 33333333 33333 33 3 ","4 44444444 44444 44 4 ","8 88888888 888888 88 8 "," ^ "," \x8A ","; f;;;;;;;; ;;;;;;e ;; ; ","< f<<<<<<<< <<<<<<e << < ","O OOOOOOOOO OOOOOOO OO O ","` ````````` ``````` `` ` ","S SSSSSSSSS SSSSSSS SS S ","W WWWWWWWWW WWWWWWW WW W ","\\ \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\ \\\\ \\\\ ","E EEEEEEEEE EEEEEEE EE EE ",` 1 0 /.-,+*)(' & %$ # "!`,"] ]]]]]]]]] ]]]]]]] ]] ]] "," G "],x.gotoTable=["3456789:;<=>?@ AB CDEFGH IJ "," "," "," ","L456789:;<=>?@ AB CDEFGH IJ "," M EFGH IJ "," N;<=>?@ AB CDEFGH IJ "," "," "," "," "," "," "," "," "," "," S EFGH IJ "," "," "," "," "," "," "," "," "," "," "," "," "," e "," "," "," "," "," "," "," "," "," h J "," i j "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ ABpqCDEFGH IJ "," "," r6789:;<=>?@ AB CDEFGH IJ "," s789:;<=>?@ AB CDEFGH IJ "," t89:;<=>?@ AB CDEFGH IJ "," u89:;<=>?@ AB CDEFGH IJ "," v9:;<=>?@ AB CDEFGH IJ "," w9:;<=>?@ AB CDEFGH IJ "," x9:;<=>?@ AB CDEFGH IJ "," y9:;<=>?@ AB CDEFGH IJ "," z:;<=>?@ AB CDEFGH IJ "," {:;<=>?@ AB CDEFGH IJ "," |;<=>?@ AB CDEFGH IJ "," };<=>?@ AB CDEFGH IJ "," ~;<=>?@ AB CDEFGH IJ "," \x7F=>?@ AB CDEFGH IJ ","\x80456789:;<=>?@ AB CDEFGH IJ\x81"," \x82 EFGH IJ "," \x83 EFGH IJ "," "," \x84 GH IJ "," \x85 GH IJ "," i \x86 "," i \x87 "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","o456789:;<=>?@ AB\x8CqCDEFGH IJ "," "," "],x.productions=[[1,1,2],[2,1,3],[3,1,4],[3,3,3,-9,4],[4,1,5],[4,3,4,-8,5],[5,1,6],[5,3,5,-22,6],[5,3,5,-5,6],[6,1,7],[6,3,6,-23,7],[6,3,6,-24,7],[6,3,6,-6,7],[6,3,6,-7,7],[7,1,8],[7,3,7,-25,8],[7,3,7,-26,8],[8,1,9],[8,3,8,-12,9],[8,3,8,-11,9],[8,3,8,-10,9],[9,1,10],[9,2,-26,9],[10,1,11],[10,3,10,-27,11],[11,1,12],[11,1,13],[11,3,13,-28,14],[11,3,13,-4,14],[13,1,15],[13,2,13,16],[15,1,17],[15,3,-29,2,-30],[15,1,-15],[15,1,-16],[15,1,18],[18,3,-13,-29,-30],[18,4,-13,-29,19,-30],[19,1,20],[19,3,20,-31,19],[20,1,2],[12,1,14],[12,1,21],[21,1,-28],[21,2,-28,14],[21,1,22],[14,1,23],[14,3,14,-28,23],[14,1,24],[23,2,25,26],[23,1,26],[23,3,25,26,27],[23,2,26,27],[23,1,28],[27,1,16],[27,2,16,27],[25,2,-14,-3],[25,1,-32],[26,1,29],[26,3,-20,-29,-30],[26,4,-21,-29,-15,-30],[16,3,-33,30,-34],[30,1,2],[22,2,-4,14],[24,3,14,-4,23],[28,1,-35],[28,1,-2],[17,2,-36,-18],[29,1,-17],[29,1,-19],[29,1,-18]],x.DOUBLEDOT=2,x.DOUBLECOLON=3,x.DOUBLESLASH=4,x.NOTEQUAL=5,x.LESSTHANOREQUAL=6,x.GREATERTHANOREQUAL=7,x.AND=8,x.OR=9,x.MOD=10,x.DIV=11,x.MULTIPLYOPERATOR=12,x.FUNCTIONNAME=13,x.AXISNAME=14,x.LITERAL=15,x.NUMBER=16,x.ASTERISKNAMETEST=17,x.QNAME=18,x.NCNAMECOLONASTERISK=19,x.NODETYPE=20,x.PROCESSINGINSTRUCTIONWITHLITERAL=21,x.EQUALS=22,x.LESSTHAN=23,x.GREATERTHAN=24,x.PLUS=25,x.MINUS=26,x.BAR=27,x.SLASH=28,x.LEFTPARENTHESIS=29,x.RIGHTPARENTHESIS=30,x.COMMA=31,x.AT=32,x.LEFTBRACKET=33,x.RIGHTBRACKET=34,x.DOT=35,x.DOLLAR=36,x.prototype.tokenize=function(A){for(var k=[],O=[],V=A+"\0",H=0,W=V.charAt(H++);;){for(;W==" "||W==" "||W=="\r"||W==` +`;)W=V.charAt(H++);if(W=="\0"||H>=V.length)break;if(W=="("){k.push(x.LEFTPARENTHESIS),O.push(W),W=V.charAt(H++);continue}if(W==")"){k.push(x.RIGHTPARENTHESIS),O.push(W),W=V.charAt(H++);continue}if(W=="["){k.push(x.LEFTBRACKET),O.push(W),W=V.charAt(H++);continue}if(W=="]"){k.push(x.RIGHTBRACKET),O.push(W),W=V.charAt(H++);continue}if(W=="@"){k.push(x.AT),O.push(W),W=V.charAt(H++);continue}if(W==","){k.push(x.COMMA),O.push(W),W=V.charAt(H++);continue}if(W=="|"){k.push(x.BAR),O.push(W),W=V.charAt(H++);continue}if(W=="+"){k.push(x.PLUS),O.push(W),W=V.charAt(H++);continue}if(W=="-"){k.push(x.MINUS),O.push(W),W=V.charAt(H++);continue}if(W=="="){k.push(x.EQUALS),O.push(W),W=V.charAt(H++);continue}if(W=="$"){k.push(x.DOLLAR),O.push(W),W=V.charAt(H++);continue}if(W=="."){if(W=V.charAt(H++),W=="."){k.push(x.DOUBLEDOT),O.push(".."),W=V.charAt(H++);continue}if(W>="0"&&W<="9"){var ue="."+W;for(W=V.charAt(H++);W>="0"&&W<="9";)ue+=W,W=V.charAt(H++);k.push(x.NUMBER),O.push(ue);continue}k.push(x.DOT),O.push(".");continue}if(W=="'"||W=='"'){for(var Re=W,Ve="";H<V.length&&(W=V.charAt(H))!==Re;)Ve+=W,H+=1;if(W!==Re)throw hi.fromMessage("Unterminated string literal: "+Re+Ve);H+=1,k.push(x.LITERAL),O.push(Ve),W=V.charAt(H++);continue}if(W>="0"&&W<="9"){var ue=W;for(W=V.charAt(H++);W>="0"&&W<="9";)ue+=W,W=V.charAt(H++);if(W=="."&&V.charAt(H)>="0"&&V.charAt(H)<="9")for(ue+=W,ue+=V.charAt(H++),W=V.charAt(H++);W>="0"&&W<="9";)ue+=W,W=V.charAt(H++);k.push(x.NUMBER),O.push(ue);continue}if(W=="*"){if(k.length>0){var Ie=k[k.length-1];if(Ie!=x.AT&&Ie!=x.DOUBLECOLON&&Ie!=x.LEFTPARENTHESIS&&Ie!=x.LEFTBRACKET&&Ie!=x.AND&&Ie!=x.OR&&Ie!=x.MOD&&Ie!=x.DIV&&Ie!=x.MULTIPLYOPERATOR&&Ie!=x.SLASH&&Ie!=x.DOUBLESLASH&&Ie!=x.BAR&&Ie!=x.PLUS&&Ie!=x.MINUS&&Ie!=x.EQUALS&&Ie!=x.NOTEQUAL&&Ie!=x.LESSTHAN&&Ie!=x.LESSTHANOREQUAL&&Ie!=x.GREATERTHAN&&Ie!=x.GREATERTHANOREQUAL){k.push(x.MULTIPLYOPERATOR),O.push(W),W=V.charAt(H++);continue}}k.push(x.ASTERISKNAMETEST),O.push(W),W=V.charAt(H++);continue}if(W==":"&&V.charAt(H)==":"){k.push(x.DOUBLECOLON),O.push("::"),H++,W=V.charAt(H++);continue}if(W=="/"){if(W=V.charAt(H++),W=="/"){k.push(x.DOUBLESLASH),O.push("//"),W=V.charAt(H++);continue}k.push(x.SLASH),O.push("/");continue}if(W=="!"&&V.charAt(H)=="="){k.push(x.NOTEQUAL),O.push("!="),H++,W=V.charAt(H++);continue}if(W=="<"){if(V.charAt(H)=="="){k.push(x.LESSTHANOREQUAL),O.push("<="),H++,W=V.charAt(H++);continue}k.push(x.LESSTHAN),O.push("<"),W=V.charAt(H++);continue}if(W==">"){if(V.charAt(H)=="="){k.push(x.GREATERTHANOREQUAL),O.push(">="),H++,W=V.charAt(H++);continue}k.push(x.GREATERTHAN),O.push(">"),W=V.charAt(H++);continue}if(W=="_"||be.isLetter(W.charCodeAt(0))){var Fe=W;for(W=V.charAt(H++);be.isNCNameChar(W.charCodeAt(0));)Fe+=W,W=V.charAt(H++);if(k.length>0){var Ie=k[k.length-1];if(Ie!=x.AT&&Ie!=x.DOUBLECOLON&&Ie!=x.LEFTPARENTHESIS&&Ie!=x.LEFTBRACKET&&Ie!=x.AND&&Ie!=x.OR&&Ie!=x.MOD&&Ie!=x.DIV&&Ie!=x.MULTIPLYOPERATOR&&Ie!=x.SLASH&&Ie!=x.DOUBLESLASH&&Ie!=x.BAR&&Ie!=x.PLUS&&Ie!=x.MINUS&&Ie!=x.EQUALS&&Ie!=x.NOTEQUAL&&Ie!=x.LESSTHAN&&Ie!=x.LESSTHANOREQUAL&&Ie!=x.GREATERTHAN&&Ie!=x.GREATERTHANOREQUAL){if(Fe=="and"){k.push(x.AND),O.push(Fe);continue}if(Fe=="or"){k.push(x.OR),O.push(Fe);continue}if(Fe=="mod"){k.push(x.MOD),O.push(Fe);continue}if(Fe=="div"){k.push(x.DIV),O.push(Fe);continue}}}if(W==":"){if(V.charAt(H)=="*"){k.push(x.NCNAMECOLONASTERISK),O.push(Fe+":*"),H++,W=V.charAt(H++);continue}if(V.charAt(H)=="_"||be.isLetter(V.charCodeAt(H))){for(Fe+=":",W=V.charAt(H++);be.isNCNameChar(W.charCodeAt(0));)Fe+=W,W=V.charAt(H++);if(W=="("){k.push(x.FUNCTIONNAME),O.push(Fe);continue}k.push(x.QNAME),O.push(Fe);continue}if(V.charAt(H)==":"){k.push(x.AXISNAME),O.push(Fe);continue}}if(W=="("){if(Fe=="comment"||Fe=="text"||Fe=="node"){k.push(x.NODETYPE),O.push(Fe);continue}if(Fe=="processing-instruction"){V.charAt(H)==")"?k.push(x.NODETYPE):k.push(x.PROCESSINGINSTRUCTIONWITHLITERAL),O.push(Fe);continue}k.push(x.FUNCTIONNAME),O.push(Fe);continue}k.push(x.QNAME),O.push(Fe);continue}throw new Error("Unexpected character "+W)}return k.push(1),O.push("[EOF]"),[k,O]},x.SHIFT="s",x.REDUCE="r",x.ACCEPT="a",x.prototype.parse=function(Ve){if(!Ve)throw new Error("XPath expression unspecified.");if(typeof Ve!="string")throw new Error("XPath expression must be a string.");var k,O,V=this.tokenize(Ve);if(V!=null){k=V[0],O=V[1];var H=0,W=[],ue=[],Re=[],Ve,Ie,Fe;for(W.push(0),ue.push(1),Re.push("_S"),Ie=k[H],Fe=O[H++];;)switch(Ve=W[W.length-1],x.actionTable[Ve].charAt(Ie-1)){case x.SHIFT:ue.push(-Ie),Re.push(Fe),W.push(x.actionTableNumber[Ve].charCodeAt(Ie-1)-32),Ie=k[H],Fe=O[H++];break;case x.REDUCE:for(var In=x.productions[x.actionTableNumber[Ve].charCodeAt(Ie-1)-32][1],ks=[],Ss=0;Ss<In;Ss++)ue.pop(),ks.unshift(Re.pop()),W.pop();var Ds=W[W.length-1];ue.push(x.productions[x.actionTableNumber[Ve].charCodeAt(Ie-1)-32][0]),this.reduceActions[x.actionTableNumber[Ve].charCodeAt(Ie-1)-32]==null?Re.push(ks[0]):Re.push(this.reduceActions[x.actionTableNumber[Ve].charCodeAt(Ie-1)-32](ks)),W.push(x.gotoTable[Ds].charCodeAt(x.productions[x.actionTableNumber[Ve].charCodeAt(Ie-1)-32][0]-2)-33);break;case x.ACCEPT:return new Q(Re.pop());default:throw new Error("XPath parse error")}}},Q.prototype=new Object,Q.prototype.constructor=Q,Q.superclass=Object.prototype;function Q(A){this.expression=A}Q.prototype.toString=function(){return this.expression.toString()};function R(A,k,O){k in A||(A[k]=O)}Q.prototype.evaluate=function(A){var k=A.expressionContextNode;if(!(t(k)||n(k)))throw new Error("Context node does not appear to be a valid DOM node.");return A.contextNode=A.expressionContextNode,A.contextSize=1,A.contextPosition=1,A.isHtml&&(R(A,"caseInsensitive",!0),R(A,"allowAnyNamespaceForNoPrefix",!0)),R(A,"caseInsensitive",!1),this.expression.evaluate(A)},Q.XML_NAMESPACE_URI="http://www.w3.org/XML/1998/namespace",Q.XMLNS_NAMESPACE_URI="http://www.w3.org/2000/xmlns/",U.prototype=new Object,U.prototype.constructor=U,U.superclass=Object.prototype;function U(){}U.prototype.init=function(){},U.prototype.toString=function(){return"<Expression>"},U.prototype.evaluate=function(A){throw new Error("Could not evaluate expression.")},T.prototype=new U,T.prototype.constructor=T,T.superclass=U.prototype;function T(A){arguments.length>0&&this.init(A)}T.prototype.init=function(A){this.rhs=A},D.prototype=new T,D.prototype.constructor=D,D.superclass=T.prototype;function D(A){arguments.length>0&&this.init(A)}D.prototype.init=function(A){D.superclass.init.call(this,A)},D.prototype.evaluate=function(A){return this.rhs.evaluate(A).number().negate()},D.prototype.toString=function(){return"-"+this.rhs.toString()},b.prototype=new U,b.prototype.constructor=b,b.superclass=U.prototype;function b(A,k){arguments.length>0&&this.init(A,k)}b.prototype.init=function(A,k){this.lhs=A,this.rhs=k},_.prototype=new b,_.prototype.constructor=_,_.superclass=b.prototype;function _(A,k){arguments.length>0&&this.init(A,k)}_.prototype.init=function(A,k){_.superclass.init.call(this,A,k)},_.prototype.toString=function(){return"("+this.lhs.toString()+" or "+this.rhs.toString()+")"},_.prototype.evaluate=function(A){var k=this.lhs.evaluate(A).bool();return k.booleanValue()?k:this.rhs.evaluate(A).bool()},v.prototype=new b,v.prototype.constructor=v,v.superclass=b.prototype;function v(A,k){arguments.length>0&&this.init(A,k)}v.prototype.init=function(A,k){v.superclass.init.call(this,A,k)},v.prototype.toString=function(){return"("+this.lhs.toString()+" and "+this.rhs.toString()+")"},v.prototype.evaluate=function(A){var k=this.lhs.evaluate(A).bool();return k.booleanValue()?this.rhs.evaluate(A).bool():k},E.prototype=new b,E.prototype.constructor=E,E.superclass=b.prototype;function E(A,k){arguments.length>0&&this.init(A,k)}E.prototype.init=function(A,k){E.superclass.init.call(this,A,k)},E.prototype.toString=function(){return"("+this.lhs.toString()+" = "+this.rhs.toString()+")"},E.prototype.evaluate=function(A){return this.lhs.evaluate(A).equals(this.rhs.evaluate(A))},P.prototype=new b,P.prototype.constructor=P,P.superclass=b.prototype;function P(A,k){arguments.length>0&&this.init(A,k)}P.prototype.init=function(A,k){P.superclass.init.call(this,A,k)},P.prototype.toString=function(){return"("+this.lhs.toString()+" != "+this.rhs.toString()+")"},P.prototype.evaluate=function(A){return this.lhs.evaluate(A).notequal(this.rhs.evaluate(A))},N.prototype=new b,N.prototype.constructor=N,N.superclass=b.prototype;function N(A,k){arguments.length>0&&this.init(A,k)}N.prototype.init=function(A,k){N.superclass.init.call(this,A,k)},N.prototype.evaluate=function(A){return this.lhs.evaluate(A).lessthan(this.rhs.evaluate(A))},N.prototype.toString=function(){return"("+this.lhs.toString()+" < "+this.rhs.toString()+")"},j.prototype=new b,j.prototype.constructor=j,j.superclass=b.prototype;function j(A,k){arguments.length>0&&this.init(A,k)}j.prototype.init=function(A,k){j.superclass.init.call(this,A,k)},j.prototype.evaluate=function(A){return this.lhs.evaluate(A).greaterthan(this.rhs.evaluate(A))},j.prototype.toString=function(){return"("+this.lhs.toString()+" > "+this.rhs.toString()+")"},z.prototype=new b,z.prototype.constructor=z,z.superclass=b.prototype;function z(A,k){arguments.length>0&&this.init(A,k)}z.prototype.init=function(A,k){z.superclass.init.call(this,A,k)},z.prototype.evaluate=function(A){return this.lhs.evaluate(A).lessthanorequal(this.rhs.evaluate(A))},z.prototype.toString=function(){return"("+this.lhs.toString()+" <= "+this.rhs.toString()+")"},L.prototype=new b,L.prototype.constructor=L,L.superclass=b.prototype;function L(A,k){arguments.length>0&&this.init(A,k)}L.prototype.init=function(A,k){L.superclass.init.call(this,A,k)},L.prototype.evaluate=function(A){return this.lhs.evaluate(A).greaterthanorequal(this.rhs.evaluate(A))},L.prototype.toString=function(){return"("+this.lhs.toString()+" >= "+this.rhs.toString()+")"},G.prototype=new b,G.prototype.constructor=G,G.superclass=b.prototype;function G(A,k){arguments.length>0&&this.init(A,k)}G.prototype.init=function(A,k){G.superclass.init.call(this,A,k)},G.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().plus(this.rhs.evaluate(A).number())},G.prototype.toString=function(){return"("+this.lhs.toString()+" + "+this.rhs.toString()+")"},K.prototype=new b,K.prototype.constructor=K,K.superclass=b.prototype;function K(A,k){arguments.length>0&&this.init(A,k)}K.prototype.init=function(A,k){K.superclass.init.call(this,A,k)},K.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().minus(this.rhs.evaluate(A).number())},K.prototype.toString=function(){return"("+this.lhs.toString()+" - "+this.rhs.toString()+")"},$.prototype=new b,$.prototype.constructor=$,$.superclass=b.prototype;function $(A,k){arguments.length>0&&this.init(A,k)}$.prototype.init=function(A,k){$.superclass.init.call(this,A,k)},$.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().multiply(this.rhs.evaluate(A).number())},$.prototype.toString=function(){return"("+this.lhs.toString()+" * "+this.rhs.toString()+")"},te.prototype=new b,te.prototype.constructor=te,te.superclass=b.prototype;function te(A,k){arguments.length>0&&this.init(A,k)}te.prototype.init=function(A,k){te.superclass.init.call(this,A,k)},te.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().div(this.rhs.evaluate(A).number())},te.prototype.toString=function(){return"("+this.lhs.toString()+" div "+this.rhs.toString()+")"},re.prototype=new b,re.prototype.constructor=re,re.superclass=b.prototype;function re(A,k){arguments.length>0&&this.init(A,k)}re.prototype.init=function(A,k){re.superclass.init.call(this,A,k)},re.prototype.evaluate=function(A){return this.lhs.evaluate(A).number().mod(this.rhs.evaluate(A).number())},re.prototype.toString=function(){return"("+this.lhs.toString()+" mod "+this.rhs.toString()+")"},ee.prototype=new b,ee.prototype.constructor=ee,ee.superclass=b.prototype;function ee(A,k){arguments.length>0&&this.init(A,k)}ee.prototype.init=function(A,k){ee.superclass.init.call(this,A,k)},ee.prototype.evaluate=function(A){return this.lhs.evaluate(A).nodeset().union(this.rhs.evaluate(A).nodeset())},ee.prototype.toString=function(){return c(f,[this.lhs,this.rhs]).join(" | ")},Z.prototype=new U,Z.prototype.constructor=Z,Z.superclass=U.prototype;function Z(A,k,O){arguments.length>0&&this.init(A,k,O)}Z.prototype.init=function(A,k,O){Z.superclass.init.call(this),this.filter=A,this.filterPredicates=k,this.locationPath=O};function me(A){for(;A&&A.parentNode;)A=A.parentNode;return A}var le=function(A,k,O,V){if(A.length===0)return O;var H=k.extend({});return a(function(W,ue){return H.contextSize=W.length,l(function(Re,Ve){return H.contextNode=Re,H.contextPosition=Ve+1,Z.predicateMatches(ue,H)},W)},I(O,V),A)};Z.getRoot=function(A,k){var O=k[0];if(O&&O.nodeType===C.DOCUMENT_NODE)return O;if(A.virtualRoot)return A.virtualRoot;if(!O)throw new Error("Context node not found when determining document root.");var V=O.ownerDocument;if(V)return V;for(var H=O;H.parentNode!=null;)H=H.parentNode;return H};var Ae=function(A){var k=String(A.name);return k==="xmlns"?"":k.substring(0,6)==="xmlns:"?k.substring(6,k.length):null};Z.applyStep=function(A,k,O){if(!O)throw new Error("Context node not found when evaluating XPath step: "+A);var V=[];switch(k.contextNode=O,A.axis){case se.ANCESTOR:if(k.contextNode===k.virtualRoot)break;var H;for(k.contextNode.nodeType==C.ATTRIBUTE_NODE?H=Z.getOwnerElement(k.contextNode):H=k.contextNode.parentNode;H!=null&&(A.nodeTest.matches(H,k)&&V.push(H),H!==k.virtualRoot);)H=H.parentNode;break;case se.ANCESTORORSELF:for(var H=k.contextNode;H!=null&&(A.nodeTest.matches(H,k)&&V.push(H),H!==k.virtualRoot);H=H.nodeType==C.ATTRIBUTE_NODE?Z.getOwnerElement(H):H.parentNode);break;case se.ATTRIBUTE:var W=k.contextNode.attributes;if(W!=null)for(var ue=0;ue<W.length;ue++){var H=W.item(ue);A.nodeTest.matches(H,k)&&V.push(H)}break;case se.CHILD:for(var H=k.contextNode.firstChild;H!=null;H=H.nextSibling)A.nodeTest.matches(H,k)&&V.push(H);break;case se.DESCENDANT:for(var Fe=[k.contextNode.firstChild];Fe.length>0;)for(var H=Fe.pop();H!=null;)A.nodeTest.matches(H,k)&&V.push(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling;break;case se.DESCENDANTORSELF:A.nodeTest.matches(k.contextNode,k)&&V.push(k.contextNode);for(var Fe=[k.contextNode.firstChild];Fe.length>0;)for(var H=Fe.pop();H!=null;)A.nodeTest.matches(H,k)&&V.push(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling;break;case se.FOLLOWING:if(k.contextNode===k.virtualRoot)break;var Fe=[];k.contextNode.firstChild!=null?Fe.unshift(k.contextNode.firstChild):Fe.unshift(k.contextNode.nextSibling);for(var H=k.contextNode.parentNode;H!=null&&H.nodeType!=C.DOCUMENT_NODE&&H!==k.virtualRoot;H=H.parentNode)Fe.unshift(H.nextSibling);do for(var H=Fe.pop();H!=null;)A.nodeTest.matches(H,k)&&V.push(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling;while(Fe.length>0);break;case se.FOLLOWINGSIBLING:if(k.contextNode===k.virtualRoot)break;for(var H=k.contextNode.nextSibling;H!=null;H=H.nextSibling)A.nodeTest.matches(H,k)&&V.push(H);break;case se.NAMESPACE:var Re={};if(k.contextNode.nodeType==C.ELEMENT_NODE){Re.xml=new ji("xml",null,Q.XML_NAMESPACE_URI,k.contextNode);for(var H=k.contextNode;H!=null&&H.nodeType==C.ELEMENT_NODE;H=H.parentNode)for(var ue=0;ue<H.attributes.length;ue++){var Ve=H.attributes.item(ue),Ie=Ae(Ve);Ie!=null&&Re[Ie]==null&&(Re[Ie]=new ji(Ie,Ve,Ve.value,k.contextNode))}for(var Ie in Re){var O=Re[Ie];A.nodeTest.matches(O,k)&&V.push(O)}}break;case se.PARENT:H=null,k.contextNode!==k.virtualRoot&&(k.contextNode.nodeType==C.ATTRIBUTE_NODE?H=Z.getOwnerElement(k.contextNode):H=k.contextNode.parentNode),H!=null&&A.nodeTest.matches(H,k)&&V.push(H);break;case se.PRECEDING:var Fe;k.virtualRoot!=null?Fe=[k.virtualRoot]:Fe=[me(k.contextNode)];e:for(;Fe.length>0;)for(var H=Fe.pop();H!=null;){if(H==k.contextNode)break e;A.nodeTest.matches(H,k)&&V.unshift(H),H.firstChild!=null?(Fe.push(H.nextSibling),H=H.firstChild):H=H.nextSibling}break;case se.PRECEDINGSIBLING:if(k.contextNode===k.virtualRoot)break;for(var H=k.contextNode.previousSibling;H!=null;H=H.previousSibling)A.nodeTest.matches(H,k)&&V.push(H);break;case se.SELF:A.nodeTest.matches(k.contextNode,k)&&V.push(k.contextNode);break;default:}return V};function ve(A,k,O){return le(A.predicates,k,Z.applyStep(A,k,O),d(rt,A.axis))}function qe(A,k,O){return w(c(ve.bind(null,O,A),k))}Z.applySteps=function(A,k,O){return a(qe.bind(null,k),O,A)},Z.prototype.applyFilter=function(A,k){if(!this.filter)return{nodes:[A.contextNode]};var O=this.filter.evaluate(A);if(!be.instance_of(O,Ce)){if(this.filterPredicates!=null&&this.filterPredicates.length>0||this.locationPath!=null)throw new Error("Path expression filter must evaluate to a nodeset if predicates or location path are used");return{nonNodes:O}}return{nodes:le(this.filterPredicates||[],k,O.toUnsortedArray(),!1)}},Z.applyLocationPath=function(A,k,O){if(!A)return O;var V=A.absolute?[Z.getRoot(k,O)]:O;return Z.applySteps(A.steps,k,V)},Z.prototype.evaluate=function(A){var k=B(new si,A),O=this.applyFilter(A,k);if("nonNodes"in O)return O.nonNodes;var V=new Ce;return V.addArray(Z.applyLocationPath(this.locationPath,k,O.nodes)),V},Z.predicateMatches=function(A,k){var O=A.evaluate(k);return be.instance_of(O,Ee)?k.contextPosition===O.numberValue():O.booleanValue()},Z.predicateString=function(A){return g("[","]",A.toString())},Z.predicatesString=function(A){return h("",c(Z.predicateString,A))},Z.prototype.toString=function(){if(this.filter!=null){var A=f(this.filter);return be.instance_of(this.filter,we)?g("'","'",A):this.filterPredicates!=null&&this.filterPredicates.length?g("(",")",A)+Z.predicatesString(this.filterPredicates):this.locationPath!=null?A+(this.locationPath.absolute?"":"/")+f(this.locationPath):A}return f(this.locationPath)},Z.getOwnerElement=function(A){if(A.ownerElement)return A.ownerElement;try{if(A.selectSingleNode)return A.selectSingleNode("..")}catch{}for(var k=A.nodeType==C.DOCUMENT_NODE?A:A.ownerDocument,O=k.getElementsByTagName("*"),V=0;V<O.length;V++)for(var H=O.item(V),W=H.attributes,ue=0;ue<W.length;ue++){var Re=W.item(ue);if(Re===A)return H}return null},_e.prototype=new Object,_e.prototype.constructor=_e,_e.superclass=Object.prototype;function _e(A,k){arguments.length>0&&this.init(A,k)}_e.prototype.init=function(A,k){this.absolute=A,this.steps=k},_e.prototype.toString=function(){return(this.absolute?"/":"")+c(f,this.steps).join("/")},se.prototype=new Object,se.prototype.constructor=se,se.superclass=Object.prototype;function se(A,k,O){arguments.length>0&&this.init(A,k,O)}se.prototype.init=function(A,k,O){this.axis=A,this.nodeTest=k,this.predicates=O},se.prototype.toString=function(){return se.STEPNAMES[this.axis]+"::"+this.nodeTest.toString()+Z.predicatesString(this.predicates)},se.ANCESTOR=0,se.ANCESTORORSELF=1,se.ATTRIBUTE=2,se.CHILD=3,se.DESCENDANT=4,se.DESCENDANTORSELF=5,se.FOLLOWING=6,se.FOLLOWINGSIBLING=7,se.NAMESPACE=8,se.PARENT=9,se.PRECEDING=10,se.PRECEDINGSIBLING=11,se.SELF=12,se.STEPNAMES=a(function(A,k){return A[k[0]]=k[1],A},{},[[se.ANCESTOR,"ancestor"],[se.ANCESTORORSELF,"ancestor-or-self"],[se.ATTRIBUTE,"attribute"],[se.CHILD,"child"],[se.DESCENDANT,"descendant"],[se.DESCENDANTORSELF,"descendant-or-self"],[se.FOLLOWING,"following"],[se.FOLLOWINGSIBLING,"following-sibling"],[se.NAMESPACE,"namespace"],[se.PARENT,"parent"],[se.PRECEDING,"preceding"],[se.PRECEDINGSIBLING,"preceding-sibling"],[se.SELF,"self"]]);var rt=[se.ANCESTOR,se.ANCESTORORSELF,se.PARENT,se.PRECEDING,se.PRECEDINGSIBLING];ce.prototype=new Object,ce.prototype.constructor=ce,ce.superclass=Object.prototype;function ce(A,k){arguments.length>0&&this.init(A,k)}ce.prototype.init=function(A,k){this.type=A,this.value=k},ce.prototype.toString=function(){return"<unknown nodetest type>"},ce.prototype.matches=function(A,k){console.warn("unknown node test type")},ce.NAMETESTANY=0,ce.NAMETESTPREFIXANY=1,ce.NAMETESTQNAME=2,ce.COMMENT=3,ce.TEXT=4,ce.PI=5,ce.NODE=6,ce.isNodeType=function(A){return function(k){return d(A,k.nodeType)}},ce.makeNodeTestType=function(A,k,O){var V=O||function(){};return V.prototype=new ce(A),V.prototype.constructor=V,B(V.prototype,k),V},ce.makeNodeTypeTest=function(A,k,O){return new(ce.makeNodeTestType(A,{matches:ce.isNodeType(k),toString:u(O)}))},ce.hasPrefix=function(A){return A.prefix||(A.nodeName||A.tagName).indexOf(":")!==-1},ce.isElementOrAttribute=ce.isNodeType([1,2]),ce.nameSpaceMatches=function(A,k,O){var V=O.namespaceURI||"";if(!A)return!V||k.allowAnyNamespaceForNoPrefix&&!ce.hasPrefix(O);var H=k.namespaceResolver.getNamespace(A,k.expressionContextNode);if(H==null)throw new Error("Cannot resolve QName "+A);return H===V},ce.localNameMatches=function(A,k,O){var V=O.localName||O.nodeName;return k.caseInsensitive?A.toLowerCase()===V.toLowerCase():A===V},ce.NameTestPrefixAny=ce.makeNodeTestType(ce.NAMETESTPREFIXANY,{matches:function(A,k){return ce.isElementOrAttribute(A)&&ce.nameSpaceMatches(this.prefix,k,A)},toString:function(){return this.prefix+":*"}},function(k){this.prefix=k}),ce.NameTestQName=ce.makeNodeTestType(ce.NAMETESTQNAME,{matches:function(A,k){return ce.isNodeType([C.ELEMENT_NODE,C.ATTRIBUTE_NODE,C.NAMESPACE_NODE])(A)&&ce.nameSpaceMatches(this.prefix,k,A)&&ce.localNameMatches(this.localName,k,A)},toString:function(){return this.name}},function(k){var O=k.split(":");this.name=k,this.prefix=O.length>1?O[0]:null,this.localName=O[O.length>1?1:0]}),ce.PITest=ce.makeNodeTestType(ce.PI,{matches:function(A,k){return ce.isNodeType([C.PROCESSING_INSTRUCTION_NODE])(A)&&(A.target||A.nodeName)===this.name},toString:function(){return g('processing-instruction("','")',this.name)}},function(A){this.name=A}),ce.nameTestAny=ce.makeNodeTypeTest(ce.NAMETESTANY,[C.ELEMENT_NODE,C.ATTRIBUTE_NODE,C.NAMESPACE_NODE],"*"),ce.textTest=ce.makeNodeTypeTest(ce.TEXT,[C.TEXT_NODE,C.CDATA_SECTION_NODE],"text()"),ce.commentTest=ce.makeNodeTypeTest(ce.COMMENT,[C.COMMENT_NODE],"comment()"),ce.nodeTest=ce.makeNodeTypeTest(ce.NODE,[C.ELEMENT_NODE,C.ATTRIBUTE_NODE,C.TEXT_NODE,C.CDATA_SECTION_NODE,C.PROCESSING_INSTRUCTION_NODE,C.COMMENT_NODE,C.DOCUMENT_NODE],"node()"),ce.anyPiTest=ce.makeNodeTypeTest(ce.PI,[C.PROCESSING_INSTRUCTION_NODE],"processing-instruction()"),dr.prototype=new U,dr.prototype.constructor=dr,dr.superclass=U.prototype;function dr(A){arguments.length>0&&this.init(A)}dr.prototype.init=function(A){this.variable=A},dr.prototype.toString=function(){return"$"+this.variable},dr.prototype.evaluate=function(A){var k=be.resolveQName(this.variable,A.namespaceResolver,A.contextNode,!1);if(k[0]==null)throw new Error("Cannot resolve QName "+fn);var O=A.variableResolver.getVariable(k[1],k[0]);if(!O)throw hi.fromMessage("Undeclared variable: "+this.toString());return O},Mr.prototype=new U,Mr.prototype.constructor=Mr,Mr.superclass=U.prototype;function Mr(A,k){arguments.length>0&&this.init(A,k)}Mr.prototype.init=function(A,k){this.functionName=A,this.arguments=k},Mr.prototype.toString=function(){for(var A=this.functionName+"(",k=0;k<this.arguments.length;k++)k>0&&(A+=", "),A+=this.arguments[k].toString();return A+")"},Mr.prototype.evaluate=function(A){var k=tr.getFunctionFromContext(this.functionName,A);if(!k)throw new Error("Unknown function "+this.functionName);var O=[A].concat(this.arguments);return k.apply(A.functionResolver.thisArg,O)};var at=new Object;at.equals=function(A,k){return A.equals(k)},at.notequal=function(A,k){return A.notequal(k)},at.lessthan=function(A,k){return A.lessthan(k)},at.greaterthan=function(A,k){return A.greaterthan(k)},at.lessthanorequal=function(A,k){return A.lessthanorequal(k)},at.greaterthanorequal=function(A,k){return A.greaterthanorequal(k)},we.prototype=new U,we.prototype.constructor=we,we.superclass=U.prototype;function we(A){arguments.length>0&&this.init(A)}we.prototype.init=function(A){this.str=String(A)},we.prototype.toString=function(){return this.str},we.prototype.evaluate=function(A){return this},we.prototype.string=function(){return this},we.prototype.number=function(){return new Ee(this.str)},we.prototype.bool=function(){return new Se(this.str)},we.prototype.nodeset=function(){throw new Error("Cannot convert string to nodeset")},we.prototype.stringValue=function(){return this.str},we.prototype.numberValue=function(){return this.number().numberValue()},we.prototype.booleanValue=function(){return this.bool().booleanValue()},we.prototype.equals=function(A){return be.instance_of(A,Se)?this.bool().equals(A):be.instance_of(A,Ee)?this.number().equals(A):be.instance_of(A,Ce)?A.compareWithString(this,at.equals):new Se(this.str==A.str)},we.prototype.notequal=function(A){return be.instance_of(A,Se)?this.bool().notequal(A):be.instance_of(A,Ee)?this.number().notequal(A):be.instance_of(A,Ce)?A.compareWithString(this,at.notequal):new Se(this.str!=A.str)},we.prototype.lessthan=function(A){return this.number().lessthan(A)},we.prototype.greaterthan=function(A){return this.number().greaterthan(A)},we.prototype.lessthanorequal=function(A){return this.number().lessthanorequal(A)},we.prototype.greaterthanorequal=function(A){return this.number().greaterthanorequal(A)},Ee.prototype=new U,Ee.prototype.constructor=Ee,Ee.superclass=U.prototype;function Ee(A){arguments.length>0&&this.init(A)}Ee.prototype.init=function(A){this.num=typeof A=="string"?this.parse(A):Number(A)},Ee.prototype.numberFormat=/^\s*-?[0-9]*\.?[0-9]+\s*$/,Ee.prototype.parse=function(A){return this.numberFormat.test(A)?parseFloat(A):Number.NaN};function Ji(A){for(var k=A.split("e-"),O=k[0].replace(".",""),V=Number(k[1]),H=0;H<V-1;H+=1)O="0"+O;return"0."+O}function vo(A){for(var k=A.split("e"),O=k[0].replace(".",""),V=Number(k[1]),H=V+1-O.length,W=0;W<H;W+=1)O+="0";return O}Ee.prototype.toString=function(){var A=this.num.toString();return A.indexOf("e-")!==-1?Ji(A):A.indexOf("e")!==-1?vo(A):A},Ee.prototype.evaluate=function(A){return this},Ee.prototype.string=function(){return new we(this.toString())},Ee.prototype.number=function(){return this},Ee.prototype.bool=function(){return new Se(this.num)},Ee.prototype.nodeset=function(){throw new Error("Cannot convert number to nodeset")},Ee.prototype.stringValue=function(){return this.string().stringValue()},Ee.prototype.numberValue=function(){return this.num},Ee.prototype.booleanValue=function(){return this.bool().booleanValue()},Ee.prototype.negate=function(){return new Ee(-this.num)},Ee.prototype.equals=function(A){return be.instance_of(A,Se)?this.bool().equals(A):be.instance_of(A,we)?this.equals(A.number()):be.instance_of(A,Ce)?A.compareWithNumber(this,at.equals):new Se(this.num==A.num)},Ee.prototype.notequal=function(A){return be.instance_of(A,Se)?this.bool().notequal(A):be.instance_of(A,we)?this.notequal(A.number()):be.instance_of(A,Ce)?A.compareWithNumber(this,at.notequal):new Se(this.num!=A.num)},Ee.prototype.lessthan=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,at.greaterthan):be.instance_of(A,Se)||be.instance_of(A,we)?this.lessthan(A.number()):new Se(this.num<A.num)},Ee.prototype.greaterthan=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,at.lessthan):be.instance_of(A,Se)||be.instance_of(A,we)?this.greaterthan(A.number()):new Se(this.num>A.num)},Ee.prototype.lessthanorequal=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,at.greaterthanorequal):be.instance_of(A,Se)||be.instance_of(A,we)?this.lessthanorequal(A.number()):new Se(this.num<=A.num)},Ee.prototype.greaterthanorequal=function(A){return be.instance_of(A,Ce)?A.compareWithNumber(this,at.lessthanorequal):be.instance_of(A,Se)||be.instance_of(A,we)?this.greaterthanorequal(A.number()):new Se(this.num>=A.num)},Ee.prototype.plus=function(A){return new Ee(this.num+A.num)},Ee.prototype.minus=function(A){return new Ee(this.num-A.num)},Ee.prototype.multiply=function(A){return new Ee(this.num*A.num)},Ee.prototype.div=function(A){return new Ee(this.num/A.num)},Ee.prototype.mod=function(A){return new Ee(this.num%A.num)},Se.prototype=new U,Se.prototype.constructor=Se,Se.superclass=U.prototype;function Se(A){arguments.length>0&&this.init(A)}Se.prototype.init=function(A){this.b=!!A},Se.prototype.toString=function(){return this.b.toString()},Se.prototype.evaluate=function(A){return this},Se.prototype.string=function(){return new we(this.b)},Se.prototype.number=function(){return new Ee(this.b)},Se.prototype.bool=function(){return this},Se.prototype.nodeset=function(){throw new Error("Cannot convert boolean to nodeset")},Se.prototype.stringValue=function(){return this.string().stringValue()},Se.prototype.numberValue=function(){return this.number().numberValue()},Se.prototype.booleanValue=function(){return this.b},Se.prototype.not=function(){return new Se(!this.b)},Se.prototype.equals=function(A){return be.instance_of(A,we)||be.instance_of(A,Ee)?this.equals(A.bool()):be.instance_of(A,Ce)?A.compareWithBoolean(this,at.equals):new Se(this.b==A.b)},Se.prototype.notequal=function(A){return be.instance_of(A,we)||be.instance_of(A,Ee)?this.notequal(A.bool()):be.instance_of(A,Ce)?A.compareWithBoolean(this,at.notequal):new Se(this.b!=A.b)},Se.prototype.lessthan=function(A){return this.number().lessthan(A)},Se.prototype.greaterthan=function(A){return this.number().greaterthan(A)},Se.prototype.lessthanorequal=function(A){return this.number().lessthanorequal(A)},Se.prototype.greaterthanorequal=function(A){return this.number().greaterthanorequal(A)},Se.true_=new Se(!0),Se.false_=new Se(!1),Dt.prototype=new Object,Dt.prototype.constructor=Dt,Dt.superclass=Object.prototype;function Dt(A){this.init(A)}Dt.prototype.init=function(A){this.left=null,this.right=null,this.node=A,this.depth=1},Dt.prototype.balance=function(){var A=this.left==null?0:this.left.depth,k=this.right==null?0:this.right.depth;if(A>k+1){var O=this.left.left==null?0:this.left.left.depth,V=this.left.right==null?0:this.left.right.depth;O<V&&this.left.rotateRR(),this.rotateLL()}else if(A+1<k){var H=this.right.right==null?0:this.right.right.depth,W=this.right.left==null?0:this.right.left.depth;W>H&&this.right.rotateLL(),this.rotateRR()}},Dt.prototype.rotateLL=function(){var A=this.node,k=this.right;this.node=this.left.node,this.right=this.left,this.left=this.left.left,this.right.left=this.right.right,this.right.right=k,this.right.node=A,this.right.updateInNewLocation(),this.updateInNewLocation()},Dt.prototype.rotateRR=function(){var A=this.node,k=this.left;this.node=this.right.node,this.left=this.right,this.right=this.right.right,this.left.right=this.left.left,this.left.left=k,this.left.node=A,this.left.updateInNewLocation(),this.updateInNewLocation()},Dt.prototype.updateInNewLocation=function(){this.getDepthFromChildren()},Dt.prototype.getDepthFromChildren=function(){this.depth=this.node==null?0:1,this.left!=null&&(this.depth=this.left.depth+1),this.right!=null&&this.depth<=this.right.depth&&(this.depth=this.right.depth+1)};function vs(A,k){if(A===k)return 0;if(A.compareDocumentPosition){var O=A.compareDocumentPosition(k);return O&1||O&10?1:O&20?-1:0}for(var V=0,H=0,W=A;W!=null;W=W.parentNode||W.ownerElement)V++;for(var ue=k;ue!=null;ue=ue.parentNode||ue.ownerElement)H++;if(V>H){for(;V>H;)A=A.parentNode||A.ownerElement,V--;if(A===k)return 1}else if(H>V){for(;H>V;)k=k.parentNode||k.ownerElement,H--;if(A===k)return-1}for(var Re=A.parentNode||A.ownerElement,Ve=k.parentNode||k.ownerElement;Re!==Ve;)A=Re,k=Ve,Re=A.parentNode||A.ownerElement,Ve=k.parentNode||k.ownerElement;var Ie=xl(A),Fe=xl(k);if(Ie&&!Fe)return-1;if(!Ie&&Fe)return 1;if(A.isXPathNamespace){if(A.nodeValue===Q.XML_NAMESPACE_URI||!k.isXPathNamespace)return-1;if(k.nodeValue===Q.XML_NAMESPACE_URI)return 1}else if(k.isXPathNamespace)return 1;if(Re)for(var In=Ie?Re.attributes:Re.childNodes,ks=In.length,Ss=A.baseNode||A,Ds=k.baseNode||k,Vi=0;Vi<ks;Vi+=1){var Hn=In[Vi];if(Hn===Ss)return-1;if(Hn===Ds)return 1}throw new Error("Unexpected: could not determine node order")}Dt.prototype.add=function(A){if(A===this.node)return!1;var k=vs(A,this.node),O=!1;return k==-1?this.left==null?(this.left=new Dt(A),O=!0):(O=this.left.add(A),O&&this.balance()):k==1&&(this.right==null?(this.right=new Dt(A),O=!0):(O=this.right.add(A),O&&this.balance())),O&&this.getDepthFromChildren(),O},Ce.prototype=new U,Ce.prototype.constructor=Ce,Ce.superclass=U.prototype;function Ce(){this.init()}Ce.prototype.init=function(){this.tree=null,this.nodes=[],this.size=0},Ce.prototype.toString=function(){var A=this.first();return A==null?"":this.stringForNode(A)},Ce.prototype.evaluate=function(A){return this},Ce.prototype.string=function(){return new we(this.toString())},Ce.prototype.stringValue=function(){return this.toString()},Ce.prototype.number=function(){return new Ee(this.string())},Ce.prototype.numberValue=function(){return Number(this.string())},Ce.prototype.bool=function(){return new Se(this.booleanValue())},Ce.prototype.booleanValue=function(){return!!this.size},Ce.prototype.nodeset=function(){return this},Ce.prototype.stringForNode=function(A){return A.nodeType==C.DOCUMENT_NODE||A.nodeType==C.ELEMENT_NODE||A.nodeType===C.DOCUMENT_FRAGMENT_NODE?this.stringForContainerNode(A):A.nodeType===C.ATTRIBUTE_NODE?A.value||A.nodeValue:A.isNamespaceNode?A.namespace:A.nodeValue},Ce.prototype.stringForContainerNode=function(A){for(var k="",O=A.firstChild;O!=null;O=O.nextSibling){var V=O.nodeType;(V===1||V===3||V===4||V===9||V===11)&&(k+=this.stringForNode(O))}return k},Ce.prototype.buildTree=function(){if(!this.tree&&this.nodes.length){this.tree=new Dt(this.nodes[0]);for(var A=1;A<this.nodes.length;A+=1)this.tree.add(this.nodes[A])}return this.tree},Ce.prototype.first=function(){var A=this.buildTree();if(A==null)return null;for(;A.left!=null;)A=A.left;return A.node},Ce.prototype.add=function(A){for(var k=0;k<this.nodes.length;k+=1)if(A===this.nodes[k])return;this.tree=null,this.nodes.push(A),this.size+=1},Ce.prototype.addArray=function(A){var k=this;o(function(O){k.add(O)},A)},Ce.prototype.toArray=function(){var A=[];return this.toArrayRec(this.buildTree(),A),A},Ce.prototype.toArrayRec=function(A,k){A!=null&&(this.toArrayRec(A.left,k),k.push(A.node),this.toArrayRec(A.right,k))},Ce.prototype.toUnsortedArray=function(){return this.nodes.slice()},Ce.prototype.compareWithString=function(A,k){for(var O=this.toUnsortedArray(),V=0;V<O.length;V++){var H=O[V],W=new we(this.stringForNode(H)),ue=k(W,A);if(ue.booleanValue())return ue}return new Se(!1)},Ce.prototype.compareWithNumber=function(A,k){for(var O=this.toUnsortedArray(),V=0;V<O.length;V++){var H=O[V],W=new Ee(this.stringForNode(H)),ue=k(W,A);if(ue.booleanValue())return ue}return new Se(!1)},Ce.prototype.compareWithBoolean=function(A,k){return k(this.bool(),A)},Ce.prototype.compareWithNodeSet=function(A,k){for(var O=this.toUnsortedArray(),V=function(Re,Ve){return k(Ve,Re)},H=0;H<O.length;H++){var W=new we(this.stringForNode(O[H])),ue=A.compareWithString(W,V);if(ue.booleanValue())return ue}return new Se(!1)},Ce.compareWith=s(function(A,k){return be.instance_of(k,we)?this.compareWithString(k,A):be.instance_of(k,Ee)?this.compareWithNumber(k,A):be.instance_of(k,Se)?this.compareWithBoolean(k,A):this.compareWithNodeSet(k,A)}),Ce.prototype.equals=Ce.compareWith(at.equals),Ce.prototype.notequal=Ce.compareWith(at.notequal),Ce.prototype.lessthan=Ce.compareWith(at.lessthan),Ce.prototype.greaterthan=Ce.compareWith(at.greaterthan),Ce.prototype.lessthanorequal=Ce.compareWith(at.lessthanorequal),Ce.prototype.greaterthanorequal=Ce.compareWith(at.greaterthanorequal),Ce.prototype.union=function(A){var k=new Ce;return k.addArray(this.toUnsortedArray()),k.addArray(A.toUnsortedArray()),k},ji.prototype=new Object,ji.prototype.constructor=ji,ji.superclass=Object.prototype;function ji(A,k,O,V){this.isXPathNamespace=!0,this.baseNode=k,this.ownerDocument=V.ownerDocument,this.nodeName=A,this.prefix=A,this.localName=A,this.namespaceURI=null,this.nodeValue=O,this.ownerElement=V,this.nodeType=C.NAMESPACE_NODE}ji.prototype.toString=function(){return'{ "'+this.prefix+'", "'+this.namespaceURI+'" }'},si.prototype=new Object,si.prototype.constructor=si,si.superclass=Object.prototype;function si(A,k,O){this.variableResolver=A??new wr,this.namespaceResolver=k??new ur,this.functionResolver=O??new tr}si.prototype.extend=function(A){return B(new si,this,A)},wr.prototype=new Object,wr.prototype.constructor=wr,wr.superclass=Object.prototype;function wr(){}wr.prototype.getVariable=function(A,k){return null},tr.prototype=new Object,tr.prototype.constructor=tr,tr.superclass=Object.prototype;function tr(A){this.thisArg=A??Qe,this.functions=new Object,this.addStandardFunctions()}tr.prototype.addStandardFunctions=function(){this.functions["{}last"]=Qe.last,this.functions["{}position"]=Qe.position,this.functions["{}count"]=Qe.count,this.functions["{}id"]=Qe.id,this.functions["{}local-name"]=Qe.localName,this.functions["{}namespace-uri"]=Qe.namespaceURI,this.functions["{}name"]=Qe.name,this.functions["{}string"]=Qe.string,this.functions["{}concat"]=Qe.concat,this.functions["{}starts-with"]=Qe.startsWith,this.functions["{}contains"]=Qe.contains,this.functions["{}substring-before"]=Qe.substringBefore,this.functions["{}substring-after"]=Qe.substringAfter,this.functions["{}substring"]=Qe.substring,this.functions["{}string-length"]=Qe.stringLength,this.functions["{}normalize-space"]=Qe.normalizeSpace,this.functions["{}translate"]=Qe.translate,this.functions["{}boolean"]=Qe.boolean_,this.functions["{}not"]=Qe.not,this.functions["{}true"]=Qe.true_,this.functions["{}false"]=Qe.false_,this.functions["{}lang"]=Qe.lang,this.functions["{}number"]=Qe.number,this.functions["{}sum"]=Qe.sum,this.functions["{}floor"]=Qe.floor,this.functions["{}ceiling"]=Qe.ceiling,this.functions["{}round"]=Qe.round},tr.prototype.addFunction=function(A,k,O){this.functions["{"+A+"}"+k]=O},tr.getFunctionFromContext=function(A,k){var O=be.resolveQName(A,k.namespaceResolver,k.contextNode,!1);if(O[0]===null)throw new Error("Cannot resolve QName "+name);return k.functionResolver.getFunction(O[1],O[0])},tr.prototype.getFunction=function(A,k){return this.functions["{"+k+"}"+A]},ur.prototype=new Object,ur.prototype.constructor=ur,ur.superclass=Object.prototype;function ur(){}ur.prototype.getNamespace=function(A,k){if(A=="xml")return Q.XML_NAMESPACE_URI;if(A=="xmlns")return Q.XMLNS_NAMESPACE_URI;for(k.nodeType==C.DOCUMENT_NODE?k=k.documentElement:k.nodeType==C.ATTRIBUTE_NODE?k=Z.getOwnerElement(k):k.nodeType!=C.ELEMENT_NODE&&(k=k.parentNode);k!=null&&k.nodeType==C.ELEMENT_NODE;){for(var O=k.attributes,V=0;V<O.length;V++){var H=O.item(V),W=H.name||H.nodeName;if(W==="xmlns"&&A===""||W==="xmlns:"+A)return String(H.value||H.nodeValue)}k=k.parentNode}return null};var Qe=new Object;Qe.last=function(A){if(arguments.length!=1)throw new Error("Function last expects ()");return new Ee(A.contextSize)},Qe.position=function(A){if(arguments.length!=1)throw new Error("Function position expects ()");return new Ee(A.contextPosition)},Qe.count=function(){var A=arguments[0],k;if(arguments.length!=2||!be.instance_of(k=arguments[1].evaluate(A),Ce))throw new Error("Function count expects (node-set)");return new Ee(k.size)},Qe.id=function(){var A=arguments[0],k;if(arguments.length!=2)throw new Error("Function id expects (object)");k=arguments[1].evaluate(A),be.instance_of(k,Ce)?k=k.toArray().join(" "):k=k.stringValue();for(var O=k.split(/[\x0d\x0a\x09\x20]+/),V=0,H=new Ce,W=A.contextNode.nodeType==C.DOCUMENT_NODE?A.contextNode:A.contextNode.ownerDocument,ue=0;ue<O.length;ue++){var Re;W.getElementById?Re=W.getElementById(O[ue]):Re=be.getElementById(W,O[ue]),Re!=null&&(H.add(Re),V++)}return H},Qe.localName=function(A,k){var O;if(arguments.length==1)O=A.contextNode;else if(arguments.length==2)O=k.evaluate(A).first();else throw new Error("Function local-name expects (node-set?)");return O==null?new we(""):new we(O.localName||O.baseName||O.target||O.nodeName||"")},Qe.namespaceURI=function(){var A=arguments[0],k;if(arguments.length==1)k=A.contextNode;else if(arguments.length==2)k=arguments[1].evaluate(A).first();else throw new Error("Function namespace-uri expects (node-set?)");return k==null?new we(""):new we(k.namespaceURI||"")},Qe.name=function(){var A=arguments[0],k;if(arguments.length==1)k=A.contextNode;else if(arguments.length==2)k=arguments[1].evaluate(A).first();else throw new Error("Function name expects (node-set?)");return k==null?new we(""):k.nodeType==C.ELEMENT_NODE?new we(k.nodeName):k.nodeType==C.ATTRIBUTE_NODE?new we(k.name||k.nodeName):k.nodeType===C.PROCESSING_INSTRUCTION_NODE?new we(k.target||k.nodeName):k.localName==null?new we(""):new we(k.localName)},Qe.string=function(){var A=arguments[0];if(arguments.length==1)return new we(Ce.prototype.stringForNode(A.contextNode));if(arguments.length==2)return arguments[1].evaluate(A).string();throw new Error("Function string expects (object?)")},Qe.concat=function(A){if(arguments.length<3)throw new Error("Function concat expects (string, string[, string]*)");for(var k="",O=1;O<arguments.length;O++)k+=arguments[O].evaluate(A).stringValue();return new we(k)},Qe.startsWith=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function startsWith expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();return new Se(k.substring(0,O.length)==O)},Qe.contains=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function contains expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();return new Se(k.indexOf(O)!==-1)},Qe.substringBefore=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function substring-before expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();return new we(k.substring(0,k.indexOf(O)))},Qe.substringAfter=function(){var A=arguments[0];if(arguments.length!=3)throw new Error("Function substring-after expects (string, string)");var k=arguments[1].evaluate(A).stringValue(),O=arguments[2].evaluate(A).stringValue();if(O.length==0)return new we(k);var V=k.indexOf(O);return V==-1?new we(""):new we(k.substring(V+O.length))},Qe.substring=function(){var A=arguments[0];if(!(arguments.length==3||arguments.length==4))throw new Error("Function substring expects (string, number, number?)");var k=arguments[1].evaluate(A).stringValue(),O=Math.round(arguments[2].evaluate(A).numberValue())-1,V=arguments.length==4?O+Math.round(arguments[3].evaluate(A).numberValue()):void 0;return new we(k.substring(O,V))},Qe.stringLength=function(){var A=arguments[0],k;if(arguments.length==1)k=Ce.prototype.stringForNode(A.contextNode);else if(arguments.length==2)k=arguments[1].evaluate(A).stringValue();else throw new Error("Function string-length expects (string?)");return new Ee(k.length)},Qe.normalizeSpace=function(){var A=arguments[0],k;if(arguments.length==1)k=Ce.prototype.stringForNode(A.contextNode);else if(arguments.length==2)k=arguments[1].evaluate(A).stringValue();else throw new Error("Function normalize-space expects (string?)");for(var O=0,V=k.length-1;be.isSpace(k.charCodeAt(V));)V--;for(var H="";O<=V&&be.isSpace(k.charCodeAt(O));)O++;for(;O<=V;)if(be.isSpace(k.charCodeAt(O)))for(H+=" ";O<=V&&be.isSpace(k.charCodeAt(O));)O++;else H+=k.charAt(O),O++;return new we(H)},Qe.translate=function(A,k,O,V){if(arguments.length!=4)throw new Error("Function translate expects (string, string, string)");var H=k.evaluate(A).stringValue(),W=O.evaluate(A).stringValue(),ue=V.evaluate(A).stringValue(),Re=a(function(Ie,Fe,In){return Fe in Ie||(Ie[Fe]=In>ue.length?"":ue[In]),Ie},{},W),Ve=h("",c(function(Ie){return Ie in Re?Re[Ie]:Ie},H));return new we(Ve)},Qe.boolean_=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function boolean expects (object)");return arguments[1].evaluate(A).bool()},Qe.not=function(A,k){if(arguments.length!=2)throw new Error("Function not expects (object)");return k.evaluate(A).bool().not()},Qe.true_=function(){if(arguments.length!=1)throw new Error("Function true expects ()");return Se.true_},Qe.false_=function(){if(arguments.length!=1)throw new Error("Function false expects ()");return Se.false_},Qe.lang=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function lang expects (string)");for(var k,O=A.contextNode;O!=null&&O.nodeType!=C.DOCUMENT_NODE;O=O.parentNode){var V=O.getAttributeNS(Q.XML_NAMESPACE_URI,"lang");if(V!=null){k=String(V);break}}if(k==null)return Se.false_;var H=arguments[1].evaluate(A).stringValue();return new Se(k.substring(0,H.length)==H&&(k.length==H.length||k.charAt(H.length)=="-"))},Qe.number=function(){var A=arguments[0];if(!(arguments.length==1||arguments.length==2))throw new Error("Function number expects (object?)");return arguments.length==1?new Ee(Ce.prototype.stringForNode(A.contextNode)):arguments[1].evaluate(A).number()},Qe.sum=function(){var A=arguments[0],k;if(arguments.length!=2||!be.instance_of(k=arguments[1].evaluate(A),Ce))throw new Error("Function sum expects (node-set)");k=k.toUnsortedArray();for(var O=0,V=0;V<k.length;V++)O+=new Ee(Ce.prototype.stringForNode(k[V])).numberValue();return new Ee(O)},Qe.floor=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function floor expects (number)");return new Ee(Math.floor(arguments[1].evaluate(A).numberValue()))},Qe.ceiling=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function ceiling expects (number)");return new Ee(Math.ceil(arguments[1].evaluate(A).numberValue()))},Qe.round=function(){var A=arguments[0];if(arguments.length!=2)throw new Error("Function round expects (number)");return new Ee(Math.round(arguments[1].evaluate(A).numberValue()))};var be=new Object,xl=function(A){return A&&(A.nodeType===C.ATTRIBUTE_NODE||A.ownerElement||A.isXPathNamespace)};be.splitQName=function(A){var k=A.indexOf(":");return k==-1?[null,A]:[A.substring(0,k),A.substring(k+1)]},be.resolveQName=function(A,k,O,V){var H=be.splitQName(A);return H[0]!=null?H[0]=k.getNamespace(H[0],O):V?(H[0]=k.getNamespace("",O),H[0]==null&&(H[0]="")):H[0]="",H},be.isSpace=function(A){return A==9||A==13||A==10||A==32},be.isLetter=function(A){return A>=65&&A<=90||A>=97&&A<=122||A>=192&&A<=214||A>=216&&A<=246||A>=248&&A<=255||A>=256&&A<=305||A>=308&&A<=318||A>=321&&A<=328||A>=330&&A<=382||A>=384&&A<=451||A>=461&&A<=496||A>=500&&A<=501||A>=506&&A<=535||A>=592&&A<=680||A>=699&&A<=705||A==902||A>=904&&A<=906||A==908||A>=910&&A<=929||A>=931&&A<=974||A>=976&&A<=982||A==986||A==988||A==990||A==992||A>=994&&A<=1011||A>=1025&&A<=1036||A>=1038&&A<=1103||A>=1105&&A<=1116||A>=1118&&A<=1153||A>=1168&&A<=1220||A>=1223&&A<=1224||A>=1227&&A<=1228||A>=1232&&A<=1259||A>=1262&&A<=1269||A>=1272&&A<=1273||A>=1329&&A<=1366||A==1369||A>=1377&&A<=1414||A>=1488&&A<=1514||A>=1520&&A<=1522||A>=1569&&A<=1594||A>=1601&&A<=1610||A>=1649&&A<=1719||A>=1722&&A<=1726||A>=1728&&A<=1742||A>=1744&&A<=1747||A==1749||A>=1765&&A<=1766||A>=2309&&A<=2361||A==2365||A>=2392&&A<=2401||A>=2437&&A<=2444||A>=2447&&A<=2448||A>=2451&&A<=2472||A>=2474&&A<=2480||A==2482||A>=2486&&A<=2489||A>=2524&&A<=2525||A>=2527&&A<=2529||A>=2544&&A<=2545||A>=2565&&A<=2570||A>=2575&&A<=2576||A>=2579&&A<=2600||A>=2602&&A<=2608||A>=2610&&A<=2611||A>=2613&&A<=2614||A>=2616&&A<=2617||A>=2649&&A<=2652||A==2654||A>=2674&&A<=2676||A>=2693&&A<=2699||A==2701||A>=2703&&A<=2705||A>=2707&&A<=2728||A>=2730&&A<=2736||A>=2738&&A<=2739||A>=2741&&A<=2745||A==2749||A==2784||A>=2821&&A<=2828||A>=2831&&A<=2832||A>=2835&&A<=2856||A>=2858&&A<=2864||A>=2866&&A<=2867||A>=2870&&A<=2873||A==2877||A>=2908&&A<=2909||A>=2911&&A<=2913||A>=2949&&A<=2954||A>=2958&&A<=2960||A>=2962&&A<=2965||A>=2969&&A<=2970||A==2972||A>=2974&&A<=2975||A>=2979&&A<=2980||A>=2984&&A<=2986||A>=2990&&A<=2997||A>=2999&&A<=3001||A>=3077&&A<=3084||A>=3086&&A<=3088||A>=3090&&A<=3112||A>=3114&&A<=3123||A>=3125&&A<=3129||A>=3168&&A<=3169||A>=3205&&A<=3212||A>=3214&&A<=3216||A>=3218&&A<=3240||A>=3242&&A<=3251||A>=3253&&A<=3257||A==3294||A>=3296&&A<=3297||A>=3333&&A<=3340||A>=3342&&A<=3344||A>=3346&&A<=3368||A>=3370&&A<=3385||A>=3424&&A<=3425||A>=3585&&A<=3630||A==3632||A>=3634&&A<=3635||A>=3648&&A<=3653||A>=3713&&A<=3714||A==3716||A>=3719&&A<=3720||A==3722||A==3725||A>=3732&&A<=3735||A>=3737&&A<=3743||A>=3745&&A<=3747||A==3749||A==3751||A>=3754&&A<=3755||A>=3757&&A<=3758||A==3760||A>=3762&&A<=3763||A==3773||A>=3776&&A<=3780||A>=3904&&A<=3911||A>=3913&&A<=3945||A>=4256&&A<=4293||A>=4304&&A<=4342||A==4352||A>=4354&&A<=4355||A>=4357&&A<=4359||A==4361||A>=4363&&A<=4364||A>=4366&&A<=4370||A==4412||A==4414||A==4416||A==4428||A==4430||A==4432||A>=4436&&A<=4437||A==4441||A>=4447&&A<=4449||A==4451||A==4453||A==4455||A==4457||A>=4461&&A<=4462||A>=4466&&A<=4467||A==4469||A==4510||A==4520||A==4523||A>=4526&&A<=4527||A>=4535&&A<=4536||A==4538||A>=4540&&A<=4546||A==4587||A==4592||A==4601||A>=7680&&A<=7835||A>=7840&&A<=7929||A>=7936&&A<=7957||A>=7960&&A<=7965||A>=7968&&A<=8005||A>=8008&&A<=8013||A>=8016&&A<=8023||A==8025||A==8027||A==8029||A>=8031&&A<=8061||A>=8064&&A<=8116||A>=8118&&A<=8124||A==8126||A>=8130&&A<=8132||A>=8134&&A<=8140||A>=8144&&A<=8147||A>=8150&&A<=8155||A>=8160&&A<=8172||A>=8178&&A<=8180||A>=8182&&A<=8188||A==8486||A>=8490&&A<=8491||A==8494||A>=8576&&A<=8578||A>=12353&&A<=12436||A>=12449&&A<=12538||A>=12549&&A<=12588||A>=44032&&A<=55203||A>=19968&&A<=40869||A==12295||A>=12321&&A<=12329},be.isNCNameChar=function(A){return A>=48&&A<=57||A>=1632&&A<=1641||A>=1776&&A<=1785||A>=2406&&A<=2415||A>=2534&&A<=2543||A>=2662&&A<=2671||A>=2790&&A<=2799||A>=2918&&A<=2927||A>=3047&&A<=3055||A>=3174&&A<=3183||A>=3302&&A<=3311||A>=3430&&A<=3439||A>=3664&&A<=3673||A>=3792&&A<=3801||A>=3872&&A<=3881||A==46||A==45||A==95||be.isLetter(A)||A>=768&&A<=837||A>=864&&A<=865||A>=1155&&A<=1158||A>=1425&&A<=1441||A>=1443&&A<=1465||A>=1467&&A<=1469||A==1471||A>=1473&&A<=1474||A==1476||A>=1611&&A<=1618||A==1648||A>=1750&&A<=1756||A>=1757&&A<=1759||A>=1760&&A<=1764||A>=1767&&A<=1768||A>=1770&&A<=1773||A>=2305&&A<=2307||A==2364||A>=2366&&A<=2380||A==2381||A>=2385&&A<=2388||A>=2402&&A<=2403||A>=2433&&A<=2435||A==2492||A==2494||A==2495||A>=2496&&A<=2500||A>=2503&&A<=2504||A>=2507&&A<=2509||A==2519||A>=2530&&A<=2531||A==2562||A==2620||A==2622||A==2623||A>=2624&&A<=2626||A>=2631&&A<=2632||A>=2635&&A<=2637||A>=2672&&A<=2673||A>=2689&&A<=2691||A==2748||A>=2750&&A<=2757||A>=2759&&A<=2761||A>=2763&&A<=2765||A>=2817&&A<=2819||A==2876||A>=2878&&A<=2883||A>=2887&&A<=2888||A>=2891&&A<=2893||A>=2902&&A<=2903||A>=2946&&A<=2947||A>=3006&&A<=3010||A>=3014&&A<=3016||A>=3018&&A<=3021||A==3031||A>=3073&&A<=3075||A>=3134&&A<=3140||A>=3142&&A<=3144||A>=3146&&A<=3149||A>=3157&&A<=3158||A>=3202&&A<=3203||A>=3262&&A<=3268||A>=3270&&A<=3272||A>=3274&&A<=3277||A>=3285&&A<=3286||A>=3330&&A<=3331||A>=3390&&A<=3395||A>=3398&&A<=3400||A>=3402&&A<=3405||A==3415||A==3633||A>=3636&&A<=3642||A>=3655&&A<=3662||A==3761||A>=3764&&A<=3769||A>=3771&&A<=3772||A>=3784&&A<=3789||A>=3864&&A<=3865||A==3893||A==3895||A==3897||A==3902||A==3903||A>=3953&&A<=3972||A>=3974&&A<=3979||A>=3984&&A<=3989||A==3991||A>=3993&&A<=4013||A>=4017&&A<=4023||A==4025||A>=8400&&A<=8412||A==8417||A>=12330&&A<=12335||A==12441||A==12442||A==183||A==720||A==721||A==903||A==1600||A==3654||A==3782||A==12293||A>=12337&&A<=12341||A>=12445&&A<=12446||A>=12540&&A<=12542},be.coalesceText=function(A){for(var k=A.firstChild;k!=null;k=k.nextSibling)if(k.nodeType==C.TEXT_NODE||k.nodeType==C.CDATA_SECTION_NODE){var O=k.nodeValue,V=k;for(k=k.nextSibling;k!=null&&(k.nodeType==C.TEXT_NODE||k.nodeType==C.CDATA_SECTION_NODE);){O+=k.nodeValue;var H=k;k=k.nextSibling,H.parentNode.removeChild(H)}if(V.nodeType==C.CDATA_SECTION_NODE){var W=V.parentNode;if(V.nextSibling==null)W.removeChild(V),W.appendChild(W.ownerDocument.createTextNode(O));else{var ue=V.nextSibling;W.removeChild(V),W.insertBefore(W.ownerDocument.createTextNode(O),ue)}}else V.nodeValue=O;if(k==null)break}else k.nodeType==C.ELEMENT_NODE&&be.coalesceText(k)},be.instance_of=function(A,k){for(;A!=null;){if(A.constructor===k)return!0;if(A===Object)return!1;A=A.constructor.superclass}return!1},be.getElementById=function(A,k){if(A.nodeType==C.ELEMENT_NODE&&(A.getAttribute("id")==k||A.getAttributeNS(null,"id")==k))return A;for(var O=A.firstChild;O!=null;O=O.nextSibling){var V=be.getElementById(O,k);if(V!=null)return V}return null};var hi=(function(){function A(O,V){var H=V?": "+V.toString():"";switch(O){case k.INVALID_EXPRESSION_ERR:return"Invalid expression"+H;case k.TYPE_ERR:return"Type error"+H}return null}function k(O,V,H){var W=Error.call(this,A(O,V)||H);return W.code=O,W.exception=V,W}return k.prototype=Object.create(Error.prototype),k.prototype.constructor=k,k.superclass=Error,k.prototype.toString=function(){return this.message},k.fromMessage=function(O,V){return new k(null,V,O)},k.INVALID_EXPRESSION_ERR=51,k.TYPE_ERR=52,k})();Lr.prototype={},Lr.prototype.constructor=Lr,Lr.superclass=Object.prototype;function Lr(A,k,O){this.xpath=O.parse(A),this.context=new si,this.context.namespaceResolver=new Ln(k)}Lr.getOwnerDocument=function(A){return A.nodeType===C.DOCUMENT_NODE?A:A.ownerDocument},Lr.detectHtmlDom=function(A){if(!A)return!1;var k=Lr.getOwnerDocument(A);try{return k.implementation.hasFeature("HTML","2.0")}catch{return!0}},Lr.prototype.evaluate=function(A,k,O){this.context.expressionContextNode=A,this.context.caseInsensitive=Lr.detectHtmlDom(A);var V=this.xpath.evaluate(this.context);return new Le(V,k)},Ln.prototype={},Ln.prototype.constructor=Ln,Ln.superclass=Object.prototype;function Ln(A){this.xpathNSResolver=A}Ln.prototype.getNamespace=function(A,k){return this.xpathNSResolver==null?null:this.xpathNSResolver.lookupNamespaceURI(A)},yn.prototype={},yn.prototype.constructor=yn,yn.superclass=Object.prototype;function yn(A){this.node=A,this.namespaceResolver=new ur}yn.prototype.lookupNamespaceURI=function(A){return this.namespaceResolver.getNamespace(A,this.node)},Le.prototype={},Le.prototype.constructor=Le,Le.superclass=Object.prototype;function Le(A,k){switch(k==Le.ANY_TYPE&&(A.constructor===we?k=Le.STRING_TYPE:A.constructor===Ee?k=Le.NUMBER_TYPE:A.constructor===Se?k=Le.BOOLEAN_TYPE:A.constructor===Ce&&(k=Le.UNORDERED_NODE_ITERATOR_TYPE)),this.resultType=k,k){case Le.NUMBER_TYPE:this.numberValue=A.numberValue();return;case Le.STRING_TYPE:this.stringValue=A.stringValue();return;case Le.BOOLEAN_TYPE:this.booleanValue=A.booleanValue();return;case Le.ANY_UNORDERED_NODE_TYPE:case Le.FIRST_ORDERED_NODE_TYPE:if(A.constructor===Ce){this.singleNodeValue=A.first();return}break;case Le.UNORDERED_NODE_ITERATOR_TYPE:case Le.ORDERED_NODE_ITERATOR_TYPE:if(A.constructor===Ce){this.invalidIteratorState=!1,this.nodes=A.toArray(),this.iteratorIndex=0;return}break;case Le.UNORDERED_NODE_SNAPSHOT_TYPE:case Le.ORDERED_NODE_SNAPSHOT_TYPE:if(A.constructor===Ce){this.nodes=A.toArray(),this.snapshotLength=this.nodes.length;return}break}throw new hi(hi.TYPE_ERR)}Le.prototype.iterateNext=function(){if(this.resultType!=Le.UNORDERED_NODE_ITERATOR_TYPE&&this.resultType!=Le.ORDERED_NODE_ITERATOR_TYPE)throw new hi(hi.TYPE_ERR);return this.nodes[this.iteratorIndex++]},Le.prototype.snapshotItem=function(A){if(this.resultType!=Le.UNORDERED_NODE_SNAPSHOT_TYPE&&this.resultType!=Le.ORDERED_NODE_SNAPSHOT_TYPE)throw new hi(hi.TYPE_ERR);return this.nodes[A]},Le.ANY_TYPE=0,Le.NUMBER_TYPE=1,Le.STRING_TYPE=2,Le.BOOLEAN_TYPE=3,Le.UNORDERED_NODE_ITERATOR_TYPE=4,Le.ORDERED_NODE_ITERATOR_TYPE=5,Le.UNORDERED_NODE_SNAPSHOT_TYPE=6,Le.ORDERED_NODE_SNAPSHOT_TYPE=7,Le.ANY_UNORDERED_NODE_TYPE=8,Le.FIRST_ORDERED_NODE_TYPE=9;function ic(A,k){A.createExpression=function(O,V){try{return new Lr(O,V,k)}catch(H){throw new hi(hi.INVALID_EXPRESSION_ERR,H)}},A.createNSResolver=function(O){return new yn(O)},A.evaluate=function(O,V,H,W,ue){if(W<0||W>9)throw{code:0,toString:function(){return"Request type not supported"}};return A.createExpression(O,H,k).evaluate(V,W,ue)}}try{var $i=!0;try{document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("XPath",null)&&($i=!1)}catch{}$i&&ic(document,new x)}catch{}ic(r,new x),(function(){var A=new x,k=new ur,O=new tr,V=new wr;function H(he){return{getNamespace:function(Ze,Hr){var wn=he(Ze,Hr);return wn||k.getNamespace(Ze,Hr)}}}function W(he){return H(he.getNamespace.bind(he))}function ue(he){return H(function(Ze){return he[Ze]})}function Re(he){return he&&typeof he.getNamespace=="function"?W(he):typeof he=="function"?H(he):typeof he=="object"?ue(he):k}function Ve(he){if(he===null||typeof he>"u"||he instanceof we||he instanceof Se||he instanceof Ee||he instanceof Ce)return he;switch(typeof he){case"string":return new we(he);case"boolean":return new Se(he);case"number":return new Ee(he)}var Ze=new Ce;return Ze.addArray([].concat(he)),Ze}function Ie(he){return function(Ze){var Hr=Array.prototype.slice.call(arguments,1).map(function(wx){return wx.evaluate(Ze)}),wn=he.apply(this,[].concat(Ze,Hr));return Ve(wn)}}function Fe(he){return{getFunction:function(Ze,Hr){var wn=he(Ze,Hr);return wn?Ie(wn):O.getFunction(Ze,Hr)}}}function In(he){return Fe(he.getFunction.bind(he))}function ks(he){return Fe(function(Ze){return he[Ze]})}function Ss(he){return he&&typeof he.getFunction=="function"?In(he):typeof he=="function"?Fe(he):typeof he=="object"?ks(he):O}function Ds(he){return{getVariable:function(Ze,Hr){var wn=he(Ze,Hr);return Ve(wn)}}}function Vi(he){if(he){if(typeof he.getVariable=="function")return Ds(he.getVariable.bind(he));if(typeof he=="function")return Ds(he);if(typeof he=="object")return Ds(function(Ze){return he[Ze]})}return V}function Hn(he,Ze,Hr){he in Hr&&(Ze[he]=Hr[he])}function B0(he){var Ze=new si;return he?(Ze.namespaceResolver=Re(he.namespaces),Ze.functionResolver=Ss(he.functions),Ze.variableResolver=Vi(he.variables),Ze.expressionContextNode=he.node,Hn("allowAnyNamespaceForNoPrefix",Ze,he),Hn("isHtml",Ze,he)):Ze.namespaceResolver=k,Ze}function ku(he,Ze){var Hr=B0(Ze);return he.evaluate(Hr)}var yx={evaluate:function(he){return ku(this.expression,he)},evaluateNumber:function(he){return this.evaluate(he).numberValue()},evaluateString:function(he){return this.evaluate(he).stringValue()},evaluateBoolean:function(he){return this.evaluate(he).booleanValue()},evaluateNodeSet:function(he){return this.evaluate(he).nodeset()},select:function(he){return this.evaluateNodeSet(he).toArray()},select1:function(he){return this.select(he)[0]}};function Ix(he){var Ze=A.parse(he);return Object.create(yx,{expression:{value:Ze}})}r.parse=Ix})(),B(r,{XPath:Q,XPathParser:x,XPathResult:Le,Step:se,PathExpr:Z,NodeTest:ce,LocationPath:_e,OrOperation:_,AndOperation:v,BarOperation:ee,EqualsOperation:E,NotEqualOperation:P,LessThanOperation:N,GreaterThanOperation:j,LessThanOrEqualOperation:z,GreaterThanOrEqualOperation:L,PlusOperation:G,MinusOperation:K,MultiplyOperation:$,DivOperation:te,ModOperation:re,UnaryMinusOperation:D,FunctionCall:Mr,VariableReference:dr,XPathContext:si,XNodeSet:Ce,XBoolean:Se,XString:we,XNumber:Ee,NamespaceResolver:ur,FunctionResolver:tr,VariableResolver:wr,Utilities:be}),r.select=function(A,k,O){return r.selectWithResolver(A,k,null,O)},r.useNamespaces=function(A){var k={mappings:A||{},lookupNamespaceURI:function(O){return this.mappings[O]}};return function(O,V,H){return r.selectWithResolver(O,V,k,H)}},r.selectWithResolver=function(A,k,O,V){var H=new Lr(A,O,new x),W=Le.ANY_TYPE,ue=H.evaluate(k,W,null);return ue.resultType==Le.STRING_TYPE?ue=ue.stringValue:ue.resultType==Le.NUMBER_TYPE?ue=ue.numberValue:ue.resultType==Le.BOOLEAN_TYPE?ue=ue.booleanValue:(ue=ue.nodes,V&&(ue=ue[0])),ue},r.select1=function(A,k){return r.select(A,k,!0)};var ko=function(A){return Array.isArray(A)&&A.every(n)},Ri=function(A){return function(k){return n(k)&&k.nodeType===A}};B(r,{isNodeLike:n,isArrayOfNodes:ko,isElement:Ri(C.ELEMENT_NODE),isAttribute:Ri(C.ATTRIBUTE_NODE),isTextNode:Ri(C.TEXT_NODE),isCDATASection:Ri(C.CDATA_SECTION_NODE),isProcessingInstruction:Ri(C.PROCESSING_INSTRUCTION_NODE),isComment:Ri(C.COMMENT_NODE),isDocumentNode:Ri(C.DOCUMENT_NODE),isDocumentTypeNode:Ri(C.DOCUMENT_TYPE_NODE),isDocumentFragment:Ri(C.DOCUMENT_FRAGMENT_NODE)})})(IV)});var Fc=oe(Pr=>{"use strict";function wV(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(_c(r,i)){var n=r[i];if(e.call(void 0,n,i,r))return n}}function Wl(r,e){return e===void 0&&(e=Object),e&&typeof e.getOwnPropertyDescriptors=="function"&&(r=e.create(null,e.getOwnPropertyDescriptors(r))),e&&typeof e.freeze=="function"?e.freeze(r):r}function _c(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function xV(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)_c(e,t)&&(r[t]=e[t]);return r}var YP=Wl({allowfullscreen:!0,async:!0,autofocus:!0,autoplay:!0,checked:!0,controls:!0,default:!0,defer:!0,disabled:!0,formnovalidate:!0,hidden:!0,ismap:!0,itemscope:!0,loop:!0,multiple:!0,muted:!0,nomodule:!0,novalidate:!0,open:!0,playsinline:!0,readonly:!0,required:!0,reversed:!0,selected:!0});function CV(r){return _c(YP,r.toLowerCase())}var WP=Wl({area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function EV(r){return _c(WP,r.toLowerCase())}var wf=Wl({script:!1,style:!1,textarea:!0,title:!0});function BV(r){var e=r.toLowerCase();return _c(wf,e)&&!wf[e]}function bV(r){var e=r.toLowerCase();return _c(wf,e)&&wf[e]}function XP(r){return r===xf.HTML}function vV(r){return XP(r)||r===xf.XML_XHTML_APPLICATION}var xf=Wl({HTML:"text/html",XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),kV=Object.keys(xf).map(function(r){return xf[r]});function SV(r){return kV.indexOf(r)>-1}var DV=Wl({HTML:"http://www.w3.org/1999/xhtml",SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});Pr.assign=xV;Pr.find=wV;Pr.freeze=Wl;Pr.HTML_BOOLEAN_ATTRIBUTES=YP;Pr.HTML_RAW_TEXT_ELEMENTS=wf;Pr.HTML_VOID_ELEMENTS=WP;Pr.hasDefaultHTMLNamespace=vV;Pr.hasOwn=_c;Pr.isHTMLBooleanAttribute=CV;Pr.isHTMLRawTextElement=BV;Pr.isHTMLEscapableRawTextElement=bV;Pr.isHTMLMimeType=XP;Pr.isHTMLVoidElement=EV;Pr.isValidMimeType=SV;Pr.MIME_TYPE=xf;Pr.NAMESPACE=DV});var vf=oe(bf=>{"use strict";var QV=Fc();function e5(r,e){r.prototype=Object.create(Error.prototype,{constructor:{value:r},name:{value:r.name,enumerable:!0,writable:e}})}var Ef=QV.freeze({Error:"Error",IndexSizeError:"IndexSizeError",DomstringSizeError:"DomstringSizeError",HierarchyRequestError:"HierarchyRequestError",WrongDocumentError:"WrongDocumentError",InvalidCharacterError:"InvalidCharacterError",NoDataAllowedError:"NoDataAllowedError",NoModificationAllowedError:"NoModificationAllowedError",NotFoundError:"NotFoundError",NotSupportedError:"NotSupportedError",InUseAttributeError:"InUseAttributeError",InvalidStateError:"InvalidStateError",SyntaxError:"SyntaxError",InvalidModificationError:"InvalidModificationError",NamespaceError:"NamespaceError",InvalidAccessError:"InvalidAccessError",ValidationError:"ValidationError",TypeMismatchError:"TypeMismatchError",SecurityError:"SecurityError",NetworkError:"NetworkError",AbortError:"AbortError",URLMismatchError:"URLMismatchError",QuotaExceededError:"QuotaExceededError",TimeoutError:"TimeoutError",InvalidNodeTypeError:"InvalidNodeTypeError",DataCloneError:"DataCloneError",EncodingError:"EncodingError",NotReadableError:"NotReadableError",UnknownError:"UnknownError",ConstraintError:"ConstraintError",DataError:"DataError",TransactionInactiveError:"TransactionInactiveError",ReadOnlyError:"ReadOnlyError",VersionError:"VersionError",OperationError:"OperationError",NotAllowedError:"NotAllowedError",OptOutError:"OptOutError"}),t5=Object.keys(Ef);function r5(r){return typeof r=="number"&&r>=1&&r<=25}function _V(r){return typeof r=="string"&&r.substring(r.length-Ef.Error.length)===Ef.Error}function Bf(r,e){r5(r)?(this.name=t5[r],this.message=e||""):(this.message=r,this.name=_V(e)?e:Ef.Error),Error.captureStackTrace&&Error.captureStackTrace(this,Bf)}e5(Bf,!0);Object.defineProperties(Bf.prototype,{code:{enumerable:!0,get:function(){var r=t5.indexOf(this.name);return r5(r)?r:0}}});var i5={INDEX_SIZE_ERR:1,DOMSTRING_SIZE_ERR:2,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,INVALID_CHARACTER_ERR:5,NO_DATA_ALLOWED_ERR:6,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INUSE_ATTRIBUTE_ERR:10,INVALID_STATE_ERR:11,SYNTAX_ERR:12,INVALID_MODIFICATION_ERR:13,NAMESPACE_ERR:14,INVALID_ACCESS_ERR:15,VALIDATION_ERR:16,TYPE_MISMATCH_ERR:17,SECURITY_ERR:18,NETWORK_ERR:19,ABORT_ERR:20,URL_MISMATCH_ERR:21,QUOTA_EXCEEDED_ERR:22,TIMEOUT_ERR:23,INVALID_NODE_TYPE_ERR:24,DATA_CLONE_ERR:25},HE=Object.entries(i5);for(Cf=0;Cf<HE.length;Cf++)ZP=HE[Cf][0],Bf[ZP]=HE[Cf][1];var ZP,Cf;function KE(r,e,t){this.message=r,this.locator=e,this.cause=t,Error.captureStackTrace&&Error.captureStackTrace(this,KE)}e5(KE);bf.DOMException=Bf;bf.DOMExceptionName=Ef;bf.ExceptionCode=i5;bf.ParseError=KE});var YE=oe(Ke=>{"use strict";function l5(r){try{typeof r!="function"&&(r=RegExp);var e=new r("\u{1D306}","u").exec("\u{1D306}");return!!e&&e[0].length===2}catch{}return!1}var ed=l5();function ca(r){if(r.source[0]!=="[")throw new Error(r+" can not be used with chars");return r.source.slice(1,r.source.lastIndexOf("]"))}function Xl(r,e){if(r.source[0]!=="[")throw new Error("/"+r.source+"/ can not be used with chars_without");if(!e||typeof e!="string")throw new Error(JSON.stringify(e)+" is not a valid search");if(r.source.indexOf(e)===-1)throw new Error('"'+e+'" is not is /'+r.source+"/");if(e==="-"&&r.source.indexOf(e)!==1)throw new Error('"'+e+'" is not at the first postion of /'+r.source+"/");return new RegExp(r.source.replace(e,""),ed?"u":"")}function $e(r){var e=this;return new RegExp(Array.prototype.slice.call(arguments).map(function(t){var i=typeof t=="string";if(i&&e===void 0&&t==="|")throw new Error("use regg instead of reg to wrap expressions with `|`!");return i?t:t.source}).join(""),ed?"u":"")}function Oe(r){if(arguments.length===0)throw new Error("no parameters provided");return $e.apply(Oe,["(?:"].concat(Array.prototype.slice.call(arguments),[")"]))}var FV="\uFFFD",la=/[-\x09\x0A\x0D\x20-\x2C\x2E-\uD7FF\uE000-\uFFFD]/;ed&&(la=$e("[",ca(la),"\\u{10000}-\\u{10FFFF}","]"));var PV=new RegExp("[^"+ca(la)+"]",ed?"u":""),hy=/[\x20\x09\x0D\x0A]/,TV=ca(hy),gt=$e(hy,"+"),Qt=$e(hy,"*"),kf=/[:_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;ed&&(kf=$e("[",ca(kf),"\\u{10000}-\\u{10FFFF}","]"));var UV=ca(kf),JE=$e("[",UV,ca(/[-.0-9\xB7]/),ca(/[\u0300-\u036F\u203F-\u2040]/),"]"),Li=$e(kf,JE,"*"),RV=$e("^",Li,"$"),n5=$e(JE,"+"),NV=$e("&",Li,";"),qV=Oe(/&#[0-9]+;|&#x[0-9a-fA-F]+;/),Sf=Oe(NV,"|",qV),Df=$e("%",Li,";"),jE=Oe($e('"',Oe(/[^%&"]/,"|",Df,"|",Sf),"*",'"'),"|",$e("'",Oe(/[^%&']/,"|",Df,"|",Sf),"*","'")),OV=Oe('"',Oe(/[^<&"]/,"|",Sf),"*",'"',"|","'",Oe(/[^<&']/,"|",Sf),"*","'"),MV=Xl(kf,":"),LV=Xl(JE,":"),GE=$e(MV,LV,"*"),HV=$e("^",GE,"$"),Qf=$e(GE,Oe(":",GE),"?"),KV=$e("^",Qf,"$"),GV=$e("(",Qf,")"),Zl=Oe(/"[^"]*"|'[^']*'/),zV=$e(/^<\?/,"(",Li,")",Oe(gt,"(?!",hy,")(",la,"*?)"),"?",/\?>/),s5=/[\x20\x0D\x0Aa-zA-Z0-9-'()+,./:=?;!*#@$_%]/,_f=Oe('"',s5,'*"',"|","'",Xl(s5,"'"),"*'"),d5="<!--",u5="-->",JV=$e(d5,Oe(Xl(la,"-"),"|",$e("-",Xl(la,"-"))),"*",u5),o5="#PCDATA",jV=Oe($e(/\(/,Qt,o5,Oe(Qt,/\|/,Qt,Qf),"*",Qt,/\)\*/),"|",$e(/\(/,Qt,o5,Qt,/\)/)),$V=/[?*+]?/,VV=$e(/\([^>]+\)/,$V),YV=Oe("EMPTY","|","ANY","|",jV,"|",VV),WV="<!ELEMENT",XV=$e(WV,gt,Oe(Qf,"|",Df),gt,Oe(YV,"|",Df),Qt,">"),ZV=$e("NOTATION",gt,/\(/,Qt,Li,Oe(Qt,/\|/,Qt,Li),"*",Qt,/\)/),eY=$e(/\(/,Qt,n5,Oe(Qt,/\|/,Qt,n5),"*",Qt,/\)/),tY=Oe(ZV,"|",eY),rY=Oe(/CDATA|ID|IDREF|IDREFS|ENTITY|ENTITIES|NMTOKEN|NMTOKENS/,"|",tY),iY=Oe(/#REQUIRED|#IMPLIED/,"|",Oe(Oe("#FIXED",gt),"?",OV)),nY=Oe(gt,Li,gt,rY,gt,iY),sY="<!ATTLIST",oY=$e(sY,gt,Li,nY,"*",Qt,">"),zE="about:legacy-compat",aY=Oe('"'+zE+'"',"|","'"+zE+"'"),$E="SYSTEM",gy="PUBLIC",py=Oe(Oe($E,gt,Zl),"|",Oe(gy,gt,_f,gt,Zl)),cY=$e("^",Oe(Oe($E,gt,"(?<SystemLiteralOnly>",Zl,")"),"|",Oe(gy,gt,"(?<PubidLiteral>",_f,")",gt,"(?<SystemLiteral>",Zl,")"))),lY=$e("^",_f,"$"),dY=$e("^",Zl,"$"),uY=Oe(gt,"NDATA",gt,Li),fY=Oe(jE,"|",Oe(py,uY,"?")),f5="<!ENTITY",AY=$e(f5,gt,Li,gt,fY,Qt,">"),hY=Oe(jE,"|",py),gY=$e(f5,gt,"%",gt,Li,gt,hY,Qt,">"),pY=Oe(AY,"|",gY),mY=$e(gy,gt,_f),yY=$e("<!NOTATION",gt,Li,gt,Oe(py,"|",mY),Qt,">"),VE=$e(Qt,"=",Qt),a5=/1[.]\d+/,IY=$e(gt,"version",VE,Oe("'",a5,"'","|",'"',a5,'"')),c5=/[A-Za-z][-A-Za-z0-9._]*/,wY=Oe(gt,"encoding",VE,Oe('"',c5,'"',"|","'",c5,"'")),xY=Oe(gt,"standalone",VE,Oe("'",Oe("yes","|","no"),"'","|",'"',Oe("yes","|","no"),'"')),CY=$e(/^<\?xml/,IY,wY,"?",xY,"?",Qt,/\?>/),EY="<!DOCTYPE",BY="<![CDATA[",bY="]]>",vY=/<!\[CDATA\[/,kY=/\]\]>/,SY=$e(la,"*?",kY),DY=$e(vY,SY);Ke.chars=ca;Ke.chars_without=Xl;Ke.detectUnicodeSupport=l5;Ke.reg=$e;Ke.regg=Oe;Ke.ABOUT_LEGACY_COMPAT=zE;Ke.ABOUT_LEGACY_COMPAT_SystemLiteral=aY;Ke.AttlistDecl=oY;Ke.CDATA_START=BY;Ke.CDATA_END=bY;Ke.CDSect=DY;Ke.Char=la;Ke.Comment=JV;Ke.COMMENT_START=d5;Ke.COMMENT_END=u5;Ke.DOCTYPE_DECL_START=EY;Ke.elementdecl=XV;Ke.EntityDecl=pY;Ke.EntityValue=jE;Ke.ExternalID=py;Ke.ExternalID_match=cY;Ke.Name=Li;Ke.Name_exact=RV;Ke.NCName_exact=HV;Ke.NotationDecl=yY;Ke.Reference=Sf;Ke.PEReference=Df;Ke.PI=zV;Ke.PUBLIC=gy;Ke.PubidLiteral=_f;Ke.PubidLiteral_match=lY;Ke.QName=Qf;Ke.QName_exact=KV;Ke.QName_group=GV;Ke.S=gt;Ke.SChar_s=TV;Ke.S_OPT=Qt;Ke.SYSTEM=$E;Ke.SystemLiteral=Zl;Ke.SystemLiteral_match=dY;Ke.InvalidChar=PV;Ke.UNICODE_REPLACEMENT_CHARACTER=FV;Ke.UNICODE_SUPPORT=ed;Ke.XMLDecl=CY});var oB=oe(Ht=>{"use strict";var tn=Fc(),es=tn.find,QY=tn.hasDefaultHTMLNamespace,rd=tn.hasOwn,_Y=tn.isHTMLMimeType,FY=tn.isHTMLRawTextElement,PY=tn.isHTMLVoidElement,Ff=tn.MIME_TYPE,ts=tn.NAMESPACE,li=Symbol(),I5=vf(),ke=I5.DOMException,Vr=I5.DOMExceptionName,Lt=YE();function mi(r){if(r!==li)throw new TypeError("Illegal constructor")}function TY(r){return r!==""}function UY(r){return r?r.split(/[\t\n\f\r ]+/).filter(TY):[]}function RY(r,e){return rd(r,e)||(r[e]=!0),r}function A5(r){if(!r)return[];var e=UY(r);return Object.keys(e.reduce(RY,{}))}function NY(r){return function(e){return r&&r.indexOf(e)!==-1}}function w5(r){if(!Lt.QName_exact.test(r))throw new ke(ke.INVALID_CHARACTER_ERR,'invalid character in qualified name "'+r+'"')}function XE(r,e){w5(e),r=r||null;var t=null,i=e;if(e.indexOf(":")>=0){var n=e.split(":");t=n[0],i=n[1]}if(t!==null&&r===null)throw new ke(ke.NAMESPACE_ERR,"prefix is non-null and namespace is null");if(t==="xml"&&r!==tn.NAMESPACE.XML)throw new ke(ke.NAMESPACE_ERR,'prefix is "xml" and namespace is not the XML namespace');if((t==="xmlns"||e==="xmlns")&&r!==tn.NAMESPACE.XMLNS)throw new ke(ke.NAMESPACE_ERR,'either qualifiedName or prefix is "xmlns" and namespace is not the XMLNS namespace');if(r===tn.NAMESPACE.XMLNS&&t!=="xmlns"&&e!=="xmlns")throw new ke(ke.NAMESPACE_ERR,'namespace is the XMLNS namespace and neither qualifiedName nor prefix is "xmlns"');return[r,t,i]}function sd(r,e){for(var t in r)rd(r,t)&&(e[t]=r[t])}function yi(r,e){var t=r.prototype;if(!(t instanceof e)){let i=function(){};i.prototype=e.prototype,i=new i,sd(t,i),r.prototype=t=i}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var Ii={},en=Ii.ELEMENT_NODE=1,id=Ii.ATTRIBUTE_NODE=2,Pf=Ii.TEXT_NODE=3,x5=Ii.CDATA_SECTION_NODE=4,C5=Ii.ENTITY_REFERENCE_NODE=5,qY=Ii.ENTITY_NODE=6,ZE=Ii.PROCESSING_INSTRUCTION_NODE=7,eB=Ii.COMMENT_NODE=8,td=Ii.DOCUMENT_NODE=9,E5=Ii.DOCUMENT_TYPE_NODE=10,da=Ii.DOCUMENT_FRAGMENT_NODE=11,OY=Ii.NOTATION_NODE=12,Mt=tn.freeze({DOCUMENT_POSITION_DISCONNECTED:1,DOCUMENT_POSITION_PRECEDING:2,DOCUMENT_POSITION_FOLLOWING:4,DOCUMENT_POSITION_CONTAINS:8,DOCUMENT_POSITION_CONTAINED_BY:16,DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:32});function B5(r,e){if(e.length<r.length)return B5(e,r);var t=null;for(var i in r){if(r[i]!==e[i])return t;t=r[i]}return t}function h5(r){return r.guid||(r.guid=Math.random()),r.guid}function hr(){}hr.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r){var e;typeof r=="function"?e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:r}:r?e={requireWellFormed:!!r.requireWellFormed,splitCDATASections:r.splitCDATASections!==!1,nodeFilter:r.nodeFilter||null}:e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:null};for(var t=[],i=0;i<this.length;i++)sB(this[i],t,null,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};hr.prototype[Symbol.iterator]=function(){var r=this,e=0;return{next:function(){return e<r.length?{value:r[e++],done:!1}:{done:!0}},return:function(){return{done:!0}}}};function Zn(r,e){this._node=r,this._refresh=e,wy(this)}function wy(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(U5(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)rd(r,i)&&delete r[i];sd(t,r),r._inc=e}}Zn.prototype.item=function(r){return wy(this),this[r]||null};yi(Zn,hr);function nd(){this._nsIndex=Object.create(null),this._noNsIndex=Object.create(null)}function b5(r,e){for(var t=0;t<r.length;){if(r[t]===e)return t;t++}}function tB(r,e,t){if(!e)return r._noNsIndex;var i=r._nsIndex[e];return!i&&t&&(i=r._nsIndex[e]=Object.create(null)),i}function MY(r,e,t){var i=tB(r,e,!1),n=i&&i[t];return n||null}function LY(r,e){tB(r,e.namespaceURI,!0)[e.localName]=e}function HY(r,e){var t=tB(r,e.namespaceURI,!1);t&&delete t[e.localName]}function KY(r,e,t,i){if(i?e[b5(e,i)]=t:(e[e.length]=t,e.length++),LY(e,t),r){t.ownerElement=r;var n=r.ownerDocument;n&&(i&&S5(n,r,i),GY(n,r,t))}}function g5(r,e,t){var i=b5(e,t);if(i>=0){for(var n=e.length-1;i<=n;)e[i]=e[++i];if(e.length=n,HY(e,t),r){var s=r.ownerDocument;s&&S5(s,r,t),t.ownerElement=null}}}nd.prototype={length:0,item:hr.prototype.item,getNamedItem:function(r){this._ownerElement&&this._ownerElement._isInHTMLDocumentAndNamespace()&&(r=r.toLowerCase());for(var e=0;e<this.length;){var t=this[e];if(t.nodeName===r)return t;e++}return null},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!==this._ownerElement)throw new ke(ke.INUSE_ATTRIBUTE_ERR);var t=MY(this,r.namespaceURI,r.localName);return t===r?r:(KY(this._ownerElement,this,r,t),t)},setNamedItemNS:function(r){return this.setNamedItem(r)},removeNamedItem:function(r){var e=this.getNamedItem(r);if(!e)throw new ke(ke.NOT_FOUND_ERR,r);return g5(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);if(!t)throw new ke(ke.NOT_FOUND_ERR,r?r+" : "+e:e);return g5(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){r||(r=null);for(var t=0;t<this.length;){var i=this[t];if(i.localName===e&&i.namespaceURI===r)return i;t++}return null}};nd.prototype[Symbol.iterator]=function(){var r=this,e=0;return{next:function(){return e<r.length?{value:r[e++],done:!1}:{done:!0}},return:function(){return{done:!0}}}};function v5(){}v5.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=Ff.XML_APPLICATION;r===ts.HTML?i=Ff.XML_XHTML_APPLICATION:r===ts.SVG&&(i=Ff.XML_SVG_IMAGE);var n=new $s(li,{contentType:i});if(n.implementation=this,n.childNodes=new hr,n.doctype=t||null,t&&n.appendChild(t),e){var s=n.createElementNS(r,e);n.appendChild(s)}return n},createDocumentType:function(r,e,t,i){w5(r);var n=new Ey(li);return n.name=r,n.nodeName=r,n.publicId=e||"",n.systemId=t||"",n.internalSubset=i||"",n.childNodes=new hr,n},createHTMLDocument:function(r){var e=new $s(li,{contentType:Ff.HTML});if(e.implementation=this,e.childNodes=new hr,r!==!1){e.doctype=this.createDocumentType("html"),e.doctype.ownerDocument=e,e.appendChild(e.doctype);var t=e.createElement("html");e.appendChild(t);var i=e.createElement("head");if(t.appendChild(i),typeof r=="string"){var n=e.createElement("title");n.appendChild(e.createTextNode(r)),i.appendChild(n)}t.appendChild(e.createElement("body"))}return e}};function nt(r){mi(r)}nt.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,parentNode:null,get parentElement(){return this.parentNode&&this.parentNode.nodeType===this.ELEMENT_NODE?this.parentNode:null},childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,baseURI:"about:blank",get isConnected(){var r=this.getRootNode();return r&&r.nodeType===r.DOCUMENT_NODE},contains:function(r){if(!r)return!1;var e=r;do{if(this===e)return!0;e=e.parentNode}while(e);return!1},getRootNode:function(r){var e=this;do{if(!e.parentNode)return e;e=e.parentNode}while(e)},isEqualNode:function(r){if(!r)return!1;for(var e=[{node:this,other:r}];e.length>0;){var t=e.pop(),i=t.node,n=t.other;if(i.nodeType!==n.nodeType)return!1;switch(i.nodeType){case i.DOCUMENT_TYPE_NODE:if(i.name!==n.name||i.publicId!==n.publicId||i.systemId!==n.systemId)return!1;break;case i.ELEMENT_NODE:if(i.namespaceURI!==n.namespaceURI||i.prefix!==n.prefix||i.localName!==n.localName||i.attributes.length!==n.attributes.length)return!1;for(var s=0;s<i.attributes.length;s++){var o=i.attributes.item(s),a=n.getAttributeNodeNS(o.namespaceURI,o.localName);if(!a)return!1;e.push({node:o,other:a})}break;case i.ATTRIBUTE_NODE:if(i.namespaceURI!==n.namespaceURI||i.localName!==n.localName||i.value!==n.value)return!1;break;case i.PROCESSING_INSTRUCTION_NODE:if(i.target!==n.target||i.data!==n.data)return!1;break;case i.TEXT_NODE:case i.CDATA_SECTION_NODE:case i.COMMENT_NODE:if(i.data!==n.data)return!1;break}if(i.childNodes.length!==n.childNodes.length)return!1;for(var s=i.childNodes.length-1;s>=0;s--)e.push({node:i.childNodes[s],other:n.childNodes[s]})}return!0},isSameNode:function(r){return this===r},insertBefore:function(r,e){return Iy(this,r,e)},replaceChild:function(r,e){Iy(this,r,e,_5),e&&this.removeChild(e)},removeChild:function(r){return D5(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return T5(this.ownerDocument||this,this,r)},normalize:function(){Tr(this,null,{enter:function(r){for(var e=r.firstChild;e;){var t=e.nextSibling;if(t!==null&&t.nodeType===Pf&&e.nodeType===Pf){for(var i=[],n=t;n!==null&&n.nodeType===Pf;)i.push(n.data),n=n.nextSibling;for(var s=e.nextSibling;s!==n;){var o=s.nextSibling;s.parentNode=null,s.previousSibling=null,s.nextSibling=null,s=o}e.nextSibling=n,n!==null?n.previousSibling=e:r.lastChild=e,e.appendData(i.join("")),rB(r.ownerDocument,r),e=n}else e=t}return!0}})},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(rd(t,i)&&t[i]===r)return i}e=e.nodeType==id?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&rd(t,r))return t[r];e=e.nodeType==id?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null},compareDocumentPosition:function(r){if(this===r)return 0;var e=r,t=this,i=null,n=null;if(e instanceof Pc&&(i=e,e=i.ownerElement),t instanceof Pc&&(n=t,t=n.ownerElement,i&&e&&t===e))for(var s=0,o;o=t.attributes[s];s++){if(o===i)return Mt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+Mt.DOCUMENT_POSITION_PRECEDING;if(o===n)return Mt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+Mt.DOCUMENT_POSITION_FOLLOWING}if(!e||!t||t.ownerDocument!==e.ownerDocument)return Mt.DOCUMENT_POSITION_DISCONNECTED+Mt.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC+(h5(t.ownerDocument)>h5(e.ownerDocument)?Mt.DOCUMENT_POSITION_FOLLOWING:Mt.DOCUMENT_POSITION_PRECEDING);if(n&&e===t)return Mt.DOCUMENT_POSITION_CONTAINS+Mt.DOCUMENT_POSITION_PRECEDING;if(i&&e===t)return Mt.DOCUMENT_POSITION_CONTAINED_BY+Mt.DOCUMENT_POSITION_FOLLOWING;for(var a=[],c=e.parentNode;c;){if(!n&&c===t)return Mt.DOCUMENT_POSITION_CONTAINED_BY+Mt.DOCUMENT_POSITION_FOLLOWING;a.push(c),c=c.parentNode}a.reverse();for(var l=[],d=t.parentNode;d;){if(!i&&d===e)return Mt.DOCUMENT_POSITION_CONTAINS+Mt.DOCUMENT_POSITION_PRECEDING;l.push(d),d=d.parentNode}l.reverse();var u=B5(a,l);for(var f in u.childNodes){var h=u.childNodes[f];if(h===t)return Mt.DOCUMENT_POSITION_FOLLOWING;if(h===e)return Mt.DOCUMENT_POSITION_PRECEDING;if(l.indexOf(h)>=0)return Mt.DOCUMENT_POSITION_FOLLOWING;if(a.indexOf(h)>=0)return Mt.DOCUMENT_POSITION_PRECEDING}return 0}};function k5(r){return r=="<"&&"<"||r==">"&&">"||r=="&"&&"&"||r=='"'&&"""||"&#"+r.charCodeAt()+";"}sd(Ii,nt);sd(Ii,nt.prototype);sd(Mt,nt);sd(Mt,nt.prototype);function yy(r,e){Tr(r,null,{enter:function(t){return e(t)?Tr.STOP:!0}})}function Tr(r,e,t){for(var i=[{node:r,context:e,phase:Tr.ENTER}];i.length>0;){var n=i.pop();if(n.phase===Tr.ENTER){var s=t.enter(n.node,n.context);if(s===Tr.STOP)return Tr.STOP;if(i.push({node:n.node,context:s,phase:Tr.EXIT}),s==null)continue;for(var o=n.node.lastChild;o;)i.push({node:o,context:s,phase:Tr.ENTER}),o=o.previousSibling}else t.exit&&t.exit(n.node,n.context)}}Tr.STOP=Symbol("walkDOM.STOP");Tr.ENTER=0;Tr.EXIT=1;function $s(r,e){mi(r);var t=e||{};this.ownerDocument=this,this.contentType=t.contentType||Ff.XML_APPLICATION,this.type=_Y(this.contentType)?"html":"xml"}function GY(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===ts.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function S5(r,e,t,i){r&&r._inc++;var n=t.namespaceURI;n===ts.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function rB(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t&&!t.nextSibling)i[i.length++]=t;else{for(var n=e.firstChild,s=0;n;)i[s++]=n,n=n.nextSibling;i.length=s,delete i[i.length]}}}function D5(r,e){if(r!==e.parentNode)throw new ke(ke.NOT_FOUND_ERR,"child's parent is not parent");var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,rB(r.ownerDocument,r),e.parentNode=null,e.previousSibling=null,e.nextSibling=null,e}function zY(r){return r&&(r.nodeType===nt.DOCUMENT_NODE||r.nodeType===nt.DOCUMENT_FRAGMENT_NODE||r.nodeType===nt.ELEMENT_NODE)}function JY(r){return r&&(r.nodeType===nt.CDATA_SECTION_NODE||r.nodeType===nt.COMMENT_NODE||r.nodeType===nt.DOCUMENT_FRAGMENT_NODE||r.nodeType===nt.DOCUMENT_TYPE_NODE||r.nodeType===nt.ELEMENT_NODE||r.nodeType===nt.PROCESSING_INSTRUCTION_NODE||r.nodeType===nt.TEXT_NODE)}function ua(r){return r&&r.nodeType===nt.DOCUMENT_TYPE_NODE}function js(r){return r&&r.nodeType===nt.ELEMENT_NODE}function Q5(r){return r&&r.nodeType===nt.TEXT_NODE}function p5(r,e){var t=r.childNodes||[];if(es(t,js)||ua(e))return!1;var i=es(t,ua);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function m5(r,e){var t=r.childNodes||[];function i(s){return js(s)&&s!==e}if(es(t,i))return!1;var n=es(t,ua);return!(e&&n&&t.indexOf(n)>t.indexOf(e))}function jY(r,e,t){if(!zY(r))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new ke(ke.NOT_FOUND_ERR,"child not in parent");if(!JY(e)||ua(e)&&r.nodeType!==nt.DOCUMENT_NODE)throw new ke(ke.HIERARCHY_REQUEST_ERR,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function $Y(r,e,t){var i=r.childNodes||[],n=e.childNodes||[];if(e.nodeType===nt.DOCUMENT_FRAGMENT_NODE){var s=n.filter(js);if(s.length>1||es(n,Q5))throw new ke(ke.HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(s.length===1&&!p5(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(js(e)&&!p5(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(ua(e)){if(es(i,ua))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var o=es(i,js);if(t&&i.indexOf(o)<i.indexOf(t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element");if(!t&&o)throw new ke(ke.HIERARCHY_REQUEST_ERR,"Doctype can not be appended since element is present")}}function _5(r,e,t){var i=r.childNodes||[],n=e.childNodes||[];if(e.nodeType===nt.DOCUMENT_FRAGMENT_NODE){var s=n.filter(js);if(s.length>1||es(n,Q5))throw new ke(ke.HIERARCHY_REQUEST_ERR,"More than one element or text in fragment");if(s.length===1&&!m5(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Element in fragment can not be inserted before doctype")}if(js(e)&&!m5(r,t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one element can be added and only after doctype");if(ua(e)){if(es(i,function(c){return ua(c)&&c!==t}))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Only one doctype is allowed");var o=es(i,js);if(t&&i.indexOf(o)<i.indexOf(t))throw new ke(ke.HIERARCHY_REQUEST_ERR,"Doctype can only be inserted before an element")}}function Iy(r,e,t,i){jY(r,e,t),r.nodeType===nt.DOCUMENT_NODE&&(i||$Y)(r,e,t);var n=e.parentNode;if(n&&n.removeChild(e),e.nodeType===da){var s=e.firstChild;if(s==null)return e;var o=e.lastChild}else s=o=e;var a=t?t.previousSibling:r.lastChild;s.previousSibling=a,o.nextSibling=t,a?a.nextSibling=s:r.firstChild=s,t==null?r.lastChild=o:t.previousSibling=o;do s.parentNode=r;while(s!==o&&(s=s.nextSibling));return rB(r.ownerDocument||r,r,e),e.nodeType==da&&(e.firstChild=e.lastChild=null),e}$s.prototype={implementation:null,nodeName:"#document",nodeType:td,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType===da){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return Iy(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===en&&(this.documentElement=r),r},removeChild:function(r){var e=D5(this,r);return e===this.documentElement&&(this.documentElement=null),e},replaceChild:function(r,e){Iy(this,r,e,_5),r.ownerDocument=this,e&&this.removeChild(e),js(r)&&(this.documentElement=r)},importNode:function(r,e){return VY(this,r,e)},getElementById:function(r){var e=null;return yy(this.documentElement,function(t){if(t.nodeType==en&&t.getAttribute("id")==r)return e=t,!0}),e},createElement:function(r){var e=new Vs(li);e.ownerDocument=this,this.type==="html"&&(r=r.toLowerCase()),QY(this.contentType)&&(e.namespaceURI=ts.HTML),e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new hr;var t=e.attributes=new nd;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new od(li);return r.ownerDocument=this,r.childNodes=new hr,r},createTextNode:function(r){var e=new Tf(li);return e.ownerDocument=this,e.childNodes=new hr,e.appendData(r),e},createComment:function(r){var e=new xy(li);return e.ownerDocument=this,e.childNodes=new hr,e.appendData(r),e},createCDATASection:function(r){if(r.indexOf("]]>")!==-1)throw new ke(ke.INVALID_CHARACTER_ERR,'data contains "]]>"');var e=new Cy(li);return e.ownerDocument=this,e.childNodes=new hr,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new by(li);return t.ownerDocument=this,t.childNodes=new hr,t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){if(!Lt.QName_exact.test(r))throw new ke(ke.INVALID_CHARACTER_ERR,'invalid character in name "'+r+'"');return this.type==="html"&&(r=r.toLowerCase()),this._createAttribute(r)},_createAttribute:function(r){var e=new Pc(li);return e.ownerDocument=this,e.childNodes=new hr,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){if(!Lt.Name_exact.test(r))throw new ke(ke.INVALID_CHARACTER_ERR,'not a valid xml name "'+r+'"');if(this.type==="html")throw new ke("document is an html document",Vr.NotSupportedError);var e=new By(li);return e.ownerDocument=this,e.childNodes=new hr,e.nodeName=r,e},createElementNS:function(r,e){var t=XE(r,e),i=new Vs(li),n=i.attributes=new nd;return i.childNodes=new hr,i.ownerDocument=this,i.nodeName=e,i.tagName=e,i.namespaceURI=t[0],i.prefix=t[1],i.localName=t[2],n._ownerElement=i,i},createAttributeNS:function(r,e){var t=XE(r,e),i=new Pc(li);return i.ownerDocument=this,i.childNodes=new hr,i.nodeName=e,i.name=e,i.specified=!0,i.namespaceURI=t[0],i.prefix=t[1],i.localName=t[2],i}};yi($s,nt);function Vs(r){mi(r),this._nsMap=Object.create(null)}Vs.prototype={nodeType:en,attributes:null,getQualifiedName:function(){return this.prefix?this.prefix+":"+this.localName:this.localName},_isInHTMLDocumentAndNamespace:function(){return this.ownerDocument.type==="html"&&this.namespaceURI===ts.HTML},hasAttributes:function(){return!!(this.attributes&&this.attributes.length)},hasAttribute:function(r){return!!this.getAttributeNode(r)},getAttribute:function(r){var e=this.getAttributeNode(r);return e?e.value:null},getAttributeNode:function(r){return this._isInHTMLDocumentAndNamespace()&&(r=r.toLowerCase()),this.attributes.getNamedItem(r)},setAttribute:function(r,e){this._isInHTMLDocumentAndNamespace()&&(r=r.toLowerCase());var t=this.getAttributeNode(r);t?t.value=t.nodeValue=""+e:(t=this.ownerDocument._createAttribute(r),t.value=t.nodeValue=""+e,this.setAttributeNode(t))},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t?t.value:null},setAttributeNS:function(r,e,t){var i=XE(r,e),n=i[2],s=this.getAttributeNodeNS(r,n);s?s.value=s.nodeValue=""+t:(s=this.ownerDocument.createAttributeNS(r,e),s.value=s.nodeValue=""+t,this.setAttributeNode(s))},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByClassName:function(r){var e=A5(r);return new Zn(this,function(t){var i=[];return e.length>0&&yy(t,function(n){if(n!==t&&n.nodeType===en){var s=n.getAttribute("class");if(s){var o=r===s;if(!o){var a=A5(s);o=e.every(NY(a))}o&&i.push(n)}}}),i})},getElementsByTagName:function(r){var e=(this.nodeType===td?this:this.ownerDocument).type==="html",t=r.toLowerCase();return new Zn(this,function(i){var n=[];return yy(i,function(s){if(!(s===i||s.nodeType!==en))if(r==="*")n.push(s);else{var o=s.getQualifiedName(),a=e&&s.namespaceURI===ts.HTML?t:r;o===a&&n.push(s)}}),n})},getElementsByTagNameNS:function(r,e){return new Zn(this,function(t){var i=[];return yy(t,function(n){n!==t&&n.nodeType===en&&(r==="*"||n.namespaceURI===r)&&(e==="*"||n.localName==e)&&i.push(n)}),i})}};$s.prototype.getElementsByClassName=Vs.prototype.getElementsByClassName;$s.prototype.getElementsByTagName=Vs.prototype.getElementsByTagName;$s.prototype.getElementsByTagNameNS=Vs.prototype.getElementsByTagNameNS;yi(Vs,nt);function Pc(r){mi(r),this.namespaceURI=null,this.prefix=null,this.ownerElement=null}Pc.prototype.nodeType=id;yi(Pc,nt);function fa(r){mi(r)}fa.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),n=this.data.substring(r+e);t=i+t+n,this.nodeValue=this.data=t,this.length=t.length}};yi(fa,nt);function Tf(r){mi(r)}Tf.prototype={nodeName:"#text",nodeType:Pf,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};yi(Tf,fa);function xy(r){mi(r)}xy.prototype={nodeName:"#comment",nodeType:eB};yi(xy,fa);function Cy(r){mi(r)}Cy.prototype={nodeName:"#cdata-section",nodeType:x5};yi(Cy,Tf);function Ey(r){mi(r)}Ey.prototype.nodeType=E5;yi(Ey,nt);function iB(r){mi(r)}iB.prototype.nodeType=OY;yi(iB,nt);function nB(r){mi(r)}nB.prototype.nodeType=qY;yi(nB,nt);function By(r){mi(r)}By.prototype.nodeType=C5;yi(By,nt);function od(r){mi(r)}od.prototype.nodeName="#document-fragment";od.prototype.nodeType=da;yi(od,nt);function by(r){mi(r)}by.prototype.nodeType=ZE;yi(by,fa);function F5(){}F5.prototype.serializeToString=function(r,e){return P5.call(r,e)};nt.prototype.toString=P5;function P5(r){var e;typeof r=="function"?e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:r}:r!=null?e={requireWellFormed:!!r.requireWellFormed,splitCDATASections:r.splitCDATASections!==!1,nodeFilter:r.nodeFilter||null}:e={requireWellFormed:!1,splitCDATASections:!0,nodeFilter:null};var t=[],i=this.nodeType===td&&this.documentElement||this,n=i.prefix,s=i.namespaceURI;if(s&&n==null){var n=i.lookupPrefix(s);if(n==null)var o=[{namespace:s,prefix:null}]}return sB(this,t,o,e),t.join("")}function y5(r,e,t){var i=r.prefix||"",n=r.namespaceURI;if(!n||i==="xml"&&n===ts.XML||n===ts.XMLNS)return!1;for(var s=t.length;s--;){var o=t[s];if(o.prefix===i)return o.namespace!==n}return!0}function my(r,e,t,i){if(i&&!Lt.QName_exact.test(e))throw new ke('The attribute name "'+e+'" is not a valid XML QName',Vr.InvalidStateError);r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,k5),'"')}function sB(r,e,t,i){t||(t=[]);var n=i.nodeFilter,s=i.requireWellFormed,o=i.splitCDATASections,a=r.nodeType===td?r:r.ownerDocument,c=a.type==="html";Tr(r,{ns:t},{enter:function(l,d){var u=d.ns;if(n)if(l=n(l),l){if(typeof l=="string")return e.push(l),null}else return null;switch(l.nodeType){case en:var f=l.attributes,h=f.length,g=l.tagName,p=g;if(!c&&!l.prefix&&l.namespaceURI){for(var I,m=0;m<f.length;m++)if(f.item(m).name==="xmlns"){I=f.item(m).value;break}if(!I)for(var w=u.length-1;w>=0;w--){var B=u[w];if(B.prefix===""&&B.namespace===l.namespaceURI){I=B.namespace;break}}if(I!==l.namespaceURI)for(var w=u.length-1;w>=0;w--){var B=u[w];if(B.namespace===l.namespaceURI){B.prefix&&(p=B.prefix+":"+g);break}}}if(s&&!Lt.QName_exact.test(p))throw new ke('The element name "'+p+'" is not a valid XML QName',Vr.InvalidStateError);e.push("<",p);for(var C=u.slice(),x=0;x<h;x++){var Q=f.item(x);Q.prefix=="xmlns"?C.push({prefix:Q.localName,namespace:Q.value}):Q.nodeName=="xmlns"&&C.push({prefix:"",namespace:Q.value})}for(var x=0;x<h;x++){var Q=f.item(x);if(y5(Q,c,C)){var R=Q.prefix||"",U=Q.namespaceURI;my(e,R?"xmlns:"+R:"xmlns",U,s),C.push({prefix:R,namespace:U})}var T=n?n(Q):Q;T&&(typeof T=="string"?e.push(T):my(e,T.name,T.value,s))}if(g===p&&y5(l,c,C)){var D=l.prefix||"",U=l.namespaceURI;my(e,D?"xmlns:"+D:"xmlns",U,s),C.push({prefix:D,namespace:U})}var b=!l.firstChild;if(b&&(c||l.namespaceURI===ts.HTML)&&(b=PY(g)),b)return e.push("/>"),null;if(e.push(">"),c&&FY(g)){for(var _=l.firstChild;_;)_.data?e.push(_.data):sB(_,e,C.slice(),i),_=_.nextSibling;return e.push("</",p,">"),null}return{ns:C,tag:p};case td:case da:if(s&&l.nodeType===td&&l.documentElement==null)throw new ke("The Document has no documentElement",Vr.InvalidStateError);return{ns:u};case id:return my(e,l.name,l.value,s),null;case Pf:if(s&&Lt.InvalidChar.test(l.data))throw new ke("The Text node data contains characters outside the XML Char production",Vr.InvalidStateError);return e.push(l.data.replace(/[<&>]/g,k5)),null;case x5:if(s&&l.data.indexOf("]]>")!==-1)throw new ke('The CDATASection data contains "]]>"',Vr.InvalidStateError);return o?e.push(Lt.CDATA_START,l.data.replace(/]]>/g,"]]]]><![CDATA[>"),Lt.CDATA_END):e.push(Lt.CDATA_START,l.data,Lt.CDATA_END),null;case eB:if(s){if(Lt.InvalidChar.test(l.data))throw new ke("The comment node data contains characters outside the XML Char production",Vr.InvalidStateError);if(l.data.indexOf("--")!==-1||l.data[l.data.length-1]==="-")throw new ke('The comment node data contains "--" or ends with "-"',Vr.InvalidStateError)}return e.push(Lt.COMMENT_START,l.data,Lt.COMMENT_END),null;case E5:var v=l.publicId,E=l.systemId;if(s){if(!Lt.Name_exact.test(l.name))throw new ke('The doctype name "'+l.name+'" is not a valid XML Name',Vr.InvalidStateError);if(v&&!Lt.PubidLiteral_match.test(v))throw new ke("DocumentType publicId is not a valid PubidLiteral",Vr.InvalidStateError);if(E&&E!=="."&&!Lt.SystemLiteral_match.test(E))throw new ke("DocumentType systemId is not a valid SystemLiteral",Vr.InvalidStateError);if(l.internalSubset&&l.internalSubset.indexOf("]>")!==-1)throw new ke('DocumentType internalSubset contains "]>"',Vr.InvalidStateError)}return e.push(Lt.DOCTYPE_DECL_START," ",l.name),v?(e.push(" ",Lt.PUBLIC," ",v),E&&E!=="."&&e.push(" ",E)):E&&E!=="."&&e.push(" ",Lt.SYSTEM," ",E),l.internalSubset&&e.push(" [",l.internalSubset,"]"),e.push(">"),null;case ZE:if(s){if(!Lt.NCName_exact.test(l.target)||l.target.toLowerCase()==="xml")throw new ke('The processing instruction target "'+l.target+'" is not a valid XML NCName or is reserved',Vr.InvalidStateError);if(Lt.InvalidChar.test(l.data))throw new ke("The ProcessingInstruction data contains characters outside the XML Char production",Vr.InvalidStateError);if(l.data.indexOf("?>")!==-1)throw new ke('The ProcessingInstruction data contains "?>"',Vr.InvalidStateError)}return e.push("<?",l.target," ",l.data,"?>"),null;case C5:if(s&&!Lt.Name_exact.test(l.nodeName))throw new ke('The entity reference name "'+l.nodeName+'" is not a valid XML Name',Vr.InvalidStateError);return e.push("&",l.nodeName,";"),null;default:return e.push("??",l.nodeName),null}},exit:function(l,d){d&&d.tag&&e.push("</",d.tag,">")}})}function VY(r,e,t){var i;return Tr(e,null,{enter:function(n,s){var o=n.cloneNode(!1);o.ownerDocument=r,o.parentNode=null,s===null?i=o:s.appendChild(o);var a=n.nodeType===id||t;return a?o:null}}),i}function T5(r,e,t){var i;return Tr(e,null,{enter:function(n,s){var o=new n.constructor(li);for(var a in n)if(rd(n,a)){var c=n[a];typeof c!="object"&&c!=o[a]&&(o[a]=c)}n.childNodes&&(o.childNodes=new hr),o.ownerDocument=r;var l=t;switch(o.nodeType){case en:var d=n.attributes,u=o.attributes=new nd,f=d.length;u._ownerElement=o;for(var h=0;h<f;h++)o.setAttributeNode(T5(r,d.item(h),!0));break;case id:l=!0}return s!==null?s.appendChild(o):i=o,l?o:null}}),i}function U5(r,e,t){r[e]=t}function WE(r){for(var e=[],t=r.firstChild;t;)t.nodeType===en&&e.push(t),t=t.nextSibling;return e}try{Object.defineProperty&&(Object.defineProperty(Zn.prototype,"length",{get:function(){return wy(this),this.$$length}}),Object.defineProperty(nt.prototype,"textContent",{get:function(){if(this.nodeType===en||this.nodeType===da){var r=[];return Tr(this,null,{enter:function(e){if(e.nodeType===en||e.nodeType===da)return!0;if(e.nodeType===ZE||e.nodeType===eB)return null;r.push(e.nodeValue)}}),r.join("")}return this.nodeValue},set:function(r){switch(this.nodeType){case en:case da:for(;this.firstChild;)this.removeChild(this.firstChild);(r||String(r))&&this.appendChild(this.ownerDocument.createTextNode(r));break;default:this.data=r,this.value=r,this.nodeValue=r}}}),Object.defineProperty(fa.prototype,"data",{get:function(){return this._data!=null?this._data:""},set:function(r){this._data=r,this.length=typeof r=="string"?r.length:0}}),Object.defineProperty(fa.prototype,"nodeValue",{get:function(){return this.data},set:function(r){this.data=r},enumerable:!0,configurable:!0}),Object.defineProperty(Vs.prototype,"children",{get:function(){return new Zn(this,WE)}}),Object.defineProperty($s.prototype,"children",{get:function(){return new Zn(this,WE)}}),Object.defineProperty(od.prototype,"children",{get:function(){return new Zn(this,WE)}}),U5=function(r,e,t){r["$$"+e]=t})}catch{}Ht._updateLiveList=wy;Ht.Attr=Pc;Ht.CDATASection=Cy;Ht.CharacterData=fa;Ht.Comment=xy;Ht.Document=$s;Ht.DocumentFragment=od;Ht.DocumentType=Ey;Ht.DOMImplementation=v5;Ht.Element=Vs;Ht.Entity=nB;Ht.EntityReference=By;Ht.LiveNodeList=Zn;Ht.NamedNodeMap=nd;Ht.Node=nt;Ht.NodeList=hr;Ht.Notation=iB;Ht.Text=Tf;Ht.ProcessingInstruction=by;Ht.walkDOM=Tr;Ht.XMLSerializer=F5});var N5=oe(Uf=>{"use strict";var R5=Fc().freeze;Uf.XML_ENTITIES=R5({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});Uf.HTML_ENTITIES=R5({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});Uf.entityMap=Uf.HTML_ENTITIES});var J5=oe(ky=>{"use strict";var ud=Fc(),Ge=YE(),L5=vf(),YY=ud.isHTMLEscapableRawTextElement,WY=ud.isHTMLMimeType,XY=ud.isHTMLRawTextElement,qf=ud.hasOwn,q5=ud.NAMESPACE,ZY=L5.ParseError,eW=L5.DOMException,ad=0,Aa=1,cd=2,Rf=3,ld=4,dd=5,Nf=6,vy=7;function H5(){}H5.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),nW(e,e=Object.create(null)),tW(r,e,t,i,this.errorHandler),i.endDocument()}};var aB=/&#?\w+;?/g;function tW(r,e,t,i,n){var s=WY(i.mimeType);r.indexOf(Ge.UNICODE_REPLACEMENT_CHARACTER)>=0&&n.warning("Unicode replacement character detected, source encoding issues?");function o(K){if(K>65535){K-=65536;var $=55296+(K>>10),te=56320+(K&1023);return String.fromCharCode($,te)}else return String.fromCharCode(K)}function a(K){var $=K[K.length-1]===";"?K:K+";";if(!s&&$!==K)return n.error("EntityRef: expecting ;"),K;var te=Ge.Reference.exec($);if(!te||te[0].length!==$.length)return n.error("entity not matching Reference production: "+K),K;var re=$.slice(1,-1);return qf(t,re)?t[re]:re.charAt(0)==="#"?o(parseInt(re.substring(1).replace("x","0x"))):(n.error("entity not found:"+K),K)}function c(K){if(K>I){var $=r.substring(I,K).replace(aB,a);f&&h(I),i.characters($,0,K-I),I=K}}var l=0,d=0,u=/\r\n?|\n|$/g,f=i.locator;function h(K,$){for(;K>=d&&($=u.exec(r));)l=d,d=$.index+$[0].length,f.lineNumber++;f.columnNumber=K-l+1}for(var g=[{currentNSMap:e}],p=[],I=0;;){try{var m=r.indexOf("<",I);if(m<0){if(!s&&p.length>0)return n.fatalError("unclosed xml tag(s): "+p.join(", "));if(!r.substring(I).match(/^\s*$/)){var w=i.doc,B=w.createTextNode(r.substring(I));if(w.documentElement)return n.error("Extra content at the end of the document");w.appendChild(B),i.currentElement=B}return}if(m>I){var C=r.substring(I,m);!s&&p.length===0&&(C=C.replace(new RegExp(Ge.S_OPT.source,"g"),""),C&&n.error("Unexpected content outside root element: '"+C+"'")),c(m)}switch(r.charAt(m+1)){case"/":var N=r.indexOf(">",m+2),x=r.substring(m+2,N>0?N:void 0);if(!x)return n.fatalError("end tag name missing");var Q=Ge.reg("^",Ge.QName_group,Ge.S_OPT,"$"),R=N>0&&Q.exec(x);if(!R){var U=N>0&&Ge.reg("^",Ge.QName_group).exec(x);if(s&&U)n.warning('end tag name contains invalid trailing characters: "'+x+'"'),R=U;else if(U&&new RegExp(Q.source,Q.flags+"m").test(x))n.error('end tag name is followed by a line break and trailing content: "'+x+'"'),R=U;else return n.fatalError('end tag name contains invalid characters: "'+x+'"')}if(!i.currentElement&&!i.doc.documentElement)return;var T=p[p.length-1]||i.currentElement.tagName||i.doc.documentElement.tagName||"";if(T!==R[1]){var D=R[1].toLowerCase();if(!s||T.toLowerCase()!==D)return n.fatalError('Opening and ending tag mismatch: "'+T+'" != "'+x+'"')}var b=g.pop();p.pop();var _=b.localNSMap;if(i.endElement(b.uri,b.localName,T),_)for(var v in _)qf(_,v)&&i.endPrefixMapping(v);N++;break;case"?":f&&h(m),N=oW(r,m,i,n);break;case"!":f&&h(m),N=G5(r,m,i,n,s);break;default:f&&h(m);var E=new z5,P=g[g.length-1].currentNSMap,N=rW(r,m,E,P,a,n,s),j=E.length;if(E.closed||(s&&ud.isHTMLVoidElement(E.tagName)?E.closed=!0:p.push(E.tagName)),f&&j){for(var z=O5(f,{}),L=0;L<j;L++){var G=E[L];h(G.offset),G.locator=O5(f,{})}i.locator=z,M5(E,i,P)&&g.push(E),i.locator=f}else M5(E,i,P)&&g.push(E);s&&!E.closed?N=iW(r,N,E.tagName,a,i):N++}}catch(K){if(K instanceof ZY)throw K;if(K instanceof eW)return n.fatalError("Error constructing the DOM: "+K.name+": "+K.message,K);n.error("element parse error: "+K),N=-1}N>I?I=N:c(Math.max(m,I)+1)}}function O5(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function rW(r,e,t,i,n,s,o){function a(h,g,p){if(qf(t.attributeNames,h))return s.fatalError("Attribute "+h+" redefined");if(!o&&g.indexOf("<")>=0)return s.fatalError("Unescaped '<' not allowed in attributes values");t.addValue(h,g.replace(/[\t\n\r]/g," ").replace(aB,n),p)}for(var c,l,d=++e,u=ad;;){var f=r.charAt(d);if(u===ad&&f==="<")throw new Error("unexpected < in tag name: "+r.slice(e,d));switch(f){case"=":if(u===Aa)c=r.slice(e,d),u=Rf;else if(u===cd)u=Rf;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(u===Rf||u===Aa)if(u===Aa&&(s.warning('attribute value must after "="'),c=r.slice(e,d)),e=d+1,d=r.indexOf(f,e),d>0)l=r.slice(e,d),a(c,l,e-1),u=dd;else throw new Error("attribute value no end '"+f+"' match");else if(u==ld)l=r.slice(e,d),a(c,l,e),s.warning('attribute "'+c+'" missed start quot('+f+")!!"),e=d+1,u=dd;else throw new Error('attribute value must after "="');break;case"/":switch(u){case ad:t.setTagName(r.slice(e,d));case dd:case Nf:case vy:u=vy,t.closed=!0;case ld:case Aa:break;case cd:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return s.error("unexpected end of input"),u==ad&&t.setTagName(r.slice(e,d)),d;case">":switch(u){case ad:t.setTagName(r.slice(e,d));case dd:case Nf:case vy:break;case ld:case Aa:l=r.slice(e,d),l.slice(-1)==="/"&&(t.closed=!0,l=l.slice(0,-1));case cd:u===cd&&(l=c),u==ld?(s.warning('attribute "'+l+'" missed quot(")!'),a(c,l,e)):(o||s.warning('attribute "'+l+'" missed value!! "'+l+'" instead!!'),a(l,l,e));break;case Rf:if(!o)return s.fatalError(`AttValue: ' or " expected`)}return d;case"\x80":f=" ";default:if(f<=" ")switch(u){case ad:t.setTagName(r.slice(e,d)),u=Nf;break;case Aa:c=r.slice(e,d),u=cd;break;case ld:var l=r.slice(e,d);s.warning('attribute "'+l+'" missed quot(")!!'),a(c,l,e);case dd:u=Nf;break}else switch(u){case cd:o||s.warning('attribute "'+c+'" missed value!! "'+c+'" instead2!!'),a(c,c,e),e=d,u=Aa;break;case dd:s.warning('attribute space is required"'+c+'"!!');case Nf:u=Aa,e=d;break;case Rf:u=ld,e=d;break;case vy:throw new Error("elements closed character '/' and '>' must be connected to")}}d++}}function M5(r,e,t){for(var i=r.tagName,n=null,u=r.length;u--;){var s=r[u],o=s.qName,a=s.value,f=o.indexOf(":");if(f>0)var c=s.prefix=o.slice(0,f),l=o.slice(f+1),d=c==="xmlns"&&l;else l=o,c=null,d=o==="xmlns"&&"";s.localName=l,d!==!1&&(n==null&&(n=Object.create(null),t=Object.create(t)),t[d]=n[d]=a,s.uri=q5.XMLNS,e.startPrefixMapping(d,a))}for(var u=r.length;u--;)s=r[u],s.prefix&&(s.prefix==="xml"&&(s.uri=q5.XML),s.prefix!=="xmlns"&&(s.uri=t[s.prefix]));var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),l=r.localName=i.slice(f+1)):(c=null,l=r.localName=i);var h=r.uri=t[c||""];if(e.startElement(h,l,i,r),r.closed){if(e.endElement(h,l,i),n)for(c in n)qf(n,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=n,!0}function iW(r,e,t,i,n){var s=YY(t);if(s||XY(t)){var o=new RegExp("</"+t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+">","ig");o.lastIndex=e;var a=o.exec(r),c=a?a.index:-1;if(c<0)return e+1;var l=r.substring(e+1,c);return s&&(l=l.replace(aB,i)),n.characters(l,0,l.length),c}return e+1}function nW(r,e){for(var t in r)qf(r,t)&&(e[t]=r[t])}function K5(r,e){var t=e;function i(d){return d=d||0,r.charAt(t+d)}function n(d){d=d||1,t+=d}function s(){for(var d=0;t<r.length;){var u=i();if(u!==" "&&u!==` +`&&u!==" "&&u!=="\r")return d;d++,n()}return-1}function o(){return r.substring(t)}function a(d){return r.substring(t,t+d.length)===d}function c(d){return r.substring(t,t+d.length).toUpperCase()===d.toUpperCase()}function l(d){var u=Ge.reg("^",d),f=u.exec(o());return f?(n(f[0].length),f[0]):null}return{char:i,getIndex:function(){return t},getMatch:l,getSource:function(){return r},skip:n,skipBlanks:s,substringFromIndex:o,substringStartsWith:a,substringStartsWithCaseInsensitive:c}}function sW(r,e){function t(a,c){var l=Ge.PI.exec(a.substringFromIndex());return l?l[1].toLowerCase()==="xml"?c.fatalError("xml declaration is only allowed at the start of the document, but found at position "+a.getIndex()):(a.skip(l[0].length),l[0]):c.fatalError("processing instruction is not well-formed at position "+a.getIndex())}var i=r.getSource();if(r.char()==="["){r.skip(1);for(var n=r.getIndex();r.getIndex()<i.length;){if(r.skipBlanks(),r.char()==="]"){var s=i.substring(n,r.getIndex());return r.skip(1),s}var o=null;if(r.char()==="<"&&r.char(1)==="!")switch(r.char(2)){case"E":r.char(3)==="L"?o=r.getMatch(Ge.elementdecl):r.char(3)==="N"&&(o=r.getMatch(Ge.EntityDecl));break;case"A":o=r.getMatch(Ge.AttlistDecl);break;case"N":o=r.getMatch(Ge.NotationDecl);break;case"-":o=r.getMatch(Ge.Comment);break}else if(r.char()==="<"&&r.char(1)==="?")o=t(r,e);else if(r.char()==="%")o=r.getMatch(Ge.PEReference);else return e.fatalError("Error detected in Markup declaration");if(!o)return e.fatalError("Error in internal subset at position "+r.getIndex())}return e.fatalError("doctype internal subset is not well-formed, missing ]")}}function G5(r,e,t,i,n){var s=K5(r,e);switch(n?s.char(2).toUpperCase():s.char(2)){case"-":var o=s.getMatch(Ge.Comment);return o?(t.comment(o,Ge.COMMENT_START.length,o.length-Ge.COMMENT_START.length-Ge.COMMENT_END.length),s.getIndex()):i.fatalError("comment is not well-formed at position "+s.getIndex());case"[":var a=s.getMatch(Ge.CDSect);return a?!n&&!t.currentElement?i.fatalError("CDATA outside of element"):(t.startCDATA(),t.characters(a,Ge.CDATA_START.length,a.length-Ge.CDATA_START.length-Ge.CDATA_END.length),t.endCDATA(),s.getIndex()):i.fatalError("Invalid CDATA starting at position "+e);case"D":{if(t.doc&&t.doc.documentElement)return i.fatalError("Doctype not allowed inside or after documentElement at position "+s.getIndex());if(n?!s.substringStartsWithCaseInsensitive(Ge.DOCTYPE_DECL_START):!s.substringStartsWith(Ge.DOCTYPE_DECL_START))return i.fatalError("Expected "+Ge.DOCTYPE_DECL_START+" at position "+s.getIndex());if(s.skip(Ge.DOCTYPE_DECL_START.length),s.skipBlanks()<1)return i.fatalError("Expected whitespace after "+Ge.DOCTYPE_DECL_START+" at position "+s.getIndex());var c={name:void 0,publicId:void 0,systemId:void 0,internalSubset:void 0};if(c.name=s.getMatch(Ge.Name),!c.name)return i.fatalError("doctype name missing or contains unexpected characters at position "+s.getIndex());if(n&&c.name.toLowerCase()!=="html"&&i.warning("Unexpected DOCTYPE in HTML document at position "+s.getIndex()),s.skipBlanks(),s.substringStartsWith(Ge.PUBLIC)||s.substringStartsWith(Ge.SYSTEM)){var l=Ge.ExternalID_match.exec(s.substringFromIndex());if(!l)return i.fatalError("doctype external id is not well-formed at position "+s.getIndex());l.groups.SystemLiteralOnly!==void 0?c.systemId=l.groups.SystemLiteralOnly:(c.systemId=l.groups.SystemLiteral,c.publicId=l.groups.PubidLiteral),s.skip(l[0].length)}else if(n&&s.substringStartsWithCaseInsensitive(Ge.SYSTEM)){if(s.skip(Ge.SYSTEM.length),s.skipBlanks()<1)return i.fatalError("Expected whitespace after "+Ge.SYSTEM+" at position "+s.getIndex());if(c.systemId=s.getMatch(Ge.ABOUT_LEGACY_COMPAT_SystemLiteral),!c.systemId)return i.fatalError("Expected "+Ge.ABOUT_LEGACY_COMPAT+" in single or double quotes after "+Ge.SYSTEM+" at position "+s.getIndex())}return n&&c.systemId&&!Ge.ABOUT_LEGACY_COMPAT_SystemLiteral.test(c.systemId)&&i.warning("Unexpected doctype.systemId in HTML document at position "+s.getIndex()),n||(s.skipBlanks(),c.internalSubset=sW(s,i)),s.skipBlanks(),s.char()!==">"?i.fatalError("doctype not terminated with > at position "+s.getIndex()):(s.skip(1),t.startDTD(c.name,c.publicId,c.systemId,c.internalSubset),t.endDTD(),s.getIndex())}default:return i.fatalError('Not well-formed XML starting with "<!" at position '+e)}}function oW(r,e,t,i){var n=r.substring(e).match(Ge.PI);if(!n)return i.fatalError("Invalid processing instruction starting at position "+e);if(n[1].toLowerCase()==="xml"){if(e>0)return i.fatalError("processing instruction at position "+e+" is an xml declaration which is only at the start of the document");if(!Ge.XMLDecl.test(r.substring(e)))return i.fatalError("xml declaration is not well-formed")}return t.processingInstruction(n[1],n[2]),e+n[0].length}function z5(){this.attributeNames=Object.create(null)}z5.prototype={setTagName:function(r){if(!Ge.QName_exact.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!Ge.QName_exact.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};ky.XMLReader=H5;ky.parseUtils=K5;ky.parseDoctypeCommentOrCData=G5});var Z5=oe(Ad=>{"use strict";var Tc=Fc(),aW=oB(),cW=vf(),j5=N5(),lW=J5(),dW=aW.DOMImplementation,uW=Tc.hasDefaultHTMLNamespace,fW=Tc.isHTMLMimeType,AW=Tc.isValidMimeType,Y5=Tc.MIME_TYPE,cB=Tc.NAMESPACE,$5=cW.ParseError,hW=lW.XMLReader;function W5(r){return r.replace(/\r[\n\u0085]/g,` `).replace(/[\r\u0085\u2028\u2029]/g,` -`)}function QP(r){if(r=r||{},r.locator===void 0&&(r.locator=!0),this.assign=r.assign||Ec.assign,this.domHandler=r.domHandler||cy,this.onError=r.onError||r.errorHandler,r.errorHandler&&typeof r.errorHandler!="function")throw new TypeError("errorHandler object is no longer supported, switch to onError!");r.errorHandler&&r.errorHandler("warning","The `errorHandler` option has been deprecated, use `onError` instead!",this),this.normalizeLineEndings=r.normalizeLineEndings||DP,this.locator=!!r.locator,this.xmlns=this.assign(Object.create(null),r.xmlns)}QP.prototype.parseFromString=function(r,e){if(!uV(e))throw new TypeError('DOMParser.parseFromString: the provided mimeType "'+e+'" is not valid.');var t=this.assign(Object.create(null),this.xmlns),i=bP.XML_ENTITIES,n=t[""]||null;lV(e)?(i=bP.HTML_ENTITIES,n=PE.HTML):e===SP.XML_SVG_IMAGE&&(n=PE.SVG),t[""]=n,t.xml=t.xml||PE.XML;var s=new this.domHandler({mimeType:e,defaultNamespace:n,onError:this.onError}),o=this.locator?{}:void 0;this.locator&&s.setDocumentLocator(o);var a=new fV;a.errorHandler=s,a.domBuilder=s;var c=!Ec.isHTMLMimeType(e);return c&&typeof r!="string"&&a.errorHandler.fatalError("source is not a string"),a.parse(this.normalizeLineEndings(String(r)),t,i),s.doc.documentElement||a.errorHandler.fatalError("missing root element"),s.doc};function cy(r){var e=r||{};this.mimeType=e.mimeType||SP.XML_APPLICATION,this.defaultNamespace=e.defaultNamespace||null,this.cdata=!1,this.currentElement=void 0,this.doc=void 0,this.locator=void 0,this.onError=e.onError}function rd(r,e){e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber}cy.prototype={startDocument:function(){var r=new cV;this.doc=dV(this.mimeType)?r.createHTMLDocument(!1):r.createDocument(this.defaultNamespace,"")},startElement:function(r,e,t,i){var n=this.doc,s=n.createElementNS(r,t||e),o=i.length;ay(this,s),this.currentElement=s,this.locator&&rd(this.locator,s);for(var a=0;a<o;a++){var r=i.getURI(a),c=i.getValue(a),t=i.getQName(a),l=n.createAttributeNS(r,t);this.locator&&rd(i.getLocator(a),l),l.value=l.nodeValue=c,s.setAttributeNode(l)}},endElement:function(r,e,t){this.currentElement=this.currentElement.parentNode},startPrefixMapping:function(r,e){},endPrefixMapping:function(r){},processingInstruction:function(r,e){var t=this.doc.createProcessingInstruction(r,e);this.locator&&rd(this.locator,t),ay(this,t)},ignorableWhitespace:function(r,e,t){},characters:function(r,e,t){if(r=kP.apply(this,arguments),r){if(this.cdata)var i=this.doc.createCDATASection(r);else var i=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(r)&&this.doc.appendChild(i),this.locator&&rd(this.locator,i)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){r&&(r.lineNumber=0),this.locator=r},comment:function(r,e,t){r=kP.apply(this,arguments);var i=this.doc.createComment(r);this.locator&&rd(this.locator,i),ay(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,e,t,i){var n=this.doc.implementation;if(n&&n.createDocumentType){var s=n.createDocumentType(r,e,t,i);this.locator&&rd(this.locator,s),ay(this,s),this.doc.doctype=s}},reportError:function(r,e){if(typeof this.onError=="function")try{this.onError(r,e,this)}catch(t){throw new vP("Reporting "+r+' "'+e+'" caused '+t,this.locator)}else console.error("[xmldom "+r+"] "+e,AV(this.locator))},warning:function(r){this.reportError("warning",r)},error:function(r){this.reportError("error",r)},fatalError:function(r,e){throw this.reportError("fatalError",r),new vP(r,this.locator,e)}};function AV(r){if(r)return` -@#[line:`+r.lineNumber+",col:"+r.columnNumber+"]"}function kP(r,e,t){return typeof r=="string"?r.substr(e,t):r.length>=e+t||e?new java.lang.String(r,e,t)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){cy.prototype[r]=function(){return null}});function ay(r,e){r.currentElement?r.currentElement.appendChild(e):r.doc.appendChild(e)}function hV(r){if(r==="error")throw"onErrorStopParsing"}function gV(){throw"onWarningStopParsing"}id.__DOMHandler=cy;id.DOMParser=QP;id.normalizeLineEndings=DP;id.onErrorStopParsing=hV;id.onWarningStopParsing=gV});var FP=oe(ot=>{"use strict";var nd=xc();ot.assign=nd.assign;ot.hasDefaultHTMLNamespace=nd.hasDefaultHTMLNamespace;ot.isHTMLMimeType=nd.isHTMLMimeType;ot.isValidMimeType=nd.isValidMimeType;ot.MIME_TYPE=nd.MIME_TYPE;ot.NAMESPACE=nd.NAMESPACE;var ly=ff();ot.DOMException=ly.DOMException;ot.DOMExceptionName=ly.DOMExceptionName;ot.ExceptionCode=ly.ExceptionCode;ot.ParseError=ly.ParseError;var hr=_E();ot.Attr=hr.Attr;ot.CDATASection=hr.CDATASection;ot.CharacterData=hr.CharacterData;ot.Comment=hr.Comment;ot.Document=hr.Document;ot.DocumentFragment=hr.DocumentFragment;ot.DocumentType=hr.DocumentType;ot.DOMImplementation=hr.DOMImplementation;ot.Element=hr.Element;ot.Entity=hr.Entity;ot.EntityReference=hr.EntityReference;ot.LiveNodeList=hr.LiveNodeList;ot.NamedNodeMap=hr.NamedNodeMap;ot.Node=hr.Node;ot.NodeList=hr.NodeList;ot.Notation=hr.Notation;ot.ProcessingInstruction=hr.ProcessingInstruction;ot.Text=hr.Text;ot.XMLSerializer=hr.XMLSerializer;var dy=_P();ot.DOMParser=dy.DOMParser;ot.normalizeLineEndings=dy.normalizeLineEndings;ot.onErrorStopParsing=dy.onErrorStopParsing;ot.onWarningStopParsing=dy.onWarningStopParsing});function PP(r){if(typeof r=="string")return r.trim()||void 0;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Array.isArray(r)&&r.length>0){let e=r[0];return(e?.nodeValue??e?.textContent??"").trim()||void 0}}function mV(r){let e=r;return e=e.replace(/<!DOCTYPE[^>]*>/gi,""),e=e.replace(/<!--[\s\S]*?-->/g,""),e=e.replace(new RegExp(`<(${pV})([^>]*?)/?>`,"gi"),"<$1$2/>"),e}function UP(r,e,t,i,n,s){let o=new TP.DOMParser({onError:()=>{}}).parseFromString(mV(r),"text/xml"),a=bf.select(e,o),c=[];for(let l of a)try{let d=bf.select(t,l);if(d.length===0)continue;let u=d[0],f="",h="";if(u.nodeType===1){let y=u;f=y.textContent?.trim()||"",h=y.getAttribute("href")||""}else if(u.nodeType===2){let y=u;f=y.value.trim(),h=y.value}else f=u.textContent?.trim()||"";let g=f.endsWith("/");if(g&&(f=f.slice(0,-1)),!f||s.includes(f))continue;let p=PP(bf.select(i,l)),I=PP(bf.select(n,l));c.push({name:f,url:h,isDir:g,size:p,modified:I})}catch{}return c}function IV(r){for(let e=r.length-1;e>=0;e--)if(r[e]>="0"&&r[e]<="9")return[r.slice(0,e+1).trim(),r.slice(e+1).trim()];return["",r]}function RP(r){if(!r||r.trim()==="-")return 0;let e=r.trim(),[t,i]=IV(e),n=i.toLowerCase(),s=yV[n]??1,o=parseFloat(t);return isNaN(o)?0:Math.round(o*s)}function NP(r,e){if(!r)return new Date().toISOString();try{let t=r.match(/(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2})/);if(t){let[,n,s,o,a,c]=t;return new Date(`${n}-${s}-${o}T${a}:${c}:00`).toISOString()}let i=new Date(r);if(!isNaN(i.getTime()))return i.toISOString()}catch{}return new Date().toISOString()}var bf,TP,pV,yV,qP=j(()=>{"use strict";bf=Qr(kF(),1),TP=Qr(FP(),1);pV="area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr";yV={"":1,b:1,byte:1,bytes:1,k:1024,kb:1024,kib:1024,m:1<<20,mb:1<<20,mib:1<<20,g:1<<30,gb:1<<30,gib:1<<30,t:256,tb:256,tib:256,p:1<<50,pb:1<<50,pib:1<<50}});function wV(r){let e={...r||{}};return e.url=(e.url||"").trim(),e.url&&!/:\/\//.test(e.url)&&(e.url="https://"+e.url),e.url&&!e.url.endsWith("/")&&(e.url+="/"),e.item_xpath=e.item_xpath||OP,e.name_xpath=e.name_xpath||MP,e.size_xpath=e.size_xpath||LP,e.modified_xpath=e.modified_xpath||HP,e.modified_time_format=e.modified_time_format||"",e.ignore_file_names=e.ignore_file_names||"",e}var OP,MP,LP,HP,uy,KP=j(()=>{"use strict";Be();He();qP();OP="//pre/a",MP="@href",LP="string(following-sibling::text()[1])",HP="string(following-sibling::text()[2])";uy=class{addition;ignoreNames=[];constructor(e){this.addition=wV(e),this.addition.ignore_file_names&&(this.ignoreNames=this.addition.ignore_file_names.split(/\r?\n|,/).map(t=>t.trim()).filter(t=>t))}async init(){if(!this.addition.url)throw new Error("url is required")}cleanRel(e){return(e||"").split("/").filter(Boolean).join("/")}buildDirURL(e){let t=this.cleanRel(e);return this.addition.url+t+(t?"/":"")}nodeToFileItem(e,t){let i=new URL(e.url,t).toString(),n=e.isDir;return{name:e.name,size:e.size?RP(e.size):0,is_dir:n,modified:e.modified?NP(e.modified,this.addition.modified_time_format||""):new Date().toISOString(),sign:"",type:X(e.name,n),raw_url:n?"":i}}async list(e,t){let i=this.buildDirURL(t),n=await fetch(i);if(!n.ok)throw new Error(`Failed to fetch ${i}: HTTP ${n.status}`);let s=await n.text(),a=UP(s,this.addition.item_xpath||OP,this.addition.name_xpath||MP,this.addition.size_xpath||LP,this.addition.modified_xpath||HP,this.ignoreNames).filter(c=>c.name!==".."&&c.name!==".").map(c=>this.nodeToFileItem(c,i));return de(a,"name","asc")}async get(e,t){let i=this.cleanRel(t),n=i.split("/").filter(Boolean).pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.addition.url,type:1};let s=this.addition.url+i;return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:s,type:X(n,!1),raw_url:s}}async mkdir(e,t){throw new Error("AutoIndex is read-only")}async rename(e,t,i){throw new Error("AutoIndex is read-only")}async remove(e,t,i){throw new Error("AutoIndex is read-only")}async move(e,t,i,n,s){throw new Error("AutoIndex is read-only")}async copy(e,t,i,n,s){throw new Error("AutoIndex is read-only")}async put(e,t,i){throw new Error("AutoIndex is read-only")}}});var ia,GP,zP,JP,jP,$P,VP,Hye,YP,Kye,WP,XP,ZP,e5,Gye,t5,TE=j(()=>{"use strict";ia="https://drive.proton.me/api",GP="https://account.proton.me/api/auth/info",zP="https://account.proton.me/api/auth/v4",JP="https://account.proton.me/api/auth/v4/2fa",jP="https://account.proton.me/api/auth/v4/refresh",$P=ia+"/core/v4/keys/salts",VP=ia+"/core/v4/users",Hye=ia+"/core/v4/addresses",YP=ia+"/drive/shares",Kye=ia+"/drive/volumes",WP="application/vnd.protonmail.v1+json",XP="js@0.3.0",ZP="ProtonDrive/v1.70.0 (Windows NT 10.0.22000; Win64; x64)",e5="web-drive@5.2.0+0f69f7a8",Gye=4*1024*1024,t5=1});var i5=oe((r5,na)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof wt=="function"&&typeof na=="object"&&na&&na.exports?na.exports=e():(r.dcodeIO=r.dcodeIO||{}).bcrypt=e()})(r5,function(){"use strict";var r={},e=null;function t(D){if(typeof na<"u"&&na&&na.exports)try{return wt("crypto").randomBytes(D)}catch{}try{var B;return(self.crypto||self.msCrypto).getRandomValues(B=new Uint32Array(D)),Array.prototype.slice.call(B)}catch{}if(!e)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return e(D)}var i=!1;try{t(1),i=!0}catch{}e=null,r.setRandomFallback=function(D){e=D},r.genSaltSync=function(D,B){if(D=D||g,typeof D!="number")throw Error("Illegal arguments: "+typeof D+", "+typeof B);D<4?D=4:D>31&&(D=31);var Q=[];return Q.push("$2a$"),D<10&&Q.push("0"),Q.push(D.toString()),Q.push("$"),Q.push(d(t(h),h)),Q.join("")},r.genSalt=function(D,B,Q){if(typeof B=="function"&&(Q=B,B=void 0),typeof D=="function"&&(Q=D,D=void 0),typeof D>"u")D=g;else if(typeof D!="number")throw Error("illegal arguments: "+typeof D);function v(E){s(function(){try{E(null,r.genSaltSync(D))}catch(P){E(P)}})}if(Q){if(typeof Q!="function")throw Error("Illegal callback: "+typeof Q);v(Q)}else return new Promise(function(E,P){v(function(N,J){if(N){P(N);return}E(J)})})},r.hashSync=function(D,B){if(typeof B>"u"&&(B=g),typeof B=="number"&&(B=r.genSaltSync(B)),typeof D!="string"||typeof B!="string")throw Error("Illegal arguments: "+typeof D+", "+typeof B);return T(D,B)},r.hash=function(D,B,Q,v){function E(P){typeof D=="string"&&typeof B=="number"?r.genSalt(B,function(N,J){T(D,J,P,v)}):typeof D=="string"&&typeof B=="string"?T(D,B,P,v):s(P.bind(this,Error("Illegal arguments: "+typeof D+", "+typeof B)))}if(Q){if(typeof Q!="function")throw Error("Illegal callback: "+typeof Q);E(Q)}else return new Promise(function(P,N){E(function(J,z){if(J){N(J);return}P(z)})})};function n(D,B){for(var Q=0,v=0,E=0,P=D.length;E<P;++E)D.charCodeAt(E)===B.charCodeAt(E)?++Q:++v;return Q<0?!1:v===0}r.compareSync=function(D,B){if(typeof D!="string"||typeof B!="string")throw Error("Illegal arguments: "+typeof D+", "+typeof B);return B.length!==60?!1:n(r.hashSync(D,B.substr(0,B.length-31)),B)},r.compare=function(D,B,Q,v){function E(P){if(typeof D!="string"||typeof B!="string"){s(P.bind(this,Error("Illegal arguments: "+typeof D+", "+typeof B)));return}if(B.length!==60){s(P.bind(this,null,!1));return}r.hash(D,B.substr(0,29),function(N,J){N?P(N):P(null,n(J,B))},v)}if(Q){if(typeof Q!="function")throw Error("Illegal callback: "+typeof Q);E(Q)}else return new Promise(function(P,N){E(function(J,z){if(J){N(J);return}P(z)})})},r.getRounds=function(D){if(typeof D!="string")throw Error("Illegal arguments: "+typeof D);return parseInt(D.split("$")[2],10)},r.getSalt=function(D){if(typeof D!="string")throw Error("Illegal arguments: "+typeof D);if(D.length!==60)throw Error("Illegal hash length: "+D.length+" != 60");return D.substring(0,29)};var s=typeof process<"u"&&process&&typeof process.nextTick=="function"?typeof setImmediate=="function"?setImmediate:process.nextTick:setTimeout;function o(D){var B=[],Q=0;return f.encodeUTF16toUTF8(function(){return Q>=D.length?null:D.charCodeAt(Q++)},function(v){B.push(v)}),B}var a="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),c=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],l=String.fromCharCode;function d(D,B){var Q=0,v=[],E,P;if(B<=0||B>D.length)throw Error("Illegal len: "+B);for(;Q<B;){if(E=D[Q++]&255,v.push(a[E>>2&63]),E=(E&3)<<4,Q>=B){v.push(a[E&63]);break}if(P=D[Q++]&255,E|=P>>4&15,v.push(a[E&63]),E=(P&15)<<2,Q>=B){v.push(a[E&63]);break}P=D[Q++]&255,E|=P>>6&3,v.push(a[E&63]),v.push(a[P&63])}return v.join("")}function u(D,B){var Q=0,v=D.length,E=0,P=[],N,J,z,L,G,K;if(B<=0)throw Error("Illegal len: "+B);for(;Q<v-1&&E<B&&(K=D.charCodeAt(Q++),N=K<c.length?c[K]:-1,K=D.charCodeAt(Q++),J=K<c.length?c[K]:-1,!(N==-1||J==-1||(G=N<<2>>>0,G|=(J&48)>>4,P.push(l(G)),++E>=B||Q>=v)||(K=D.charCodeAt(Q++),z=K<c.length?c[K]:-1,z==-1)||(G=(J&15)<<4>>>0,G|=(z&60)>>2,P.push(l(G)),++E>=B||Q>=v)));)K=D.charCodeAt(Q++),L=K<c.length?c[K]:-1,G=(z&3)<<6>>>0,G|=L,P.push(l(G)),++E;var $=[];for(Q=0;Q<E;Q++)$.push(P[Q].charCodeAt(0));return $}var f=(function(){"use strict";var D={};return D.MAX_CODEPOINT=1114111,D.encodeUTF8=function(B,Q){var v=null;for(typeof B=="number"&&(v=B,B=function(){return null});v!==null||(v=B())!==null;)v<128?Q(v&127):v<2048?(Q(v>>6&31|192),Q(v&63|128)):v<65536?(Q(v>>12&15|224),Q(v>>6&63|128),Q(v&63|128)):(Q(v>>18&7|240),Q(v>>12&63|128),Q(v>>6&63|128),Q(v&63|128)),v=null},D.decodeUTF8=function(B,Q){for(var v,E,P,N,J=function(z){z=z.slice(0,z.indexOf(null));var L=Error(z.toString());throw L.name="TruncatedError",L.bytes=z,L};(v=B())!==null;)if((v&128)===0)Q(v);else if((v&224)===192)(E=B())===null&&J([v,E]),Q((v&31)<<6|E&63);else if((v&240)===224)((E=B())===null||(P=B())===null)&&J([v,E,P]),Q((v&15)<<12|(E&63)<<6|P&63);else if((v&248)===240)((E=B())===null||(P=B())===null||(N=B())===null)&&J([v,E,P,N]),Q((v&7)<<18|(E&63)<<12|(P&63)<<6|N&63);else throw RangeError("Illegal starting byte: "+v)},D.UTF16toUTF8=function(B,Q){for(var v,E=null;(v=E!==null?E:B())!==null;){if(v>=55296&&v<=57343&&(E=B())!==null&&E>=56320&&E<=57343){Q((v-55296)*1024+E-56320+65536),E=null;continue}Q(v)}E!==null&&Q(E)},D.UTF8toUTF16=function(B,Q){var v=null;for(typeof B=="number"&&(v=B,B=function(){return null});v!==null||(v=B())!==null;)v<=65535?Q(v):(v-=65536,Q((v>>10)+55296),Q(v%1024+56320)),v=null},D.encodeUTF16toUTF8=function(B,Q){D.UTF16toUTF8(B,function(v){D.encodeUTF8(v,Q)})},D.decodeUTF8toUTF16=function(B,Q){D.decodeUTF8(B,function(v){D.UTF8toUTF16(v,Q)})},D.calculateCodePoint=function(B){return B<128?1:B<2048?2:B<65536?3:4},D.calculateUTF8=function(B){for(var Q,v=0;(Q=B())!==null;)v+=D.calculateCodePoint(Q);return v},D.calculateUTF16asUTF8=function(B){var Q=0,v=0;return D.UTF16toUTF8(B,function(E){++Q,v+=D.calculateCodePoint(E)}),[Q,v]},D})();Date.now=Date.now||function(){return+new Date};var h=16,g=10,p=16,I=100,y=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],w=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],C=[1332899944,1700884034,1701343084,1684370003,1668446532,1869963892];function b(D,B,Q,v){var E,P=D[B],N=D[B+1];return P^=Q[0],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[1],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[2],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[3],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[4],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[5],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[6],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[7],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[8],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[9],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[10],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[11],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[12],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[13],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[14],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^Q[15],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^Q[16],D[B]=N^Q[p+1],D[B+1]=P,D}function x(D,B){for(var Q=0,v=0;Q<4;++Q)v=v<<8|D[B]&255,B=(B+1)%D.length;return{key:v,offp:B}}function _(D,B,Q){for(var v=0,E=[0,0],P=B.length,N=Q.length,J,z=0;z<P;z++)J=x(D,v),v=J.offp,B[z]=B[z]^J.key;for(z=0;z<P;z+=2)E=b(E,0,B,Q),B[z]=E[0],B[z+1]=E[1];for(z=0;z<N;z+=2)E=b(E,0,B,Q),Q[z]=E[0],Q[z+1]=E[1]}function R(D,B,Q,v){for(var E=0,P=[0,0],N=Q.length,J=v.length,z,L=0;L<N;L++)z=x(B,E),E=z.offp,Q[L]=Q[L]^z.key;for(E=0,L=0;L<N;L+=2)z=x(D,E),E=z.offp,P[0]^=z.key,z=x(D,E),E=z.offp,P[1]^=z.key,P=b(P,0,Q,v),Q[L]=P[0],Q[L+1]=P[1];for(L=0;L<J;L+=2)z=x(D,E),E=z.offp,P[0]^=z.key,z=x(D,E),E=z.offp,P[1]^=z.key,P=b(P,0,Q,v),v[L]=P[0],v[L+1]=P[1]}function U(D,B,Q,v,E){var P=C.slice(),N=P.length,J;if(Q<4||Q>31)if(J=Error("Illegal number of rounds (4-31): "+Q),v){s(v.bind(this,J));return}else throw J;if(B.length!==h)if(J=Error("Illegal salt length: "+B.length+" != "+h),v){s(v.bind(this,J));return}else throw J;Q=1<<Q>>>0;var z,L,G=0,K;Int32Array?(z=new Int32Array(y),L=new Int32Array(w)):(z=y.slice(),L=w.slice()),R(B,D,z,L);function $(){if(E&&E(G/Q),G<Q)for(var re=Date.now();G<Q&&(G=G+1,_(D,z,L),_(B,z,L),!(Date.now()-re>I)););else{for(G=0;G<64;G++)for(K=0;K<N>>1;K++)b(P,K<<1,z,L);var ee=[];for(G=0;G<N;G++)ee.push((P[G]>>24&255)>>>0),ee.push((P[G]>>16&255)>>>0),ee.push((P[G]>>8&255)>>>0),ee.push((P[G]&255)>>>0);if(v){v(null,ee);return}else return ee}v&&s($)}if(typeof v<"u")$();else for(var te;;)if(typeof(te=$())<"u")return te||[]}function T(D,B,Q,v){var E;if(typeof D!="string"||typeof B!="string")if(E=Error("Invalid string / salt: Not a string"),Q){s(Q.bind(this,E));return}else throw E;var P,N;if(B.charAt(0)!=="$"||B.charAt(1)!=="2")if(E=Error("Invalid salt version: "+B.substring(0,2)),Q){s(Q.bind(this,E));return}else throw E;if(B.charAt(2)==="$")P="\0",N=3;else{if(P=B.charAt(2),P!=="a"&&P!=="b"&&P!=="y"||B.charAt(3)!=="$")if(E=Error("Invalid salt revision: "+B.substring(2,4)),Q){s(Q.bind(this,E));return}else throw E;N=4}if(B.charAt(N+2)>"$")if(E=Error("Missing salt rounds"),Q){s(Q.bind(this,E));return}else throw E;var J=parseInt(B.substring(N,N+1),10)*10,z=parseInt(B.substring(N+1,N+2),10),L=J+z,G=B.substring(N+3,N+25);D+=P>="a"?"\0":"";var K=o(D),$=u(G,h);function te(re){var ee=[];return ee.push("$2"),P>="a"&&ee.push(P),ee.push("$"),L<10&&ee.push("0"),ee.push(L.toString()),ee.push("$"),ee.push(d($,$.length)),ee.push(d(re,C.length*4-1)),ee.join("")}if(typeof Q>"u")return te(U(K,$,L));U(K,$,L,function(re,ee){re?Q(re,null):Q(null,te(ee))},v)}return r.encodeBase64=d,r.decodeBase64=u,r})});var UE=oe((jye,n5)=>{n5.exports=i5()});function sd(r){let e="0x";for(let t of r)e+=t.toString(16).padStart(2,"0");return BigInt(e)}function vf(r,e){let t=r.toString(16);t.length%2!==0&&(t="0"+t);let i=new Uint8Array(t.length/2);for(let n=0;n<i.length;n++)i[n]=parseInt(t.slice(n*2,n*2+2),16);if(e!==void 0&&i.length<e){let n=new Uint8Array(e);return n.set(i,e-i.length),n}return i}function xV(...r){let e=r.reduce((n,s)=>n+s.length,0),t=new Uint8Array(e),i=0;for(let n of r)t.set(n,i),i+=n.length;return t}function CV(r,e){let t=Math.max(r.length,e.length),i=new Uint8Array(t);for(let n=0;n<t;n++)i[n]=(r[n]||0)^(e[n]||0);return i}async function Bc(...r){let e=r.length===1?r[0]:xV(...r),t=await crypto.subtle.digest("SHA-256",e);return new Uint8Array(t)}function RE(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function s5(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}function EV(r){return r.length>1&&r[0]===0?r.slice(1):r}function NE(r,e,t){if(t===1n)return 0n;let i=1n,n=r%t,s=e;for(;s>0n;)s&1n&&(i=i*n%t),n=n*n%t,s>>=1n;return i}function BV(r){let e="",t=0,i=0;for(let n of r)for(i=i<<8|n,t+=8;t>=6;)t-=6,e+=qE[i>>t&63];return t>0&&(e+=qE[i<<6-t&63]),e}function bV(r,e,t){if(r<2)return new TextEncoder().encode(e);let n=`$2a$10$${BV(t).padEnd(22,".")}`,o=o5.default.hashSync(e,n).slice(n.length);return vV(o)}function vV(r){let e=[],t=0,i=0;for(let n of r){let s=qE.indexOf(n);s<0||(t=t<<6|s,i+=6,i>=8&&(i-=8,e.push(t>>i&255)))}return new Uint8Array(e)}async function a5(r,e,t){let i=t.Version??4,n=EV(RE(t.Modulus)),s=sd(n),o=sd(RE(t.ServerEphemeral)),a=RE(t.Salt);if(o%s===0n)throw new Error("invalid server ephemeral (B % N == 0)");let c=bV(i,e,a),l=await Bc(a,c),d=sd(l),u=crypto.getRandomValues(new Uint8Array(32)),f=sd(u),h=NE(fy,f,s),g=vf(h,n.length),p=0n;if(i>=2){let v=vf(fy,n.length),E=await Bc(n,v);p=sd(E)}let I=vf(o,n.length),y=await Bc(g,I),w=sd(y),C=NE(fy,d,s),b=(o-p*C%s)%s;b<0n&&(b+=s);let x=f+w*d,_=NE(b,x,s),R=vf(_,n.length),U=await Bc(n),T=await Bc(vf(fy)),D=await Bc(new TextEncoder().encode(r)),B=CV(U,T),Q=await Bc(B,D,a,g,I,R);return{ClientEphemeral:s5(g),ClientProof:s5(Q),SRPSession:t.SRPSession}}var o5,fy,qE,c5=j(()=>{"use strict";o5=Qr(UE(),1),fy=2n;qE="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"});import{createRequire as S6}from"module";import*as Mi from"node:crypto";function kV(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in r)){var n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(r,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(r)}function St(r){return r&&r.getReader&&Array.isArray(r)}function cA(r){if(!St(r)){let e=r.getWriter(),t=e.releaseLock;return e.releaseLock=()=>{e.closed.catch(function(){}),t.call(e)},e}this.stream=r}function or(r){if(St(r))return"array";if(eo.ReadableStream&&eo.ReadableStream.prototype.isPrototypeOf(r))return"web";if(r&&!(eo.ReadableStream&&r instanceof eo.ReadableStream)&&typeof r._read=="function"&&typeof r._readableState=="object")throw new Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return r&&r.getReader?"web-like":!1}function yI(r){return Uint8Array.prototype.isPrototypeOf(r)}function _6(r){if(r.length===1)return r[0];let e=0;for(let n=0;n<r.length;n++){if(!yI(r[n]))throw new Error("concatUint8Array: Data must be in the form of a Uint8Array");e+=r[n].length}let t=new Uint8Array(e),i=0;return r.forEach(function(n){t.set(n,i),i+=n.length}),t}function gs(r){if(this.stream=r,r[xt]&&(this[xt]=r[xt].slice()),St(r)){let i=r.getReader();this._read=i.read.bind(i),this._releaseLock=()=>{},this._cancel=()=>{};return}if(or(r)){let i=r.getReader();this._read=i.read.bind(i),this._releaseLock=()=>{i.closed.catch(function(){}),i.releaseLock()},this._cancel=i.cancel.bind(i);return}let t=!1;this._read=async()=>t||l5.has(r)?{value:void 0,done:!0}:(t=!0,{value:r,done:!1}),this._releaseLock=()=>{if(t)try{l5.add(r)}catch{}}}function lA(r){return or(r)?r:new ReadableStream({start(e){e.enqueue(r),e.close()}})}function F6(r){let e=or(r);if(e){if(e!=="array")throw new Error("Can't convert Stream to ArrayStream here, call `readToEnd` first");return r}let t=new on;return(async()=>{let i=Hi(t);await i.write(r),await i.close()})(),t}function di(r){return r.some(e=>or(e)&&!St(e))?SV(r):r.some(e=>St(e))?DV(r):typeof r[0]=="string"?r.join(""):_6(r)}function SV(r){let e=r.map(lA),t=P6(async function(s){await Promise.all(n.map(o=>pB(o,s)))}),i=Promise.resolve(),n=e.map((s,o)=>Ba(s,(a,c)=>(i=i.then(()=>Pd(a,t.writable,{preventClose:o!==e.length-1})),i)));return t.readable}function DV(r){let e=new on,t=Promise.resolve();return r.forEach((i,n)=>(t=t.then(()=>Pd(i,e,{preventClose:n!==r.length-1})),t)),e}async function Pd(r,e,{preventClose:t=!1,preventAbort:i=!1,preventCancel:n=!1}={}){if(or(r)&&!St(r)&&!St(e)){r=lA(r);try{if(r[xt]){let a=Hi(e);for(let c=0;c<r[xt].length;c++)await a.ready,await a.write(r[xt][c]);a.releaseLock()}await r.pipeTo(e,{preventClose:t,preventAbort:i,preventCancel:n})}catch{}return}or(r)||(r=F6(r));let s=_n(r),o=Hi(e);try{for(;;){await o.ready;let{done:a,value:c}=await s.read();if(a){t||await o.close();break}await o.write(c)}}catch(a){i||await o.abort(a)}finally{s.releaseLock(),o.releaseLock()}}function P6(r){let e=!1,t=!1,i,n,s;return{readable:new ReadableStream({start(o){s=o},pull(){i?i():e=!0},async cancel(o){t=!0,r&&await r(o),n&&n(o)}},{highWaterMark:0}),writable:new WritableStream({write:async function(o){if(t)throw new Error("Stream is cancelled");s.enqueue(o),e?e=!1:(await new Promise((a,c)=>{i=a,n=c}),i=null,n=null)},close:s.close.bind(s),abort:s.error.bind(s)})}}function sr(r,e=()=>{},t=()=>{},i={highWaterMark:0}){if(or(r))return T6(r,e,t,i);let n=e(r),s=t();return n!==void 0&&s!==void 0?di([n,s]):n!==void 0?n:s}async function gB(r,e=async()=>{},t=async()=>{},i={highWaterMark:1}){if(or(r))return T6(r,e,t,i);let n=await e(r),s=await t();return n!==void 0&&s!==void 0?di([n,s]):n!==void 0?n:s}function T6(r,e,t,i){if(St(r)){let n=new on;return(async()=>{let s=Hi(n);try{let o=await Xt(r),a=await e(o),c=await t(),l;a!==void 0&&c!==void 0?l=di([a,c]):l=a!==void 0?a:c,await s.write(l),await s.close()}catch(o){await s.abort(o)}})(),n}if(or(r)){let n,s=!1;return new ReadableStream({start(){n=r.getReader()},async pull(o){if(s){o.close(),r.releaseLock();return}try{for(;;){let{value:a,done:c}=await n.read();s=c;let l=await(c?t:e)(a);if(l!==void 0){o.enqueue(l);return}if(c){o.close(),r.releaseLock();return}}}catch(a){o.error(a)}},async cancel(o){await n.cancel(o)}},i)}throw new Error("Unreachable")}function Ba(r,e){if(or(r)&&!St(r)){let i,n=new TransformStream({start(a){i=a}}),s=Pd(r,n.writable),o=P6(async function(a){i.error(a),await s,await new Promise(c=>setTimeout(c))});return e(n.readable,o.writable),o.readable}r=F6(r);let t=new on;return e(r,t),t}function II(r,e){let t,i=Ba(r,(n,s)=>{let o=_n(n);o.remainder=()=>(o.releaseLock(),Pd(n,s),i),t=e(o)});return t}function QV(r){if(St(r))throw new Error("ArrayStream cannot be tee()d, use clone() instead");if(or(r)){let e=lA(r).tee();return e[0][xt]=e[1][xt]=r[xt],e}return[Ur(r),Ur(r)]}function Uc(r){if(St(r))return r.clone();if(or(r)){let e=QV(r);return U6(r,e[0]),e[1]}return Ur(r)}function Mf(r){return St(r)?Uc(r):or(r)?new ReadableStream({start(e){let t=Ba(r,async(i,n)=>{let s=_n(i),o=Hi(n);try{for(;;){await o.ready;let{done:a,value:c}=await s.read();if(a){try{e.close()}catch{}await o.close();return}try{e.enqueue(c)}catch{}await o.write(c)}}catch(a){e.error(a),await o.abort(a)}});U6(r,t)}}):Ur(r)}function U6(r,e){Object.entries(Object.getOwnPropertyDescriptors(r.constructor.prototype)).forEach(([t,i])=>{t!=="constructor"&&(i.value?i.value=i.value.bind(e):i.get=i.get.bind(e),Object.defineProperty(r,t,i))})}function Ur(r,e=0,t=1/0){if(St(r))throw new Error("Not implemented");if(or(r)){if(e>=0&&t>=0){let i,n=0;return new ReadableStream({start(){i=r.getReader()},async pull(s){try{for(;;)if(n<t){let{value:o,done:a}=await i.read();if(a){s.close(),r.releaseLock();return}let c;if(n+o.length>=e&&(c=Ur(o,Math.max(e-n,0),t-n)),n+=o.length,c){s.enqueue(c);return}}else{s.close(),r.releaseLock();return}}catch(o){s.error(o)}},async cancel(s){await i.cancel(s)}},{highWaterMark:0})}if(e<0&&(t<0||t===1/0)){let i=[];return sr(r,n=>{n.length>=-e?i=[n]:i.push(n)},()=>Ur(di(i),e,t))}if(e===0&&t<0){let i;return sr(r,n=>{let s=i?di([i,n]):n;if(s.length>=-t)return i=Ur(s,t),Ur(s,e,t);i=s})}return console.warn(`stream.slice(input, ${e}, ${t}) not implemented efficiently.`),Hc(async()=>Ur(await Xt(r),e,t))}return r[xt]&&(r=di(r[xt].concat([r]))),yI(r)?r.subarray(e,t===1/0?r.length:t):r.slice(e,t)}async function Xt(r,e=di){return St(r)?r.readToEnd(e):or(r)?_n(r).readToEnd(e):r}async function pB(r,e){if(or(r)){if(r.cancel){let t=await r.cancel(e);return await new Promise(i=>setTimeout(i)),t}if(r.destroy)return r.destroy(e),await new Promise(t=>setTimeout(t)),e}}function Hc(r){let e=new on;return(async()=>{let t=Hi(e);try{await t.write(await r()),await t.close()}catch(i){await t.abort(i)}})(),e}function _n(r){return new gs(r)}function Hi(r){return new cA(r)}function Ws(r){let e=new Uint8Array;return sr(r,t=>{e=F.concatUint8Array([e,t]);let i=[],n=45,s=Math.floor(e.length/n),o=s*n,a=Uy(e.subarray(0,o));for(let c=0;c<s;c++)i.push(a.substr(c*60,60)),i.push(` -`);return e=e.subarray(o),i.join("")},()=>e.length?Uy(e)+` -`:"")}function R6(r){let e="";return sr(r,t=>{e+=t;let i=0,n=[" "," ","\r",` -`];for(let a=0;a<n.length;a++){let c=n[a];for(let l=e.indexOf(c);l!==-1;l=e.indexOf(c,l+1))i++}let s=e.length;for(;s>0&&(s-i)%4!==0;s--)n.includes(e[s])&&i--;let o=Ry(e.substr(0,s));return e=e.substr(s),o},()=>Ry(e))}function wi(r){return R6(r.replace(/-/g,"+").replace(/_/g,"/"))}function Tr(r,e){let t=Ws(r).replace(/[\r\n]/g,"");return t=t.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),t}function _V(r){let e=/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m,t=r.match(e);if(!t)throw new Error("Unknown ASCII armor type");if(/MESSAGE, PART \d+\/\d+/.test(t[1]))return m.armor.multipartSection;if(/MESSAGE, PART \d+/.test(t[1]))return m.armor.multipartLast;if(/SIGNED MESSAGE/.test(t[1]))return m.armor.signed;if(/MESSAGE/.test(t[1]))return m.armor.message;if(/PUBLIC KEY BLOCK/.test(t[1]))return m.armor.publicKey;if(/PRIVATE KEY BLOCK/.test(t[1]))return m.armor.privateKey;if(/SIGNATURE/.test(t[1]))return m.armor.signature}function bc(r,e){let t="";return e.showVersion&&(t+="Version: "+e.versionString+` +`)}function X5(r){if(r=r||{},r.locator===void 0&&(r.locator=!0),this.assign=r.assign||Tc.assign,this.domHandler=r.domHandler||Dy,this.onError=r.onError||r.errorHandler,r.errorHandler&&typeof r.errorHandler!="function")throw new TypeError("errorHandler object is no longer supported, switch to onError!");r.errorHandler&&r.errorHandler("warning","The `errorHandler` option has been deprecated, use `onError` instead!",this),this.normalizeLineEndings=r.normalizeLineEndings||W5,this.locator=!!r.locator,this.xmlns=this.assign(Object.create(null),r.xmlns)}X5.prototype.parseFromString=function(r,e){if(!AW(e))throw new TypeError('DOMParser.parseFromString: the provided mimeType "'+e+'" is not valid.');var t=this.assign(Object.create(null),this.xmlns),i=j5.XML_ENTITIES,n=t[""]||null;uW(e)?(i=j5.HTML_ENTITIES,n=cB.HTML):e===Y5.XML_SVG_IMAGE&&(n=cB.SVG),t[""]=n,t.xml=t.xml||cB.XML;var s=new this.domHandler({mimeType:e,defaultNamespace:n,onError:this.onError}),o=this.locator?{}:void 0;this.locator&&s.setDocumentLocator(o);var a=new hW;a.errorHandler=s,a.domBuilder=s;var c=!Tc.isHTMLMimeType(e);return c&&typeof r!="string"&&a.errorHandler.fatalError("source is not a string"),a.parse(this.normalizeLineEndings(String(r)),t,i),s.doc.documentElement||a.errorHandler.fatalError("missing root element"),s.doc};function Dy(r){var e=r||{};this.mimeType=e.mimeType||Y5.XML_APPLICATION,this.defaultNamespace=e.defaultNamespace||null,this.cdata=!1,this.currentElement=void 0,this.doc=void 0,this.locator=void 0,this.onError=e.onError}function fd(r,e){e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber}Dy.prototype={startDocument:function(){var r=new dW;this.doc=fW(this.mimeType)?r.createHTMLDocument(!1):r.createDocument(this.defaultNamespace,"")},startElement:function(r,e,t,i){var n=this.doc,s=n.createElementNS(r,t||e),o=i.length;Sy(this,s),this.currentElement=s,this.locator&&fd(this.locator,s);for(var a=0;a<o;a++){var r=i.getURI(a),c=i.getValue(a),t=i.getQName(a),l=n.createAttributeNS(r,t);this.locator&&fd(i.getLocator(a),l),l.value=l.nodeValue=c,s.setAttributeNode(l)}},endElement:function(r,e,t){this.currentElement=this.currentElement.parentNode},startPrefixMapping:function(r,e){},endPrefixMapping:function(r){},processingInstruction:function(r,e){var t=this.doc.createProcessingInstruction(r,e);this.locator&&fd(this.locator,t),Sy(this,t)},ignorableWhitespace:function(r,e,t){},characters:function(r,e,t){if(r=V5.apply(this,arguments),r){if(this.cdata)var i=this.doc.createCDATASection(r);else var i=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(r)&&this.doc.appendChild(i),this.locator&&fd(this.locator,i)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){r&&(r.lineNumber=0),this.locator=r},comment:function(r,e,t){r=V5.apply(this,arguments);var i=this.doc.createComment(r);this.locator&&fd(this.locator,i),Sy(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,e,t,i){var n=this.doc.implementation;if(n&&n.createDocumentType){var s=n.createDocumentType(r,e,t,i);this.locator&&fd(this.locator,s),Sy(this,s),this.doc.doctype=s}},reportError:function(r,e){if(typeof this.onError=="function")try{this.onError(r,e,this)}catch(t){throw new $5("Reporting "+r+' "'+e+'" caused '+t,this.locator)}else console.error("[xmldom "+r+"] "+e,gW(this.locator))},warning:function(r){this.reportError("warning",r)},error:function(r){this.reportError("error",r)},fatalError:function(r,e){throw this.reportError("fatalError",r),new $5(r,this.locator,e)}};function gW(r){if(r)return` +@#[line:`+r.lineNumber+",col:"+r.columnNumber+"]"}function V5(r,e,t){return typeof r=="string"?r.substr(e,t):r.length>=e+t||e?new java.lang.String(r,e,t)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){Dy.prototype[r]=function(){return null}});function Sy(r,e){r.currentElement?r.currentElement.appendChild(e):r.doc.appendChild(e)}function pW(r){if(r==="error")throw"onErrorStopParsing"}function mW(){throw"onWarningStopParsing"}Ad.__DOMHandler=Dy;Ad.DOMParser=X5;Ad.normalizeLineEndings=W5;Ad.onErrorStopParsing=pW;Ad.onWarningStopParsing=mW});var e6=oe(st=>{"use strict";var hd=Fc();st.assign=hd.assign;st.hasDefaultHTMLNamespace=hd.hasDefaultHTMLNamespace;st.isHTMLMimeType=hd.isHTMLMimeType;st.isValidMimeType=hd.isValidMimeType;st.MIME_TYPE=hd.MIME_TYPE;st.NAMESPACE=hd.NAMESPACE;var Qy=vf();st.DOMException=Qy.DOMException;st.DOMExceptionName=Qy.DOMExceptionName;st.ExceptionCode=Qy.ExceptionCode;st.ParseError=Qy.ParseError;var gr=oB();st.Attr=gr.Attr;st.CDATASection=gr.CDATASection;st.CharacterData=gr.CharacterData;st.Comment=gr.Comment;st.Document=gr.Document;st.DocumentFragment=gr.DocumentFragment;st.DocumentType=gr.DocumentType;st.DOMImplementation=gr.DOMImplementation;st.Element=gr.Element;st.Entity=gr.Entity;st.EntityReference=gr.EntityReference;st.LiveNodeList=gr.LiveNodeList;st.NamedNodeMap=gr.NamedNodeMap;st.Node=gr.Node;st.NodeList=gr.NodeList;st.Notation=gr.Notation;st.ProcessingInstruction=gr.ProcessingInstruction;st.Text=gr.Text;st.XMLSerializer=gr.XMLSerializer;var _y=Z5();st.DOMParser=_y.DOMParser;st.normalizeLineEndings=_y.normalizeLineEndings;st.onErrorStopParsing=_y.onErrorStopParsing;st.onWarningStopParsing=_y.onWarningStopParsing});function t6(r){if(typeof r=="string")return r.trim()||void 0;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Array.isArray(r)&&r.length>0){let e=r[0];return(e?.nodeValue??e?.textContent??"").trim()||void 0}}function IW(r){let e=r;return e=e.replace(/<!DOCTYPE[^>]*>/gi,""),e=e.replace(/<!--[\s\S]*?-->/g,""),e=e.replace(new RegExp(`<(${yW})([^>]*?)/?>`,"gi"),"<$1$2/>"),e}function i6(r,e,t,i,n,s){let o=new r6.DOMParser({onError:()=>{}}).parseFromString(IW(r),"text/xml"),a=Of.select(e,o),c=[];for(let l of a)try{let d=Of.select(t,l);if(d.length===0)continue;let u=d[0],f="",h="";if(u.nodeType===1){let m=u;f=m.textContent?.trim()||"",h=m.getAttribute("href")||""}else if(u.nodeType===2){let m=u;f=m.value.trim(),h=m.value}else f=u.textContent?.trim()||"";let g=f.endsWith("/");if(g&&(f=f.slice(0,-1)),!f||s.includes(f))continue;let p=t6(Of.select(i,l)),I=t6(Of.select(n,l));c.push({name:f,url:h,isDir:g,size:p,modified:I})}catch{}return c}function xW(r){for(let e=r.length-1;e>=0;e--)if(r[e]>="0"&&r[e]<="9")return[r.slice(0,e+1).trim(),r.slice(e+1).trim()];return["",r]}function n6(r){if(!r||r.trim()==="-")return 0;let e=r.trim(),[t,i]=xW(e),n=i.toLowerCase(),s=wW[n]??1,o=parseFloat(t);return isNaN(o)?0:Math.round(o*s)}function s6(r,e){if(!r)return new Date().toISOString();try{let t=r.match(/(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2})/);if(t){let[,n,s,o,a,c]=t;return new Date(`${n}-${s}-${o}T${a}:${c}:00`).toISOString()}let i=new Date(r);if(!isNaN(i.getTime()))return i.toISOString()}catch{}return new Date().toISOString()}var Of,r6,yW,wW,o6=J(()=>{"use strict";Of=xr(VP(),1),r6=xr(e6(),1);yW="area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr";wW={"":1,b:1,byte:1,bytes:1,k:1024,kb:1024,kib:1024,m:1<<20,mb:1<<20,mib:1<<20,g:1<<30,gb:1<<30,gib:1<<30,t:256,tb:256,tib:256,p:1<<50,pb:1<<50,pib:1<<50}});function CW(r){let e={...r||{}};return e.url=(e.url||"").trim(),e.url&&!/:\/\//.test(e.url)&&(e.url="https://"+e.url),e.url&&!e.url.endsWith("/")&&(e.url+="/"),e.item_xpath=e.item_xpath||a6,e.name_xpath=e.name_xpath||c6,e.size_xpath=e.size_xpath||l6,e.modified_xpath=e.modified_xpath||d6,e.modified_time_format=e.modified_time_format||"",e.ignore_file_names=e.ignore_file_names||"",e}var a6,c6,l6,d6,Fy,u6=J(()=>{"use strict";Be();He();o6();a6="//pre/a",c6="@href",l6="string(following-sibling::text()[1])",d6="string(following-sibling::text()[2])";Fy=class{addition;ignoreNames=[];constructor(e){this.addition=CW(e),this.addition.ignore_file_names&&(this.ignoreNames=this.addition.ignore_file_names.split(/\r?\n|,/).map(t=>t.trim()).filter(t=>t))}async init(){if(!this.addition.url)throw new Error("url is required")}cleanRel(e){return(e||"").split("/").filter(Boolean).join("/")}buildDirURL(e){let t=this.cleanRel(e);return this.addition.url+t+(t?"/":"")}nodeToFileItem(e,t){let i=new URL(e.url,t).toString(),n=e.isDir;return{name:e.name,size:e.size?n6(e.size):0,is_dir:n,modified:e.modified?s6(e.modified,this.addition.modified_time_format||""):new Date().toISOString(),sign:"",type:X(e.name,n),raw_url:n?"":i}}async list(e,t){let i=this.buildDirURL(t),n=await fetch(i);if(!n.ok)throw new Error(`Failed to fetch ${i}: HTTP ${n.status}`);let s=await n.text(),a=i6(s,this.addition.item_xpath||a6,this.addition.name_xpath||c6,this.addition.size_xpath||l6,this.addition.modified_xpath||d6,this.ignoreNames).filter(c=>c.name!==".."&&c.name!==".").map(c=>this.nodeToFileItem(c,i));return de(a,"name","asc")}async get(e,t){let i=this.cleanRel(t),n=i.split("/").filter(Boolean).pop()||"root";if(!i)return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.addition.url,type:1};let s=this.addition.url+i;return{name:n,size:0,is_dir:!1,modified:new Date().toISOString(),sign:s,type:X(n,!1),raw_url:s}}async mkdir(e,t){throw new Error("AutoIndex is read-only")}async rename(e,t,i){throw new Error("AutoIndex is read-only")}async remove(e,t,i){throw new Error("AutoIndex is read-only")}async move(e,t,i,n,s){throw new Error("AutoIndex is read-only")}async copy(e,t,i,n,s){throw new Error("AutoIndex is read-only")}async put(e,t,i){throw new Error("AutoIndex is read-only")}}});var ha,f6,A6,h6,g6,p6,m6,Jwe,y6,jwe,I6,w6,x6,C6,$we,E6,lB=J(()=>{"use strict";ha="https://drive.proton.me/api",f6="https://account.proton.me/api/auth/info",A6="https://account.proton.me/api/auth/v4",h6="https://account.proton.me/api/auth/v4/2fa",g6="https://account.proton.me/api/auth/v4/refresh",p6=ha+"/core/v4/keys/salts",m6=ha+"/core/v4/users",Jwe=ha+"/core/v4/addresses",y6=ha+"/drive/shares",jwe=ha+"/drive/volumes",I6="application/vnd.protonmail.v1+json",w6="js@0.3.0",x6="ProtonDrive/v1.70.0 (Windows NT 10.0.22000; Win64; x64)",C6="web-drive@5.2.0+0f69f7a8",$we=4*1024*1024,E6=1});var b6=oe((B6,ga)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof wt=="function"&&typeof ga=="object"&&ga&&ga.exports?ga.exports=e():(r.dcodeIO=r.dcodeIO||{}).bcrypt=e()})(B6,function(){"use strict";var r={},e=null;function t(D){if(typeof ga<"u"&&ga&&ga.exports)try{return wt("crypto").randomBytes(D)}catch{}try{var b;return(self.crypto||self.msCrypto).getRandomValues(b=new Uint32Array(D)),Array.prototype.slice.call(b)}catch{}if(!e)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return e(D)}var i=!1;try{t(1),i=!0}catch{}e=null,r.setRandomFallback=function(D){e=D},r.genSaltSync=function(D,b){if(D=D||g,typeof D!="number")throw Error("Illegal arguments: "+typeof D+", "+typeof b);D<4?D=4:D>31&&(D=31);var _=[];return _.push("$2a$"),D<10&&_.push("0"),_.push(D.toString()),_.push("$"),_.push(d(t(h),h)),_.join("")},r.genSalt=function(D,b,_){if(typeof b=="function"&&(_=b,b=void 0),typeof D=="function"&&(_=D,D=void 0),typeof D>"u")D=g;else if(typeof D!="number")throw Error("illegal arguments: "+typeof D);function v(E){s(function(){try{E(null,r.genSaltSync(D))}catch(P){E(P)}})}if(_){if(typeof _!="function")throw Error("Illegal callback: "+typeof _);v(_)}else return new Promise(function(E,P){v(function(N,j){if(N){P(N);return}E(j)})})},r.hashSync=function(D,b){if(typeof b>"u"&&(b=g),typeof b=="number"&&(b=r.genSaltSync(b)),typeof D!="string"||typeof b!="string")throw Error("Illegal arguments: "+typeof D+", "+typeof b);return T(D,b)},r.hash=function(D,b,_,v){function E(P){typeof D=="string"&&typeof b=="number"?r.genSalt(b,function(N,j){T(D,j,P,v)}):typeof D=="string"&&typeof b=="string"?T(D,b,P,v):s(P.bind(this,Error("Illegal arguments: "+typeof D+", "+typeof b)))}if(_){if(typeof _!="function")throw Error("Illegal callback: "+typeof _);E(_)}else return new Promise(function(P,N){E(function(j,z){if(j){N(j);return}P(z)})})};function n(D,b){for(var _=0,v=0,E=0,P=D.length;E<P;++E)D.charCodeAt(E)===b.charCodeAt(E)?++_:++v;return _<0?!1:v===0}r.compareSync=function(D,b){if(typeof D!="string"||typeof b!="string")throw Error("Illegal arguments: "+typeof D+", "+typeof b);return b.length!==60?!1:n(r.hashSync(D,b.substr(0,b.length-31)),b)},r.compare=function(D,b,_,v){function E(P){if(typeof D!="string"||typeof b!="string"){s(P.bind(this,Error("Illegal arguments: "+typeof D+", "+typeof b)));return}if(b.length!==60){s(P.bind(this,null,!1));return}r.hash(D,b.substr(0,29),function(N,j){N?P(N):P(null,n(j,b))},v)}if(_){if(typeof _!="function")throw Error("Illegal callback: "+typeof _);E(_)}else return new Promise(function(P,N){E(function(j,z){if(j){N(j);return}P(z)})})},r.getRounds=function(D){if(typeof D!="string")throw Error("Illegal arguments: "+typeof D);return parseInt(D.split("$")[2],10)},r.getSalt=function(D){if(typeof D!="string")throw Error("Illegal arguments: "+typeof D);if(D.length!==60)throw Error("Illegal hash length: "+D.length+" != 60");return D.substring(0,29)};var s=typeof process<"u"&&process&&typeof process.nextTick=="function"?typeof setImmediate=="function"?setImmediate:process.nextTick:setTimeout;function o(D){var b=[],_=0;return f.encodeUTF16toUTF8(function(){return _>=D.length?null:D.charCodeAt(_++)},function(v){b.push(v)}),b}var a="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),c=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],l=String.fromCharCode;function d(D,b){var _=0,v=[],E,P;if(b<=0||b>D.length)throw Error("Illegal len: "+b);for(;_<b;){if(E=D[_++]&255,v.push(a[E>>2&63]),E=(E&3)<<4,_>=b){v.push(a[E&63]);break}if(P=D[_++]&255,E|=P>>4&15,v.push(a[E&63]),E=(P&15)<<2,_>=b){v.push(a[E&63]);break}P=D[_++]&255,E|=P>>6&3,v.push(a[E&63]),v.push(a[P&63])}return v.join("")}function u(D,b){var _=0,v=D.length,E=0,P=[],N,j,z,L,G,K;if(b<=0)throw Error("Illegal len: "+b);for(;_<v-1&&E<b&&(K=D.charCodeAt(_++),N=K<c.length?c[K]:-1,K=D.charCodeAt(_++),j=K<c.length?c[K]:-1,!(N==-1||j==-1||(G=N<<2>>>0,G|=(j&48)>>4,P.push(l(G)),++E>=b||_>=v)||(K=D.charCodeAt(_++),z=K<c.length?c[K]:-1,z==-1)||(G=(j&15)<<4>>>0,G|=(z&60)>>2,P.push(l(G)),++E>=b||_>=v)));)K=D.charCodeAt(_++),L=K<c.length?c[K]:-1,G=(z&3)<<6>>>0,G|=L,P.push(l(G)),++E;var $=[];for(_=0;_<E;_++)$.push(P[_].charCodeAt(0));return $}var f=(function(){"use strict";var D={};return D.MAX_CODEPOINT=1114111,D.encodeUTF8=function(b,_){var v=null;for(typeof b=="number"&&(v=b,b=function(){return null});v!==null||(v=b())!==null;)v<128?_(v&127):v<2048?(_(v>>6&31|192),_(v&63|128)):v<65536?(_(v>>12&15|224),_(v>>6&63|128),_(v&63|128)):(_(v>>18&7|240),_(v>>12&63|128),_(v>>6&63|128),_(v&63|128)),v=null},D.decodeUTF8=function(b,_){for(var v,E,P,N,j=function(z){z=z.slice(0,z.indexOf(null));var L=Error(z.toString());throw L.name="TruncatedError",L.bytes=z,L};(v=b())!==null;)if((v&128)===0)_(v);else if((v&224)===192)(E=b())===null&&j([v,E]),_((v&31)<<6|E&63);else if((v&240)===224)((E=b())===null||(P=b())===null)&&j([v,E,P]),_((v&15)<<12|(E&63)<<6|P&63);else if((v&248)===240)((E=b())===null||(P=b())===null||(N=b())===null)&&j([v,E,P,N]),_((v&7)<<18|(E&63)<<12|(P&63)<<6|N&63);else throw RangeError("Illegal starting byte: "+v)},D.UTF16toUTF8=function(b,_){for(var v,E=null;(v=E!==null?E:b())!==null;){if(v>=55296&&v<=57343&&(E=b())!==null&&E>=56320&&E<=57343){_((v-55296)*1024+E-56320+65536),E=null;continue}_(v)}E!==null&&_(E)},D.UTF8toUTF16=function(b,_){var v=null;for(typeof b=="number"&&(v=b,b=function(){return null});v!==null||(v=b())!==null;)v<=65535?_(v):(v-=65536,_((v>>10)+55296),_(v%1024+56320)),v=null},D.encodeUTF16toUTF8=function(b,_){D.UTF16toUTF8(b,function(v){D.encodeUTF8(v,_)})},D.decodeUTF8toUTF16=function(b,_){D.decodeUTF8(b,function(v){D.UTF8toUTF16(v,_)})},D.calculateCodePoint=function(b){return b<128?1:b<2048?2:b<65536?3:4},D.calculateUTF8=function(b){for(var _,v=0;(_=b())!==null;)v+=D.calculateCodePoint(_);return v},D.calculateUTF16asUTF8=function(b){var _=0,v=0;return D.UTF16toUTF8(b,function(E){++_,v+=D.calculateCodePoint(E)}),[_,v]},D})();Date.now=Date.now||function(){return+new Date};var h=16,g=10,p=16,I=100,m=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],w=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],B=[1332899944,1700884034,1701343084,1684370003,1668446532,1869963892];function C(D,b,_,v){var E,P=D[b],N=D[b+1];return P^=_[0],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[1],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[2],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[3],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[4],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[5],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[6],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[7],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[8],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[9],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[10],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[11],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[12],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[13],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[14],E=v[P>>>24],E+=v[256|P>>16&255],E^=v[512|P>>8&255],E+=v[768|P&255],N^=E^_[15],E=v[N>>>24],E+=v[256|N>>16&255],E^=v[512|N>>8&255],E+=v[768|N&255],P^=E^_[16],D[b]=N^_[p+1],D[b+1]=P,D}function x(D,b){for(var _=0,v=0;_<4;++_)v=v<<8|D[b]&255,b=(b+1)%D.length;return{key:v,offp:b}}function Q(D,b,_){for(var v=0,E=[0,0],P=b.length,N=_.length,j,z=0;z<P;z++)j=x(D,v),v=j.offp,b[z]=b[z]^j.key;for(z=0;z<P;z+=2)E=C(E,0,b,_),b[z]=E[0],b[z+1]=E[1];for(z=0;z<N;z+=2)E=C(E,0,b,_),_[z]=E[0],_[z+1]=E[1]}function R(D,b,_,v){for(var E=0,P=[0,0],N=_.length,j=v.length,z,L=0;L<N;L++)z=x(b,E),E=z.offp,_[L]=_[L]^z.key;for(E=0,L=0;L<N;L+=2)z=x(D,E),E=z.offp,P[0]^=z.key,z=x(D,E),E=z.offp,P[1]^=z.key,P=C(P,0,_,v),_[L]=P[0],_[L+1]=P[1];for(L=0;L<j;L+=2)z=x(D,E),E=z.offp,P[0]^=z.key,z=x(D,E),E=z.offp,P[1]^=z.key,P=C(P,0,_,v),v[L]=P[0],v[L+1]=P[1]}function U(D,b,_,v,E){var P=B.slice(),N=P.length,j;if(_<4||_>31)if(j=Error("Illegal number of rounds (4-31): "+_),v){s(v.bind(this,j));return}else throw j;if(b.length!==h)if(j=Error("Illegal salt length: "+b.length+" != "+h),v){s(v.bind(this,j));return}else throw j;_=1<<_>>>0;var z,L,G=0,K;Int32Array?(z=new Int32Array(m),L=new Int32Array(w)):(z=m.slice(),L=w.slice()),R(b,D,z,L);function $(){if(E&&E(G/_),G<_)for(var re=Date.now();G<_&&(G=G+1,Q(D,z,L),Q(b,z,L),!(Date.now()-re>I)););else{for(G=0;G<64;G++)for(K=0;K<N>>1;K++)C(P,K<<1,z,L);var ee=[];for(G=0;G<N;G++)ee.push((P[G]>>24&255)>>>0),ee.push((P[G]>>16&255)>>>0),ee.push((P[G]>>8&255)>>>0),ee.push((P[G]&255)>>>0);if(v){v(null,ee);return}else return ee}v&&s($)}if(typeof v<"u")$();else for(var te;;)if(typeof(te=$())<"u")return te||[]}function T(D,b,_,v){var E;if(typeof D!="string"||typeof b!="string")if(E=Error("Invalid string / salt: Not a string"),_){s(_.bind(this,E));return}else throw E;var P,N;if(b.charAt(0)!=="$"||b.charAt(1)!=="2")if(E=Error("Invalid salt version: "+b.substring(0,2)),_){s(_.bind(this,E));return}else throw E;if(b.charAt(2)==="$")P="\0",N=3;else{if(P=b.charAt(2),P!=="a"&&P!=="b"&&P!=="y"||b.charAt(3)!=="$")if(E=Error("Invalid salt revision: "+b.substring(2,4)),_){s(_.bind(this,E));return}else throw E;N=4}if(b.charAt(N+2)>"$")if(E=Error("Missing salt rounds"),_){s(_.bind(this,E));return}else throw E;var j=parseInt(b.substring(N,N+1),10)*10,z=parseInt(b.substring(N+1,N+2),10),L=j+z,G=b.substring(N+3,N+25);D+=P>="a"?"\0":"";var K=o(D),$=u(G,h);function te(re){var ee=[];return ee.push("$2"),P>="a"&&ee.push(P),ee.push("$"),L<10&&ee.push("0"),ee.push(L.toString()),ee.push("$"),ee.push(d($,$.length)),ee.push(d(re,B.length*4-1)),ee.join("")}if(typeof _>"u")return te(U(K,$,L));U(K,$,L,function(re,ee){re?_(re,null):_(null,te(ee))},v)}return r.encodeBase64=d,r.decodeBase64=u,r})});var dB=oe((Wwe,v6)=>{v6.exports=b6()});function gd(r){let e="0x";for(let t of r)e+=t.toString(16).padStart(2,"0");return BigInt(e)}function Mf(r,e){let t=r.toString(16);t.length%2!==0&&(t="0"+t);let i=new Uint8Array(t.length/2);for(let n=0;n<i.length;n++)i[n]=parseInt(t.slice(n*2,n*2+2),16);if(e!==void 0&&i.length<e){let n=new Uint8Array(e);return n.set(i,e-i.length),n}return i}function EW(...r){let e=r.reduce((n,s)=>n+s.length,0),t=new Uint8Array(e),i=0;for(let n of r)t.set(n,i),i+=n.length;return t}function BW(r,e){let t=Math.max(r.length,e.length),i=new Uint8Array(t);for(let n=0;n<t;n++)i[n]=(r[n]||0)^(e[n]||0);return i}async function Uc(...r){let e=r.length===1?r[0]:EW(...r),t=await crypto.subtle.digest("SHA-256",e);return new Uint8Array(t)}function uB(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function k6(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}function bW(r){return r.length>1&&r[0]===0?r.slice(1):r}function fB(r,e,t){if(t===1n)return 0n;let i=1n,n=r%t,s=e;for(;s>0n;)s&1n&&(i=i*n%t),n=n*n%t,s>>=1n;return i}function vW(r){let e="",t=0,i=0;for(let n of r)for(i=i<<8|n,t+=8;t>=6;)t-=6,e+=AB[i>>t&63];return t>0&&(e+=AB[i<<6-t&63]),e}function kW(r,e,t){if(r<2)return new TextEncoder().encode(e);let n=`$2a$10$${vW(t).padEnd(22,".")}`,o=S6.default.hashSync(e,n).slice(n.length);return SW(o)}function SW(r){let e=[],t=0,i=0;for(let n of r){let s=AB.indexOf(n);s<0||(t=t<<6|s,i+=6,i>=8&&(i-=8,e.push(t>>i&255)))}return new Uint8Array(e)}async function D6(r,e,t){let i=t.Version??4,n=bW(uB(t.Modulus)),s=gd(n),o=gd(uB(t.ServerEphemeral)),a=uB(t.Salt);if(o%s===0n)throw new Error("invalid server ephemeral (B % N == 0)");let c=kW(i,e,a),l=await Uc(a,c),d=gd(l),u=crypto.getRandomValues(new Uint8Array(32)),f=gd(u),h=fB(Py,f,s),g=Mf(h,n.length),p=0n;if(i>=2){let v=Mf(Py,n.length),E=await Uc(n,v);p=gd(E)}let I=Mf(o,n.length),m=await Uc(g,I),w=gd(m),B=fB(Py,d,s),C=(o-p*B%s)%s;C<0n&&(C+=s);let x=f+w*d,Q=fB(C,x,s),R=Mf(Q,n.length),U=await Uc(n),T=await Uc(Mf(Py)),D=await Uc(new TextEncoder().encode(r)),b=BW(U,T),_=await Uc(b,D,a,g,I,R);return{ClientEphemeral:k6(g),ClientProof:k6(_),SRPSession:t.SRPSession}}var S6,Py,AB,Q6=J(()=>{"use strict";S6=xr(dB(),1),Py=2n;AB="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"});import{createRequire as YT}from"module";import*as Hi from"node:crypto";function DW(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in r)){var n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(r,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(r)}function St(r){return r&&r.getReader&&Array.isArray(r)}function CA(r){if(!St(r)){let e=r.getWriter(),t=e.releaseLock;return e.releaseLock=()=>{e.closed.catch(function(){}),t.call(e)},e}this.stream=r}function or(r){if(St(r))return"array";if(oo.ReadableStream&&oo.ReadableStream.prototype.isPrototypeOf(r))return"web";if(r&&!(oo.ReadableStream&&r instanceof oo.ReadableStream)&&typeof r._read=="function"&&typeof r._readableState=="object")throw new Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return r&&r.getReader?"web-like":!1}function OI(r){return Uint8Array.prototype.isPrototypeOf(r)}function ZT(r){if(r.length===1)return r[0];let e=0;for(let n=0;n<r.length;n++){if(!OI(r[n]))throw new Error("concatUint8Array: Data must be in the form of a Uint8Array");e+=r[n].length}let t=new Uint8Array(e),i=0;return r.forEach(function(n){t.set(n,i),i+=n.length}),t}function ms(r){if(this.stream=r,r[xt]&&(this[xt]=r[xt].slice()),St(r)){let i=r.getReader();this._read=i.read.bind(i),this._releaseLock=()=>{},this._cancel=()=>{};return}if(or(r)){let i=r.getReader();this._read=i.read.bind(i),this._releaseLock=()=>{i.closed.catch(function(){}),i.releaseLock()},this._cancel=i.cancel.bind(i);return}let t=!1;this._read=async()=>t||_6.has(r)?{value:void 0,done:!0}:(t=!0,{value:r,done:!1}),this._releaseLock=()=>{if(t)try{_6.add(r)}catch{}}}function EA(r){return or(r)?r:new ReadableStream({start(e){e.enqueue(r),e.close()}})}function eU(r){let e=or(r);if(e){if(e!=="array")throw new Error("Can't convert Stream to ArrayStream here, call `readToEnd` first");return r}let t=new an;return(async()=>{let i=Gi(t);await i.write(r),await i.close()})(),t}function ui(r){return r.some(e=>or(e)&&!St(e))?QW(r):r.some(e=>St(e))?_W(r):typeof r[0]=="string"?r.join(""):ZT(r)}function QW(r){let e=r.map(EA),t=tU(async function(s){await Promise.all(n.map(o=>zB(o,s)))}),i=Promise.resolve(),n=e.map((s,o)=>Ua(s,(a,c)=>(i=i.then(()=>Kd(a,t.writable,{preventClose:o!==e.length-1})),i)));return t.readable}function _W(r){let e=new an,t=Promise.resolve();return r.forEach((i,n)=>(t=t.then(()=>Kd(i,e,{preventClose:n!==r.length-1})),t)),e}async function Kd(r,e,{preventClose:t=!1,preventAbort:i=!1,preventCancel:n=!1}={}){if(or(r)&&!St(r)&&!St(e)){r=EA(r);try{if(r[xt]){let a=Gi(e);for(let c=0;c<r[xt].length;c++)await a.ready,await a.write(r[xt][c]);a.releaseLock()}await r.pipeTo(e,{preventClose:t,preventAbort:i,preventCancel:n})}catch{}return}or(r)||(r=eU(r));let s=Fn(r),o=Gi(e);try{for(;;){await o.ready;let{done:a,value:c}=await s.read();if(a){t||await o.close();break}await o.write(c)}}catch(a){i||await o.abort(a)}finally{s.releaseLock(),o.releaseLock()}}function tU(r){let e=!1,t=!1,i,n,s;return{readable:new ReadableStream({start(o){s=o},pull(){i?i():e=!0},async cancel(o){t=!0,r&&await r(o),n&&n(o)}},{highWaterMark:0}),writable:new WritableStream({write:async function(o){if(t)throw new Error("Stream is cancelled");s.enqueue(o),e?e=!1:(await new Promise((a,c)=>{i=a,n=c}),i=null,n=null)},close:s.close.bind(s),abort:s.error.bind(s)})}}function sr(r,e=()=>{},t=()=>{},i={highWaterMark:0}){if(or(r))return rU(r,e,t,i);let n=e(r),s=t();return n!==void 0&&s!==void 0?ui([n,s]):n!==void 0?n:s}async function GB(r,e=async()=>{},t=async()=>{},i={highWaterMark:1}){if(or(r))return rU(r,e,t,i);let n=await e(r),s=await t();return n!==void 0&&s!==void 0?ui([n,s]):n!==void 0?n:s}function rU(r,e,t,i){if(St(r)){let n=new an;return(async()=>{let s=Gi(n);try{let o=await Xt(r),a=await e(o),c=await t(),l;a!==void 0&&c!==void 0?l=ui([a,c]):l=a!==void 0?a:c,await s.write(l),await s.close()}catch(o){await s.abort(o)}})(),n}if(or(r)){let n,s=!1;return new ReadableStream({start(){n=r.getReader()},async pull(o){if(s){o.close(),r.releaseLock();return}try{for(;;){let{value:a,done:c}=await n.read();s=c;let l=await(c?t:e)(a);if(l!==void 0){o.enqueue(l);return}if(c){o.close(),r.releaseLock();return}}}catch(a){o.error(a)}},async cancel(o){await n.cancel(o)}},i)}throw new Error("Unreachable")}function Ua(r,e){if(or(r)&&!St(r)){let i,n=new TransformStream({start(a){i=a}}),s=Kd(r,n.writable),o=tU(async function(a){i.error(a),await s,await new Promise(c=>setTimeout(c))});return e(n.readable,o.writable),o.readable}r=eU(r);let t=new an;return e(r,t),t}function MI(r,e){let t,i=Ua(r,(n,s)=>{let o=Fn(n);o.remainder=()=>(o.releaseLock(),Kd(n,s),i),t=e(o)});return t}function FW(r){if(St(r))throw new Error("ArrayStream cannot be tee()d, use clone() instead");if(or(r)){let e=EA(r).tee();return e[0][xt]=e[1][xt]=r[xt],e}return[Rr(r),Rr(r)]}function Jc(r){if(St(r))return r.clone();if(or(r)){let e=FW(r);return iU(r,e[0]),e[1]}return Rr(r)}function eA(r){return St(r)?Jc(r):or(r)?new ReadableStream({start(e){let t=Ua(r,async(i,n)=>{let s=Fn(i),o=Gi(n);try{for(;;){await o.ready;let{done:a,value:c}=await s.read();if(a){try{e.close()}catch{}await o.close();return}try{e.enqueue(c)}catch{}await o.write(c)}}catch(a){e.error(a),await o.abort(a)}});iU(r,t)}}):Rr(r)}function iU(r,e){Object.entries(Object.getOwnPropertyDescriptors(r.constructor.prototype)).forEach(([t,i])=>{t!=="constructor"&&(i.value?i.value=i.value.bind(e):i.get=i.get.bind(e),Object.defineProperty(r,t,i))})}function Rr(r,e=0,t=1/0){if(St(r))throw new Error("Not implemented");if(or(r)){if(e>=0&&t>=0){let i,n=0;return new ReadableStream({start(){i=r.getReader()},async pull(s){try{for(;;)if(n<t){let{value:o,done:a}=await i.read();if(a){s.close(),r.releaseLock();return}let c;if(n+o.length>=e&&(c=Rr(o,Math.max(e-n,0),t-n)),n+=o.length,c){s.enqueue(c);return}}else{s.close(),r.releaseLock();return}}catch(o){s.error(o)}},async cancel(s){await i.cancel(s)}},{highWaterMark:0})}if(e<0&&(t<0||t===1/0)){let i=[];return sr(r,n=>{n.length>=-e?i=[n]:i.push(n)},()=>Rr(ui(i),e,t))}if(e===0&&t<0){let i;return sr(r,n=>{let s=i?ui([i,n]):n;if(s.length>=-t)return i=Rr(s,t),Rr(s,e,t);i=s})}return console.warn(`stream.slice(input, ${e}, ${t}) not implemented efficiently.`),Zc(async()=>Rr(await Xt(r),e,t))}return r[xt]&&(r=ui(r[xt].concat([r]))),OI(r)?r.subarray(e,t===1/0?r.length:t):r.slice(e,t)}async function Xt(r,e=ui){return St(r)?r.readToEnd(e):or(r)?Fn(r).readToEnd(e):r}async function zB(r,e){if(or(r)){if(r.cancel){let t=await r.cancel(e);return await new Promise(i=>setTimeout(i)),t}if(r.destroy)return r.destroy(e),await new Promise(t=>setTimeout(t)),e}}function Zc(r){let e=new an;return(async()=>{let t=Gi(e);try{await t.write(await r()),await t.close()}catch(i){await t.abort(i)}})(),e}function Fn(r){return new ms(r)}function Gi(r){return new CA(r)}function io(r){let e=new Uint8Array;return sr(r,t=>{e=F.concatUint8Array([e,t]);let i=[],n=45,s=Math.floor(e.length/n),o=s*n,a=rI(e.subarray(0,o));for(let c=0;c<s;c++)i.push(a.substr(c*60,60)),i.push(` +`);return e=e.subarray(o),i.join("")},()=>e.length?rI(e)+` +`:"")}function nU(r){let e="";return sr(r,t=>{e+=t;let i=0,n=[" "," ","\r",` +`];for(let a=0;a<n.length;a++){let c=n[a];for(let l=e.indexOf(c);l!==-1;l=e.indexOf(c,l+1))i++}let s=e.length;for(;s>0&&(s-i)%4!==0;s--)n.includes(e[s])&&i--;let o=iI(e.substr(0,s));return e=e.substr(s),o},()=>iI(e))}function Ci(r){return nU(r.replace(/-/g,"+").replace(/_/g,"/"))}function Ur(r,e){let t=io(r).replace(/[\r\n]/g,"");return t=t.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),t}function PW(r){let e=/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m,t=r.match(e);if(!t)throw new Error("Unknown ASCII armor type");if(/MESSAGE, PART \d+\/\d+/.test(t[1]))return y.armor.multipartSection;if(/MESSAGE, PART \d+/.test(t[1]))return y.armor.multipartLast;if(/SIGNED MESSAGE/.test(t[1]))return y.armor.signed;if(/MESSAGE/.test(t[1]))return y.armor.message;if(/PUBLIC KEY BLOCK/.test(t[1]))return y.armor.publicKey;if(/PRIVATE KEY BLOCK/.test(t[1]))return y.armor.privateKey;if(/SIGNATURE/.test(t[1]))return y.armor.signature}function Rc(r,e){let t="";return e.showVersion&&(t+="Version: "+e.versionString+` `),e.showComment&&(t+="Comment: "+e.commentString+` `),r&&(t+="Comment: "+r+` `),t+=` -`,t}function vc(r){let e=PV(r);return Ws(e)}function PV(r){let e=13501623;return sr(r,t=>{let i=FV?Math.floor(t.length/4):0,n=new Uint32Array(t.buffer,t.byteOffset,i);for(let s=0;s<i;s++)e^=n[s],e=br[0][e>>24&255]^br[1][e>>16&255]^br[2][e>>8&255]^br[3][e>>0&255];for(let s=i*4;s<t.length;s++)e=e>>8^br[0][e&255^t[s]]},()=>new Uint8Array([e,e>>8,e>>16]))}function u5(r){for(let e=0;e<r.length;e++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(r[e])||F.printDebugError(new Error("Improperly formatted armor header: "+r[e])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(r[e])||F.printDebugError(new Error("Unknown header: "+r[e]))}function TV(r){let e=r,t=r.lastIndexOf("=");return t>=0&&t!==r.length-1&&(e=r.slice(0,t)),e}function wI(r){return new Promise((e,t)=>{try{let i=/^-----[^-]+-----$/m,n=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/,s,o=[],a=o,c,l=[],d,u=R6(Ba(r,async(f,h)=>{let g=_n(f);try{for(;;){let I=await g.readLine();if(I===void 0)throw new Error("Misformed armored text");if(I=F.removeTrailingSpaces(I.replace(/[\r\n]/g,"")),!s)i.test(I)&&(s=_V(I));else if(c)!d&&s===m.armor.signed&&(i.test(I)?(l=l.join(`\r -`),d=!0,u5(a),a=[],c=!1):l.push(I.replace(/^- /,"")));else if(i.test(I)&&t(new Error("Mandatory blank line missing between armor headers and armor data")),!n.test(I))a.push(I);else if(u5(a),c=!0,d||s!==m.armor.signed){e({text:l,data:u,headers:o,type:s});break}}}catch(I){t(I);return}let p=Hi(h);try{for(;;){await p.ready;let{done:I,value:y}=await g.read();if(I)throw new Error("Misformed armored text");let w=y+"";if(w.indexOf("=")===-1&&w.indexOf("-")===-1)await p.write(w);else{let C=await g.readToEnd();C.length||(C=""),C=w+C,C=F.removeTrailingSpaces(C.replace(/\r/g,""));let b=C.split(i);if(b.length===1)throw new Error("Misformed armored text");let x=TV(b[0].slice(0,-1));await p.write(x);break}}await p.ready,await p.close()}catch(I){await p.abort(I)}}))}catch(i){t(i)}}).then(async e=>(St(e.data)&&(e.data=await Xt(e.data)),e))}function dA(r,e,t,i,n,s=!1,o=pe){let a,c;r===m.armor.signed&&(a=e.text,c=e.hash,e=e.data);let l=s&&Mf(e),d=[];switch(r){case m.armor.multipartSection:d.push("-----BEGIN PGP MESSAGE, PART "+t+"/"+i+`----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push("-----END PGP MESSAGE, PART "+t+"/"+i+`----- -`);break;case m.armor.multipartLast:d.push("-----BEGIN PGP MESSAGE, PART "+t+`----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push("-----END PGP MESSAGE, PART "+t+`----- -`);break;case m.armor.signed:d.push(`-----BEGIN PGP SIGNED MESSAGE----- +`,t}function Nc(r){let e=UW(r);return io(e)}function UW(r){let e=13501623;return sr(r,t=>{let i=TW?Math.floor(t.length/4):0,n=new Uint32Array(t.buffer,t.byteOffset,i);for(let s=0;s<i;s++)e^=n[s],e=kr[0][e>>24&255]^kr[1][e>>16&255]^kr[2][e>>8&255]^kr[3][e>>0&255];for(let s=i*4;s<t.length;s++)e=e>>8^kr[0][e&255^t[s]]},()=>new Uint8Array([e,e>>8,e>>16]))}function P6(r){for(let e=0;e<r.length;e++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(r[e])||F.printDebugError(new Error("Improperly formatted armor header: "+r[e])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(r[e])||F.printDebugError(new Error("Unknown header: "+r[e]))}function RW(r){let e=r,t=r.lastIndexOf("=");return t>=0&&t!==r.length-1&&(e=r.slice(0,t)),e}function LI(r){return new Promise((e,t)=>{try{let i=/^-----[^-]+-----$/m,n=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/,s,o=[],a=o,c,l=[],d,u=nU(Ua(r,async(f,h)=>{let g=Fn(f);try{for(;;){let I=await g.readLine();if(I===void 0)throw new Error("Misformed armored text");if(I=F.removeTrailingSpaces(I.replace(/[\r\n]/g,"")),!s)i.test(I)&&(s=PW(I));else if(c)!d&&s===y.armor.signed&&(i.test(I)?(l=l.join(`\r +`),d=!0,P6(a),a=[],c=!1):l.push(I.replace(/^- /,"")));else if(i.test(I)&&t(new Error("Mandatory blank line missing between armor headers and armor data")),!n.test(I))a.push(I);else if(P6(a),c=!0,d||s!==y.armor.signed){e({text:l,data:u,headers:o,type:s});break}}}catch(I){t(I);return}let p=Gi(h);try{for(;;){await p.ready;let{done:I,value:m}=await g.read();if(I)throw new Error("Misformed armored text");let w=m+"";if(w.indexOf("=")===-1&&w.indexOf("-")===-1)await p.write(w);else{let B=await g.readToEnd();B.length||(B=""),B=w+B,B=F.removeTrailingSpaces(B.replace(/\r/g,""));let C=B.split(i);if(C.length===1)throw new Error("Misformed armored text");let x=RW(C[0].slice(0,-1));await p.write(x);break}}await p.ready,await p.close()}catch(I){await p.abort(I)}}))}catch(i){t(i)}}).then(async e=>(St(e.data)&&(e.data=await Xt(e.data)),e))}function BA(r,e,t,i,n,s=!1,o=pe){let a,c;r===y.armor.signed&&(a=e.text,c=e.hash,e=e.data);let l=s&&eA(e),d=[];switch(r){case y.armor.multipartSection:d.push("-----BEGIN PGP MESSAGE, PART "+t+"/"+i+`----- +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push("-----END PGP MESSAGE, PART "+t+"/"+i+`----- +`);break;case y.armor.multipartLast:d.push("-----BEGIN PGP MESSAGE, PART "+t+`----- +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push("-----END PGP MESSAGE, PART "+t+`----- +`);break;case y.armor.signed:d.push(`-----BEGIN PGP SIGNED MESSAGE----- `),d.push(c?`Hash: ${c} `:` `),d.push(a.replace(/^-/mg,"- -")),d.push(` -----BEGIN PGP SIGNATURE----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push(`-----END PGP SIGNATURE----- -`);break;case m.armor.message:d.push(`-----BEGIN PGP MESSAGE----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push(`-----END PGP MESSAGE----- -`);break;case m.armor.publicKey:d.push(`-----BEGIN PGP PUBLIC KEY BLOCK----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push(`-----END PGP PUBLIC KEY BLOCK----- -`);break;case m.armor.privateKey:d.push(`-----BEGIN PGP PRIVATE KEY BLOCK----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push(`-----END PGP PRIVATE KEY BLOCK----- -`);break;case m.armor.signature:d.push(`-----BEGIN PGP SIGNATURE----- -`),d.push(bc(n,o)),d.push(Ws(e)),l&&d.push("=",vc(l)),d.push(`-----END PGP SIGNATURE----- -`);break}return F.concat(d)}function Te(r){let e="0123456789ABCDEF",t="";return r.forEach(i=>{t+=e[i>>4]+e[i&15]}),BigInt("0x0"+t)}function rt(r,e){let t=r%e;return t<Ci?t+e:t}function UV(r,e,t){let i=-r;return e&i|t&~i}function vr(r,e,t){if(t===Ci)throw Error("Modulo cannot be zero");if(t===md)return BigInt(0);if(e<Ci)throw Error("Unsopported negative exponent");let i=e,n=r;n%=t;let s=BigInt(1);for(;i>Ci;){let o=i&md;i>>=md;let a=s*n%t;s=UV(o,a,s),n=n*n%t}return s}function f5(r){return r>=Ci?r:-r}function RV(r,e){let t=BigInt(0),i=BigInt(1),n=BigInt(1),s=BigInt(0),o=f5(r),a=f5(e),c=r<Ci,l=e<Ci;for(;a!==Ci;){let d=o/a,u=t;t=n-d*t,n=u,u=i,i=s-d*i,s=u,u=a,a=o%a,o=u}return{x:c?-n:n,y:l?-s:s,gcd:o}}function Bd(r,e){let{gcd:t,x:i}=RV(r,e);if(t!==md)throw new Error("Inverse does not exist");return rt(i+e,e)}function NV(r,e){let t=r,i=e;for(;i!==Ci;){let n=i;i=t%i,t=n}return t}function mB(r){let e=Number(r);if(e>Number.MAX_SAFE_INTEGER)throw new Error("Number can only safely store up to 53 bits");return e}function qV(r,e){return(r>>BigInt(e)&md)===Ci?0:1}function Td(r){let e=r<Ci?BigInt(-1):Ci,t=1,i=r;for(;(i>>=md)!==e;)t++;return t}function Ei(r){let e=r<Ci?BigInt(-1):Ci,t=BigInt(8),i=1,n=r;for(;(n>>=t)!==e;)i++;return i}function Wt(r,e="be",t){let i=r.toString(16);i.length%2===1&&(i="0"+i);let n=i.length/2,s=new Uint8Array(t||n),o=t?t-n:0,a=0;for(;a<n;)s[a+o]=parseInt(i.slice(2*a,2*a+2),16),a++;return e!=="be"&&s.reverse(),s}function Rr(r){let e=typeof crypto<"u"?crypto:OV?.webcrypto;if(e?.getRandomValues){let t=new Uint8Array(r);return e.getRandomValues(t)}else throw new Error("No secure random number generator available.")}function ba(r,e){if(e<r)throw new Error("Illegal parameter value: max <= min");let t=e-r,i=Ei(t),n=Te(Rr(i+8));return rt(n,t)+r}function A5(r,e,t){let i=BigInt(30),n=cs<<BigInt(r-1),s=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2],o=ba(n,n<<cs),a=mB(rt(o,i));do o+=BigInt(s[a]),a=(a+s[a])%s.length,Td(o)>r&&(o=rt(o,n<<cs),o+=n,a=mB(rt(o,i)));while(!N6(o,e,t));return o}function N6(r,e,t){return!(e&&NV(r-cs,e)!==cs||!LV(r)||!MV(r)||!KV(r,t))}function MV(r,e=BigInt(2)){return vr(e,r-cs,r)===cs}function LV(r){let e=BigInt(0);return HV.every(t=>rt(r,t)!==e)}function KV(r,e,t){let i=Td(r);e||(e=Math.max(1,i/48|0));let n=r-cs,s=0;for(;!qV(n,s);)s++;let o=r>>BigInt(s);for(;e>0;e--){let a=ba(BigInt(2),n),c=vr(a,o,r);if(c===cs||c===n)continue;let l;for(l=1;l<s;l++){if(c=rt(c*c,r),c===cs)return!1;if(c===n)break}if(l===s)return!1}return!0}function oo(r){if(!(!Ny||!GV.includes(r)))return async function(e){let t=Ny.createHash(r);return sr(e,i=>{t.update(i)},()=>new Uint8Array(t.digest()))}}function ao(r,e){let t=async()=>{let{nobleHashes:i}=await Promise.resolve().then(function(){return jee}),n=i.get(r);if(!n)throw new Error("Unsupported hash");return n};return async function(i){if(St(i)&&(i=await Xt(i)),F.isStream(i)){let s=(await t()).create();return sr(i,o=>{s.update(o)},()=>s.digest())}else return h5&&e?new Uint8Array(await h5.digest(e,i)):(await t())(i)}}function fs(r,e){switch(r){case m.hash.md5:return zV(e);case m.hash.sha1:return JV(e);case m.hash.ripemd:return WV(e);case m.hash.sha256:return $V(e);case m.hash.sha384:return VV(e);case m.hash.sha512:return YV(e);case m.hash.sha224:return jV(e);case m.hash.sha3_256:return XV(e);case m.hash.sha3_512:return ZV(e);default:throw new Error("Unsupported hash function")}}function gr(r){switch(r){case m.hash.md5:return 16;case m.hash.sha1:case m.hash.ripemd:return 20;case m.hash.sha256:return 32;case m.hash.sha384:return 48;case m.hash.sha512:return 64;case m.hash.sha224:return 28;case m.hash.sha3_256:return 32;case m.hash.sha3_512:return 64;default:throw new Error("Invalid hash algorithm.")}}function eY(r){let e=new Uint8Array(r),t=0;for(;t<r;){let i=Rr(r-t);for(let n=0;n<i.length;n++)i[n]!==0&&(e[t++]=i[n])}return e}function q6(r,e){let t=r.length;if(t>e-11)throw new Error("Message too long");let i=eY(e-t-3),n=new Uint8Array(e);return n[1]=2,n.set(i,2),n.set(r,e-t),n}function O6(r,e){let t=2,i=1;for(let a=t;a<r.length;a++)i&=r[a]!==0,t+=i;let n=t-2,s=r.subarray(t+1),o=r[0]===0&r[1]===2&n>=8&!i;if(e)return F.selectUint8Array(o,s,e);if(o)return s;throw new Error("Decryption error")}function M6(r,e,t){let i;if(e.length!==gr(r))throw new Error("Invalid hash length");let n=new Uint8Array(nn[r].length);for(i=0;i<nn[r].length;i++)n[i]=nn[r][i];let s=n.length+e.length;if(t<s+11)throw new Error("Intended encoded message length too short");let o=new Uint8Array(t-s-3).fill(255),a=new Uint8Array(t);return a[1]=1,a.set(o,2),a.set(n,t-s),a.set(e,t-e.length),a}async function tY(r,e,t,i,n,s,o,a,c){if(gr(r)>=t.length)throw new Error("Digest size cannot exceed key modulus size");if(e&&!F.isStream(e)){if(F.getWebCrypto())try{return await cY(m.read(m.webHash,r),e,t,i,n,s,o,a)}catch(l){F.printDebugError(l)}else if(F.getNodeCrypto())return lY(r,e,t,i,n,s,o,a)}return aY(r,t,n,c)}async function rY(r,e,t,i,n,s){if(e&&!F.isStream(e)){if(F.getWebCrypto())try{return await uY(m.read(m.webHash,r),e,t,i,n)}catch(o){F.printDebugError(o)}else if(F.getNodeCrypto())return fY(r,e,t,i,n)}return dY(r,t,i,n,s)}async function iY(r,e,t){return F.getNodeCrypto()?AY(r,e,t):hY(r,e,t)}async function nY(r,e,t,i,n,s,o,a){if(F.getNodeCrypto()&&!a)try{return gY(r,e,t,i,n,s,o)}catch(c){F.printDebugError(c)}return pY(r,e,t,i,n,s,o,a)}async function sY(r,e){if(e=BigInt(e),F.getWebCrypto()){let o={name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Wt(e),hash:{name:"SHA-1"}},a=await bd.generateKey(o,!0,["sign","verify"]),c=await bd.exportKey("jwk",a.privateKey);return g5(c,e)}else if(F.getNodeCrypto()){let o={modulusLength:r,publicExponent:mB(e),publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}},a=await new Promise((c,l)=>{Rc.generateKeyPair("rsa",o,(d,u,f)=>{d?l(d):c(f)})});return g5(a,e)}let t,i,n;do i=A5(r-(r>>1),e,40),t=A5(r>>1,e,40),n=t*i;while(Td(n)!==r);let s=(t-wa)*(i-wa);return i<t&&([t,i]=[i,t]),{n:Wt(n),e:Wt(e),d:Wt(Bd(e,s)),p:Wt(t),q:Wt(i),u:Wt(Bd(t,i))}}async function oY(r,e,t,i,n,s){if(r=Te(r),i=Te(i),n=Te(n),i*n!==r)return!1;let o=BigInt(2);if(s=Te(s),rt(i*s,n)!==BigInt(1))return!1;e=Te(e),t=Te(t);let a=BigInt(Math.floor(Td(r)/3)),c=ba(o,o<<a),l=c*t*e;return rt(l,i-wa)===c&&rt(l,n-wa)===c}function aY(r,e,t,i){e=Te(e);let n=Te(M6(r,i,Ei(e)));return t=Te(t),Wt(vr(n,t,e),"be",Ei(e))}async function cY(r,e,t,i,n,s,o,a){let c=e1(t,i,n,s,o,a),l={name:"RSASSA-PKCS1-v1_5",hash:{name:r}},d=await bd.importKey("jwk",c,l,!1,["sign"]);return new Uint8Array(await bd.sign("RSASSA-PKCS1-v1_5",d,e))}function lY(r,e,t,i,n,s,o,a){let c=Rc.createSign(m.read(m.hash,r));c.write(e),c.end();let l=e1(t,i,n,s,o,a);return new Uint8Array(c.sign({key:l,format:"jwk",type:"pkcs1"}))}function dY(r,e,t,i,n){if(t=Te(t),e=Te(e),i=Te(i),e>=t)throw new Error("Signature size cannot exceed modulus size");let s=Wt(vr(e,i,t),"be",Ei(t)),o=M6(r,n,Ei(t));return F.equalsUint8Array(s,o)}async function uY(r,e,t,i,n){let s=t1(i,n),o=await bd.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:r}},!1,["verify"]);return bd.verify("RSASSA-PKCS1-v1_5",o,t,e)}function fY(r,e,t,i,n){let o={key:t1(i,n),format:"jwk",type:"pkcs1"},a=Rc.createVerify(m.read(m.hash,r));a.write(e),a.end();try{return a.verify(o,t)}catch{return!1}}function AY(r,e,t){let n={key:t1(e,t),format:"jwk",type:"pkcs1",padding:Rc.constants.RSA_PKCS1_PADDING};return new Uint8Array(Rc.publicEncrypt(n,r))}function hY(r,e,t){if(e=Te(e),r=Te(q6(r,Ei(e))),t=Te(t),r>=e)throw new Error("Message size cannot exceed modulus size");return Wt(vr(r,t,e),"be",Ei(e))}function gY(r,e,t,i,n,s,o){let c={key:e1(e,t,i,n,s,o),format:"jwk",type:"pkcs1",padding:Rc.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(Rc.privateDecrypt(c,r))}catch{throw new Error("Decryption error")}}function pY(r,e,t,i,n,s,o,a){if(r=Te(r),e=Te(e),t=Te(t),i=Te(i),n=Te(n),s=Te(s),o=Te(o),r>=e)throw new Error("Data too large.");let c=rt(i,s-wa),l=rt(i,n-wa),d=ba(BigInt(2),e),u=vr(Bd(d,e),t,e);r=rt(r*u,e);let f=vr(r,l,n),h=vr(r,c,s),p=rt(o*(h-f),s)*n+f;return p=rt(p*d,e),O6(Wt(p,"be",Ei(e)),a)}function e1(r,e,t,i,n,s){let o=Te(i),a=Te(n),c=Te(t),l=rt(c,a-wa),d=rt(c,o-wa);return d=Wt(d),l=Wt(l),{kty:"RSA",n:Tr(r),e:Tr(e),d:Tr(t),p:Tr(n),q:Tr(i),dp:Tr(l),dq:Tr(d),qi:Tr(s),ext:!0}}function t1(r,e){return{kty:"RSA",n:Tr(r),e:Tr(e),ext:!0}}function g5(r,e){return{n:wi(r.n),e:Wt(e),d:wi(r.d),p:wi(r.q),q:wi(r.p),u:wi(r.qi)}}async function mY(r,e,t,i){e=Te(e),t=Te(t),i=Te(i);let n=q6(r,Ei(e)),s=Te(n),o=ba(ga,e-ga);return{c1:Wt(vr(t,o,e)),c2:Wt(rt(vr(i,o,e)*s,e))}}async function yY(r,e,t,i,n){r=Te(r),e=Te(e),t=Te(t),i=Te(i);let s=rt(Bd(vr(r,i,t),t)*e,t);return O6(Wt(s,"be",Ei(t)),n)}async function IY(r,e,t,i){let n=Te(r),s=Te(e),o=Te(t);if(s<=ga||s>=n)return!1;let a=BigInt(Td(n)),c=BigInt(1023);if(a<c||vr(s,n-ga,n)!==ga)return!1;let l=s,d=BigInt(1),u=BigInt(2),f=u<<BigInt(17);for(;d<f;){if(l=rt(l*s,n),l===ga)return!1;d++}let h=Te(i),g=ba(u<<a-ga,u<<a),p=(n-ga)*g+h;return o===vr(s,p,n)}function L6(r){let e=0,t,i=r[0];return i<192?([e]=r,t=1):i<255?(e=(r[0]-192<<8)+r[1]+192,t=2):i===255&&(e=F.readNumber(r.subarray(1,5)),t=5),{len:e,offset:t}}function xI(r){return r<192?new Uint8Array([r]):r>191&&r<8384?new Uint8Array([(r-192>>8)+192,r-192&255]):F.concatUint8Array([new Uint8Array([255]),F.writeNumber(r,4)])}function xY(r){if(r<0||r>30)throw new Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+r])}function qy(r){return new Uint8Array([192|r])}function p5(r,e){return F.concatUint8Array([qy(r),xI(e)])}function ky(r){return[m.packet.literalData,m.packet.compressedData,m.packet.symmetricallyEncryptedData,m.packet.symEncryptedIntegrityProtectedData,m.packet.aeadEncryptedData].includes(r)}async function CY(r,e,t){let i,n;try{let s=await r.peekBytes(2);if(!s||s.length<2||(s[0]&128)===0)throw new Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");let o=await r.readByte(),a=-1,c=-1,l;c=0,(o&64)!==0&&(c=1);let d;c?a=o&63:(a=(o&63)>>2,d=o&3);let u=ky(a),f=null;if(e&&u){if(e==="array"){let g=new on;i=Hi(g),f=g}else{let g=new TransformStream;i=Hi(g.writable),f=g.readable}n=t({tag:a,packet:f})}else f=[];let h;do{if(c){let g=await r.readByte();if(h=!1,g<192)l=g;else if(g>=192&&g<224)l=(g-192<<8)+await r.readByte()+192;else if(g>223&&g<255){if(l=1<<(g&31),h=!0,!u)throw new TypeError("This packet type does not support partial lengths.")}else l=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte()}else switch(d){case 0:l=await r.readByte();break;case 1:l=await r.readByte()<<8|await r.readByte();break;case 2:l=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte();break;default:l=1/0;break}if(l>0){let g=0;for(;;){i&&await i.ready;let{done:p,value:I}=await r.read();if(p){if(l===1/0)break;throw new Error("Unexpected end of packet")}let y=l===1/0?I:I.subarray(0,l-g);if(i?await i.write(y):f.push(y),g+=I.length,g>=l){r.unshift(I.subarray(l-g+I.length));break}}}}while(h);i?(await i.ready,await i.close()):(f=F.concatUint8Array(f),await t({tag:a,packet:f}))}catch(s){if(i)return await i.abort(s),!0;throw s}finally{i&&await n}}async function r1(r){switch(r){case m.publicKey.ed25519:try{let e=F.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]).catch(s=>{if(s.name==="OperationError"){let o=new Error("Unexpected key generation issue");throw o.name="NotSupportedError",o}throw s}),i=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);return{A:new Uint8Array(wi(n.x)),seed:wi(i.d,!0)}}catch(e){if(e.name!=="NotSupportedError")throw e;let{default:t}=await Promise.resolve().then(function(){return Jc}),i=Rr(CI(r)),{publicKey:n}=t.sign.keyPair.fromSeed(i);return{A:n,seed:i}}case m.publicKey.ed448:{let e=await F.getNobleCurve(m.publicKey.ed448),{secretKey:t,publicKey:i}=e.keygen();return{A:i,seed:t}}default:throw new Error("Unsupported EdDSA algorithm")}}async function i1(r,e,t,i,n,s){if(gr(e)<gr(EI(r)))throw new Error("Hash algorithm too weak for EdDSA.");switch(r){case m.publicKey.ed25519:try{let o=F.getWebCrypto(),a=H6(r,i,n),c=await o.importKey("jwk",a,"Ed25519",!1,["sign"]);return{RS:new Uint8Array(await o.sign("Ed25519",c,s))}}catch(o){if(o.name!=="NotSupportedError")throw o;let{default:a}=await Promise.resolve().then(function(){return Jc}),c=F.concatUint8Array([n,i]);return{RS:a.sign.detached(s,c)}}case m.publicKey.ed448:return{RS:(await F.getNobleCurve(m.publicKey.ed448)).sign(s,n)};default:throw new Error("Unsupported EdDSA algorithm")}}async function n1(r,e,{RS:t},i,n,s){if(gr(e)<gr(EI(r)))throw new Error("Hash algorithm too weak for EdDSA.");switch(r){case m.publicKey.ed25519:try{let o=F.getWebCrypto(),a=o1(r,n),c=await o.importKey("jwk",a,"Ed25519",!1,["verify"]);return await o.verify("Ed25519",c,t,s)}catch(o){if(o.name!=="NotSupportedError")throw o;let{default:a}=await Promise.resolve().then(function(){return Jc});return a.sign.detached.verify(s,t,n)}case m.publicKey.ed448:return(await F.getNobleCurve(m.publicKey.ed448)).verify(t,s,n);default:throw new Error("Unsupported EdDSA algorithm")}}async function s1(r,e,t){switch(r){case m.publicKey.ed25519:try{let i=F.getWebCrypto(),n=H6(r,e,t),s=o1(r,e),o=await i.importKey("jwk",n,"Ed25519",!1,["sign"]),a=await i.importKey("jwk",s,"Ed25519",!1,["verify"]),c=Rr(8),l=new Uint8Array(await i.sign("Ed25519",o,c));return await i.verify("Ed25519",a,l,c)}catch(i){if(i.name!=="NotSupportedError")return!1;let{default:n}=await Promise.resolve().then(function(){return Jc}),{publicKey:s}=n.sign.keyPair.fromSeed(t);return F.equalsUint8Array(e,s)}case m.publicKey.ed448:{let n=(await F.getNobleCurve(m.publicKey.ed448)).getPublicKey(t);return F.equalsUint8Array(e,n)}default:return!1}}function CI(r){switch(r){case m.publicKey.ed25519:return 32;case m.publicKey.ed448:return 57;default:throw new Error("Unsupported EdDSA algorithm")}}function EI(r){switch(r){case m.publicKey.ed25519:return m.hash.sha256;case m.publicKey.ed448:return m.hash.sha512;default:throw new Error("Unknown EdDSA algo")}}function K6(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function kt(r,...e){if(!K6(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function Oy(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function G6(r,e){kt(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function a1(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Et(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Xr(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function BI(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function bY(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function zf(r){if(typeof r=="string")r=bY(r);else if(K6(r))r=Bi(r);else throw new Error("Uint8Array expected, got "+typeof r);return r}function z6(r,e){return r.buffer===e.buffer&&r.byteOffset<e.byteOffset+e.byteLength&&e.byteOffset<r.byteOffset+r.byteLength}function c1(r,e){if(z6(r,e)&&r.byteOffset<e.byteOffset)throw new Error("complex overlap of input and output is not supported")}function vY(...r){let e=0;for(let i=0;i<r.length;i++){let n=r[i];kt(n),e+=n.length}let t=new Uint8Array(e);for(let i=0,n=0;i<r.length;i++){let s=r[i];t.set(s,n),n+=s.length}return t}function J6(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r[i]^e[i];return t===0}function fA(r,e,t=!0){if(e===void 0)return new Uint8Array(r);if(e.length!==r)throw new Error("invalid output length, expected "+r+", got: "+e.length);if(t&&!sn(e))throw new Error("invalid output, must be aligned");return e}function yB(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);let n=BigInt(32),s=BigInt(4294967295),o=Number(t>>n&s),a=Number(t&s),c=0,l=4;r.setUint32(e+c,o,i),r.setUint32(e+l,a,i)}function kY(r,e,t){let i=new Uint8Array(16),n=BI(i);return yB(n,0,BigInt(e),t),yB(n,8,BigInt(r),t),i}function sn(r){return r.byteOffset%4===0}function Bi(r){return Uint8Array.from(r)}function QY(r){r.reverse();let e=r[15]&1,t=0;for(let i=0;i<r.length;i++){let n=r[i];r[i]=n>>>1|t,t=(n&1)<<7}return r[0]^=-e&225,r}function j6(r){let e=(i,n)=>r(n,i.length).update(zf(i)).digest(),t=r(new Uint8Array(16),0);return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=(i,n)=>r(i,n),e}function u1(r){return r<<1^FY&-(r>>7)}function Ad(r,e){let t=0;for(;e>0;e>>=1)t^=r&-(e&1),r=u1(r);return t}function $6(r,e){if(r.length!==256)throw new Error("Wrong sbox length");let t=new Uint32Array(256).map((l,d)=>e(r[d])),i=t.map(ME),n=i.map(ME),s=n.map(ME),o=new Uint32Array(256*256),a=new Uint32Array(256*256),c=new Uint16Array(256*256);for(let l=0;l<256;l++)for(let d=0;d<256;d++){let u=l*256+d;o[u]=t[l]^i[d],a[u]=n[l]^s[d],c[u]=r[l]<<8|r[d]}return{sbox:r,sbox2:c,T0:t,T1:i,T2:n,T3:s,T01:o,T23:a}}function Kc(r){kt(r);let e=r.length;if(![16,24,32].includes(e))throw new Error("aes: invalid key size, should be 16, 24 or 32, got "+e);let{sbox2:t}=f1,i=[];sn(r)||i.push(r=Bi(r));let n=Et(r),s=n.length,o=c=>os(t,c,c,c,c),a=new Uint32Array(e+28);a.set(n);for(let c=s;c<a.length;c++){let l=a[c-1];c%s===0?l=o(TY(l))^UY[c/s-1]:s>6&&c%s===4&&(l=o(l)),a[c]=a[c-s]^l}return Xr(...i),a}function A1(r){let e=Kc(r),t=e.slice(),i=e.length,{sbox2:n}=f1,{T0:s,T1:o,T2:a,T3:c}=V6;for(let l=0;l<i;l+=4)for(let d=0;d<4;d++)t[l+d]=e[i-l-4+d];Xr(e);for(let l=4;l<i-4;l++){let d=t[l],u=os(n,d,d,d,d);t[l]=s[u&255]^o[u>>>8&255]^a[u>>>16&255]^c[u>>>24]}return t}function ma(r,e,t,i,n,s){return r[t<<8&65280|i>>>8&255]^e[n>>>8&65280|s>>>24&255]}function os(r,e,t,i,n){return r[e&255|t&65280]|r[i>>>16&255|n>>>16&65280]<<16}function Fn(r,e,t,i,n){let{sbox2:s,T01:o,T23:a}=f1,c=0;e^=r[c++],t^=r[c++],i^=r[c++],n^=r[c++];let l=r.length/4-2;for(let g=0;g<l;g++){let p=r[c++]^ma(o,a,e,t,i,n),I=r[c++]^ma(o,a,t,i,n,e),y=r[c++]^ma(o,a,i,n,e,t),w=r[c++]^ma(o,a,n,e,t,i);e=p,t=I,i=y,n=w}let d=r[c++]^os(s,e,t,i,n),u=r[c++]^os(s,t,i,n,e),f=r[c++]^os(s,i,n,e,t),h=r[c++]^os(s,n,e,t,i);return{s0:d,s1:u,s2:f,s3:h}}function bI(r,e,t,i,n){let{sbox2:s,T01:o,T23:a}=V6,c=0;e^=r[c++],t^=r[c++],i^=r[c++],n^=r[c++];let l=r.length/4-2;for(let g=0;g<l;g++){let p=r[c++]^ma(o,a,e,n,i,t),I=r[c++]^ma(o,a,t,e,n,i),y=r[c++]^ma(o,a,i,t,e,n),w=r[c++]^ma(o,a,n,i,t,e);e=p,t=I,i=y,n=w}let d=r[c++]^os(s,e,n,i,t),u=r[c++]^os(s,t,e,n,i),f=r[c++]^os(s,i,t,e,n),h=r[c++]^os(s,n,i,t,e);return{s0:d,s1:u,s2:f,s3:h}}function Y6(r,e,t,i){kt(e,bi),kt(t);let n=t.length;i=fA(n,i),c1(t,i);let s=e,o=Et(s),{s0:a,s1:c,s2:l,s3:d}=Fn(r,o[0],o[1],o[2],o[3]),u=Et(t),f=Et(i);for(let g=0;g+4<=u.length;g+=4){f[g+0]=u[g+0]^a,f[g+1]=u[g+1]^c,f[g+2]=u[g+2]^l,f[g+3]=u[g+3]^d;let p=1;for(let I=s.length-1;I>=0;I--)p=p+(s[I]&255)|0,s[I]=p&255,p>>>=8;({s0:a,s1:c,s2:l,s3:d}=Fn(r,o[0],o[1],o[2],o[3]))}let h=bi*Math.floor(u.length/d1);if(h<n){let g=new Uint32Array([a,c,l,d]),p=a1(g);for(let I=h,y=0;I<n;I++,y++)i[I]=t[I]^p[y];Xr(g)}return i}function qf(r,e,t,i,n){kt(t,bi),kt(i),n=fA(i.length,n);let s=t,o=Et(s),a=BI(s),c=Et(i),l=Et(n),d=e?0:12,u=i.length,f=a.getUint32(d,e),{s0:h,s1:g,s2:p,s3:I}=Fn(r,o[0],o[1],o[2],o[3]);for(let w=0;w+4<=c.length;w+=4)l[w+0]=c[w+0]^h,l[w+1]=c[w+1]^g,l[w+2]=c[w+2]^p,l[w+3]=c[w+3]^I,f=f+1>>>0,a.setUint32(d,f,e),{s0:h,s1:g,s2:p,s3:I}=Fn(r,o[0],o[1],o[2],o[3]);let y=bi*Math.floor(c.length/d1);if(y<u){let w=new Uint32Array([h,g,p,I]),C=a1(w);for(let b=y,x=0;b<u;b++,x++)n[b]=i[b]^C[x];Xr(w)}return n}function NY(r){if(kt(r),r.length%bi!==0)throw new Error("aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size "+bi)}function qY(r,e,t){kt(r);let i=r.length,n=i%bi;if(!e&&n!==0)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");sn(r)||(r=Bi(r));let s=Et(r);if(e){let a=bi-n;a||(a=bi),i=i+a}t=fA(i,t),c1(r,t);let o=Et(t);return{b:s,o,out:t}}function OY(r,e){if(!e)return r;let t=r.length;if(!t)throw new Error("aes/pcks5: empty ciphertext not allowed");let i=r[t-1];if(i<=0||i>16)throw new Error("aes/pcks5: wrong padding");let n=r.subarray(0,-i);for(let s=0;s<i;s++)if(r[t-s-1]!==i)throw new Error("aes/pcks5: wrong padding");return n}function MY(r){let e=new Uint8Array(16),t=Et(e);e.set(r);let i=bi-r.length;for(let n=bi-i;n<bi;n++)e[n]=i;return t}function LY(r,e,t,i,n){let s=n?n.length:0,o=r.create(t,i.length+s);n&&o.update(n);let a=kY(8*i.length,8*s,e);o.update(i),o.update(a);let c=o.digest();return Xr(a),c}function X6(r){return r instanceof Uint32Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint32Array"}function Z6(r,e){if(kt(e,16),!X6(r))throw new Error("_encryptBlock accepts result of expandKeyLE");let t=Et(e),{s0:i,s1:n,s2:s,s3:o}=Fn(r,t[0],t[1],t[2],t[3]);return t[0]=i,t[1]=n,t[2]=s,t[3]=o,e}function eT(r,e){if(kt(e,16),!X6(r))throw new Error("_decryptBlock accepts result of expandKeyLE");let t=Et(e),{s0:i,s1:n,s2:s,s3:o}=bI(r,t[0],t[1],t[2],t[3]);return t[0]=i,t[1]=n,t[2]=s,t[3]=o,e}async function rT(r){switch(r){case m.symmetric.aes128:case m.symmetric.aes192:case m.symmetric.aes256:throw new Error("Not a legacy cipher");case m.symmetric.cast5:case m.symmetric.blowfish:case m.symmetric.twofish:case m.symmetric.tripledes:{let{legacyCiphers:e}=await Promise.resolve().then(function(){return fte}),t=m.read(m.symmetric,r),i=e.get(t);if(!i)throw new Error("Unsupported cipher algorithm");return i}default:throw new Error("Unsupported cipher algorithm")}}function HY(r){switch(r){case m.symmetric.aes128:case m.symmetric.aes192:case m.symmetric.aes256:case m.symmetric.twofish:return 16;case m.symmetric.blowfish:case m.symmetric.cast5:case m.symmetric.tripledes:return 8;default:throw new Error("Unsupported cipher")}}function KY(r){switch(r){case m.symmetric.aes128:case m.symmetric.blowfish:case m.symmetric.cast5:return 16;case m.symmetric.aes192:case m.symmetric.tripledes:return 24;case m.symmetric.aes256:case m.symmetric.twofish:return 32;default:throw new Error("Unsupported cipher")}}function It(r){return{keySize:KY(r),blockSize:HY(r)}}async function CB(r,e,t){let{keySize:i}=It(r);if(!F.isAES(r)||e.length!==i)throw new Error("Unexpected algorithm or key size");try{let n=await Id.importKey("raw",e,{name:"AES-KW"},!1,["wrapKey"]),s=await Id.importKey("raw",t,{name:"HMAC",hash:"SHA-256"},!0,["sign"]),o=await Id.wrapKey("raw",s,n,{name:"AES-KW"});return new Uint8Array(o)}catch(n){if(n.name!=="NotSupportedError"&&!(e.length===24&&n.name==="OperationError"))throw n;F.printDebugError("Browser did not support operation: "+n.message)}return tT(e).encrypt(t)}async function EB(r,e,t){let{keySize:i}=It(r);if(!F.isAES(r)||e.length!==i)throw new Error("Unexpected algorithm or key size");let n;try{n=await Id.importKey("raw",e,{name:"AES-KW"},!1,["unwrapKey"])}catch(s){if(s.name!=="NotSupportedError"&&!(e.length===24&&s.name==="OperationError"))throw s;return F.printDebugError("Browser did not support operation: "+s.message),tT(e).decrypt(t)}try{let s=await Id.unwrapKey("raw",t,n,{name:"AES-KW"},{name:"HMAC",hash:"SHA-256"},!0,["sign"]);return new Uint8Array(await Id.exportKey("raw",s))}catch(s){throw s.name==="OperationError"?new Error("Key Data Integrity failed"):s}}async function xa(r,e,t,i,n){let s=F.getWebCrypto(),o=m.read(m.webHash,r);if(!o)throw new Error("Hash algo not supported with HKDF");let a=await s.importKey("raw",e,"HKDF",!1,["deriveBits"]),c=await s.deriveBits({name:"HKDF",hash:o,salt:t,info:i},a,n*8);return new Uint8Array(c)}async function h1(r){switch(r){case m.publicKey.x25519:try{let e=F.getWebCrypto(),t=await e.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch(s=>{if(s.name==="OperationError"){let o=new Error("Unexpected key generation issue");throw o.name="NotSupportedError",o}throw s}),i=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);if(i.x!==n.x){let s=new Error("Unexpected mismatching public point");throw s.name="NotSupportedError",s}return{A:new Uint8Array(wi(n.x)),k:wi(i.d)}}catch(e){if(e.name!=="NotSupportedError")throw e;let{default:t}=await Promise.resolve().then(function(){return Jc}),{secretKey:i,publicKey:n}=t.box.keyPair();return{A:n,k:i}}case m.publicKey.x448:{let e=await F.getNobleCurve(m.publicKey.x448),{secretKey:t,publicKey:i}=e.keygen();return{A:i,k:t}}default:throw new Error("Unsupported ECDH algorithm")}}async function g1(r,e,t){switch(r){case m.publicKey.x25519:try{let{ephemeralPublicKey:i,sharedSecret:n}=await kI(r,e),s=await SI(r,i,e,t);return F.equalsUint8Array(n,s)}catch{return!1}case m.publicKey.x448:{let n=(await F.getNobleCurve(m.publicKey.x448)).getPublicKey(t);return F.equalsUint8Array(e,n)}default:return!1}}async function iT(r,e,t){let{ephemeralPublicKey:i,sharedSecret:n}=await kI(r,t),s=F.concatUint8Array([i,t,n]);switch(r){case m.publicKey.x25519:{let o=m.symmetric.aes128,{keySize:a}=It(o),c=await xa(m.hash.sha256,s,new Uint8Array,Ly.x25519,a),l=await CB(o,c,e);return{ephemeralPublicKey:i,wrappedKey:l}}case m.publicKey.x448:{let o=m.symmetric.aes256,{keySize:a}=It(m.symmetric.aes256),c=await xa(m.hash.sha512,s,new Uint8Array,Ly.x448,a),l=await CB(o,c,e);return{ephemeralPublicKey:i,wrappedKey:l}}default:throw new Error("Unsupported ECDH algorithm")}}async function nT(r,e,t,i,n){let s=await SI(r,e,i,n),o=F.concatUint8Array([e,i,s]);switch(r){case m.publicKey.x25519:{let a=m.symmetric.aes128,{keySize:c}=It(a),l=await xa(m.hash.sha256,o,new Uint8Array,Ly.x25519,c);return EB(a,l,t)}case m.publicKey.x448:{let a=m.symmetric.aes256,{keySize:c}=It(m.symmetric.aes256),l=await xa(m.hash.sha512,o,new Uint8Array,Ly.x448,c);return EB(a,l,t)}default:throw new Error("Unsupported ECDH algorithm")}}function vI(r){switch(r){case m.publicKey.x25519:return 32;case m.publicKey.x448:return 56;default:throw new Error("Unsupported ECDH algorithm")}}async function kI(r,e){switch(r){case m.publicKey.x25519:try{let t=F.getWebCrypto(),i=await t.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch(l=>{if(l.name==="OperationError"){let d=new Error("Unexpected key generation issue");throw d.name="NotSupportedError",d}throw l}),n=await t.exportKey("jwk",i.publicKey);if((await t.exportKey("jwk",i.privateKey)).x!==n.x){let l=new Error("Unexpected mismatching public point");throw l.name="NotSupportedError",l}let o=p1(r,e),a=await t.importKey("jwk",o,"X25519",!1,[]),c=await t.deriveBits({name:"X25519",public:a},i.privateKey,vI(r)*8);return{sharedSecret:new Uint8Array(c),ephemeralPublicKey:new Uint8Array(wi(n.x))}}catch(t){if(t.name!=="NotSupportedError")throw t;let{default:i}=await Promise.resolve().then(function(){return Jc}),{secretKey:n,publicKey:s}=i.box.keyPair(),o=i.scalarMult(n,e);return Hy(o),{ephemeralPublicKey:s,sharedSecret:o}}case m.publicKey.x448:{let t=await F.getNobleCurve(m.publicKey.x448),{secretKey:i,publicKey:n}=t.keygen(),s=t.getSharedSecret(i,e);return Hy(s),{ephemeralPublicKey:n,sharedSecret:s}}default:throw new Error("Unsupported ECDH algorithm")}}async function SI(r,e,t,i){switch(r){case m.publicKey.x25519:try{let n=F.getWebCrypto(),s=GY(r,t,i),o=p1(r,e),a=await n.importKey("jwk",s,"X25519",!1,["deriveKey","deriveBits"]),c=await n.importKey("jwk",o,"X25519",!1,[]),l=await n.deriveBits({name:"X25519",public:c},a,vI(r)*8);return new Uint8Array(l)}catch(n){if(n.name!=="NotSupportedError")throw n;let{default:s}=await Promise.resolve().then(function(){return Jc}),o=s.scalarMult(i,e);return Hy(o),o}case m.publicKey.x448:{let s=(await F.getNobleCurve(m.publicKey.x448)).getSharedSecret(i,e);return Hy(s),s}default:throw new Error("Unsupported ECDH algorithm")}}function Hy(r){let e=0;for(let t=0;t<r.length;t++)e|=r[t];if(e===0)throw new Error("Unexpected low order point")}function p1(r,e){if(r===m.publicKey.x25519)return{kty:"OKP",crv:"X25519",x:Tr(e),ext:!0};throw new Error("Unsupported ECDH algorithm")}function GY(r,e,t){if(r===m.publicKey.x25519){let i=p1(r,e);return i.d=Tr(t),i}else throw new Error("Unsupported ECDH algorithm")}async function Sy(r){let e=new vi(r),{oid:t,hash:i,cipher:n}=e,s=await e.genKeyPair();return{oid:t,Q:s.publicKey,secret:F.leftPad(s.privateKey,e.payloadSize),hash:i,cipher:n}}function oT(r){return sT[r.getName()].hash}async function aT(r,e,t,i){let n={[m.curve.nistP256]:!0,[m.curve.nistP384]:!0,[m.curve.nistP521]:!0,[m.curve.secp256k1]:!0,[m.curve.curve25519Legacy]:r===m.publicKey.ecdh,[m.curve.brainpoolP256r1]:!0,[m.curve.brainpoolP384r1]:!0,[m.curve.brainpoolP512r1]:!0},s=e.getName();if(!n[s])return!1;if(s===m.curve.curve25519Legacy){let c=i.slice().reverse();return t.length<1||t[0]!==64?!1:g1(m.publicKey.x25519,t.subarray(1),c)}let a=(await F.getNobleCurve(m.publicKey.ecdsa,s)).getPublicKey(i,!1);return!!F.equalsUint8Array(a,t)}function Nc(r,e){let{payloadSize:t,wireFormatLeadingByte:i,name:n}=r,s=n===m.curve.curve25519Legacy||n===m.curve.ed25519Legacy?t:t*2;if(e[0]!==i||e.length!==s+1)throw new Error("Invalid point encoding")}async function C5(r){let e=await F.getNobleCurve(m.publicKey.ecdsa,r),{secretKey:t}=e.keygen();return{publicKey:e.getPublicKey(t,!1),privateKey:t}}async function JY(r,e){let t=await LE.generateKey({name:"ECDSA",namedCurve:ls[r]},!0,["sign","verify"]),i=await LE.exportKey("jwk",t.privateKey),n=await LE.exportKey("jwk",t.publicKey);return{publicKey:cT(n,e),privateKey:wi(i.d)}}function jY(r){let e=Ky.createECDH(is[r]);return e.generateKeys(),{publicKey:new Uint8Array(e.getPublicKey()),privateKey:new Uint8Array(e.getPrivateKey())}}function cT(r,e){let t=wi(r.x),i=wi(r.y),n=new Uint8Array(t.length+i.length+1);return n[0]=e,n.set(t,1),n.set(i,t.length+1),n}function DI(r,e,t){let i=r,n=t.slice(1,i+1),s=t.slice(i+1,i*2+1);return{kty:"EC",crv:e,x:Tr(n),y:Tr(s),ext:!0}}function lT(r,e,t,i){let n=DI(r,e,t);return n.d=Tr(i),n}async function m1(r,e,t,i,n,s){let o=new vi(r);if(Nc(o,i),t&&!F.isStream(t)){let l={publicKey:i,privateKey:n};switch(o.type){case"web":try{return await VY(o,e,t,l)}catch(d){if(o.name!=="nistP521"&&(d.name==="DataError"||d.name==="OperationError"))throw d;F.printDebugError("Browser did not support signing: "+d.message)}break;case"node":return WY(o,e,t,n)}}let c=(await F.getNobleCurve(m.publicKey.ecdsa,o.name)).sign(s,n,{lowS:!1});return{r:Wt(c.r,"be",o.payloadSize),s:Wt(c.s,"be",o.payloadSize)}}async function y1(r,e,t,i,n,s){let o=new vi(r);Nc(o,n);let a=async()=>s[0]===0?E5(o,t,s.subarray(1),n):!1;if(i&&!F.isStream(i))switch(o.type){case"web":try{return await YY(o,e,t,i,n)||a()}catch(l){if(o.name!=="nistP521"&&(l.name==="DataError"||l.name==="OperationError"))throw l;F.printDebugError("Browser did not support verifying: "+l.message)}break;case"node":return XY(o,e,t,i,n)||a()}return await E5(o,t,s,n)||a()}async function $Y(r,e,t){let i=new vi(r);if(i.keyType!==m.publicKey.ecdsa)return!1;switch(i.type){case"web":case"node":{let n=Rr(8),s=m.hash.sha256,o=await fs(s,n);try{let a=await m1(r,s,n,e,t,o);return await y1(r,s,a,n,e,o)}catch{return!1}}default:return aT(m.publicKey.ecdsa,r,e,t)}}async function E5(r,e,t,i){return(await F.getNobleCurve(m.publicKey.ecdsa,r.name)).verify(F.concatUint8Array([e.r,e.s]),t,i,{lowS:!1})}async function VY(r,e,t,i){let n=r.payloadSize,s=lT(r.payloadSize,ls[r.name],i.publicKey,i.privateKey),o=await Gy.importKey("jwk",s,{name:"ECDSA",namedCurve:ls[r.name],hash:{name:m.read(m.webHash,r.hash)}},!1,["sign"]),a=new Uint8Array(await Gy.sign({name:"ECDSA",namedCurve:ls[r.name],hash:{name:m.read(m.webHash,e)}},o,t));return{r:a.slice(0,n),s:a.slice(n,n<<1)}}async function YY(r,e,{r:t,s:i},n,s){let o=DI(r.payloadSize,ls[r.name],s),a=await Gy.importKey("jwk",o,{name:"ECDSA",namedCurve:ls[r.name],hash:{name:m.read(m.webHash,r.hash)}},!1,["verify"]),c=F.concatUint8Array([t,i]).buffer;return Gy.verify({name:"ECDSA",namedCurve:ls[r.name],hash:{name:m.read(m.webHash,e)}},a,c,n)}function WY(r,e,t,i){let n=F.nodeRequire("eckey-utils"),s=F.getNodeBuffer(),{privateKey:o}=n.generateDer({curveName:is[r.name],privateKey:s.from(i)}),a=dT.createSign(m.read(m.hash,e));a.write(t),a.end();let c=new Uint8Array(a.sign({key:o,format:"der",type:"sec1",dsaEncoding:"ieee-p1363"})),l=r.payloadSize;return{r:c.subarray(0,l),s:c.subarray(l,l<<1)}}function XY(r,e,{r:t,s:i},n,s){let o=F.nodeRequire("eckey-utils"),a=F.getNodeBuffer(),{publicKey:c}=o.generateDer({curveName:is[r.name],publicKey:a.from(s)}),l=dT.createVerify(m.read(m.hash,e));l.write(n),l.end();let d=F.concatUint8Array([t,i]);try{return l.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},d)}catch{return!1}}async function uT(r,e,t,i,n,s){let o=new vi(r);if(Nc(o,i),gr(e)<gr(m.hash.sha256))throw new Error("Hash algorithm too weak for EdDSA.");let{RS:a}=await i1(m.publicKey.ed25519,e,t,i.subarray(1),n,s);return{r:a.subarray(0,32),s:a.subarray(32)}}async function fT(r,e,{r:t,s:i},n,s,o){let a=new vi(r);if(Nc(a,s),gr(e)<gr(m.hash.sha256))throw new Error("Hash algorithm too weak for EdDSA.");let c=F.concatUint8Array([t,i]);return n1(m.publicKey.ed25519,e,{RS:c},n,s.subarray(1),o)}async function AT(r,e,t){return r.getName()!==m.curve.ed25519Legacy||e.length<1||e[0]!==64?!1:s1(m.publicKey.ed25519,e.subarray(1),t)}function tW(r){let e=8-r.length%8,t=new Uint8Array(r.length+e).fill(e);return t.set(r),t}function rW(r){let e=r.length;if(e>0){let t=r[e-1];if(t>=1){let i=r.subarray(e-t),n=new Uint8Array(t).fill(t);if(F.equalsUint8Array(i,n))return r.subarray(0,e-t)}}throw new Error("Invalid padding")}async function iW(r,e,t){return aT(m.publicKey.ecdh,r,e,t)}function hT(r,e,t,i){return F.concatUint8Array([e.write(),new Uint8Array([r]),t.write(),F.stringToUint8Array("Anonymous Sender "),i])}async function gT(r,e,t,i,n=!1,s=!1){let o;if(n){for(o=0;o<e.length&&e[o]===0;o++);e=e.subarray(o)}if(s){for(o=e.length-1;o>=0&&e[o]===0;o--);e=e.subarray(0,o+1)}return(await fs(r,F.concatUint8Array([new Uint8Array([0,0,0,1]),e,i]))).subarray(0,t)}async function nW(r,e){switch(r.type){case"curve25519Legacy":{let{sharedSecret:t,ephemeralPublicKey:i}=await kI(m.publicKey.x25519,e.subarray(1));return{publicKey:F.concatUint8Array([new Uint8Array([r.wireFormatLeadingByte]),i]),sharedKey:t}}case"web":if(r.web&&F.getWebCrypto())try{return await aW(r,e)}catch(t){return F.printDebugError(t),b5(r,e)}break;case"node":return lW(r,e);default:return b5(r,e)}}async function pT(r,e,t,i,n){let s=tW(t),o=new vi(r);Nc(o,i);let{publicKey:a,sharedKey:c}=await nW(o,i),l=hT(m.publicKey.ecdh,r,e,n),{keySize:d}=It(e.cipher),u=await gT(e.hash,c,d,l),f=await CB(e.cipher,u,s);return{publicKey:a,wrappedKey:f}}async function sW(r,e,t,i){if(i.length!==r.payloadSize){let n=new Uint8Array(r.payloadSize);n.set(i,r.payloadSize-i.length),i=n}switch(r.type){case"curve25519Legacy":{let n=i.slice().reverse(),s=await SI(m.publicKey.x25519,e.subarray(1),t.subarray(1),n);return{secretKey:n,sharedKey:s}}case"web":if(r.web&&F.getWebCrypto())try{return await oW(r,e,t,i)}catch(n){return F.printDebugError(n),B5(r,e,i)}break;case"node":return cW(r,e,i);default:return B5(r,e,i)}}async function mT(r,e,t,i,n,s,o){let a=new vi(r);Nc(a,n),Nc(a,t);let{sharedKey:c}=await sW(a,t,n,s),l=hT(m.publicKey.ecdh,r,e,o),{keySize:d}=It(e.cipher),u;for(let f=0;f<3;f++)try{let h=await gT(e.hash,c,d,l,f===1,f===2);return rW(await EB(e.cipher,h,i))}catch(h){u=h}throw u}async function B5(r,e,t){let s=(await F.getNobleCurve(m.publicKey.ecdh,r.name)).getSharedSecret(t,e).subarray(1);return{secretKey:t,sharedKey:s}}async function b5(r,e){let t=await F.getNobleCurve(m.publicKey.ecdh,r.name),{publicKey:i,privateKey:n}=await r.genKeyPair(),o=t.getSharedSecret(n,e).subarray(1);return{publicKey:i,sharedKey:o}}async function oW(r,e,t,i){let n=F.getWebCrypto(),s=lT(r.payloadSize,r.web,t,i),o=n.importKey("jwk",s,{name:"ECDH",namedCurve:r.web},!0,["deriveKey","deriveBits"]),a=DI(r.payloadSize,r.web,e),c=n.importKey("jwk",a,{name:"ECDH",namedCurve:r.web},!0,[]);[o,c]=await Promise.all([o,c]);let l=n.deriveBits({name:"ECDH",namedCurve:r.web,public:c},o,r.sharedSize),d=n.exportKey("jwk",o);[l,d]=await Promise.all([l,d]);let u=new Uint8Array(l);return{secretKey:wi(d.d),sharedKey:u}}async function aW(r,e){let t=F.getWebCrypto(),i=DI(r.payloadSize,r.web,e),n=t.generateKey({name:"ECDH",namedCurve:r.web},!0,["deriveKey","deriveBits"]),s=t.importKey("jwk",i,{name:"ECDH",namedCurve:r.web},!1,[]);[n,s]=await Promise.all([n,s]);let o=t.deriveBits({name:"ECDH",namedCurve:r.web,public:s},n.privateKey,r.sharedSize),a=t.exportKey("jwk",n.publicKey);[o,a]=await Promise.all([o,a]);let c=new Uint8Array(o);return{publicKey:new Uint8Array(cT(a,r.wireFormatLeadingByte)),sharedKey:c}}function cW(r,e,t){let n=F.getNodeCrypto().createECDH(r.node);n.setPrivateKey(t);let s=new Uint8Array(n.computeSecret(e));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:s}}function lW(r,e){let i=F.getNodeCrypto().createECDH(r.node);i.generateKeys();let n=new Uint8Array(i.computeSecret(e));return{publicKey:new Uint8Array(i.getPublicKey()),sharedKey:n}}async function fW(r,e,t,i,n,s){let o=BigInt(0);i=Te(i),n=Te(n),t=Te(t),s=Te(s);let a,c,l,d;t=rt(t,i),s=rt(s,n);let u=rt(Te(e.subarray(0,Ei(n))),n);for(;;){if(a=ba(Of,n),c=rt(vr(t,a,i),n),c===o)continue;let f=rt(s*c,n);if(d=rt(u+f,n),l=rt(Bd(a,n)*d,n),l!==o)break}return{r:Wt(c,"be",Ei(i)),s:Wt(l,"be",Ei(i))}}async function AW(r,e,t,i,n,s,o,a){if(e=Te(e),t=Te(t),s=Te(s),o=Te(o),n=Te(n),a=Te(a),e<=Dy||e>=o||t<=Dy||t>=o)return F.printDebug("invalid DSA Signature"),!1;let c=rt(Te(i.subarray(0,Ei(o))),o),l=Bd(t,o);if(l===Dy)return F.printDebug("invalid DSA Signature"),!1;n=rt(n,s),a=rt(a,s);let d=rt(c*l,o),u=rt(e*l,o),f=vr(n,d,s),h=vr(a,u,s);return rt(rt(f*h,s),o)===e}async function hW(r,e,t,i,n){let s=Te(r),o=Te(e),a=Te(t),c=Te(i);if(a<=Of||a>=s||rt(s-Of,o)!==Dy||vr(a,o,s)!==Of)return!1;let l=BigInt(Td(o)),d=BigInt(150);if(l<d||!N6(o,null,32))return!1;let u=Te(n),f=BigInt(2),h=ba(f<<l-Of,f<<l),g=o*h+u;return c===vr(a,g,s)}async function gW(r,e,t,i,n){switch(r){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:{let{n:s,e:o}=t;return{c:await iY(i,s,o)}}case m.publicKey.elgamal:{let{p:s,g:o,y:a}=t;return mY(i,s,o,a)}case m.publicKey.ecdh:{let{oid:s,Q:o,kdfParams:a}=t,{publicKey:c,wrappedKey:l}=await pT(s,a,i,o,n);return{V:c,C:new zy(l)}}case m.publicKey.x25519:case m.publicKey.x448:{if(e&&!F.isAES(e))throw new Error("X25519 and X448 keys can only encrypt AES session keys");let{A:s}=t,{ephemeralPublicKey:o,wrappedKey:a}=await iT(r,i,s),c=jy.fromObject({algorithm:e,wrappedKey:a});return{ephemeralPublicKey:o,C:c}}default:return[]}}async function pW(r,e,t,i,n,s){switch(r){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaEncrypt:{let{c:o}=i,{n:a,e:c}=e,{d:l,p:d,q:u,u:f}=t;return nY(o,a,c,l,d,u,f,s)}case m.publicKey.elgamal:{let{c1:o,c2:a}=i,c=e.p,l=t.x;return yY(o,a,c,l,s)}case m.publicKey.ecdh:{let{oid:o,Q:a,kdfParams:c}=e,{d:l}=t,{V:d,C:u}=i;return mT(o,c,d,u.data,a,l,n)}case m.publicKey.x25519:case m.publicKey.x448:{let{A:o}=e,{k:a}=t,{ephemeralPublicKey:c,C:l}=i;if(l.algorithm!==null&&!F.isAES(l.algorithm))throw new Error("AES session key expected");return nT(r,c,l.wrappedKey,o,a)}default:throw new Error("Unknown public key encryption algorithm.")}}function mW(r,e){let t=0;switch(r){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,publicParams:{n:i,e:n}}}case m.publicKey.dsa:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));t+=n.length+2;let s=F.readMPI(e.subarray(t));t+=s.length+2;let o=F.readMPI(e.subarray(t));return t+=o.length+2,{read:t,publicParams:{p:i,q:n,g:s,y:o}}}case m.publicKey.elgamal:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));t+=n.length+2;let s=F.readMPI(e.subarray(t));return t+=s.length+2,{read:t,publicParams:{p:i,g:n,y:s}}}case m.publicKey.ecdsa:{let i=new ro;t+=i.read(e),HE(i);let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,publicParams:{oid:i,Q:n}}}case m.publicKey.eddsaLegacy:{let i=new ro;if(t+=i.read(e),HE(i),i.getName()!==m.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let n=F.readMPI(e.subarray(t));return t+=n.length+2,n=F.leftPad(n,33),{read:t,publicParams:{oid:i,Q:n}}}case m.publicKey.ecdh:{let i=new ro;t+=i.read(e),HE(i);let n=F.readMPI(e.subarray(t));t+=n.length+2;let s=new Jy;return t+=s.read(e.subarray(t)),{read:t,publicParams:{oid:i,Q:n,kdfParams:s}}}case m.publicKey.ed25519:case m.publicKey.ed448:case m.publicKey.x25519:case m.publicKey.x448:{let i=F.readExactSubarray(e,t,t+hd(r));return t+=i.length,{read:t,publicParams:{A:i}}}default:throw new ft("Unknown public key encryption algorithm.")}}function v5(r,e,t){let i=0;switch(r){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:{let n=F.readMPI(e.subarray(i));i+=n.length+2;let s=F.readMPI(e.subarray(i));i+=s.length+2;let o=F.readMPI(e.subarray(i));i+=o.length+2;let a=F.readMPI(e.subarray(i));return i+=a.length+2,{read:i,privateParams:{d:n,p:s,q:o,u:a}}}case m.publicKey.dsa:case m.publicKey.elgamal:{let n=F.readMPI(e.subarray(i));return i+=n.length+2,{read:i,privateParams:{x:n}}}case m.publicKey.ecdsa:case m.publicKey.ecdh:{let n=hd(r,t.oid),s=F.readMPI(e.subarray(i));return i+=s.length+2,s=F.leftPad(s,n),{read:i,privateParams:{d:s}}}case m.publicKey.eddsaLegacy:{let n=hd(r,t.oid);if(t.oid.getName()!==m.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let s=F.readMPI(e.subarray(i));return i+=s.length+2,s=F.leftPad(s,n),{read:i,privateParams:{seed:s}}}case m.publicKey.ed25519:case m.publicKey.ed448:{let n=hd(r),s=F.readExactSubarray(e,i,i+n);return i+=s.length,{read:i,privateParams:{seed:s}}}case m.publicKey.x25519:case m.publicKey.x448:{let n=hd(r),s=F.readExactSubarray(e,i,i+n);return i+=s.length,{read:i,privateParams:{k:s}}}default:throw new ft("Unknown public key encryption algorithm.")}}function yW(r,e){let t=0;switch(r){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:return{c:F.readMPI(e.subarray(t))};case m.publicKey.elgamal:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return{c1:i,c2:n}}case m.publicKey.ecdh:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=new zy;return n.read(e.subarray(t)),{V:i,C:n}}case m.publicKey.x25519:case m.publicKey.x448:{let i=hd(r),n=F.readExactSubarray(e,t,t+i);t+=n.length;let s=new jy;return s.read(e.subarray(t)),{ephemeralPublicKey:n,C:s}}default:throw new ft("Unknown public key encryption algorithm.")}}function vd(r,e){let t=new Set([m.publicKey.ed25519,m.publicKey.x25519,m.publicKey.ed448,m.publicKey.x448]),i=Object.keys(e).map(n=>{let s=e[n];return F.isUint8Array(s)?t.has(r)?s:F.uint8ArrayToMPI(s):s.write()});return F.concatUint8Array(i)}function IW(r,e,t){switch(r){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:return sY(e,65537).then(({n:i,e:n,d:s,p:o,q:a,u:c})=>({privateParams:{d:s,p:o,q:a,u:c},publicParams:{n:i,e:n}}));case m.publicKey.ecdsa:return Sy(t).then(({oid:i,Q:n,secret:s})=>({privateParams:{d:s},publicParams:{oid:new ro(i),Q:n}}));case m.publicKey.eddsaLegacy:return Sy(t).then(({oid:i,Q:n,secret:s})=>({privateParams:{seed:s},publicParams:{oid:new ro(i),Q:n}}));case m.publicKey.ecdh:return Sy(t).then(({oid:i,Q:n,secret:s,hash:o,cipher:a})=>({privateParams:{d:s},publicParams:{oid:new ro(i),Q:n,kdfParams:new Jy({hash:o,cipher:a})}}));case m.publicKey.ed25519:case m.publicKey.ed448:return r1(r).then(({A:i,seed:n})=>({privateParams:{seed:n},publicParams:{A:i}}));case m.publicKey.x25519:case m.publicKey.x448:return h1(r).then(({A:i,k:n})=>({privateParams:{k:n},publicParams:{A:i}}));case m.publicKey.dsa:case m.publicKey.elgamal:throw new Error("Unsupported algorithm for key generation.");default:throw new Error("Unknown public key algorithm.")}}async function wW(r,e,t){if(!e||!t)throw new Error("Missing key parameters");switch(r){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:{let{n:i,e:n}=e,{d:s,p:o,q:a,u:c}=t;return oY(i,n,s,o,a,c)}case m.publicKey.dsa:{let{p:i,q:n,g:s,y:o}=e,{x:a}=t;return hW(i,n,s,o,a)}case m.publicKey.elgamal:{let{p:i,g:n,y:s}=e,{x:o}=t;return IY(i,n,s,o)}case m.publicKey.ecdsa:case m.publicKey.ecdh:{let i=uW[m.read(m.publicKey,r)],{oid:n,Q:s}=e,{d:o}=t;return i.validateParams(n,s,o)}case m.publicKey.eddsaLegacy:{let{Q:i,oid:n}=e,{seed:s}=t;return AT(n,i,s)}case m.publicKey.ed25519:case m.publicKey.ed448:{let{A:i}=e,{seed:n}=t;return s1(r,i,n)}case m.publicKey.x25519:case m.publicKey.x448:{let{A:i}=e,{k:n}=t;return g1(r,i,n)}default:throw new Error("Unknown public key algorithm.")}}function BB(r){let{keySize:e}=It(r);return Rr(e)}function HE(r){try{r.getName()}catch{throw new ft("Unknown curve OID")}}function hd(r,e){switch(r){case m.publicKey.ecdsa:case m.publicKey.ecdh:case m.publicKey.eddsaLegacy:return new vi(e).payloadSize;case m.publicKey.ed25519:case m.publicKey.ed448:return CI(r);case m.publicKey.x25519:case m.publicKey.x448:return vI(r);default:throw new Error("Unknown elliptic algo")}}function xW(r,e){switch(r){case m.publicKey.ecdsa:case m.publicKey.eddsaLegacy:return oT(e);case m.publicKey.ed25519:case m.publicKey.ed448:return EI(r);default:throw new Error("Unknown elliptic signing algo")}}function yT(r){let{blockSize:e}=It(r),t=Rr(e),i=new Uint8Array([t[t.length-2],t[t.length-1]]);return F.concat([t,i])}async function jf(r,e,t,i,n){let s=m.read(m.symmetric,r);if(F.getNodeCrypto()&&QI[s])return BW(r,e,t,i);if(F.isAES(r))return CW(r,e,t,i);let o=await rT(r),a=new o(e),c=a.blockSize,l=i.slice(),d=new Uint8Array,u=f=>{f&&(d=F.concatUint8Array([d,f]));let h=new Uint8Array(d.length),g,p=0;for(;f?d.length>=c:d.length;){let I=a.encrypt(l);for(g=0;g<c;g++)l[g]=d[g]^I[g],h[p++]=l[g];d=d.subarray(c)}return h.subarray(0,p)};return sr(t,u,u)}async function _I(r,e,t,i){let n=m.read(m.symmetric,r);if(Jf&&QI[n])return bW(r,e,t,i);if(F.isAES(r))return EW(r,e,t,i);let s=await rT(r),o=new s(e),a=o.blockSize,c=i,l=new Uint8Array,d=u=>{u&&(l=F.concatUint8Array([l,u]));let f=new Uint8Array(l.length),h,g=0;for(;u?l.length>=a:l.length;){let p=o.encrypt(c);for(c=l.subarray(0,a),h=0;h<a;h++)f[g++]=c[h]^p[h];l=l.subarray(a)}return f.subarray(0,g)};return sr(t,d,d)}async function CW(r,e,t,i){if(Qy&&await $y.isSupported(r)){let n=new $y(r,e,i);return F.isStream(t)?gB(t,s=>n.encryptChunk(s),()=>n.finish()):n.encrypt(t)}else if(F.isStream(t)){let n=new Vy(!0,r,e,i);return gB(t,s=>n.processChunk(s),()=>n.finish())}return W6(e,i).encrypt(t)}function EW(r,e,t,i){if(F.isStream(t)){let n=new Vy(!1,r,e,i);return gB(t,s=>n.processChunk(s),()=>n.finish())}return W6(e,i).decrypt(t)}function gy(r,e){let t=Math.min(r.length,e.length);for(let i=0;i<t;i++)r[i]=r[i]^e[i]}function BW(r,e,t,i){let n=m.read(m.symmetric,r),s=new Jf.createCipheriv(QI[n],e,i);return sr(t,o=>new Uint8Array(s.update(o)))}function bW(r,e,t,i){let n=m.read(m.symmetric,r),s=new Jf.createDecipheriv(QI[n],e,i);return sr(t,o=>new Uint8Array(s.update(o)))}function S5(r,e){let t=r.length-io;for(let i=0;i<io;i++)r[i+t]^=e[i];return r}function kW(r,e,t){if(r.length&&r.length%io===0)return S5(r,e);let i=new Uint8Array(r.length+(io-r.length%io));return i.set(r),i[r.length]=128,S5(i,t)}async function SW(r){let e=await DW(r),t=F.double(await e(_y)),i=F.double(t);return async function(n){return(await e(kW(n,t,i))).subarray(-io)}}async function DW(r){if(F.getNodeCrypto())return async function(e){let i=new vW.createCipheriv("aes-"+r.length*8+"-cbc",r,_y).update(e);return new Uint8Array(i)};if(F.getWebCrypto())try{return r=await k5.importKey("raw",r,{name:"AES-CBC",length:r.length*8},!1,["encrypt"]),async function(e){let t=await k5.encrypt({name:"AES-CBC",iv:_y,length:io*8},r,e);return new Uint8Array(t).subarray(0,t.byteLength-io)}}catch(e){if(e.name!=="NotSupportedError"&&!(r.length===24&&e.name==="OperationError"))throw e;F.printDebugError("Browser did not support operation: "+e.message)}return async function(e){return xB(r,_y,{disablePadding:!0}).encrypt(e)}}async function PW(r){let e=await SW(r);return function(t,i){return e(F.concatUint8Array([t,i]))}}async function TW(r){if(F.getNodeCrypto())return async function(e,t){let i=new QW.createCipheriv("aes-"+r.length*8+"-ctr",r,t),n=_W.concat([i.update(e),i.final()]);return new Uint8Array(n)};if(F.getWebCrypto())try{let e=await D5.importKey("raw",r,{name:"AES-CTR",length:r.length*8},!1,["encrypt"]);return async function(t,i){let n=await D5.encrypt({name:"AES-CTR",counter:i,length:co*8},e,t);return new Uint8Array(n)}}catch(e){if(e.name!=="NotSupportedError"&&!(r.length===24&&e.name==="OperationError"))throw e;F.printDebugError("Browser did not support operation: "+e.message)}return async function(e,t){return RY(r,t).encrypt(e)}}async function AA(r,e){if(r!==m.symmetric.aes128&&r!==m.symmetric.aes192&&r!==m.symmetric.aes256)throw new Error("EAX mode supports only AES cipher");let[t,i]=await Promise.all([PW(e),TW(e)]);return{encrypt:async function(n,s,o){let[a,c]=await Promise.all([t(Q5,s),t(bB,o)]),l=await i(n,a),u=await t(vB,l);for(let f=0;f<ud;f++)u[f]^=c[f]^a[f];return F.concatUint8Array([l,u])},decrypt:async function(n,s,o){if(n.length<ud)throw new Error("Invalid EAX ciphertext");let a=n.subarray(0,-ud),c=n.subarray(-ud),[l,d,u]=await Promise.all([t(Q5,s),t(bB,o),t(vB,a)]),f=u;for(let g=0;g<ud;g++)f[g]^=d[g]^l[g];if(!F.equalsUint8Array(c,f))throw new Error("Authentication tag mismatch");return await i(a,l)}}}function _5(r){let e=0;for(let t=1;(r&t)===0;t<<=1)e++;return e}function yi(r,e){for(let t=0;t<r.length;t++)r[t]^=e[t];return r}function py(r,e){return yi(r.slice(),e)}async function hA(r,e){let{keySize:t}=It(r);if(!F.isAES(r)||e.length!==t)throw new Error("Unexpected algorithm or key size");let i=0,n=u=>xB(e,Sf,{disablePadding:!0}).encrypt(u),s=u=>xB(e,Sf,{disablePadding:!0}).decrypt(u),o;a();function a(){let u=n(Sf),f=F.double(u);o=[],o[0]=F.double(f),o.x=u,o.$=f}function c(u,f){let h=F.nbits(Math.max(u.length,f.length)/li|0)-1;for(let g=i+1;g<=h;g++)o[g]=F.double(o[g-1]);i=h}function l(u){if(!u.length)return Sf;let f=u.length/li|0,h=new Uint8Array(li),g=new Uint8Array(li);for(let p=0;p<f;p++)yi(h,o[_5(p+1)]),yi(g,n(py(h,u))),u=u.subarray(li);if(u.length){yi(h,o.x);let p=new Uint8Array(li);p.set(u,0),p[u.length]=128,yi(p,h),yi(g,n(p))}return g}function d(u,f,h,g){let p=f.length/li|0;c(f,g);let I=F.concatUint8Array([Sf.subarray(0,IT-h.length),UW,h]),y=I[li-1]&63;I[li-1]&=192;let w=n(I),C=F.concatUint8Array([w,py(w.subarray(0,8),w.subarray(1,9))]),b=F.shiftRight(C.subarray(0+(y>>3),17+(y>>3)),8-(y&7)).subarray(1),x=new Uint8Array(li),_=new Uint8Array(f.length+ha),R,U=0;for(R=0;R<p;R++)yi(b,o[_5(R+1)]),_.set(yi(u(py(b,f)),b),U),yi(x,u===n?f:_.subarray(U)),f=f.subarray(li),U+=li;if(f.length){yi(b,o.x);let D=n(b);_.set(py(f,D),U);let B=new Uint8Array(li);B.set(u===n?f:_.subarray(U,-ha),0),B[f.length]=128,yi(x,B),U+=f.length}let T=yi(n(yi(yi(x,b),o.$)),l(g));return _.set(T,U),_}return{encrypt:async function(u,f,h){return d(n,u,f,h)},decrypt:async function(u,f,h){if(u.length<ha)throw new Error("Invalid OCB ciphertext");let g=u.subarray(-ha);u=u.subarray(0,-ha);let p=d(s,u,f,h);if(F.equalsUint8Array(g,p.subarray(-ha)))return p.subarray(0,-ha);throw new Error("Authentication tag mismatch")}}}async function kd(r,e){if(r!==m.symmetric.aes128&&r!==m.symmetric.aes192&&r!==m.symmetric.aes256)throw new Error("GCM mode supports only AES cipher");if(F.getNodeCrypto())return{encrypt:async function(t,i,n=new Uint8Array){let s=new F5.createCipheriv("aes-"+e.length*8+"-gcm",e,i);s.setAAD(n);let o=P5.concat([s.update(t),s.final(),s.getAuthTag()]);return new Uint8Array(o)},decrypt:async function(t,i,n=new Uint8Array){let s=new F5.createDecipheriv("aes-"+e.length*8+"-gcm",e,i);s.setAAD(n),s.setAuthTag(t.slice(t.length-fd,t.length));let o=P5.concat([s.update(t.slice(0,t.length-fd)),s.final()]);return new Uint8Array(o)}};if(F.getWebCrypto())try{let t=await GE.importKey("raw",e,{name:zE},!1,["encrypt","decrypt"]),i=navigator.userAgent.match(/Version\/13\.\d(\.\d)* Safari/)||navigator.userAgent.match(/Version\/(13|14)\.\d(\.\d)* Mobile\/\S* Safari/);return{encrypt:async function(n,s,o=new Uint8Array){if(i&&!n.length)return hy(e,s,o).encrypt(n);let a=await GE.encrypt({name:zE,iv:s,additionalData:o,tagLength:fd*8},t,n);return new Uint8Array(a)},decrypt:async function(n,s,o=new Uint8Array){if(i&&n.length===fd)return hy(e,s,o).decrypt(n);try{let a=await GE.decrypt({name:zE,iv:s,additionalData:o,tagLength:fd*8},t,n);return new Uint8Array(a)}catch(a){if(a.name==="OperationError")throw new Error("Authentication tag mismatch")}}}}catch(t){if(t.name!=="NotSupportedError"&&!(e.length===24&&t.name==="OperationError"))throw t;F.printDebugError("Browser did not support operation: "+t.message)}return{encrypt:async function(t,i,n){return hy(e,i,n).encrypt(t)},decrypt:async function(t,i,n){return hy(e,i,n).decrypt(t)}}}function no(r,e=!1){switch(r){case m.aead.eax:return AA;case m.aead.ocb:return hA;case m.aead.gcm:return kd;case m.aead.experimentalGCM:if(!e)throw new Error("Unexpected non-standard `experimentalGCM` AEAD algorithm provided in `config.preferredAEADAlgorithm`: use `gcm` instead");return kd;default:throw new Error("Unsupported AEAD mode")}}function qW(r,e){let t=0;switch(r){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaEncrypt:case m.publicKey.rsaSign:{let i=F.readMPI(e.subarray(t));return t+=i.length+2,{read:t,signatureParams:{s:i}}}case m.publicKey.dsa:case m.publicKey.ecdsa:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,signatureParams:{r:i,s:n}}}case m.publicKey.eddsaLegacy:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,signatureParams:{r:i,s:n}}}case m.publicKey.ed25519:case m.publicKey.ed448:{let i=2*CI(r),n=F.readExactSubarray(e,t,t+i);return t+=n.length,{read:t,signatureParams:{RS:n}}}default:throw new ft("Unknown signature algorithm.")}}async function OW(r,e,t,i,n,s){switch(r){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaEncrypt:case m.publicKey.rsaSign:{let{n:o,e:a}=i,c=F.leftPad(t.s,o.length);return rY(e,n,c,o,a,s)}case m.publicKey.dsa:{let{g:o,p:a,q:c,y:l}=i,{r:d,s:u}=t;return AW(e,d,u,s,o,a,c,l)}case m.publicKey.ecdsa:{let{oid:o,Q:a}=i,c=new vi(o).payloadSize,l=F.leftPad(t.r,c),d=F.leftPad(t.s,c);return y1(o,e,{r:l,s:d},n,a,s)}case m.publicKey.eddsaLegacy:{let{oid:o,Q:a}=i,c=new vi(o).payloadSize,l=F.leftPad(t.r,c),d=F.leftPad(t.s,c);return fT(o,e,{r:l,s:d},n,a,s)}case m.publicKey.ed25519:case m.publicKey.ed448:{let{A:o}=i;return n1(r,e,t,n,o,s)}default:throw new Error("Unknown signature algorithm.")}}async function MW(r,e,t,i,n,s){if(!t||!i)throw new Error("Missing key parameters");switch(r){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaEncrypt:case m.publicKey.rsaSign:{let{n:o,e:a}=t,{d:c,p:l,q:d,u}=i;return{s:await tY(e,n,o,a,c,l,d,u,s)}}case m.publicKey.dsa:{let{g:o,p:a,q:c}=t,{x:l}=i;return fW(e,s,o,a,c,l)}case m.publicKey.elgamal:throw new Error("Signing with Elgamal is not defined in the OpenPGP standard.");case m.publicKey.ecdsa:{let{oid:o,Q:a}=t,{d:c}=i;return m1(o,e,n,a,c,s)}case m.publicKey.eddsaLegacy:{let{oid:o,Q:a}=t,{seed:c}=i;return uT(o,e,n,a,c,s)}case m.publicKey.ed25519:case m.publicKey.ed448:{let{A:o}=t,{seed:a}=i;return i1(r,e,n,o,a,s)}default:throw new Error("Unknown signature algorithm.")}}function Yy(r,e=pe){switch(r){case m.s2k.argon2:return new kB(e);case m.s2k.iterated:case m.s2k.gnu:case m.s2k.salted:case m.s2k.simple:return new SB(r,e);default:throw new ft("Unsupported S2K type")}}function wT(r){let{s2kType:e}=r;if(!zW.has(e))throw new Error("The provided `config.s2kType` value is not allowed");return Yy(e,r)}function yt(r,e,t){let i=[];return i.push(xI(t.length+1)),i.push(new Uint8Array([(e?128:0)|r])),i.push(t),F.concat(i)}function VE(r){switch(r){case m.hash.sha256:return 16;case m.hash.sha384:return 24;case m.hash.sha512:return 32;case m.hash.sha224:return 16;case m.hash.sha3_256:return 16;case m.hash.sha3_512:return 32;default:throw new Error("Unsupported hash function")}}function uX(r,e){if(!e[r]){let t;try{t=m.read(m.packet,r)}catch{throw new yd(`Unknown packet type with tag: ${r}`)}throw new Error(`Packet not allowed in this context: ${t}`)}return new e[r]}function AX(r){let t=_n(r);return new ReadableStream({async pull(i){try{let{value:n,done:s}=await t.read();if(s){i.close();return}for(let o=0;o<=n.length;o+=65536)(!o||o<n.length)&&i.enqueue(n.subarray(o,o+65536))}catch(n){i.error(n)}}},{highWaterMark:0})}function Xy(r,e){return t=>{let i;if(St(t)?i=new ReadableStream({async start(c){try{c.enqueue(await Xt(t)),c.close()}catch(l){c.error(l)}}}):or(t)?i=t:i=lA(t),i=AX(i),r)try{let c=r();return i.pipeThrough(c)}catch(c){if(c.name!=="TypeError")throw c}let n=_n(i),s=new e,o=!1,a=!1;return new ReadableStream({start(c){s.ondata=(l,d)=>{c.enqueue(l),o=!0,d&&(c.close(),a=!0)}},async pull(){for(o=!1;!o&&!a;){let{done:c,value:l}=await n.read();if(c){s.push(new Uint8Array,!0);return}else l.length&&s.push(l)}}},{highWaterMark:0})}}function hX(){return async function(r){let{default:e}=await Promise.resolve().then(function(){return Kte});return e(lA(r))}}async function eI(r,e,t,i){let n=r instanceof Dd&&r.version===2,s=!n&&r.constructor.tag===m.packet.aeadEncryptedData;if(!n&&!s)throw new Error("Unexpected packet type");let o=no(r.aeadAlgorithm,s),a=e==="decrypt"?o.tagLength:0,c=e==="encrypt"?o.tagLength:0,l=2**(r.chunkSizeByte+6)+a,d=s?8:0,u=new ArrayBuffer(13+d),f=new Uint8Array(u,0,5+d),h=new Uint8Array(u),g=new DataView(u),p=new Uint8Array(u,5,8);f.set([192|r.constructor.tag,r.version,r.cipherAlgorithm,r.aeadAlgorithm,r.chunkSizeByte],0);let I=0,y=Promise.resolve(),w=0,C=0,b,x;if(n){let{keySize:R}=It(r.cipherAlgorithm),{ivLength:U}=o,T=new Uint8Array(u,0,5),D=await xa(m.hash.sha256,t,r.salt,T,R+U);t=D.subarray(0,R),b=D.subarray(R),b.fill(0,b.length-8),x=new DataView(b.buffer,b.byteOffset,b.byteLength)}else b=r.iv;let _=await o(r.cipherAlgorithm,t);return Ba(i,async(R,U)=>{if(F.isStream(R)!=="array"){let B=new TransformStream({},{highWaterMark:F.getHardwareConcurrency()*2**(r.chunkSizeByte+6),size:Q=>Q.length});Pd(B.readable,U),U=B.writable}let T=_n(R),D=Hi(U);try{for(;;){let B=await T.readBytes(l+a)||new Uint8Array,Q=B.subarray(B.length-a);B=B.subarray(0,B.length-a);let v,E,P;if(n)P=b;else{P=b.slice();for(let N=0;N<8;N++)P[b.length-8+N]^=p[N]}if(!I||B.length?(T.unshift(Q),v=_[e](B,P,f),v.catch(()=>{}),C+=B.length-a+c):(g.setInt32(5+d+4,w),v=_[e](Q,P,h),v.catch(()=>{}),C+=c,E=!0),w+=B.length-a,y=y.then(()=>v).then(async N=>{await D.ready,await D.write(N),C-=N.length}).catch(N=>D.abort(N)),(E||C>D.desiredSize)&&await y,!E)n?x.setInt32(b.length-4,++I):g.setInt32(9,++I);else{await D.close();break}}}catch(B){await D.ready.catch(()=>{}),await D.abort(B)}})}function M5(r,e,t,i){switch(e){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.elgamal:case m.publicKey.ecdh:return F.concatUint8Array([new Uint8Array(r===6?[]:[t]),i,F.writeChecksum(i.subarray(i.length%8))]);case m.publicKey.x25519:case m.publicKey.x448:return i;default:throw new Error("Unsupported public key algorithm")}}function IX(r,e,t,i){switch(e){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.elgamal:case m.publicKey.ecdh:{let n=t.subarray(0,t.length-2),s=t.subarray(t.length-2),o=F.writeChecksum(n.subarray(n.length%8)),a=o[0]===s[0]&o[1]===s[1],c=r===6?{sessionKeyAlgorithm:null,sessionKey:n}:{sessionKeyAlgorithm:n[0],sessionKey:n.subarray(1)};if(i){let l=a&c.sessionKeyAlgorithm===i.sessionKeyAlgorithm&c.sessionKey.length===i.sessionKey.length;return{sessionKey:F.selectUint8Array(l,c.sessionKey,i.sessionKey),sessionKeyAlgorithm:r===6?null:F.selectUint8(l,c.sessionKeyAlgorithm,i.sessionKeyAlgorithm)}}else{if(a&&(r===6||m.read(m.symmetric,c.sessionKeyAlgorithm)))return c;throw new Error("Decryption error")}}case m.publicKey.x25519:case m.publicKey.x448:return{sessionKeyAlgorithm:null,sessionKey:t};default:throw new Error("Unsupported public key algorithm")}}async function YE(r,e,t,i,n,s,o,a){if(e.type==="argon2"&&!n)throw new Error("Using Argon2 S2K without AEAD is not allowed");if(e.type==="simple"&&r===6)throw new Error("Using Simple S2K with version 6 keys is not allowed");let{keySize:c}=It(i),l=await e.produceKey(t,c,a);if(!n||r===5||o)return l;let d=F.concatUint8Array([s,new Uint8Array([r,i,n])]);return xa(m.hash.sha256,l,new Uint8Array,d,c)}async function kT(r,e){let t=new iI(r.date,e);return t.packets=null,t.algorithm=m.write(m.publicKey,r.algorithm),await t.generate(r.rsaBits,r.curve),await t.computeFingerprintAndKeyID(),t}async function xX(r,e){let t=new Wf(r.date,e);return t.packets=null,t.algorithm=m.write(m.publicKey,r.algorithm),await t.generate(r.rsaBits,r.curve,r.config),await t.computeFingerprintAndKeyID(),t}async function kn(r,e,t,i,n=new Date,s){let o,a;for(let c=r.length-1;c>=0;c--)try{(!o||r[c].created>=o.created)&&(await r[c].verify(e,t,i,n,void 0,s),o=r[c])}catch(l){a=l}if(!o)throw F.wrapError(`Could not find valid ${m.read(m.signature,t)} signature in key ${e.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,(c,l,d)=>l+" "+d.toLowerCase()),a);return o}function RB(r,e,t=new Date){let i=F.normalizeDate(t);if(i!==null){let n=sI(r,e);return!(r.created<=i&&i<n)}return!1}async function ST(r,e,t,i){let n={};n.key=e,n.bind=r;let s={signatureType:m.signature.subkeyBinding};return t.sign?(s.keyFlags=[m.keyFlags.signData],s.embeddedSignature=await us(n,[],r,{signatureType:m.signature.keyBinding},t.date,void 0,void 0,void 0,i)):s.keyFlags=[m.keyFlags.encryptCommunication|m.keyFlags.encryptStorage],t.keyExpirationTime>0&&(s.keyExpirationTime=t.keyExpirationTime,s.keyNeverExpires=!1),await us(n,[],e,s,t.date,void 0,void 0,void 0,i)}async function CX(r,e,t=new Date,i=[],n){let s=m.hash.sha256,o=n.preferredHashAlgorithm,a=await Promise.all(r.map(async(f,h)=>(await f.getPrimarySelfSignature(t,i[h],n)).preferredHashAlgorithms||[])),c=new Map;for(let f of a)for(let h of f)try{let g=m.write(m.hash,h);c.set(g,c.has(g)?c.get(g)+1:1)}catch{}let l=f=>r.length===0||c.get(f)===r.length||f===s,d=()=>{if(c.size===0)return s;let h=Array.from(c.keys()).filter(g=>l(g)).sort((g,p)=>gr(g)-gr(p))[0];return gr(h)>=gr(s)?h:s};if(new Set([m.publicKey.ecdsa,m.publicKey.eddsaLegacy,m.publicKey.ed25519,m.publicKey.ed448]).has(e.algorithm)){let f=xW(e.algorithm,e.publicParams.oid),h=l(o),g=gr(o)>=gr(f);if(h&&g)return o;{let p=d();return gr(p)>=gr(f)?p:f}}return l(o)?o:d()}async function EX(r=[],e=new Date,t=[],i=pe){let n=m.compression.uncompressed,s=i.preferredCompressionAlgorithm;return(await Promise.all(r.map(async function(a,c){let d=(await a.getPrimarySelfSignature(e,t[c],i)).preferredCompressionAlgorithms;return!!d&&d.indexOf(s)>=0}))).every(Boolean)?s:n}async function BX(r=[],e=new Date,t=[],i=pe){let n=await Promise.all(r.map((c,l)=>c.getPrimarySelfSignature(e,t[l],i)));if(r.length?n.every(c=>c.features&&c.features[0]&m.features.seipdv2):i.aeadProtect){let c={symmetricAlgo:m.symmetric.aes128,aeadAlgo:m.aead.ocb},l=[{symmetricAlgo:i.preferredSymmetricAlgorithm,aeadAlgo:i.preferredAEADAlgorithm},{symmetricAlgo:i.preferredSymmetricAlgorithm,aeadAlgo:m.aead.ocb},{symmetricAlgo:m.symmetric.aes128,aeadAlgo:i.preferredAEADAlgorithm}];for(let d of l)if(n.every(u=>u.preferredCipherSuites&&u.preferredCipherSuites.some(f=>f[0]===d.symmetricAlgo&&f[1]===d.aeadAlgo)))return d;return c}let o=m.symmetric.aes128,a=i.preferredSymmetricAlgorithm;return{symmetricAlgo:n.every(c=>c.preferredSymmetricAlgorithms&&c.preferredSymmetricAlgorithms.includes(a))?a:o,aeadAlgo:void 0}}async function us(r,e,t,i,n,s,o=[],a=!1,c){if(t.isDummy())throw new Error("Cannot sign with a gnu-dummy key.");if(!t.isDecrypted())throw new Error("Signing key is not decrypted.");let l=new Nr;return Object.assign(l,i),l.publicKeyAlgorithm=t.algorithm,l.hashAlgorithm=await CX(e,t,n,s,c),l.rawNotations=[...o],await l.sign(t,r,n,a,c),l}async function Pc(r,e,t,i=new Date,n){r=r[t],r&&(e[t].length?await Promise.all(r.map(async function(s){!s.isExpired(i)&&(!n||await n(s))&&!e[t].some(function(o){return F.equalsUint8Array(o.writeParams(),s.writeParams())})&&e[t].push(s)})):e[t]=r)}async function Qd(r,e,t,i,n,s,o=new Date,a){s=s||r;let c=[];return await Promise.all(i.map(async function(l){try{if(!n||l.issuerKeyID.equals(n.issuerKeyID)){let d=![m.reasonForRevocation.keyRetired,m.reasonForRevocation.keySuperseded,m.reasonForRevocation.userIDInvalid].includes(l.reasonForRevocationFlag);await l.verify(s,e,t,d?null:o,!1,a),c.push(l.issuerKeyID)}}catch{}})),n?(n.revoked=c.some(l=>l.equals(n.issuerKeyID))?!0:n.revoked||!1,n.revoked):c.length>0}function sI(r,e){let t;return e.keyNeverExpires===!1&&(t=r.created.getTime()+e.keyExpirationTime*1e3),t?new Date(t):1/0}function NB(r,e={}){switch(r.type=r.type||e.type,r.curve=r.curve||e.curve,r.rsaBits=r.rsaBits||e.rsaBits,r.keyExpirationTime=r.keyExpirationTime!==void 0?r.keyExpirationTime:e.keyExpirationTime,r.passphrase=F.isString(r.passphrase)?r.passphrase:e.passphrase,r.date=r.date||e.date,r.sign=r.sign||!1,r.type){case"ecc":try{r.curve=m.write(m.curve,r.curve)}catch{throw new Error("Unknown curve")}(r.curve===m.curve.ed25519Legacy||r.curve===m.curve.curve25519Legacy||r.curve==="ed25519"||r.curve==="curve25519")&&(r.curve=r.sign?m.curve.ed25519Legacy:m.curve.curve25519Legacy),r.sign?r.algorithm=r.curve===m.curve.ed25519Legacy?m.publicKey.eddsaLegacy:m.publicKey.ecdsa:r.algorithm=m.publicKey.ecdh;break;case"curve25519":r.algorithm=r.sign?m.publicKey.ed25519:m.publicKey.x25519;break;case"curve448":r.algorithm=r.sign?m.publicKey.ed448:m.publicKey.x448;break;case"rsa":r.algorithm=m.publicKey.rsaEncryptSign;break;default:throw new Error(`Unsupported key type ${r.type}`)}return r}function L5(r,e,t){switch(r.algorithm){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:case m.publicKey.dsa:case m.publicKey.ecdsa:case m.publicKey.eddsaLegacy:case m.publicKey.ed25519:case m.publicKey.ed448:if(!e.keyFlags&&!t.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!e.keyFlags||(e.keyFlags[0]&m.keyFlags.signData)!==0;default:return!1}}function H5(r,e,t){switch(r.algorithm){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaEncrypt:case m.publicKey.elgamal:case m.publicKey.ecdh:case m.publicKey.x25519:case m.publicKey.x448:if(!e.keyFlags&&!t.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!e.keyFlags||(e.keyFlags[0]&m.keyFlags.encryptCommunication)!==0||(e.keyFlags[0]&m.keyFlags.encryptStorage)!==0;default:return!1}}function K5(r,e,t){if(!e.keyFlags&&!t.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(r.algorithm){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaEncrypt:case m.publicKey.elgamal:case m.publicKey.ecdh:case m.publicKey.x25519:case m.publicKey.x448:return(!e.keyFlags||(e.keyFlags[0]&m.keyFlags.signData)!==0)&&t.allowInsecureDecryptionWithSigningKeys?!0:!e.keyFlags||(e.keyFlags[0]&m.keyFlags.encryptCommunication)!==0||(e.keyFlags[0]&m.keyFlags.encryptStorage)!==0;default:return!1}}function pa(r,e){let t=m.write(m.publicKey,r.algorithm),i=r.getAlgorithmInfo();if(e.rejectPublicKeyAlgorithms.has(t))throw new Error(`${i.algorithm} keys are considered too weak.`);switch(t){case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:case m.publicKey.rsaEncrypt:if(i.bits<e.minRSABits)throw new Error(`RSA keys shorter than ${e.minRSABits} bits are considered too weak.`);break;case m.publicKey.ecdsa:case m.publicKey.eddsaLegacy:case m.publicKey.ecdh:if(e.rejectCurves.has(i.curve))throw new Error(`Support for ${i.algorithm} keys using curve ${i.curve} is disabled.`);break}}function vX(r){switch(m.write(m.publicKey,r)){case m.publicKey.rsaEncrypt:case m.publicKey.rsaEncryptSign:case m.publicKey.rsaSign:case m.publicKey.dsa:return"rsa";case m.publicKey.ecdsa:case m.publicKey.eddsaLegacy:return"ecc";case m.publicKey.ed25519:return"curve25519";case m.publicKey.ed448:return"curve448";default:throw new Error("Unsupported algorithm")}}async function SX(r,e){r.sign=!0,r=NB(r),r.subkeys=r.subkeys.map((o,a)=>NB(r.subkeys[a],r));let t=[xX(r,e)];t=t.concat(r.subkeys.map(o=>kT(o,e)));let i=await Promise.all(t),n=await DX(i[0],i.slice(1),r,e),s=await n.getRevocationCertificate(r.date,e);return n.revocationSignatures=[],{key:n,revocationCertificate:s}}async function DX(r,e,t,i){t.passphrase&&await r.encrypt(t.passphrase,i),await Promise.all(e.map(async function(c,l){let d=t.subkeys[l].passphrase;d&&await c.encrypt(d,i)}));let n=new Ct;n.push(r);function s(c,l){return[l,...c.filter(d=>d!==l)]}function o(){let c={};c.keyFlags=[m.keyFlags.certifyKeys|m.keyFlags.signData];let l=s([m.symmetric.aes256,m.symmetric.aes128],i.preferredSymmetricAlgorithm);if(c.preferredSymmetricAlgorithms=l,i.aeadProtect){let d=s([m.aead.gcm,m.aead.eax,m.aead.ocb],i.preferredAEADAlgorithm);c.preferredCipherSuites=d.flatMap(u=>l.map(f=>[f,u]))}return c.preferredHashAlgorithms=s([m.hash.sha512,m.hash.sha256,m.hash.sha3_512,m.hash.sha3_256],i.preferredHashAlgorithm),c.preferredCompressionAlgorithms=s([m.compression.uncompressed,m.compression.zlib,m.compression.zip],i.preferredCompressionAlgorithm),c.features=[0],c.features[0]|=m.features.modificationDetection,i.aeadProtect&&(c.features[0]|=m.features.seipdv2),t.keyExpirationTime>0&&(c.keyExpirationTime=t.keyExpirationTime,c.keyNeverExpires=!1),c}if(r.version===6){let c={key:r},l=o();l.signatureType=m.signature.key;let d=await us(c,[],r,l,t.date,void 0,t.signatureNotations,void 0,i);n.push(d)}await Promise.all(t.userIDs.map(async function(c,l){let d=rI.fromObject(c),u={userID:d,key:r},f=r.version!==6?o():{};f.signatureType=m.signature.certPositive,l===0&&(f.isPrimaryUserID=!0);let h=await us(u,[],r,f,t.date,void 0,t.signatureNotations,void 0,i);return{userIDPacket:d,signaturePacket:h}})).then(c=>{c.forEach(({userIDPacket:l,signaturePacket:d})=>{n.push(l),n.push(d)})}),await Promise.all(e.map(async function(c,l){let d=t.subkeys[l],u=await ST(c,r,d,i);return{secretSubkeyPacket:c,subkeySignaturePacket:u}})).then(c=>{c.forEach(({secretSubkeyPacket:l,subkeySignaturePacket:d})=>{n.push(l),n.push(d)})});let a={key:r};return n.push(await us(a,[],r,{signatureType:m.signature.keyRevocation,reasonForRevocationFlag:m.reasonForRevocation.noReason,reasonForRevocationString:""},t.date,void 0,void 0,void 0,i)),t.passphrase&&r.clearPrivateParams(),e.map(function(c,l){t.subkeys[l].passphrase&&c.clearPrivateParams()}),new cI(n)}async function TI({armoredKey:r,binaryKey:e,config:t,...i}){if(t={...pe,...t},!r&&!e)throw new Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(r&&!F.isString(r))throw new Error("readPrivateKey: options.armoredKey must be a string");if(e&&!F.isUint8Array(e))throw new Error("readPrivateKey: options.binaryKey must be a Uint8Array");let n=Object.keys(i);if(n.length>0)throw new Error(`Unknown option: ${n.join(", ")}`);let s;if(r){let{type:c,data:l}=await wI(r);if(c!==m.armor.privateKey)throw new Error("Armored text not of type private key");s=l}else s=e;let o=await Ct.fromBinary(s,kX,t),a=o.indexOfTag(m.packet.publicKey,m.packet.secretKey);for(let c=0;c<a.length;c++){if(o[a[c]].constructor.tag===m.packet.publicKey)continue;let l=o.slice(a[c],a[c+1]);return new cI(l)}throw new Error("No secret key packet found")}async function J5(r,e,t=[],i=null,n=[],s=new Date,o=[],a=[],c=[],l=!1,d=pe){let u=new Ct,f=r.text===null?m.signature.binary:m.signature.text;if(await Promise.all(e.map(async(h,g)=>{let p=o[g];if(!h.isPrivate())throw new Error("Need private key for signing");let I=await h.getSigningKey(n[g],s,p,d);return us(r,t.length?t:[h],I.keyPacket,{signatureType:f},s,a,c,l,d)})).then(h=>{u.push(...h)}),i){let h=i.packets.filterByTag(m.packet.signature);u.push(...h)}return u}function PX(r,e,t,i=new Date,n=!1,s=pe){let o,a;for(let u of t){let f=u.getKeys(r.issuerKeyID);if(f.length>0){o=u,a=f[0];break}}let l=r instanceof an?r.correspondingSig:r,d={keyID:r.issuerKeyID,verified:(async()=>{if(!a)throw new Error(`Could not find signing key with key ID ${r.issuerKeyID.toHex()}`);await r.verify(a.keyPacket,r.signatureType,e[0],i,n,s);let u=await l;if(a.getCreationTime()>u.created)throw new Error("Key is newer than the signature");try{await o.getSigningKey(a.getKeyID(),u.created,void 0,s)}catch(f){if(s.allowInsecureVerificationWithReformattedKeys&&f.message.match(/Signature creation time is in the future/))await o.getSigningKey(a.getKeyID(),i,void 0,s);else throw f}return!0})(),signature:(async()=>{let u=await l,f=new Ct;return u&&f.push(u),new nI(f)})()};return d.signature.catch(()=>{}),d.verified.catch(()=>{}),d}function WE(r,e,t,i=new Date,n=!1,s=pe){return r.filter(o=>["text","binary"].includes(m.read(m.signature,o.signatureType))).map(o=>PX(o,e,t,i,n,s))}async function gA({armoredMessage:r,binaryMessage:e,config:t,...i}){t={...pe,...t};let n=r||e;if(!n)throw new Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(r&&!F.isString(r)&&!F.isStream(r))throw new Error("readMessage: options.armoredMessage must be a string or stream");if(e&&!F.isUint8Array(e)&&!F.isStream(e))throw new Error("readMessage: options.binaryMessage must be a Uint8Array or stream");let s=Object.keys(i);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);let o=F.isStream(n);if(r){let{type:l,data:d}=await wI(n);if(l!==m.armor.message)throw new Error("Armored text not of type message");n=d}let a=await Ct.fromBinary(n,QX,t,new Sd),c=new Zf(a);return c.fromStream=o,c}async function DT({text:r,binary:e,filename:t,date:i=new Date,format:n=r!==void 0?"utf8":"binary",...s}){let o=r!==void 0?r:e;if(o===void 0)throw new Error("createMessage: must pass options object containing `text` or `binary`");if(r&&!F.isString(r)&&!F.isStream(r))throw new Error("createMessage: options.text must be a string or stream");if(e&&!F.isUint8Array(e)&&!F.isStream(e))throw new Error("createMessage: options.binary must be a Uint8Array or stream");let a=Object.keys(s);if(a.length>0)throw new Error(`Unknown option: ${a.join(", ")}`);let c=F.isStream(o),l=new Ea(i);r!==void 0?l.setText(o,m.write(m.literal,n)):l.setBytes(o,m.write(m.literal,n)),t!==void 0&&l.setFilename(t);let d=new Ct;d.push(l);let u=new Zf(d);return u.fromStream=c,u}async function C1({userIDs:r=[],passphrase:e,type:t,curve:i,rsaBits:n=4096,keyExpirationTime:s=0,date:o=new Date,subkeys:a=[{}],format:c="armored",signatureNotations:l=[],config:d,...u}){d={...pe,...d},pA(d),!t&&!i?(t=d.v6Keys?"curve25519":"ecc",i="curve25519Legacy"):(t=t||"ecc",i=i||"curve25519Legacy"),r=Wr(r),l=Wr(l);let f=Object.keys(u);if(f.length>0)throw new Error(`Unknown option: ${f.join(", ")}`);if(r.length===0&&!d.v6Keys)throw new Error("UserIDs are required for V4 keys");if(t==="rsa"&&n<d.minRSABits)throw new Error(`rsaBits should be at least ${d.minRSABits}, got: ${n}`);let h={userIDs:r,passphrase:e,type:t,rsaBits:n,curve:i,keyExpirationTime:s,date:o,subkeys:a,signatureNotations:l};try{let{key:g,revocationCertificate:p}=await SX(h,d);return g.getKeys().forEach(({keyPacket:I})=>pa(I,d)),{privateKey:j5(g,c,d),publicKey:j5(g.toPublic(),c,d),revocationCertificate:p}}catch(g){throw F.wrapError("Error generating keypair",g)}}async function UI({privateKey:r,passphrase:e,config:t,...i}){t={...pe,...t},pA(t);let n=Object.keys(i);if(n.length>0)throw new Error(`Unknown option: ${n.join(", ")}`);if(!r.isPrivate())throw new Error("Cannot decrypt a public key");let s=r.clone(!0),o=F.isArray(e)?e:[e];try{return await Promise.all(s.getKeys().map(a=>F.anyPromise(o.map(c=>a.keyPacket.decrypt(c,t))))),await s.validate(t),s}catch(a){throw s.clearPrivateParams(),F.wrapError("Error decrypting private key",a)}}async function QT({message:r,encryptionKeys:e,signingKeys:t,passwords:i,sessionKey:n,format:s="armored",signature:o=null,wildcard:a=!1,signingKeyIDs:c=[],encryptionKeyIDs:l=[],date:d=new Date,signingUserIDs:u=[],encryptionUserIDs:f=[],signatureNotations:h=[],config:g,...p}){if(g={...pe,...g},pA(g),E1(r),TX(s),e=Wr(e),t=Wr(t),i=Wr(i),c=Wr(c),l=Wr(l),u=Wr(u),f=Wr(f),h=Wr(h),p.detached)throw new Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(p.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(p.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(p.armor!==void 0)throw new Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");let I=Object.keys(p);if(I.length>0)throw new Error(`Unknown option: ${I.join(", ")}`);t||(t=[]);try{if((t.length||o)&&(r=await r.sign(t,e,o,c,d,u,l,h,g)),r=r.compress(await EX(e,d,f,g),g),r=await r.encrypt(e,i,n,a,l,d,f,g),s==="object")return r;let w=s==="armored"?r.armor(g):r.write();return await FT(w)}catch(y){throw F.wrapError("Error encrypting message",y)}}async function RI({message:r,decryptionKeys:e,passwords:t,sessionKeys:i,verificationKeys:n,expectSigned:s=!1,format:o="utf8",signature:a=null,date:c=new Date,config:l,...d}){if(l={...pe,...l},pA(l),E1(r),n=Wr(n),e=Wr(e),t=Wr(t),i=Wr(i),d.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(d.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");let u=Object.keys(d);if(u.length>0)throw new Error(`Unknown option: ${u.join(", ")}`);try{let f=await r.decrypt(e,t,i,c,l);n||(n=[]);let h={};if(h.signatures=a?await f.verifyDetached(a,n,c,l):await f.verify(n,c,l),h.data=o==="binary"?f.getLiteralData():f.getText(),h.filename=f.getFilename(),RX(h,r,...new Set([f,f.unwrapCompressed()])),s){if(n.length===0)throw new Error("Verification keys are required to verify message signatures");if(h.signatures.length===0)throw new Error("Message is not signed");h.data=di([h.data,Hc(async()=>(await F.anyPromise(h.signatures.map(g=>g.verified)),o==="binary"?new Uint8Array:""))])}return h.data=await FT(h.data),h}catch(f){throw F.wrapError("Error decrypting message",f)}}async function _T({message:r,decryptionKeys:e,passwords:t,date:i=new Date,config:n,...s}){if(n={...pe,...n},pA(n),E1(r),e=Wr(e),t=Wr(t),s.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");let o=Object.keys(s);if(o.length>0)throw new Error(`Unknown option: ${o.join(", ")}`);try{return await r.decryptSessionKeys(e,t,void 0,i,n)}catch(a){throw F.wrapError("Error decrypting session keys",a)}}function E1(r){if(!(r instanceof Zf))throw new Error("Parameter [message] needs to be of type Message")}function TX(r){if(r!=="armored"&&r!=="binary"&&r!=="object")throw new Error(`Unsupported format ${r}`)}function pA(r){let e=Object.keys(r);if(e.length!==UX){for(let t of e)if(pe[t]===void 0)throw new Error(`Unknown config property: ${t}`)}}function Wr(r){return r&&!F.isArray(r)&&(r=[r]),r}async function FT(r){return F.isStream(r)==="array"?Xt(r):r}function RX(r,e,...t){r.data=Ba(e.packets.stream,async(i,n)=>{await Pd(r.data,n,{preventClose:!0});let s=Hi(n);try{await Xt(i,o=>o),await Promise.all(t.map(o=>Xt(o.packets.stream,a=>a))),await s.close()}catch(o){await s.abort(o)}})}function j5(r,e,t){switch(e){case"object":return r;case"armored":return r.armor(t);case"binary":return r.write();default:throw new Error(`Unsupported format ${e}`)}}function mA(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function eA(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function hs(r,...e){if(!mA(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function PT(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");eA(r.outputLen),eA(r.blockLen)}function _d(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function TT(r,e){hs(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function NX(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function cn(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function XE(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function es(r,e){return r<<32-e|r>>>e}function ya(r,e){return r<<e|r>>>32-e>>>0}function OX(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function MX(r){for(let e=0;e<r.length;e++)r[e]=OX(r[e]);return r}function Tc(r){if(hs(r),UT)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=LX[r[t]];return e}function V5(r){if(r>=js._0&&r<=js._9)return r-js._0;if(r>=js.A&&r<=js.F)return r-(js.A-10);if(r>=js.a&&r<=js.f)return r-(js.a-10)}function lI(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(UT)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let i=new Uint8Array(t);for(let n=0,s=0;n<t;n++,s+=2){let o=V5(r.charCodeAt(s)),a=V5(r.charCodeAt(s+1));if(o===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}i[n]=o*16+a}return i}function HX(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function yA(r){return typeof r=="string"&&(r=HX(r)),hs(r),r}function Sn(...r){let e=0;for(let i=0;i<r.length;i++){let n=r[i];hs(n),e+=n.length}let t=new Uint8Array(e);for(let i=0,n=0;i<r.length;i++){let s=r[i];t.set(s,n),n+=s.length}return t}function lo(r){let e=i=>r().update(yA(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function KX(r){let e=(i,n)=>r(n).update(yA(i)).digest(),t=r({});return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=i=>r(i),e}function NI(r=32){if(od&&typeof od.getRandomValues=="function")return od.getRandomValues(new Uint8Array(r));if(od&&typeof od.randomBytes=="function")return Uint8Array.from(od.randomBytes(r));throw new Error("crypto.getRandomValues must be defined")}function Oc(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}"`;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function Qn(r,e,t=""){let i=mA(r),n=r?.length,s=e!==void 0;if(!i||s&&n!==e){let o=t&&`"${t}" `,a=s?` of length ${e}`:"",c=i?`length=${n}`:`type=${typeof r}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return r}function yy(r){let e=r.toString(16);return e.length&1?"0"+e:e}function RT(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?B1:BigInt("0x"+r)}function qI(r){return RT(Tc(r))}function Mc(r){return hs(r),RT(Tc(Uint8Array.from(r).reverse()))}function b1(r,e){return lI(r.toString(16).padStart(e*2,"0"))}function v1(r,e){return b1(r,e).reverse()}function vt(r,e,t){let i;if(typeof e=="string")try{i=lI(e)}catch(s){throw new Error(r+" must be hex string or Uint8Array, cause: "+s)}else if(mA(e))i=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");let n=i.length;if(typeof t=="number"&&n!==t)throw new Error(r+" of length "+t+" expected, got "+n);return i}function Y5(r){return Uint8Array.from(r)}function zX(r){return Uint8Array.from(r,(e,t)=>{let i=e.charCodeAt(0);if(e.length!==1||i>127)throw new Error(`string contains non-ASCII character "${r[t]}" with code ${i} at position ${t}`);return i})}function JX(r,e,t){return ZE(r)&&ZE(e)&&ZE(t)&&e<=r&&r<t}function rA(r,e,t,i){if(!JX(e,t,i))throw new Error("expected valid "+r+": "+t+" <= n < "+i+", got "+e)}function NT(r){let e;for(e=0;r>B1;r>>=OB,e+=1);return e}function jX(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let i=h=>new Uint8Array(h),n=h=>Uint8Array.of(h),s=i(r),o=i(r),a=0,c=()=>{s.fill(1),o.fill(0),a=0},l=(...h)=>t(o,s,...h),d=(h=i(0))=>{o=l(n(0),h),s=l(),h.length!==0&&(o=l(n(1),h),s=l())},u=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let h=0,g=[];for(;h<e;){s=l();let p=s.slice();g.push(p),h+=s.length}return Sn(...g)};return(h,g)=>{c(),d(h);let p;for(;!(p=g(u()));)d();return c(),p}}function Ud(r,e,t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function i(n,s,o){let a=r[n];if(o&&a===void 0)return;let c=typeof a;if(c!==s||a===null)throw new Error(`param "${n}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([n,s])=>i(n,s,!1)),Object.entries(t).forEach(([n,s])=>i(n,s,!0))}function dI(r){let e=new WeakMap;return(t,...i)=>{let n=e.get(t);if(n!==void 0)return n;let s=r(t,...i);return e.set(t,s),s}}function pr(r,e){let t=r%e;return t>=xi?t:e+t}function bt(r,e,t){let i=r;for(;e-- >xi;)i*=i,i%=t;return i}function W5(r,e){if(r===xi)throw new Error("invert: expected non-zero number");if(e<=xi)throw new Error("invert: expected positive modulus, got "+e);let t=pr(r,e),i=e,n=xi,s=ui;for(;t!==xi;){let a=i/t,c=i%t,l=n-s*a;i=t,t=c,n=s,s=l}if(i!==ui)throw new Error("invert: does not exist");return pr(n,e)}function k1(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function KT(r,e){let t=(r.ORDER+ui)/OT,i=r.pow(e,t);return k1(r,i,e),i}function YX(r,e){let t=(r.ORDER-MT)/LT,i=r.mul(e,Qc),n=r.pow(i,t),s=r.mul(e,n),o=r.mul(r.mul(s,Qc),n),a=r.mul(s,r.sub(o,r.ONE));return k1(r,a,e),a}function WX(r){let e=Si(r),t=GT(r),i=t(e,e.neg(e.ONE)),n=t(e,i),s=t(e,e.neg(i)),o=(r+$X)/HT;return(a,c)=>{let l=a.pow(c,o),d=a.mul(l,i),u=a.mul(l,n),f=a.mul(l,s),h=a.eql(a.sqr(d),c),g=a.eql(a.sqr(u),c);l=a.cmov(l,d,h),d=a.cmov(f,u,g);let p=a.eql(a.sqr(d),c),I=a.cmov(l,d,p);return k1(a,I,c),I}}function GT(r){if(r<qT)throw new Error("sqrt is not defined for small field");let e=r-ui,t=0;for(;e%Qc===xi;)e/=Qc,t++;let i=Qc,n=Si(r);for(;X5(n,i)===1;)if(i++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return KT;let s=n.pow(i,e),o=(e+ui)/Qc;return function(c,l){if(c.is0(l))return l;if(X5(c,l)!==1)throw new Error("Cannot find square root");let d=t,u=c.mul(c.ONE,s),f=c.pow(l,e),h=c.pow(l,o);for(;!c.eql(f,c.ONE);){if(c.is0(f))return c.ZERO;let g=1,p=c.sqr(f);for(;!c.eql(p,c.ONE);)if(g++,p=c.sqr(p),g===d)throw new Error("Cannot find square root");let I=ui<<BigInt(d-g-1),y=c.pow(u,I);d=g,u=c.sqr(y),f=c.mul(f,u),h=c.mul(h,y)}return h}}function XX(r){return r%OT===qT?KT:r%LT===MT?YX:r%HT===VX?WX(r):GT(r)}function eZ(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},t=ZX.reduce((i,n)=>(i[n]="function",i),e);return Ud(r,t),r}function tZ(r,e,t){if(t<xi)throw new Error("invalid exponent, negatives unsupported");if(t===xi)return r.ONE;if(t===ui)return e;let i=r.ONE,n=e;for(;t>xi;)t&ui&&(i=r.mul(i,n)),n=r.sqr(n),t>>=ui;return i}function zT(r,e,t=!1){let i=new Array(e.length).fill(t?r.ZERO:void 0),n=e.reduce((o,a,c)=>r.is0(a)?o:(i[c]=o,r.mul(o,a)),r.ONE),s=r.inv(n);return e.reduceRight((o,a,c)=>r.is0(a)?o:(i[c]=r.mul(o,i[c]),r.mul(o,a)),s),i}function X5(r,e){let t=(r.ORDER-ui)/Qc,i=r.pow(e,t),n=r.eql(i,r.ONE),s=r.eql(i,r.ZERO),o=r.eql(i,r.neg(r.ONE));if(!n&&!s&&!o)throw new Error("invalid Legendre symbol result");return n?1:s?0:-1}function JT(r,e){e!==void 0&&eA(e);let t=e!==void 0?e:r.toString(2).length,i=Math.ceil(t/8);return{nBitLength:t,nByteLength:i}}function Si(r,e,t=!1,i={}){if(r<=xi)throw new Error("invalid field: expected ORDER > 0, got "+r);let n,s,o=!1,a;if(typeof e=="object"&&e!=null){if(i.sqrt||t)throw new Error("cannot specify opts in two arguments");let f=e;f.BITS&&(n=f.BITS),f.sqrt&&(s=f.sqrt),typeof f.isLE=="boolean"&&(t=f.isLE),typeof f.modFromBytes=="boolean"&&(o=f.modFromBytes),a=f.allowedLengths}else typeof e=="number"&&(n=e),i.sqrt&&(s=i.sqrt);let{nBitLength:c,nByteLength:l}=JT(r,n);if(l>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let d,u=Object.freeze({ORDER:r,isLE:t,BITS:c,BYTES:l,MASK:IA(c),ZERO:xi,ONE:ui,allowedLengths:a,create:f=>pr(f,r),isValid:f=>{if(typeof f!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof f);return xi<=f&&f<r},is0:f=>f===xi,isValidNot0:f=>!u.is0(f)&&u.isValid(f),isOdd:f=>(f&ui)===ui,neg:f=>pr(-f,r),eql:(f,h)=>f===h,sqr:f=>pr(f*f,r),add:(f,h)=>pr(f+h,r),sub:(f,h)=>pr(f-h,r),mul:(f,h)=>pr(f*h,r),pow:(f,h)=>tZ(u,f,h),div:(f,h)=>pr(f*W5(h,r),r),sqrN:f=>f*f,addN:(f,h)=>f+h,subN:(f,h)=>f-h,mulN:(f,h)=>f*h,inv:f=>W5(f,r),sqrt:s||(f=>(d||(d=XX(r)),d(u,f))),toBytes:f=>t?v1(f,l):b1(f,l),fromBytes:(f,h=!0)=>{if(a){if(!a.includes(f.length)||f.length>l)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+f.length);let p=new Uint8Array(l);p.set(f,t?0:p.length-f.length),f=p}if(f.length!==l)throw new Error("Field.fromBytes: expected "+l+" bytes, got "+f.length);let g=t?Mc(f):qI(f);if(o&&(g=pr(g,r)),!h&&!u.isValid(g))throw new Error("invalid field element: outside of range 0..ORDER");return g},invertBatch:f=>zT(u,f),cmov:(f,h,g)=>g?h:f});return Object.freeze(u)}function jT(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function $T(r){let e=jT(r);return e+Math.ceil(e/2)}function rZ(r,e,t=!1){let i=r.length,n=jT(e),s=$T(e);if(i<16||i<s||i>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+i);let o=t?Mc(r):qI(r),a=pr(o,e-ui)+ui;return t?v1(a,n):b1(a,n)}function iZ(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);let n=BigInt(32),s=BigInt(4294967295),o=Number(t>>n&s),a=Number(t&s),c=i?4:0,l=i?0:4;r.setUint32(e+c,o,i),r.setUint32(e+l,a,i)}function VT(r,e,t){return r&e^~r&t}function YT(r,e,t){return r&e^r&t^e&t}function nZ(r,e=!1){return e?{h:Number(r&Iy),l:Number(r>>Z5&Iy)}:{h:Number(r>>Z5&Iy)|0,l:Number(r&Iy)|0}}function WT(r,e=!1){let t=r.length,i=new Uint32Array(t),n=new Uint32Array(t);for(let s=0;s<t;s++){let{h:o,l:a}=nZ(r[s],e);[i[s],n[s]]=[o,a]}return[i,n]}function $s(r,e,t,i){let n=(e>>>0)+(i>>>0);return{h:r+t+(n/2**32|0)|0,l:n|0}}function hI(r,e){let t=e.negate();return r?t:e}function Fc(r,e){let t=zT(r.Fp,e.map(i=>i.Z));return e.map((i,n)=>r.fromAffine(i.toAffine(t[n])))}function rU(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function eB(r,e){rU(r,e);let t=Math.ceil(e/r)+1,i=2**(r-1),n=2**r,s=IA(r),o=BigInt(r);return{windows:t,windowSize:i,mask:s,maxNumber:n,shiftBy:o}}function r6(r,e,t){let{windowSize:i,mask:n,maxNumber:s,shiftBy:o}=t,a=Number(r&n),c=r>>o;a>i&&(a-=s,c+=_c);let l=e*i,d=l+Math.abs(a)-1,u=a===0,f=a<0,h=e%2!==0;return{nextN:c,offset:d,isZero:u,isNeg:f,isNegF:h,offsetF:l}}function IZ(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,i)=>{if(!(t instanceof e))throw new Error("invalid point at index "+i)})}function wZ(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,i)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+i)})}function rB(r){return iU.get(r)||1}function i6(r){if(r!==Fd)throw new Error("invalid wNAF")}function xZ(r,e,t,i){let n=e,s=r.ZERO,o=r.ZERO;for(;t>Fd||i>Fd;)t&_c&&(s=s.add(n)),i&_c&&(o=o.add(n)),n=n.double(),t>>=_c,i>>=_c;return{p1:s,p2:o}}function nU(r,e,t,i){IZ(t,r),wZ(i,e);let n=t.length,s=i.length;if(n!==s)throw new Error("arrays of points and scalars must have equal length");let o=r.ZERO,a=NT(BigInt(n)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let l=IA(c),d=new Array(Number(l)+1).fill(o),u=Math.floor((e.BITS-1)/c)*c,f=o;for(let h=u;h>=0;h-=c){d.fill(o);for(let p=0;p<s;p++){let I=i[p],y=Number(I>>BigInt(h)&l);d[y]=d[y].add(t[p])}let g=o;for(let p=d.length-1,I=o;p>0;p--)I=I.add(d[p]),g=g.add(I);if(f=f.add(g),h!==0)for(let p=0;p<c;p++)f=f.double()}return f}function n6(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return eZ(e),e}else return Si(r,{isLE:t})}function sU(r,e,t={},i){if(i===void 0&&(i=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let l=e[c];if(!(typeof l=="bigint"&&l>Fd))throw new Error(`CURVE.${c} must be positive bigint`)}let n=n6(e.p,t.Fp,i),s=n6(e.n,t.Fn,i),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!n.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:n,Fn:s}}function CZ(r,e,t){let[[i,n],[s,o]]=e,a=s6(o*r,t),c=s6(-n*r,t),l=r-a*i-c*s,d=-a*n-c*o,u=l<to,f=d<to;u&&(l=-l),f&&(d=-d);let h=IA(Math.ceil(NT(t)/2))+Cd;if(l<to||l>=h||d<to||d>=h)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:u,k1:l,k2neg:f,k2:d}}function HB(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function iB(r,e){let t={};for(let i of Object.keys(e))t[i]=r[i]===void 0?e[i]:r[i];return Oc(t.lowS,"lowS"),Oc(t.prehash,"prehash"),t.format!==void 0&&HB(t.format),t}function gd(r,e){let{BYTES:t}=r,i;if(typeof e=="bigint")i=e;else{let n=vt("private key",e);try{i=r.fromBytes(n)}catch{throw new Error(`invalid private key: expected ui8a of size ${t}, got ${typeof e}`)}}if(!r.isValidNot0(i))throw new Error("invalid private key: out of range [1..N-1]");return i}function BZ(r,e={}){let t=sU("weierstrass",r,e),{Fp:i,Fn:n}=t,s=t.CURVE,{h:o,n:a}=s;Ud(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=e;if(c&&(!i.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let l=cU(i,n);function d(){if(!i.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(Q,v,E){let{x:P,y:N}=v.toAffine(),J=i.toBytes(P);if(Oc(E,"isCompressed"),E){d();let z=!i.isOdd(N);return Sn(aU(z),J)}else return Sn(Uint8Array.of(4),J,i.toBytes(N))}function f(Q){Qn(Q,void 0,"Point");let{publicKey:v,publicKeyUncompressed:E}=l,P=Q.length,N=Q[0],J=Q.subarray(1);if(P===v&&(N===2||N===3)){let z=i.fromBytes(J);if(!i.isValid(z))throw new Error("bad point: is not on curve, wrong x");let L=p(z),G;try{G=i.sqrt(L)}catch(te){let re=te instanceof Error?": "+te.message:"";throw new Error("bad point: is not on curve, sqrt error"+re)}d();let K=i.isOdd(G);return(N&1)===1!==K&&(G=i.neg(G)),{x:z,y:G}}else if(P===E&&N===4){let z=i.BYTES,L=i.fromBytes(J.subarray(0,z)),G=i.fromBytes(J.subarray(z,z*2));if(!I(L,G))throw new Error("bad point: is not on curve");return{x:L,y:G}}else throw new Error(`bad point: got length ${P}, expected compressed=${v} or uncompressed=${E}`)}let h=e.toBytes||u,g=e.fromBytes||f;function p(Q){let v=i.sqr(Q),E=i.mul(v,Q);return i.add(i.add(E,i.mul(Q,s.a)),s.b)}function I(Q,v){let E=i.sqr(v),P=p(Q);return i.eql(E,P)}if(!I(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let y=i.mul(i.pow(s.a,Cy),EZ),w=i.mul(i.sqr(s.b),BigInt(27));if(i.is0(i.add(y,w)))throw new Error("bad curve params: a or b");function C(Q,v,E=!1){if(!i.isValid(v)||E&&i.is0(v))throw new Error(`bad point coordinate ${Q}`);return v}function b(Q){if(!(Q instanceof T))throw new Error("ProjectivePoint expected")}function x(Q){if(!c||!c.basises)throw new Error("no endo");return CZ(Q,c.basises,n.ORDER)}let _=dI((Q,v)=>{let{X:E,Y:P,Z:N}=Q;if(i.eql(N,i.ONE))return{x:E,y:P};let J=Q.is0();v==null&&(v=J?i.ONE:i.inv(N));let z=i.mul(E,v),L=i.mul(P,v),G=i.mul(N,v);if(J)return{x:i.ZERO,y:i.ZERO};if(!i.eql(G,i.ONE))throw new Error("invZ was invalid");return{x:z,y:L}}),R=dI(Q=>{if(Q.is0()){if(e.allowInfinityPoint&&!i.is0(Q.Y))return;throw new Error("bad point: ZERO")}let{x:v,y:E}=Q.toAffine();if(!i.isValid(v)||!i.isValid(E))throw new Error("bad point: x or y not field elements");if(!I(v,E))throw new Error("bad point: equation left != right");if(!Q.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function U(Q,v,E,P,N){return E=new T(i.mul(E.X,Q),E.Y,E.Z),v=hI(P,v),E=hI(N,E),v.add(E)}class T{constructor(v,E,P){this.X=C("x",v),this.Y=C("y",E,!0),this.Z=C("z",P),Object.freeze(this)}static CURVE(){return s}static fromAffine(v){let{x:E,y:P}=v||{};if(!v||!i.isValid(E)||!i.isValid(P))throw new Error("invalid affine point");if(v instanceof T)throw new Error("projective point not allowed");return i.is0(E)&&i.is0(P)?T.ZERO:new T(E,P,i.ONE)}static fromBytes(v){let E=T.fromAffine(g(Qn(v,void 0,"point")));return E.assertValidity(),E}static fromHex(v){return T.fromBytes(vt("pointHex",v))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(v=8,E=!0){return B.createCache(this,v),E||this.multiply(Cy),this}assertValidity(){R(this)}hasEvenY(){let{y:v}=this.toAffine();if(!i.isOdd)throw new Error("Field doesn't support isOdd");return!i.isOdd(v)}equals(v){b(v);let{X:E,Y:P,Z:N}=this,{X:J,Y:z,Z:L}=v,G=i.eql(i.mul(E,L),i.mul(J,N)),K=i.eql(i.mul(P,L),i.mul(z,N));return G&&K}negate(){return new T(this.X,i.neg(this.Y),this.Z)}double(){let{a:v,b:E}=s,P=i.mul(E,Cy),{X:N,Y:J,Z:z}=this,L=i.ZERO,G=i.ZERO,K=i.ZERO,$=i.mul(N,N),te=i.mul(J,J),re=i.mul(z,z),ee=i.mul(N,J);return ee=i.add(ee,ee),K=i.mul(N,z),K=i.add(K,K),L=i.mul(v,K),G=i.mul(P,re),G=i.add(L,G),L=i.sub(te,G),G=i.add(te,G),G=i.mul(L,G),L=i.mul(ee,L),K=i.mul(P,K),re=i.mul(v,re),ee=i.sub($,re),ee=i.mul(v,ee),ee=i.add(ee,K),K=i.add($,$),$=i.add(K,$),$=i.add($,re),$=i.mul($,ee),G=i.add(G,$),re=i.mul(J,z),re=i.add(re,re),$=i.mul(re,ee),L=i.sub(L,$),K=i.mul(re,te),K=i.add(K,K),K=i.add(K,K),new T(L,G,K)}add(v){b(v);let{X:E,Y:P,Z:N}=this,{X:J,Y:z,Z:L}=v,G=i.ZERO,K=i.ZERO,$=i.ZERO,te=s.a,re=i.mul(s.b,Cy),ee=i.mul(E,J),Z=i.mul(P,z),me=i.mul(N,L),le=i.add(E,P),Ae=i.add(J,z);le=i.mul(le,Ae),Ae=i.add(ee,Z),le=i.sub(le,Ae),Ae=i.add(E,N);let ve=i.add(J,L);return Ae=i.mul(Ae,ve),ve=i.add(ee,me),Ae=i.sub(Ae,ve),ve=i.add(P,N),G=i.add(z,L),ve=i.mul(ve,G),G=i.add(Z,me),ve=i.sub(ve,G),$=i.mul(te,Ae),G=i.mul(re,me),$=i.add(G,$),G=i.sub(Z,$),$=i.add(Z,$),K=i.mul(G,$),Z=i.add(ee,ee),Z=i.add(Z,ee),me=i.mul(te,me),Ae=i.mul(re,Ae),Z=i.add(Z,me),me=i.sub(ee,me),me=i.mul(te,me),Ae=i.add(Ae,me),ee=i.mul(Z,Ae),K=i.add(K,ee),ee=i.mul(ve,Ae),G=i.mul(le,G),G=i.sub(G,ee),ee=i.mul(le,Z),$=i.mul(ve,$),$=i.add($,ee),new T(G,K,$)}subtract(v){return this.add(v.negate())}is0(){return this.equals(T.ZERO)}multiply(v){let{endo:E}=e;if(!n.isValidNot0(v))throw new Error("invalid scalar: out of range");let P,N,J=z=>B.cached(this,z,L=>Fc(T,L));if(E){let{k1neg:z,k1:L,k2neg:G,k2:K}=x(v),{p:$,f:te}=J(L),{p:re,f:ee}=J(K);N=te.add(ee),P=U(E.beta,$,re,z,G)}else{let{p:z,f:L}=J(v);P=z,N=L}return Fc(T,[P,N])[0]}multiplyUnsafe(v){let{endo:E}=e,P=this;if(!n.isValid(v))throw new Error("invalid scalar: out of range");if(v===to||P.is0())return T.ZERO;if(v===Cd)return P;if(B.hasCache(this))return this.multiply(v);if(E){let{k1neg:N,k1:J,k2neg:z,k2:L}=x(v),{p1:G,p2:K}=xZ(T,P,J,L);return U(E.beta,G,K,N,z)}else return B.unsafe(P,v)}multiplyAndAddUnsafe(v,E,P){let N=this.multiplyUnsafe(E).add(v.multiplyUnsafe(P));return N.is0()?void 0:N}toAffine(v){return _(this,v)}isTorsionFree(){let{isTorsionFree:v}=e;return o===Cd?!0:v?v(T,this):B.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:v}=e;return o===Cd?this:v?v(T,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(v=!0){return Oc(v,"isCompressed"),this.assertValidity(),h(T,this,v)}toHex(v=!0){return Tc(this.toBytes(v))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(v=!0){return this.toBytes(v)}_setWindowSize(v){this.precompute(v)}static normalizeZ(v){return Fc(T,v)}static msm(v,E){return nU(T,n,v,E)}static fromPrivateKey(v){return T.BASE.multiply(gd(n,v))}}T.BASE=new T(s.Gx,s.Gy,i.ONE),T.ZERO=new T(i.ZERO,i.ONE,i.ZERO),T.Fp=i,T.Fn=n;let D=n.BITS,B=new gI(T,e.endo?Math.ceil(D/2):D);return T.BASE.precompute(8),T}function aU(r){return Uint8Array.of(r?2:3)}function cU(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function bZ(r,e={}){let{Fn:t}=r,i=e.randomBytes||NI,n=Object.assign(cU(r.Fp,t),{seed:$T(t.ORDER)});function s(h){try{return!!gd(t,h)}catch{return!1}}function o(h,g){let{publicKey:p,publicKeyUncompressed:I}=n;try{let y=h.length;return g===!0&&y!==p||g===!1&&y!==I?!1:!!r.fromBytes(h)}catch{return!1}}function a(h=i(n.seed)){return rZ(Qn(h,n.seed,"seed"),t.ORDER)}function c(h,g=!0){return r.BASE.multiply(gd(t,h)).toBytes(g)}function l(h){let g=a(h);return{secretKey:g,publicKey:c(g)}}function d(h){if(typeof h=="bigint")return!1;if(h instanceof r)return!0;let{secretKey:g,publicKey:p,publicKeyUncompressed:I}=n;if(t.allowedLengths||g===p)return;let y=vt("key",h).length;return y===p||y===I}function u(h,g,p=!0){if(d(h)===!0)throw new Error("first arg must be private key");if(d(g)===!1)throw new Error("second arg must be public key");let I=gd(t,h);return r.fromHex(g).multiply(I).toBytes(p)}return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:l,Point:r,utils:{isValidSecretKey:s,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:h=>gd(t,h),precompute(h=8,g=r.BASE){return g.precompute(h,!1)}},lengths:n})}function vZ(r,e,t={}){PT(e),Ud(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let i=t.randomBytes||NI,n=t.hmac||((E,...P)=>tU(e,E,Sn(...P))),{Fp:s,Fn:o}=r,{ORDER:a,BITS:c}=o,{keygen:l,getPublicKey:d,getSharedSecret:u,utils:f,lengths:h}=bZ(r,t),g={prehash:!1,lowS:typeof t.lowS=="boolean"?t.lowS:!1,format:void 0,extraEntropy:!1},p="compact";function I(E){let P=a>>Cd;return E>P}function y(E,P){if(!o.isValidNot0(P))throw new Error(`invalid signature ${E}: out of range 1..Point.Fn.ORDER`);return P}function w(E,P){HB(P);let N=h.signature,J=P==="compact"?N:P==="recovered"?N+1:void 0;return Qn(E,J,`${P} signature`)}class C{constructor(P,N,J){this.r=y("r",P),this.s=y("s",N),J!=null&&(this.recovery=J),Object.freeze(this)}static fromBytes(P,N=p){w(P,N);let J;if(N==="der"){let{r:K,s:$}=Zs.toSig(Qn(P));return new C(K,$)}N==="recovered"&&(J=P[0],N="compact",P=P.subarray(1));let z=o.BYTES,L=P.subarray(0,z),G=P.subarray(z,z*2);return new C(o.fromBytes(L),o.fromBytes(G),J)}static fromHex(P,N){return this.fromBytes(lI(P),N)}addRecoveryBit(P){return new C(this.r,this.s,P)}recoverPublicKey(P){let N=s.ORDER,{r:J,s:z,recovery:L}=this;if(L==null||![0,1,2,3].includes(L))throw new Error("recovery id invalid");if(a*oU<N&&L>1)throw new Error("recovery id is ambiguous for h>1 curve");let K=L===2||L===3?J+a:J;if(!s.isValid(K))throw new Error("recovery id 2 or 3 invalid");let $=s.toBytes(K),te=r.fromBytes(Sn(aU((L&1)===0),$)),re=o.inv(K),ee=x(vt("msgHash",P)),Z=o.create(-ee*re),me=o.create(z*re),le=r.BASE.multiplyUnsafe(Z).add(te.multiplyUnsafe(me));if(le.is0())throw new Error("point at infinify");return le.assertValidity(),le}hasHighS(){return I(this.s)}toBytes(P=p){if(HB(P),P==="der")return lI(Zs.hexFromSig(this));let N=o.toBytes(this.r),J=o.toBytes(this.s);if(P==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return Sn(Uint8Array.of(this.recovery),N,J)}return Sn(N,J)}toHex(P){return Tc(this.toBytes(P))}assertValidity(){}static fromCompact(P){return C.fromBytes(vt("sig",P),"compact")}static fromDER(P){return C.fromBytes(vt("sig",P),"der")}normalizeS(){return this.hasHighS()?new C(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Tc(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Tc(this.toBytes("compact"))}}let b=t.bits2int||function(P){if(P.length>8192)throw new Error("input is too large");let N=qI(P),J=P.length*8-c;return J>0?N>>BigInt(J):N},x=t.bits2int_modN||function(P){return o.create(b(P))},_=IA(c);function R(E){return rA("num < 2^"+c,E,to,_),o.toBytes(E)}function U(E,P){return Qn(E,void 0,"message"),P?Qn(e(E),void 0,"prehashed message"):E}function T(E,P,N){if(["recovered","canonical"].some(Z=>Z in N))throw new Error("sign() legacy options not supported");let{lowS:J,prehash:z,extraEntropy:L}=iB(N,g);E=U(E,z);let G=x(E),K=gd(o,P),$=[R(K),R(G)];if(L!=null&&L!==!1){let Z=L===!0?i(h.secretKey):L;$.push(vt("extraEntropy",Z))}let te=Sn(...$),re=G;function ee(Z){let me=b(Z);if(!o.isValidNot0(me))return;let le=o.inv(me),Ae=r.BASE.multiply(me).toAffine(),ve=o.create(Ae.x);if(ve===to)return;let qe=o.create(le*o.create(re+ve*K));if(qe===to)return;let _e=(Ae.x===ve?0:2)|Number(Ae.y&Cd),se=qe;return J&&I(qe)&&(se=o.neg(qe),_e^=1),new C(ve,se,_e)}return{seed:te,k2sig:ee}}function D(E,P,N={}){E=vt("message",E);let{seed:J,k2sig:z}=T(E,P,N);return jX(e.outputLen,o.BYTES,n)(J,z)}function B(E){let P,N=typeof E=="string"||mA(E),J=!N&&E!==null&&typeof E=="object"&&typeof E.r=="bigint"&&typeof E.s=="bigint";if(!N&&!J)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(J)P=new C(E.r,E.s);else if(N){try{P=C.fromBytes(vt("sig",E),"der")}catch(z){if(!(z instanceof Zs.Err))throw z}if(!P)try{P=C.fromBytes(vt("sig",E),"compact")}catch{return!1}}return P||!1}function Q(E,P,N,J={}){let{lowS:z,prehash:L,format:G}=iB(J,g);if(N=vt("publicKey",N),P=U(vt("message",P),L),"strict"in J)throw new Error("options.strict was renamed to lowS");let K=G===void 0?B(E):C.fromBytes(vt("sig",E),G);if(K===!1)return!1;try{let $=r.fromBytes(N);if(z&&K.hasHighS())return!1;let{r:te,s:re}=K,ee=x(P),Z=o.inv(re),me=o.create(ee*Z),le=o.create(te*Z),Ae=r.BASE.multiplyUnsafe(me).add($.multiplyUnsafe(le));return Ae.is0()?!1:o.create(Ae.x)===te}catch{return!1}}function v(E,P,N={}){let{prehash:J}=iB(N,g);return P=U(P,J),C.fromBytes(E,"recovered").recoverPublicKey(P).toBytes()}return Object.freeze({keygen:l,getPublicKey:d,getSharedSecret:u,utils:f,lengths:h,Point:r,sign:D,verify:Q,recoverPublicKey:v,Signature:C,hash:e})}function kZ(r){let e={a:r.a,b:r.b,p:r.Fp.ORDER,n:r.n,h:r.h,Gx:r.Gx,Gy:r.Gy},t=r.Fp,i=r.allowedPrivateKeyLengths?Array.from(new Set(r.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0,n=Si(e.n,{BITS:r.nBitLength,allowedLengths:i,modFromBytes:r.wrapPrivateKey}),s={Fp:t,Fn:n,allowInfinityPoint:r.allowInfinityPoint,endo:r.endo,isTorsionFree:r.isTorsionFree,clearCofactor:r.clearCofactor,fromBytes:r.fromBytes,toBytes:r.toBytes};return{CURVE:e,curveOpts:s}}function SZ(r){let{CURVE:e,curveOpts:t}=kZ(r),i={hmac:r.hmac,randomBytes:r.randomBytes,lowS:r.lowS,bits2int:r.bits2int,bits2int_modN:r.bits2int_modN};return{CURVE:e,curveOpts:t,hash:r.hash,ecdsaOpts:i}}function DZ(r,e){let t=e.Point;return Object.assign({},e,{ProjectivePoint:t,CURVE:Object.assign({},r,JT(t.Fn.ORDER,t.Fn.BITS))})}function QZ(r){let{CURVE:e,curveOpts:t,hash:i,ecdsaOpts:n}=SZ(r),s=BZ(e,t),o=vZ(s,i,n);return DZ(r,o)}function Gc(r,e){let t=i=>QZ({...r,hash:i});return{...t(e),create:t}}function jZ(r,e=24){let t=new Uint32Array(10);for(let i=24-e;i<24;i++){for(let o=0;o<10;o++)t[o]=r[o]^r[o+10]^r[o+20]^r[o+30]^r[o+40];for(let o=0;o<10;o+=2){let a=(o+8)%10,c=(o+2)%10,l=t[c],d=t[c+1],u=o6(l,d,1)^t[a],f=a6(l,d,1)^t[a+1];for(let h=0;h<50;h+=10)r[o+h]^=u,r[o+h+1]^=f}let n=r[2],s=r[3];for(let o=0;o<24;o++){let a=AU[o],c=o6(n,s,a),l=a6(n,s,a),d=fU[o];n=r[d],s=r[d+1],r[d]=c,r[d+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=r[o+a];for(let a=0;a<10;a++)r[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}r[0]^=zZ[i],r[1]^=JZ[i]}cn(t)}function ZZ(r,e,t,i){let n=r.sqr(t),s=r.sqr(i),o=r.add(r.mul(e.a,n),s),a=r.add(r.ONE,r.mul(e.d,r.mul(n,s)));return r.eql(o,a)}function mU(r,e={}){let t=sU("edwards",r,e,e.FpFnLE),{Fp:i,Fn:n}=t,s=t.CURVE,{h:o}=s;Ud(e,{},{uvRatio:"function"});let a=nB<<BigInt(n.BYTES*8)-Er,c=I=>i.create(I),l=e.uvRatio||((I,y)=>{try{return{isValid:!0,value:i.sqrt(i.div(I,y))}}catch{return{isValid:!1,value:da}}});if(!ZZ(i,s,s.Gx,s.Gy))throw new Error("bad curve params: generator point");function d(I,y,w=!1){let C=w?Er:da;return rA("coordinate "+I,y,C,a),y}function u(I){if(!(I instanceof g))throw new Error("ExtendedPoint expected")}let f=dI((I,y)=>{let{X:w,Y:C,Z:b}=I,x=I.is0();y==null&&(y=x?XZ:i.inv(b));let _=c(w*y),R=c(C*y),U=i.mul(b,y);if(x)return{x:da,y:Er};if(U!==Er)throw new Error("invZ was invalid");return{x:_,y:R}}),h=dI(I=>{let{a:y,d:w}=s;if(I.is0())throw new Error("bad point: ZERO");let{X:C,Y:b,Z:x,T:_}=I,R=c(C*C),U=c(b*b),T=c(x*x),D=c(T*T),B=c(R*y),Q=c(T*c(B+U)),v=c(D+c(w*c(R*U)));if(Q!==v)throw new Error("bad point: equation left != right (1)");let E=c(C*b),P=c(x*_);if(E!==P)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(y,w,C,b){this.X=d("x",y),this.Y=d("y",w),this.Z=d("z",C,!0),this.T=d("t",b),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){if(y instanceof g)throw new Error("extended point not allowed");let{x:w,y:C}=y||{};return d("x",w),d("y",C),new g(w,C,Er,c(w*C))}static fromBytes(y,w=!1){let C=i.BYTES,{a:b,d:x}=s;y=Y5(Qn(y,C,"point")),Oc(w,"zip215");let _=Y5(y),R=y[C-1];_[C-1]=R&-129;let U=Mc(_),T=w?a:i.ORDER;rA("point.y",U,da,T);let D=c(U*U),B=c(D-Er),Q=c(x*D-b),{isValid:v,value:E}=l(B,Q);if(!v)throw new Error("bad point: invalid y coordinate");let P=(E&Er)===Er,N=(R&128)!==0;if(!w&&E===da&&N)throw new Error("bad point: x=0 and x_0=1");return N!==P&&(E=c(-E)),g.fromAffine({x:E,y:U})}static fromHex(y,w=!1){return g.fromBytes(vt("point",y),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,w=!0){return p.createCache(this,y),w||this.multiply(nB),this}assertValidity(){h(this)}equals(y){u(y);let{X:w,Y:C,Z:b}=this,{X:x,Y:_,Z:R}=y,U=c(w*R),T=c(x*b),D=c(C*R),B=c(_*b);return U===T&&D===B}is0(){return this.equals(g.ZERO)}negate(){return new g(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:y}=s,{X:w,Y:C,Z:b}=this,x=c(w*w),_=c(C*C),R=c(nB*c(b*b)),U=c(y*x),T=w+C,D=c(c(T*T)-x-_),B=U+_,Q=B-R,v=U-_,E=c(D*Q),P=c(B*v),N=c(D*v),J=c(Q*B);return new g(E,P,J,N)}add(y){u(y);let{a:w,d:C}=s,{X:b,Y:x,Z:_,T:R}=this,{X:U,Y:T,Z:D,T:B}=y,Q=c(b*U),v=c(x*T),E=c(R*C*B),P=c(_*D),N=c((b+x)*(U+T)-Q-v),J=P-E,z=P+E,L=c(v-w*Q),G=c(N*J),K=c(z*L),$=c(N*L),te=c(J*z);return new g(G,K,te,$)}subtract(y){return this.add(y.negate())}multiply(y){if(!n.isValidNot0(y))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:w,f:C}=p.cached(this,y,b=>Fc(g,b));return Fc(g,[w,C])[0]}multiplyUnsafe(y,w=g.ZERO){if(!n.isValid(y))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return y===da?g.ZERO:this.is0()||y===Er?this:p.unsafe(this,y,C=>Fc(g,C),w)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}isTorsionFree(){return p.unsafe(this,s.n).is0()}toAffine(y){return f(this,y)}clearCofactor(){return o===Er?this:this.multiplyUnsafe(o)}toBytes(){let{x:y,y:w}=this.toAffine(),C=i.toBytes(w);return C[C.length-1]|=y&Er?128:0,C}toHex(){return Tc(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(y){return Fc(g,y)}static msm(y,w){return nU(g,n,y,w)}_setWindowSize(y){this.precompute(y)}toRawBytes(){return this.toBytes()}}g.BASE=new g(s.Gx,s.Gy,Er,c(s.Gx*s.Gy)),g.ZERO=new g(da,Er,Er,da),g.Fp=i,g.Fn=n;let p=new gI(g,n.BITS);return g.BASE.precompute(8),g}function eee(r,e,t={}){if(typeof e!="function")throw new Error('"hash" function param is required');Ud(t,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:i}=t,{BASE:n,Fp:s,Fn:o}=r,a=t.randomBytes||NI,c=t.adjustScalarBytes||(T=>T),l=t.domain||((T,D,B)=>{if(Oc(B,"phflag"),D.length||B)throw new Error("Contexts/pre-hash are not supported");return T});function d(T){return o.create(Mc(T))}function u(T){let D=C.secretKey;T=vt("private key",T,D);let B=vt("hashed private key",e(T),2*D),Q=c(B.slice(0,D)),v=B.slice(D,2*D),E=d(Q);return{head:Q,prefix:v,scalar:E}}function f(T){let{head:D,prefix:B,scalar:Q}=u(T),v=n.multiply(Q),E=v.toBytes();return{head:D,prefix:B,scalar:Q,point:v,pointBytes:E}}function h(T){return f(T).pointBytes}function g(T=Uint8Array.of(),...D){let B=Sn(...D);return d(e(l(B,vt("context",T),!!i)))}function p(T,D,B={}){T=vt("message",T),i&&(T=i(T));let{prefix:Q,scalar:v,pointBytes:E}=f(D),P=g(B.context,Q,T),N=n.multiply(P).toBytes(),J=g(B.context,N,E,T),z=o.create(P+J*v);if(!o.isValid(z))throw new Error("sign failed: invalid s");let L=Sn(N,o.toBytes(z));return Qn(L,C.signature,"result")}let I={zip215:!0};function y(T,D,B,Q=I){let{context:v,zip215:E}=Q,P=C.signature;T=vt("signature",T,P),D=vt("message",D),B=vt("publicKey",B,C.publicKey),E!==void 0&&Oc(E,"zip215"),i&&(D=i(D));let N=P/2,J=T.subarray(0,N),z=Mc(T.subarray(N,P)),L,G,K;try{L=r.fromBytes(B,E),G=r.fromBytes(J,E),K=n.multiplyUnsafe(z)}catch{return!1}if(!E&&L.isSmallOrder())return!1;let $=g(v,G.toBytes(),L.toBytes(),D);return G.add(L.multiplyUnsafe($)).subtract(K).clearCofactor().is0()}let w=s.BYTES,C={secretKey:w,publicKey:w,signature:2*w,seed:w};function b(T=a(C.seed)){return Qn(T,C.seed,"seed")}function x(T){let D=U.randomSecretKey(T);return{secretKey:D,publicKey:h(D)}}function _(T){return mA(T)&&T.length===o.BYTES}function R(T,D){try{return!!r.fromBytes(T,D)}catch{return!1}}let U={getExtendedPublicKey:f,randomSecretKey:b,isValidSecretKey:_,isValidPublicKey:R,toMontgomery(T){let{y:D}=r.fromBytes(T),B=C.publicKey,Q=B===32;if(!Q&&B!==57)throw new Error("only defined for 25519 and 448");let v=Q?s.div(Er+D,Er-D):s.div(D-Er,D+Er);return s.toBytes(v)},toMontgomerySecret(T){let D=C.secretKey;Qn(T,D);let B=e(T.subarray(0,D));return c(B).subarray(0,D)},randomPrivateKey:b,precompute(T=8,D=r.BASE){return D.precompute(T,!1)}};return Object.freeze({keygen:x,getPublicKey:h,sign:p,verify:y,utils:U,Point:r,lengths:C})}function tee(r){let e={a:r.a,d:r.d,p:r.Fp.ORDER,n:r.n,h:r.h,Gx:r.Gx,Gy:r.Gy},t=r.Fp,i=Si(e.n,r.nBitLength,!0),n={Fp:t,Fn:i,uvRatio:r.uvRatio},s={randomBytes:r.randomBytes,adjustScalarBytes:r.adjustScalarBytes,domain:r.domain,prehash:r.prehash,mapToCurve:r.mapToCurve};return{CURVE:e,curveOpts:n,hash:r.hash,eddsaOpts:s}}function ree(r,e){let t=e.Point;return Object.assign({},e,{ExtendedPoint:t,CURVE:r,nBitLength:t.Fn.BITS,nByteLength:t.Fn.BYTES})}function iee(r){let{CURVE:e,curveOpts:t,hash:i,eddsaOpts:n}=tee(r),s=mU(e,t),o=eee(s,i,n);return ree(r,o)}function nee(r){return Ud(r,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...r})}function see(r){let e=nee(r),{P:t,type:i,adjustScalarBytes:n,powPminus2:s,randomBytes:o}=e,a=i==="x25519";if(!a&&i!=="x448")throw new Error("invalid type");let c=o||NI,l=a?255:448,d=a?32:56,u=BigInt(a?9:5),f=BigInt(a?121665:39081),h=a?Ey**BigInt(254):Ey**BigInt(447),g=a?BigInt(8)*Ey**BigInt(251)-ld:BigInt(4)*Ey**BigInt(445)-ld,p=h+g+ld,I=v=>pr(v,t),y=w(u);function w(v){return v1(I(v),d)}function C(v){let E=vt("u coordinate",v,d);return a&&(E[31]&=127),I(Mc(E))}function b(v){return Mc(n(vt("scalar",v,d)))}function x(v,E){let P=U(C(E),b(v));if(P===Tf)throw new Error("invalid private or public key received");return w(P)}function _(v){return x(v,y)}function R(v,E,P){let N=I(v*(E-P));return E=I(E-N),P=I(P+N),{x_2:E,x_3:P}}function U(v,E){rA("u",v,Tf,t),rA("scalar",E,h,p);let P=E,N=v,J=ld,z=Tf,L=v,G=ld,K=Tf;for(let te=BigInt(l-1);te>=Tf;te--){let re=P>>te&ld;K^=re,{x_2:J,x_3:L}=R(K,J,L),{x_2:z,x_3:G}=R(K,z,G),K=re;let ee=J+z,Z=I(ee*ee),me=J-z,le=I(me*me),Ae=Z-le,ve=L+G,qe=L-G,_e=I(qe*ee),se=I(ve*me),it=_e+se,ce=_e-se;L=I(it*it),G=I(N*I(ce*ce)),J=I(Z*le),z=I(Ae*(Z+I(f*Ae)))}({x_2:J,x_3:L}=R(K,J,L)),{x_2:z,x_3:G}=R(K,z,G);let $=s(z);return I(J*$)}let T={secretKey:d,publicKey:d,seed:d},D=(v=c(d))=>(hs(v,T.seed),v);function B(v){let E=D(v);return{secretKey:E,publicKey:_(E)}}return{keygen:B,getSharedSecret:(v,E)=>x(v,E),getPublicKey:v=>_(v),scalarMult:x,scalarMultBase:_,utils:{randomSecretKey:D,randomPrivateKey:D},GuBytes:y.slice(),lengths:T}}function yU(r){let e=zc.p,t=r*r*r%e,i=t*t*r%e,n=bt(i,c6,e)*i%e,s=bt(n,c6,e)*i%e,o=bt(s,GB,e)*t%e,a=bt(o,lee,e)*o%e,c=bt(a,dee,e)*a%e,l=bt(c,l6,e)*c%e,d=bt(l,uee,e)*l%e,u=bt(d,l6,e)*c%e,f=bt(u,GB,e)*t%e,h=bt(f,cee,e)*r%e;return bt(h,fee,e)*f%e}function IU(r){return r[0]&=252,r[55]|=128,r[56]=0,r}function Aee(r,e){let t=zc.p,i=pr(r*r*e,t),n=pr(i*r,t),s=pr(n*i*e,t),o=yU(s),a=pr(n*o,t),c=pr(a*a,t);return{isValid:pr(c*e,t)===r,value:a}}function gee(r,e,t){if(e.length>255)throw new Error("context must be smaller than 255, got: "+e.length);return Sn(zX("SigEd448"),new Uint8Array([t?1:0,e.length]),e,r)}function wee(r){let e=D1.p,t=BigInt(3),i=BigInt(6),n=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%e,d=l*l*r%e,u=bt(d,t,e)*d%e,f=bt(u,t,e)*d%e,h=bt(f,u6,e)*l%e,g=bt(h,n,e)*h%e,p=bt(g,s,e)*g%e,I=bt(p,a,e)*p%e,y=bt(I,c,e)*I%e,w=bt(y,a,e)*p%e,C=bt(w,t,e)*d%e,b=bt(C,o,e)*g%e,x=bt(b,i,e)*l%e,_=bt(x,u6,e);if(!zB.eql(zB.sqr(_),r))throw new Error("Cannot find square root");return _}function f6(r,e,t,i){return r===0?e^t^i:r===1?e&t|~e&i:r===2?(e|~t)^i:r===3?e&i|t&~i:e^(t|~i)}function p6(r,e,t,i){r[e]=t>>24&255,r[e+1]=t>>16&255,r[e+2]=t>>8&255,r[e+3]=t&255,r[e+4]=i>>24&255,r[e+5]=i>>16&255,r[e+6]=i>>8&255,r[e+7]=i&255}function Xee(r,e,t,i,n){var s,o=0;for(s=0;s<n;s++)o|=r[e+s]^t[i+s];return(1&o-1>>>8)-1}function FU(r,e,t,i){return Xee(r,e,t,i,32)}function Ia(r,e){var t;for(t=0;t<16;t++)r[t]=e[t]|0}function aB(r){var e,t,i=1;for(e=0;e<16;e++)t=r[e]+i+65535,i=Math.floor(t/65536),r[e]=t-i*65536;r[0]+=i-1+37*(i-1)}function pd(r,e,t){for(var i,n=~(t-1),s=0;s<16;s++)i=n&(r[s]^e[s]),r[s]^=i,e[s]^=i}function iA(r,e){var t,i,n,s=Pe(),o=Pe();for(t=0;t<16;t++)o[t]=e[t];for(aB(o),aB(o),aB(o),i=0;i<2;i++){for(s[0]=o[0]-65517,t=1;t<15;t++)s[t]=o[t]-65535-(s[t-1]>>16&1),s[t-1]&=65535;s[15]=o[15]-32767-(s[14]>>16&1),n=s[15]>>16&1,s[14]&=65535,pd(o,s,1-n)}for(t=0;t<16;t++)r[2*t]=o[t]&255,r[2*t+1]=o[t]>>8}function m6(r,e){var t=new Uint8Array(32),i=new Uint8Array(32);return iA(t,r),iA(i,e),FU(t,0,i,0)}function PU(r){var e=new Uint8Array(32);return iA(e,r),e[0]&1}function TU(r,e){var t;for(t=0;t<16;t++)r[t]=e[2*t]+(e[2*t+1]<<8);r[15]&=32767}function ss(r,e,t){for(var i=0;i<16;i++)r[i]=e[i]+t[i]}function as(r,e,t){for(var i=0;i<16;i++)r[i]=e[i]-t[i]}function at(r,e,t){var i,n,s=0,o=0,a=0,c=0,l=0,d=0,u=0,f=0,h=0,g=0,p=0,I=0,y=0,w=0,C=0,b=0,x=0,_=0,R=0,U=0,T=0,D=0,B=0,Q=0,v=0,E=0,P=0,N=0,J=0,z=0,L=0,G=t[0],K=t[1],$=t[2],te=t[3],re=t[4],ee=t[5],Z=t[6],me=t[7],le=t[8],Ae=t[9],ve=t[10],qe=t[11],_e=t[12],se=t[13],it=t[14],ce=t[15];i=e[0],s+=i*G,o+=i*K,a+=i*$,c+=i*te,l+=i*re,d+=i*ee,u+=i*Z,f+=i*me,h+=i*le,g+=i*Ae,p+=i*ve,I+=i*qe,y+=i*_e,w+=i*se,C+=i*it,b+=i*ce,i=e[1],o+=i*G,a+=i*K,c+=i*$,l+=i*te,d+=i*re,u+=i*ee,f+=i*Z,h+=i*me,g+=i*le,p+=i*Ae,I+=i*ve,y+=i*qe,w+=i*_e,C+=i*se,b+=i*it,x+=i*ce,i=e[2],a+=i*G,c+=i*K,l+=i*$,d+=i*te,u+=i*re,f+=i*ee,h+=i*Z,g+=i*me,p+=i*le,I+=i*Ae,y+=i*ve,w+=i*qe,C+=i*_e,b+=i*se,x+=i*it,_+=i*ce,i=e[3],c+=i*G,l+=i*K,d+=i*$,u+=i*te,f+=i*re,h+=i*ee,g+=i*Z,p+=i*me,I+=i*le,y+=i*Ae,w+=i*ve,C+=i*qe,b+=i*_e,x+=i*se,_+=i*it,R+=i*ce,i=e[4],l+=i*G,d+=i*K,u+=i*$,f+=i*te,h+=i*re,g+=i*ee,p+=i*Z,I+=i*me,y+=i*le,w+=i*Ae,C+=i*ve,b+=i*qe,x+=i*_e,_+=i*se,R+=i*it,U+=i*ce,i=e[5],d+=i*G,u+=i*K,f+=i*$,h+=i*te,g+=i*re,p+=i*ee,I+=i*Z,y+=i*me,w+=i*le,C+=i*Ae,b+=i*ve,x+=i*qe,_+=i*_e,R+=i*se,U+=i*it,T+=i*ce,i=e[6],u+=i*G,f+=i*K,h+=i*$,g+=i*te,p+=i*re,I+=i*ee,y+=i*Z,w+=i*me,C+=i*le,b+=i*Ae,x+=i*ve,_+=i*qe,R+=i*_e,U+=i*se,T+=i*it,D+=i*ce,i=e[7],f+=i*G,h+=i*K,g+=i*$,p+=i*te,I+=i*re,y+=i*ee,w+=i*Z,C+=i*me,b+=i*le,x+=i*Ae,_+=i*ve,R+=i*qe,U+=i*_e,T+=i*se,D+=i*it,B+=i*ce,i=e[8],h+=i*G,g+=i*K,p+=i*$,I+=i*te,y+=i*re,w+=i*ee,C+=i*Z,b+=i*me,x+=i*le,_+=i*Ae,R+=i*ve,U+=i*qe,T+=i*_e,D+=i*se,B+=i*it,Q+=i*ce,i=e[9],g+=i*G,p+=i*K,I+=i*$,y+=i*te,w+=i*re,C+=i*ee,b+=i*Z,x+=i*me,_+=i*le,R+=i*Ae,U+=i*ve,T+=i*qe,D+=i*_e,B+=i*se,Q+=i*it,v+=i*ce,i=e[10],p+=i*G,I+=i*K,y+=i*$,w+=i*te,C+=i*re,b+=i*ee,x+=i*Z,_+=i*me,R+=i*le,U+=i*Ae,T+=i*ve,D+=i*qe,B+=i*_e,Q+=i*se,v+=i*it,E+=i*ce,i=e[11],I+=i*G,y+=i*K,w+=i*$,C+=i*te,b+=i*re,x+=i*ee,_+=i*Z,R+=i*me,U+=i*le,T+=i*Ae,D+=i*ve,B+=i*qe,Q+=i*_e,v+=i*se,E+=i*it,P+=i*ce,i=e[12],y+=i*G,w+=i*K,C+=i*$,b+=i*te,x+=i*re,_+=i*ee,R+=i*Z,U+=i*me,T+=i*le,D+=i*Ae,B+=i*ve,Q+=i*qe,v+=i*_e,E+=i*se,P+=i*it,N+=i*ce,i=e[13],w+=i*G,C+=i*K,b+=i*$,x+=i*te,_+=i*re,R+=i*ee,U+=i*Z,T+=i*me,D+=i*le,B+=i*Ae,Q+=i*ve,v+=i*qe,E+=i*_e,P+=i*se,N+=i*it,J+=i*ce,i=e[14],C+=i*G,b+=i*K,x+=i*$,_+=i*te,R+=i*re,U+=i*ee,T+=i*Z,D+=i*me,B+=i*le,Q+=i*Ae,v+=i*ve,E+=i*qe,P+=i*_e,N+=i*se,J+=i*it,z+=i*ce,i=e[15],b+=i*G,x+=i*K,_+=i*$,R+=i*te,U+=i*re,T+=i*ee,D+=i*Z,B+=i*me,Q+=i*le,v+=i*Ae,E+=i*ve,P+=i*qe,N+=i*_e,J+=i*se,z+=i*it,L+=i*ce,s+=38*x,o+=38*_,a+=38*R,c+=38*U,l+=38*T,d+=38*D,u+=38*B,f+=38*Q,h+=38*v,g+=38*E,p+=38*P,I+=38*N,y+=38*J,w+=38*z,C+=38*L,n=1,i=s+n+65535,n=Math.floor(i/65536),s=i-n*65536,i=o+n+65535,n=Math.floor(i/65536),o=i-n*65536,i=a+n+65535,n=Math.floor(i/65536),a=i-n*65536,i=c+n+65535,n=Math.floor(i/65536),c=i-n*65536,i=l+n+65535,n=Math.floor(i/65536),l=i-n*65536,i=d+n+65535,n=Math.floor(i/65536),d=i-n*65536,i=u+n+65535,n=Math.floor(i/65536),u=i-n*65536,i=f+n+65535,n=Math.floor(i/65536),f=i-n*65536,i=h+n+65535,n=Math.floor(i/65536),h=i-n*65536,i=g+n+65535,n=Math.floor(i/65536),g=i-n*65536,i=p+n+65535,n=Math.floor(i/65536),p=i-n*65536,i=I+n+65535,n=Math.floor(i/65536),I=i-n*65536,i=y+n+65535,n=Math.floor(i/65536),y=i-n*65536,i=w+n+65535,n=Math.floor(i/65536),w=i-n*65536,i=C+n+65535,n=Math.floor(i/65536),C=i-n*65536,i=b+n+65535,n=Math.floor(i/65536),b=i-n*65536,s+=n-1+37*(n-1),n=1,i=s+n+65535,n=Math.floor(i/65536),s=i-n*65536,i=o+n+65535,n=Math.floor(i/65536),o=i-n*65536,i=a+n+65535,n=Math.floor(i/65536),a=i-n*65536,i=c+n+65535,n=Math.floor(i/65536),c=i-n*65536,i=l+n+65535,n=Math.floor(i/65536),l=i-n*65536,i=d+n+65535,n=Math.floor(i/65536),d=i-n*65536,i=u+n+65535,n=Math.floor(i/65536),u=i-n*65536,i=f+n+65535,n=Math.floor(i/65536),f=i-n*65536,i=h+n+65535,n=Math.floor(i/65536),h=i-n*65536,i=g+n+65535,n=Math.floor(i/65536),g=i-n*65536,i=p+n+65535,n=Math.floor(i/65536),p=i-n*65536,i=I+n+65535,n=Math.floor(i/65536),I=i-n*65536,i=y+n+65535,n=Math.floor(i/65536),y=i-n*65536,i=w+n+65535,n=Math.floor(i/65536),w=i-n*65536,i=C+n+65535,n=Math.floor(i/65536),C=i-n*65536,i=b+n+65535,n=Math.floor(i/65536),b=i-n*65536,s+=n-1+37*(n-1),r[0]=s,r[1]=o,r[2]=a,r[3]=c,r[4]=l,r[5]=d,r[6]=u,r[7]=f,r[8]=h,r[9]=g,r[10]=p,r[11]=I,r[12]=y,r[13]=w,r[14]=C,r[15]=b}function Dn(r,e){at(r,e,e)}function UU(r,e){var t=Pe(),i;for(i=0;i<16;i++)t[i]=e[i];for(i=253;i>=0;i--)Dn(t,t),i!==2&&i!==4&&at(t,t,e);for(i=0;i<16;i++)r[i]=t[i]}function Zee(r,e){var t=Pe(),i;for(i=0;i<16;i++)t[i]=e[i];for(i=250;i>=0;i--)Dn(t,t),i!==1&&at(t,t,e);for(i=0;i<16;i++)r[i]=t[i]}function RU(r,e,t){var i=new Uint8Array(32),n=new Float64Array(80),s,o,a=Pe(),c=Pe(),l=Pe(),d=Pe(),u=Pe(),f=Pe();for(o=0;o<31;o++)i[o]=e[o];for(i[31]=e[31]&127|64,i[0]&=248,TU(n,t),o=0;o<16;o++)c[o]=n[o],d[o]=a[o]=l[o]=0;for(a[0]=d[0]=1,o=254;o>=0;--o)s=i[o>>>3]>>>(o&7)&1,pd(a,c,s),pd(l,d,s),ss(u,a,l),as(a,a,l),ss(l,c,d),as(c,c,d),Dn(d,u),Dn(f,a),at(a,l,a),at(l,c,u),ss(u,a,l),as(a,a,l),Dn(c,a),as(l,d,f),at(a,l,$ee),ss(a,a,d),at(l,l,a),at(a,d,f),at(d,c,n),Dn(c,u),pd(a,c,s),pd(l,d,s);for(o=0;o<16;o++)n[o+16]=a[o],n[o+32]=l[o],n[o+48]=c[o],n[o+64]=d[o];var h=n.subarray(32),g=n.subarray(16);return UU(h,h),at(g,g,h),iA(r,g),0}function NU(r,e){return RU(r,e,_U)}function ete(r,e){return Q1(e,32),NU(r,e)}function I6(r,e,t,i){for(var n=new Int32Array(16),s=new Int32Array(16),o,a,c,l,d,u,f,h,g,p,I,y,w,C,b,x,_,R,U,T,D,B,Q,v,E,P,N=r[0],J=r[1],z=r[2],L=r[3],G=r[4],K=r[5],$=r[6],te=r[7],re=e[0],ee=e[1],Z=e[2],me=e[3],le=e[4],Ae=e[5],ve=e[6],qe=e[7],_e=0;i>=128;){for(U=0;U<16;U++)T=8*U+_e,n[U]=t[T+0]<<24|t[T+1]<<16|t[T+2]<<8|t[T+3],s[U]=t[T+4]<<24|t[T+5]<<16|t[T+6]<<8|t[T+7];for(U=0;U<80;U++)if(o=N,a=J,c=z,l=L,d=G,u=K,f=$,h=te,g=re,p=ee,I=Z,y=me,w=le,C=Ae,b=ve,x=qe,D=te,B=qe,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=(G>>>14|le<<18)^(G>>>18|le<<14)^(le>>>9|G<<23),B=(le>>>14|G<<18)^(le>>>18|G<<14)^(G>>>9|le<<23),Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,D=G&K^~G&$,B=le&Ae^~le&ve,Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,D=y6[U*2],B=y6[U*2+1],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,D=n[U%16],B=s[U%16],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,_=E&65535|P<<16,R=Q&65535|v<<16,D=_,B=R,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=(N>>>28|re<<4)^(re>>>2|N<<30)^(re>>>7|N<<25),B=(re>>>28|N<<4)^(N>>>2|re<<30)^(N>>>7|re<<25),Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,D=N&J^N&z^J&z,B=re&ee^re&Z^ee&Z,Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,h=E&65535|P<<16,x=Q&65535|v<<16,D=l,B=y,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=_,B=R,Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,l=E&65535|P<<16,y=Q&65535|v<<16,J=o,z=a,L=c,G=l,K=d,$=u,te=f,N=h,ee=g,Z=p,me=I,le=y,Ae=w,ve=C,qe=b,re=x,U%16===15)for(T=0;T<16;T++)D=n[T],B=s[T],Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=n[(T+9)%16],B=s[(T+9)%16],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,_=n[(T+1)%16],R=s[(T+1)%16],D=(_>>>1|R<<31)^(_>>>8|R<<24)^_>>>7,B=(R>>>1|_<<31)^(R>>>8|_<<24)^(R>>>7|_<<25),Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,_=n[(T+14)%16],R=s[(T+14)%16],D=(_>>>19|R<<13)^(R>>>29|_<<3)^_>>>6,B=(R>>>19|_<<13)^(_>>>29|R<<3)^(R>>>6|_<<26),Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,n[T]=E&65535|P<<16,s[T]=Q&65535|v<<16;D=N,B=re,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[0],B=e[0],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[0]=N=E&65535|P<<16,e[0]=re=Q&65535|v<<16,D=J,B=ee,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[1],B=e[1],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[1]=J=E&65535|P<<16,e[1]=ee=Q&65535|v<<16,D=z,B=Z,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[2],B=e[2],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[2]=z=E&65535|P<<16,e[2]=Z=Q&65535|v<<16,D=L,B=me,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[3],B=e[3],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[3]=L=E&65535|P<<16,e[3]=me=Q&65535|v<<16,D=G,B=le,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[4],B=e[4],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[4]=G=E&65535|P<<16,e[4]=le=Q&65535|v<<16,D=K,B=Ae,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[5],B=e[5],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[5]=K=E&65535|P<<16,e[5]=Ae=Q&65535|v<<16,D=$,B=ve,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[6],B=e[6],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[6]=$=E&65535|P<<16,e[6]=ve=Q&65535|v<<16,D=te,B=qe,Q=B&65535,v=B>>>16,E=D&65535,P=D>>>16,D=r[7],B=e[7],Q+=B&65535,v+=B>>>16,E+=D&65535,P+=D>>>16,v+=Q>>>16,E+=v>>>16,P+=E>>>16,r[7]=te=E&65535|P<<16,e[7]=qe=Q&65535|v<<16,_e+=128,i-=128}return i}function Kf(r,e,t){var i=new Int32Array(8),n=new Int32Array(8),s=new Uint8Array(256),o,a=t;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,n[0]=4089235720,n[1]=2227873595,n[2]=4271175723,n[3]=1595750129,n[4]=2917565137,n[5]=725511199,n[6]=4215389547,n[7]=327033209,I6(i,n,e,t),t%=128,o=0;o<t;o++)s[o]=e[a-t+o];for(s[t]=128,t=256-128*(t<112?1:0),s[t-9]=0,p6(s,t-8,a/536870912|0,a<<3),I6(i,n,s,t),o=0;o<8;o++)p6(r,8*o,i[o],n[o]);return 0}function YB(r,e){var t=Pe(),i=Pe(),n=Pe(),s=Pe(),o=Pe(),a=Pe(),c=Pe(),l=Pe(),d=Pe();as(t,r[1],r[0]),as(d,e[1],e[0]),at(t,t,d),ss(i,r[0],r[1]),ss(d,e[0],e[1]),at(i,i,d),at(n,r[3],e[3]),at(n,n,Yee),at(s,r[2],e[2]),ss(s,s,s),as(o,i,t),as(a,s,n),ss(c,s,n),ss(l,i,t),at(r[0],o,a),at(r[1],l,c),at(r[2],c,a),at(r[3],o,l)}function w6(r,e,t){var i;for(i=0;i<4;i++)pd(r[i],e[i],t)}function _1(r,e){var t=Pe(),i=Pe(),n=Pe();UU(n,e[2]),at(t,e[0],n),at(i,e[1],n),iA(r,i),r[31]^=PU(t)<<7}function qU(r,e,t){var i,n;for(Ia(r[0],VB),Ia(r[1],mI),Ia(r[2],mI),Ia(r[3],VB),n=255;n>=0;--n)i=t[n/8|0]>>(n&7)&1,w6(r,e,i),YB(e,r),YB(r,r),w6(r,e,i)}function F1(r,e){var t=[Pe(),Pe(),Pe(),Pe()];Ia(t[0],h6),Ia(t[1],g6),Ia(t[2],mI),at(t[3],h6,g6),qU(r,t,e)}function OU(r,e,t){var i=new Uint8Array(64),n=[Pe(),Pe(),Pe(),Pe()],s;for(t||Q1(e,32),Kf(i,e,32),i[0]&=248,i[31]&=127,i[31]|=64,F1(n,i),_1(r,n),s=0;s<32;s++)e[s+32]=r[s];return 0}function MU(r,e){var t,i,n,s;for(i=63;i>=32;--i){for(t=0,n=i-32,s=i-12;n<s;++n)e[n]+=t-16*e[i]*cB[n-(i-32)],t=Math.floor((e[n]+128)/256),e[n]-=t*256;e[n]+=t,e[i]=0}for(t=0,n=0;n<32;n++)e[n]+=t-(e[31]>>4)*cB[n],t=e[n]>>8,e[n]&=255;for(n=0;n<32;n++)e[n]-=t*cB[n];for(i=0;i<32;i++)e[i+1]+=e[i]>>8,r[i]=e[i]&255}function WB(r){var e=new Float64Array(64),t;for(t=0;t<64;t++)e[t]=r[t];for(t=0;t<64;t++)r[t]=0;MU(r,e)}function tte(r,e,t,i){var n=new Uint8Array(64),s=new Uint8Array(64),o=new Uint8Array(64),a,c,l=new Float64Array(64),d=[Pe(),Pe(),Pe(),Pe()];Kf(n,i,32),n[0]&=248,n[31]&=127,n[31]|=64;var u=t+64;for(a=0;a<t;a++)r[64+a]=e[a];for(a=0;a<32;a++)r[32+a]=n[32+a];for(Kf(o,r.subarray(32),t+32),WB(o),F1(d,o),_1(r,d),a=32;a<64;a++)r[a]=i[a];for(Kf(s,r,t+64),WB(s),a=0;a<64;a++)l[a]=0;for(a=0;a<32;a++)l[a]=o[a];for(a=0;a<32;a++)for(c=0;c<32;c++)l[a+c]+=s[a]*n[c];return MU(r.subarray(32),l),u}function rte(r,e){var t=Pe(),i=Pe(),n=Pe(),s=Pe(),o=Pe(),a=Pe(),c=Pe();return Ia(r[2],mI),TU(r[1],e),Dn(n,r[1]),at(s,n,Vee),as(n,n,r[2]),ss(s,r[2],s),Dn(o,s),Dn(a,o),at(c,a,o),at(t,c,n),at(t,t,s),Zee(t,t),at(t,t,n),at(t,t,s),at(t,t,s),at(r[0],t,s),Dn(i,r[0]),at(i,i,s),m6(i,n)&&at(r[0],r[0],Wee),Dn(i,r[0]),at(i,i,s),m6(i,n)?-1:(PU(r[0])===e[31]>>7&&as(r[0],VB,r[0]),at(r[3],r[0],r[1]),0)}function ite(r,e,t,i){var n,s=new Uint8Array(32),o=new Uint8Array(64),a=[Pe(),Pe(),Pe(),Pe()],c=[Pe(),Pe(),Pe(),Pe()];if(t<64||rte(c,i))return-1;for(n=0;n<t;n++)r[n]=e[n];for(n=0;n<32;n++)r[n+32]=i[n];if(Kf(o,r,t),WB(o),qU(a,c,o),F1(c,e.subarray(32)),YB(a,c),_1(s,a),t-=64,FU(e,0,s,0)){for(n=0;n<t;n++)r[n]=0;return-1}for(n=0;n<t;n++)r[n]=e[n+64];return t}function Rd(){for(var r=0;r<arguments.length;r++)if(!(arguments[r]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function ote(r){for(var e=0;e<r.length;e++)r[e]=0}function lB(r,e,t,i,n,s){let o=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],a=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],l=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],d=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],u=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],f=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],h=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696],g=0,p,I,y,w,C,b,x,_,R,U,T=e.length,D=r.length===32?3:9;D===3?_=t?[0,32,2]:[30,-2,-2]:_=t?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],t&&(e=ate(e),T=e.length);let B=new Uint8Array(T),Q=0;for(;g<T;){for(b=e[g++]<<24|e[g++]<<16|e[g++]<<8|e[g++],x=e[g++]<<24|e[g++]<<16|e[g++]<<8|e[g++],y=(b>>>4^x)&252645135,x^=y,b^=y<<4,y=(b>>>16^x)&65535,x^=y,b^=y<<16,y=(x>>>2^b)&858993459,b^=y,x^=y<<2,y=(x>>>8^b)&16711935,b^=y,x^=y<<8,y=(b>>>1^x)&1431655765,x^=y,b^=y<<1,b=b<<1|b>>>31,x=x<<1|x>>>31,I=0;I<D;I+=3){for(R=_[I+1],U=_[I+2],p=_[I];p!==R;p+=U)w=x^r[p],C=(x>>>4|x<<28)^r[p+1],y=b,b=x,x=y^(a[w>>>24&63]|l[w>>>16&63]|u[w>>>8&63]|h[w&63]|o[C>>>24&63]|c[C>>>16&63]|d[C>>>8&63]|f[C&63]);y=b,b=x,x=y}b=b>>>1|b<<31,x=x>>>1|x<<31,y=(b>>>1^x)&1431655765,x^=y,b^=y<<1,y=(x>>>8^b)&16711935,b^=y,x^=y<<8,y=(x>>>2^b)&858993459,b^=y,x^=y<<2,y=(b>>>16^x)&65535,x^=y,b^=y<<16,y=(b>>>4^x)&252645135,x^=y,b^=y<<4,B[Q++]=b>>>24,B[Q++]=b>>>16&255,B[Q++]=b>>>8&255,B[Q++]=b&255,B[Q++]=x>>>24,B[Q++]=x>>>16&255,B[Q++]=x>>>8&255,B[Q++]=x&255}return t||(B=cte(B)),B}function dB(r){let e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],t=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],i=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],n=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],d=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],u=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],f=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],h=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],g=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],p=r.length>8?3:1,I=new Array(32*p),y=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],w,C,b=0,x=0,_;for(let R=0;R<p;R++){let U=r[b++]<<24|r[b++]<<16|r[b++]<<8|r[b++],T=r[b++]<<24|r[b++]<<16|r[b++]<<8|r[b++];_=(U>>>4^T)&252645135,T^=_,U^=_<<4,_=(T>>>-16^U)&65535,U^=_,T^=_<<-16,_=(U>>>2^T)&858993459,T^=_,U^=_<<2,_=(T>>>-16^U)&65535,U^=_,T^=_<<-16,_=(U>>>1^T)&1431655765,T^=_,U^=_<<1,_=(T>>>8^U)&16711935,U^=_,T^=_<<8,_=(U>>>1^T)&1431655765,T^=_,U^=_<<1,_=U<<8|T>>>20&240,U=T<<24|T<<8&16711680|T>>>8&65280|T>>>24&240,T=_;for(let D=0;D<y.length;D++)y[D]?(U=U<<2|U>>>26,T=T<<2|T>>>26):(U=U<<1|U>>>27,T=T<<1|T>>>27),U&=-15,T&=-15,w=e[U>>>28]|t[U>>>24&15]|i[U>>>20&15]|n[U>>>16&15]|s[U>>>12&15]|o[U>>>8&15]|a[U>>>4&15],C=c[T>>>28]|l[T>>>24&15]|d[T>>>20&15]|u[T>>>16&15]|f[T>>>12&15]|h[T>>>8&15]|g[T>>>4&15],_=(C>>>16^w)&65535,I[x++]=w^_,I[x++]=C^_<<16}return I}function ate(r,e){let t=8-r.length%8,i;if(t<8)i=0;else{if(t===8)return r;throw new Error("des: invalid padding")}let n=new Uint8Array(r.length+t);for(let s=0;s<r.length;s++)n[s]=r[s];for(let s=0;s<t;s++)n[r.length+s]=i;return n}function cte(r,e){let t=null,i;if(i=0,!t){for(t=1;r[r.length-t]===i;)t++;t--}return r.subarray(0,r.length-t)}function nA(r){this.key=[];for(let e=0;e<3;e++)this.key.push(new Uint8Array(r.subarray(e*8,e*8+8)));this.encrypt=function(e){return lB(dB(this.key[2]),lB(dB(this.key[1]),lB(dB(this.key[0]),e,!0,0,null,null),!1,0,null,null),!0)}}function lte(){this.BlockSize=8,this.KeySize=16,this.setKey=function(o){if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),o.length===this.KeySize)this.keySchedule(o);else throw new Error("CAST-128: keys must be 16 bytes");return!0},this.reset=function(){for(let o=0;o<16;o++)this.masking[o]=0,this.rotate[o]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(o){let a=new Array(o.length);for(let c=0;c<o.length;c+=8){let l=o[c]<<24|o[c+1]<<16|o[c+2]<<8|o[c+3],d=o[c+4]<<24|o[c+5]<<16|o[c+6]<<8|o[c+7],u;u=d,d=l^t(d,this.masking[0],this.rotate[0]),l=u,u=d,d=l^i(d,this.masking[1],this.rotate[1]),l=u,u=d,d=l^n(d,this.masking[2],this.rotate[2]),l=u,u=d,d=l^t(d,this.masking[3],this.rotate[3]),l=u,u=d,d=l^i(d,this.masking[4],this.rotate[4]),l=u,u=d,d=l^n(d,this.masking[5],this.rotate[5]),l=u,u=d,d=l^t(d,this.masking[6],this.rotate[6]),l=u,u=d,d=l^i(d,this.masking[7],this.rotate[7]),l=u,u=d,d=l^n(d,this.masking[8],this.rotate[8]),l=u,u=d,d=l^t(d,this.masking[9],this.rotate[9]),l=u,u=d,d=l^i(d,this.masking[10],this.rotate[10]),l=u,u=d,d=l^n(d,this.masking[11],this.rotate[11]),l=u,u=d,d=l^t(d,this.masking[12],this.rotate[12]),l=u,u=d,d=l^i(d,this.masking[13],this.rotate[13]),l=u,u=d,d=l^n(d,this.masking[14],this.rotate[14]),l=u,u=d,d=l^t(d,this.masking[15],this.rotate[15]),l=u,a[c]=d>>>24&255,a[c+1]=d>>>16&255,a[c+2]=d>>>8&255,a[c+3]=d&255,a[c+4]=l>>>24&255,a[c+5]=l>>>16&255,a[c+6]=l>>>8&255,a[c+7]=l&255}return a},this.decrypt=function(o){let a=new Array(o.length);for(let c=0;c<o.length;c+=8){let l=o[c]<<24|o[c+1]<<16|o[c+2]<<8|o[c+3],d=o[c+4]<<24|o[c+5]<<16|o[c+6]<<8|o[c+7],u;u=d,d=l^t(d,this.masking[15],this.rotate[15]),l=u,u=d,d=l^n(d,this.masking[14],this.rotate[14]),l=u,u=d,d=l^i(d,this.masking[13],this.rotate[13]),l=u,u=d,d=l^t(d,this.masking[12],this.rotate[12]),l=u,u=d,d=l^n(d,this.masking[11],this.rotate[11]),l=u,u=d,d=l^i(d,this.masking[10],this.rotate[10]),l=u,u=d,d=l^t(d,this.masking[9],this.rotate[9]),l=u,u=d,d=l^n(d,this.masking[8],this.rotate[8]),l=u,u=d,d=l^i(d,this.masking[7],this.rotate[7]),l=u,u=d,d=l^t(d,this.masking[6],this.rotate[6]),l=u,u=d,d=l^n(d,this.masking[5],this.rotate[5]),l=u,u=d,d=l^i(d,this.masking[4],this.rotate[4]),l=u,u=d,d=l^t(d,this.masking[3],this.rotate[3]),l=u,u=d,d=l^n(d,this.masking[2],this.rotate[2]),l=u,u=d,d=l^i(d,this.masking[1],this.rotate[1]),l=u,u=d,d=l^t(d,this.masking[0],this.rotate[0]),l=u,a[c]=d>>>24&255,a[c+1]=d>>>16&255,a[c+2]=d>>>8&255,a[c+3]=d&255,a[c+4]=l>>>24&255,a[c+5]=l>>16&255,a[c+6]=l>>8&255,a[c+7]=l&255}return a};let r=new Array(4);r[0]=new Array(4),r[0][0]=[4,0,13,15,12,14,8],r[0][1]=[5,2,16,18,17,19,10],r[0][2]=[6,3,23,22,21,20,9],r[0][3]=[7,1,26,25,27,24,11],r[1]=new Array(4),r[1][0]=[0,6,21,23,20,22,16],r[1][1]=[1,4,0,2,1,3,18],r[1][2]=[2,5,7,6,5,4,17],r[1][3]=[3,7,10,9,11,8,19],r[2]=new Array(4),r[2][0]=[4,0,13,15,12,14,8],r[2][1]=[5,2,16,18,17,19,10],r[2][2]=[6,3,23,22,21,20,9],r[2][3]=[7,1,26,25,27,24,11],r[3]=new Array(4),r[3][0]=[0,6,21,23,20,22,16],r[3][1]=[1,4,0,2,1,3,18],r[3][2]=[2,5,7,6,5,4,17],r[3][3]=[3,7,10,9,11,8,19];let e=new Array(4);e[0]=new Array(4),e[0][0]=[24,25,23,22,18],e[0][1]=[26,27,21,20,22],e[0][2]=[28,29,19,18,25],e[0][3]=[30,31,17,16,28],e[1]=new Array(4),e[1][0]=[3,2,12,13,8],e[1][1]=[1,0,14,15,13],e[1][2]=[7,6,8,9,3],e[1][3]=[5,4,10,11,7],e[2]=new Array(4),e[2][0]=[19,18,28,29,25],e[2][1]=[17,16,30,31,28],e[2][2]=[23,22,24,25,18],e[2][3]=[21,20,26,27,22],e[3]=new Array(4),e[3][0]=[8,9,7,6,3],e[3][1]=[10,11,5,4,7],e[3][2]=[12,13,3,2,8],e[3][3]=[14,15,1,0,13],this.keySchedule=function(o){let a=new Array(8),c=new Array(32),l;for(let h=0;h<4;h++)l=h*4,a[h]=o[l]<<24|o[l+1]<<16|o[l+2]<<8|o[l+3];let d=[6,7,4,5],u=0,f;for(let h=0;h<2;h++)for(let g=0;g<4;g++){for(l=0;l<4;l++){let p=r[g][l];f=a[p[1]],f^=s[4][a[p[2]>>>2]>>>24-8*(p[2]&3)&255],f^=s[5][a[p[3]>>>2]>>>24-8*(p[3]&3)&255],f^=s[6][a[p[4]>>>2]>>>24-8*(p[4]&3)&255],f^=s[7][a[p[5]>>>2]>>>24-8*(p[5]&3)&255],f^=s[d[l]][a[p[6]>>>2]>>>24-8*(p[6]&3)&255],a[p[0]]=f}for(l=0;l<4;l++){let p=e[g][l];f=s[4][a[p[0]>>>2]>>>24-8*(p[0]&3)&255],f^=s[5][a[p[1]>>>2]>>>24-8*(p[1]&3)&255],f^=s[6][a[p[2]>>>2]>>>24-8*(p[2]&3)&255],f^=s[7][a[p[3]>>>2]>>>24-8*(p[3]&3)&255],f^=s[4+l][a[p[4]>>>2]>>>24-8*(p[4]&3)&255],c[u]=f,u++}}for(let h=0;h<16;h++)this.masking[h]=c[h],this.rotate[h]=c[16+h]&31};function t(o,a,c){let l=a+o,d=l<<c|l>>>32-c;return(s[0][d>>>24]^s[1][d>>>16&255])-s[2][d>>>8&255]+s[3][d&255]}function i(o,a,c){let l=a^o,d=l<<c|l>>>32-c;return s[0][d>>>24]-s[1][d>>>16&255]+s[2][d>>>8&255]^s[3][d&255]}function n(o,a,c){let l=a-o,d=l<<c|l>>>32-c;return(s[0][d>>>24]+s[1][d>>>16&255]^s[2][d>>>8&255])-s[3][d&255]}let s=new Array(8);s[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],s[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],s[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],s[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],s[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],s[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],s[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],s[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function sA(r){this.cast5=new lte,this.cast5.setKey(r),this.encrypt=function(e){return this.cast5.encrypt(e)}}function ts(r,e){return(r<<e|r>>>32-e)&tn}function Vs(r,e){return r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24}function fa(r,e,t){r.splice(e,4,t&255,t>>>8&255,t>>>16&255,t>>>24&255)}function ze(r,e){return r>>>e*8&255}function dte(){let r=null,e=null,t=-1,i=[],n=[[],[],[],[]];function s(g){r=g;let p,I,y,w,C,b=[],x=[],_=[],R,U=[],T,D,B,Q=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],v=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],E=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],P=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],N=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],J=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],z=[[],[]],L=[[],[],[],[]];function G(ee){return ee^ee>>2^[0,90,180,238][ee&3]}function K(ee){return ee^ee>>1^ee>>2^[0,238,180,90][ee&3]}function $(ee,Z){let me,le,Ae;for(me=0;me<8;me++)le=Z>>>24,Z=Z<<8&tn|ee>>>24,ee=ee<<8&tn,Ae=le<<1,le&128&&(Ae^=333),Z^=le^Ae<<16,Ae^=le>>>1,le&1&&(Ae^=166),Z^=Ae<<24|Ae<<8;return Z}function te(ee,Z){let me=Z>>4,le=Z&15,Ae=Q[ee][me^le],ve=v[ee][N[le]^J[me]];return P[ee][N[ve]^J[Ae]]<<4|E[ee][Ae^ve]}function re(ee,Z){let me=ze(ee,0),le=ze(ee,1),Ae=ze(ee,2),ve=ze(ee,3);switch(R){case 4:me=z[1][me]^ze(Z[3],0),le=z[0][le]^ze(Z[3],1),Ae=z[0][Ae]^ze(Z[3],2),ve=z[1][ve]^ze(Z[3],3);case 3:me=z[1][me]^ze(Z[2],0),le=z[1][le]^ze(Z[2],1),Ae=z[0][Ae]^ze(Z[2],2),ve=z[0][ve]^ze(Z[2],3);case 2:me=z[0][z[0][me]^ze(Z[1],0)]^ze(Z[0],0),le=z[0][z[1][le]^ze(Z[1],1)]^ze(Z[0],1),Ae=z[1][z[0][Ae]^ze(Z[1],2)]^ze(Z[0],2),ve=z[1][z[1][ve]^ze(Z[1],3)]^ze(Z[0],3)}return L[0][me]^L[1][le]^L[2][Ae]^L[3][ve]}for(r=r.slice(0,32),p=r.length;p!==16&&p!==24&&p!==32;)r[p++]=0;for(p=0;p<r.length;p+=4)_[p>>2]=Vs(r,p);for(p=0;p<256;p++)z[0][p]=te(0,p),z[1][p]=te(1,p);for(p=0;p<256;p++)T=z[1][p],D=G(T),B=K(T),L[0][p]=T+(D<<8)+(B<<16)+(B<<24),L[2][p]=D+(B<<8)+(T<<16)+(B<<24),T=z[0][p],D=G(T),B=K(T),L[1][p]=B+(B<<8)+(D<<16)+(T<<24),L[3][p]=D+(T<<8)+(B<<16)+(D<<24);for(R=_.length/2,p=0;p<R;p++)I=_[p+p],b[p]=I,y=_[p+p+1],x[p]=y,U[R-p-1]=$(I,y);for(p=0;p<40;p+=2)I=16843009*p,y=I+16843009,I=re(I,b),y=ts(re(y,x),8),i[p]=I+y&tn,i[p+1]=ts(I+2*y,9);for(p=0;p<256;p++)switch(I=y=w=C=p,R){case 4:I=z[1][I]^ze(U[3],0),y=z[0][y]^ze(U[3],1),w=z[0][w]^ze(U[3],2),C=z[1][C]^ze(U[3],3);case 3:I=z[1][I]^ze(U[2],0),y=z[1][y]^ze(U[2],1),w=z[0][w]^ze(U[2],2),C=z[0][C]^ze(U[2],3);case 2:n[0][p]=L[0][z[0][z[0][I]^ze(U[1],0)]^ze(U[0],0)],n[1][p]=L[1][z[0][z[1][y]^ze(U[1],1)]^ze(U[0],1)],n[2][p]=L[2][z[1][z[0][w]^ze(U[1],2)]^ze(U[0],2)],n[3][p]=L[3][z[1][z[1][C]^ze(U[1],3)]^ze(U[0],3)]}}function o(g){return n[0][ze(g,0)]^n[1][ze(g,1)]^n[2][ze(g,2)]^n[3][ze(g,3)]}function a(g){return n[0][ze(g,3)]^n[1][ze(g,0)]^n[2][ze(g,1)]^n[3][ze(g,2)]}function c(g,p){let I=o(p[0]),y=a(p[1]);p[2]=ts(p[2]^I+y+i[4*g+8]&tn,31),p[3]=ts(p[3],1)^I+2*y+i[4*g+9]&tn,I=o(p[2]),y=a(p[3]),p[0]=ts(p[0]^I+y+i[4*g+10]&tn,31),p[1]=ts(p[1],1)^I+2*y+i[4*g+11]&tn}function l(g,p){let I=o(p[0]),y=a(p[1]);p[2]=ts(p[2],1)^I+y+i[4*g+10]&tn,p[3]=ts(p[3]^I+2*y+i[4*g+11]&tn,31),I=o(p[2]),y=a(p[3]),p[0]=ts(p[0],1)^I+y+i[4*g+8]&tn,p[1]=ts(p[1]^I+2*y+i[4*g+9]&tn,31)}function d(){i=[],n=[[],[],[],[]]}function u(g,p){e=g,t=p;let I=[Vs(e,t)^i[0],Vs(e,t+4)^i[1],Vs(e,t+8)^i[2],Vs(e,t+12)^i[3]];for(let y=0;y<8;y++)c(y,I);return fa(e,t,I[2]^i[4]),fa(e,t+4,I[3]^i[5]),fa(e,t+8,I[0]^i[6]),fa(e,t+12,I[1]^i[7]),t+=16,e}function f(g,p){e=g,t=p;let I=[Vs(e,t)^i[4],Vs(e,t+4)^i[5],Vs(e,t+8)^i[6],Vs(e,t+12)^i[7]];for(let y=7;y>=0;y--)l(y,I);fa(e,t,I[2]^i[0]),fa(e,t+4,I[3]^i[1]),fa(e,t+8,I[0]^i[2]),fa(e,t+12,I[1]^i[3]),t+=16}function h(){return e}return{name:"twofish",blocksize:128/8,open:s,close:d,encrypt:u,decrypt:f,finalize:h}}function oA(r){this.tf=dte(),this.tf.open(Array.from(r),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Pn(){}function aA(r){this.bf=new Pn,this.bf.init(r),this.encrypt=function(e){return this.bf.encryptBlock(e)}}function dd(r,e,t,i){r[e]+=t[i],r[e+1]+=t[i+1]+(r[e]<t[i])}function C6(r,e){r[0]+=e,r[1]+=r[0]<e}function Aa(r,e,t,i,n,s,o,a){dd(r,t,r,i),dd(r,t,e,o);let c=r[s]^r[t],l=r[s+1]^r[t+1];r[s]=l,r[s+1]=c,dd(r,n,r,s),c=r[i]^r[n],l=r[i+1]^r[n+1],r[i]=c>>>24^l<<8,r[i+1]=l>>>24^c<<8,dd(r,t,r,i),dd(r,t,e,a),c=r[s]^r[t],l=r[s+1]^r[t+1],r[s]=c>>>16^l<<16,r[s+1]=l>>>16^c<<16,dd(r,n,r,s),c=r[i]^r[n],l=r[i+1]^r[n+1],r[i]=l>>>31^c<<1,r[i+1]=c>>>31^l<<1}function E6(r,e){let t=new Uint32Array(32),i=new Uint32Array(r.b.buffer,r.b.byteOffset,32);for(let s=0;s<16;s++)t[s]=r.h[s],t[s+16]=KU[s];t[24]^=r.t0[0],t[25]^=r.t0[1];let n=e?4294967295:0;t[28]^=n,t[29]^=n;for(let s=0;s<12;s++){let o=s<<4;Aa(t,i,0,8,16,24,Yr[o+0],Yr[o+1]),Aa(t,i,2,10,18,26,Yr[o+2],Yr[o+3]),Aa(t,i,4,12,20,28,Yr[o+4],Yr[o+5]),Aa(t,i,6,14,22,30,Yr[o+6],Yr[o+7]),Aa(t,i,0,10,20,30,Yr[o+8],Yr[o+9]),Aa(t,i,2,12,22,24,Yr[o+10],Yr[o+11]),Aa(t,i,4,14,16,26,Yr[o+12],Yr[o+13]),Aa(t,i,6,8,18,28,Yr[o+14],Yr[o+15])}for(let s=0;s<16;s++)r.h[s]^=t[s]^t[s+16]}function Ty(r,e,t,i){if(r>ZB)throw new Error(`outlen must be at most ${ZB} (given: ${r})`);return new XB(r,e,t,i)}function Ii(r,e,t){return r[t+0]=e,r[t+1]=e>>8,r[t+2]=e>>16,r[t+3]=e>>24,r}function Sc(r,e,t){if(e>Number.MAX_SAFE_INTEGER)throw new Error("LE64: large numbers unsupported");let i=e;for(let n=t;n<t+7;n++)r[n]=i,i=(i-r[n])/256;return r}function uB(r,e,t){let i=new Uint8Array(64),n=new Uint8Array(4+e.length);if(Ii(n,r,0),n.set(e,4),r<=64)return Ty(r).update(n).digest(t),t;let s=Math.ceil(r/32)-2;for(let a=0;a<s;a++)Ty(64).update(a===0?n:i).digest(i),t.set(i.subarray(0,32),a*32);let o=new Uint8Array(Ty(r-32*s).update(i).digest());return t.set(o,s*32),t}function B6(r,e,t,i){return r.fn.XOR(e.byteOffset,t.byteOffset,i.byteOffset),e}function Bte(r,e,t,i){return r.fn.G(e.byteOffset,t.byteOffset,i.byteOffset,r.refs.gZ.byteOffset),i}function bte(r,e,t,i){return r.fn.G2(e.byteOffset,t.byteOffset,i.byteOffset,r.refs.gZ.byteOffset),i}function*vte(r,e,t,i,n,s,o,a){r.refs.prngTmp.fill(0);let c=r.refs.prngTmp.subarray(0,48);Sc(c,e,0),Sc(c,t,8),Sc(c,i,16),Sc(c,n,24),Sc(c,s,32),Sc(c,P1,40);for(let l=1;l<=o;l++){Sc(r.refs.prngTmp,l,c.length);let d=bte(r,r.refs.ZERO1024,r.refs.prngTmp,r.refs.prngR);for(let u=l===1?a*8:0;u<d.length;u+=8)yield d.subarray(u,u+8)}return[]}function kte({type:r,version:e,tagLength:t,password:i,salt:n,ad:s,secret:o,parallelism:a,memorySize:c,passes:l}){let d=(u,f,h,g)=>{if(f<h||f>g)throw new Error(`${u} size should be between ${h} and ${g} bytes`)};if(r!==P1||e!==GU)throw new Error("Unsupported type or version");return d("password",i,yte,mte),d("salt",n,pte,gte),d("tag",t,hte,Ate),d("memory",c,8*a,Ite),s&&d("associated data",s,0,wte),o&&d("secret",o,0,xte),{type:r,version:e,tagLength:t,password:i,salt:n,ad:s,secret:o,lanes:a,memorySize:c,passes:l}}function Dte(r,{memory:e,instance:t}){if(!Ete)throw new Error("BigEndian system not supported");let i=kte({type:P1,version:GU,...r}),{G:n,G2:s,xor:o,getLZ:a}=t.exports,c={},l={};l.G=n,l.G2=s,l.XOR=o;let d=4*i.lanes*Math.floor(i.memorySize/(4*i.lanes)),u=d*Ys+10*zU;if(e.buffer.byteLength<u){let D=Math.ceil((u-e.buffer.byteLength)/Ste);e.grow(D)}let f=0;c.gZ=new Uint8Array(e.buffer,f,Ys),f+=c.gZ.length,c.prngR=new Uint8Array(e.buffer,f,Ys),f+=c.prngR.length,c.prngTmp=new Uint8Array(e.buffer,f,Ys),f+=c.prngTmp.length,c.ZERO1024=new Uint8Array(e.buffer,f,1024),f+=c.ZERO1024.length;let h=new Uint32Array(e.buffer,f,2);f+=h.length*Uint32Array.BYTES_PER_ELEMENT;let g={fn:l,refs:c},p=new Uint8Array(e.buffer,f,Ys);f+=p.length;let I=new Uint8Array(e.buffer,f,i.memorySize*Ys),y=new Uint8Array(e.buffer,0,f),w=Qte(i),C=d/i.lanes,b=new Array(i.lanes).fill(null).map(()=>new Array(C)),x=(D,B)=>(b[D][B]=I.subarray(D*C*1024+B*1024,D*C*1024+B*1024+Ys),b[D][B]);for(let D=0;D<i.lanes;D++){let B=new Uint8Array(w.length+8);B.set(w),Ii(B,0,w.length),Ii(B,D,w.length+4),uB(Ys,B,x(D,0)),Ii(B,1,w.length),uB(Ys,B,x(D,1))}let _=4,R=C/_;for(let D=0;D<i.passes;D++)for(let B=0;B<_;B++){let Q=D===0&&B<=1;for(let v=0;v<i.lanes;v++){let E=B===0&&D===0?2:0,P=Q?vte(g,D,v,B,d,i.passes,R,E):null;for(E;E<R;E++){let N=B*R+E,J=N>0?b[v][N-1]:b[v][C-1],z=Q?P.next().value:J;a(h.byteOffset,z.byteOffset,v,i.lanes,D,B,E,_,R);let L=h[0],G=h[1];D===0&&x(v,N),Bte(g,J,b[L][G],D>0?p:b[v][N]),D>0&&B6(g,b[v][N],p,b[v][N])}}}let U=b[0][C-1];for(let D=1;D<i.lanes;D++)B6(g,U,U,b[D][C-1]);let T=uB(i.tagLength,U,new Uint8Array(i.tagLength));return y.fill(0),e.grow(0),T}function Qte(r){let e=Ty(Cte),t=new Uint8Array(4),i=new Uint8Array(24);Ii(i,r.lanes,0),Ii(i,r.tagLength,4),Ii(i,r.memorySize,8),Ii(i,r.passes,12),Ii(i,r.version,16),Ii(i,r.type,20);let n=[i];r.password?(n.push(Ii(new Uint8Array(4),r.password.length,0)),n.push(r.password)):n.push(t),r.salt?(n.push(Ii(new Uint8Array(4),r.salt.length,0)),n.push(r.salt)):n.push(t),r.secret?(n.push(Ii(new Uint8Array(4),r.secret.length,0)),n.push(r.secret)):n.push(t),r.ad?(n.push(Ii(new Uint8Array(4),r.ad.length,0)),n.push(r.ad)):n.push(t),e.update(_te(n));let s=e.digest();return new Uint8Array(s)}function _te(r){if(r.length===1)return r[0];let e=0;for(let n=0;n<r.length;n++){if(!(r[n]instanceof Uint8Array))throw new Error("concatArrays: Data must be in the form of a Uint8Array");e+=r[n].length}let t=new Uint8Array(e),i=0;return r.forEach(n=>{t.set(n,i),i+=n.length}),t}async function Fte(r,e,t){let i={env:{memory:r}};if(vy===void 0)try{let s=await e(i);return vy=!0,s}catch{vy=!1}return(vy?e:t)(i)}async function Pte(r,e){let t=new WebAssembly.Memory({initial:1040,maximum:65536}),i=await Fte(t,r,e);return s=>Dte(s,{instance:i.instance,memory:t})}function JU(r,e,t,i){function n(o,a,c){var l=c?WebAssembly.instantiateStreaming:WebAssembly.instantiate,d=c?WebAssembly.compileStreaming:WebAssembly.compile;return a?l(o,a):d(o)}var s=null;return s=Buffer.from(t,"base64"),n(s,i,!1)}function Tte(r){return JU(0,null,"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",r)}function Ute(r){return JU(0,null,"AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==",r)}function qte(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function Ote(){if(b6)return fB;b6=1;function r(i){this.name="Bzip2Error",this.message=i,this.stack=new Error().stack}r.prototype=new Error;var e={Error:function(i){throw new r(i)}},t={};return t.Bzip2Error=r,t.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],t.array=function(i){var n=0,s=0,o=[0,1,3,7,15,31,63,127,255];return function(a){for(var c=0;a>0;){var l=8-n;a>=l?(c<<=l,c|=o[l]&i[s++],n=0,a-=l):(c<<=a,c|=(i[s]&o[a]<<8-a-n)>>8-a-n,n+=a,a=0)}return c}},t.simple=function(i,n){var s=t.array(i),o=t.header(s),a=!1,c=1e5*o,l=new Int32Array(c);do a=t.decompress(s,n,l,c);while(!a)},t.header=function(i){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),i(24)!=4348520&&e.Error("No magic number found");var n=i(8)-48;return(n<1||n>9)&&e.Error("Not a BZIP archive"),n},t.decompress=function(i,n,s,o,a){for(var c=20,l=258,d=0,u=1,f=50,h=-1,g="",p=0;p<6;p++)g+=i(8).toString(16);if(g=="177245385090"){var I=i(32)|0;return I!==a&&e.Error("Error in bzip2: crc32 do not match"),i(null),null}g!="314159265359"&&e.Error("Invalid bzip data");var y=i(32)|0;i(1)&&e.Error("unsupported obsolete version");var w=i(24);w>o&&e.Error("Initial position larger than buffer size");var C=i(16),b=0;for(p=0;p<16;p++)if(C&1<<15-p){var x=i(16);for(te=0;te<16;te++)x&1<<15-te&&(this.symToByte[b++]=16*p+te)}var _=i(3);(_<2||_>6)&&e.Error("Invalid bzip data");var R=i(15);R==0&&e.Error("Invalid bzip data");for(var p=0;p<_;p++)this.mtfSymbol[p]=p;for(var p=0;p<R;p++){for(var te=0;i(1);te++)te>=_&&e.Error("Invalid bzip data");for(var U=this.mtfSymbol[te],x=te-1;x>=0;x--)this.mtfSymbol[x+1]=this.mtfSymbol[x];this.mtfSymbol[0]=U,this.selectors[p]=U}for(var G=b+2,T=[],D=new Uint8Array(l),B=new Uint16Array(c+1),Q,te=0;te<_;te++){C=i(5);for(var p=0;p<G;p++){for(;(C<1||C>c)&&e.Error("Invalid bzip data"),!!i(1);)i(1)?C--:C++;D[p]=C}var v,E;v=E=D[0];for(var p=1;p<G;p++)D[p]>E?E=D[p]:D[p]<v&&(v=D[p]);Q=T[te]={},Q.permute=new Int32Array(l),Q.limit=new Int32Array(c+1),Q.base=new Int32Array(c+1),Q.minLen=v,Q.maxLen=E;for(var P=Q.base,N=Q.limit,J=0,p=v;p<=E;p++)for(var C=0;C<G;C++)D[C]==p&&(Q.permute[J++]=C);for(p=v;p<=E;p++)B[p]=N[p]=0;for(p=0;p<G;p++)B[D[p]]++;for(J=C=0,p=v;p<E;p++)J+=B[p],N[p]=J-1,J<<=1,P[p+1]=J-(C+=B[p]);N[E]=J+B[E]-1,P[v]=0}for(var p=0;p<256;p++)this.mtfSymbol[p]=p,this.byteCount[p]=0;var z,L,G,K;for(z=L=G=K=0;;){for(G--||(G=f-1,K>=R&&e.Error("Invalid bzip data"),Q=T[this.selectors[K++]],P=Q.base,N=Q.limit),p=Q.minLen,te=i(p);p>Q.maxLen&&e.Error("Invalid bzip data"),!(te<=N[p]);)p++,te=te<<1|i(1);te-=P[p],(te<0||te>=l)&&e.Error("Invalid bzip data");var $=Q.permute[te];if($==d||$==u){z||(z=1,C=0),$==d?C+=z:C+=2*z,z<<=1;continue}if(z)for(z=0,L+C>o&&e.Error("Invalid bzip data"),U=this.symToByte[this.mtfSymbol[0]],this.byteCount[U]+=C;C--;)s[L++]=U;if($>b)break;L>=o&&e.Error("Invalid bzip data"),p=$-1,U=this.mtfSymbol[p];for(var x=p-1;x>=0;x--)this.mtfSymbol[x+1]=this.mtfSymbol[x];this.mtfSymbol[0]=U,U=this.symToByte[U],this.byteCount[U]++,s[L++]=U}(w<0||w>=L)&&e.Error("Invalid bzip data");for(var te=0,p=0;p<256;p++)x=te+this.byteCount[p],this.byteCount[p]=te,te=x;for(var p=0;p<L;p++)U=s[p]&255,s[this.byteCount[U]]|=p<<8,this.byteCount[U]++;var re=0,ee=0,Z=0;L&&(re=s[w],ee=re&255,re>>=8,Z=-1),L=L;for(var me,le,Ae;L;){for(L--,le=ee,re=s[re],ee=re&255,re>>=8,Z++==3?(me=ee,Ae=le,ee=-1):(me=1,Ae=ee);me--;)h=(h<<8^this.crcTable[(h>>24^Ae)&255])&4294967295,n(Ae);ee!=le&&(Z=0)}return h=(h^-1)>>>0,(h|0)!=(y|0)&&e.Error("Error in bzip2: crc32 do not match"),a=(h^(a<<1|a>>>31))&4294967295,a},fB=t,fB}function Mte(){if(v6)return AB;v6=1;var r=[0,1,3,7,15,31,63,127,255];return AB=function(t){var i=0,n=0,s=t(),o=function(a){if(a===null&&i!=0){i=0,n++;return}for(var c=0;a>0;){n>=s.length&&(n=0,s=t());var l=8-i;i===0&&a>0&&o.bytesRead++,a>=l?(c<<=l,c|=r[l]&s[n++],i=0,a-=l):(c<<=a,c|=(s[n]&r[a]<<8-a-i)>>8-a-i,i+=a,a=0)}return c};return o.bytesRead=0,o},AB}function Lte(){if(k6)return hB;k6=1;let r=Ote(),e=Mte();hB=t;function t(i){let n=[],s=0,o=0,a=!1,c=!1,l=null,d=null;function u(p){if(o){let I=1e5*o,y=new Int32Array(I),w=[],C=function(b){w.push(b)};return d=r.decompress(l,C,y,I,d),d===null?(o=0,!1):(p(new Uint8Array(w)),!0)}else return o=r.header(l),d=0,!1}let f=0;function h(p){if(!a)try{return u(function(I){p.enqueue(I),I!==null&&(f+=I.length)})}catch(I){return p.error(I),a=!0,!0}}let g;return new ReadableStream({start(){g=i.getReader()},async pull(p){try{for(;;){for(;!(c||l&&s-l.bytesRead+1>=25e3+1e5*(o||4));){let{value:I,done:y}=await g.read();y?c=!0:(n.push(I),s+=I.length,l===null&&(l=e(function(){return n.shift()})))}for(;c?l&&s>l.bytesRead:l&&s-l.bytesRead+1>=25e3+1e5*(o||4);)if(h(p))return;if(c&&!a&&(!l||s<=l.bytesRead)){d===null?p.close():p.error(new Error("input stream ended prematurely"));return}}}catch(I){p.error(I)}},async cancel(p){await g.abort(p)}},{highWaterMark:0})}return hB}var eo,Ed,D6,Q6,Nf,on,l5,xt,kf,m,pe,d5,F,OE,Uy,Ry,br,FV,Ci,md,OV,cs,HV,h5,Ny,GV,zV,JV,jV,$V,VV,YV,WV,XV,ZV,nn,bd,Rc,wa,ga,wY,ro,ft,yd,Lf,Gf,o1,H6,EY,BY,uA,Xs,l1,ns,SY,DY,rn,_Y,My,IB,m5,bi,d1,Ay,FY,wB,PY,TY,ME,y5,f1,V6,UY,RY,xB,W6,hy,I5,w5,tT,x5,Id,Ly,zY,LE,Ky,ls,Gs,is,sT,vi,Gy,dT,ZY,eW,dW,uW,Dy,Of,zy,Jy,jy,Qy,Jf,kc,QI,$y,Vy,KE,k5,vW,io,_y,D5,QW,_W,co,FW,ud,Q5,bB,vB,li,IT,ha,Sf,UW,GE,F5,P5,RW,NW,fd,zE,LW,HW,KW,T5,wd,my,Df,GW,kB,SB,zW,JW,xd,jW,$W,Gt,Li,I1,FI,PI,DB,xT,xd,CT,QB,ET,VW,U5,_B,zs,ut,ds,Ca,ut,ut,ut,ut,$f,ut,YW,WW,XW,ZW,JE,vn,jE,w1,Hf,eX,Br,tX,Js,Qf,$E,FB,R5,_f,x1,N5,rX,Wy,iX,BT,bT,vT,nX,sX,Fy,Py,oX,aX,cX,lX,Ea,so,Ff,q5,dX,Nr,an,Ct,rs,Kt,Sd,fX,qc,Zy,gX,pX,mX,Dd,yX,O5,PB,Vf,Yf,As,wX,TB,tI,UB,Wf,rI,iI,nI,qB,Xf,bX,G5,z5,oI,aI,cI,kX,QX,_X,FX,Zf,UX,od,qX,$5,UT,LX,js,tA,GX,B1,OB,ZE,IA,xi,ui,Qc,qT,OT,MT,$X,LT,VX,HT,ZX,Lc,sa,oa,$r,Vr,Iy,Z5,e6,t6,ad,cd,wy,xy,sZ,oZ,aZ,cZ,lZ,dZ,uZ,fZ,AZ,hZ,gZ,aa,uI,MB,XT,pZ,mZ,ca,la,fI,LB,S1,yZ,ZT,eU,AI,tU,Fd,_c,tB,iU,gI,s6,KB,Zs,to,Cd,oU,Cy,EZ,lU,dU,uU,_Z,FZ,PZ,TZ,UZ,RZ,NZ,qZ,OZ,MZ,Pf,LZ,HZ,KZ,GZ,fU,AU,hU,gU,zZ,JZ,o6,a6,pI,pU,$Z,VZ,YZ,WZ,da,Er,nB,XZ,Tf,ld,Ey,zc,oee,aee,cee,GB,c6,lee,dee,l6,uee,fee,hee,d6,pee,mee,yee,D1,Iee,u6,zB,xee,wU,Cee,xU,Eee,Bee,bee,CU,EU,BU,vee,kee,See,bU,Dee,Qee,_ee,Fee,Pee,Uf,ua,JB,Tee,Uee,vU,Ree,kU,SU,DU,QU,Nee,qee,Oee,Mee,By,jB,Lee,Hee,Kee,Gee,A6,by,sB,$B,zee,Jee,jee,oB,ki,Pe,Q1,_U,VB,mI,$ee,Vee,Yee,h6,g6,Wee,y6,cB,x6,nte,LU,HU,Dc,OI,MI,ste,Jc,tn,ute,fte,KU,Yr,XB,ZB,Rf,P1,GU,Ate,hte,gte,pte,mte,yte,Ite,wte,xte,Ys,Cte,Ete,zU,Ste,vy,Rte,Nte,fB,b6,AB,v6,hB,k6,jU,Hte,Kte,T1=j(()=>{eo=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};Ed=Symbol("doneWritingPromise"),D6=Symbol("doneWritingResolve"),Q6=Symbol("doneWritingReject"),Nf=Symbol("readingIndex"),on=class r extends Array{constructor(){super(),Object.setPrototypeOf(this,r.prototype),this[Ed]=new Promise((e,t)=>{this[D6]=e,this[Q6]=t}),this[Ed].catch(()=>{})}};on.prototype.getReader=function(){return this[Nf]===void 0&&(this[Nf]=0),{read:async()=>(await this[Ed],this[Nf]===this.length?{value:void 0,done:!0}:{value:this[this[Nf]++],done:!1})}};on.prototype.readToEnd=async function(r){await this[Ed];let e=r(this.slice(this[Nf]));return this.length=0,e};on.prototype.clone=function(){let r=new on;return r[Ed]=this[Ed].then(()=>{r.push(...this)}),r};cA.prototype.write=async function(r){this.stream.push(r)};cA.prototype.close=async function(){this.stream[D6]()};cA.prototype.abort=async function(r){return this.stream[Q6](r),r};cA.prototype.releaseLock=function(){};typeof eo.process=="object"&&eo.process.versions;l5=new WeakSet,xt=Symbol("externalBuffer");gs.prototype.read=async function(){return this[xt]&&this[xt].length?{done:!1,value:this[xt].shift()}:this._read()};gs.prototype.releaseLock=function(){this[xt]&&(this.stream[xt]=this[xt]),this._releaseLock()};gs.prototype.cancel=function(r){return this._cancel(r)};gs.prototype.readLine=async function(){let r=[],e;for(;!e;){let{done:t,value:i}=await this.read();if(i+="",t)return r.length?di(r):void 0;let n=i.indexOf(` -`)+1;n&&(e=di(r.concat(i.substr(0,n))),r=[]),n!==i.length&&r.push(i.substr(n))}return this.unshift(...r),e};gs.prototype.readByte=async function(){let{done:r,value:e}=await this.read();if(r)return;let t=e[0];return this.unshift(Ur(e,1)),t};gs.prototype.readBytes=async function(r){let e=[],t=0;for(;;){let{done:i,value:n}=await this.read();if(i)return e.length?di(e):void 0;if(e.push(n),t+=n.length,t>=r){let s=di(e);return this.unshift(Ur(s,r)),Ur(s,0,r)}}};gs.prototype.peekBytes=async function(r){let e=await this.readBytes(r);return this.unshift(e),e};gs.prototype.unshift=function(...r){if(this[xt]||(this[xt]=[]),r.length===1&&yI(r[0])&&this[xt].length&&r[0].length&&this[xt][0].byteOffset>=r[0].length){this[xt][0]=new Uint8Array(this[xt][0].buffer,this[xt][0].byteOffset-r[0].length,this[xt][0].byteLength+r[0].length);return}this[xt].unshift(...r.filter(e=>e&&e.length))};gs.prototype.readToEnd=async function(r=di){let e=[];for(;;){let{done:t,value:i}=await this.read();if(t)break;e.push(i)}return r(e)};kf=Symbol("byValue"),m={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(r,e){if(typeof e=="number"&&(e=this.read(r,e)),r[e]!==void 0)return r[e];throw new Error("Invalid enum value.")},read:function(r,e){if(r[kf]||(r[kf]=[],Object.entries(r).forEach(([t,i])=>{r[kf][i]=t})),r[kf][e]!==void 0)return r[kf][e];throw new Error("Invalid enum value.")}},pe={preferredHashAlgorithm:m.hash.sha512,preferredSymmetricAlgorithm:m.symmetric.aes256,preferredCompressionAlgorithm:m.compression.uncompressed,aeadProtect:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:m.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:m.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},maxArgon2MemoryExponent:30,allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([m.symmetric.aes128,m.symmetric.aes192,m.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.3.1",commentString:"https://openpgpjs.org",maxUserIDLength:1024*5,maxDecompressedMessageSize:1/0,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([m.hash.md5,m.hash.ripemd]),rejectMessageHashAlgorithms:new Set([m.hash.md5,m.hash.ripemd,m.hash.sha1]),rejectPublicKeyAlgorithms:new Set([m.publicKey.elgamal,m.publicKey.dsa]),rejectCurves:new Set([m.curve.secp256k1])},d5=(()=>{try{return process.env.NODE_ENV==="development"}catch{}return!1})(),F={isString:function(r){return typeof r=="string"||r instanceof String},nodeRequire:S6(import.meta.url),isArray:function(r){return r instanceof Array},isUint8Array:yI,isStream:or,getNobleCurve:async(r,e)=>{if(!pe.useEllipticFallback)throw new Error("This curve is only supported in the full build of OpenPGP.js");let{nobleCurves:t}=await Promise.resolve().then(function(){return Pee});switch(r){case m.publicKey.ecdh:case m.publicKey.ecdsa:{let i=t.get(e);if(!i)throw new Error("Unsupported curve");return i}case m.publicKey.x448:return t.get("x448");case m.publicKey.ed448:return t.get("ed448");default:throw new Error("Unsupported curve")}},readNumber:function(r){let e=0;for(let t=0;t<r.length;t++)e+=256**t*r[r.length-1-t];return e},writeNumber:function(r,e){let t=new Uint8Array(e);for(let i=0;i<e;i++)t[i]=r>>8*(e-i-1)&255;return t},readDate:function(r){let e=F.readNumber(r);return new Date(e*1e3)},writeDate:function(r){let e=Math.floor(r.getTime()/1e3);return F.writeNumber(e,4)},normalizeDate:function(r=Date.now()){return r===null||r===1/0?r:new Date(Math.floor(+r/1e3)*1e3)},readMPI:function(r){let t=(r[0]<<8|r[1])+7>>>3;return F.readExactSubarray(r,2,2+t)},readExactSubarray:function(r,e,t){if(r.length<t)throw new Error("Input array too short");return r.subarray(e,t)},leftPad(r,e){if(r.length>e)throw new Error("Input array too long");let t=new Uint8Array(e),i=e-r.length;return t.set(r,i),t},uint8ArrayToMPI:function(r){let e=F.uint8ArrayBitLength(r);if(e===0)throw new Error("Zero MPI");let t=r.subarray(r.length-Math.ceil(e/8)),i=new Uint8Array([(e&65280)>>8,e&255]);return F.concatUint8Array([i,t])},uint8ArrayBitLength:function(r){let e;for(e=0;e<r.length&&r[e]===0;e++);if(e===r.length)return 0;let t=r.subarray(e);return(t.length-1)*8+F.nbits(t[0])},hexToUint8Array:function(r){let e=new Uint8Array(r.length>>1);for(let t=0;t<r.length>>1;t++)e[t]=parseInt(r.substr(t<<1,2),16);return e},uint8ArrayToHex:function(r){let e="0123456789abcdef",t="";return r.forEach(i=>{t+=e[i>>4]+e[i&15]}),t},stringToUint8Array:function(r){return sr(r,e=>{if(!F.isString(e))throw new Error("stringToUint8Array: Data must be in the form of a string");let t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t})},uint8ArrayToString:function(r){r=new Uint8Array(r);let e=[],t=16384,i=r.length;for(let n=0;n<i;n+=t)e.push(String.fromCharCode.apply(String,r.subarray(n,n+t<i?n+t:i)));return e.join("")},encodeUTF8:function(r){let e=new TextEncoder("utf-8");function t(i,n=!1){return e.encode(i,{stream:!n})}return sr(r,t,()=>t("",!0))},decodeUTF8:function(r){let e=new TextDecoder("utf-8");function t(i,n=!1){return e.decode(i,{stream:!n})}return sr(r,t,()=>t(new Uint8Array,!0))},concat:di,concatUint8Array:_6,equalsUint8Array:function(r,e){if(!F.isUint8Array(r)||!F.isUint8Array(e))throw new Error("Data must be in the form of a Uint8Array");if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0},findLastIndex:function(r,e){for(let t=r.length;t>=0;t--)if(e(r[t],t,r))return t;return-1},writeChecksum:function(r){let e=0;for(let t=0;t<r.length;t++)e=e+r[t]&65535;return F.writeNumber(e,2)},printDebug:function(r){d5&&console.log("[OpenPGP.js debug]",r)},printDebugError:function(r){d5&&console.error("[OpenPGP.js debug]",r)},nbits:function(r){let e=1,t=r>>>16;return t!==0&&(r=t,e+=16),t=r>>8,t!==0&&(r=t,e+=8),t=r>>4,t!==0&&(r=t,e+=4),t=r>>2,t!==0&&(r=t,e+=2),t=r>>1,t!==0&&(r=t,e+=1),e},double:function(r){let e=new Uint8Array(r.length),t=r.length-1;for(let i=0;i<t;i++)e[i]=r[i]<<1^r[i+1]>>7;return e[t]=r[t]<<1^(r[0]>>7)*135,e},shiftRight:function(r,e){if(e)for(let t=r.length-1;t>=0;t--)r[t]>>=e,t>0&&(r[t]|=r[t-1]<<8-e);return r},getWebCrypto:function(){let e=typeof eo<"u"&&eo.crypto&&eo.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!e)throw new Error("The WebCrypto API is not available");return e},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){return typeof navigator<"u"?navigator.hardwareConcurrency||1:this.nodeRequire("os").cpus().length},isEmailAddress:function(r){return F.isString(r)?/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(r):!1},canonicalizeEOL:function(r){let i=!1;return sr(r,n=>{i&&(n=F.concatUint8Array([new Uint8Array([13]),n])),n[n.length-1]===13?(i=!0,n=n.subarray(0,-1)):i=!1;let s,o=[];for(let l=0;s=n.indexOf(10,l)+1,s;l=s)n[s-2]!==13&&o.push(s);if(!o.length)return n;let a=new Uint8Array(n.length+o.length),c=0;for(let l=0;l<o.length;l++){let d=n.subarray(o[l-1]||0,o[l]);a.set(d,c),c+=d.length,a[c-1]=13,a[c]=10,c++}return a.set(n.subarray(o[o.length-1]||0),c),a},()=>i?new Uint8Array([13]):void 0)},nativeEOL:function(r){let i=!1;return sr(r,n=>{i&&n[0]!==10?n=F.concatUint8Array([new Uint8Array([13]),n]):n=new Uint8Array(n),n[n.length-1]===13?(i=!0,n=n.subarray(0,-1)):i=!1;let s,o=0;for(let a=0;a!==n.length;a=s){s=n.indexOf(13,a)+1,s||(s=n.length);let c=s-(n[s]===10?1:0);a&&n.copyWithin(o,a,c),o+=c-a}return n.subarray(0,o)},()=>i?new Uint8Array([13]):void 0)},removeTrailingSpaces:function(r){return r.split(` +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push(`-----END PGP SIGNATURE----- +`);break;case y.armor.message:d.push(`-----BEGIN PGP MESSAGE----- +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push(`-----END PGP MESSAGE----- +`);break;case y.armor.publicKey:d.push(`-----BEGIN PGP PUBLIC KEY BLOCK----- +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push(`-----END PGP PUBLIC KEY BLOCK----- +`);break;case y.armor.privateKey:d.push(`-----BEGIN PGP PRIVATE KEY BLOCK----- +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push(`-----END PGP PRIVATE KEY BLOCK----- +`);break;case y.armor.signature:d.push(`-----BEGIN PGP SIGNATURE----- +`),d.push(Rc(n,o)),d.push(io(e)),l&&d.push("=",Nc(l)),d.push(`-----END PGP SIGNATURE----- +`);break}return F.concat(d)}function Te(r){let e="0123456789ABCDEF",t="";return r.forEach(i=>{t+=e[i>>4]+e[i&15]}),BigInt("0x0"+t)}function tt(r,e){let t=r%e;return t<Bi?t+e:t}function NW(r,e,t){let i=-r;return e&i|t&~i}function Sr(r,e,t){if(t===Bi)throw Error("Modulo cannot be zero");if(t===kd)return BigInt(0);if(e<Bi)throw Error("Unsopported negative exponent");let i=e,n=r;n%=t;let s=BigInt(1);for(;i>Bi;){let o=i&kd;i>>=kd;let a=s*n%t;s=NW(o,a,s),n=n*n%t}return s}function T6(r){return r>=Bi?r:-r}function qW(r,e){let t=BigInt(0),i=BigInt(1),n=BigInt(1),s=BigInt(0),o=T6(r),a=T6(e),c=r<Bi,l=e<Bi;for(;a!==Bi;){let d=o/a,u=t;t=n-d*t,n=u,u=i,i=s-d*i,s=u,u=a,a=o%a,o=u}return{x:c?-n:n,y:l?-s:s,gcd:o}}function Td(r,e){let{gcd:t,x:i}=qW(r,e);if(t!==kd)throw new Error("Inverse does not exist");return tt(i+e,e)}function OW(r,e){let t=r,i=e;for(;i!==Bi;){let n=i;i=t%i,t=n}return t}function JB(r){let e=Number(r);if(e>Number.MAX_SAFE_INTEGER)throw new Error("Number can only safely store up to 53 bits");return e}function MW(r,e){return(r>>BigInt(e)&kd)===Bi?0:1}function Gd(r){let e=r<Bi?BigInt(-1):Bi,t=1,i=r;for(;(i>>=kd)!==e;)t++;return t}function bi(r){let e=r<Bi?BigInt(-1):Bi,t=BigInt(8),i=1,n=r;for(;(n>>=t)!==e;)i++;return i}function Wt(r,e="be",t){let i=r.toString(16);i.length%2===1&&(i="0"+i);let n=i.length/2,s=new Uint8Array(t||n),o=t?t-n:0,a=0;for(;a<n;)s[a+o]=parseInt(i.slice(2*a,2*a+2),16),a++;return e!=="be"&&s.reverse(),s}function Nr(r){let e=typeof crypto<"u"?crypto:LW?.webcrypto;if(e?.getRandomValues){let t=new Uint8Array(r);return e.getRandomValues(t)}else throw new Error("No secure random number generator available.")}function Ra(r,e){if(e<r)throw new Error("Illegal parameter value: max <= min");let t=e-r,i=bi(t),n=Te(Nr(i+8));return tt(n,t)+r}function U6(r,e,t){let i=BigInt(30),n=ds<<BigInt(r-1),s=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2],o=Ra(n,n<<ds),a=JB(tt(o,i));do o+=BigInt(s[a]),a=(a+s[a])%s.length,Gd(o)>r&&(o=tt(o,n<<ds),o+=n,a=JB(tt(o,i)));while(!sU(o,e,t));return o}function sU(r,e,t){return!(e&&OW(r-ds,e)!==ds||!KW(r)||!HW(r)||!zW(r,t))}function HW(r,e=BigInt(2)){return Sr(e,r-ds,r)===ds}function KW(r){let e=BigInt(0);return GW.every(t=>tt(r,t)!==e)}function zW(r,e,t){let i=Gd(r);e||(e=Math.max(1,i/48|0));let n=r-ds,s=0;for(;!MW(n,s);)s++;let o=r>>BigInt(s);for(;e>0;e--){let a=Ra(BigInt(2),n),c=Sr(a,o,r);if(c===ds||c===n)continue;let l;for(l=1;l<s;l++){if(c=tt(c*c,r),c===ds)return!1;if(c===n)break}if(l===s)return!1}return!0}function Ao(r){if(!(!nI||!JW.includes(r)))return async function(e){let t=nI.createHash(r);return sr(e,i=>{t.update(i)},()=>new Uint8Array(t.digest()))}}function ho(r,e){let t=async()=>{let{nobleHashes:i}=await Promise.resolve().then(function(){return Vre}),n=i.get(r);if(!n)throw new Error("Unsupported hash");return n};return async function(i){if(St(i)&&(i=await Xt(i)),F.isStream(i)){let s=(await t()).create();return sr(i,o=>{s.update(o)},()=>s.digest())}else return R6&&e?new Uint8Array(await R6.digest(e,i)):(await t())(i)}}function hs(r,e){switch(r){case y.hash.md5:return jW(e);case y.hash.sha1:return $W(e);case y.hash.ripemd:return ZW(e);case y.hash.sha256:return YW(e);case y.hash.sha384:return WW(e);case y.hash.sha512:return XW(e);case y.hash.sha224:return VW(e);case y.hash.sha3_256:return eX(e);case y.hash.sha3_512:return tX(e);default:throw new Error("Unsupported hash function")}}function pr(r){switch(r){case y.hash.md5:return 16;case y.hash.sha1:case y.hash.ripemd:return 20;case y.hash.sha256:return 32;case y.hash.sha384:return 48;case y.hash.sha512:return 64;case y.hash.sha224:return 28;case y.hash.sha3_256:return 32;case y.hash.sha3_512:return 64;default:throw new Error("Invalid hash algorithm.")}}function rX(r){let e=new Uint8Array(r),t=0;for(;t<r;){let i=Nr(r-t);for(let n=0;n<i.length;n++)i[n]!==0&&(e[t++]=i[n])}return e}function oU(r,e){let t=r.length;if(t>e-11)throw new Error("Message too long");let i=rX(e-t-3),n=new Uint8Array(e);return n[1]=2,n.set(i,2),n.set(r,e-t),n}function aU(r,e){let t=2,i=1;for(let a=t;a<r.length;a++)i&=r[a]!==0,t+=i;let n=t-2,s=r.subarray(t+1),o=r[0]===0&r[1]===2&n>=8&!i;if(e)return F.selectUint8Array(o,s,e);if(o)return s;throw new Error("Decryption error")}function cU(r,e,t){let i;if(e.length!==pr(r))throw new Error("Invalid hash length");let n=new Uint8Array(sn[r].length);for(i=0;i<sn[r].length;i++)n[i]=sn[r][i];let s=n.length+e.length;if(t<s+11)throw new Error("Intended encoded message length too short");let o=new Uint8Array(t-s-3).fill(255),a=new Uint8Array(t);return a[1]=1,a.set(o,2),a.set(n,t-s),a.set(e,t-e.length),a}async function iX(r,e,t,i,n,s,o,a,c){if(pr(r)>=t.length)throw new Error("Digest size cannot exceed key modulus size");if(e&&!F.isStream(e)){if(F.getWebCrypto())try{return await dX(y.read(y.webHash,r),e,t,i,n,s,o,a)}catch(l){F.printDebugError(l)}else if(F.getNodeCrypto())return uX(r,e,t,i,n,s,o,a)}return lX(r,t,n,c)}async function nX(r,e,t,i,n,s){if(e&&!F.isStream(e)){if(F.getWebCrypto())try{return await AX(y.read(y.webHash,r),e,t,i,n)}catch(o){F.printDebugError(o)}else if(F.getNodeCrypto())return hX(r,e,t,i,n)}return fX(r,t,i,n,s)}async function sX(r,e,t){return F.getNodeCrypto()?gX(r,e,t):pX(r,e,t)}async function oX(r,e,t,i,n,s,o,a){if(F.getNodeCrypto()&&!a)try{return mX(r,e,t,i,n,s,o)}catch(c){F.printDebugError(c)}return yX(r,e,t,i,n,s,o,a)}async function aX(r,e){if(e=BigInt(e),F.getWebCrypto()){let o={name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Wt(e),hash:{name:"SHA-1"}},a=await Ud.generateKey(o,!0,["sign","verify"]),c=await Ud.exportKey("jwk",a.privateKey);return N6(c,e)}else if(F.getNodeCrypto()){let o={modulusLength:r,publicExponent:JB(e),publicKeyEncoding:{type:"pkcs1",format:"jwk"},privateKeyEncoding:{type:"pkcs1",format:"jwk"}},a=await new Promise((c,l)=>{jc.generateKeyPair("rsa",o,(d,u,f)=>{d?l(d):c(f)})});return N6(a,e)}let t,i,n;do i=U6(r-(r>>1),e,40),t=U6(r>>1,e,40),n=t*i;while(Gd(n)!==r);let s=(t-_a)*(i-_a);return i<t&&([t,i]=[i,t]),{n:Wt(n),e:Wt(e),d:Wt(Td(e,s)),p:Wt(t),q:Wt(i),u:Wt(Td(t,i))}}async function cX(r,e,t,i,n,s){if(r=Te(r),i=Te(i),n=Te(n),i*n!==r)return!1;let o=BigInt(2);if(s=Te(s),tt(i*s,n)!==BigInt(1))return!1;e=Te(e),t=Te(t);let a=BigInt(Math.floor(Gd(r)/3)),c=Ra(o,o<<a),l=c*t*e;return tt(l,i-_a)===c&&tt(l,n-_a)===c}function lX(r,e,t,i){e=Te(e);let n=Te(cU(r,i,bi(e)));return t=Te(t),Wt(Sr(n,t,e),"be",bi(e))}async function dX(r,e,t,i,n,s,o,a){let c=D1(t,i,n,s,o,a),l={name:"RSASSA-PKCS1-v1_5",hash:{name:r}},d=await Ud.importKey("jwk",c,l,!1,["sign"]);return new Uint8Array(await Ud.sign("RSASSA-PKCS1-v1_5",d,e))}function uX(r,e,t,i,n,s,o,a){let c=jc.createSign(y.read(y.hash,r));c.write(e),c.end();let l=D1(t,i,n,s,o,a);return new Uint8Array(c.sign({key:l,format:"jwk",type:"pkcs1"}))}function fX(r,e,t,i,n){if(t=Te(t),e=Te(e),i=Te(i),e>=t)throw new Error("Signature size cannot exceed modulus size");let s=Wt(Sr(e,i,t),"be",bi(t)),o=cU(r,n,bi(t));return F.equalsUint8Array(s,o)}async function AX(r,e,t,i,n){let s=Q1(i,n),o=await Ud.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:r}},!1,["verify"]);return Ud.verify("RSASSA-PKCS1-v1_5",o,t,e)}function hX(r,e,t,i,n){let o={key:Q1(i,n),format:"jwk",type:"pkcs1"},a=jc.createVerify(y.read(y.hash,r));a.write(e),a.end();try{return a.verify(o,t)}catch{return!1}}function gX(r,e,t){let n={key:Q1(e,t),format:"jwk",type:"pkcs1",padding:jc.constants.RSA_PKCS1_PADDING};return new Uint8Array(jc.publicEncrypt(n,r))}function pX(r,e,t){if(e=Te(e),r=Te(oU(r,bi(e))),t=Te(t),r>=e)throw new Error("Message size cannot exceed modulus size");return Wt(Sr(r,t,e),"be",bi(e))}function mX(r,e,t,i,n,s,o){let c={key:D1(e,t,i,n,s,o),format:"jwk",type:"pkcs1",padding:jc.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(jc.privateDecrypt(c,r))}catch{throw new Error("Decryption error")}}function yX(r,e,t,i,n,s,o,a){if(r=Te(r),e=Te(e),t=Te(t),i=Te(i),n=Te(n),s=Te(s),o=Te(o),r>=e)throw new Error("Data too large.");let c=tt(i,s-_a),l=tt(i,n-_a),d=Ra(BigInt(2),e),u=Sr(Td(d,e),t,e);r=tt(r*u,e);let f=Sr(r,l,n),h=Sr(r,c,s),p=tt(o*(h-f),s)*n+f;return p=tt(p*d,e),aU(Wt(p,"be",bi(e)),a)}function D1(r,e,t,i,n,s){let o=Te(i),a=Te(n),c=Te(t),l=tt(c,a-_a),d=tt(c,o-_a);return d=Wt(d),l=Wt(l),{kty:"RSA",n:Ur(r),e:Ur(e),d:Ur(t),p:Ur(n),q:Ur(i),dp:Ur(l),dq:Ur(d),qi:Ur(s),ext:!0}}function Q1(r,e){return{kty:"RSA",n:Ur(r),e:Ur(e),ext:!0}}function N6(r,e){return{n:Ci(r.n),e:Wt(e),d:Ci(r.d),p:Ci(r.q),q:Ci(r.p),u:Ci(r.qi)}}async function IX(r,e,t,i){e=Te(e),t=Te(t),i=Te(i);let n=oU(r,bi(e)),s=Te(n),o=Ra(va,e-va);return{c1:Wt(Sr(t,o,e)),c2:Wt(tt(Sr(i,o,e)*s,e))}}async function wX(r,e,t,i,n){r=Te(r),e=Te(e),t=Te(t),i=Te(i);let s=tt(Td(Sr(r,i,t),t)*e,t);return aU(Wt(s,"be",bi(t)),n)}async function xX(r,e,t,i){let n=Te(r),s=Te(e),o=Te(t);if(s<=va||s>=n)return!1;let a=BigInt(Gd(n)),c=BigInt(1023);if(a<c||Sr(s,n-va,n)!==va)return!1;let l=s,d=BigInt(1),u=BigInt(2),f=u<<BigInt(17);for(;d<f;){if(l=tt(l*s,n),l===va)return!1;d++}let h=Te(i),g=Ra(u<<a-va,u<<a),p=(n-va)*g+h;return o===Sr(s,p,n)}function lU(r){let e=0,t,i=r[0];return i<192?([e]=r,t=1):i<255?(e=(r[0]-192<<8)+r[1]+192,t=2):i===255&&(e=F.readNumber(r.subarray(1,5)),t=5),{len:e,offset:t}}function HI(r){return r<192?new Uint8Array([r]):r>191&&r<8384?new Uint8Array([(r-192>>8)+192,r-192&255]):F.concatUint8Array([new Uint8Array([255]),F.writeNumber(r,4)])}function EX(r){if(r<0||r>30)throw new Error("Partial Length power must be between 1 and 30");return new Uint8Array([224+r])}function sI(r){return new Uint8Array([192|r])}function q6(r,e){return F.concatUint8Array([sI(r),HI(e)])}function $y(r){return[y.packet.literalData,y.packet.compressedData,y.packet.symmetricallyEncryptedData,y.packet.symEncryptedIntegrityProtectedData,y.packet.aeadEncryptedData].includes(r)}async function BX(r,e,t){let i,n;try{let s=await r.peekBytes(2);if(!s||s.length<2||(s[0]&128)===0)throw new Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format.");let o=await r.readByte(),a=-1,c=-1,l;c=0,(o&64)!==0&&(c=1);let d;c?a=o&63:(a=(o&63)>>2,d=o&3);let u=$y(a),f=null;if(e&&u){if(e==="array"){let g=new an;i=Gi(g),f=g}else{let g=new TransformStream;i=Gi(g.writable),f=g.readable}n=t({tag:a,packet:f})}else f=[];let h;do{if(c){let g=await r.readByte();if(h=!1,g<192)l=g;else if(g>=192&&g<224)l=(g-192<<8)+await r.readByte()+192;else if(g>223&&g<255){if(l=1<<(g&31),h=!0,!u)throw new TypeError("This packet type does not support partial lengths.")}else l=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte()}else switch(d){case 0:l=await r.readByte();break;case 1:l=await r.readByte()<<8|await r.readByte();break;case 2:l=await r.readByte()<<24|await r.readByte()<<16|await r.readByte()<<8|await r.readByte();break;default:l=1/0;break}if(l>0){let g=0;for(;;){i&&await i.ready;let{done:p,value:I}=await r.read();if(p){if(l===1/0)break;throw new Error("Unexpected end of packet")}let m=l===1/0?I:I.subarray(0,l-g);if(i?await i.write(m):f.push(m),g+=I.length,g>=l){r.unshift(I.subarray(l-g+I.length));break}}}}while(h);i?(await i.ready,await i.close()):(f=F.concatUint8Array(f),await t({tag:a,packet:f}))}catch(s){if(i)return await i.abort(s),!0;throw s}finally{i&&await n}}async function _1(r){switch(r){case y.publicKey.ed25519:try{let e=F.getWebCrypto(),t=await e.generateKey("Ed25519",!0,["sign","verify"]).catch(s=>{if(s.name==="OperationError"){let o=new Error("Unexpected key generation issue");throw o.name="NotSupportedError",o}throw s}),i=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);return{A:new Uint8Array(Ci(n.x)),seed:Ci(i.d,!0)}}catch(e){if(e.name!=="NotSupportedError")throw e;let{default:t}=await Promise.resolve().then(function(){return il}),i=Nr(KI(r)),{publicKey:n}=t.sign.keyPair.fromSeed(i);return{A:n,seed:i}}case y.publicKey.ed448:{let e=await F.getNobleCurve(y.publicKey.ed448),{secretKey:t,publicKey:i}=e.keygen();return{A:i,seed:t}}default:throw new Error("Unsupported EdDSA algorithm")}}async function F1(r,e,t,i,n,s){if(pr(e)<pr(GI(r)))throw new Error("Hash algorithm too weak for EdDSA.");switch(r){case y.publicKey.ed25519:try{let o=F.getWebCrypto(),a=dU(r,i,n),c=await o.importKey("jwk",a,"Ed25519",!1,["sign"]);return{RS:new Uint8Array(await o.sign("Ed25519",c,s))}}catch(o){if(o.name!=="NotSupportedError")throw o;let{default:a}=await Promise.resolve().then(function(){return il}),c=F.concatUint8Array([n,i]);return{RS:a.sign.detached(s,c)}}case y.publicKey.ed448:return{RS:(await F.getNobleCurve(y.publicKey.ed448)).sign(s,n)};default:throw new Error("Unsupported EdDSA algorithm")}}async function P1(r,e,{RS:t},i,n,s){if(pr(e)<pr(GI(r)))throw new Error("Hash algorithm too weak for EdDSA.");switch(r){case y.publicKey.ed25519:try{let o=F.getWebCrypto(),a=U1(r,n),c=await o.importKey("jwk",a,"Ed25519",!1,["verify"]);return await o.verify("Ed25519",c,t,s)}catch(o){if(o.name!=="NotSupportedError")throw o;let{default:a}=await Promise.resolve().then(function(){return il});return a.sign.detached.verify(s,t,n)}case y.publicKey.ed448:return(await F.getNobleCurve(y.publicKey.ed448)).verify(t,s,n);default:throw new Error("Unsupported EdDSA algorithm")}}async function T1(r,e,t){switch(r){case y.publicKey.ed25519:try{let i=F.getWebCrypto(),n=dU(r,e,t),s=U1(r,e),o=await i.importKey("jwk",n,"Ed25519",!1,["sign"]),a=await i.importKey("jwk",s,"Ed25519",!1,["verify"]),c=Nr(8),l=new Uint8Array(await i.sign("Ed25519",o,c));return await i.verify("Ed25519",a,l,c)}catch(i){if(i.name!=="NotSupportedError")return!1;let{default:n}=await Promise.resolve().then(function(){return il}),{publicKey:s}=n.sign.keyPair.fromSeed(t);return F.equalsUint8Array(e,s)}case y.publicKey.ed448:{let n=(await F.getNobleCurve(y.publicKey.ed448)).getPublicKey(t);return F.equalsUint8Array(e,n)}default:return!1}}function KI(r){switch(r){case y.publicKey.ed25519:return 32;case y.publicKey.ed448:return 57;default:throw new Error("Unsupported EdDSA algorithm")}}function GI(r){switch(r){case y.publicKey.ed25519:return y.hash.sha256;case y.publicKey.ed448:return y.hash.sha512;default:throw new Error("Unknown EdDSA algo")}}function uU(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function kt(r,...e){if(!uU(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function oI(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function fU(r,e){kt(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function R1(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Et(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function ei(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function zI(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function kX(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function sA(r){if(typeof r=="string")r=kX(r);else if(uU(r))r=vi(r);else throw new Error("Uint8Array expected, got "+typeof r);return r}function AU(r,e){return r.buffer===e.buffer&&r.byteOffset<e.byteOffset+e.byteLength&&e.byteOffset<r.byteOffset+r.byteLength}function N1(r,e){if(AU(r,e)&&r.byteOffset<e.byteOffset)throw new Error("complex overlap of input and output is not supported")}function SX(...r){let e=0;for(let i=0;i<r.length;i++){let n=r[i];kt(n),e+=n.length}let t=new Uint8Array(e);for(let i=0,n=0;i<r.length;i++){let s=r[i];t.set(s,n),n+=s.length}return t}function hU(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r[i]^e[i];return t===0}function vA(r,e,t=!0){if(e===void 0)return new Uint8Array(r);if(e.length!==r)throw new Error("invalid output length, expected "+r+", got: "+e.length);if(t&&!on(e))throw new Error("invalid output, must be aligned");return e}function jB(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);let n=BigInt(32),s=BigInt(4294967295),o=Number(t>>n&s),a=Number(t&s),c=0,l=4;r.setUint32(e+c,o,i),r.setUint32(e+l,a,i)}function DX(r,e,t){let i=new Uint8Array(16),n=zI(i);return jB(n,0,BigInt(e),t),jB(n,8,BigInt(r),t),i}function on(r){return r.byteOffset%4===0}function vi(r){return Uint8Array.from(r)}function FX(r){r.reverse();let e=r[15]&1,t=0;for(let i=0;i<r.length;i++){let n=r[i];r[i]=n>>>1|t,t=(n&1)<<7}return r[0]^=-e&225,r}function gU(r){let e=(i,n)=>r(n,i.length).update(sA(i)).digest(),t=r(new Uint8Array(16),0);return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=(i,n)=>r(i,n),e}function M1(r){return r<<1^TX&-(r>>7)}function Ed(r,e){let t=0;for(;e>0;e>>=1)t^=r&-(e&1),r=M1(r);return t}function pU(r,e){if(r.length!==256)throw new Error("Wrong sbox length");let t=new Uint32Array(256).map((l,d)=>e(r[d])),i=t.map(gB),n=i.map(gB),s=n.map(gB),o=new Uint32Array(256*256),a=new Uint32Array(256*256),c=new Uint16Array(256*256);for(let l=0;l<256;l++)for(let d=0;d<256;d++){let u=l*256+d;o[u]=t[l]^i[d],a[u]=n[l]^s[d],c[u]=r[l]<<8|r[d]}return{sbox:r,sbox2:c,T0:t,T1:i,T2:n,T3:s,T01:o,T23:a}}function el(r){kt(r);let e=r.length;if(![16,24,32].includes(e))throw new Error("aes: invalid key size, should be 16, 24 or 32, got "+e);let{sbox2:t}=L1,i=[];on(r)||i.push(r=vi(r));let n=Et(r),s=n.length,o=c=>cs(t,c,c,c,c),a=new Uint32Array(e+28);a.set(n);for(let c=s;c<a.length;c++){let l=a[c-1];c%s===0?l=o(RX(l))^NX[c/s-1]:s>6&&c%s===4&&(l=o(l)),a[c]=a[c-s]^l}return ei(...i),a}function H1(r){let e=el(r),t=e.slice(),i=e.length,{sbox2:n}=L1,{T0:s,T1:o,T2:a,T3:c}=mU;for(let l=0;l<i;l+=4)for(let d=0;d<4;d++)t[l+d]=e[i-l-4+d];ei(e);for(let l=4;l<i-4;l++){let d=t[l],u=cs(n,d,d,d,d);t[l]=s[u&255]^o[u>>>8&255]^a[u>>>16&255]^c[u>>>24]}return t}function Sa(r,e,t,i,n,s){return r[t<<8&65280|i>>>8&255]^e[n>>>8&65280|s>>>24&255]}function cs(r,e,t,i,n){return r[e&255|t&65280]|r[i>>>16&255|n>>>16&65280]<<16}function Pn(r,e,t,i,n){let{sbox2:s,T01:o,T23:a}=L1,c=0;e^=r[c++],t^=r[c++],i^=r[c++],n^=r[c++];let l=r.length/4-2;for(let g=0;g<l;g++){let p=r[c++]^Sa(o,a,e,t,i,n),I=r[c++]^Sa(o,a,t,i,n,e),m=r[c++]^Sa(o,a,i,n,e,t),w=r[c++]^Sa(o,a,n,e,t,i);e=p,t=I,i=m,n=w}let d=r[c++]^cs(s,e,t,i,n),u=r[c++]^cs(s,t,i,n,e),f=r[c++]^cs(s,i,n,e,t),h=r[c++]^cs(s,n,e,t,i);return{s0:d,s1:u,s2:f,s3:h}}function JI(r,e,t,i,n){let{sbox2:s,T01:o,T23:a}=mU,c=0;e^=r[c++],t^=r[c++],i^=r[c++],n^=r[c++];let l=r.length/4-2;for(let g=0;g<l;g++){let p=r[c++]^Sa(o,a,e,n,i,t),I=r[c++]^Sa(o,a,t,e,n,i),m=r[c++]^Sa(o,a,i,t,e,n),w=r[c++]^Sa(o,a,n,i,t,e);e=p,t=I,i=m,n=w}let d=r[c++]^cs(s,e,n,i,t),u=r[c++]^cs(s,t,e,n,i),f=r[c++]^cs(s,i,t,e,n),h=r[c++]^cs(s,n,i,t,e);return{s0:d,s1:u,s2:f,s3:h}}function yU(r,e,t,i){kt(e,ki),kt(t);let n=t.length;i=vA(n,i),N1(t,i);let s=e,o=Et(s),{s0:a,s1:c,s2:l,s3:d}=Pn(r,o[0],o[1],o[2],o[3]),u=Et(t),f=Et(i);for(let g=0;g+4<=u.length;g+=4){f[g+0]=u[g+0]^a,f[g+1]=u[g+1]^c,f[g+2]=u[g+2]^l,f[g+3]=u[g+3]^d;let p=1;for(let I=s.length-1;I>=0;I--)p=p+(s[I]&255)|0,s[I]=p&255,p>>>=8;({s0:a,s1:c,s2:l,s3:d}=Pn(r,o[0],o[1],o[2],o[3]))}let h=ki*Math.floor(u.length/O1);if(h<n){let g=new Uint32Array([a,c,l,d]),p=R1(g);for(let I=h,m=0;I<n;I++,m++)i[I]=t[I]^p[m];ei(g)}return i}function Xf(r,e,t,i,n){kt(t,ki),kt(i),n=vA(i.length,n);let s=t,o=Et(s),a=zI(s),c=Et(i),l=Et(n),d=e?0:12,u=i.length,f=a.getUint32(d,e),{s0:h,s1:g,s2:p,s3:I}=Pn(r,o[0],o[1],o[2],o[3]);for(let w=0;w+4<=c.length;w+=4)l[w+0]=c[w+0]^h,l[w+1]=c[w+1]^g,l[w+2]=c[w+2]^p,l[w+3]=c[w+3]^I,f=f+1>>>0,a.setUint32(d,f,e),{s0:h,s1:g,s2:p,s3:I}=Pn(r,o[0],o[1],o[2],o[3]);let m=ki*Math.floor(c.length/O1);if(m<u){let w=new Uint32Array([h,g,p,I]),B=R1(w);for(let C=m,x=0;C<u;C++,x++)n[C]=i[C]^B[x];ei(w)}return n}function OX(r){if(kt(r),r.length%ki!==0)throw new Error("aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size "+ki)}function MX(r,e,t){kt(r);let i=r.length,n=i%ki;if(!e&&n!==0)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");on(r)||(r=vi(r));let s=Et(r);if(e){let a=ki-n;a||(a=ki),i=i+a}t=vA(i,t),N1(r,t);let o=Et(t);return{b:s,o,out:t}}function LX(r,e){if(!e)return r;let t=r.length;if(!t)throw new Error("aes/pcks5: empty ciphertext not allowed");let i=r[t-1];if(i<=0||i>16)throw new Error("aes/pcks5: wrong padding");let n=r.subarray(0,-i);for(let s=0;s<i;s++)if(r[t-s-1]!==i)throw new Error("aes/pcks5: wrong padding");return n}function HX(r){let e=new Uint8Array(16),t=Et(e);e.set(r);let i=ki-r.length;for(let n=ki-i;n<ki;n++)e[n]=i;return t}function KX(r,e,t,i,n){let s=n?n.length:0,o=r.create(t,i.length+s);n&&o.update(n);let a=DX(8*i.length,8*s,e);o.update(i),o.update(a);let c=o.digest();return ei(a),c}function wU(r){return r instanceof Uint32Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint32Array"}function xU(r,e){if(kt(e,16),!wU(r))throw new Error("_encryptBlock accepts result of expandKeyLE");let t=Et(e),{s0:i,s1:n,s2:s,s3:o}=Pn(r,t[0],t[1],t[2],t[3]);return t[0]=i,t[1]=n,t[2]=s,t[3]=o,e}function CU(r,e){if(kt(e,16),!wU(r))throw new Error("_decryptBlock accepts result of expandKeyLE");let t=Et(e),{s0:i,s1:n,s2:s,s3:o}=JI(r,t[0],t[1],t[2],t[3]);return t[0]=i,t[1]=n,t[2]=s,t[3]=o,e}async function BU(r){switch(r){case y.symmetric.aes128:case y.symmetric.aes192:case y.symmetric.aes256:throw new Error("Not a legacy cipher");case y.symmetric.cast5:case y.symmetric.blowfish:case y.symmetric.twofish:case y.symmetric.tripledes:{let{legacyCiphers:e}=await Promise.resolve().then(function(){return hie}),t=y.read(y.symmetric,r),i=e.get(t);if(!i)throw new Error("Unsupported cipher algorithm");return i}default:throw new Error("Unsupported cipher algorithm")}}function GX(r){switch(r){case y.symmetric.aes128:case y.symmetric.aes192:case y.symmetric.aes256:case y.symmetric.twofish:return 16;case y.symmetric.blowfish:case y.symmetric.cast5:case y.symmetric.tripledes:return 8;default:throw new Error("Unsupported cipher")}}function zX(r){switch(r){case y.symmetric.aes128:case y.symmetric.blowfish:case y.symmetric.cast5:return 16;case y.symmetric.aes192:case y.symmetric.tripledes:return 24;case y.symmetric.aes256:case y.symmetric.twofish:return 32;default:throw new Error("Unsupported cipher")}}function It(r){return{keySize:zX(r),blockSize:GX(r)}}async function WB(r,e,t){let{keySize:i}=It(r);if(!F.isAES(r)||e.length!==i)throw new Error("Unexpected algorithm or key size");try{let n=await Dd.importKey("raw",e,{name:"AES-KW"},!1,["wrapKey"]),s=await Dd.importKey("raw",t,{name:"HMAC",hash:"SHA-256"},!0,["sign"]),o=await Dd.wrapKey("raw",s,n,{name:"AES-KW"});return new Uint8Array(o)}catch(n){if(n.name!=="NotSupportedError"&&!(e.length===24&&n.name==="OperationError"))throw n;F.printDebugError("Browser did not support operation: "+n.message)}return EU(e).encrypt(t)}async function XB(r,e,t){let{keySize:i}=It(r);if(!F.isAES(r)||e.length!==i)throw new Error("Unexpected algorithm or key size");let n;try{n=await Dd.importKey("raw",e,{name:"AES-KW"},!1,["unwrapKey"])}catch(s){if(s.name!=="NotSupportedError"&&!(e.length===24&&s.name==="OperationError"))throw s;return F.printDebugError("Browser did not support operation: "+s.message),EU(e).decrypt(t)}try{let s=await Dd.unwrapKey("raw",t,n,{name:"AES-KW"},{name:"HMAC",hash:"SHA-256"},!0,["sign"]);return new Uint8Array(await Dd.exportKey("raw",s))}catch(s){throw s.name==="OperationError"?new Error("Key Data Integrity failed"):s}}async function Fa(r,e,t,i,n){let s=F.getWebCrypto(),o=y.read(y.webHash,r);if(!o)throw new Error("Hash algo not supported with HKDF");let a=await s.importKey("raw",e,"HKDF",!1,["deriveBits"]),c=await s.deriveBits({name:"HKDF",hash:o,salt:t,info:i},a,n*8);return new Uint8Array(c)}async function K1(r){switch(r){case y.publicKey.x25519:try{let e=F.getWebCrypto(),t=await e.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch(s=>{if(s.name==="OperationError"){let o=new Error("Unexpected key generation issue");throw o.name="NotSupportedError",o}throw s}),i=await e.exportKey("jwk",t.privateKey),n=await e.exportKey("jwk",t.publicKey);if(i.x!==n.x){let s=new Error("Unexpected mismatching public point");throw s.name="NotSupportedError",s}return{A:new Uint8Array(Ci(n.x)),k:Ci(i.d)}}catch(e){if(e.name!=="NotSupportedError")throw e;let{default:t}=await Promise.resolve().then(function(){return il}),{secretKey:i,publicKey:n}=t.box.keyPair();return{A:n,k:i}}case y.publicKey.x448:{let e=await F.getNobleCurve(y.publicKey.x448),{secretKey:t,publicKey:i}=e.keygen();return{A:i,k:t}}default:throw new Error("Unsupported ECDH algorithm")}}async function G1(r,e,t){switch(r){case y.publicKey.x25519:try{let{ephemeralPublicKey:i,sharedSecret:n}=await $I(r,e),s=await VI(r,i,e,t);return F.equalsUint8Array(n,s)}catch{return!1}case y.publicKey.x448:{let n=(await F.getNobleCurve(y.publicKey.x448)).getPublicKey(t);return F.equalsUint8Array(e,n)}default:return!1}}async function bU(r,e,t){let{ephemeralPublicKey:i,sharedSecret:n}=await $I(r,t),s=F.concatUint8Array([i,t,n]);switch(r){case y.publicKey.x25519:{let o=y.symmetric.aes128,{keySize:a}=It(o),c=await Fa(y.hash.sha256,s,new Uint8Array,cI.x25519,a),l=await WB(o,c,e);return{ephemeralPublicKey:i,wrappedKey:l}}case y.publicKey.x448:{let o=y.symmetric.aes256,{keySize:a}=It(y.symmetric.aes256),c=await Fa(y.hash.sha512,s,new Uint8Array,cI.x448,a),l=await WB(o,c,e);return{ephemeralPublicKey:i,wrappedKey:l}}default:throw new Error("Unsupported ECDH algorithm")}}async function vU(r,e,t,i,n){let s=await VI(r,e,i,n),o=F.concatUint8Array([e,i,s]);switch(r){case y.publicKey.x25519:{let a=y.symmetric.aes128,{keySize:c}=It(a),l=await Fa(y.hash.sha256,o,new Uint8Array,cI.x25519,c);return XB(a,l,t)}case y.publicKey.x448:{let a=y.symmetric.aes256,{keySize:c}=It(y.symmetric.aes256),l=await Fa(y.hash.sha512,o,new Uint8Array,cI.x448,c);return XB(a,l,t)}default:throw new Error("Unsupported ECDH algorithm")}}function jI(r){switch(r){case y.publicKey.x25519:return 32;case y.publicKey.x448:return 56;default:throw new Error("Unsupported ECDH algorithm")}}async function $I(r,e){switch(r){case y.publicKey.x25519:try{let t=F.getWebCrypto(),i=await t.generateKey("X25519",!0,["deriveKey","deriveBits"]).catch(l=>{if(l.name==="OperationError"){let d=new Error("Unexpected key generation issue");throw d.name="NotSupportedError",d}throw l}),n=await t.exportKey("jwk",i.publicKey);if((await t.exportKey("jwk",i.privateKey)).x!==n.x){let l=new Error("Unexpected mismatching public point");throw l.name="NotSupportedError",l}let o=z1(r,e),a=await t.importKey("jwk",o,"X25519",!1,[]),c=await t.deriveBits({name:"X25519",public:a},i.privateKey,jI(r)*8);return{sharedSecret:new Uint8Array(c),ephemeralPublicKey:new Uint8Array(Ci(n.x))}}catch(t){if(t.name!=="NotSupportedError")throw t;let{default:i}=await Promise.resolve().then(function(){return il}),{secretKey:n,publicKey:s}=i.box.keyPair(),o=i.scalarMult(n,e);return lI(o),{ephemeralPublicKey:s,sharedSecret:o}}case y.publicKey.x448:{let t=await F.getNobleCurve(y.publicKey.x448),{secretKey:i,publicKey:n}=t.keygen(),s=t.getSharedSecret(i,e);return lI(s),{ephemeralPublicKey:n,sharedSecret:s}}default:throw new Error("Unsupported ECDH algorithm")}}async function VI(r,e,t,i){switch(r){case y.publicKey.x25519:try{let n=F.getWebCrypto(),s=JX(r,t,i),o=z1(r,e),a=await n.importKey("jwk",s,"X25519",!1,["deriveKey","deriveBits"]),c=await n.importKey("jwk",o,"X25519",!1,[]),l=await n.deriveBits({name:"X25519",public:c},a,jI(r)*8);return new Uint8Array(l)}catch(n){if(n.name!=="NotSupportedError")throw n;let{default:s}=await Promise.resolve().then(function(){return il}),o=s.scalarMult(i,e);return lI(o),o}case y.publicKey.x448:{let s=(await F.getNobleCurve(y.publicKey.x448)).getSharedSecret(i,e);return lI(s),s}default:throw new Error("Unsupported ECDH algorithm")}}function lI(r){let e=0;for(let t=0;t<r.length;t++)e|=r[t];if(e===0)throw new Error("Unexpected low order point")}function z1(r,e){if(r===y.publicKey.x25519)return{kty:"OKP",crv:"X25519",x:Ur(e),ext:!0};throw new Error("Unsupported ECDH algorithm")}function JX(r,e,t){if(r===y.publicKey.x25519){let i=z1(r,e);return i.d=Ur(t),i}else throw new Error("Unsupported ECDH algorithm")}async function Vy(r){let e=new Si(r),{oid:t,hash:i,cipher:n}=e,s=await e.genKeyPair();return{oid:t,Q:s.publicKey,secret:F.leftPad(s.privateKey,e.payloadSize),hash:i,cipher:n}}function SU(r){return kU[r.getName()].hash}async function DU(r,e,t,i){let n={[y.curve.nistP256]:!0,[y.curve.nistP384]:!0,[y.curve.nistP521]:!0,[y.curve.secp256k1]:!0,[y.curve.curve25519Legacy]:r===y.publicKey.ecdh,[y.curve.brainpoolP256r1]:!0,[y.curve.brainpoolP384r1]:!0,[y.curve.brainpoolP512r1]:!0},s=e.getName();if(!n[s])return!1;if(s===y.curve.curve25519Legacy){let c=i.slice().reverse();return t.length<1||t[0]!==64?!1:G1(y.publicKey.x25519,t.subarray(1),c)}let a=(await F.getNobleCurve(y.publicKey.ecdsa,s)).getPublicKey(i,!1);return!!F.equalsUint8Array(a,t)}function $c(r,e){let{payloadSize:t,wireFormatLeadingByte:i,name:n}=r,s=n===y.curve.curve25519Legacy||n===y.curve.ed25519Legacy?t:t*2;if(e[0]!==i||e.length!==s+1)throw new Error("Invalid point encoding")}async function G6(r){let e=await F.getNobleCurve(y.publicKey.ecdsa,r),{secretKey:t}=e.keygen();return{publicKey:e.getPublicKey(t,!1),privateKey:t}}async function $X(r,e){let t=await pB.generateKey({name:"ECDSA",namedCurve:us[r]},!0,["sign","verify"]),i=await pB.exportKey("jwk",t.privateKey),n=await pB.exportKey("jwk",t.publicKey);return{publicKey:QU(n,e),privateKey:Ci(i.d)}}function VX(r){let e=dI.createECDH(ss[r]);return e.generateKeys(),{publicKey:new Uint8Array(e.getPublicKey()),privateKey:new Uint8Array(e.getPrivateKey())}}function QU(r,e){let t=Ci(r.x),i=Ci(r.y),n=new Uint8Array(t.length+i.length+1);return n[0]=e,n.set(t,1),n.set(i,t.length+1),n}function YI(r,e,t){let i=r,n=t.slice(1,i+1),s=t.slice(i+1,i*2+1);return{kty:"EC",crv:e,x:Ur(n),y:Ur(s),ext:!0}}function _U(r,e,t,i){let n=YI(r,e,t);return n.d=Ur(i),n}async function J1(r,e,t,i,n,s){let o=new Si(r);if($c(o,i),t&&!F.isStream(t)){let l={publicKey:i,privateKey:n};switch(o.type){case"web":try{return await WX(o,e,t,l)}catch(d){if(o.name!=="nistP521"&&(d.name==="DataError"||d.name==="OperationError"))throw d;F.printDebugError("Browser did not support signing: "+d.message)}break;case"node":return ZX(o,e,t,n)}}let c=(await F.getNobleCurve(y.publicKey.ecdsa,o.name)).sign(s,n,{lowS:!1});return{r:Wt(c.r,"be",o.payloadSize),s:Wt(c.s,"be",o.payloadSize)}}async function j1(r,e,t,i,n,s){let o=new Si(r);$c(o,n);let a=async()=>s[0]===0?z6(o,t,s.subarray(1),n):!1;if(i&&!F.isStream(i))switch(o.type){case"web":try{return await XX(o,e,t,i,n)||a()}catch(l){if(o.name!=="nistP521"&&(l.name==="DataError"||l.name==="OperationError"))throw l;F.printDebugError("Browser did not support verifying: "+l.message)}break;case"node":return eZ(o,e,t,i,n)||a()}return await z6(o,t,s,n)||a()}async function YX(r,e,t){let i=new Si(r);if(i.keyType!==y.publicKey.ecdsa)return!1;switch(i.type){case"web":case"node":{let n=Nr(8),s=y.hash.sha256,o=await hs(s,n);try{let a=await J1(r,s,n,e,t,o);return await j1(r,s,a,n,e,o)}catch{return!1}}default:return DU(y.publicKey.ecdsa,r,e,t)}}async function z6(r,e,t,i){return(await F.getNobleCurve(y.publicKey.ecdsa,r.name)).verify(F.concatUint8Array([e.r,e.s]),t,i,{lowS:!1})}async function WX(r,e,t,i){let n=r.payloadSize,s=_U(r.payloadSize,us[r.name],i.publicKey,i.privateKey),o=await uI.importKey("jwk",s,{name:"ECDSA",namedCurve:us[r.name],hash:{name:y.read(y.webHash,r.hash)}},!1,["sign"]),a=new Uint8Array(await uI.sign({name:"ECDSA",namedCurve:us[r.name],hash:{name:y.read(y.webHash,e)}},o,t));return{r:a.slice(0,n),s:a.slice(n,n<<1)}}async function XX(r,e,{r:t,s:i},n,s){let o=YI(r.payloadSize,us[r.name],s),a=await uI.importKey("jwk",o,{name:"ECDSA",namedCurve:us[r.name],hash:{name:y.read(y.webHash,r.hash)}},!1,["verify"]),c=F.concatUint8Array([t,i]).buffer;return uI.verify({name:"ECDSA",namedCurve:us[r.name],hash:{name:y.read(y.webHash,e)}},a,c,n)}function ZX(r,e,t,i){let n=F.nodeRequire("eckey-utils"),s=F.getNodeBuffer(),{privateKey:o}=n.generateDer({curveName:ss[r.name],privateKey:s.from(i)}),a=FU.createSign(y.read(y.hash,e));a.write(t),a.end();let c=new Uint8Array(a.sign({key:o,format:"der",type:"sec1",dsaEncoding:"ieee-p1363"})),l=r.payloadSize;return{r:c.subarray(0,l),s:c.subarray(l,l<<1)}}function eZ(r,e,{r:t,s:i},n,s){let o=F.nodeRequire("eckey-utils"),a=F.getNodeBuffer(),{publicKey:c}=o.generateDer({curveName:ss[r.name],publicKey:a.from(s)}),l=FU.createVerify(y.read(y.hash,e));l.write(n),l.end();let d=F.concatUint8Array([t,i]);try{return l.verify({key:c,format:"der",type:"spki",dsaEncoding:"ieee-p1363"},d)}catch{return!1}}async function PU(r,e,t,i,n,s){let o=new Si(r);if($c(o,i),pr(e)<pr(y.hash.sha256))throw new Error("Hash algorithm too weak for EdDSA.");let{RS:a}=await F1(y.publicKey.ed25519,e,t,i.subarray(1),n,s);return{r:a.subarray(0,32),s:a.subarray(32)}}async function TU(r,e,{r:t,s:i},n,s,o){let a=new Si(r);if($c(a,s),pr(e)<pr(y.hash.sha256))throw new Error("Hash algorithm too weak for EdDSA.");let c=F.concatUint8Array([t,i]);return P1(y.publicKey.ed25519,e,{RS:c},n,s.subarray(1),o)}async function UU(r,e,t){return r.getName()!==y.curve.ed25519Legacy||e.length<1||e[0]!==64?!1:T1(y.publicKey.ed25519,e.subarray(1),t)}function iZ(r){let e=8-r.length%8,t=new Uint8Array(r.length+e).fill(e);return t.set(r),t}function nZ(r){let e=r.length;if(e>0){let t=r[e-1];if(t>=1){let i=r.subarray(e-t),n=new Uint8Array(t).fill(t);if(F.equalsUint8Array(i,n))return r.subarray(0,e-t)}}throw new Error("Invalid padding")}async function sZ(r,e,t){return DU(y.publicKey.ecdh,r,e,t)}function RU(r,e,t,i){return F.concatUint8Array([e.write(),new Uint8Array([r]),t.write(),F.stringToUint8Array("Anonymous Sender "),i])}async function NU(r,e,t,i,n=!1,s=!1){let o;if(n){for(o=0;o<e.length&&e[o]===0;o++);e=e.subarray(o)}if(s){for(o=e.length-1;o>=0&&e[o]===0;o--);e=e.subarray(0,o+1)}return(await hs(r,F.concatUint8Array([new Uint8Array([0,0,0,1]),e,i]))).subarray(0,t)}async function oZ(r,e){switch(r.type){case"curve25519Legacy":{let{sharedSecret:t,ephemeralPublicKey:i}=await $I(y.publicKey.x25519,e.subarray(1));return{publicKey:F.concatUint8Array([new Uint8Array([r.wireFormatLeadingByte]),i]),sharedKey:t}}case"web":if(r.web&&F.getWebCrypto())try{return await lZ(r,e)}catch(t){return F.printDebugError(t),j6(r,e)}break;case"node":return uZ(r,e);default:return j6(r,e)}}async function qU(r,e,t,i,n){let s=iZ(t),o=new Si(r);$c(o,i);let{publicKey:a,sharedKey:c}=await oZ(o,i),l=RU(y.publicKey.ecdh,r,e,n),{keySize:d}=It(e.cipher),u=await NU(e.hash,c,d,l),f=await WB(e.cipher,u,s);return{publicKey:a,wrappedKey:f}}async function aZ(r,e,t,i){if(i.length!==r.payloadSize){let n=new Uint8Array(r.payloadSize);n.set(i,r.payloadSize-i.length),i=n}switch(r.type){case"curve25519Legacy":{let n=i.slice().reverse(),s=await VI(y.publicKey.x25519,e.subarray(1),t.subarray(1),n);return{secretKey:n,sharedKey:s}}case"web":if(r.web&&F.getWebCrypto())try{return await cZ(r,e,t,i)}catch(n){return F.printDebugError(n),J6(r,e,i)}break;case"node":return dZ(r,e,i);default:return J6(r,e,i)}}async function OU(r,e,t,i,n,s,o){let a=new Si(r);$c(a,n),$c(a,t);let{sharedKey:c}=await aZ(a,t,n,s),l=RU(y.publicKey.ecdh,r,e,o),{keySize:d}=It(e.cipher),u;for(let f=0;f<3;f++)try{let h=await NU(e.hash,c,d,l,f===1,f===2);return nZ(await XB(e.cipher,h,i))}catch(h){u=h}throw u}async function J6(r,e,t){let s=(await F.getNobleCurve(y.publicKey.ecdh,r.name)).getSharedSecret(t,e).subarray(1);return{secretKey:t,sharedKey:s}}async function j6(r,e){let t=await F.getNobleCurve(y.publicKey.ecdh,r.name),{publicKey:i,privateKey:n}=await r.genKeyPair(),o=t.getSharedSecret(n,e).subarray(1);return{publicKey:i,sharedKey:o}}async function cZ(r,e,t,i){let n=F.getWebCrypto(),s=_U(r.payloadSize,r.web,t,i),o=n.importKey("jwk",s,{name:"ECDH",namedCurve:r.web},!0,["deriveKey","deriveBits"]),a=YI(r.payloadSize,r.web,e),c=n.importKey("jwk",a,{name:"ECDH",namedCurve:r.web},!0,[]);[o,c]=await Promise.all([o,c]);let l=n.deriveBits({name:"ECDH",namedCurve:r.web,public:c},o,r.sharedSize),d=n.exportKey("jwk",o);[l,d]=await Promise.all([l,d]);let u=new Uint8Array(l);return{secretKey:Ci(d.d),sharedKey:u}}async function lZ(r,e){let t=F.getWebCrypto(),i=YI(r.payloadSize,r.web,e),n=t.generateKey({name:"ECDH",namedCurve:r.web},!0,["deriveKey","deriveBits"]),s=t.importKey("jwk",i,{name:"ECDH",namedCurve:r.web},!1,[]);[n,s]=await Promise.all([n,s]);let o=t.deriveBits({name:"ECDH",namedCurve:r.web,public:s},n.privateKey,r.sharedSize),a=t.exportKey("jwk",n.publicKey);[o,a]=await Promise.all([o,a]);let c=new Uint8Array(o);return{publicKey:new Uint8Array(QU(a,r.wireFormatLeadingByte)),sharedKey:c}}function dZ(r,e,t){let n=F.getNodeCrypto().createECDH(r.node);n.setPrivateKey(t);let s=new Uint8Array(n.computeSecret(e));return{secretKey:new Uint8Array(n.getPrivateKey()),sharedKey:s}}function uZ(r,e){let i=F.getNodeCrypto().createECDH(r.node);i.generateKeys();let n=new Uint8Array(i.computeSecret(e));return{publicKey:new Uint8Array(i.getPublicKey()),sharedKey:n}}async function hZ(r,e,t,i,n,s){let o=BigInt(0);i=Te(i),n=Te(n),t=Te(t),s=Te(s);let a,c,l,d;t=tt(t,i),s=tt(s,n);let u=tt(Te(e.subarray(0,bi(n))),n);for(;;){if(a=Ra(Zf,n),c=tt(Sr(t,a,i),n),c===o)continue;let f=tt(s*c,n);if(d=tt(u+f,n),l=tt(Td(a,n)*d,n),l!==o)break}return{r:Wt(c,"be",bi(i)),s:Wt(l,"be",bi(i))}}async function gZ(r,e,t,i,n,s,o,a){if(e=Te(e),t=Te(t),s=Te(s),o=Te(o),n=Te(n),a=Te(a),e<=Yy||e>=o||t<=Yy||t>=o)return F.printDebug("invalid DSA Signature"),!1;let c=tt(Te(i.subarray(0,bi(o))),o),l=Td(t,o);if(l===Yy)return F.printDebug("invalid DSA Signature"),!1;n=tt(n,s),a=tt(a,s);let d=tt(c*l,o),u=tt(e*l,o),f=Sr(n,d,s),h=Sr(a,u,s);return tt(tt(f*h,s),o)===e}async function pZ(r,e,t,i,n){let s=Te(r),o=Te(e),a=Te(t),c=Te(i);if(a<=Zf||a>=s||tt(s-Zf,o)!==Yy||Sr(a,o,s)!==Zf)return!1;let l=BigInt(Gd(o)),d=BigInt(150);if(l<d||!sU(o,null,32))return!1;let u=Te(n),f=BigInt(2),h=Ra(f<<l-Zf,f<<l),g=o*h+u;return c===Sr(a,g,s)}async function mZ(r,e,t,i,n){switch(r){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:{let{n:s,e:o}=t;return{c:await sX(i,s,o)}}case y.publicKey.elgamal:{let{p:s,g:o,y:a}=t;return IX(i,s,o,a)}case y.publicKey.ecdh:{let{oid:s,Q:o,kdfParams:a}=t,{publicKey:c,wrappedKey:l}=await qU(s,a,i,o,n);return{V:c,C:new fI(l)}}case y.publicKey.x25519:case y.publicKey.x448:{if(e&&!F.isAES(e))throw new Error("X25519 and X448 keys can only encrypt AES session keys");let{A:s}=t,{ephemeralPublicKey:o,wrappedKey:a}=await bU(r,i,s),c=hI.fromObject({algorithm:e,wrappedKey:a});return{ephemeralPublicKey:o,C:c}}default:return[]}}async function yZ(r,e,t,i,n,s){switch(r){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaEncrypt:{let{c:o}=i,{n:a,e:c}=e,{d:l,p:d,q:u,u:f}=t;return oX(o,a,c,l,d,u,f,s)}case y.publicKey.elgamal:{let{c1:o,c2:a}=i,c=e.p,l=t.x;return wX(o,a,c,l,s)}case y.publicKey.ecdh:{let{oid:o,Q:a,kdfParams:c}=e,{d:l}=t,{V:d,C:u}=i;return OU(o,c,d,u.data,a,l,n)}case y.publicKey.x25519:case y.publicKey.x448:{let{A:o}=e,{k:a}=t,{ephemeralPublicKey:c,C:l}=i;if(l.algorithm!==null&&!F.isAES(l.algorithm))throw new Error("AES session key expected");return vU(r,c,l.wrappedKey,o,a)}default:throw new Error("Unknown public key encryption algorithm.")}}function IZ(r,e){let t=0;switch(r){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,publicParams:{n:i,e:n}}}case y.publicKey.dsa:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));t+=n.length+2;let s=F.readMPI(e.subarray(t));t+=s.length+2;let o=F.readMPI(e.subarray(t));return t+=o.length+2,{read:t,publicParams:{p:i,q:n,g:s,y:o}}}case y.publicKey.elgamal:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));t+=n.length+2;let s=F.readMPI(e.subarray(t));return t+=s.length+2,{read:t,publicParams:{p:i,g:n,y:s}}}case y.publicKey.ecdsa:{let i=new co;t+=i.read(e),mB(i);let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,publicParams:{oid:i,Q:n}}}case y.publicKey.eddsaLegacy:{let i=new co;if(t+=i.read(e),mB(i),i.getName()!==y.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let n=F.readMPI(e.subarray(t));return t+=n.length+2,n=F.leftPad(n,33),{read:t,publicParams:{oid:i,Q:n}}}case y.publicKey.ecdh:{let i=new co;t+=i.read(e),mB(i);let n=F.readMPI(e.subarray(t));t+=n.length+2;let s=new AI;return t+=s.read(e.subarray(t)),{read:t,publicParams:{oid:i,Q:n,kdfParams:s}}}case y.publicKey.ed25519:case y.publicKey.ed448:case y.publicKey.x25519:case y.publicKey.x448:{let i=F.readExactSubarray(e,t,t+Bd(r));return t+=i.length,{read:t,publicParams:{A:i}}}default:throw new ft("Unknown public key encryption algorithm.")}}function $6(r,e,t){let i=0;switch(r){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:{let n=F.readMPI(e.subarray(i));i+=n.length+2;let s=F.readMPI(e.subarray(i));i+=s.length+2;let o=F.readMPI(e.subarray(i));i+=o.length+2;let a=F.readMPI(e.subarray(i));return i+=a.length+2,{read:i,privateParams:{d:n,p:s,q:o,u:a}}}case y.publicKey.dsa:case y.publicKey.elgamal:{let n=F.readMPI(e.subarray(i));return i+=n.length+2,{read:i,privateParams:{x:n}}}case y.publicKey.ecdsa:case y.publicKey.ecdh:{let n=Bd(r,t.oid),s=F.readMPI(e.subarray(i));return i+=s.length+2,s=F.leftPad(s,n),{read:i,privateParams:{d:s}}}case y.publicKey.eddsaLegacy:{let n=Bd(r,t.oid);if(t.oid.getName()!==y.curve.ed25519Legacy)throw new Error("Unexpected OID for eddsaLegacy");let s=F.readMPI(e.subarray(i));return i+=s.length+2,s=F.leftPad(s,n),{read:i,privateParams:{seed:s}}}case y.publicKey.ed25519:case y.publicKey.ed448:{let n=Bd(r),s=F.readExactSubarray(e,i,i+n);return i+=s.length,{read:i,privateParams:{seed:s}}}case y.publicKey.x25519:case y.publicKey.x448:{let n=Bd(r),s=F.readExactSubarray(e,i,i+n);return i+=s.length,{read:i,privateParams:{k:s}}}default:throw new ft("Unknown public key encryption algorithm.")}}function wZ(r,e){let t=0;switch(r){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:return{c:F.readMPI(e.subarray(t))};case y.publicKey.elgamal:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return{c1:i,c2:n}}case y.publicKey.ecdh:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=new fI;return n.read(e.subarray(t)),{V:i,C:n}}case y.publicKey.x25519:case y.publicKey.x448:{let i=Bd(r),n=F.readExactSubarray(e,t,t+i);t+=n.length;let s=new hI;return s.read(e.subarray(t)),{ephemeralPublicKey:n,C:s}}default:throw new ft("Unknown public key encryption algorithm.")}}function Rd(r,e){let t=new Set([y.publicKey.ed25519,y.publicKey.x25519,y.publicKey.ed448,y.publicKey.x448]),i=Object.keys(e).map(n=>{let s=e[n];return F.isUint8Array(s)?t.has(r)?s:F.uint8ArrayToMPI(s):s.write()});return F.concatUint8Array(i)}function xZ(r,e,t){switch(r){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:return aX(e,65537).then(({n:i,e:n,d:s,p:o,q:a,u:c})=>({privateParams:{d:s,p:o,q:a,u:c},publicParams:{n:i,e:n}}));case y.publicKey.ecdsa:return Vy(t).then(({oid:i,Q:n,secret:s})=>({privateParams:{d:s},publicParams:{oid:new co(i),Q:n}}));case y.publicKey.eddsaLegacy:return Vy(t).then(({oid:i,Q:n,secret:s})=>({privateParams:{seed:s},publicParams:{oid:new co(i),Q:n}}));case y.publicKey.ecdh:return Vy(t).then(({oid:i,Q:n,secret:s,hash:o,cipher:a})=>({privateParams:{d:s},publicParams:{oid:new co(i),Q:n,kdfParams:new AI({hash:o,cipher:a})}}));case y.publicKey.ed25519:case y.publicKey.ed448:return _1(r).then(({A:i,seed:n})=>({privateParams:{seed:n},publicParams:{A:i}}));case y.publicKey.x25519:case y.publicKey.x448:return K1(r).then(({A:i,k:n})=>({privateParams:{k:n},publicParams:{A:i}}));case y.publicKey.dsa:case y.publicKey.elgamal:throw new Error("Unsupported algorithm for key generation.");default:throw new Error("Unknown public key algorithm.")}}async function CZ(r,e,t){if(!e||!t)throw new Error("Missing key parameters");switch(r){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:{let{n:i,e:n}=e,{d:s,p:o,q:a,u:c}=t;return cX(i,n,s,o,a,c)}case y.publicKey.dsa:{let{p:i,q:n,g:s,y:o}=e,{x:a}=t;return pZ(i,n,s,o,a)}case y.publicKey.elgamal:{let{p:i,g:n,y:s}=e,{x:o}=t;return xX(i,n,s,o)}case y.publicKey.ecdsa:case y.publicKey.ecdh:{let i=AZ[y.read(y.publicKey,r)],{oid:n,Q:s}=e,{d:o}=t;return i.validateParams(n,s,o)}case y.publicKey.eddsaLegacy:{let{Q:i,oid:n}=e,{seed:s}=t;return UU(n,i,s)}case y.publicKey.ed25519:case y.publicKey.ed448:{let{A:i}=e,{seed:n}=t;return T1(r,i,n)}case y.publicKey.x25519:case y.publicKey.x448:{let{A:i}=e,{k:n}=t;return G1(r,i,n)}default:throw new Error("Unknown public key algorithm.")}}function ZB(r){let{keySize:e}=It(r);return Nr(e)}function mB(r){try{r.getName()}catch{throw new ft("Unknown curve OID")}}function Bd(r,e){switch(r){case y.publicKey.ecdsa:case y.publicKey.ecdh:case y.publicKey.eddsaLegacy:return new Si(e).payloadSize;case y.publicKey.ed25519:case y.publicKey.ed448:return KI(r);case y.publicKey.x25519:case y.publicKey.x448:return jI(r);default:throw new Error("Unknown elliptic algo")}}function EZ(r,e){switch(r){case y.publicKey.ecdsa:case y.publicKey.eddsaLegacy:return SU(e);case y.publicKey.ed25519:case y.publicKey.ed448:return GI(r);default:throw new Error("Unknown elliptic signing algo")}}function MU(r){let{blockSize:e}=It(r),t=Nr(e),i=new Uint8Array([t[t.length-2],t[t.length-1]]);return F.concat([t,i])}async function aA(r,e,t,i,n){let s=y.read(y.symmetric,r);if(F.getNodeCrypto()&&WI[s])return vZ(r,e,t,i);if(F.isAES(r))return BZ(r,e,t,i);let o=await BU(r),a=new o(e),c=a.blockSize,l=i.slice(),d=new Uint8Array,u=f=>{f&&(d=F.concatUint8Array([d,f]));let h=new Uint8Array(d.length),g,p=0;for(;f?d.length>=c:d.length;){let I=a.encrypt(l);for(g=0;g<c;g++)l[g]=d[g]^I[g],h[p++]=l[g];d=d.subarray(c)}return h.subarray(0,p)};return sr(t,u,u)}async function XI(r,e,t,i){let n=y.read(y.symmetric,r);if(oA&&WI[n])return kZ(r,e,t,i);if(F.isAES(r))return bZ(r,e,t,i);let s=await BU(r),o=new s(e),a=o.blockSize,c=i,l=new Uint8Array,d=u=>{u&&(l=F.concatUint8Array([l,u]));let f=new Uint8Array(l.length),h,g=0;for(;u?l.length>=a:l.length;){let p=o.encrypt(c);for(c=l.subarray(0,a),h=0;h<a;h++)f[g++]=c[h]^p[h];l=l.subarray(a)}return f.subarray(0,g)};return sr(t,d,d)}async function BZ(r,e,t,i){if(Wy&&await gI.isSupported(r)){let n=new gI(r,e,i);return F.isStream(t)?GB(t,s=>n.encryptChunk(s),()=>n.finish()):n.encrypt(t)}else if(F.isStream(t)){let n=new pI(!0,r,e,i);return GB(t,s=>n.processChunk(s),()=>n.finish())}return IU(e,i).encrypt(t)}function bZ(r,e,t,i){if(F.isStream(t)){let n=new pI(!1,r,e,i);return GB(t,s=>n.processChunk(s),()=>n.finish())}return IU(e,i).decrypt(t)}function Ry(r,e){let t=Math.min(r.length,e.length);for(let i=0;i<t;i++)r[i]=r[i]^e[i]}function vZ(r,e,t,i){let n=y.read(y.symmetric,r),s=new oA.createCipheriv(WI[n],e,i);return sr(t,o=>new Uint8Array(s.update(o)))}function kZ(r,e,t,i){let n=y.read(y.symmetric,r),s=new oA.createDecipheriv(WI[n],e,i);return sr(t,o=>new Uint8Array(s.update(o)))}function Y6(r,e){let t=r.length-lo;for(let i=0;i<lo;i++)r[i+t]^=e[i];return r}function DZ(r,e,t){if(r.length&&r.length%lo===0)return Y6(r,e);let i=new Uint8Array(r.length+(lo-r.length%lo));return i.set(r),i[r.length]=128,Y6(i,t)}async function QZ(r){let e=await _Z(r),t=F.double(await e(Xy)),i=F.double(t);return async function(n){return(await e(DZ(n,t,i))).subarray(-lo)}}async function _Z(r){if(F.getNodeCrypto())return async function(e){let i=new SZ.createCipheriv("aes-"+r.length*8+"-cbc",r,Xy).update(e);return new Uint8Array(i)};if(F.getWebCrypto())try{return r=await V6.importKey("raw",r,{name:"AES-CBC",length:r.length*8},!1,["encrypt"]),async function(e){let t=await V6.encrypt({name:"AES-CBC",iv:Xy,length:lo*8},r,e);return new Uint8Array(t).subarray(0,t.byteLength-lo)}}catch(e){if(e.name!=="NotSupportedError"&&!(r.length===24&&e.name==="OperationError"))throw e;F.printDebugError("Browser did not support operation: "+e.message)}return async function(e){return YB(r,Xy,{disablePadding:!0}).encrypt(e)}}async function UZ(r){let e=await QZ(r);return function(t,i){return e(F.concatUint8Array([t,i]))}}async function RZ(r){if(F.getNodeCrypto())return async function(e,t){let i=new FZ.createCipheriv("aes-"+r.length*8+"-ctr",r,t),n=PZ.concat([i.update(e),i.final()]);return new Uint8Array(n)};if(F.getWebCrypto())try{let e=await W6.importKey("raw",r,{name:"AES-CTR",length:r.length*8},!1,["encrypt"]);return async function(t,i){let n=await W6.encrypt({name:"AES-CTR",counter:i,length:go*8},e,t);return new Uint8Array(n)}}catch(e){if(e.name!=="NotSupportedError"&&!(r.length===24&&e.name==="OperationError"))throw e;F.printDebugError("Browser did not support operation: "+e.message)}return async function(e,t){return qX(r,t).encrypt(e)}}async function kA(r,e){if(r!==y.symmetric.aes128&&r!==y.symmetric.aes192&&r!==y.symmetric.aes256)throw new Error("EAX mode supports only AES cipher");let[t,i]=await Promise.all([UZ(e),RZ(e)]);return{encrypt:async function(n,s,o){let[a,c]=await Promise.all([t(X6,s),t(e1,o)]),l=await i(n,a),u=await t(t1,l);for(let f=0;f<xd;f++)u[f]^=c[f]^a[f];return F.concatUint8Array([l,u])},decrypt:async function(n,s,o){if(n.length<xd)throw new Error("Invalid EAX ciphertext");let a=n.subarray(0,-xd),c=n.subarray(-xd),[l,d,u]=await Promise.all([t(X6,s),t(e1,o),t(t1,a)]),f=u;for(let g=0;g<xd;g++)f[g]^=d[g]^l[g];if(!F.equalsUint8Array(c,f))throw new Error("Authentication tag mismatch");return await i(a,l)}}}function Z6(r){let e=0;for(let t=1;(r&t)===0;t<<=1)e++;return e}function wi(r,e){for(let t=0;t<r.length;t++)r[t]^=e[t];return r}function Ny(r,e){return wi(r.slice(),e)}async function SA(r,e){let{keySize:t}=It(r);if(!F.isAES(r)||e.length!==t)throw new Error("Unexpected algorithm or key size");let i=0,n=u=>YB(e,Hf,{disablePadding:!0}).encrypt(u),s=u=>YB(e,Hf,{disablePadding:!0}).decrypt(u),o;a();function a(){let u=n(Hf),f=F.double(u);o=[],o[0]=F.double(f),o.x=u,o.$=f}function c(u,f){let h=F.nbits(Math.max(u.length,f.length)/di|0)-1;for(let g=i+1;g<=h;g++)o[g]=F.double(o[g-1]);i=h}function l(u){if(!u.length)return Hf;let f=u.length/di|0,h=new Uint8Array(di),g=new Uint8Array(di);for(let p=0;p<f;p++)wi(h,o[Z6(p+1)]),wi(g,n(Ny(h,u))),u=u.subarray(di);if(u.length){wi(h,o.x);let p=new Uint8Array(di);p.set(u,0),p[u.length]=128,wi(p,h),wi(g,n(p))}return g}function d(u,f,h,g){let p=f.length/di|0;c(f,g);let I=F.concatUint8Array([Hf.subarray(0,LU-h.length),NZ,h]),m=I[di-1]&63;I[di-1]&=192;let w=n(I),B=F.concatUint8Array([w,Ny(w.subarray(0,8),w.subarray(1,9))]),C=F.shiftRight(B.subarray(0+(m>>3),17+(m>>3)),8-(m&7)).subarray(1),x=new Uint8Array(di),Q=new Uint8Array(f.length+ba),R,U=0;for(R=0;R<p;R++)wi(C,o[Z6(R+1)]),Q.set(wi(u(Ny(C,f)),C),U),wi(x,u===n?f:Q.subarray(U)),f=f.subarray(di),U+=di;if(f.length){wi(C,o.x);let D=n(C);Q.set(Ny(f,D),U);let b=new Uint8Array(di);b.set(u===n?f:Q.subarray(U,-ba),0),b[f.length]=128,wi(x,b),U+=f.length}let T=wi(n(wi(wi(x,C),o.$)),l(g));return Q.set(T,U),Q}return{encrypt:async function(u,f,h){return d(n,u,f,h)},decrypt:async function(u,f,h){if(u.length<ba)throw new Error("Invalid OCB ciphertext");let g=u.subarray(-ba);u=u.subarray(0,-ba);let p=d(s,u,f,h);if(F.equalsUint8Array(g,p.subarray(-ba)))return p.subarray(0,-ba);throw new Error("Authentication tag mismatch")}}}async function Nd(r,e){if(r!==y.symmetric.aes128&&r!==y.symmetric.aes192&&r!==y.symmetric.aes256)throw new Error("GCM mode supports only AES cipher");if(F.getNodeCrypto())return{encrypt:async function(t,i,n=new Uint8Array){let s=new eT.createCipheriv("aes-"+e.length*8+"-gcm",e,i);s.setAAD(n);let o=tT.concat([s.update(t),s.final(),s.getAuthTag()]);return new Uint8Array(o)},decrypt:async function(t,i,n=new Uint8Array){let s=new eT.createDecipheriv("aes-"+e.length*8+"-gcm",e,i);s.setAAD(n),s.setAuthTag(t.slice(t.length-Cd,t.length));let o=tT.concat([s.update(t.slice(0,t.length-Cd)),s.final()]);return new Uint8Array(o)}};if(F.getWebCrypto())try{let t=await IB.importKey("raw",e,{name:wB},!1,["encrypt","decrypt"]),i=navigator.userAgent.match(/Version\/13\.\d(\.\d)* Safari/)||navigator.userAgent.match(/Version\/(13|14)\.\d(\.\d)* Mobile\/\S* Safari/);return{encrypt:async function(n,s,o=new Uint8Array){if(i&&!n.length)return Uy(e,s,o).encrypt(n);let a=await IB.encrypt({name:wB,iv:s,additionalData:o,tagLength:Cd*8},t,n);return new Uint8Array(a)},decrypt:async function(n,s,o=new Uint8Array){if(i&&n.length===Cd)return Uy(e,s,o).decrypt(n);try{let a=await IB.decrypt({name:wB,iv:s,additionalData:o,tagLength:Cd*8},t,n);return new Uint8Array(a)}catch(a){if(a.name==="OperationError")throw new Error("Authentication tag mismatch")}}}}catch(t){if(t.name!=="NotSupportedError"&&!(e.length===24&&t.name==="OperationError"))throw t;F.printDebugError("Browser did not support operation: "+t.message)}return{encrypt:async function(t,i,n){return Uy(e,i,n).encrypt(t)},decrypt:async function(t,i,n){return Uy(e,i,n).decrypt(t)}}}function uo(r,e=!1){switch(r){case y.aead.eax:return kA;case y.aead.ocb:return SA;case y.aead.gcm:return Nd;case y.aead.experimentalGCM:if(!e)throw new Error("Unexpected non-standard `experimentalGCM` AEAD algorithm provided in `config.preferredAEADAlgorithm`: use `gcm` instead");return Nd;default:throw new Error("Unsupported AEAD mode")}}function MZ(r,e){let t=0;switch(r){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaEncrypt:case y.publicKey.rsaSign:{let i=F.readMPI(e.subarray(t));return t+=i.length+2,{read:t,signatureParams:{s:i}}}case y.publicKey.dsa:case y.publicKey.ecdsa:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,signatureParams:{r:i,s:n}}}case y.publicKey.eddsaLegacy:{let i=F.readMPI(e.subarray(t));t+=i.length+2;let n=F.readMPI(e.subarray(t));return t+=n.length+2,{read:t,signatureParams:{r:i,s:n}}}case y.publicKey.ed25519:case y.publicKey.ed448:{let i=2*KI(r),n=F.readExactSubarray(e,t,t+i);return t+=n.length,{read:t,signatureParams:{RS:n}}}default:throw new ft("Unknown signature algorithm.")}}async function LZ(r,e,t,i,n,s){switch(r){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaEncrypt:case y.publicKey.rsaSign:{let{n:o,e:a}=i,c=F.leftPad(t.s,o.length);return nX(e,n,c,o,a,s)}case y.publicKey.dsa:{let{g:o,p:a,q:c,y:l}=i,{r:d,s:u}=t;return gZ(e,d,u,s,o,a,c,l)}case y.publicKey.ecdsa:{let{oid:o,Q:a}=i,c=new Si(o).payloadSize,l=F.leftPad(t.r,c),d=F.leftPad(t.s,c);return j1(o,e,{r:l,s:d},n,a,s)}case y.publicKey.eddsaLegacy:{let{oid:o,Q:a}=i,c=new Si(o).payloadSize,l=F.leftPad(t.r,c),d=F.leftPad(t.s,c);return TU(o,e,{r:l,s:d},n,a,s)}case y.publicKey.ed25519:case y.publicKey.ed448:{let{A:o}=i;return P1(r,e,t,n,o,s)}default:throw new Error("Unknown signature algorithm.")}}async function HZ(r,e,t,i,n,s){if(!t||!i)throw new Error("Missing key parameters");switch(r){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaEncrypt:case y.publicKey.rsaSign:{let{n:o,e:a}=t,{d:c,p:l,q:d,u}=i;return{s:await iX(e,n,o,a,c,l,d,u,s)}}case y.publicKey.dsa:{let{g:o,p:a,q:c}=t,{x:l}=i;return hZ(e,s,o,a,c,l)}case y.publicKey.elgamal:throw new Error("Signing with Elgamal is not defined in the OpenPGP standard.");case y.publicKey.ecdsa:{let{oid:o,Q:a}=t,{d:c}=i;return J1(o,e,n,a,c,s)}case y.publicKey.eddsaLegacy:{let{oid:o,Q:a}=t,{seed:c}=i;return PU(o,e,n,a,c,s)}case y.publicKey.ed25519:case y.publicKey.ed448:{let{A:o}=t,{seed:a}=i;return F1(r,e,n,o,a,s)}default:throw new Error("Unknown signature algorithm.")}}function mI(r,e=pe){switch(r){case y.s2k.argon2:return new r1(e);case y.s2k.iterated:case y.s2k.gnu:case y.s2k.salted:case y.s2k.simple:return new i1(r,e);default:throw new ft("Unsupported S2K type")}}function HU(r){let{s2kType:e}=r;if(!jZ.has(e))throw new Error("The provided `config.s2kType` value is not allowed");return mI(e,r)}function yt(r,e,t){let i=[];return i.push(HI(t.length+1)),i.push(new Uint8Array([(e?128:0)|r])),i.push(t),F.concat(i)}function BB(r){switch(r){case y.hash.sha256:return 16;case y.hash.sha384:return 24;case y.hash.sha512:return 32;case y.hash.sha224:return 16;case y.hash.sha3_256:return 16;case y.hash.sha3_512:return 32;default:throw new Error("Unsupported hash function")}}function Aee(r,e){if(!e[r]){let t;try{t=y.read(y.packet,r)}catch{throw new Sd(`Unknown packet type with tag: ${r}`)}throw new Error(`Packet not allowed in this context: ${t}`)}return new e[r]}function gee(r){let t=Fn(r);return new ReadableStream({async pull(i){try{let{value:n,done:s}=await t.read();if(s){i.close();return}for(let o=0;o<=n.length;o+=65536)(!o||o<n.length)&&i.enqueue(n.subarray(o,o+65536))}catch(n){i.error(n)}}},{highWaterMark:0})}function II(r,e){return t=>{let i;if(St(t)?i=new ReadableStream({async start(c){try{c.enqueue(await Xt(t)),c.close()}catch(l){c.error(l)}}}):or(t)?i=t:i=EA(t),i=gee(i),r)try{let c=r();return i.pipeThrough(c)}catch(c){if(c.name!=="TypeError")throw c}let n=Fn(i),s=new e,o=!1,a=!1;return new ReadableStream({start(c){s.ondata=(l,d)=>{c.enqueue(l),o=!0,d&&(c.close(),a=!0)}},async pull(){for(o=!1;!o&&!a;){let{done:c,value:l}=await n.read();if(c){s.push(new Uint8Array,!0);return}else l.length&&s.push(l)}}},{highWaterMark:0})}}function pee(){return async function(r){let{default:e}=await Promise.resolve().then(function(){return zie});return e(EA(r))}}async function xI(r,e,t,i){let n=r instanceof Od&&r.version===2,s=!n&&r.constructor.tag===y.packet.aeadEncryptedData;if(!n&&!s)throw new Error("Unexpected packet type");let o=uo(r.aeadAlgorithm,s),a=e==="decrypt"?o.tagLength:0,c=e==="encrypt"?o.tagLength:0,l=2**(r.chunkSizeByte+6)+a,d=s?8:0,u=new ArrayBuffer(13+d),f=new Uint8Array(u,0,5+d),h=new Uint8Array(u),g=new DataView(u),p=new Uint8Array(u,5,8);f.set([192|r.constructor.tag,r.version,r.cipherAlgorithm,r.aeadAlgorithm,r.chunkSizeByte],0);let I=0,m=Promise.resolve(),w=0,B=0,C,x;if(n){let{keySize:R}=It(r.cipherAlgorithm),{ivLength:U}=o,T=new Uint8Array(u,0,5),D=await Fa(y.hash.sha256,t,r.salt,T,R+U);t=D.subarray(0,R),C=D.subarray(R),C.fill(0,C.length-8),x=new DataView(C.buffer,C.byteOffset,C.byteLength)}else C=r.iv;let Q=await o(r.cipherAlgorithm,t);return Ua(i,async(R,U)=>{if(F.isStream(R)!=="array"){let b=new TransformStream({},{highWaterMark:F.getHardwareConcurrency()*2**(r.chunkSizeByte+6),size:_=>_.length});Kd(b.readable,U),U=b.writable}let T=Fn(R),D=Gi(U);try{for(;;){let b=await T.readBytes(l+a)||new Uint8Array,_=b.subarray(b.length-a);b=b.subarray(0,b.length-a);let v,E,P;if(n)P=C;else{P=C.slice();for(let N=0;N<8;N++)P[C.length-8+N]^=p[N]}if(!I||b.length?(T.unshift(_),v=Q[e](b,P,f),v.catch(()=>{}),B+=b.length-a+c):(g.setInt32(5+d+4,w),v=Q[e](_,P,h),v.catch(()=>{}),B+=c,E=!0),w+=b.length-a,m=m.then(()=>v).then(async N=>{await D.ready,await D.write(N),B-=N.length}).catch(N=>D.abort(N)),(E||B>D.desiredSize)&&await m,!E)n?x.setInt32(C.length-4,++I):g.setInt32(9,++I);else{await D.close();break}}}catch(b){await D.ready.catch(()=>{}),await D.abort(b)}})}function cT(r,e,t,i){switch(e){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.elgamal:case y.publicKey.ecdh:return F.concatUint8Array([new Uint8Array(r===6?[]:[t]),i,F.writeChecksum(i.subarray(i.length%8))]);case y.publicKey.x25519:case y.publicKey.x448:return i;default:throw new Error("Unsupported public key algorithm")}}function xee(r,e,t,i){switch(e){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.elgamal:case y.publicKey.ecdh:{let n=t.subarray(0,t.length-2),s=t.subarray(t.length-2),o=F.writeChecksum(n.subarray(n.length%8)),a=o[0]===s[0]&o[1]===s[1],c=r===6?{sessionKeyAlgorithm:null,sessionKey:n}:{sessionKeyAlgorithm:n[0],sessionKey:n.subarray(1)};if(i){let l=a&c.sessionKeyAlgorithm===i.sessionKeyAlgorithm&c.sessionKey.length===i.sessionKey.length;return{sessionKey:F.selectUint8Array(l,c.sessionKey,i.sessionKey),sessionKeyAlgorithm:r===6?null:F.selectUint8(l,c.sessionKeyAlgorithm,i.sessionKeyAlgorithm)}}else{if(a&&(r===6||y.read(y.symmetric,c.sessionKeyAlgorithm)))return c;throw new Error("Decryption error")}}case y.publicKey.x25519:case y.publicKey.x448:return{sessionKeyAlgorithm:null,sessionKey:t};default:throw new Error("Unsupported public key algorithm")}}async function bB(r,e,t,i,n,s,o,a){if(e.type==="argon2"&&!n)throw new Error("Using Argon2 S2K without AEAD is not allowed");if(e.type==="simple"&&r===6)throw new Error("Using Simple S2K with version 6 keys is not allowed");let{keySize:c}=It(i),l=await e.produceKey(t,c,a);if(!n||r===5||o)return l;let d=F.concatUint8Array([s,new Uint8Array([r,i,n])]);return Fa(y.hash.sha256,l,new Uint8Array,d,c)}async function VU(r,e){let t=new BI(r.date,e);return t.packets=null,t.algorithm=y.write(y.publicKey,r.algorithm),await t.generate(r.rsaBits,r.curve),await t.computeFingerprintAndKeyID(),t}async function Eee(r,e){let t=new uA(r.date,e);return t.packets=null,t.algorithm=y.write(y.publicKey,r.algorithm),await t.generate(r.rsaBits,r.curve,r.config),await t.computeFingerprintAndKeyID(),t}async function Sn(r,e,t,i,n=new Date,s){let o,a;for(let c=r.length-1;c>=0;c--)try{(!o||r[c].created>=o.created)&&(await r[c].verify(e,t,i,n,void 0,s),o=r[c])}catch(l){a=l}if(!o)throw F.wrapError(`Could not find valid ${y.read(y.signature,t)} signature in key ${e.getKeyID().toHex()}`.replace("certGeneric ","self-").replace(/([a-z])([A-Z])/g,(c,l,d)=>l+" "+d.toLowerCase()),a);return o}function u1(r,e,t=new Date){let i=F.normalizeDate(t);if(i!==null){let n=vI(r,e);return!(r.created<=i&&i<n)}return!1}async function YU(r,e,t,i){let n={};n.key=e,n.bind=r;let s={signatureType:y.signature.subkeyBinding};return t.sign?(s.keyFlags=[y.keyFlags.signData],s.embeddedSignature=await As(n,[],r,{signatureType:y.signature.keyBinding},t.date,void 0,void 0,void 0,i)):s.keyFlags=[y.keyFlags.encryptCommunication|y.keyFlags.encryptStorage],t.keyExpirationTime>0&&(s.keyExpirationTime=t.keyExpirationTime,s.keyNeverExpires=!1),await As(n,[],e,s,t.date,void 0,void 0,void 0,i)}async function Bee(r,e,t=new Date,i=[],n){let s=y.hash.sha256,o=n.preferredHashAlgorithm,a=await Promise.all(r.map(async(f,h)=>(await f.getPrimarySelfSignature(t,i[h],n)).preferredHashAlgorithms||[])),c=new Map;for(let f of a)for(let h of f)try{let g=y.write(y.hash,h);c.set(g,c.has(g)?c.get(g)+1:1)}catch{}let l=f=>r.length===0||c.get(f)===r.length||f===s,d=()=>{if(c.size===0)return s;let h=Array.from(c.keys()).filter(g=>l(g)).sort((g,p)=>pr(g)-pr(p))[0];return pr(h)>=pr(s)?h:s};if(new Set([y.publicKey.ecdsa,y.publicKey.eddsaLegacy,y.publicKey.ed25519,y.publicKey.ed448]).has(e.algorithm)){let f=EZ(e.algorithm,e.publicParams.oid),h=l(o),g=pr(o)>=pr(f);if(h&&g)return o;{let p=d();return pr(p)>=pr(f)?p:f}}return l(o)?o:d()}async function bee(r=[],e=new Date,t=[],i=pe){let n=y.compression.uncompressed,s=i.preferredCompressionAlgorithm;return(await Promise.all(r.map(async function(a,c){let d=(await a.getPrimarySelfSignature(e,t[c],i)).preferredCompressionAlgorithms;return!!d&&d.indexOf(s)>=0}))).every(Boolean)?s:n}async function vee(r=[],e=new Date,t=[],i=pe){let n=await Promise.all(r.map((c,l)=>c.getPrimarySelfSignature(e,t[l],i)));if(r.length?n.every(c=>c.features&&c.features[0]&y.features.seipdv2):i.aeadProtect){let c={symmetricAlgo:y.symmetric.aes128,aeadAlgo:y.aead.ocb},l=[{symmetricAlgo:i.preferredSymmetricAlgorithm,aeadAlgo:i.preferredAEADAlgorithm},{symmetricAlgo:i.preferredSymmetricAlgorithm,aeadAlgo:y.aead.ocb},{symmetricAlgo:y.symmetric.aes128,aeadAlgo:i.preferredAEADAlgorithm}];for(let d of l)if(n.every(u=>u.preferredCipherSuites&&u.preferredCipherSuites.some(f=>f[0]===d.symmetricAlgo&&f[1]===d.aeadAlgo)))return d;return c}let o=y.symmetric.aes128,a=i.preferredSymmetricAlgorithm;return{symmetricAlgo:n.every(c=>c.preferredSymmetricAlgorithms&&c.preferredSymmetricAlgorithms.includes(a))?a:o,aeadAlgo:void 0}}async function As(r,e,t,i,n,s,o=[],a=!1,c){if(t.isDummy())throw new Error("Cannot sign with a gnu-dummy key.");if(!t.isDecrypted())throw new Error("Signing key is not decrypted.");let l=new qr;return Object.assign(l,i),l.publicKeyAlgorithm=t.algorithm,l.hashAlgorithm=await Bee(e,t,n,s,c),l.rawNotations=[...o],await l.sign(t,r,n,a,c),l}async function Gc(r,e,t,i=new Date,n){r=r[t],r&&(e[t].length?await Promise.all(r.map(async function(s){!s.isExpired(i)&&(!n||await n(s))&&!e[t].some(function(o){return F.equalsUint8Array(o.writeParams(),s.writeParams())})&&e[t].push(s)})):e[t]=r)}async function Md(r,e,t,i,n,s,o=new Date,a){s=s||r;let c=[];return await Promise.all(i.map(async function(l){try{if(!n||l.issuerKeyID.equals(n.issuerKeyID)){let d=![y.reasonForRevocation.keyRetired,y.reasonForRevocation.keySuperseded,y.reasonForRevocation.userIDInvalid].includes(l.reasonForRevocationFlag);await l.verify(s,e,t,d?null:o,!1,a),c.push(l.issuerKeyID)}}catch{}})),n?(n.revoked=c.some(l=>l.equals(n.issuerKeyID))?!0:n.revoked||!1,n.revoked):c.length>0}function vI(r,e){let t;return e.keyNeverExpires===!1&&(t=r.created.getTime()+e.keyExpirationTime*1e3),t?new Date(t):1/0}function f1(r,e={}){switch(r.type=r.type||e.type,r.curve=r.curve||e.curve,r.rsaBits=r.rsaBits||e.rsaBits,r.keyExpirationTime=r.keyExpirationTime!==void 0?r.keyExpirationTime:e.keyExpirationTime,r.passphrase=F.isString(r.passphrase)?r.passphrase:e.passphrase,r.date=r.date||e.date,r.sign=r.sign||!1,r.type){case"ecc":try{r.curve=y.write(y.curve,r.curve)}catch{throw new Error("Unknown curve")}(r.curve===y.curve.ed25519Legacy||r.curve===y.curve.curve25519Legacy||r.curve==="ed25519"||r.curve==="curve25519")&&(r.curve=r.sign?y.curve.ed25519Legacy:y.curve.curve25519Legacy),r.sign?r.algorithm=r.curve===y.curve.ed25519Legacy?y.publicKey.eddsaLegacy:y.publicKey.ecdsa:r.algorithm=y.publicKey.ecdh;break;case"curve25519":r.algorithm=r.sign?y.publicKey.ed25519:y.publicKey.x25519;break;case"curve448":r.algorithm=r.sign?y.publicKey.ed448:y.publicKey.x448;break;case"rsa":r.algorithm=y.publicKey.rsaEncryptSign;break;default:throw new Error(`Unsupported key type ${r.type}`)}return r}function lT(r,e,t){switch(r.algorithm){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:case y.publicKey.dsa:case y.publicKey.ecdsa:case y.publicKey.eddsaLegacy:case y.publicKey.ed25519:case y.publicKey.ed448:if(!e.keyFlags&&!t.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!e.keyFlags||(e.keyFlags[0]&y.keyFlags.signData)!==0;default:return!1}}function dT(r,e,t){switch(r.algorithm){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaEncrypt:case y.publicKey.elgamal:case y.publicKey.ecdh:case y.publicKey.x25519:case y.publicKey.x448:if(!e.keyFlags&&!t.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");return!e.keyFlags||(e.keyFlags[0]&y.keyFlags.encryptCommunication)!==0||(e.keyFlags[0]&y.keyFlags.encryptStorage)!==0;default:return!1}}function uT(r,e,t){if(!e.keyFlags&&!t.allowMissingKeyFlags)throw new Error("None of the key flags is set: consider passing `config.allowMissingKeyFlags`");switch(r.algorithm){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaEncrypt:case y.publicKey.elgamal:case y.publicKey.ecdh:case y.publicKey.x25519:case y.publicKey.x448:return(!e.keyFlags||(e.keyFlags[0]&y.keyFlags.signData)!==0)&&t.allowInsecureDecryptionWithSigningKeys?!0:!e.keyFlags||(e.keyFlags[0]&y.keyFlags.encryptCommunication)!==0||(e.keyFlags[0]&y.keyFlags.encryptStorage)!==0;default:return!1}}function ka(r,e){let t=y.write(y.publicKey,r.algorithm),i=r.getAlgorithmInfo();if(e.rejectPublicKeyAlgorithms.has(t))throw new Error(`${i.algorithm} keys are considered too weak.`);switch(t){case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:case y.publicKey.rsaEncrypt:if(i.bits<e.minRSABits)throw new Error(`RSA keys shorter than ${e.minRSABits} bits are considered too weak.`);break;case y.publicKey.ecdsa:case y.publicKey.eddsaLegacy:case y.publicKey.ecdh:if(e.rejectCurves.has(i.curve))throw new Error(`Support for ${i.algorithm} keys using curve ${i.curve} is disabled.`);break}}function See(r){switch(y.write(y.publicKey,r)){case y.publicKey.rsaEncrypt:case y.publicKey.rsaEncryptSign:case y.publicKey.rsaSign:case y.publicKey.dsa:return"rsa";case y.publicKey.ecdsa:case y.publicKey.eddsaLegacy:return"ecc";case y.publicKey.ed25519:return"curve25519";case y.publicKey.ed448:return"curve448";default:throw new Error("Unsupported algorithm")}}async function Qee(r,e){r.sign=!0,r=f1(r),r.subkeys=r.subkeys.map((o,a)=>f1(r.subkeys[a],r));let t=[Eee(r,e)];t=t.concat(r.subkeys.map(o=>VU(o,e)));let i=await Promise.all(t),n=await _ee(i[0],i.slice(1),r,e),s=await n.getRevocationCertificate(r.date,e);return n.revocationSignatures=[],{key:n,revocationCertificate:s}}async function _ee(r,e,t,i){t.passphrase&&await r.encrypt(t.passphrase,i),await Promise.all(e.map(async function(c,l){let d=t.subkeys[l].passphrase;d&&await c.encrypt(d,i)}));let n=new Ct;n.push(r);function s(c,l){return[l,...c.filter(d=>d!==l)]}function o(){let c={};c.keyFlags=[y.keyFlags.certifyKeys|y.keyFlags.signData];let l=s([y.symmetric.aes256,y.symmetric.aes128],i.preferredSymmetricAlgorithm);if(c.preferredSymmetricAlgorithms=l,i.aeadProtect){let d=s([y.aead.gcm,y.aead.eax,y.aead.ocb],i.preferredAEADAlgorithm);c.preferredCipherSuites=d.flatMap(u=>l.map(f=>[f,u]))}return c.preferredHashAlgorithms=s([y.hash.sha512,y.hash.sha256,y.hash.sha3_512,y.hash.sha3_256],i.preferredHashAlgorithm),c.preferredCompressionAlgorithms=s([y.compression.uncompressed,y.compression.zlib,y.compression.zip],i.preferredCompressionAlgorithm),c.features=[0],c.features[0]|=y.features.modificationDetection,i.aeadProtect&&(c.features[0]|=y.features.seipdv2),t.keyExpirationTime>0&&(c.keyExpirationTime=t.keyExpirationTime,c.keyNeverExpires=!1),c}if(r.version===6){let c={key:r},l=o();l.signatureType=y.signature.key;let d=await As(c,[],r,l,t.date,void 0,t.signatureNotations,void 0,i);n.push(d)}await Promise.all(t.userIDs.map(async function(c,l){let d=EI.fromObject(c),u={userID:d,key:r},f=r.version!==6?o():{};f.signatureType=y.signature.certPositive,l===0&&(f.isPrimaryUserID=!0);let h=await As(u,[],r,f,t.date,void 0,t.signatureNotations,void 0,i);return{userIDPacket:d,signaturePacket:h}})).then(c=>{c.forEach(({userIDPacket:l,signaturePacket:d})=>{n.push(l),n.push(d)})}),await Promise.all(e.map(async function(c,l){let d=t.subkeys[l],u=await YU(c,r,d,i);return{secretSubkeyPacket:c,subkeySignaturePacket:u}})).then(c=>{c.forEach(({secretSubkeyPacket:l,subkeySignaturePacket:d})=>{n.push(l),n.push(d)})});let a={key:r};return n.push(await As(a,[],r,{signatureType:y.signature.keyRevocation,reasonForRevocationFlag:y.reasonForRevocation.noReason,reasonForRevocationString:""},t.date,void 0,void 0,void 0,i)),t.passphrase&&r.clearPrivateParams(),e.map(function(c,l){t.subkeys[l].passphrase&&c.clearPrivateParams()}),new DI(n)}async function tw({armoredKey:r,binaryKey:e,config:t,...i}){if(t={...pe,...t},!r&&!e)throw new Error("readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`");if(r&&!F.isString(r))throw new Error("readPrivateKey: options.armoredKey must be a string");if(e&&!F.isUint8Array(e))throw new Error("readPrivateKey: options.binaryKey must be a Uint8Array");let n=Object.keys(i);if(n.length>0)throw new Error(`Unknown option: ${n.join(", ")}`);let s;if(r){let{type:c,data:l}=await LI(r);if(c!==y.armor.privateKey)throw new Error("Armored text not of type private key");s=l}else s=e;let o=await Ct.fromBinary(s,Dee,t),a=o.indexOfTag(y.packet.publicKey,y.packet.secretKey);for(let c=0;c<a.length;c++){if(o[a[c]].constructor.tag===y.packet.publicKey)continue;let l=o.slice(a[c],a[c+1]);return new DI(l)}throw new Error("No secret key packet found")}async function hT(r,e,t=[],i=null,n=[],s=new Date,o=[],a=[],c=[],l=!1,d=pe){let u=new Ct,f=r.text===null?y.signature.binary:y.signature.text;if(await Promise.all(e.map(async(h,g)=>{let p=o[g];if(!h.isPrivate())throw new Error("Need private key for signing");let I=await h.getSigningKey(n[g],s,p,d);return As(r,t.length?t:[h],I.keyPacket,{signatureType:f},s,a,c,l,d)})).then(h=>{u.push(...h)}),i){let h=i.packets.filterByTag(y.packet.signature);u.push(...h)}return u}function Uee(r,e,t,i=new Date,n=!1,s=pe){let o,a;for(let u of t){let f=u.getKeys(r.issuerKeyID);if(f.length>0){o=u,a=f[0];break}}let l=r instanceof cn?r.correspondingSig:r,d={keyID:r.issuerKeyID,verified:(async()=>{if(!a)throw new Error(`Could not find signing key with key ID ${r.issuerKeyID.toHex()}`);await r.verify(a.keyPacket,r.signatureType,e[0],i,n,s);let u=await l;if(a.getCreationTime()>u.created)throw new Error("Key is newer than the signature");try{await o.getSigningKey(a.getKeyID(),u.created,void 0,s)}catch(f){if(s.allowInsecureVerificationWithReformattedKeys&&f.message.match(/Signature creation time is in the future/))await o.getSigningKey(a.getKeyID(),i,void 0,s);else throw f}return!0})(),signature:(async()=>{let u=await l,f=new Ct;return u&&f.push(u),new bI(f)})()};return d.signature.catch(()=>{}),d.verified.catch(()=>{}),d}function vB(r,e,t,i=new Date,n=!1,s=pe){return r.filter(o=>["text","binary"].includes(y.read(y.signature,o.signatureType))).map(o=>Uee(o,e,t,i,n,s))}async function DA({armoredMessage:r,binaryMessage:e,config:t,...i}){t={...pe,...t};let n=r||e;if(!n)throw new Error("readMessage: must pass options object containing `armoredMessage` or `binaryMessage`");if(r&&!F.isString(r)&&!F.isStream(r))throw new Error("readMessage: options.armoredMessage must be a string or stream");if(e&&!F.isUint8Array(e)&&!F.isStream(e))throw new Error("readMessage: options.binaryMessage must be a Uint8Array or stream");let s=Object.keys(i);if(s.length>0)throw new Error(`Unknown option: ${s.join(", ")}`);let o=F.isStream(n);if(r){let{type:l,data:d}=await LI(n);if(l!==y.armor.message)throw new Error("Armored text not of type message");n=d}let a=await Ct.fromBinary(n,Fee,t,new qd),c=new AA(a);return c.fromStream=o,c}async function WU({text:r,binary:e,filename:t,date:i=new Date,format:n=r!==void 0?"utf8":"binary",...s}){let o=r!==void 0?r:e;if(o===void 0)throw new Error("createMessage: must pass options object containing `text` or `binary`");if(r&&!F.isString(r)&&!F.isStream(r))throw new Error("createMessage: options.text must be a string or stream");if(e&&!F.isUint8Array(e)&&!F.isStream(e))throw new Error("createMessage: options.binary must be a Uint8Array or stream");let a=Object.keys(s);if(a.length>0)throw new Error(`Unknown option: ${a.join(", ")}`);let c=F.isStream(o),l=new Ta(i);r!==void 0?l.setText(o,y.write(y.literal,n)):l.setBytes(o,y.write(y.literal,n)),t!==void 0&&l.setFilename(t);let d=new Ct;d.push(l);let u=new AA(d);return u.fromStream=c,u}async function W1({userIDs:r=[],passphrase:e,type:t,curve:i,rsaBits:n=4096,keyExpirationTime:s=0,date:o=new Date,subkeys:a=[{}],format:c="armored",signatureNotations:l=[],config:d,...u}){d={...pe,...d},QA(d),!t&&!i?(t=d.v6Keys?"curve25519":"ecc",i="curve25519Legacy"):(t=t||"ecc",i=i||"curve25519Legacy"),r=Zr(r),l=Zr(l);let f=Object.keys(u);if(f.length>0)throw new Error(`Unknown option: ${f.join(", ")}`);if(r.length===0&&!d.v6Keys)throw new Error("UserIDs are required for V4 keys");if(t==="rsa"&&n<d.minRSABits)throw new Error(`rsaBits should be at least ${d.minRSABits}, got: ${n}`);let h={userIDs:r,passphrase:e,type:t,rsaBits:n,curve:i,keyExpirationTime:s,date:o,subkeys:a,signatureNotations:l};try{let{key:g,revocationCertificate:p}=await Qee(h,d);return g.getKeys().forEach(({keyPacket:I})=>ka(I,d)),{privateKey:gT(g,c,d),publicKey:gT(g.toPublic(),c,d),revocationCertificate:p}}catch(g){throw F.wrapError("Error generating keypair",g)}}async function rw({privateKey:r,passphrase:e,config:t,...i}){t={...pe,...t},QA(t);let n=Object.keys(i);if(n.length>0)throw new Error(`Unknown option: ${n.join(", ")}`);if(!r.isPrivate())throw new Error("Cannot decrypt a public key");let s=r.clone(!0),o=F.isArray(e)?e:[e];try{return await Promise.all(s.getKeys().map(a=>F.anyPromise(o.map(c=>a.keyPacket.decrypt(c,t))))),await s.validate(t),s}catch(a){throw s.clearPrivateParams(),F.wrapError("Error decrypting private key",a)}}async function XU({message:r,encryptionKeys:e,signingKeys:t,passwords:i,sessionKey:n,format:s="armored",signature:o=null,wildcard:a=!1,signingKeyIDs:c=[],encryptionKeyIDs:l=[],date:d=new Date,signingUserIDs:u=[],encryptionUserIDs:f=[],signatureNotations:h=[],config:g,...p}){if(g={...pe,...g},QA(g),X1(r),Ree(s),e=Zr(e),t=Zr(t),i=Zr(i),c=Zr(c),l=Zr(l),u=Zr(u),f=Zr(f),h=Zr(h),p.detached)throw new Error("The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.");if(p.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead");if(p.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead");if(p.armor!==void 0)throw new Error("The `armor` option has been removed from openpgp.encrypt, pass `format` instead.");let I=Object.keys(p);if(I.length>0)throw new Error(`Unknown option: ${I.join(", ")}`);t||(t=[]);try{if((t.length||o)&&(r=await r.sign(t,e,o,c,d,u,l,h,g)),r=r.compress(await bee(e,d,f,g),g),r=await r.encrypt(e,i,n,a,l,d,f,g),s==="object")return r;let w=s==="armored"?r.armor(g):r.write();return await eR(w)}catch(m){throw F.wrapError("Error encrypting message",m)}}async function iw({message:r,decryptionKeys:e,passwords:t,sessionKeys:i,verificationKeys:n,expectSigned:s=!1,format:o="utf8",signature:a=null,date:c=new Date,config:l,...d}){if(l={...pe,...l},QA(l),X1(r),n=Zr(n),e=Zr(e),t=Zr(t),i=Zr(i),d.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead");if(d.publicKeys)throw new Error("The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead");let u=Object.keys(d);if(u.length>0)throw new Error(`Unknown option: ${u.join(", ")}`);try{let f=await r.decrypt(e,t,i,c,l);n||(n=[]);let h={};if(h.signatures=a?await f.verifyDetached(a,n,c,l):await f.verify(n,c,l),h.data=o==="binary"?f.getLiteralData():f.getText(),h.filename=f.getFilename(),qee(h,r,...new Set([f,f.unwrapCompressed()])),s){if(n.length===0)throw new Error("Verification keys are required to verify message signatures");if(h.signatures.length===0)throw new Error("Message is not signed");h.data=ui([h.data,Zc(async()=>(await F.anyPromise(h.signatures.map(g=>g.verified)),o==="binary"?new Uint8Array:""))])}return h.data=await eR(h.data),h}catch(f){throw F.wrapError("Error decrypting message",f)}}async function ZU({message:r,decryptionKeys:e,passwords:t,date:i=new Date,config:n,...s}){if(n={...pe,...n},QA(n),X1(r),e=Zr(e),t=Zr(t),s.privateKeys)throw new Error("The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead");let o=Object.keys(s);if(o.length>0)throw new Error(`Unknown option: ${o.join(", ")}`);try{return await r.decryptSessionKeys(e,t,void 0,i,n)}catch(a){throw F.wrapError("Error decrypting session keys",a)}}function X1(r){if(!(r instanceof AA))throw new Error("Parameter [message] needs to be of type Message")}function Ree(r){if(r!=="armored"&&r!=="binary"&&r!=="object")throw new Error(`Unsupported format ${r}`)}function QA(r){let e=Object.keys(r);if(e.length!==Nee){for(let t of e)if(pe[t]===void 0)throw new Error(`Unknown config property: ${t}`)}}function Zr(r){return r&&!F.isArray(r)&&(r=[r]),r}async function eR(r){return F.isStream(r)==="array"?Xt(r):r}function qee(r,e,...t){r.data=Ua(e.packets.stream,async(i,n)=>{await Kd(r.data,n,{preventClose:!0});let s=Gi(n);try{await Xt(i,o=>o),await Promise.all(t.map(o=>Xt(o.packets.stream,a=>a))),await s.close()}catch(o){await s.abort(o)}})}function gT(r,e,t){switch(e){case"object":return r;case"armored":return r.armor(t);case"binary":return r.write();default:throw new Error(`Unsupported format ${e}`)}}function _A(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function hA(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function ps(r,...e){if(!_A(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function tR(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");hA(r.outputLen),hA(r.blockLen)}function Ld(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function rR(r,e){ps(r);let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function Oee(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function ln(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function kB(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function rs(r,e){return r<<32-e|r>>>e}function Da(r,e){return r<<e|r>>>32-e>>>0}function Lee(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function Hee(r){for(let e=0;e<r.length;e++)r[e]=Lee(r[e]);return r}function zc(r){if(ps(r),iR)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=Kee[r[t]];return e}function mT(r){if(r>=Zs._0&&r<=Zs._9)return r-Zs._0;if(r>=Zs.A&&r<=Zs.F)return r-(Zs.A-10);if(r>=Zs.a&&r<=Zs.f)return r-(Zs.a-10)}function QI(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(iR)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let i=new Uint8Array(t);for(let n=0,s=0;n<t;n++,s+=2){let o=mT(r.charCodeAt(s)),a=mT(r.charCodeAt(s+1));if(o===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}i[n]=o*16+a}return i}function Gee(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}function FA(r){return typeof r=="string"&&(r=Gee(r)),ps(r),r}function Dn(...r){let e=0;for(let i=0;i<r.length;i++){let n=r[i];ps(n),e+=n.length}let t=new Uint8Array(e);for(let i=0,n=0;i<r.length;i++){let s=r[i];t.set(s,n),n+=s.length}return t}function po(r){let e=i=>r().update(FA(i)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function zee(r){let e=(i,n)=>r(n).update(FA(i)).digest(),t=r({});return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=i=>r(i),e}function nw(r=32){if(pd&&typeof pd.getRandomValues=="function")return pd.getRandomValues(new Uint8Array(r));if(pd&&typeof pd.randomBytes=="function")return Uint8Array.from(pd.randomBytes(r));throw new Error("crypto.getRandomValues must be defined")}function Yc(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}"`;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function _n(r,e,t=""){let i=_A(r),n=r?.length,s=e!==void 0;if(!i||s&&n!==e){let o=t&&`"${t}" `,a=s?` of length ${e}`:"",c=i?`length=${n}`:`type=${typeof r}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return r}function Oy(r){let e=r.toString(16);return e.length&1?"0"+e:e}function nR(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Z1:BigInt("0x"+r)}function sw(r){return nR(zc(r))}function Wc(r){return ps(r),nR(zc(Uint8Array.from(r).reverse()))}function eb(r,e){return QI(r.toString(16).padStart(e*2,"0"))}function tb(r,e){return eb(r,e).reverse()}function vt(r,e,t){let i;if(typeof e=="string")try{i=QI(e)}catch(s){throw new Error(r+" must be hex string or Uint8Array, cause: "+s)}else if(_A(e))i=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");let n=i.length;if(typeof t=="number"&&n!==t)throw new Error(r+" of length "+t+" expected, got "+n);return i}function yT(r){return Uint8Array.from(r)}function jee(r){return Uint8Array.from(r,(e,t)=>{let i=e.charCodeAt(0);if(e.length!==1||i>127)throw new Error(`string contains non-ASCII character "${r[t]}" with code ${i} at position ${t}`);return i})}function $ee(r,e,t){return SB(r)&&SB(e)&&SB(t)&&e<=r&&r<t}function pA(r,e,t,i){if(!$ee(e,t,i))throw new Error("expected valid "+r+": "+t+" <= n < "+i+", got "+e)}function sR(r){let e;for(e=0;r>Z1;r>>=h1,e+=1);return e}function Vee(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let i=h=>new Uint8Array(h),n=h=>Uint8Array.of(h),s=i(r),o=i(r),a=0,c=()=>{s.fill(1),o.fill(0),a=0},l=(...h)=>t(o,s,...h),d=(h=i(0))=>{o=l(n(0),h),s=l(),h.length!==0&&(o=l(n(1),h),s=l())},u=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let h=0,g=[];for(;h<e;){s=l();let p=s.slice();g.push(p),h+=s.length}return Dn(...g)};return(h,g)=>{c(),d(h);let p;for(;!(p=g(u()));)d();return c(),p}}function zd(r,e,t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function i(n,s,o){let a=r[n];if(o&&a===void 0)return;let c=typeof a;if(c!==s||a===null)throw new Error(`param "${n}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([n,s])=>i(n,s,!1)),Object.entries(t).forEach(([n,s])=>i(n,s,!0))}function _I(r){let e=new WeakMap;return(t,...i)=>{let n=e.get(t);if(n!==void 0)return n;let s=r(t,...i);return e.set(t,s),s}}function mr(r,e){let t=r%e;return t>=Ei?t:e+t}function bt(r,e,t){let i=r;for(;e-- >Ei;)i*=i,i%=t;return i}function IT(r,e){if(r===Ei)throw new Error("invert: expected non-zero number");if(e<=Ei)throw new Error("invert: expected positive modulus, got "+e);let t=mr(r,e),i=e,n=Ei,s=fi;for(;t!==Ei;){let a=i/t,c=i%t,l=n-s*a;i=t,t=c,n=s,s=l}if(i!==fi)throw new Error("invert: does not exist");return mr(n,e)}function rb(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function uR(r,e){let t=(r.ORDER+fi)/aR,i=r.pow(e,t);return rb(r,i,e),i}function Xee(r,e){let t=(r.ORDER-cR)/lR,i=r.mul(e,Lc),n=r.pow(i,t),s=r.mul(e,n),o=r.mul(r.mul(s,Lc),n),a=r.mul(s,r.sub(o,r.ONE));return rb(r,a,e),a}function Zee(r){let e=Qi(r),t=fR(r),i=t(e,e.neg(e.ONE)),n=t(e,i),s=t(e,e.neg(i)),o=(r+Yee)/dR;return(a,c)=>{let l=a.pow(c,o),d=a.mul(l,i),u=a.mul(l,n),f=a.mul(l,s),h=a.eql(a.sqr(d),c),g=a.eql(a.sqr(u),c);l=a.cmov(l,d,h),d=a.cmov(f,u,g);let p=a.eql(a.sqr(d),c),I=a.cmov(l,d,p);return rb(a,I,c),I}}function fR(r){if(r<oR)throw new Error("sqrt is not defined for small field");let e=r-fi,t=0;for(;e%Lc===Ei;)e/=Lc,t++;let i=Lc,n=Qi(r);for(;wT(n,i)===1;)if(i++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return uR;let s=n.pow(i,e),o=(e+fi)/Lc;return function(c,l){if(c.is0(l))return l;if(wT(c,l)!==1)throw new Error("Cannot find square root");let d=t,u=c.mul(c.ONE,s),f=c.pow(l,e),h=c.pow(l,o);for(;!c.eql(f,c.ONE);){if(c.is0(f))return c.ZERO;let g=1,p=c.sqr(f);for(;!c.eql(p,c.ONE);)if(g++,p=c.sqr(p),g===d)throw new Error("Cannot find square root");let I=fi<<BigInt(d-g-1),m=c.pow(u,I);d=g,u=c.sqr(m),f=c.mul(f,u),h=c.mul(h,m)}return h}}function ete(r){return r%aR===oR?uR:r%lR===cR?Xee:r%dR===Wee?Zee(r):fR(r)}function rte(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},t=tte.reduce((i,n)=>(i[n]="function",i),e);return zd(r,t),r}function ite(r,e,t){if(t<Ei)throw new Error("invalid exponent, negatives unsupported");if(t===Ei)return r.ONE;if(t===fi)return e;let i=r.ONE,n=e;for(;t>Ei;)t&fi&&(i=r.mul(i,n)),n=r.sqr(n),t>>=fi;return i}function AR(r,e,t=!1){let i=new Array(e.length).fill(t?r.ZERO:void 0),n=e.reduce((o,a,c)=>r.is0(a)?o:(i[c]=o,r.mul(o,a)),r.ONE),s=r.inv(n);return e.reduceRight((o,a,c)=>r.is0(a)?o:(i[c]=r.mul(o,i[c]),r.mul(o,a)),s),i}function wT(r,e){let t=(r.ORDER-fi)/Lc,i=r.pow(e,t),n=r.eql(i,r.ONE),s=r.eql(i,r.ZERO),o=r.eql(i,r.neg(r.ONE));if(!n&&!s&&!o)throw new Error("invalid Legendre symbol result");return n?1:s?0:-1}function hR(r,e){e!==void 0&&hA(e);let t=e!==void 0?e:r.toString(2).length,i=Math.ceil(t/8);return{nBitLength:t,nByteLength:i}}function Qi(r,e,t=!1,i={}){if(r<=Ei)throw new Error("invalid field: expected ORDER > 0, got "+r);let n,s,o=!1,a;if(typeof e=="object"&&e!=null){if(i.sqrt||t)throw new Error("cannot specify opts in two arguments");let f=e;f.BITS&&(n=f.BITS),f.sqrt&&(s=f.sqrt),typeof f.isLE=="boolean"&&(t=f.isLE),typeof f.modFromBytes=="boolean"&&(o=f.modFromBytes),a=f.allowedLengths}else typeof e=="number"&&(n=e),i.sqrt&&(s=i.sqrt);let{nBitLength:c,nByteLength:l}=hR(r,n);if(l>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let d,u=Object.freeze({ORDER:r,isLE:t,BITS:c,BYTES:l,MASK:PA(c),ZERO:Ei,ONE:fi,allowedLengths:a,create:f=>mr(f,r),isValid:f=>{if(typeof f!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof f);return Ei<=f&&f<r},is0:f=>f===Ei,isValidNot0:f=>!u.is0(f)&&u.isValid(f),isOdd:f=>(f&fi)===fi,neg:f=>mr(-f,r),eql:(f,h)=>f===h,sqr:f=>mr(f*f,r),add:(f,h)=>mr(f+h,r),sub:(f,h)=>mr(f-h,r),mul:(f,h)=>mr(f*h,r),pow:(f,h)=>ite(u,f,h),div:(f,h)=>mr(f*IT(h,r),r),sqrN:f=>f*f,addN:(f,h)=>f+h,subN:(f,h)=>f-h,mulN:(f,h)=>f*h,inv:f=>IT(f,r),sqrt:s||(f=>(d||(d=ete(r)),d(u,f))),toBytes:f=>t?tb(f,l):eb(f,l),fromBytes:(f,h=!0)=>{if(a){if(!a.includes(f.length)||f.length>l)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+f.length);let p=new Uint8Array(l);p.set(f,t?0:p.length-f.length),f=p}if(f.length!==l)throw new Error("Field.fromBytes: expected "+l+" bytes, got "+f.length);let g=t?Wc(f):sw(f);if(o&&(g=mr(g,r)),!h&&!u.isValid(g))throw new Error("invalid field element: outside of range 0..ORDER");return g},invertBatch:f=>AR(u,f),cmov:(f,h,g)=>g?h:f});return Object.freeze(u)}function gR(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function pR(r){let e=gR(r);return e+Math.ceil(e/2)}function nte(r,e,t=!1){let i=r.length,n=gR(e),s=pR(e);if(i<16||i<s||i>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+i);let o=t?Wc(r):sw(r),a=mr(o,e-fi)+fi;return t?tb(a,n):eb(a,n)}function ste(r,e,t,i){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,i);let n=BigInt(32),s=BigInt(4294967295),o=Number(t>>n&s),a=Number(t&s),c=i?4:0,l=i?0:4;r.setUint32(e+c,o,i),r.setUint32(e+l,a,i)}function mR(r,e,t){return r&e^~r&t}function yR(r,e,t){return r&e^r&t^e&t}function ote(r,e=!1){return e?{h:Number(r&My),l:Number(r>>xT&My)}:{h:Number(r>>xT&My)|0,l:Number(r&My)|0}}function IR(r,e=!1){let t=r.length,i=new Uint32Array(t),n=new Uint32Array(t);for(let s=0;s<t;s++){let{h:o,l:a}=ote(r[s],e);[i[s],n[s]]=[o,a]}return[i,n]}function eo(r,e,t,i){let n=(e>>>0)+(i>>>0);return{h:r+t+(n/2**32|0)|0,l:n|0}}function UI(r,e){let t=e.negate();return r?t:e}function Kc(r,e){let t=AR(r.Fp,e.map(i=>i.Z));return e.map((i,n)=>r.fromAffine(i.toAffine(t[n])))}function BR(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function DB(r,e){BR(r,e);let t=Math.ceil(e/r)+1,i=2**(r-1),n=2**r,s=PA(r),o=BigInt(r);return{windows:t,windowSize:i,mask:s,maxNumber:n,shiftBy:o}}function BT(r,e,t){let{windowSize:i,mask:n,maxNumber:s,shiftBy:o}=t,a=Number(r&n),c=r>>o;a>i&&(a-=s,c+=Hc);let l=e*i,d=l+Math.abs(a)-1,u=a===0,f=a<0,h=e%2!==0;return{nextN:c,offset:d,isZero:u,isNeg:f,isNegF:h,offsetF:l}}function xte(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,i)=>{if(!(t instanceof e))throw new Error("invalid point at index "+i)})}function Cte(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,i)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+i)})}function _B(r){return bR.get(r)||1}function bT(r){if(r!==Hd)throw new Error("invalid wNAF")}function Ete(r,e,t,i){let n=e,s=r.ZERO,o=r.ZERO;for(;t>Hd||i>Hd;)t&Hc&&(s=s.add(n)),i&Hc&&(o=o.add(n)),n=n.double(),t>>=Hc,i>>=Hc;return{p1:s,p2:o}}function vR(r,e,t,i){xte(t,r),Cte(i,e);let n=t.length,s=i.length;if(n!==s)throw new Error("arrays of points and scalars must have equal length");let o=r.ZERO,a=sR(BigInt(n)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let l=PA(c),d=new Array(Number(l)+1).fill(o),u=Math.floor((e.BITS-1)/c)*c,f=o;for(let h=u;h>=0;h-=c){d.fill(o);for(let p=0;p<s;p++){let I=i[p],m=Number(I>>BigInt(h)&l);d[m]=d[m].add(t[p])}let g=o;for(let p=d.length-1,I=o;p>0;p--)I=I.add(d[p]),g=g.add(I);if(f=f.add(g),h!==0)for(let p=0;p<c;p++)f=f.double()}return f}function vT(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return rte(e),e}else return Qi(r,{isLE:t})}function kR(r,e,t={},i){if(i===void 0&&(i=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let l=e[c];if(!(typeof l=="bigint"&&l>Hd))throw new Error(`CURVE.${c} must be positive bigint`)}let n=vT(e.p,t.Fp,i),s=vT(e.n,t.Fn,i),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!n.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:n,Fn:s}}function Bte(r,e,t){let[[i,n],[s,o]]=e,a=kT(o*r,t),c=kT(-n*r,t),l=r-a*i-c*s,d=-a*n-c*o,u=l<ao,f=d<ao;u&&(l=-l),f&&(d=-d);let h=PA(Math.ceil(sR(t)/2))+Fd;if(l<ao||l>=h||d<ao||d>=h)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:u,k1:l,k2neg:f,k2:d}}function m1(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function FB(r,e){let t={};for(let i of Object.keys(e))t[i]=r[i]===void 0?e[i]:r[i];return Yc(t.lowS,"lowS"),Yc(t.prehash,"prehash"),t.format!==void 0&&m1(t.format),t}function bd(r,e){let{BYTES:t}=r,i;if(typeof e=="bigint")i=e;else{let n=vt("private key",e);try{i=r.fromBytes(n)}catch{throw new Error(`invalid private key: expected ui8a of size ${t}, got ${typeof e}`)}}if(!r.isValidNot0(i))throw new Error("invalid private key: out of range [1..N-1]");return i}function vte(r,e={}){let t=kR("weierstrass",r,e),{Fp:i,Fn:n}=t,s=t.CURVE,{h:o,n:a}=s;zd(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=e;if(c&&(!i.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let l=QR(i,n);function d(){if(!i.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(_,v,E){let{x:P,y:N}=v.toAffine(),j=i.toBytes(P);if(Yc(E,"isCompressed"),E){d();let z=!i.isOdd(N);return Dn(DR(z),j)}else return Dn(Uint8Array.of(4),j,i.toBytes(N))}function f(_){_n(_,void 0,"Point");let{publicKey:v,publicKeyUncompressed:E}=l,P=_.length,N=_[0],j=_.subarray(1);if(P===v&&(N===2||N===3)){let z=i.fromBytes(j);if(!i.isValid(z))throw new Error("bad point: is not on curve, wrong x");let L=p(z),G;try{G=i.sqrt(L)}catch(te){let re=te instanceof Error?": "+te.message:"";throw new Error("bad point: is not on curve, sqrt error"+re)}d();let K=i.isOdd(G);return(N&1)===1!==K&&(G=i.neg(G)),{x:z,y:G}}else if(P===E&&N===4){let z=i.BYTES,L=i.fromBytes(j.subarray(0,z)),G=i.fromBytes(j.subarray(z,z*2));if(!I(L,G))throw new Error("bad point: is not on curve");return{x:L,y:G}}else throw new Error(`bad point: got length ${P}, expected compressed=${v} or uncompressed=${E}`)}let h=e.toBytes||u,g=e.fromBytes||f;function p(_){let v=i.sqr(_),E=i.mul(v,_);return i.add(i.add(E,i.mul(_,s.a)),s.b)}function I(_,v){let E=i.sqr(v),P=p(_);return i.eql(E,P)}if(!I(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let m=i.mul(i.pow(s.a,Ky),bte),w=i.mul(i.sqr(s.b),BigInt(27));if(i.is0(i.add(m,w)))throw new Error("bad curve params: a or b");function B(_,v,E=!1){if(!i.isValid(v)||E&&i.is0(v))throw new Error(`bad point coordinate ${_}`);return v}function C(_){if(!(_ instanceof T))throw new Error("ProjectivePoint expected")}function x(_){if(!c||!c.basises)throw new Error("no endo");return Bte(_,c.basises,n.ORDER)}let Q=_I((_,v)=>{let{X:E,Y:P,Z:N}=_;if(i.eql(N,i.ONE))return{x:E,y:P};let j=_.is0();v==null&&(v=j?i.ONE:i.inv(N));let z=i.mul(E,v),L=i.mul(P,v),G=i.mul(N,v);if(j)return{x:i.ZERO,y:i.ZERO};if(!i.eql(G,i.ONE))throw new Error("invZ was invalid");return{x:z,y:L}}),R=_I(_=>{if(_.is0()){if(e.allowInfinityPoint&&!i.is0(_.Y))return;throw new Error("bad point: ZERO")}let{x:v,y:E}=_.toAffine();if(!i.isValid(v)||!i.isValid(E))throw new Error("bad point: x or y not field elements");if(!I(v,E))throw new Error("bad point: equation left != right");if(!_.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function U(_,v,E,P,N){return E=new T(i.mul(E.X,_),E.Y,E.Z),v=UI(P,v),E=UI(N,E),v.add(E)}class T{constructor(v,E,P){this.X=B("x",v),this.Y=B("y",E,!0),this.Z=B("z",P),Object.freeze(this)}static CURVE(){return s}static fromAffine(v){let{x:E,y:P}=v||{};if(!v||!i.isValid(E)||!i.isValid(P))throw new Error("invalid affine point");if(v instanceof T)throw new Error("projective point not allowed");return i.is0(E)&&i.is0(P)?T.ZERO:new T(E,P,i.ONE)}static fromBytes(v){let E=T.fromAffine(g(_n(v,void 0,"point")));return E.assertValidity(),E}static fromHex(v){return T.fromBytes(vt("pointHex",v))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(v=8,E=!0){return b.createCache(this,v),E||this.multiply(Ky),this}assertValidity(){R(this)}hasEvenY(){let{y:v}=this.toAffine();if(!i.isOdd)throw new Error("Field doesn't support isOdd");return!i.isOdd(v)}equals(v){C(v);let{X:E,Y:P,Z:N}=this,{X:j,Y:z,Z:L}=v,G=i.eql(i.mul(E,L),i.mul(j,N)),K=i.eql(i.mul(P,L),i.mul(z,N));return G&&K}negate(){return new T(this.X,i.neg(this.Y),this.Z)}double(){let{a:v,b:E}=s,P=i.mul(E,Ky),{X:N,Y:j,Z:z}=this,L=i.ZERO,G=i.ZERO,K=i.ZERO,$=i.mul(N,N),te=i.mul(j,j),re=i.mul(z,z),ee=i.mul(N,j);return ee=i.add(ee,ee),K=i.mul(N,z),K=i.add(K,K),L=i.mul(v,K),G=i.mul(P,re),G=i.add(L,G),L=i.sub(te,G),G=i.add(te,G),G=i.mul(L,G),L=i.mul(ee,L),K=i.mul(P,K),re=i.mul(v,re),ee=i.sub($,re),ee=i.mul(v,ee),ee=i.add(ee,K),K=i.add($,$),$=i.add(K,$),$=i.add($,re),$=i.mul($,ee),G=i.add(G,$),re=i.mul(j,z),re=i.add(re,re),$=i.mul(re,ee),L=i.sub(L,$),K=i.mul(re,te),K=i.add(K,K),K=i.add(K,K),new T(L,G,K)}add(v){C(v);let{X:E,Y:P,Z:N}=this,{X:j,Y:z,Z:L}=v,G=i.ZERO,K=i.ZERO,$=i.ZERO,te=s.a,re=i.mul(s.b,Ky),ee=i.mul(E,j),Z=i.mul(P,z),me=i.mul(N,L),le=i.add(E,P),Ae=i.add(j,z);le=i.mul(le,Ae),Ae=i.add(ee,Z),le=i.sub(le,Ae),Ae=i.add(E,N);let ve=i.add(j,L);return Ae=i.mul(Ae,ve),ve=i.add(ee,me),Ae=i.sub(Ae,ve),ve=i.add(P,N),G=i.add(z,L),ve=i.mul(ve,G),G=i.add(Z,me),ve=i.sub(ve,G),$=i.mul(te,Ae),G=i.mul(re,me),$=i.add(G,$),G=i.sub(Z,$),$=i.add(Z,$),K=i.mul(G,$),Z=i.add(ee,ee),Z=i.add(Z,ee),me=i.mul(te,me),Ae=i.mul(re,Ae),Z=i.add(Z,me),me=i.sub(ee,me),me=i.mul(te,me),Ae=i.add(Ae,me),ee=i.mul(Z,Ae),K=i.add(K,ee),ee=i.mul(ve,Ae),G=i.mul(le,G),G=i.sub(G,ee),ee=i.mul(le,Z),$=i.mul(ve,$),$=i.add($,ee),new T(G,K,$)}subtract(v){return this.add(v.negate())}is0(){return this.equals(T.ZERO)}multiply(v){let{endo:E}=e;if(!n.isValidNot0(v))throw new Error("invalid scalar: out of range");let P,N,j=z=>b.cached(this,z,L=>Kc(T,L));if(E){let{k1neg:z,k1:L,k2neg:G,k2:K}=x(v),{p:$,f:te}=j(L),{p:re,f:ee}=j(K);N=te.add(ee),P=U(E.beta,$,re,z,G)}else{let{p:z,f:L}=j(v);P=z,N=L}return Kc(T,[P,N])[0]}multiplyUnsafe(v){let{endo:E}=e,P=this;if(!n.isValid(v))throw new Error("invalid scalar: out of range");if(v===ao||P.is0())return T.ZERO;if(v===Fd)return P;if(b.hasCache(this))return this.multiply(v);if(E){let{k1neg:N,k1:j,k2neg:z,k2:L}=x(v),{p1:G,p2:K}=Ete(T,P,j,L);return U(E.beta,G,K,N,z)}else return b.unsafe(P,v)}multiplyAndAddUnsafe(v,E,P){let N=this.multiplyUnsafe(E).add(v.multiplyUnsafe(P));return N.is0()?void 0:N}toAffine(v){return Q(this,v)}isTorsionFree(){let{isTorsionFree:v}=e;return o===Fd?!0:v?v(T,this):b.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:v}=e;return o===Fd?this:v?v(T,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(v=!0){return Yc(v,"isCompressed"),this.assertValidity(),h(T,this,v)}toHex(v=!0){return zc(this.toBytes(v))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(v=!0){return this.toBytes(v)}_setWindowSize(v){this.precompute(v)}static normalizeZ(v){return Kc(T,v)}static msm(v,E){return vR(T,n,v,E)}static fromPrivateKey(v){return T.BASE.multiply(bd(n,v))}}T.BASE=new T(s.Gx,s.Gy,i.ONE),T.ZERO=new T(i.ZERO,i.ONE,i.ZERO),T.Fp=i,T.Fn=n;let D=n.BITS,b=new RI(T,e.endo?Math.ceil(D/2):D);return T.BASE.precompute(8),T}function DR(r){return Uint8Array.of(r?2:3)}function QR(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function kte(r,e={}){let{Fn:t}=r,i=e.randomBytes||nw,n=Object.assign(QR(r.Fp,t),{seed:pR(t.ORDER)});function s(h){try{return!!bd(t,h)}catch{return!1}}function o(h,g){let{publicKey:p,publicKeyUncompressed:I}=n;try{let m=h.length;return g===!0&&m!==p||g===!1&&m!==I?!1:!!r.fromBytes(h)}catch{return!1}}function a(h=i(n.seed)){return nte(_n(h,n.seed,"seed"),t.ORDER)}function c(h,g=!0){return r.BASE.multiply(bd(t,h)).toBytes(g)}function l(h){let g=a(h);return{secretKey:g,publicKey:c(g)}}function d(h){if(typeof h=="bigint")return!1;if(h instanceof r)return!0;let{secretKey:g,publicKey:p,publicKeyUncompressed:I}=n;if(t.allowedLengths||g===p)return;let m=vt("key",h).length;return m===p||m===I}function u(h,g,p=!0){if(d(h)===!0)throw new Error("first arg must be private key");if(d(g)===!1)throw new Error("second arg must be public key");let I=bd(t,h);return r.fromHex(g).multiply(I).toBytes(p)}return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:l,Point:r,utils:{isValidSecretKey:s,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:h=>bd(t,h),precompute(h=8,g=r.BASE){return g.precompute(h,!1)}},lengths:n})}function Ste(r,e,t={}){tR(e),zd(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let i=t.randomBytes||nw,n=t.hmac||((E,...P)=>ER(e,E,Dn(...P))),{Fp:s,Fn:o}=r,{ORDER:a,BITS:c}=o,{keygen:l,getPublicKey:d,getSharedSecret:u,utils:f,lengths:h}=kte(r,t),g={prehash:!1,lowS:typeof t.lowS=="boolean"?t.lowS:!1,format:void 0,extraEntropy:!1},p="compact";function I(E){let P=a>>Fd;return E>P}function m(E,P){if(!o.isValidNot0(P))throw new Error(`invalid signature ${E}: out of range 1..Point.Fn.ORDER`);return P}function w(E,P){m1(P);let N=h.signature,j=P==="compact"?N:P==="recovered"?N+1:void 0;return _n(E,j,`${P} signature`)}class B{constructor(P,N,j){this.r=m("r",P),this.s=m("s",N),j!=null&&(this.recovery=j),Object.freeze(this)}static fromBytes(P,N=p){w(P,N);let j;if(N==="der"){let{r:K,s:$}=so.toSig(_n(P));return new B(K,$)}N==="recovered"&&(j=P[0],N="compact",P=P.subarray(1));let z=o.BYTES,L=P.subarray(0,z),G=P.subarray(z,z*2);return new B(o.fromBytes(L),o.fromBytes(G),j)}static fromHex(P,N){return this.fromBytes(QI(P),N)}addRecoveryBit(P){return new B(this.r,this.s,P)}recoverPublicKey(P){let N=s.ORDER,{r:j,s:z,recovery:L}=this;if(L==null||![0,1,2,3].includes(L))throw new Error("recovery id invalid");if(a*SR<N&&L>1)throw new Error("recovery id is ambiguous for h>1 curve");let K=L===2||L===3?j+a:j;if(!s.isValid(K))throw new Error("recovery id 2 or 3 invalid");let $=s.toBytes(K),te=r.fromBytes(Dn(DR((L&1)===0),$)),re=o.inv(K),ee=x(vt("msgHash",P)),Z=o.create(-ee*re),me=o.create(z*re),le=r.BASE.multiplyUnsafe(Z).add(te.multiplyUnsafe(me));if(le.is0())throw new Error("point at infinify");return le.assertValidity(),le}hasHighS(){return I(this.s)}toBytes(P=p){if(m1(P),P==="der")return QI(so.hexFromSig(this));let N=o.toBytes(this.r),j=o.toBytes(this.s);if(P==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return Dn(Uint8Array.of(this.recovery),N,j)}return Dn(N,j)}toHex(P){return zc(this.toBytes(P))}assertValidity(){}static fromCompact(P){return B.fromBytes(vt("sig",P),"compact")}static fromDER(P){return B.fromBytes(vt("sig",P),"der")}normalizeS(){return this.hasHighS()?new B(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return zc(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return zc(this.toBytes("compact"))}}let C=t.bits2int||function(P){if(P.length>8192)throw new Error("input is too large");let N=sw(P),j=P.length*8-c;return j>0?N>>BigInt(j):N},x=t.bits2int_modN||function(P){return o.create(C(P))},Q=PA(c);function R(E){return pA("num < 2^"+c,E,ao,Q),o.toBytes(E)}function U(E,P){return _n(E,void 0,"message"),P?_n(e(E),void 0,"prehashed message"):E}function T(E,P,N){if(["recovered","canonical"].some(Z=>Z in N))throw new Error("sign() legacy options not supported");let{lowS:j,prehash:z,extraEntropy:L}=FB(N,g);E=U(E,z);let G=x(E),K=bd(o,P),$=[R(K),R(G)];if(L!=null&&L!==!1){let Z=L===!0?i(h.secretKey):L;$.push(vt("extraEntropy",Z))}let te=Dn(...$),re=G;function ee(Z){let me=C(Z);if(!o.isValidNot0(me))return;let le=o.inv(me),Ae=r.BASE.multiply(me).toAffine(),ve=o.create(Ae.x);if(ve===ao)return;let qe=o.create(le*o.create(re+ve*K));if(qe===ao)return;let _e=(Ae.x===ve?0:2)|Number(Ae.y&Fd),se=qe;return j&&I(qe)&&(se=o.neg(qe),_e^=1),new B(ve,se,_e)}return{seed:te,k2sig:ee}}function D(E,P,N={}){E=vt("message",E);let{seed:j,k2sig:z}=T(E,P,N);return Vee(e.outputLen,o.BYTES,n)(j,z)}function b(E){let P,N=typeof E=="string"||_A(E),j=!N&&E!==null&&typeof E=="object"&&typeof E.r=="bigint"&&typeof E.s=="bigint";if(!N&&!j)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(j)P=new B(E.r,E.s);else if(N){try{P=B.fromBytes(vt("sig",E),"der")}catch(z){if(!(z instanceof so.Err))throw z}if(!P)try{P=B.fromBytes(vt("sig",E),"compact")}catch{return!1}}return P||!1}function _(E,P,N,j={}){let{lowS:z,prehash:L,format:G}=FB(j,g);if(N=vt("publicKey",N),P=U(vt("message",P),L),"strict"in j)throw new Error("options.strict was renamed to lowS");let K=G===void 0?b(E):B.fromBytes(vt("sig",E),G);if(K===!1)return!1;try{let $=r.fromBytes(N);if(z&&K.hasHighS())return!1;let{r:te,s:re}=K,ee=x(P),Z=o.inv(re),me=o.create(ee*Z),le=o.create(te*Z),Ae=r.BASE.multiplyUnsafe(me).add($.multiplyUnsafe(le));return Ae.is0()?!1:o.create(Ae.x)===te}catch{return!1}}function v(E,P,N={}){let{prehash:j}=FB(N,g);return P=U(P,j),B.fromBytes(E,"recovered").recoverPublicKey(P).toBytes()}return Object.freeze({keygen:l,getPublicKey:d,getSharedSecret:u,utils:f,lengths:h,Point:r,sign:D,verify:_,recoverPublicKey:v,Signature:B,hash:e})}function Dte(r){let e={a:r.a,b:r.b,p:r.Fp.ORDER,n:r.n,h:r.h,Gx:r.Gx,Gy:r.Gy},t=r.Fp,i=r.allowedPrivateKeyLengths?Array.from(new Set(r.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0,n=Qi(e.n,{BITS:r.nBitLength,allowedLengths:i,modFromBytes:r.wrapPrivateKey}),s={Fp:t,Fn:n,allowInfinityPoint:r.allowInfinityPoint,endo:r.endo,isTorsionFree:r.isTorsionFree,clearCofactor:r.clearCofactor,fromBytes:r.fromBytes,toBytes:r.toBytes};return{CURVE:e,curveOpts:s}}function Qte(r){let{CURVE:e,curveOpts:t}=Dte(r),i={hmac:r.hmac,randomBytes:r.randomBytes,lowS:r.lowS,bits2int:r.bits2int,bits2int_modN:r.bits2int_modN};return{CURVE:e,curveOpts:t,hash:r.hash,ecdsaOpts:i}}function _te(r,e){let t=e.Point;return Object.assign({},e,{ProjectivePoint:t,CURVE:Object.assign({},r,hR(t.Fn.ORDER,t.Fn.BITS))})}function Fte(r){let{CURVE:e,curveOpts:t,hash:i,ecdsaOpts:n}=Qte(r),s=vte(e,t),o=Ste(s,i,n);return _te(r,o)}function tl(r,e){let t=i=>Fte({...r,hash:i});return{...t(e),create:t}}function Vte(r,e=24){let t=new Uint32Array(10);for(let i=24-e;i<24;i++){for(let o=0;o<10;o++)t[o]=r[o]^r[o+10]^r[o+20]^r[o+30]^r[o+40];for(let o=0;o<10;o+=2){let a=(o+8)%10,c=(o+2)%10,l=t[c],d=t[c+1],u=ST(l,d,1)^t[a],f=DT(l,d,1)^t[a+1];for(let h=0;h<50;h+=10)r[o+h]^=u,r[o+h+1]^=f}let n=r[2],s=r[3];for(let o=0;o<24;o++){let a=UR[o],c=ST(n,s,a),l=DT(n,s,a),d=TR[o];n=r[d],s=r[d+1],r[d]=c,r[d+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=r[o+a];for(let a=0;a<10;a++)r[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}r[0]^=jte[i],r[1]^=$te[i]}ln(t)}function tre(r,e,t,i){let n=r.sqr(t),s=r.sqr(i),o=r.add(r.mul(e.a,n),s),a=r.add(r.ONE,r.mul(e.d,r.mul(n,s)));return r.eql(o,a)}function OR(r,e={}){let t=kR("edwards",r,e,e.FpFnLE),{Fp:i,Fn:n}=t,s=t.CURVE,{h:o}=s;zd(e,{},{uvRatio:"function"});let a=PB<<BigInt(n.BYTES*8)-br,c=I=>i.create(I),l=e.uvRatio||((I,m)=>{try{return{isValid:!0,value:i.sqrt(i.div(I,m))}}catch{return{isValid:!1,value:xa}}});if(!tre(i,s,s.Gx,s.Gy))throw new Error("bad curve params: generator point");function d(I,m,w=!1){let B=w?br:xa;return pA("coordinate "+I,m,B,a),m}function u(I){if(!(I instanceof g))throw new Error("ExtendedPoint expected")}let f=_I((I,m)=>{let{X:w,Y:B,Z:C}=I,x=I.is0();m==null&&(m=x?ere:i.inv(C));let Q=c(w*m),R=c(B*m),U=i.mul(C,m);if(x)return{x:xa,y:br};if(U!==br)throw new Error("invZ was invalid");return{x:Q,y:R}}),h=_I(I=>{let{a:m,d:w}=s;if(I.is0())throw new Error("bad point: ZERO");let{X:B,Y:C,Z:x,T:Q}=I,R=c(B*B),U=c(C*C),T=c(x*x),D=c(T*T),b=c(R*m),_=c(T*c(b+U)),v=c(D+c(w*c(R*U)));if(_!==v)throw new Error("bad point: equation left != right (1)");let E=c(B*C),P=c(x*Q);if(E!==P)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(m,w,B,C){this.X=d("x",m),this.Y=d("y",w),this.Z=d("z",B,!0),this.T=d("t",C),Object.freeze(this)}static CURVE(){return s}static fromAffine(m){if(m instanceof g)throw new Error("extended point not allowed");let{x:w,y:B}=m||{};return d("x",w),d("y",B),new g(w,B,br,c(w*B))}static fromBytes(m,w=!1){let B=i.BYTES,{a:C,d:x}=s;m=yT(_n(m,B,"point")),Yc(w,"zip215");let Q=yT(m),R=m[B-1];Q[B-1]=R&-129;let U=Wc(Q),T=w?a:i.ORDER;pA("point.y",U,xa,T);let D=c(U*U),b=c(D-br),_=c(x*D-C),{isValid:v,value:E}=l(b,_);if(!v)throw new Error("bad point: invalid y coordinate");let P=(E&br)===br,N=(R&128)!==0;if(!w&&E===xa&&N)throw new Error("bad point: x=0 and x_0=1");return N!==P&&(E=c(-E)),g.fromAffine({x:E,y:U})}static fromHex(m,w=!1){return g.fromBytes(vt("point",m),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(m=8,w=!0){return p.createCache(this,m),w||this.multiply(PB),this}assertValidity(){h(this)}equals(m){u(m);let{X:w,Y:B,Z:C}=this,{X:x,Y:Q,Z:R}=m,U=c(w*R),T=c(x*C),D=c(B*R),b=c(Q*C);return U===T&&D===b}is0(){return this.equals(g.ZERO)}negate(){return new g(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:m}=s,{X:w,Y:B,Z:C}=this,x=c(w*w),Q=c(B*B),R=c(PB*c(C*C)),U=c(m*x),T=w+B,D=c(c(T*T)-x-Q),b=U+Q,_=b-R,v=U-Q,E=c(D*_),P=c(b*v),N=c(D*v),j=c(_*b);return new g(E,P,j,N)}add(m){u(m);let{a:w,d:B}=s,{X:C,Y:x,Z:Q,T:R}=this,{X:U,Y:T,Z:D,T:b}=m,_=c(C*U),v=c(x*T),E=c(R*B*b),P=c(Q*D),N=c((C+x)*(U+T)-_-v),j=P-E,z=P+E,L=c(v-w*_),G=c(N*j),K=c(z*L),$=c(N*L),te=c(j*z);return new g(G,K,te,$)}subtract(m){return this.add(m.negate())}multiply(m){if(!n.isValidNot0(m))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:w,f:B}=p.cached(this,m,C=>Kc(g,C));return Kc(g,[w,B])[0]}multiplyUnsafe(m,w=g.ZERO){if(!n.isValid(m))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return m===xa?g.ZERO:this.is0()||m===br?this:p.unsafe(this,m,B=>Kc(g,B),w)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}isTorsionFree(){return p.unsafe(this,s.n).is0()}toAffine(m){return f(this,m)}clearCofactor(){return o===br?this:this.multiplyUnsafe(o)}toBytes(){let{x:m,y:w}=this.toAffine(),B=i.toBytes(w);return B[B.length-1]|=m&br?128:0,B}toHex(){return zc(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(m){return Kc(g,m)}static msm(m,w){return vR(g,n,m,w)}_setWindowSize(m){this.precompute(m)}toRawBytes(){return this.toBytes()}}g.BASE=new g(s.Gx,s.Gy,br,c(s.Gx*s.Gy)),g.ZERO=new g(xa,br,br,xa),g.Fp=i,g.Fn=n;let p=new RI(g,n.BITS);return g.BASE.precompute(8),g}function rre(r,e,t={}){if(typeof e!="function")throw new Error('"hash" function param is required');zd(t,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:i}=t,{BASE:n,Fp:s,Fn:o}=r,a=t.randomBytes||nw,c=t.adjustScalarBytes||(T=>T),l=t.domain||((T,D,b)=>{if(Yc(b,"phflag"),D.length||b)throw new Error("Contexts/pre-hash are not supported");return T});function d(T){return o.create(Wc(T))}function u(T){let D=B.secretKey;T=vt("private key",T,D);let b=vt("hashed private key",e(T),2*D),_=c(b.slice(0,D)),v=b.slice(D,2*D),E=d(_);return{head:_,prefix:v,scalar:E}}function f(T){let{head:D,prefix:b,scalar:_}=u(T),v=n.multiply(_),E=v.toBytes();return{head:D,prefix:b,scalar:_,point:v,pointBytes:E}}function h(T){return f(T).pointBytes}function g(T=Uint8Array.of(),...D){let b=Dn(...D);return d(e(l(b,vt("context",T),!!i)))}function p(T,D,b={}){T=vt("message",T),i&&(T=i(T));let{prefix:_,scalar:v,pointBytes:E}=f(D),P=g(b.context,_,T),N=n.multiply(P).toBytes(),j=g(b.context,N,E,T),z=o.create(P+j*v);if(!o.isValid(z))throw new Error("sign failed: invalid s");let L=Dn(N,o.toBytes(z));return _n(L,B.signature,"result")}let I={zip215:!0};function m(T,D,b,_=I){let{context:v,zip215:E}=_,P=B.signature;T=vt("signature",T,P),D=vt("message",D),b=vt("publicKey",b,B.publicKey),E!==void 0&&Yc(E,"zip215"),i&&(D=i(D));let N=P/2,j=T.subarray(0,N),z=Wc(T.subarray(N,P)),L,G,K;try{L=r.fromBytes(b,E),G=r.fromBytes(j,E),K=n.multiplyUnsafe(z)}catch{return!1}if(!E&&L.isSmallOrder())return!1;let $=g(v,G.toBytes(),L.toBytes(),D);return G.add(L.multiplyUnsafe($)).subtract(K).clearCofactor().is0()}let w=s.BYTES,B={secretKey:w,publicKey:w,signature:2*w,seed:w};function C(T=a(B.seed)){return _n(T,B.seed,"seed")}function x(T){let D=U.randomSecretKey(T);return{secretKey:D,publicKey:h(D)}}function Q(T){return _A(T)&&T.length===o.BYTES}function R(T,D){try{return!!r.fromBytes(T,D)}catch{return!1}}let U={getExtendedPublicKey:f,randomSecretKey:C,isValidSecretKey:Q,isValidPublicKey:R,toMontgomery(T){let{y:D}=r.fromBytes(T),b=B.publicKey,_=b===32;if(!_&&b!==57)throw new Error("only defined for 25519 and 448");let v=_?s.div(br+D,br-D):s.div(D-br,D+br);return s.toBytes(v)},toMontgomerySecret(T){let D=B.secretKey;_n(T,D);let b=e(T.subarray(0,D));return c(b).subarray(0,D)},randomPrivateKey:C,precompute(T=8,D=r.BASE){return D.precompute(T,!1)}};return Object.freeze({keygen:x,getPublicKey:h,sign:p,verify:m,utils:U,Point:r,lengths:B})}function ire(r){let e={a:r.a,d:r.d,p:r.Fp.ORDER,n:r.n,h:r.h,Gx:r.Gx,Gy:r.Gy},t=r.Fp,i=Qi(e.n,r.nBitLength,!0),n={Fp:t,Fn:i,uvRatio:r.uvRatio},s={randomBytes:r.randomBytes,adjustScalarBytes:r.adjustScalarBytes,domain:r.domain,prehash:r.prehash,mapToCurve:r.mapToCurve};return{CURVE:e,curveOpts:n,hash:r.hash,eddsaOpts:s}}function nre(r,e){let t=e.Point;return Object.assign({},e,{ExtendedPoint:t,CURVE:r,nBitLength:t.Fn.BITS,nByteLength:t.Fn.BYTES})}function sre(r){let{CURVE:e,curveOpts:t,hash:i,eddsaOpts:n}=ire(r),s=OR(e,t),o=rre(s,i,n);return nre(r,o)}function ore(r){return zd(r,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...r})}function are(r){let e=ore(r),{P:t,type:i,adjustScalarBytes:n,powPminus2:s,randomBytes:o}=e,a=i==="x25519";if(!a&&i!=="x448")throw new Error("invalid type");let c=o||nw,l=a?255:448,d=a?32:56,u=BigInt(a?9:5),f=BigInt(a?121665:39081),h=a?Gy**BigInt(254):Gy**BigInt(447),g=a?BigInt(8)*Gy**BigInt(251)-Id:BigInt(4)*Gy**BigInt(445)-Id,p=h+g+Id,I=v=>mr(v,t),m=w(u);function w(v){return tb(I(v),d)}function B(v){let E=vt("u coordinate",v,d);return a&&(E[31]&=127),I(Wc(E))}function C(v){return Wc(n(vt("scalar",v,d)))}function x(v,E){let P=U(B(E),C(v));if(P===$f)throw new Error("invalid private or public key received");return w(P)}function Q(v){return x(v,m)}function R(v,E,P){let N=I(v*(E-P));return E=I(E-N),P=I(P+N),{x_2:E,x_3:P}}function U(v,E){pA("u",v,$f,t),pA("scalar",E,h,p);let P=E,N=v,j=Id,z=$f,L=v,G=Id,K=$f;for(let te=BigInt(l-1);te>=$f;te--){let re=P>>te&Id;K^=re,{x_2:j,x_3:L}=R(K,j,L),{x_2:z,x_3:G}=R(K,z,G),K=re;let ee=j+z,Z=I(ee*ee),me=j-z,le=I(me*me),Ae=Z-le,ve=L+G,qe=L-G,_e=I(qe*ee),se=I(ve*me),rt=_e+se,ce=_e-se;L=I(rt*rt),G=I(N*I(ce*ce)),j=I(Z*le),z=I(Ae*(Z+I(f*Ae)))}({x_2:j,x_3:L}=R(K,j,L)),{x_2:z,x_3:G}=R(K,z,G);let $=s(z);return I(j*$)}let T={secretKey:d,publicKey:d,seed:d},D=(v=c(d))=>(ps(v,T.seed),v);function b(v){let E=D(v);return{secretKey:E,publicKey:Q(E)}}return{keygen:b,getSharedSecret:(v,E)=>x(v,E),getPublicKey:v=>Q(v),scalarMult:x,scalarMultBase:Q,utils:{randomSecretKey:D,randomPrivateKey:D},GuBytes:m.slice(),lengths:T}}function MR(r){let e=rl.p,t=r*r*r%e,i=t*t*r%e,n=bt(i,QT,e)*i%e,s=bt(n,QT,e)*i%e,o=bt(s,I1,e)*t%e,a=bt(o,ure,e)*o%e,c=bt(a,fre,e)*a%e,l=bt(c,_T,e)*c%e,d=bt(l,Are,e)*l%e,u=bt(d,_T,e)*c%e,f=bt(u,I1,e)*t%e,h=bt(f,dre,e)*r%e;return bt(h,hre,e)*f%e}function LR(r){return r[0]&=252,r[55]|=128,r[56]=0,r}function gre(r,e){let t=rl.p,i=mr(r*r*e,t),n=mr(i*r,t),s=mr(n*i*e,t),o=MR(s),a=mr(n*o,t),c=mr(a*a,t);return{isValid:mr(c*e,t)===r,value:a}}function mre(r,e,t){if(e.length>255)throw new Error("context must be smaller than 255, got: "+e.length);return Dn(jee("SigEd448"),new Uint8Array([t?1:0,e.length]),e,r)}function Cre(r){let e=nb.p,t=BigInt(3),i=BigInt(6),n=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%e,d=l*l*r%e,u=bt(d,t,e)*d%e,f=bt(u,t,e)*d%e,h=bt(f,PT,e)*l%e,g=bt(h,n,e)*h%e,p=bt(g,s,e)*g%e,I=bt(p,a,e)*p%e,m=bt(I,c,e)*I%e,w=bt(m,a,e)*p%e,B=bt(w,t,e)*d%e,C=bt(B,o,e)*g%e,x=bt(C,i,e)*l%e,Q=bt(x,PT,e);if(!w1.eql(w1.sqr(Q),r))throw new Error("Cannot find square root");return Q}function TT(r,e,t,i){return r===0?e^t^i:r===1?e&t|~e&i:r===2?(e|~t)^i:r===3?e&i|t&~i:e^(t|~i)}function qT(r,e,t,i){r[e]=t>>24&255,r[e+1]=t>>16&255,r[e+2]=t>>8&255,r[e+3]=t&255,r[e+4]=i>>24&255,r[e+5]=i>>16&255,r[e+6]=i>>8&255,r[e+7]=i&255}function eie(r,e,t,i,n){var s,o=0;for(s=0;s<n;s++)o|=r[e+s]^t[i+s];return(1&o-1>>>8)-1}function eN(r,e,t,i){return eie(r,e,t,i,32)}function Qa(r,e){var t;for(t=0;t<16;t++)r[t]=e[t]|0}function RB(r){var e,t,i=1;for(e=0;e<16;e++)t=r[e]+i+65535,i=Math.floor(t/65536),r[e]=t-i*65536;r[0]+=i-1+37*(i-1)}function vd(r,e,t){for(var i,n=~(t-1),s=0;s<16;s++)i=n&(r[s]^e[s]),r[s]^=i,e[s]^=i}function mA(r,e){var t,i,n,s=Pe(),o=Pe();for(t=0;t<16;t++)o[t]=e[t];for(RB(o),RB(o),RB(o),i=0;i<2;i++){for(s[0]=o[0]-65517,t=1;t<15;t++)s[t]=o[t]-65535-(s[t-1]>>16&1),s[t-1]&=65535;s[15]=o[15]-32767-(s[14]>>16&1),n=s[15]>>16&1,s[14]&=65535,vd(o,s,1-n)}for(t=0;t<16;t++)r[2*t]=o[t]&255,r[2*t+1]=o[t]>>8}function OT(r,e){var t=new Uint8Array(32),i=new Uint8Array(32);return mA(t,r),mA(i,e),eN(t,0,i,0)}function tN(r){var e=new Uint8Array(32);return mA(e,r),e[0]&1}function rN(r,e){var t;for(t=0;t<16;t++)r[t]=e[2*t]+(e[2*t+1]<<8);r[15]&=32767}function as(r,e,t){for(var i=0;i<16;i++)r[i]=e[i]+t[i]}function ls(r,e,t){for(var i=0;i<16;i++)r[i]=e[i]-t[i]}function ot(r,e,t){var i,n,s=0,o=0,a=0,c=0,l=0,d=0,u=0,f=0,h=0,g=0,p=0,I=0,m=0,w=0,B=0,C=0,x=0,Q=0,R=0,U=0,T=0,D=0,b=0,_=0,v=0,E=0,P=0,N=0,j=0,z=0,L=0,G=t[0],K=t[1],$=t[2],te=t[3],re=t[4],ee=t[5],Z=t[6],me=t[7],le=t[8],Ae=t[9],ve=t[10],qe=t[11],_e=t[12],se=t[13],rt=t[14],ce=t[15];i=e[0],s+=i*G,o+=i*K,a+=i*$,c+=i*te,l+=i*re,d+=i*ee,u+=i*Z,f+=i*me,h+=i*le,g+=i*Ae,p+=i*ve,I+=i*qe,m+=i*_e,w+=i*se,B+=i*rt,C+=i*ce,i=e[1],o+=i*G,a+=i*K,c+=i*$,l+=i*te,d+=i*re,u+=i*ee,f+=i*Z,h+=i*me,g+=i*le,p+=i*Ae,I+=i*ve,m+=i*qe,w+=i*_e,B+=i*se,C+=i*rt,x+=i*ce,i=e[2],a+=i*G,c+=i*K,l+=i*$,d+=i*te,u+=i*re,f+=i*ee,h+=i*Z,g+=i*me,p+=i*le,I+=i*Ae,m+=i*ve,w+=i*qe,B+=i*_e,C+=i*se,x+=i*rt,Q+=i*ce,i=e[3],c+=i*G,l+=i*K,d+=i*$,u+=i*te,f+=i*re,h+=i*ee,g+=i*Z,p+=i*me,I+=i*le,m+=i*Ae,w+=i*ve,B+=i*qe,C+=i*_e,x+=i*se,Q+=i*rt,R+=i*ce,i=e[4],l+=i*G,d+=i*K,u+=i*$,f+=i*te,h+=i*re,g+=i*ee,p+=i*Z,I+=i*me,m+=i*le,w+=i*Ae,B+=i*ve,C+=i*qe,x+=i*_e,Q+=i*se,R+=i*rt,U+=i*ce,i=e[5],d+=i*G,u+=i*K,f+=i*$,h+=i*te,g+=i*re,p+=i*ee,I+=i*Z,m+=i*me,w+=i*le,B+=i*Ae,C+=i*ve,x+=i*qe,Q+=i*_e,R+=i*se,U+=i*rt,T+=i*ce,i=e[6],u+=i*G,f+=i*K,h+=i*$,g+=i*te,p+=i*re,I+=i*ee,m+=i*Z,w+=i*me,B+=i*le,C+=i*Ae,x+=i*ve,Q+=i*qe,R+=i*_e,U+=i*se,T+=i*rt,D+=i*ce,i=e[7],f+=i*G,h+=i*K,g+=i*$,p+=i*te,I+=i*re,m+=i*ee,w+=i*Z,B+=i*me,C+=i*le,x+=i*Ae,Q+=i*ve,R+=i*qe,U+=i*_e,T+=i*se,D+=i*rt,b+=i*ce,i=e[8],h+=i*G,g+=i*K,p+=i*$,I+=i*te,m+=i*re,w+=i*ee,B+=i*Z,C+=i*me,x+=i*le,Q+=i*Ae,R+=i*ve,U+=i*qe,T+=i*_e,D+=i*se,b+=i*rt,_+=i*ce,i=e[9],g+=i*G,p+=i*K,I+=i*$,m+=i*te,w+=i*re,B+=i*ee,C+=i*Z,x+=i*me,Q+=i*le,R+=i*Ae,U+=i*ve,T+=i*qe,D+=i*_e,b+=i*se,_+=i*rt,v+=i*ce,i=e[10],p+=i*G,I+=i*K,m+=i*$,w+=i*te,B+=i*re,C+=i*ee,x+=i*Z,Q+=i*me,R+=i*le,U+=i*Ae,T+=i*ve,D+=i*qe,b+=i*_e,_+=i*se,v+=i*rt,E+=i*ce,i=e[11],I+=i*G,m+=i*K,w+=i*$,B+=i*te,C+=i*re,x+=i*ee,Q+=i*Z,R+=i*me,U+=i*le,T+=i*Ae,D+=i*ve,b+=i*qe,_+=i*_e,v+=i*se,E+=i*rt,P+=i*ce,i=e[12],m+=i*G,w+=i*K,B+=i*$,C+=i*te,x+=i*re,Q+=i*ee,R+=i*Z,U+=i*me,T+=i*le,D+=i*Ae,b+=i*ve,_+=i*qe,v+=i*_e,E+=i*se,P+=i*rt,N+=i*ce,i=e[13],w+=i*G,B+=i*K,C+=i*$,x+=i*te,Q+=i*re,R+=i*ee,U+=i*Z,T+=i*me,D+=i*le,b+=i*Ae,_+=i*ve,v+=i*qe,E+=i*_e,P+=i*se,N+=i*rt,j+=i*ce,i=e[14],B+=i*G,C+=i*K,x+=i*$,Q+=i*te,R+=i*re,U+=i*ee,T+=i*Z,D+=i*me,b+=i*le,_+=i*Ae,v+=i*ve,E+=i*qe,P+=i*_e,N+=i*se,j+=i*rt,z+=i*ce,i=e[15],C+=i*G,x+=i*K,Q+=i*$,R+=i*te,U+=i*re,T+=i*ee,D+=i*Z,b+=i*me,_+=i*le,v+=i*Ae,E+=i*ve,P+=i*qe,N+=i*_e,j+=i*se,z+=i*rt,L+=i*ce,s+=38*x,o+=38*Q,a+=38*R,c+=38*U,l+=38*T,d+=38*D,u+=38*b,f+=38*_,h+=38*v,g+=38*E,p+=38*P,I+=38*N,m+=38*j,w+=38*z,B+=38*L,n=1,i=s+n+65535,n=Math.floor(i/65536),s=i-n*65536,i=o+n+65535,n=Math.floor(i/65536),o=i-n*65536,i=a+n+65535,n=Math.floor(i/65536),a=i-n*65536,i=c+n+65535,n=Math.floor(i/65536),c=i-n*65536,i=l+n+65535,n=Math.floor(i/65536),l=i-n*65536,i=d+n+65535,n=Math.floor(i/65536),d=i-n*65536,i=u+n+65535,n=Math.floor(i/65536),u=i-n*65536,i=f+n+65535,n=Math.floor(i/65536),f=i-n*65536,i=h+n+65535,n=Math.floor(i/65536),h=i-n*65536,i=g+n+65535,n=Math.floor(i/65536),g=i-n*65536,i=p+n+65535,n=Math.floor(i/65536),p=i-n*65536,i=I+n+65535,n=Math.floor(i/65536),I=i-n*65536,i=m+n+65535,n=Math.floor(i/65536),m=i-n*65536,i=w+n+65535,n=Math.floor(i/65536),w=i-n*65536,i=B+n+65535,n=Math.floor(i/65536),B=i-n*65536,i=C+n+65535,n=Math.floor(i/65536),C=i-n*65536,s+=n-1+37*(n-1),n=1,i=s+n+65535,n=Math.floor(i/65536),s=i-n*65536,i=o+n+65535,n=Math.floor(i/65536),o=i-n*65536,i=a+n+65535,n=Math.floor(i/65536),a=i-n*65536,i=c+n+65535,n=Math.floor(i/65536),c=i-n*65536,i=l+n+65535,n=Math.floor(i/65536),l=i-n*65536,i=d+n+65535,n=Math.floor(i/65536),d=i-n*65536,i=u+n+65535,n=Math.floor(i/65536),u=i-n*65536,i=f+n+65535,n=Math.floor(i/65536),f=i-n*65536,i=h+n+65535,n=Math.floor(i/65536),h=i-n*65536,i=g+n+65535,n=Math.floor(i/65536),g=i-n*65536,i=p+n+65535,n=Math.floor(i/65536),p=i-n*65536,i=I+n+65535,n=Math.floor(i/65536),I=i-n*65536,i=m+n+65535,n=Math.floor(i/65536),m=i-n*65536,i=w+n+65535,n=Math.floor(i/65536),w=i-n*65536,i=B+n+65535,n=Math.floor(i/65536),B=i-n*65536,i=C+n+65535,n=Math.floor(i/65536),C=i-n*65536,s+=n-1+37*(n-1),r[0]=s,r[1]=o,r[2]=a,r[3]=c,r[4]=l,r[5]=d,r[6]=u,r[7]=f,r[8]=h,r[9]=g,r[10]=p,r[11]=I,r[12]=m,r[13]=w,r[14]=B,r[15]=C}function Qn(r,e){ot(r,e,e)}function iN(r,e){var t=Pe(),i;for(i=0;i<16;i++)t[i]=e[i];for(i=253;i>=0;i--)Qn(t,t),i!==2&&i!==4&&ot(t,t,e);for(i=0;i<16;i++)r[i]=t[i]}function tie(r,e){var t=Pe(),i;for(i=0;i<16;i++)t[i]=e[i];for(i=250;i>=0;i--)Qn(t,t),i!==1&&ot(t,t,e);for(i=0;i<16;i++)r[i]=t[i]}function nN(r,e,t){var i=new Uint8Array(32),n=new Float64Array(80),s,o,a=Pe(),c=Pe(),l=Pe(),d=Pe(),u=Pe(),f=Pe();for(o=0;o<31;o++)i[o]=e[o];for(i[31]=e[31]&127|64,i[0]&=248,rN(n,t),o=0;o<16;o++)c[o]=n[o],d[o]=a[o]=l[o]=0;for(a[0]=d[0]=1,o=254;o>=0;--o)s=i[o>>>3]>>>(o&7)&1,vd(a,c,s),vd(l,d,s),as(u,a,l),ls(a,a,l),as(l,c,d),ls(c,c,d),Qn(d,u),Qn(f,a),ot(a,l,a),ot(l,c,u),as(u,a,l),ls(a,a,l),Qn(c,a),ls(l,d,f),ot(a,l,Yre),as(a,a,d),ot(l,l,a),ot(a,d,f),ot(d,c,n),Qn(c,u),vd(a,c,s),vd(l,d,s);for(o=0;o<16;o++)n[o+16]=a[o],n[o+32]=l[o],n[o+48]=c[o],n[o+64]=d[o];var h=n.subarray(32),g=n.subarray(16);return iN(h,h),ot(g,g,h),mA(r,g),0}function sN(r,e){return nN(r,e,ZR)}function rie(r,e){return sb(e,32),sN(r,e)}function LT(r,e,t,i){for(var n=new Int32Array(16),s=new Int32Array(16),o,a,c,l,d,u,f,h,g,p,I,m,w,B,C,x,Q,R,U,T,D,b,_,v,E,P,N=r[0],j=r[1],z=r[2],L=r[3],G=r[4],K=r[5],$=r[6],te=r[7],re=e[0],ee=e[1],Z=e[2],me=e[3],le=e[4],Ae=e[5],ve=e[6],qe=e[7],_e=0;i>=128;){for(U=0;U<16;U++)T=8*U+_e,n[U]=t[T+0]<<24|t[T+1]<<16|t[T+2]<<8|t[T+3],s[U]=t[T+4]<<24|t[T+5]<<16|t[T+6]<<8|t[T+7];for(U=0;U<80;U++)if(o=N,a=j,c=z,l=L,d=G,u=K,f=$,h=te,g=re,p=ee,I=Z,m=me,w=le,B=Ae,C=ve,x=qe,D=te,b=qe,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=(G>>>14|le<<18)^(G>>>18|le<<14)^(le>>>9|G<<23),b=(le>>>14|G<<18)^(le>>>18|G<<14)^(G>>>9|le<<23),_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,D=G&K^~G&$,b=le&Ae^~le&ve,_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,D=MT[U*2],b=MT[U*2+1],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,D=n[U%16],b=s[U%16],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,Q=E&65535|P<<16,R=_&65535|v<<16,D=Q,b=R,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=(N>>>28|re<<4)^(re>>>2|N<<30)^(re>>>7|N<<25),b=(re>>>28|N<<4)^(N>>>2|re<<30)^(N>>>7|re<<25),_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,D=N&j^N&z^j&z,b=re&ee^re&Z^ee&Z,_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,h=E&65535|P<<16,x=_&65535|v<<16,D=l,b=m,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=Q,b=R,_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,l=E&65535|P<<16,m=_&65535|v<<16,j=o,z=a,L=c,G=l,K=d,$=u,te=f,N=h,ee=g,Z=p,me=I,le=m,Ae=w,ve=B,qe=C,re=x,U%16===15)for(T=0;T<16;T++)D=n[T],b=s[T],_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=n[(T+9)%16],b=s[(T+9)%16],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,Q=n[(T+1)%16],R=s[(T+1)%16],D=(Q>>>1|R<<31)^(Q>>>8|R<<24)^Q>>>7,b=(R>>>1|Q<<31)^(R>>>8|Q<<24)^(R>>>7|Q<<25),_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,Q=n[(T+14)%16],R=s[(T+14)%16],D=(Q>>>19|R<<13)^(R>>>29|Q<<3)^Q>>>6,b=(R>>>19|Q<<13)^(Q>>>29|R<<3)^(R>>>6|Q<<26),_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,n[T]=E&65535|P<<16,s[T]=_&65535|v<<16;D=N,b=re,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[0],b=e[0],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[0]=N=E&65535|P<<16,e[0]=re=_&65535|v<<16,D=j,b=ee,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[1],b=e[1],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[1]=j=E&65535|P<<16,e[1]=ee=_&65535|v<<16,D=z,b=Z,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[2],b=e[2],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[2]=z=E&65535|P<<16,e[2]=Z=_&65535|v<<16,D=L,b=me,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[3],b=e[3],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[3]=L=E&65535|P<<16,e[3]=me=_&65535|v<<16,D=G,b=le,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[4],b=e[4],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[4]=G=E&65535|P<<16,e[4]=le=_&65535|v<<16,D=K,b=Ae,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[5],b=e[5],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[5]=K=E&65535|P<<16,e[5]=Ae=_&65535|v<<16,D=$,b=ve,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[6],b=e[6],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[6]=$=E&65535|P<<16,e[6]=ve=_&65535|v<<16,D=te,b=qe,_=b&65535,v=b>>>16,E=D&65535,P=D>>>16,D=r[7],b=e[7],_+=b&65535,v+=b>>>16,E+=D&65535,P+=D>>>16,v+=_>>>16,E+=v>>>16,P+=E>>>16,r[7]=te=E&65535|P<<16,e[7]=qe=_&65535|v<<16,_e+=128,i-=128}return i}function iA(r,e,t){var i=new Int32Array(8),n=new Int32Array(8),s=new Uint8Array(256),o,a=t;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,n[0]=4089235720,n[1]=2227873595,n[2]=4271175723,n[3]=1595750129,n[4]=2917565137,n[5]=725511199,n[6]=4215389547,n[7]=327033209,LT(i,n,e,t),t%=128,o=0;o<t;o++)s[o]=e[a-t+o];for(s[t]=128,t=256-128*(t<112?1:0),s[t-9]=0,qT(s,t-8,a/536870912|0,a<<3),LT(i,n,s,t),o=0;o<8;o++)qT(r,8*o,i[o],n[o]);return 0}function b1(r,e){var t=Pe(),i=Pe(),n=Pe(),s=Pe(),o=Pe(),a=Pe(),c=Pe(),l=Pe(),d=Pe();ls(t,r[1],r[0]),ls(d,e[1],e[0]),ot(t,t,d),as(i,r[0],r[1]),as(d,e[0],e[1]),ot(i,i,d),ot(n,r[3],e[3]),ot(n,n,Xre),ot(s,r[2],e[2]),as(s,s,s),ls(o,i,t),ls(a,s,n),as(c,s,n),as(l,i,t),ot(r[0],o,a),ot(r[1],l,c),ot(r[2],c,a),ot(r[3],o,l)}function HT(r,e,t){var i;for(i=0;i<4;i++)vd(r[i],e[i],t)}function ob(r,e){var t=Pe(),i=Pe(),n=Pe();iN(n,e[2]),ot(t,e[0],n),ot(i,e[1],n),mA(r,i),r[31]^=tN(t)<<7}function oN(r,e,t){var i,n;for(Qa(r[0],B1),Qa(r[1],qI),Qa(r[2],qI),Qa(r[3],B1),n=255;n>=0;--n)i=t[n/8|0]>>(n&7)&1,HT(r,e,i),b1(e,r),b1(r,r),HT(r,e,i)}function ab(r,e){var t=[Pe(),Pe(),Pe(),Pe()];Qa(t[0],RT),Qa(t[1],NT),Qa(t[2],qI),ot(t[3],RT,NT),oN(r,t,e)}function aN(r,e,t){var i=new Uint8Array(64),n=[Pe(),Pe(),Pe(),Pe()],s;for(t||sb(e,32),iA(i,e,32),i[0]&=248,i[31]&=127,i[31]|=64,ab(n,i),ob(r,n),s=0;s<32;s++)e[s+32]=r[s];return 0}function cN(r,e){var t,i,n,s;for(i=63;i>=32;--i){for(t=0,n=i-32,s=i-12;n<s;++n)e[n]+=t-16*e[i]*NB[n-(i-32)],t=Math.floor((e[n]+128)/256),e[n]-=t*256;e[n]+=t,e[i]=0}for(t=0,n=0;n<32;n++)e[n]+=t-(e[31]>>4)*NB[n],t=e[n]>>8,e[n]&=255;for(n=0;n<32;n++)e[n]-=t*NB[n];for(i=0;i<32;i++)e[i+1]+=e[i]>>8,r[i]=e[i]&255}function v1(r){var e=new Float64Array(64),t;for(t=0;t<64;t++)e[t]=r[t];for(t=0;t<64;t++)r[t]=0;cN(r,e)}function iie(r,e,t,i){var n=new Uint8Array(64),s=new Uint8Array(64),o=new Uint8Array(64),a,c,l=new Float64Array(64),d=[Pe(),Pe(),Pe(),Pe()];iA(n,i,32),n[0]&=248,n[31]&=127,n[31]|=64;var u=t+64;for(a=0;a<t;a++)r[64+a]=e[a];for(a=0;a<32;a++)r[32+a]=n[32+a];for(iA(o,r.subarray(32),t+32),v1(o),ab(d,o),ob(r,d),a=32;a<64;a++)r[a]=i[a];for(iA(s,r,t+64),v1(s),a=0;a<64;a++)l[a]=0;for(a=0;a<32;a++)l[a]=o[a];for(a=0;a<32;a++)for(c=0;c<32;c++)l[a+c]+=s[a]*n[c];return cN(r.subarray(32),l),u}function nie(r,e){var t=Pe(),i=Pe(),n=Pe(),s=Pe(),o=Pe(),a=Pe(),c=Pe();return Qa(r[2],qI),rN(r[1],e),Qn(n,r[1]),ot(s,n,Wre),ls(n,n,r[2]),as(s,r[2],s),Qn(o,s),Qn(a,o),ot(c,a,o),ot(t,c,n),ot(t,t,s),tie(t,t),ot(t,t,n),ot(t,t,s),ot(t,t,s),ot(r[0],t,s),Qn(i,r[0]),ot(i,i,s),OT(i,n)&&ot(r[0],r[0],Zre),Qn(i,r[0]),ot(i,i,s),OT(i,n)?-1:(tN(r[0])===e[31]>>7&&ls(r[0],B1,r[0]),ot(r[3],r[0],r[1]),0)}function sie(r,e,t,i){var n,s=new Uint8Array(32),o=new Uint8Array(64),a=[Pe(),Pe(),Pe(),Pe()],c=[Pe(),Pe(),Pe(),Pe()];if(t<64||nie(c,i))return-1;for(n=0;n<t;n++)r[n]=e[n];for(n=0;n<32;n++)r[n+32]=i[n];if(iA(o,r,t),v1(o),oN(a,c,o),ab(c,e.subarray(32)),b1(a,c),ob(s,a),t-=64,eN(e,0,s,0)){for(n=0;n<t;n++)r[n]=0;return-1}for(n=0;n<t;n++)r[n]=e[n+64];return t}function Jd(){for(var r=0;r<arguments.length;r++)if(!(arguments[r]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function cie(r){for(var e=0;e<r.length;e++)r[e]=0}function qB(r,e,t,i,n,s){let o=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],a=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],c=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],l=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],d=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],u=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],f=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],h=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696],g=0,p,I,m,w,B,C,x,Q,R,U,T=e.length,D=r.length===32?3:9;D===3?Q=t?[0,32,2]:[30,-2,-2]:Q=t?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2],t&&(e=lie(e),T=e.length);let b=new Uint8Array(T),_=0;for(;g<T;){for(C=e[g++]<<24|e[g++]<<16|e[g++]<<8|e[g++],x=e[g++]<<24|e[g++]<<16|e[g++]<<8|e[g++],m=(C>>>4^x)&252645135,x^=m,C^=m<<4,m=(C>>>16^x)&65535,x^=m,C^=m<<16,m=(x>>>2^C)&858993459,C^=m,x^=m<<2,m=(x>>>8^C)&16711935,C^=m,x^=m<<8,m=(C>>>1^x)&1431655765,x^=m,C^=m<<1,C=C<<1|C>>>31,x=x<<1|x>>>31,I=0;I<D;I+=3){for(R=Q[I+1],U=Q[I+2],p=Q[I];p!==R;p+=U)w=x^r[p],B=(x>>>4|x<<28)^r[p+1],m=C,C=x,x=m^(a[w>>>24&63]|l[w>>>16&63]|u[w>>>8&63]|h[w&63]|o[B>>>24&63]|c[B>>>16&63]|d[B>>>8&63]|f[B&63]);m=C,C=x,x=m}C=C>>>1|C<<31,x=x>>>1|x<<31,m=(C>>>1^x)&1431655765,x^=m,C^=m<<1,m=(x>>>8^C)&16711935,C^=m,x^=m<<8,m=(x>>>2^C)&858993459,C^=m,x^=m<<2,m=(C>>>16^x)&65535,x^=m,C^=m<<16,m=(C>>>4^x)&252645135,x^=m,C^=m<<4,b[_++]=C>>>24,b[_++]=C>>>16&255,b[_++]=C>>>8&255,b[_++]=C&255,b[_++]=x>>>24,b[_++]=x>>>16&255,b[_++]=x>>>8&255,b[_++]=x&255}return t||(b=die(b)),b}function OB(r){let e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],t=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],i=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],n=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],d=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],u=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],f=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],h=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],g=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],p=r.length>8?3:1,I=new Array(32*p),m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],w,B,C=0,x=0,Q;for(let R=0;R<p;R++){let U=r[C++]<<24|r[C++]<<16|r[C++]<<8|r[C++],T=r[C++]<<24|r[C++]<<16|r[C++]<<8|r[C++];Q=(U>>>4^T)&252645135,T^=Q,U^=Q<<4,Q=(T>>>-16^U)&65535,U^=Q,T^=Q<<-16,Q=(U>>>2^T)&858993459,T^=Q,U^=Q<<2,Q=(T>>>-16^U)&65535,U^=Q,T^=Q<<-16,Q=(U>>>1^T)&1431655765,T^=Q,U^=Q<<1,Q=(T>>>8^U)&16711935,U^=Q,T^=Q<<8,Q=(U>>>1^T)&1431655765,T^=Q,U^=Q<<1,Q=U<<8|T>>>20&240,U=T<<24|T<<8&16711680|T>>>8&65280|T>>>24&240,T=Q;for(let D=0;D<m.length;D++)m[D]?(U=U<<2|U>>>26,T=T<<2|T>>>26):(U=U<<1|U>>>27,T=T<<1|T>>>27),U&=-15,T&=-15,w=e[U>>>28]|t[U>>>24&15]|i[U>>>20&15]|n[U>>>16&15]|s[U>>>12&15]|o[U>>>8&15]|a[U>>>4&15],B=c[T>>>28]|l[T>>>24&15]|d[T>>>20&15]|u[T>>>16&15]|f[T>>>12&15]|h[T>>>8&15]|g[T>>>4&15],Q=(B>>>16^w)&65535,I[x++]=w^Q,I[x++]=B^Q<<16}return I}function lie(r,e){let t=8-r.length%8,i;if(t<8)i=0;else{if(t===8)return r;throw new Error("des: invalid padding")}let n=new Uint8Array(r.length+t);for(let s=0;s<r.length;s++)n[s]=r[s];for(let s=0;s<t;s++)n[r.length+s]=i;return n}function die(r,e){let t=null,i;if(i=0,!t){for(t=1;r[r.length-t]===i;)t++;t--}return r.subarray(0,r.length-t)}function yA(r){this.key=[];for(let e=0;e<3;e++)this.key.push(new Uint8Array(r.subarray(e*8,e*8+8)));this.encrypt=function(e){return qB(OB(this.key[2]),qB(OB(this.key[1]),qB(OB(this.key[0]),e,!0,0,null,null),!1,0,null,null),!0)}}function uie(){this.BlockSize=8,this.KeySize=16,this.setKey=function(o){if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),o.length===this.KeySize)this.keySchedule(o);else throw new Error("CAST-128: keys must be 16 bytes");return!0},this.reset=function(){for(let o=0;o<16;o++)this.masking[o]=0,this.rotate[o]=0},this.getBlockSize=function(){return this.BlockSize},this.encrypt=function(o){let a=new Array(o.length);for(let c=0;c<o.length;c+=8){let l=o[c]<<24|o[c+1]<<16|o[c+2]<<8|o[c+3],d=o[c+4]<<24|o[c+5]<<16|o[c+6]<<8|o[c+7],u;u=d,d=l^t(d,this.masking[0],this.rotate[0]),l=u,u=d,d=l^i(d,this.masking[1],this.rotate[1]),l=u,u=d,d=l^n(d,this.masking[2],this.rotate[2]),l=u,u=d,d=l^t(d,this.masking[3],this.rotate[3]),l=u,u=d,d=l^i(d,this.masking[4],this.rotate[4]),l=u,u=d,d=l^n(d,this.masking[5],this.rotate[5]),l=u,u=d,d=l^t(d,this.masking[6],this.rotate[6]),l=u,u=d,d=l^i(d,this.masking[7],this.rotate[7]),l=u,u=d,d=l^n(d,this.masking[8],this.rotate[8]),l=u,u=d,d=l^t(d,this.masking[9],this.rotate[9]),l=u,u=d,d=l^i(d,this.masking[10],this.rotate[10]),l=u,u=d,d=l^n(d,this.masking[11],this.rotate[11]),l=u,u=d,d=l^t(d,this.masking[12],this.rotate[12]),l=u,u=d,d=l^i(d,this.masking[13],this.rotate[13]),l=u,u=d,d=l^n(d,this.masking[14],this.rotate[14]),l=u,u=d,d=l^t(d,this.masking[15],this.rotate[15]),l=u,a[c]=d>>>24&255,a[c+1]=d>>>16&255,a[c+2]=d>>>8&255,a[c+3]=d&255,a[c+4]=l>>>24&255,a[c+5]=l>>>16&255,a[c+6]=l>>>8&255,a[c+7]=l&255}return a},this.decrypt=function(o){let a=new Array(o.length);for(let c=0;c<o.length;c+=8){let l=o[c]<<24|o[c+1]<<16|o[c+2]<<8|o[c+3],d=o[c+4]<<24|o[c+5]<<16|o[c+6]<<8|o[c+7],u;u=d,d=l^t(d,this.masking[15],this.rotate[15]),l=u,u=d,d=l^n(d,this.masking[14],this.rotate[14]),l=u,u=d,d=l^i(d,this.masking[13],this.rotate[13]),l=u,u=d,d=l^t(d,this.masking[12],this.rotate[12]),l=u,u=d,d=l^n(d,this.masking[11],this.rotate[11]),l=u,u=d,d=l^i(d,this.masking[10],this.rotate[10]),l=u,u=d,d=l^t(d,this.masking[9],this.rotate[9]),l=u,u=d,d=l^n(d,this.masking[8],this.rotate[8]),l=u,u=d,d=l^i(d,this.masking[7],this.rotate[7]),l=u,u=d,d=l^t(d,this.masking[6],this.rotate[6]),l=u,u=d,d=l^n(d,this.masking[5],this.rotate[5]),l=u,u=d,d=l^i(d,this.masking[4],this.rotate[4]),l=u,u=d,d=l^t(d,this.masking[3],this.rotate[3]),l=u,u=d,d=l^n(d,this.masking[2],this.rotate[2]),l=u,u=d,d=l^i(d,this.masking[1],this.rotate[1]),l=u,u=d,d=l^t(d,this.masking[0],this.rotate[0]),l=u,a[c]=d>>>24&255,a[c+1]=d>>>16&255,a[c+2]=d>>>8&255,a[c+3]=d&255,a[c+4]=l>>>24&255,a[c+5]=l>>16&255,a[c+6]=l>>8&255,a[c+7]=l&255}return a};let r=new Array(4);r[0]=new Array(4),r[0][0]=[4,0,13,15,12,14,8],r[0][1]=[5,2,16,18,17,19,10],r[0][2]=[6,3,23,22,21,20,9],r[0][3]=[7,1,26,25,27,24,11],r[1]=new Array(4),r[1][0]=[0,6,21,23,20,22,16],r[1][1]=[1,4,0,2,1,3,18],r[1][2]=[2,5,7,6,5,4,17],r[1][3]=[3,7,10,9,11,8,19],r[2]=new Array(4),r[2][0]=[4,0,13,15,12,14,8],r[2][1]=[5,2,16,18,17,19,10],r[2][2]=[6,3,23,22,21,20,9],r[2][3]=[7,1,26,25,27,24,11],r[3]=new Array(4),r[3][0]=[0,6,21,23,20,22,16],r[3][1]=[1,4,0,2,1,3,18],r[3][2]=[2,5,7,6,5,4,17],r[3][3]=[3,7,10,9,11,8,19];let e=new Array(4);e[0]=new Array(4),e[0][0]=[24,25,23,22,18],e[0][1]=[26,27,21,20,22],e[0][2]=[28,29,19,18,25],e[0][3]=[30,31,17,16,28],e[1]=new Array(4),e[1][0]=[3,2,12,13,8],e[1][1]=[1,0,14,15,13],e[1][2]=[7,6,8,9,3],e[1][3]=[5,4,10,11,7],e[2]=new Array(4),e[2][0]=[19,18,28,29,25],e[2][1]=[17,16,30,31,28],e[2][2]=[23,22,24,25,18],e[2][3]=[21,20,26,27,22],e[3]=new Array(4),e[3][0]=[8,9,7,6,3],e[3][1]=[10,11,5,4,7],e[3][2]=[12,13,3,2,8],e[3][3]=[14,15,1,0,13],this.keySchedule=function(o){let a=new Array(8),c=new Array(32),l;for(let h=0;h<4;h++)l=h*4,a[h]=o[l]<<24|o[l+1]<<16|o[l+2]<<8|o[l+3];let d=[6,7,4,5],u=0,f;for(let h=0;h<2;h++)for(let g=0;g<4;g++){for(l=0;l<4;l++){let p=r[g][l];f=a[p[1]],f^=s[4][a[p[2]>>>2]>>>24-8*(p[2]&3)&255],f^=s[5][a[p[3]>>>2]>>>24-8*(p[3]&3)&255],f^=s[6][a[p[4]>>>2]>>>24-8*(p[4]&3)&255],f^=s[7][a[p[5]>>>2]>>>24-8*(p[5]&3)&255],f^=s[d[l]][a[p[6]>>>2]>>>24-8*(p[6]&3)&255],a[p[0]]=f}for(l=0;l<4;l++){let p=e[g][l];f=s[4][a[p[0]>>>2]>>>24-8*(p[0]&3)&255],f^=s[5][a[p[1]>>>2]>>>24-8*(p[1]&3)&255],f^=s[6][a[p[2]>>>2]>>>24-8*(p[2]&3)&255],f^=s[7][a[p[3]>>>2]>>>24-8*(p[3]&3)&255],f^=s[4+l][a[p[4]>>>2]>>>24-8*(p[4]&3)&255],c[u]=f,u++}}for(let h=0;h<16;h++)this.masking[h]=c[h],this.rotate[h]=c[16+h]&31};function t(o,a,c){let l=a+o,d=l<<c|l>>>32-c;return(s[0][d>>>24]^s[1][d>>>16&255])-s[2][d>>>8&255]+s[3][d&255]}function i(o,a,c){let l=a^o,d=l<<c|l>>>32-c;return s[0][d>>>24]-s[1][d>>>16&255]+s[2][d>>>8&255]^s[3][d&255]}function n(o,a,c){let l=a-o,d=l<<c|l>>>32-c;return(s[0][d>>>24]+s[1][d>>>16&255]^s[2][d>>>8&255])-s[3][d&255]}let s=new Array(8);s[0]=[821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063],s[1]=[522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321],s[2]=[2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027],s[3]=[2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730],s[4]=[2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860],s[5]=[4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975],s[6]=[2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875],s[7]=[3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]}function IA(r){this.cast5=new uie,this.cast5.setKey(r),this.encrypt=function(e){return this.cast5.encrypt(e)}}function is(r,e){return(r<<e|r>>>32-e)&rn}function to(r,e){return r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24}function Ea(r,e,t){r.splice(e,4,t&255,t>>>8&255,t>>>16&255,t>>>24&255)}function ze(r,e){return r>>>e*8&255}function fie(){let r=null,e=null,t=-1,i=[],n=[[],[],[],[]];function s(g){r=g;let p,I,m,w,B,C=[],x=[],Q=[],R,U=[],T,D,b,_=[[8,1,7,13,6,15,3,2,0,11,5,9,14,12,10,4],[2,8,11,13,15,7,6,14,3,1,9,4,0,10,12,5]],v=[[14,12,11,8,1,2,3,5,15,4,10,6,7,0,9,13],[1,14,2,11,4,12,3,7,6,13,10,5,15,9,0,8]],E=[[11,10,5,14,6,13,9,0,12,8,15,3,2,4,7,1],[4,12,7,5,1,6,9,10,0,14,13,8,2,11,3,15]],P=[[13,7,15,4,1,2,6,14,9,11,3,0,8,5,12,10],[11,9,5,1,12,3,13,14,6,4,7,15,2,0,8,10]],N=[0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15],j=[0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7],z=[[],[]],L=[[],[],[],[]];function G(ee){return ee^ee>>2^[0,90,180,238][ee&3]}function K(ee){return ee^ee>>1^ee>>2^[0,238,180,90][ee&3]}function $(ee,Z){let me,le,Ae;for(me=0;me<8;me++)le=Z>>>24,Z=Z<<8&rn|ee>>>24,ee=ee<<8&rn,Ae=le<<1,le&128&&(Ae^=333),Z^=le^Ae<<16,Ae^=le>>>1,le&1&&(Ae^=166),Z^=Ae<<24|Ae<<8;return Z}function te(ee,Z){let me=Z>>4,le=Z&15,Ae=_[ee][me^le],ve=v[ee][N[le]^j[me]];return P[ee][N[ve]^j[Ae]]<<4|E[ee][Ae^ve]}function re(ee,Z){let me=ze(ee,0),le=ze(ee,1),Ae=ze(ee,2),ve=ze(ee,3);switch(R){case 4:me=z[1][me]^ze(Z[3],0),le=z[0][le]^ze(Z[3],1),Ae=z[0][Ae]^ze(Z[3],2),ve=z[1][ve]^ze(Z[3],3);case 3:me=z[1][me]^ze(Z[2],0),le=z[1][le]^ze(Z[2],1),Ae=z[0][Ae]^ze(Z[2],2),ve=z[0][ve]^ze(Z[2],3);case 2:me=z[0][z[0][me]^ze(Z[1],0)]^ze(Z[0],0),le=z[0][z[1][le]^ze(Z[1],1)]^ze(Z[0],1),Ae=z[1][z[0][Ae]^ze(Z[1],2)]^ze(Z[0],2),ve=z[1][z[1][ve]^ze(Z[1],3)]^ze(Z[0],3)}return L[0][me]^L[1][le]^L[2][Ae]^L[3][ve]}for(r=r.slice(0,32),p=r.length;p!==16&&p!==24&&p!==32;)r[p++]=0;for(p=0;p<r.length;p+=4)Q[p>>2]=to(r,p);for(p=0;p<256;p++)z[0][p]=te(0,p),z[1][p]=te(1,p);for(p=0;p<256;p++)T=z[1][p],D=G(T),b=K(T),L[0][p]=T+(D<<8)+(b<<16)+(b<<24),L[2][p]=D+(b<<8)+(T<<16)+(b<<24),T=z[0][p],D=G(T),b=K(T),L[1][p]=b+(b<<8)+(D<<16)+(T<<24),L[3][p]=D+(T<<8)+(b<<16)+(D<<24);for(R=Q.length/2,p=0;p<R;p++)I=Q[p+p],C[p]=I,m=Q[p+p+1],x[p]=m,U[R-p-1]=$(I,m);for(p=0;p<40;p+=2)I=16843009*p,m=I+16843009,I=re(I,C),m=is(re(m,x),8),i[p]=I+m&rn,i[p+1]=is(I+2*m,9);for(p=0;p<256;p++)switch(I=m=w=B=p,R){case 4:I=z[1][I]^ze(U[3],0),m=z[0][m]^ze(U[3],1),w=z[0][w]^ze(U[3],2),B=z[1][B]^ze(U[3],3);case 3:I=z[1][I]^ze(U[2],0),m=z[1][m]^ze(U[2],1),w=z[0][w]^ze(U[2],2),B=z[0][B]^ze(U[2],3);case 2:n[0][p]=L[0][z[0][z[0][I]^ze(U[1],0)]^ze(U[0],0)],n[1][p]=L[1][z[0][z[1][m]^ze(U[1],1)]^ze(U[0],1)],n[2][p]=L[2][z[1][z[0][w]^ze(U[1],2)]^ze(U[0],2)],n[3][p]=L[3][z[1][z[1][B]^ze(U[1],3)]^ze(U[0],3)]}}function o(g){return n[0][ze(g,0)]^n[1][ze(g,1)]^n[2][ze(g,2)]^n[3][ze(g,3)]}function a(g){return n[0][ze(g,3)]^n[1][ze(g,0)]^n[2][ze(g,1)]^n[3][ze(g,2)]}function c(g,p){let I=o(p[0]),m=a(p[1]);p[2]=is(p[2]^I+m+i[4*g+8]&rn,31),p[3]=is(p[3],1)^I+2*m+i[4*g+9]&rn,I=o(p[2]),m=a(p[3]),p[0]=is(p[0]^I+m+i[4*g+10]&rn,31),p[1]=is(p[1],1)^I+2*m+i[4*g+11]&rn}function l(g,p){let I=o(p[0]),m=a(p[1]);p[2]=is(p[2],1)^I+m+i[4*g+10]&rn,p[3]=is(p[3]^I+2*m+i[4*g+11]&rn,31),I=o(p[2]),m=a(p[3]),p[0]=is(p[0],1)^I+m+i[4*g+8]&rn,p[1]=is(p[1]^I+2*m+i[4*g+9]&rn,31)}function d(){i=[],n=[[],[],[],[]]}function u(g,p){e=g,t=p;let I=[to(e,t)^i[0],to(e,t+4)^i[1],to(e,t+8)^i[2],to(e,t+12)^i[3]];for(let m=0;m<8;m++)c(m,I);return Ea(e,t,I[2]^i[4]),Ea(e,t+4,I[3]^i[5]),Ea(e,t+8,I[0]^i[6]),Ea(e,t+12,I[1]^i[7]),t+=16,e}function f(g,p){e=g,t=p;let I=[to(e,t)^i[4],to(e,t+4)^i[5],to(e,t+8)^i[6],to(e,t+12)^i[7]];for(let m=7;m>=0;m--)l(m,I);Ea(e,t,I[2]^i[0]),Ea(e,t+4,I[3]^i[1]),Ea(e,t+8,I[0]^i[2]),Ea(e,t+12,I[1]^i[3]),t+=16}function h(){return e}return{name:"twofish",blocksize:128/8,open:s,close:d,encrypt:u,decrypt:f,finalize:h}}function wA(r){this.tf=fie(),this.tf.open(Array.from(r),0),this.encrypt=function(e){return this.tf.encrypt(Array.from(e),0)}}function Tn(){}function xA(r){this.bf=new Tn,this.bf.init(r),this.encrypt=function(e){return this.bf.encryptBlock(e)}}function wd(r,e,t,i){r[e]+=t[i],r[e+1]+=t[i+1]+(r[e]<t[i])}function GT(r,e){r[0]+=e,r[1]+=r[0]<e}function Ba(r,e,t,i,n,s,o,a){wd(r,t,r,i),wd(r,t,e,o);let c=r[s]^r[t],l=r[s+1]^r[t+1];r[s]=l,r[s+1]=c,wd(r,n,r,s),c=r[i]^r[n],l=r[i+1]^r[n+1],r[i]=c>>>24^l<<8,r[i+1]=l>>>24^c<<8,wd(r,t,r,i),wd(r,t,e,a),c=r[s]^r[t],l=r[s+1]^r[t+1],r[s]=c>>>16^l<<16,r[s+1]=l>>>16^c<<16,wd(r,n,r,s),c=r[i]^r[n],l=r[i+1]^r[n+1],r[i]=l>>>31^c<<1,r[i+1]=c>>>31^l<<1}function zT(r,e){let t=new Uint32Array(32),i=new Uint32Array(r.b.buffer,r.b.byteOffset,32);for(let s=0;s<16;s++)t[s]=r.h[s],t[s+16]=uN[s];t[24]^=r.t0[0],t[25]^=r.t0[1];let n=e?4294967295:0;t[28]^=n,t[29]^=n;for(let s=0;s<12;s++){let o=s<<4;Ba(t,i,0,8,16,24,Xr[o+0],Xr[o+1]),Ba(t,i,2,10,18,26,Xr[o+2],Xr[o+3]),Ba(t,i,4,12,20,28,Xr[o+4],Xr[o+5]),Ba(t,i,6,14,22,30,Xr[o+6],Xr[o+7]),Ba(t,i,0,10,20,30,Xr[o+8],Xr[o+9]),Ba(t,i,2,12,22,24,Xr[o+10],Xr[o+11]),Ba(t,i,4,14,16,26,Xr[o+12],Xr[o+13]),Ba(t,i,6,8,18,28,Xr[o+14],Xr[o+15])}for(let s=0;s<16;s++)r.h[s]^=t[s]^t[s+16]}function tI(r,e,t,i){if(r>S1)throw new Error(`outlen must be at most ${S1} (given: ${r})`);return new k1(r,e,t,i)}function xi(r,e,t){return r[t+0]=e,r[t+1]=e>>8,r[t+2]=e>>16,r[t+3]=e>>24,r}function Oc(r,e,t){if(e>Number.MAX_SAFE_INTEGER)throw new Error("LE64: large numbers unsupported");let i=e;for(let n=t;n<t+7;n++)r[n]=i,i=(i-r[n])/256;return r}function MB(r,e,t){let i=new Uint8Array(64),n=new Uint8Array(4+e.length);if(xi(n,r,0),n.set(e,4),r<=64)return tI(r).update(n).digest(t),t;let s=Math.ceil(r/32)-2;for(let a=0;a<s;a++)tI(64).update(a===0?n:i).digest(i),t.set(i.subarray(0,32),a*32);let o=new Uint8Array(tI(r-32*s).update(i).digest());return t.set(o,s*32),t}function JT(r,e,t,i){return r.fn.XOR(e.byteOffset,t.byteOffset,i.byteOffset),e}function vie(r,e,t,i){return r.fn.G(e.byteOffset,t.byteOffset,i.byteOffset,r.refs.gZ.byteOffset),i}function kie(r,e,t,i){return r.fn.G2(e.byteOffset,t.byteOffset,i.byteOffset,r.refs.gZ.byteOffset),i}function*Sie(r,e,t,i,n,s,o,a){r.refs.prngTmp.fill(0);let c=r.refs.prngTmp.subarray(0,48);Oc(c,e,0),Oc(c,t,8),Oc(c,i,16),Oc(c,n,24),Oc(c,s,32),Oc(c,cb,40);for(let l=1;l<=o;l++){Oc(r.refs.prngTmp,l,c.length);let d=kie(r,r.refs.ZERO1024,r.refs.prngTmp,r.refs.prngR);for(let u=l===1?a*8:0;u<d.length;u+=8)yield d.subarray(u,u+8)}return[]}function Die({type:r,version:e,tagLength:t,password:i,salt:n,ad:s,secret:o,parallelism:a,memorySize:c,passes:l}){let d=(u,f,h,g)=>{if(f<h||f>g)throw new Error(`${u} size should be between ${h} and ${g} bytes`)};if(r!==cb||e!==fN)throw new Error("Unsupported type or version");return d("password",i,wie,Iie),d("salt",n,yie,mie),d("tag",t,pie,gie),d("memory",c,8*a,xie),s&&d("associated data",s,0,Cie),o&&d("secret",o,0,Eie),{type:r,version:e,tagLength:t,password:i,salt:n,ad:s,secret:o,lanes:a,memorySize:c,passes:l}}function _ie(r,{memory:e,instance:t}){if(!bie)throw new Error("BigEndian system not supported");let i=Die({type:cb,version:fN,...r}),{G:n,G2:s,xor:o,getLZ:a}=t.exports,c={},l={};l.G=n,l.G2=s,l.XOR=o;let d=4*i.lanes*Math.floor(i.memorySize/(4*i.lanes)),u=d*ro+10*AN;if(e.buffer.byteLength<u){let D=Math.ceil((u-e.buffer.byteLength)/Qie);e.grow(D)}let f=0;c.gZ=new Uint8Array(e.buffer,f,ro),f+=c.gZ.length,c.prngR=new Uint8Array(e.buffer,f,ro),f+=c.prngR.length,c.prngTmp=new Uint8Array(e.buffer,f,ro),f+=c.prngTmp.length,c.ZERO1024=new Uint8Array(e.buffer,f,1024),f+=c.ZERO1024.length;let h=new Uint32Array(e.buffer,f,2);f+=h.length*Uint32Array.BYTES_PER_ELEMENT;let g={fn:l,refs:c},p=new Uint8Array(e.buffer,f,ro);f+=p.length;let I=new Uint8Array(e.buffer,f,i.memorySize*ro),m=new Uint8Array(e.buffer,0,f),w=Fie(i),B=d/i.lanes,C=new Array(i.lanes).fill(null).map(()=>new Array(B)),x=(D,b)=>(C[D][b]=I.subarray(D*B*1024+b*1024,D*B*1024+b*1024+ro),C[D][b]);for(let D=0;D<i.lanes;D++){let b=new Uint8Array(w.length+8);b.set(w),xi(b,0,w.length),xi(b,D,w.length+4),MB(ro,b,x(D,0)),xi(b,1,w.length),MB(ro,b,x(D,1))}let Q=4,R=B/Q;for(let D=0;D<i.passes;D++)for(let b=0;b<Q;b++){let _=D===0&&b<=1;for(let v=0;v<i.lanes;v++){let E=b===0&&D===0?2:0,P=_?Sie(g,D,v,b,d,i.passes,R,E):null;for(E;E<R;E++){let N=b*R+E,j=N>0?C[v][N-1]:C[v][B-1],z=_?P.next().value:j;a(h.byteOffset,z.byteOffset,v,i.lanes,D,b,E,Q,R);let L=h[0],G=h[1];D===0&&x(v,N),vie(g,j,C[L][G],D>0?p:C[v][N]),D>0&&JT(g,C[v][N],p,C[v][N])}}}let U=C[0][B-1];for(let D=1;D<i.lanes;D++)JT(g,U,U,C[D][B-1]);let T=MB(i.tagLength,U,new Uint8Array(i.tagLength));return m.fill(0),e.grow(0),T}function Fie(r){let e=tI(Bie),t=new Uint8Array(4),i=new Uint8Array(24);xi(i,r.lanes,0),xi(i,r.tagLength,4),xi(i,r.memorySize,8),xi(i,r.passes,12),xi(i,r.version,16),xi(i,r.type,20);let n=[i];r.password?(n.push(xi(new Uint8Array(4),r.password.length,0)),n.push(r.password)):n.push(t),r.salt?(n.push(xi(new Uint8Array(4),r.salt.length,0)),n.push(r.salt)):n.push(t),r.secret?(n.push(xi(new Uint8Array(4),r.secret.length,0)),n.push(r.secret)):n.push(t),r.ad?(n.push(xi(new Uint8Array(4),r.ad.length,0)),n.push(r.ad)):n.push(t),e.update(Pie(n));let s=e.digest();return new Uint8Array(s)}function Pie(r){if(r.length===1)return r[0];let e=0;for(let n=0;n<r.length;n++){if(!(r[n]instanceof Uint8Array))throw new Error("concatArrays: Data must be in the form of a Uint8Array");e+=r[n].length}let t=new Uint8Array(e),i=0;return r.forEach(n=>{t.set(n,i),i+=n.length}),t}async function Tie(r,e,t){let i={env:{memory:r}};if(jy===void 0)try{let s=await e(i);return jy=!0,s}catch{jy=!1}return(jy?e:t)(i)}async function Uie(r,e){let t=new WebAssembly.Memory({initial:1040,maximum:65536}),i=await Tie(t,r,e);return s=>_ie(s,{instance:i.instance,memory:t})}function hN(r,e,t,i){function n(o,a,c){var l=c?WebAssembly.instantiateStreaming:WebAssembly.instantiate,d=c?WebAssembly.compileStreaming:WebAssembly.compile;return a?l(o,a):d(o)}var s=null;return s=Buffer.from(t,"base64"),n(s,i,!1)}function Rie(r){return hN(0,null,"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",r)}function Nie(r){return hN(0,null,"AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==",r)}function Mie(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function Lie(){if(jT)return LB;jT=1;function r(i){this.name="Bzip2Error",this.message=i,this.stack=new Error().stack}r.prototype=new Error;var e={Error:function(i){throw new r(i)}},t={};return t.Bzip2Error=r,t.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],t.array=function(i){var n=0,s=0,o=[0,1,3,7,15,31,63,127,255];return function(a){for(var c=0;a>0;){var l=8-n;a>=l?(c<<=l,c|=o[l]&i[s++],n=0,a-=l):(c<<=a,c|=(i[s]&o[a]<<8-a-n)>>8-a-n,n+=a,a=0)}return c}},t.simple=function(i,n){var s=t.array(i),o=t.header(s),a=!1,c=1e5*o,l=new Int32Array(c);do a=t.decompress(s,n,l,c);while(!a)},t.header=function(i){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),i(24)!=4348520&&e.Error("No magic number found");var n=i(8)-48;return(n<1||n>9)&&e.Error("Not a BZIP archive"),n},t.decompress=function(i,n,s,o,a){for(var c=20,l=258,d=0,u=1,f=50,h=-1,g="",p=0;p<6;p++)g+=i(8).toString(16);if(g=="177245385090"){var I=i(32)|0;return I!==a&&e.Error("Error in bzip2: crc32 do not match"),i(null),null}g!="314159265359"&&e.Error("Invalid bzip data");var m=i(32)|0;i(1)&&e.Error("unsupported obsolete version");var w=i(24);w>o&&e.Error("Initial position larger than buffer size");var B=i(16),C=0;for(p=0;p<16;p++)if(B&1<<15-p){var x=i(16);for(te=0;te<16;te++)x&1<<15-te&&(this.symToByte[C++]=16*p+te)}var Q=i(3);(Q<2||Q>6)&&e.Error("Invalid bzip data");var R=i(15);R==0&&e.Error("Invalid bzip data");for(var p=0;p<Q;p++)this.mtfSymbol[p]=p;for(var p=0;p<R;p++){for(var te=0;i(1);te++)te>=Q&&e.Error("Invalid bzip data");for(var U=this.mtfSymbol[te],x=te-1;x>=0;x--)this.mtfSymbol[x+1]=this.mtfSymbol[x];this.mtfSymbol[0]=U,this.selectors[p]=U}for(var G=C+2,T=[],D=new Uint8Array(l),b=new Uint16Array(c+1),_,te=0;te<Q;te++){B=i(5);for(var p=0;p<G;p++){for(;(B<1||B>c)&&e.Error("Invalid bzip data"),!!i(1);)i(1)?B--:B++;D[p]=B}var v,E;v=E=D[0];for(var p=1;p<G;p++)D[p]>E?E=D[p]:D[p]<v&&(v=D[p]);_=T[te]={},_.permute=new Int32Array(l),_.limit=new Int32Array(c+1),_.base=new Int32Array(c+1),_.minLen=v,_.maxLen=E;for(var P=_.base,N=_.limit,j=0,p=v;p<=E;p++)for(var B=0;B<G;B++)D[B]==p&&(_.permute[j++]=B);for(p=v;p<=E;p++)b[p]=N[p]=0;for(p=0;p<G;p++)b[D[p]]++;for(j=B=0,p=v;p<E;p++)j+=b[p],N[p]=j-1,j<<=1,P[p+1]=j-(B+=b[p]);N[E]=j+b[E]-1,P[v]=0}for(var p=0;p<256;p++)this.mtfSymbol[p]=p,this.byteCount[p]=0;var z,L,G,K;for(z=L=G=K=0;;){for(G--||(G=f-1,K>=R&&e.Error("Invalid bzip data"),_=T[this.selectors[K++]],P=_.base,N=_.limit),p=_.minLen,te=i(p);p>_.maxLen&&e.Error("Invalid bzip data"),!(te<=N[p]);)p++,te=te<<1|i(1);te-=P[p],(te<0||te>=l)&&e.Error("Invalid bzip data");var $=_.permute[te];if($==d||$==u){z||(z=1,B=0),$==d?B+=z:B+=2*z,z<<=1;continue}if(z)for(z=0,L+B>o&&e.Error("Invalid bzip data"),U=this.symToByte[this.mtfSymbol[0]],this.byteCount[U]+=B;B--;)s[L++]=U;if($>C)break;L>=o&&e.Error("Invalid bzip data"),p=$-1,U=this.mtfSymbol[p];for(var x=p-1;x>=0;x--)this.mtfSymbol[x+1]=this.mtfSymbol[x];this.mtfSymbol[0]=U,U=this.symToByte[U],this.byteCount[U]++,s[L++]=U}(w<0||w>=L)&&e.Error("Invalid bzip data");for(var te=0,p=0;p<256;p++)x=te+this.byteCount[p],this.byteCount[p]=te,te=x;for(var p=0;p<L;p++)U=s[p]&255,s[this.byteCount[U]]|=p<<8,this.byteCount[U]++;var re=0,ee=0,Z=0;L&&(re=s[w],ee=re&255,re>>=8,Z=-1),L=L;for(var me,le,Ae;L;){for(L--,le=ee,re=s[re],ee=re&255,re>>=8,Z++==3?(me=ee,Ae=le,ee=-1):(me=1,Ae=ee);me--;)h=(h<<8^this.crcTable[(h>>24^Ae)&255])&4294967295,n(Ae);ee!=le&&(Z=0)}return h=(h^-1)>>>0,(h|0)!=(m|0)&&e.Error("Error in bzip2: crc32 do not match"),a=(h^(a<<1|a>>>31))&4294967295,a},LB=t,LB}function Hie(){if($T)return HB;$T=1;var r=[0,1,3,7,15,31,63,127,255];return HB=function(t){var i=0,n=0,s=t(),o=function(a){if(a===null&&i!=0){i=0,n++;return}for(var c=0;a>0;){n>=s.length&&(n=0,s=t());var l=8-i;i===0&&a>0&&o.bytesRead++,a>=l?(c<<=l,c|=r[l]&s[n++],i=0,a-=l):(c<<=a,c|=(s[n]&r[a]<<8-a-i)>>8-a-i,i+=a,a=0)}return c};return o.bytesRead=0,o},HB}function Kie(){if(VT)return KB;VT=1;let r=Lie(),e=Hie();KB=t;function t(i){let n=[],s=0,o=0,a=!1,c=!1,l=null,d=null;function u(p){if(o){let I=1e5*o,m=new Int32Array(I),w=[],B=function(C){w.push(C)};return d=r.decompress(l,B,m,I,d),d===null?(o=0,!1):(p(new Uint8Array(w)),!0)}else return o=r.header(l),d=0,!1}let f=0;function h(p){if(!a)try{return u(function(I){p.enqueue(I),I!==null&&(f+=I.length)})}catch(I){return p.error(I),a=!0,!0}}let g;return new ReadableStream({start(){g=i.getReader()},async pull(p){try{for(;;){for(;!(c||l&&s-l.bytesRead+1>=25e3+1e5*(o||4));){let{value:I,done:m}=await g.read();m?c=!0:(n.push(I),s+=I.length,l===null&&(l=e(function(){return n.shift()})))}for(;c?l&&s>l.bytesRead:l&&s-l.bytesRead+1>=25e3+1e5*(o||4);)if(h(p))return;if(c&&!a&&(!l||s<=l.bytesRead)){d===null?p.close():p.error(new Error("input stream ended prematurely"));return}}}catch(I){p.error(I)}},async cancel(p){await g.abort(p)}},{highWaterMark:0})}return KB}var oo,Pd,WT,XT,Wf,an,_6,xt,Lf,y,pe,F6,F,hB,rI,iI,kr,TW,Bi,kd,LW,ds,GW,R6,nI,JW,jW,$W,VW,YW,WW,XW,ZW,eX,tX,sn,Ud,jc,_a,va,CX,co,ft,Sd,tA,nA,U1,dU,bX,vX,bA,no,q1,os,QX,_X,nn,PX,aI,$B,O6,ki,O1,Ty,TX,VB,UX,RX,gB,M6,L1,mU,NX,qX,YB,IU,Uy,L6,H6,EU,K6,Dd,cI,jX,pB,dI,us,Ys,ss,kU,Si,uI,FU,tZ,rZ,fZ,AZ,Yy,Zf,fI,AI,hI,Wy,oA,qc,WI,gI,pI,yB,V6,SZ,lo,Xy,W6,FZ,PZ,go,TZ,xd,X6,e1,t1,di,LU,ba,Hf,NZ,IB,eT,tT,qZ,OZ,Cd,wB,KZ,GZ,zZ,rT,Qd,qy,Kf,JZ,r1,i1,jZ,$Z,_d,VZ,YZ,Gt,Ki,$1,ZI,ew,n1,KU,_d,GU,s1,zU,WZ,iT,o1,Ws,ut,fs,Pa,ut,ut,ut,ut,cA,ut,XZ,ZZ,eee,tee,xB,kn,CB,V1,rA,ree,vr,iee,Xs,Gf,EB,a1,nT,zf,Y1,sT,nee,yI,see,JU,jU,$U,oee,aee,Zy,eI,cee,lee,dee,uee,Ta,fo,Jf,oT,fee,qr,cn,Ct,ns,Kt,qd,hee,Vc,wI,mee,yee,Iee,Od,wee,aT,c1,lA,dA,gs,Cee,l1,CI,d1,uA,EI,BI,bI,A1,fA,kee,fT,AT,kI,SI,DI,Dee,Fee,Pee,Tee,AA,Nee,pd,Mee,pT,iR,Kee,Zs,gA,Jee,Z1,h1,SB,PA,Ei,fi,Lc,oR,aR,cR,Yee,lR,Wee,dR,tte,Xc,pa,ma,Yr,Wr,My,xT,CT,ET,md,yd,Ly,Hy,ate,cte,lte,dte,ute,fte,Ate,hte,gte,pte,mte,ya,FI,g1,wR,yte,Ite,Ia,wa,PI,p1,ib,wte,xR,CR,TI,ER,Hd,Hc,QB,bR,RI,kT,y1,so,ao,Fd,SR,Ky,bte,_R,FR,PR,Pte,Tte,Ute,Rte,Nte,qte,Ote,Mte,Lte,Hte,jf,Kte,Gte,zte,Jte,TR,UR,RR,NR,jte,$te,ST,DT,NI,qR,Yte,Wte,Xte,Zte,xa,br,PB,ere,$f,Id,Gy,rl,cre,lre,dre,I1,QT,ure,fre,_T,Are,hre,pre,FT,yre,Ire,wre,nb,xre,PT,w1,Ere,HR,Bre,KR,bre,vre,kre,GR,zR,JR,Sre,Dre,Qre,jR,_re,Fre,Pre,Tre,Ure,Vf,Ca,x1,Rre,Nre,$R,qre,VR,YR,WR,XR,Ore,Mre,Lre,Hre,zy,C1,Kre,Gre,zre,Jre,UT,Jy,TB,E1,jre,$re,Vre,UB,Di,Pe,sb,ZR,B1,qI,Yre,Wre,Xre,RT,NT,Zre,MT,NB,KT,oie,lN,dN,Mc,ow,aw,aie,il,rn,Aie,hie,uN,Xr,k1,S1,Yf,cb,fN,gie,pie,mie,yie,Iie,wie,xie,Cie,Eie,ro,Bie,bie,AN,Qie,jy,qie,Oie,LB,jT,HB,$T,KB,VT,gN,Gie,zie,lb=J(()=>{oo=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};Pd=Symbol("doneWritingPromise"),WT=Symbol("doneWritingResolve"),XT=Symbol("doneWritingReject"),Wf=Symbol("readingIndex"),an=class r extends Array{constructor(){super(),Object.setPrototypeOf(this,r.prototype),this[Pd]=new Promise((e,t)=>{this[WT]=e,this[XT]=t}),this[Pd].catch(()=>{})}};an.prototype.getReader=function(){return this[Wf]===void 0&&(this[Wf]=0),{read:async()=>(await this[Pd],this[Wf]===this.length?{value:void 0,done:!0}:{value:this[this[Wf]++],done:!1})}};an.prototype.readToEnd=async function(r){await this[Pd];let e=r(this.slice(this[Wf]));return this.length=0,e};an.prototype.clone=function(){let r=new an;return r[Pd]=this[Pd].then(()=>{r.push(...this)}),r};CA.prototype.write=async function(r){this.stream.push(r)};CA.prototype.close=async function(){this.stream[WT]()};CA.prototype.abort=async function(r){return this.stream[XT](r),r};CA.prototype.releaseLock=function(){};typeof oo.process=="object"&&oo.process.versions;_6=new WeakSet,xt=Symbol("externalBuffer");ms.prototype.read=async function(){return this[xt]&&this[xt].length?{done:!1,value:this[xt].shift()}:this._read()};ms.prototype.releaseLock=function(){this[xt]&&(this.stream[xt]=this[xt]),this._releaseLock()};ms.prototype.cancel=function(r){return this._cancel(r)};ms.prototype.readLine=async function(){let r=[],e;for(;!e;){let{done:t,value:i}=await this.read();if(i+="",t)return r.length?ui(r):void 0;let n=i.indexOf(` +`)+1;n&&(e=ui(r.concat(i.substr(0,n))),r=[]),n!==i.length&&r.push(i.substr(n))}return this.unshift(...r),e};ms.prototype.readByte=async function(){let{done:r,value:e}=await this.read();if(r)return;let t=e[0];return this.unshift(Rr(e,1)),t};ms.prototype.readBytes=async function(r){let e=[],t=0;for(;;){let{done:i,value:n}=await this.read();if(i)return e.length?ui(e):void 0;if(e.push(n),t+=n.length,t>=r){let s=ui(e);return this.unshift(Rr(s,r)),Rr(s,0,r)}}};ms.prototype.peekBytes=async function(r){let e=await this.readBytes(r);return this.unshift(e),e};ms.prototype.unshift=function(...r){if(this[xt]||(this[xt]=[]),r.length===1&&OI(r[0])&&this[xt].length&&r[0].length&&this[xt][0].byteOffset>=r[0].length){this[xt][0]=new Uint8Array(this[xt][0].buffer,this[xt][0].byteOffset-r[0].length,this[xt][0].byteLength+r[0].length);return}this[xt].unshift(...r.filter(e=>e&&e.length))};ms.prototype.readToEnd=async function(r=ui){let e=[];for(;;){let{done:t,value:i}=await this.read();if(t)break;e.push(i)}return r(e)};Lf=Symbol("byValue"),y={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(r,e){if(typeof e=="number"&&(e=this.read(r,e)),r[e]!==void 0)return r[e];throw new Error("Invalid enum value.")},read:function(r,e){if(r[Lf]||(r[Lf]=[],Object.entries(r).forEach(([t,i])=>{r[Lf][i]=t})),r[Lf][e]!==void 0)return r[Lf][e];throw new Error("Invalid enum value.")}},pe={preferredHashAlgorithm:y.hash.sha512,preferredSymmetricAlgorithm:y.symmetric.aes256,preferredCompressionAlgorithm:y.compression.uncompressed,aeadProtect:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:y.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:y.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},maxArgon2MemoryExponent:30,allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([y.symmetric.aes128,y.symmetric.aes192,y.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,enforceGrammar:!0,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.3.1",commentString:"https://openpgpjs.org",maxUserIDLength:1024*5,maxDecompressedMessageSize:1/0,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([y.hash.md5,y.hash.ripemd]),rejectMessageHashAlgorithms:new Set([y.hash.md5,y.hash.ripemd,y.hash.sha1]),rejectPublicKeyAlgorithms:new Set([y.publicKey.elgamal,y.publicKey.dsa]),rejectCurves:new Set([y.curve.secp256k1])},F6=(()=>{try{return process.env.NODE_ENV==="development"}catch{}return!1})(),F={isString:function(r){return typeof r=="string"||r instanceof String},nodeRequire:YT(import.meta.url),isArray:function(r){return r instanceof Array},isUint8Array:OI,isStream:or,getNobleCurve:async(r,e)=>{if(!pe.useEllipticFallback)throw new Error("This curve is only supported in the full build of OpenPGP.js");let{nobleCurves:t}=await Promise.resolve().then(function(){return Ure});switch(r){case y.publicKey.ecdh:case y.publicKey.ecdsa:{let i=t.get(e);if(!i)throw new Error("Unsupported curve");return i}case y.publicKey.x448:return t.get("x448");case y.publicKey.ed448:return t.get("ed448");default:throw new Error("Unsupported curve")}},readNumber:function(r){let e=0;for(let t=0;t<r.length;t++)e+=256**t*r[r.length-1-t];return e},writeNumber:function(r,e){let t=new Uint8Array(e);for(let i=0;i<e;i++)t[i]=r>>8*(e-i-1)&255;return t},readDate:function(r){let e=F.readNumber(r);return new Date(e*1e3)},writeDate:function(r){let e=Math.floor(r.getTime()/1e3);return F.writeNumber(e,4)},normalizeDate:function(r=Date.now()){return r===null||r===1/0?r:new Date(Math.floor(+r/1e3)*1e3)},readMPI:function(r){let t=(r[0]<<8|r[1])+7>>>3;return F.readExactSubarray(r,2,2+t)},readExactSubarray:function(r,e,t){if(r.length<t)throw new Error("Input array too short");return r.subarray(e,t)},leftPad(r,e){if(r.length>e)throw new Error("Input array too long");let t=new Uint8Array(e),i=e-r.length;return t.set(r,i),t},uint8ArrayToMPI:function(r){let e=F.uint8ArrayBitLength(r);if(e===0)throw new Error("Zero MPI");let t=r.subarray(r.length-Math.ceil(e/8)),i=new Uint8Array([(e&65280)>>8,e&255]);return F.concatUint8Array([i,t])},uint8ArrayBitLength:function(r){let e;for(e=0;e<r.length&&r[e]===0;e++);if(e===r.length)return 0;let t=r.subarray(e);return(t.length-1)*8+F.nbits(t[0])},hexToUint8Array:function(r){let e=new Uint8Array(r.length>>1);for(let t=0;t<r.length>>1;t++)e[t]=parseInt(r.substr(t<<1,2),16);return e},uint8ArrayToHex:function(r){let e="0123456789abcdef",t="";return r.forEach(i=>{t+=e[i>>4]+e[i&15]}),t},stringToUint8Array:function(r){return sr(r,e=>{if(!F.isString(e))throw new Error("stringToUint8Array: Data must be in the form of a string");let t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t})},uint8ArrayToString:function(r){r=new Uint8Array(r);let e=[],t=16384,i=r.length;for(let n=0;n<i;n+=t)e.push(String.fromCharCode.apply(String,r.subarray(n,n+t<i?n+t:i)));return e.join("")},encodeUTF8:function(r){let e=new TextEncoder("utf-8");function t(i,n=!1){return e.encode(i,{stream:!n})}return sr(r,t,()=>t("",!0))},decodeUTF8:function(r){let e=new TextDecoder("utf-8");function t(i,n=!1){return e.decode(i,{stream:!n})}return sr(r,t,()=>t(new Uint8Array,!0))},concat:ui,concatUint8Array:ZT,equalsUint8Array:function(r,e){if(!F.isUint8Array(r)||!F.isUint8Array(e))throw new Error("Data must be in the form of a Uint8Array");if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0},findLastIndex:function(r,e){for(let t=r.length;t>=0;t--)if(e(r[t],t,r))return t;return-1},writeChecksum:function(r){let e=0;for(let t=0;t<r.length;t++)e=e+r[t]&65535;return F.writeNumber(e,2)},printDebug:function(r){F6&&console.log("[OpenPGP.js debug]",r)},printDebugError:function(r){F6&&console.error("[OpenPGP.js debug]",r)},nbits:function(r){let e=1,t=r>>>16;return t!==0&&(r=t,e+=16),t=r>>8,t!==0&&(r=t,e+=8),t=r>>4,t!==0&&(r=t,e+=4),t=r>>2,t!==0&&(r=t,e+=2),t=r>>1,t!==0&&(r=t,e+=1),e},double:function(r){let e=new Uint8Array(r.length),t=r.length-1;for(let i=0;i<t;i++)e[i]=r[i]<<1^r[i+1]>>7;return e[t]=r[t]<<1^(r[0]>>7)*135,e},shiftRight:function(r,e){if(e)for(let t=r.length-1;t>=0;t--)r[t]>>=e,t>0&&(r[t]|=r[t-1]<<8-e);return r},getWebCrypto:function(){let e=typeof oo<"u"&&oo.crypto&&oo.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!e)throw new Error("The WebCrypto API is not available");return e},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){return typeof navigator<"u"?navigator.hardwareConcurrency||1:this.nodeRequire("os").cpus().length},isEmailAddress:function(r){return F.isString(r)?/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(r):!1},canonicalizeEOL:function(r){let i=!1;return sr(r,n=>{i&&(n=F.concatUint8Array([new Uint8Array([13]),n])),n[n.length-1]===13?(i=!0,n=n.subarray(0,-1)):i=!1;let s,o=[];for(let l=0;s=n.indexOf(10,l)+1,s;l=s)n[s-2]!==13&&o.push(s);if(!o.length)return n;let a=new Uint8Array(n.length+o.length),c=0;for(let l=0;l<o.length;l++){let d=n.subarray(o[l-1]||0,o[l]);a.set(d,c),c+=d.length,a[c-1]=13,a[c]=10,c++}return a.set(n.subarray(o[o.length-1]||0),c),a},()=>i?new Uint8Array([13]):void 0)},nativeEOL:function(r){let i=!1;return sr(r,n=>{i&&n[0]!==10?n=F.concatUint8Array([new Uint8Array([13]),n]):n=new Uint8Array(n),n[n.length-1]===13?(i=!0,n=n.subarray(0,-1)):i=!1;let s,o=0;for(let a=0;a!==n.length;a=s){s=n.indexOf(13,a)+1,s||(s=n.length);let c=s-(n[s]===10?1:0);a&&n.copyWithin(o,a,c),o+=c-a}return n.subarray(0,o)},()=>i?new Uint8Array([13]):void 0)},removeTrailingSpaces:function(r){return r.split(` `).map(e=>{let t=e.length-1;for(;t>=0&&(e[t]===" "||e[t]===" "||e[t]==="\r");t--);return e.substr(0,t+1)}).join(` -`)},wrapError:function(r,e){if(!e)return r instanceof Error?r:new Error(r);if(r instanceof Error){try{r.message+=": "+e.message,r.cause=e}catch{}return r}return new Error(r+": "+e.message,{cause:e})},constructAllowedPackets:function(r){let e={};return r.forEach(t=>{if(!t.tag)throw new Error("Invalid input: expected a packet class");e[t.tag]=t}),e},anyPromise:function(r){return new Promise((e,t)=>{let i;Promise.all(r.map(async n=>{try{e(await n)}catch(s){i=s}})).then(()=>{t(i)})})},selectUint8Array:function(r,e,t){let i=Math.max(e.length,t.length),n=new Uint8Array(i),s=0;for(let o=0;o<n.length;o++)n[o]=e[o]&256-r|t[o]&255+r,s+=r&o<e.length|1-r&o<t.length;return n.subarray(0,s)},selectUint8:function(r,e,t){return e&256-r|t&255+r},isAES:function(r){return r===m.symmetric.aes128||r===m.symmetric.aes192||r===m.symmetric.aes256}},OE=F.getNodeBuffer();OE?(Uy=r=>OE.from(r).toString("base64"),Ry=r=>{let e=OE.from(r,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}):(Uy=r=>btoa(F.uint8ArrayToString(r)),Ry=r=>F.stringToUint8Array(atob(r)));br=[new Array(255),new Array(255),new Array(255),new Array(255)];for(let r=0;r<=255;r++){let e=r<<16;for(let t=0;t<8;t++)e=e<<1^((e&8388608)!==0?8801531:0);br[0][r]=(e&16711680)>>16|e&65280|(e&255)<<16}for(let r=0;r<=255;r++)br[1][r]=br[0][r]>>8^br[0][br[0][r]&255];for(let r=0;r<=255;r++)br[2][r]=br[1][r]>>8^br[0][br[1][r]&255];for(let r=0;r<=255;r++)br[3][r]=br[2][r]>>8^br[0][br[2][r]&255];FV=(function(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,255,!0),new Int16Array(r)[0]===255})();Ci=BigInt(0),md=BigInt(1);OV=F.getNodeCrypto();cs=BigInt(1);HV=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999].map(r=>BigInt(r));h5=F.getWebCrypto(),Ny=F.getNodeCrypto(),GV=Ny&&Ny.getHashes();zV=oo("md5")||ao("md5"),JV=oo("sha1")||ao("sha1","SHA-1"),jV=oo("sha224")||ao("sha224"),$V=oo("sha256")||ao("sha256","SHA-256"),VV=oo("sha384")||ao("sha384","SHA-384"),YV=oo("sha512")||ao("sha512","SHA-512"),WV=oo("ripemd160")||ao("ripemd160"),XV=oo("sha3-256")||ao("sha3_256"),ZV=oo("sha3-512")||ao("sha3_512");nn=[];nn[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16];nn[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20];nn[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20];nn[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32];nn[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48];nn[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64];nn[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];nn[12]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,8,5,0,4,32];nn[14]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,10,5,0,4,64];bd=F.getWebCrypto(),Rc=F.getNodeCrypto(),wa=BigInt(1);ga=BigInt(1);wY={"2a8648ce3d030107":m.curve.nistP256,"2b81040022":m.curve.nistP384,"2b81040023":m.curve.nistP521,"2b8104000a":m.curve.secp256k1,"2b06010401da470f01":m.curve.ed25519Legacy,"2b060104019755010501":m.curve.curve25519Legacy,"2b2403030208010107":m.curve.brainpoolP256r1,"2b240303020801010b":m.curve.brainpoolP384r1,"2b240303020801010d":m.curve.brainpoolP512r1},ro=class r{constructor(e){if(e instanceof r)this.oid=e.oid;else if(F.isArray(e)||F.isUint8Array(e)){if(e=new Uint8Array(e),e[0]===6){if(e[1]!==e.length-2)throw new Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){let t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw new Error("Invalid oid")}write(){return F.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return F.uint8ArrayToHex(this.oid)}getName(){let e=wY[this.toHex()];if(!e)throw new Error("Unknown curve object identifier.");return e}};ft=class r extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,r),this.name="UnsupportedError"}},yd=class extends ft{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ft),this.name="UnknownPacketError"}},Lf=class extends ft{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ft),this.name="MalformedPacketError"}},Gf=class{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}};o1=(r,e)=>{if(r===m.publicKey.ed25519)return{kty:"OKP",crv:"Ed25519",x:Tr(e),ext:!0};throw new Error("Unsupported EdDSA algorithm")},H6=(r,e,t)=>{if(r===m.publicKey.ed25519){let i=o1(r,e);return i.d=Tr(t),i}else throw new Error("Unsupported EdDSA algorithm")},EY=Object.freeze({__proto__:null,generate:r1,getPayloadSize:CI,getPreferredHashAlgo:EI,sign:i1,validateParams:s1,verify:n1});BY=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;uA=(r,e)=>{function t(i,...n){if(kt(i),!BY)throw new Error("Non little-endian hardware is not yet supported");if(r.nonceLength!==void 0){let d=n[0];if(!d)throw new Error("nonce / iv required");r.varSizeNonce?kt(d):kt(d,r.nonceLength)}let s=r.tagLength;s&&n[1]!==void 0&&kt(n[1]);let o=e(i,...n),a=(d,u)=>{if(u!==void 0){if(d!==2)throw new Error("cipher output not supported");kt(u)}},c=!1;return{encrypt(d,u){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,kt(d),a(o.encrypt.length,u),o.encrypt(d,u)},decrypt(d,u){if(kt(d),s&&d.length<s)throw new Error("invalid ciphertext length: smaller than tagLength="+s);return a(o.decrypt.length,u),o.decrypt(d,u)}}}return Object.assign(t,r),t};Xs=16,l1=new Uint8Array(16),ns=Et(l1),SY=225,DY=(r,e,t,i)=>{let n=i&1;return{s3:t<<31|i>>>1,s2:e<<31|t>>>1,s1:r<<31|e>>>1,s0:r>>>1^SY<<24&-(n&1)}},rn=r=>(r>>>0&255)<<24|(r>>>8&255)<<16|(r>>>16&255)<<8|r>>>24&255|0;_Y=r=>r>64*1024?8:r>1024?4:2,My=class{constructor(e,t){this.blockLen=Xs,this.outputLen=Xs,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=zf(e),kt(e,16);let i=BI(e),n=i.getUint32(0,!1),s=i.getUint32(4,!1),o=i.getUint32(8,!1),a=i.getUint32(12,!1),c=[];for(let g=0;g<128;g++)c.push({s0:rn(n),s1:rn(s),s2:rn(o),s3:rn(a)}),{s0:n,s1:s,s2:o,s3:a}=DY(n,s,o,a);let l=_Y(t||1024);if(![1,2,4,8].includes(l))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=l;let u=128/l,f=this.windowSize=2**l,h=[];for(let g=0;g<u;g++)for(let p=0;p<f;p++){let I=0,y=0,w=0,C=0;for(let b=0;b<l;b++){if(!(p>>>l-b-1&1))continue;let{s0:_,s1:R,s2:U,s3:T}=c[l*g+b];I^=_,y^=R,w^=U,C^=T}h.push({s0:I,s1:y,s2:w,s3:C})}this.t=h}_updateBlock(e,t,i,n){e^=this.s0,t^=this.s1,i^=this.s2,n^=this.s3;let{W:s,t:o,windowSize:a}=this,c=0,l=0,d=0,u=0,f=(1<<s)-1,h=0;for(let g of[e,t,i,n])for(let p=0;p<4;p++){let I=g>>>8*p&255;for(let y=8/s-1;y>=0;y--){let w=I>>>s*y&f,{s0:C,s1:b,s2:x,s3:_}=o[h*a+w];c^=C,l^=b,d^=x,u^=_,h+=1}}this.s0=c,this.s1=l,this.s2=d,this.s3=u}update(e){Oy(this),e=zf(e),kt(e);let t=Et(e),i=Math.floor(e.length/Xs),n=e.length%Xs;for(let s=0;s<i;s++)this._updateBlock(t[s*4+0],t[s*4+1],t[s*4+2],t[s*4+3]);return n&&(l1.set(e.subarray(i*Xs)),this._updateBlock(ns[0],ns[1],ns[2],ns[3]),Xr(ns)),this}destroy(){let{t:e}=this;for(let t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){Oy(this),G6(e,this),this.finished=!0;let{s0:t,s1:i,s2:n,s3:s}=this,o=Et(e);return o[0]=t,o[1]=i,o[2]=n,o[3]=s,e}digest(){let e=new Uint8Array(Xs);return this.digestInto(e),this.destroy(),e}},IB=class extends My{constructor(e,t){e=zf(e),kt(e);let i=QY(Bi(e));super(i,t),Xr(i)}update(e){e=zf(e),Oy(this);let t=Et(e),i=e.length%Xs,n=Math.floor(e.length/Xs);for(let s=0;s<n;s++)this._updateBlock(rn(t[s*4+3]),rn(t[s*4+2]),rn(t[s*4+1]),rn(t[s*4+0]));return i&&(l1.set(e.subarray(n*Xs)),this._updateBlock(rn(ns[3]),rn(ns[2]),rn(ns[1]),rn(ns[0])),Xr(ns)),this}digestInto(e){Oy(this),G6(e,this),this.finished=!0;let{s0:t,s1:i,s2:n,s3:s}=this,o=Et(e);return o[0]=t,o[1]=i,o[2]=n,o[3]=s,e.reverse()}};m5=j6((r,e)=>new My(r,e));j6((r,e)=>new IB(r,e));bi=16,d1=4,Ay=new Uint8Array(bi),FY=283;wB=(()=>{let r=new Uint8Array(256);for(let t=0,i=1;t<256;t++,i^=u1(i))r[t]=i;let e=new Uint8Array(256);e[0]=99;for(let t=0;t<255;t++){let i=r[255-t];i|=i<<8,e[r[t]]=(i^i>>4^i>>5^i>>6^i>>7^99)&255}return Xr(r),e})(),PY=wB.map((r,e)=>wB.indexOf(e)),TY=r=>r<<24|r>>>8,ME=r=>r<<8|r>>>24,y5=r=>r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255;f1=$6(wB,r=>Ad(r,3)<<24|r<<16|r<<8|Ad(r,2)),V6=$6(PY,r=>Ad(r,11)<<24|Ad(r,13)<<16|Ad(r,9)<<8|Ad(r,14)),UY=(()=>{let r=new Uint8Array(16);for(let e=0,t=1;e<16;e++,t=u1(t))r[e]=t;return r})();RY=uA({blockSize:16,nonceLength:16},function(e,t){function i(n,s){if(kt(n),s!==void 0&&(kt(s),!sn(s)))throw new Error("unaligned destination");let o=Kc(e),a=Bi(t),c=[o,a];sn(n)||c.push(n=Bi(n));let l=Y6(o,a,n,s);return Xr(...c),l}return{encrypt:(n,s)=>i(n,s),decrypt:(n,s)=>i(n,s)}});xB=uA({blockSize:16,nonceLength:16},function(e,t,i={}){let n=!i.disablePadding;return{encrypt(s,o){let a=Kc(e),{b:c,o:l,out:d}=qY(s,n,o),u=t,f=[a];sn(u)||f.push(u=Bi(u));let h=Et(u),g=h[0],p=h[1],I=h[2],y=h[3],w=0;for(;w+4<=c.length;)g^=c[w+0],p^=c[w+1],I^=c[w+2],y^=c[w+3],{s0:g,s1:p,s2:I,s3:y}=Fn(a,g,p,I,y),l[w++]=g,l[w++]=p,l[w++]=I,l[w++]=y;if(n){let C=MY(s.subarray(w*4));g^=C[0],p^=C[1],I^=C[2],y^=C[3],{s0:g,s1:p,s2:I,s3:y}=Fn(a,g,p,I,y),l[w++]=g,l[w++]=p,l[w++]=I,l[w++]=y}return Xr(...f),d},decrypt(s,o){NY(s);let a=A1(e),c=t,l=[a];sn(c)||l.push(c=Bi(c));let d=Et(c);o=fA(s.length,o),sn(s)||l.push(s=Bi(s)),c1(s,o);let u=Et(s),f=Et(o),h=d[0],g=d[1],p=d[2],I=d[3];for(let y=0;y+4<=u.length;){let w=h,C=g,b=p,x=I;h=u[y+0],g=u[y+1],p=u[y+2],I=u[y+3];let{s0:_,s1:R,s2:U,s3:T}=bI(a,h,g,p,I);f[y++]=_^w,f[y++]=R^C,f[y++]=U^b,f[y++]=T^x}return Xr(...l),OY(o,n)}}}),W6=uA({blockSize:16,nonceLength:16},function(e,t){function i(n,s,o){kt(n);let a=n.length;if(o=fA(a,o),z6(n,o))throw new Error("overlapping src and dst not supported.");let c=Kc(e),l=t,d=[c];sn(l)||d.push(l=Bi(l)),sn(n)||d.push(n=Bi(n));let u=Et(n),f=Et(o),h=s?f:u,g=Et(l),p=g[0],I=g[1],y=g[2],w=g[3];for(let b=0;b+4<=u.length;){let{s0:x,s1:_,s2:R,s3:U}=Fn(c,p,I,y,w);f[b+0]=u[b+0]^x,f[b+1]=u[b+1]^_,f[b+2]=u[b+2]^R,f[b+3]=u[b+3]^U,p=h[b++],I=h[b++],y=h[b++],w=h[b++]}let C=bi*Math.floor(u.length/d1);if(C<a){({s0:p,s1:I,s2:y,s3:w}=Fn(c,p,I,y,w));let b=a1(new Uint32Array([p,I,y,w]));for(let x=C,_=0;x<a;x++,_++)o[x]=n[x]^b[_];Xr(b)}return Xr(...d),o}return{encrypt:(n,s)=>i(n,!0,s),decrypt:(n,s)=>i(n,!1,s)}});hy=uA({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(e,t,i){if(t.length<8)throw new Error("aes/gcm: invalid nonce length");let n=16;function s(a,c,l){let d=LY(m5,!1,a,l,i);for(let u=0;u<c.length;u++)d[u]^=c[u];return d}function o(){let a=Kc(e),c=Ay.slice(),l=Ay.slice();if(qf(a,!1,l,l,c),t.length===12)l.set(t);else{let u=Ay.slice(),f=BI(u);yB(f,8,BigInt(t.length*8),!1);let h=m5.create(c).update(t).update(u);h.digestInto(l),h.destroy()}let d=qf(a,!1,l,Ay);return{xk:a,authKey:c,counter:l,tagMask:d}}return{encrypt(a){let{xk:c,authKey:l,counter:d,tagMask:u}=o(),f=new Uint8Array(a.length+n),h=[c,l,d,u];sn(a)||h.push(a=Bi(a)),qf(c,!1,d,a,f.subarray(0,a.length));let g=s(l,u,f.subarray(0,f.length-n));return h.push(g),f.set(g,a.length),Xr(...h),f},decrypt(a){let{xk:c,authKey:l,counter:d,tagMask:u}=o(),f=[c,l,u,d];sn(a)||f.push(a=Bi(a));let h=a.subarray(0,-n),g=a.subarray(-n),p=s(l,u,h);if(f.push(p),!J6(p,g))throw new Error("aes/gcm: invalid ghash tag");let I=qf(c,!1,d,h);return Xr(...f),I}}});I5={encrypt(r,e){if(e.length>=2**32)throw new Error("plaintext should be less than 4gb");let t=Kc(r);if(e.length===16)Z6(t,e);else{let i=Et(e),n=i[0],s=i[1];for(let o=0,a=1;o<6;o++)for(let c=2;c<i.length;c+=2,a++){let{s0:l,s1:d,s2:u,s3:f}=Fn(t,n,s,i[c],i[c+1]);n=l,s=d^y5(a),i[c]=u,i[c+1]=f}i[0]=n,i[1]=s}t.fill(0)},decrypt(r,e){if(e.length-8>=2**32)throw new Error("ciphertext should be less than 4gb");let t=A1(r),i=e.length/8-1;if(i===1)eT(t,e);else{let n=Et(e),s=n[0],o=n[1];for(let a=0,c=i*6;a<6;a++)for(let l=i*2;l>=1;l-=2,c--){o^=y5(c);let{s0:d,s1:u,s2:f,s3:h}=bI(t,s,o,n[l],n[l+1]);s=d,o=u,n[l]=f,n[l+1]=h}n[0]=s,n[1]=o}t.fill(0)}},w5=new Uint8Array(8).fill(166),tT=uA({blockSize:8},r=>({encrypt(e){if(!e.length||e.length%8!==0)throw new Error("invalid plaintext length");if(e.length===8)throw new Error("8-byte keys not allowed in AESKW, use AESKWP instead");let t=vY(w5,e);return I5.encrypt(r,t),t},decrypt(e){if(e.length%8!==0||e.length<24)throw new Error("invalid ciphertext length");let t=Bi(e);if(I5.decrypt(r,t),!J6(t.subarray(0,8),w5))throw new Error("integrity check failed");return t.subarray(0,8).fill(0),t.subarray(8)}})),x5={expandKeyLE:Kc,expandKeyDecLE:A1,encrypt:Fn,decrypt:bI,encryptBlock:Z6,decryptBlock:eT,ctrCounter:Y6,ctr32:qf};Id=F.getWebCrypto();Ly={x25519:F.encodeUTF8("OpenPGP X25519"),x448:F.encodeUTF8("OpenPGP X448")};zY=Object.freeze({__proto__:null,decrypt:nT,encrypt:iT,generate:h1,generateEphemeralEncryptionMaterial:kI,getPayloadSize:vI,recomputeSharedSecret:SI,validateParams:g1}),LE=F.getWebCrypto(),Ky=F.getNodeCrypto(),ls={[m.curve.nistP256]:"P-256",[m.curve.nistP384]:"P-384",[m.curve.nistP521]:"P-521"},Gs=Ky?Ky.getCurves():[],is=Ky?{[m.curve.secp256k1]:Gs.includes("secp256k1")?"secp256k1":void 0,[m.curve.nistP256]:Gs.includes("prime256v1")?"prime256v1":void 0,[m.curve.nistP384]:Gs.includes("secp384r1")?"secp384r1":void 0,[m.curve.nistP521]:Gs.includes("secp521r1")?"secp521r1":void 0,[m.curve.ed25519Legacy]:Gs.includes("ED25519")?"ED25519":void 0,[m.curve.curve25519Legacy]:Gs.includes("X25519")?"X25519":void 0,[m.curve.brainpoolP256r1]:Gs.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,[m.curve.brainpoolP384r1]:Gs.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,[m.curve.brainpoolP512r1]:Gs.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},sT={[m.curve.nistP256]:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:m.publicKey.ecdsa,hash:m.hash.sha256,cipher:m.symmetric.aes128,node:is[m.curve.nistP256],web:ls[m.curve.nistP256],payloadSize:32,sharedSize:256,wireFormatLeadingByte:4},[m.curve.nistP384]:{oid:[6,5,43,129,4,0,34],keyType:m.publicKey.ecdsa,hash:m.hash.sha384,cipher:m.symmetric.aes192,node:is[m.curve.nistP384],web:ls[m.curve.nistP384],payloadSize:48,sharedSize:384,wireFormatLeadingByte:4},[m.curve.nistP521]:{oid:[6,5,43,129,4,0,35],keyType:m.publicKey.ecdsa,hash:m.hash.sha512,cipher:m.symmetric.aes256,node:is[m.curve.nistP521],web:ls[m.curve.nistP521],payloadSize:66,sharedSize:528,wireFormatLeadingByte:4},[m.curve.secp256k1]:{oid:[6,5,43,129,4,0,10],keyType:m.publicKey.ecdsa,hash:m.hash.sha256,cipher:m.symmetric.aes128,node:is[m.curve.secp256k1],payloadSize:32,wireFormatLeadingByte:4},[m.curve.ed25519Legacy]:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:m.publicKey.eddsaLegacy,hash:m.hash.sha512,node:!1,payloadSize:32,wireFormatLeadingByte:64},[m.curve.curve25519Legacy]:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:m.publicKey.ecdh,hash:m.hash.sha256,cipher:m.symmetric.aes128,node:!1,payloadSize:32,wireFormatLeadingByte:64},[m.curve.brainpoolP256r1]:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:m.publicKey.ecdsa,hash:m.hash.sha256,cipher:m.symmetric.aes128,node:is[m.curve.brainpoolP256r1],payloadSize:32,wireFormatLeadingByte:4},[m.curve.brainpoolP384r1]:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:m.publicKey.ecdsa,hash:m.hash.sha384,cipher:m.symmetric.aes192,node:is[m.curve.brainpoolP384r1],payloadSize:48,wireFormatLeadingByte:4},[m.curve.brainpoolP512r1]:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:m.publicKey.ecdsa,hash:m.hash.sha512,cipher:m.symmetric.aes256,node:is[m.curve.brainpoolP512r1],payloadSize:64,wireFormatLeadingByte:4}},vi=class{constructor(e){try{this.name=e instanceof ro?e.getName():m.write(m.curve,e)}catch{throw new ft("Unknown curve")}let t=sT[this.name];this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node,this.web=t.web,this.payloadSize=t.payloadSize,this.sharedSize=t.sharedSize,this.wireFormatLeadingByte=t.wireFormatLeadingByte,this.web&&F.getWebCrypto()?this.type="web":this.node&&F.getNodeCrypto()?this.type="node":this.name===m.curve.curve25519Legacy?this.type="curve25519Legacy":this.name===m.curve.ed25519Legacy&&(this.type="ed25519Legacy")}async genKeyPair(){switch(this.type){case"web":try{return await JY(this.name,this.wireFormatLeadingByte)}catch(e){return F.printDebugError("Browser did not support generating ec key "+e.message),C5(this.name)}case"node":return jY(this.name);case"curve25519Legacy":{let{k:e,A:t}=await h1(m.publicKey.x25519),i=e.slice().reverse();return i[0]=i[0]&127|64,i[31]&=248,{publicKey:F.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:i}}case"ed25519Legacy":{let{seed:e,A:t}=await r1(m.publicKey.ed25519);return{publicKey:F.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:e}}default:return C5(this.name)}}};Gy=F.getWebCrypto(),dT=F.getNodeCrypto();ZY=Object.freeze({__proto__:null,sign:m1,validateParams:$Y,verify:y1});eW=Object.freeze({__proto__:null,sign:uT,validateParams:AT,verify:fT});dW=Object.freeze({__proto__:null,decrypt:mT,encrypt:pT,validateParams:iW}),uW=Object.freeze({__proto__:null,CurveWithOID:vi,ecdh:dW,ecdhX:zY,ecdsa:ZY,eddsa:EY,eddsaLegacy:eW,generate:Sy,getPreferredHashAlgo:oT}),Dy=BigInt(0),Of=BigInt(1);zy=class{constructor(e){e&&(this.data=e)}read(e){if(e.length>=1){let t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw new Error("Invalid symmetric key")}write(){return F.concatUint8Array([new Uint8Array([this.data.length]),this.data])}},Jy=class{constructor(e){if(e){let{hash:t,cipher:i}=e;this.hash=t,this.cipher=i}else this.hash=null,this.cipher=null}read(e){if(e.length<4||e[0]!==3||e[1]!==1)throw new ft("Cannot read KDFParams");return this.hash=e[2],this.cipher=e[3],4}write(){return new Uint8Array([3,1,this.hash,this.cipher])}},jy=class r{static fromObject({wrappedKey:e,algorithm:t}){let i=new r;return i.wrappedKey=e,i.algorithm=t,i}read(e){let t=0,i=e[t++];this.algorithm=i%2?e[t++]:null,i-=i%2,this.wrappedKey=F.readExactSubarray(e,t,t+i),t+=i}write(){return F.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}};Qy=F.getWebCrypto(),Jf=F.getNodeCrypto(),kc=Jf?Jf.getCiphers():[],QI={idea:kc.includes("idea-cfb")?"idea-cfb":void 0,tripledes:kc.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:kc.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:kc.includes("bf-cfb")?"bf-cfb":void 0,aes128:kc.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:kc.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:kc.includes("aes-256-cfb")?"aes-256-cfb":void 0};$y=class{constructor(e,t,i){let{blockSize:n}=It(e);this.key=t,this.iv=i,this.prevBlock=i.slice(),this.nextBlock=new Uint8Array(n),this.i=0,this.blockSize=n,this.zeroBlock=new Uint8Array(this.blockSize)}static isSupported(e){let{keySize:t}=It(e);return Qy.importKey("raw",new Uint8Array(t),"aes-cbc",!1,["encrypt"]).then(()=>!0,()=>!1)}async _runCBC(e,t){let i="AES-CBC";this.keyRef=this.keyRef||await Qy.importKey("raw",this.key,i,!1,["encrypt"]);let n=await Qy.encrypt({name:i,iv:t||this.zeroBlock},this.keyRef,e);return new Uint8Array(n).subarray(0,e.length)}async encryptChunk(e){let t=this.nextBlock.length-this.i,i=e.subarray(0,t);if(this.nextBlock.set(i,this.i),this.i+e.length>=2*this.blockSize){let s=(e.length-t)%this.blockSize,o=F.concatUint8Array([this.nextBlock,e.subarray(t,e.length-s)]),a=F.concatUint8Array([this.prevBlock,o.subarray(0,o.length-this.blockSize)]),c=await this._runCBC(a);return gy(c,o),this.prevBlock=c.slice(-this.blockSize),s>0&&this.nextBlock.set(e.subarray(-s)),this.i=s,c}this.i+=i.length;let n;if(this.i===this.nextBlock.length){let s=this.nextBlock;n=await this._runCBC(this.prevBlock),gy(n,s),this.prevBlock=n.slice(),this.i=0;let o=e.subarray(i.length);this.nextBlock.set(o,this.i),this.i+=o.length}else n=new Uint8Array;return n}async finish(){let e;if(this.i===0)e=new Uint8Array;else{this.nextBlock=this.nextBlock.subarray(0,this.i);let t=this.nextBlock,i=await this._runCBC(this.prevBlock);gy(i,t),e=i.subarray(0,t.length)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.keyRef=null,this.key=null}async encrypt(e){let i=(await this._runCBC(F.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return gy(i,e),this.clearSensitiveData(),i}},Vy=class{constructor(e,t,i,n){this.forEncryption=e;let{blockSize:s}=It(t);this.key=x5.expandKeyLE(i),n.byteOffset%4!==0&&(n=n.slice()),this.prevBlock=KE(n),this.nextBlock=new Uint8Array(s),this.i=0,this.blockSize=s}_runCFB(e){let t=KE(e),i=new Uint8Array(e.length),n=KE(i);for(let s=0;s+4<=n.length;s+=4){let{s0:o,s1:a,s2:c,s3:l}=x5.encrypt(this.key,this.prevBlock[0],this.prevBlock[1],this.prevBlock[2],this.prevBlock[3]);n[s+0]=t[s+0]^o,n[s+1]=t[s+1]^a,n[s+2]=t[s+2]^c,n[s+3]=t[s+3]^l,this.prevBlock=(this.forEncryption?n:t).slice(s,s+4)}return i}async processChunk(e){let t=this.nextBlock.length-this.i,i=e.subarray(0,t);if(this.nextBlock.set(i,this.i),this.i+e.length>=2*this.blockSize){let s=(e.length-t)%this.blockSize,o=F.concatUint8Array([this.nextBlock,e.subarray(t,e.length-s)]),a=this._runCFB(o);return s>0&&this.nextBlock.set(e.subarray(-s)),this.i=s,a}this.i+=i.length;let n;if(this.i===this.nextBlock.length){n=this._runCFB(this.nextBlock),this.i=0;let s=e.subarray(i.length);this.nextBlock.set(s,this.i),this.i+=s.length}else n=new Uint8Array;return n}async finish(){let e;return this.i===0?e=new Uint8Array:e=this._runCFB(this.nextBlock).subarray(0,this.i),this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}};KE=r=>new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4));k5=F.getWebCrypto(),vW=F.getNodeCrypto(),io=16;_y=new Uint8Array(io);D5=F.getWebCrypto(),QW=F.getNodeCrypto(),_W=F.getNodeBuffer(),co=16,FW=co,ud=co,Q5=new Uint8Array(co),bB=new Uint8Array(co);bB[co-1]=1;vB=new Uint8Array(co);vB[co-1]=2;AA.getNonce=function(r,e){let t=r.slice();for(let i=0;i<e.length;i++)t[8+i]^=e[i];return t};AA.blockLength=co;AA.ivLength=FW;AA.tagLength=ud;li=16,IT=15,ha=16;Sf=new Uint8Array(li),UW=new Uint8Array([1]);hA.getNonce=function(r,e){let t=r.slice();for(let i=0;i<e.length;i++)t[7+i]^=e[i];return t};hA.blockLength=li;hA.ivLength=IT;hA.tagLength=ha;GE=F.getWebCrypto(),F5=F.getNodeCrypto(),P5=F.getNodeBuffer(),RW=16,NW=12,fd=16,zE="AES-GCM";kd.getNonce=function(r,e){let t=r.slice();for(let i=0;i<e.length;i++)t[4+i]^=e[i];return t};kd.blockLength=RW;kd.ivLength=NW;kd.tagLength=fd;LW=2,HW=19,KW=16,T5=30,wd=class r extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,r),this.name="Argon2OutOfMemoryError"}},GW=2<<19,kB=class{constructor(e=pe){let{passes:t,parallelism:i,memoryExponent:n}=e.s2kArgon2Params;this.type="argon2",this.salt=null,this.t=t,this.p=i,this.encodedM=n}generateSalt(){this.salt=Rr(KW)}read(e){let t=0;return this.salt=e.subarray(t,t+16),t+=16,this.t=e[t++],this.p=e[t++],this.encodedM=e[t++],t}write(){let e=[new Uint8Array([m.write(m.s2k,this.type)]),this.salt,new Uint8Array([this.t,this.p,this.encodedM])];return F.concatUint8Array(e)}async produceKey(e,t,i){if(i.maxArgon2MemoryExponent>T5)throw new wd(`'config.maxArgon2MemoryExponent' exceeds the max allowed value of ${T5}`);if(this.encodedM>i.maxArgon2MemoryExponent)throw new wd("Argon2 required memory exceeds `config.maxArgon2MemoryExponent`");let n=1<<this.encodedM;try{my=my||(await Promise.resolve().then(function(){return Nte})).default,Df=Df||my();let s=await Df,o=F.encodeUTF8(e),a=s({version:HW,type:LW,password:o,salt:this.salt,tagLength:t,memorySize:n,parallelism:this.p,passes:this.t});return n>GW&&(Df=my(),Df.catch(()=>{})),a}catch(s){throw s.message&&(s.message.includes("Unable to grow instance memory")||s.message.includes("failed to grow memory")||s.message.includes("WebAssembly.Memory.grow")||s.message.includes("Out of memory"))?new wd("Could not allocate required memory for Argon2"):s}}},SB=class{constructor(e,t=pe){this.algorithm=m.hash.sha256,this.type=m.read(m.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=Rr(8)}}getCount(){return 16+(this.c&15)<<(this.c>>4)+6}read(e){let t=0;switch(this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if(F.uint8ArrayToString(e.subarray(t,t+3))==="GNU")if(t+=3,1e3+e[t++]===1001)this.type="gnu-dummy";else throw new ft("Unknown s2k gnu protection mode.");else throw new ft("Unknown s2k type.");break;default:throw new ft("Unknown s2k type.")}return t}write(){if(this.type==="gnu-dummy")return new Uint8Array([101,0,...F.stringToUint8Array("GNU"),1]);let e=[new Uint8Array([m.write(m.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw new Error("GNU s2k type not supported.");default:throw new Error("Unknown s2k type.")}return F.concatUint8Array(e)}async produceKey(e,t,i){e=F.encodeUTF8(e);let n=[],s=0,o=0;for(;s<t;){let a;switch(this.type){case"simple":a=F.concatUint8Array([new Uint8Array(o),e]);break;case"salted":a=F.concatUint8Array([new Uint8Array(o),this.salt,e]);break;case"iterated":{let l=F.concatUint8Array([this.salt,e]),d=l.length,u=Math.max(this.getCount(),d);a=new Uint8Array(o+u),a.set(l,o);for(let f=o+d;f<u;f+=d,d*=2)a.copyWithin(f,o,f);break}case"gnu":throw new Error("GNU s2k type not supported.");default:throw new Error("Unknown s2k type.")}let c=await fs(this.algorithm,a);n.push(c),s+=c.length,o++}return F.concatUint8Array(n).subarray(0,t)}},zW=new Set([m.s2k.argon2,m.s2k.iterated]);JW=S6("/");try{xd=JW("worker_threads"),jW=xd.Worker,$W=xd.isMarkedAsUntransferable}catch{}Gt=Uint8Array,Li=Uint16Array,I1=Int32Array,FI=new Gt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),PI=new Gt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),DB=new Gt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),xT=function(r,e){for(var t=new Li(31),i=0;i<31;++i)t[i]=e+=1<<r[i-1];for(var n=new I1(t[30]),i=1;i<30;++i)for(var s=t[i];s<t[i+1];++s)n[s]=s-t[i]<<5|i;return{b:t,r:n}},xd=xT(FI,2),CT=xd.b,QB=xd.r;CT[28]=258,QB[258]=28;ET=xT(PI,0),VW=ET.b,U5=ET.r,_B=new Li(32768);for(ut=0;ut<32768;++ut)zs=(ut&43690)>>1|(ut&21845)<<1,zs=(zs&52428)>>2|(zs&13107)<<2,zs=(zs&61680)>>4|(zs&3855)<<4,_B[ut]=((zs&65280)>>8|(zs&255)<<8)>>1;ds=(function(r,e,t){for(var i=r.length,n=0,s=new Li(e);n<i;++n)r[n]&&++s[r[n]-1];var o=new Li(e);for(n=1;n<e;++n)o[n]=o[n-1]+s[n-1]<<1;var a;if(t){a=new Li(1<<e);var c=15-e;for(n=0;n<i;++n)if(r[n])for(var l=n<<4|r[n],d=e-r[n],u=o[r[n]-1]++<<d,f=u|(1<<d)-1;u<=f;++u)a[_B[u]>>c]=l}else for(a=new Li(i),n=0;n<i;++n)r[n]&&(a[n]=_B[o[r[n]-1]++]>>15-r[n]);return a}),Ca=new Gt(288);for(ut=0;ut<144;++ut)Ca[ut]=8;for(ut=144;ut<256;++ut)Ca[ut]=9;for(ut=256;ut<280;++ut)Ca[ut]=7;for(ut=280;ut<288;++ut)Ca[ut]=8;$f=new Gt(32);for(ut=0;ut<32;++ut)$f[ut]=5;YW=ds(Ca,9,0),WW=ds(Ca,9,1),XW=ds($f,5,0),ZW=ds($f,5,1),JE=function(r){for(var e=r[0],t=1;t<r.length;++t)r[t]>e&&(e=r[t]);return e},vn=function(r,e,t){var i=e/8|0;return(r[i]|r[i+1]<<8)>>(e&7)&t},jE=function(r,e){var t=e/8|0;return(r[t]|r[t+1]<<8|r[t+2]<<16)>>(e&7)},w1=function(r){return(r+7)/8|0},Hf=function(r,e,t){return(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length),new Gt(r.subarray(e,t))},eX=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Br=function(r,e,t){var i=new Error(e||eX[r]);if(i.code=r,Error.captureStackTrace&&Error.captureStackTrace(i,Br),!t)throw i;return i},tX=function(r,e,t,i){var n=r.length,s=0;if(!n||e.f&&!e.l)return t||new Gt(0);var o=!t,a=o||e.i!=2,c=e.i;o&&(t=new Gt(n*3));var l=function(qe){var _e=t.length;if(qe>_e){var se=new Gt(Math.max(_e*2,qe));se.set(t),t=se}},d=e.f||0,u=e.p||0,f=e.b||0,h=e.l,g=e.d,p=e.m,I=e.n,y=n*8;do{if(!h){d=vn(r,u,1);var w=vn(r,u+1,3);if(u+=3,w)if(w==1)h=WW,g=ZW,p=9,I=5;else if(w==2){var _=vn(r,u,31)+257,R=vn(r,u+10,15)+4,U=_+vn(r,u+5,31)+1;u+=14;for(var T=new Gt(U),D=new Gt(19),B=0;B<R;++B)D[DB[B]]=vn(r,u+B*3,7);u+=R*3;for(var Q=JE(D),v=(1<<Q)-1,E=ds(D,Q,1),B=0;B<U;){var P=E[vn(r,u,v)];u+=P&15;var C=P>>4;if(C<16)T[B++]=C;else{var N=0,J=0;for(C==16?(J=3+vn(r,u,3),u+=2,N=T[B-1]):C==17?(J=3+vn(r,u,7),u+=3):C==18&&(J=11+vn(r,u,127),u+=7);J--;)T[B++]=N}}var z=T.subarray(0,_),L=T.subarray(_);p=JE(z),I=JE(L),h=ds(z,p,1),g=ds(L,I,1)}else Br(1);else{var C=w1(u)+4,b=r[C-4]|r[C-3]<<8,x=C+b;if(x>n){c&&Br(0);break}a&&l(f+b),t.set(r.subarray(C,x),f),e.b=f+=b,e.p=u=x*8,e.f=d;continue}if(u>y){c&&Br(0);break}}a&&l(f+131072);for(var G=(1<<p)-1,K=(1<<I)-1,$=u;;$=u){var N=h[jE(r,u)&G],te=N>>4;if(u+=N&15,u>y){c&&Br(0);break}if(N||Br(2),te<256)t[f++]=te;else if(te==256){$=u,h=null;break}else{var re=te-254;if(te>264){var B=te-257,ee=FI[B];re=vn(r,u,(1<<ee)-1)+CT[B],u+=ee}var Z=g[jE(r,u)&K],me=Z>>4;Z||Br(3),u+=Z&15;var L=VW[me];if(me>3){var ee=PI[me];L+=jE(r,u)&(1<<ee)-1,u+=ee}if(u>y){c&&Br(0);break}a&&l(f+131072);var le=f+re;if(f<L){var Ae=s-L,ve=Math.min(L,le);for(Ae+f<0&&Br(3);f<ve;++f)t[f]=i[Ae+f]}for(;f<le;++f)t[f]=t[f-L]}}e.l=h,e.p=$,e.b=f,e.f=d,h&&(d=1,e.m=p,e.d=g,e.n=I)}while(!d);return f!=t.length&&o?Hf(t,0,f):t.subarray(0,f)},Js=function(r,e,t){t<<=e&7;var i=e/8|0;r[i]|=t,r[i+1]|=t>>8},Qf=function(r,e,t){t<<=e&7;var i=e/8|0;r[i]|=t,r[i+1]|=t>>8,r[i+2]|=t>>16},$E=function(r,e){for(var t=[],i=0;i<r.length;++i)r[i]&&t.push({s:i,f:r[i]});var n=t.length,s=t.slice();if(!n)return{t:Wy,l:0};if(n==1){var o=new Gt(t[0].s+1);return o[t[0].s]=1,{t:o,l:1}}t.sort(function(x,_){return x.f-_.f}),t.push({s:-1,f:25001});var a=t[0],c=t[1],l=0,d=1,u=2;for(t[0]={s:-1,f:a.f+c.f,l:a,r:c};d!=n-1;)a=t[t[l].f<t[u].f?l++:u++],c=t[l!=d&&t[l].f<t[u].f?l++:u++],t[d++]={s:-1,f:a.f+c.f,l:a,r:c};for(var f=s[0].s,i=1;i<n;++i)s[i].s>f&&(f=s[i].s);var h=new Li(f+1),g=FB(t[d-1],h,0);if(g>e){var i=0,p=0,I=g-e,y=1<<I;for(s.sort(function(_,R){return h[R.s]-h[_.s]||_.f-R.f});i<n;++i){var w=s[i].s;if(h[w]>e)p+=y-(1<<g-h[w]),h[w]=e;else break}for(p>>=I;p>0;){var C=s[i].s;h[C]<e?p-=1<<e-h[C]++-1:++i}for(;i>=0&&p;--i){var b=s[i].s;h[b]==e&&(--h[b],++p)}g=e}return{t:new Gt(h),l:g}},FB=function(r,e,t){return r.s==-1?Math.max(FB(r.l,e,t+1),FB(r.r,e,t+1)):e[r.s]=t},R5=function(r){for(var e=r.length;e&&!r[--e];);for(var t=new Li(++e),i=0,n=r[0],s=1,o=function(c){t[i++]=c},a=1;a<=e;++a)if(r[a]==n&&a!=e)++s;else{if(!n&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(n),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(n);s=1,n=r[a]}return{c:t.subarray(0,i),n:e}},_f=function(r,e){for(var t=0,i=0;i<e.length;++i)t+=r[i]*e[i];return t},x1=function(r,e,t){var i=t.length,n=w1(e+2);r[n]=i&255,r[n+1]=i>>8,r[n+2]=r[n]^255,r[n+3]=r[n+1]^255;for(var s=0;s<i;++s)r[n+s+4]=t[s];return(n+4+i)*8},N5=function(r,e,t,i,n,s,o,a,c,l,d){Js(e,d++,t),++n[256];for(var u=$E(n,15),f=u.t,h=u.l,g=$E(s,15),p=g.t,I=g.l,y=R5(f),w=y.c,C=y.n,b=R5(p),x=b.c,_=b.n,R=new Li(19),U=0;U<w.length;++U)++R[w[U]&31];for(var U=0;U<x.length;++U)++R[x[U]&31];for(var T=$E(R,7),D=T.t,B=T.l,Q=19;Q>4&&!D[DB[Q-1]];--Q);var v=l+5<<3,E=_f(n,Ca)+_f(s,$f)+o,P=_f(n,f)+_f(s,p)+o+14+3*Q+_f(R,D)+2*R[16]+3*R[17]+7*R[18];if(c>=0&&v<=E&&v<=P)return x1(e,d,r.subarray(c,c+l));var N,J,z,L;if(Js(e,d,1+(P<E)),d+=2,P<E){N=ds(f,h,0),J=f,z=ds(p,I,0),L=p;var G=ds(D,B,0);Js(e,d,C-257),Js(e,d+5,_-1),Js(e,d+10,Q-4),d+=14;for(var U=0;U<Q;++U)Js(e,d+3*U,D[DB[U]]);d+=3*Q;for(var K=[w,x],$=0;$<2;++$)for(var te=K[$],U=0;U<te.length;++U){var re=te[U]&31;Js(e,d,G[re]),d+=D[re],re>15&&(Js(e,d,te[U]>>5&127),d+=te[U]>>12)}}else N=YW,J=Ca,z=XW,L=$f;for(var U=0;U<a;++U){var ee=i[U];if(ee>255){var re=ee>>18&31;Qf(e,d,N[re+257]),d+=J[re+257],re>7&&(Js(e,d,ee>>23&31),d+=FI[re]);var Z=ee&31;Qf(e,d,z[Z]),d+=L[Z],Z>3&&(Qf(e,d,ee>>5&8191),d+=PI[Z])}else Qf(e,d,N[ee]),d+=J[ee]}return Qf(e,d,N[256]),d+J[256]},rX=new I1([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Wy=new Gt(0),iX=function(r,e,t,i,n,s){var o=s.z||r.length,a=new Gt(i+o+5*(1+Math.ceil(o/7e3))+n),c=a.subarray(i,a.length-n),l=s.l,d=(s.r||0)&7;if(e){d&&(c[0]=s.r>>3);for(var u=rX[e-1],f=u>>13,h=u&8191,g=(1<<t)-1,p=s.p||new Li(32768),I=s.h||new Li(g+1),y=Math.ceil(t/3),w=2*y,C=function(it){return(r[it]^r[it+1]<<y^r[it+2]<<w)&g},b=new I1(25e3),x=new Li(288),_=new Li(32),R=0,U=0,T=s.i||0,D=0,B=s.w||0,Q=0;T+2<o;++T){var v=C(T),E=T&32767,P=I[v];if(p[E]=P,I[v]=E,B<=T){var N=o-T;if((R>7e3||D>24576)&&(N>423||!l)){d=N5(r,c,0,b,x,_,U,D,Q,T-Q,d),D=R=U=0,Q=T;for(var J=0;J<286;++J)x[J]=0;for(var J=0;J<30;++J)_[J]=0}var z=2,L=0,G=h,K=E-P&32767;if(N>2&&v==C(T-K))for(var $=Math.min(f,N)-1,te=Math.min(32767,T),re=Math.min(258,N);K<=te&&--G&&E!=P;){if(r[T+z]==r[T+z-K]){for(var ee=0;ee<re&&r[T+ee]==r[T+ee-K];++ee);if(ee>z){if(z=ee,L=K,ee>$)break;for(var Z=Math.min(K,ee-2),me=0,J=0;J<Z;++J){var le=T-K+J&32767,Ae=p[le],ve=le-Ae&32767;ve>me&&(me=ve,P=le)}}}E=P,P=p[E],K+=E-P&32767}if(L){b[D++]=268435456|QB[z]<<18|U5[L];var qe=QB[z]&31,_e=U5[L]&31;U+=FI[qe]+PI[_e],++x[257+qe],++_[_e],B=T+z,++R}else b[D++]=r[T],++x[r[T]]}}for(T=Math.max(T,B);T<o;++T)b[D++]=r[T],++x[r[T]];d=N5(r,c,l,b,x,_,U,D,Q,T-Q,d),l||(s.r=d&7|c[d/8|0]<<3,d-=7,s.h=I,s.p=p,s.i=T,s.w=B)}else{for(var T=s.w||0;T<o+l;T+=65535){var se=T+65535;se>=o&&(c[d/8|0]=l,se=o),d=x1(c,d+1,r.subarray(T,se))}s.i=o}return Hf(a,0,i+w1(d)+n)},BT=function(){var r=1,e=0;return{p:function(t){for(var i=r,n=e,s=t.length|0,o=0;o!=s;){for(var a=Math.min(o+2655,s);o<a;++o)n+=i+=t[o];i=(i&65535)+15*(i>>16),n=(n&65535)+15*(n>>16)}r=i,e=n},d:function(){return r%=65521,e%=65521,(r&255)<<24|(r&65280)<<8|(e&255)<<8|e>>8}}},bT=function(r,e,t,i,n){if(!n&&(n={l:1},e.dictionary)){var s=e.dictionary.subarray(-32768),o=new Gt(s.length+r.length);o.set(s),o.set(r,s.length),r=o,n.w=s.length}return iX(r,e.level==null?6:e.level,e.mem==null?n.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+e.mem,t,i,n)},vT=function(r,e,t){for(;t;++e)r[e]=t,t>>>=8},nX=function(r,e){var t=e.level,i=t==0?0:t<6?1:t==9?3:2;if(r[0]=120,r[1]=i<<6|(e.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,e.dictionary){var n=BT();n.p(e.dictionary),vT(r,2,n.d())}},sX=function(r,e){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&Br(6,"invalid zlib data"),(r[1]>>5&1)==+!e&&Br(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2},Fy=(function(){function r(e,t){if(typeof e=="function"&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new Gt(98304),this.o.dictionary){var i=this.o.dictionary.subarray(-32768);this.b.set(i,32768-i.length),this.s.i=32768-i.length}}return r.prototype.p=function(e,t){this.ondata(bT(e,this.o,0,0,this.s),t)},r.prototype.push=function(e,t){this.ondata||Br(5),this.s.l&&Br(4);var i=e.length+this.s.z;if(i>this.b.length){if(i>2*this.b.length-32768){var n=new Gt(i&-32768);n.set(this.b.subarray(0,this.s.z)),this.b=n}var s=this.b.length-this.s.z;this.b.set(e.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(s),32768),this.s.z=e.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=t&1,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2),t&&(this.s=this.o={},this.b=Wy)},r.prototype.flush=function(e){if(this.ondata||Br(5),this.s.l&&Br(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2,e){var t=new Gt(6);t[0]=this.s.r>>3;var i=x1(t,this.s.r,Wy);this.s.r=0,this.ondata(t.subarray(0,i>>3),!1)}},r})(),Py=(function(){function r(e,t){typeof e=="function"&&(t=e,e={}),this.ondata=t;var i=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:i?i.length:0},this.o=new Gt(32768),this.p=new Gt(0),i&&this.o.set(i)}return r.prototype.e=function(e){if(this.ondata||Br(5),this.d&&Br(4),!this.p.length)this.p=e;else if(e.length){var t=new Gt(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}},r.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,i=tX(this.p,this.s,this.o);this.ondata(Hf(i,t,this.s.b),this.d),this.o=Hf(i,this.s.b-32768),this.s.b=this.o.length,this.p=Hf(this.p,this.s.p/8|0),this.s.p&=7},r.prototype.push=function(e,t){this.e(e),this.c(t)},r})(),oX=(function(){function r(e,t){this.c=BT(),this.v=1,Fy.call(this,e,t)}return r.prototype.push=function(e,t){this.c.p(e),Fy.prototype.push.call(this,e,t)},r.prototype.p=function(e,t){var i=bT(e,this.o,this.v&&(this.o.dictionary?6:2),t&&4,this.s);this.v&&(nX(i,this.o),this.v=0),t&&vT(i,i.length-4,this.c.d()),this.ondata(i,t)},r.prototype.flush=function(e){Fy.prototype.flush.call(this,e)},r})(),aX=(function(){function r(e,t){Py.call(this,e,t),this.v=e&&e.dictionary?2:1}return r.prototype.push=function(e,t){if(Py.prototype.e.call(this,e),this.v){if(this.p.length<6&&!t)return;this.p=this.p.subarray(sX(this.p,this.v-1)),this.v=0}t&&(this.p.length<4&&Br(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),Py.prototype.c.call(this,t)},r})(),cX=typeof TextDecoder<"u"&&new TextDecoder,lX=0;try{cX.decode(Wy,{stream:!0}),lX=1}catch{}Ea=class{static get tag(){return m.packet.literalData}constructor(e=new Date){this.format=m.literal.utf8,this.date=F.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=m.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(this.text===null||F.isStream(this.text))&&(this.text=F.decodeUTF8(F.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return this.data===null&&(this.data=F.canonicalizeEOL(F.encodeUTF8(this.text))),e?Mf(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await II(e,async t=>{let i=await t.readByte(),n=await t.readByte();this.filename=F.decodeUTF8(await t.readBytes(n)),this.date=F.readDate(await t.readBytes(4));let s=t.remainder();St(s)&&(s=await Xt(s)),this.setBytes(s,i)})}writeHeader(){let e=F.encodeUTF8(this.filename),t=new Uint8Array([e.length]),i=new Uint8Array([this.format]),n=F.writeDate(this.date);return F.concatUint8Array([i,t,e,n])}write(){let e=this.writeHeader(),t=this.getBytes();return F.concat([e,t])}},so=class r{constructor(){this.bytes=""}read(e){return this.bytes=F.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return F.stringToUint8Array(this.bytes)}toHex(){return F.uint8ArrayToHex(F.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return this.bytes===""}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){let t=new r;return t.read(F.hexToUint8Array(e)),t}static wildcard(){let e=new r;return e.read(new Uint8Array(8)),e}},Ff=Symbol("verified"),q5="salt@notations.openpgpjs.org",dX=new Set([m.signatureSubpacket.issuerKeyID,m.signatureSubpacket.issuerFingerprint,m.signatureSubpacket.embeddedSignature]),Nr=class r{static get tag(){return m.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.unknownSubpackets=[],this.signedHashValue=null,this.salt=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new so,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.preferredCipherSuites=null,this.revoked=null,this[Ff]=null}read(e,t=pe){let i=0;if(this.version=e[i++],this.version===5&&!t.enableParsingV5Entities)throw new ft("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(this.version!==4&&this.version!==5&&this.version!==6)throw new ft(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[i++],this.publicKeyAlgorithm=e[i++],this.hashAlgorithm=e[i++],i+=this.readSubPackets(e.subarray(i,e.length),!0),!this.created)throw new Error("Missing signature creation time subpacket.");if(this.signatureData=e.subarray(0,i),i+=this.readSubPackets(e.subarray(i,e.length),!1),this.signedHashValue=e.subarray(i,i+2),i+=2,this.version===6){let a=e[i++];this.salt=e.subarray(i,i+a),i+=a}let n=e.subarray(i,e.length),{read:s,signatureParams:o}=qW(this.publicKeyAlgorithm,n);if(s<n.length)throw new Error("Error reading MPIs");this.params=o}writeParams(){return this.params instanceof Promise?Hc(async()=>vd(this.publicKeyAlgorithm,await this.params)):vd(this.publicKeyAlgorithm,this.params)}write(){let e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),this.version===6&&(e.push(new Uint8Array([this.salt.length])),e.push(this.salt)),e.push(this.writeParams()),F.concat(e)}async sign(e,t,i=new Date,n=!1,s){this.version=e.version,this.created=F.normalizeDate(i),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID();let o=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];if(this.version===6){let d=VE(this.hashAlgorithm);if(this.salt===null)this.salt=Rr(d);else if(d!==this.salt.length)throw new Error("Provided salt does not have the required length")}else if(s.nonDeterministicSignaturesViaNotation)if(this.rawNotations.filter(({name:u})=>u===q5).length===0){let u=Rr(VE(this.hashAlgorithm));this.rawNotations.push({name:q5,value:u,humanReadable:!1,critical:!1})}else throw new Error("Unexpected existing salt notation");o.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=F.concat(o);let a=this.toHash(this.signatureType,t,n),c=await this.hash(this.signatureType,t,a,n);this.signedHashValue=Ur(Uc(c),0,2);let l=async()=>MW(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await Xt(c));F.isStream(c)?this.params=l():(this.params=await l(),this[Ff]=!0)}writeHashedSubPackets(){let e=m.signatureSubpacket,t=[],i;if(this.created===null)throw new Error("Missing signature creation time");t.push(yt(e.signatureCreationTime,!0,F.writeDate(this.created))),this.signatureExpirationTime!==null&&t.push(yt(e.signatureExpirationTime,!0,F.writeNumber(this.signatureExpirationTime,4))),this.exportable!==null&&t.push(yt(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),this.trustLevel!==null&&(i=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(yt(e.trustSignature,!0,i))),this.regularExpression!==null&&t.push(yt(e.regularExpression,!0,this.regularExpression)),this.revocable!==null&&t.push(yt(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),this.keyExpirationTime!==null&&t.push(yt(e.keyExpirationTime,!0,F.writeNumber(this.keyExpirationTime,4))),this.preferredSymmetricAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(yt(e.preferredSymmetricAlgorithms,!1,i))),this.revocationKeyClass!==null&&(i=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),i=F.concat([i,this.revocationKeyFingerprint]),t.push(yt(e.revocationKey,!1,i))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(yt(e.issuerKeyID,!1,this.issuerKeyID.write())),this.rawNotations.forEach(({name:o,value:a,humanReadable:c,critical:l})=>{i=[new Uint8Array([c?128:0,0,0,0])];let d=F.encodeUTF8(o);i.push(F.writeNumber(d.length,2)),i.push(F.writeNumber(a.length,2)),i.push(d),i.push(a),i=F.concat(i),t.push(yt(e.notationData,l,i))}),this.preferredHashAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(yt(e.preferredHashAlgorithms,!1,i))),this.preferredCompressionAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(yt(e.preferredCompressionAlgorithms,!1,i))),this.keyServerPreferences!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.keyServerPreferences)),t.push(yt(e.keyServerPreferences,!1,i))),this.preferredKeyServer!==null&&t.push(yt(e.preferredKeyServer,!1,F.encodeUTF8(this.preferredKeyServer))),this.isPrimaryUserID!==null&&t.push(yt(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),this.policyURI!==null&&t.push(yt(e.policyURI,!1,F.encodeUTF8(this.policyURI))),this.keyFlags!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.keyFlags)),t.push(yt(e.keyFlags,!0,i))),this.signersUserID!==null&&t.push(yt(e.signersUserID,!1,F.encodeUTF8(this.signersUserID))),this.reasonForRevocationFlag!==null&&(i=F.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(yt(e.reasonForRevocation,!0,i))),this.features!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.features)),t.push(yt(e.features,!1,i))),this.signatureTargetPublicKeyAlgorithm!==null&&(i=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],i.push(F.stringToUint8Array(this.signatureTargetHash)),i=F.concat(i),t.push(yt(e.signatureTarget,!0,i))),this.embeddedSignature!==null&&t.push(yt(e.embeddedSignature,!0,this.embeddedSignature.write())),this.issuerFingerprint!==null&&(i=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],i=F.concat(i),t.push(yt(e.issuerFingerprint,this.version>=5,i))),this.preferredAEADAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(yt(e.preferredAEADAlgorithms,!1,i))),this.preferredCipherSuites!==null&&(i=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(yt(e.preferredCipherSuites,!1,i)));let n=F.concat(t),s=F.writeNumber(n.length,this.version===6?4:2);return F.concat([s,n])}writeUnhashedSubPackets(){let e=this.unhashedSubpackets.map(({type:n,critical:s,body:o})=>yt(n,s,o)),t=F.concat(e),i=F.writeNumber(t.length,this.version===6?4:2);return F.concat([i,t])}readSubPacket(e,t=!0){let i=0,n=!!(e[i]&128),s=e[i]&127;if(i++,!(!t&&(this.unhashedSubpackets.push({type:s,critical:n,body:e.subarray(i,e.length)}),!dX.has(s))))switch(s){case m.signatureSubpacket.signatureCreationTime:this.created=F.readDate(e.subarray(i,e.length));break;case m.signatureSubpacket.signatureExpirationTime:{let o=F.readNumber(e.subarray(i,e.length));this.signatureNeverExpires=o===0,this.signatureExpirationTime=o;break}case m.signatureSubpacket.exportableCertification:this.exportable=e[i++]===1;break;case m.signatureSubpacket.trustSignature:this.trustLevel=e[i++],this.trustAmount=e[i++];break;case m.signatureSubpacket.regularExpression:this.regularExpression=e[i];break;case m.signatureSubpacket.revocable:this.revocable=e[i++]===1;break;case m.signatureSubpacket.keyExpirationTime:{let o=F.readNumber(e.subarray(i,e.length));this.keyExpirationTime=o,this.keyNeverExpires=o===0;break}case m.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.revocationKey:this.revocationKeyClass=e[i++],this.revocationKeyAlgorithm=e[i++],this.revocationKeyFingerprint=e.subarray(i,i+20);break;case m.signatureSubpacket.issuerKeyID:if(this.version===4)this.issuerKeyID.read(e.subarray(i,e.length));else if(t)throw new Error("Unexpected Issuer Key ID subpacket");break;case m.signatureSubpacket.notationData:{let o=!!(e[i]&128);i+=4;let a=F.readNumber(e.subarray(i,i+2));i+=2;let c=F.readNumber(e.subarray(i,i+2));i+=2;let l=F.decodeUTF8(e.subarray(i,i+a)),d=e.subarray(i+a,i+a+c);this.rawNotations.push({name:l,humanReadable:o,value:d,critical:n}),o&&(this.notations[l]=F.decodeUTF8(d));break}case m.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=F.decodeUTF8(e.subarray(i,e.length));break;case m.signatureSubpacket.primaryUserID:this.isPrimaryUserID=e[i++]!==0;break;case m.signatureSubpacket.policyURI:this.policyURI=F.decodeUTF8(e.subarray(i,e.length));break;case m.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.signersUserID:this.signersUserID=F.decodeUTF8(e.subarray(i,e.length));break;case m.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[i++],this.reasonForRevocationString=F.decodeUTF8(e.subarray(i,e.length));break;case m.signatureSubpacket.features:this.features=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[i++],this.signatureTargetHashAlgorithm=e[i++];let o=gr(this.signatureTargetHashAlgorithm);this.signatureTargetHash=F.uint8ArrayToString(e.subarray(i,i+o));break}case m.signatureSubpacket.embeddedSignature:this.embeddedSignature=new r,this.embeddedSignature.read(e.subarray(i,e.length));break;case m.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[i++],this.issuerFingerprint=e.subarray(i,e.length),this.issuerKeyVersion>=5?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case m.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(i,e.length)];break;case m.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let o=i;o<e.length;o+=2)this.preferredCipherSuites.push([e[o],e[o+1]]);break;default:this.unknownSubpackets.push({type:s,critical:n,body:e.subarray(i,e.length)});break}}readSubPackets(e,t=!0,i){let n=this.version===6?4:2,s=F.readNumber(e.subarray(0,n)),o=n;for(;o<2+s;){let a=L6(e.subarray(o,e.length));o+=a.offset,this.readSubPacket(e.subarray(o,o+a.len),t,i),o+=a.len}return o}toSign(e,t){let i=m.signature;switch(e){case i.binary:return t.text!==null?F.encodeUTF8(t.getText(!0)):t.getBytes(!0);case i.text:{let n=t.getBytes(!0);return F.canonicalizeEOL(n)}case i.standalone:return new Uint8Array(0);case i.certGeneric:case i.certPersona:case i.certCasual:case i.certPositive:case i.certRevocation:{let n,s;if(t.userID)s=180,n=t.userID;else if(t.userAttribute)s=209,n=t.userAttribute;else throw new Error("Either a userID or userAttribute packet needs to be supplied for certification.");let o=n.write();return F.concat([this.toSign(i.key,t),new Uint8Array([s]),F.writeNumber(o.length,4),o])}case i.subkeyBinding:case i.subkeyRevocation:case i.keyBinding:return F.concat([this.toSign(i.key,t),this.toSign(i.key,{key:t.bind})]);case i.key:if(t.key===void 0)throw new Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case i.keyRevocation:return this.toSign(i.key,t);case i.timestamp:return new Uint8Array(0);case i.thirdParty:throw new Error("Not implemented");default:throw new Error("Unknown signature type.")}}calculateTrailer(e,t){let i=0;return sr(Uc(this.signatureData),n=>{i+=n.length},()=>{let n=[];return this.version===5&&(this.signatureType===m.signature.binary||this.signatureType===m.signature.text)&&(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),this.version===5&&n.push(new Uint8Array(4)),n.push(F.writeNumber(i,4)),F.concat(n)})}toHash(e,t,i=!1){let n=this.toSign(e,t);return F.concat([this.salt||new Uint8Array,n,this.signatureData,this.calculateTrailer(t,i)])}async hash(e,t,i,n=!1){if(this.version===6&&this.salt.length!==VE(this.hashAlgorithm))throw new Error("Signature salt does not have the expected length");return i||(i=this.toHash(e,t,n)),fs(this.hashAlgorithm,i)}async verify(e,t,i,n=new Date,s=!1,o=pe){if(!this.issuerKeyID.equals(e.getKeyID()))throw new Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Public key algorithm used to sign signature does not match issuer key algorithm.");let a=t===m.signature.binary||t===m.signature.text;if(!(this[Ff]&&!a)){let d,u;if(this.hashed?u=await this.hashed:(d=this.toHash(t,i,s),u=await this.hash(t,i,d)),u=await Xt(u),this.signedHashValue[0]!==u[0]||this.signedHashValue[1]!==u[1])throw new Error("Signed digest did not match");if(this.params=await this.params,this[Ff]=await OW(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,d,u),!this[Ff])throw new Error("Signature verification failed")}let l=F.normalizeDate(n);if(l&&this.created>l)throw new Error("Signature creation time is in the future");if(l&&l>=this.getExpirationTime())throw new Error("Signature is expired");if(o.rejectHashAlgorithms.has(this.hashAlgorithm))throw new Error("Insecure hash algorithm: "+m.read(m.hash,this.hashAlgorithm).toUpperCase());if(o.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[m.signature.binary,m.signature.text].includes(this.signatureType))throw new Error("Insecure message hash algorithm: "+m.read(m.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach(({type:d,critical:u})=>{if(u)throw new Error(`Unknown critical signature subpacket type ${d}`)}),this.rawNotations.forEach(({name:d,critical:u})=>{if(u&&o.knownNotations.indexOf(d)<0)throw new Error(`Unknown critical notation: ${d}`)}),this.revocationKeyClass!==null)throw new Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){let t=F.normalizeDate(e);return t!==null?!(this.created<=t&&t<this.getExpirationTime()):!1}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+this.signatureExpirationTime*1e3)}};an=class r{static get tag(){return m.packet.onePassSignature}static fromSignaturePacket(e,t){let i=new r;return i.version=e.version===6?6:3,i.signatureType=e.signatureType,i.hashAlgorithm=e.hashAlgorithm,i.publicKeyAlgorithm=e.publicKeyAlgorithm,i.issuerKeyID=e.issuerKeyID,i.salt=e.salt,i.issuerFingerprint=e.issuerFingerprint,i.flags=t?1:0,i}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.salt=null,this.issuerKeyID=null,this.issuerFingerprint=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],this.version!==3&&this.version!==6)throw new ft(`Version ${this.version} of the one-pass signature packet is unsupported.`);if(this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],this.version===6){let i=e[t++];this.salt=e.subarray(t,t+i),t+=i,this.issuerFingerprint=e.subarray(t,t+32),t+=32,this.issuerKeyID=new so,this.issuerKeyID.read(this.issuerFingerprint)}else this.issuerKeyID=new so,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8;return this.flags=e[t++],this}write(){let e=[new Uint8Array([this.version,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm])];return this.version===6?e.push(new Uint8Array([this.salt.length]),this.salt,this.issuerFingerprint):e.push(this.issuerKeyID.write()),e.push(new Uint8Array([this.flags])),F.concatUint8Array(e)}calculateTrailer(...e){return Hc(async()=>Nr.prototype.calculateTrailer.apply(await this.correspondingSig,e))}async verify(){let e=await this.correspondingSig;if(!e||e.constructor.tag!==m.packet.signature)throw new Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID)||this.version===3&&e.version===6||this.version===6&&e.version!==6||this.version===6&&!F.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||this.version===6&&!F.equalsUint8Array(e.salt,this.salt))throw new Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}};an.prototype.hash=Nr.prototype.hash;an.prototype.toHash=Nr.prototype.toHash;an.prototype.toSign=Nr.prototype.toSign;Ct=class r extends Array{static async fromBinary(e,t,i=pe,n=null,s=!1){let o=new r;return await o.read(e,t,i,n,s),o}async read(e,t,i=pe,n=null,s=!1){let o;i.additionalAllowedPackets.length&&(o=F.constructAllowedPackets(i.additionalAllowedPackets),t={...t,...o}),this.stream=Ba(e,async(c,l)=>{let d=_n(c),u=Hi(l);try{let f=F.isStream(c);for(;;){await u.ready;let h,g;if(await CY(d,f,async y=>{try{if(y.tag===m.packet.marker||y.tag===m.packet.trust||y.tag===m.packet.padding)return;let w=uX(y.tag,t);try{n?.recordPacket(y.tag,o)}catch(C){if(i.enforceGrammar)throw C;F.printDebugError(C)}w.packets=new r,w.fromStream=F.isStream(y.packet),g=w.fromStream;try{await w.read(y.packet,i)}catch(C){throw C instanceof ft?C:F.wrapError(new Lf(`Parsing ${w.constructor.name} failed`),C)}await u.write(w)}catch(w){let C=w instanceof yd&&y.tag<=39,b=w instanceof ft&&!(w instanceof yd)&&!i.ignoreUnsupportedPackets,x=w instanceof Lf&&!i.ignoreMalformedPackets,_=ky(y.tag),R=!(w instanceof yd||w instanceof ft||w instanceof Lf);if(C||b||x||_||R)s?h=w:await u.abort(w);else{let U=new Gf(y.tag,y.packet);await u.write(U)}F.printDebugError(w)}}),g&&(f=null),h)throw await d.readToEnd(),h;let p=await d.peekBytes(2);if(!p||!p.length){try{n?.recordEnd()}catch(y){if(i.enforceGrammar)throw y;F.printDebugError(y)}await u.ready,await u.close();return}}}catch(f){await u.abort(f)}});let a=_n(this.stream);for(;;){let{done:c,value:l}=await a.read();if(c?this.stream=null:this.push(l),c||ky(l.constructor.tag))break}a.releaseLock()}write(){let e=[];for(let t=0;t<this.length;t++){let i=this[t]instanceof Gf?this[t].tag:this[t].constructor.tag,n=this[t].write();if(F.isStream(n)&&ky(this[t].constructor.tag)){let s=[],o=0,a=512;e.push(qy(i)),e.push(sr(n,c=>{if(s.push(c),o+=c.length,o>=a){let l=Math.min(Math.log(o)/Math.LN2|0,30),d=2**l,u=F.concat([xY(l)].concat(s));return s=[u.subarray(1+d)],o=s[0].length,u.subarray(0,1+d)}},()=>F.concat([xI(o)].concat(s))))}else{if(F.isStream(n)){let s=0;e.push(sr(Uc(n),o=>{s+=o.length},()=>p5(i,s)))}else e.push(p5(i,n.length));e.push(n)}}return F.concat(e)}filterByTag(...e){let t=new r,i=n=>s=>n===s;for(let n=0;n<this.length;n++)e.some(i(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find(t=>t.constructor.tag===e)}indexOfTag(...e){let t=[],i=this,n=s=>o=>s===o;for(let s=0;s<this.length;s++)e.some(n(i[s].constructor.tag))&&t.push(s);return t}},rs=class r extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,r),this.name="GrammarError"}};(function(r){r[r.EmptyMessage=0]="EmptyMessage",r[r.PlaintextOrEncryptedData=1]="PlaintextOrEncryptedData",r[r.EncryptedSessionKeys=2]="EncryptedSessionKeys",r[r.StandaloneAdditionalAllowedData=3]="StandaloneAdditionalAllowedData"})(Kt||(Kt={}));Sd=class{constructor(){this.state=Kt.EmptyMessage,this.leadingOnePassSignatureCounter=0}recordPacket(e,t){switch(this.state){case Kt.EmptyMessage:case Kt.StandaloneAdditionalAllowedData:switch(e){case m.packet.literalData:case m.packet.compressedData:case m.packet.aeadEncryptedData:case m.packet.symEncryptedIntegrityProtectedData:case m.packet.symmetricallyEncryptedData:this.state=Kt.PlaintextOrEncryptedData;return;case m.packet.signature:if(this.state===Kt.StandaloneAdditionalAllowedData&&--this.leadingOnePassSignatureCounter<0)throw new rs("Trailing signature packet without OPS");return;case m.packet.onePassSignature:if(this.state===Kt.StandaloneAdditionalAllowedData)throw new rs("OPS following StandaloneAdditionalAllowedData");this.leadingOnePassSignatureCounter++;return;case m.packet.publicKeyEncryptedSessionKey:case m.packet.symEncryptedSessionKey:this.state=Kt.EncryptedSessionKeys;return;default:if(!t?.[e])throw new rs(`Unexpected packet ${e} in state ${this.state}`);this.state=Kt.StandaloneAdditionalAllowedData;return}case Kt.PlaintextOrEncryptedData:switch(e){case m.packet.signature:if(--this.leadingOnePassSignatureCounter<0)throw new rs("Trailing signature packet without OPS");this.state=Kt.PlaintextOrEncryptedData;return;default:if(!t?.[e])throw new rs(`Unexpected packet ${e} in state ${this.state}`);this.state=Kt.PlaintextOrEncryptedData;return}case Kt.EncryptedSessionKeys:switch(e){case m.packet.publicKeyEncryptedSessionKey:case m.packet.symEncryptedSessionKey:this.state=Kt.EncryptedSessionKeys;return;case m.packet.symEncryptedIntegrityProtectedData:case m.packet.aeadEncryptedData:case m.packet.symmetricallyEncryptedData:this.state=Kt.PlaintextOrEncryptedData;return;case m.packet.signature:if(--this.leadingOnePassSignatureCounter<0)throw new rs("Trailing signature packet without OPS");this.state=Kt.PlaintextOrEncryptedData;return;default:if(!t?.[e])throw new rs(`Unexpected packet ${e} in state ${this.state}`);this.state=Kt.EncryptedSessionKeys}}}recordEnd(){switch(this.state){case Kt.EmptyMessage:case Kt.PlaintextOrEncryptedData:case Kt.EncryptedSessionKeys:case Kt.StandaloneAdditionalAllowedData:if(this.leadingOnePassSignatureCounter>0)throw new rs("Missing trailing signature packets")}}},fX=F.constructAllowedPackets([Ea,an,Nr]),qc=class{static get tag(){return m.packet.compressedData}constructor(e=pe){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=pe){await II(e,async i=>{this.algorithm=await i.readByte(),this.compressed=i.remainder(),await this.decompress(t)})}write(){return this.compressed===null&&this.compress(),F.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=pe){let t=m.read(m.compression,this.algorithm),i=pX[t];if(!i)throw new Error(`${t} decompression not supported`);let n=await i(this.compressed);if(e.maxDecompressedMessageSize!==1/0){let s=0;n=sr(n,o=>{if(s+=o.length,s>e.maxDecompressedMessageSize)throw new Error("Maximum decompressed message size exceeded");return o})}(!or(this.compressed)||St(this.compressed))&&(n=await Xt(n)),this.packets=await Ct.fromBinary(n,fX,e,new Sd)}compress(){let e=m.read(m.compression,this.algorithm),t=gX[e];if(!t)throw new Error(`${e} compression not supported`);let i=this.packets.write(),n=t(i);(!or(i)||St(i))&&(n=Hc(()=>Xt(n))),this.compressed=n}};Zy=r=>({compressor:typeof CompressionStream<"u"&&(()=>new CompressionStream(r)),decompressor:typeof DecompressionStream<"u"&&(()=>new DecompressionStream(r))}),gX={zip:Xy(Zy("deflate-raw").compressor,Fy),zlib:Xy(Zy("deflate").compressor,oX)},pX={uncompressed:r=>r,zip:Xy(Zy("deflate-raw").decompressor,Py),zlib:Xy(Zy("deflate").decompressor,aX),bzip2:hX()},mX=F.constructAllowedPackets([Ea,qc,an,Nr]),Dd=class r{static get tag(){return m.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(e!==1&&e!==2)throw new Error("Unsupported SEIPD version");let i=new r;return i.version=e,e===2&&(i.aeadAlgorithm=t),i}constructor(){this.version=null,this.cipherAlgorithm=null,this.aeadAlgorithm=null,this.chunkSizeByte=null,this.salt=null,this.encrypted=null,this.packets=null}async read(e){await II(e,async t=>{if(this.version=await t.readByte(),this.version!==1&&this.version!==2)throw new ft(`Version ${this.version} of the SEIP packet is unsupported.`);this.version===2&&(this.cipherAlgorithm=await t.readByte(),this.aeadAlgorithm=await t.readByte(),this.chunkSizeByte=await t.readByte(),this.salt=await t.readBytes(32)),this.encrypted=t.remainder()})}write(){return this.version===2?F.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):F.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,i=pe){let{blockSize:n,keySize:s}=It(e);if(t.length!==s)throw new Error("Unexpected session key size");let o=this.packets.write();if(St(o)&&(o=await Xt(o)),this.version===2)this.cipherAlgorithm=e,this.salt=Rr(32),this.chunkSizeByte=i.aeadChunkSizeByte,this.encrypted=await eI(this,"encrypt",t,o);else{let a=await yT(e),c=new Uint8Array([211,20]),l=F.concat([a,o,c]),d=await fs(m.hash.sha1,Mf(l)),u=F.concat([l,d]);this.encrypted=await jf(e,t,u,new Uint8Array(n))}return!0}async decrypt(e,t,i=pe){if(t.length!==It(e).keySize)throw new Error("Unexpected session key size");let n=Uc(this.encrypted);St(n)&&(n=await Xt(n));let s,o=!1;if(this.version===2){if(this.cipherAlgorithm!==e)throw new Error("Unexpected session key algorithm");s=await eI(this,"decrypt",t,n)}else{let{blockSize:a}=It(e),c=await _I(e,t,n,new Uint8Array(a)),l=Ur(Mf(c),-20),d=Ur(c,0,-20),u=Promise.all([Xt(await fs(m.hash.sha1,Mf(d))),Xt(l)]).then(([h,g])=>{if(!F.equalsUint8Array(h,g))throw new Error("Modification detected.");return new Uint8Array}),f=Ur(d,a+2);s=Ur(f,0,-2),s=di([s,Hc(()=>u)]),F.isStream(n)&&i.allowUnauthenticatedStream?o=!0:s=await Xt(s)}return this.packets=await Ct.fromBinary(s,mX,i,new Sd,o),!0}};yX=F.constructAllowedPackets([Ea,qc,an,Nr]),O5=1,PB=class{static get tag(){return m.packet.aeadEncryptedData}constructor(){this.version=O5,this.cipherAlgorithm=null,this.aeadAlgorithm=m.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await II(e,async t=>{let i=await t.readByte();if(i!==O5)throw new ft(`Version ${i} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await t.readByte(),this.aeadAlgorithm=await t.readByte(),this.chunkSizeByte=await t.readByte();let n=no(this.aeadAlgorithm,!0);this.iv=await t.readBytes(n.ivLength),this.encrypted=t.remainder()})}write(){return F.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,i=pe){this.packets=await Ct.fromBinary(await eI(this,"decrypt",t,Uc(this.encrypted)),yX,i,new Sd)}async encrypt(e,t,i=pe){this.cipherAlgorithm=e;let{ivLength:n}=no(this.aeadAlgorithm,!0);this.iv=Rr(n),this.chunkSizeByte=i.aeadChunkSizeByte;let s=this.packets.write();this.encrypted=await eI(this,"encrypt",t,s)}},Vf=class r{static get tag(){return m.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new so,this.publicKeyVersion=null,this.publicKeyFingerprint=null,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}static fromObject({version:e,encryptionKeyPacket:t,anonymousRecipient:i,sessionKey:n,sessionKeyAlgorithm:s}){let o=new r;if(e!==3&&e!==6)throw new Error("Unsupported PKESK version");return o.version=e,e===6&&(o.publicKeyVersion=i?null:t.version,o.publicKeyFingerprint=i?null:t.getFingerprintBytes()),o.publicKeyID=i?so.wildcard():t.getKeyID(),o.publicKeyAlgorithm=t.algorithm,o.sessionKey=n,o.sessionKeyAlgorithm=s,o}read(e){let t=0;if(this.version=e[t++],this.version!==3&&this.version!==6)throw new ft(`Version ${this.version} of the PKESK packet is unsupported.`);if(this.version===6){let i=e[t++];if(i){this.publicKeyVersion=e[t++];let n=i-1;this.publicKeyFingerprint=e.subarray(t,t+n),t+=n,this.publicKeyVersion>=5?this.publicKeyID.read(this.publicKeyFingerprint):this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8))}else this.publicKeyID=so.wildcard()}else t+=this.publicKeyID.read(e.subarray(t,t+8));if(this.publicKeyAlgorithm=e[t++],this.encrypted=yW(this.publicKeyAlgorithm,e.subarray(t)),this.publicKeyAlgorithm===m.publicKey.x25519||this.publicKeyAlgorithm===m.publicKey.x448){if(this.version===3)this.sessionKeyAlgorithm=m.write(m.symmetric,this.encrypted.C.algorithm);else if(this.encrypted.C.algorithm!==null)throw new Error("Unexpected cleartext symmetric algorithm")}}write(){let e=[new Uint8Array([this.version])];return this.version===6?this.publicKeyFingerprint!==null?(e.push(new Uint8Array([this.publicKeyFingerprint.length+1,this.publicKeyVersion])),e.push(this.publicKeyFingerprint)):e.push(new Uint8Array([0])):e.push(this.publicKeyID.write()),e.push(new Uint8Array([this.publicKeyAlgorithm]),vd(this.publicKeyAlgorithm,this.encrypted)),F.concatUint8Array(e)}async encrypt(e){let t=m.write(m.publicKey,this.publicKeyAlgorithm),i=this.version===3?this.sessionKeyAlgorithm:null,n=e.version===5?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),s=M5(this.version,t,i,this.sessionKey);this.encrypted=await gW(t,i,e.publicParams,s,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Decryption error");let i=t?M5(this.version,this.publicKeyAlgorithm,t.sessionKeyAlgorithm,t.sessionKey):null,n=e.version===5?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),s=await pW(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,n,i),{sessionKey:o,sessionKeyAlgorithm:a}=IX(this.version,this.publicKeyAlgorithm,s,t);if(this.version===3){let c=this.publicKeyAlgorithm!==m.publicKey.x25519&&this.publicKeyAlgorithm!==m.publicKey.x448;if(this.sessionKeyAlgorithm=c?a:this.sessionKeyAlgorithm,o.length!==It(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}this.sessionKey=o}};Yf=class r{static get tag(){return m.packet.symEncryptedSessionKey}constructor(e=pe){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=m.write(m.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],this.version!==4&&this.version!==5&&this.version!==6)throw new ft(`Version ${this.version} of the SKESK packet is unsupported.`);this.version===6&&t++;let i=e[t++];this.version>=5&&(this.aeadAlgorithm=e[t++],this.version===6&&t++);let n=e[t++];if(this.s2k=Yy(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){let s=no(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=s.ivLength)}this.version>=5||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=i):this.sessionKeyAlgorithm=i}write(){let e=this.encrypted===null?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm,t,i=this.s2k.write();if(this.version===6){let n=i.length,s=3+n+this.iv.length;t=F.concatUint8Array([new Uint8Array([this.version,s,e,this.aeadAlgorithm,n]),i,this.iv,this.encrypted])}else this.version===5?t=F.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),i,this.iv,this.encrypted]):(t=F.concatUint8Array([new Uint8Array([this.version,e]),i]),this.encrypted!==null&&(t=F.concatUint8Array([t,this.encrypted])));return t}async decrypt(e,t=pe){let i=this.sessionKeyEncryptionAlgorithm!==null?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:n,keySize:s}=It(i),o=await this.s2k.produceKey(e,s,t);if(this.version>=5){let a=no(this.aeadAlgorithm,!0),c=new Uint8Array([192|r.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),l=this.version===6?await xa(m.hash.sha256,o,new Uint8Array,c,s):o,d=await a(i,l);this.sessionKey=await d.decrypt(this.encrypted,this.iv,c)}else if(this.encrypted!==null){let a=await _I(i,o,this.encrypted,new Uint8Array(n));if(this.sessionKeyAlgorithm=m.write(m.symmetric,a[0]),this.sessionKey=a.subarray(1,a.length),this.sessionKey.length!==It(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}else this.sessionKey=o}async encrypt(e,t=pe){let i=this.sessionKeyEncryptionAlgorithm!==null?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=i,this.s2k=wT(t),this.s2k.generateSalt();let{blockSize:n,keySize:s}=It(i),o=await this.s2k.produceKey(e,s,t);if(this.sessionKey===null&&(this.sessionKey=BB(this.sessionKeyAlgorithm)),this.version>=5){let a=no(this.aeadAlgorithm);this.iv=Rr(a.ivLength);let c=new Uint8Array([192|r.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),l=this.version===6?await xa(m.hash.sha256,o,new Uint8Array,c,s):o,d=await a(i,l);this.encrypted=await d.encrypt(this.sessionKey,this.iv,c)}else{let a=F.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await jf(i,o,a,new Uint8Array(n))}}},As=class r{static get tag(){return m.packet.publicKey}constructor(e=new Date,t=pe){this.version=t.v6Keys?6:4,this.created=F.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){let t=new r,{version:i,created:n,algorithm:s,publicParams:o,keyID:a,fingerprint:c}=e;return t.version=i,t.created=n,t.algorithm=s,t.publicParams=o,t.keyID=a,t.fingerprint=c,t}async read(e,t=pe){let i=0;if(this.version=e[i++],this.version===5&&!t.enableParsingV5Entities)throw new ft("Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(this.version===4||this.version===5||this.version===6){this.created=F.readDate(e.subarray(i,i+4)),i+=4,this.algorithm=e[i++],this.version>=5&&(i+=4);let{read:n,publicParams:s}=mW(this.algorithm,e.subarray(i));if(this.version===6&&s.oid&&(s.oid.getName()===m.curve.curve25519Legacy||s.oid.getName()===m.curve.ed25519Legacy))throw new Error("Legacy curve25519 cannot be used with v6 keys");return this.publicParams=s,i+=n,await this.computeFingerprintAndKeyID(),i}throw new ft(`Version ${this.version} of the key packet is unsupported.`)}write(){let e=[];e.push(new Uint8Array([this.version])),e.push(F.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));let t=vd(this.algorithm,this.publicParams);return this.version>=5&&e.push(F.writeNumber(t.length,4)),e.push(t),F.concatUint8Array(e)}writeForHash(e){let t=this.writePublicKey(),i=149+e,n=e>=5?4:2;return F.concatUint8Array([new Uint8Array([i]),F.writeNumber(t.length,n),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new so,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else if(this.version===4)this.keyID.read(this.fingerprint.subarray(12,20));else throw new Error("Unsupported key version")}async computeFingerprint(){let e=this.writeForHash(this.version);if(this.version>=5)this.fingerprint=await fs(m.hash.sha256,e);else if(this.version===4)this.fingerprint=await fs(m.hash.sha1,e);else throw new Error("Unsupported key version")}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return F.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&F.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){let e={};e.algorithm=m.read(m.publicKey,this.algorithm);let t=this.publicParams.n||this.publicParams.p;return t?e.bits=F.uint8ArrayBitLength(t):this.publicParams.oid&&(e.curve=this.publicParams.oid.getName()),e}};As.prototype.readPublicKey=As.prototype.read;As.prototype.writePublicKey=As.prototype.write;wX=F.constructAllowedPackets([Ea,qc,an,Nr]),TB=class{static get tag(){return m.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,i=pe){if(!i.allowUnauthenticatedMessages)throw new Error("Message is not authenticated.");let{blockSize:n}=It(e),s=await Xt(Uc(this.encrypted)),o=await _I(e,t,s.subarray(n+2),s.subarray(2,n+2));this.packets=await Ct.fromBinary(o,wX,i)}async encrypt(e,t,i=pe){let n=this.packets.write(),{blockSize:s}=It(e),o=await yT(e),a=await jf(e,t,o,new Uint8Array(s)),c=await jf(e,t,n,a.subarray(2));this.encrypted=F.concat([a,c])}},tI=class r extends As{static get tag(){return m.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){let t=new r,{version:i,created:n,algorithm:s,publicParams:o,keyID:a,fingerprint:c}=e;return t.version=i,t.created=n,t.algorithm=s,t.publicParams=o,t.keyID=a,t.fingerprint=c,t}},UB=class r{static get tag(){return m.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){let i=L6(e.subarray(t,e.length));t+=i.offset,this.attributes.push(F.uint8ArrayToString(e.subarray(t,t+i.len))),t+=i.len}}write(){let e=[];for(let t=0;t<this.attributes.length;t++)e.push(xI(this.attributes[t].length)),e.push(F.stringToUint8Array(this.attributes[t]));return F.concatUint8Array(e)}equals(e){return!e||!(e instanceof r)?!1:this.attributes.every(function(t,i){return t===e.attributes[i]})}},Wf=class extends As{static get tag(){return m.packet.secretKey}constructor(e=new Date,t=pe){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.isLegacyAEAD=null,this.privateParams=null,this.usedModernAEAD=null}async read(e,t=pe){let i=await this.readPublicKey(e,t),n=i;this.s2kUsage=e[i++],this.version===5&&i++,this.version===6&&this.s2kUsage&&i++;try{if(this.s2kUsage===255||this.s2kUsage===254||this.s2kUsage===253){this.symmetric=e[i++],this.s2kUsage===253&&(this.aead=e[i++]),this.version===6&&i++;let s=e[i++];if(this.s2k=Yy(s),i+=this.s2k.read(e.subarray(i,e.length)),this.s2k.type==="gnu-dummy")return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);this.s2kUsage&&(this.isLegacyAEAD=this.s2kUsage===253&&(this.version===5||this.version===4&&t.parseAEADEncryptedV4KeysAsLegacy),this.s2kUsage!==253||this.isLegacyAEAD?(this.iv=e.subarray(i,i+It(this.symmetric).blockSize),this.usedModernAEAD=!1):(this.iv=e.subarray(i,i+no(this.aead).ivLength),this.usedModernAEAD=!0),i+=this.iv.length)}catch(s){if(!this.s2kUsage)throw s;this.unparseableKeyMaterial=e.subarray(n),this.isEncrypted=!0}if(this.version===5&&(i+=4),this.keyMaterial=e.subarray(i),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){let s;if(this.version===6)s=this.keyMaterial;else if(s=this.keyMaterial.subarray(0,-2),!F.equalsUint8Array(F.writeChecksum(s),this.keyMaterial.subarray(-2)))throw new Error("Key checksum mismatch");try{let{read:o,privateParams:a}=v5(this.algorithm,s,this.publicParams);if(o<s.length)throw new Error("Error reading MPIs");this.privateParams=a}catch(o){throw o instanceof ft?o:new Error("Error reading MPIs")}}}write(){let e=this.writePublicKey();if(this.unparseableKeyMaterial)return F.concatUint8Array([e,this.unparseableKeyMaterial]);let t=[e];t.push(new Uint8Array([this.s2kUsage]));let i=[];if(this.s2kUsage===255||this.s2kUsage===254||this.s2kUsage===253){i.push(this.symmetric),this.s2kUsage===253&&i.push(this.aead);let n=this.s2k.write();this.version===6&&i.push(n.length),i.push(...n)}return this.s2kUsage&&this.s2k.type!=="gnu-dummy"&&i.push(...this.iv),(this.version===5||this.version===6&&this.s2kUsage)&&t.push(new Uint8Array([i.length])),t.push(new Uint8Array(i)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=vd(this.algorithm,this.privateParams)),this.version===5&&t.push(F.writeNumber(this.keyMaterial.length,4)),t.push(this.keyMaterial),!this.s2kUsage&&this.version!==6&&t.push(F.writeChecksum(this.keyMaterial))),F.concatUint8Array(t)}isDecrypted(){return this.isEncrypted===!1}isMissingSecretKeyMaterial(){return this.unparseableKeyMaterial!==void 0||this.isDummy()}isDummy(){return!!(this.s2k&&this.s2k.type==="gnu-dummy")}makeDummy(e=pe){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),delete this.unparseableKeyMaterial,this.isEncrypted=null,this.keyMaterial=null,this.s2k=Yy(m.s2k.gnu,e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=m.symmetric.aes256,this.isLegacyAEAD=null,this.usedModernAEAD=null)}async encrypt(e,t=pe){if(this.isDummy())return;if(!this.isDecrypted())throw new Error("Key packet is already encrypted");if(!e)throw new Error("A non-empty passphrase is required for key encryption.");this.s2k=wT(t),this.s2k.generateSalt();let i=vd(this.algorithm,this.privateParams);this.symmetric=m.symmetric.aes256;let{blockSize:n}=It(this.symmetric);if(t.aeadProtect){this.s2kUsage=253,this.aead=t.preferredAEADAlgorithm;let s=no(this.aead);this.isLegacyAEAD=this.version===5,this.usedModernAEAD=!this.isLegacyAEAD;let o=qy(this.constructor.tag),a=await YE(this.version,this.s2k,e,this.symmetric,this.aead,o,this.isLegacyAEAD,t),c=await s(this.symmetric,a);this.iv=this.isLegacyAEAD?Rr(n):Rr(s.ivLength);let l=this.isLegacyAEAD?new Uint8Array:F.concatUint8Array([o,this.writePublicKey()]);this.keyMaterial=await c.encrypt(i,this.iv.subarray(0,s.ivLength),l)}else{this.s2kUsage=254,this.usedModernAEAD=!1;let s=await YE(this.version,this.s2k,e,this.symmetric,void 0,void 0,void 0,t);this.iv=Rr(n),this.keyMaterial=await jf(this.symmetric,s,F.concatUint8Array([i,await fs(m.hash.sha1,i)]),this.iv)}}async decrypt(e,t=pe){if(this.isDummy())return!1;if(this.unparseableKeyMaterial)throw new Error("Key packet cannot be decrypted: unsupported S2K or cipher algo");if(this.isDecrypted())throw new Error("Key packet is already decrypted.");let i,n=qy(this.constructor.tag);if(this.s2kUsage===254||this.s2kUsage===253)i=await YE(this.version,this.s2k,e,this.symmetric,this.aead,n,this.isLegacyAEAD,t);else throw this.s2kUsage===255?new Error("Encrypted private key is authenticated using an insecure two-byte hash"):new Error("Private key is encrypted using an insecure S2K function: unsalted MD5");let s;if(this.s2kUsage===253){let o=no(this.aead,!0),a=await o(this.symmetric,i);try{let c=this.isLegacyAEAD?new Uint8Array:F.concatUint8Array([n,this.writePublicKey()]);s=await a.decrypt(this.keyMaterial,this.iv.subarray(0,o.ivLength),c)}catch(c){throw c.message==="Authentication tag mismatch"?new Error("Incorrect key passphrase: "+c.message):c}}else{let o=await _I(this.symmetric,i,this.keyMaterial,this.iv);s=o.subarray(0,-20);let a=await fs(m.hash.sha1,s);if(!F.equalsUint8Array(a,o.subarray(-20)))throw new Error("Incorrect key passphrase")}try{let{privateParams:o}=v5(this.algorithm,s,this.publicParams);this.privateParams=o}catch{throw new Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0,this.aead=null,this.symmetric=null,this.isLegacyAEAD=null}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw new Error("Key is not decrypted");if(this.usedModernAEAD)return;let e;try{e=await wW(this.algorithm,this.publicParams,this.privateParams)}catch{e=!1}if(!e)throw new Error("Key is invalid")}async generate(e,t){if(this.version===6&&(this.algorithm===m.publicKey.ecdh&&t===m.curve.curve25519Legacy||this.algorithm===m.publicKey.eddsaLegacy))throw new Error(`Cannot generate v6 keys of type 'ecc' with curve ${t}. Generate a key of type 'curve25519' instead`);let{privateParams:i,publicParams:n}=await IW(this.algorithm,e,t);this.privateParams=i,this.publicParams=n,this.isEncrypted=!1}clearPrivateParams(){this.isMissingSecretKeyMaterial()||(Object.keys(this.privateParams).forEach(e=>{this.privateParams[e].fill(0),delete this.privateParams[e]}),this.privateParams=null,this.isEncrypted=!0)}};rI=class r{static get tag(){return m.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(F.isString(e)||e.name&&!F.isString(e.name)||e.email&&!F.isEmailAddress(e.email)||e.comment&&!F.isString(e.comment))throw new Error("Invalid user ID format");let t=new r;Object.assign(t,e);let i=[];return t.name&&i.push(t.name),t.comment&&i.push(`(${t.comment})`),t.email&&i.push(`<${t.email}>`),t.userID=i.join(" "),t}read(e,t=pe){let i=F.decodeUTF8(e);if(i.length>t.maxUserIDLength)throw new Error("User ID string is too long");let n=a=>/^[^\s@]+@[^\s@]+$/.test(a),s=i.indexOf("<"),o=i.lastIndexOf(">");if(s!==-1&&o!==-1&&o>s){let a=i.substring(s+1,o);if(n(a)){this.email=a;let c=i.substring(0,s).trim(),l=c.indexOf("("),d=c.lastIndexOf(")");l!==-1&&d!==-1&&d>l?(this.comment=c.substring(l+1,d).trim(),this.name=c.substring(0,l).trim()):(this.name=c,this.comment="")}}else n(i.trim())&&(this.email=i.trim(),this.name="",this.comment="");this.userID=i}write(){return F.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}},iI=class extends Wf{static get tag(){return m.packet.secretSubkey}constructor(e=new Date,t=pe){super(e,t)}},nI=class{constructor(e){this.packets=e||new Ct}write(){return this.packets.write()}armor(e=pe){let t=this.packets.some(i=>i.constructor.tag===Nr.tag&&i.version!==6);return dA(m.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map(e=>e.issuerKeyID)}};qB=class r{constructor(e,t){this.userID=e.constructor.tag===m.packet.userID?e:null,this.userAttribute=e.constructor.tag===m.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){let e=new Ct;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){let e=new r(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,i){let n=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:n},o=new r(s.userID||s.userAttribute,this.mainKey);return o.otherCertifications=await Promise.all(e.map(async function(a){if(!a.isPrivate())throw new Error("Need private key for signing");if(a.hasSameFingerprintAs(n))throw new Error("The user's own key can only be used for self-certifications");let c=await a.getSigningKey(void 0,t,void 0,i);return us(s,[a],c.keyPacket,{signatureType:m.signature.certGeneric,keyFlags:[m.keyFlags.certifyKeys|m.keyFlags.signData]},t,void 0,void 0,void 0,i)})),await o.update(this,t,i),o}async isRevoked(e,t,i=new Date,n=pe){let s=this.mainKey.keyPacket;return Qd(s,m.signature.certRevocation,{key:s,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,i,n)}async verifyCertificate(e,t,i=new Date,n){let s=this,o=this.mainKey.keyPacket,a={userID:this.userID,userAttribute:this.userAttribute,key:o},{issuerKeyID:c}=e,l=t.filter(d=>d.getKeys(c).length>0);return l.length===0?null:(await Promise.all(l.map(async d=>{let u=await d.getSigningKey(c,e.created,void 0,n);if(e.revoked||await s.isRevoked(e,u.keyPacket,i,n))throw new Error("User certificate is revoked");try{await e.verify(u.keyPacket,m.signature.certGeneric,a,i,void 0,n)}catch(f){throw F.wrapError("User certificate is invalid",f)}})),!0)}async verifyAllCertifications(e,t=new Date,i){let n=this,s=this.selfCertifications.concat(this.otherCertifications);return Promise.all(s.map(async o=>({keyID:o.issuerKeyID,valid:await n.verifyCertificate(o,e,t,i).catch(()=>!1)})))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw new Error("No self-certifications found");let i=this,n=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:n},o;for(let a=this.selfCertifications.length-1;a>=0;a--)try{let c=this.selfCertifications[a];if(c.revoked||await i.isRevoked(c,void 0,e,t))throw new Error("Self-certification is revoked");try{await c.verify(n,m.signature.certGeneric,s,e,void 0,t)}catch(l){throw F.wrapError("Self-certification is invalid",l)}return!0}catch(c){o=c}throw o}async update(e,t,i){let n=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:n};await Pc(e,this,"selfCertifications",t,async function(o){try{return await o.verify(n,m.signature.certGeneric,s,t,!1,i),!0}catch{return!1}}),await Pc(e,this,"otherCertifications",t),await Pc(e,this,"revocationSignatures",t,function(o){return Qd(n,m.signature.certRevocation,s,[o],void 0,void 0,t,i)})}async revoke(e,{flag:t=m.reasonForRevocation.noReason,string:i=""}={},n=new Date,s=pe){let o={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new r(o.userID||o.userAttribute,this.mainKey);return a.revocationSignatures.push(await us(o,[],e,{signatureType:m.signature.certRevocation,reasonForRevocationFlag:m.write(m.reasonForRevocation,t),reasonForRevocationString:i},n,void 0,void 0,!1,s)),await a.update(this),a}},Xf=class r{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){let e=new Ct;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){let e=new r(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,i=new Date,n=pe){let s=this.mainKey.keyPacket;return Qd(s,m.signature.subkeyRevocation,{key:s,bind:this.keyPacket},this.revocationSignatures,e,t,i,n)}async verify(e=new Date,t=pe){let i=this.mainKey.keyPacket,n={key:i,bind:this.keyPacket},s=await kn(this.bindingSignatures,i,m.signature.subkeyBinding,n,e,t);if(s.revoked||await this.isRevoked(s,null,e,t))throw new Error("Subkey is revoked");if(RB(this.keyPacket,s,e))throw new Error("Subkey is expired");return s}async getExpirationTime(e=new Date,t=pe){let i=this.mainKey.keyPacket,n={key:i,bind:this.keyPacket},s;try{s=await kn(this.bindingSignatures,i,m.signature.subkeyBinding,n,e,t)}catch{return null}let o=sI(this.keyPacket,s),a=s.getExpirationTime();return o<a?o:a}async update(e,t=new Date,i=pe){let n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw new Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===m.packet.publicSubkey&&e.keyPacket.constructor.tag===m.packet.secretSubkey&&(this.keyPacket=e.keyPacket);let s=this,o={key:n,bind:s.keyPacket};await Pc(e,this,"bindingSignatures",t,async function(a){for(let c=0;c<s.bindingSignatures.length;c++)if(s.bindingSignatures[c].issuerKeyID.equals(a.issuerKeyID))return a.created>s.bindingSignatures[c].created&&(s.bindingSignatures[c]=a),!1;try{return await a.verify(n,m.signature.subkeyBinding,o,t,void 0,i),!0}catch{return!1}}),await Pc(e,this,"revocationSignatures",t,function(a){return Qd(n,m.signature.subkeyRevocation,o,[a],void 0,void 0,t,i)})}async revoke(e,{flag:t=m.reasonForRevocation.noReason,string:i=""}={},n=new Date,s=pe){let o={key:e,bind:this.keyPacket},a=new r(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await us(o,[],e,{signatureType:m.signature.subkeyRevocation,reasonForRevocationFlag:m.write(m.reasonForRevocation,t),reasonForRevocationString:i},n,void 0,void 0,!1,s)),await a.update(this),a}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}};["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach(r=>{Xf.prototype[r]=function(){return this.keyPacket[r]()}});bX=F.constructAllowedPackets([Nr]),G5=new Set([m.packet.publicKey,m.packet.privateKey]),z5=new Set([m.packet.publicKey,m.packet.privateKey,m.packet.publicSubkey,m.packet.privateSubkey]),oI=class{packetListToStructure(e,t=new Set){let i,n,s,o;for(let a of e){if(a instanceof Gf){z5.has(a.tag)&&!o&&(G5.has(a.tag)?o=G5:o=z5);continue}let c=a.constructor.tag;if(o){if(!o.has(c))continue;o=null}if(t.has(c))throw new Error(`Unexpected packet type: ${c}`);switch(c){case m.packet.publicKey:case m.packet.secretKey:if(this.keyPacket)throw new Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw new Error("Missing Key ID");break;case m.packet.userID:case m.packet.userAttribute:i=new qB(a,this),this.users.push(i);break;case m.packet.publicSubkey:case m.packet.secretSubkey:i=null,s=new Xf(a,this),this.subkeys.push(s);break;case m.packet.signature:switch(a.signatureType){case m.signature.certGeneric:case m.signature.certPersona:case m.signature.certCasual:case m.signature.certPositive:if(!i){F.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?i.selfCertifications.push(a):i.otherCertifications.push(a);break;case m.signature.certRevocation:i?i.revocationSignatures.push(a):this.directSignatures.push(a);break;case m.signature.key:this.directSignatures.push(a);break;case m.signature.subkeyBinding:if(!s){F.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}s.bindingSignatures.push(a);break;case m.signature.keyRevocation:this.revocationSignatures.push(a);break;case m.signature.subkeyRevocation:if(!s){F.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}s.revocationSignatures.push(a);break}break}}}toPacketList(){let e=new Ct;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map(t=>e.push(...t.toPacketList())),this.subkeys.map(t=>e.push(...t.toPacketList())),e}clone(e=!1){let t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach(i=>{if(i.keyPacket=Object.create(Object.getPrototypeOf(i.keyPacket),Object.getOwnPropertyDescriptors(i.keyPacket)),!i.keyPacket.isDecrypted())return;let n={};Object.keys(i.keyPacket.privateParams).forEach(s=>{n[s]=new Uint8Array(i.keyPacket.privateParams[s])}),i.keyPacket.privateParams=n}),t}getSubkeys(e=null){return this.subkeys.filter(i=>!e||i.getKeyID().equals(e,!0))}getKeys(e=null){let t=[];return(!e||this.getKeyID().equals(e,!0))&&t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map(e=>e.getKeyID())}getUserIDs(){return this.users.map(e=>e.userID?e.userID.userID:null).filter(e=>e!==null)}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,i={},n=pe){await this.verifyPrimaryKey(t,i,n);let s=this.keyPacket;try{pa(s,n)}catch(c){throw F.wrapError("Could not verify primary key",c)}let o=this.subkeys.slice().sort((c,l)=>l.keyPacket.created-c.keyPacket.created||l.keyPacket.algorithm-c.keyPacket.algorithm),a;for(let c of o)if(!e||c.getKeyID().equals(e))try{await c.verify(t,n);let l={key:s,bind:c.keyPacket},d=await kn(c.bindingSignatures,s,m.signature.subkeyBinding,l,t,n);if(!L5(c.keyPacket,d,n))continue;if(!d.embeddedSignature)throw new Error("Missing embedded signature");return await kn([d.embeddedSignature],c.keyPacket,m.signature.keyBinding,l,t,n),pa(c.keyPacket,n),c}catch(l){a=l}try{let c=await this.getPrimarySelfSignature(t,i,n);if((!e||s.getKeyID().equals(e))&&L5(s,c,n))return pa(s,n),this}catch(c){a=c}throw F.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,i={},n=pe){await this.verifyPrimaryKey(t,i,n);let s=this.keyPacket;try{pa(s,n)}catch(c){throw F.wrapError("Could not verify primary key",c)}let o=this.subkeys.slice().sort((c,l)=>l.keyPacket.created-c.keyPacket.created||l.keyPacket.algorithm-c.keyPacket.algorithm),a;for(let c of o)if(!e||c.getKeyID().equals(e))try{await c.verify(t,n);let l={key:s,bind:c.keyPacket},d=await kn(c.bindingSignatures,s,m.signature.subkeyBinding,l,t,n);if(H5(c.keyPacket,d,n))return pa(c.keyPacket,n),c}catch(l){a=l}try{let c=await this.getPrimarySelfSignature(t,i,n);if((!e||s.getKeyID().equals(e))&&H5(s,c,n))return pa(s,n),this}catch(c){a=c}throw F.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,i=new Date,n=pe){return Qd(this.keyPacket,m.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,i,n)}async verifyPrimaryKey(e=new Date,t={},i=pe){let n=this.keyPacket;if(await this.isRevoked(null,null,e,i))throw new Error("Primary key is revoked");let s=await this.getPrimarySelfSignature(e,t,i);if(RB(n,s,e))throw new Error("Primary key is expired");if(n.version!==6){let o=await kn(this.directSignatures,n,m.signature.key,{key:n},e,i).catch(()=>{});if(o&&RB(n,o,e))throw new Error("Primary key is expired")}}async getExpirationTime(e,t=pe){let i;try{let n=await this.getPrimarySelfSignature(null,e,t),s=sI(this.keyPacket,n),o=n.getExpirationTime(),a=this.keyPacket.version!==6&&await kn(this.directSignatures,this.keyPacket,m.signature.key,{key:this.keyPacket},null,t).catch(()=>{});if(a){let c=sI(this.keyPacket,a);i=Math.min(s,o,c)}else i=s<o?s:o}catch{i=null}return F.normalizeDate(i)}async getPrimarySelfSignature(e=new Date,t={},i=pe){let n=this.keyPacket;if(n.version===6)return kn(this.directSignatures,n,m.signature.key,{key:n},e,i);let{selfCertification:s}=await this.getPrimaryUser(e,t,i);return s}async getPrimaryUser(e=new Date,t={},i=pe){let n=this.keyPacket,s=[],o;for(let d=0;d<this.users.length;d++)try{let u=this.users[d];if(!u.userID)continue;if(t.name!==void 0&&u.userID.name!==t.name||t.email!==void 0&&u.userID.email!==t.email||t.comment!==void 0&&u.userID.comment!==t.comment)throw new Error("Could not find user that matches that user ID");let f={userID:u.userID,key:n},h=await kn(u.selfCertifications,n,m.signature.certGeneric,f,e,i);s.push({index:d,user:u,selfCertification:h})}catch(u){o=u}if(!s.length)throw o||new Error("Could not find primary user");await Promise.all(s.map(async d=>{d.selfCertification.revoked||await d.user.isRevoked(d.selfCertification,null,e,i)}));let a=s.sort(function(d,u){let f=d.selfCertification,h=u.selfCertification;return h.revoked-f.revoked||f.isPrimaryUserID-h.isPrimaryUserID||f.created-h.created}).pop(),{user:c,selfCertification:l}=a;if(l.revoked||await c.isRevoked(l,null,e,i))throw new Error("Primary user is revoked");return a}async update(e,t=new Date,i=pe){if(!this.hasSameFingerprintAs(e))throw new Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(!(this.subkeys.length===e.subkeys.length&&this.subkeys.every(o=>e.subkeys.some(a=>o.hasSameFingerprintAs(a)))))throw new Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,i)}let n=this.clone();return await Pc(e,n,"revocationSignatures",t,s=>Qd(n.keyPacket,m.signature.keyRevocation,n,[s],null,e.keyPacket,t,i)),await Pc(e,n,"directSignatures",t),await Promise.all(e.users.map(async s=>{let o=n.users.filter(a=>s.userID&&s.userID.equals(a.userID)||s.userAttribute&&s.userAttribute.equals(a.userAttribute));if(o.length>0)await Promise.all(o.map(a=>a.update(s,t,i)));else{let a=s.clone();a.mainKey=n,n.users.push(a)}})),await Promise.all(e.subkeys.map(async s=>{let o=n.subkeys.filter(a=>a.hasSameFingerprintAs(s));if(o.length>0)await Promise.all(o.map(a=>a.update(s,t,i)));else{let a=s.clone();a.mainKey=n,n.subkeys.push(a)}})),n}async getRevocationCertificate(e=new Date,t=pe){let i={key:this.keyPacket},n=await kn(this.revocationSignatures,this.keyPacket,m.signature.keyRevocation,i,e,t),s=new Ct;s.push(n);let o=this.keyPacket.version!==6;return dA(m.armor.publicKey,s.write(),null,null,"This is a revocation certificate",o,t)}async applyRevocationCertificate(e,t=new Date,i=pe){let n=await wI(e),o=(await Ct.fromBinary(n.data,bX,i)).findPacket(m.packet.signature);if(!o||o.signatureType!==m.signature.keyRevocation)throw new Error("Could not find revocation signature packet");if(!o.issuerKeyID.equals(this.getKeyID()))throw new Error("Revocation signature does not match key");try{await o.verify(this.keyPacket,m.signature.keyRevocation,{key:this.keyPacket},t,void 0,i)}catch(c){throw F.wrapError("Could not verify revocation signature",c)}let a=this.clone();return a.revocationSignatures.push(o),a}async signPrimaryUser(e,t,i,n=pe){let{index:s,user:o}=await this.getPrimaryUser(t,i,n),a=await o.certify(e,t,n),c=this.clone();return c.users[s]=a,c}async signAllUsers(e,t=new Date,i=pe){let n=this.clone();return n.users=await Promise.all(this.users.map(function(s){return s.certify(e,t,i)})),n}async verifyPrimaryUser(e,t=new Date,i,n=pe){let s=this.keyPacket,{user:o}=await this.getPrimaryUser(t,i,n);return e?await o.verifyAllCertifications(e,t,n):[{keyID:s.getKeyID(),valid:await o.verify(t,n).catch(()=>!1)}]}async verifyAllUsers(e,t=new Date,i=pe){let n=this.keyPacket,s=[];return await Promise.all(this.users.map(async o=>{let a=e?await o.verifyAllCertifications(e,t,i):[{keyID:n.getKeyID(),valid:await o.verify(t,i).catch(()=>!1)}];s.push(...a.map(c=>({userID:o.userID?o.userID.userID:null,userAttribute:o.userAttribute,keyID:c.keyID,valid:c.valid})))})),s}};["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach(r=>{oI.prototype[r]=Xf.prototype[r]});aI=class extends oI{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([m.packet.secretKey,m.packet.secretSubkey])),!this.keyPacket))throw new Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=pe){let t=this.keyPacket.version!==6;return dA(m.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}},cI=class r extends aI{constructor(e){if(super(),this.packetListToStructure(e,new Set([m.packet.publicKey,m.packet.publicSubkey])),!this.keyPacket)throw new Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){let e=new Ct,t=this.toPacketList();for(let i of t)switch(i.constructor.tag){case m.packet.secretKey:{let n=As.fromSecretKeyPacket(i);e.push(n);break}case m.packet.secretSubkey:{let n=tI.fromSecretSubkeyPacket(i);e.push(n);break}default:e.push(i)}return new aI(e)}armor(e=pe){let t=this.keyPacket.version!==6;return dA(m.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,i={},n=pe){let s=this.keyPacket,o=[],a=null;for(let l=0;l<this.subkeys.length;l++)if(!e||this.subkeys[l].getKeyID().equals(e,!0)){if(this.subkeys[l].keyPacket.isDummy()){a=a||new Error("Gnu-dummy key packets cannot be used for decryption");continue}try{let d={key:s,bind:this.subkeys[l].keyPacket},u=await kn(this.subkeys[l].bindingSignatures,s,m.signature.subkeyBinding,d,t,n);K5(this.subkeys[l].keyPacket,u,n)&&o.push(this.subkeys[l])}catch(d){a=d}}let c=await this.getPrimarySelfSignature(t,i,n);if((!e||s.getKeyID().equals(e,!0))&&K5(s,c,n)&&(s.isDummy()?a=a||new Error("Gnu-dummy key packets cannot be used for decryption"):o.push(this)),o.length===0)throw a||new Error("No decryption key packets found");return o}isDecrypted(){return this.getKeys().some(({keyPacket:e})=>e.isDecrypted())}async validate(e=pe){if(!this.isPrivate())throw new Error("Cannot validate a public key");let t;if(!this.keyPacket.isDummy())t=this.keyPacket;else{let i=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});i&&!i.keyPacket.isDummy()&&(t=i.keyPacket)}if(t)return t.validate();{let i=this.getKeys();if(i.map(s=>s.keyPacket.isDummy()).every(Boolean))throw new Error("Cannot validate an all-gnu-dummy key");return Promise.all(i.map(s=>s.keyPacket.validate()))}}clearPrivateParams(){this.getKeys().forEach(({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()})}async revoke({flag:e=m.reasonForRevocation.noReason,string:t=""}={},i=new Date,n=pe){if(!this.isPrivate())throw new Error("Need private key for revoking");let s={key:this.keyPacket},o=this.clone();return o.revocationSignatures.push(await us(s,[],this.keyPacket,{signatureType:m.signature.keyRevocation,reasonForRevocationFlag:m.write(m.reasonForRevocation,e),reasonForRevocationString:t},i,void 0,void 0,void 0,n)),o}async addSubkey(e={}){let t={...pe,...e.config};if(e.passphrase)throw new Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw new Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);let i=this.keyPacket;if(i.isDummy())throw new Error("Cannot add subkey to gnu-dummy primary key");if(!i.isDecrypted())throw new Error("Key is not decrypted");let n=i.getAlgorithmInfo();n.type=vX(n.algorithm),n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519Legacy",e=NB(e,n);let s=await kT(e,{...t,v6Keys:this.keyPacket.version===6});pa(s,t);let o=await ST(s,i,e,t),a=this.toPacketList();return a.push(s,o),new r(a)}};kX=F.constructAllowedPackets([As,tI,Wf,iI,rI,UB,Nr]);QX=F.constructAllowedPackets([Ea,qc,PB,Dd,TB,Vf,Yf,an,Nr]),_X=F.constructAllowedPackets([Yf]),FX=F.constructAllowedPackets([Nr]),Zf=class r{constructor(e){this.packets=e||new Ct}getEncryptionKeyIDs(){let e=[];return this.packets.filterByTag(m.packet.publicKeyEncryptedSessionKey).forEach(function(i){e.push(i.publicKeyID)}),e}getSigningKeyIDs(){let e=this.unwrapCompressed(),t=e.packets.filterByTag(m.packet.onePassSignature);return t.length>0?t.map(n=>n.issuerKeyID):e.packets.filterByTag(m.packet.signature).map(n=>n.issuerKeyID)}async decrypt(e,t,i,n=new Date,s=pe){let o=this.packets.filterByTag(m.packet.symmetricallyEncryptedData,m.packet.symEncryptedIntegrityProtectedData,m.packet.aeadEncryptedData);if(o.length===0)throw new Error("No encrypted data found");let a=o[0],c=a.cipherAlgorithm,l=i||await this.decryptSessionKeys(e,t,c,n,s),d=null,u=Promise.all(l.map(async({algorithm:h,data:g})=>{if(!F.isUint8Array(g)||!a.cipherAlgorithm&&!F.isString(h))throw new Error("Invalid session key for decryption.");try{let p=a.cipherAlgorithm||m.write(m.symmetric,h);await a.decrypt(p,g,s)}catch(p){F.printDebugError(p),d=p}}));if(pB(a.encrypted),a.encrypted=null,await u,!a.packets||!a.packets.length)throw d||new Error("Decryption failed.");let f=new r(a.packets);return a.packets=new Ct,f}async decryptSessionKeys(e,t,i,n=new Date,s=pe){let o=[],a;if(t){let c=this.packets.filterByTag(m.packet.symEncryptedSessionKey);if(c.length===0)throw new Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map(async function(l,d){let u;d?u=await Ct.fromBinary(c.write(),_X,s):u=c,await Promise.all(u.map(async function(f){try{await f.decrypt(l,s),o.push(f)}catch(h){F.printDebugError(h),h instanceof wd&&(a=h)}}))}))}else if(e){let c=this.packets.filterByTag(m.packet.publicKeyEncryptedSessionKey);if(c.length===0)throw new Error("No public key encrypted session key packet found.");await Promise.all(c.map(async function(l){await Promise.all(e.map(async function(d){let u;try{u=(await d.getDecryptionKeys(l.publicKeyID,null,void 0,s)).map(h=>h.keyPacket)}catch(h){a=h;return}let f=[m.symmetric.aes256,m.symmetric.aes128,m.symmetric.tripledes,m.symmetric.cast5];try{let h=await d.getPrimarySelfSignature(n,void 0,s);h.preferredSymmetricAlgorithms&&(f=f.concat(h.preferredSymmetricAlgorithms))}catch{}await Promise.all(u.map(async function(h){if(!h.isDecrypted())throw new Error("Decryption key is not decrypted.");if(s.constantTimePKCS1Decryption&&(l.publicKeyAlgorithm===m.publicKey.rsaEncrypt||l.publicKeyAlgorithm===m.publicKey.rsaEncryptSign||l.publicKeyAlgorithm===m.publicKey.rsaSign||l.publicKeyAlgorithm===m.publicKey.elgamal)){let p=l.write();await Promise.all((i?[i]:Array.from(s.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map(async I=>{let y=new Vf;y.read(p);let w={sessionKeyAlgorithm:I,sessionKey:BB(I)};try{await y.decrypt(h,w),o.push(y)}catch(C){F.printDebugError(C),a=C}}))}else try{await l.decrypt(h);let p=i||l.sessionKeyAlgorithm;if(p&&!f.includes(m.write(m.symmetric,p)))throw new Error("A non-preferred symmetric algorithm was used.");o.push(l)}catch(p){F.printDebugError(p),a=p}}))})),pB(l.encrypted),l.encrypted=null}))}else throw new Error("No key or password specified.");if(o.length>0){if(o.length>1){let c=new Set;o=o.filter(l=>{let d=l.sessionKeyAlgorithm+F.uint8ArrayToString(l.sessionKey);return c.has(d)?!1:(c.add(d),!0)})}return o.map(c=>({data:c.sessionKey,algorithm:c.sessionKeyAlgorithm&&m.read(m.symmetric,c.sessionKeyAlgorithm)}))}throw a||new Error("Session key decryption failed.")}getLiteralData(){let t=this.unwrapCompressed().packets.findPacket(m.packet.literalData);return t&&t.getBytes()||null}getFilename(){let t=this.unwrapCompressed().packets.findPacket(m.packet.literalData);return t&&t.getFilename()||null}getText(){let t=this.unwrapCompressed().packets.findPacket(m.packet.literalData);return t?t.getText():null}static async generateSessionKey(e=[],t=new Date,i=[],n=pe){let{symmetricAlgo:s,aeadAlgo:o}=await BX(e,t,i,n),a=m.read(m.symmetric,s),c=o?m.read(m.aead,o):void 0;return await Promise.all(e.map(d=>d.getEncryptionKey().catch(()=>null).then(u=>{if(u&&(u.keyPacket.algorithm===m.publicKey.x25519||u.keyPacket.algorithm===m.publicKey.x448)&&!c&&!F.isAES(s))throw new Error("Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.")}))),{data:BB(s),algorithm:a,aeadAlgorithm:c}}async encrypt(e,t,i,n=!1,s=[],o=new Date,a=[],c=pe){if(i){if(!F.isUint8Array(i.data)||!F.isString(i.algorithm))throw new Error("Invalid session key for encryption.")}else if(e&&e.length)i=await r.generateSessionKey(e,o,a,c);else if(t&&t.length)i=await r.generateSessionKey(void 0,void 0,void 0,c);else throw new Error("No keys, passwords, or session key provided.");let{data:l,algorithm:d,aeadAlgorithm:u}=i,f=await r.encryptSessionKey(l,d,u,e,t,n,s,o,a,c),h=Dd.fromObject({version:u?2:1,aeadAlgorithm:u?m.write(m.aead,u):null});h.packets=this.packets;let g=m.write(m.symmetric,d);return await h.encrypt(g,l,c),f.packets.push(h),h.packets=new Ct,f}static async encryptSessionKey(e,t,i,n,s,o=!1,a=[],c=new Date,l=[],d=pe){let u=new Ct,f=m.write(m.symmetric,t),h=i&&m.write(m.aead,i);if(n){let g=await Promise.all(n.map(async function(p,I){let y=await p.getEncryptionKey(a[I],c,l,d),w=Vf.fromObject({version:h?6:3,encryptionKeyPacket:y.keyPacket,anonymousRecipient:o,sessionKey:e,sessionKeyAlgorithm:f});return await w.encrypt(y.keyPacket),delete w.sessionKey,w}));u.push(...g)}if(s){let g=async function(w,C){try{return await w.decrypt(C,d),1}catch{return 0}},p=(w,C)=>w+C,I=async function(w,C,b,x){let _=new Yf(d);return _.sessionKey=w,_.sessionKeyAlgorithm=C,b&&(_.aeadAlgorithm=b),await _.encrypt(x,d),d.passwordCollisionCheck&&(await Promise.all(s.map(U=>g(_,U)))).reduce(p)!==1?I(w,C,x):(delete _.sessionKey,_)},y=await Promise.all(s.map(w=>I(e,f,h,w)));u.push(...y)}return new r(u)}async sign(e=[],t=[],i=null,n=[],s=new Date,o=[],a=[],c=[],l=pe){let d=new Ct,u=this.packets.findPacket(m.packet.literalData);if(!u)throw new Error("No literal data packet to sign.");let f=await J5(u,e,t,i,n,s,o,a,c,!1,l),h=f.map((g,p)=>an.fromSignaturePacket(g,p===0)).reverse();return d.push(...h),d.push(u),d.push(...f),new r(d)}compress(e,t=pe){if(e===m.compression.uncompressed)return this;let i=new qc(t);i.algorithm=e,i.packets=this.packets;let n=new Ct;return n.push(i),new r(n)}async signDetached(e=[],t=[],i=null,n=[],s=[],o=new Date,a=[],c=[],l=pe){let d=this.packets.findPacket(m.packet.literalData);if(!d)throw new Error("No literal data packet to sign.");return new nI(await J5(d,e,t,i,n,s,o,a,c,!0,l))}async verify(e,t=new Date,i=pe){let n=this.unwrapCompressed(),s=n.packets.filterByTag(m.packet.literalData);if(s.length!==1)throw new Error("Can only verify message with one literal data packet.");let o=n.packets;St(o.stream)&&(o=o.concat(await Xt(o.stream,l=>l||[])));let a=o.filterByTag(m.packet.onePassSignature).reverse(),c=o.filterByTag(m.packet.signature);return a.length&&!c.length&&F.isStream(o.stream)&&!St(o.stream)?(await Promise.all(a.map(async l=>{l.correspondingSig=new Promise((d,u)=>{l.correspondingSigResolve=d,l.correspondingSigReject=u}),l.signatureData=Hc(async()=>(await l.correspondingSig).signatureData),l.hashed=Xt(await l.hash(l.signatureType,s[0],void 0,!1)),l.hashed.catch(()=>{})})),o.stream=Ba(o.stream,async(l,d)=>{let u=_n(l),f=Hi(d);try{for(let h=0;h<a.length;h++){let{value:g}=await u.read();a[h].correspondingSigResolve(g)}await u.readToEnd(),await f.ready,await f.close()}catch(h){a.forEach(g=>{g.correspondingSigReject(h)}),await f.abort(h)}}),WE(a,s,e,t,!1,i)):WE(c,s,e,t,!1,i)}async verifyDetached(e,t,i=new Date,n=pe){let o=this.unwrapCompressed().packets.filterByTag(m.packet.literalData);if(o.length!==1)throw new Error("Can only verify message with one literal data packet.");let a=e.packets.filterByTag(m.packet.signature);return WE(a,o,t,i,!0,n)}unwrapCompressed(){let e=this.packets.filterByTag(m.packet.compressedData);return e.length?new r(e[0].packets):this}async appendSignature(e,t=pe){await this.packets.read(F.isUint8Array(e)?e:(await wI(e)).data,FX,t)}write(){return this.packets.write()}armor(e=pe){let t=this.packets[this.packets.length-1],i=t.constructor.tag===Dd.tag?t.version!==2:this.packets.some(n=>n.constructor.tag===Nr.tag&&n.version!==6);return dA(m.armor.message,this.write(),null,null,null,i,e)}};UX=Object.keys(pe).length;od=Mi&&typeof Mi=="object"&&"webcrypto"in Mi?Mi.webcrypto:Mi&&typeof Mi=="object"&&"randomBytes"in Mi?Mi:void 0;qX=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;$5=qX?r=>r:MX,UT=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",LX=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));js={_0:48,_9:57,A:65,F:70,a:97,f:102};tA=class{};GX=lo;B1=BigInt(0),OB=BigInt(1);ZE=r=>typeof r=="bigint"&&B1<=r;IA=r=>(OB<<BigInt(r))-OB;xi=BigInt(0),ui=BigInt(1),Qc=BigInt(2),qT=BigInt(3),OT=BigInt(4),MT=BigInt(5),$X=BigInt(7),LT=BigInt(8),VX=BigInt(9),HT=BigInt(16);ZX=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];Lc=class extends tA{constructor(e,t,i,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=n,this.buffer=new Uint8Array(e),this.view=XE(this.buffer)}update(e){_d(this),e=yA(e),hs(e);let{view:t,buffer:i,blockLen:n}=this,s=e.length;for(let o=0;o<s;){let a=Math.min(n-this.pos,s-o);if(a===n){let c=XE(e);for(;n<=s-o;o+=n)this.process(c,o);continue}i.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){_d(this),TT(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:n,isLE:s}=this,{pos:o}=this;t[o++]=128,cn(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(i,0),o=0);for(let u=o;u<n;u++)t[u]=0;iZ(i,n-8,BigInt(this.length*8),s),this.process(i,0);let a=XE(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let l=c/4,d=this.get();if(l>d.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<l;u++)a.setUint32(4*u,d[u],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:i,length:n,finished:s,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=s,e.length=n,e.pos=a,n%t&&e.buffer.set(i),e}clone(){return this._cloneInto()}},sa=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),oa=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),$r=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Vr=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Iy=BigInt(2**32-1),Z5=BigInt(32);e6=(r,e,t)=>r>>>t,t6=(r,e,t)=>r<<32-t|e>>>t,ad=(r,e,t)=>r>>>t|e<<32-t,cd=(r,e,t)=>r<<32-t|e>>>t,wy=(r,e,t)=>r<<64-t|e>>>t-32,xy=(r,e,t)=>r>>>t-32|e<<64-t,sZ=(r,e,t)=>r<<t|e>>>32-t,oZ=(r,e,t)=>e<<t|r>>>32-t,aZ=(r,e,t)=>e<<t-32|r>>>64-t,cZ=(r,e,t)=>r<<t-32|e>>>64-t;lZ=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),dZ=(r,e,t,i)=>e+t+i+(r/2**32|0)|0,uZ=(r,e,t,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0),fZ=(r,e,t,i,n)=>e+t+i+n+(r/2**32|0)|0,AZ=(r,e,t,i,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0)+(n>>>0),hZ=(r,e,t,i,n,s)=>e+t+i+n+s+(r/2**32|0)|0,gZ=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),aa=new Uint32Array(64),uI=class extends Lc{constructor(e=32){super(64,e,8,!1),this.A=sa[0]|0,this.B=sa[1]|0,this.C=sa[2]|0,this.D=sa[3]|0,this.E=sa[4]|0,this.F=sa[5]|0,this.G=sa[6]|0,this.H=sa[7]|0}get(){let{A:e,B:t,C:i,D:n,E:s,F:o,G:a,H:c}=this;return[e,t,i,n,s,o,a,c]}set(e,t,i,n,s,o,a,c){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)aa[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){let f=aa[u-15],h=aa[u-2],g=es(f,7)^es(f,18)^f>>>3,p=es(h,17)^es(h,19)^h>>>10;aa[u]=p+aa[u-7]+g+aa[u-16]|0}let{A:i,B:n,C:s,D:o,E:a,F:c,G:l,H:d}=this;for(let u=0;u<64;u++){let f=es(a,6)^es(a,11)^es(a,25),h=d+f+VT(a,c,l)+gZ[u]+aa[u]|0,p=(es(i,2)^es(i,13)^es(i,22))+YT(i,n,s)|0;d=l,l=c,c=a,a=o+h|0,o=s,s=n,n=i,i=h+p|0}i=i+this.A|0,n=n+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,d=d+this.H|0,this.set(i,n,s,o,a,c,l,d)}roundClean(){cn(aa)}destroy(){this.set(0,0,0,0,0,0,0,0),cn(this.buffer)}},MB=class extends uI{constructor(){super(28),this.A=oa[0]|0,this.B=oa[1]|0,this.C=oa[2]|0,this.D=oa[3]|0,this.E=oa[4]|0,this.F=oa[5]|0,this.G=oa[6]|0,this.H=oa[7]|0}},XT=WT(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),pZ=XT[0],mZ=XT[1],ca=new Uint32Array(80),la=new Uint32Array(80),fI=class extends Lc{constructor(e=64){super(128,e,16,!1),this.Ah=Vr[0]|0,this.Al=Vr[1]|0,this.Bh=Vr[2]|0,this.Bl=Vr[3]|0,this.Ch=Vr[4]|0,this.Cl=Vr[5]|0,this.Dh=Vr[6]|0,this.Dl=Vr[7]|0,this.Eh=Vr[8]|0,this.El=Vr[9]|0,this.Fh=Vr[10]|0,this.Fl=Vr[11]|0,this.Gh=Vr[12]|0,this.Gl=Vr[13]|0,this.Hh=Vr[14]|0,this.Hl=Vr[15]|0}get(){let{Ah:e,Al:t,Bh:i,Bl:n,Ch:s,Cl:o,Dh:a,Dl:c,Eh:l,El:d,Fh:u,Fl:f,Gh:h,Gl:g,Hh:p,Hl:I}=this;return[e,t,i,n,s,o,a,c,l,d,u,f,h,g,p,I]}set(e,t,i,n,s,o,a,c,l,d,u,f,h,g,p,I){this.Ah=e|0,this.Al=t|0,this.Bh=i|0,this.Bl=n|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=d|0,this.Fh=u|0,this.Fl=f|0,this.Gh=h|0,this.Gl=g|0,this.Hh=p|0,this.Hl=I|0}process(e,t){for(let C=0;C<16;C++,t+=4)ca[C]=e.getUint32(t),la[C]=e.getUint32(t+=4);for(let C=16;C<80;C++){let b=ca[C-15]|0,x=la[C-15]|0,_=ad(b,x,1)^ad(b,x,8)^e6(b,x,7),R=cd(b,x,1)^cd(b,x,8)^t6(b,x,7),U=ca[C-2]|0,T=la[C-2]|0,D=ad(U,T,19)^wy(U,T,61)^e6(U,T,6),B=cd(U,T,19)^xy(U,T,61)^t6(U,T,6),Q=uZ(R,B,la[C-7],la[C-16]),v=fZ(Q,_,D,ca[C-7],ca[C-16]);ca[C]=v|0,la[C]=Q|0}let{Ah:i,Al:n,Bh:s,Bl:o,Ch:a,Cl:c,Dh:l,Dl:d,Eh:u,El:f,Fh:h,Fl:g,Gh:p,Gl:I,Hh:y,Hl:w}=this;for(let C=0;C<80;C++){let b=ad(u,f,14)^ad(u,f,18)^wy(u,f,41),x=cd(u,f,14)^cd(u,f,18)^xy(u,f,41),_=u&h^~u&p,R=f&g^~f&I,U=AZ(w,x,R,mZ[C],la[C]),T=hZ(U,y,b,_,pZ[C],ca[C]),D=U|0,B=ad(i,n,28)^wy(i,n,34)^wy(i,n,39),Q=cd(i,n,28)^xy(i,n,34)^xy(i,n,39),v=i&s^i&a^s&a,E=n&o^n&c^o&c;y=p|0,w=I|0,p=h|0,I=g|0,h=u|0,g=f|0,{h:u,l:f}=$s(l|0,d|0,T|0,D|0),l=a|0,d=c|0,a=s|0,c=o|0,s=i|0,o=n|0;let P=lZ(D,Q,E);i=dZ(P,T,B,v),n=P|0}({h:i,l:n}=$s(this.Ah|0,this.Al|0,i|0,n|0)),{h:s,l:o}=$s(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=$s(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:d}=$s(this.Dh|0,this.Dl|0,l|0,d|0),{h:u,l:f}=$s(this.Eh|0,this.El|0,u|0,f|0),{h,l:g}=$s(this.Fh|0,this.Fl|0,h|0,g|0),{h:p,l:I}=$s(this.Gh|0,this.Gl|0,p|0,I|0),{h:y,l:w}=$s(this.Hh|0,this.Hl|0,y|0,w|0),this.set(i,n,s,o,a,c,l,d,u,f,h,g,p,I,y,w)}roundClean(){cn(ca,la)}destroy(){cn(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},LB=class extends fI{constructor(){super(48),this.Ah=$r[0]|0,this.Al=$r[1]|0,this.Bh=$r[2]|0,this.Bl=$r[3]|0,this.Ch=$r[4]|0,this.Cl=$r[5]|0,this.Dh=$r[6]|0,this.Dl=$r[7]|0,this.Eh=$r[8]|0,this.El=$r[9]|0,this.Fh=$r[10]|0,this.Fl=$r[11]|0,this.Gh=$r[12]|0,this.Gl=$r[13]|0,this.Hh=$r[14]|0,this.Hl=$r[15]|0}},S1=lo(()=>new uI),yZ=lo(()=>new MB),ZT=lo(()=>new fI),eU=lo(()=>new LB),AI=class extends tA{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,PT(e);let i=yA(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,s=new Uint8Array(n);s.set(i.length>n?e.create().update(i).digest():i);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),cn(s)}update(e){return _d(this),this.iHash.update(e),this}digestInto(e){_d(this),hs(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:i,finished:n,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=n,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=i._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},tU=(r,e,t)=>new AI(r,e).update(t).digest();tU.create=(r,e)=>new AI(r,e);Fd=BigInt(0),_c=BigInt(1);tB=new WeakMap,iU=new WeakMap;gI=class{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,i=this.ZERO){let n=e;for(;t>Fd;)t&_c&&(i=i.add(n)),n=n.double(),t>>=_c;return i}precomputeWindow(e,t){let{windows:i,windowSize:n}=eB(t,this.bits),s=[],o=e,a=o;for(let c=0;c<i;c++){a=o,s.push(a);for(let l=1;l<n;l++)a=a.add(o),s.push(a);o=a.double()}return s}wNAF(e,t,i){if(!this.Fn.isValid(i))throw new Error("invalid scalar");let n=this.ZERO,s=this.BASE,o=eB(e,this.bits);for(let a=0;a<o.windows;a++){let{nextN:c,offset:l,isZero:d,isNeg:u,isNegF:f,offsetF:h}=r6(i,a,o);i=c,d?s=s.add(hI(f,t[h])):n=n.add(hI(u,t[l]))}return i6(i),{p:n,f:s}}wNAFUnsafe(e,t,i,n=this.ZERO){let s=eB(e,this.bits);for(let o=0;o<s.windows&&i!==Fd;o++){let{nextN:a,offset:c,isZero:l,isNeg:d}=r6(i,o,s);if(i=a,!l){let u=t[c];n=n.add(d?u.negate():u)}}return i6(i),n}getPrecomputes(e,t,i){let n=tB.get(t);return n||(n=this.precomputeWindow(t,e),e!==1&&(typeof i=="function"&&(n=i(n)),tB.set(t,n))),n}cached(e,t,i){let n=rB(e);return this.wNAF(n,this.getPrecomputes(n,e,i),t)}unsafe(e,t,i,n){let s=rB(e);return s===1?this._unsafeLadder(e,t,n):this.wNAFUnsafe(s,this.getPrecomputes(s,e,i),t,n)}createCache(e,t){rU(t,this.bits),iU.set(e,t),tB.delete(e)}hasCache(e){return rB(e)!==1}};s6=(r,e)=>(r+(r>=0?e:-e)/oU)/e;KB=class extends Error{constructor(e=""){super(e)}},Zs={Err:KB,_tlv:{encode:(r,e)=>{let{Err:t}=Zs;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let i=e.length/2,n=yy(i);if(n.length/2&128)throw new t("tlv.encode: long form length too big");let s=i>127?yy(n.length/2|128):"";return yy(r)+s+n+e},decode(r,e){let{Err:t}=Zs,i=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[i++]!==r)throw new t("tlv.decode: wrong tlv");let n=e[i++],s=!!(n&128),o=0;if(!s)o=n;else{let c=n&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let l=e.subarray(i,i+c);if(l.length!==c)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let d of l)o=o<<8|d;if(i+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(i,i+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(i+o)}}},_int:{encode(r){let{Err:e}=Zs;if(r<to)throw new e("integer: negative integers are not allowed");let t=yy(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=Zs;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return qI(r)}},toSig(r){let{Err:e,_int:t,_tlv:i}=Zs,n=vt("signature",r),{v:s,l:o}=i.decode(48,n);if(o.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=i.decode(2,s),{v:l,l:d}=i.decode(2,c);if(d.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){let{_tlv:e,_int:t}=Zs,i=e.encode(2,t.encode(r.r)),n=e.encode(2,t.encode(r.s)),s=i+n;return e.encode(48,s)}},to=BigInt(0),Cd=BigInt(1),oU=BigInt(2),Cy=BigInt(3),EZ=BigInt(4);lU={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},dU={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},uU={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},_Z=Si(lU.p),FZ=Si(dU.p),PZ=Si(uU.p),TZ=Gc({...lU,Fp:_Z,lowS:!1},S1),UZ=Gc({...dU,Fp:FZ,lowS:!1},eU),RZ=Gc({...uU,Fp:PZ,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},ZT);NZ=TZ;qZ=UZ;OZ=RZ,MZ=BigInt(0),Pf=BigInt(1),LZ=BigInt(2),HZ=BigInt(7),KZ=BigInt(256),GZ=BigInt(113),fU=[],AU=[],hU=[];for(let r=0,e=Pf,t=1,i=0;r<24;r++){[t,i]=[i,(2*t+3*i)%5],fU.push(2*(5*i+t)),AU.push((r+1)*(r+2)/2%64);let n=MZ;for(let s=0;s<7;s++)e=(e<<Pf^(e>>HZ)*GZ)%KZ,e&LZ&&(n^=Pf<<(Pf<<BigInt(s))-Pf);hU.push(n)}gU=WT(hU,!0),zZ=gU[0],JZ=gU[1],o6=(r,e,t)=>t>32?aZ(r,e,t):sZ(r,e,t),a6=(r,e,t)=>t>32?cZ(r,e,t):oZ(r,e,t);pI=class r extends tA{constructor(e,t,i,n=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=n,this.rounds=s,eA(i),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=NX(this.state)}clone(){return this._cloneInto()}keccak(){$5(this.state32),jZ(this.state32,this.rounds),$5(this.state32),this.posOut=0,this.pos=0}update(e){_d(this),e=yA(e),hs(e);let{blockLen:t,state:i}=this,n=e.length;for(let s=0;s<n;){let o=Math.min(t-this.pos,n-s);for(let a=0;a<o;a++)i[this.pos++]^=e[s++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:i,blockLen:n}=this;e[i]^=t,(t&128)!==0&&i===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){_d(this,!1),hs(e),this.finish();let t=this.state,{blockLen:i}=this;for(let n=0,s=e.length;n<s;){this.posOut>=i&&this.keccak();let o=Math.min(i-this.posOut,s-n);e.set(t.subarray(this.posOut,this.posOut+o),n),this.posOut+=o,n+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return eA(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(TT(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,cn(this.state)}_cloneInto(e){let{blockLen:t,suffix:i,outputLen:n,rounds:s,enableXOF:o}=this;return e||(e=new r(t,i,n,o,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=i,e.outputLen=n,e.enableXOF=o,e.destroyed=this.destroyed,e}},pU=(r,e,t)=>lo(()=>new pI(e,r,t)),$Z=pU(6,136,256/8),VZ=pU(6,72,512/8),YZ=(r,e,t)=>KX((i={})=>new pI(e,r,i.dkLen===void 0?t:i.dkLen,!0)),WZ=YZ(31,136,256/8);da=BigInt(0),Er=BigInt(1),nB=BigInt(2),XZ=BigInt(8);Tf=BigInt(0),ld=BigInt(1),Ey=BigInt(2);zc={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"),h:BigInt(4),a:BigInt(1),d:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756"),Gx:BigInt("0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e"),Gy:BigInt("0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14")},oee=Object.assign({},zc,{d:BigInt("0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9"),Gx:BigInt("0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc"),Gy:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001")}),aee=lo(()=>WZ.create({dkLen:114})),cee=BigInt(1),GB=BigInt(2),c6=BigInt(3);BigInt(4);lee=BigInt(11),dee=BigInt(22),l6=BigInt(44),uee=BigInt(88),fee=BigInt(223);hee=Si(zc.p,{BITS:456,isLE:!0}),d6=Si(zc.n,{BITS:456,isLE:!0});pee={...zc,Fp:hee,Fn:d6,nBitLength:d6.BITS,hash:aee,adjustScalarBytes:IU,domain:gee,uvRatio:Aee},mee=iee(pee);mU(oee);yee=(()=>{let r=zc.p;return see({P:r,type:"x448",powPminus2:e=>{let t=yU(e),i=bt(t,GB,r);return pr(i*e,r)},adjustScalarBytes:IU})})();D1={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Iee={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},u6=BigInt(2);zB=Si(D1.p,{sqrt:wee}),xee=Gc({...D1,Fp:zB,lowS:!0,endo:Iee},S1),wU=S1,Cee=yZ,xU=Si(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),Eee=xU.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),Bee=BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),bee=Gc({a:Eee,b:Bee,Fp:xU,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},wU),CU=ZT,EU=eU,BU=Si(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),vee=BU.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),kee=BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),See=Gc({a:vee,b:kee,Fp:BU,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},EU),bU=Si(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),Dee=bU.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),Qee=BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),_ee=Gc({a:Dee,b:Qee,Fp:bU,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},CU),Fee=new Map(Object.entries({nistP256:NZ,nistP384:qZ,nistP521:OZ,brainpoolP256r1:bee,brainpoolP384r1:See,brainpoolP512r1:_ee,secp256k1:xee,x448:yee,ed448:mee})),Pee=Object.freeze({__proto__:null,nobleCurves:Fee}),Uf=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),ua=new Uint32Array(80),JB=class extends Lc{constructor(){super(64,20,8,!1),this.A=Uf[0]|0,this.B=Uf[1]|0,this.C=Uf[2]|0,this.D=Uf[3]|0,this.E=Uf[4]|0}get(){let{A:e,B:t,C:i,D:n,E:s}=this;return[e,t,i,n,s]}set(e,t,i,n,s){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0,this.E=s|0}process(e,t){for(let c=0;c<16;c++,t+=4)ua[c]=e.getUint32(t,!1);for(let c=16;c<80;c++)ua[c]=ya(ua[c-3]^ua[c-8]^ua[c-14]^ua[c-16],1);let{A:i,B:n,C:s,D:o,E:a}=this;for(let c=0;c<80;c++){let l,d;c<20?(l=VT(n,s,o),d=1518500249):c<40?(l=n^s^o,d=1859775393):c<60?(l=YT(n,s,o),d=2400959708):(l=n^s^o,d=3395469782);let u=ya(i,5)+l+a+d+ua[c]|0;a=o,o=s,s=ya(n,30),n=i,i=u}i=i+this.A|0,n=n+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,this.set(i,n,s,o,a)}roundClean(){cn(ua)}destroy(){this.set(0,0,0,0,0),cn(this.buffer)}},Tee=lo(()=>new JB),Uee=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),vU=Uint8Array.from(new Array(16).fill(0).map((r,e)=>e)),Ree=vU.map(r=>(9*r+5)%16),kU=(()=>{let t=[[vU],[Ree]];for(let i=0;i<4;i++)for(let n of t)n.push(n[i].map(s=>Uee[s]));return t})(),SU=kU[0],DU=kU[1],QU=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(r=>Uint8Array.from(r)),Nee=SU.map((r,e)=>r.map(t=>QU[e][t])),qee=DU.map((r,e)=>r.map(t=>QU[e][t])),Oee=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Mee=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);By=new Uint32Array(16),jB=class extends Lc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:e,h1:t,h2:i,h3:n,h4:s}=this;return[e,t,i,n,s]}set(e,t,i,n,s){this.h0=e|0,this.h1=t|0,this.h2=i|0,this.h3=n|0,this.h4=s|0}process(e,t){for(let h=0;h<16;h++,t+=4)By[h]=e.getUint32(t,!0);let i=this.h0|0,n=i,s=this.h1|0,o=s,a=this.h2|0,c=a,l=this.h3|0,d=l,u=this.h4|0,f=u;for(let h=0;h<5;h++){let g=4-h,p=Oee[h],I=Mee[h],y=SU[h],w=DU[h],C=Nee[h],b=qee[h];for(let x=0;x<16;x++){let _=ya(i+f6(h,s,a,l)+By[y[x]]+p,C[x])+u|0;i=u,u=l,l=ya(a,10)|0,a=s,s=_}for(let x=0;x<16;x++){let _=ya(n+f6(g,o,c,d)+By[w[x]]+I,b[x])+f|0;n=f,f=d,d=ya(c,10)|0,c=o,o=_}}this.set(this.h1+a+d|0,this.h2+l+f|0,this.h3+u+n|0,this.h4+i+o|0,this.h0+s+c|0)}roundClean(){cn(By)}destroy(){this.destroyed=!0,cn(this.buffer),this.set(0,0,0,0,0)}},Lee=lo(()=>new jB),Hee=Tee,Kee=Lee,Gee=Array.from({length:64},(r,e)=>Math.floor(2**32*Math.abs(Math.sin(e+1)))),A6=(r,e,t)=>r&e^~r&t,by=new Uint32Array([1732584193,4023233417,2562383102,271733878]),sB=new Uint32Array(16),$B=class extends Lc{constructor(){super(64,16,8,!0),this.A=by[0]|0,this.B=by[1]|0,this.C=by[2]|0,this.D=by[3]|0}get(){let{A:e,B:t,C:i,D:n}=this;return[e,t,i,n]}set(e,t,i,n){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0}process(e,t){for(let a=0;a<16;a++,t+=4)sB[a]=e.getUint32(t,!0);let{A:i,B:n,C:s,D:o}=this;for(let a=0;a<64;a++){let c,l,d;a<16?(c=A6(n,s,o),l=a,d=[7,12,17,22]):a<32?(c=A6(o,n,s),l=(5*a+1)%16,d=[5,9,14,20]):a<48?(c=n^s^o,l=(3*a+5)%16,d=[4,11,16,23]):(c=s^(n|~o),l=7*a%16,d=[6,10,15,21]),c=c+i+Gee[a]+sB[l],i=o,o=s,s=n,n=n+ya(c,d[a%4])}i=i+this.A|0,n=n+this.B|0,s=s+this.C|0,o=o+this.D|0,this.set(i,n,s,o)}roundClean(){sB.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}},zee=GX(()=>new $B),Jee=new Map(Object.entries({md5:zee,sha1:Hee,sha224:Cee,sha256:wU,sha384:EU,sha512:CU,sha3_256:$Z,sha3_512:VZ,ripemd160:Kee})),jee=Object.freeze({__proto__:null,nobleHashes:Jee}),oB=Mi&&typeof Mi=="object"&&"webcrypto"in Mi?Mi.webcrypto:void 0,ki={},Pe=function(r){var e,t=new Float64Array(16);if(r)for(e=0;e<r.length;e++)t[e]=r[e];return t},Q1=function(){throw new Error("no PRNG")},_U=new Uint8Array(32);_U[0]=9;VB=Pe(),mI=Pe([1]),$ee=Pe([56129,1]),Vee=Pe([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),Yee=Pe([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),h6=Pe([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),g6=Pe([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),Wee=Pe([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);y6=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];cB=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);x6=32,nte=32,LU=32,HU=32,Dc=64,OI=32,MI=64,ste=32;ki.scalarMult=function(r,e){if(Rd(r,e),r.length!==nte)throw new Error("bad n size");if(e.length!==x6)throw new Error("bad p size");var t=new Uint8Array(x6);return RU(t,r,e),t};ki.box={};ki.box.keyPair=function(){var r=new Uint8Array(LU),e=new Uint8Array(HU);return ete(r,e),{publicKey:r,secretKey:e}};ki.box.keyPair.fromSecretKey=function(r){if(Rd(r),r.length!==HU)throw new Error("bad secret key size");var e=new Uint8Array(LU);return NU(e,r),{publicKey:e,secretKey:new Uint8Array(r)}};ki.sign=function(r,e){if(Rd(r,e),e.length!==MI)throw new Error("bad secret key size");var t=new Uint8Array(Dc+r.length);return tte(t,r,r.length,e),t};ki.sign.detached=function(r,e){for(var t=ki.sign(r,e),i=new Uint8Array(Dc),n=0;n<i.length;n++)i[n]=t[n];return i};ki.sign.detached.verify=function(r,e,t){if(Rd(r,e,t),e.length!==Dc)throw new Error("bad signature size");if(t.length!==OI)throw new Error("bad public key size");var i=new Uint8Array(Dc+r.length),n=new Uint8Array(Dc+r.length),s;for(s=0;s<Dc;s++)i[s]=e[s];for(s=0;s<r.length;s++)i[s+Dc]=r[s];return ite(n,i,i.length,t)>=0};ki.sign.keyPair=function(){var r=new Uint8Array(OI),e=new Uint8Array(MI);return OU(r,e),{publicKey:r,secretKey:e}};ki.sign.keyPair.fromSecretKey=function(r){if(Rd(r),r.length!==MI)throw new Error("bad secret key size");for(var e=new Uint8Array(OI),t=0;t<e.length;t++)e[t]=r[32+t];return{publicKey:e,secretKey:new Uint8Array(r)}};ki.sign.keyPair.fromSeed=function(r){if(Rd(r),r.length!==ste)throw new Error("bad seed size");for(var e=new Uint8Array(OI),t=new Uint8Array(MI),i=0;i<32;i++)t[i]=r[i];return OU(e,t,!0),{publicKey:e,secretKey:t}};ki.setPRNG=function(r){Q1=r};(function(){if(oB&&oB.getRandomValues){var r=65536;ki.setPRNG(function(e,t){var i,n=new Uint8Array(t);for(i=0;i<t;i+=r)oB.getRandomValues(n.subarray(i,i+Math.min(t-i,r)));for(i=0;i<t;i++)e[i]=n[i];ote(n)})}})();Jc=Object.freeze({__proto__:null,default:ki});nA.keySize=nA.prototype.keySize=24;nA.blockSize=nA.prototype.blockSize=8;sA.blockSize=sA.prototype.blockSize=8;sA.keySize=sA.prototype.keySize=16;tn=4294967295;oA.keySize=oA.prototype.keySize=32;oA.blockSize=oA.prototype.blockSize=16;Pn.prototype.BLOCKSIZE=8;Pn.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];Pn.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731];Pn.prototype.NN=16;Pn.prototype._clean=function(r){return r<0&&(r=(r&2147483647)+2147483648),r};Pn.prototype._F=function(r){let e,t=r&255;r>>>=8;let i=r&255;r>>>=8;let n=r&255;r>>>=8;let s=r&255;return e=this.sboxes[0][s]+this.sboxes[1][n],e^=this.sboxes[2][i],e+=this.sboxes[3][t],e};Pn.prototype._encryptBlock=function(r){let e=r[0],t=r[1],i;for(i=0;i<this.NN;++i){e^=this.parray[i],t=this._F(e)^t;let n=e;e=t,t=n}e^=this.parray[this.NN+0],t^=this.parray[this.NN+1],r[0]=this._clean(t),r[1]=this._clean(e)};Pn.prototype.encryptBlock=function(r){let e,t=[0,0],i=this.BLOCKSIZE/2;for(e=0;e<this.BLOCKSIZE/2;++e)t[0]=t[0]<<8|r[e+0]&255,t[1]=t[1]<<8|r[e+i]&255;this._encryptBlock(t);let n=[];for(e=0;e<this.BLOCKSIZE/2;++e)n[e+0]=t[0]>>>24-8*e&255,n[e+i]=t[1]>>>24-8*e&255;return n};Pn.prototype._decryptBlock=function(r){let e=r[0],t=r[1],i;for(i=this.NN+1;i>1;--i){e^=this.parray[i],t=this._F(e)^t;let n=e;e=t,t=n}e^=this.parray[1],t^=this.parray[0],r[0]=this._clean(t),r[1]=this._clean(e)};Pn.prototype.init=function(r){let e,t=0;for(this.parray=[],e=0;e<this.NN+2;++e){let n=0;for(let s=0;s<4;++s)n=n<<8|r[t]&255,++t>=r.length&&(t=0);this.parray[e]=this.PARRAY[e]^n}for(this.sboxes=[],e=0;e<4;++e)for(this.sboxes[e]=[],t=0;t<256;++t)this.sboxes[e][t]=this.SBOXES[e][t];let i=[0,0];for(e=0;e<this.NN+2;e+=2)this._encryptBlock(i),this.parray[e+0]=i[0],this.parray[e+1]=i[1];for(e=0;e<4;++e)for(t=0;t<256;t+=2)this._encryptBlock(i),this.sboxes[e][t+0]=i[0],this.sboxes[e][t+1]=i[1]};aA.keySize=aA.prototype.keySize=16;aA.blockSize=aA.prototype.blockSize=8;ute=new Map(Object.entries({tripledes:nA,cast5:sA,twofish:oA,blowfish:aA})),fte=Object.freeze({__proto__:null,legacyCiphers:ute});KU=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),Yr=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map(r=>r*2));XB=class{constructor(e,t,i,n){let s=new Uint8Array(64);this.S={b:new Uint8Array(Rf),h:new Uint32Array(ZB/4),t0:new Uint32Array(2),c:0,outlen:e},s[0]=e,t&&(s[1]=t.length),s[2]=1,s[3]=1,i&&s.set(i,32),n&&s.set(n,48);let o=new Uint32Array(s.buffer,s.byteOffset,s.length/Uint32Array.BYTES_PER_ELEMENT);for(let a=0;a<16;a++)this.S.h[a]=KU[a]^o[a];if(t){let a=new Uint8Array(Rf);a.set(t),this.update(a)}}update(e){if(!(e instanceof Uint8Array))throw new Error("Input must be Uint8Array or Buffer");let t=0;for(;t<e.length;){this.S.c===Rf&&(C6(this.S.t0,this.S.c),E6(this.S,!1),this.S.c=0);let i=Rf-this.S.c;this.S.b.set(e.subarray(t,t+i),this.S.c);let n=Math.min(i,e.length-t);this.S.c+=n,t+=n}return this}digest(e){C6(this.S.t0,this.S.c),this.S.b.fill(0,this.S.c),this.S.c=Rf,E6(this.S,!0);let t=e||new Uint8Array(this.S.outlen);for(let i=0;i<this.S.outlen;i++)t[i]=this.S.h[i>>2]>>8*(i&3);return this.S.h=null,t.buffer}};ZB=64,Rf=128,P1=2,GU=19,Ate=4294967295,hte=4,gte=4294967295,pte=8,mte=4294967295,yte=8,Ite=4294967295,wte=4294967295,xte=32,Ys=1024,Cte=64,Ete=new Uint8Array(new Uint16Array([43981]).buffer)[0]===205;zU=1024,Ste=64*zU;Rte=async()=>Pte(r=>Tte(r),r=>Ute(r)),Nte=Object.freeze({__proto__:null,default:Rte});jU=Lte(),Hte=qte(jU),Kte=kV({__proto__:null,default:Hte},[jU])});function Gte(r){let e="",t=0,i=0;for(let n of r)for(i=i<<8|n,t+=8;t>=6;)t-=6,e+=VU[i>>t&63];return t>0&&(e+=VU[i<<6-t&63]),e}function WU(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function zte(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}async function Jte(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",r))}function XU(r,e){let t=WU(e),n=`$2a$10$${Gte(t).padEnd(22,".")}`;return YU.default.hashSync(r,n).slice(n.length)}async function wA(r,e){let t=await TI({armoredKey:r});return UI({privateKey:t,passphrase:e})}async function Nd(r,e){let t=await gA({armoredMessage:r}),{data:i}=await RI({message:t,decryptionKeys:e,format:"utf8"});return i}async function LI(r,e,t){let i=await DT({text:r});return QT({message:i,encryptionKeys:e,signingKeys:t?[t]:void 0,format:"armored"})}async function U1(r){let e=await Jte(new TextEncoder().encode(r));return zte(e)}async function ZU(r,e){let t=await gA({armoredMessage:r}),i=await _T({message:t,decryptionKeys:e});if(!i.length)throw new Error("failed to decrypt session key");return i[0]}async function eR(r,e){let t=await gA({binaryMessage:r}),{data:i}=await RI({message:t,sessionKeys:e,format:"binary"});return i}async function R1(r,e){if(!r)return 0;try{let t=WU(r),i=await gA({binaryMessage:t}),{data:n}=await RI({message:i,decryptionKeys:e,format:"binary"});return jte(n)}catch{return 0}}function jte(r){let e=0;for(;e<r.length;){let t=r[e++],i=t>>3,n=t&7;if(n===0){let s=0n,o=0n;for(;e<r.length;){let a=r[e++];if(s|=BigInt(a&127)<<o,(a&128)===0)break;o+=7n}if(i===1)return Number(s)}else if(n===2){let s=0,o=0;for(;e<r.length;){let a=r[e++];if(s|=(a&127)<<o,(a&128)===0)break;o+=7}e+=s}else if(n===1)e+=8;else if(n===5)e+=4;else break}return 0}var YU,VU,N1=j(()=>{"use strict";T1();YU=Qr(UE(),1),VU="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"});async function tR(r,e,t){let i=r.find(a=>a.Primary===1)||r[0];if(!i)throw new Error("user has no keys");let n=t.find(a=>a.ID===i.ID);if(!n)throw new Error("no salt for user key");let s=XU(e,n.KeySalt),o=[];for(let a of r)try{o.push(await wA(a.PrivateKey,s))}catch{}if(o.length===0)throw new Error("failed to unlock user keys (wrong password?)");return{userKR:o,saltedKeyPass:s}}async function rR(r,e,t){let i=new Map;for(let n of r){let s=[];for(let o of n.Keys)try{if(o.Token){let a=await Nd(o.Token,e);s.push(await wA(o.PrivateKey,a))}else s.push(await wA(o.PrivateKey,t))}catch{}s.length>0&&i.set(n.ID,s)}return i}async function iR(r,e){let t=e.get(r.AddressID);if(!t)throw new Error("no address keyring for share");let i=await Nd(r.Passphrase,t),n=await wA(r.Key,i);return[...t,n]}var HI,nR=j(()=>{"use strict";TE();c5();N1();HI=class{constructor(e){this.addition=e}addition;accessToken="";refreshToken="";uid="";saltedKeyPass="";setAuth(e,t,i){this.accessToken=e,this.refreshToken=t,this.uid=i}getUID(){return this.uid}getSaltedKeyPass(){return this.saltedKeyPass}setSaltedKeyPass(e){this.saltedKeyPass=e}authHeaders(){let e={Accept:WP,"X-Pm-Appversion":e5,"X-Pm-Drive-Sdk-Version":XP,"User-Agent":ZP};return this.accessToken&&(e.Authorization=`Bearer ${this.accessToken}`,e["X-Pm-Uid"]=this.uid),e}async request(e,t={}){let i=t.method||"GET",n=this.authHeaders(),s={method:i,headers:n};t.body!==void 0&&(s.body=JSON.stringify(t.body),n["Content-Type"]="application/json");let o=await fetch(e,s),a=await o.text(),c={};try{c=a?JSON.parse(a):{}}catch{c={}}if(!o.ok)throw new Error(`Proton request failed: ${o.status} ${(c.Error||a).slice(0,200)}`);return c}async requestAPI(e,t={}){let i=e.startsWith("http")?e:`${ia}${e}`;if(t.params){let n=new URLSearchParams(Object.entries(t.params).map(([s,o])=>[s,String(o)])).toString();i+=(i.includes("?")?"&":"?")+n}return this.request(i,{method:t.method,body:t.body})}async login(){let e=await this.request(GP,{method:"POST",body:{Username:this.addition.email}});if(!e.Modulus||!e.ServerEphemeral)throw new Error("invalid auth info response");let t=await a5(this.addition.email,this.addition.password,e),i=await this.request(zP,{method:"POST",body:{Username:this.addition.email,ClientEphemeral:t.ClientEphemeral,ClientProof:t.ClientProof,SRPSession:t.SRPSession}});if(i.Code===1001||i.TwoFactor?.Enabled){if(!this.addition.two_fa_code)throw new Error("2FA is enabled but no two_fa_code provided");i=await this.request(JP,{method:"POST",body:{TwoFactorCode:this.addition.two_fa_code,SRPSession:t.SRPSession}})}if(!i.AccessToken||!i.UID)throw new Error(`auth failed: code=${i.Code}`);this.setAuth(i.AccessToken,i.RefreshToken,i.UID)}async refresh(){if(!this.refreshToken)throw new Error("refresh token is empty");let e=await this.request(jP,{method:"POST",body:{RefreshToken:this.refreshToken,ResponseType:"token",GrantType:"refresh_token",RedirectURI:"https://drive.proton.me"}});if(!e.AccessToken)throw new Error("refresh token failed");this.setAuth(e.AccessToken,e.RefreshToken||this.refreshToken,e.UID||this.uid)}async requestWithRetry(e,t){try{return await this.request(e,t)}catch(i){if(String(i.message).includes("401")&&this.refreshToken)return await this.refresh(),this.request(e,t);throw i}}async getSalts(){return(await this.requestWithRetry($P,{})).KeySalts||[]}async getUser(){return(await this.requestWithRetry(VP,{})).User}async getAddresses(){return(await this.requestWithRetry(`${ia}/core/v4/addresses`,{})).Addresses||[]}async getShares(){return(await this.requestWithRetry(YP,{})).Shares||[]}}});function oR(r){return r?new Date(r*1e3).toISOString():new Date().toISOString()}function $te(r){let e={...r||{}};return e.email=(e.email||"").trim(),e.password=(e.password||"").trim(),e.two_fa_code=(e.two_fa_code||"").trim(),e.root_folder_id=(e.root_folder_id||"").trim()||"root",e.use_reusable_login=!!e.use_reusable_login,e.chunk_size=e.chunk_size||"4",e.reusable_credential=(e.reusable_credential||"").trim(),e}function Vte(){let r=crypto.getRandomValues(new Uint8Array(16));return btoa(String.fromCharCode(...r))}var sR,KI,aR=j(()=>{"use strict";Be();He();TE();nR();N1();T1();sR=150;KI=class{addition;client;mainShare=null;mainShareKR=[];userKR=[];addrKRs=new Map;defaultAddrKR=[];defaultAddrID="";idCache=new Map;linkCache=new Map;nodeKRcache=new Map;childrenCache=new Map;constructor(e){this.addition=$te(e),this.client=new HI(this.addition)}async init(){if(!this.addition.email)throw new Error("email is required");if(!this.addition.password)throw new Error("password is required");await this.client.login();let e=await this.client.getSalts(),t=await this.client.getUser(),i=await this.client.getAddresses(),{userKR:n,saltedKeyPass:s}=await tR(t.Keys,this.addition.password,e);if(this.userKR=n,this.client.setSaltedKeyPass(s),this.addrKRs=await rR(i,this.userKR,s),this.addrKRs.size===0)throw new Error("failed to unlock address keys");this.defaultAddrID=i[0]?.ID||"",this.defaultAddrKR=this.addrKRs.get(this.defaultAddrID)||[];let o=await this.client.getShares();if(this.mainShare=o.find(a=>a.Type===t5)||o[0],!this.mainShare)throw new Error("no shares found");this.mainShareKR=await iR(this.mainShare,this.addrKRs),await this.getLinkKR(this.getRootLinkID())}getShareID(){if(!this.mainShare)throw new Error("not initialized");return this.mainShare.ShareID}getVolumeID(){if(!this.mainShare)throw new Error("not initialized");return this.mainShare.VolumeID}getRootLinkID(){if(!this.mainShare)throw new Error("not initialized");return this.addition.root_folder_id&&this.addition.root_folder_id!=="root"?this.addition.root_folder_id:this.mainShare.RootLinkID}async fetchLink(e){let t=this.linkCache.get(e);if(t)return t;let i=await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${e}`);if(!i.Link)throw new Error(`link not found: ${e}`);return this.linkCache.set(e,i.Link),i.Link}async getLinkKR(e){let t=this.nodeKRcache.get(e);if(t)return t;let i=await this.fetchLink(e),n=i.ParentLinkID?await this.getLinkKR(i.ParentLinkID):this.mainShareKR,s=await Nd(i.NodePassphrase,n),o=await TI({armoredKey:i.NodeKey}),a=await UI({privateKey:o,passphrase:s}),c=[...n,a];return this.nodeKRcache.set(e,c),c}async decryptName(e){if(!e.Name)return"unnamed";let t=await this.getLinkKR(e.LinkID);try{return await Nd(e.Name,t)}catch{return"unnamed"}}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async listChildren(e){let t=this.childrenCache.get(e);if(t)return t;let i=[];for(let n=0;n<1e3;n++){let o=(await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${e}`,{params:{Children:"1",Page:String(n),PageSize:String(sR),Thumbnail:"0"}})).Links||[];if(i.push(...o),o.length<sR)break}return this.childrenCache.set(e,i),i}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return this.getRootLinkID();let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s=this.getRootLinkID(),o="/";for(let a of n){let c=await this.listChildren(s),l=null;for(let d of c)if(await this.decryptName(d)===a){l=d;break}if(!l)throw new Error(`folder not found: ${a}`);s=l.LinkID,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async list(e,t){let i=await this.resolveId(t),n=await this.listChildren(i),s=this.cleanPath(t),o=[];for(let a of n){let c=await this.decryptName(a);this.idCache.set(this.joinPath(s,c),a.LinkID);let l=a.Type===2;o.push({name:c,size:l?0:a.Size||0,is_dir:l,modified:oR(a.ModifyTime||a.CreateTime),sign:a.LinkID,type:X(c,l)})}return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t);if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootLinkID(),type:1};let n=await this.resolveId(i),s=await this.fetchLink(n),o=await this.decryptName(s),a=s.Type===2,c=0;if(!a){let l=await this.getLinkKR(n);c=await R1(s.XAttr||"",l),c||(c=s.Size||0)}return{name:o,size:c,is_dir:a,modified:oR(s.ModifyTime||s.CreateTime),sign:n,type:X(o,a),raw_url:""}}async createReadStream(e,t){let i=await this.resolveId(e),n=await this.fetchLink(i);if(n.Type===2)throw new Error("cannot stream a directory");let s=await this.getLinkKR(i),o=n.FileProperties?.ContentKeyPacket;if(!o)throw new Error("file has no content key packet");let a=await ZU(o,s),c=await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${i}/revisions`),l=c.Revisions?.find(I=>I.State===1)||c.Revisions?.[0];if(!l?.Blocks?.length)throw new Error("file has no blocks");let d=l.Blocks,u=await R1(n.XAttr||"",s)||l.Size||0,f=(parseInt(this.addition.chunk_size||"4")||4)*1024*1024,h=t?.start??0,g=t?.end??(u>0?u-1:Number.MAX_SAFE_INTEGER),p=this;return new ReadableStream({async pull(I){try{let y=h;for(let w of d){if(y>g)break;let C=await p.downloadBlock(w.BareURL,w.Token),b=await eR(C,[a]),x=w.Index*f,_=x+b.length-1,R=Math.max(h,x),U=Math.min(g,_);R<=U&&(I.enqueue(b.slice(R-x,U-x+1)),y=U+1)}I.close()}catch(y){I.error(y)}}})}async downloadBlock(e,t){let i=await fetch(e,{headers:{Authorization:`Bearer ${t}`}});if(!i.ok)throw new Error(`block download failed: ${i.status}`);return new Uint8Array(await i.arrayBuffer())}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/")||"/",s=i.split("/").pop()||"",o=await this.resolveId(n),a=await this.getLinkKR(o),c=await LI(s,a),l=await U1(s),{publicKey:d}=await C1({type:"ecc",curve:"curve25519Legacy",userIDs:[{name:s,email:this.mainShare?.Creator||""}]}),u=Vte(),f=await LI(u,a);await this.client.requestAPI("/drive/shares/"+this.getShareID()+"/folders",{method:"POST",body:{ParentLinkID:o,Name:c,Hash:l,NodeKey:d,NodePassphrase:f,NodePassphraseSignature:"",SignatureAddress:this.defaultAddrID,NameSignatureEmail:this.mainShare?.Creator||""}})}async rename(e,t,i){let n=await this.resolveId(t),s=await this.fetchLink(n),o=await this.getLinkKR(s.ParentLinkID),a=await LI(i,o),c=await U1(i),l=s.Hash||"";await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${n}/rename`,{method:"PUT",body:{Name:a,NameSignatureEmail:this.mainShare?.Creator||"",Hash:c,OriginalHash:l}})}async remove(e,t,i){let n=await this.resolveId(t);await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${n}/trash`,{method:"POST"})}async move(e,t,i,n,s){throw new Error("ProtonDrive move is not supported yet")}async copy(e,t,i,n,s){throw new Error("ProtonDrive copy is not supported")}async put(e,t,i){throw new Error("ProtonDrive upload is not supported yet")}}});var cR={};xn(cR,{LocalDriver:()=>q1});async function va(){if(typeof process<"u"&&process.release?.name==="node"&&!zt)try{zt=await import("fs/promises"),ar=await import("path")}catch{}}var zt,ar,q1,lR=j(()=>{"use strict";Be();zt=null,ar=null;q1=class{async list(e,t){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");let i=[];try{i=await zt.readdir(t,{withFileTypes:!0})}catch{return[]}return await Promise.all(i.map(async s=>{let o=s.isDirectory(),a=0,c=new Date;try{let l=await zt.stat(ar.join(t,s.name));a=l.size,c=l.mtime}catch{}return{name:s.name,size:o?0:a,is_dir:o,created:c.toISOString(),modified:c.toISOString(),sign:"",type:X(s.name,o)}}))}async get(e,t){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");let i=await zt.stat(t),n=i.isDirectory(),s=t.split(/[\\/]+/).filter(Boolean).pop()||"root";return{name:s,size:n?0:i.size,is_dir:n,created:i.ctime?.toISOString()||i.mtime.toISOString(),modified:i.mtime.toISOString(),sign:"",type:X(s,n)}}async mkdir(e,t){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");await zt.mkdir(t,{recursive:!0})}async rename(e,t,i){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");let n=ar.join(ar.dirname(t),i);await zt.rename(t,n)}async remove(e,t,i){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");for(let n of i){let s=ar.join(t,n);await zt.rm(s,{recursive:!0,force:!0})}}async move(e,t,i,n,s){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");for(let o of i){let a=ar.join(n,o),c=ar.join(s,o);await zt.mkdir(ar.dirname(c),{recursive:!0}),await zt.rename(a,c)}}async copy(e,t,i,n,s){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");for(let o of i){let a=ar.join(n,o),c=ar.join(s,o);await zt.mkdir(ar.dirname(c),{recursive:!0}),await zt.cp(a,c,{recursive:!0})}}async put(e,t,i){if(await va(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");await zt.mkdir(ar.dirname(t),{recursive:!0}),await zt.writeFile(t,i)}}});var dR={};xn(dR,{Client:()=>tre,FTPDriver:()=>Xte,SFTPClient:()=>Zte,SFTPDriver:()=>Yte,createPool:()=>rre,default:()=>ire,normalizeSFTPAddition:()=>Wte,parseAddress:()=>ere});var Yte,Wte,Xte,Zte,ere,tre,rre,ire,uR=j(()=>{Yte=class{constructor(){throw new Error("[Edge/Serverless] SFTP driver requires full Node.js runtime")}},Wte=r=>r,Xte=class{constructor(){throw new Error("[Edge/Serverless] FTP driver requires full Node.js runtime")}},Zte=class{constructor(){throw new Error("[Edge/Serverless] SFTP client requires full Node.js runtime")}},ere=()=>({host:"127.0.0.1",port:22}),tre=class{constructor(){throw new Error("[Edge/Serverless] ssh2 is not available in edge/serverless runtime")}},rre=()=>{throw new Error("[Edge/Serverless] mysql2 is not available in edge/serverless runtime")},ire={}});var fR={};xn(fR,{Client:()=>lre,FTPDriver:()=>ore,SFTPClient:()=>are,SFTPDriver:()=>nre,createPool:()=>dre,default:()=>ure,normalizeSFTPAddition:()=>sre,parseAddress:()=>cre});var nre,sre,ore,are,cre,lre,dre,ure,AR=j(()=>{nre=class{constructor(){throw new Error("[Edge/Serverless] SFTP driver requires full Node.js runtime")}},sre=r=>r,ore=class{constructor(){throw new Error("[Edge/Serverless] FTP driver requires full Node.js runtime")}},are=class{constructor(){throw new Error("[Edge/Serverless] SFTP client requires full Node.js runtime")}},cre=()=>({host:"127.0.0.1",port:22}),lre=class{constructor(){throw new Error("[Edge/Serverless] ssh2 is not available in edge/serverless runtime")}},dre=()=>{throw new Error("[Edge/Serverless] mysql2 is not available in edge/serverless runtime")},ure={}});var qi={};xn(qi,{copyItems:()=>EA,flushPendingDriverState:()=>Jt,getDriver:()=>lt,getItem:()=>Di,getOrCreateDriver:()=>gR,listItems:()=>Zt,makeDirectory:()=>xA,moveItems:()=>Od,putItem:()=>Tn,removeItems:()=>ka,renameItem:()=>CA,scheduleStoragePersistence:()=>pR});async function fre(){if(!O1){let{LocalDriver:r}=await Promise.resolve().then(()=>(lR(),cR));O1=new r}return O1}async function Are(r){if(typeof process<"u"&&process.release?.name==="node"){let{SFTPDriver:e}=await Promise.resolve().then(()=>(uR(),dR)),t=new e(ye(r));return await t.init?.(),t}throw new Error("SFTP storage driver requires Node.js runtime (raw TCP sockets not available in Cloudflare Workers)")}async function hre(r){if(typeof process<"u"&&process.release?.name==="node"){let{FTPDriver:e}=await Promise.resolve().then(()=>(AR(),fR)),t=new e(ye(r));return await t.init?.(),t}throw new Error("FTP storage driver requires Node.js runtime (raw TCP sockets not available in Cloudflare Workers)")}function mre(r,e){if(qd.size>=pre){let t=qd.keys().next().value;t!==void 0&&qd.delete(t)}qd.set(r,e)}async function gR(r,e,t){let i=r.get(e);if(i)return i;let n=t();r.set(e,n);try{return await n}catch(s){throw r.get(e)===n&&r.delete(e),s}}function ye(r){let e=r?.addition;return e?typeof e=="string"?JSON.parse(e||"{}"):e:{}}async function hR(r,e){let t=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");if(t==="local"){if(typeof process<"u"&&process.release?.name==="node")return fre();throw new Error("Local storage driver requires Node.js runtime (not available in Cloudflare Workers)")}if(t==="sftp")return Are(e);if(t==="ftp")return hre(e);if(!e)throw new Error("failed get driver: storage config not found for driver "+r);let i;if(t==="onedriveapp"){i=new mh(ye(e));try{await i.init?.()}catch(n){throw console.error("onedrive_app init failed:",n),n}}else if(t==="onedrive"||t==="onedrivesb"||t==="onedrivebusiness"||t==="onedrivesharepoint"||t.startsWith("onedrive")&&t!=="onedriveapp"){i=new ph(ye(e),async n=>{try{let s=await ne(),o=(s.storages||[]).find(c=>c.id===e?.id);if(!o)return;let a=typeof o.addition=="string"?JSON.parse(o.addition||"{}"):o.addition||{};a.refresh_token=n,o.addition=JSON.stringify(a),await fe(s)}catch(s){console.warn("[Onedrive] failed to persist refresh token:",s)}});try{await i.init?.()}catch(n){throw console.error("onedrive init failed:",n),n}}else if(t==="aliyundrive"||t==="aliyundriveopen"||t==="aliyundriveshare"||t==="aliyun"||t==="aliyundriveshare2open"||t==="aliyundriveoauth2"||t.includes("aliyun"))i=new wh(ye(e)),await i.init?.();else if(t==="googlephoto"||t==="googlephotos"||t==="gphoto"||t==="google_photo")i=new dg(ye(e)),await i.init?.();else if(t==="googledrive"||t==="gdrive"||t==="google"||t.startsWith("google"))i=new Ch(ye(e)),await i.init?.();else if(t==="quark"||t==="quarkuc"||t==="uc"||t==="quarkcookie")i=new Bh(ye(e)),await i.init?.();else if(t==="115"||t==="115cloud"||t==="115open"||t==="115netdisk")i=new vh(ye(e)),await i.init?.();else if(t==="cloudreve"||t==="cloudrevev3"||t==="cloudreve_v3"){let n=ye(e);i=new Qh(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookie=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[cloudreve] failed to persist cookie:",o)}}),await i.init?.()}else if(t==="cloudrevev4"||t==="cloudreve_v4")i=new Sh(ye(e)),await i.init?.();else if(t==="openlistshare"||t==="openlist_share")i=new Th(ye(e)),await i.init?.();else if(t==="openlist")i=new Fh(ye(e)),await i.init?.();else if(t==="teldrive")i=new Rh(ye(e)),await i.init?.();else if(t==="mediafire")i=new qh(ye(e)),await i.init?.();else if(t==="githubreleases"||t==="github_releases")i=new Mh(ye(e)),await i.init?.();else if(t==="cnbreleases"||t==="cnb_releases")i=new Hh(ye(e)),await i.init?.();else if(t==="kodbox"||t==="kodo")i=new Gh(ye(e)),await i.init?.();else if(t==="ipfs"||t==="ipfsapi"||t==="ipfs_api")i=new Jh(ye(e)),await i.init?.();else if(t==="lenovonasshare"||t==="lenovonas_share")i=new $h(ye(e)),await i.init?.();else if(t==="misskey")i=new Yh(ye(e)),await i.init?.();else if(t==="doubao"||t==="doubaonew"||t==="doubao_new"||t==="doubaoshare"||t==="doubao_share")i=new Xh(ye(e)),await i.init?.();else if(t==="quarkopen"||t==="quark_open"||t==="quarkoa")i=new eg(ye(e)),await i.init?.();else if(t==="quarktv"||t==="uctv"||t==="quark_uc_tv")i=new rg(ye(e)),await i.init?.();else if(t==="123open"||t==="123_open"||t==="123cloudopen")i=new ng(ye(e)),await i.init?.();else if(t==="teambition"||t==="tb")i=new og(ye(e)),await i.init?.();else if(t==="neteasemusic"||t==="netease"||t==="neteasecloudmusic"||t==="netease_music")i=new pg(ye(e)),await i.init?.();else if(t==="halalcloudopen"||t==="halalcloud_open"||t==="halalcloudopenapi"){let n=ye(e);i=new Ig(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[HalalCloud] failed to persist refresh_token:",o)}}),await i.init?.()}else if(t==="degoo"){let n=ye(e);i=new hg(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};s.accessToken&&(c.access_token=s.accessToken),s.refreshToken&&(c.refresh_token=s.refreshToken),a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[degoo] failed to persist tokens:",o)}}),await i.init?.()}else if(t==="febbox"||t==="febboxpan"){let n=ye(e);i=new fg(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[febbox] failed to persist refresh_token:",o)}}),await i.init?.()}else if(t==="chaoxing"||t==="chaoxinggroupdrive"||t==="chaoxinggroup"||t.startsWith("chaoxing")){let n=ye(e);i=new cg(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookie=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[chaoxing] failed to persist cookie:",o)}}),await i.init?.()}else if(t==="123pan"||t==="123"||t==="123panshare"||t.startsWith("123")){let n=ye(e);i=new xg(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[123Pan] failed to persist access_token:",o)}}),await i.init?.()}else if(t==="baiduphoto"||t==="baidu_photo"||t==="baiduphotos")i=new kg(ye(e)),await i.init?.();else if(t==="baidunetdisk"||t==="baidu"||t==="baiduyun"||t==="baidushare"||t.startsWith("baidu")){let n=ye(e);i=new Eg(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s.access_token,c.refresh_token=s.refresh_token,a.addition=JSON.stringify(Pl(c)),await fe(o)}catch(o){console.warn("[baidu_netdisk] failed to persist token:",o)}}),await i.init?.()}else if(t==="115open"||t==="115"||t==="115pan"||t==="115cloud"||t.startsWith("115")){let n=ye(e);i=new Qg(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s.access_token,c.refresh_token=s.refresh_token,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[115open] failed to persist token:",o)}}),await i.init?.()}else if(t==="github"||t==="githubapi"||t==="github_api"){let n=ye(e);i=new Fg(n),await i.init?.()}else if(t==="thunderexpert"||t==="thunderbrowserexpert"||t==="thunderxexpert"||t.includes("thunder")&&t.includes("expert")||t.includes("xunlei")&&t.includes("expert")){let n=ye(e);i=new yp(n,async s=>{try{s.device_id&&(n.device_id=s.device_id),s.refresh_token&&(n.refresh_token=s.refresh_token),s.captcha_token&&(n.captcha_token=s.captcha_token),e.addition=JSON.stringify(n);let o=await ne(),a=(o.storages||[]).find(c=>c.id===e?.id);if(a){let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};s.refresh_token&&(c.refresh_token=s.refresh_token),s.captcha_token&&(c.captcha_token=s.captcha_token),s.device_id&&(c.device_id=s.device_id),a.addition=JSON.stringify(c),await fe(o)}}catch(o){console.warn("[thunderexpert] failed to persist token:",o)}}),await i.init?.()}else if(t==="thunder"||t==="xunlei"||t==="thunderbrowser"||t==="thunderx"||t.includes("thunder")||t.includes("xunlei")){let n=ye(e);i=new $u(n,async s=>{try{s.device_id&&(n.device_id=s.device_id),s.refresh_token&&(n.refresh_token=s.refresh_token),s.captcha_token&&(n.captcha_token=s.captcha_token),e.addition=JSON.stringify(n);let o=await ne(),a=(o.storages||[]).find(c=>c.id===e?.id);if(a){let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};s.refresh_token&&(c.refresh_token=s.refresh_token),s.captcha_token&&(c.captcha_token=s.captcha_token),s.device_id&&(c.device_id=s.device_id),a.addition=JSON.stringify(c),await fe(o)}}catch(o){console.warn("[thunder] failed to persist token:",o)}}),await i.init?.()}else if(t==="lanzou"||t==="lanzoupan"||t==="ilanzou"||t==="lanzoui"||t==="lanzous"){let n=ye(e);i=new Bp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookie=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Lanzou] failed to persist cookie:",o)}}),await i.init?.()}else if(t==="189tv"||t==="cloud189tv"||t==="189tvcloud"||t==="189_tv"){let n=ye(e);i=new Qp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[189TV] failed to persist access_token:",o)}}),await i.init?.()}else if(t==="189"||t==="189cloud"||t==="cloud189"||t==="ctyun"||t==="189pan"||t==="189cloudpc"||t==="189cloudapp"||t.startsWith("189")||t.includes("cloud189")){let n=ye(e);i=new Sp(n),await i.init?.()}else if(t==="webdav"||t==="webdavdriver"){let n=ye(e);i=new Fp(n),await i.init?.()}else if(t==="s3"||t==="doge"||t==="dogecloud"||t==="minio"||t==="ceph"||t==="aws"||t==="r2"||t==="b2"||t==="cos"||t==="oss"||t==="kodo"){let n=ye(e);i=new Gp(n,e.driver||"S3"),await i.init?.()}else if(t==="wopan"||t==="unicom"||t==="unicomcloud"||t==="woyun"||t==="chinaunicom"){let n=ye(e);i=new Np(n,async(s,o)=>{try{let a=await ne(),c=(a.storages||[]).find(d=>d.id===e?.id);if(!c)return;let l=typeof c.addition=="string"?JSON.parse(c.addition||"{}"):c.addition||{};l.access_token=s,l.refresh_token=o,c.addition=JSON.stringify($C(l)),await fe(a)}catch(a){console.warn("[WoPan] failed to persist tokens:",a)}}),await i.init?.()}else if(t==="weiyun"||t==="tencentweiyun"||t==="txweiyun"||t.includes("weiyun")){let n=ye(e);i=new $p(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookies=s,a.addition=JSON.stringify(iE(c)),await fe(o)}catch(o){console.warn("[WeiYun] failed to persist cookies:",o)}}),await i.init?.()}else if(t==="pikpak"||t==="pikpakshare"||t.includes("pikpak")){let n=ye(e);i=new Yp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s.refreshToken,s.captchaToken&&(c.captcha_token=s.captchaToken),a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[PikPak] failed to persist tokens:",o)}}),await i.init?.()}else if(t==="seafile"||t.includes("seafile")){let n=ye(e);i=new Xp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Seafile] failed to persist token:",o)}}),await i.init?.()}else if(t==="yandex"||t==="yandexdisk"||t==="yandexdrive"||t.includes("yandex")){let n=ye(e);i=new em(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s.refreshToken,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Yandex] failed to persist token:",o)}}),await i.init?.()}else if(t==="terabox"||t==="dubox"||t.includes("terabox")){let n=ye(e);i=new rm(n),await i.init?.()}else if(t==="mediatrack"||t==="fenmiao"||t.includes("mediatrack")){let n=ye(e);i=new nm(n),await i.init?.()}else if(t==="alias"||t.includes("alias")){let n=ye(e);i=new sm(n),await i.init?.()}else if(t==="dropbox"||t.includes("dropbox")){let n=ye(e);i=new am(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s.accessToken,c.refresh_token=s.refreshToken,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Dropbox] failed to persist token:",o)}}),await i.init?.()}else if(t==="wps"||t.includes("wps")||t.includes("kdocs")){let n=ye(e);i=new lm(n),await i.init?.()}else if(t==="mopan"||t==="mobilecloud"||t==="cmcc"||t==="chinamobile"||t.includes("mopan")){let n=ye(e);i=new Mp(n,async(s,o)=>{try{let a=await ne(),c=(a.storages||[]).find(u=>u.id===e?.id);if(!c)return;let l=typeof c.addition=="string"?JSON.parse(c.addition||"{}"):c.addition||{};l.device_info=s;let d=o.replace(/^Bearer\s+/i,"");l.token=d,c.addition=JSON.stringify(l),await fe(a)}catch(a){console.warn("[MoPan] failed to persist tokens:",a)}}),await i.init?.()}else if(t==="139"||t==="139yun"||t==="caiyun"||t==="hecaiyun"||t.includes("139")){let n=ye(e);i=new um(n),await i.init?.()}else if(t==="mega"||t==="meganz"||t.includes("mega")){let n=ye(e);i=new Am(n),await i.init?.()}else if(t==="115share"||t==="115sharelink"||t.includes("115")&&t.includes("share")){let n=ye(e);i=new gm(n),await i.init?.()}else if(t==="123share"||t==="123panshare"||t==="123link"||t.includes("123")&&t.includes("share")){let n=ye(e);i=new mm(n),await i.init?.()}else if(t==="aliyundriveshare"||t==="aliyunshare"||t==="alishare"||t.includes("ali")&&t.includes("share")){let n=ye(e);i=new Im(n),await i.init?.()}else if(t==="onedrivesharelink"||t==="onedriveshare"||t==="sharepointshare"||t.includes("onedrive")&&t.includes("share")){let n=ye(e);i=new xm(n),await i.init?.()}else if(t==="pikpakshare"||t.includes("pikpak")&&t.includes("share")){let n=ye(e);i=new Em(n),await i.init?.()}else if(t==="smb"||t==="samba"||t==="cifs"||t.includes("smb")){let n=ye(e);i=new Bm(n),await i.init?.()}else if(t==="crypt"){let n=ye(e);i=new Sm(n),await i.init?.()}else if(t==="virtual"){let n=ye(e);i=new Dm(n)}else if(t==="alistv3"||t==="alist"||t==="alistv2"){let n=ye(e);i=new Qm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[alist_v3] failed to persist token:",o)}}),await i.init?.()}else if(t==="urltree"||t==="urlstree"){let n=ye(e);i=new _m(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.url_structure=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[url_tree] failed to persist structure:",o)}}),await i.init?.()}else if(t==="strm"){let n=ye(e);i=new Fm(n),await i.init?.()}else if(t==="chunk"){let n=ye(e);i=new Pm(n),await i.init?.()}else if(t==="azureblob"||t==="azure"||t==="azblob"){let n=ye(e);i=new Tm(n),await i.init?.()}else if(t==="uss"||t==="upyun"){let n=ye(e);i=new Um(n),await i.init?.()}else if(t==="autoindex"||t==="nginxautoindex"){let n=ye(e);i=new uy(n),await i.init?.()}else if(t==="protondrive"||t==="proton"){let n=ye(e);i=new KI(n),await i.init?.()}else if(t==="alidoc"||t==="dingtalkdoc"){let n=ye(e);i=new Nm(n),await i.init?.()}else if(t==="emby"||t==="jellyfin"){let n=ye(e);i=new Om(n),await i.init?.()}else if(t==="bunnystorage"||t==="bunnycdn"||t==="bunny"){let n=ye(e);i=new Hm(n),await i.init?.()}else if(t==="cloudflareimgbed"||t==="cfimgbed"||t==="cloudflareimage"){let n=ye(e);i=new zm(n),await i.init?.()}else if(t==="guangyapan"||t==="guangya"){let n=ye(e);i=new Jm(n,async(s,o)=>{try{let a=await ne(),c=(a.storages||[]).find(d=>d.id===e?.id);if(!c)return;let l=typeof c.addition=="string"?JSON.parse(c.addition||"{}"):c.addition||{};l.access_token=s,o&&(l.refresh_token=o),c.addition=JSON.stringify(l),await fe(a)}catch(a){console.warn("[GuangYaPan] failed to persist tokens:",a)}}),await i.init?.()}else throw new Error("failed get driver: unsupported driver '"+r+"'");return i}async function lt(r,e){if((r||"").toLowerCase().replace(/[^a-z0-9]/g,"")==="local")return hR(r,e);if(!e)throw new Error("failed get driver: storage config not found for driver "+r);let i=`${e.id}_${e.modified}`,n=qd.get(i);return n||gR(gre,i,async()=>{let s=qd.get(i);if(s)return s;let o=await hR(r,e);return mre(i,o),o})}function yre(r){let e=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");return e==="189"||e==="189cloud"||e==="cloud189"||e==="ctyun"||e==="189pan"}async function pR(r,e){if(r)try{r(e);return}catch{}await e}async function Ire(r,e){let t=String(r?.id||"");if(!t)return;let n=(GI.get(t)||Promise.resolve()).catch(()=>{}).then(async()=>{let s=await ne(),o=(s.storages||[]).find(c=>String(c.id)===t);if(!o)return;let a=typeof o.addition=="string"?JSON.parse(o.addition||"{}"):o.addition||{};a.cookies!==void 0||mR(r?.driver)?a.cookies=e:a.cookie=e,o.addition=JSON.stringify(a),String(r?.id)===t&&(r.addition=o.addition),await fe(s)});GI.set(t,n);try{await n}finally{GI.get(t)===n&&GI.delete(t)}}function mR(r){let e=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");return e==="weiyun"||e==="tencentweiyun"||e==="txweiyun"||e.includes("weiyun")}async function Jt(r,e,t,i){if(!yre(r)&&!mR(r))return;let s=t.consumePendingCookie?.call(t);if(!s)return;let o=Ire(e,s).catch(a=>{console.warn(`[${r}] failed to persist cookie:`,a)});await pR(i?.waitUntil,o)}async function Zt(r,e){let t=await tt(r,e?.env),i=[],n="Virtual";if(t.storage){n=t.storage.driver;try{let c=await lt(n,t.storage);try{i=await c.list(r,t.physical)}finally{await Jt(n,t.storage,c,e)}if(t.storage.status!=="work"){t.storage.status="work";let l=await ne(e?.env),d=(l.storages||[]).find(u=>u.id===t.storage?.id);d&&(d.status="work",await fe(l,e?.env))}}catch(c){try{let l=await ne(e?.env),d=(l.storages||[]).find(u=>u.id===t.storage?.id);d&&(d.status=c.message||String(c),await fe(l,e?.env))}catch(l){console.warn("Failed to persist storage status:",l)}throw c}}else if(!t.isVirtual)throw new Error("failed get storage: storage not found");let o=((await ne(e?.env)).storages||[]).filter(c=>!c.disabled),a=t.cleanPath;return o.forEach(c=>{let l="/"+(c.mount_path||"").split("/").filter(Boolean).join("/");if(l===a||l==="/")return;let d=a==="/"?"/":a+"/";if(l.startsWith(d)){let u=l.slice(d.length).split("/").filter(Boolean)[0];u&&!i.some(f=>f.name===u)&&i.push({name:u,size:0,is_dir:!0,modified:c.modified||new Date().toISOString(),sign:"",type:1})}}),i.forEach(c=>{c.type||(c.type=X(c.name,c.is_dir))}),{content:i,provider:n,storage:t.storage}}async function Di(r,e){let t=await tt(r,e?.env);if(t.isVirtual)return{item:{name:t.cleanPath.split("/").filter(Boolean).pop()||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1},provider:"Virtual",rawUrl:""};if(t.storage&&t.relative==="/"){let o=t.cleanPath.split("/").filter(Boolean).pop()||"root",a=ye(t.storage);return{item:{name:o,size:0,is_dir:!0,modified:t.storage.modified||new Date().toISOString(),sign:String(a.root_folder_id||""),type:1,raw_url:""},provider:t.storage.driver,rawUrl:`/api/p${r.startsWith("/")?"":"/"}${r}`}}let i=t.storage?t.storage.driver:"Local",n=await lt(i,t.storage),s;try{s=await n.get(r,t.physical)}finally{await Jt(i,t.storage,n,e)}return s.type||(s.type=X(s.name,s.is_dir)),{item:s,provider:i,rawUrl:`/api/p${r.startsWith("/")?"":"/"}${r}`}}async function xA(r,e){let t=await tt(r,e?.env);if(t.isVirtual)throw new Error("failed get storage: storage not found");let i=await lt(t.storage.driver,t.storage);try{await i.mkdir(r,t.physical)}finally{await Jt(t.storage.driver,t.storage,i,e)}}async function CA(r,e,t){let i=await tt(r,t?.env);if(i.isVirtual)throw new Error("failed get storage: storage not found");let n=await lt(i.storage.driver,i.storage);try{await n.rename(r,i.physical,e)}finally{await Jt(i.storage.driver,i.storage,n,t)}}async function ka(r,e,t){for(let i of e){let n=`${r}/${i}`,s=await tt(n,t?.env);if(s.isVirtual)throw new Error("failed get storage: storage not found");let o=await lt(s.storage.driver,s.storage);try{await o.remove(n,s.physical,[i])}finally{await Jt(s.storage.driver,s.storage,o,t)}}}async function Od(r,e,t,i){for(let n of t){let s=`${r}/${n}`,o=`${e}/${n}`,a=await tt(s,i?.env),c=await tt(o,i?.env);if(a.isVirtual||c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(a.storage.driver,a.storage);try{await l.move(r,e,[n],a.physical,c.physical)}finally{await Jt(a.storage.driver,a.storage,l,i)}}}async function EA(r,e,t,i){for(let n of t){let s=`${r}/${n}`,o=`${e}/${n}`,a=await tt(s,i?.env),c=await tt(o,i?.env);if(a.isVirtual||c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(a.storage.driver,a.storage);try{await l.copy(r,e,[n],a.physical,c.physical)}finally{await Jt(a.storage.driver,a.storage,l,i)}}}async function Tn(r,e,t){let i=await tt(r,t?.env);if(i.isVirtual)throw new Error("failed get storage: storage not found");let n=await lt(i.storage.driver,i.storage);try{await n.put(r,i.physical,e)}finally{await Jt(i.storage.driver,i.storage,n,t)}}var O1,qd,gre,GI,pre,Yt=j(()=>{"use strict";Ve();Be();JS();eD();nD();dD();gD();wD();ED();vD();SD();FD();UD();ND();OD();LD();KD();zD();jD();VD();ZD();r3();s3();c3();d3();p3();I3();C3();b3();N3();$3();eQ();oQ();fQ();pQ();IQ();N_();K_();Z_();s8();l8();Q8();H8();Y8();s4();c4();d4();f4();h4();p4();m4();I4();C4();B4();v4();S4();_4();P4();U4();N4();q4();H4();K4();G4();J4();Y4();W4();eF();tF();nF();aF();AF();yF();vF();KP();aR();O1=null;qd=new Map,gre=new Map,GI=new Map,pre=100});var IR,wre,xre,Cre,Ere,yR,zI,M1,wR=j(()=>{$a();IR={name:"HMAC",hash:"SHA-256"},wre=async r=>{let e=typeof r=="string"?new TextEncoder().encode(r):r;return await crypto.subtle.importKey("raw",e,IR,!1,["sign","verify"])},xre=async(r,e,t)=>{try{let i=atob(r),n=new Uint8Array(i.length);for(let s=0,o=i.length;s<o;s++)n[s]=i.charCodeAt(s);return await crypto.subtle.verify(IR,t,n,new TextEncoder().encode(e))}catch{return!1}},Cre=/^[!#-:<>-[\]-~]+$/,Ere=/^[ !#-:<-[\]-~]*$/,yR=r=>{let e=0,t=r.length;for(;e<t;){let i=r.charCodeAt(e);if(i!==32&&i!==9)break;e++}for(;t>e;){let i=r.charCodeAt(t-1);if(i!==32&&i!==9)break;t--}return e===0&&t===r.length?r:r.slice(e,t)},zI=(r,e)=>{if(e&&r.indexOf(e)===-1)return{};let t=r.split(";"),i=Object.create(null);for(let n of t){let s=n.indexOf("=");if(s===-1)continue;let o=yR(n.substring(0,s));if(e&&e!==o||!Cre.test(o)||o in i)continue;let a=yR(n.substring(s+1));if(a.startsWith('"')&&a.endsWith('"')&&(a=a.slice(1,-1)),Ere.test(a)&&(i[o]=yl(a),e))break}return i},M1=async(r,e,t)=>{let i=Object.create(null),n=await wre(e);for(let[s,o]of Object.entries(zI(r,t))){let a=o.lastIndexOf(".");if(a<1)continue;let c=o.substring(0,a),l=o.substring(a+1);if(l.length!==44||!l.endsWith("="))continue;let d=await xre(l,c,n);i[s]=d?c:!1}return i}});var JI,L1,xR=j(()=>{wR();JI=(r,e,t)=>{let i=r.req.raw.headers.get("Cookie");if(typeof e=="string"){if(!i)return;let s=e;return t==="secure"?s="__Secure-"+e:t==="host"&&(s="__Host-"+e),zI(i,s)[s]}return i?zI(i):{}},L1=async(r,e,t,i)=>{let n=r.req.raw.headers.get("Cookie");if(typeof t=="string"){if(!n)return;let o=t;return i==="secure"?o="__Secure-"+t:i==="host"&&(o="__Host-"+t),(await M1(n,e,o))[o]}return n?await M1(n,e):{}}});var H1,K1,Bre,G1,z1=j(()=>{H1=r=>G1(r.replace(/_|-/g,e=>({_:"/","-":"+"})[e]??e)),K1=r=>Bre(r).replace(/\/|\+/g,e=>({"/":"_","+":"-"})[e]??e),Bre=r=>{let e="",t=new Uint8Array(r);for(let i=0,n=t.length;i<n;i++)e+=String.fromCharCode(t[i]);return btoa(e)},G1=r=>{let e=atob(r),t=new Uint8Array(new ArrayBuffer(e.length)),i=e.length/2;for(let n=0,s=e.length-1;n<=i;n++,s--)t[n]=e.charCodeAt(n),t[s]=e.charCodeAt(s);return t}});var Sa,J1=j(()=>{Sa=(r=>(r.HS256="HS256",r.HS384="HS384",r.HS512="HS512",r.RS256="RS256",r.RS384="RS384",r.RS512="RS512",r.PS256="PS256",r.PS384="PS384",r.PS512="PS512",r.ES256="ES256",r.ES384="ES384",r.ES512="ES512",r.EdDSA="EdDSA",r))(Sa||{})});var bre,CR,vre,ER=j(()=>{bre={deno:"Deno",bun:"Bun",workerd:"Cloudflare-Workers",node:"Node.js"},CR=()=>{let r=globalThis;if(typeof navigator<"u"&&typeof navigator.userAgent=="string"){for(let[t,i]of Object.entries(bre))if(vre(i))return t}return typeof r?.EdgeRuntime=="string"?"edge-light":r?.fastly!==void 0?"fastly":r?.process?.release?.name==="node"?"node":"other"},vre=r=>navigator.userAgent.startsWith(r)});var BR,j1,$1,jc,bR,vR,kR,jI,V1,SR,DR,QR,_R,FR,PR,Ld,Y1=j(()=>{BR=class extends Error{constructor(r){super(`${r} is not an implemented algorithm`),this.name="JwtAlgorithmNotImplemented"}},j1=class extends Error{constructor(){super('JWT verification requires "alg" option to be specified'),this.name="JwtAlgorithmRequired"}},$1=class extends Error{constructor(r,e){super(`JWT algorithm mismatch: expected "${r}", got "${e}"`),this.name="JwtAlgorithmMismatch"}},jc=class extends Error{constructor(r){super(`invalid JWT token: ${r}`),this.name="JwtTokenInvalid"}},bR=class extends Error{constructor(r){super(`token (${r}) is being used before it's valid`),this.name="JwtTokenNotBefore"}},vR=class extends Error{constructor(r){super(`token (${r}) expired`),this.name="JwtTokenExpired"}},kR=class extends Error{constructor(r,e){super(`Invalid "iat" claim, must be a valid number lower than "${r}" (iat: "${e}")`),this.name="JwtTokenIssuedAt"}},jI=class extends Error{constructor(r,e){super(`expected issuer "${r}", got ${e?`"${e}"`:"none"} `),this.name="JwtTokenIssuer"}},V1=class extends Error{constructor(r){super(`jwt header is invalid: ${JSON.stringify(r)}`),this.name="JwtHeaderInvalid"}},SR=class extends Error{constructor(r){super(`required "kid" in jwt header: ${JSON.stringify(r)}`),this.name="JwtHeaderRequiresKid"}},DR=class extends Error{constructor(r){super(`symmetric algorithm "${r}" is not allowed for JWK verification`),this.name="JwtSymmetricAlgorithmNotAllowed"}},QR=class extends Error{constructor(r,e){super(`algorithm "${r}" is not in the allowed list: [${e.join(", ")}]`),this.name="JwtAlgorithmNotAllowed"}},_R=class extends Error{constructor(r){super(`token(${r}) signature mismatched`),this.name="JwtTokenSignatureMismatched"}},FR=class extends Error{constructor(r){super(`required "aud" in jwt payload: ${JSON.stringify(r)}`),this.name="JwtPayloadRequiresAud"}},PR=class extends Error{constructor(r,e){super(`expected audience "${Array.isArray(r)?r.join(", "):r}", got "${e}"`),this.name="JwtTokenAudience"}},Ld=(r=>(r.Encrypt="encrypt",r.Decrypt="decrypt",r.Sign="sign",r.Verify="verify",r.DeriveKey="deriveKey",r.DeriveBits="deriveBits",r.WrapKey="wrapKey",r.UnwrapKey="unwrapKey",r))(Ld||{})});var $c,TR,W1=j(()=>{$c=new TextEncoder,TR=new TextDecoder});async function RR(r,e,t){let i=qR(e),n=await kre(r,i);return await crypto.subtle.sign(i,n,t)}async function NR(r,e,t,i){let n=qR(e),s=await Sre(r,n);return await crypto.subtle.verify(n,s,t,i)}function X1(r){return G1(r.replace(/-+(BEGIN|END).*?-+/g,"").replace(/\s/g,""))}async function kre(r,e){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(OR(r)){if(r.type!=="private"&&r.type!=="secret")throw new Error(`unexpected key type: CryptoKey.type is ${r.type}, expected private or secret`);return r}let t=[Ld.Sign];return typeof r=="object"?await crypto.subtle.importKey("jwk",r,e,!1,t):r.includes("PRIVATE")?await crypto.subtle.importKey("pkcs8",X1(r),e,!1,t):await crypto.subtle.importKey("raw",$c.encode(r),e,!1,t)}async function Sre(r,e){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(OR(r)){if(r.type==="public"||r.type==="secret")return r;r=await UR(r)}if(typeof r=="string"&&r.includes("PRIVATE")){let i=await crypto.subtle.importKey("pkcs8",X1(r),e,!0,[Ld.Sign]);r=await UR(i)}let t=[Ld.Verify];return typeof r=="object"?await crypto.subtle.importKey("jwk",r,e,!1,t):r.includes("PUBLIC")?await crypto.subtle.importKey("spki",X1(r),e,!1,t):await crypto.subtle.importKey("raw",$c.encode(r),e,!1,t)}async function UR(r){if(r.type!=="private")throw new Error(`unexpected key type: ${r.type}`);if(!r.extractable)throw new Error("unexpected private key is unextractable");let e=await crypto.subtle.exportKey("jwk",r),{kty:t}=e,{alg:i,e:n,n:s}=e,{crv:o,x:a,y:c}=e;return{kty:t,alg:i,e:n,n:s,crv:o,x:a,y:c,key_ops:[Ld.Verify]}}function qR(r){switch(r){case"HS256":return{name:"HMAC",hash:{name:"SHA-256"}};case"HS384":return{name:"HMAC",hash:{name:"SHA-384"}};case"HS512":return{name:"HMAC",hash:{name:"SHA-512"}};case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"RS384":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case"RS512":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case"PS256":return{name:"RSA-PSS",hash:{name:"SHA-256"},saltLength:32};case"PS384":return{name:"RSA-PSS",hash:{name:"SHA-384"},saltLength:48};case"PS512":return{name:"RSA-PSS",hash:{name:"SHA-512"},saltLength:64};case"ES256":return{name:"ECDSA",hash:{name:"SHA-256"},namedCurve:"P-256"};case"ES384":return{name:"ECDSA",hash:{name:"SHA-384"},namedCurve:"P-384"};case"ES512":return{name:"ECDSA",hash:{name:"SHA-512"},namedCurve:"P-521"};case"EdDSA":return{name:"Ed25519",namedCurve:"Ed25519"};default:throw new BR(r)}}function OR(r){return CR()==="node"&&crypto.webcrypto?r instanceof crypto.webcrypto.CryptoKey:r instanceof CryptoKey}var MR=j(()=>{ER();z1();Y1();W1()});function LR(r){if(typeof r=="object"&&r!==null){let e=r;return"alg"in e&&Object.values(Sa).includes(e.alg)&&(!("typ"in e)||e.typ==="JWT")}return!1}var Z1,Dre,e2,HR,t2,Qre,KR,r2,_re,GR=j(()=>{z1();J1();MR();Y1();W1();Z1=r=>K1($c.encode(JSON.stringify(r)).buffer).replace(/=/g,""),Dre=r=>K1(r).replace(/=/g,""),e2=r=>JSON.parse(TR.decode(H1(r)));HR=async(r,e,t="HS256")=>{let i=Z1(r),n;typeof e=="object"&&"alg"in e?(t=e.alg,n=Z1({alg:t,typ:"JWT",kid:e.kid})):n=Z1({alg:t,typ:"JWT"});let s=`${n}.${i}`,o=await RR(e,t,$c.encode(s)),a=Dre(o);return`${s}.${a}`},t2=async(r,e,t)=>{if(!t)throw new j1;let{alg:i,iss:n,nbf:s=!0,exp:o=!0,iat:a=!0,aud:c}=typeof t=="string"?{alg:t}:t;if(!i)throw new j1;let l=r.split(".");if(l.length!==3)throw new jc(r);let{header:d,payload:u}=r2(r);if(!LR(d))throw new V1(d);if(d.alg!==i)throw new $1(i,d.alg);let f=Math.floor(Date.now()/1e3);if(s&&u.nbf!==void 0&&(typeof u.nbf!="number"||!Number.isFinite(u.nbf)||u.nbf>f))throw new bR(r);if(o&&u.exp!==void 0&&(typeof u.exp!="number"||!Number.isFinite(u.exp)||u.exp<=f))throw new vR(r);if(a&&u.iat!==void 0&&(typeof u.iat!="number"||!Number.isFinite(u.iat)||f<u.iat))throw new kR(f,u.iat);if(n){if(!u.iss)throw new jI(n,null);if(typeof n=="string"&&u.iss!==n)throw new jI(n,u.iss);if(n instanceof RegExp&&!n.test(u.iss))throw new jI(n,u.iss)}if(c){if(!u.aud)throw new FR(u);if(!(Array.isArray(u.aud)?u.aud:[u.aud]).some(y=>c instanceof RegExp?c.test(y):typeof c=="string"?y===c:Array.isArray(c)&&c.includes(y)))throw new PR(c,u.aud)}let h=r.substring(0,r.lastIndexOf("."));if(!await NR(e,i,H1(l[2]),$c.encode(h)))throw new _R(r);return u},Qre=[Sa.HS256,Sa.HS384,Sa.HS512],KR=async(r,e,t)=>{let i=e.verification||{},n=_re(r);if(!LR(n))throw new V1(n);if(!n.kid)throw new SR(n);if(Qre.includes(n.alg))throw new DR(n.alg);if(!e.allowedAlgorithms.includes(n.alg))throw new QR(n.alg,e.allowedAlgorithms);let s=e.keys?[...e.keys]:void 0;if(e.jwks_uri){let a=await fetch(e.jwks_uri,t);if(!a.ok)throw new Error(`failed to fetch JWKS from ${e.jwks_uri}`);let c=await a.json();if(!c.keys)throw new Error('invalid JWKS response. "keys" field is missing');if(!Array.isArray(c.keys))throw new Error('invalid JWKS response. "keys" field is not an array');s??=[],s.push(...c.keys)}else if(!s)throw new Error('verifyWithJwks requires options for either "keys" or "jwks_uri" or both');let o=s.find(a=>a.kid===n.kid);if(!o)throw new jc(r);if(o.alg&&o.alg!==n.alg)throw new $1(o.alg,n.alg);return await t2(r,o,{alg:n.alg,...i})},r2=r=>{let e=r.split(".");if(e.length!==3)throw new jc(r);try{let t=e2(e[0]),i=e2(e[1]);return{header:t,payload:i}}catch{throw new jc(r)}},_re=r=>{let e=r.split(".");if(e.length!==3)throw new jc(r);try{return e2(e[0])}catch{throw new jc(r)}}});var Hd,zR=j(()=>{GR();Hd={sign:HR,verify:t2,decode:r2,verifyWithJwks:KR}});function i2(r){let e=(r.realm??r.ctx.req.url).replace(/"/g,'\\"'),t=r.errDescription.replace(/"/g,'\\"');return new Response("Unauthorized",{status:401,statusText:r.statusText,headers:{"WWW-Authenticate":`Bearer realm="${e}",error="${r.error}",error_description="${t}"`}})}var JR,jR,uo,$R,fo,VR=j(()=>{xR();ax();zR();R0();JR=r=>{let e=r.verification||{};if(!r||!r.secret)throw new Error('JWT auth middleware requires options for "secret"');if(!r.alg)throw new Error('JWT auth middleware requires options for "alg"');if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");return async function(i,n){let s=r.headerName||"Authorization",o=i.req.raw.headers.get(s),a;if(o){let d=o.split(/\s+/);if(d.length!==2||d[0].toLowerCase()!=="bearer"){let u="invalid credentials structure";throw new xu(401,{message:u,res:i2({ctx:i,error:"invalid_request",errDescription:u,realm:r.realm})})}else a=d[1]}else r.cookie&&(typeof r.cookie=="string"?a=JI(i,r.cookie):r.cookie.secret?r.cookie.prefixOptions?a=await L1(i,r.cookie.secret,r.cookie.key,r.cookie.prefixOptions):a=await L1(i,r.cookie.secret,r.cookie.key):r.cookie.prefixOptions?a=JI(i,r.cookie.key,r.cookie.prefixOptions):a=JI(i,r.cookie.key));if(!a){let d="no authorization included in request";throw new xu(401,{message:d,res:i2({ctx:i,error:"invalid_request",errDescription:d,realm:r.realm})})}let c,l;try{c=await Hd.verify(a,r.secret,{alg:r.alg,...e})}catch(d){l=d}if(!c)throw new xu(401,{message:"Unauthorized",res:i2({ctx:i,error:"invalid_token",statusText:"Unauthorized",errDescription:"token verification failure",realm:r.realm}),cause:l});i.set("jwtPayload",c),await n()}};jR=Hd.verifyWithJwks,uo=Hd.verify,$R=Hd.decode,fo=Hd.sign});var $I={};xn($I,{AlgorithmTypes:()=>Sa,decode:()=>$R,jwt:()=>JR,sign:()=>fo,verify:()=>uo,verifyWithJwks:()=>jR});var Ao=j(()=>{VR();J1()});function YR(r,e){let t=`<?xml version="1.0" encoding="utf-8" ?> +`)},wrapError:function(r,e){if(!e)return r instanceof Error?r:new Error(r);if(r instanceof Error){try{r.message+=": "+e.message,r.cause=e}catch{}return r}return new Error(r+": "+e.message,{cause:e})},constructAllowedPackets:function(r){let e={};return r.forEach(t=>{if(!t.tag)throw new Error("Invalid input: expected a packet class");e[t.tag]=t}),e},anyPromise:function(r){return new Promise((e,t)=>{let i;Promise.all(r.map(async n=>{try{e(await n)}catch(s){i=s}})).then(()=>{t(i)})})},selectUint8Array:function(r,e,t){let i=Math.max(e.length,t.length),n=new Uint8Array(i),s=0;for(let o=0;o<n.length;o++)n[o]=e[o]&256-r|t[o]&255+r,s+=r&o<e.length|1-r&o<t.length;return n.subarray(0,s)},selectUint8:function(r,e,t){return e&256-r|t&255+r},isAES:function(r){return r===y.symmetric.aes128||r===y.symmetric.aes192||r===y.symmetric.aes256}},hB=F.getNodeBuffer();hB?(rI=r=>hB.from(r).toString("base64"),iI=r=>{let e=hB.from(r,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}):(rI=r=>btoa(F.uint8ArrayToString(r)),iI=r=>F.stringToUint8Array(atob(r)));kr=[new Array(255),new Array(255),new Array(255),new Array(255)];for(let r=0;r<=255;r++){let e=r<<16;for(let t=0;t<8;t++)e=e<<1^((e&8388608)!==0?8801531:0);kr[0][r]=(e&16711680)>>16|e&65280|(e&255)<<16}for(let r=0;r<=255;r++)kr[1][r]=kr[0][r]>>8^kr[0][kr[0][r]&255];for(let r=0;r<=255;r++)kr[2][r]=kr[1][r]>>8^kr[0][kr[1][r]&255];for(let r=0;r<=255;r++)kr[3][r]=kr[2][r]>>8^kr[0][kr[2][r]&255];TW=(function(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,255,!0),new Int16Array(r)[0]===255})();Bi=BigInt(0),kd=BigInt(1);LW=F.getNodeCrypto();ds=BigInt(1);GW=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999].map(r=>BigInt(r));R6=F.getWebCrypto(),nI=F.getNodeCrypto(),JW=nI&&nI.getHashes();jW=Ao("md5")||ho("md5"),$W=Ao("sha1")||ho("sha1","SHA-1"),VW=Ao("sha224")||ho("sha224"),YW=Ao("sha256")||ho("sha256","SHA-256"),WW=Ao("sha384")||ho("sha384","SHA-384"),XW=Ao("sha512")||ho("sha512","SHA-512"),ZW=Ao("ripemd160")||ho("ripemd160"),eX=Ao("sha3-256")||ho("sha3_256"),tX=Ao("sha3-512")||ho("sha3_512");sn=[];sn[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16];sn[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20];sn[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20];sn[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32];sn[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48];sn[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64];sn[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];sn[12]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,8,5,0,4,32];sn[14]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,10,5,0,4,64];Ud=F.getWebCrypto(),jc=F.getNodeCrypto(),_a=BigInt(1);va=BigInt(1);CX={"2a8648ce3d030107":y.curve.nistP256,"2b81040022":y.curve.nistP384,"2b81040023":y.curve.nistP521,"2b8104000a":y.curve.secp256k1,"2b06010401da470f01":y.curve.ed25519Legacy,"2b060104019755010501":y.curve.curve25519Legacy,"2b2403030208010107":y.curve.brainpoolP256r1,"2b240303020801010b":y.curve.brainpoolP384r1,"2b240303020801010d":y.curve.brainpoolP512r1},co=class r{constructor(e){if(e instanceof r)this.oid=e.oid;else if(F.isArray(e)||F.isUint8Array(e)){if(e=new Uint8Array(e),e[0]===6){if(e[1]!==e.length-2)throw new Error("Length mismatch in DER encoded oid");e=e.subarray(2)}this.oid=e}else this.oid=""}read(e){if(e.length>=1){let t=e[0];if(e.length>=1+t)return this.oid=e.subarray(1,1+t),1+this.oid.length}throw new Error("Invalid oid")}write(){return F.concatUint8Array([new Uint8Array([this.oid.length]),this.oid])}toHex(){return F.uint8ArrayToHex(this.oid)}getName(){let e=CX[this.toHex()];if(!e)throw new Error("Unknown curve object identifier.");return e}};ft=class r extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,r),this.name="UnsupportedError"}},Sd=class extends ft{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ft),this.name="UnknownPacketError"}},tA=class extends ft{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,ft),this.name="MalformedPacketError"}},nA=class{constructor(e,t){this.tag=e,this.rawContent=t}write(){return this.rawContent}};U1=(r,e)=>{if(r===y.publicKey.ed25519)return{kty:"OKP",crv:"Ed25519",x:Ur(e),ext:!0};throw new Error("Unsupported EdDSA algorithm")},dU=(r,e,t)=>{if(r===y.publicKey.ed25519){let i=U1(r,e);return i.d=Ur(t),i}else throw new Error("Unsupported EdDSA algorithm")},bX=Object.freeze({__proto__:null,generate:_1,getPayloadSize:KI,getPreferredHashAlgo:GI,sign:F1,validateParams:T1,verify:P1});vX=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;bA=(r,e)=>{function t(i,...n){if(kt(i),!vX)throw new Error("Non little-endian hardware is not yet supported");if(r.nonceLength!==void 0){let d=n[0];if(!d)throw new Error("nonce / iv required");r.varSizeNonce?kt(d):kt(d,r.nonceLength)}let s=r.tagLength;s&&n[1]!==void 0&&kt(n[1]);let o=e(i,...n),a=(d,u)=>{if(u!==void 0){if(d!==2)throw new Error("cipher output not supported");kt(u)}},c=!1;return{encrypt(d,u){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,kt(d),a(o.encrypt.length,u),o.encrypt(d,u)},decrypt(d,u){if(kt(d),s&&d.length<s)throw new Error("invalid ciphertext length: smaller than tagLength="+s);return a(o.decrypt.length,u),o.decrypt(d,u)}}}return Object.assign(t,r),t};no=16,q1=new Uint8Array(16),os=Et(q1),QX=225,_X=(r,e,t,i)=>{let n=i&1;return{s3:t<<31|i>>>1,s2:e<<31|t>>>1,s1:r<<31|e>>>1,s0:r>>>1^QX<<24&-(n&1)}},nn=r=>(r>>>0&255)<<24|(r>>>8&255)<<16|(r>>>16&255)<<8|r>>>24&255|0;PX=r=>r>64*1024?8:r>1024?4:2,aI=class{constructor(e,t){this.blockLen=no,this.outputLen=no,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=sA(e),kt(e,16);let i=zI(e),n=i.getUint32(0,!1),s=i.getUint32(4,!1),o=i.getUint32(8,!1),a=i.getUint32(12,!1),c=[];for(let g=0;g<128;g++)c.push({s0:nn(n),s1:nn(s),s2:nn(o),s3:nn(a)}),{s0:n,s1:s,s2:o,s3:a}=_X(n,s,o,a);let l=PX(t||1024);if(![1,2,4,8].includes(l))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=l;let u=128/l,f=this.windowSize=2**l,h=[];for(let g=0;g<u;g++)for(let p=0;p<f;p++){let I=0,m=0,w=0,B=0;for(let C=0;C<l;C++){if(!(p>>>l-C-1&1))continue;let{s0:Q,s1:R,s2:U,s3:T}=c[l*g+C];I^=Q,m^=R,w^=U,B^=T}h.push({s0:I,s1:m,s2:w,s3:B})}this.t=h}_updateBlock(e,t,i,n){e^=this.s0,t^=this.s1,i^=this.s2,n^=this.s3;let{W:s,t:o,windowSize:a}=this,c=0,l=0,d=0,u=0,f=(1<<s)-1,h=0;for(let g of[e,t,i,n])for(let p=0;p<4;p++){let I=g>>>8*p&255;for(let m=8/s-1;m>=0;m--){let w=I>>>s*m&f,{s0:B,s1:C,s2:x,s3:Q}=o[h*a+w];c^=B,l^=C,d^=x,u^=Q,h+=1}}this.s0=c,this.s1=l,this.s2=d,this.s3=u}update(e){oI(this),e=sA(e),kt(e);let t=Et(e),i=Math.floor(e.length/no),n=e.length%no;for(let s=0;s<i;s++)this._updateBlock(t[s*4+0],t[s*4+1],t[s*4+2],t[s*4+3]);return n&&(q1.set(e.subarray(i*no)),this._updateBlock(os[0],os[1],os[2],os[3]),ei(os)),this}destroy(){let{t:e}=this;for(let t of e)t.s0=0,t.s1=0,t.s2=0,t.s3=0}digestInto(e){oI(this),fU(e,this),this.finished=!0;let{s0:t,s1:i,s2:n,s3:s}=this,o=Et(e);return o[0]=t,o[1]=i,o[2]=n,o[3]=s,e}digest(){let e=new Uint8Array(no);return this.digestInto(e),this.destroy(),e}},$B=class extends aI{constructor(e,t){e=sA(e),kt(e);let i=FX(vi(e));super(i,t),ei(i)}update(e){e=sA(e),oI(this);let t=Et(e),i=e.length%no,n=Math.floor(e.length/no);for(let s=0;s<n;s++)this._updateBlock(nn(t[s*4+3]),nn(t[s*4+2]),nn(t[s*4+1]),nn(t[s*4+0]));return i&&(q1.set(e.subarray(n*no)),this._updateBlock(nn(os[3]),nn(os[2]),nn(os[1]),nn(os[0])),ei(os)),this}digestInto(e){oI(this),fU(e,this),this.finished=!0;let{s0:t,s1:i,s2:n,s3:s}=this,o=Et(e);return o[0]=t,o[1]=i,o[2]=n,o[3]=s,e.reverse()}};O6=gU((r,e)=>new aI(r,e));gU((r,e)=>new $B(r,e));ki=16,O1=4,Ty=new Uint8Array(ki),TX=283;VB=(()=>{let r=new Uint8Array(256);for(let t=0,i=1;t<256;t++,i^=M1(i))r[t]=i;let e=new Uint8Array(256);e[0]=99;for(let t=0;t<255;t++){let i=r[255-t];i|=i<<8,e[r[t]]=(i^i>>4^i>>5^i>>6^i>>7^99)&255}return ei(r),e})(),UX=VB.map((r,e)=>VB.indexOf(e)),RX=r=>r<<24|r>>>8,gB=r=>r<<8|r>>>24,M6=r=>r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255;L1=pU(VB,r=>Ed(r,3)<<24|r<<16|r<<8|Ed(r,2)),mU=pU(UX,r=>Ed(r,11)<<24|Ed(r,13)<<16|Ed(r,9)<<8|Ed(r,14)),NX=(()=>{let r=new Uint8Array(16);for(let e=0,t=1;e<16;e++,t=M1(t))r[e]=t;return r})();qX=bA({blockSize:16,nonceLength:16},function(e,t){function i(n,s){if(kt(n),s!==void 0&&(kt(s),!on(s)))throw new Error("unaligned destination");let o=el(e),a=vi(t),c=[o,a];on(n)||c.push(n=vi(n));let l=yU(o,a,n,s);return ei(...c),l}return{encrypt:(n,s)=>i(n,s),decrypt:(n,s)=>i(n,s)}});YB=bA({blockSize:16,nonceLength:16},function(e,t,i={}){let n=!i.disablePadding;return{encrypt(s,o){let a=el(e),{b:c,o:l,out:d}=MX(s,n,o),u=t,f=[a];on(u)||f.push(u=vi(u));let h=Et(u),g=h[0],p=h[1],I=h[2],m=h[3],w=0;for(;w+4<=c.length;)g^=c[w+0],p^=c[w+1],I^=c[w+2],m^=c[w+3],{s0:g,s1:p,s2:I,s3:m}=Pn(a,g,p,I,m),l[w++]=g,l[w++]=p,l[w++]=I,l[w++]=m;if(n){let B=HX(s.subarray(w*4));g^=B[0],p^=B[1],I^=B[2],m^=B[3],{s0:g,s1:p,s2:I,s3:m}=Pn(a,g,p,I,m),l[w++]=g,l[w++]=p,l[w++]=I,l[w++]=m}return ei(...f),d},decrypt(s,o){OX(s);let a=H1(e),c=t,l=[a];on(c)||l.push(c=vi(c));let d=Et(c);o=vA(s.length,o),on(s)||l.push(s=vi(s)),N1(s,o);let u=Et(s),f=Et(o),h=d[0],g=d[1],p=d[2],I=d[3];for(let m=0;m+4<=u.length;){let w=h,B=g,C=p,x=I;h=u[m+0],g=u[m+1],p=u[m+2],I=u[m+3];let{s0:Q,s1:R,s2:U,s3:T}=JI(a,h,g,p,I);f[m++]=Q^w,f[m++]=R^B,f[m++]=U^C,f[m++]=T^x}return ei(...l),LX(o,n)}}}),IU=bA({blockSize:16,nonceLength:16},function(e,t){function i(n,s,o){kt(n);let a=n.length;if(o=vA(a,o),AU(n,o))throw new Error("overlapping src and dst not supported.");let c=el(e),l=t,d=[c];on(l)||d.push(l=vi(l)),on(n)||d.push(n=vi(n));let u=Et(n),f=Et(o),h=s?f:u,g=Et(l),p=g[0],I=g[1],m=g[2],w=g[3];for(let C=0;C+4<=u.length;){let{s0:x,s1:Q,s2:R,s3:U}=Pn(c,p,I,m,w);f[C+0]=u[C+0]^x,f[C+1]=u[C+1]^Q,f[C+2]=u[C+2]^R,f[C+3]=u[C+3]^U,p=h[C++],I=h[C++],m=h[C++],w=h[C++]}let B=ki*Math.floor(u.length/O1);if(B<a){({s0:p,s1:I,s2:m,s3:w}=Pn(c,p,I,m,w));let C=R1(new Uint32Array([p,I,m,w]));for(let x=B,Q=0;x<a;x++,Q++)o[x]=n[x]^C[Q];ei(C)}return ei(...d),o}return{encrypt:(n,s)=>i(n,!0,s),decrypt:(n,s)=>i(n,!1,s)}});Uy=bA({blockSize:16,nonceLength:12,tagLength:16,varSizeNonce:!0},function(e,t,i){if(t.length<8)throw new Error("aes/gcm: invalid nonce length");let n=16;function s(a,c,l){let d=KX(O6,!1,a,l,i);for(let u=0;u<c.length;u++)d[u]^=c[u];return d}function o(){let a=el(e),c=Ty.slice(),l=Ty.slice();if(Xf(a,!1,l,l,c),t.length===12)l.set(t);else{let u=Ty.slice(),f=zI(u);jB(f,8,BigInt(t.length*8),!1);let h=O6.create(c).update(t).update(u);h.digestInto(l),h.destroy()}let d=Xf(a,!1,l,Ty);return{xk:a,authKey:c,counter:l,tagMask:d}}return{encrypt(a){let{xk:c,authKey:l,counter:d,tagMask:u}=o(),f=new Uint8Array(a.length+n),h=[c,l,d,u];on(a)||h.push(a=vi(a)),Xf(c,!1,d,a,f.subarray(0,a.length));let g=s(l,u,f.subarray(0,f.length-n));return h.push(g),f.set(g,a.length),ei(...h),f},decrypt(a){let{xk:c,authKey:l,counter:d,tagMask:u}=o(),f=[c,l,u,d];on(a)||f.push(a=vi(a));let h=a.subarray(0,-n),g=a.subarray(-n),p=s(l,u,h);if(f.push(p),!hU(p,g))throw new Error("aes/gcm: invalid ghash tag");let I=Xf(c,!1,d,h);return ei(...f),I}}});L6={encrypt(r,e){if(e.length>=2**32)throw new Error("plaintext should be less than 4gb");let t=el(r);if(e.length===16)xU(t,e);else{let i=Et(e),n=i[0],s=i[1];for(let o=0,a=1;o<6;o++)for(let c=2;c<i.length;c+=2,a++){let{s0:l,s1:d,s2:u,s3:f}=Pn(t,n,s,i[c],i[c+1]);n=l,s=d^M6(a),i[c]=u,i[c+1]=f}i[0]=n,i[1]=s}t.fill(0)},decrypt(r,e){if(e.length-8>=2**32)throw new Error("ciphertext should be less than 4gb");let t=H1(r),i=e.length/8-1;if(i===1)CU(t,e);else{let n=Et(e),s=n[0],o=n[1];for(let a=0,c=i*6;a<6;a++)for(let l=i*2;l>=1;l-=2,c--){o^=M6(c);let{s0:d,s1:u,s2:f,s3:h}=JI(t,s,o,n[l],n[l+1]);s=d,o=u,n[l]=f,n[l+1]=h}n[0]=s,n[1]=o}t.fill(0)}},H6=new Uint8Array(8).fill(166),EU=bA({blockSize:8},r=>({encrypt(e){if(!e.length||e.length%8!==0)throw new Error("invalid plaintext length");if(e.length===8)throw new Error("8-byte keys not allowed in AESKW, use AESKWP instead");let t=SX(H6,e);return L6.encrypt(r,t),t},decrypt(e){if(e.length%8!==0||e.length<24)throw new Error("invalid ciphertext length");let t=vi(e);if(L6.decrypt(r,t),!hU(t.subarray(0,8),H6))throw new Error("integrity check failed");return t.subarray(0,8).fill(0),t.subarray(8)}})),K6={expandKeyLE:el,expandKeyDecLE:H1,encrypt:Pn,decrypt:JI,encryptBlock:xU,decryptBlock:CU,ctrCounter:yU,ctr32:Xf};Dd=F.getWebCrypto();cI={x25519:F.encodeUTF8("OpenPGP X25519"),x448:F.encodeUTF8("OpenPGP X448")};jX=Object.freeze({__proto__:null,decrypt:vU,encrypt:bU,generate:K1,generateEphemeralEncryptionMaterial:$I,getPayloadSize:jI,recomputeSharedSecret:VI,validateParams:G1}),pB=F.getWebCrypto(),dI=F.getNodeCrypto(),us={[y.curve.nistP256]:"P-256",[y.curve.nistP384]:"P-384",[y.curve.nistP521]:"P-521"},Ys=dI?dI.getCurves():[],ss=dI?{[y.curve.secp256k1]:Ys.includes("secp256k1")?"secp256k1":void 0,[y.curve.nistP256]:Ys.includes("prime256v1")?"prime256v1":void 0,[y.curve.nistP384]:Ys.includes("secp384r1")?"secp384r1":void 0,[y.curve.nistP521]:Ys.includes("secp521r1")?"secp521r1":void 0,[y.curve.ed25519Legacy]:Ys.includes("ED25519")?"ED25519":void 0,[y.curve.curve25519Legacy]:Ys.includes("X25519")?"X25519":void 0,[y.curve.brainpoolP256r1]:Ys.includes("brainpoolP256r1")?"brainpoolP256r1":void 0,[y.curve.brainpoolP384r1]:Ys.includes("brainpoolP384r1")?"brainpoolP384r1":void 0,[y.curve.brainpoolP512r1]:Ys.includes("brainpoolP512r1")?"brainpoolP512r1":void 0}:{},kU={[y.curve.nistP256]:{oid:[6,8,42,134,72,206,61,3,1,7],keyType:y.publicKey.ecdsa,hash:y.hash.sha256,cipher:y.symmetric.aes128,node:ss[y.curve.nistP256],web:us[y.curve.nistP256],payloadSize:32,sharedSize:256,wireFormatLeadingByte:4},[y.curve.nistP384]:{oid:[6,5,43,129,4,0,34],keyType:y.publicKey.ecdsa,hash:y.hash.sha384,cipher:y.symmetric.aes192,node:ss[y.curve.nistP384],web:us[y.curve.nistP384],payloadSize:48,sharedSize:384,wireFormatLeadingByte:4},[y.curve.nistP521]:{oid:[6,5,43,129,4,0,35],keyType:y.publicKey.ecdsa,hash:y.hash.sha512,cipher:y.symmetric.aes256,node:ss[y.curve.nistP521],web:us[y.curve.nistP521],payloadSize:66,sharedSize:528,wireFormatLeadingByte:4},[y.curve.secp256k1]:{oid:[6,5,43,129,4,0,10],keyType:y.publicKey.ecdsa,hash:y.hash.sha256,cipher:y.symmetric.aes128,node:ss[y.curve.secp256k1],payloadSize:32,wireFormatLeadingByte:4},[y.curve.ed25519Legacy]:{oid:[6,9,43,6,1,4,1,218,71,15,1],keyType:y.publicKey.eddsaLegacy,hash:y.hash.sha512,node:!1,payloadSize:32,wireFormatLeadingByte:64},[y.curve.curve25519Legacy]:{oid:[6,10,43,6,1,4,1,151,85,1,5,1],keyType:y.publicKey.ecdh,hash:y.hash.sha256,cipher:y.symmetric.aes128,node:!1,payloadSize:32,wireFormatLeadingByte:64},[y.curve.brainpoolP256r1]:{oid:[6,9,43,36,3,3,2,8,1,1,7],keyType:y.publicKey.ecdsa,hash:y.hash.sha256,cipher:y.symmetric.aes128,node:ss[y.curve.brainpoolP256r1],payloadSize:32,wireFormatLeadingByte:4},[y.curve.brainpoolP384r1]:{oid:[6,9,43,36,3,3,2,8,1,1,11],keyType:y.publicKey.ecdsa,hash:y.hash.sha384,cipher:y.symmetric.aes192,node:ss[y.curve.brainpoolP384r1],payloadSize:48,wireFormatLeadingByte:4},[y.curve.brainpoolP512r1]:{oid:[6,9,43,36,3,3,2,8,1,1,13],keyType:y.publicKey.ecdsa,hash:y.hash.sha512,cipher:y.symmetric.aes256,node:ss[y.curve.brainpoolP512r1],payloadSize:64,wireFormatLeadingByte:4}},Si=class{constructor(e){try{this.name=e instanceof co?e.getName():y.write(y.curve,e)}catch{throw new ft("Unknown curve")}let t=kU[this.name];this.keyType=t.keyType,this.oid=t.oid,this.hash=t.hash,this.cipher=t.cipher,this.node=t.node,this.web=t.web,this.payloadSize=t.payloadSize,this.sharedSize=t.sharedSize,this.wireFormatLeadingByte=t.wireFormatLeadingByte,this.web&&F.getWebCrypto()?this.type="web":this.node&&F.getNodeCrypto()?this.type="node":this.name===y.curve.curve25519Legacy?this.type="curve25519Legacy":this.name===y.curve.ed25519Legacy&&(this.type="ed25519Legacy")}async genKeyPair(){switch(this.type){case"web":try{return await $X(this.name,this.wireFormatLeadingByte)}catch(e){return F.printDebugError("Browser did not support generating ec key "+e.message),G6(this.name)}case"node":return VX(this.name);case"curve25519Legacy":{let{k:e,A:t}=await K1(y.publicKey.x25519),i=e.slice().reverse();return i[0]=i[0]&127|64,i[31]&=248,{publicKey:F.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:i}}case"ed25519Legacy":{let{seed:e,A:t}=await _1(y.publicKey.ed25519);return{publicKey:F.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]),t]),privateKey:e}}default:return G6(this.name)}}};uI=F.getWebCrypto(),FU=F.getNodeCrypto();tZ=Object.freeze({__proto__:null,sign:J1,validateParams:YX,verify:j1});rZ=Object.freeze({__proto__:null,sign:PU,validateParams:UU,verify:TU});fZ=Object.freeze({__proto__:null,decrypt:OU,encrypt:qU,validateParams:sZ}),AZ=Object.freeze({__proto__:null,CurveWithOID:Si,ecdh:fZ,ecdhX:jX,ecdsa:tZ,eddsa:bX,eddsaLegacy:rZ,generate:Vy,getPreferredHashAlgo:SU}),Yy=BigInt(0),Zf=BigInt(1);fI=class{constructor(e){e&&(this.data=e)}read(e){if(e.length>=1){let t=e[0];if(e.length>=1+t)return this.data=e.subarray(1,1+t),1+this.data.length}throw new Error("Invalid symmetric key")}write(){return F.concatUint8Array([new Uint8Array([this.data.length]),this.data])}},AI=class{constructor(e){if(e){let{hash:t,cipher:i}=e;this.hash=t,this.cipher=i}else this.hash=null,this.cipher=null}read(e){if(e.length<4||e[0]!==3||e[1]!==1)throw new ft("Cannot read KDFParams");return this.hash=e[2],this.cipher=e[3],4}write(){return new Uint8Array([3,1,this.hash,this.cipher])}},hI=class r{static fromObject({wrappedKey:e,algorithm:t}){let i=new r;return i.wrappedKey=e,i.algorithm=t,i}read(e){let t=0,i=e[t++];this.algorithm=i%2?e[t++]:null,i-=i%2,this.wrappedKey=F.readExactSubarray(e,t,t+i),t+=i}write(){return F.concatUint8Array([this.algorithm?new Uint8Array([this.wrappedKey.length+1,this.algorithm]):new Uint8Array([this.wrappedKey.length]),this.wrappedKey])}};Wy=F.getWebCrypto(),oA=F.getNodeCrypto(),qc=oA?oA.getCiphers():[],WI={idea:qc.includes("idea-cfb")?"idea-cfb":void 0,tripledes:qc.includes("des-ede3-cfb")?"des-ede3-cfb":void 0,cast5:qc.includes("cast5-cfb")?"cast5-cfb":void 0,blowfish:qc.includes("bf-cfb")?"bf-cfb":void 0,aes128:qc.includes("aes-128-cfb")?"aes-128-cfb":void 0,aes192:qc.includes("aes-192-cfb")?"aes-192-cfb":void 0,aes256:qc.includes("aes-256-cfb")?"aes-256-cfb":void 0};gI=class{constructor(e,t,i){let{blockSize:n}=It(e);this.key=t,this.iv=i,this.prevBlock=i.slice(),this.nextBlock=new Uint8Array(n),this.i=0,this.blockSize=n,this.zeroBlock=new Uint8Array(this.blockSize)}static isSupported(e){let{keySize:t}=It(e);return Wy.importKey("raw",new Uint8Array(t),"aes-cbc",!1,["encrypt"]).then(()=>!0,()=>!1)}async _runCBC(e,t){let i="AES-CBC";this.keyRef=this.keyRef||await Wy.importKey("raw",this.key,i,!1,["encrypt"]);let n=await Wy.encrypt({name:i,iv:t||this.zeroBlock},this.keyRef,e);return new Uint8Array(n).subarray(0,e.length)}async encryptChunk(e){let t=this.nextBlock.length-this.i,i=e.subarray(0,t);if(this.nextBlock.set(i,this.i),this.i+e.length>=2*this.blockSize){let s=(e.length-t)%this.blockSize,o=F.concatUint8Array([this.nextBlock,e.subarray(t,e.length-s)]),a=F.concatUint8Array([this.prevBlock,o.subarray(0,o.length-this.blockSize)]),c=await this._runCBC(a);return Ry(c,o),this.prevBlock=c.slice(-this.blockSize),s>0&&this.nextBlock.set(e.subarray(-s)),this.i=s,c}this.i+=i.length;let n;if(this.i===this.nextBlock.length){let s=this.nextBlock;n=await this._runCBC(this.prevBlock),Ry(n,s),this.prevBlock=n.slice(),this.i=0;let o=e.subarray(i.length);this.nextBlock.set(o,this.i),this.i+=o.length}else n=new Uint8Array;return n}async finish(){let e;if(this.i===0)e=new Uint8Array;else{this.nextBlock=this.nextBlock.subarray(0,this.i);let t=this.nextBlock,i=await this._runCBC(this.prevBlock);Ry(i,t),e=i.subarray(0,t.length)}return this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.keyRef=null,this.key=null}async encrypt(e){let i=(await this._runCBC(F.concatUint8Array([new Uint8Array(this.blockSize),e]),this.iv)).subarray(0,e.length);return Ry(i,e),this.clearSensitiveData(),i}},pI=class{constructor(e,t,i,n){this.forEncryption=e;let{blockSize:s}=It(t);this.key=K6.expandKeyLE(i),n.byteOffset%4!==0&&(n=n.slice()),this.prevBlock=yB(n),this.nextBlock=new Uint8Array(s),this.i=0,this.blockSize=s}_runCFB(e){let t=yB(e),i=new Uint8Array(e.length),n=yB(i);for(let s=0;s+4<=n.length;s+=4){let{s0:o,s1:a,s2:c,s3:l}=K6.encrypt(this.key,this.prevBlock[0],this.prevBlock[1],this.prevBlock[2],this.prevBlock[3]);n[s+0]=t[s+0]^o,n[s+1]=t[s+1]^a,n[s+2]=t[s+2]^c,n[s+3]=t[s+3]^l,this.prevBlock=(this.forEncryption?n:t).slice(s,s+4)}return i}async processChunk(e){let t=this.nextBlock.length-this.i,i=e.subarray(0,t);if(this.nextBlock.set(i,this.i),this.i+e.length>=2*this.blockSize){let s=(e.length-t)%this.blockSize,o=F.concatUint8Array([this.nextBlock,e.subarray(t,e.length-s)]),a=this._runCFB(o);return s>0&&this.nextBlock.set(e.subarray(-s)),this.i=s,a}this.i+=i.length;let n;if(this.i===this.nextBlock.length){n=this._runCFB(this.nextBlock),this.i=0;let s=e.subarray(i.length);this.nextBlock.set(s,this.i),this.i+=s.length}else n=new Uint8Array;return n}async finish(){let e;return this.i===0?e=new Uint8Array:e=this._runCFB(this.nextBlock).subarray(0,this.i),this.clearSensitiveData(),e}clearSensitiveData(){this.nextBlock.fill(0),this.prevBlock.fill(0),this.key.fill(0)}};yB=r=>new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4));V6=F.getWebCrypto(),SZ=F.getNodeCrypto(),lo=16;Xy=new Uint8Array(lo);W6=F.getWebCrypto(),FZ=F.getNodeCrypto(),PZ=F.getNodeBuffer(),go=16,TZ=go,xd=go,X6=new Uint8Array(go),e1=new Uint8Array(go);e1[go-1]=1;t1=new Uint8Array(go);t1[go-1]=2;kA.getNonce=function(r,e){let t=r.slice();for(let i=0;i<e.length;i++)t[8+i]^=e[i];return t};kA.blockLength=go;kA.ivLength=TZ;kA.tagLength=xd;di=16,LU=15,ba=16;Hf=new Uint8Array(di),NZ=new Uint8Array([1]);SA.getNonce=function(r,e){let t=r.slice();for(let i=0;i<e.length;i++)t[7+i]^=e[i];return t};SA.blockLength=di;SA.ivLength=LU;SA.tagLength=ba;IB=F.getWebCrypto(),eT=F.getNodeCrypto(),tT=F.getNodeBuffer(),qZ=16,OZ=12,Cd=16,wB="AES-GCM";Nd.getNonce=function(r,e){let t=r.slice();for(let i=0;i<e.length;i++)t[4+i]^=e[i];return t};Nd.blockLength=qZ;Nd.ivLength=OZ;Nd.tagLength=Cd;KZ=2,GZ=19,zZ=16,rT=30,Qd=class r extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,r),this.name="Argon2OutOfMemoryError"}},JZ=2<<19,r1=class{constructor(e=pe){let{passes:t,parallelism:i,memoryExponent:n}=e.s2kArgon2Params;this.type="argon2",this.salt=null,this.t=t,this.p=i,this.encodedM=n}generateSalt(){this.salt=Nr(zZ)}read(e){let t=0;return this.salt=e.subarray(t,t+16),t+=16,this.t=e[t++],this.p=e[t++],this.encodedM=e[t++],t}write(){let e=[new Uint8Array([y.write(y.s2k,this.type)]),this.salt,new Uint8Array([this.t,this.p,this.encodedM])];return F.concatUint8Array(e)}async produceKey(e,t,i){if(i.maxArgon2MemoryExponent>rT)throw new Qd(`'config.maxArgon2MemoryExponent' exceeds the max allowed value of ${rT}`);if(this.encodedM>i.maxArgon2MemoryExponent)throw new Qd("Argon2 required memory exceeds `config.maxArgon2MemoryExponent`");let n=1<<this.encodedM;try{qy=qy||(await Promise.resolve().then(function(){return Oie})).default,Kf=Kf||qy();let s=await Kf,o=F.encodeUTF8(e),a=s({version:GZ,type:KZ,password:o,salt:this.salt,tagLength:t,memorySize:n,parallelism:this.p,passes:this.t});return n>JZ&&(Kf=qy(),Kf.catch(()=>{})),a}catch(s){throw s.message&&(s.message.includes("Unable to grow instance memory")||s.message.includes("failed to grow memory")||s.message.includes("WebAssembly.Memory.grow")||s.message.includes("Out of memory"))?new Qd("Could not allocate required memory for Argon2"):s}}},i1=class{constructor(e,t=pe){this.algorithm=y.hash.sha256,this.type=y.read(y.s2k,e),this.c=t.s2kIterationCountByte,this.salt=null}generateSalt(){switch(this.type){case"salted":case"iterated":this.salt=Nr(8)}}getCount(){return 16+(this.c&15)<<(this.c>>4)+6}read(e){let t=0;switch(this.algorithm=e[t++],this.type){case"simple":break;case"salted":this.salt=e.subarray(t,t+8),t+=8;break;case"iterated":this.salt=e.subarray(t,t+8),t+=8,this.c=e[t++];break;case"gnu":if(F.uint8ArrayToString(e.subarray(t,t+3))==="GNU")if(t+=3,1e3+e[t++]===1001)this.type="gnu-dummy";else throw new ft("Unknown s2k gnu protection mode.");else throw new ft("Unknown s2k type.");break;default:throw new ft("Unknown s2k type.")}return t}write(){if(this.type==="gnu-dummy")return new Uint8Array([101,0,...F.stringToUint8Array("GNU"),1]);let e=[new Uint8Array([y.write(y.s2k,this.type),this.algorithm])];switch(this.type){case"simple":break;case"salted":e.push(this.salt);break;case"iterated":e.push(this.salt),e.push(new Uint8Array([this.c]));break;case"gnu":throw new Error("GNU s2k type not supported.");default:throw new Error("Unknown s2k type.")}return F.concatUint8Array(e)}async produceKey(e,t,i){e=F.encodeUTF8(e);let n=[],s=0,o=0;for(;s<t;){let a;switch(this.type){case"simple":a=F.concatUint8Array([new Uint8Array(o),e]);break;case"salted":a=F.concatUint8Array([new Uint8Array(o),this.salt,e]);break;case"iterated":{let l=F.concatUint8Array([this.salt,e]),d=l.length,u=Math.max(this.getCount(),d);a=new Uint8Array(o+u),a.set(l,o);for(let f=o+d;f<u;f+=d,d*=2)a.copyWithin(f,o,f);break}case"gnu":throw new Error("GNU s2k type not supported.");default:throw new Error("Unknown s2k type.")}let c=await hs(this.algorithm,a);n.push(c),s+=c.length,o++}return F.concatUint8Array(n).subarray(0,t)}},jZ=new Set([y.s2k.argon2,y.s2k.iterated]);$Z=YT("/");try{_d=$Z("worker_threads"),VZ=_d.Worker,YZ=_d.isMarkedAsUntransferable}catch{}Gt=Uint8Array,Ki=Uint16Array,$1=Int32Array,ZI=new Gt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ew=new Gt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),n1=new Gt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),KU=function(r,e){for(var t=new Ki(31),i=0;i<31;++i)t[i]=e+=1<<r[i-1];for(var n=new $1(t[30]),i=1;i<30;++i)for(var s=t[i];s<t[i+1];++s)n[s]=s-t[i]<<5|i;return{b:t,r:n}},_d=KU(ZI,2),GU=_d.b,s1=_d.r;GU[28]=258,s1[258]=28;zU=KU(ew,0),WZ=zU.b,iT=zU.r,o1=new Ki(32768);for(ut=0;ut<32768;++ut)Ws=(ut&43690)>>1|(ut&21845)<<1,Ws=(Ws&52428)>>2|(Ws&13107)<<2,Ws=(Ws&61680)>>4|(Ws&3855)<<4,o1[ut]=((Ws&65280)>>8|(Ws&255)<<8)>>1;fs=(function(r,e,t){for(var i=r.length,n=0,s=new Ki(e);n<i;++n)r[n]&&++s[r[n]-1];var o=new Ki(e);for(n=1;n<e;++n)o[n]=o[n-1]+s[n-1]<<1;var a;if(t){a=new Ki(1<<e);var c=15-e;for(n=0;n<i;++n)if(r[n])for(var l=n<<4|r[n],d=e-r[n],u=o[r[n]-1]++<<d,f=u|(1<<d)-1;u<=f;++u)a[o1[u]>>c]=l}else for(a=new Ki(i),n=0;n<i;++n)r[n]&&(a[n]=o1[o[r[n]-1]++]>>15-r[n]);return a}),Pa=new Gt(288);for(ut=0;ut<144;++ut)Pa[ut]=8;for(ut=144;ut<256;++ut)Pa[ut]=9;for(ut=256;ut<280;++ut)Pa[ut]=7;for(ut=280;ut<288;++ut)Pa[ut]=8;cA=new Gt(32);for(ut=0;ut<32;++ut)cA[ut]=5;XZ=fs(Pa,9,0),ZZ=fs(Pa,9,1),eee=fs(cA,5,0),tee=fs(cA,5,1),xB=function(r){for(var e=r[0],t=1;t<r.length;++t)r[t]>e&&(e=r[t]);return e},kn=function(r,e,t){var i=e/8|0;return(r[i]|r[i+1]<<8)>>(e&7)&t},CB=function(r,e){var t=e/8|0;return(r[t]|r[t+1]<<8|r[t+2]<<16)>>(e&7)},V1=function(r){return(r+7)/8|0},rA=function(r,e,t){return(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length),new Gt(r.subarray(e,t))},ree=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],vr=function(r,e,t){var i=new Error(e||ree[r]);if(i.code=r,Error.captureStackTrace&&Error.captureStackTrace(i,vr),!t)throw i;return i},iee=function(r,e,t,i){var n=r.length,s=0;if(!n||e.f&&!e.l)return t||new Gt(0);var o=!t,a=o||e.i!=2,c=e.i;o&&(t=new Gt(n*3));var l=function(qe){var _e=t.length;if(qe>_e){var se=new Gt(Math.max(_e*2,qe));se.set(t),t=se}},d=e.f||0,u=e.p||0,f=e.b||0,h=e.l,g=e.d,p=e.m,I=e.n,m=n*8;do{if(!h){d=kn(r,u,1);var w=kn(r,u+1,3);if(u+=3,w)if(w==1)h=ZZ,g=tee,p=9,I=5;else if(w==2){var Q=kn(r,u,31)+257,R=kn(r,u+10,15)+4,U=Q+kn(r,u+5,31)+1;u+=14;for(var T=new Gt(U),D=new Gt(19),b=0;b<R;++b)D[n1[b]]=kn(r,u+b*3,7);u+=R*3;for(var _=xB(D),v=(1<<_)-1,E=fs(D,_,1),b=0;b<U;){var P=E[kn(r,u,v)];u+=P&15;var B=P>>4;if(B<16)T[b++]=B;else{var N=0,j=0;for(B==16?(j=3+kn(r,u,3),u+=2,N=T[b-1]):B==17?(j=3+kn(r,u,7),u+=3):B==18&&(j=11+kn(r,u,127),u+=7);j--;)T[b++]=N}}var z=T.subarray(0,Q),L=T.subarray(Q);p=xB(z),I=xB(L),h=fs(z,p,1),g=fs(L,I,1)}else vr(1);else{var B=V1(u)+4,C=r[B-4]|r[B-3]<<8,x=B+C;if(x>n){c&&vr(0);break}a&&l(f+C),t.set(r.subarray(B,x),f),e.b=f+=C,e.p=u=x*8,e.f=d;continue}if(u>m){c&&vr(0);break}}a&&l(f+131072);for(var G=(1<<p)-1,K=(1<<I)-1,$=u;;$=u){var N=h[CB(r,u)&G],te=N>>4;if(u+=N&15,u>m){c&&vr(0);break}if(N||vr(2),te<256)t[f++]=te;else if(te==256){$=u,h=null;break}else{var re=te-254;if(te>264){var b=te-257,ee=ZI[b];re=kn(r,u,(1<<ee)-1)+GU[b],u+=ee}var Z=g[CB(r,u)&K],me=Z>>4;Z||vr(3),u+=Z&15;var L=WZ[me];if(me>3){var ee=ew[me];L+=CB(r,u)&(1<<ee)-1,u+=ee}if(u>m){c&&vr(0);break}a&&l(f+131072);var le=f+re;if(f<L){var Ae=s-L,ve=Math.min(L,le);for(Ae+f<0&&vr(3);f<ve;++f)t[f]=i[Ae+f]}for(;f<le;++f)t[f]=t[f-L]}}e.l=h,e.p=$,e.b=f,e.f=d,h&&(d=1,e.m=p,e.d=g,e.n=I)}while(!d);return f!=t.length&&o?rA(t,0,f):t.subarray(0,f)},Xs=function(r,e,t){t<<=e&7;var i=e/8|0;r[i]|=t,r[i+1]|=t>>8},Gf=function(r,e,t){t<<=e&7;var i=e/8|0;r[i]|=t,r[i+1]|=t>>8,r[i+2]|=t>>16},EB=function(r,e){for(var t=[],i=0;i<r.length;++i)r[i]&&t.push({s:i,f:r[i]});var n=t.length,s=t.slice();if(!n)return{t:yI,l:0};if(n==1){var o=new Gt(t[0].s+1);return o[t[0].s]=1,{t:o,l:1}}t.sort(function(x,Q){return x.f-Q.f}),t.push({s:-1,f:25001});var a=t[0],c=t[1],l=0,d=1,u=2;for(t[0]={s:-1,f:a.f+c.f,l:a,r:c};d!=n-1;)a=t[t[l].f<t[u].f?l++:u++],c=t[l!=d&&t[l].f<t[u].f?l++:u++],t[d++]={s:-1,f:a.f+c.f,l:a,r:c};for(var f=s[0].s,i=1;i<n;++i)s[i].s>f&&(f=s[i].s);var h=new Ki(f+1),g=a1(t[d-1],h,0);if(g>e){var i=0,p=0,I=g-e,m=1<<I;for(s.sort(function(Q,R){return h[R.s]-h[Q.s]||Q.f-R.f});i<n;++i){var w=s[i].s;if(h[w]>e)p+=m-(1<<g-h[w]),h[w]=e;else break}for(p>>=I;p>0;){var B=s[i].s;h[B]<e?p-=1<<e-h[B]++-1:++i}for(;i>=0&&p;--i){var C=s[i].s;h[C]==e&&(--h[C],++p)}g=e}return{t:new Gt(h),l:g}},a1=function(r,e,t){return r.s==-1?Math.max(a1(r.l,e,t+1),a1(r.r,e,t+1)):e[r.s]=t},nT=function(r){for(var e=r.length;e&&!r[--e];);for(var t=new Ki(++e),i=0,n=r[0],s=1,o=function(c){t[i++]=c},a=1;a<=e;++a)if(r[a]==n&&a!=e)++s;else{if(!n&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(n),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(n);s=1,n=r[a]}return{c:t.subarray(0,i),n:e}},zf=function(r,e){for(var t=0,i=0;i<e.length;++i)t+=r[i]*e[i];return t},Y1=function(r,e,t){var i=t.length,n=V1(e+2);r[n]=i&255,r[n+1]=i>>8,r[n+2]=r[n]^255,r[n+3]=r[n+1]^255;for(var s=0;s<i;++s)r[n+s+4]=t[s];return(n+4+i)*8},sT=function(r,e,t,i,n,s,o,a,c,l,d){Xs(e,d++,t),++n[256];for(var u=EB(n,15),f=u.t,h=u.l,g=EB(s,15),p=g.t,I=g.l,m=nT(f),w=m.c,B=m.n,C=nT(p),x=C.c,Q=C.n,R=new Ki(19),U=0;U<w.length;++U)++R[w[U]&31];for(var U=0;U<x.length;++U)++R[x[U]&31];for(var T=EB(R,7),D=T.t,b=T.l,_=19;_>4&&!D[n1[_-1]];--_);var v=l+5<<3,E=zf(n,Pa)+zf(s,cA)+o,P=zf(n,f)+zf(s,p)+o+14+3*_+zf(R,D)+2*R[16]+3*R[17]+7*R[18];if(c>=0&&v<=E&&v<=P)return Y1(e,d,r.subarray(c,c+l));var N,j,z,L;if(Xs(e,d,1+(P<E)),d+=2,P<E){N=fs(f,h,0),j=f,z=fs(p,I,0),L=p;var G=fs(D,b,0);Xs(e,d,B-257),Xs(e,d+5,Q-1),Xs(e,d+10,_-4),d+=14;for(var U=0;U<_;++U)Xs(e,d+3*U,D[n1[U]]);d+=3*_;for(var K=[w,x],$=0;$<2;++$)for(var te=K[$],U=0;U<te.length;++U){var re=te[U]&31;Xs(e,d,G[re]),d+=D[re],re>15&&(Xs(e,d,te[U]>>5&127),d+=te[U]>>12)}}else N=XZ,j=Pa,z=eee,L=cA;for(var U=0;U<a;++U){var ee=i[U];if(ee>255){var re=ee>>18&31;Gf(e,d,N[re+257]),d+=j[re+257],re>7&&(Xs(e,d,ee>>23&31),d+=ZI[re]);var Z=ee&31;Gf(e,d,z[Z]),d+=L[Z],Z>3&&(Gf(e,d,ee>>5&8191),d+=ew[Z])}else Gf(e,d,N[ee]),d+=j[ee]}return Gf(e,d,N[256]),d+j[256]},nee=new $1([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),yI=new Gt(0),see=function(r,e,t,i,n,s){var o=s.z||r.length,a=new Gt(i+o+5*(1+Math.ceil(o/7e3))+n),c=a.subarray(i,a.length-n),l=s.l,d=(s.r||0)&7;if(e){d&&(c[0]=s.r>>3);for(var u=nee[e-1],f=u>>13,h=u&8191,g=(1<<t)-1,p=s.p||new Ki(32768),I=s.h||new Ki(g+1),m=Math.ceil(t/3),w=2*m,B=function(rt){return(r[rt]^r[rt+1]<<m^r[rt+2]<<w)&g},C=new $1(25e3),x=new Ki(288),Q=new Ki(32),R=0,U=0,T=s.i||0,D=0,b=s.w||0,_=0;T+2<o;++T){var v=B(T),E=T&32767,P=I[v];if(p[E]=P,I[v]=E,b<=T){var N=o-T;if((R>7e3||D>24576)&&(N>423||!l)){d=sT(r,c,0,C,x,Q,U,D,_,T-_,d),D=R=U=0,_=T;for(var j=0;j<286;++j)x[j]=0;for(var j=0;j<30;++j)Q[j]=0}var z=2,L=0,G=h,K=E-P&32767;if(N>2&&v==B(T-K))for(var $=Math.min(f,N)-1,te=Math.min(32767,T),re=Math.min(258,N);K<=te&&--G&&E!=P;){if(r[T+z]==r[T+z-K]){for(var ee=0;ee<re&&r[T+ee]==r[T+ee-K];++ee);if(ee>z){if(z=ee,L=K,ee>$)break;for(var Z=Math.min(K,ee-2),me=0,j=0;j<Z;++j){var le=T-K+j&32767,Ae=p[le],ve=le-Ae&32767;ve>me&&(me=ve,P=le)}}}E=P,P=p[E],K+=E-P&32767}if(L){C[D++]=268435456|s1[z]<<18|iT[L];var qe=s1[z]&31,_e=iT[L]&31;U+=ZI[qe]+ew[_e],++x[257+qe],++Q[_e],b=T+z,++R}else C[D++]=r[T],++x[r[T]]}}for(T=Math.max(T,b);T<o;++T)C[D++]=r[T],++x[r[T]];d=sT(r,c,l,C,x,Q,U,D,_,T-_,d),l||(s.r=d&7|c[d/8|0]<<3,d-=7,s.h=I,s.p=p,s.i=T,s.w=b)}else{for(var T=s.w||0;T<o+l;T+=65535){var se=T+65535;se>=o&&(c[d/8|0]=l,se=o),d=Y1(c,d+1,r.subarray(T,se))}s.i=o}return rA(a,0,i+V1(d)+n)},JU=function(){var r=1,e=0;return{p:function(t){for(var i=r,n=e,s=t.length|0,o=0;o!=s;){for(var a=Math.min(o+2655,s);o<a;++o)n+=i+=t[o];i=(i&65535)+15*(i>>16),n=(n&65535)+15*(n>>16)}r=i,e=n},d:function(){return r%=65521,e%=65521,(r&255)<<24|(r&65280)<<8|(e&255)<<8|e>>8}}},jU=function(r,e,t,i,n){if(!n&&(n={l:1},e.dictionary)){var s=e.dictionary.subarray(-32768),o=new Gt(s.length+r.length);o.set(s),o.set(r,s.length),r=o,n.w=s.length}return see(r,e.level==null?6:e.level,e.mem==null?n.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+e.mem,t,i,n)},$U=function(r,e,t){for(;t;++e)r[e]=t,t>>>=8},oee=function(r,e){var t=e.level,i=t==0?0:t<6?1:t==9?3:2;if(r[0]=120,r[1]=i<<6|(e.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,e.dictionary){var n=JU();n.p(e.dictionary),$U(r,2,n.d())}},aee=function(r,e){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&vr(6,"invalid zlib data"),(r[1]>>5&1)==+!e&&vr(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2},Zy=(function(){function r(e,t){if(typeof e=="function"&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new Gt(98304),this.o.dictionary){var i=this.o.dictionary.subarray(-32768);this.b.set(i,32768-i.length),this.s.i=32768-i.length}}return r.prototype.p=function(e,t){this.ondata(jU(e,this.o,0,0,this.s),t)},r.prototype.push=function(e,t){this.ondata||vr(5),this.s.l&&vr(4);var i=e.length+this.s.z;if(i>this.b.length){if(i>2*this.b.length-32768){var n=new Gt(i&-32768);n.set(this.b.subarray(0,this.s.z)),this.b=n}var s=this.b.length-this.s.z;this.b.set(e.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(s),32768),this.s.z=e.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=t&1,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2),t&&(this.s=this.o={},this.b=yI)},r.prototype.flush=function(e){if(this.ondata||vr(5),this.s.l&&vr(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2,e){var t=new Gt(6);t[0]=this.s.r>>3;var i=Y1(t,this.s.r,yI);this.s.r=0,this.ondata(t.subarray(0,i>>3),!1)}},r})(),eI=(function(){function r(e,t){typeof e=="function"&&(t=e,e={}),this.ondata=t;var i=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:i?i.length:0},this.o=new Gt(32768),this.p=new Gt(0),i&&this.o.set(i)}return r.prototype.e=function(e){if(this.ondata||vr(5),this.d&&vr(4),!this.p.length)this.p=e;else if(e.length){var t=new Gt(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}},r.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,i=iee(this.p,this.s,this.o);this.ondata(rA(i,t,this.s.b),this.d),this.o=rA(i,this.s.b-32768),this.s.b=this.o.length,this.p=rA(this.p,this.s.p/8|0),this.s.p&=7},r.prototype.push=function(e,t){this.e(e),this.c(t)},r})(),cee=(function(){function r(e,t){this.c=JU(),this.v=1,Zy.call(this,e,t)}return r.prototype.push=function(e,t){this.c.p(e),Zy.prototype.push.call(this,e,t)},r.prototype.p=function(e,t){var i=jU(e,this.o,this.v&&(this.o.dictionary?6:2),t&&4,this.s);this.v&&(oee(i,this.o),this.v=0),t&&$U(i,i.length-4,this.c.d()),this.ondata(i,t)},r.prototype.flush=function(e){Zy.prototype.flush.call(this,e)},r})(),lee=(function(){function r(e,t){eI.call(this,e,t),this.v=e&&e.dictionary?2:1}return r.prototype.push=function(e,t){if(eI.prototype.e.call(this,e),this.v){if(this.p.length<6&&!t)return;this.p=this.p.subarray(aee(this.p,this.v-1)),this.v=0}t&&(this.p.length<4&&vr(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),eI.prototype.c.call(this,t)},r})(),dee=typeof TextDecoder<"u"&&new TextDecoder,uee=0;try{dee.decode(yI,{stream:!0}),uee=1}catch{}Ta=class{static get tag(){return y.packet.literalData}constructor(e=new Date){this.format=y.literal.utf8,this.date=F.normalizeDate(e),this.text=null,this.data=null,this.filename=""}setText(e,t=y.literal.utf8){this.format=t,this.text=e,this.data=null}getText(e=!1){return(this.text===null||F.isStream(this.text))&&(this.text=F.decodeUTF8(F.nativeEOL(this.getBytes(e)))),this.text}setBytes(e,t){this.format=t,this.data=e,this.text=null}getBytes(e=!1){return this.data===null&&(this.data=F.canonicalizeEOL(F.encodeUTF8(this.text))),e?eA(this.data):this.data}setFilename(e){this.filename=e}getFilename(){return this.filename}async read(e){await MI(e,async t=>{let i=await t.readByte(),n=await t.readByte();this.filename=F.decodeUTF8(await t.readBytes(n)),this.date=F.readDate(await t.readBytes(4));let s=t.remainder();St(s)&&(s=await Xt(s)),this.setBytes(s,i)})}writeHeader(){let e=F.encodeUTF8(this.filename),t=new Uint8Array([e.length]),i=new Uint8Array([this.format]),n=F.writeDate(this.date);return F.concatUint8Array([i,t,e,n])}write(){let e=this.writeHeader(),t=this.getBytes();return F.concat([e,t])}},fo=class r{constructor(){this.bytes=""}read(e){return this.bytes=F.uint8ArrayToString(e.subarray(0,8)),this.bytes.length}write(){return F.stringToUint8Array(this.bytes)}toHex(){return F.uint8ArrayToHex(F.stringToUint8Array(this.bytes))}equals(e,t=!1){return t&&(e.isWildcard()||this.isWildcard())||this.bytes===e.bytes}isNull(){return this.bytes===""}isWildcard(){return/^0+$/.test(this.toHex())}static mapToHex(e){return e.toHex()}static fromID(e){let t=new r;return t.read(F.hexToUint8Array(e)),t}static wildcard(){let e=new r;return e.read(new Uint8Array(8)),e}},Jf=Symbol("verified"),oT="salt@notations.openpgpjs.org",fee=new Set([y.signatureSubpacket.issuerKeyID,y.signatureSubpacket.issuerFingerprint,y.signatureSubpacket.embeddedSignature]),qr=class r{static get tag(){return y.packet.signature}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.signatureData=null,this.unhashedSubpackets=[],this.unknownSubpackets=[],this.signedHashValue=null,this.salt=null,this.created=null,this.signatureExpirationTime=null,this.signatureNeverExpires=!0,this.exportable=null,this.trustLevel=null,this.trustAmount=null,this.regularExpression=null,this.revocable=null,this.keyExpirationTime=null,this.keyNeverExpires=null,this.preferredSymmetricAlgorithms=null,this.revocationKeyClass=null,this.revocationKeyAlgorithm=null,this.revocationKeyFingerprint=null,this.issuerKeyID=new fo,this.rawNotations=[],this.notations={},this.preferredHashAlgorithms=null,this.preferredCompressionAlgorithms=null,this.keyServerPreferences=null,this.preferredKeyServer=null,this.isPrimaryUserID=null,this.policyURI=null,this.keyFlags=null,this.signersUserID=null,this.reasonForRevocationFlag=null,this.reasonForRevocationString=null,this.features=null,this.signatureTargetPublicKeyAlgorithm=null,this.signatureTargetHashAlgorithm=null,this.signatureTargetHash=null,this.embeddedSignature=null,this.issuerKeyVersion=null,this.issuerFingerprint=null,this.preferredAEADAlgorithms=null,this.preferredCipherSuites=null,this.revoked=null,this[Jf]=null}read(e,t=pe){let i=0;if(this.version=e[i++],this.version===5&&!t.enableParsingV5Entities)throw new ft("Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(this.version!==4&&this.version!==5&&this.version!==6)throw new ft(`Version ${this.version} of the signature packet is unsupported.`);if(this.signatureType=e[i++],this.publicKeyAlgorithm=e[i++],this.hashAlgorithm=e[i++],i+=this.readSubPackets(e.subarray(i,e.length),!0),!this.created)throw new Error("Missing signature creation time subpacket.");if(this.signatureData=e.subarray(0,i),i+=this.readSubPackets(e.subarray(i,e.length),!1),this.signedHashValue=e.subarray(i,i+2),i+=2,this.version===6){let a=e[i++];this.salt=e.subarray(i,i+a),i+=a}let n=e.subarray(i,e.length),{read:s,signatureParams:o}=MZ(this.publicKeyAlgorithm,n);if(s<n.length)throw new Error("Error reading MPIs");this.params=o}writeParams(){return this.params instanceof Promise?Zc(async()=>Rd(this.publicKeyAlgorithm,await this.params)):Rd(this.publicKeyAlgorithm,this.params)}write(){let e=[];return e.push(this.signatureData),e.push(this.writeUnhashedSubPackets()),e.push(this.signedHashValue),this.version===6&&(e.push(new Uint8Array([this.salt.length])),e.push(this.salt)),e.push(this.writeParams()),F.concat(e)}async sign(e,t,i=new Date,n=!1,s){this.version=e.version,this.created=F.normalizeDate(i),this.issuerKeyVersion=e.version,this.issuerFingerprint=e.getFingerprintBytes(),this.issuerKeyID=e.getKeyID();let o=[new Uint8Array([this.version,this.signatureType,this.publicKeyAlgorithm,this.hashAlgorithm])];if(this.version===6){let d=BB(this.hashAlgorithm);if(this.salt===null)this.salt=Nr(d);else if(d!==this.salt.length)throw new Error("Provided salt does not have the required length")}else if(s.nonDeterministicSignaturesViaNotation)if(this.rawNotations.filter(({name:u})=>u===oT).length===0){let u=Nr(BB(this.hashAlgorithm));this.rawNotations.push({name:oT,value:u,humanReadable:!1,critical:!1})}else throw new Error("Unexpected existing salt notation");o.push(this.writeHashedSubPackets()),this.unhashedSubpackets=[],this.signatureData=F.concat(o);let a=this.toHash(this.signatureType,t,n),c=await this.hash(this.signatureType,t,a,n);this.signedHashValue=Rr(Jc(c),0,2);let l=async()=>HZ(this.publicKeyAlgorithm,this.hashAlgorithm,e.publicParams,e.privateParams,a,await Xt(c));F.isStream(c)?this.params=l():(this.params=await l(),this[Jf]=!0)}writeHashedSubPackets(){let e=y.signatureSubpacket,t=[],i;if(this.created===null)throw new Error("Missing signature creation time");t.push(yt(e.signatureCreationTime,!0,F.writeDate(this.created))),this.signatureExpirationTime!==null&&t.push(yt(e.signatureExpirationTime,!0,F.writeNumber(this.signatureExpirationTime,4))),this.exportable!==null&&t.push(yt(e.exportableCertification,!0,new Uint8Array([this.exportable?1:0]))),this.trustLevel!==null&&(i=new Uint8Array([this.trustLevel,this.trustAmount]),t.push(yt(e.trustSignature,!0,i))),this.regularExpression!==null&&t.push(yt(e.regularExpression,!0,this.regularExpression)),this.revocable!==null&&t.push(yt(e.revocable,!0,new Uint8Array([this.revocable?1:0]))),this.keyExpirationTime!==null&&t.push(yt(e.keyExpirationTime,!0,F.writeNumber(this.keyExpirationTime,4))),this.preferredSymmetricAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredSymmetricAlgorithms)),t.push(yt(e.preferredSymmetricAlgorithms,!1,i))),this.revocationKeyClass!==null&&(i=new Uint8Array([this.revocationKeyClass,this.revocationKeyAlgorithm]),i=F.concat([i,this.revocationKeyFingerprint]),t.push(yt(e.revocationKey,!1,i))),!this.issuerKeyID.isNull()&&this.issuerKeyVersion<5&&t.push(yt(e.issuerKeyID,!1,this.issuerKeyID.write())),this.rawNotations.forEach(({name:o,value:a,humanReadable:c,critical:l})=>{i=[new Uint8Array([c?128:0,0,0,0])];let d=F.encodeUTF8(o);i.push(F.writeNumber(d.length,2)),i.push(F.writeNumber(a.length,2)),i.push(d),i.push(a),i=F.concat(i),t.push(yt(e.notationData,l,i))}),this.preferredHashAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredHashAlgorithms)),t.push(yt(e.preferredHashAlgorithms,!1,i))),this.preferredCompressionAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredCompressionAlgorithms)),t.push(yt(e.preferredCompressionAlgorithms,!1,i))),this.keyServerPreferences!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.keyServerPreferences)),t.push(yt(e.keyServerPreferences,!1,i))),this.preferredKeyServer!==null&&t.push(yt(e.preferredKeyServer,!1,F.encodeUTF8(this.preferredKeyServer))),this.isPrimaryUserID!==null&&t.push(yt(e.primaryUserID,!1,new Uint8Array([this.isPrimaryUserID?1:0]))),this.policyURI!==null&&t.push(yt(e.policyURI,!1,F.encodeUTF8(this.policyURI))),this.keyFlags!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.keyFlags)),t.push(yt(e.keyFlags,!0,i))),this.signersUserID!==null&&t.push(yt(e.signersUserID,!1,F.encodeUTF8(this.signersUserID))),this.reasonForRevocationFlag!==null&&(i=F.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag)+this.reasonForRevocationString),t.push(yt(e.reasonForRevocation,!0,i))),this.features!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.features)),t.push(yt(e.features,!1,i))),this.signatureTargetPublicKeyAlgorithm!==null&&(i=[new Uint8Array([this.signatureTargetPublicKeyAlgorithm,this.signatureTargetHashAlgorithm])],i.push(F.stringToUint8Array(this.signatureTargetHash)),i=F.concat(i),t.push(yt(e.signatureTarget,!0,i))),this.embeddedSignature!==null&&t.push(yt(e.embeddedSignature,!0,this.embeddedSignature.write())),this.issuerFingerprint!==null&&(i=[new Uint8Array([this.issuerKeyVersion]),this.issuerFingerprint],i=F.concat(i),t.push(yt(e.issuerFingerprint,this.version>=5,i))),this.preferredAEADAlgorithms!==null&&(i=F.stringToUint8Array(F.uint8ArrayToString(this.preferredAEADAlgorithms)),t.push(yt(e.preferredAEADAlgorithms,!1,i))),this.preferredCipherSuites!==null&&(i=new Uint8Array([].concat(...this.preferredCipherSuites)),t.push(yt(e.preferredCipherSuites,!1,i)));let n=F.concat(t),s=F.writeNumber(n.length,this.version===6?4:2);return F.concat([s,n])}writeUnhashedSubPackets(){let e=this.unhashedSubpackets.map(({type:n,critical:s,body:o})=>yt(n,s,o)),t=F.concat(e),i=F.writeNumber(t.length,this.version===6?4:2);return F.concat([i,t])}readSubPacket(e,t=!0){let i=0,n=!!(e[i]&128),s=e[i]&127;if(i++,!(!t&&(this.unhashedSubpackets.push({type:s,critical:n,body:e.subarray(i,e.length)}),!fee.has(s))))switch(s){case y.signatureSubpacket.signatureCreationTime:this.created=F.readDate(e.subarray(i,e.length));break;case y.signatureSubpacket.signatureExpirationTime:{let o=F.readNumber(e.subarray(i,e.length));this.signatureNeverExpires=o===0,this.signatureExpirationTime=o;break}case y.signatureSubpacket.exportableCertification:this.exportable=e[i++]===1;break;case y.signatureSubpacket.trustSignature:this.trustLevel=e[i++],this.trustAmount=e[i++];break;case y.signatureSubpacket.regularExpression:this.regularExpression=e[i];break;case y.signatureSubpacket.revocable:this.revocable=e[i++]===1;break;case y.signatureSubpacket.keyExpirationTime:{let o=F.readNumber(e.subarray(i,e.length));this.keyExpirationTime=o,this.keyNeverExpires=o===0;break}case y.signatureSubpacket.preferredSymmetricAlgorithms:this.preferredSymmetricAlgorithms=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.revocationKey:this.revocationKeyClass=e[i++],this.revocationKeyAlgorithm=e[i++],this.revocationKeyFingerprint=e.subarray(i,i+20);break;case y.signatureSubpacket.issuerKeyID:if(this.version===4)this.issuerKeyID.read(e.subarray(i,e.length));else if(t)throw new Error("Unexpected Issuer Key ID subpacket");break;case y.signatureSubpacket.notationData:{let o=!!(e[i]&128);i+=4;let a=F.readNumber(e.subarray(i,i+2));i+=2;let c=F.readNumber(e.subarray(i,i+2));i+=2;let l=F.decodeUTF8(e.subarray(i,i+a)),d=e.subarray(i+a,i+a+c);this.rawNotations.push({name:l,humanReadable:o,value:d,critical:n}),o&&(this.notations[l]=F.decodeUTF8(d));break}case y.signatureSubpacket.preferredHashAlgorithms:this.preferredHashAlgorithms=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.preferredCompressionAlgorithms:this.preferredCompressionAlgorithms=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.keyServerPreferences:this.keyServerPreferences=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.preferredKeyServer:this.preferredKeyServer=F.decodeUTF8(e.subarray(i,e.length));break;case y.signatureSubpacket.primaryUserID:this.isPrimaryUserID=e[i++]!==0;break;case y.signatureSubpacket.policyURI:this.policyURI=F.decodeUTF8(e.subarray(i,e.length));break;case y.signatureSubpacket.keyFlags:this.keyFlags=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.signersUserID:this.signersUserID=F.decodeUTF8(e.subarray(i,e.length));break;case y.signatureSubpacket.reasonForRevocation:this.reasonForRevocationFlag=e[i++],this.reasonForRevocationString=F.decodeUTF8(e.subarray(i,e.length));break;case y.signatureSubpacket.features:this.features=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.signatureTarget:{this.signatureTargetPublicKeyAlgorithm=e[i++],this.signatureTargetHashAlgorithm=e[i++];let o=pr(this.signatureTargetHashAlgorithm);this.signatureTargetHash=F.uint8ArrayToString(e.subarray(i,i+o));break}case y.signatureSubpacket.embeddedSignature:this.embeddedSignature=new r,this.embeddedSignature.read(e.subarray(i,e.length));break;case y.signatureSubpacket.issuerFingerprint:this.issuerKeyVersion=e[i++],this.issuerFingerprint=e.subarray(i,e.length),this.issuerKeyVersion>=5?this.issuerKeyID.read(this.issuerFingerprint):this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));break;case y.signatureSubpacket.preferredAEADAlgorithms:this.preferredAEADAlgorithms=[...e.subarray(i,e.length)];break;case y.signatureSubpacket.preferredCipherSuites:this.preferredCipherSuites=[];for(let o=i;o<e.length;o+=2)this.preferredCipherSuites.push([e[o],e[o+1]]);break;default:this.unknownSubpackets.push({type:s,critical:n,body:e.subarray(i,e.length)});break}}readSubPackets(e,t=!0,i){let n=this.version===6?4:2,s=F.readNumber(e.subarray(0,n)),o=n;for(;o<2+s;){let a=lU(e.subarray(o,e.length));o+=a.offset,this.readSubPacket(e.subarray(o,o+a.len),t,i),o+=a.len}return o}toSign(e,t){let i=y.signature;switch(e){case i.binary:return t.text!==null?F.encodeUTF8(t.getText(!0)):t.getBytes(!0);case i.text:{let n=t.getBytes(!0);return F.canonicalizeEOL(n)}case i.standalone:return new Uint8Array(0);case i.certGeneric:case i.certPersona:case i.certCasual:case i.certPositive:case i.certRevocation:{let n,s;if(t.userID)s=180,n=t.userID;else if(t.userAttribute)s=209,n=t.userAttribute;else throw new Error("Either a userID or userAttribute packet needs to be supplied for certification.");let o=n.write();return F.concat([this.toSign(i.key,t),new Uint8Array([s]),F.writeNumber(o.length,4),o])}case i.subkeyBinding:case i.subkeyRevocation:case i.keyBinding:return F.concat([this.toSign(i.key,t),this.toSign(i.key,{key:t.bind})]);case i.key:if(t.key===void 0)throw new Error("Key packet is required for this signature.");return t.key.writeForHash(this.version);case i.keyRevocation:return this.toSign(i.key,t);case i.timestamp:return new Uint8Array(0);case i.thirdParty:throw new Error("Not implemented");default:throw new Error("Unknown signature type.")}}calculateTrailer(e,t){let i=0;return sr(Jc(this.signatureData),n=>{i+=n.length},()=>{let n=[];return this.version===5&&(this.signatureType===y.signature.binary||this.signatureType===y.signature.text)&&(t?n.push(new Uint8Array(6)):n.push(e.writeHeader())),n.push(new Uint8Array([this.version,255])),this.version===5&&n.push(new Uint8Array(4)),n.push(F.writeNumber(i,4)),F.concat(n)})}toHash(e,t,i=!1){let n=this.toSign(e,t);return F.concat([this.salt||new Uint8Array,n,this.signatureData,this.calculateTrailer(t,i)])}async hash(e,t,i,n=!1){if(this.version===6&&this.salt.length!==BB(this.hashAlgorithm))throw new Error("Signature salt does not have the expected length");return i||(i=this.toHash(e,t,n)),hs(this.hashAlgorithm,i)}async verify(e,t,i,n=new Date,s=!1,o=pe){if(!this.issuerKeyID.equals(e.getKeyID()))throw new Error("Signature was not issued by the given public key");if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Public key algorithm used to sign signature does not match issuer key algorithm.");let a=t===y.signature.binary||t===y.signature.text;if(!(this[Jf]&&!a)){let d,u;if(this.hashed?u=await this.hashed:(d=this.toHash(t,i,s),u=await this.hash(t,i,d)),u=await Xt(u),this.signedHashValue[0]!==u[0]||this.signedHashValue[1]!==u[1])throw new Error("Signed digest did not match");if(this.params=await this.params,this[Jf]=await LZ(this.publicKeyAlgorithm,this.hashAlgorithm,this.params,e.publicParams,d,u),!this[Jf])throw new Error("Signature verification failed")}let l=F.normalizeDate(n);if(l&&this.created>l)throw new Error("Signature creation time is in the future");if(l&&l>=this.getExpirationTime())throw new Error("Signature is expired");if(o.rejectHashAlgorithms.has(this.hashAlgorithm))throw new Error("Insecure hash algorithm: "+y.read(y.hash,this.hashAlgorithm).toUpperCase());if(o.rejectMessageHashAlgorithms.has(this.hashAlgorithm)&&[y.signature.binary,y.signature.text].includes(this.signatureType))throw new Error("Insecure message hash algorithm: "+y.read(y.hash,this.hashAlgorithm).toUpperCase());if(this.unknownSubpackets.forEach(({type:d,critical:u})=>{if(u)throw new Error(`Unknown critical signature subpacket type ${d}`)}),this.rawNotations.forEach(({name:d,critical:u})=>{if(u&&o.knownNotations.indexOf(d)<0)throw new Error(`Unknown critical notation: ${d}`)}),this.revocationKeyClass!==null)throw new Error("This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.")}isExpired(e=new Date){let t=F.normalizeDate(e);return t!==null?!(this.created<=t&&t<this.getExpirationTime()):!1}getExpirationTime(){return this.signatureNeverExpires?1/0:new Date(this.created.getTime()+this.signatureExpirationTime*1e3)}};cn=class r{static get tag(){return y.packet.onePassSignature}static fromSignaturePacket(e,t){let i=new r;return i.version=e.version===6?6:3,i.signatureType=e.signatureType,i.hashAlgorithm=e.hashAlgorithm,i.publicKeyAlgorithm=e.publicKeyAlgorithm,i.issuerKeyID=e.issuerKeyID,i.salt=e.salt,i.issuerFingerprint=e.issuerFingerprint,i.flags=t?1:0,i}constructor(){this.version=null,this.signatureType=null,this.hashAlgorithm=null,this.publicKeyAlgorithm=null,this.salt=null,this.issuerKeyID=null,this.issuerFingerprint=null,this.flags=null}read(e){let t=0;if(this.version=e[t++],this.version!==3&&this.version!==6)throw new ft(`Version ${this.version} of the one-pass signature packet is unsupported.`);if(this.signatureType=e[t++],this.hashAlgorithm=e[t++],this.publicKeyAlgorithm=e[t++],this.version===6){let i=e[t++];this.salt=e.subarray(t,t+i),t+=i,this.issuerFingerprint=e.subarray(t,t+32),t+=32,this.issuerKeyID=new fo,this.issuerKeyID.read(this.issuerFingerprint)}else this.issuerKeyID=new fo,this.issuerKeyID.read(e.subarray(t,t+8)),t+=8;return this.flags=e[t++],this}write(){let e=[new Uint8Array([this.version,this.signatureType,this.hashAlgorithm,this.publicKeyAlgorithm])];return this.version===6?e.push(new Uint8Array([this.salt.length]),this.salt,this.issuerFingerprint):e.push(this.issuerKeyID.write()),e.push(new Uint8Array([this.flags])),F.concatUint8Array(e)}calculateTrailer(...e){return Zc(async()=>qr.prototype.calculateTrailer.apply(await this.correspondingSig,e))}async verify(){let e=await this.correspondingSig;if(!e||e.constructor.tag!==y.packet.signature)throw new Error("Corresponding signature packet missing");if(e.signatureType!==this.signatureType||e.hashAlgorithm!==this.hashAlgorithm||e.publicKeyAlgorithm!==this.publicKeyAlgorithm||!e.issuerKeyID.equals(this.issuerKeyID)||this.version===3&&e.version===6||this.version===6&&e.version!==6||this.version===6&&!F.equalsUint8Array(e.issuerFingerprint,this.issuerFingerprint)||this.version===6&&!F.equalsUint8Array(e.salt,this.salt))throw new Error("Corresponding signature packet does not match one-pass signature packet");return e.hashed=this.hashed,e.verify.apply(e,arguments)}};cn.prototype.hash=qr.prototype.hash;cn.prototype.toHash=qr.prototype.toHash;cn.prototype.toSign=qr.prototype.toSign;Ct=class r extends Array{static async fromBinary(e,t,i=pe,n=null,s=!1){let o=new r;return await o.read(e,t,i,n,s),o}async read(e,t,i=pe,n=null,s=!1){let o;i.additionalAllowedPackets.length&&(o=F.constructAllowedPackets(i.additionalAllowedPackets),t={...t,...o}),this.stream=Ua(e,async(c,l)=>{let d=Fn(c),u=Gi(l);try{let f=F.isStream(c);for(;;){await u.ready;let h,g;if(await BX(d,f,async m=>{try{if(m.tag===y.packet.marker||m.tag===y.packet.trust||m.tag===y.packet.padding)return;let w=Aee(m.tag,t);try{n?.recordPacket(m.tag,o)}catch(B){if(i.enforceGrammar)throw B;F.printDebugError(B)}w.packets=new r,w.fromStream=F.isStream(m.packet),g=w.fromStream;try{await w.read(m.packet,i)}catch(B){throw B instanceof ft?B:F.wrapError(new tA(`Parsing ${w.constructor.name} failed`),B)}await u.write(w)}catch(w){let B=w instanceof Sd&&m.tag<=39,C=w instanceof ft&&!(w instanceof Sd)&&!i.ignoreUnsupportedPackets,x=w instanceof tA&&!i.ignoreMalformedPackets,Q=$y(m.tag),R=!(w instanceof Sd||w instanceof ft||w instanceof tA);if(B||C||x||Q||R)s?h=w:await u.abort(w);else{let U=new nA(m.tag,m.packet);await u.write(U)}F.printDebugError(w)}}),g&&(f=null),h)throw await d.readToEnd(),h;let p=await d.peekBytes(2);if(!p||!p.length){try{n?.recordEnd()}catch(m){if(i.enforceGrammar)throw m;F.printDebugError(m)}await u.ready,await u.close();return}}}catch(f){await u.abort(f)}});let a=Fn(this.stream);for(;;){let{done:c,value:l}=await a.read();if(c?this.stream=null:this.push(l),c||$y(l.constructor.tag))break}a.releaseLock()}write(){let e=[];for(let t=0;t<this.length;t++){let i=this[t]instanceof nA?this[t].tag:this[t].constructor.tag,n=this[t].write();if(F.isStream(n)&&$y(this[t].constructor.tag)){let s=[],o=0,a=512;e.push(sI(i)),e.push(sr(n,c=>{if(s.push(c),o+=c.length,o>=a){let l=Math.min(Math.log(o)/Math.LN2|0,30),d=2**l,u=F.concat([EX(l)].concat(s));return s=[u.subarray(1+d)],o=s[0].length,u.subarray(0,1+d)}},()=>F.concat([HI(o)].concat(s))))}else{if(F.isStream(n)){let s=0;e.push(sr(Jc(n),o=>{s+=o.length},()=>q6(i,s)))}else e.push(q6(i,n.length));e.push(n)}}return F.concat(e)}filterByTag(...e){let t=new r,i=n=>s=>n===s;for(let n=0;n<this.length;n++)e.some(i(this[n].constructor.tag))&&t.push(this[n]);return t}findPacket(e){return this.find(t=>t.constructor.tag===e)}indexOfTag(...e){let t=[],i=this,n=s=>o=>s===o;for(let s=0;s<this.length;s++)e.some(n(i[s].constructor.tag))&&t.push(s);return t}},ns=class r extends Error{constructor(...e){super(...e),Error.captureStackTrace&&Error.captureStackTrace(this,r),this.name="GrammarError"}};(function(r){r[r.EmptyMessage=0]="EmptyMessage",r[r.PlaintextOrEncryptedData=1]="PlaintextOrEncryptedData",r[r.EncryptedSessionKeys=2]="EncryptedSessionKeys",r[r.StandaloneAdditionalAllowedData=3]="StandaloneAdditionalAllowedData"})(Kt||(Kt={}));qd=class{constructor(){this.state=Kt.EmptyMessage,this.leadingOnePassSignatureCounter=0}recordPacket(e,t){switch(this.state){case Kt.EmptyMessage:case Kt.StandaloneAdditionalAllowedData:switch(e){case y.packet.literalData:case y.packet.compressedData:case y.packet.aeadEncryptedData:case y.packet.symEncryptedIntegrityProtectedData:case y.packet.symmetricallyEncryptedData:this.state=Kt.PlaintextOrEncryptedData;return;case y.packet.signature:if(this.state===Kt.StandaloneAdditionalAllowedData&&--this.leadingOnePassSignatureCounter<0)throw new ns("Trailing signature packet without OPS");return;case y.packet.onePassSignature:if(this.state===Kt.StandaloneAdditionalAllowedData)throw new ns("OPS following StandaloneAdditionalAllowedData");this.leadingOnePassSignatureCounter++;return;case y.packet.publicKeyEncryptedSessionKey:case y.packet.symEncryptedSessionKey:this.state=Kt.EncryptedSessionKeys;return;default:if(!t?.[e])throw new ns(`Unexpected packet ${e} in state ${this.state}`);this.state=Kt.StandaloneAdditionalAllowedData;return}case Kt.PlaintextOrEncryptedData:switch(e){case y.packet.signature:if(--this.leadingOnePassSignatureCounter<0)throw new ns("Trailing signature packet without OPS");this.state=Kt.PlaintextOrEncryptedData;return;default:if(!t?.[e])throw new ns(`Unexpected packet ${e} in state ${this.state}`);this.state=Kt.PlaintextOrEncryptedData;return}case Kt.EncryptedSessionKeys:switch(e){case y.packet.publicKeyEncryptedSessionKey:case y.packet.symEncryptedSessionKey:this.state=Kt.EncryptedSessionKeys;return;case y.packet.symEncryptedIntegrityProtectedData:case y.packet.aeadEncryptedData:case y.packet.symmetricallyEncryptedData:this.state=Kt.PlaintextOrEncryptedData;return;case y.packet.signature:if(--this.leadingOnePassSignatureCounter<0)throw new ns("Trailing signature packet without OPS");this.state=Kt.PlaintextOrEncryptedData;return;default:if(!t?.[e])throw new ns(`Unexpected packet ${e} in state ${this.state}`);this.state=Kt.EncryptedSessionKeys}}}recordEnd(){switch(this.state){case Kt.EmptyMessage:case Kt.PlaintextOrEncryptedData:case Kt.EncryptedSessionKeys:case Kt.StandaloneAdditionalAllowedData:if(this.leadingOnePassSignatureCounter>0)throw new ns("Missing trailing signature packets")}}},hee=F.constructAllowedPackets([Ta,cn,qr]),Vc=class{static get tag(){return y.packet.compressedData}constructor(e=pe){this.packets=null,this.algorithm=e.preferredCompressionAlgorithm,this.compressed=null}async read(e,t=pe){await MI(e,async i=>{this.algorithm=await i.readByte(),this.compressed=i.remainder(),await this.decompress(t)})}write(){return this.compressed===null&&this.compress(),F.concat([new Uint8Array([this.algorithm]),this.compressed])}async decompress(e=pe){let t=y.read(y.compression,this.algorithm),i=yee[t];if(!i)throw new Error(`${t} decompression not supported`);let n=await i(this.compressed);if(e.maxDecompressedMessageSize!==1/0){let s=0;n=sr(n,o=>{if(s+=o.length,s>e.maxDecompressedMessageSize)throw new Error("Maximum decompressed message size exceeded");return o})}(!or(this.compressed)||St(this.compressed))&&(n=await Xt(n)),this.packets=await Ct.fromBinary(n,hee,e,new qd)}compress(){let e=y.read(y.compression,this.algorithm),t=mee[e];if(!t)throw new Error(`${e} compression not supported`);let i=this.packets.write(),n=t(i);(!or(i)||St(i))&&(n=Zc(()=>Xt(n))),this.compressed=n}};wI=r=>({compressor:typeof CompressionStream<"u"&&(()=>new CompressionStream(r)),decompressor:typeof DecompressionStream<"u"&&(()=>new DecompressionStream(r))}),mee={zip:II(wI("deflate-raw").compressor,Zy),zlib:II(wI("deflate").compressor,cee)},yee={uncompressed:r=>r,zip:II(wI("deflate-raw").decompressor,eI),zlib:II(wI("deflate").decompressor,lee),bzip2:pee()},Iee=F.constructAllowedPackets([Ta,Vc,cn,qr]),Od=class r{static get tag(){return y.packet.symEncryptedIntegrityProtectedData}static fromObject({version:e,aeadAlgorithm:t}){if(e!==1&&e!==2)throw new Error("Unsupported SEIPD version");let i=new r;return i.version=e,e===2&&(i.aeadAlgorithm=t),i}constructor(){this.version=null,this.cipherAlgorithm=null,this.aeadAlgorithm=null,this.chunkSizeByte=null,this.salt=null,this.encrypted=null,this.packets=null}async read(e){await MI(e,async t=>{if(this.version=await t.readByte(),this.version!==1&&this.version!==2)throw new ft(`Version ${this.version} of the SEIP packet is unsupported.`);this.version===2&&(this.cipherAlgorithm=await t.readByte(),this.aeadAlgorithm=await t.readByte(),this.chunkSizeByte=await t.readByte(),this.salt=await t.readBytes(32)),this.encrypted=t.remainder()})}write(){return this.version===2?F.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.salt,this.encrypted]):F.concat([new Uint8Array([this.version]),this.encrypted])}async encrypt(e,t,i=pe){let{blockSize:n,keySize:s}=It(e);if(t.length!==s)throw new Error("Unexpected session key size");let o=this.packets.write();if(St(o)&&(o=await Xt(o)),this.version===2)this.cipherAlgorithm=e,this.salt=Nr(32),this.chunkSizeByte=i.aeadChunkSizeByte,this.encrypted=await xI(this,"encrypt",t,o);else{let a=await MU(e),c=new Uint8Array([211,20]),l=F.concat([a,o,c]),d=await hs(y.hash.sha1,eA(l)),u=F.concat([l,d]);this.encrypted=await aA(e,t,u,new Uint8Array(n))}return!0}async decrypt(e,t,i=pe){if(t.length!==It(e).keySize)throw new Error("Unexpected session key size");let n=Jc(this.encrypted);St(n)&&(n=await Xt(n));let s,o=!1;if(this.version===2){if(this.cipherAlgorithm!==e)throw new Error("Unexpected session key algorithm");s=await xI(this,"decrypt",t,n)}else{let{blockSize:a}=It(e),c=await XI(e,t,n,new Uint8Array(a)),l=Rr(eA(c),-20),d=Rr(c,0,-20),u=Promise.all([Xt(await hs(y.hash.sha1,eA(d))),Xt(l)]).then(([h,g])=>{if(!F.equalsUint8Array(h,g))throw new Error("Modification detected.");return new Uint8Array}),f=Rr(d,a+2);s=Rr(f,0,-2),s=ui([s,Zc(()=>u)]),F.isStream(n)&&i.allowUnauthenticatedStream?o=!0:s=await Xt(s)}return this.packets=await Ct.fromBinary(s,Iee,i,new qd,o),!0}};wee=F.constructAllowedPackets([Ta,Vc,cn,qr]),aT=1,c1=class{static get tag(){return y.packet.aeadEncryptedData}constructor(){this.version=aT,this.cipherAlgorithm=null,this.aeadAlgorithm=y.aead.eax,this.chunkSizeByte=null,this.iv=null,this.encrypted=null,this.packets=null}async read(e){await MI(e,async t=>{let i=await t.readByte();if(i!==aT)throw new ft(`Version ${i} of the AEAD-encrypted data packet is not supported.`);this.cipherAlgorithm=await t.readByte(),this.aeadAlgorithm=await t.readByte(),this.chunkSizeByte=await t.readByte();let n=uo(this.aeadAlgorithm,!0);this.iv=await t.readBytes(n.ivLength),this.encrypted=t.remainder()})}write(){return F.concat([new Uint8Array([this.version,this.cipherAlgorithm,this.aeadAlgorithm,this.chunkSizeByte]),this.iv,this.encrypted])}async decrypt(e,t,i=pe){this.packets=await Ct.fromBinary(await xI(this,"decrypt",t,Jc(this.encrypted)),wee,i,new qd)}async encrypt(e,t,i=pe){this.cipherAlgorithm=e;let{ivLength:n}=uo(this.aeadAlgorithm,!0);this.iv=Nr(n),this.chunkSizeByte=i.aeadChunkSizeByte;let s=this.packets.write();this.encrypted=await xI(this,"encrypt",t,s)}},lA=class r{static get tag(){return y.packet.publicKeyEncryptedSessionKey}constructor(){this.version=null,this.publicKeyID=new fo,this.publicKeyVersion=null,this.publicKeyFingerprint=null,this.publicKeyAlgorithm=null,this.sessionKey=null,this.sessionKeyAlgorithm=null,this.encrypted={}}static fromObject({version:e,encryptionKeyPacket:t,anonymousRecipient:i,sessionKey:n,sessionKeyAlgorithm:s}){let o=new r;if(e!==3&&e!==6)throw new Error("Unsupported PKESK version");return o.version=e,e===6&&(o.publicKeyVersion=i?null:t.version,o.publicKeyFingerprint=i?null:t.getFingerprintBytes()),o.publicKeyID=i?fo.wildcard():t.getKeyID(),o.publicKeyAlgorithm=t.algorithm,o.sessionKey=n,o.sessionKeyAlgorithm=s,o}read(e){let t=0;if(this.version=e[t++],this.version!==3&&this.version!==6)throw new ft(`Version ${this.version} of the PKESK packet is unsupported.`);if(this.version===6){let i=e[t++];if(i){this.publicKeyVersion=e[t++];let n=i-1;this.publicKeyFingerprint=e.subarray(t,t+n),t+=n,this.publicKeyVersion>=5?this.publicKeyID.read(this.publicKeyFingerprint):this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8))}else this.publicKeyID=fo.wildcard()}else t+=this.publicKeyID.read(e.subarray(t,t+8));if(this.publicKeyAlgorithm=e[t++],this.encrypted=wZ(this.publicKeyAlgorithm,e.subarray(t)),this.publicKeyAlgorithm===y.publicKey.x25519||this.publicKeyAlgorithm===y.publicKey.x448){if(this.version===3)this.sessionKeyAlgorithm=y.write(y.symmetric,this.encrypted.C.algorithm);else if(this.encrypted.C.algorithm!==null)throw new Error("Unexpected cleartext symmetric algorithm")}}write(){let e=[new Uint8Array([this.version])];return this.version===6?this.publicKeyFingerprint!==null?(e.push(new Uint8Array([this.publicKeyFingerprint.length+1,this.publicKeyVersion])),e.push(this.publicKeyFingerprint)):e.push(new Uint8Array([0])):e.push(this.publicKeyID.write()),e.push(new Uint8Array([this.publicKeyAlgorithm]),Rd(this.publicKeyAlgorithm,this.encrypted)),F.concatUint8Array(e)}async encrypt(e){let t=y.write(y.publicKey,this.publicKeyAlgorithm),i=this.version===3?this.sessionKeyAlgorithm:null,n=e.version===5?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),s=cT(this.version,t,i,this.sessionKey);this.encrypted=await mZ(t,i,e.publicParams,s,n)}async decrypt(e,t){if(this.publicKeyAlgorithm!==e.algorithm)throw new Error("Decryption error");let i=t?cT(this.version,this.publicKeyAlgorithm,t.sessionKeyAlgorithm,t.sessionKey):null,n=e.version===5?e.getFingerprintBytes().subarray(0,20):e.getFingerprintBytes(),s=await yZ(this.publicKeyAlgorithm,e.publicParams,e.privateParams,this.encrypted,n,i),{sessionKey:o,sessionKeyAlgorithm:a}=xee(this.version,this.publicKeyAlgorithm,s,t);if(this.version===3){let c=this.publicKeyAlgorithm!==y.publicKey.x25519&&this.publicKeyAlgorithm!==y.publicKey.x448;if(this.sessionKeyAlgorithm=c?a:this.sessionKeyAlgorithm,o.length!==It(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}this.sessionKey=o}};dA=class r{static get tag(){return y.packet.symEncryptedSessionKey}constructor(e=pe){this.version=e.aeadProtect?6:4,this.sessionKey=null,this.sessionKeyEncryptionAlgorithm=null,this.sessionKeyAlgorithm=null,this.aeadAlgorithm=y.write(y.aead,e.preferredAEADAlgorithm),this.encrypted=null,this.s2k=null,this.iv=null}read(e){let t=0;if(this.version=e[t++],this.version!==4&&this.version!==5&&this.version!==6)throw new ft(`Version ${this.version} of the SKESK packet is unsupported.`);this.version===6&&t++;let i=e[t++];this.version>=5&&(this.aeadAlgorithm=e[t++],this.version===6&&t++);let n=e[t++];if(this.s2k=mI(n),t+=this.s2k.read(e.subarray(t,e.length)),this.version>=5){let s=uo(this.aeadAlgorithm,!0);this.iv=e.subarray(t,t+=s.ivLength)}this.version>=5||t<e.length?(this.encrypted=e.subarray(t,e.length),this.sessionKeyEncryptionAlgorithm=i):this.sessionKeyAlgorithm=i}write(){let e=this.encrypted===null?this.sessionKeyAlgorithm:this.sessionKeyEncryptionAlgorithm,t,i=this.s2k.write();if(this.version===6){let n=i.length,s=3+n+this.iv.length;t=F.concatUint8Array([new Uint8Array([this.version,s,e,this.aeadAlgorithm,n]),i,this.iv,this.encrypted])}else this.version===5?t=F.concatUint8Array([new Uint8Array([this.version,e,this.aeadAlgorithm]),i,this.iv,this.encrypted]):(t=F.concatUint8Array([new Uint8Array([this.version,e]),i]),this.encrypted!==null&&(t=F.concatUint8Array([t,this.encrypted])));return t}async decrypt(e,t=pe){let i=this.sessionKeyEncryptionAlgorithm!==null?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm,{blockSize:n,keySize:s}=It(i),o=await this.s2k.produceKey(e,s,t);if(this.version>=5){let a=uo(this.aeadAlgorithm,!0),c=new Uint8Array([192|r.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),l=this.version===6?await Fa(y.hash.sha256,o,new Uint8Array,c,s):o,d=await a(i,l);this.sessionKey=await d.decrypt(this.encrypted,this.iv,c)}else if(this.encrypted!==null){let a=await XI(i,o,this.encrypted,new Uint8Array(n));if(this.sessionKeyAlgorithm=y.write(y.symmetric,a[0]),this.sessionKey=a.subarray(1,a.length),this.sessionKey.length!==It(this.sessionKeyAlgorithm).keySize)throw new Error("Unexpected session key size")}else this.sessionKey=o}async encrypt(e,t=pe){let i=this.sessionKeyEncryptionAlgorithm!==null?this.sessionKeyEncryptionAlgorithm:this.sessionKeyAlgorithm;this.sessionKeyEncryptionAlgorithm=i,this.s2k=HU(t),this.s2k.generateSalt();let{blockSize:n,keySize:s}=It(i),o=await this.s2k.produceKey(e,s,t);if(this.sessionKey===null&&(this.sessionKey=ZB(this.sessionKeyAlgorithm)),this.version>=5){let a=uo(this.aeadAlgorithm);this.iv=Nr(a.ivLength);let c=new Uint8Array([192|r.tag,this.version,this.sessionKeyEncryptionAlgorithm,this.aeadAlgorithm]),l=this.version===6?await Fa(y.hash.sha256,o,new Uint8Array,c,s):o,d=await a(i,l);this.encrypted=await d.encrypt(this.sessionKey,this.iv,c)}else{let a=F.concatUint8Array([new Uint8Array([this.sessionKeyAlgorithm]),this.sessionKey]);this.encrypted=await aA(i,o,a,new Uint8Array(n))}}},gs=class r{static get tag(){return y.packet.publicKey}constructor(e=new Date,t=pe){this.version=t.v6Keys?6:4,this.created=F.normalizeDate(e),this.algorithm=null,this.publicParams=null,this.expirationTimeV3=0,this.fingerprint=null,this.keyID=null}static fromSecretKeyPacket(e){let t=new r,{version:i,created:n,algorithm:s,publicParams:o,keyID:a,fingerprint:c}=e;return t.version=i,t.created=n,t.algorithm=s,t.publicParams=o,t.keyID=a,t.fingerprint=c,t}async read(e,t=pe){let i=0;if(this.version=e[i++],this.version===5&&!t.enableParsingV5Entities)throw new ft("Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed");if(this.version===4||this.version===5||this.version===6){this.created=F.readDate(e.subarray(i,i+4)),i+=4,this.algorithm=e[i++],this.version>=5&&(i+=4);let{read:n,publicParams:s}=IZ(this.algorithm,e.subarray(i));if(this.version===6&&s.oid&&(s.oid.getName()===y.curve.curve25519Legacy||s.oid.getName()===y.curve.ed25519Legacy))throw new Error("Legacy curve25519 cannot be used with v6 keys");return this.publicParams=s,i+=n,await this.computeFingerprintAndKeyID(),i}throw new ft(`Version ${this.version} of the key packet is unsupported.`)}write(){let e=[];e.push(new Uint8Array([this.version])),e.push(F.writeDate(this.created)),e.push(new Uint8Array([this.algorithm]));let t=Rd(this.algorithm,this.publicParams);return this.version>=5&&e.push(F.writeNumber(t.length,4)),e.push(t),F.concatUint8Array(e)}writeForHash(e){let t=this.writePublicKey(),i=149+e,n=e>=5?4:2;return F.concatUint8Array([new Uint8Array([i]),F.writeNumber(t.length,n),t])}isDecrypted(){return null}getCreationTime(){return this.created}getKeyID(){return this.keyID}async computeFingerprintAndKeyID(){if(await this.computeFingerprint(),this.keyID=new fo,this.version>=5)this.keyID.read(this.fingerprint.subarray(0,8));else if(this.version===4)this.keyID.read(this.fingerprint.subarray(12,20));else throw new Error("Unsupported key version")}async computeFingerprint(){let e=this.writeForHash(this.version);if(this.version>=5)this.fingerprint=await hs(y.hash.sha256,e);else if(this.version===4)this.fingerprint=await hs(y.hash.sha1,e);else throw new Error("Unsupported key version")}getFingerprintBytes(){return this.fingerprint}getFingerprint(){return F.uint8ArrayToHex(this.getFingerprintBytes())}hasSameFingerprintAs(e){return this.version===e.version&&F.equalsUint8Array(this.writePublicKey(),e.writePublicKey())}getAlgorithmInfo(){let e={};e.algorithm=y.read(y.publicKey,this.algorithm);let t=this.publicParams.n||this.publicParams.p;return t?e.bits=F.uint8ArrayBitLength(t):this.publicParams.oid&&(e.curve=this.publicParams.oid.getName()),e}};gs.prototype.readPublicKey=gs.prototype.read;gs.prototype.writePublicKey=gs.prototype.write;Cee=F.constructAllowedPackets([Ta,Vc,cn,qr]),l1=class{static get tag(){return y.packet.symmetricallyEncryptedData}constructor(){this.encrypted=null,this.packets=null}read(e){this.encrypted=e}write(){return this.encrypted}async decrypt(e,t,i=pe){if(!i.allowUnauthenticatedMessages)throw new Error("Message is not authenticated.");let{blockSize:n}=It(e),s=await Xt(Jc(this.encrypted)),o=await XI(e,t,s.subarray(n+2),s.subarray(2,n+2));this.packets=await Ct.fromBinary(o,Cee,i)}async encrypt(e,t,i=pe){let n=this.packets.write(),{blockSize:s}=It(e),o=await MU(e),a=await aA(e,t,o,new Uint8Array(s)),c=await aA(e,t,n,a.subarray(2));this.encrypted=F.concat([a,c])}},CI=class r extends gs{static get tag(){return y.packet.publicSubkey}constructor(e,t){super(e,t)}static fromSecretSubkeyPacket(e){let t=new r,{version:i,created:n,algorithm:s,publicParams:o,keyID:a,fingerprint:c}=e;return t.version=i,t.created=n,t.algorithm=s,t.publicParams=o,t.keyID=a,t.fingerprint=c,t}},d1=class r{static get tag(){return y.packet.userAttribute}constructor(){this.attributes=[]}read(e){let t=0;for(;t<e.length;){let i=lU(e.subarray(t,e.length));t+=i.offset,this.attributes.push(F.uint8ArrayToString(e.subarray(t,t+i.len))),t+=i.len}}write(){let e=[];for(let t=0;t<this.attributes.length;t++)e.push(HI(this.attributes[t].length)),e.push(F.stringToUint8Array(this.attributes[t]));return F.concatUint8Array(e)}equals(e){return!e||!(e instanceof r)?!1:this.attributes.every(function(t,i){return t===e.attributes[i]})}},uA=class extends gs{static get tag(){return y.packet.secretKey}constructor(e=new Date,t=pe){super(e,t),this.keyMaterial=null,this.isEncrypted=null,this.s2kUsage=0,this.s2k=null,this.symmetric=null,this.aead=null,this.isLegacyAEAD=null,this.privateParams=null,this.usedModernAEAD=null}async read(e,t=pe){let i=await this.readPublicKey(e,t),n=i;this.s2kUsage=e[i++],this.version===5&&i++,this.version===6&&this.s2kUsage&&i++;try{if(this.s2kUsage===255||this.s2kUsage===254||this.s2kUsage===253){this.symmetric=e[i++],this.s2kUsage===253&&(this.aead=e[i++]),this.version===6&&i++;let s=e[i++];if(this.s2k=mI(s),i+=this.s2k.read(e.subarray(i,e.length)),this.s2k.type==="gnu-dummy")return}else this.s2kUsage&&(this.symmetric=this.s2kUsage);this.s2kUsage&&(this.isLegacyAEAD=this.s2kUsage===253&&(this.version===5||this.version===4&&t.parseAEADEncryptedV4KeysAsLegacy),this.s2kUsage!==253||this.isLegacyAEAD?(this.iv=e.subarray(i,i+It(this.symmetric).blockSize),this.usedModernAEAD=!1):(this.iv=e.subarray(i,i+uo(this.aead).ivLength),this.usedModernAEAD=!0),i+=this.iv.length)}catch(s){if(!this.s2kUsage)throw s;this.unparseableKeyMaterial=e.subarray(n),this.isEncrypted=!0}if(this.version===5&&(i+=4),this.keyMaterial=e.subarray(i),this.isEncrypted=!!this.s2kUsage,!this.isEncrypted){let s;if(this.version===6)s=this.keyMaterial;else if(s=this.keyMaterial.subarray(0,-2),!F.equalsUint8Array(F.writeChecksum(s),this.keyMaterial.subarray(-2)))throw new Error("Key checksum mismatch");try{let{read:o,privateParams:a}=$6(this.algorithm,s,this.publicParams);if(o<s.length)throw new Error("Error reading MPIs");this.privateParams=a}catch(o){throw o instanceof ft?o:new Error("Error reading MPIs")}}}write(){let e=this.writePublicKey();if(this.unparseableKeyMaterial)return F.concatUint8Array([e,this.unparseableKeyMaterial]);let t=[e];t.push(new Uint8Array([this.s2kUsage]));let i=[];if(this.s2kUsage===255||this.s2kUsage===254||this.s2kUsage===253){i.push(this.symmetric),this.s2kUsage===253&&i.push(this.aead);let n=this.s2k.write();this.version===6&&i.push(n.length),i.push(...n)}return this.s2kUsage&&this.s2k.type!=="gnu-dummy"&&i.push(...this.iv),(this.version===5||this.version===6&&this.s2kUsage)&&t.push(new Uint8Array([i.length])),t.push(new Uint8Array(i)),this.isDummy()||(this.s2kUsage||(this.keyMaterial=Rd(this.algorithm,this.privateParams)),this.version===5&&t.push(F.writeNumber(this.keyMaterial.length,4)),t.push(this.keyMaterial),!this.s2kUsage&&this.version!==6&&t.push(F.writeChecksum(this.keyMaterial))),F.concatUint8Array(t)}isDecrypted(){return this.isEncrypted===!1}isMissingSecretKeyMaterial(){return this.unparseableKeyMaterial!==void 0||this.isDummy()}isDummy(){return!!(this.s2k&&this.s2k.type==="gnu-dummy")}makeDummy(e=pe){this.isDummy()||(this.isDecrypted()&&this.clearPrivateParams(),delete this.unparseableKeyMaterial,this.isEncrypted=null,this.keyMaterial=null,this.s2k=mI(y.s2k.gnu,e),this.s2k.algorithm=0,this.s2k.c=0,this.s2k.type="gnu-dummy",this.s2kUsage=254,this.symmetric=y.symmetric.aes256,this.isLegacyAEAD=null,this.usedModernAEAD=null)}async encrypt(e,t=pe){if(this.isDummy())return;if(!this.isDecrypted())throw new Error("Key packet is already encrypted");if(!e)throw new Error("A non-empty passphrase is required for key encryption.");this.s2k=HU(t),this.s2k.generateSalt();let i=Rd(this.algorithm,this.privateParams);this.symmetric=y.symmetric.aes256;let{blockSize:n}=It(this.symmetric);if(t.aeadProtect){this.s2kUsage=253,this.aead=t.preferredAEADAlgorithm;let s=uo(this.aead);this.isLegacyAEAD=this.version===5,this.usedModernAEAD=!this.isLegacyAEAD;let o=sI(this.constructor.tag),a=await bB(this.version,this.s2k,e,this.symmetric,this.aead,o,this.isLegacyAEAD,t),c=await s(this.symmetric,a);this.iv=this.isLegacyAEAD?Nr(n):Nr(s.ivLength);let l=this.isLegacyAEAD?new Uint8Array:F.concatUint8Array([o,this.writePublicKey()]);this.keyMaterial=await c.encrypt(i,this.iv.subarray(0,s.ivLength),l)}else{this.s2kUsage=254,this.usedModernAEAD=!1;let s=await bB(this.version,this.s2k,e,this.symmetric,void 0,void 0,void 0,t);this.iv=Nr(n),this.keyMaterial=await aA(this.symmetric,s,F.concatUint8Array([i,await hs(y.hash.sha1,i)]),this.iv)}}async decrypt(e,t=pe){if(this.isDummy())return!1;if(this.unparseableKeyMaterial)throw new Error("Key packet cannot be decrypted: unsupported S2K or cipher algo");if(this.isDecrypted())throw new Error("Key packet is already decrypted.");let i,n=sI(this.constructor.tag);if(this.s2kUsage===254||this.s2kUsage===253)i=await bB(this.version,this.s2k,e,this.symmetric,this.aead,n,this.isLegacyAEAD,t);else throw this.s2kUsage===255?new Error("Encrypted private key is authenticated using an insecure two-byte hash"):new Error("Private key is encrypted using an insecure S2K function: unsalted MD5");let s;if(this.s2kUsage===253){let o=uo(this.aead,!0),a=await o(this.symmetric,i);try{let c=this.isLegacyAEAD?new Uint8Array:F.concatUint8Array([n,this.writePublicKey()]);s=await a.decrypt(this.keyMaterial,this.iv.subarray(0,o.ivLength),c)}catch(c){throw c.message==="Authentication tag mismatch"?new Error("Incorrect key passphrase: "+c.message):c}}else{let o=await XI(this.symmetric,i,this.keyMaterial,this.iv);s=o.subarray(0,-20);let a=await hs(y.hash.sha1,s);if(!F.equalsUint8Array(a,o.subarray(-20)))throw new Error("Incorrect key passphrase")}try{let{privateParams:o}=$6(this.algorithm,s,this.publicParams);this.privateParams=o}catch{throw new Error("Error reading MPIs")}this.isEncrypted=!1,this.keyMaterial=null,this.s2kUsage=0,this.aead=null,this.symmetric=null,this.isLegacyAEAD=null}async validate(){if(this.isDummy())return;if(!this.isDecrypted())throw new Error("Key is not decrypted");if(this.usedModernAEAD)return;let e;try{e=await CZ(this.algorithm,this.publicParams,this.privateParams)}catch{e=!1}if(!e)throw new Error("Key is invalid")}async generate(e,t){if(this.version===6&&(this.algorithm===y.publicKey.ecdh&&t===y.curve.curve25519Legacy||this.algorithm===y.publicKey.eddsaLegacy))throw new Error(`Cannot generate v6 keys of type 'ecc' with curve ${t}. Generate a key of type 'curve25519' instead`);let{privateParams:i,publicParams:n}=await xZ(this.algorithm,e,t);this.privateParams=i,this.publicParams=n,this.isEncrypted=!1}clearPrivateParams(){this.isMissingSecretKeyMaterial()||(Object.keys(this.privateParams).forEach(e=>{this.privateParams[e].fill(0),delete this.privateParams[e]}),this.privateParams=null,this.isEncrypted=!0)}};EI=class r{static get tag(){return y.packet.userID}constructor(){this.userID="",this.name="",this.email="",this.comment=""}static fromObject(e){if(F.isString(e)||e.name&&!F.isString(e.name)||e.email&&!F.isEmailAddress(e.email)||e.comment&&!F.isString(e.comment))throw new Error("Invalid user ID format");let t=new r;Object.assign(t,e);let i=[];return t.name&&i.push(t.name),t.comment&&i.push(`(${t.comment})`),t.email&&i.push(`<${t.email}>`),t.userID=i.join(" "),t}read(e,t=pe){let i=F.decodeUTF8(e);if(i.length>t.maxUserIDLength)throw new Error("User ID string is too long");let n=a=>/^[^\s@]+@[^\s@]+$/.test(a),s=i.indexOf("<"),o=i.lastIndexOf(">");if(s!==-1&&o!==-1&&o>s){let a=i.substring(s+1,o);if(n(a)){this.email=a;let c=i.substring(0,s).trim(),l=c.indexOf("("),d=c.lastIndexOf(")");l!==-1&&d!==-1&&d>l?(this.comment=c.substring(l+1,d).trim(),this.name=c.substring(0,l).trim()):(this.name=c,this.comment="")}}else n(i.trim())&&(this.email=i.trim(),this.name="",this.comment="");this.userID=i}write(){return F.encodeUTF8(this.userID)}equals(e){return e&&e.userID===this.userID}},BI=class extends uA{static get tag(){return y.packet.secretSubkey}constructor(e=new Date,t=pe){super(e,t)}},bI=class{constructor(e){this.packets=e||new Ct}write(){return this.packets.write()}armor(e=pe){let t=this.packets.some(i=>i.constructor.tag===qr.tag&&i.version!==6);return BA(y.armor.signature,this.write(),void 0,void 0,void 0,t,e)}getSigningKeyIDs(){return this.packets.map(e=>e.issuerKeyID)}};A1=class r{constructor(e,t){this.userID=e.constructor.tag===y.packet.userID?e:null,this.userAttribute=e.constructor.tag===y.packet.userAttribute?e:null,this.selfCertifications=[],this.otherCertifications=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){let e=new Ct;return e.push(this.userID||this.userAttribute),e.push(...this.revocationSignatures),e.push(...this.selfCertifications),e.push(...this.otherCertifications),e}clone(){let e=new r(this.userID||this.userAttribute,this.mainKey);return e.selfCertifications=[...this.selfCertifications],e.otherCertifications=[...this.otherCertifications],e.revocationSignatures=[...this.revocationSignatures],e}async certify(e,t,i){let n=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:n},o=new r(s.userID||s.userAttribute,this.mainKey);return o.otherCertifications=await Promise.all(e.map(async function(a){if(!a.isPrivate())throw new Error("Need private key for signing");if(a.hasSameFingerprintAs(n))throw new Error("The user's own key can only be used for self-certifications");let c=await a.getSigningKey(void 0,t,void 0,i);return As(s,[a],c.keyPacket,{signatureType:y.signature.certGeneric,keyFlags:[y.keyFlags.certifyKeys|y.keyFlags.signData]},t,void 0,void 0,void 0,i)})),await o.update(this,t,i),o}async isRevoked(e,t,i=new Date,n=pe){let s=this.mainKey.keyPacket;return Md(s,y.signature.certRevocation,{key:s,userID:this.userID,userAttribute:this.userAttribute},this.revocationSignatures,e,t,i,n)}async verifyCertificate(e,t,i=new Date,n){let s=this,o=this.mainKey.keyPacket,a={userID:this.userID,userAttribute:this.userAttribute,key:o},{issuerKeyID:c}=e,l=t.filter(d=>d.getKeys(c).length>0);return l.length===0?null:(await Promise.all(l.map(async d=>{let u=await d.getSigningKey(c,e.created,void 0,n);if(e.revoked||await s.isRevoked(e,u.keyPacket,i,n))throw new Error("User certificate is revoked");try{await e.verify(u.keyPacket,y.signature.certGeneric,a,i,void 0,n)}catch(f){throw F.wrapError("User certificate is invalid",f)}})),!0)}async verifyAllCertifications(e,t=new Date,i){let n=this,s=this.selfCertifications.concat(this.otherCertifications);return Promise.all(s.map(async o=>({keyID:o.issuerKeyID,valid:await n.verifyCertificate(o,e,t,i).catch(()=>!1)})))}async verify(e=new Date,t){if(!this.selfCertifications.length)throw new Error("No self-certifications found");let i=this,n=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:n},o;for(let a=this.selfCertifications.length-1;a>=0;a--)try{let c=this.selfCertifications[a];if(c.revoked||await i.isRevoked(c,void 0,e,t))throw new Error("Self-certification is revoked");try{await c.verify(n,y.signature.certGeneric,s,e,void 0,t)}catch(l){throw F.wrapError("Self-certification is invalid",l)}return!0}catch(c){o=c}throw o}async update(e,t,i){let n=this.mainKey.keyPacket,s={userID:this.userID,userAttribute:this.userAttribute,key:n};await Gc(e,this,"selfCertifications",t,async function(o){try{return await o.verify(n,y.signature.certGeneric,s,t,!1,i),!0}catch{return!1}}),await Gc(e,this,"otherCertifications",t),await Gc(e,this,"revocationSignatures",t,function(o){return Md(n,y.signature.certRevocation,s,[o],void 0,void 0,t,i)})}async revoke(e,{flag:t=y.reasonForRevocation.noReason,string:i=""}={},n=new Date,s=pe){let o={userID:this.userID,userAttribute:this.userAttribute,key:e},a=new r(o.userID||o.userAttribute,this.mainKey);return a.revocationSignatures.push(await As(o,[],e,{signatureType:y.signature.certRevocation,reasonForRevocationFlag:y.write(y.reasonForRevocation,t),reasonForRevocationString:i},n,void 0,void 0,!1,s)),await a.update(this),a}},fA=class r{constructor(e,t){this.keyPacket=e,this.bindingSignatures=[],this.revocationSignatures=[],this.mainKey=t}toPacketList(){let e=new Ct;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.bindingSignatures),e}clone(){let e=new r(this.keyPacket,this.mainKey);return e.bindingSignatures=[...this.bindingSignatures],e.revocationSignatures=[...this.revocationSignatures],e}async isRevoked(e,t,i=new Date,n=pe){let s=this.mainKey.keyPacket;return Md(s,y.signature.subkeyRevocation,{key:s,bind:this.keyPacket},this.revocationSignatures,e,t,i,n)}async verify(e=new Date,t=pe){let i=this.mainKey.keyPacket,n={key:i,bind:this.keyPacket},s=await Sn(this.bindingSignatures,i,y.signature.subkeyBinding,n,e,t);if(s.revoked||await this.isRevoked(s,null,e,t))throw new Error("Subkey is revoked");if(u1(this.keyPacket,s,e))throw new Error("Subkey is expired");return s}async getExpirationTime(e=new Date,t=pe){let i=this.mainKey.keyPacket,n={key:i,bind:this.keyPacket},s;try{s=await Sn(this.bindingSignatures,i,y.signature.subkeyBinding,n,e,t)}catch{return null}let o=vI(this.keyPacket,s),a=s.getExpirationTime();return o<a?o:a}async update(e,t=new Date,i=pe){let n=this.mainKey.keyPacket;if(!this.hasSameFingerprintAs(e))throw new Error("Subkey update method: fingerprints of subkeys not equal");this.keyPacket.constructor.tag===y.packet.publicSubkey&&e.keyPacket.constructor.tag===y.packet.secretSubkey&&(this.keyPacket=e.keyPacket);let s=this,o={key:n,bind:s.keyPacket};await Gc(e,this,"bindingSignatures",t,async function(a){for(let c=0;c<s.bindingSignatures.length;c++)if(s.bindingSignatures[c].issuerKeyID.equals(a.issuerKeyID))return a.created>s.bindingSignatures[c].created&&(s.bindingSignatures[c]=a),!1;try{return await a.verify(n,y.signature.subkeyBinding,o,t,void 0,i),!0}catch{return!1}}),await Gc(e,this,"revocationSignatures",t,function(a){return Md(n,y.signature.subkeyRevocation,o,[a],void 0,void 0,t,i)})}async revoke(e,{flag:t=y.reasonForRevocation.noReason,string:i=""}={},n=new Date,s=pe){let o={key:e,bind:this.keyPacket},a=new r(this.keyPacket,this.mainKey);return a.revocationSignatures.push(await As(o,[],e,{signatureType:y.signature.subkeyRevocation,reasonForRevocationFlag:y.write(y.reasonForRevocation,t),reasonForRevocationString:i},n,void 0,void 0,!1,s)),await a.update(this),a}hasSameFingerprintAs(e){return this.keyPacket.hasSameFingerprintAs(e.keyPacket||e)}};["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","isDecrypted"].forEach(r=>{fA.prototype[r]=function(){return this.keyPacket[r]()}});kee=F.constructAllowedPackets([qr]),fT=new Set([y.packet.publicKey,y.packet.privateKey]),AT=new Set([y.packet.publicKey,y.packet.privateKey,y.packet.publicSubkey,y.packet.privateSubkey]),kI=class{packetListToStructure(e,t=new Set){let i,n,s,o;for(let a of e){if(a instanceof nA){AT.has(a.tag)&&!o&&(fT.has(a.tag)?o=fT:o=AT);continue}let c=a.constructor.tag;if(o){if(!o.has(c))continue;o=null}if(t.has(c))throw new Error(`Unexpected packet type: ${c}`);switch(c){case y.packet.publicKey:case y.packet.secretKey:if(this.keyPacket)throw new Error("Key block contains multiple keys");if(this.keyPacket=a,n=this.getKeyID(),!n)throw new Error("Missing Key ID");break;case y.packet.userID:case y.packet.userAttribute:i=new A1(a,this),this.users.push(i);break;case y.packet.publicSubkey:case y.packet.secretSubkey:i=null,s=new fA(a,this),this.subkeys.push(s);break;case y.packet.signature:switch(a.signatureType){case y.signature.certGeneric:case y.signature.certPersona:case y.signature.certCasual:case y.signature.certPositive:if(!i){F.printDebug("Dropping certification signatures without preceding user packet");continue}a.issuerKeyID.equals(n)?i.selfCertifications.push(a):i.otherCertifications.push(a);break;case y.signature.certRevocation:i?i.revocationSignatures.push(a):this.directSignatures.push(a);break;case y.signature.key:this.directSignatures.push(a);break;case y.signature.subkeyBinding:if(!s){F.printDebug("Dropping subkey binding signature without preceding subkey packet");continue}s.bindingSignatures.push(a);break;case y.signature.keyRevocation:this.revocationSignatures.push(a);break;case y.signature.subkeyRevocation:if(!s){F.printDebug("Dropping subkey revocation signature without preceding subkey packet");continue}s.revocationSignatures.push(a);break}break}}}toPacketList(){let e=new Ct;return e.push(this.keyPacket),e.push(...this.revocationSignatures),e.push(...this.directSignatures),this.users.map(t=>e.push(...t.toPacketList())),this.subkeys.map(t=>e.push(...t.toPacketList())),e}clone(e=!1){let t=new this.constructor(this.toPacketList());return e&&t.getKeys().forEach(i=>{if(i.keyPacket=Object.create(Object.getPrototypeOf(i.keyPacket),Object.getOwnPropertyDescriptors(i.keyPacket)),!i.keyPacket.isDecrypted())return;let n={};Object.keys(i.keyPacket.privateParams).forEach(s=>{n[s]=new Uint8Array(i.keyPacket.privateParams[s])}),i.keyPacket.privateParams=n}),t}getSubkeys(e=null){return this.subkeys.filter(i=>!e||i.getKeyID().equals(e,!0))}getKeys(e=null){let t=[];return(!e||this.getKeyID().equals(e,!0))&&t.push(this),t.concat(this.getSubkeys(e))}getKeyIDs(){return this.getKeys().map(e=>e.getKeyID())}getUserIDs(){return this.users.map(e=>e.userID?e.userID.userID:null).filter(e=>e!==null)}write(){return this.toPacketList().write()}async getSigningKey(e=null,t=new Date,i={},n=pe){await this.verifyPrimaryKey(t,i,n);let s=this.keyPacket;try{ka(s,n)}catch(c){throw F.wrapError("Could not verify primary key",c)}let o=this.subkeys.slice().sort((c,l)=>l.keyPacket.created-c.keyPacket.created||l.keyPacket.algorithm-c.keyPacket.algorithm),a;for(let c of o)if(!e||c.getKeyID().equals(e))try{await c.verify(t,n);let l={key:s,bind:c.keyPacket},d=await Sn(c.bindingSignatures,s,y.signature.subkeyBinding,l,t,n);if(!lT(c.keyPacket,d,n))continue;if(!d.embeddedSignature)throw new Error("Missing embedded signature");return await Sn([d.embeddedSignature],c.keyPacket,y.signature.keyBinding,l,t,n),ka(c.keyPacket,n),c}catch(l){a=l}try{let c=await this.getPrimarySelfSignature(t,i,n);if((!e||s.getKeyID().equals(e))&&lT(s,c,n))return ka(s,n),this}catch(c){a=c}throw F.wrapError("Could not find valid signing key packet in key "+this.getKeyID().toHex(),a)}async getEncryptionKey(e,t=new Date,i={},n=pe){await this.verifyPrimaryKey(t,i,n);let s=this.keyPacket;try{ka(s,n)}catch(c){throw F.wrapError("Could not verify primary key",c)}let o=this.subkeys.slice().sort((c,l)=>l.keyPacket.created-c.keyPacket.created||l.keyPacket.algorithm-c.keyPacket.algorithm),a;for(let c of o)if(!e||c.getKeyID().equals(e))try{await c.verify(t,n);let l={key:s,bind:c.keyPacket},d=await Sn(c.bindingSignatures,s,y.signature.subkeyBinding,l,t,n);if(dT(c.keyPacket,d,n))return ka(c.keyPacket,n),c}catch(l){a=l}try{let c=await this.getPrimarySelfSignature(t,i,n);if((!e||s.getKeyID().equals(e))&&dT(s,c,n))return ka(s,n),this}catch(c){a=c}throw F.wrapError("Could not find valid encryption key packet in key "+this.getKeyID().toHex(),a)}async isRevoked(e,t,i=new Date,n=pe){return Md(this.keyPacket,y.signature.keyRevocation,{key:this.keyPacket},this.revocationSignatures,e,t,i,n)}async verifyPrimaryKey(e=new Date,t={},i=pe){let n=this.keyPacket;if(await this.isRevoked(null,null,e,i))throw new Error("Primary key is revoked");let s=await this.getPrimarySelfSignature(e,t,i);if(u1(n,s,e))throw new Error("Primary key is expired");if(n.version!==6){let o=await Sn(this.directSignatures,n,y.signature.key,{key:n},e,i).catch(()=>{});if(o&&u1(n,o,e))throw new Error("Primary key is expired")}}async getExpirationTime(e,t=pe){let i;try{let n=await this.getPrimarySelfSignature(null,e,t),s=vI(this.keyPacket,n),o=n.getExpirationTime(),a=this.keyPacket.version!==6&&await Sn(this.directSignatures,this.keyPacket,y.signature.key,{key:this.keyPacket},null,t).catch(()=>{});if(a){let c=vI(this.keyPacket,a);i=Math.min(s,o,c)}else i=s<o?s:o}catch{i=null}return F.normalizeDate(i)}async getPrimarySelfSignature(e=new Date,t={},i=pe){let n=this.keyPacket;if(n.version===6)return Sn(this.directSignatures,n,y.signature.key,{key:n},e,i);let{selfCertification:s}=await this.getPrimaryUser(e,t,i);return s}async getPrimaryUser(e=new Date,t={},i=pe){let n=this.keyPacket,s=[],o;for(let d=0;d<this.users.length;d++)try{let u=this.users[d];if(!u.userID)continue;if(t.name!==void 0&&u.userID.name!==t.name||t.email!==void 0&&u.userID.email!==t.email||t.comment!==void 0&&u.userID.comment!==t.comment)throw new Error("Could not find user that matches that user ID");let f={userID:u.userID,key:n},h=await Sn(u.selfCertifications,n,y.signature.certGeneric,f,e,i);s.push({index:d,user:u,selfCertification:h})}catch(u){o=u}if(!s.length)throw o||new Error("Could not find primary user");await Promise.all(s.map(async d=>{d.selfCertification.revoked||await d.user.isRevoked(d.selfCertification,null,e,i)}));let a=s.sort(function(d,u){let f=d.selfCertification,h=u.selfCertification;return h.revoked-f.revoked||f.isPrimaryUserID-h.isPrimaryUserID||f.created-h.created}).pop(),{user:c,selfCertification:l}=a;if(l.revoked||await c.isRevoked(l,null,e,i))throw new Error("Primary user is revoked");return a}async update(e,t=new Date,i=pe){if(!this.hasSameFingerprintAs(e))throw new Error("Primary key fingerprints must be equal to update the key");if(!this.isPrivate()&&e.isPrivate()){if(!(this.subkeys.length===e.subkeys.length&&this.subkeys.every(o=>e.subkeys.some(a=>o.hasSameFingerprintAs(a)))))throw new Error("Cannot update public key with private key if subkeys mismatch");return e.update(this,i)}let n=this.clone();return await Gc(e,n,"revocationSignatures",t,s=>Md(n.keyPacket,y.signature.keyRevocation,n,[s],null,e.keyPacket,t,i)),await Gc(e,n,"directSignatures",t),await Promise.all(e.users.map(async s=>{let o=n.users.filter(a=>s.userID&&s.userID.equals(a.userID)||s.userAttribute&&s.userAttribute.equals(a.userAttribute));if(o.length>0)await Promise.all(o.map(a=>a.update(s,t,i)));else{let a=s.clone();a.mainKey=n,n.users.push(a)}})),await Promise.all(e.subkeys.map(async s=>{let o=n.subkeys.filter(a=>a.hasSameFingerprintAs(s));if(o.length>0)await Promise.all(o.map(a=>a.update(s,t,i)));else{let a=s.clone();a.mainKey=n,n.subkeys.push(a)}})),n}async getRevocationCertificate(e=new Date,t=pe){let i={key:this.keyPacket},n=await Sn(this.revocationSignatures,this.keyPacket,y.signature.keyRevocation,i,e,t),s=new Ct;s.push(n);let o=this.keyPacket.version!==6;return BA(y.armor.publicKey,s.write(),null,null,"This is a revocation certificate",o,t)}async applyRevocationCertificate(e,t=new Date,i=pe){let n=await LI(e),o=(await Ct.fromBinary(n.data,kee,i)).findPacket(y.packet.signature);if(!o||o.signatureType!==y.signature.keyRevocation)throw new Error("Could not find revocation signature packet");if(!o.issuerKeyID.equals(this.getKeyID()))throw new Error("Revocation signature does not match key");try{await o.verify(this.keyPacket,y.signature.keyRevocation,{key:this.keyPacket},t,void 0,i)}catch(c){throw F.wrapError("Could not verify revocation signature",c)}let a=this.clone();return a.revocationSignatures.push(o),a}async signPrimaryUser(e,t,i,n=pe){let{index:s,user:o}=await this.getPrimaryUser(t,i,n),a=await o.certify(e,t,n),c=this.clone();return c.users[s]=a,c}async signAllUsers(e,t=new Date,i=pe){let n=this.clone();return n.users=await Promise.all(this.users.map(function(s){return s.certify(e,t,i)})),n}async verifyPrimaryUser(e,t=new Date,i,n=pe){let s=this.keyPacket,{user:o}=await this.getPrimaryUser(t,i,n);return e?await o.verifyAllCertifications(e,t,n):[{keyID:s.getKeyID(),valid:await o.verify(t,n).catch(()=>!1)}]}async verifyAllUsers(e,t=new Date,i=pe){let n=this.keyPacket,s=[];return await Promise.all(this.users.map(async o=>{let a=e?await o.verifyAllCertifications(e,t,i):[{keyID:n.getKeyID(),valid:await o.verify(t,i).catch(()=>!1)}];s.push(...a.map(c=>({userID:o.userID?o.userID.userID:null,userAttribute:o.userAttribute,keyID:c.keyID,valid:c.valid})))})),s}};["getKeyID","getFingerprint","getAlgorithmInfo","getCreationTime","hasSameFingerprintAs"].forEach(r=>{kI.prototype[r]=fA.prototype[r]});SI=class extends kI{constructor(e){if(super(),this.keyPacket=null,this.revocationSignatures=[],this.directSignatures=[],this.users=[],this.subkeys=[],e&&(this.packetListToStructure(e,new Set([y.packet.secretKey,y.packet.secretSubkey])),!this.keyPacket))throw new Error("Invalid key: missing public-key packet")}isPrivate(){return!1}toPublic(){return this}armor(e=pe){let t=this.keyPacket.version!==6;return BA(y.armor.publicKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}},DI=class r extends SI{constructor(e){if(super(),this.packetListToStructure(e,new Set([y.packet.publicKey,y.packet.publicSubkey])),!this.keyPacket)throw new Error("Invalid key: missing private-key packet")}isPrivate(){return!0}toPublic(){let e=new Ct,t=this.toPacketList();for(let i of t)switch(i.constructor.tag){case y.packet.secretKey:{let n=gs.fromSecretKeyPacket(i);e.push(n);break}case y.packet.secretSubkey:{let n=CI.fromSecretSubkeyPacket(i);e.push(n);break}default:e.push(i)}return new SI(e)}armor(e=pe){let t=this.keyPacket.version!==6;return BA(y.armor.privateKey,this.toPacketList().write(),void 0,void 0,void 0,t,e)}async getDecryptionKeys(e,t=new Date,i={},n=pe){let s=this.keyPacket,o=[],a=null;for(let l=0;l<this.subkeys.length;l++)if(!e||this.subkeys[l].getKeyID().equals(e,!0)){if(this.subkeys[l].keyPacket.isDummy()){a=a||new Error("Gnu-dummy key packets cannot be used for decryption");continue}try{let d={key:s,bind:this.subkeys[l].keyPacket},u=await Sn(this.subkeys[l].bindingSignatures,s,y.signature.subkeyBinding,d,t,n);uT(this.subkeys[l].keyPacket,u,n)&&o.push(this.subkeys[l])}catch(d){a=d}}let c=await this.getPrimarySelfSignature(t,i,n);if((!e||s.getKeyID().equals(e,!0))&&uT(s,c,n)&&(s.isDummy()?a=a||new Error("Gnu-dummy key packets cannot be used for decryption"):o.push(this)),o.length===0)throw a||new Error("No decryption key packets found");return o}isDecrypted(){return this.getKeys().some(({keyPacket:e})=>e.isDecrypted())}async validate(e=pe){if(!this.isPrivate())throw new Error("Cannot validate a public key");let t;if(!this.keyPacket.isDummy())t=this.keyPacket;else{let i=await this.getSigningKey(null,null,void 0,{...e,rejectPublicKeyAlgorithms:new Set,minRSABits:0});i&&!i.keyPacket.isDummy()&&(t=i.keyPacket)}if(t)return t.validate();{let i=this.getKeys();if(i.map(s=>s.keyPacket.isDummy()).every(Boolean))throw new Error("Cannot validate an all-gnu-dummy key");return Promise.all(i.map(s=>s.keyPacket.validate()))}}clearPrivateParams(){this.getKeys().forEach(({keyPacket:e})=>{e.isDecrypted()&&e.clearPrivateParams()})}async revoke({flag:e=y.reasonForRevocation.noReason,string:t=""}={},i=new Date,n=pe){if(!this.isPrivate())throw new Error("Need private key for revoking");let s={key:this.keyPacket},o=this.clone();return o.revocationSignatures.push(await As(s,[],this.keyPacket,{signatureType:y.signature.keyRevocation,reasonForRevocationFlag:y.write(y.reasonForRevocation,e),reasonForRevocationString:t},i,void 0,void 0,void 0,n)),o}async addSubkey(e={}){let t={...pe,...e.config};if(e.passphrase)throw new Error("Subkey could not be encrypted here, please encrypt whole key");if(e.rsaBits<t.minRSABits)throw new Error(`rsaBits should be at least ${t.minRSABits}, got: ${e.rsaBits}`);let i=this.keyPacket;if(i.isDummy())throw new Error("Cannot add subkey to gnu-dummy primary key");if(!i.isDecrypted())throw new Error("Key is not decrypted");let n=i.getAlgorithmInfo();n.type=See(n.algorithm),n.rsaBits=n.bits||4096,n.curve=n.curve||"curve25519Legacy",e=f1(e,n);let s=await VU(e,{...t,v6Keys:this.keyPacket.version===6});ka(s,t);let o=await YU(s,i,e,t),a=this.toPacketList();return a.push(s,o),new r(a)}};Dee=F.constructAllowedPackets([gs,CI,uA,BI,EI,d1,qr]);Fee=F.constructAllowedPackets([Ta,Vc,c1,Od,l1,lA,dA,cn,qr]),Pee=F.constructAllowedPackets([dA]),Tee=F.constructAllowedPackets([qr]),AA=class r{constructor(e){this.packets=e||new Ct}getEncryptionKeyIDs(){let e=[];return this.packets.filterByTag(y.packet.publicKeyEncryptedSessionKey).forEach(function(i){e.push(i.publicKeyID)}),e}getSigningKeyIDs(){let e=this.unwrapCompressed(),t=e.packets.filterByTag(y.packet.onePassSignature);return t.length>0?t.map(n=>n.issuerKeyID):e.packets.filterByTag(y.packet.signature).map(n=>n.issuerKeyID)}async decrypt(e,t,i,n=new Date,s=pe){let o=this.packets.filterByTag(y.packet.symmetricallyEncryptedData,y.packet.symEncryptedIntegrityProtectedData,y.packet.aeadEncryptedData);if(o.length===0)throw new Error("No encrypted data found");let a=o[0],c=a.cipherAlgorithm,l=i||await this.decryptSessionKeys(e,t,c,n,s),d=null,u=Promise.all(l.map(async({algorithm:h,data:g})=>{if(!F.isUint8Array(g)||!a.cipherAlgorithm&&!F.isString(h))throw new Error("Invalid session key for decryption.");try{let p=a.cipherAlgorithm||y.write(y.symmetric,h);await a.decrypt(p,g,s)}catch(p){F.printDebugError(p),d=p}}));if(zB(a.encrypted),a.encrypted=null,await u,!a.packets||!a.packets.length)throw d||new Error("Decryption failed.");let f=new r(a.packets);return a.packets=new Ct,f}async decryptSessionKeys(e,t,i,n=new Date,s=pe){let o=[],a;if(t){let c=this.packets.filterByTag(y.packet.symEncryptedSessionKey);if(c.length===0)throw new Error("No symmetrically encrypted session key packet found.");await Promise.all(t.map(async function(l,d){let u;d?u=await Ct.fromBinary(c.write(),Pee,s):u=c,await Promise.all(u.map(async function(f){try{await f.decrypt(l,s),o.push(f)}catch(h){F.printDebugError(h),h instanceof Qd&&(a=h)}}))}))}else if(e){let c=this.packets.filterByTag(y.packet.publicKeyEncryptedSessionKey);if(c.length===0)throw new Error("No public key encrypted session key packet found.");await Promise.all(c.map(async function(l){await Promise.all(e.map(async function(d){let u;try{u=(await d.getDecryptionKeys(l.publicKeyID,null,void 0,s)).map(h=>h.keyPacket)}catch(h){a=h;return}let f=[y.symmetric.aes256,y.symmetric.aes128,y.symmetric.tripledes,y.symmetric.cast5];try{let h=await d.getPrimarySelfSignature(n,void 0,s);h.preferredSymmetricAlgorithms&&(f=f.concat(h.preferredSymmetricAlgorithms))}catch{}await Promise.all(u.map(async function(h){if(!h.isDecrypted())throw new Error("Decryption key is not decrypted.");if(s.constantTimePKCS1Decryption&&(l.publicKeyAlgorithm===y.publicKey.rsaEncrypt||l.publicKeyAlgorithm===y.publicKey.rsaEncryptSign||l.publicKeyAlgorithm===y.publicKey.rsaSign||l.publicKeyAlgorithm===y.publicKey.elgamal)){let p=l.write();await Promise.all((i?[i]:Array.from(s.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map(async I=>{let m=new lA;m.read(p);let w={sessionKeyAlgorithm:I,sessionKey:ZB(I)};try{await m.decrypt(h,w),o.push(m)}catch(B){F.printDebugError(B),a=B}}))}else try{await l.decrypt(h);let p=i||l.sessionKeyAlgorithm;if(p&&!f.includes(y.write(y.symmetric,p)))throw new Error("A non-preferred symmetric algorithm was used.");o.push(l)}catch(p){F.printDebugError(p),a=p}}))})),zB(l.encrypted),l.encrypted=null}))}else throw new Error("No key or password specified.");if(o.length>0){if(o.length>1){let c=new Set;o=o.filter(l=>{let d=l.sessionKeyAlgorithm+F.uint8ArrayToString(l.sessionKey);return c.has(d)?!1:(c.add(d),!0)})}return o.map(c=>({data:c.sessionKey,algorithm:c.sessionKeyAlgorithm&&y.read(y.symmetric,c.sessionKeyAlgorithm)}))}throw a||new Error("Session key decryption failed.")}getLiteralData(){let t=this.unwrapCompressed().packets.findPacket(y.packet.literalData);return t&&t.getBytes()||null}getFilename(){let t=this.unwrapCompressed().packets.findPacket(y.packet.literalData);return t&&t.getFilename()||null}getText(){let t=this.unwrapCompressed().packets.findPacket(y.packet.literalData);return t?t.getText():null}static async generateSessionKey(e=[],t=new Date,i=[],n=pe){let{symmetricAlgo:s,aeadAlgo:o}=await vee(e,t,i,n),a=y.read(y.symmetric,s),c=o?y.read(y.aead,o):void 0;return await Promise.all(e.map(d=>d.getEncryptionKey().catch(()=>null).then(u=>{if(u&&(u.keyPacket.algorithm===y.publicKey.x25519||u.keyPacket.algorithm===y.publicKey.x448)&&!c&&!F.isAES(s))throw new Error("Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.")}))),{data:ZB(s),algorithm:a,aeadAlgorithm:c}}async encrypt(e,t,i,n=!1,s=[],o=new Date,a=[],c=pe){if(i){if(!F.isUint8Array(i.data)||!F.isString(i.algorithm))throw new Error("Invalid session key for encryption.")}else if(e&&e.length)i=await r.generateSessionKey(e,o,a,c);else if(t&&t.length)i=await r.generateSessionKey(void 0,void 0,void 0,c);else throw new Error("No keys, passwords, or session key provided.");let{data:l,algorithm:d,aeadAlgorithm:u}=i,f=await r.encryptSessionKey(l,d,u,e,t,n,s,o,a,c),h=Od.fromObject({version:u?2:1,aeadAlgorithm:u?y.write(y.aead,u):null});h.packets=this.packets;let g=y.write(y.symmetric,d);return await h.encrypt(g,l,c),f.packets.push(h),h.packets=new Ct,f}static async encryptSessionKey(e,t,i,n,s,o=!1,a=[],c=new Date,l=[],d=pe){let u=new Ct,f=y.write(y.symmetric,t),h=i&&y.write(y.aead,i);if(n){let g=await Promise.all(n.map(async function(p,I){let m=await p.getEncryptionKey(a[I],c,l,d),w=lA.fromObject({version:h?6:3,encryptionKeyPacket:m.keyPacket,anonymousRecipient:o,sessionKey:e,sessionKeyAlgorithm:f});return await w.encrypt(m.keyPacket),delete w.sessionKey,w}));u.push(...g)}if(s){let g=async function(w,B){try{return await w.decrypt(B,d),1}catch{return 0}},p=(w,B)=>w+B,I=async function(w,B,C,x){let Q=new dA(d);return Q.sessionKey=w,Q.sessionKeyAlgorithm=B,C&&(Q.aeadAlgorithm=C),await Q.encrypt(x,d),d.passwordCollisionCheck&&(await Promise.all(s.map(U=>g(Q,U)))).reduce(p)!==1?I(w,B,x):(delete Q.sessionKey,Q)},m=await Promise.all(s.map(w=>I(e,f,h,w)));u.push(...m)}return new r(u)}async sign(e=[],t=[],i=null,n=[],s=new Date,o=[],a=[],c=[],l=pe){let d=new Ct,u=this.packets.findPacket(y.packet.literalData);if(!u)throw new Error("No literal data packet to sign.");let f=await hT(u,e,t,i,n,s,o,a,c,!1,l),h=f.map((g,p)=>cn.fromSignaturePacket(g,p===0)).reverse();return d.push(...h),d.push(u),d.push(...f),new r(d)}compress(e,t=pe){if(e===y.compression.uncompressed)return this;let i=new Vc(t);i.algorithm=e,i.packets=this.packets;let n=new Ct;return n.push(i),new r(n)}async signDetached(e=[],t=[],i=null,n=[],s=[],o=new Date,a=[],c=[],l=pe){let d=this.packets.findPacket(y.packet.literalData);if(!d)throw new Error("No literal data packet to sign.");return new bI(await hT(d,e,t,i,n,s,o,a,c,!0,l))}async verify(e,t=new Date,i=pe){let n=this.unwrapCompressed(),s=n.packets.filterByTag(y.packet.literalData);if(s.length!==1)throw new Error("Can only verify message with one literal data packet.");let o=n.packets;St(o.stream)&&(o=o.concat(await Xt(o.stream,l=>l||[])));let a=o.filterByTag(y.packet.onePassSignature).reverse(),c=o.filterByTag(y.packet.signature);return a.length&&!c.length&&F.isStream(o.stream)&&!St(o.stream)?(await Promise.all(a.map(async l=>{l.correspondingSig=new Promise((d,u)=>{l.correspondingSigResolve=d,l.correspondingSigReject=u}),l.signatureData=Zc(async()=>(await l.correspondingSig).signatureData),l.hashed=Xt(await l.hash(l.signatureType,s[0],void 0,!1)),l.hashed.catch(()=>{})})),o.stream=Ua(o.stream,async(l,d)=>{let u=Fn(l),f=Gi(d);try{for(let h=0;h<a.length;h++){let{value:g}=await u.read();a[h].correspondingSigResolve(g)}await u.readToEnd(),await f.ready,await f.close()}catch(h){a.forEach(g=>{g.correspondingSigReject(h)}),await f.abort(h)}}),vB(a,s,e,t,!1,i)):vB(c,s,e,t,!1,i)}async verifyDetached(e,t,i=new Date,n=pe){let o=this.unwrapCompressed().packets.filterByTag(y.packet.literalData);if(o.length!==1)throw new Error("Can only verify message with one literal data packet.");let a=e.packets.filterByTag(y.packet.signature);return vB(a,o,t,i,!0,n)}unwrapCompressed(){let e=this.packets.filterByTag(y.packet.compressedData);return e.length?new r(e[0].packets):this}async appendSignature(e,t=pe){await this.packets.read(F.isUint8Array(e)?e:(await LI(e)).data,Tee,t)}write(){return this.packets.write()}armor(e=pe){let t=this.packets[this.packets.length-1],i=t.constructor.tag===Od.tag?t.version!==2:this.packets.some(n=>n.constructor.tag===qr.tag&&n.version!==6);return BA(y.armor.message,this.write(),null,null,null,i,e)}};Nee=Object.keys(pe).length;pd=Hi&&typeof Hi=="object"&&"webcrypto"in Hi?Hi.webcrypto:Hi&&typeof Hi=="object"&&"randomBytes"in Hi?Hi:void 0;Mee=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;pT=Mee?r=>r:Hee,iR=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Kee=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));Zs={_0:48,_9:57,A:65,F:70,a:97,f:102};gA=class{};Jee=po;Z1=BigInt(0),h1=BigInt(1);SB=r=>typeof r=="bigint"&&Z1<=r;PA=r=>(h1<<BigInt(r))-h1;Ei=BigInt(0),fi=BigInt(1),Lc=BigInt(2),oR=BigInt(3),aR=BigInt(4),cR=BigInt(5),Yee=BigInt(7),lR=BigInt(8),Wee=BigInt(9),dR=BigInt(16);tte=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];Xc=class extends gA{constructor(e,t,i,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=i,this.isLE=n,this.buffer=new Uint8Array(e),this.view=kB(this.buffer)}update(e){Ld(this),e=FA(e),ps(e);let{view:t,buffer:i,blockLen:n}=this,s=e.length;for(let o=0;o<s;){let a=Math.min(n-this.pos,s-o);if(a===n){let c=kB(e);for(;n<=s-o;o+=n)this.process(c,o);continue}i.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ld(this),rR(e,this),this.finished=!0;let{buffer:t,view:i,blockLen:n,isLE:s}=this,{pos:o}=this;t[o++]=128,ln(this.buffer.subarray(o)),this.padOffset>n-o&&(this.process(i,0),o=0);for(let u=o;u<n;u++)t[u]=0;ste(i,n-8,BigInt(this.length*8),s),this.process(i,0);let a=kB(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let l=c/4,d=this.get();if(l>d.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<l;u++)a.setUint32(4*u,d[u],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let i=e.slice(0,t);return this.destroy(),i}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:i,length:n,finished:s,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=s,e.length=n,e.pos=a,n%t&&e.buffer.set(i),e}clone(){return this._cloneInto()}},pa=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ma=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),Yr=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Wr=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),My=BigInt(2**32-1),xT=BigInt(32);CT=(r,e,t)=>r>>>t,ET=(r,e,t)=>r<<32-t|e>>>t,md=(r,e,t)=>r>>>t|e<<32-t,yd=(r,e,t)=>r<<32-t|e>>>t,Ly=(r,e,t)=>r<<64-t|e>>>t-32,Hy=(r,e,t)=>r>>>t-32|e<<64-t,ate=(r,e,t)=>r<<t|e>>>32-t,cte=(r,e,t)=>e<<t|r>>>32-t,lte=(r,e,t)=>e<<t-32|r>>>64-t,dte=(r,e,t)=>r<<t-32|e>>>64-t;ute=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),fte=(r,e,t,i)=>e+t+i+(r/2**32|0)|0,Ate=(r,e,t,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0),hte=(r,e,t,i,n)=>e+t+i+n+(r/2**32|0)|0,gte=(r,e,t,i,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(i>>>0)+(n>>>0),pte=(r,e,t,i,n,s)=>e+t+i+n+s+(r/2**32|0)|0,mte=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ya=new Uint32Array(64),FI=class extends Xc{constructor(e=32){super(64,e,8,!1),this.A=pa[0]|0,this.B=pa[1]|0,this.C=pa[2]|0,this.D=pa[3]|0,this.E=pa[4]|0,this.F=pa[5]|0,this.G=pa[6]|0,this.H=pa[7]|0}get(){let{A:e,B:t,C:i,D:n,E:s,F:o,G:a,H:c}=this;return[e,t,i,n,s,o,a,c]}set(e,t,i,n,s,o,a,c){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)ya[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){let f=ya[u-15],h=ya[u-2],g=rs(f,7)^rs(f,18)^f>>>3,p=rs(h,17)^rs(h,19)^h>>>10;ya[u]=p+ya[u-7]+g+ya[u-16]|0}let{A:i,B:n,C:s,D:o,E:a,F:c,G:l,H:d}=this;for(let u=0;u<64;u++){let f=rs(a,6)^rs(a,11)^rs(a,25),h=d+f+mR(a,c,l)+mte[u]+ya[u]|0,p=(rs(i,2)^rs(i,13)^rs(i,22))+yR(i,n,s)|0;d=l,l=c,c=a,a=o+h|0,o=s,s=n,n=i,i=h+p|0}i=i+this.A|0,n=n+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,d=d+this.H|0,this.set(i,n,s,o,a,c,l,d)}roundClean(){ln(ya)}destroy(){this.set(0,0,0,0,0,0,0,0),ln(this.buffer)}},g1=class extends FI{constructor(){super(28),this.A=ma[0]|0,this.B=ma[1]|0,this.C=ma[2]|0,this.D=ma[3]|0,this.E=ma[4]|0,this.F=ma[5]|0,this.G=ma[6]|0,this.H=ma[7]|0}},wR=IR(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),yte=wR[0],Ite=wR[1],Ia=new Uint32Array(80),wa=new Uint32Array(80),PI=class extends Xc{constructor(e=64){super(128,e,16,!1),this.Ah=Wr[0]|0,this.Al=Wr[1]|0,this.Bh=Wr[2]|0,this.Bl=Wr[3]|0,this.Ch=Wr[4]|0,this.Cl=Wr[5]|0,this.Dh=Wr[6]|0,this.Dl=Wr[7]|0,this.Eh=Wr[8]|0,this.El=Wr[9]|0,this.Fh=Wr[10]|0,this.Fl=Wr[11]|0,this.Gh=Wr[12]|0,this.Gl=Wr[13]|0,this.Hh=Wr[14]|0,this.Hl=Wr[15]|0}get(){let{Ah:e,Al:t,Bh:i,Bl:n,Ch:s,Cl:o,Dh:a,Dl:c,Eh:l,El:d,Fh:u,Fl:f,Gh:h,Gl:g,Hh:p,Hl:I}=this;return[e,t,i,n,s,o,a,c,l,d,u,f,h,g,p,I]}set(e,t,i,n,s,o,a,c,l,d,u,f,h,g,p,I){this.Ah=e|0,this.Al=t|0,this.Bh=i|0,this.Bl=n|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=d|0,this.Fh=u|0,this.Fl=f|0,this.Gh=h|0,this.Gl=g|0,this.Hh=p|0,this.Hl=I|0}process(e,t){for(let B=0;B<16;B++,t+=4)Ia[B]=e.getUint32(t),wa[B]=e.getUint32(t+=4);for(let B=16;B<80;B++){let C=Ia[B-15]|0,x=wa[B-15]|0,Q=md(C,x,1)^md(C,x,8)^CT(C,x,7),R=yd(C,x,1)^yd(C,x,8)^ET(C,x,7),U=Ia[B-2]|0,T=wa[B-2]|0,D=md(U,T,19)^Ly(U,T,61)^CT(U,T,6),b=yd(U,T,19)^Hy(U,T,61)^ET(U,T,6),_=Ate(R,b,wa[B-7],wa[B-16]),v=hte(_,Q,D,Ia[B-7],Ia[B-16]);Ia[B]=v|0,wa[B]=_|0}let{Ah:i,Al:n,Bh:s,Bl:o,Ch:a,Cl:c,Dh:l,Dl:d,Eh:u,El:f,Fh:h,Fl:g,Gh:p,Gl:I,Hh:m,Hl:w}=this;for(let B=0;B<80;B++){let C=md(u,f,14)^md(u,f,18)^Ly(u,f,41),x=yd(u,f,14)^yd(u,f,18)^Hy(u,f,41),Q=u&h^~u&p,R=f&g^~f&I,U=gte(w,x,R,Ite[B],wa[B]),T=pte(U,m,C,Q,yte[B],Ia[B]),D=U|0,b=md(i,n,28)^Ly(i,n,34)^Ly(i,n,39),_=yd(i,n,28)^Hy(i,n,34)^Hy(i,n,39),v=i&s^i&a^s&a,E=n&o^n&c^o&c;m=p|0,w=I|0,p=h|0,I=g|0,h=u|0,g=f|0,{h:u,l:f}=eo(l|0,d|0,T|0,D|0),l=a|0,d=c|0,a=s|0,c=o|0,s=i|0,o=n|0;let P=ute(D,_,E);i=fte(P,T,b,v),n=P|0}({h:i,l:n}=eo(this.Ah|0,this.Al|0,i|0,n|0)),{h:s,l:o}=eo(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=eo(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:d}=eo(this.Dh|0,this.Dl|0,l|0,d|0),{h:u,l:f}=eo(this.Eh|0,this.El|0,u|0,f|0),{h,l:g}=eo(this.Fh|0,this.Fl|0,h|0,g|0),{h:p,l:I}=eo(this.Gh|0,this.Gl|0,p|0,I|0),{h:m,l:w}=eo(this.Hh|0,this.Hl|0,m|0,w|0),this.set(i,n,s,o,a,c,l,d,u,f,h,g,p,I,m,w)}roundClean(){ln(Ia,wa)}destroy(){ln(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},p1=class extends PI{constructor(){super(48),this.Ah=Yr[0]|0,this.Al=Yr[1]|0,this.Bh=Yr[2]|0,this.Bl=Yr[3]|0,this.Ch=Yr[4]|0,this.Cl=Yr[5]|0,this.Dh=Yr[6]|0,this.Dl=Yr[7]|0,this.Eh=Yr[8]|0,this.El=Yr[9]|0,this.Fh=Yr[10]|0,this.Fl=Yr[11]|0,this.Gh=Yr[12]|0,this.Gl=Yr[13]|0,this.Hh=Yr[14]|0,this.Hl=Yr[15]|0}},ib=po(()=>new FI),wte=po(()=>new g1),xR=po(()=>new PI),CR=po(()=>new p1),TI=class extends gA{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,tR(e);let i=FA(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,s=new Uint8Array(n);s.set(i.length>n?e.create().update(i).digest():i);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),ln(s)}update(e){return Ld(this),this.iHash.update(e),this}digestInto(e){Ld(this),ps(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:i,finished:n,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=n,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=i._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},ER=(r,e,t)=>new TI(r,e).update(t).digest();ER.create=(r,e)=>new TI(r,e);Hd=BigInt(0),Hc=BigInt(1);QB=new WeakMap,bR=new WeakMap;RI=class{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,i=this.ZERO){let n=e;for(;t>Hd;)t&Hc&&(i=i.add(n)),n=n.double(),t>>=Hc;return i}precomputeWindow(e,t){let{windows:i,windowSize:n}=DB(t,this.bits),s=[],o=e,a=o;for(let c=0;c<i;c++){a=o,s.push(a);for(let l=1;l<n;l++)a=a.add(o),s.push(a);o=a.double()}return s}wNAF(e,t,i){if(!this.Fn.isValid(i))throw new Error("invalid scalar");let n=this.ZERO,s=this.BASE,o=DB(e,this.bits);for(let a=0;a<o.windows;a++){let{nextN:c,offset:l,isZero:d,isNeg:u,isNegF:f,offsetF:h}=BT(i,a,o);i=c,d?s=s.add(UI(f,t[h])):n=n.add(UI(u,t[l]))}return bT(i),{p:n,f:s}}wNAFUnsafe(e,t,i,n=this.ZERO){let s=DB(e,this.bits);for(let o=0;o<s.windows&&i!==Hd;o++){let{nextN:a,offset:c,isZero:l,isNeg:d}=BT(i,o,s);if(i=a,!l){let u=t[c];n=n.add(d?u.negate():u)}}return bT(i),n}getPrecomputes(e,t,i){let n=QB.get(t);return n||(n=this.precomputeWindow(t,e),e!==1&&(typeof i=="function"&&(n=i(n)),QB.set(t,n))),n}cached(e,t,i){let n=_B(e);return this.wNAF(n,this.getPrecomputes(n,e,i),t)}unsafe(e,t,i,n){let s=_B(e);return s===1?this._unsafeLadder(e,t,n):this.wNAFUnsafe(s,this.getPrecomputes(s,e,i),t,n)}createCache(e,t){BR(t,this.bits),bR.set(e,t),QB.delete(e)}hasCache(e){return _B(e)!==1}};kT=(r,e)=>(r+(r>=0?e:-e)/SR)/e;y1=class extends Error{constructor(e=""){super(e)}},so={Err:y1,_tlv:{encode:(r,e)=>{let{Err:t}=so;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let i=e.length/2,n=Oy(i);if(n.length/2&128)throw new t("tlv.encode: long form length too big");let s=i>127?Oy(n.length/2|128):"";return Oy(r)+s+n+e},decode(r,e){let{Err:t}=so,i=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[i++]!==r)throw new t("tlv.decode: wrong tlv");let n=e[i++],s=!!(n&128),o=0;if(!s)o=n;else{let c=n&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let l=e.subarray(i,i+c);if(l.length!==c)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let d of l)o=o<<8|d;if(i+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(i,i+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(i+o)}}},_int:{encode(r){let{Err:e}=so;if(r<ao)throw new e("integer: negative integers are not allowed");let t=Oy(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=so;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return sw(r)}},toSig(r){let{Err:e,_int:t,_tlv:i}=so,n=vt("signature",r),{v:s,l:o}=i.decode(48,n);if(o.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=i.decode(2,s),{v:l,l:d}=i.decode(2,c);if(d.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){let{_tlv:e,_int:t}=so,i=e.encode(2,t.encode(r.r)),n=e.encode(2,t.encode(r.s)),s=i+n;return e.encode(48,s)}},ao=BigInt(0),Fd=BigInt(1),SR=BigInt(2),Ky=BigInt(3),bte=BigInt(4);_R={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},FR={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},PR={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},Pte=Qi(_R.p),Tte=Qi(FR.p),Ute=Qi(PR.p),Rte=tl({..._R,Fp:Pte,lowS:!1},ib),Nte=tl({...FR,Fp:Tte,lowS:!1},CR),qte=tl({...PR,Fp:Ute,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},xR);Ote=Rte;Mte=Nte;Lte=qte,Hte=BigInt(0),jf=BigInt(1),Kte=BigInt(2),Gte=BigInt(7),zte=BigInt(256),Jte=BigInt(113),TR=[],UR=[],RR=[];for(let r=0,e=jf,t=1,i=0;r<24;r++){[t,i]=[i,(2*t+3*i)%5],TR.push(2*(5*i+t)),UR.push((r+1)*(r+2)/2%64);let n=Hte;for(let s=0;s<7;s++)e=(e<<jf^(e>>Gte)*Jte)%zte,e&Kte&&(n^=jf<<(jf<<BigInt(s))-jf);RR.push(n)}NR=IR(RR,!0),jte=NR[0],$te=NR[1],ST=(r,e,t)=>t>32?lte(r,e,t):ate(r,e,t),DT=(r,e,t)=>t>32?dte(r,e,t):cte(r,e,t);NI=class r extends gA{constructor(e,t,i,n=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=i,this.enableXOF=n,this.rounds=s,hA(i),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Oee(this.state)}clone(){return this._cloneInto()}keccak(){pT(this.state32),Vte(this.state32,this.rounds),pT(this.state32),this.posOut=0,this.pos=0}update(e){Ld(this),e=FA(e),ps(e);let{blockLen:t,state:i}=this,n=e.length;for(let s=0;s<n;){let o=Math.min(t-this.pos,n-s);for(let a=0;a<o;a++)i[this.pos++]^=e[s++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:i,blockLen:n}=this;e[i]^=t,(t&128)!==0&&i===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){Ld(this,!1),ps(e),this.finish();let t=this.state,{blockLen:i}=this;for(let n=0,s=e.length;n<s;){this.posOut>=i&&this.keccak();let o=Math.min(i-this.posOut,s-n);e.set(t.subarray(this.posOut,this.posOut+o),n),this.posOut+=o,n+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return hA(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(rR(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,ln(this.state)}_cloneInto(e){let{blockLen:t,suffix:i,outputLen:n,rounds:s,enableXOF:o}=this;return e||(e=new r(t,i,n,o,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=i,e.outputLen=n,e.enableXOF=o,e.destroyed=this.destroyed,e}},qR=(r,e,t)=>po(()=>new NI(e,r,t)),Yte=qR(6,136,256/8),Wte=qR(6,72,512/8),Xte=(r,e,t)=>zee((i={})=>new NI(e,r,i.dkLen===void 0?t:i.dkLen,!0)),Zte=Xte(31,136,256/8);xa=BigInt(0),br=BigInt(1),PB=BigInt(2),ere=BigInt(8);$f=BigInt(0),Id=BigInt(1),Gy=BigInt(2);rl={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3"),h:BigInt(4),a:BigInt(1),d:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756"),Gx:BigInt("0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e"),Gy:BigInt("0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14")},cre=Object.assign({},rl,{d:BigInt("0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9"),Gx:BigInt("0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc"),Gy:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001")}),lre=po(()=>Zte.create({dkLen:114})),dre=BigInt(1),I1=BigInt(2),QT=BigInt(3);BigInt(4);ure=BigInt(11),fre=BigInt(22),_T=BigInt(44),Are=BigInt(88),hre=BigInt(223);pre=Qi(rl.p,{BITS:456,isLE:!0}),FT=Qi(rl.n,{BITS:456,isLE:!0});yre={...rl,Fp:pre,Fn:FT,nBitLength:FT.BITS,hash:lre,adjustScalarBytes:LR,domain:mre,uvRatio:gre},Ire=sre(yre);OR(cre);wre=(()=>{let r=rl.p;return are({P:r,type:"x448",powPminus2:e=>{let t=MR(e),i=bt(t,I1,r);return mr(i*e,r)},adjustScalarBytes:LR})})();nb={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},xre={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},PT=BigInt(2);w1=Qi(nb.p,{sqrt:Cre}),Ere=tl({...nb,Fp:w1,lowS:!0,endo:xre},ib),HR=ib,Bre=wte,KR=Qi(BigInt("0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377")),bre=KR.create(BigInt("0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9")),vre=BigInt("0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6"),kre=tl({a:bre,b:vre,Fp:KR,n:BigInt("0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7"),Gx:BigInt("0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262"),Gy:BigInt("0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997"),h:BigInt(1),lowS:!1},HR),GR=xR,zR=CR,JR=Qi(BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53")),Sre=JR.create(BigInt("0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826")),Dre=BigInt("0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11"),Qre=tl({a:Sre,b:Dre,Fp:JR,n:BigInt("0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565"),Gx:BigInt("0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e"),Gy:BigInt("0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315"),h:BigInt(1),lowS:!1},zR),jR=Qi(BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3")),_re=jR.create(BigInt("0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca")),Fre=BigInt("0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723"),Pre=tl({a:_re,b:Fre,Fp:jR,n:BigInt("0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069"),Gx:BigInt("0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822"),Gy:BigInt("0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892"),h:BigInt(1),lowS:!1},GR),Tre=new Map(Object.entries({nistP256:Ote,nistP384:Mte,nistP521:Lte,brainpoolP256r1:kre,brainpoolP384r1:Qre,brainpoolP512r1:Pre,secp256k1:Ere,x448:wre,ed448:Ire})),Ure=Object.freeze({__proto__:null,nobleCurves:Tre}),Vf=Uint32Array.from([1732584193,4023233417,2562383102,271733878,3285377520]),Ca=new Uint32Array(80),x1=class extends Xc{constructor(){super(64,20,8,!1),this.A=Vf[0]|0,this.B=Vf[1]|0,this.C=Vf[2]|0,this.D=Vf[3]|0,this.E=Vf[4]|0}get(){let{A:e,B:t,C:i,D:n,E:s}=this;return[e,t,i,n,s]}set(e,t,i,n,s){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0,this.E=s|0}process(e,t){for(let c=0;c<16;c++,t+=4)Ca[c]=e.getUint32(t,!1);for(let c=16;c<80;c++)Ca[c]=Da(Ca[c-3]^Ca[c-8]^Ca[c-14]^Ca[c-16],1);let{A:i,B:n,C:s,D:o,E:a}=this;for(let c=0;c<80;c++){let l,d;c<20?(l=mR(n,s,o),d=1518500249):c<40?(l=n^s^o,d=1859775393):c<60?(l=yR(n,s,o),d=2400959708):(l=n^s^o,d=3395469782);let u=Da(i,5)+l+a+d+Ca[c]|0;a=o,o=s,s=Da(n,30),n=i,i=u}i=i+this.A|0,n=n+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,this.set(i,n,s,o,a)}roundClean(){ln(Ca)}destroy(){this.set(0,0,0,0,0),ln(this.buffer)}},Rre=po(()=>new x1),Nre=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),$R=Uint8Array.from(new Array(16).fill(0).map((r,e)=>e)),qre=$R.map(r=>(9*r+5)%16),VR=(()=>{let t=[[$R],[qre]];for(let i=0;i<4;i++)for(let n of t)n.push(n[i].map(s=>Nre[s]));return t})(),YR=VR[0],WR=VR[1],XR=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(r=>Uint8Array.from(r)),Ore=YR.map((r,e)=>r.map(t=>XR[e][t])),Mre=WR.map((r,e)=>r.map(t=>XR[e][t])),Lre=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Hre=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);zy=new Uint32Array(16),C1=class extends Xc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:e,h1:t,h2:i,h3:n,h4:s}=this;return[e,t,i,n,s]}set(e,t,i,n,s){this.h0=e|0,this.h1=t|0,this.h2=i|0,this.h3=n|0,this.h4=s|0}process(e,t){for(let h=0;h<16;h++,t+=4)zy[h]=e.getUint32(t,!0);let i=this.h0|0,n=i,s=this.h1|0,o=s,a=this.h2|0,c=a,l=this.h3|0,d=l,u=this.h4|0,f=u;for(let h=0;h<5;h++){let g=4-h,p=Lre[h],I=Hre[h],m=YR[h],w=WR[h],B=Ore[h],C=Mre[h];for(let x=0;x<16;x++){let Q=Da(i+TT(h,s,a,l)+zy[m[x]]+p,B[x])+u|0;i=u,u=l,l=Da(a,10)|0,a=s,s=Q}for(let x=0;x<16;x++){let Q=Da(n+TT(g,o,c,d)+zy[w[x]]+I,C[x])+f|0;n=f,f=d,d=Da(c,10)|0,c=o,o=Q}}this.set(this.h1+a+d|0,this.h2+l+f|0,this.h3+u+n|0,this.h4+i+o|0,this.h0+s+c|0)}roundClean(){ln(zy)}destroy(){this.destroyed=!0,ln(this.buffer),this.set(0,0,0,0,0)}},Kre=po(()=>new C1),Gre=Rre,zre=Kre,Jre=Array.from({length:64},(r,e)=>Math.floor(2**32*Math.abs(Math.sin(e+1)))),UT=(r,e,t)=>r&e^~r&t,Jy=new Uint32Array([1732584193,4023233417,2562383102,271733878]),TB=new Uint32Array(16),E1=class extends Xc{constructor(){super(64,16,8,!0),this.A=Jy[0]|0,this.B=Jy[1]|0,this.C=Jy[2]|0,this.D=Jy[3]|0}get(){let{A:e,B:t,C:i,D:n}=this;return[e,t,i,n]}set(e,t,i,n){this.A=e|0,this.B=t|0,this.C=i|0,this.D=n|0}process(e,t){for(let a=0;a<16;a++,t+=4)TB[a]=e.getUint32(t,!0);let{A:i,B:n,C:s,D:o}=this;for(let a=0;a<64;a++){let c,l,d;a<16?(c=UT(n,s,o),l=a,d=[7,12,17,22]):a<32?(c=UT(o,n,s),l=(5*a+1)%16,d=[5,9,14,20]):a<48?(c=n^s^o,l=(3*a+5)%16,d=[4,11,16,23]):(c=s^(n|~o),l=7*a%16,d=[6,10,15,21]),c=c+i+Jre[a]+TB[l],i=o,o=s,s=n,n=n+Da(c,d[a%4])}i=i+this.A|0,n=n+this.B|0,s=s+this.C|0,o=o+this.D|0,this.set(i,n,s,o)}roundClean(){TB.fill(0)}destroy(){this.set(0,0,0,0),this.buffer.fill(0)}},jre=Jee(()=>new E1),$re=new Map(Object.entries({md5:jre,sha1:Gre,sha224:Bre,sha256:HR,sha384:zR,sha512:GR,sha3_256:Yte,sha3_512:Wte,ripemd160:zre})),Vre=Object.freeze({__proto__:null,nobleHashes:$re}),UB=Hi&&typeof Hi=="object"&&"webcrypto"in Hi?Hi.webcrypto:void 0,Di={},Pe=function(r){var e,t=new Float64Array(16);if(r)for(e=0;e<r.length;e++)t[e]=r[e];return t},sb=function(){throw new Error("no PRNG")},ZR=new Uint8Array(32);ZR[0]=9;B1=Pe(),qI=Pe([1]),Yre=Pe([56129,1]),Wre=Pe([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),Xre=Pe([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),RT=Pe([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),NT=Pe([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),Zre=Pe([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);MT=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];NB=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);KT=32,oie=32,lN=32,dN=32,Mc=64,ow=32,aw=64,aie=32;Di.scalarMult=function(r,e){if(Jd(r,e),r.length!==oie)throw new Error("bad n size");if(e.length!==KT)throw new Error("bad p size");var t=new Uint8Array(KT);return nN(t,r,e),t};Di.box={};Di.box.keyPair=function(){var r=new Uint8Array(lN),e=new Uint8Array(dN);return rie(r,e),{publicKey:r,secretKey:e}};Di.box.keyPair.fromSecretKey=function(r){if(Jd(r),r.length!==dN)throw new Error("bad secret key size");var e=new Uint8Array(lN);return sN(e,r),{publicKey:e,secretKey:new Uint8Array(r)}};Di.sign=function(r,e){if(Jd(r,e),e.length!==aw)throw new Error("bad secret key size");var t=new Uint8Array(Mc+r.length);return iie(t,r,r.length,e),t};Di.sign.detached=function(r,e){for(var t=Di.sign(r,e),i=new Uint8Array(Mc),n=0;n<i.length;n++)i[n]=t[n];return i};Di.sign.detached.verify=function(r,e,t){if(Jd(r,e,t),e.length!==Mc)throw new Error("bad signature size");if(t.length!==ow)throw new Error("bad public key size");var i=new Uint8Array(Mc+r.length),n=new Uint8Array(Mc+r.length),s;for(s=0;s<Mc;s++)i[s]=e[s];for(s=0;s<r.length;s++)i[s+Mc]=r[s];return sie(n,i,i.length,t)>=0};Di.sign.keyPair=function(){var r=new Uint8Array(ow),e=new Uint8Array(aw);return aN(r,e),{publicKey:r,secretKey:e}};Di.sign.keyPair.fromSecretKey=function(r){if(Jd(r),r.length!==aw)throw new Error("bad secret key size");for(var e=new Uint8Array(ow),t=0;t<e.length;t++)e[t]=r[32+t];return{publicKey:e,secretKey:new Uint8Array(r)}};Di.sign.keyPair.fromSeed=function(r){if(Jd(r),r.length!==aie)throw new Error("bad seed size");for(var e=new Uint8Array(ow),t=new Uint8Array(aw),i=0;i<32;i++)t[i]=r[i];return aN(e,t,!0),{publicKey:e,secretKey:t}};Di.setPRNG=function(r){sb=r};(function(){if(UB&&UB.getRandomValues){var r=65536;Di.setPRNG(function(e,t){var i,n=new Uint8Array(t);for(i=0;i<t;i+=r)UB.getRandomValues(n.subarray(i,i+Math.min(t-i,r)));for(i=0;i<t;i++)e[i]=n[i];cie(n)})}})();il=Object.freeze({__proto__:null,default:Di});yA.keySize=yA.prototype.keySize=24;yA.blockSize=yA.prototype.blockSize=8;IA.blockSize=IA.prototype.blockSize=8;IA.keySize=IA.prototype.keySize=16;rn=4294967295;wA.keySize=wA.prototype.keySize=32;wA.blockSize=wA.prototype.blockSize=16;Tn.prototype.BLOCKSIZE=8;Tn.prototype.SBOXES=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];Tn.prototype.PARRAY=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731];Tn.prototype.NN=16;Tn.prototype._clean=function(r){return r<0&&(r=(r&2147483647)+2147483648),r};Tn.prototype._F=function(r){let e,t=r&255;r>>>=8;let i=r&255;r>>>=8;let n=r&255;r>>>=8;let s=r&255;return e=this.sboxes[0][s]+this.sboxes[1][n],e^=this.sboxes[2][i],e+=this.sboxes[3][t],e};Tn.prototype._encryptBlock=function(r){let e=r[0],t=r[1],i;for(i=0;i<this.NN;++i){e^=this.parray[i],t=this._F(e)^t;let n=e;e=t,t=n}e^=this.parray[this.NN+0],t^=this.parray[this.NN+1],r[0]=this._clean(t),r[1]=this._clean(e)};Tn.prototype.encryptBlock=function(r){let e,t=[0,0],i=this.BLOCKSIZE/2;for(e=0;e<this.BLOCKSIZE/2;++e)t[0]=t[0]<<8|r[e+0]&255,t[1]=t[1]<<8|r[e+i]&255;this._encryptBlock(t);let n=[];for(e=0;e<this.BLOCKSIZE/2;++e)n[e+0]=t[0]>>>24-8*e&255,n[e+i]=t[1]>>>24-8*e&255;return n};Tn.prototype._decryptBlock=function(r){let e=r[0],t=r[1],i;for(i=this.NN+1;i>1;--i){e^=this.parray[i],t=this._F(e)^t;let n=e;e=t,t=n}e^=this.parray[1],t^=this.parray[0],r[0]=this._clean(t),r[1]=this._clean(e)};Tn.prototype.init=function(r){let e,t=0;for(this.parray=[],e=0;e<this.NN+2;++e){let n=0;for(let s=0;s<4;++s)n=n<<8|r[t]&255,++t>=r.length&&(t=0);this.parray[e]=this.PARRAY[e]^n}for(this.sboxes=[],e=0;e<4;++e)for(this.sboxes[e]=[],t=0;t<256;++t)this.sboxes[e][t]=this.SBOXES[e][t];let i=[0,0];for(e=0;e<this.NN+2;e+=2)this._encryptBlock(i),this.parray[e+0]=i[0],this.parray[e+1]=i[1];for(e=0;e<4;++e)for(t=0;t<256;t+=2)this._encryptBlock(i),this.sboxes[e][t+0]=i[0],this.sboxes[e][t+1]=i[1]};xA.keySize=xA.prototype.keySize=16;xA.blockSize=xA.prototype.blockSize=8;Aie=new Map(Object.entries({tripledes:yA,cast5:IA,twofish:wA,blowfish:xA})),hie=Object.freeze({__proto__:null,legacyCiphers:Aie});uN=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),Xr=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map(r=>r*2));k1=class{constructor(e,t,i,n){let s=new Uint8Array(64);this.S={b:new Uint8Array(Yf),h:new Uint32Array(S1/4),t0:new Uint32Array(2),c:0,outlen:e},s[0]=e,t&&(s[1]=t.length),s[2]=1,s[3]=1,i&&s.set(i,32),n&&s.set(n,48);let o=new Uint32Array(s.buffer,s.byteOffset,s.length/Uint32Array.BYTES_PER_ELEMENT);for(let a=0;a<16;a++)this.S.h[a]=uN[a]^o[a];if(t){let a=new Uint8Array(Yf);a.set(t),this.update(a)}}update(e){if(!(e instanceof Uint8Array))throw new Error("Input must be Uint8Array or Buffer");let t=0;for(;t<e.length;){this.S.c===Yf&&(GT(this.S.t0,this.S.c),zT(this.S,!1),this.S.c=0);let i=Yf-this.S.c;this.S.b.set(e.subarray(t,t+i),this.S.c);let n=Math.min(i,e.length-t);this.S.c+=n,t+=n}return this}digest(e){GT(this.S.t0,this.S.c),this.S.b.fill(0,this.S.c),this.S.c=Yf,zT(this.S,!0);let t=e||new Uint8Array(this.S.outlen);for(let i=0;i<this.S.outlen;i++)t[i]=this.S.h[i>>2]>>8*(i&3);return this.S.h=null,t.buffer}};S1=64,Yf=128,cb=2,fN=19,gie=4294967295,pie=4,mie=4294967295,yie=8,Iie=4294967295,wie=8,xie=4294967295,Cie=4294967295,Eie=32,ro=1024,Bie=64,bie=new Uint8Array(new Uint16Array([43981]).buffer)[0]===205;AN=1024,Qie=64*AN;qie=async()=>Uie(r=>Rie(r),r=>Nie(r)),Oie=Object.freeze({__proto__:null,default:qie});gN=Kie(),Gie=Mie(gN),zie=DW({__proto__:null,default:Gie},[gN])});function Jie(r){let e="",t=0,i=0;for(let n of r)for(i=i<<8|n,t+=8;t>=6;)t-=6,e+=mN[i>>t&63];return t>0&&(e+=mN[i<<6-t&63]),e}function IN(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function jie(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}async function $ie(r){return new Uint8Array(await crypto.subtle.digest("SHA-256",r))}function wN(r,e){let t=IN(e),n=`$2a$10$${Jie(t).padEnd(22,".")}`;return yN.default.hashSync(r,n).slice(n.length)}async function TA(r,e){let t=await tw({armoredKey:r});return rw({privateKey:t,passphrase:e})}async function jd(r,e){let t=await DA({armoredMessage:r}),{data:i}=await iw({message:t,decryptionKeys:e,format:"utf8"});return i}async function cw(r,e,t){let i=await WU({text:r});return XU({message:i,encryptionKeys:e,signingKeys:t?[t]:void 0,format:"armored"})}async function db(r){let e=await $ie(new TextEncoder().encode(r));return jie(e)}async function xN(r,e){let t=await DA({armoredMessage:r}),i=await ZU({message:t,decryptionKeys:e});if(!i.length)throw new Error("failed to decrypt session key");return i[0]}async function CN(r,e){let t=await DA({binaryMessage:r}),{data:i}=await iw({message:t,sessionKeys:e,format:"binary"});return i}async function ub(r,e){if(!r)return 0;try{let t=IN(r),i=await DA({binaryMessage:t}),{data:n}=await iw({message:i,decryptionKeys:e,format:"binary"});return Vie(n)}catch{return 0}}function Vie(r){let e=0;for(;e<r.length;){let t=r[e++],i=t>>3,n=t&7;if(n===0){let s=0n,o=0n;for(;e<r.length;){let a=r[e++];if(s|=BigInt(a&127)<<o,(a&128)===0)break;o+=7n}if(i===1)return Number(s)}else if(n===2){let s=0,o=0;for(;e<r.length;){let a=r[e++];if(s|=(a&127)<<o,(a&128)===0)break;o+=7}e+=s}else if(n===1)e+=8;else if(n===5)e+=4;else break}return 0}var yN,mN,fb=J(()=>{"use strict";lb();yN=xr(dB(),1),mN="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"});async function EN(r,e,t){let i=r.find(a=>a.Primary===1)||r[0];if(!i)throw new Error("user has no keys");let n=t.find(a=>a.ID===i.ID);if(!n)throw new Error("no salt for user key");let s=wN(e,n.KeySalt),o=[];for(let a of r)try{o.push(await TA(a.PrivateKey,s))}catch{}if(o.length===0)throw new Error("failed to unlock user keys (wrong password?)");return{userKR:o,saltedKeyPass:s}}async function BN(r,e,t){let i=new Map;for(let n of r){let s=[];for(let o of n.Keys)try{if(o.Token){let a=await jd(o.Token,e);s.push(await TA(o.PrivateKey,a))}else s.push(await TA(o.PrivateKey,t))}catch{}s.length>0&&i.set(n.ID,s)}return i}async function bN(r,e){let t=e.get(r.AddressID);if(!t)throw new Error("no address keyring for share");let i=await jd(r.Passphrase,t),n=await TA(r.Key,i);return[...t,n]}var lw,vN=J(()=>{"use strict";lB();Q6();fb();lw=class{constructor(e){this.addition=e}addition;accessToken="";refreshToken="";uid="";saltedKeyPass="";setAuth(e,t,i){this.accessToken=e,this.refreshToken=t,this.uid=i}getUID(){return this.uid}getSaltedKeyPass(){return this.saltedKeyPass}setSaltedKeyPass(e){this.saltedKeyPass=e}authHeaders(){let e={Accept:I6,"X-Pm-Appversion":C6,"X-Pm-Drive-Sdk-Version":w6,"User-Agent":x6};return this.accessToken&&(e.Authorization=`Bearer ${this.accessToken}`,e["X-Pm-Uid"]=this.uid),e}async request(e,t={}){let i=t.method||"GET",n=this.authHeaders(),s={method:i,headers:n};t.body!==void 0&&(s.body=JSON.stringify(t.body),n["Content-Type"]="application/json");let o=await fetch(e,s),a=await o.text(),c={};try{c=a?JSON.parse(a):{}}catch{c={}}if(!o.ok)throw new Error(`Proton request failed: ${o.status} ${(c.Error||a).slice(0,200)}`);return c}async requestAPI(e,t={}){let i=e.startsWith("http")?e:`${ha}${e}`;if(t.params){let n=new URLSearchParams(Object.entries(t.params).map(([s,o])=>[s,String(o)])).toString();i+=(i.includes("?")?"&":"?")+n}return this.request(i,{method:t.method,body:t.body})}async login(){let e=await this.request(f6,{method:"POST",body:{Username:this.addition.email}});if(!e.Modulus||!e.ServerEphemeral)throw new Error("invalid auth info response");let t=await D6(this.addition.email,this.addition.password,e),i=await this.request(A6,{method:"POST",body:{Username:this.addition.email,ClientEphemeral:t.ClientEphemeral,ClientProof:t.ClientProof,SRPSession:t.SRPSession}});if(i.Code===1001||i.TwoFactor?.Enabled){if(!this.addition.two_fa_code)throw new Error("2FA is enabled but no two_fa_code provided");i=await this.request(h6,{method:"POST",body:{TwoFactorCode:this.addition.two_fa_code,SRPSession:t.SRPSession}})}if(!i.AccessToken||!i.UID)throw new Error(`auth failed: code=${i.Code}`);this.setAuth(i.AccessToken,i.RefreshToken,i.UID)}async refresh(){if(!this.refreshToken)throw new Error("refresh token is empty");let e=await this.request(g6,{method:"POST",body:{RefreshToken:this.refreshToken,ResponseType:"token",GrantType:"refresh_token",RedirectURI:"https://drive.proton.me"}});if(!e.AccessToken)throw new Error("refresh token failed");this.setAuth(e.AccessToken,e.RefreshToken||this.refreshToken,e.UID||this.uid)}async requestWithRetry(e,t){try{return await this.request(e,t)}catch(i){if(String(i.message).includes("401")&&this.refreshToken)return await this.refresh(),this.request(e,t);throw i}}async getSalts(){return(await this.requestWithRetry(p6,{})).KeySalts||[]}async getUser(){return(await this.requestWithRetry(m6,{})).User}async getAddresses(){return(await this.requestWithRetry(`${ha}/core/v4/addresses`,{})).Addresses||[]}async getShares(){return(await this.requestWithRetry(y6,{})).Shares||[]}}});function SN(r){return r?new Date(r*1e3).toISOString():new Date().toISOString()}function Yie(r){let e={...r||{}};return e.email=(e.email||"").trim(),e.password=(e.password||"").trim(),e.two_fa_code=(e.two_fa_code||"").trim(),e.root_folder_id=(e.root_folder_id||"").trim()||"root",e.use_reusable_login=!!e.use_reusable_login,e.chunk_size=e.chunk_size||"4",e.reusable_credential=(e.reusable_credential||"").trim(),e}function Wie(){let r=crypto.getRandomValues(new Uint8Array(16));return btoa(String.fromCharCode(...r))}var kN,dw,DN=J(()=>{"use strict";Be();He();lB();vN();fb();lb();kN=150;dw=class{addition;client;mainShare=null;mainShareKR=[];userKR=[];addrKRs=new Map;defaultAddrKR=[];defaultAddrID="";idCache=new Map;linkCache=new Map;nodeKRcache=new Map;childrenCache=new Map;constructor(e){this.addition=Yie(e),this.client=new lw(this.addition)}async init(){if(!this.addition.email)throw new Error("email is required");if(!this.addition.password)throw new Error("password is required");await this.client.login();let e=await this.client.getSalts(),t=await this.client.getUser(),i=await this.client.getAddresses(),{userKR:n,saltedKeyPass:s}=await EN(t.Keys,this.addition.password,e);if(this.userKR=n,this.client.setSaltedKeyPass(s),this.addrKRs=await BN(i,this.userKR,s),this.addrKRs.size===0)throw new Error("failed to unlock address keys");this.defaultAddrID=i[0]?.ID||"",this.defaultAddrKR=this.addrKRs.get(this.defaultAddrID)||[];let o=await this.client.getShares();if(this.mainShare=o.find(a=>a.Type===E6)||o[0],!this.mainShare)throw new Error("no shares found");this.mainShareKR=await bN(this.mainShare,this.addrKRs),await this.getLinkKR(this.getRootLinkID())}getShareID(){if(!this.mainShare)throw new Error("not initialized");return this.mainShare.ShareID}getVolumeID(){if(!this.mainShare)throw new Error("not initialized");return this.mainShare.VolumeID}getRootLinkID(){if(!this.mainShare)throw new Error("not initialized");return this.addition.root_folder_id&&this.addition.root_folder_id!=="root"?this.addition.root_folder_id:this.mainShare.RootLinkID}async fetchLink(e){let t=this.linkCache.get(e);if(t)return t;let i=await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${e}`);if(!i.Link)throw new Error(`link not found: ${e}`);return this.linkCache.set(e,i.Link),i.Link}async getLinkKR(e){let t=this.nodeKRcache.get(e);if(t)return t;let i=await this.fetchLink(e),n=i.ParentLinkID?await this.getLinkKR(i.ParentLinkID):this.mainShareKR,s=await jd(i.NodePassphrase,n),o=await tw({armoredKey:i.NodeKey}),a=await rw({privateKey:o,passphrase:s}),c=[...n,a];return this.nodeKRcache.set(e,c),c}async decryptName(e){if(!e.Name)return"unnamed";let t=await this.getLinkKR(e.LinkID);try{return await jd(e.Name,t)}catch{return"unnamed"}}cleanPath(e){let t="/"+(e||"").split("/").filter(Boolean).join("/");return t==="/"?"/":t}joinPath(e,t){return e==="/"?`/${t}`:`${e}/${t}`}async listChildren(e){let t=this.childrenCache.get(e);if(t)return t;let i=[];for(let n=0;n<1e3;n++){let o=(await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${e}`,{params:{Children:"1",Page:String(n),PageSize:String(kN),Thumbnail:"0"}})).Links||[];if(i.push(...o),o.length<kN)break}return this.childrenCache.set(e,i),i}async resolveId(e){let t=this.cleanPath(e);if(t==="/")return this.getRootLinkID();let i=this.idCache.get(t);if(i)return i;let n=t.split("/").filter(Boolean),s=this.getRootLinkID(),o="/";for(let a of n){let c=await this.listChildren(s),l=null;for(let d of c)if(await this.decryptName(d)===a){l=d;break}if(!l)throw new Error(`folder not found: ${a}`);s=l.LinkID,o=this.joinPath(o,a),this.idCache.set(o,s)}return s}async list(e,t){let i=await this.resolveId(t),n=await this.listChildren(i),s=this.cleanPath(t),o=[];for(let a of n){let c=await this.decryptName(a);this.idCache.set(this.joinPath(s,c),a.LinkID);let l=a.Type===2;o.push({name:c,size:l?0:a.Size||0,is_dir:l,modified:SN(a.ModifyTime||a.CreateTime),sign:a.LinkID,type:X(c,l)})}return de(o,"name","asc")}async get(e,t){let i=this.cleanPath(t);if(i==="/")return{name:"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:this.getRootLinkID(),type:1};let n=await this.resolveId(i),s=await this.fetchLink(n),o=await this.decryptName(s),a=s.Type===2,c=0;if(!a){let l=await this.getLinkKR(n);c=await ub(s.XAttr||"",l),c||(c=s.Size||0)}return{name:o,size:c,is_dir:a,modified:SN(s.ModifyTime||s.CreateTime),sign:n,type:X(o,a),raw_url:""}}async createReadStream(e,t){let i=await this.resolveId(e),n=await this.fetchLink(i);if(n.Type===2)throw new Error("cannot stream a directory");let s=await this.getLinkKR(i),o=n.FileProperties?.ContentKeyPacket;if(!o)throw new Error("file has no content key packet");let a=await xN(o,s),c=await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${i}/revisions`),l=c.Revisions?.find(I=>I.State===1)||c.Revisions?.[0];if(!l?.Blocks?.length)throw new Error("file has no blocks");let d=l.Blocks,u=await ub(n.XAttr||"",s)||l.Size||0,f=(parseInt(this.addition.chunk_size||"4")||4)*1024*1024,h=t?.start??0,g=t?.end??(u>0?u-1:Number.MAX_SAFE_INTEGER),p=this;return new ReadableStream({async pull(I){try{let m=h;for(let w of d){if(m>g)break;let B=await p.downloadBlock(w.BareURL,w.Token),C=await CN(B,[a]),x=w.Index*f,Q=x+C.length-1,R=Math.max(h,x),U=Math.min(g,Q);R<=U&&(I.enqueue(C.slice(R-x,U-x+1)),m=U+1)}I.close()}catch(m){I.error(m)}}})}async downloadBlock(e,t){let i=await fetch(e,{headers:{Authorization:`Bearer ${t}`}});if(!i.ok)throw new Error(`block download failed: ${i.status}`);return new Uint8Array(await i.arrayBuffer())}async mkdir(e,t){let i=this.cleanPath(t),n=i.split("/").slice(0,-1).join("/")||"/",s=i.split("/").pop()||"",o=await this.resolveId(n),a=await this.getLinkKR(o),c=await cw(s,a),l=await db(s),{publicKey:d}=await W1({type:"ecc",curve:"curve25519Legacy",userIDs:[{name:s,email:this.mainShare?.Creator||""}]}),u=Wie(),f=await cw(u,a);await this.client.requestAPI("/drive/shares/"+this.getShareID()+"/folders",{method:"POST",body:{ParentLinkID:o,Name:c,Hash:l,NodeKey:d,NodePassphrase:f,NodePassphraseSignature:"",SignatureAddress:this.defaultAddrID,NameSignatureEmail:this.mainShare?.Creator||""}})}async rename(e,t,i){let n=await this.resolveId(t),s=await this.fetchLink(n),o=await this.getLinkKR(s.ParentLinkID),a=await cw(i,o),c=await db(i),l=s.Hash||"";await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${n}/rename`,{method:"PUT",body:{Name:a,NameSignatureEmail:this.mainShare?.Creator||"",Hash:c,OriginalHash:l}})}async remove(e,t,i){let n=await this.resolveId(t);await this.client.requestAPI(`/drive/volumes/${this.getVolumeID()}/links/${n}/trash`,{method:"POST"})}async move(e,t,i,n,s){throw new Error("ProtonDrive move is not supported yet")}async copy(e,t,i,n,s){throw new Error("ProtonDrive copy is not supported")}async put(e,t,i){throw new Error("ProtonDrive upload is not supported yet")}}});var QN={};Cn(QN,{LocalDriver:()=>Ab});async function Na(){if(typeof process<"u"&&process.release?.name==="node"&&!zt)try{zt=await import("fs/promises"),ar=await import("path")}catch{}}var zt,ar,Ab,_N=J(()=>{"use strict";Be();zt=null,ar=null;Ab=class{async list(e,t){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");let i=[];try{i=await zt.readdir(t,{withFileTypes:!0})}catch{return[]}return await Promise.all(i.map(async s=>{let o=s.isDirectory(),a=0,c=new Date;try{let l=await zt.stat(ar.join(t,s.name));a=l.size,c=l.mtime}catch{}return{name:s.name,size:o?0:a,is_dir:o,created:c.toISOString(),modified:c.toISOString(),sign:"",type:X(s.name,o)}}))}async get(e,t){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");let i=await zt.stat(t),n=i.isDirectory(),s=t.split(/[\\/]+/).filter(Boolean).pop()||"root";return{name:s,size:n?0:i.size,is_dir:n,created:i.ctime?.toISOString()||i.mtime.toISOString(),modified:i.mtime.toISOString(),sign:"",type:X(s,n)}}async mkdir(e,t){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");await zt.mkdir(t,{recursive:!0})}async rename(e,t,i){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");let n=ar.join(ar.dirname(t),i);await zt.rename(t,n)}async remove(e,t,i){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");for(let n of i){let s=ar.join(t,n);await zt.rm(s,{recursive:!0,force:!0})}}async move(e,t,i,n,s){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");for(let o of i){let a=ar.join(n,o),c=ar.join(s,o);await zt.mkdir(ar.dirname(c),{recursive:!0}),await zt.rename(a,c)}}async copy(e,t,i,n,s){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");for(let o of i){let a=ar.join(n,o),c=ar.join(s,o);await zt.mkdir(ar.dirname(c),{recursive:!0}),await zt.cp(a,c,{recursive:!0})}}async put(e,t,i){if(await Na(),!zt||!ar)throw new Error("LocalDriver is not supported in Edge Runtime");await zt.mkdir(ar.dirname(t),{recursive:!0}),await zt.writeFile(t,i)}}});var FN={};Cn(FN,{Client:()=>ine,FTPDriver:()=>ene,SFTPClient:()=>tne,SFTPDriver:()=>Xie,createPool:()=>nne,default:()=>sne,normalizeSFTPAddition:()=>Zie,parseAddress:()=>rne});var Xie,Zie,ene,tne,rne,ine,nne,sne,PN=J(()=>{Xie=class{constructor(){throw new Error("[Edge/Serverless] SFTP driver requires full Node.js runtime")}},Zie=r=>r,ene=class{constructor(){throw new Error("[Edge/Serverless] FTP driver requires full Node.js runtime")}},tne=class{constructor(){throw new Error("[Edge/Serverless] SFTP client requires full Node.js runtime")}},rne=()=>({host:"127.0.0.1",port:22}),ine=class{constructor(){throw new Error("[Edge/Serverless] ssh2 is not available in edge/serverless runtime")}},nne=()=>{throw new Error("[Edge/Serverless] mysql2 is not available in edge/serverless runtime")},sne={}});var TN={};Cn(TN,{Client:()=>une,FTPDriver:()=>cne,SFTPClient:()=>lne,SFTPDriver:()=>one,createPool:()=>fne,default:()=>Ane,normalizeSFTPAddition:()=>ane,parseAddress:()=>dne});var one,ane,cne,lne,dne,une,fne,Ane,UN=J(()=>{one=class{constructor(){throw new Error("[Edge/Serverless] SFTP driver requires full Node.js runtime")}},ane=r=>r,cne=class{constructor(){throw new Error("[Edge/Serverless] FTP driver requires full Node.js runtime")}},lne=class{constructor(){throw new Error("[Edge/Serverless] SFTP client requires full Node.js runtime")}},dne=()=>({host:"127.0.0.1",port:22}),une=class{constructor(){throw new Error("[Edge/Serverless] ssh2 is not available in edge/serverless runtime")}},fne=()=>{throw new Error("[Edge/Serverless] mysql2 is not available in edge/serverless runtime")},Ane={}});var Mi={};Cn(Mi,{copyItems:()=>NA,flushPendingDriverState:()=>Jt,getDriver:()=>lt,getItem:()=>_i,getOrCreateDriver:()=>qN,listItems:()=>Zt,makeDirectory:()=>UA,moveItems:()=>Vd,putItem:()=>Un,removeItems:()=>qa,renameItem:()=>RA,scheduleStoragePersistence:()=>ON});async function hne(){if(!hb){let{LocalDriver:r}=await Promise.resolve().then(()=>(_N(),QN));hb=new r}return hb}async function gne(r){if(typeof process<"u"&&process.release?.name==="node"){let{SFTPDriver:e}=await Promise.resolve().then(()=>(PN(),FN)),t=new e(ye(r));return await t.init?.(),t}throw new Error("SFTP storage driver requires Node.js runtime (raw TCP sockets not available in Cloudflare Workers)")}async function pne(r){if(typeof process<"u"&&process.release?.name==="node"){let{FTPDriver:e}=await Promise.resolve().then(()=>(UN(),TN)),t=new e(ye(r));return await t.init?.(),t}throw new Error("FTP storage driver requires Node.js runtime (raw TCP sockets not available in Cloudflare Workers)")}function Ine(r,e){if($d.size>=yne){let t=$d.keys().next().value;t!==void 0&&$d.delete(t)}$d.set(r,e)}async function qN(r,e,t){let i=r.get(e);if(i)return i;let n=t();r.set(e,n);try{return await n}catch(s){throw r.get(e)===n&&r.delete(e),s}}function ye(r){let e=r?.addition;return e?typeof e=="string"?JSON.parse(e||"{}"):e:{}}async function RN(r,e){let t=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");if(t==="local"){if(typeof process<"u"&&process.release?.name==="node")return hne();throw new Error("Local storage driver requires Node.js runtime (not available in Cloudflare Workers)")}if(t==="sftp")return gne(e);if(t==="ftp")return pne(e);if(!e)throw new Error("failed get driver: storage config not found for driver "+r);let i;if(t==="onedriveapp"){i=new Cg(ye(e));try{await i.init?.()}catch(n){throw console.error("onedrive_app init failed:",n),n}}else if(t==="onedrive"||t==="onedrivesb"||t==="onedrivebusiness"||t==="onedrivesharepoint"||t.startsWith("onedrive")&&t!=="onedriveapp"){i=new xg(ye(e),async n=>{try{let s=await ne(),o=(s.storages||[]).find(c=>c.id===e?.id);if(!o)return;let a=typeof o.addition=="string"?JSON.parse(o.addition||"{}"):o.addition||{};if(a.refresh_token=n,o.addition=JSON.stringify(a),e.addition=o.addition,gb.has(e))return;await fe(s)}catch(s){console.warn("[Onedrive] failed to persist refresh token:",s)}});try{await i.init?.()}catch(n){throw console.error("onedrive init failed:",n),n}}else if(t==="aliyundrive"||t==="aliyundriveopen"||t==="aliyundriveshare"||t==="aliyun"||t==="aliyundriveshare2open"||t==="aliyundriveoauth2"||t.includes("aliyun"))i=new bg(ye(e)),await i.init?.();else if(t==="googlephoto"||t==="googlephotos"||t==="gphoto"||t==="google_photo")i=new gp(ye(e)),await i.init?.();else if(t==="googledrive"||t==="gdrive"||t==="google"||t.startsWith("google"))i=new kg(ye(e)),await i.init?.();else if(t==="quark"||t==="quarkuc"||t==="uc"||t==="quarkcookie")i=new Dg(ye(e)),await i.init?.();else if(t==="115"||t==="115cloud"||t==="115open"||t==="115netdisk")i=new _g(ye(e)),await i.init?.();else if(t==="cloudreve"||t==="cloudrevev3"||t==="cloudreve_v3"){let n=ye(e);i=new Ug(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookie=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[cloudreve] failed to persist cookie:",o)}}),await i.init?.()}else if(t==="cloudrevev4"||t==="cloudreve_v4")i=new Pg(ye(e)),await i.init?.();else if(t==="openlistshare"||t==="openlist_share")i=new Og(ye(e)),await i.init?.();else if(t==="openlist")i=new Ng(ye(e)),await i.init?.();else if(t==="teldrive")i=new Lg(ye(e)),await i.init?.();else if(t==="mediafire")i=new Kg(ye(e)),await i.init?.();else if(t==="githubreleases"||t==="github_releases")i=new zg(ye(e)),await i.init?.();else if(t==="cnbreleases"||t==="cnb_releases")i=new jg(ye(e)),await i.init?.();else if(t==="kodbox"||t==="kodo")i=new Vg(ye(e)),await i.init?.();else if(t==="ipfs"||t==="ipfsapi"||t==="ipfs_api")i=new Wg(ye(e)),await i.init?.();else if(t==="lenovonasshare"||t==="lenovonas_share")i=new Zg(ye(e)),await i.init?.();else if(t==="misskey")i=new tp(ye(e)),await i.init?.();else if(t==="doubao"||t==="doubaonew"||t==="doubao_new"||t==="doubaoshare"||t==="doubao_share")i=new ip(ye(e)),await i.init?.();else if(t==="quarkopen"||t==="quark_open"||t==="quarkoa")i=new sp(ye(e)),await i.init?.();else if(t==="quarktv"||t==="uctv"||t==="quark_uc_tv")i=new ap(ye(e)),await i.init?.();else if(t==="123open"||t==="123_open"||t==="123cloudopen")i=new lp(ye(e)),await i.init?.();else if(t==="teambition"||t==="tb")i=new up(ye(e)),await i.init?.();else if(t==="neteasemusic"||t==="netease"||t==="neteasecloudmusic"||t==="netease_music")i=new xp(ye(e)),await i.init?.();else if(t==="halalcloudopen"||t==="halalcloud_open"||t==="halalcloudopenapi"){let n=ye(e);i=new Bp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[HalalCloud] failed to persist refresh_token:",o)}}),await i.init?.()}else if(t==="degoo"){let n=ye(e);i=new Ip(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};s.accessToken&&(c.access_token=s.accessToken),s.refreshToken&&(c.refresh_token=s.refreshToken),a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[degoo] failed to persist tokens:",o)}}),await i.init?.()}else if(t==="febbox"||t==="febboxpan"){let n=ye(e);i=new mp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[febbox] failed to persist refresh_token:",o)}}),await i.init?.()}else if(t==="chaoxing"||t==="chaoxinggroupdrive"||t==="chaoxinggroup"||t.startsWith("chaoxing")){let n=ye(e);i=new Ap(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookie=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[chaoxing] failed to persist cookie:",o)}}),await i.init?.()}else if(t==="123pan"||t==="123"||t==="123panshare"||t.startsWith("123")){let n=ye(e);i=new vp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[123Pan] failed to persist access_token:",o)}}),await i.init?.()}else if(t==="baiduphoto"||t==="baidu_photo"||t==="baiduphotos")i=new Fp(ye(e)),await i.init?.();else if(t==="baidunetdisk"||t==="baidu"||t==="baiduyun"||t==="baidushare"||t.startsWith("baidu")){let n=ye(e);i=new Sp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s.access_token,c.refresh_token=s.refresh_token,a.addition=JSON.stringify(Kl(c)),await fe(o)}catch(o){console.warn("[baidu_netdisk] failed to persist token:",o)}}),await i.init?.()}else if(t==="115open"||t==="115"||t==="115pan"||t==="115cloud"||t.startsWith("115")){let n=ye(e);i=new Up(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s.access_token,c.refresh_token=s.refresh_token,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[115open] failed to persist token:",o)}}),await i.init?.()}else if(t==="github"||t==="githubapi"||t==="github_api"){let n=ye(e);i=new Np(n),await i.init?.()}else if(t==="thunderexpert"||t==="thunderbrowserexpert"||t==="thunderxexpert"||t.includes("thunder")&&t.includes("expert")||t.includes("xunlei")&&t.includes("expert")){let n=ye(e);i=new Op(n,async s=>{try{s.device_id&&(n.device_id=s.device_id),s.refresh_token&&(n.refresh_token=s.refresh_token),s.captcha_token&&(n.captcha_token=s.captcha_token),e.addition=JSON.stringify(n);let o=await ne(),a=(o.storages||[]).find(c=>c.id===e?.id);if(a){let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};s.refresh_token&&(c.refresh_token=s.refresh_token),s.captcha_token&&(c.captcha_token=s.captcha_token),s.device_id&&(c.device_id=s.device_id),a.addition=JSON.stringify(c),await fe(o)}}catch(o){console.warn("[thunderexpert] failed to persist token:",o)}}),await i.init?.()}else if(t==="thunder"||t==="xunlei"||t==="thunderbrowser"||t==="thunderx"||t.includes("thunder")||t.includes("xunlei")){let n=ye(e);i=new lf(n,async s=>{try{s.device_id&&(n.device_id=s.device_id),s.refresh_token&&(n.refresh_token=s.refresh_token),s.captcha_token&&(n.captcha_token=s.captcha_token),e.addition=JSON.stringify(n);let o=await ne(),a=(o.storages||[]).find(c=>c.id===e?.id);if(a){let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};s.refresh_token&&(c.refresh_token=s.refresh_token),s.captcha_token&&(c.captcha_token=s.captcha_token),s.device_id&&(c.device_id=s.device_id),a.addition=JSON.stringify(c),await fe(o)}}catch(o){console.warn("[thunder] failed to persist token:",o)}}),await i.init?.()}else if(t==="lanzou"||t==="lanzoupan"||t==="ilanzou"||t==="lanzoui"||t==="lanzous"){let n=ye(e);i=new zp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookie=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Lanzou] failed to persist cookie:",o)}}),await i.init?.()}else if(t==="189tv"||t==="cloud189tv"||t==="189tvcloud"||t==="189_tv"){let n=ye(e);i=new Wp(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[189TV] failed to persist access_token:",o)}}),await i.init?.()}else if(t==="189"||t==="189cloud"||t==="cloud189"||t==="ctyun"||t==="189pan"||t==="189cloudpc"||t==="189cloudapp"||t.startsWith("189")||t.includes("cloud189")){let n=ye(e);i=new Vp(n),await i.init?.()}else if(t==="webdav"||t==="webdavdriver"){let n=ye(e);i=new Zp(n),await i.init?.()}else if(t==="s3"||t==="doge"||t==="dogecloud"||t==="minio"||t==="ceph"||t==="aws"||t==="r2"||t==="b2"||t==="cos"||t==="oss"||t==="kodo"){let n=ye(e);i=new um(n,e.driver||"S3"),await i.init?.()}else if(t==="wopan"||t==="unicom"||t==="unicomcloud"||t==="woyun"||t==="chinaunicom"){let n=ye(e);i=new nm(n,async(s,o)=>{try{let a=await ne(),c=(a.storages||[]).find(d=>d.id===e?.id);if(!c)return;let l=typeof c.addition=="string"?JSON.parse(c.addition||"{}"):c.addition||{};l.access_token=s,l.refresh_token=o,c.addition=JSON.stringify(EE(l)),await fe(a)}catch(a){console.warn("[WoPan] failed to persist tokens:",a)}}),await i.init?.()}else if(t==="weiyun"||t==="tencentweiyun"||t==="txweiyun"||t.includes("weiyun")){let n=ye(e);i=new gm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.cookies=s,a.addition=JSON.stringify(FE(c)),await fe(o)}catch(o){console.warn("[WeiYun] failed to persist cookies:",o)}}),await i.init?.()}else if(t==="pikpak"||t==="pikpakshare"||t.includes("pikpak")){let n=ye(e);i=new mm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s.refreshToken,s.captchaToken&&(c.captcha_token=s.captchaToken),a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[PikPak] failed to persist tokens:",o)}}),await i.init?.()}else if(t==="seafile"||t.includes("seafile")){let n=ye(e);i=new Im(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Seafile] failed to persist token:",o)}}),await i.init?.()}else if(t==="yandex"||t==="yandexdisk"||t==="yandexdrive"||t.includes("yandex")){let n=ye(e);i=new xm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.refresh_token=s.refreshToken,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Yandex] failed to persist token:",o)}}),await i.init?.()}else if(t==="terabox"||t==="dubox"||t.includes("terabox")){let n=ye(e);i=new Em(n),await i.init?.()}else if(t==="mediatrack"||t==="fenmiao"||t.includes("mediatrack")){let n=ye(e);i=new bm(n),await i.init?.()}else if(t==="alias"||t.includes("alias")){let n=ye(e);i=new vm(n),await i.init?.()}else if(t==="dropbox"||t.includes("dropbox")){let n=ye(e);i=new Sm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.access_token=s.accessToken,c.refresh_token=s.refreshToken,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[Dropbox] failed to persist token:",o)}}),await i.init?.()}else if(t==="wps"||t.includes("wps")||t.includes("kdocs")){let n=ye(e);i=new Qm(n),await i.init?.()}else if(t==="mopan"||t==="mobilecloud"||t==="cmcc"||t==="chinamobile"||t.includes("mopan")){let n=ye(e);i=new am(n,async(s,o)=>{try{let a=await ne(),c=(a.storages||[]).find(u=>u.id===e?.id);if(!c)return;let l=typeof c.addition=="string"?JSON.parse(c.addition||"{}"):c.addition||{};l.device_info=s;let d=o.replace(/^Bearer\s+/i,"");l.token=d,c.addition=JSON.stringify(l),await fe(a)}catch(a){console.warn("[MoPan] failed to persist tokens:",a)}}),await i.init?.()}else if(t==="139"||t==="139yun"||t==="caiyun"||t==="hecaiyun"||t.includes("139")){let n=ye(e);i=new Fm(n),await i.init?.()}else if(t==="mega"||t==="meganz"||t.includes("mega")){let n=ye(e);i=new Tm(n),await i.init?.()}else if(t==="115share"||t==="115sharelink"||t.includes("115")&&t.includes("share")){let n=ye(e);i=new Rm(n),await i.init?.()}else if(t==="123share"||t==="123panshare"||t==="123link"||t.includes("123")&&t.includes("share")){let n=ye(e);i=new qm(n),await i.init?.()}else if(t==="aliyundriveshare"||t==="aliyunshare"||t==="alishare"||t.includes("ali")&&t.includes("share")){let n=ye(e);i=new Mm(n),await i.init?.()}else if(t==="onedrivesharelink"||t==="onedriveshare"||t==="sharepointshare"||t.includes("onedrive")&&t.includes("share")){let n=ye(e);i=new Hm(n),await i.init?.()}else if(t==="pikpakshare"||t.includes("pikpak")&&t.includes("share")){let n=ye(e);i=new Gm(n),await i.init?.()}else if(t==="smb"||t==="samba"||t==="cifs"||t.includes("smb")){let n=ye(e);i=new zm(n),await i.init?.()}else if(t==="crypt"){let n=ye(e);i=new Vm(n),await i.init?.()}else if(t==="virtual"){let n=ye(e);i=new Ym(n)}else if(t==="alistv3"||t==="alist"||t==="alistv2"){let n=ye(e);i=new Wm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.token=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[alist_v3] failed to persist token:",o)}}),await i.init?.()}else if(t==="urltree"||t==="urlstree"){let n=ye(e);i=new Xm(n,async s=>{try{let o=await ne(),a=(o.storages||[]).find(l=>l.id===e?.id);if(!a)return;let c=typeof a.addition=="string"?JSON.parse(a.addition||"{}"):a.addition||{};c.url_structure=s,a.addition=JSON.stringify(c),await fe(o)}catch(o){console.warn("[url_tree] failed to persist structure:",o)}}),await i.init?.()}else if(t==="strm"){let n=ye(e);i=new Zm(n),await i.init?.()}else if(t==="chunk"){let n=ye(e);i=new ey(n),await i.init?.()}else if(t==="azureblob"||t==="azure"||t==="azblob"){let n=ye(e);i=new ty(n),await i.init?.()}else if(t==="uss"||t==="upyun"){let n=ye(e);i=new ry(n),await i.init?.()}else if(t==="autoindex"||t==="nginxautoindex"){let n=ye(e);i=new Fy(n),await i.init?.()}else if(t==="protondrive"||t==="proton"){let n=ye(e);i=new dw(n),await i.init?.()}else if(t==="alidoc"||t==="dingtalkdoc"){let n=ye(e);i=new ny(n),await i.init?.()}else if(t==="emby"||t==="jellyfin"){let n=ye(e);i=new oy(n),await i.init?.()}else if(t==="bunnystorage"||t==="bunnycdn"||t==="bunny"){let n=ye(e);i=new ly(n),await i.init?.()}else if(t==="cloudflareimgbed"||t==="cfimgbed"||t==="cloudflareimage"){let n=ye(e);i=new fy(n),await i.init?.()}else if(t==="guangyapan"||t==="guangya"){let n=ye(e);i=new Ay(n,async(s,o)=>{try{let a=await ne(),c=(a.storages||[]).find(d=>d.id===e?.id);if(!c)return;let l=typeof c.addition=="string"?JSON.parse(c.addition||"{}"):c.addition||{};l.access_token=s,o&&(l.refresh_token=o),c.addition=JSON.stringify(l),await fe(a)}catch(a){console.warn("[GuangYaPan] failed to persist tokens:",a)}}),await i.init?.()}else throw new Error("failed get driver: unsupported driver '"+r+"'");return i}async function lt(r,e,t={}){let i=!!(t.deferTokenPersistence&&e&&typeof e=="object");i&&gb.add(e);try{if((r||"").toLowerCase().replace(/[^a-z0-9]/g,"")==="local")return RN(r,e);if(!e)throw new Error("failed get driver: storage config not found for driver "+r);let s=`${e.id}_${e.modified}`,o=$d.get(s);return o||qN(mne,s,async()=>{let a=$d.get(s);if(a)return a;let c=await RN(r,e);return Ine(s,c),c})}finally{i&&gb.delete(e)}}function wne(r){let e=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");return e==="189"||e==="189cloud"||e==="cloud189"||e==="ctyun"||e==="189pan"}async function ON(r,e){if(r)try{r(e);return}catch{}await e}async function xne(r,e){let t=String(r?.id||"");if(!t)return;let n=(uw.get(t)||Promise.resolve()).catch(()=>{}).then(async()=>{let s=await ne(),o=(s.storages||[]).find(c=>String(c.id)===t);if(!o)return;let a=typeof o.addition=="string"?JSON.parse(o.addition||"{}"):o.addition||{};a.cookies!==void 0||MN(r?.driver)?a.cookies=e:a.cookie=e,o.addition=JSON.stringify(a),String(r?.id)===t&&(r.addition=o.addition),await fe(s)});uw.set(t,n);try{await n}finally{uw.get(t)===n&&uw.delete(t)}}function MN(r){let e=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");return e==="weiyun"||e==="tencentweiyun"||e==="txweiyun"||e.includes("weiyun")}async function Jt(r,e,t,i){if(!wne(r)&&!MN(r))return;let s=t.consumePendingCookie?.call(t);if(!s)return;let o=xne(e,s).catch(a=>{console.warn(`[${r}] failed to persist cookie:`,a)});await ON(i?.waitUntil,o)}async function Zt(r,e){let t=await ct(r,e?.env),i=[],n="Virtual";if(t.storage){n=t.storage.driver;try{let l=await lt(n,t.storage);try{i=await l.list(r,t.physical)}finally{await Jt(n,t.storage,l,e)}if(t.storage.status!=="work"){t.storage.status="work";let d=await ne(e?.env),u=(d.storages||[]).find(f=>f.id===t.storage?.id);u&&(u.status="work",await fe(d,e?.env))}}catch(l){try{let d=await ne(e?.env),u=(d.storages||[]).find(f=>f.id===t.storage?.id);u&&(u.status=l.message||String(l),await fe(d,e?.env))}catch(d){console.warn("Failed to persist storage status:",d)}throw l}}else if(!t.isVirtual)throw new Error("failed get storage: storage not found");let o=((await ne(e?.env)).storages||[]).filter(l=>!l.disabled),a=t.cleanPath;return[...o].sort((l,d)=>{let u=Number(l.order)||0,f=Number(d.order)||0;if(u!==f)return u-f;let h=String(l.mount_path||""),g=String(d.mount_path||"");return h<g?-1:h>g?1:0}).forEach(l=>{let d="/"+(l.mount_path||"").split("/").filter(Boolean).join("/");if(d===a||d==="/")return;let u=a==="/"?"/":a+"/";if(d.startsWith(u)){let f=d.slice(u.length).split("/").filter(Boolean)[0];f&&!i.some(h=>h.name===f)&&i.push({name:f,size:0,is_dir:!0,modified:l.modified||new Date().toISOString(),sign:"",type:1})}}),i.forEach(l=>{l.type||(l.type=X(l.name,l.is_dir))}),{content:i,provider:n,storage:t.storage}}async function NN(r,e){try{let t=await Vn().catch(()=>({}));return wg({storage:r,driver:r?.driver||"",filename:e,proxyTypes:Ic(t.proxy_types),textTypes:Ic(t.text_types)})?"/api/p":"/api/d"}catch{return"/api/p"}}async function _i(r,e){let t=await ct(r,e?.env);if(t.isVirtual)return{item:{name:t.cleanPath.split("/").filter(Boolean).pop()||"root",size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",type:1},provider:"Virtual",rawUrl:""};if(t.storage&&t.relative==="/"){let o=t.cleanPath.split("/").filter(Boolean).pop()||"root",a=ye(t.storage);return{item:{name:o,size:0,is_dir:!0,modified:t.storage.modified||new Date().toISOString(),sign:String(a.root_folder_id||""),type:1,raw_url:""},provider:t.storage.driver,rawUrl:`${await NN(t.storage,r)}${Os(r)}`}}let i=t.storage?t.storage.driver:"Local",n=await lt(i,t.storage),s;try{s=await n.get(r,t.physical)}finally{await Jt(i,t.storage,n,e)}return s.type||(s.type=X(s.name,s.is_dir)),{item:s,provider:i,rawUrl:`${await NN(t.storage,r)}${Os(r)}`}}async function UA(r,e){let t=await ct(r,e?.env);if(t.isVirtual)throw new Error("failed get storage: storage not found");let i=await lt(t.storage.driver,t.storage);try{await i.mkdir(r,t.physical)}finally{await Jt(t.storage.driver,t.storage,i,e)}}async function RA(r,e,t){let i=await ct(r,t?.env);if(i.isVirtual)throw new Error("failed get storage: storage not found");let n=await lt(i.storage.driver,i.storage);try{await n.rename(r,i.physical,e)}finally{await Jt(i.storage.driver,i.storage,n,t)}}async function qa(r,e,t){for(let i of e){let n=`${r}/${i}`,s=await ct(n,t?.env);if(s.isVirtual)throw new Error("failed get storage: storage not found");let o=await lt(s.storage.driver,s.storage);try{await o.remove(n,s.physical,[i])}finally{await Jt(s.storage.driver,s.storage,o,t)}}}async function Vd(r,e,t,i){for(let n of t){let s=`${r}/${n}`,o=`${e}/${n}`,a=await ct(s,i?.env),c=await ct(o,i?.env);if(a.isVirtual||c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(a.storage.driver,a.storage);try{await l.move(r,e,[n],a.physical,c.physical)}finally{await Jt(a.storage.driver,a.storage,l,i)}}}async function NA(r,e,t,i){for(let n of t){let s=`${r}/${n}`,o=`${e}/${n}`,a=await ct(s,i?.env),c=await ct(o,i?.env);if(a.isVirtual||c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(a.storage.driver,a.storage);try{await l.copy(r,e,[n],a.physical,c.physical)}finally{await Jt(a.storage.driver,a.storage,l,i)}}}async function Un(r,e,t){let i=await ct(r,t?.env);if(i.isVirtual)throw new Error("failed get storage: storage not found");let n=await lt(i.storage.driver,i.storage);try{await n.put(r,i.physical,e)}finally{await Jt(i.storage.driver,i.storage,n,t)}}var hb,$d,mne,uw,gb,yne,Yt=J(()=>{"use strict";Ye();Nl();ef();Be();xQ();DQ();PQ();OQ();GQ();VQ();XQ();t_();i_();a_();d_();f_();h_();p_();y_();w_();C_();B_();S_();__();T_();N_();O_();z_();$_();W_();e8();f8();E8();D8();U8();L8();z8();$8();s4();u4();x4();k4();_4();X4();dF();yF();kF();QF();FF();TF();RF();qF();OF();LF();GF();JF();$F();YF();ZF();tP();iP();sP();oP();dP();uP();fP();hP();yP();IP();CP();EP();vP();DP();UP();MP();$P();u6();DN();hb=null;$d=new Map,mne=new Map,uw=new Map,gb=new WeakSet,yne=100});var HN,Cne,Ene,Bne,bne,LN,fw,pb,KN=J(()=>{sc();HN={name:"HMAC",hash:"SHA-256"},Cne=async r=>{let e=typeof r=="string"?new TextEncoder().encode(r):r;return await crypto.subtle.importKey("raw",e,HN,!1,["sign","verify"])},Ene=async(r,e,t)=>{try{let i=atob(r),n=new Uint8Array(i.length);for(let s=0,o=i.length;s<o;s++)n[s]=i.charCodeAt(s);return await crypto.subtle.verify(HN,t,n,new TextEncoder().encode(e))}catch{return!1}},Bne=/^[!#-:<>-[\]-~]+$/,bne=/^[ !#-:<-[\]-~]*$/,LN=r=>{let e=0,t=r.length;for(;e<t;){let i=r.charCodeAt(e);if(i!==32&&i!==9)break;e++}for(;t>e;){let i=r.charCodeAt(t-1);if(i!==32&&i!==9)break;t--}return e===0&&t===r.length?r:r.slice(e,t)},fw=(r,e)=>{if(e&&r.indexOf(e)===-1)return{};let t=r.split(";"),i=Object.create(null);for(let n of t){let s=n.indexOf("=");if(s===-1)continue;let o=LN(n.substring(0,s));if(e&&e!==o||!Bne.test(o)||o in i)continue;let a=LN(n.substring(s+1));if(a.startsWith('"')&&a.endsWith('"')&&(a=a.slice(1,-1)),bne.test(a)&&(i[o]=vl(a),e))break}return i},pb=async(r,e,t)=>{let i=Object.create(null),n=await Cne(e);for(let[s,o]of Object.entries(fw(r,t))){let a=o.lastIndexOf(".");if(a<1)continue;let c=o.substring(0,a),l=o.substring(a+1);if(l.length!==44||!l.endsWith("="))continue;let d=await Ene(l,c,n);i[s]=d?c:!1}return i}});var Aw,mb,GN=J(()=>{KN();Aw=(r,e,t)=>{let i=r.req.raw.headers.get("Cookie");if(typeof e=="string"){if(!i)return;let s=e;return t==="secure"?s="__Secure-"+e:t==="host"&&(s="__Host-"+e),fw(i,s)[s]}return i?fw(i):{}},mb=async(r,e,t,i)=>{let n=r.req.raw.headers.get("Cookie");if(typeof t=="string"){if(!n)return;let o=t;return i==="secure"?o="__Secure-"+t:i==="host"&&(o="__Host-"+t),(await pb(n,e,o))[o]}return n?await pb(n,e):{}}});var yb,Ib,vne,wb,xb=J(()=>{yb=r=>wb(r.replace(/_|-/g,e=>({_:"/","-":"+"})[e]??e)),Ib=r=>vne(r).replace(/\/|\+/g,e=>({"/":"_","+":"-"})[e]??e),vne=r=>{let e="",t=new Uint8Array(r);for(let i=0,n=t.length;i<n;i++)e+=String.fromCharCode(t[i]);return btoa(e)},wb=r=>{let e=atob(r),t=new Uint8Array(new ArrayBuffer(e.length)),i=e.length/2;for(let n=0,s=e.length-1;n<=i;n++,s--)t[n]=e.charCodeAt(n),t[s]=e.charCodeAt(s);return t}});var Oa,Cb=J(()=>{Oa=(r=>(r.HS256="HS256",r.HS384="HS384",r.HS512="HS512",r.RS256="RS256",r.RS384="RS384",r.RS512="RS512",r.PS256="PS256",r.PS384="PS384",r.PS512="PS512",r.ES256="ES256",r.ES384="ES384",r.ES512="ES512",r.EdDSA="EdDSA",r))(Oa||{})});var kne,zN,Sne,JN=J(()=>{kne={deno:"Deno",bun:"Bun",workerd:"Cloudflare-Workers",node:"Node.js"},zN=()=>{let r=globalThis;if(typeof navigator<"u"&&typeof navigator.userAgent=="string"){for(let[t,i]of Object.entries(kne))if(Sne(i))return t}return typeof r?.EdgeRuntime=="string"?"edge-light":r?.fastly!==void 0?"fastly":r?.process?.release?.name==="node"?"node":"other"},Sne=r=>navigator.userAgent.startsWith(r)});var jN,Eb,Bb,nl,$N,VN,YN,hw,bb,WN,XN,ZN,e9,t9,r9,Wd,vb=J(()=>{jN=class extends Error{constructor(r){super(`${r} is not an implemented algorithm`),this.name="JwtAlgorithmNotImplemented"}},Eb=class extends Error{constructor(){super('JWT verification requires "alg" option to be specified'),this.name="JwtAlgorithmRequired"}},Bb=class extends Error{constructor(r,e){super(`JWT algorithm mismatch: expected "${r}", got "${e}"`),this.name="JwtAlgorithmMismatch"}},nl=class extends Error{constructor(r){super(`invalid JWT token: ${r}`),this.name="JwtTokenInvalid"}},$N=class extends Error{constructor(r){super(`token (${r}) is being used before it's valid`),this.name="JwtTokenNotBefore"}},VN=class extends Error{constructor(r){super(`token (${r}) expired`),this.name="JwtTokenExpired"}},YN=class extends Error{constructor(r,e){super(`Invalid "iat" claim, must be a valid number lower than "${r}" (iat: "${e}")`),this.name="JwtTokenIssuedAt"}},hw=class extends Error{constructor(r,e){super(`expected issuer "${r}", got ${e?`"${e}"`:"none"} `),this.name="JwtTokenIssuer"}},bb=class extends Error{constructor(r){super(`jwt header is invalid: ${JSON.stringify(r)}`),this.name="JwtHeaderInvalid"}},WN=class extends Error{constructor(r){super(`required "kid" in jwt header: ${JSON.stringify(r)}`),this.name="JwtHeaderRequiresKid"}},XN=class extends Error{constructor(r){super(`symmetric algorithm "${r}" is not allowed for JWK verification`),this.name="JwtSymmetricAlgorithmNotAllowed"}},ZN=class extends Error{constructor(r,e){super(`algorithm "${r}" is not in the allowed list: [${e.join(", ")}]`),this.name="JwtAlgorithmNotAllowed"}},e9=class extends Error{constructor(r){super(`token(${r}) signature mismatched`),this.name="JwtTokenSignatureMismatched"}},t9=class extends Error{constructor(r){super(`required "aud" in jwt payload: ${JSON.stringify(r)}`),this.name="JwtPayloadRequiresAud"}},r9=class extends Error{constructor(r,e){super(`expected audience "${Array.isArray(r)?r.join(", "):r}", got "${e}"`),this.name="JwtTokenAudience"}},Wd=(r=>(r.Encrypt="encrypt",r.Decrypt="decrypt",r.Sign="sign",r.Verify="verify",r.DeriveKey="deriveKey",r.DeriveBits="deriveBits",r.WrapKey="wrapKey",r.UnwrapKey="unwrapKey",r))(Wd||{})});var sl,i9,kb=J(()=>{sl=new TextEncoder,i9=new TextDecoder});async function s9(r,e,t){let i=a9(e),n=await Dne(r,i);return await crypto.subtle.sign(i,n,t)}async function o9(r,e,t,i){let n=a9(e),s=await Qne(r,n);return await crypto.subtle.verify(n,s,t,i)}function Sb(r){return wb(r.replace(/-+(BEGIN|END).*?-+/g,"").replace(/\s/g,""))}async function Dne(r,e){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(c9(r)){if(r.type!=="private"&&r.type!=="secret")throw new Error(`unexpected key type: CryptoKey.type is ${r.type}, expected private or secret`);return r}let t=[Wd.Sign];return typeof r=="object"?await crypto.subtle.importKey("jwk",r,e,!1,t):r.includes("PRIVATE")?await crypto.subtle.importKey("pkcs8",Sb(r),e,!1,t):await crypto.subtle.importKey("raw",sl.encode(r),e,!1,t)}async function Qne(r,e){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(c9(r)){if(r.type==="public"||r.type==="secret")return r;r=await n9(r)}if(typeof r=="string"&&r.includes("PRIVATE")){let i=await crypto.subtle.importKey("pkcs8",Sb(r),e,!0,[Wd.Sign]);r=await n9(i)}let t=[Wd.Verify];return typeof r=="object"?await crypto.subtle.importKey("jwk",r,e,!1,t):r.includes("PUBLIC")?await crypto.subtle.importKey("spki",Sb(r),e,!1,t):await crypto.subtle.importKey("raw",sl.encode(r),e,!1,t)}async function n9(r){if(r.type!=="private")throw new Error(`unexpected key type: ${r.type}`);if(!r.extractable)throw new Error("unexpected private key is unextractable");let e=await crypto.subtle.exportKey("jwk",r),{kty:t}=e,{alg:i,e:n,n:s}=e,{crv:o,x:a,y:c}=e;return{kty:t,alg:i,e:n,n:s,crv:o,x:a,y:c,key_ops:[Wd.Verify]}}function a9(r){switch(r){case"HS256":return{name:"HMAC",hash:{name:"SHA-256"}};case"HS384":return{name:"HMAC",hash:{name:"SHA-384"}};case"HS512":return{name:"HMAC",hash:{name:"SHA-512"}};case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"RS384":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case"RS512":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case"PS256":return{name:"RSA-PSS",hash:{name:"SHA-256"},saltLength:32};case"PS384":return{name:"RSA-PSS",hash:{name:"SHA-384"},saltLength:48};case"PS512":return{name:"RSA-PSS",hash:{name:"SHA-512"},saltLength:64};case"ES256":return{name:"ECDSA",hash:{name:"SHA-256"},namedCurve:"P-256"};case"ES384":return{name:"ECDSA",hash:{name:"SHA-384"},namedCurve:"P-384"};case"ES512":return{name:"ECDSA",hash:{name:"SHA-512"},namedCurve:"P-521"};case"EdDSA":return{name:"Ed25519",namedCurve:"Ed25519"};default:throw new jN(r)}}function c9(r){return zN()==="node"&&crypto.webcrypto?r instanceof crypto.webcrypto.CryptoKey:r instanceof CryptoKey}var l9=J(()=>{JN();xb();vb();kb()});function d9(r){if(typeof r=="object"&&r!==null){let e=r;return"alg"in e&&Object.values(Oa).includes(e.alg)&&(!("typ"in e)||e.typ==="JWT")}return!1}var Db,_ne,Qb,u9,_b,Fne,f9,Fb,Pne,A9=J(()=>{xb();Cb();l9();vb();kb();Db=r=>Ib(sl.encode(JSON.stringify(r)).buffer).replace(/=/g,""),_ne=r=>Ib(r).replace(/=/g,""),Qb=r=>JSON.parse(i9.decode(yb(r)));u9=async(r,e,t="HS256")=>{let i=Db(r),n;typeof e=="object"&&"alg"in e?(t=e.alg,n=Db({alg:t,typ:"JWT",kid:e.kid})):n=Db({alg:t,typ:"JWT"});let s=`${n}.${i}`,o=await s9(e,t,sl.encode(s)),a=_ne(o);return`${s}.${a}`},_b=async(r,e,t)=>{if(!t)throw new Eb;let{alg:i,iss:n,nbf:s=!0,exp:o=!0,iat:a=!0,aud:c}=typeof t=="string"?{alg:t}:t;if(!i)throw new Eb;let l=r.split(".");if(l.length!==3)throw new nl(r);let{header:d,payload:u}=Fb(r);if(!d9(d))throw new bb(d);if(d.alg!==i)throw new Bb(i,d.alg);let f=Math.floor(Date.now()/1e3);if(s&&u.nbf!==void 0&&(typeof u.nbf!="number"||!Number.isFinite(u.nbf)||u.nbf>f))throw new $N(r);if(o&&u.exp!==void 0&&(typeof u.exp!="number"||!Number.isFinite(u.exp)||u.exp<=f))throw new VN(r);if(a&&u.iat!==void 0&&(typeof u.iat!="number"||!Number.isFinite(u.iat)||f<u.iat))throw new YN(f,u.iat);if(n){if(!u.iss)throw new hw(n,null);if(typeof n=="string"&&u.iss!==n)throw new hw(n,u.iss);if(n instanceof RegExp&&!n.test(u.iss))throw new hw(n,u.iss)}if(c){if(!u.aud)throw new t9(u);if(!(Array.isArray(u.aud)?u.aud:[u.aud]).some(m=>c instanceof RegExp?c.test(m):typeof c=="string"?m===c:Array.isArray(c)&&c.includes(m)))throw new r9(c,u.aud)}let h=r.substring(0,r.lastIndexOf("."));if(!await o9(e,i,yb(l[2]),sl.encode(h)))throw new e9(r);return u},Fne=[Oa.HS256,Oa.HS384,Oa.HS512],f9=async(r,e,t)=>{let i=e.verification||{},n=Pne(r);if(!d9(n))throw new bb(n);if(!n.kid)throw new WN(n);if(Fne.includes(n.alg))throw new XN(n.alg);if(!e.allowedAlgorithms.includes(n.alg))throw new ZN(n.alg,e.allowedAlgorithms);let s=e.keys?[...e.keys]:void 0;if(e.jwks_uri){let a=await fetch(e.jwks_uri,t);if(!a.ok)throw new Error(`failed to fetch JWKS from ${e.jwks_uri}`);let c=await a.json();if(!c.keys)throw new Error('invalid JWKS response. "keys" field is missing');if(!Array.isArray(c.keys))throw new Error('invalid JWKS response. "keys" field is not an array');s??=[],s.push(...c.keys)}else if(!s)throw new Error('verifyWithJwks requires options for either "keys" or "jwks_uri" or both');let o=s.find(a=>a.kid===n.kid);if(!o)throw new nl(r);if(o.alg&&o.alg!==n.alg)throw new Bb(o.alg,n.alg);return await _b(r,o,{alg:n.alg,...i})},Fb=r=>{let e=r.split(".");if(e.length!==3)throw new nl(r);try{let t=Qb(e[0]),i=Qb(e[1]);return{header:t,payload:i}}catch{throw new nl(r)}},Pne=r=>{let e=r.split(".");if(e.length!==3)throw new nl(r);try{return Qb(e[0])}catch{throw new nl(r)}}});var Xd,h9=J(()=>{A9();Xd={sign:u9,verify:_b,decode:Fb,verifyWithJwks:f9}});function Pb(r){let e=(r.realm??r.ctx.req.url).replace(/"/g,'\\"'),t=r.errDescription.replace(/"/g,'\\"');return new Response("Unauthorized",{status:401,statusText:r.statusText,headers:{"WWW-Authenticate":`Bearer realm="${e}",error="${r.error}",error_description="${t}"`}})}var g9,p9,mo,m9,yo,y9=J(()=>{GN();kx();h9();$0();g9=r=>{let e=r.verification||{};if(!r||!r.secret)throw new Error('JWT auth middleware requires options for "secret"');if(!r.alg)throw new Error('JWT auth middleware requires options for "alg"');if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");return async function(i,n){let s=r.headerName||"Authorization",o=i.req.raw.headers.get(s),a;if(o){let d=o.split(/\s+/);if(d.length!==2||d[0].toLowerCase()!=="bearer"){let u="invalid credentials structure";throw new Fu(401,{message:u,res:Pb({ctx:i,error:"invalid_request",errDescription:u,realm:r.realm})})}else a=d[1]}else r.cookie&&(typeof r.cookie=="string"?a=Aw(i,r.cookie):r.cookie.secret?r.cookie.prefixOptions?a=await mb(i,r.cookie.secret,r.cookie.key,r.cookie.prefixOptions):a=await mb(i,r.cookie.secret,r.cookie.key):r.cookie.prefixOptions?a=Aw(i,r.cookie.key,r.cookie.prefixOptions):a=Aw(i,r.cookie.key));if(!a){let d="no authorization included in request";throw new Fu(401,{message:d,res:Pb({ctx:i,error:"invalid_request",errDescription:d,realm:r.realm})})}let c,l;try{c=await Xd.verify(a,r.secret,{alg:r.alg,...e})}catch(d){l=d}if(!c)throw new Fu(401,{message:"Unauthorized",res:Pb({ctx:i,error:"invalid_token",statusText:"Unauthorized",errDescription:"token verification failure",realm:r.realm}),cause:l});i.set("jwtPayload",c),await n()}};p9=Xd.verifyWithJwks,mo=Xd.verify,m9=Xd.decode,yo=Xd.sign});var gw={};Cn(gw,{AlgorithmTypes:()=>Oa,decode:()=>m9,jwt:()=>g9,sign:()=>yo,verify:()=>mo,verifyWithJwks:()=>p9});var Io=J(()=>{y9();Cb()});function I9(r,e){let t=`<?xml version="1.0" encoding="utf-8" ?> `;t+=`<d:multistatus xmlns:d="DAV:"> `,t+=` <d:response> `,t+=` <d:href>${r}</d:href> @@ -250,55 +252,55 @@ ${y}${w}`,b=await Bu(C,d.secretAccessKey),x=`OSS ${d.accessKeyID}:${b}`,_={"Cont `,t+=` <d:status>HTTP/1.1 200 OK</d:status> `,t+=` </d:propstat> `,t+=` </d:response> -`}return t+="</d:multistatus>",t}var WR=j(()=>{"use strict"});function Ne(r,e="Internal server error"){if(!r)return e;let t=typeof r=="string"?r:r?.message||String(r);if(!t)return e;let i=String(t);return i.length>200||/[A-Za-z]:[\\/][^\\/\s]|[\\/][A-Za-z0-9_.-]+[\\/][A-Za-z0-9_.-]/.test(i)&&/\.(ts|js|mjs|cjs|json|toml|yml|yaml)/i.test(i)||/at .*\(|at [A-Za-z0-9_.-]+:[0-9]+:[0-9]+/.test(i)?e:i}var Vc,Gxe,Da=j(()=>{"use strict";Vc=class extends Error{constructor(t,i,n){super(i);this.code=t;this.message=i;this.originalError=n;this.name="OpenListError"}code;message;originalError},Gxe={PathNotFound:new Vc(1004,"Path not found"),NotReady:new Vc(1003,"Storage not ready"),InvalidConfig:new Vc(1001,"Invalid configuration"),Unauthorized:new Vc(401,"Unauthorized access"),Forbidden:new Vc(403,"Permission denied")}});var XR=j(()=>{"use strict"});var ZR=j(()=>{"use strict"});async function Kd(r){if(await n2(r))return!0;let e=r.req.header("Authorization");if(!e)return!1;let t=e.startsWith("Bearer ")?e.substring(7):e;try{let{verify:i}=await Promise.resolve().then(()=>(Ao(),$I)),{getJwtSecret:n}=await Promise.resolve().then(()=>(Qi(),VI)),s=await n(r),o=await i(t,s,"HS256");if(o&&o.role===2){let c=((await ne(r.env)).users||[]).find(l=>l.id===o.id||l.username===o.username);return!!(c&&!c.disabled)}}catch{}return!1}async function n2(r){let e=r.req.header("Authorization");if(!e)return!1;let t=e.startsWith("Bearer ")?e.substring(7):e,n=(await ne(r.env)).settings.find(c=>c.key==="token");if(!n||!n.value)return!1;let s=new TextEncoder().encode(t),o=new TextEncoder().encode(String(n.value));if(s.length!==o.length)return!1;let a=0;for(let c=0;c<s.length;c++)a|=s[c]^o[c];return a===0}var bA=j(()=>{"use strict";Ve();WR();Da();XR();lc();si();ZR()});var vA={};xn(vA,{cleanupExpiredLogs:()=>qre,getAuditStats:()=>Ore,loadAuditLogsFromKV:()=>Tre,logAudit:()=>Fre,queryAuditLogs:()=>Pre});async function Fre(r,e){let t={id:Rre(),timestamp:new Date().toISOString(),...r};ln.push(t),ln.length>1e3&&(ln=ln.slice(-1e3)),e&&Ure(t,e).catch(i=>{console.warn("[Audit] Failed to persist log to KV:",i)}),Nre(e)&&console.log(`[AUDIT] ${t.username} ${t.method} ${t.resource} - ${t.status} (${t.status_code})`)}function Pre(r){let e=[...ln];r?.username&&(e=e.filter(i=>i.username===r.username)),r?.action&&(e=e.filter(i=>i.action.includes(r.action))),r?.method&&(e=e.filter(i=>i.method.toUpperCase()===r.method.toUpperCase())),r?.status&&(e=e.filter(i=>i.status===r.status)),r?.startDate&&(e=e.filter(i=>i.timestamp>=r.startDate)),r?.endDate&&(e=e.filter(i=>i.timestamp<=r.endDate));let t=r?.limit||100;return e.slice(-t).reverse()}async function Tre(r){try{let{getKvBinding:e}=await Promise.resolve().then(()=>(Ve(),Gr)),t=await e(r);if(t.mode==="none"||!t.binding)return[];let{binding:i,mode:n}=t,s=null;if(n==="blob")s=await i.get(ho);else try{s=await i.get(ho,"text")}catch{s=await i.get(ho)}if(s&&typeof s.text=="function"&&(s=await s.text()),!s)return[];let o=JSON.parse(String(s));return Array.isArray(o)?o:[]}catch(e){return console.warn("[Audit] Failed to load logs from KV:",e),[]}}async function Ure(r,e){try{let{getKvBinding:t}=await Promise.resolve().then(()=>(Ve(),Gr)),i=await t(e);if(i.mode==="none"||!i.binding)return;let{binding:n,mode:s}=i,o=[];try{let c=null;s==="blob"?c=await n.get(ho):c=await n.get(ho,"text"),c&&typeof c.text=="function"&&(c=await c.text()),c&&(o=JSON.parse(String(c)))}catch{}Array.isArray(o)||(o=[]),o.push(r),o.length>1e4&&(o=o.slice(-1e4));let a=JSON.stringify(o);s==="blob"?typeof n.set=="function"?await n.set(ho,a):typeof n.put=="function"&&await n.put(ho,a):typeof n.put=="function"?await n.put(ho,a):typeof n.set=="function"&&await n.set(ho,a)}catch(t){console.warn("[Audit] Persist to KV failed:",t)}}function Rre(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();let r=Date.now().toString(36),e=Math.random().toString(36).substring(2,9);return`${r}-${e}`}function Nre(r){let e=r||(typeof process<"u"?process.env:{});return e?.ENVIRONMENT==="development"||e?.NODE_ENV==="development"}function qre(r=30){let e=new Date;e.setDate(e.getDate()-r);let t=e.toISOString();ln=ln.filter(i=>i.timestamp>=t)}function Ore(){let r=ln.length,e=ln.filter(o=>o.status==="success").length,t=ln.filter(o=>o.status==="failure").length,i=new Set(ln.map(o=>o.username)).size,n=new Map;ln.forEach(o=>{let a=n.get(o.action)||0;n.set(o.action,a+1)});let s=Array.from(n.entries()).map(([o,a])=>({action:o,count:a})).sort((o,a)=>a.count-o.count).slice(0,10);return{total:r,success:e,failure:t,uniqueUsers:i,recentActions:s}}var ln,ho,kA=j(()=>{"use strict";ln=[],ho="openlist_audit_logs"});var VI={};xn(VI,{adminAuthMiddleware:()=>_i,auditMiddleware:()=>zre,csrfProtection:()=>Gre,generateCSRFToken:()=>l2,getJwtSecret:()=>kr,getUserFromContext:()=>Me,isTokenRevoked:()=>YI,matchCronSecret:()=>c2,resetJwtSecretCache:()=>Mre,revokeToken:()=>a2});function Mre(){go=null}function rN(){let r=new Uint8Array(32);return crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}async function Lre(r){try{let{readPersistedSecret:e}=await Promise.resolve().then(()=>(Ve(),Gr));return await e(r,tN)}catch(e){return console.warn("[JWT] Failed to read secret from KV:",e),null}}async function Hre(r,e){try{let{writePersistedSecret:t}=await Promise.resolve().then(()=>(Ve(),Gr));return await t(r,tN,e)}catch(t){return console.warn("[JWT] Failed to persist secret to KV:",t),!1}}async function kr(r){let e=r?.env||(typeof process<"u"?process.env:{})||{},t=e.JWT_SECRET;if(t&&t.length>=16)return t;if(go&&go.length>=32)return go;let i=await Lre(e);if(i&&i.length>=32)return go=i,i;let n=e.NODE_ENV==="production"||e.ENVIRONMENT==="production"||e.CF_PAGES==="1"||e.WORKERS_ENV==="production";if(!go){go=rN();let s=await Hre(e,go);n?console.error("[JWT] \u26A0\uFE0F \u{1F534} \u751F\u4EA7\u73AF\u5883\u5B89\u5168\u8B66\u544A\uFF1AJWT_SECRET \u672A\u914D\u7F6E\uFF01"+(s?` +`}return t+="</d:multistatus>",t}var w9=J(()=>{"use strict"});function Ne(r,e="Internal server error"){if(!r)return e;let t=typeof r=="string"?r:r?.message||String(r);if(!t)return e;let i=String(t);return i.length>200||/[A-Za-z]:[\\/][^\\/\s]|[\\/][A-Za-z0-9_.-]+[\\/][A-Za-z0-9_.-]/.test(i)&&/\.(ts|js|mjs|cjs|json|toml|yml|yaml)/i.test(i)||/at .*\(|at [A-Za-z0-9_.-]+:[0-9]+:[0-9]+/.test(i)?e:i}var ol,YEe,Ma=J(()=>{"use strict";ol=class extends Error{constructor(t,i,n){super(i);this.code=t;this.message=i;this.originalError=n;this.name="OpenListError"}code;message;originalError},YEe={PathNotFound:new ol(1004,"Path not found"),NotReady:new ol(1003,"Storage not ready"),InvalidConfig:new ol(1001,"Invalid configuration"),Unauthorized:new ol(401,"Unauthorized access"),Forbidden:new ol(403,"Permission denied")}});var x9=J(()=>{"use strict"});var C9=J(()=>{"use strict"});async function Zd(r){if(await Tb(r))return!0;let e=r.req.header("Authorization");if(!e)return!1;let t=e.startsWith("Bearer ")?e.substring(7):e;try{let{verify:i}=await Promise.resolve().then(()=>(Io(),gw)),{getJwtSecret:n}=await Promise.resolve().then(()=>(Fi(),pw)),s=await n(r),o=await i(t,s,"HS256");if(o&&o.role===2){let c=((await ne(r.env)).users||[]).find(l=>l.id===o.id||l.username===o.username);return!!(c&&!c.disabled)}}catch{}return!1}async function Tb(r){let e=r.req.header("Authorization");if(!e)return!1;let t=e.startsWith("Bearer ")?e.substring(7):e,n=(await ne(r.env)).settings.find(c=>c.key==="token");if(!n||!n.value)return!1;let s=new TextEncoder().encode(t),o=new TextEncoder().encode(String(n.value));if(s.length!==o.length)return!1;let a=0;for(let c=0;c<s.length;c++)a|=s[c]^o[c];return a===0}var OA=J(()=>{"use strict";Ye();w9();Nl();Ma();x9();xc();Gr();C9()});var MA={};Cn(MA,{cleanupExpiredLogs:()=>Mne,getAuditStats:()=>Lne,loadAuditLogsFromKV:()=>Rne,logAudit:()=>Tne,queryAuditLogs:()=>Une});async function Tne(r,e){let t={id:qne(),timestamp:new Date().toISOString(),...r};dn.push(t),dn.length>1e3&&(dn=dn.slice(-1e3)),e&&Nne(t,e).catch(i=>{console.warn("[Audit] Failed to persist log to KV:",i)}),One(e)&&console.log(`[AUDIT] ${t.username} ${t.method} ${t.resource} - ${t.status} (${t.status_code})`)}function Une(r){let e=[...dn];r?.username&&(e=e.filter(i=>i.username===r.username)),r?.action&&(e=e.filter(i=>i.action.includes(r.action))),r?.method&&(e=e.filter(i=>i.method.toUpperCase()===r.method.toUpperCase())),r?.status&&(e=e.filter(i=>i.status===r.status)),r?.startDate&&(e=e.filter(i=>i.timestamp>=r.startDate)),r?.endDate&&(e=e.filter(i=>i.timestamp<=r.endDate));let t=r?.limit||100;return e.slice(-t).reverse()}async function Rne(r){try{let{getKvBinding:e}=await Promise.resolve().then(()=>(Ye(),Jr)),t=await e(r);if(t.mode==="none"||!t.binding)return[];let{binding:i,mode:n}=t,s=null;if(n==="blob")s=await i.get(wo);else try{s=await i.get(wo,"text")}catch{s=await i.get(wo)}if(s&&typeof s.text=="function"&&(s=await s.text()),!s)return[];let o=JSON.parse(String(s));return Array.isArray(o)?o:[]}catch(e){return console.warn("[Audit] Failed to load logs from KV:",e),[]}}async function Nne(r,e){try{let{getKvBinding:t}=await Promise.resolve().then(()=>(Ye(),Jr)),i=await t(e);if(i.mode==="none"||!i.binding)return;let{binding:n,mode:s}=i,o=[];try{let c=null;s==="blob"?c=await n.get(wo):c=await n.get(wo,"text"),c&&typeof c.text=="function"&&(c=await c.text()),c&&(o=JSON.parse(String(c)))}catch{}Array.isArray(o)||(o=[]),o.push(r),o.length>1e4&&(o=o.slice(-1e4));let a=JSON.stringify(o);s==="blob"?typeof n.set=="function"?await n.set(wo,a):typeof n.put=="function"&&await n.put(wo,a):typeof n.put=="function"?await n.put(wo,a):typeof n.set=="function"&&await n.set(wo,a)}catch(t){console.warn("[Audit] Persist to KV failed:",t)}}function qne(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();let r=Date.now().toString(36),e=Math.random().toString(36).substring(2,9);return`${r}-${e}`}function One(r){let e=r||(typeof process<"u"?process.env:{});return e?.ENVIRONMENT==="development"||e?.NODE_ENV==="development"}function Mne(r=30){let e=new Date;e.setDate(e.getDate()-r);let t=e.toISOString();dn=dn.filter(i=>i.timestamp>=t)}function Lne(){let r=dn.length,e=dn.filter(o=>o.status==="success").length,t=dn.filter(o=>o.status==="failure").length,i=new Set(dn.map(o=>o.username)).size,n=new Map;dn.forEach(o=>{let a=n.get(o.action)||0;n.set(o.action,a+1)});let s=Array.from(n.entries()).map(([o,a])=>({action:o,count:a})).sort((o,a)=>a.count-o.count).slice(0,10);return{total:r,success:e,failure:t,uniqueUsers:i,recentActions:s}}var dn,wo,LA=J(()=>{"use strict";dn=[],wo="openlist_audit_logs"});var pw={};Cn(pw,{adminAuthMiddleware:()=>Pi,auditMiddleware:()=>jne,csrfProtection:()=>Jne,generateCSRFToken:()=>Kb,getJwtSecret:()=>Dr,getUserFromContext:()=>Me,isTokenRevoked:()=>mw,matchCronSecret:()=>Hb,resetJwtSecretCache:()=>Hne,revokeToken:()=>Lb});function Ub(r,e){r&&typeof r=="object"&&Ob.set(r,e),qb=e}function Rb(r){return r&&typeof r=="object"?Ob.get(r)??null:qb}function Hne(){qb=null,Ob=new WeakMap}function b9(){let r=new Uint8Array(32);return crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}async function Kne(r){try{let{readPersistedSecret:e}=await Promise.resolve().then(()=>(Ye(),Jr));return await e(r,B9)}catch(e){return console.warn("[JWT] Failed to read secret from KV:",e),null}}async function Gne(r,e){try{let{writePersistedSecret:t}=await Promise.resolve().then(()=>(Ye(),Jr));return await t(r,B9,e)}catch(t){return console.warn("[JWT] Failed to persist secret to KV:",t),!1}}async function Dr(r){let e=r?.env||(typeof process<"u"?process.env:{})||{},t=a=>typeof a=="string"&&a.trim().length>0?a:null,i=t(e.JWT_SECRET);if(i)return i;let n=Rb(e);if(t(n))return n;try{let a=t(await Rs(e,Xo));if(a)return Ub(e,a),a}catch{}let s=t(await Kne(e));if(s)return Ub(e,s),s;let o=e.NODE_ENV==="production"||e.ENVIRONMENT==="production"||e.CF_PAGES==="1"||e.WORKERS_ENV==="production";if(!Rb(e)){let a=b9();Ub(e,a);let c=await Gne(e,a);o?console.error("[JWT] \u26A0\uFE0F \u{1F534} \u751F\u4EA7\u73AF\u5883\u5B89\u5168\u8B66\u544A\uFF1AJWT_SECRET \u672A\u914D\u7F6E\uFF01"+(c?` \u2705 \u5DF2\u81EA\u52A8\u751F\u6210\u5BC6\u94A5\u5E76\u6301\u4E45\u5316\u5230 KV\u3002\u6B64\u5BC6\u94A5\u5C06\u6301\u7EED\u4F7F\u7528\uFF0C\u4F46\u5F3A\u70C8\u5EFA\u8BAE\u624B\u52A8\u914D\u7F6E JWT_SECRET \u73AF\u5883\u53D8\u91CF\u4EE5\u63D0\u9AD8\u5B89\u5168\u6027\u3002`:` \u274C \u65E0\u6CD5\u6301\u4E45\u5316\u5BC6\u94A5\u5230 KV\uFF01\u5BC6\u94A5\u4EC5\u5B58\u4E8E\u5185\u5B58\uFF0C\u91CD\u542F\u540E\u6240\u6709 token \u5C06\u5931\u6548\u3002\u8BF7\u7ACB\u5373\u914D\u7F6E JWT_SECRET \u73AF\u5883\u53D8\u91CF\uFF01`)+` -\u{1F512} \u5B89\u5168\u5EFA\u8BAE\uFF1A\u751F\u6210\u5BC6\u94A5\u547D\u4EE4: openssl rand -hex 32`):console.warn("[JWT] \u26A0\uFE0F \u5F00\u53D1\u73AF\u5883\u8B66\u544A\uFF1AJWT_SECRET \u672A\u914D\u7F6E\uFF0C\u4F7F\u7528\u4E34\u65F6\u968F\u673A\u5BC6\u94A5\u3002"+(s?"\u5BC6\u94A5\u5DF2\u6301\u4E45\u5316\u5230 KV\uFF0C\u91CD\u542F\u540E\u4FDD\u6301\u6709\u6548\u3002":"\u5BC6\u94A5\u4EC5\u5B58\u4E8E\u5185\u5B58\uFF0C\u91CD\u542F\u540E\u6240\u6709 token \u5C06\u5931\u6548\u3002")+` -\u751F\u4EA7\u73AF\u5883\u90E8\u7F72\u524D\uFF0C\u8BF7\u52A1\u5FC5\u914D\u7F6E >=32 \u5B57\u7B26\u7684 JWT_SECRET \u73AF\u5883\u53D8\u91CF\u3002`)}return go}async function Kre(r){if(!eN){eN=!0;try{let{getKvBinding:e}=await Promise.resolve().then(()=>(Ve(),Gr)),t=await e(r);if(t.mode==="none"||!t.binding)return;let{binding:i,mode:n}=t,s=null;if(n==="blob")s=await i.get(ps);else try{s=await i.get(ps,"text")}catch{s=await i.get(ps)}if(s&&typeof s.text=="function"&&(s=await s.text()),!s)return;let o=JSON.parse(String(s)),a=Math.floor(Date.now()/1e3);for(let c of o)c&&c.jti&&c.exp>a&&o2.add(c.jti)}catch{}}}async function a2(r,e,t){if(r){o2.add(r);try{let{getKvBinding:i}=await Promise.resolve().then(()=>(Ve(),Gr)),n=await i(t);if(n.mode==="none"||!n.binding)return;let{binding:s,mode:o}=n,a=[];if(o==="blob"){let d=await s.get(ps);d&&(a=typeof d=="string"?JSON.parse(d):d)}else try{let d=await s.get(ps,"text");d&&(a=JSON.parse(String(d)))}catch{let d=await s.get(ps);d&&(a=typeof d=="string"?JSON.parse(d):d)}let c=Math.floor(Date.now()/1e3);a=a.filter(d=>d&&d.exp>c),a.push({jti:r,exp:e});let l=JSON.stringify(a);o==="blob"?typeof s.set=="function"?await s.set(ps,l):typeof s.put=="function"&&await s.put(ps,l):typeof s.put=="function"?await s.put(ps,l):typeof s.set=="function"&&await s.set(ps,l)}catch(i){console.warn("[JWT] Failed to persist revoked token to KV:",i)}}}async function YI(r,e){return r?(await Kre(e),o2.has(r)):!1}async function _i(r,e){if(!await Kd(r))return r.json({code:401,message:"Unauthorized admin privilege required",data:null},401);await e()}function s2(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r.charCodeAt(i)^e.charCodeAt(i);return t===0}async function c2(r){let t=(r?.env||{}).JWT_SECRET||(typeof process<"u"?process.env?.JWT_SECRET:"");if(!t||typeof t!="string")return!1;let i=r.req.header("x-cron-secret");if(i&&s2(i,t))return!0;let n=r.req.query("cron_secret");if(n&&s2(n,t))return!0;try{let o=(await r.req.json())?.cron_secret;if(typeof o=="string"&&o.length>0&&s2(o,t))return!0}catch{}return!1}async function l2(r){let{sign:e}=await Promise.resolve().then(()=>(Ao(),$I)),t=await kr(r);return await e({type:"csrf",jti:crypto.randomUUID?crypto.randomUUID():rN().slice(0,16),exp:Math.floor(Date.now()/1e3)+3600},t)}async function Gre(r,e){let t=r.req.method.toUpperCase();if(["GET","HEAD","OPTIONS"].includes(t))return e();let i=r.req.header("x-csrf-token")||r.req.header("X-CSRF-Token");if(!i)return r.json({code:403,message:"CSRF token missing. Please include X-CSRF-Token header.",data:null},403);try{let{verify:n}=await Promise.resolve().then(()=>(Ao(),$I)),s=await kr(r);if((await n(i,s,"HS256")).type!=="csrf")throw new Error("Invalid token type");await e()}catch{return r.json({code:403,message:"Invalid or expired CSRF token",data:null},403)}}async function zre(r,e){let t=Date.now(),i=r.req.method.toUpperCase(),n=r.req.path,s=["POST","PUT","DELETE","PATCH"].includes(i);if(await e(),s)try{let{logAudit:o}=await Promise.resolve().then(()=>(kA(),vA)),a=await Me(r).catch(()=>null),c=Date.now()-t,l=r.res.status||200,d=l>=200&&l<400?"success":"failure",u=r.req.header("cf-connecting-ip")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown";await o({user_id:a?.id,username:a?.username||"anonymous",ip:u,action:`${i} ${n}`,resource:n,method:i,status:d,status_code:l,details:JSON.stringify({duration_ms:c}),user_agent:r.req.header("user-agent"),duration_ms:c},r.env)}catch(o){console.warn("[Audit] Failed to log:",o)}}async function Me(r){if(await n2(r))return{role:2,permission:0,disabled:!1,username:"api-token",base_path:"/"};let e=r.req.header("Authorization");if(!e){let i=r.req.query("token")||r.req.query("access_token");i&&(e=`Bearer ${i}`)}if(!e){try{let n=((await ne(r.env)).users||[]).find(s=>s.username==="guest");if(n&&!n.disabled)return{id:n.id,role:n.role??1,permission:n.permission??0,disabled:!!n.disabled,username:n.username,base_path:n.base_path||"/",sso_id:n.sso_id||"",allow_ldap:!!n.allow_ldap,otp_secret:n.otp_secret}}catch{}return null}let t=e.startsWith("Bearer ")?e.substring(7):e;try{let i=await kr(r),n=await uo(t,i,"HS256");if(await YI(n?.jti,r.env))return null;let o=((await ne(r.env)).users||[]).find(a=>a.id===n.id||a.username===n.username);return!o||o.disabled?null:{id:o.id,role:o.role,permission:o.permission??0,disabled:!!o.disabled,username:o.username,base_path:o.base_path||"/",sso_id:o.sso_id||"",allow_ldap:!!o.allow_ldap,otp_secret:o.otp_secret}}catch{return null}}var go,tN,ps,o2,eN,Qi=j(()=>{"use strict";Ao();bA();Ve();go=null,tN="openlist_jwt_secret";ps="openlist_revoked_tokens",o2=new Set,eN=!1});var RN=oe(cw=>{"use strict";Object.defineProperty(cw,"__esModule",{value:!0});function Kie(r){return r&&typeof r=="object"&&"default"in r?r.default:r}var UN=Kie(wt("crypto")),Gie=(r,e,t)=>UN.createHmac(r,Buffer.from(e,"hex")).update(Buffer.from(t,"hex")).digest().toString("hex"),zie=(r,e)=>UN.randomBytes(r).toString(e);cw.createDigest=Gie;cw.createRandomBytes=zie});var qN=oe(q2=>{"use strict";var Jie="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",NN=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function jie(r){var e=Math.floor(r.length/5);return r.length%5===0?e:e+1}q2.encode=function(r){Buffer.isBuffer(r)||(r=new Buffer(r));for(var e=0,t=0,i=0,n=0,s=new Buffer(jie(r)*8);e<r.length;){var o=r[e];i>3?(n=o&255>>i,i=(i+5)%8,n=n<<i|(e+1<r.length?r[e+1]:0)>>8-i,e++):(n=o>>8-(i+5)&31,i=(i+5)%8,i===0&&e++),s[t]=Jie.charCodeAt(n),t++}for(e=t;e<s.length;e++)s[e]=61;return s};q2.decode=function(r){var e=0,t=0,i,n=0;Buffer.isBuffer(r)||(r=new Buffer(r));for(var s=new Buffer(Math.ceil(r.length*5/8)),o=0;o<r.length&&r[o]!==61;o++){var a=r[o]-48;if(a<NN.length)t=NN[a],e<=3?(e=(e+5)%8,e===0?(i|=t,s[n]=i,n++,i=0):i|=255&t<<8-e):(e=(e+5)%8,i|=255&t>>>e,s[n]=i,n++,i=255&t<<8-e);else throw new Error("Invalid input - it is not base32 encoded string")}return s.slice(0,n)}});var MN=oe(O2=>{var ON=qN();O2.encode=ON.encode;O2.decode=ON.decode});var HN=oe(lw=>{"use strict";Object.defineProperty(lw,"__esModule",{value:!0});function $ie(r){return r&&typeof r=="object"&&"default"in r?r.default:r}var LN=$ie(MN()),Vie=(r,e)=>LN.decode(r).toString(e),Yie=(r,e)=>LN.encode(Buffer.from(r,e).toString("ascii")).toString().replace(/=/g,"");lw.keyDecoder=Vie;lw.keyEncoder=Yie});var d9=oe(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});function gw(r){return Object.keys(r).map(e=>r[e])}(function(r){r.SHA1="sha1",r.SHA256="sha256",r.SHA512="sha512"})(De.HashAlgorithms||(De.HashAlgorithms={}));var uw=gw(De.HashAlgorithms);(function(r){r.ASCII="ascii",r.BASE64="base64",r.HEX="hex",r.LATIN1="latin1",r.UTF8="utf8"})(De.KeyEncodings||(De.KeyEncodings={}));var M2=gw(De.KeyEncodings);(function(r){r.HOTP="hotp",r.TOTP="totp"})(De.Strategy||(De.Strategy={}));var L2=gw(De.Strategy),pw=()=>{throw new Error("Please provide an options.createDigest implementation.")};function G2(r){return/^(\d+)$/.test(r)}function z2(r,e,t){return r.length>=e?r:`${Array(e+1).join(t)}${r}`.slice(-1*e)}function J2(r){let e=`otpauth://${r.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,t=[];if(L2.indexOf(r.type)<0)throw new Error(`Expecting options.type to be one of ${L2.join(", ")}. Received ${r.type}.`);if(r.type==="hotp"){if(r.counter==null||typeof r.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');t.push(`&counter=${r.counter}`)}return r.type==="totp"&&r.step&&t.push(`&period=${r.step}`),r.digits&&t.push(`&digits=${r.digits}`),r.algorithm&&t.push(`&algorithm=${r.algorithm.toUpperCase()}`),r.issuer&&t.push(`&issuer=${encodeURIComponent(r.issuer)}`),e.replace("{labelPrefix}",encodeURIComponent(r.issuer||r.accountName)).replace("{accountName}",encodeURIComponent(r.accountName)).replace("{secret}",r.secret).replace("{query}",t.join(""))}var fw=class r{constructor(e={}){this._defaultOptions=Object.freeze({...e}),this._options=Object.freeze({})}create(e={}){return new r(e)}clone(e={}){let t=this.create({...this._defaultOptions,...e});return t.options=this._options,t}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(e){this._options=Object.freeze({...this._options,...e})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function j2(r){if(typeof r.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof r.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof r.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!r.algorithm||uw.indexOf(r.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${uw.join(", ")}. Received ${r.algorithm}.`);if(!r.encoding||M2.indexOf(r.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${M2.join(", ")}. Received ${r.encoding}.`)}var GN=(r,e,t)=>Buffer.from(e,t).toString("hex");function zN(){return{algorithm:De.HashAlgorithms.SHA1,createHmacKey:GN,createDigest:pw,digits:6,encoding:De.KeyEncodings.ASCII}}function JN(r){let e={...zN(),...r};return j2(e),Object.freeze(e)}function jN(r){let e=r.toString(16);return z2(e,16,"0")}function $N(r,e){let t=Buffer.from(r,"hex"),i=t[t.length-1]&15,s=((t[i]&127)<<24|(t[i+1]&255)<<16|(t[i+2]&255)<<8|t[i+3]&255)%Math.pow(10,e);return z2(String(s),e,"0")}function Wie(r,e,t){let i=jN(e),n=t.createHmacKey(t.algorithm,r,t.encoding);return t.createDigest(t.algorithm,n,i)}function mw(r,e,t){let i=t.digest||Wie(r,e,t);return $N(i,t.digits)}function VN(r,e,t,i){if(!G2(r))return!1;let n=mw(e,t,i);return r===n}function YN(r,e,t,i,n){return J2({algorithm:n.algorithm,digits:n.digits,type:De.Strategy.HOTP,accountName:r,counter:i,issuer:e,secret:t})}var Aw=class r extends fw{create(e={}){return new r(e)}allOptions(){return JN(this.options)}generate(e,t){return mw(e,t,this.allOptions())}check(e,t,i){return VN(e,t,i,this.allOptions())}verify(e){if(typeof e!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(e.token,e.secret,e.counter)}keyuri(e,t,i,n){return YN(e,t,i,n,this.allOptions())}};function WN(r){if(typeof r=="number")return[Math.abs(r),Math.abs(r)];if(Array.isArray(r)){let[e,t]=r;if(typeof e=="number"&&typeof t=="number")return[Math.abs(e),Math.abs(t)]}throw new Error("Expecting options.window to be an number or [number, number].")}function $2(r){if(j2(r),WN(r.window),typeof r.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof r.step!="number")throw new Error("Expecting options.step to be a number.")}var dw=(r,e,t)=>{let i=r.length,n=Buffer.from(r,e).toString("hex");if(i<t){let s=new Array(t-i+1).join(n);return Buffer.from(s,"hex").slice(0,t).toString("hex")}return n},V2=(r,e,t)=>{switch(r){case De.HashAlgorithms.SHA1:return dw(e,t,20);case De.HashAlgorithms.SHA256:return dw(e,t,32);case De.HashAlgorithms.SHA512:return dw(e,t,64);default:throw new Error(`Expecting algorithm to be one of ${uw.join(", ")}. Received ${r}.`)}};function XN(){return{algorithm:De.HashAlgorithms.SHA1,createDigest:pw,createHmacKey:V2,digits:6,encoding:De.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function ZN(r){let e={...XN(),...r};return $2(e),Object.freeze(e)}function e9(r,e){return Math.floor(r/e/1e3)}function yw(r,e){let t=e9(e.epoch,e.step);return mw(r,t,e)}function KN(r,e,t,i){let n=[];if(i===0)return n;for(let s=1;s<=i;s++){let o=e*s*t;n.push(r+o)}return n}function t9(r,e,t){let i=WN(t),n=e*1e3;return{current:r,past:KN(r,-1,n,i[0]),future:KN(r,1,n,i[1])}}function Y2(r,e,t){if(!G2(r))return!1;let i=yw(e,t);return r===i}function H2(r,e,t,i){let n=null;return r.some((s,o)=>Y2(e,t,{...i,epoch:s})?(n=o+1,!0):!1),n}function W2(r,e,t){if(Y2(r,e,t))return 0;let i=t9(t.epoch,t.step,t.window),n=H2(i.past,r,e,t);return n!==null?n*-1:H2(i.future,r,e,t)}function X2(r,e){return Math.floor(r/1e3)%e}function r9(r,e){return e-X2(r,e)}function i9(r,e,t,i){return J2({algorithm:i.algorithm,digits:i.digits,step:i.step,type:De.Strategy.TOTP,accountName:r,issuer:e,secret:t})}var hw=class r extends Aw{create(e={}){return new r(e)}allOptions(){return ZN(this.options)}generate(e){return yw(e,this.allOptions())}checkDelta(e,t){return W2(e,t,this.allOptions())}check(e,t){return typeof this.checkDelta(e,t)=="number"}verify(e){if(typeof e!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(e.token,e.secret)}timeRemaining(){let e=this.allOptions();return r9(e.epoch,e.step)}timeUsed(){let e=this.allOptions();return X2(e.epoch,e.step)}keyuri(e,t,i){return i9(e,t,i,this.allOptions())}};function n9(r){if($2(r),typeof r.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(r.keyEncoder&&typeof r.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function s9(){return{algorithm:De.HashAlgorithms.SHA1,createDigest:pw,createHmacKey:V2,digits:6,encoding:De.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function o9(r){let e={...s9(),...r};return n9(e),Object.freeze(e)}function Z2(r,e){return e.keyEncoder(r,e.encoding)}function Iw(r,e){return e.keyDecoder(r,e.encoding)}function a9(r,e){let t=e.createRandomBytes(r,e.encoding);return Z2(t,e)}function c9(r,e){return yw(Iw(r,e),e)}function l9(r,e,t){return W2(r,Iw(e,t),t)}var K2=class r extends hw{create(e={}){return new r(e)}allOptions(){return o9(this.options)}generate(e){return c9(e,this.allOptions())}checkDelta(e,t){return l9(e,t,this.allOptions())}encode(e){return Z2(e,this.allOptions())}decode(e){return Iw(e,this.allOptions())}generateSecret(e=10){return a9(e,this.allOptions())}};De.Authenticator=K2;De.HASH_ALGORITHMS=uw;De.HOTP=Aw;De.KEY_ENCODINGS=M2;De.OTP=fw;De.STRATEGY=L2;De.TOTP=hw;De.authenticatorCheckWithWindow=l9;De.authenticatorDecoder=Iw;De.authenticatorDefaultOptions=s9;De.authenticatorEncoder=Z2;De.authenticatorGenerateSecret=a9;De.authenticatorOptionValidator=n9;De.authenticatorOptions=o9;De.authenticatorToken=c9;De.createDigestPlaceholder=pw;De.hotpCheck=VN;De.hotpCounter=jN;De.hotpCreateHmacKey=GN;De.hotpDefaultOptions=zN;De.hotpDigestToToken=$N;De.hotpKeyuri=YN;De.hotpOptions=JN;De.hotpOptionsValidator=j2;De.hotpToken=mw;De.isTokenValid=G2;De.keyuri=J2;De.objectValues=gw;De.padStart=z2;De.totpCheck=Y2;De.totpCheckByEpoch=H2;De.totpCheckWithWindow=W2;De.totpCounter=e9;De.totpCreateHmacKey=V2;De.totpDefaultOptions=XN;De.totpEpochAvailable=t9;De.totpKeyuri=i9;De.totpOptions=ZN;De.totpOptionsValidator=$2;De.totpPadSecret=dw;De.totpTimeRemaining=r9;De.totpTimeUsed=X2;De.totpToken=yw});var f9=oe(qA=>{"use strict";Object.defineProperty(qA,"__esModule",{value:!0});var ww=RN(),u9=HN(),eb=d9(),Xie=new eb.HOTP({createDigest:ww.createDigest}),Zie=new eb.TOTP({createDigest:ww.createDigest}),ene=new eb.Authenticator({createDigest:ww.createDigest,createRandomBytes:ww.createRandomBytes,keyDecoder:u9.keyDecoder,keyEncoder:u9.keyEncoder});qA.authenticator=ene;qA.hotp=Xie;qA.totp=Zie});var h9=oe(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});var A9=f9();Object.keys(A9).forEach(function(r){r!=="default"&&Object.defineProperty(tb,r,{enumerable:!0,get:function(){return A9[r]}})})});var rb=oe((mEe,g9)=>{g9.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var Ua=oe(Zc=>{var ib,tne=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];Zc.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};Zc.getSymbolTotalCodewords=function(e){return tne[e]};Zc.getBCHDigit=function(r){let e=0;for(;r!==0;)e++,r>>>=1;return e};Zc.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');ib=e};Zc.isKanjiModeEnabled=function(){return typeof ib<"u"};Zc.toSJIS=function(e){return ib(e)}});var xw=oe(hn=>{hn.L={bit:1};hn.M={bit:0};hn.Q={bit:3};hn.H={bit:2};function rne(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"l":case"low":return hn.L;case"m":case"medium":return hn.M;case"q":case"quartile":return hn.Q;case"h":case"high":return hn.H;default:throw new Error("Unknown EC Level: "+r)}}hn.isValid=function(e){return e&&typeof e.bit<"u"&&e.bit>=0&&e.bit<4};hn.from=function(e,t){if(hn.isValid(e))return e;try{return rne(e)}catch{return t}}});var y9=oe((wEe,m9)=>{function p9(){this.buffer=[],this.length=0}p9.prototype={get:function(r){let e=Math.floor(r/8);return(this.buffer[e]>>>7-r%8&1)===1},put:function(r,e){for(let t=0;t<e;t++)this.putBit((r>>>e-t-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(r){let e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),r&&(this.buffer[e]|=128>>>this.length%8),this.length++}};m9.exports=p9});var w9=oe((xEe,I9)=>{function OA(r){if(!r||r<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=r,this.data=new Uint8Array(r*r),this.reservedBit=new Uint8Array(r*r)}OA.prototype.set=function(r,e,t,i){let n=r*this.size+e;this.data[n]=t,i&&(this.reservedBit[n]=!0)};OA.prototype.get=function(r,e){return this.data[r*this.size+e]};OA.prototype.xor=function(r,e,t){this.data[r*this.size+e]^=t};OA.prototype.isReserved=function(r,e){return this.reservedBit[r*this.size+e]};I9.exports=OA});var x9=oe(Cw=>{var ine=Ua().getSymbolSize;Cw.getRowColCoords=function(e){if(e===1)return[];let t=Math.floor(e/7)+2,i=ine(e),n=i===145?26:Math.ceil((i-13)/(2*t-2))*2,s=[i-7];for(let o=1;o<t-1;o++)s[o]=s[o-1]-n;return s.push(6),s.reverse()};Cw.getPositions=function(e){let t=[],i=Cw.getRowColCoords(e),n=i.length;for(let s=0;s<n;s++)for(let o=0;o<n;o++)s===0&&o===0||s===0&&o===n-1||s===n-1&&o===0||t.push([i[s],i[o]]);return t}});var B9=oe(E9=>{var nne=Ua().getSymbolSize,C9=7;E9.getPositions=function(e){let t=nne(e);return[[0,0],[t-C9,0],[0,t-C9]]}});var b9=oe(Bt=>{Bt.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var el={N1:3,N2:3,N3:40,N4:10};Bt.isValid=function(e){return e!=null&&e!==""&&!isNaN(e)&&e>=0&&e<=7};Bt.from=function(e){return Bt.isValid(e)?parseInt(e,10):void 0};Bt.getPenaltyN1=function(e){let t=e.size,i=0,n=0,s=0,o=null,a=null;for(let c=0;c<t;c++){n=s=0,o=a=null;for(let l=0;l<t;l++){let d=e.get(c,l);d===o?n++:(n>=5&&(i+=el.N1+(n-5)),o=d,n=1),d=e.get(l,c),d===a?s++:(s>=5&&(i+=el.N1+(s-5)),a=d,s=1)}n>=5&&(i+=el.N1+(n-5)),s>=5&&(i+=el.N1+(s-5))}return i};Bt.getPenaltyN2=function(e){let t=e.size,i=0;for(let n=0;n<t-1;n++)for(let s=0;s<t-1;s++){let o=e.get(n,s)+e.get(n,s+1)+e.get(n+1,s)+e.get(n+1,s+1);(o===4||o===0)&&i++}return i*el.N2};Bt.getPenaltyN3=function(e){let t=e.size,i=0,n=0,s=0;for(let o=0;o<t;o++){n=s=0;for(let a=0;a<t;a++)n=n<<1&2047|e.get(o,a),a>=10&&(n===1488||n===93)&&i++,s=s<<1&2047|e.get(a,o),a>=10&&(s===1488||s===93)&&i++}return i*el.N3};Bt.getPenaltyN4=function(e){let t=0,i=e.data.length;for(let s=0;s<i;s++)t+=e.data[s];return Math.abs(Math.ceil(t*100/i/5)-10)*el.N4};function sne(r,e,t){switch(r){case Bt.Patterns.PATTERN000:return(e+t)%2===0;case Bt.Patterns.PATTERN001:return e%2===0;case Bt.Patterns.PATTERN010:return t%3===0;case Bt.Patterns.PATTERN011:return(e+t)%3===0;case Bt.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(t/3))%2===0;case Bt.Patterns.PATTERN101:return e*t%2+e*t%3===0;case Bt.Patterns.PATTERN110:return(e*t%2+e*t%3)%2===0;case Bt.Patterns.PATTERN111:return(e*t%3+(e+t)%2)%2===0;default:throw new Error("bad maskPattern:"+r)}}Bt.applyMask=function(e,t){let i=t.size;for(let n=0;n<i;n++)for(let s=0;s<i;s++)t.isReserved(s,n)||t.xor(s,n,sne(e,s,n))};Bt.getBestMask=function(e,t){let i=Object.keys(Bt.Patterns).length,n=0,s=1/0;for(let o=0;o<i;o++){t(o),Bt.applyMask(o,e);let a=Bt.getPenaltyN1(e)+Bt.getPenaltyN2(e)+Bt.getPenaltyN3(e)+Bt.getPenaltyN4(e);Bt.applyMask(o,e),a<s&&(s=a,n=o)}return n}});var sb=oe(nb=>{var Ra=xw(),Ew=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],Bw=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];nb.getBlocksCount=function(e,t){switch(t){case Ra.L:return Ew[(e-1)*4+0];case Ra.M:return Ew[(e-1)*4+1];case Ra.Q:return Ew[(e-1)*4+2];case Ra.H:return Ew[(e-1)*4+3];default:return}};nb.getTotalCodewordsCount=function(e,t){switch(t){case Ra.L:return Bw[(e-1)*4+0];case Ra.M:return Bw[(e-1)*4+1];case Ra.Q:return Bw[(e-1)*4+2];case Ra.H:return Bw[(e-1)*4+3];default:return}}});var v9=oe(vw=>{var MA=new Uint8Array(512),bw=new Uint8Array(256);(function(){let e=1;for(let t=0;t<255;t++)MA[t]=e,bw[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)MA[t]=MA[t-255]})();vw.log=function(e){if(e<1)throw new Error("log("+e+")");return bw[e]};vw.exp=function(e){return MA[e]};vw.mul=function(e,t){return e===0||t===0?0:MA[bw[e]+bw[t]]}});var k9=oe(LA=>{var ob=v9();LA.mul=function(e,t){let i=new Uint8Array(e.length+t.length-1);for(let n=0;n<e.length;n++)for(let s=0;s<t.length;s++)i[n+s]^=ob.mul(e[n],t[s]);return i};LA.mod=function(e,t){let i=new Uint8Array(e);for(;i.length-t.length>=0;){let n=i[0];for(let o=0;o<t.length;o++)i[o]^=ob.mul(t[o],n);let s=0;for(;s<i.length&&i[s]===0;)s++;i=i.slice(s)}return i};LA.generateECPolynomial=function(e){let t=new Uint8Array([1]);for(let i=0;i<e;i++)t=LA.mul(t,new Uint8Array([1,ob.exp(i)]));return t}});var Q9=oe((SEe,D9)=>{var S9=k9();function ab(r){this.genPoly=void 0,this.degree=r,this.degree&&this.initialize(this.degree)}ab.prototype.initialize=function(e){this.degree=e,this.genPoly=S9.generateECPolynomial(this.degree)};ab.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");let t=new Uint8Array(e.length+this.degree);t.set(e);let i=S9.mod(t,this.genPoly),n=this.degree-i.length;if(n>0){let s=new Uint8Array(this.degree);return s.set(i,n),s}return i};D9.exports=ab});var cb=oe(_9=>{_9.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}});var lb=oe(yo=>{var F9="[0-9]+",one="[A-Z $%*+\\-./:]+",HA="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";HA=HA.replace(/u/g,"\\u");var ane="(?:(?![A-Z0-9 $%*+\\-./:]|"+HA+`)(?:.|[\r -]))+`;yo.KANJI=new RegExp(HA,"g");yo.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");yo.BYTE=new RegExp(ane,"g");yo.NUMERIC=new RegExp(F9,"g");yo.ALPHANUMERIC=new RegExp(one,"g");var cne=new RegExp("^"+HA+"$"),lne=new RegExp("^"+F9+"$"),dne=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");yo.testKanji=function(e){return cne.test(e)};yo.testNumeric=function(e){return lne.test(e)};yo.testAlphanumeric=function(e){return dne.test(e)}});var Na=oe(lr=>{var une=cb(),db=lb();lr.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]};lr.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]};lr.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]};lr.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]};lr.MIXED={bit:-1};lr.getCharCountIndicator=function(e,t){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!une.isValid(t))throw new Error("Invalid version: "+t);return t>=1&&t<10?e.ccBits[0]:t<27?e.ccBits[1]:e.ccBits[2]};lr.getBestModeForData=function(e){return db.testNumeric(e)?lr.NUMERIC:db.testAlphanumeric(e)?lr.ALPHANUMERIC:db.testKanji(e)?lr.KANJI:lr.BYTE};lr.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")};lr.isValid=function(e){return e&&e.bit&&e.ccBits};function fne(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return lr.NUMERIC;case"alphanumeric":return lr.ALPHANUMERIC;case"kanji":return lr.KANJI;case"byte":return lr.BYTE;default:throw new Error("Unknown mode: "+r)}}lr.from=function(e,t){if(lr.isValid(e))return e;try{return fne(e)}catch{return t}}});var N9=oe(tl=>{var kw=Ua(),Ane=sb(),P9=xw(),qa=Na(),ub=cb(),U9=7973,T9=kw.getBCHDigit(U9);function hne(r,e,t){for(let i=1;i<=40;i++)if(e<=tl.getCapacity(i,t,r))return i}function R9(r,e){return qa.getCharCountIndicator(r,e)+4}function gne(r,e){let t=0;return r.forEach(function(i){let n=R9(i.mode,e);t+=n+i.getBitsLength()}),t}function pne(r,e){for(let t=1;t<=40;t++)if(gne(r,t)<=tl.getCapacity(t,e,qa.MIXED))return t}tl.from=function(e,t){return ub.isValid(e)?parseInt(e,10):t};tl.getCapacity=function(e,t,i){if(!ub.isValid(e))throw new Error("Invalid QR Code version");typeof i>"u"&&(i=qa.BYTE);let n=kw.getSymbolTotalCodewords(e),s=Ane.getTotalCodewordsCount(e,t),o=(n-s)*8;if(i===qa.MIXED)return o;let a=o-R9(i,e);switch(i){case qa.NUMERIC:return Math.floor(a/10*3);case qa.ALPHANUMERIC:return Math.floor(a/11*2);case qa.KANJI:return Math.floor(a/13);case qa.BYTE:default:return Math.floor(a/8)}};tl.getBestVersionForData=function(e,t){let i,n=P9.from(t,P9.M);if(Array.isArray(e)){if(e.length>1)return pne(e,n);if(e.length===0)return 1;i=e[0]}else i=e;return hne(i.mode,i.getLength(),n)};tl.getEncodedBits=function(e){if(!ub.isValid(e)||e<7)throw new Error("Invalid QR Code version");let t=e<<12;for(;kw.getBCHDigit(t)-T9>=0;)t^=U9<<kw.getBCHDigit(t)-T9;return e<<12|t}});var L9=oe(M9=>{var fb=Ua(),O9=1335,mne=21522,q9=fb.getBCHDigit(O9);M9.getEncodedBits=function(e,t){let i=e.bit<<3|t,n=i<<10;for(;fb.getBCHDigit(n)-q9>=0;)n^=O9<<fb.getBCHDigit(n)-q9;return(i<<10|n)^mne}});var K9=oe((TEe,H9)=>{var yne=Na();function Xd(r){this.mode=yne.NUMERIC,this.data=r.toString()}Xd.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)};Xd.prototype.getLength=function(){return this.data.length};Xd.prototype.getBitsLength=function(){return Xd.getBitsLength(this.data.length)};Xd.prototype.write=function(e){let t,i,n;for(t=0;t+3<=this.data.length;t+=3)i=this.data.substr(t,3),n=parseInt(i,10),e.put(n,10);let s=this.data.length-t;s>0&&(i=this.data.substr(t),n=parseInt(i,10),e.put(n,s*3+1))};H9.exports=Xd});var z9=oe((UEe,G9)=>{var Ine=Na(),Ab=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function Zd(r){this.mode=Ine.ALPHANUMERIC,this.data=r}Zd.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};Zd.prototype.getLength=function(){return this.data.length};Zd.prototype.getBitsLength=function(){return Zd.getBitsLength(this.data.length)};Zd.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let i=Ab.indexOf(this.data[t])*45;i+=Ab.indexOf(this.data[t+1]),e.put(i,11)}this.data.length%2&&e.put(Ab.indexOf(this.data[t]),6)};G9.exports=Zd});var j9=oe((REe,J9)=>{var wne=Na();function eu(r){this.mode=wne.BYTE,typeof r=="string"?this.data=new TextEncoder().encode(r):this.data=new Uint8Array(r)}eu.getBitsLength=function(e){return e*8};eu.prototype.getLength=function(){return this.data.length};eu.prototype.getBitsLength=function(){return eu.getBitsLength(this.data.length)};eu.prototype.write=function(r){for(let e=0,t=this.data.length;e<t;e++)r.put(this.data[e],8)};J9.exports=eu});var V9=oe((NEe,$9)=>{var xne=Na(),Cne=Ua();function tu(r){this.mode=xne.KANJI,this.data=r}tu.getBitsLength=function(e){return e*13};tu.prototype.getLength=function(){return this.data.length};tu.prototype.getBitsLength=function(){return tu.getBitsLength(this.data.length)};tu.prototype.write=function(r){let e;for(e=0;e<this.data.length;e++){let t=Cne.toSJIS(this.data[e]);if(t>=33088&&t<=40956)t-=33088;else if(t>=57408&&t<=60351)t-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+` -Make sure your charset is UTF-8`);t=(t>>>8&255)*192+(t&255),r.put(t,13)}};$9.exports=tu});var Y9=oe((qEe,hb)=>{"use strict";var KA={single_source_shortest_paths:function(r,e,t){var i={},n={};n[e]=0;var s=KA.PriorityQueue.make();s.push(e,0);for(var o,a,c,l,d,u,f,h,g;!s.empty();){o=s.pop(),a=o.value,l=o.cost,d=r[a]||{};for(c in d)d.hasOwnProperty(c)&&(u=d[c],f=l+u,h=n[c],g=typeof n[c]>"u",(g||h>f)&&(n[c]=f,s.push(c,f),i[c]=a))}if(typeof t<"u"&&typeof n[t]>"u"){var p=["Could not find a path from ",e," to ",t,"."].join("");throw new Error(p)}return i},extract_shortest_path_from_predecessor_list:function(r,e){for(var t=[],i=e,n;i;)t.push(i),n=r[i],i=r[i];return t.reverse(),t},find_path:function(r,e,t){var i=KA.single_source_shortest_paths(r,e,t);return KA.extract_shortest_path_from_predecessor_list(i,t)},PriorityQueue:{make:function(r){var e=KA.PriorityQueue,t={},i;r=r||{};for(i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t.queue=[],t.sorter=r.sorter||e.default_sorter,t},default_sorter:function(r,e){return r.cost-e.cost},push:function(r,e){var t={value:r,cost:e};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof hb<"u"&&(hb.exports=KA)});var n7=oe(ru=>{var At=Na(),Z9=K9(),e7=z9(),t7=j9(),r7=V9(),GA=lb(),Sw=Ua(),Ene=Y9();function W9(r){return unescape(encodeURIComponent(r)).length}function zA(r,e,t){let i=[],n;for(;(n=r.exec(t))!==null;)i.push({data:n[0],index:n.index,mode:e,length:n[0].length});return i}function i7(r){let e=zA(GA.NUMERIC,At.NUMERIC,r),t=zA(GA.ALPHANUMERIC,At.ALPHANUMERIC,r),i,n;return Sw.isKanjiModeEnabled()?(i=zA(GA.BYTE,At.BYTE,r),n=zA(GA.KANJI,At.KANJI,r)):(i=zA(GA.BYTE_KANJI,At.BYTE,r),n=[]),e.concat(t,i,n).sort(function(o,a){return o.index-a.index}).map(function(o){return{data:o.data,mode:o.mode,length:o.length}})}function gb(r,e){switch(e){case At.NUMERIC:return Z9.getBitsLength(r);case At.ALPHANUMERIC:return e7.getBitsLength(r);case At.KANJI:return r7.getBitsLength(r);case At.BYTE:return t7.getBitsLength(r)}}function Bne(r){return r.reduce(function(e,t){let i=e.length-1>=0?e[e.length-1]:null;return i&&i.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function bne(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t];switch(i.mode){case At.NUMERIC:e.push([i,{data:i.data,mode:At.ALPHANUMERIC,length:i.length},{data:i.data,mode:At.BYTE,length:i.length}]);break;case At.ALPHANUMERIC:e.push([i,{data:i.data,mode:At.BYTE,length:i.length}]);break;case At.KANJI:e.push([i,{data:i.data,mode:At.BYTE,length:W9(i.data)}]);break;case At.BYTE:e.push([{data:i.data,mode:At.BYTE,length:W9(i.data)}])}}return e}function vne(r,e){let t={},i={start:{}},n=["start"];for(let s=0;s<r.length;s++){let o=r[s],a=[];for(let c=0;c<o.length;c++){let l=o[c],d=""+s+c;a.push(d),t[d]={node:l,lastCount:0},i[d]={};for(let u=0;u<n.length;u++){let f=n[u];t[f]&&t[f].node.mode===l.mode?(i[f][d]=gb(t[f].lastCount+l.length,l.mode)-gb(t[f].lastCount,l.mode),t[f].lastCount+=l.length):(t[f]&&(t[f].lastCount=l.length),i[f][d]=gb(l.length,l.mode)+4+At.getCharCountIndicator(l.mode,e))}}n=a}for(let s=0;s<n.length;s++)i[n[s]].end=0;return{map:i,table:t}}function X9(r,e){let t,i=At.getBestModeForData(r);if(t=At.from(e,i),t!==At.BYTE&&t.bit<i.bit)throw new Error('"'+r+'" cannot be encoded with mode '+At.toString(t)+`. - Suggested mode is: `+At.toString(i));switch(t===At.KANJI&&!Sw.isKanjiModeEnabled()&&(t=At.BYTE),t){case At.NUMERIC:return new Z9(r);case At.ALPHANUMERIC:return new e7(r);case At.KANJI:return new r7(r);case At.BYTE:return new t7(r)}}ru.fromArray=function(e){return e.reduce(function(t,i){return typeof i=="string"?t.push(X9(i,null)):i.data&&t.push(X9(i.data,i.mode)),t},[])};ru.fromString=function(e,t){let i=i7(e,Sw.isKanjiModeEnabled()),n=bne(i),s=vne(n,t),o=Ene.find_path(s.map,"start","end"),a=[];for(let c=1;c<o.length-1;c++)a.push(s.table[o[c]].node);return ru.fromArray(Bne(a))};ru.rawSplit=function(e){return ru.fromArray(i7(e,Sw.isKanjiModeEnabled()))}});var xb=oe(s7=>{var Qw=Ua(),pb=xw(),kne=y9(),Sne=w9(),Dne=x9(),Qne=B9(),Ib=b9(),wb=sb(),_ne=Q9(),Dw=N9(),Fne=L9(),Pne=Na(),mb=n7();function Tne(r,e){let t=r.size,i=Qne.getPositions(e);for(let n=0;n<i.length;n++){let s=i[n][0],o=i[n][1];for(let a=-1;a<=7;a++)if(!(s+a<=-1||t<=s+a))for(let c=-1;c<=7;c++)o+c<=-1||t<=o+c||(a>=0&&a<=6&&(c===0||c===6)||c>=0&&c<=6&&(a===0||a===6)||a>=2&&a<=4&&c>=2&&c<=4?r.set(s+a,o+c,!0,!0):r.set(s+a,o+c,!1,!0))}}function Une(r){let e=r.size;for(let t=8;t<e-8;t++){let i=t%2===0;r.set(t,6,i,!0),r.set(6,t,i,!0)}}function Rne(r,e){let t=Dne.getPositions(e);for(let i=0;i<t.length;i++){let n=t[i][0],s=t[i][1];for(let o=-2;o<=2;o++)for(let a=-2;a<=2;a++)o===-2||o===2||a===-2||a===2||o===0&&a===0?r.set(n+o,s+a,!0,!0):r.set(n+o,s+a,!1,!0)}}function Nne(r,e){let t=r.size,i=Dw.getEncodedBits(e),n,s,o;for(let a=0;a<18;a++)n=Math.floor(a/3),s=a%3+t-8-3,o=(i>>a&1)===1,r.set(n,s,o,!0),r.set(s,n,o,!0)}function yb(r,e,t){let i=r.size,n=Fne.getEncodedBits(e,t),s,o;for(s=0;s<15;s++)o=(n>>s&1)===1,s<6?r.set(s,8,o,!0):s<8?r.set(s+1,8,o,!0):r.set(i-15+s,8,o,!0),s<8?r.set(8,i-s-1,o,!0):s<9?r.set(8,15-s-1+1,o,!0):r.set(8,15-s-1,o,!0);r.set(i-8,8,1,!0)}function qne(r,e){let t=r.size,i=-1,n=t-1,s=7,o=0;for(let a=t-1;a>0;a-=2)for(a===6&&a--;;){for(let c=0;c<2;c++)if(!r.isReserved(n,a-c)){let l=!1;o<e.length&&(l=(e[o]>>>s&1)===1),r.set(n,a-c,l),s--,s===-1&&(o++,s=7)}if(n+=i,n<0||t<=n){n-=i,i=-i;break}}}function One(r,e,t){let i=new kne;t.forEach(function(c){i.put(c.mode.bit,4),i.put(c.getLength(),Pne.getCharCountIndicator(c.mode,r)),c.write(i)});let n=Qw.getSymbolTotalCodewords(r),s=wb.getTotalCodewordsCount(r,e),o=(n-s)*8;for(i.getLengthInBits()+4<=o&&i.put(0,4);i.getLengthInBits()%8!==0;)i.putBit(0);let a=(o-i.getLengthInBits())/8;for(let c=0;c<a;c++)i.put(c%2?17:236,8);return Mne(i,r,e)}function Mne(r,e,t){let i=Qw.getSymbolTotalCodewords(e),n=wb.getTotalCodewordsCount(e,t),s=i-n,o=wb.getBlocksCount(e,t),a=i%o,c=o-a,l=Math.floor(i/o),d=Math.floor(s/o),u=d+1,f=l-d,h=new _ne(f),g=0,p=new Array(o),I=new Array(o),y=0,w=new Uint8Array(r.buffer);for(let R=0;R<o;R++){let U=R<c?d:u;p[R]=w.slice(g,g+U),I[R]=h.encode(p[R]),g+=U,y=Math.max(y,U)}let C=new Uint8Array(i),b=0,x,_;for(x=0;x<y;x++)for(_=0;_<o;_++)x<p[_].length&&(C[b++]=p[_][x]);for(x=0;x<f;x++)for(_=0;_<o;_++)C[b++]=I[_][x];return C}function Lne(r,e,t,i){let n;if(Array.isArray(r))n=mb.fromArray(r);else if(typeof r=="string"){let l=e;if(!l){let d=mb.rawSplit(r);l=Dw.getBestVersionForData(d,t)}n=mb.fromString(r,l||40)}else throw new Error("Invalid data");let s=Dw.getBestVersionForData(n,t);if(!s)throw new Error("The amount of data is too big to be stored in a QR Code");if(!e)e=s;else if(e<s)throw new Error(` +\u{1F512} \u5B89\u5168\u5EFA\u8BAE\uFF1A\u751F\u6210\u5BC6\u94A5\u547D\u4EE4: openssl rand -hex 32`):console.warn("[JWT] \u26A0\uFE0F \u5F00\u53D1\u73AF\u5883\u8B66\u544A\uFF1AJWT_SECRET \u672A\u914D\u7F6E\uFF0C\u4F7F\u7528\u4E34\u65F6\u968F\u673A\u5BC6\u94A5\u3002"+(c?"\u5BC6\u94A5\u5DF2\u6301\u4E45\u5316\u5230 KV\uFF0C\u91CD\u542F\u540E\u4FDD\u6301\u6709\u6548\u3002":"\u5BC6\u94A5\u4EC5\u5B58\u4E8E\u5185\u5B58\uFF0C\u91CD\u542F\u540E\u6240\u6709 token \u5C06\u5931\u6548\u3002")+` +\u751F\u4EA7\u73AF\u5883\u90E8\u7F72\u524D\uFF0C\u5EFA\u8BAE\u914D\u7F6E 32+ \u5B57\u7B26\u7684 JWT_SECRET \u73AF\u5883\u53D8\u91CF\uFF08\u63A8\u8350\u800C\u975E\u5F3A\u5236\uFF09\u3002`)}return Rb(e)}async function zne(r){if(!E9){E9=!0;try{let{getKvBinding:e}=await Promise.resolve().then(()=>(Ye(),Jr)),t=await e(r);if(t.mode==="none"||!t.binding)return;let{binding:i,mode:n}=t,s=null;if(n==="blob")s=await i.get(ys);else try{s=await i.get(ys,"text")}catch{s=await i.get(ys)}if(s&&typeof s.text=="function"&&(s=await s.text()),!s)return;let o=JSON.parse(String(s)),a=Math.floor(Date.now()/1e3);for(let c of o)c&&c.jti&&c.exp>a&&Mb.add(c.jti)}catch{}}}async function Lb(r,e,t){if(r){Mb.add(r);try{let{getKvBinding:i}=await Promise.resolve().then(()=>(Ye(),Jr)),n=await i(t);if(n.mode==="none"||!n.binding)return;let{binding:s,mode:o}=n,a=[];if(o==="blob"){let d=await s.get(ys);d&&(a=typeof d=="string"?JSON.parse(d):d)}else try{let d=await s.get(ys,"text");d&&(a=JSON.parse(String(d)))}catch{let d=await s.get(ys);d&&(a=typeof d=="string"?JSON.parse(d):d)}let c=Math.floor(Date.now()/1e3);a=a.filter(d=>d&&d.exp>c),a.push({jti:r,exp:e});let l=JSON.stringify(a);o==="blob"?typeof s.set=="function"?await s.set(ys,l):typeof s.put=="function"&&await s.put(ys,l):typeof s.put=="function"?await s.put(ys,l):typeof s.set=="function"&&await s.set(ys,l)}catch(i){console.warn("[JWT] Failed to persist revoked token to KV:",i)}}}async function mw(r,e){return r?(await zne(e),Mb.has(r)):!1}async function Pi(r,e){if(!await Zd(r))return r.json({code:401,message:"Unauthorized admin privilege required",data:null},401);await e()}function Nb(r,e){if(r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r.charCodeAt(i)^e.charCodeAt(i);return t===0}async function Hb(r){let t=(r?.env||{}).JWT_SECRET||(typeof process<"u"?process.env?.JWT_SECRET:"");if(!t||typeof t!="string")return!1;let i=r.req.header("x-cron-secret");if(i&&Nb(i,t))return!0;let n=r.req.query("cron_secret");if(n&&Nb(n,t))return!0;try{let o=(await r.req.json())?.cron_secret;if(typeof o=="string"&&o.length>0&&Nb(o,t))return!0}catch{}return!1}async function Kb(r){let{sign:e}=await Promise.resolve().then(()=>(Io(),gw)),t=await Dr(r);return await e({type:"csrf",jti:crypto.randomUUID?crypto.randomUUID():b9().slice(0,16),exp:Math.floor(Date.now()/1e3)+3600},t)}async function Jne(r,e){let t=r.req.method.toUpperCase();if(["GET","HEAD","OPTIONS"].includes(t))return e();let i=r.req.header("x-csrf-token")||r.req.header("X-CSRF-Token");if(!i)return r.json({code:403,message:"CSRF token missing. Please include X-CSRF-Token header.",data:null},403);try{let{verify:n}=await Promise.resolve().then(()=>(Io(),gw)),s=await Dr(r);if((await n(i,s,"HS256")).type!=="csrf")throw new Error("Invalid token type");await e()}catch{return r.json({code:403,message:"Invalid or expired CSRF token",data:null},403)}}async function jne(r,e){let t=Date.now(),i=r.req.method.toUpperCase(),n=r.req.path,s=["POST","PUT","DELETE","PATCH"].includes(i);if(await e(),s)try{let{logAudit:o}=await Promise.resolve().then(()=>(LA(),MA)),a=await Me(r).catch(()=>null),c=Date.now()-t,l=r.res.status||200,d=l>=200&&l<400?"success":"failure",u=r.req.header("cf-connecting-ip")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown";await o({user_id:a?.id,username:a?.username||"anonymous",ip:u,action:`${i} ${n}`,resource:n,method:i,status:d,status_code:l,details:JSON.stringify({duration_ms:c}),user_agent:r.req.header("user-agent"),duration_ms:c},r.env)}catch(o){console.warn("[Audit] Failed to log:",o)}}async function Me(r){if(await Tb(r))return{role:2,permission:0,disabled:!1,username:"api-token",base_path:"/"};let e=r.req.header("Authorization");if(!e){let i=r.req.query("token")||r.req.query("access_token");i&&(e=`Bearer ${i}`)}if(!e){try{let n=((await ne(r.env)).users||[]).find(s=>s.username==="guest");if(n&&!n.disabled)return{id:n.id,role:n.role??1,permission:n.permission??0,disabled:!!n.disabled,username:n.username,base_path:n.base_path||"/",sso_id:n.sso_id||"",allow_ldap:!!n.allow_ldap,otp_secret:n.otp_secret}}catch{}return null}let t=e.startsWith("Bearer ")?e.substring(7):e;try{let i=await Dr(r),n=await mo(t,i,"HS256");if(await mw(n?.jti,r.env))return null;let o=((await ne(r.env)).users||[]).find(a=>a.id===n.id||a.username===n.username);return!o||o.disabled?null:{id:o.id,role:o.role,permission:o.permission??0,disabled:!!o.disabled,username:o.username,base_path:o.base_path||"/",sso_id:o.sso_id||"",allow_ldap:!!o.allow_ldap,otp_secret:o.otp_secret}}catch{return null}}var qb,Ob,B9,ys,Mb,E9,Fi=J(()=>{"use strict";Io();OA();Ye();qb=null,Ob=new WeakMap,B9="openlist_jwt_secret";ys="openlist_revoked_tokens",Mb=new Set,E9=!1});var X9=oe(Qw=>{"use strict";Object.defineProperty(Qw,"__esModule",{value:!0});function Mse(r){return r&&typeof r=="object"&&"default"in r?r.default:r}var W9=Mse(wt("crypto")),Lse=(r,e,t)=>W9.createHmac(r,Buffer.from(e,"hex")).update(Buffer.from(t,"hex")).digest().toString("hex"),Hse=(r,e)=>W9.randomBytes(r).toString(e);Qw.createDigest=Lse;Qw.createRandomBytes=Hse});var e7=oe(m2=>{"use strict";var Kse="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",Z9=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function Gse(r){var e=Math.floor(r.length/5);return r.length%5===0?e:e+1}m2.encode=function(r){Buffer.isBuffer(r)||(r=new Buffer(r));for(var e=0,t=0,i=0,n=0,s=new Buffer(Gse(r)*8);e<r.length;){var o=r[e];i>3?(n=o&255>>i,i=(i+5)%8,n=n<<i|(e+1<r.length?r[e+1]:0)>>8-i,e++):(n=o>>8-(i+5)&31,i=(i+5)%8,i===0&&e++),s[t]=Kse.charCodeAt(n),t++}for(e=t;e<s.length;e++)s[e]=61;return s};m2.decode=function(r){var e=0,t=0,i,n=0;Buffer.isBuffer(r)||(r=new Buffer(r));for(var s=new Buffer(Math.ceil(r.length*5/8)),o=0;o<r.length&&r[o]!==61;o++){var a=r[o]-48;if(a<Z9.length)t=Z9[a],e<=3?(e=(e+5)%8,e===0?(i|=t,s[n]=i,n++,i=0):i|=255&t<<8-e):(e=(e+5)%8,i|=255&t>>>e,s[n]=i,n++,i=255&t<<8-e);else throw new Error("Invalid input - it is not base32 encoded string")}return s.slice(0,n)}});var r7=oe(y2=>{var t7=e7();y2.encode=t7.encode;y2.decode=t7.decode});var n7=oe(_w=>{"use strict";Object.defineProperty(_w,"__esModule",{value:!0});function zse(r){return r&&typeof r=="object"&&"default"in r?r.default:r}var i7=zse(r7()),Jse=(r,e)=>i7.decode(r).toString(e),jse=(r,e)=>i7.encode(Buffer.from(r,e).toString("ascii")).toString().replace(/=/g,"");_w.keyDecoder=Jse;_w.keyEncoder=jse});var v7=oe(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});function Nw(r){return Object.keys(r).map(e=>r[e])}(function(r){r.SHA1="sha1",r.SHA256="sha256",r.SHA512="sha512"})(De.HashAlgorithms||(De.HashAlgorithms={}));var Pw=Nw(De.HashAlgorithms);(function(r){r.ASCII="ascii",r.BASE64="base64",r.HEX="hex",r.LATIN1="latin1",r.UTF8="utf8"})(De.KeyEncodings||(De.KeyEncodings={}));var I2=Nw(De.KeyEncodings);(function(r){r.HOTP="hotp",r.TOTP="totp"})(De.Strategy||(De.Strategy={}));var w2=Nw(De.Strategy),qw=()=>{throw new Error("Please provide an options.createDigest implementation.")};function E2(r){return/^(\d+)$/.test(r)}function B2(r,e,t){return r.length>=e?r:`${Array(e+1).join(t)}${r}`.slice(-1*e)}function b2(r){let e=`otpauth://${r.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,t=[];if(w2.indexOf(r.type)<0)throw new Error(`Expecting options.type to be one of ${w2.join(", ")}. Received ${r.type}.`);if(r.type==="hotp"){if(r.counter==null||typeof r.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');t.push(`&counter=${r.counter}`)}return r.type==="totp"&&r.step&&t.push(`&period=${r.step}`),r.digits&&t.push(`&digits=${r.digits}`),r.algorithm&&t.push(`&algorithm=${r.algorithm.toUpperCase()}`),r.issuer&&t.push(`&issuer=${encodeURIComponent(r.issuer)}`),e.replace("{labelPrefix}",encodeURIComponent(r.issuer||r.accountName)).replace("{accountName}",encodeURIComponent(r.accountName)).replace("{secret}",r.secret).replace("{query}",t.join(""))}var Tw=class r{constructor(e={}){this._defaultOptions=Object.freeze({...e}),this._options=Object.freeze({})}create(e={}){return new r(e)}clone(e={}){let t=this.create({...this._defaultOptions,...e});return t.options=this._options,t}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(e){this._options=Object.freeze({...this._options,...e})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function v2(r){if(typeof r.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof r.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof r.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!r.algorithm||Pw.indexOf(r.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Pw.join(", ")}. Received ${r.algorithm}.`);if(!r.encoding||I2.indexOf(r.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${I2.join(", ")}. Received ${r.encoding}.`)}var o7=(r,e,t)=>Buffer.from(e,t).toString("hex");function a7(){return{algorithm:De.HashAlgorithms.SHA1,createHmacKey:o7,createDigest:qw,digits:6,encoding:De.KeyEncodings.ASCII}}function c7(r){let e={...a7(),...r};return v2(e),Object.freeze(e)}function l7(r){let e=r.toString(16);return B2(e,16,"0")}function d7(r,e){let t=Buffer.from(r,"hex"),i=t[t.length-1]&15,s=((t[i]&127)<<24|(t[i+1]&255)<<16|(t[i+2]&255)<<8|t[i+3]&255)%Math.pow(10,e);return B2(String(s),e,"0")}function $se(r,e,t){let i=l7(e),n=t.createHmacKey(t.algorithm,r,t.encoding);return t.createDigest(t.algorithm,n,i)}function Ow(r,e,t){let i=t.digest||$se(r,e,t);return d7(i,t.digits)}function u7(r,e,t,i){if(!E2(r))return!1;let n=Ow(e,t,i);return r===n}function f7(r,e,t,i,n){return b2({algorithm:n.algorithm,digits:n.digits,type:De.Strategy.HOTP,accountName:r,counter:i,issuer:e,secret:t})}var Uw=class r extends Tw{create(e={}){return new r(e)}allOptions(){return c7(this.options)}generate(e,t){return Ow(e,t,this.allOptions())}check(e,t,i){return u7(e,t,i,this.allOptions())}verify(e){if(typeof e!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(e.token,e.secret,e.counter)}keyuri(e,t,i,n){return f7(e,t,i,n,this.allOptions())}};function A7(r){if(typeof r=="number")return[Math.abs(r),Math.abs(r)];if(Array.isArray(r)){let[e,t]=r;if(typeof e=="number"&&typeof t=="number")return[Math.abs(e),Math.abs(t)]}throw new Error("Expecting options.window to be an number or [number, number].")}function k2(r){if(v2(r),A7(r.window),typeof r.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof r.step!="number")throw new Error("Expecting options.step to be a number.")}var Fw=(r,e,t)=>{let i=r.length,n=Buffer.from(r,e).toString("hex");if(i<t){let s=new Array(t-i+1).join(n);return Buffer.from(s,"hex").slice(0,t).toString("hex")}return n},S2=(r,e,t)=>{switch(r){case De.HashAlgorithms.SHA1:return Fw(e,t,20);case De.HashAlgorithms.SHA256:return Fw(e,t,32);case De.HashAlgorithms.SHA512:return Fw(e,t,64);default:throw new Error(`Expecting algorithm to be one of ${Pw.join(", ")}. Received ${r}.`)}};function h7(){return{algorithm:De.HashAlgorithms.SHA1,createDigest:qw,createHmacKey:S2,digits:6,encoding:De.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function g7(r){let e={...h7(),...r};return k2(e),Object.freeze(e)}function p7(r,e){return Math.floor(r/e/1e3)}function Mw(r,e){let t=p7(e.epoch,e.step);return Ow(r,t,e)}function s7(r,e,t,i){let n=[];if(i===0)return n;for(let s=1;s<=i;s++){let o=e*s*t;n.push(r+o)}return n}function m7(r,e,t){let i=A7(t),n=e*1e3;return{current:r,past:s7(r,-1,n,i[0]),future:s7(r,1,n,i[1])}}function D2(r,e,t){if(!E2(r))return!1;let i=Mw(e,t);return r===i}function x2(r,e,t,i){let n=null;return r.some((s,o)=>D2(e,t,{...i,epoch:s})?(n=o+1,!0):!1),n}function Q2(r,e,t){if(D2(r,e,t))return 0;let i=m7(t.epoch,t.step,t.window),n=x2(i.past,r,e,t);return n!==null?n*-1:x2(i.future,r,e,t)}function _2(r,e){return Math.floor(r/1e3)%e}function y7(r,e){return e-_2(r,e)}function I7(r,e,t,i){return b2({algorithm:i.algorithm,digits:i.digits,step:i.step,type:De.Strategy.TOTP,accountName:r,issuer:e,secret:t})}var Rw=class r extends Uw{create(e={}){return new r(e)}allOptions(){return g7(this.options)}generate(e){return Mw(e,this.allOptions())}checkDelta(e,t){return Q2(e,t,this.allOptions())}check(e,t){return typeof this.checkDelta(e,t)=="number"}verify(e){if(typeof e!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(e.token,e.secret)}timeRemaining(){let e=this.allOptions();return y7(e.epoch,e.step)}timeUsed(){let e=this.allOptions();return _2(e.epoch,e.step)}keyuri(e,t,i){return I7(e,t,i,this.allOptions())}};function w7(r){if(k2(r),typeof r.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(r.keyEncoder&&typeof r.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function x7(){return{algorithm:De.HashAlgorithms.SHA1,createDigest:qw,createHmacKey:S2,digits:6,encoding:De.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function C7(r){let e={...x7(),...r};return w7(e),Object.freeze(e)}function F2(r,e){return e.keyEncoder(r,e.encoding)}function Lw(r,e){return e.keyDecoder(r,e.encoding)}function E7(r,e){let t=e.createRandomBytes(r,e.encoding);return F2(t,e)}function B7(r,e){return Mw(Lw(r,e),e)}function b7(r,e,t){return Q2(r,Lw(e,t),t)}var C2=class r extends Rw{create(e={}){return new r(e)}allOptions(){return C7(this.options)}generate(e){return B7(e,this.allOptions())}checkDelta(e,t){return b7(e,t,this.allOptions())}encode(e){return F2(e,this.allOptions())}decode(e){return Lw(e,this.allOptions())}generateSecret(e=10){return E7(e,this.allOptions())}};De.Authenticator=C2;De.HASH_ALGORITHMS=Pw;De.HOTP=Uw;De.KEY_ENCODINGS=I2;De.OTP=Tw;De.STRATEGY=w2;De.TOTP=Rw;De.authenticatorCheckWithWindow=b7;De.authenticatorDecoder=Lw;De.authenticatorDefaultOptions=x7;De.authenticatorEncoder=F2;De.authenticatorGenerateSecret=E7;De.authenticatorOptionValidator=w7;De.authenticatorOptions=C7;De.authenticatorToken=B7;De.createDigestPlaceholder=qw;De.hotpCheck=u7;De.hotpCounter=l7;De.hotpCreateHmacKey=o7;De.hotpDefaultOptions=a7;De.hotpDigestToToken=d7;De.hotpKeyuri=f7;De.hotpOptions=c7;De.hotpOptionsValidator=v2;De.hotpToken=Ow;De.isTokenValid=E2;De.keyuri=b2;De.objectValues=Nw;De.padStart=B2;De.totpCheck=D2;De.totpCheckByEpoch=x2;De.totpCheckWithWindow=Q2;De.totpCounter=p7;De.totpCreateHmacKey=S2;De.totpDefaultOptions=h7;De.totpEpochAvailable=m7;De.totpKeyuri=I7;De.totpOptions=g7;De.totpOptionsValidator=k2;De.totpPadSecret=Fw;De.totpTimeRemaining=y7;De.totpTimeUsed=_2;De.totpToken=Mw});var S7=oe(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});var Hw=X9(),k7=n7(),P2=v7(),Vse=new P2.HOTP({createDigest:Hw.createDigest}),Yse=new P2.TOTP({createDigest:Hw.createDigest}),Wse=new P2.Authenticator({createDigest:Hw.createDigest,createRandomBytes:Hw.createRandomBytes,keyDecoder:k7.keyDecoder,keyEncoder:k7.keyEncoder});YA.authenticator=Wse;YA.hotp=Vse;YA.totp=Yse});var Q7=oe(T2=>{"use strict";Object.defineProperty(T2,"__esModule",{value:!0});var D7=S7();Object.keys(D7).forEach(function(r){r!=="default"&&Object.defineProperty(T2,r,{enumerable:!0,get:function(){return D7[r]}})})});var U2=oe((B1e,_7)=>{_7.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var Ja=oe(ll=>{var R2,Xse=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];ll.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17};ll.getSymbolTotalCodewords=function(e){return Xse[e]};ll.getBCHDigit=function(r){let e=0;for(;r!==0;)e++,r>>>=1;return e};ll.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');R2=e};ll.isKanjiModeEnabled=function(){return typeof R2<"u"};ll.toSJIS=function(e){return R2(e)}});var Kw=oe(gn=>{gn.L={bit:1};gn.M={bit:0};gn.Q={bit:3};gn.H={bit:2};function Zse(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"l":case"low":return gn.L;case"m":case"medium":return gn.M;case"q":case"quartile":return gn.Q;case"h":case"high":return gn.H;default:throw new Error("Unknown EC Level: "+r)}}gn.isValid=function(e){return e&&typeof e.bit<"u"&&e.bit>=0&&e.bit<4};gn.from=function(e,t){if(gn.isValid(e))return e;try{return Zse(e)}catch{return t}}});var T7=oe((k1e,P7)=>{function F7(){this.buffer=[],this.length=0}F7.prototype={get:function(r){let e=Math.floor(r/8);return(this.buffer[e]>>>7-r%8&1)===1},put:function(r,e){for(let t=0;t<e;t++)this.putBit((r>>>e-t-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(r){let e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),r&&(this.buffer[e]|=128>>>this.length%8),this.length++}};P7.exports=F7});var R7=oe((S1e,U7)=>{function WA(r){if(!r||r<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=r,this.data=new Uint8Array(r*r),this.reservedBit=new Uint8Array(r*r)}WA.prototype.set=function(r,e,t,i){let n=r*this.size+e;this.data[n]=t,i&&(this.reservedBit[n]=!0)};WA.prototype.get=function(r,e){return this.data[r*this.size+e]};WA.prototype.xor=function(r,e,t){this.data[r*this.size+e]^=t};WA.prototype.isReserved=function(r,e){return this.reservedBit[r*this.size+e]};U7.exports=WA});var N7=oe(Gw=>{var eoe=Ja().getSymbolSize;Gw.getRowColCoords=function(e){if(e===1)return[];let t=Math.floor(e/7)+2,i=eoe(e),n=i===145?26:Math.ceil((i-13)/(2*t-2))*2,s=[i-7];for(let o=1;o<t-1;o++)s[o]=s[o-1]-n;return s.push(6),s.reverse()};Gw.getPositions=function(e){let t=[],i=Gw.getRowColCoords(e),n=i.length;for(let s=0;s<n;s++)for(let o=0;o<n;o++)s===0&&o===0||s===0&&o===n-1||s===n-1&&o===0||t.push([i[s],i[o]]);return t}});var M7=oe(O7=>{var toe=Ja().getSymbolSize,q7=7;O7.getPositions=function(e){let t=toe(e);return[[0,0],[t-q7,0],[0,t-q7]]}});var L7=oe(Bt=>{Bt.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var dl={N1:3,N2:3,N3:40,N4:10};Bt.isValid=function(e){return e!=null&&e!==""&&!isNaN(e)&&e>=0&&e<=7};Bt.from=function(e){return Bt.isValid(e)?parseInt(e,10):void 0};Bt.getPenaltyN1=function(e){let t=e.size,i=0,n=0,s=0,o=null,a=null;for(let c=0;c<t;c++){n=s=0,o=a=null;for(let l=0;l<t;l++){let d=e.get(c,l);d===o?n++:(n>=5&&(i+=dl.N1+(n-5)),o=d,n=1),d=e.get(l,c),d===a?s++:(s>=5&&(i+=dl.N1+(s-5)),a=d,s=1)}n>=5&&(i+=dl.N1+(n-5)),s>=5&&(i+=dl.N1+(s-5))}return i};Bt.getPenaltyN2=function(e){let t=e.size,i=0;for(let n=0;n<t-1;n++)for(let s=0;s<t-1;s++){let o=e.get(n,s)+e.get(n,s+1)+e.get(n+1,s)+e.get(n+1,s+1);(o===4||o===0)&&i++}return i*dl.N2};Bt.getPenaltyN3=function(e){let t=e.size,i=0,n=0,s=0;for(let o=0;o<t;o++){n=s=0;for(let a=0;a<t;a++)n=n<<1&2047|e.get(o,a),a>=10&&(n===1488||n===93)&&i++,s=s<<1&2047|e.get(a,o),a>=10&&(s===1488||s===93)&&i++}return i*dl.N3};Bt.getPenaltyN4=function(e){let t=0,i=e.data.length;for(let s=0;s<i;s++)t+=e.data[s];return Math.abs(Math.ceil(t*100/i/5)-10)*dl.N4};function roe(r,e,t){switch(r){case Bt.Patterns.PATTERN000:return(e+t)%2===0;case Bt.Patterns.PATTERN001:return e%2===0;case Bt.Patterns.PATTERN010:return t%3===0;case Bt.Patterns.PATTERN011:return(e+t)%3===0;case Bt.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(t/3))%2===0;case Bt.Patterns.PATTERN101:return e*t%2+e*t%3===0;case Bt.Patterns.PATTERN110:return(e*t%2+e*t%3)%2===0;case Bt.Patterns.PATTERN111:return(e*t%3+(e+t)%2)%2===0;default:throw new Error("bad maskPattern:"+r)}}Bt.applyMask=function(e,t){let i=t.size;for(let n=0;n<i;n++)for(let s=0;s<i;s++)t.isReserved(s,n)||t.xor(s,n,roe(e,s,n))};Bt.getBestMask=function(e,t){let i=Object.keys(Bt.Patterns).length,n=0,s=1/0;for(let o=0;o<i;o++){t(o),Bt.applyMask(o,e);let a=Bt.getPenaltyN1(e)+Bt.getPenaltyN2(e)+Bt.getPenaltyN3(e)+Bt.getPenaltyN4(e);Bt.applyMask(o,e),a<s&&(s=a,n=o)}return n}});var q2=oe(N2=>{var ja=Kw(),zw=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],Jw=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];N2.getBlocksCount=function(e,t){switch(t){case ja.L:return zw[(e-1)*4+0];case ja.M:return zw[(e-1)*4+1];case ja.Q:return zw[(e-1)*4+2];case ja.H:return zw[(e-1)*4+3];default:return}};N2.getTotalCodewordsCount=function(e,t){switch(t){case ja.L:return Jw[(e-1)*4+0];case ja.M:return Jw[(e-1)*4+1];case ja.Q:return Jw[(e-1)*4+2];case ja.H:return Jw[(e-1)*4+3];default:return}}});var H7=oe($w=>{var XA=new Uint8Array(512),jw=new Uint8Array(256);(function(){let e=1;for(let t=0;t<255;t++)XA[t]=e,jw[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)XA[t]=XA[t-255]})();$w.log=function(e){if(e<1)throw new Error("log("+e+")");return jw[e]};$w.exp=function(e){return XA[e]};$w.mul=function(e,t){return e===0||t===0?0:XA[jw[e]+jw[t]]}});var K7=oe(ZA=>{var O2=H7();ZA.mul=function(e,t){let i=new Uint8Array(e.length+t.length-1);for(let n=0;n<e.length;n++)for(let s=0;s<t.length;s++)i[n+s]^=O2.mul(e[n],t[s]);return i};ZA.mod=function(e,t){let i=new Uint8Array(e);for(;i.length-t.length>=0;){let n=i[0];for(let o=0;o<t.length;o++)i[o]^=O2.mul(t[o],n);let s=0;for(;s<i.length&&i[s]===0;)s++;i=i.slice(s)}return i};ZA.generateECPolynomial=function(e){let t=new Uint8Array([1]);for(let i=0;i<e;i++)t=ZA.mul(t,new Uint8Array([1,O2.exp(i)]));return t}});var J7=oe((U1e,z7)=>{var G7=K7();function M2(r){this.genPoly=void 0,this.degree=r,this.degree&&this.initialize(this.degree)}M2.prototype.initialize=function(e){this.degree=e,this.genPoly=G7.generateECPolynomial(this.degree)};M2.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");let t=new Uint8Array(e.length+this.degree);t.set(e);let i=G7.mod(t,this.genPoly),n=this.degree-i.length;if(n>0){let s=new Uint8Array(this.degree);return s.set(i,n),s}return i};z7.exports=M2});var L2=oe(j7=>{j7.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}});var H2=oe(Eo=>{var $7="[0-9]+",ioe="[A-Z $%*+\\-./:]+",e0="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";e0=e0.replace(/u/g,"\\u");var noe="(?:(?![A-Z0-9 $%*+\\-./:]|"+e0+`)(?:.|[\r +]))+`;Eo.KANJI=new RegExp(e0,"g");Eo.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");Eo.BYTE=new RegExp(noe,"g");Eo.NUMERIC=new RegExp($7,"g");Eo.ALPHANUMERIC=new RegExp(ioe,"g");var soe=new RegExp("^"+e0+"$"),ooe=new RegExp("^"+$7+"$"),aoe=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Eo.testKanji=function(e){return soe.test(e)};Eo.testNumeric=function(e){return ooe.test(e)};Eo.testAlphanumeric=function(e){return aoe.test(e)}});var $a=oe(lr=>{var coe=L2(),K2=H2();lr.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]};lr.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]};lr.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]};lr.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]};lr.MIXED={bit:-1};lr.getCharCountIndicator=function(e,t){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!coe.isValid(t))throw new Error("Invalid version: "+t);return t>=1&&t<10?e.ccBits[0]:t<27?e.ccBits[1]:e.ccBits[2]};lr.getBestModeForData=function(e){return K2.testNumeric(e)?lr.NUMERIC:K2.testAlphanumeric(e)?lr.ALPHANUMERIC:K2.testKanji(e)?lr.KANJI:lr.BYTE};lr.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")};lr.isValid=function(e){return e&&e.bit&&e.ccBits};function loe(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return lr.NUMERIC;case"alphanumeric":return lr.ALPHANUMERIC;case"kanji":return lr.KANJI;case"byte":return lr.BYTE;default:throw new Error("Unknown mode: "+r)}}lr.from=function(e,t){if(lr.isValid(e))return e;try{return loe(e)}catch{return t}}});var Z7=oe(ul=>{var Vw=Ja(),doe=q2(),V7=Kw(),Va=$a(),G2=L2(),W7=7973,Y7=Vw.getBCHDigit(W7);function uoe(r,e,t){for(let i=1;i<=40;i++)if(e<=ul.getCapacity(i,t,r))return i}function X7(r,e){return Va.getCharCountIndicator(r,e)+4}function foe(r,e){let t=0;return r.forEach(function(i){let n=X7(i.mode,e);t+=n+i.getBitsLength()}),t}function Aoe(r,e){for(let t=1;t<=40;t++)if(foe(r,t)<=ul.getCapacity(t,e,Va.MIXED))return t}ul.from=function(e,t){return G2.isValid(e)?parseInt(e,10):t};ul.getCapacity=function(e,t,i){if(!G2.isValid(e))throw new Error("Invalid QR Code version");typeof i>"u"&&(i=Va.BYTE);let n=Vw.getSymbolTotalCodewords(e),s=doe.getTotalCodewordsCount(e,t),o=(n-s)*8;if(i===Va.MIXED)return o;let a=o-X7(i,e);switch(i){case Va.NUMERIC:return Math.floor(a/10*3);case Va.ALPHANUMERIC:return Math.floor(a/11*2);case Va.KANJI:return Math.floor(a/13);case Va.BYTE:default:return Math.floor(a/8)}};ul.getBestVersionForData=function(e,t){let i,n=V7.from(t,V7.M);if(Array.isArray(e)){if(e.length>1)return Aoe(e,n);if(e.length===0)return 1;i=e[0]}else i=e;return uoe(i.mode,i.getLength(),n)};ul.getEncodedBits=function(e){if(!G2.isValid(e)||e<7)throw new Error("Invalid QR Code version");let t=e<<12;for(;Vw.getBCHDigit(t)-Y7>=0;)t^=W7<<Vw.getBCHDigit(t)-Y7;return e<<12|t}});var iq=oe(rq=>{var z2=Ja(),tq=1335,hoe=21522,eq=z2.getBCHDigit(tq);rq.getEncodedBits=function(e,t){let i=e.bit<<3|t,n=i<<10;for(;z2.getBCHDigit(n)-eq>=0;)n^=tq<<z2.getBCHDigit(n)-eq;return(i<<10|n)^hoe}});var sq=oe((L1e,nq)=>{var goe=$a();function lu(r){this.mode=goe.NUMERIC,this.data=r.toString()}lu.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)};lu.prototype.getLength=function(){return this.data.length};lu.prototype.getBitsLength=function(){return lu.getBitsLength(this.data.length)};lu.prototype.write=function(e){let t,i,n;for(t=0;t+3<=this.data.length;t+=3)i=this.data.substr(t,3),n=parseInt(i,10),e.put(n,10);let s=this.data.length-t;s>0&&(i=this.data.substr(t),n=parseInt(i,10),e.put(n,s*3+1))};nq.exports=lu});var aq=oe((H1e,oq)=>{var poe=$a(),J2=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function du(r){this.mode=poe.ALPHANUMERIC,this.data=r}du.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};du.prototype.getLength=function(){return this.data.length};du.prototype.getBitsLength=function(){return du.getBitsLength(this.data.length)};du.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let i=J2.indexOf(this.data[t])*45;i+=J2.indexOf(this.data[t+1]),e.put(i,11)}this.data.length%2&&e.put(J2.indexOf(this.data[t]),6)};oq.exports=du});var lq=oe((K1e,cq)=>{var moe=$a();function uu(r){this.mode=moe.BYTE,typeof r=="string"?this.data=new TextEncoder().encode(r):this.data=new Uint8Array(r)}uu.getBitsLength=function(e){return e*8};uu.prototype.getLength=function(){return this.data.length};uu.prototype.getBitsLength=function(){return uu.getBitsLength(this.data.length)};uu.prototype.write=function(r){for(let e=0,t=this.data.length;e<t;e++)r.put(this.data[e],8)};cq.exports=uu});var uq=oe((G1e,dq)=>{var yoe=$a(),Ioe=Ja();function fu(r){this.mode=yoe.KANJI,this.data=r}fu.getBitsLength=function(e){return e*13};fu.prototype.getLength=function(){return this.data.length};fu.prototype.getBitsLength=function(){return fu.getBitsLength(this.data.length)};fu.prototype.write=function(r){let e;for(e=0;e<this.data.length;e++){let t=Ioe.toSJIS(this.data[e]);if(t>=33088&&t<=40956)t-=33088;else if(t>=57408&&t<=60351)t-=49472;else throw new Error("Invalid SJIS character: "+this.data[e]+` +Make sure your charset is UTF-8`);t=(t>>>8&255)*192+(t&255),r.put(t,13)}};dq.exports=fu});var fq=oe((z1e,j2)=>{"use strict";var t0={single_source_shortest_paths:function(r,e,t){var i={},n={};n[e]=0;var s=t0.PriorityQueue.make();s.push(e,0);for(var o,a,c,l,d,u,f,h,g;!s.empty();){o=s.pop(),a=o.value,l=o.cost,d=r[a]||{};for(c in d)d.hasOwnProperty(c)&&(u=d[c],f=l+u,h=n[c],g=typeof n[c]>"u",(g||h>f)&&(n[c]=f,s.push(c,f),i[c]=a))}if(typeof t<"u"&&typeof n[t]>"u"){var p=["Could not find a path from ",e," to ",t,"."].join("");throw new Error(p)}return i},extract_shortest_path_from_predecessor_list:function(r,e){for(var t=[],i=e,n;i;)t.push(i),n=r[i],i=r[i];return t.reverse(),t},find_path:function(r,e,t){var i=t0.single_source_shortest_paths(r,e,t);return t0.extract_shortest_path_from_predecessor_list(i,t)},PriorityQueue:{make:function(r){var e=t0.PriorityQueue,t={},i;r=r||{};for(i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t.queue=[],t.sorter=r.sorter||e.default_sorter,t},default_sorter:function(r,e){return r.cost-e.cost},push:function(r,e){var t={value:r,cost:e};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof j2<"u"&&(j2.exports=t0)});var wq=oe(Au=>{var At=$a(),gq=sq(),pq=aq(),mq=lq(),yq=uq(),r0=H2(),Yw=Ja(),woe=fq();function Aq(r){return unescape(encodeURIComponent(r)).length}function i0(r,e,t){let i=[],n;for(;(n=r.exec(t))!==null;)i.push({data:n[0],index:n.index,mode:e,length:n[0].length});return i}function Iq(r){let e=i0(r0.NUMERIC,At.NUMERIC,r),t=i0(r0.ALPHANUMERIC,At.ALPHANUMERIC,r),i,n;return Yw.isKanjiModeEnabled()?(i=i0(r0.BYTE,At.BYTE,r),n=i0(r0.KANJI,At.KANJI,r)):(i=i0(r0.BYTE_KANJI,At.BYTE,r),n=[]),e.concat(t,i,n).sort(function(o,a){return o.index-a.index}).map(function(o){return{data:o.data,mode:o.mode,length:o.length}})}function $2(r,e){switch(e){case At.NUMERIC:return gq.getBitsLength(r);case At.ALPHANUMERIC:return pq.getBitsLength(r);case At.KANJI:return yq.getBitsLength(r);case At.BYTE:return mq.getBitsLength(r)}}function xoe(r){return r.reduce(function(e,t){let i=e.length-1>=0?e[e.length-1]:null;return i&&i.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function Coe(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t];switch(i.mode){case At.NUMERIC:e.push([i,{data:i.data,mode:At.ALPHANUMERIC,length:i.length},{data:i.data,mode:At.BYTE,length:i.length}]);break;case At.ALPHANUMERIC:e.push([i,{data:i.data,mode:At.BYTE,length:i.length}]);break;case At.KANJI:e.push([i,{data:i.data,mode:At.BYTE,length:Aq(i.data)}]);break;case At.BYTE:e.push([{data:i.data,mode:At.BYTE,length:Aq(i.data)}])}}return e}function Eoe(r,e){let t={},i={start:{}},n=["start"];for(let s=0;s<r.length;s++){let o=r[s],a=[];for(let c=0;c<o.length;c++){let l=o[c],d=""+s+c;a.push(d),t[d]={node:l,lastCount:0},i[d]={};for(let u=0;u<n.length;u++){let f=n[u];t[f]&&t[f].node.mode===l.mode?(i[f][d]=$2(t[f].lastCount+l.length,l.mode)-$2(t[f].lastCount,l.mode),t[f].lastCount+=l.length):(t[f]&&(t[f].lastCount=l.length),i[f][d]=$2(l.length,l.mode)+4+At.getCharCountIndicator(l.mode,e))}}n=a}for(let s=0;s<n.length;s++)i[n[s]].end=0;return{map:i,table:t}}function hq(r,e){let t,i=At.getBestModeForData(r);if(t=At.from(e,i),t!==At.BYTE&&t.bit<i.bit)throw new Error('"'+r+'" cannot be encoded with mode '+At.toString(t)+`. + Suggested mode is: `+At.toString(i));switch(t===At.KANJI&&!Yw.isKanjiModeEnabled()&&(t=At.BYTE),t){case At.NUMERIC:return new gq(r);case At.ALPHANUMERIC:return new pq(r);case At.KANJI:return new yq(r);case At.BYTE:return new mq(r)}}Au.fromArray=function(e){return e.reduce(function(t,i){return typeof i=="string"?t.push(hq(i,null)):i.data&&t.push(hq(i.data,i.mode)),t},[])};Au.fromString=function(e,t){let i=Iq(e,Yw.isKanjiModeEnabled()),n=Coe(i),s=Eoe(n,t),o=woe.find_path(s.map,"start","end"),a=[];for(let c=1;c<o.length-1;c++)a.push(s.table[o[c]].node);return Au.fromArray(xoe(a))};Au.rawSplit=function(e){return Au.fromArray(Iq(e,Yw.isKanjiModeEnabled()))}});var ev=oe(xq=>{var Xw=Ja(),V2=Kw(),Boe=T7(),boe=R7(),voe=N7(),koe=M7(),X2=L7(),Z2=q2(),Soe=J7(),Ww=Z7(),Doe=iq(),Qoe=$a(),Y2=wq();function _oe(r,e){let t=r.size,i=koe.getPositions(e);for(let n=0;n<i.length;n++){let s=i[n][0],o=i[n][1];for(let a=-1;a<=7;a++)if(!(s+a<=-1||t<=s+a))for(let c=-1;c<=7;c++)o+c<=-1||t<=o+c||(a>=0&&a<=6&&(c===0||c===6)||c>=0&&c<=6&&(a===0||a===6)||a>=2&&a<=4&&c>=2&&c<=4?r.set(s+a,o+c,!0,!0):r.set(s+a,o+c,!1,!0))}}function Foe(r){let e=r.size;for(let t=8;t<e-8;t++){let i=t%2===0;r.set(t,6,i,!0),r.set(6,t,i,!0)}}function Poe(r,e){let t=voe.getPositions(e);for(let i=0;i<t.length;i++){let n=t[i][0],s=t[i][1];for(let o=-2;o<=2;o++)for(let a=-2;a<=2;a++)o===-2||o===2||a===-2||a===2||o===0&&a===0?r.set(n+o,s+a,!0,!0):r.set(n+o,s+a,!1,!0)}}function Toe(r,e){let t=r.size,i=Ww.getEncodedBits(e),n,s,o;for(let a=0;a<18;a++)n=Math.floor(a/3),s=a%3+t-8-3,o=(i>>a&1)===1,r.set(n,s,o,!0),r.set(s,n,o,!0)}function W2(r,e,t){let i=r.size,n=Doe.getEncodedBits(e,t),s,o;for(s=0;s<15;s++)o=(n>>s&1)===1,s<6?r.set(s,8,o,!0):s<8?r.set(s+1,8,o,!0):r.set(i-15+s,8,o,!0),s<8?r.set(8,i-s-1,o,!0):s<9?r.set(8,15-s-1+1,o,!0):r.set(8,15-s-1,o,!0);r.set(i-8,8,1,!0)}function Uoe(r,e){let t=r.size,i=-1,n=t-1,s=7,o=0;for(let a=t-1;a>0;a-=2)for(a===6&&a--;;){for(let c=0;c<2;c++)if(!r.isReserved(n,a-c)){let l=!1;o<e.length&&(l=(e[o]>>>s&1)===1),r.set(n,a-c,l),s--,s===-1&&(o++,s=7)}if(n+=i,n<0||t<=n){n-=i,i=-i;break}}}function Roe(r,e,t){let i=new Boe;t.forEach(function(c){i.put(c.mode.bit,4),i.put(c.getLength(),Qoe.getCharCountIndicator(c.mode,r)),c.write(i)});let n=Xw.getSymbolTotalCodewords(r),s=Z2.getTotalCodewordsCount(r,e),o=(n-s)*8;for(i.getLengthInBits()+4<=o&&i.put(0,4);i.getLengthInBits()%8!==0;)i.putBit(0);let a=(o-i.getLengthInBits())/8;for(let c=0;c<a;c++)i.put(c%2?17:236,8);return Noe(i,r,e)}function Noe(r,e,t){let i=Xw.getSymbolTotalCodewords(e),n=Z2.getTotalCodewordsCount(e,t),s=i-n,o=Z2.getBlocksCount(e,t),a=i%o,c=o-a,l=Math.floor(i/o),d=Math.floor(s/o),u=d+1,f=l-d,h=new Soe(f),g=0,p=new Array(o),I=new Array(o),m=0,w=new Uint8Array(r.buffer);for(let R=0;R<o;R++){let U=R<c?d:u;p[R]=w.slice(g,g+U),I[R]=h.encode(p[R]),g+=U,m=Math.max(m,U)}let B=new Uint8Array(i),C=0,x,Q;for(x=0;x<m;x++)for(Q=0;Q<o;Q++)x<p[Q].length&&(B[C++]=p[Q][x]);for(x=0;x<f;x++)for(Q=0;Q<o;Q++)B[C++]=I[Q][x];return B}function qoe(r,e,t,i){let n;if(Array.isArray(r))n=Y2.fromArray(r);else if(typeof r=="string"){let l=e;if(!l){let d=Y2.rawSplit(r);l=Ww.getBestVersionForData(d,t)}n=Y2.fromString(r,l||40)}else throw new Error("Invalid data");let s=Ww.getBestVersionForData(n,t);if(!s)throw new Error("The amount of data is too big to be stored in a QR Code");if(!e)e=s;else if(e<s)throw new Error(` The chosen QR Code version cannot contain this amount of data. Minimum version required to store current data is: `+s+`. -`);let o=One(e,t,n),a=Qw.getSymbolSize(e),c=new Sne(a);return Tne(c,e),Une(c),Rne(c,e),yb(c,t,0),e>=7&&Nne(c,e),qne(c,o),isNaN(i)&&(i=Ib.getBestMask(c,yb.bind(null,c,t))),Ib.applyMask(i,c),yb(c,t,i),{modules:c,version:e,errorCorrectionLevel:t,maskPattern:i,segments:n}}s7.create=function(e,t){if(typeof e>"u"||e==="")throw new Error("No input text");let i=pb.M,n,s;return typeof t<"u"&&(i=pb.from(t.errorCorrectionLevel,pb.M),n=Dw.from(t.version),s=Ib.from(t.maskPattern),t.toSJISFunc&&Qw.setToSJISFunction(t.toSJISFunc)),Lne(e,n,i,s)}});var Cb=oe((LEe,a7)=>{"use strict";var Hne=wt("util"),o7=wt("stream"),Rn=a7.exports=function(){o7.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};Hne.inherits(Rn,o7);Rn.prototype.read=function(r,e){this._reads.push({length:Math.abs(r),allowLess:r<0,func:e}),process.nextTick(function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}.bind(this))};Rn.prototype.write=function(r,e){if(!this.writable)return this.emit("error",new Error("Stream not writable")),!1;let t;return Buffer.isBuffer(r)?t=r:t=Buffer.from(r,e||this._encoding),this._buffers.push(t),this._buffered+=t.length,this._process(),this._reads&&this._reads.length===0&&(this._paused=!0),this.writable&&!this._paused};Rn.prototype.end=function(r,e){r&&this.write(r,e),this.writable=!1,this._buffers&&(this._buffers.length===0?this._end():(this._buffers.push(null),this._process()))};Rn.prototype.destroySoon=Rn.prototype.end;Rn.prototype._end=function(){this._reads.length>0&&this.emit("error",new Error("Unexpected end of input")),this.destroy()};Rn.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))};Rn.prototype._processReadAllowingLess=function(r){this._reads.shift();let e=this._buffers[0];e.length>r.length?(this._buffered-=r.length,this._buffers[0]=e.slice(r.length),r.func.call(this,e.slice(0,r.length))):(this._buffered-=e.length,this._buffers.shift(),r.func.call(this,e))};Rn.prototype._processRead=function(r){this._reads.shift();let e=0,t=0,i=Buffer.alloc(r.length);for(;e<r.length;){let n=this._buffers[t++],s=Math.min(n.length,r.length-e);n.copy(i,e,0,s),e+=s,s!==n.length&&(this._buffers[--t]=n.slice(s))}t>0&&this._buffers.splice(0,t),this._buffered-=r.length,r.func.call(this,i)};Rn.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let r=this._reads[0];if(r.allowLess)this._processReadAllowingLess(r);else if(this._buffered>=r.length)this._processRead(r);else break}this._buffers&&!this.writable&&this._end()}catch(r){this.emit("error",r)}}});var Bb=oe(Eb=>{"use strict";var Oa=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];Eb.getImagePasses=function(r,e){let t=[],i=r%8,n=e%8,s=(r-i)/8,o=(e-n)/8;for(let a=0;a<Oa.length;a++){let c=Oa[a],l=s*c.x.length,d=o*c.y.length;for(let u=0;u<c.x.length&&c.x[u]<i;u++)l++;for(let u=0;u<c.y.length&&c.y[u]<n;u++)d++;l>0&&d>0&&t.push({width:l,height:d,index:a})}return t};Eb.getInterlaceIterator=function(r){return function(e,t,i){let n=e%Oa[i].x.length,s=(e-n)/Oa[i].x.length*8+Oa[i].x[n],o=t%Oa[i].y.length,a=(t-o)/Oa[i].y.length*8+Oa[i].y[o];return s*4+a*r*4}}});var bb=oe((KEe,c7)=>{"use strict";c7.exports=function(e,t,i){let n=e+t-i,s=Math.abs(n-e),o=Math.abs(n-t),a=Math.abs(n-i);return s<=o&&s<=a?e:o<=a?t:i}});var vb=oe((GEe,d7)=>{"use strict";var Kne=Bb(),Gne=bb();function l7(r,e,t){let i=r*e;return t!==8&&(i=Math.ceil(i/(8/t))),i}var iu=d7.exports=function(r,e){let t=r.width,i=r.height,n=r.interlace,s=r.bpp,o=r.depth;if(this.read=e.read,this.write=e.write,this.complete=e.complete,this._imageIndex=0,this._images=[],n){let a=Kne.getImagePasses(t,i);for(let c=0;c<a.length;c++)this._images.push({byteWidth:l7(a[c].width,s,o),height:a[c].height,lineIndex:0})}else this._images.push({byteWidth:l7(t,s,o),height:i,lineIndex:0});o===8?this._xComparison=s:o===16?this._xComparison=s*2:this._xComparison=1};iu.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))};iu.prototype._unFilterType1=function(r,e,t){let i=this._xComparison,n=i-1;for(let s=0;s<t;s++){let o=r[1+s],a=s>n?e[s-i]:0;e[s]=o+a}};iu.prototype._unFilterType2=function(r,e,t){let i=this._lastLine;for(let n=0;n<t;n++){let s=r[1+n],o=i?i[n]:0;e[n]=s+o}};iu.prototype._unFilterType3=function(r,e,t){let i=this._xComparison,n=i-1,s=this._lastLine;for(let o=0;o<t;o++){let a=r[1+o],c=s?s[o]:0,l=o>n?e[o-i]:0,d=Math.floor((l+c)/2);e[o]=a+d}};iu.prototype._unFilterType4=function(r,e,t){let i=this._xComparison,n=i-1,s=this._lastLine;for(let o=0;o<t;o++){let a=r[1+o],c=s?s[o]:0,l=o>n?e[o-i]:0,d=o>n&&s?s[o-i]:0,u=Gne(l,c,d);e[o]=a+u}};iu.prototype._reverseFilterLine=function(r){let e=r[0],t,i=this._images[this._imageIndex],n=i.byteWidth;if(e===0)t=r.slice(1,n+1);else switch(t=Buffer.alloc(n),e){case 1:this._unFilterType1(r,t,n);break;case 2:this._unFilterType2(r,t,n);break;case 3:this._unFilterType3(r,t,n);break;case 4:this._unFilterType4(r,t,n);break;default:throw new Error("Unrecognised filter type - "+e)}this.write(t),i.lineIndex++,i.lineIndex>=i.height?(this._lastLine=null,this._imageIndex++,i=this._images[this._imageIndex]):this._lastLine=t,i?this.read(i.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())}});var A7=oe((zEe,f7)=>{"use strict";var zne=wt("util"),u7=Cb(),Jne=vb(),jne=f7.exports=function(r){u7.call(this);let e=[],t=this;this._filter=new Jne(r,{read:this.read.bind(this),write:function(i){e.push(i)},complete:function(){t.emit("complete",Buffer.concat(e))}}),this._filter.start()};zne.inherits(jne,u7)});var nu=oe((JEe,h7)=>{"use strict";h7.exports={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5}});var Db=oe((jEe,g7)=>{"use strict";var kb=[];(function(){for(let r=0;r<256;r++){let e=r;for(let t=0;t<8;t++)e&1?e=3988292384^e>>>1:e=e>>>1;kb[r]=e}})();var Sb=g7.exports=function(){this._crc=-1};Sb.prototype.write=function(r){for(let e=0;e<r.length;e++)this._crc=kb[(this._crc^r[e])&255]^this._crc>>>8;return!0};Sb.prototype.crc32=function(){return this._crc^-1};Sb.crc32=function(r){let e=-1;for(let t=0;t<r.length;t++)e=kb[(e^r[t])&255]^e>>>8;return e^-1}});var Qb=oe(($Ee,p7)=>{"use strict";var yr=nu(),$ne=Db(),Sr=p7.exports=function(r,e){this._options=r,r.checkCRC=r.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[yr.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[yr.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[yr.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[yr.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[yr.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[yr.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=e.read,this.error=e.error,this.metadata=e.metadata,this.gamma=e.gamma,this.transColor=e.transColor,this.palette=e.palette,this.parsed=e.parsed,this.inflateData=e.inflateData,this.finished=e.finished,this.simpleTransparency=e.simpleTransparency,this.headersFinished=e.headersFinished||function(){}};Sr.prototype.start=function(){this.read(yr.PNG_SIGNATURE.length,this._parseSignature.bind(this))};Sr.prototype._parseSignature=function(r){let e=yr.PNG_SIGNATURE;for(let t=0;t<e.length;t++)if(r[t]!==e[t]){this.error(new Error("Invalid file signature"));return}this.read(8,this._parseChunkBegin.bind(this))};Sr.prototype._parseChunkBegin=function(r){let e=r.readUInt32BE(0),t=r.readUInt32BE(4),i="";for(let s=4;s<8;s++)i+=String.fromCharCode(r[s]);let n=!!(r[4]&32);if(!this._hasIHDR&&t!==yr.TYPE_IHDR){this.error(new Error("Expected IHDR on beggining"));return}if(this._crc=new $ne,this._crc.write(Buffer.from(i)),this._chunks[t])return this._chunks[t](e);if(!n){this.error(new Error("Unsupported critical chunk type "+i));return}this.read(e+4,this._skipChunk.bind(this))};Sr.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))};Sr.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))};Sr.prototype._parseChunkEnd=function(r){let e=r.readInt32BE(0),t=this._crc.crc32();if(this._options.checkCRC&&t!==e){this.error(new Error("Crc error - "+e+" - "+t));return}this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))};Sr.prototype._handleIHDR=function(r){this.read(r,this._parseIHDR.bind(this))};Sr.prototype._parseIHDR=function(r){this._crc.write(r);let e=r.readUInt32BE(0),t=r.readUInt32BE(4),i=r[8],n=r[9],s=r[10],o=r[11],a=r[12];if(i!==8&&i!==4&&i!==2&&i!==1&&i!==16){this.error(new Error("Unsupported bit depth "+i));return}if(!(n in yr.COLORTYPE_TO_BPP_MAP)){this.error(new Error("Unsupported color type"));return}if(s!==0){this.error(new Error("Unsupported compression method"));return}if(o!==0){this.error(new Error("Unsupported filter method"));return}if(a!==0&&a!==1){this.error(new Error("Unsupported interlace method"));return}this._colorType=n;let c=yr.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:e,height:t,depth:i,interlace:!!a,palette:!!(n&yr.COLORTYPE_PALETTE),color:!!(n&yr.COLORTYPE_COLOR),alpha:!!(n&yr.COLORTYPE_ALPHA),bpp:c,colorType:n}),this._handleChunkEnd()};Sr.prototype._handlePLTE=function(r){this.read(r,this._parsePLTE.bind(this))};Sr.prototype._parsePLTE=function(r){this._crc.write(r);let e=Math.floor(r.length/3);for(let t=0;t<e;t++)this._palette.push([r[t*3],r[t*3+1],r[t*3+2],255]);this.palette(this._palette),this._handleChunkEnd()};Sr.prototype._handleTRNS=function(r){this.simpleTransparency(),this.read(r,this._parseTRNS.bind(this))};Sr.prototype._parseTRNS=function(r){if(this._crc.write(r),this._colorType===yr.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(new Error("Transparency chunk must be after palette"));return}if(r.length>this._palette.length){this.error(new Error("More transparent colors than palette size"));return}for(let e=0;e<r.length;e++)this._palette[e][3]=r[e];this.palette(this._palette)}this._colorType===yr.COLORTYPE_GRAYSCALE&&this.transColor([r.readUInt16BE(0)]),this._colorType===yr.COLORTYPE_COLOR&&this.transColor([r.readUInt16BE(0),r.readUInt16BE(2),r.readUInt16BE(4)]),this._handleChunkEnd()};Sr.prototype._handleGAMA=function(r){this.read(r,this._parseGAMA.bind(this))};Sr.prototype._parseGAMA=function(r){this._crc.write(r),this.gamma(r.readUInt32BE(0)/yr.GAMMA_DIVISION),this._handleChunkEnd()};Sr.prototype._handleIDAT=function(r){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-r,this._parseIDAT.bind(this,r))};Sr.prototype._parseIDAT=function(r,e){if(this._crc.write(e),this._colorType===yr.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw new Error("Expected palette not found");this.inflateData(e);let t=r-e.length;t>0?this._handleIDAT(t):this._handleChunkEnd()};Sr.prototype._handleIEND=function(r){this.read(r,this._parseIEND.bind(this))};Sr.prototype._parseIEND=function(r){this._crc.write(r),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()}});var _b=oe(y7=>{"use strict";var m7=Bb(),Vne=[function(){},function(r,e,t,i){if(i===e.length)throw new Error("Ran out of data");let n=e[i];r[t]=n,r[t+1]=n,r[t+2]=n,r[t+3]=255},function(r,e,t,i){if(i+1>=e.length)throw new Error("Ran out of data");let n=e[i];r[t]=n,r[t+1]=n,r[t+2]=n,r[t+3]=e[i+1]},function(r,e,t,i){if(i+2>=e.length)throw new Error("Ran out of data");r[t]=e[i],r[t+1]=e[i+1],r[t+2]=e[i+2],r[t+3]=255},function(r,e,t,i){if(i+3>=e.length)throw new Error("Ran out of data");r[t]=e[i],r[t+1]=e[i+1],r[t+2]=e[i+2],r[t+3]=e[i+3]}],Yne=[function(){},function(r,e,t,i){let n=e[0];r[t]=n,r[t+1]=n,r[t+2]=n,r[t+3]=i},function(r,e,t){let i=e[0];r[t]=i,r[t+1]=i,r[t+2]=i,r[t+3]=e[1]},function(r,e,t,i){r[t]=e[0],r[t+1]=e[1],r[t+2]=e[2],r[t+3]=i},function(r,e,t){r[t]=e[0],r[t+1]=e[1],r[t+2]=e[2],r[t+3]=e[3]}];function Wne(r,e){let t=[],i=0;function n(){if(i===r.length)throw new Error("Ran out of data");let s=r[i];i++;let o,a,c,l,d,u,f,h;switch(e){default:throw new Error("unrecognised depth");case 16:f=r[i],i++,t.push((s<<8)+f);break;case 4:f=s&15,h=s>>4,t.push(h,f);break;case 2:d=s&3,u=s>>2&3,f=s>>4&3,h=s>>6&3,t.push(h,f,u,d);break;case 1:o=s&1,a=s>>1&1,c=s>>2&1,l=s>>3&1,d=s>>4&1,u=s>>5&1,f=s>>6&1,h=s>>7&1,t.push(h,f,u,d,l,c,a,o);break}}return{get:function(s){for(;t.length<s;)n();let o=t.slice(0,s);return t=t.slice(s),o},resetAfterLine:function(){t.length=0},end:function(){if(i!==r.length)throw new Error("extra data found")}}}function Xne(r,e,t,i,n,s){let o=r.width,a=r.height,c=r.index;for(let l=0;l<a;l++)for(let d=0;d<o;d++){let u=t(d,l,c);Vne[i](e,n,u,s),s+=i}return s}function Zne(r,e,t,i,n,s){let o=r.width,a=r.height,c=r.index;for(let l=0;l<a;l++){for(let d=0;d<o;d++){let u=n.get(i),f=t(d,l,c);Yne[i](e,u,f,s)}n.resetAfterLine()}}y7.dataToBitMap=function(r,e){let t=e.width,i=e.height,n=e.depth,s=e.bpp,o=e.interlace,a;n!==8&&(a=Wne(r,n));let c;n<=8?c=Buffer.alloc(t*i*4):c=new Uint16Array(t*i*4);let l=Math.pow(2,n)-1,d=0,u,f;if(o)u=m7.getImagePasses(t,i),f=m7.getInterlaceIterator(t,i);else{let h=0;f=function(){let g=h;return h+=4,g},u=[{width:t,height:i}]}for(let h=0;h<u.length;h++)n===8?d=Xne(u[h],c,f,s,r,d):Zne(u[h],c,f,s,a,l);if(n===8){if(d!==r.length)throw new Error("extra data found")}else a.end();return c}});var Fb=oe((YEe,I7)=>{"use strict";function ese(r,e,t,i,n){let s=0;for(let o=0;o<i;o++)for(let a=0;a<t;a++){let c=n[r[s]];if(!c)throw new Error("index "+r[s]+" not in palette");for(let l=0;l<4;l++)e[s+l]=c[l];s+=4}}function tse(r,e,t,i,n){let s=0;for(let o=0;o<i;o++)for(let a=0;a<t;a++){let c=!1;if(n.length===1?n[0]===r[s]&&(c=!0):n[0]===r[s]&&n[1]===r[s+1]&&n[2]===r[s+2]&&(c=!0),c)for(let l=0;l<4;l++)e[s+l]=0;s+=4}}function rse(r,e,t,i,n){let s=255,o=Math.pow(2,n)-1,a=0;for(let c=0;c<i;c++)for(let l=0;l<t;l++){for(let d=0;d<4;d++)e[a+d]=Math.floor(r[a+d]*s/o+.5);a+=4}}I7.exports=function(r,e){let t=e.depth,i=e.width,n=e.height,s=e.colorType,o=e.transColor,a=e.palette,c=r;return s===3?ese(r,c,i,n,a):(o&&tse(r,c,i,n,o),t!==8&&(t===16&&(c=Buffer.alloc(i*n*4)),rse(r,c,i,n,t))),c}});var C7=oe((WEe,x7)=>{"use strict";var ise=wt("util"),Pb=wt("zlib"),w7=Cb(),nse=A7(),sse=Qb(),ose=_b(),ase=Fb(),Is=x7.exports=function(r){w7.call(this),this._parser=new sse(r,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=r,this.writable=!0,this._parser.start()};ise.inherits(Is,w7);Is.prototype._handleError=function(r){this.emit("error",r),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",function(){})),this.errord=!0};Is.prototype._inflateData=function(r){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=Pb.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let t=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,i=Math.max(t,Pb.Z_MIN_CHUNK);this._inflate=Pb.createInflate({chunkSize:i});let n=t,s=this.emit.bind(this,"error");this._inflate.on("error",function(a){n&&s(a)}),this._filter.on("complete",this._complete.bind(this));let o=this._filter.write.bind(this._filter);this._inflate.on("data",function(a){n&&(a.length>n&&(a=a.slice(0,n)),n-=a.length,o(a))}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(r)};Is.prototype._handleMetaData=function(r){this._metaData=r,this._bitmapInfo=Object.create(r),this._filter=new nse(this._bitmapInfo)};Is.prototype._handleTransColor=function(r){this._bitmapInfo.transColor=r};Is.prototype._handlePalette=function(r){this._bitmapInfo.palette=r};Is.prototype._simpleTransparency=function(){this._metaData.alpha=!0};Is.prototype._headersFinished=function(){this.emit("metadata",this._metaData)};Is.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))};Is.prototype._complete=function(r){if(this.errord)return;let e;try{let t=ose.dataToBitMap(r,this._bitmapInfo);e=ase(t,this._bitmapInfo),t=null}catch(t){this._handleError(t);return}this.emit("parsed",e)}});var B7=oe((XEe,E7)=>{"use strict";var gn=nu();E7.exports=function(r,e,t,i){let n=[gn.COLORTYPE_COLOR_ALPHA,gn.COLORTYPE_ALPHA].indexOf(i.colorType)!==-1;if(i.colorType===i.inputColorType){let g=(function(){let p=new ArrayBuffer(2);return new DataView(p).setInt16(0,256,!0),new Int16Array(p)[0]!==256})();if(i.bitDepth===8||i.bitDepth===16&&g)return r}let s=i.bitDepth!==16?r:new Uint16Array(r.buffer),o=255,a=gn.COLORTYPE_TO_BPP_MAP[i.inputColorType];a===4&&!i.inputHasAlpha&&(a=3);let c=gn.COLORTYPE_TO_BPP_MAP[i.colorType];i.bitDepth===16&&(o=65535,c*=2);let l=Buffer.alloc(e*t*c),d=0,u=0,f=i.bgColor||{};f.red===void 0&&(f.red=o),f.green===void 0&&(f.green=o),f.blue===void 0&&(f.blue=o);function h(){let g,p,I,y=o;switch(i.inputColorType){case gn.COLORTYPE_COLOR_ALPHA:y=s[d+3],g=s[d],p=s[d+1],I=s[d+2];break;case gn.COLORTYPE_COLOR:g=s[d],p=s[d+1],I=s[d+2];break;case gn.COLORTYPE_ALPHA:y=s[d+1],g=s[d],p=g,I=g;break;case gn.COLORTYPE_GRAYSCALE:g=s[d],p=g,I=g;break;default:throw new Error("input color type:"+i.inputColorType+" is not supported at present")}return i.inputHasAlpha&&(n||(y/=o,g=Math.min(Math.max(Math.round((1-y)*f.red+y*g),0),o),p=Math.min(Math.max(Math.round((1-y)*f.green+y*p),0),o),I=Math.min(Math.max(Math.round((1-y)*f.blue+y*I),0),o))),{red:g,green:p,blue:I,alpha:y}}for(let g=0;g<t;g++)for(let p=0;p<e;p++){let I=h(s,d);switch(i.colorType){case gn.COLORTYPE_COLOR_ALPHA:case gn.COLORTYPE_COLOR:i.bitDepth===8?(l[u]=I.red,l[u+1]=I.green,l[u+2]=I.blue,n&&(l[u+3]=I.alpha)):(l.writeUInt16BE(I.red,u),l.writeUInt16BE(I.green,u+2),l.writeUInt16BE(I.blue,u+4),n&&l.writeUInt16BE(I.alpha,u+6));break;case gn.COLORTYPE_ALPHA:case gn.COLORTYPE_GRAYSCALE:{let y=(I.red+I.green+I.blue)/3;i.bitDepth===8?(l[u]=y,n&&(l[u+1]=I.alpha)):(l.writeUInt16BE(y,u),n&&l.writeUInt16BE(I.alpha,u+2));break}default:throw new Error("unrecognised color Type "+i.colorType)}d+=a,u+=c}return l}});var k7=oe((ZEe,v7)=>{"use strict";var b7=bb();function cse(r,e,t,i,n){for(let s=0;s<t;s++)i[n+s]=r[e+s]}function lse(r,e,t){let i=0,n=e+t;for(let s=e;s<n;s++)i+=Math.abs(r[s]);return i}function dse(r,e,t,i,n,s){for(let o=0;o<t;o++){let a=o>=s?r[e+o-s]:0,c=r[e+o]-a;i[n+o]=c}}function use(r,e,t,i){let n=0;for(let s=0;s<t;s++){let o=s>=i?r[e+s-i]:0,a=r[e+s]-o;n+=Math.abs(a)}return n}function fse(r,e,t,i,n){for(let s=0;s<t;s++){let o=e>0?r[e+s-t]:0,a=r[e+s]-o;i[n+s]=a}}function Ase(r,e,t){let i=0,n=e+t;for(let s=e;s<n;s++){let o=e>0?r[s-t]:0,a=r[s]-o;i+=Math.abs(a)}return i}function hse(r,e,t,i,n,s){for(let o=0;o<t;o++){let a=o>=s?r[e+o-s]:0,c=e>0?r[e+o-t]:0,l=r[e+o]-(a+c>>1);i[n+o]=l}}function gse(r,e,t,i){let n=0;for(let s=0;s<t;s++){let o=s>=i?r[e+s-i]:0,a=e>0?r[e+s-t]:0,c=r[e+s]-(o+a>>1);n+=Math.abs(c)}return n}function pse(r,e,t,i,n,s){for(let o=0;o<t;o++){let a=o>=s?r[e+o-s]:0,c=e>0?r[e+o-t]:0,l=e>0&&o>=s?r[e+o-(t+s)]:0,d=r[e+o]-b7(a,c,l);i[n+o]=d}}function mse(r,e,t,i){let n=0;for(let s=0;s<t;s++){let o=s>=i?r[e+s-i]:0,a=e>0?r[e+s-t]:0,c=e>0&&s>=i?r[e+s-(t+i)]:0,l=r[e+s]-b7(o,a,c);n+=Math.abs(l)}return n}var yse={0:cse,1:dse,2:fse,3:hse,4:pse},Ise={0:lse,1:use,2:Ase,3:gse,4:mse};v7.exports=function(r,e,t,i,n){let s;if(!("filterType"in i)||i.filterType===-1)s=[0,1,2,3,4];else if(typeof i.filterType=="number")s=[i.filterType];else throw new Error("unrecognised filter types");i.bitDepth===16&&(n*=2);let o=e*n,a=0,c=0,l=Buffer.alloc((o+1)*t),d=s[0];for(let u=0;u<t;u++){if(s.length>1){let f=1/0;for(let h=0;h<s.length;h++){let g=Ise[s[h]](r,c,o,n);g<f&&(d=s[h],f=g)}}l[a]=d,a++,yse[d](r,c,o,l,a,n),a+=o,c+=o}return l}});var Tb=oe((eBe,S7)=>{"use strict";var Zr=nu(),wse=Db(),xse=B7(),Cse=k7(),Ese=wt("zlib"),Ma=S7.exports=function(r){if(this._options=r,r.deflateChunkSize=r.deflateChunkSize||32*1024,r.deflateLevel=r.deflateLevel!=null?r.deflateLevel:9,r.deflateStrategy=r.deflateStrategy!=null?r.deflateStrategy:3,r.inputHasAlpha=r.inputHasAlpha!=null?r.inputHasAlpha:!0,r.deflateFactory=r.deflateFactory||Ese.createDeflate,r.bitDepth=r.bitDepth||8,r.colorType=typeof r.colorType=="number"?r.colorType:Zr.COLORTYPE_COLOR_ALPHA,r.inputColorType=typeof r.inputColorType=="number"?r.inputColorType:Zr.COLORTYPE_COLOR_ALPHA,[Zr.COLORTYPE_GRAYSCALE,Zr.COLORTYPE_COLOR,Zr.COLORTYPE_COLOR_ALPHA,Zr.COLORTYPE_ALPHA].indexOf(r.colorType)===-1)throw new Error("option color type:"+r.colorType+" is not supported at present");if([Zr.COLORTYPE_GRAYSCALE,Zr.COLORTYPE_COLOR,Zr.COLORTYPE_COLOR_ALPHA,Zr.COLORTYPE_ALPHA].indexOf(r.inputColorType)===-1)throw new Error("option input color type:"+r.inputColorType+" is not supported at present");if(r.bitDepth!==8&&r.bitDepth!==16)throw new Error("option bit depth:"+r.bitDepth+" is not supported at present")};Ma.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}};Ma.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())};Ma.prototype.filterData=function(r,e,t){let i=xse(r,e,t,this._options),n=Zr.COLORTYPE_TO_BPP_MAP[this._options.colorType];return Cse(i,e,t,this._options,n)};Ma.prototype._packChunk=function(r,e){let t=e?e.length:0,i=Buffer.alloc(t+12);return i.writeUInt32BE(t,0),i.writeUInt32BE(r,4),e&&e.copy(i,8),i.writeInt32BE(wse.crc32(i.slice(4,i.length-4)),i.length-4),i};Ma.prototype.packGAMA=function(r){let e=Buffer.alloc(4);return e.writeUInt32BE(Math.floor(r*Zr.GAMMA_DIVISION),0),this._packChunk(Zr.TYPE_gAMA,e)};Ma.prototype.packIHDR=function(r,e){let t=Buffer.alloc(13);return t.writeUInt32BE(r,0),t.writeUInt32BE(e,4),t[8]=this._options.bitDepth,t[9]=this._options.colorType,t[10]=0,t[11]=0,t[12]=0,this._packChunk(Zr.TYPE_IHDR,t)};Ma.prototype.packIDAT=function(r){return this._packChunk(Zr.TYPE_IDAT,r)};Ma.prototype.packIEND=function(){return this._packChunk(Zr.TYPE_IEND,null)}});var F7=oe((tBe,_7)=>{"use strict";var Bse=wt("util"),D7=wt("stream"),bse=nu(),vse=Tb(),Q7=_7.exports=function(r){D7.call(this);let e=r||{};this._packer=new vse(e),this._deflate=this._packer.createDeflate(),this.readable=!0};Bse.inherits(Q7,D7);Q7.prototype.pack=function(r,e,t,i){this.emit("data",Buffer.from(bse.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(e,t)),i&&this.emit("data",this._packer.packGAMA(i));let n=this._packer.filterData(r,e,t);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",function(s){this.emit("data",this._packer.packIDAT(s))}.bind(this)),this._deflate.on("end",function(){this.emit("data",this._packer.packIEND()),this.emit("end")}.bind(this)),this._deflate.end(n)}});var q7=oe((JA,N7)=>{"use strict";var P7=wt("assert").ok,su=wt("zlib"),kse=wt("util"),T7=wt("buffer").kMaxLength;function rl(r){if(!(this instanceof rl))return new rl(r);r&&r.chunkSize<su.Z_MIN_CHUNK&&(r.chunkSize=su.Z_MIN_CHUNK),su.Inflate.call(this,r),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,r&&r.maxLength!=null&&(this._maxLength=r.maxLength)}function Sse(r){return new rl(r)}function U7(r,e){e&&process.nextTick(e),r._handle&&(r._handle.close(),r._handle=null)}rl.prototype._processChunk=function(r,e,t){if(typeof t=="function")return su.Inflate._processChunk.call(this,r,e,t);let i=this,n=r&&r.length,s=this._chunkSize-this._offset,o=this._maxLength,a=0,c=[],l=0,d;this.on("error",function(g){d=g});function u(g,p){if(i._hadError)return;let I=s-p;if(P7(I>=0,"have should not go down"),I>0){let y=i._buffer.slice(i._offset,i._offset+I);if(i._offset+=I,y.length>o&&(y=y.slice(0,o)),c.push(y),l+=y.length,o-=y.length,o===0)return!1}return(p===0||i._offset>=i._chunkSize)&&(s=i._chunkSize,i._offset=0,i._buffer=Buffer.allocUnsafe(i._chunkSize)),p===0?(a+=n-g,n=g,!0):!1}P7(this._handle,"zlib binding closed");let f;do f=this._handle.writeSync(e,r,a,n,this._buffer,this._offset,s),f=f||this._writeState;while(!this._hadError&&u(f[0],f[1]));if(this._hadError)throw d;if(l>=T7)throw U7(this),new RangeError("Cannot create final Buffer. It would be larger than 0x"+T7.toString(16)+" bytes");let h=Buffer.concat(c,l);return U7(this),h};kse.inherits(rl,su.Inflate);function Dse(r,e){if(typeof e=="string"&&(e=Buffer.from(e)),!(e instanceof Buffer))throw new TypeError("Not a string or buffer");let t=r._finishFlushFlag;return t==null&&(t=su.Z_FINISH),r._processChunk(e,t)}function R7(r,e){return Dse(new rl(e),r)}N7.exports=JA=R7;JA.Inflate=rl;JA.createInflate=Sse;JA.inflateSync=R7});var Ub=oe((rBe,M7)=>{"use strict";var O7=M7.exports=function(r){this._buffer=r,this._reads=[]};O7.prototype.read=function(r,e){this._reads.push({length:Math.abs(r),allowLess:r<0,func:e})};O7.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let r=this._reads[0];if(this._buffer.length&&(this._buffer.length>=r.length||r.allowLess)){this._reads.shift();let e=this._buffer;this._buffer=e.slice(r.length),r.func.call(this,e.slice(0,r.length))}else break}if(this._reads.length>0)return new Error("There are some read requests waitng on finished stream");if(this._buffer.length>0)return new Error("unrecognised content at end of stream")}});var H7=oe(L7=>{"use strict";var Qse=Ub(),_se=vb();L7.process=function(r,e){let t=[],i=new Qse(r);return new _se(e,{read:i.read.bind(i),write:function(s){t.push(s)},complete:function(){}}).start(),i.process(),Buffer.concat(t)}});var J7=oe((nBe,z7)=>{"use strict";var K7=!0,G7=wt("zlib"),Fse=q7();G7.deflateSync||(K7=!1);var Pse=Ub(),Tse=H7(),Use=Qb(),Rse=_b(),Nse=Fb();z7.exports=function(r,e){if(!K7)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let t;function i(b){t=b}let n;function s(b){n=b}function o(b){n.transColor=b}function a(b){n.palette=b}function c(){n.alpha=!0}let l;function d(b){l=b}let u=[];function f(b){u.push(b)}let h=new Pse(r);if(new Use(e,{read:h.read.bind(h),error:i,metadata:s,gamma:d,palette:a,transColor:o,inflateData:f,simpleTransparency:c}).start(),h.process(),t)throw t;let p=Buffer.concat(u);u.length=0;let I;if(n.interlace)I=G7.inflateSync(p);else{let x=((n.width*n.bpp*n.depth+7>>3)+1)*n.height;I=Fse(p,{chunkSize:x,maxLength:x})}if(p=null,!I||!I.length)throw new Error("bad png - invalid inflate data response");let y=Tse.process(I,n);p=null;let w=Rse.dataToBitMap(y,n);y=null;let C=Nse(w,n);return n.data=C,n.gamma=l||0,n}});var Y7=oe((sBe,V7)=>{"use strict";var j7=!0,$7=wt("zlib");$7.deflateSync||(j7=!1);var qse=nu(),Ose=Tb();V7.exports=function(r,e){if(!j7)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let t=e||{},i=new Ose(t),n=[];n.push(Buffer.from(qse.PNG_SIGNATURE)),n.push(i.packIHDR(r.width,r.height)),r.gamma&&n.push(i.packGAMA(r.gamma));let s=i.filterData(r.data,r.width,r.height),o=$7.deflateSync(s,i.getDeflateOptions());if(s=null,!o||!o.length)throw new Error("bad png - invalid compressed data response");return n.push(i.packIDAT(o)),n.push(i.packIEND()),Buffer.concat(n)}});var W7=oe(Rb=>{"use strict";var Mse=J7(),Lse=Y7();Rb.read=function(r,e){return Mse(r,e||{})};Rb.write=function(r,e){return Lse(r,e)}});var eq=oe(Z7=>{"use strict";var Hse=wt("util"),X7=wt("stream"),Kse=C7(),Gse=F7(),zse=W7(),fi=Z7.PNG=function(r){X7.call(this),r=r||{},this.width=r.width|0,this.height=r.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,r.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new Kse(r),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",function(e){this.data=e,this.emit("parsed",e)}.bind(this)),this._packer=new Gse(r),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};Hse.inherits(fi,X7);fi.sync=zse;fi.prototype.pack=function(){return!this.data||!this.data.length?(this.emit("error","No data provided"),this):(process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this)};fi.prototype.parse=function(r,e){if(e){let t,i;t=function(n){this.removeListener("error",i),this.data=n,e(null,this)}.bind(this),i=function(n){this.removeListener("parsed",t),e(n,null)}.bind(this),this.once("parsed",t),this.once("error",i)}return this.end(r),this};fi.prototype.write=function(r){return this._parser.write(r),!0};fi.prototype.end=function(r){this._parser.end(r)};fi.prototype._metadata=function(r){this.width=r.width,this.height=r.height,this.emit("metadata",r)};fi.prototype._gamma=function(r){this.gamma=r};fi.prototype._handleClose=function(){!this._parser.writable&&!this._packer.readable&&this.emit("close")};fi.bitblt=function(r,e,t,i,n,s,o,a){if(t|=0,i|=0,n|=0,s|=0,o|=0,a|=0,t>r.width||i>r.height||t+n>r.width||i+s>r.height)throw new Error("bitblt reading outside image");if(o>e.width||a>e.height||o+n>e.width||a+s>e.height)throw new Error("bitblt writing outside image");for(let c=0;c<s;c++)r.data.copy(e.data,(a+c)*e.width+o<<2,(i+c)*r.width+t<<2,(i+c)*r.width+t+n<<2)};fi.prototype.bitblt=function(r,e,t,i,n,s,o){return fi.bitblt(this,r,e,t,i,n,s,o),this};fi.adjustGamma=function(r){if(r.gamma){for(let e=0;e<r.height;e++)for(let t=0;t<r.width;t++){let i=r.width*e+t<<2;for(let n=0;n<3;n++){let s=r.data[i+n]/255;s=Math.pow(s,1/2.2/r.gamma),r.data[i+n]=Math.round(s*255)}}r.gamma=0}};fi.prototype.adjustGamma=function(){fi.adjustGamma(this)}});var jA=oe(il=>{function tq(r){if(typeof r=="number"&&(r=r.toString()),typeof r!="string")throw new Error("Color should be defined as hex string");let e=r.slice().replace("#","").split("");if(e.length<3||e.length===5||e.length>8)throw new Error("Invalid hex color: "+r);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(i){return[i,i]}))),e.length===6&&e.push("F","F");let t=parseInt(e.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:t&255,hex:"#"+e.slice(0,6).join("")}}il.getOptions=function(e){e||(e={}),e.color||(e.color={});let t=typeof e.margin>"u"||e.margin===null||e.margin<0?4:e.margin,i=e.width&&e.width>=21?e.width:void 0,n=e.scale||4;return{width:i,scale:i?4:n,margin:t,color:{dark:tq(e.color.dark||"#000000ff"),light:tq(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}};il.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale};il.getImageWidth=function(e,t){let i=il.getScale(e,t);return Math.floor((e+t.margin*2)*i)};il.qrToImageData=function(e,t,i){let n=t.modules.size,s=t.modules.data,o=il.getScale(n,i),a=Math.floor((n+i.margin*2)*o),c=i.margin*o,l=[i.color.light,i.color.dark];for(let d=0;d<a;d++)for(let u=0;u<a;u++){let f=(d*a+u)*4,h=i.color.light;if(d>=c&&u>=c&&d<a-c&&u<a-c){let g=Math.floor((d-c)/o),p=Math.floor((u-c)/o);h=l[s[g*n+p]?1:0]}e[f++]=h.r,e[f++]=h.g,e[f++]=h.b,e[f]=h.a}}});var rq=oe(ws=>{var Jse=wt("fs"),jse=eq().PNG,Nb=jA();ws.render=function(e,t){let i=Nb.getOptions(t),n=i.rendererOpts,s=Nb.getImageWidth(e.modules.size,i);n.width=s,n.height=s;let o=new jse(n);return Nb.qrToImageData(o.data,e,i),o};ws.renderToDataURL=function(e,t,i){typeof i>"u"&&(i=t,t=void 0),ws.renderToBuffer(e,t,function(n,s){n&&i(n);let o="data:image/png;base64,";o+=s.toString("base64"),i(null,o)})};ws.renderToBuffer=function(e,t,i){typeof i>"u"&&(i=t,t=void 0);let n=ws.render(e,t),s=[];n.on("error",i),n.on("data",function(o){s.push(o)}),n.on("end",function(){i(null,Buffer.concat(s))}),n.pack()};ws.renderToFile=function(e,t,i,n){typeof n>"u"&&(n=i,i=void 0);let s=!1,o=(...c)=>{s||(s=!0,n.apply(null,c))},a=Jse.createWriteStream(e);a.on("error",o),a.on("close",o),ws.renderToFileStream(a,t,i)};ws.renderToFileStream=function(e,t,i){ws.render(t,i).pack().pipe(e)}});var iq=oe(_w=>{var $se=jA(),Vse={WW:" ",WB:"\u2584",BB:"\u2588",BW:"\u2580"},Yse={BB:" ",BW:"\u2584",WW:"\u2588",WB:"\u2580"};function Wse(r,e,t){return r&&e?t.BB:r&&!e?t.BW:!r&&e?t.WB:t.WW}_w.render=function(r,e,t){let i=$se.getOptions(e),n=Vse;(i.color.dark.hex==="#ffffff"||i.color.light.hex==="#000000")&&(n=Yse);let s=r.modules.size,o=r.modules.data,a="",c=Array(s+i.margin*2+1).join(n.WW);c=Array(i.margin/2+1).join(c+` -`);let l=Array(i.margin+1).join(n.WW);a+=c;for(let d=0;d<s;d+=2){a+=l;for(let u=0;u<s;u++){let f=o[d*s+u],h=o[(d+1)*s+u];a+=Wse(f,h,n)}a+=l+` -`}return a+=c.slice(0,-1),typeof t=="function"&&t(null,a),a};_w.renderToFile=function(e,t,i,n){typeof n>"u"&&(n=i,i=void 0);let s=wt("fs"),o=_w.render(t,i);s.writeFile(e,o,n)}});var sq=oe(nq=>{nq.render=function(r,e,t){let i=r.modules.size,n=r.modules.data,s="\x1B[40m \x1B[0m",o="\x1B[47m \x1B[0m",a="",c=Array(i+3).join(o),l=Array(2).join(o);a+=c+` +`);let o=Roe(e,t,n),a=Xw.getSymbolSize(e),c=new boe(a);return _oe(c,e),Foe(c),Poe(c,e),W2(c,t,0),e>=7&&Toe(c,e),Uoe(c,o),isNaN(i)&&(i=X2.getBestMask(c,W2.bind(null,c,t))),X2.applyMask(i,c),W2(c,t,i),{modules:c,version:e,errorCorrectionLevel:t,maskPattern:i,segments:n}}xq.create=function(e,t){if(typeof e>"u"||e==="")throw new Error("No input text");let i=V2.M,n,s;return typeof t<"u"&&(i=V2.from(t.errorCorrectionLevel,V2.M),n=Ww.from(t.version),s=X2.from(t.maskPattern),t.toSJISFunc&&Xw.setToSJISFunction(t.toSJISFunc)),qoe(e,n,i,s)}});var tv=oe(($1e,Eq)=>{"use strict";var Ooe=wt("util"),Cq=wt("stream"),Nn=Eq.exports=function(){Cq.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};Ooe.inherits(Nn,Cq);Nn.prototype.read=function(r,e){this._reads.push({length:Math.abs(r),allowLess:r<0,func:e}),process.nextTick(function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit("drain"))}.bind(this))};Nn.prototype.write=function(r,e){if(!this.writable)return this.emit("error",new Error("Stream not writable")),!1;let t;return Buffer.isBuffer(r)?t=r:t=Buffer.from(r,e||this._encoding),this._buffers.push(t),this._buffered+=t.length,this._process(),this._reads&&this._reads.length===0&&(this._paused=!0),this.writable&&!this._paused};Nn.prototype.end=function(r,e){r&&this.write(r,e),this.writable=!1,this._buffers&&(this._buffers.length===0?this._end():(this._buffers.push(null),this._process()))};Nn.prototype.destroySoon=Nn.prototype.end;Nn.prototype._end=function(){this._reads.length>0&&this.emit("error",new Error("Unexpected end of input")),this.destroy()};Nn.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit("close"))};Nn.prototype._processReadAllowingLess=function(r){this._reads.shift();let e=this._buffers[0];e.length>r.length?(this._buffered-=r.length,this._buffers[0]=e.slice(r.length),r.func.call(this,e.slice(0,r.length))):(this._buffered-=e.length,this._buffers.shift(),r.func.call(this,e))};Nn.prototype._processRead=function(r){this._reads.shift();let e=0,t=0,i=Buffer.alloc(r.length);for(;e<r.length;){let n=this._buffers[t++],s=Math.min(n.length,r.length-e);n.copy(i,e,0,s),e+=s,s!==n.length&&(this._buffers[--t]=n.slice(s))}t>0&&this._buffers.splice(0,t),this._buffered-=r.length,r.func.call(this,i)};Nn.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let r=this._reads[0];if(r.allowLess)this._processReadAllowingLess(r);else if(this._buffered>=r.length)this._processRead(r);else break}this._buffers&&!this.writable&&this._end()}catch(r){this.emit("error",r)}}});var iv=oe(rv=>{"use strict";var Ya=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];rv.getImagePasses=function(r,e){let t=[],i=r%8,n=e%8,s=(r-i)/8,o=(e-n)/8;for(let a=0;a<Ya.length;a++){let c=Ya[a],l=s*c.x.length,d=o*c.y.length;for(let u=0;u<c.x.length&&c.x[u]<i;u++)l++;for(let u=0;u<c.y.length&&c.y[u]<n;u++)d++;l>0&&d>0&&t.push({width:l,height:d,index:a})}return t};rv.getInterlaceIterator=function(r){return function(e,t,i){let n=e%Ya[i].x.length,s=(e-n)/Ya[i].x.length*8+Ya[i].x[n],o=t%Ya[i].y.length,a=(t-o)/Ya[i].y.length*8+Ya[i].y[o];return s*4+a*r*4}}});var nv=oe((Y1e,Bq)=>{"use strict";Bq.exports=function(e,t,i){let n=e+t-i,s=Math.abs(n-e),o=Math.abs(n-t),a=Math.abs(n-i);return s<=o&&s<=a?e:o<=a?t:i}});var sv=oe((W1e,vq)=>{"use strict";var Moe=iv(),Loe=nv();function bq(r,e,t){let i=r*e;return t!==8&&(i=Math.ceil(i/(8/t))),i}var hu=vq.exports=function(r,e){let t=r.width,i=r.height,n=r.interlace,s=r.bpp,o=r.depth;if(this.read=e.read,this.write=e.write,this.complete=e.complete,this._imageIndex=0,this._images=[],n){let a=Moe.getImagePasses(t,i);for(let c=0;c<a.length;c++)this._images.push({byteWidth:bq(a[c].width,s,o),height:a[c].height,lineIndex:0})}else this._images.push({byteWidth:bq(t,s,o),height:i,lineIndex:0});o===8?this._xComparison=s:o===16?this._xComparison=s*2:this._xComparison=1};hu.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))};hu.prototype._unFilterType1=function(r,e,t){let i=this._xComparison,n=i-1;for(let s=0;s<t;s++){let o=r[1+s],a=s>n?e[s-i]:0;e[s]=o+a}};hu.prototype._unFilterType2=function(r,e,t){let i=this._lastLine;for(let n=0;n<t;n++){let s=r[1+n],o=i?i[n]:0;e[n]=s+o}};hu.prototype._unFilterType3=function(r,e,t){let i=this._xComparison,n=i-1,s=this._lastLine;for(let o=0;o<t;o++){let a=r[1+o],c=s?s[o]:0,l=o>n?e[o-i]:0,d=Math.floor((l+c)/2);e[o]=a+d}};hu.prototype._unFilterType4=function(r,e,t){let i=this._xComparison,n=i-1,s=this._lastLine;for(let o=0;o<t;o++){let a=r[1+o],c=s?s[o]:0,l=o>n?e[o-i]:0,d=o>n&&s?s[o-i]:0,u=Loe(l,c,d);e[o]=a+u}};hu.prototype._reverseFilterLine=function(r){let e=r[0],t,i=this._images[this._imageIndex],n=i.byteWidth;if(e===0)t=r.slice(1,n+1);else switch(t=Buffer.alloc(n),e){case 1:this._unFilterType1(r,t,n);break;case 2:this._unFilterType2(r,t,n);break;case 3:this._unFilterType3(r,t,n);break;case 4:this._unFilterType4(r,t,n);break;default:throw new Error("Unrecognised filter type - "+e)}this.write(t),i.lineIndex++,i.lineIndex>=i.height?(this._lastLine=null,this._imageIndex++,i=this._images[this._imageIndex]):this._lastLine=t,i?this.read(i.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())}});var Dq=oe((X1e,Sq)=>{"use strict";var Hoe=wt("util"),kq=tv(),Koe=sv(),Goe=Sq.exports=function(r){kq.call(this);let e=[],t=this;this._filter=new Koe(r,{read:this.read.bind(this),write:function(i){e.push(i)},complete:function(){t.emit("complete",Buffer.concat(e))}}),this._filter.start()};Hoe.inherits(Goe,kq)});var gu=oe((Z1e,Qq)=>{"use strict";Qq.exports={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5}});var cv=oe((ebe,_q)=>{"use strict";var ov=[];(function(){for(let r=0;r<256;r++){let e=r;for(let t=0;t<8;t++)e&1?e=3988292384^e>>>1:e=e>>>1;ov[r]=e}})();var av=_q.exports=function(){this._crc=-1};av.prototype.write=function(r){for(let e=0;e<r.length;e++)this._crc=ov[(this._crc^r[e])&255]^this._crc>>>8;return!0};av.prototype.crc32=function(){return this._crc^-1};av.crc32=function(r){let e=-1;for(let t=0;t<r.length;t++)e=ov[(e^r[t])&255]^e>>>8;return e^-1}});var lv=oe((tbe,Fq)=>{"use strict";var Ir=gu(),zoe=cv(),Qr=Fq.exports=function(r,e){this._options=r,r.checkCRC=r.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[Ir.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[Ir.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[Ir.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[Ir.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[Ir.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[Ir.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=e.read,this.error=e.error,this.metadata=e.metadata,this.gamma=e.gamma,this.transColor=e.transColor,this.palette=e.palette,this.parsed=e.parsed,this.inflateData=e.inflateData,this.finished=e.finished,this.simpleTransparency=e.simpleTransparency,this.headersFinished=e.headersFinished||function(){}};Qr.prototype.start=function(){this.read(Ir.PNG_SIGNATURE.length,this._parseSignature.bind(this))};Qr.prototype._parseSignature=function(r){let e=Ir.PNG_SIGNATURE;for(let t=0;t<e.length;t++)if(r[t]!==e[t]){this.error(new Error("Invalid file signature"));return}this.read(8,this._parseChunkBegin.bind(this))};Qr.prototype._parseChunkBegin=function(r){let e=r.readUInt32BE(0),t=r.readUInt32BE(4),i="";for(let s=4;s<8;s++)i+=String.fromCharCode(r[s]);let n=!!(r[4]&32);if(!this._hasIHDR&&t!==Ir.TYPE_IHDR){this.error(new Error("Expected IHDR on beggining"));return}if(this._crc=new zoe,this._crc.write(Buffer.from(i)),this._chunks[t])return this._chunks[t](e);if(!n){this.error(new Error("Unsupported critical chunk type "+i));return}this.read(e+4,this._skipChunk.bind(this))};Qr.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))};Qr.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))};Qr.prototype._parseChunkEnd=function(r){let e=r.readInt32BE(0),t=this._crc.crc32();if(this._options.checkCRC&&t!==e){this.error(new Error("Crc error - "+e+" - "+t));return}this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))};Qr.prototype._handleIHDR=function(r){this.read(r,this._parseIHDR.bind(this))};Qr.prototype._parseIHDR=function(r){this._crc.write(r);let e=r.readUInt32BE(0),t=r.readUInt32BE(4),i=r[8],n=r[9],s=r[10],o=r[11],a=r[12];if(i!==8&&i!==4&&i!==2&&i!==1&&i!==16){this.error(new Error("Unsupported bit depth "+i));return}if(!(n in Ir.COLORTYPE_TO_BPP_MAP)){this.error(new Error("Unsupported color type"));return}if(s!==0){this.error(new Error("Unsupported compression method"));return}if(o!==0){this.error(new Error("Unsupported filter method"));return}if(a!==0&&a!==1){this.error(new Error("Unsupported interlace method"));return}this._colorType=n;let c=Ir.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:e,height:t,depth:i,interlace:!!a,palette:!!(n&Ir.COLORTYPE_PALETTE),color:!!(n&Ir.COLORTYPE_COLOR),alpha:!!(n&Ir.COLORTYPE_ALPHA),bpp:c,colorType:n}),this._handleChunkEnd()};Qr.prototype._handlePLTE=function(r){this.read(r,this._parsePLTE.bind(this))};Qr.prototype._parsePLTE=function(r){this._crc.write(r);let e=Math.floor(r.length/3);for(let t=0;t<e;t++)this._palette.push([r[t*3],r[t*3+1],r[t*3+2],255]);this.palette(this._palette),this._handleChunkEnd()};Qr.prototype._handleTRNS=function(r){this.simpleTransparency(),this.read(r,this._parseTRNS.bind(this))};Qr.prototype._parseTRNS=function(r){if(this._crc.write(r),this._colorType===Ir.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(new Error("Transparency chunk must be after palette"));return}if(r.length>this._palette.length){this.error(new Error("More transparent colors than palette size"));return}for(let e=0;e<r.length;e++)this._palette[e][3]=r[e];this.palette(this._palette)}this._colorType===Ir.COLORTYPE_GRAYSCALE&&this.transColor([r.readUInt16BE(0)]),this._colorType===Ir.COLORTYPE_COLOR&&this.transColor([r.readUInt16BE(0),r.readUInt16BE(2),r.readUInt16BE(4)]),this._handleChunkEnd()};Qr.prototype._handleGAMA=function(r){this.read(r,this._parseGAMA.bind(this))};Qr.prototype._parseGAMA=function(r){this._crc.write(r),this.gamma(r.readUInt32BE(0)/Ir.GAMMA_DIVISION),this._handleChunkEnd()};Qr.prototype._handleIDAT=function(r){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-r,this._parseIDAT.bind(this,r))};Qr.prototype._parseIDAT=function(r,e){if(this._crc.write(e),this._colorType===Ir.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw new Error("Expected palette not found");this.inflateData(e);let t=r-e.length;t>0?this._handleIDAT(t):this._handleChunkEnd()};Qr.prototype._handleIEND=function(r){this.read(r,this._parseIEND.bind(this))};Qr.prototype._parseIEND=function(r){this._crc.write(r),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()}});var dv=oe(Tq=>{"use strict";var Pq=iv(),Joe=[function(){},function(r,e,t,i){if(i===e.length)throw new Error("Ran out of data");let n=e[i];r[t]=n,r[t+1]=n,r[t+2]=n,r[t+3]=255},function(r,e,t,i){if(i+1>=e.length)throw new Error("Ran out of data");let n=e[i];r[t]=n,r[t+1]=n,r[t+2]=n,r[t+3]=e[i+1]},function(r,e,t,i){if(i+2>=e.length)throw new Error("Ran out of data");r[t]=e[i],r[t+1]=e[i+1],r[t+2]=e[i+2],r[t+3]=255},function(r,e,t,i){if(i+3>=e.length)throw new Error("Ran out of data");r[t]=e[i],r[t+1]=e[i+1],r[t+2]=e[i+2],r[t+3]=e[i+3]}],joe=[function(){},function(r,e,t,i){let n=e[0];r[t]=n,r[t+1]=n,r[t+2]=n,r[t+3]=i},function(r,e,t){let i=e[0];r[t]=i,r[t+1]=i,r[t+2]=i,r[t+3]=e[1]},function(r,e,t,i){r[t]=e[0],r[t+1]=e[1],r[t+2]=e[2],r[t+3]=i},function(r,e,t){r[t]=e[0],r[t+1]=e[1],r[t+2]=e[2],r[t+3]=e[3]}];function $oe(r,e){let t=[],i=0;function n(){if(i===r.length)throw new Error("Ran out of data");let s=r[i];i++;let o,a,c,l,d,u,f,h;switch(e){default:throw new Error("unrecognised depth");case 16:f=r[i],i++,t.push((s<<8)+f);break;case 4:f=s&15,h=s>>4,t.push(h,f);break;case 2:d=s&3,u=s>>2&3,f=s>>4&3,h=s>>6&3,t.push(h,f,u,d);break;case 1:o=s&1,a=s>>1&1,c=s>>2&1,l=s>>3&1,d=s>>4&1,u=s>>5&1,f=s>>6&1,h=s>>7&1,t.push(h,f,u,d,l,c,a,o);break}}return{get:function(s){for(;t.length<s;)n();let o=t.slice(0,s);return t=t.slice(s),o},resetAfterLine:function(){t.length=0},end:function(){if(i!==r.length)throw new Error("extra data found")}}}function Voe(r,e,t,i,n,s){let o=r.width,a=r.height,c=r.index;for(let l=0;l<a;l++)for(let d=0;d<o;d++){let u=t(d,l,c);Joe[i](e,n,u,s),s+=i}return s}function Yoe(r,e,t,i,n,s){let o=r.width,a=r.height,c=r.index;for(let l=0;l<a;l++){for(let d=0;d<o;d++){let u=n.get(i),f=t(d,l,c);joe[i](e,u,f,s)}n.resetAfterLine()}}Tq.dataToBitMap=function(r,e){let t=e.width,i=e.height,n=e.depth,s=e.bpp,o=e.interlace,a;n!==8&&(a=$oe(r,n));let c;n<=8?c=Buffer.alloc(t*i*4):c=new Uint16Array(t*i*4);let l=Math.pow(2,n)-1,d=0,u,f;if(o)u=Pq.getImagePasses(t,i),f=Pq.getInterlaceIterator(t,i);else{let h=0;f=function(){let g=h;return h+=4,g},u=[{width:t,height:i}]}for(let h=0;h<u.length;h++)n===8?d=Voe(u[h],c,f,s,r,d):Yoe(u[h],c,f,s,a,l);if(n===8){if(d!==r.length)throw new Error("extra data found")}else a.end();return c}});var uv=oe((ibe,Uq)=>{"use strict";function Woe(r,e,t,i,n){let s=0;for(let o=0;o<i;o++)for(let a=0;a<t;a++){let c=n[r[s]];if(!c)throw new Error("index "+r[s]+" not in palette");for(let l=0;l<4;l++)e[s+l]=c[l];s+=4}}function Xoe(r,e,t,i,n){let s=0;for(let o=0;o<i;o++)for(let a=0;a<t;a++){let c=!1;if(n.length===1?n[0]===r[s]&&(c=!0):n[0]===r[s]&&n[1]===r[s+1]&&n[2]===r[s+2]&&(c=!0),c)for(let l=0;l<4;l++)e[s+l]=0;s+=4}}function Zoe(r,e,t,i,n){let s=255,o=Math.pow(2,n)-1,a=0;for(let c=0;c<i;c++)for(let l=0;l<t;l++){for(let d=0;d<4;d++)e[a+d]=Math.floor(r[a+d]*s/o+.5);a+=4}}Uq.exports=function(r,e){let t=e.depth,i=e.width,n=e.height,s=e.colorType,o=e.transColor,a=e.palette,c=r;return s===3?Woe(r,c,i,n,a):(o&&Xoe(r,c,i,n,o),t!==8&&(t===16&&(c=Buffer.alloc(i*n*4)),Zoe(r,c,i,n,t))),c}});var qq=oe((nbe,Nq)=>{"use strict";var eae=wt("util"),fv=wt("zlib"),Rq=tv(),tae=Dq(),rae=lv(),iae=dv(),nae=uv(),xs=Nq.exports=function(r){Rq.call(this),this._parser=new rae(r,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,"gamma"),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=r,this.writable=!0,this._parser.start()};eae.inherits(xs,Rq);xs.prototype._handleError=function(r){this.emit("error",r),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on("error",function(){})),this.errord=!0};xs.prototype._inflateData=function(r){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=fv.createInflate(),this._inflate.on("error",this.emit.bind(this,"error")),this._filter.on("complete",this._complete.bind(this)),this._inflate.pipe(this._filter);else{let t=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,i=Math.max(t,fv.Z_MIN_CHUNK);this._inflate=fv.createInflate({chunkSize:i});let n=t,s=this.emit.bind(this,"error");this._inflate.on("error",function(a){n&&s(a)}),this._filter.on("complete",this._complete.bind(this));let o=this._filter.write.bind(this._filter);this._inflate.on("data",function(a){n&&(a.length>n&&(a=a.slice(0,n)),n-=a.length,o(a))}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(r)};xs.prototype._handleMetaData=function(r){this._metaData=r,this._bitmapInfo=Object.create(r),this._filter=new tae(this._bitmapInfo)};xs.prototype._handleTransColor=function(r){this._bitmapInfo.transColor=r};xs.prototype._handlePalette=function(r){this._bitmapInfo.palette=r};xs.prototype._simpleTransparency=function(){this._metaData.alpha=!0};xs.prototype._headersFinished=function(){this.emit("metadata",this._metaData)};xs.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit("error","No Inflate block"))};xs.prototype._complete=function(r){if(this.errord)return;let e;try{let t=iae.dataToBitMap(r,this._bitmapInfo);e=nae(t,this._bitmapInfo),t=null}catch(t){this._handleError(t);return}this.emit("parsed",e)}});var Mq=oe((sbe,Oq)=>{"use strict";var pn=gu();Oq.exports=function(r,e,t,i){let n=[pn.COLORTYPE_COLOR_ALPHA,pn.COLORTYPE_ALPHA].indexOf(i.colorType)!==-1;if(i.colorType===i.inputColorType){let g=(function(){let p=new ArrayBuffer(2);return new DataView(p).setInt16(0,256,!0),new Int16Array(p)[0]!==256})();if(i.bitDepth===8||i.bitDepth===16&&g)return r}let s=i.bitDepth!==16?r:new Uint16Array(r.buffer),o=255,a=pn.COLORTYPE_TO_BPP_MAP[i.inputColorType];a===4&&!i.inputHasAlpha&&(a=3);let c=pn.COLORTYPE_TO_BPP_MAP[i.colorType];i.bitDepth===16&&(o=65535,c*=2);let l=Buffer.alloc(e*t*c),d=0,u=0,f=i.bgColor||{};f.red===void 0&&(f.red=o),f.green===void 0&&(f.green=o),f.blue===void 0&&(f.blue=o);function h(){let g,p,I,m=o;switch(i.inputColorType){case pn.COLORTYPE_COLOR_ALPHA:m=s[d+3],g=s[d],p=s[d+1],I=s[d+2];break;case pn.COLORTYPE_COLOR:g=s[d],p=s[d+1],I=s[d+2];break;case pn.COLORTYPE_ALPHA:m=s[d+1],g=s[d],p=g,I=g;break;case pn.COLORTYPE_GRAYSCALE:g=s[d],p=g,I=g;break;default:throw new Error("input color type:"+i.inputColorType+" is not supported at present")}return i.inputHasAlpha&&(n||(m/=o,g=Math.min(Math.max(Math.round((1-m)*f.red+m*g),0),o),p=Math.min(Math.max(Math.round((1-m)*f.green+m*p),0),o),I=Math.min(Math.max(Math.round((1-m)*f.blue+m*I),0),o))),{red:g,green:p,blue:I,alpha:m}}for(let g=0;g<t;g++)for(let p=0;p<e;p++){let I=h(s,d);switch(i.colorType){case pn.COLORTYPE_COLOR_ALPHA:case pn.COLORTYPE_COLOR:i.bitDepth===8?(l[u]=I.red,l[u+1]=I.green,l[u+2]=I.blue,n&&(l[u+3]=I.alpha)):(l.writeUInt16BE(I.red,u),l.writeUInt16BE(I.green,u+2),l.writeUInt16BE(I.blue,u+4),n&&l.writeUInt16BE(I.alpha,u+6));break;case pn.COLORTYPE_ALPHA:case pn.COLORTYPE_GRAYSCALE:{let m=(I.red+I.green+I.blue)/3;i.bitDepth===8?(l[u]=m,n&&(l[u+1]=I.alpha)):(l.writeUInt16BE(m,u),n&&l.writeUInt16BE(I.alpha,u+2));break}default:throw new Error("unrecognised color Type "+i.colorType)}d+=a,u+=c}return l}});var Kq=oe((obe,Hq)=>{"use strict";var Lq=nv();function sae(r,e,t,i,n){for(let s=0;s<t;s++)i[n+s]=r[e+s]}function oae(r,e,t){let i=0,n=e+t;for(let s=e;s<n;s++)i+=Math.abs(r[s]);return i}function aae(r,e,t,i,n,s){for(let o=0;o<t;o++){let a=o>=s?r[e+o-s]:0,c=r[e+o]-a;i[n+o]=c}}function cae(r,e,t,i){let n=0;for(let s=0;s<t;s++){let o=s>=i?r[e+s-i]:0,a=r[e+s]-o;n+=Math.abs(a)}return n}function lae(r,e,t,i,n){for(let s=0;s<t;s++){let o=e>0?r[e+s-t]:0,a=r[e+s]-o;i[n+s]=a}}function dae(r,e,t){let i=0,n=e+t;for(let s=e;s<n;s++){let o=e>0?r[s-t]:0,a=r[s]-o;i+=Math.abs(a)}return i}function uae(r,e,t,i,n,s){for(let o=0;o<t;o++){let a=o>=s?r[e+o-s]:0,c=e>0?r[e+o-t]:0,l=r[e+o]-(a+c>>1);i[n+o]=l}}function fae(r,e,t,i){let n=0;for(let s=0;s<t;s++){let o=s>=i?r[e+s-i]:0,a=e>0?r[e+s-t]:0,c=r[e+s]-(o+a>>1);n+=Math.abs(c)}return n}function Aae(r,e,t,i,n,s){for(let o=0;o<t;o++){let a=o>=s?r[e+o-s]:0,c=e>0?r[e+o-t]:0,l=e>0&&o>=s?r[e+o-(t+s)]:0,d=r[e+o]-Lq(a,c,l);i[n+o]=d}}function hae(r,e,t,i){let n=0;for(let s=0;s<t;s++){let o=s>=i?r[e+s-i]:0,a=e>0?r[e+s-t]:0,c=e>0&&s>=i?r[e+s-(t+i)]:0,l=r[e+s]-Lq(o,a,c);n+=Math.abs(l)}return n}var gae={0:sae,1:aae,2:lae,3:uae,4:Aae},pae={0:oae,1:cae,2:dae,3:fae,4:hae};Hq.exports=function(r,e,t,i,n){let s;if(!("filterType"in i)||i.filterType===-1)s=[0,1,2,3,4];else if(typeof i.filterType=="number")s=[i.filterType];else throw new Error("unrecognised filter types");i.bitDepth===16&&(n*=2);let o=e*n,a=0,c=0,l=Buffer.alloc((o+1)*t),d=s[0];for(let u=0;u<t;u++){if(s.length>1){let f=1/0;for(let h=0;h<s.length;h++){let g=pae[s[h]](r,c,o,n);g<f&&(d=s[h],f=g)}}l[a]=d,a++,gae[d](r,c,o,l,a,n),a+=o,c+=o}return l}});var Av=oe((abe,Gq)=>{"use strict";var ti=gu(),mae=cv(),yae=Mq(),Iae=Kq(),wae=wt("zlib"),Wa=Gq.exports=function(r){if(this._options=r,r.deflateChunkSize=r.deflateChunkSize||32*1024,r.deflateLevel=r.deflateLevel!=null?r.deflateLevel:9,r.deflateStrategy=r.deflateStrategy!=null?r.deflateStrategy:3,r.inputHasAlpha=r.inputHasAlpha!=null?r.inputHasAlpha:!0,r.deflateFactory=r.deflateFactory||wae.createDeflate,r.bitDepth=r.bitDepth||8,r.colorType=typeof r.colorType=="number"?r.colorType:ti.COLORTYPE_COLOR_ALPHA,r.inputColorType=typeof r.inputColorType=="number"?r.inputColorType:ti.COLORTYPE_COLOR_ALPHA,[ti.COLORTYPE_GRAYSCALE,ti.COLORTYPE_COLOR,ti.COLORTYPE_COLOR_ALPHA,ti.COLORTYPE_ALPHA].indexOf(r.colorType)===-1)throw new Error("option color type:"+r.colorType+" is not supported at present");if([ti.COLORTYPE_GRAYSCALE,ti.COLORTYPE_COLOR,ti.COLORTYPE_COLOR_ALPHA,ti.COLORTYPE_ALPHA].indexOf(r.inputColorType)===-1)throw new Error("option input color type:"+r.inputColorType+" is not supported at present");if(r.bitDepth!==8&&r.bitDepth!==16)throw new Error("option bit depth:"+r.bitDepth+" is not supported at present")};Wa.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}};Wa.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())};Wa.prototype.filterData=function(r,e,t){let i=yae(r,e,t,this._options),n=ti.COLORTYPE_TO_BPP_MAP[this._options.colorType];return Iae(i,e,t,this._options,n)};Wa.prototype._packChunk=function(r,e){let t=e?e.length:0,i=Buffer.alloc(t+12);return i.writeUInt32BE(t,0),i.writeUInt32BE(r,4),e&&e.copy(i,8),i.writeInt32BE(mae.crc32(i.slice(4,i.length-4)),i.length-4),i};Wa.prototype.packGAMA=function(r){let e=Buffer.alloc(4);return e.writeUInt32BE(Math.floor(r*ti.GAMMA_DIVISION),0),this._packChunk(ti.TYPE_gAMA,e)};Wa.prototype.packIHDR=function(r,e){let t=Buffer.alloc(13);return t.writeUInt32BE(r,0),t.writeUInt32BE(e,4),t[8]=this._options.bitDepth,t[9]=this._options.colorType,t[10]=0,t[11]=0,t[12]=0,this._packChunk(ti.TYPE_IHDR,t)};Wa.prototype.packIDAT=function(r){return this._packChunk(ti.TYPE_IDAT,r)};Wa.prototype.packIEND=function(){return this._packChunk(ti.TYPE_IEND,null)}});var $q=oe((cbe,jq)=>{"use strict";var xae=wt("util"),zq=wt("stream"),Cae=gu(),Eae=Av(),Jq=jq.exports=function(r){zq.call(this);let e=r||{};this._packer=new Eae(e),this._deflate=this._packer.createDeflate(),this.readable=!0};xae.inherits(Jq,zq);Jq.prototype.pack=function(r,e,t,i){this.emit("data",Buffer.from(Cae.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(e,t)),i&&this.emit("data",this._packer.packGAMA(i));let n=this._packer.filterData(r,e,t);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",function(s){this.emit("data",this._packer.packIDAT(s))}.bind(this)),this._deflate.on("end",function(){this.emit("data",this._packer.packIEND()),this.emit("end")}.bind(this)),this._deflate.end(n)}});var eO=oe((n0,Zq)=>{"use strict";var Vq=wt("assert").ok,pu=wt("zlib"),Bae=wt("util"),Yq=wt("buffer").kMaxLength;function fl(r){if(!(this instanceof fl))return new fl(r);r&&r.chunkSize<pu.Z_MIN_CHUNK&&(r.chunkSize=pu.Z_MIN_CHUNK),pu.Inflate.call(this,r),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,r&&r.maxLength!=null&&(this._maxLength=r.maxLength)}function bae(r){return new fl(r)}function Wq(r,e){e&&process.nextTick(e),r._handle&&(r._handle.close(),r._handle=null)}fl.prototype._processChunk=function(r,e,t){if(typeof t=="function")return pu.Inflate._processChunk.call(this,r,e,t);let i=this,n=r&&r.length,s=this._chunkSize-this._offset,o=this._maxLength,a=0,c=[],l=0,d;this.on("error",function(g){d=g});function u(g,p){if(i._hadError)return;let I=s-p;if(Vq(I>=0,"have should not go down"),I>0){let m=i._buffer.slice(i._offset,i._offset+I);if(i._offset+=I,m.length>o&&(m=m.slice(0,o)),c.push(m),l+=m.length,o-=m.length,o===0)return!1}return(p===0||i._offset>=i._chunkSize)&&(s=i._chunkSize,i._offset=0,i._buffer=Buffer.allocUnsafe(i._chunkSize)),p===0?(a+=n-g,n=g,!0):!1}Vq(this._handle,"zlib binding closed");let f;do f=this._handle.writeSync(e,r,a,n,this._buffer,this._offset,s),f=f||this._writeState;while(!this._hadError&&u(f[0],f[1]));if(this._hadError)throw d;if(l>=Yq)throw Wq(this),new RangeError("Cannot create final Buffer. It would be larger than 0x"+Yq.toString(16)+" bytes");let h=Buffer.concat(c,l);return Wq(this),h};Bae.inherits(fl,pu.Inflate);function vae(r,e){if(typeof e=="string"&&(e=Buffer.from(e)),!(e instanceof Buffer))throw new TypeError("Not a string or buffer");let t=r._finishFlushFlag;return t==null&&(t=pu.Z_FINISH),r._processChunk(e,t)}function Xq(r,e){return vae(new fl(e),r)}Zq.exports=n0=Xq;n0.Inflate=fl;n0.createInflate=bae;n0.inflateSync=Xq});var hv=oe((lbe,rO)=>{"use strict";var tO=rO.exports=function(r){this._buffer=r,this._reads=[]};tO.prototype.read=function(r,e){this._reads.push({length:Math.abs(r),allowLess:r<0,func:e})};tO.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let r=this._reads[0];if(this._buffer.length&&(this._buffer.length>=r.length||r.allowLess)){this._reads.shift();let e=this._buffer;this._buffer=e.slice(r.length),r.func.call(this,e.slice(0,r.length))}else break}if(this._reads.length>0)return new Error("There are some read requests waitng on finished stream");if(this._buffer.length>0)return new Error("unrecognised content at end of stream")}});var nO=oe(iO=>{"use strict";var kae=hv(),Sae=sv();iO.process=function(r,e){let t=[],i=new kae(r);return new Sae(e,{read:i.read.bind(i),write:function(s){t.push(s)},complete:function(){}}).start(),i.process(),Buffer.concat(t)}});var cO=oe((ube,aO)=>{"use strict";var sO=!0,oO=wt("zlib"),Dae=eO();oO.deflateSync||(sO=!1);var Qae=hv(),_ae=nO(),Fae=lv(),Pae=dv(),Tae=uv();aO.exports=function(r,e){if(!sO)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let t;function i(C){t=C}let n;function s(C){n=C}function o(C){n.transColor=C}function a(C){n.palette=C}function c(){n.alpha=!0}let l;function d(C){l=C}let u=[];function f(C){u.push(C)}let h=new Qae(r);if(new Fae(e,{read:h.read.bind(h),error:i,metadata:s,gamma:d,palette:a,transColor:o,inflateData:f,simpleTransparency:c}).start(),h.process(),t)throw t;let p=Buffer.concat(u);u.length=0;let I;if(n.interlace)I=oO.inflateSync(p);else{let x=((n.width*n.bpp*n.depth+7>>3)+1)*n.height;I=Dae(p,{chunkSize:x,maxLength:x})}if(p=null,!I||!I.length)throw new Error("bad png - invalid inflate data response");let m=_ae.process(I,n);p=null;let w=Pae.dataToBitMap(m,n);m=null;let B=Tae(w,n);return n.data=B,n.gamma=l||0,n}});var fO=oe((fbe,uO)=>{"use strict";var lO=!0,dO=wt("zlib");dO.deflateSync||(lO=!1);var Uae=gu(),Rae=Av();uO.exports=function(r,e){if(!lO)throw new Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let t=e||{},i=new Rae(t),n=[];n.push(Buffer.from(Uae.PNG_SIGNATURE)),n.push(i.packIHDR(r.width,r.height)),r.gamma&&n.push(i.packGAMA(r.gamma));let s=i.filterData(r.data,r.width,r.height),o=dO.deflateSync(s,i.getDeflateOptions());if(s=null,!o||!o.length)throw new Error("bad png - invalid compressed data response");return n.push(i.packIDAT(o)),n.push(i.packIEND()),Buffer.concat(n)}});var AO=oe(gv=>{"use strict";var Nae=cO(),qae=fO();gv.read=function(r,e){return Nae(r,e||{})};gv.write=function(r,e){return qae(r,e)}});var pO=oe(gO=>{"use strict";var Oae=wt("util"),hO=wt("stream"),Mae=qq(),Lae=$q(),Hae=AO(),Ai=gO.PNG=function(r){hO.call(this),r=r||{},this.width=r.width|0,this.height=r.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,r.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new Mae(r),this._parser.on("error",this.emit.bind(this,"error")),this._parser.on("close",this._handleClose.bind(this)),this._parser.on("metadata",this._metadata.bind(this)),this._parser.on("gamma",this._gamma.bind(this)),this._parser.on("parsed",function(e){this.data=e,this.emit("parsed",e)}.bind(this)),this._packer=new Lae(r),this._packer.on("data",this.emit.bind(this,"data")),this._packer.on("end",this.emit.bind(this,"end")),this._parser.on("close",this._handleClose.bind(this)),this._packer.on("error",this.emit.bind(this,"error"))};Oae.inherits(Ai,hO);Ai.sync=Hae;Ai.prototype.pack=function(){return!this.data||!this.data.length?(this.emit("error","No data provided"),this):(process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this)};Ai.prototype.parse=function(r,e){if(e){let t,i;t=function(n){this.removeListener("error",i),this.data=n,e(null,this)}.bind(this),i=function(n){this.removeListener("parsed",t),e(n,null)}.bind(this),this.once("parsed",t),this.once("error",i)}return this.end(r),this};Ai.prototype.write=function(r){return this._parser.write(r),!0};Ai.prototype.end=function(r){this._parser.end(r)};Ai.prototype._metadata=function(r){this.width=r.width,this.height=r.height,this.emit("metadata",r)};Ai.prototype._gamma=function(r){this.gamma=r};Ai.prototype._handleClose=function(){!this._parser.writable&&!this._packer.readable&&this.emit("close")};Ai.bitblt=function(r,e,t,i,n,s,o,a){if(t|=0,i|=0,n|=0,s|=0,o|=0,a|=0,t>r.width||i>r.height||t+n>r.width||i+s>r.height)throw new Error("bitblt reading outside image");if(o>e.width||a>e.height||o+n>e.width||a+s>e.height)throw new Error("bitblt writing outside image");for(let c=0;c<s;c++)r.data.copy(e.data,(a+c)*e.width+o<<2,(i+c)*r.width+t<<2,(i+c)*r.width+t+n<<2)};Ai.prototype.bitblt=function(r,e,t,i,n,s,o){return Ai.bitblt(this,r,e,t,i,n,s,o),this};Ai.adjustGamma=function(r){if(r.gamma){for(let e=0;e<r.height;e++)for(let t=0;t<r.width;t++){let i=r.width*e+t<<2;for(let n=0;n<3;n++){let s=r.data[i+n]/255;s=Math.pow(s,1/2.2/r.gamma),r.data[i+n]=Math.round(s*255)}}r.gamma=0}};Ai.prototype.adjustGamma=function(){Ai.adjustGamma(this)}});var s0=oe(Al=>{function mO(r){if(typeof r=="number"&&(r=r.toString()),typeof r!="string")throw new Error("Color should be defined as hex string");let e=r.slice().replace("#","").split("");if(e.length<3||e.length===5||e.length>8)throw new Error("Invalid hex color: "+r);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(i){return[i,i]}))),e.length===6&&e.push("F","F");let t=parseInt(e.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:t&255,hex:"#"+e.slice(0,6).join("")}}Al.getOptions=function(e){e||(e={}),e.color||(e.color={});let t=typeof e.margin>"u"||e.margin===null||e.margin<0?4:e.margin,i=e.width&&e.width>=21?e.width:void 0,n=e.scale||4;return{width:i,scale:i?4:n,margin:t,color:{dark:mO(e.color.dark||"#000000ff"),light:mO(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}};Al.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale};Al.getImageWidth=function(e,t){let i=Al.getScale(e,t);return Math.floor((e+t.margin*2)*i)};Al.qrToImageData=function(e,t,i){let n=t.modules.size,s=t.modules.data,o=Al.getScale(n,i),a=Math.floor((n+i.margin*2)*o),c=i.margin*o,l=[i.color.light,i.color.dark];for(let d=0;d<a;d++)for(let u=0;u<a;u++){let f=(d*a+u)*4,h=i.color.light;if(d>=c&&u>=c&&d<a-c&&u<a-c){let g=Math.floor((d-c)/o),p=Math.floor((u-c)/o);h=l[s[g*n+p]?1:0]}e[f++]=h.r,e[f++]=h.g,e[f++]=h.b,e[f]=h.a}}});var yO=oe(Cs=>{var Kae=wt("fs"),Gae=pO().PNG,pv=s0();Cs.render=function(e,t){let i=pv.getOptions(t),n=i.rendererOpts,s=pv.getImageWidth(e.modules.size,i);n.width=s,n.height=s;let o=new Gae(n);return pv.qrToImageData(o.data,e,i),o};Cs.renderToDataURL=function(e,t,i){typeof i>"u"&&(i=t,t=void 0),Cs.renderToBuffer(e,t,function(n,s){n&&i(n);let o="data:image/png;base64,";o+=s.toString("base64"),i(null,o)})};Cs.renderToBuffer=function(e,t,i){typeof i>"u"&&(i=t,t=void 0);let n=Cs.render(e,t),s=[];n.on("error",i),n.on("data",function(o){s.push(o)}),n.on("end",function(){i(null,Buffer.concat(s))}),n.pack()};Cs.renderToFile=function(e,t,i,n){typeof n>"u"&&(n=i,i=void 0);let s=!1,o=(...c)=>{s||(s=!0,n.apply(null,c))},a=Kae.createWriteStream(e);a.on("error",o),a.on("close",o),Cs.renderToFileStream(a,t,i)};Cs.renderToFileStream=function(e,t,i){Cs.render(t,i).pack().pipe(e)}});var IO=oe(Zw=>{var zae=s0(),Jae={WW:" ",WB:"\u2584",BB:"\u2588",BW:"\u2580"},jae={BB:" ",BW:"\u2584",WW:"\u2588",WB:"\u2580"};function $ae(r,e,t){return r&&e?t.BB:r&&!e?t.BW:!r&&e?t.WB:t.WW}Zw.render=function(r,e,t){let i=zae.getOptions(e),n=Jae;(i.color.dark.hex==="#ffffff"||i.color.light.hex==="#000000")&&(n=jae);let s=r.modules.size,o=r.modules.data,a="",c=Array(s+i.margin*2+1).join(n.WW);c=Array(i.margin/2+1).join(c+` +`);let l=Array(i.margin+1).join(n.WW);a+=c;for(let d=0;d<s;d+=2){a+=l;for(let u=0;u<s;u++){let f=o[d*s+u],h=o[(d+1)*s+u];a+=$ae(f,h,n)}a+=l+` +`}return a+=c.slice(0,-1),typeof t=="function"&&t(null,a),a};Zw.renderToFile=function(e,t,i,n){typeof n>"u"&&(n=i,i=void 0);let s=wt("fs"),o=Zw.render(t,i);s.writeFile(e,o,n)}});var xO=oe(wO=>{wO.render=function(r,e,t){let i=r.modules.size,n=r.modules.data,s="\x1B[40m \x1B[0m",o="\x1B[47m \x1B[0m",a="",c=Array(i+3).join(o),l=Array(2).join(o);a+=c+` `;for(let d=0;d<i;++d){a+=o;for(let u=0;u<i;u++)a+=n[d*i+u]?s:o;a+=l+` `}return a+=c+` -`,typeof t=="function"&&t(null,a),a}});var lq=oe(cq=>{var Xse="\x1B[47m",Zse="\x1B[40m",qb="\x1B[37m",Ob="\x1B[30m",nl="\x1B[0m",eoe=Xse+Ob,toe=Zse+qb,roe=function(r,e,t){return{"00":nl+" "+r,"01":nl+e+"\u2584"+r,"02":nl+t+"\u2584"+r,10:nl+e+"\u2580"+r,11:" ",12:"\u2584",20:nl+t+"\u2580"+r,21:"\u2580",22:"\u2588"}},oq=function(r,e,t,i){let n=e+1;if(t>=n||i>=n||i<-1||t<-1)return"0";if(t>=e||i>=e||i<0||t<0)return"1";let s=i*e+t;return r[s]?"2":"1"},aq=function(r,e,t,i){return oq(r,e,t,i)+oq(r,e,t,i+1)};cq.render=function(r,e,t){let i=r.modules.size,n=r.modules.data,s=!!(e&&e.inverse),o=e&&e.inverse?toe:eoe,l=roe(o,s?Ob:qb,s?qb:Ob),d=nl+` -`+o,u=o;for(let f=-1;f<i+1;f+=2){for(let h=-1;h<i;h++)u+=l[aq(n,i,h,f)];u+=l[aq(n,i,i,f)]+d}return u+=nl,typeof t=="function"&&t(null,u),u}});var uq=oe(dq=>{var ioe=sq(),noe=lq();dq.render=function(r,e,t){return e&&e.small?noe.render(r,e,t):ioe.render(r,e,t)}});var Lb=oe(Aq=>{var soe=jA();function fq(r,e){let t=r.a/255,i=e+'="'+r.hex+'"';return t<1?i+" "+e+'-opacity="'+t.toFixed(2).slice(1)+'"':i}function Mb(r,e,t){let i=r+e;return typeof t<"u"&&(i+=" "+t),i}function ooe(r,e,t){let i="",n=0,s=!1,o=0;for(let a=0;a<r.length;a++){let c=Math.floor(a%e),l=Math.floor(a/e);!c&&!s&&(s=!0),r[a]?(o++,a>0&&c>0&&r[a-1]||(i+=s?Mb("M",c+t,.5+l+t):Mb("m",n,0),n=0,s=!1),c+1<e&&r[a+1]||(i+=Mb("h",o),o=0)):n++}return i}Aq.render=function(e,t,i){let n=soe.getOptions(t),s=e.modules.size,o=e.modules.data,a=s+n.margin*2,c=n.color.light.a?"<path "+fq(n.color.light,"fill")+' d="M0 0h'+a+"v"+a+'H0z"/>':"",l="<path "+fq(n.color.dark,"stroke")+' d="'+ooe(o,s,n.margin)+'"/>',d='viewBox="0 0 '+a+" "+a+'"',f='<svg xmlns="http://www.w3.org/2000/svg" '+(n.width?'width="'+n.width+'" height="'+n.width+'" ':"")+d+' shape-rendering="crispEdges">'+c+l+`</svg> -`;return typeof i=="function"&&i(null,f),f}});var hq=oe(Fw=>{var aoe=Lb();Fw.render=aoe.render;Fw.renderToFile=function(e,t,i,n){typeof n>"u"&&(n=i,i=void 0);let s=wt("fs"),a='<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+Fw.render(t,i);s.writeFile(e,a,n)}});var gq=oe(Pw=>{var Hb=jA();function coe(r,e,t){r.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=t,e.width=t,e.style.height=t+"px",e.style.width=t+"px"}function loe(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}Pw.render=function(e,t,i){let n=i,s=t;typeof n>"u"&&(!t||!t.getContext)&&(n=t,t=void 0),t||(s=loe()),n=Hb.getOptions(n);let o=Hb.getImageWidth(e.modules.size,n),a=s.getContext("2d"),c=a.createImageData(o,o);return Hb.qrToImageData(c.data,e,n),coe(a,s,o),a.putImageData(c,0,0),s};Pw.renderToDataURL=function(e,t,i){let n=i;typeof n>"u"&&(!t||!t.getContext)&&(n=t,t=void 0),n||(n={});let s=Pw.render(e,t,n),o=n.type||"image/png",a=n.rendererOpts||{};return s.toDataURL(o,a.quality)}});var mq=oe($A=>{var doe=rb(),Kb=xb(),pq=gq(),uoe=Lb();function Gb(r,e,t,i,n){let s=[].slice.call(arguments,1),o=s.length,a=typeof s[o-1]=="function";if(!a&&!doe())throw new Error("Callback required as last argument");if(a){if(o<2)throw new Error("Too few arguments provided");o===2?(n=t,t=e,e=i=void 0):o===3&&(e.getContext&&typeof n>"u"?(n=i,i=void 0):(n=i,i=t,t=e,e=void 0))}else{if(o<1)throw new Error("Too few arguments provided");return o===1?(t=e,e=i=void 0):o===2&&!e.getContext&&(i=t,t=e,e=void 0),new Promise(function(c,l){try{let d=Kb.create(t,i);c(r(d,e,i))}catch(d){l(d)}})}try{let c=Kb.create(t,i);n(null,r(c,e,i))}catch(c){n(c)}}$A.create=Kb.create;$A.toCanvas=Gb.bind(null,pq.render);$A.toDataURL=Gb.bind(null,pq.renderToDataURL);$A.toString=Gb.bind(null,function(r,e,t){return uoe.render(r,t)})});var xq=oe(La=>{var yq=rb(),zb=xb(),foe=rq(),Iq=iq(),Aoe=uq(),wq=hq();function VA(r,e,t){if(typeof r>"u")throw new Error("String required as first argument");if(typeof t>"u"&&(t=e,e={}),typeof t!="function")if(yq())e=t||{},t=null;else throw new Error("Callback required as last argument");return{opts:e,cb:t}}function hoe(r){return r.slice((r.lastIndexOf(".")-1>>>0)+2).toLowerCase()}function Tw(r){switch(r){case"svg":return wq;case"txt":case"utf8":return Iq;default:return foe}}function goe(r){switch(r){case"svg":return wq;case"terminal":return Aoe;default:return Iq}}function YA(r,e,t){if(!t.cb)return new Promise(function(i,n){try{let s=zb.create(e,t.opts);return r(s,t.opts,function(o,a){return o?n(o):i(a)})}catch(s){n(s)}});try{let i=zb.create(e,t.opts);return r(i,t.opts,t.cb)}catch(i){t.cb(i)}}La.create=zb.create;La.toCanvas=mq().toCanvas;La.toString=function(e,t,i){let n=VA(e,t,i),s=n.opts?n.opts.type:void 0,o=goe(s);return YA(o.render,e,n)};La.toDataURL=function(e,t,i){let n=VA(e,t,i),s=Tw(n.opts.type);return YA(s.renderToDataURL,e,n)};La.toBuffer=function(e,t,i){let n=VA(e,t,i),s=Tw(n.opts.type);return YA(s.renderToBuffer,e,n)};La.toFile=function(e,t,i,n){if(typeof e!="string"||!(typeof t=="string"||typeof t=="object"))throw new Error("Invalid argument");if(arguments.length<3&&!yq())throw new Error("Too few arguments provided");let s=VA(t,i,n),o=s.opts.type||hoe(e),c=Tw(o).renderToFile.bind(null,e);return YA(c,t,s)};La.toFileStream=function(e,t,i){if(arguments.length<2)throw new Error("Too few arguments provided");let n=VA(t,i,e.emit.bind(e,"error")),o=Tw("png").renderToFileStream.bind(null,e);YA(o,t,n)}});var Eq=oe((IBe,Cq)=>{Cq.exports=xq()});function poe(r,e){try{return WA.authenticator.options={window:1},WA.authenticator.verify({token:r,secret:e})}catch(t){return console.error("[TOTP] Verification error:",t),!1}}function bq(){return WA.authenticator.generateSecret()}async function Jb(r,e){return poe(e,r)}function vq(r,e,t="OpenList"){return WA.authenticator.keyuri(e,t,r)}async function kq(r){return Bq.default.toDataURL(r)}var WA,Bq,Sq=j(()=>{"use strict";WA=Qr(h9(),1),Bq=Qr(Eq(),1)});function moe(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return btoa(e)}function Dq(r){let e=String(r||"").replace(/[\s\r\n]/g,"").replace(/-/g,"+").replace(/_/g,"/"),t=e.length%4,i=t?e+"=".repeat(4-t):e;try{let n=atob(i),s=new Uint8Array(n.length);for(let o=0;o<n.length;o++)s[o]=n.charCodeAt(o);return s}catch{return null}}function jb(r){let e=String(r||"").trim().split(/\s+/);if(e.length<2)return null;let t=e[0];if(!yoe.includes(t))return null;let i=Dq(e[1]);return!i||i.length<16?null:{type:t,blobBase64:e[1].replace(/[\s\r\n]/g,""),comment:e.slice(2).join(" ")||""}}async function Qq(r){let e=jb(r);if(!e)return null;let t=Dq(e.blobBase64);if(!t)return null;let i=await crypto.subtle.digest("SHA-256",t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),n=new Uint8Array(i);return"SHA256:"+moe(n).replace(/=+$/,"")}function _q(){let r=globalThis;return typeof r.crypto?.randomUUID=="function"?r.crypto.randomUUID():Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,10)+Math.random().toString(36).slice(2,10)}var yoe,Fq=j(()=>{"use strict";yoe=["ssh-rsa","ssh-dss","ssh-ed25519","ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","sk-ssh-ed25519@openssh.com","sk-ecdsa-sha2-nistp256@openssh.com","sk-ssh-ed25519@openssh.com.webauthn","sk-ecdsa-sha2-nistp256@openssh.com.webauthn"]});async function ou(r,e){let i=((await ne(e)).users||[]).find(n=>n.id===r);return i?i.ssh_keys||[]:[]}async function Pq(r,e,t,i){let n=jb(e);if(!n)throw new Error("Invalid OpenSSH public key format");let s=await Qq(e);if(!s)throw new Error("Failed to compute SSH key fingerprint");let o=await ne(i),a=(o.users||[]).find(l=>l.id===r);if(!a)throw new Error("User not found");if(Array.isArray(a.ssh_keys)||(a.ssh_keys=[]),a.ssh_keys.some(l=>l.fingerprint===s))throw new Error("SSH key with this fingerprint already exists");let c={id:_q(),name:(t||n.comment||n.type).slice(0,64),public_key:e.trim(),fingerprint:s,created_at:new Date().toISOString()};return a.ssh_keys.push(c),await fe(o,i),c}async function Uw(r,e,t){let i=await ne(t),n=(i.users||[]).find(o=>o.id===r);if(!n||!Array.isArray(n.ssh_keys))return!1;let s=n.ssh_keys.length;return n.ssh_keys=n.ssh_keys.filter(o=>o.id!==e),n.ssh_keys.length!==s?(await fe(i,t),!0):!1}var $b=j(()=>{"use strict";Ve();Fq()});async function Tq(r){let e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r));return Array.from(new Uint8Array(e)).map(t=>t.toString(16).padStart(2,"0")).join("")}async function Rw(r){return Tq(`${r}-${Ioe}`)}async function Nw(r,e){return Tq(`${r}-${e}`)}async function woe(r,e){return Nw(await Rw(r),e)}function Vb(r=16){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=new Uint8Array(r);crypto.getRandomValues(t);let i="";for(let n=0;n<r;n++)i+=e[t[n]%e.length];return i}function qw(r){return/^[0-9a-f]{64}$/i.test(String(r||""))}async function Fi(r,e){r.salt=Vb(),r.password=await woe(e,r.salt),r.pwd_update_at=new Date().toISOString()}var Ioe,XA=j(()=>{"use strict";Ioe="https://github.com/alist-org/alist"});var Uq=j(()=>{Cx()});function xoe(r=32){let e=new Uint8Array(r);return crypto.getRandomValues(e),btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Yb(r,e={}){let t={...Rq,...e},i=xoe();return qq(r,t.cookieName,i,{maxAge:t.maxAge,...t.cookieOptions}),i}function Nq(r,e={}){let t={...Rq,...e};qq(r,t.cookieName,"",{maxAge:0,...t.cookieOptions})}function qq(r,e,t,i={}){let n=[`${e}=${encodeURIComponent(t)}`];i.maxAge!==void 0&&n.push(`Max-Age=${i.maxAge}`),i.httpOnly&&n.push("HttpOnly"),i.secure&&n.push("Secure"),i.sameSite&&n.push(`SameSite=${i.sameSite}`),i.path&&n.push(`Path=${i.path}`),r.header("Set-Cookie",n.join("; "))}var Rq,Oq=j(()=>{"use strict";Uq();Rq={cookieName:"csrf_token",headerName:"x-csrf-token",maxAge:3600,cookieOptions:{httpOnly:!0,secure:!0,sameSite:"strict",path:"/"}}});function Coe(){return`${Date.now()}-${Math.random().toString(36).substring(2,15)}`}function Eoe(r){let e=r.get?.("user"),t=r.req.header("cf-connecting-ip")||r.req.header("x-forwarded-for")||r.req.header("x-real-ip")||"unknown",i=r.req.header("user-agent")||"unknown";return{user_id:e?.id,username:e?.username,ip_address:t,user_agent:i}}function au(){if(!Wb){let r=new Zb(1e4);Wb=new Xb(r)}return Wb}var Xb,Zb,Wb,Mq=j(()=>{"use strict";Xb=class{storage;constructor(e){this.storage=e}async log(e,t,i,n,s,o={}){let a=Eoe(e),c={id:Coe(),timestamp:new Date().toISOString(),level:t,category:i,action:n,message:s,success:o.success??!0,...a,resource_type:o.resource_type,resource_id:o.resource_id,resource_name:o.resource_name,details:o.details,error_message:o.error_message};try{await this.storage.write(c)}catch(l){console.error("[AuditLog] Failed to write log:",l)}}async logLoginSuccess(e,t){await this.log(e,"info","auth","login",`User ${t} logged in successfully`,{success:!0})}async logLoginFailure(e,t,i){await this.log(e,"warn","auth","login_failed",`Failed login attempt for user ${t}`,{success:!1,error_message:i})}async logLogout(e){await this.log(e,"info","auth","logout","User logged out",{success:!0})}async logFileUpload(e,t,i){await this.log(e,"info","file","upload",`Uploaded file: ${t}`,{success:!0,resource_type:"file",resource_name:t,details:{file_size:i}})}async logFileDelete(e,t,i){await this.log(e,i?"critical":"error","file","delete",`Deleted file: ${t}`,{success:i,resource_type:"file",resource_name:t})}async logPermissionChange(e,t,i,n){await this.log(e,"critical","permission","update_permission",`Changed permission for user ${t}`,{success:!0,resource_type:"user",resource_name:t,details:{old_role:i,new_role:n}})}async logUserCreate(e,t,i){await this.log(e,"info","user","create",`Created user: ${t}`,{success:!0,resource_type:"user",resource_name:t,details:{role:i}})}async logUserDelete(e,t){await this.log(e,"critical","user","delete",`Deleted user: ${t}`,{success:!0,resource_type:"user",resource_name:t})}async query(e){return this.storage.query(e)}async count(e){return this.storage.count(e)}},Zb=class{logs=[];maxSize;constructor(e=1e4){this.maxSize=e}async write(e){this.logs.push(e),this.logs.length>this.maxSize&&this.logs.shift()}async query(e){let t=this.logs;e.start_time&&(t=t.filter(s=>s.timestamp>=e.start_time)),e.end_time&&(t=t.filter(s=>s.timestamp<=e.end_time)),e.level&&(t=t.filter(s=>s.level===e.level)),e.category&&(t=t.filter(s=>s.category===e.category)),e.user_id&&(t=t.filter(s=>s.user_id===e.user_id)),e.username&&(t=t.filter(s=>s.username===e.username)),e.action&&(t=t.filter(s=>s.action===e.action)),e.resource_type&&(t=t.filter(s=>s.resource_type===e.resource_type)),e.resource_id&&(t=t.filter(s=>s.resource_id===e.resource_id)),e.success!==void 0&&(t=t.filter(s=>s.success===e.success)),t=t.sort((s,o)=>new Date(o.timestamp).getTime()-new Date(s.timestamp).getTime());let i=e.offset||0,n=e.limit||100;return t.slice(i,i+n)}async count(e){return(await this.query({...e,limit:Number.MAX_SAFE_INTEGER})).length}clear(){this.logs=[]}},Wb=null});var $q={};xn($q,{authRouter:()=>pn,authUserFromReq:()=>Nn,generateRandomPassword:()=>du,getOrInitUsers:()=>ZA,hashPasswordSHA256:()=>Doe,logoutHandler:()=>uu,meHandler:()=>Mw,meRouter:()=>cu,meUpdateHandler:()=>Ow,verifyUserPassword:()=>lu,verifyUserStaticHash:()=>rv});function koe(r){return r.req.header("CF-Connecting-IP")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown"}function ev(r,e){return`${koe(r)}|${String(e||"").toLowerCase()}`}function tv(r){return`__global__|${String(r||"").toLowerCase()}`}function Soe(r){let e=voe,t=Math.pow(2,Math.floor(r/5));return Math.min(e*t,Hq)}async function Lq(r,e,t){let i=Date.now(),n=xs.get(r)||{count:0,lockedUntil:0,attempts:0};try{let{getKvBinding:s}=await Promise.resolve().then(()=>(Ve(),Gr)),o=await s(t);if(o.mode!=="none"&&o.binding){let a=`login_fail:${r}`,c=null;try{c=await o.binding.get(a,"text")}catch{c=await o.binding.get(a)}if(c&&typeof c.text=="function"&&(c=await c.text()),c)try{n=JSON.parse(String(c))}catch{}}}catch{}if(!(n.lockedUntil>i)){if(n.count+=1,n.attempts+=1,n.count>=e){let s=Soe(n.attempts);n.lockedUntil=i+s,n.count=0,console.warn(`[Auth] Login attempts exceeded for ${r}. Locked for ${Math.round(s/6e4)} minutes (attempt #${n.attempts}).`)}xs.set(r,n);try{let{getKvBinding:s}=await Promise.resolve().then(()=>(Ve(),Gr)),o=await s(t);if(o.mode!=="none"&&o.binding){let a=`login_fail:${r}`,c=JSON.stringify(n),l=Math.ceil((Hq+36e5)/1e3);typeof o.binding.put=="function"&&await o.binding.put(a,c,{expirationTtl:l})}}catch(s){console.warn("[Auth] Failed to persist login failure to KV:",s)}}}async function Kq(r,e,t){if(xs.size>1e4){let c=Date.now();for(let[l,d]of xs)d.lockedUntil<c&&d.count===0&&xs.delete(l)}let i=Date.now(),n=ev(r,e),s=tv(e),o=xs.get(n),a=xs.get(s);try{let{getKvBinding:c}=await Promise.resolve().then(()=>(Ve(),Gr)),l=await c(t);if(l.mode!=="none"&&l.binding)for(let d of[n,s]){let u=`login_fail:${d}`,f=null;try{f=await l.binding.get(u,"text")}catch{f=await l.binding.get(u)}if(f&&typeof f.text=="function"&&(f=await f.text()),f)try{let h=JSON.parse(String(f));d===n&&(o=h),d===s&&(a=h),xs.set(d,h)}catch{}}}catch{}return!!(o&&o.lockedUntil>i||a&&a.lockedUntil>i)}async function Gq(r,e,t){await Lq(ev(r,e),Boe,t),await Lq(tv(e),boe,t)}async function zq(r,e,t){let i=ev(r,e),n=tv(e);xs.delete(i),xs.delete(n);try{let{getKvBinding:s}=await Promise.resolve().then(()=>(Ve(),Gr)),o=await s(t);if(o.mode!=="none"&&o.binding)for(let a of[i,n]){let c=`login_fail:${a}`;typeof o.binding.delete=="function"&&await o.binding.delete(c)}}catch(s){console.warn("[Auth] Failed to clear login failures from KV:",s)}}async function Doe(r){return Rw(r)}async function rv(r,e){let t=String(r?.password||"").trim().toLowerCase(),i=String(e||"").trim().toLowerCase();if(!t||!qw(i)||!qw(t))return!1;if(r?.salt){let n=(await Nw(i,String(r.salt))).toLowerCase();return t===n}return t===i}async function lu(r,e){return String(r?.password||"").trim()?rv(r,await Rw(e)):!1}function du(){let r=new Uint8Array(16);return crypto.getRandomValues(r),Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function Jq(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();let r=new Uint8Array(16);return crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}async function ZA(r){let e=await ne(r);if(!e.users||e.users.length===0){let t=r&&r.ADMIN_PASS||(typeof process<"u"?process.env?.ADMIN_PASS:"")||"",i={id:2,username:"guest",password:"",role:1,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()};if(t){let s={id:1,username:"admin",password:"",role:2,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()};await Fi(s,t),e.users=[s,i]}else e.users=[i];await fe(e,r)||console.warn("[Auth] getOrInitUsers: skipped persisting an uninitialized placeholder DB (expected until POST /api/public/init/setup completes).")}else{let t=e.users.find(s=>s.role===2),i=t?String(t.password||"").trim():"",n=/^[0-9a-f]{64}$/i.test(i);if(t&&!n){let s=r&&r.ADMIN_PASS||(typeof process<"u"?process.env?.ADMIN_PASS:"")||"";s?(await Fi(t,s),await fe(e,r)):console.warn(i?"[SECURITY] Admin password uses a legacy hash format this build cannot verify; it has been left untouched. Log in with your existing password and re-set it, or set ADMIN_PASS to force a reset. It will NOT be reset to a default value.":"[SECURITY] Admin password is empty and no ADMIN_PASS is set \u2014 the system is NOT initialized. Open the site in a browser to run the setup wizard, or set ADMIN_PASS to initialize automatically.")}}return{db:e,users:e.users}}async function Nn(r){let e=r.req.header("Authorization");if(!e)return null;let t=e.startsWith("Bearer ")?e.substring(7):e;try{let i=await kr(r),n=await uo(t,i,"HS256");if(await YI(n?.jti,r.env))return null;let s=await ne(r.env);s.users||(s.users=[]);let o=s.users.find(a=>a.id===n.id||a.username===n.username);return o?{db:s,user:o}:null}catch{return null}}async function jq(r,e){if(!r.otp_secret)return{ok:!0,code:200,httpStatus:200,message:"ok"};let t=String(e.otp_code||e.code||"").trim();return t?await Jb(r.otp_secret,t)?{ok:!0,code:200,httpStatus:200,message:"ok"}:{ok:!1,code:401,httpStatus:401,message:"Invalid OTP code"}:{ok:!1,code:402,httpStatus:200,message:"OTP code required"}}var pn,cu,Boe,boe,voe,Hq,xs,Ow,Mw,uu,sl=j(()=>{"use strict";wr();Ao();Ve();Qi();Sq();$b();XA();Oq();Mq();pn=new Xe,cu=new Xe,Boe=5,boe=20,voe=900*1e3,Hq=1440*60*1e3,xs=new Map;pn.post("/login",async r=>{let e=await r.req.json().catch(()=>({})),t=(e.username||"").trim(),i=e.password||"";if(await Kq(r,t,r.env))return r.json({code:429,message:"Too many failed login attempts for this account/IP. Please try again later.",data:null},429);let{users:n,db:s}=await ZA(r.env),o=n.find(c=>c.username===t&&!c.disabled);if(o&&await lu(o,i)){let l=String(o.password||"").trim();(/^\$2[aby]\$/.test(l)||!o.salt&&qw(l))&&(console.log(`[Auth] Upgrading password hash for user: ${t}`),await Fi(o,i),await fe(s,r.env));let u=await jq(o,e);if(!u.ok)return r.json({code:u.code,message:u.message,data:null},u.httpStatus);await zq(r,t,r.env);let f={id:o.id,username:o.username,role:o.role,exp:Math.floor(Date.now()/1e3)+3600*24*7,jti:Jq()},h=await kr(r),g=await fo(f,h),p=Yb(r);return await au().logLoginSuccess(r,t),r.json({code:200,message:"success",data:{token:g,csrf_token:p}})}return await au().logLoginFailure(r,t,"Invalid credentials"),await Gq(r,t,r.env),r.json({code:401,message:"Invalid credentials",data:null},401)});pn.post("/login/hash",async r=>{let e=await r.req.json().catch(()=>({})),t=(e.username||"").trim(),i=String(e.password||"").trim().toLowerCase();if(await Kq(r,t,r.env))return r.json({code:429,message:"Too many failed login attempts for this account/IP. Please try again later.",data:null},429);let{users:n,db:s}=await ZA(r.env),o=n.find(c=>c.username===t&&!c.disabled);if(o&&i.length===64&&await rv(o,i)){o.salt||(console.log(`[Auth] Upgrading password hash for user: ${t}`),o.salt=Vb(),o.password=await Nw(i,o.salt),o.pwd_update_at=new Date().toISOString(),await fe(s,r.env));let l=await jq(o,e);if(!l.ok)return r.json({code:l.code,message:l.message,data:null},l.httpStatus);await zq(r,t,r.env);let d={id:o.id,username:o.username,role:o.role,exp:Math.floor(Date.now()/1e3)+3600*24*7,jti:Jq()},u=await kr(r),f=await fo(d,u),h=Yb(r);return await au().logLoginSuccess(r,t),r.json({code:200,message:"success",data:{token:f,csrf_token:h}})}return await au().logLoginFailure(r,t,"Invalid credentials"),await Gq(r,t,r.env),r.json({code:401,message:"Invalid credentials",data:null},401)});Ow=async r=>{let e=await Nn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let{db:t,user:i}=e,n=await r.req.json().catch(()=>({}));if(n.username&&n.username.trim()!==""){let s=n.username.trim();if(t.users.some(a=>a.id!==i.id&&a.username===s))return r.json({code:400,message:"Username already exists",data:null},400);i.username=s}return n.password&&n.password.trim()!==""&&await Fi(i,n.password.trim()),await fe(t,r.env),r.json({code:200,message:"success",data:null})},Mw=async r=>{let e=await Me(r);return!e||e.disabled?r.json({code:401,message:"Unauthorized",data:null},401):r.json({code:200,message:"success",data:{id:e.id,username:e.username,role:e.role,permission:e.permission??0,base_path:e.base_path||"/",disabled:!!e.disabled,sso_id:e.sso_id||"",allow_ldap:!!e.allow_ldap,otp:!!e.otp_secret}})};pn.get("/me",Mw);pn.post("/me/update",Ow);uu=async r=>{let e=r.req.header("Authorization");if(e){let i=e.startsWith("Bearer ")?e.substring(7):e;try{let n=await kr(r),s=await uo(i,n,"HS256");s?.jti&&await a2(s.jti,s.exp,r.env)}catch{}}return Nq(r),await au().logLogout(r),r.json({code:200,message:"success",data:null})};pn.get("/logout",uu);pn.post("/logout",uu);pn.get("/csrf",async r=>{try{let e=await l2(r);return r.json({code:200,message:"success",data:{csrf_token:e}})}catch{return r.json({code:500,message:"Failed to generate CSRF token",data:null},500)}});pn.post("/2fa/generate",async r=>{let e=await Nn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let{user:t}=e;if(t.otp_secret)return r.json({code:400,message:"2FA already enabled",data:null},400);let i=bq(),n=vq(i,t.username);return r.json({code:200,message:"success",data:{qr:kq(n),secret:i}})});pn.post("/2fa/verify",async r=>{let e=await Nn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let{db:t,user:i}=e,n=await r.req.json().catch(()=>({})),s=String(n.code||"").trim(),o=String(n.secret||"").trim();return o?/^[A-Z2-7]+$/i.test(o)?await Jb(o,s)?(i.otp_secret=o.toUpperCase(),await fe(t,r.env),r.json({code:200,message:"success",data:null})):r.json({code:400,message:"Invalid code",data:null},400):r.json({code:400,message:"Invalid secret format",data:null},400):r.json({code:400,message:"Missing secret parameter",data:null},400)});cu.get("/sshkey/list",async r=>{let e=await Nn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await ou(e.user.id,r.env);return r.json({code:200,message:"success",data:{content:t,total:t.length}})});cu.post("/sshkey/add",async r=>{let e=await Nn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({}));try{let i=await Pq(e.user.id,t.key||t.public_key||"",t.name||t.title||"",r.env);return r.json({code:200,message:"success",data:i})}catch(i){return r.json({code:400,message:i.message||"Failed to add SSH key",data:null},400)}});cu.post("/sshkey/delete",async r=>{let e=await Nn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=r.req.query("id");if(!t)return r.json({code:400,message:"Missing id parameter",data:null},400);if(!await Uw(e.user.id,t,r.env))return r.json({code:404,message:"SSH key not found",data:null},404);let n=await ou(e.user.id,r.env);return r.json({code:200,message:"success",data:n})})});wr();var fk=r=>{let e={origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH","QUERY"],allowHeaders:[],exposeHeaders:[],...r},t=(n=>typeof n=="string"?n==="*"?()=>n:s=>n===s?s:null:typeof n=="function"?n:s=>n.includes(s)?s:null)(e.origin),i=(n=>typeof n=="function"?n:Array.isArray(n)?()=>n:()=>[])(e.allowMethods);return async function(s,o){function a(l,d){s.res.headers.set(l,d)}let c=await t(s.req.header("origin")||"",s);if(c&&a("Access-Control-Allow-Origin",c),e.credentials&&a("Access-Control-Allow-Credentials","true"),e.exposeHeaders?.length&&a("Access-Control-Expose-Headers",e.exposeHeaders.join(",")),s.req.method==="OPTIONS"){e.origin!=="*"&&a("Vary","Origin"),e.maxAge!=null&&a("Access-Control-Max-Age",e.maxAge.toString());let l=await i(s.req.header("origin")||"",s);l.length&&a("Access-Control-Allow-Methods",l.join(","));let d=e.allowHeaders;if(!d?.length){let u=s.req.header("Access-Control-Request-Headers");u&&(d=u.split(",").map(f=>f.trim()))}return d?.length&&(a("Access-Control-Allow-Headers",d.join(",")),s.res.headers.append("Vary","Access-Control-Request-Headers")),s.res.headers.delete("Content-Length"),s.res.headers.delete("Content-Type"),new Response(null,{headers:s.res.headers,status:204,statusText:"No Content"})}await o(),e.origin!=="*"&&s.header("Vary","Origin",{append:!0})}};Ve();ic();wr();Yt();Ve();var BA=r=>{let e=[];for(let t of String(r||"").replace(/\\/g,"/").split("/"))if(!(t===""||t===".")){if(t===".."){e.pop();continue}e.push(t)}return"/"+e.join("/")};async function Md(r,e,t){let n=BA(r).split("/").filter(Boolean);if(n.length<1)return{ok:!1,error:"Invalid share path"};let s,o;if(n[0]==="@s"){if(n.length<2)return{ok:!1,error:"Invalid share path"};s=n[1],o=n.slice(2)}else s=n[0],o=n.slice(1);let a=await ne(t),c=(a.shares||[]).find(g=>g.id===s);if(!c)return{ok:!1,error:"share not found"};if(c.disabled)return{ok:!1,error:"share has been disabled"};if(c.expires&&new Date(c.expires)<new Date)return{ok:!1,error:"share has expired"};if(c.max_accessed>0&&c.accessed!==void 0&&c.accessed>=c.max_accessed)return{ok:!1,error:"share access count exceeded"};if(c.pwd&&c.pwd!==e)return{ok:!1,error:"wrong password"};if(!c.files||c.files.length===0)return{ok:!1,error:"share is empty"};if(c.accessed=(c.accessed||0)+1,fe(a,t).catch(()=>{}),c.files.length>1&&o.length===0)return{ok:!0,share:c,virtualList:!0};let l=(c.files||[]).map(g=>BA(g)),d=g=>l.some(p=>g===p||g.startsWith(p==="/"?"/":p+"/"));if(c.files.length===1)return o.length>0?{ok:!1,error:"path not found in share"}:{ok:!0,share:c,realPath:BA(c.files[0])};let u=o[0],f=c.files.find(g=>{let p=String(g).split("/").filter(Boolean);return p[p.length-1]===u});if(!f)return{ok:!1,error:"path not found in share"};let h=BA([BA(f),...o.slice(1)].join("/"));return d(h)?{ok:!0,share:c,realPath:h}:{ok:!1,error:"path not found in share"}}Ve();Qi();var Qa={SEE_HIDES:0,ACCESS_WITHOUT_PASSWORD:1,OFFLINE_DOWNLOAD:2,WRITE_CONTENT:3,RENAME:4,MOVE:5,COPY:6,DELETE:7,WEBDAV_READ:8,WEBDAV_MANAGE:9,FTP_READ:10,FTP_MANAGE:11,READ_ARCHIVES:12,DECOMPRESS:13,SHARE:14,CUSTOMIZE_SHARE_ID:15};function Jre(r){return!r||r.role===1}function ms(r){return!!r&&r.role===2}function _a(r,e){return!r||r.disabled?!1:ms(r)?!0:Jre(r)?!1:(r.permission>>e&1)===1}function pt(r){return _a(r,Qa.WRITE_CONTENT)}function We(r,e="/"){let t=e||"/";if(t.startsWith("/@s"))return t;let i=(r?.base_path||"/").trim();if(!i||i==="/")return t.startsWith("/")?t:`/${t}`;i.startsWith("/")||(i=`/${i}`),i.endsWith("/")&&i.length>1&&(i=i.replace(/\/+$/,""));let n=t.startsWith("/")?t:`/${t}`;return n==="/"?i:`${i}${n}`}Ve();async function d2(r,e){let i=(await ne(e)).metas||[];if(i.length===0)return null;let n=SA(r),s=i.find(a=>SA(a.path)===n);if(s)return s;let o=n;for(;o!=="/";){let a=o.substring(0,o.lastIndexOf("/"))||"/",c=i.find(l=>SA(l.path)===a);if(c)return c;o=a}return null}function Yc(r,e,t){let i=SA(r),n=SA(e);if(i.toLowerCase()===n.toLowerCase())return!0;if(!t)return!1;let s=n;for(;s!=="/";)if(s=s.substring(0,s.lastIndexOf("/"))||"/",i.toLowerCase()===s.toLowerCase())return!0;return!1}function SA(r){let e=(r||"/").replace(/\\/g,"/").replace(/\/+/g,"/").trim();return e===""||e==="/"?"/":"/"+e.split("/").filter(Boolean).join("/")}function u2(r,e,t,i=""){return r&&ms(r)||!e?!0:!(e.password&&e.password.trim()!==""&&Yc(e.path,t,e.p_sub)&&i!==e.password||e.read_users&&e.read_users.length>0&&Yc(e.path,t,e.read_users_sub)&&(!r||!e.read_users.includes(r.id||0)))}function f2(r,e,t){return r===null||r&&ms(r)?!0:e&&e.write_users&&e.write_users.length>0&&Yc(e.path,t,e.write_users_sub)?e.write_users.includes(r.id||0):!0}function A2(r,e){return r?r.write&&Yc(r.path,e,r.w_sub):!1}function h2(r,e){return!r||!r.readme?"":Yc(r.path,e,r.r_sub)?r.readme:""}function g2(r,e){return!r||!r.header?"":Yc(r.path,e,r.header_sub)?r.header:""}function iN(r,e,t){if(!r||!r.hide||r.hide.trim()===""||!Yc(r.path,e,r.h_sub))return!1;let i=r.hide.split(` -`).map(n=>n.trim()).filter(Boolean);for(let n of i)try{if(new RegExp(n).test(t))return!0}catch{}return!1}function p2(r){if(!r||r.trim()==="")return null;let e=r.split(` -`).map(t=>t.trim()).filter(Boolean);for(let t of e)try{new RegExp(t)}catch{return t}return null}Ve();Qi();si();function sN(r){if(!r)return{};if(typeof r=="object")return r;if(typeof r=="string")try{let e=JSON.parse(r||"{}");return e&&typeof e=="object"?e:{}}catch{return{}}return{}}function m2(r){return typeof r=="string"?r.toLowerCase()==="true":r===!0}function Wc(r){if(typeof r=="number"&&Number.isFinite(r))return Math.trunc(r);if(typeof r=="string"&&r.trim()!==""){let e=parseInt(r,10);if(Number.isFinite(e))return e}return null}function oN(r){let e=r?.proxy_range??r?.proxyRange;return e==null||e===""?!0:m2(e)}function aN(r){return r?m2(r.enable_sign??r.enableSign):!1}function cN(r){return r?m2(r.disable_index??r.disableIndex):!1}function jre(r){let e=Wc(r?.cache_expiration??r?.cacheExpiration);return e===null||e<0?30:e}function $re(r){let e=r?.custom_cache_policies??r?.customCachePolicies;if(!e)return[];if(typeof e=="string"){let i=e.trim();if(!i)return[];try{e=JSON.parse(i)}catch{let n=[];for(let s of i.split(",")){let o=s.lastIndexOf(":");if(o<=0)continue;let a=s.slice(0,o).trim(),c=Wc(s.slice(o+1).trim());a&&c!==null&&n.push({path:a,cacheExpiration:c})}return n}}let t=[];if(Array.isArray(e)){for(let i of e)if(i){if(typeof i=="string"){let n=i.lastIndexOf(":");if(n<=0)continue;let s=i.slice(0,n).trim(),o=Wc(i.slice(n+1).trim());s&&o!==null&&t.push({path:s,cacheExpiration:o});continue}if(typeof i=="object"){let n=i.path??i.Path,s=Wc(i.cache_expiration??i.cacheExpiration)??Wc(i.max_age??i.maxAge);if(typeof n=="string"&&n&&s!==null){let o=Wc(i.max_age??i.maxAge);t.push({path:n,cacheExpiration:s,...o!==null?{maxAge:o}:{}})}}}return t}if(typeof e=="object")for(let[i,n]of Object.entries(e)){let s=Wc(n);i&&s!==null&&t.push({path:i,cacheExpiration:s})}return t}var Vre=1024,Yre=4096;function nN(r,e){if(!r)return!1;if(r===e)return!0;if(r.length>Vre||e.length>Yre)return!1;let t=r.split("/"),i=e.split("/"),n=t.length,s=i.length,o=new Array(s+1).fill(!1);o[s]=!0;for(let a=n-1;a>=0;a--){let c=t[a],l=new Array(s+1).fill(!1);if(/^\*{2,}$/.test(c)){l[s]=o[s];for(let u=s-1;u>=0;u--)l[u]=o[u]||l[u+1]}else for(let u=s-1;u>=0;u--)l[u]=Wre(c,i[u])&&o[u+1];o=l}return o[0]}function Wre(r,e){let t=0,i=0,n=-1,s=-1,o=r.length,a=e.length;for(;i<a;){let c=t<o?r[t]:void 0;if(c==="*"){n=t,s=i,t++;continue}if(c==="?"||c===e[i]){t++,i++;continue}if(n!==-1){s++,i=s,t=n+1;continue}return!1}for(;t<o&&r[t]==="*";)t++;return t===o}function lN(r,e){let t="/"+String(e||"").split("/").filter(Boolean).join("/"),i=jre(r),n=$re(r);if(n.length===0)return i;let s=null;for(let o of n){let a=o.path.trim();a&&(!a.startsWith("/")&&!a.startsWith("*")&&(a="/"+a),(nN(a,t)||nN(a,t.slice(1)))&&(s=o))}return s?s.cacheExpiration:i}var dN=24*3600;function Xre(r,e){if(typeof r!="string"||typeof e!="string"||r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r.charCodeAt(i)^e.charCodeAt(i);return t===0}async function zd(r){try{let e=await ne(r?.env),t={};for(let s of e.settings||[])t[s.key]=s.value;let i=t.sign_all==="true",n=parseInt(t.link_expiration,10)||0;return!i&&n<=0?{enabled:!1,expiresIn:0}:{enabled:!0,expiresIn:n>0?n:dN}}catch{return{enabled:!1,expiresIn:0}}}function Gd(r){return"/"+String(r||"").split("/").filter(Boolean).join("/")}function Zre(r,e,t){let i=Gd(r).toLowerCase(),n=Gd(e).toLowerCase();if(i===n)return!0;if(!t)return!1;for(;n!=="/";)if(n=Gd(n.split("/").slice(0,-1).join("/")),i===n)return!0;return!1}async function eie(r,e){try{let i=(await ne(r?.env)).metas||[];if(!i.length)return null;let n=Gd(e);for(;;){let s=i.find(o=>Gd(o.path).toLowerCase()===n.toLowerCase());if(s)return s;if(n==="/")return null;n=Gd(n.split("/").slice(0,-1).join("/"))}}catch{return null}}async function tie(r,e){try{let{resolvePath:t}=await Promise.resolve().then(()=>(Ve(),Gr)),i=await t(e);return i?.storage?aN(i.storage):!1}catch{return!1}}async function WI(r,e){if(await tie(r,e))return!0;let t=await eie(r,e);return!t||!t.password?!1:Zre(t.path,e,!!t.p_sub)}async function uN(r,e){return(await zd(r)).enabled?!0:await WI(r,e)}async function DA(r){try{let e=await ne(r?.env);for(let t of e.settings||[])if(t.key==="link_expiration"){let i=parseInt(t.value,10)||0;if(i>0)return i;break}}catch{}return dN}async function QA(r,e,t){let i=await kr(r),n=Math.floor(Date.now()/1e3)+t,s=await Bx(`${e}:${n}`,i);return`${n}.${s}`}async function fN(r,e,t){let i=t.lastIndexOf(".");if(i<=0)return!1;let n=parseInt(t.slice(0,i),10),s=t.slice(i+1);if(!Number.isFinite(n)||n<=Math.floor(Date.now()/1e3))return!1;let o=await kr(r),a=await Bx(`${e}:${n}`,o);return Xre(a,s)}Da();Yt();async function Jd(r={},e){let t=(r.parent||"/").replace(/\/+/g,"/")||"/",i=String(r.keywords||"").trim().toLowerCase(),n=r.scope??0,s=Math.max(1,r.page||1),o=Math.max(1,Math.min(100,r.per_page||30)),a=Math.min(20,Math.max(0,r.max_depth??10)),c=Math.min(2e3,Math.max(1,r.max_results??500)),l=[];async function d(g,p){if(p>a||l.length>=c)return;let I=[];try{I=(await Zt(g)).content||[]}catch{return}for(let y of I){if(l.length>=c)break;let w=!i||y.name.toLowerCase().includes(i),C=!!y.is_dir,b=C&&!y.sign,x=!0;if(n===1&&!C&&(x=!1),n===2&&C&&(x=!1),!b&&w&&x&&l.push({...y,parent:g.endsWith("/")&&g!=="/"?g.slice(0,-1):g}),C){let _=g==="/"?`/${y.name}`:`${g}/${y.name}`;await d(_,p+1)}}}await d(t,0);let u=l.length,f=(s-1)*o;return{content:l.slice(f,f+o),total:u}}function XI(r){let e=new DataView(r),t=r.byteLength,i=-1,n=Math.max(0,t-22-65557);for(let l=t-22;l>=n;l--)if(e.getUint32(l,!0)===101010256){i=l;break}if(i===-1)throw new Error("Invalid ZIP: End of Central Directory not found");let s=e.getUint16(i+10,!0),o=e.getUint32(i+16,!0),a=[],c=o;for(let l=0;l<s&&e.getUint32(c,!0)===33639248;l++){let d=e.getUint16(c+10,!0),u=e.getUint32(c+20,!0),f=e.getUint32(c+24,!0),h=e.getUint16(c+28,!0),g=e.getUint16(c+30,!0),p=e.getUint16(c+32,!0),I=e.getUint32(c+42,!0),y=e.getUint16(c+12,!0),w=e.getUint16(c+14,!0),C=rie(w,y),b=new Uint8Array(r,c+46,h),x=new TextDecoder("utf-8").decode(b);if(c+=46+h+g+p,x.endsWith("/")||e.getUint32(I,!0)!==67324752)continue;let _=e.getUint16(I+26,!0),R=e.getUint16(I+28,!0),U=I+30+_+R;a.push({name:x.replace(/\\/g,"/"),isDir:!1,size:f,compressedSize:u,compressionMethod:d,dataOffset:U,modified:C})}return{entries:a}}async function AN(r,e){let t=new Uint8Array(r,e.dataOffset,e.compressedSize);if(e.compressionMethod===0)return new Uint8Array(t);if(e.compressionMethod===8){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not supported in this runtime");let i=new DecompressionStream("deflate-raw"),n=i.writable.getWriter();n.write(t),n.close();let s=await new Response(i.readable).arrayBuffer();return new Uint8Array(s)}throw new Error(`Unsupported ZIP compression method: ${e.compressionMethod}`)}function rie(r,e){let t=1980+(r>>9&127),i=r>>5&15,n=r&31,s=e>>11&31,o=e>>5&63,a=(e&31)*2,c=l=>String(l).padStart(2,"0");return`${t}-${c(i)}-${c(n)}T${c(s)}:${c(o)}:${c(a)}Z`}lc();wr();Qi();lc();Da();Ve();Yt();var FA=Qr(vm(),1);var ZI="openlist-sharing-seed";var iie={md5:32,sha1:40,sha256:64};function mr(r){return typeof r=="string"?r:""}var nie=64,sie=4096;function hN(r){let e=mr(r).trim();if(e.length>sie)throw new Error("Seed file path exceeds the maximum length");let t=e.split("/");if(t.length>nie)throw new Error("Seed file path exceeds the maximum depth");if(e.includes("\0")||e.includes("\\")||e.startsWith("/")||t.length===0||t.some(i=>!i||i==="."||i===".."))throw new Error("Seed file path must be a safe relative path");return t.join("/")}function _A(r,e){let t=mr(r).toLowerCase();if(t&&!new RegExp(`^[0-9a-f]{${iie[e]}}$`).test(t))throw new Error(`Invalid ${e} hash`);return t}function oie(r){return Array.isArray(r)?r.map(e=>{if(!e||typeof e!="object")throw new Error("Invalid seed source");let t=mr(e.type),i=mr(e.url);if(!t||!i)throw new Error("Seed source type and URL are required");try{if(!new URL(i).protocol)throw new Error("missing scheme")}catch{throw new Error("Seed source URL must be absolute")}return{type:t,url:i,expires_at:mr(e.expires_at),share_id:mr(e.share_id)}}):[]}function Ki(r){if(!r||typeof r!="object")throw new Error("Invalid seed payload");let e=r;if(e.format!==void 0&&e.format!==ZI)throw new Error("Unsupported seed format");if(e.version!==void 0&&Number(e.version)!==1)throw new Error("Unsupported seed version");let t=Number(e.piece_size||10485760);if(!Number.isSafeInteger(t)||t<16*1024||t>64*1024*1024)throw new Error("Invalid piece_size");if(!Array.isArray(e.files)||e.files.length===0||e.files.length>1e5)throw new Error("Seed file count must be between 1 and 100000");let i=e.files.map(o=>{if(!o||typeof o!="object")throw new Error("Invalid seed file");let a=Number(o.size);if(!Number.isSafeInteger(a)||a<0)throw new Error("Invalid seed file size");let c=o.hashes||{},l=c.pieces||{},d=a>0?Math.ceil(a/t):0,u=f=>{if(!Array.isArray(l[f]))return[];let h=l[f].map(g=>_A(g,f));if(h.length!==0&&h.length!==d)throw new Error(`${f} piece count is ${h.length}, expected ${d}`);return h};return{path:hN(o.path),size:a,modified:mr(o.modified),comment:mr(o.comment),hashes:{md5:_A(c.md5,"md5"),sha1:_A(c.sha1,"sha1"),sha256:_A(c.sha256,"sha256"),pieces:{md5:u("md5"),sha1:u("sha1"),sha256:u("sha256")}},sources:oie(o.sources),cas_slice_md5:_A(o.cas_slice_md5,"md5"),cas_create_time:mr(o.cas_create_time),cas_cloud:mr(o.cas_cloud).trim(),missing_channels:Array.isArray(o.missing_channels)?o.missing_channels.map(mr).filter(Boolean):[]}}),n=new Set;for(let o of i){if(n.has(o.path))throw new Error(`Duplicate seed file path: ${o.path}`);n.add(o.path)}let s=mr(e.name)||i[0].path.split("/")[0];if(!s.trim()||s==="."||s===".."||/[\\/\0]/.test(s))throw new Error("Invalid seed name");return{format:ZI,version:1,name:s,comment:mr(e.comment),created_at:mr(e.created_at)||new Date().toISOString(),created_by:mr(e.created_by)||"OpenList",piece_size:t,trackers:Array.isArray(e.trackers)?e.trackers.map(mr).filter(Boolean):[],channels:Array.isArray(e.channels)?e.channels.map(o=>{if(!o||typeof o!="object"||!mr(o.driver).trim())throw new Error("Seed channel driver is required");let a=mr(o.mount_path);if(/[?#\0]/.test(a))throw new Error("Seed channel mount_path contains invalid characters");return{driver:mr(o.driver).trim(),mount_path:a}}):[],files:i}}function ew(r,e){let t=r&&typeof r=="object"?r:{},i=o=>({whole:!!t[o]?.whole,pieces:!!t[o]?.pieces}),n={md5:i("md5"),sha1:i("sha1"),sha256:i("sha256")};!n.md5.whole&&!n.md5.pieces&&!n.sha1.whole&&!n.sha1.pieces&&!n.sha256.whole&&!n.sha256.pieces&&(n={md5:{whole:!0,pieces:!0},sha1:{whole:!0,pieces:!0},sha256:{whole:!0,pieces:!0}});for(let o of e)o==="torrent"&&(n.sha1={whole:!0,pieces:!0}),o==="cas"&&(n.md5={whole:!0,pieces:!0});return n}function y2(r,e){let t={md5:e.md5.whole?r.hashes.md5:"",sha1:e.sha1.whole?r.hashes.sha1:"",sha256:e.sha256.whole?r.hashes.sha256:"",pieces:{md5:e.md5.pieces?r.hashes.pieces.md5:[],sha1:e.sha1.pieces?r.hashes.pieces.sha1:[],sha256:e.sha256.pieces?r.hashes.pieces.sha256:[]}};return{...r,hashes:t}}function gN(r){return hN(r)}var Un=new TextEncoder,Pa=new TextDecoder("utf-8",{fatal:!0}),cie=32,lie=1e5;function tw(r){let e=r.reduce((n,s)=>n+s.byteLength,0),t=new Uint8Array(e),i=0;for(let n of r)t.set(n,i),i+=n.byteLength;return t}function jd(r){if(r instanceof Uint8Array)return tw([Un.encode(`${r.byteLength}:`),r]);if(typeof r=="string")return jd(Un.encode(r));if(typeof r=="number"){if(!Number.isSafeInteger(r))throw new Error("Bencode integer is out of range");return Un.encode(`i${r}e`)}if(Array.isArray(r))return tw([Un.encode("l"),...r.map(jd),Un.encode("e")]);let e=Object.entries(r).sort(([t],[i])=>{let n=Un.encode(t),s=Un.encode(i),o=Math.min(n.length,s.length);for(let a=0;a<o;a++)if(n[a]!==s[a])return n[a]-s[a];return n.length-s.length});return tw([Un.encode("d"),...e.flatMap(([t,i])=>[jd(t),jd(i)]),Un.encode("e")])}function die(r){let e=0,t=0,i=s=>{if(++t>lie)throw new Error("Bencode item limit exceeded");if(s>cie)throw new Error("Bencode nesting limit exceeded");let o=r[e];if(o===105){let a=r.indexOf(101,++e);if(a<0)throw new Error("Unterminated bencode integer");let c=Pa.decode(r.subarray(e,a));if(!/^(0|-?[1-9]\d*)$/.test(c))throw new Error("Invalid bencode integer");let l=Number(c);if(!Number.isSafeInteger(l))throw new Error("Bencode integer is out of range");return e=a+1,l}if(o===108){e++;let a=[];for(;e<r.length&&r[e]!==101;)a.push(i(s+1));if(r[e++]!==101)throw new Error("Unterminated bencode list");return a}if(o===100){e++;let a={};for(;e<r.length&&r[e]!==101;){let c=i(s+1);if(!(c instanceof Uint8Array))throw new Error("Bencode dictionary key is not a string");let l=Pa.decode(c);a[l]=i(s+1)}if(r[e++]!==101)throw new Error("Unterminated bencode dictionary");return a}if(o>=48&&o<=57){let a=r.indexOf(58,e);if(a<0)throw new Error("Invalid bencode byte string");let c=Pa.decode(r.subarray(e,a));if(!/^(0|[1-9]\d*)$/.test(c))throw new Error("Invalid bencode byte string length");let l=Number(c),d=a+1,u=d+l;if(!Number.isSafeInteger(l)||u>r.length)throw new Error("Truncated bencode byte string");return e=u,r.slice(d,u)}throw new Error("Invalid bencode value")},n=i(0);if(e!==r.length)throw new Error("Trailing bencode data");return n}function $d(r,e){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array)throw new Error(`${e} must be a dictionary`);return r}function uie(r){return r instanceof Uint8Array?r:new Uint8Array}function dn(r){return r instanceof Uint8Array?Pa.decode(r):typeof r=="string"?r:""}function Fa(r){return typeof r=="number"?r:0}function fie(r){return Array.isArray(r)?r.map(e=>dn(e)).filter(Boolean):[]}function I2(r){return r==null?"":typeof r=="string"||typeof r=="number"||r instanceof Uint8Array?r:typeof r=="boolean"?r?1:0:Array.isArray(r)?r.map(I2):typeof r=="object"?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,I2(t)])):String(r)}function w2(r){return r instanceof Uint8Array?Pa.decode(r):Array.isArray(r)?r.map(w2):r&&typeof r=="object"?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,w2(t)])):r}function Aie(r){if(!r||r.length%2!==0||!/^[0-9a-f]+$/i.test(r))return new Uint8Array;let e=new Uint8Array(r.length/2);for(let t=0;t<e.length;t++)e[t]=parseInt(r.slice(t*2,t*2+2),16);return e}function hie(r){return Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}function gie(r){if(r.files.length>1){for(let e of r.files.slice(0,-1))if(e.size%r.piece_size!==0)throw new Error("Cannot convert this multi-file seed to a standard torrent: a file boundary splits a piece")}return r.files.flatMap(e=>e.hashes.pieces.sha1)}async function pie(r,e){if(!r.hashes.md5)return;let t=r.cas_slice_md5?r.cas_slice_md5.toUpperCase():"",i=r.hashes.pieces.md5.map(n=>n.toUpperCase());if(!t&&i.length>0&&e===10485760&&(t=i.length>1?(await(0,FA.md5)(i.join(` -`))).toUpperCase():i[0]),!!t)return{cloud:r.cas_cloud||"189",file_md5:r.hashes.md5.toUpperCase(),slice_md5:t,slice_md5s:i,slice_size:e}}function mie(r){return Un.encode(JSON.stringify(Ki(r),null,2))}function x2(r){let e=JSON.parse(Pa.decode(r));if(e?.format!==ZI||Number(e?.version)!==1||!e?.created_at||!e?.created_by)throw new Error("Invalid or incomplete OpenList sharing seed");return Ki(e)}async function pN(r,e){if(!r.hashes.md5)throw new Error(`CAS requires a whole-file MD5 for ${r.path}`);let t=r.cas_slice_md5?r.cas_slice_md5.toUpperCase():"";if(!t&&r.hashes.pieces.md5.length>0&&e===10485760){let n=r.hashes.pieces.md5.map(s=>s.toUpperCase());t=n.length>1?(await(0,FA.md5)(n.join(` -`))).toUpperCase():n[0]}if(!t){if(r.size>10485760)throw new Error(`CAS requires a legacy slice MD5 or complete 10 MiB MD5 pieces for ${r.path}`);t=r.hashes.md5.toUpperCase()}let i={name:r.path.split("/").pop()||r.path,size:r.size,md5:r.hashes.md5,sliceMd5:t,create_time:r.cas_create_time||String(Math.floor(Date.now()/1e3)),cloud:r.cas_cloud||"189"};return r.hashes.pieces.md5.length>0&&(i.slice_md5s=r.hashes.pieces.md5.map(n=>n.toUpperCase()),i.slice_size=e||10485760),i}async function yie(r){let e=Ki(r);if(e.files.length===0)throw new Error("CAS requires at least one file");let t;if(e.files.length===1){let i=await pN(e.files[0],e.piece_size);t={name:i.name,size:i.size,md5:i.md5,sliceMd5:i.sliceMd5,create_time:i.create_time,slice_md5s:i.slice_md5s,slice_size:i.slice_size,cloud:i.cloud}}else{let i=[],n=0;for(let s of e.files){let o=await pN(s,e.piece_size);i.push(o),n+=o.size}t={name:e.name,size:n,md5:"",sliceMd5:"",create_time:"",files:i}}return Un.encode(Buffer.from(JSON.stringify(t)).toString("base64"))}function mN(r){let e=Pa.decode(r).trim(),t=e;try{t=Buffer.from(e,"base64").toString("utf8"),JSON.parse(t)}catch{t=e}let i=JSON.parse(t),n=l=>{if(!l.name||!Number.isSafeInteger(l.size)||Number(l.size)<0||!l.md5)throw new Error("Invalid CAS file entry");let d=String(l.md5).toLowerCase(),u=String(l.sliceMd5||l.md5).toLowerCase();if(!/^[0-9a-f]{32}$/i.test(d)||!/^[0-9a-f]{32}$/i.test(u))throw new Error("Invalid CAS hash");let f=Array.isArray(l.slice_md5s)?l.slice_md5s.map(h=>String(h).toLowerCase()):[];return{path:l.name,size:Number(l.size),modified:"",comment:"",hashes:{md5:d,sha1:"",sha256:"",pieces:{md5:f,sha1:[],sha256:[]}},sources:[],cas_slice_md5:u,cas_create_time:l.create_time||"",cas_cloud:String(l.cloud||""),missing_channels:[]}};if(Array.isArray(i.files)&&i.files.length>0){let l=i.files.map(n);return{format:"cas",cas:{name:String(i.name),size:l.reduce((u,f)=>u+f.size,0),md5:"",sliceMd5:"",create_time:"",cloud:String(i.cloud||""),files:i.files},seed:Ki({name:i.name,comment:"Imported from OpenList CAS metadata",created_at:new Date().toISOString(),created_by:"OpenList",piece_size:10485760,files:l})}}if(!i.name||!Number.isSafeInteger(i.size)||Number(i.size)<0||!i.md5)throw new Error("Invalid CAS payload");let s=String(i.md5).toLowerCase(),o=String(i.sliceMd5||i.md5);if(!/^[0-9a-f]{32}$/i.test(s)||!/^[0-9a-f]{32}$/i.test(o))throw new Error("Invalid CAS hash");let a=Number(i.create_time);return{format:"cas",cas:{name:String(i.name),size:Number(i.size),md5:s,sliceMd5:o,create_time:String(i.create_time||""),slice_md5s:i.slice_md5s,slice_size:i.slice_size,cloud:String(i.cloud||"")},seed:Ki({name:i.name,comment:"Imported from OpenList CAS metadata",created_at:Number.isFinite(a)&&a>0?new Date(a*1e3).toISOString():new Date().toISOString(),created_by:"OpenList",piece_size:i.slice_size||10485760,files:[n({name:i.name,size:Number(i.size),md5:s,sliceMd5:o,create_time:String(i.create_time||""),slice_md5s:i.slice_md5s,slice_size:i.slice_size})]})}}async function C2(r,e){let t=Ki(r),i=e||gie(t);if(i.some(o=>o.length!==40))throw new Error("Torrent conversion requires SHA-1 piece hashes");let n={name:t.name,"piece length":t.piece_size,pieces:tw(i.map(Aie))};t.files.length===1?(n.length=t.files[0].size,t.files[0].hashes.md5&&(n.md5sum=t.files[0].hashes.md5)):n.files=t.files.map(o=>{let a={length:o.size,path:o.path.split("/")};return o.hashes.md5&&(a.md5sum=o.hashes.md5),a});let s={info:n,comment:t.comment,"created by":t.created_by,"creation date":Math.floor(new Date(t.created_at).getTime()/1e3)||Math.floor(Date.now()/1e3),"x-openlist":I2(t)};if(t.trackers.length&&(s.announce=t.trackers[0],s["announce-list"]=t.trackers.map(o=>[o])),t.files.length===1){let o=await pie(t.files[0],t.piece_size);o&&(s["x-cas"]=o)}return jd(s)}function Iie(r,e,t,i,n){let s=Array.isArray(r.files)?r.files:null,o=s?s.map(c=>{let l=$d(c,"torrent file");return{path:(Array.isArray(l.path)?l.path.map(dn):[]).join("/"),size:Fa(l.length),md5:dn(l.md5sum)}}):[{path:e,size:Fa(r.length),md5:dn(r.md5sum)}],a=0;return o.map((c,l)=>{let d=c.size>0?Math.ceil(c.size/i):0,f=(l===o.length-1||c.size%i===0)&&a+d<=t.length?t.slice(a,a+d):[];a+=d;let h=o.length===1&&n?dn(n.slice_md5):"",g=o.length===1&&n?dn(n.create_time):"",p=o.length===1&&n?dn(n.cloud):"";return{path:c.path,size:c.size,modified:"",comment:"",hashes:{md5:c.md5.toLowerCase(),sha1:"",sha256:"",pieces:{md5:[],sha1:f,sha256:[]}},sources:[],cas_slice_md5:h.toLowerCase(),cas_create_time:g,cas_cloud:p,missing_channels:[]}})}async function yN(r){let e=$d(die(r),"torrent root"),t=$d(e.info,"torrent info"),i=await(0,FA.sha1)(jd(t)),n=dn(t.name),s=Fa(t["piece length"]),o=uie(t.pieces);if(!n||s<=0||o.length%20!==0)throw new Error("Invalid torrent info dictionary");let a=Array.isArray(t.files)?t.files.reduce((g,p)=>g+Fa($d(p,"torrent file").length),0):Fa(t.length),c=a>0?Math.ceil(a/s):0;if(o.length/20!==c)throw new Error("Torrent piece count mismatch");if(e["x-openlist"]){let g=Ki(w2(e["x-openlist"]));return wie(g,t,n,s),{format:"torrent",seed:g,info_hash:i}}let l=[];for(let g=0;g<o.length;g+=20)l.push(hie(o.subarray(g,g+20)));let d=[dn(e.announce),...Array.isArray(e["announce-list"])?e["announce-list"].flatMap(g=>fie(g)):[]].filter((g,p,I)=>g&&I.indexOf(g)===p),u=Fa(e["creation date"]),f=e["x-cas"]?$d(e["x-cas"],"x-cas"):void 0;return{format:"torrent",seed:Ki({name:n,comment:dn(e.comment),created_at:u>0?new Date(u*1e3).toISOString():new Date().toISOString(),created_by:dn(e["created by"])||"OpenList",piece_size:s,trackers:d,channels:[],files:Iie(t,n,l,s,f)}),info_hash:i}}function wie(r,e,t,i){if(r.name!==t||r.piece_size!==i)throw new Error("x-openlist metadata conflicts with torrent info");let n=Array.isArray(e.files)?e.files:null;if(!n){if(r.files.length!==1||r.files[0].size!==Fa(e.length))throw new Error("x-openlist file list conflicts with torrent info");return}if(r.files.length!==n.length)throw new Error("x-openlist file count conflicts with torrent info");n.forEach((s,o)=>{let a=$d(s,"torrent file"),c=(Array.isArray(a.path)?a.path.map(dn):[]).join("/");if(r.files[o].path!==c||r.files[o].size!==Fa(a.length))throw new Error(`x-openlist file ${o} conflicts with torrent info`)})}async function wN(r,e){if(e==="oss")return{format:"oss",seed:x2(r)};if(e==="torrent")return yN(r);if(e==="cas")return mN(r);let t=Pa.decode(r.subarray(0,Math.min(r.length,32))).trimStart()[0];return t==="{"?{format:"oss",seed:x2(r)}:t==="d"?yN(r):mN(r)}async function PA(r,e){return e==="oss"?mie(r):e==="torrent"?C2(r):yie(r)}var Ta=Qr(vm(),1);async function xN(){let[r,e,t]=await Promise.all([(0,Ta.createMD5)(),(0,Ta.createSHA1)(),(0,Ta.createSHA256)()]);return{md5:r.init(),sha1:e.init(),sha256:t.init()}}function CN(r,e){r.md5.update(e),r.sha1.update(e),r.sha256.update(e)}function E2(r){return{md5:r.md5.digest("hex").toLowerCase(),sha1:r.sha1.digest("hex").toLowerCase(),sha256:r.sha256.digest("hex").toLowerCase()}}function xie(r){r.md5.init(),r.sha1.init(),r.sha256.init()}var TA=class r{constructor(e,t){this.pieceSize=t;this.hasher=e.init()}pieceSize;hasher;written=0;hashes=[];static async create(e){return new r(await(0,Ta.createSHA1)(),e)}update(e){let t=0;for(;t<e.length;){let i=Math.min(this.pieceSize-this.written,e.length-t);this.hasher.update(e.subarray(t,t+i)),this.written+=i,t+=i,this.written===this.pieceSize&&this.finishPiece()}}digest(){return this.written>0&&this.finishPiece(),[...this.hashes]}finishPiece(){this.hashes.push(this.hasher.digest("hex").toLowerCase()),this.hasher.init(),this.written=0}};async function B2(r,e,t,i,n){if(!Number.isSafeInteger(t)||t<0||t>i)throw new Error(`File exceeds the hashing limit of ${i} bytes`);let s=await xN(),o=await xN(),a={md5:[],sha1:[],sha256:[]},c=r.getReader(),l=0,d=0;try{for(;;){let{done:u,value:f}=await c.read();if(u)break;if(!f?.length)continue;if(l+f.length>i||l+f.length>t)throw new Error("Downloaded file size exceeds the declared or configured limit");l+=f.length,n?.update(f),CN(s,f);let h=0;for(;h<f.length;){let g=Math.min(e-d,f.length-h);if(CN(o,f.subarray(h,h+g)),d+=g,h+=g,d===e){let p=E2(o);a.md5.push(p.md5),a.sha1.push(p.sha1),a.sha256.push(p.sha256),xie(o),d=0}}}}finally{c.releaseLock()}if(l!==t)throw new Error(`Downloaded file size mismatch: expected ${t}, received ${l}`);if(d>0){let u=E2(o);a.md5.push(u.md5),a.sha1.push(u.sha1),a.sha256.push(u.sha256)}return{size:l,hashes:{...E2(s),pieces:a}}}var ys=new Xe,rw=10*1024*1024,k2=512*1024*1024,EN=1e3,Cie=8*1024*1024,BN=4*1024*1024;function An(r,e,t){let i=r.env?.[e]??(typeof process<"u"?process.env?.[e]:void 0),n=Number(i);return Number.isSafeInteger(n)&&n>0?n:t}function UA(r){try{return typeof r.executionCtx?.waitUntil!="function"?void 0:{waitUntil:e=>r.executionCtx.waitUntil(e)}}catch{return}}function qr(r,e,t){return r.json({code:e,message:t,data:null},e)}async function Yd(r){let e=An(r,"SEED_MAX_METADATA_SIZE",rw);if(Number(r.req.header("Content-Length")||0)>e)throw new Error(`Seed request exceeds the ${e} byte limit`);let i=await r.req.text();if(new TextEncoder().encode(i).byteLength>e)throw new Error(`Seed request exceeds the ${e} byte limit`);return i.trim()?JSON.parse(i):{}}function po(r,e="/"){let t=String(r||e).replace(/\\/g,"/").trim();if(t.includes("\0"))throw new Error("Path contains an illegal null byte");let i=t.split("/").filter(Boolean);if(i.some(n=>n==="."||n===".."))throw new Error("Path traversal is not allowed");return"/"+i.join("/")}function S2(r,e){return po(`${r.replace(/\/+$/,"")}/${e}`)}function bN(r,e){if(!pt(r))throw new Error("Permission denied");let t=po(e);if(t==="/@s"||t.startsWith("/@s/"))throw new Error("Writing through a share path is not allowed");let i=We(r,t),n=po(r?.base_path||"/");if(n!=="/"&&i!==n&&!i.startsWith(`${n}/`))throw new Error("Target path is outside the user base path");return i}function Eie(r,e){if(r instanceof Uint8Array)return r;if(Array.isArray(r)&&r.every(t=>Number.isInteger(t)&&t>=0&&t<=255))return Uint8Array.from(r);if(typeof r!="string")throw new Error("Seed content is required");return e==="text"||r.trimStart().startsWith("{")||r.trimStart().startsWith("d")?new TextEncoder().encode(r):new Uint8Array(Buffer.from(r,"base64"))}function iw(r){let e=String(r||"").toLowerCase().replace(/^\./,"");return e==="oss"||e==="torrent"||e==="cas"?e:void 0}function vN(r,e){return`${r.name.replace(/[\\/:*?"<>|\0]/g,"_")||"seed"}.${e==="torrent"?"torrent":e}`}function b2(r){let e=r.split("/").pop()||r,t=e.lastIndexOf(".");return t>0?e.slice(0,t):e}function Bie(r){if(r.length===0)return"OpenList Seed";if(r.length===1)return b2(r[0].virtualPath);let e=b2(r[0].virtualPath);if(r.every(o=>b2(o.virtualPath)===e)&&e)return e;let n=r[0].virtualPath.split("/").slice(0,-1);for(let o of r.slice(1)){let a=o.virtualPath.split("/").slice(0,-1),c=0;for(;c<n.length&&c<a.length&&n[c]===a[c];)c++;n=n.slice(0,c)}return n[n.length-1]||"OpenList Seed"}function D2(r,e,t,i={}){let n=Buffer.from(t).toString("base64");return{format:e,file_name:vN(r,e),seed_data:n,size:t.byteLength,seed:r,...i}}function kN(r){let e=r.env?.ALLOW_SEED??(typeof process<"u"?process.env?.ALLOW_SEED:"");return String(e||"").split(/[\s,;]+/).map(t=>t.toLowerCase()).filter(Boolean)}function SN(r,e){let t=r.toLowerCase();return e.some(i=>i.startsWith("*.")?t.endsWith(i.slice(1))&&t!==i.slice(2):t===i)}function v2(r,e){if(!e.url)throw new Error("Seed source URL is required");let t=new URL(r.req.url),i=new URL(e.url,t.origin);if(zr(i.toString(),"Seed source"),i.username||i.password)throw new Error("Seed source URL credentials are not allowed");let n=e.type.toLowerCase(),s=i.origin===t.origin&&(/^\/(api\/)?p\//.test(i.pathname)||i.pathname.startsWith("/d/")||i.pathname.startsWith("/@s/")),o=["share","openlist-share"].includes(n)&&i.pathname.startsWith("/@s/"),a=["direct","openlist-direct"].includes(n)&&s;if(!o&&!a&&!SN(i.hostname,kN(r)))throw new Error("Seed source host is not an approved OpenList endpoint or configured domain");if(e.expires_at){let c=Date.parse(e.expires_at);if(!Number.isFinite(c)||c<=Date.now())throw new Error("Seed source has expired")}return i}async function nw(r,e,t={},i=!1){let n=e;for(let s=0;s<=3;s++){if(zr(n.toString(),"Seed fetch"),i){let c=new URL(r.req.url);if(!(n.origin===c.origin&&(/^\/(api\/)?p\//.test(n.pathname)||n.pathname.startsWith("/@s/")))&&!SN(n.hostname,kN(r)))throw new Error("Seed fetch redirect left the approved source allowlist")}let o=await fetch(n,{...t,redirect:"manual"});if(o.status<300||o.status>=400)return o;let a=o.headers.get("Location");if(!a)throw new Error("Seed fetch redirect is missing a Location header");n=new URL(a,n)}throw new Error("Seed fetch exceeded the redirect limit")}async function bie(r,e,t){let i=We(e,po(t)),{item:n}=await Di(i,UA(r)),s=An(r,"SEED_MAX_METADATA_SIZE",rw);if(n.is_dir||n.size<0||n.size>s)throw new Error(`Seed file exceeds the ${s} byte limit`);let o=n.raw_url||`${new URL(r.req.url).origin}/api/p${i}`,a=n.raw_url_headers||{};!n.raw_url&&r.req.header("Authorization")&&(a.Authorization=r.req.header("Authorization"));let c=await nw(r,new URL(o,r.req.url),{headers:a});if(!c.ok)throw new Error(`Seed file download failed with HTTP ${c.status}`);if(Number(c.headers.get("Content-Length")||n.size)>s)throw new Error(`Seed file exceeds the ${s} byte limit`);let d=c.body?.getReader();if(!d)throw new Error("Seed file response has no body");let u=[],f=0;for(;;){let{done:p,value:I}=await d.read();if(p)break;if(I?.length){if(f+=I.length,f>s)throw new Error(`Seed file exceeds the ${s} byte limit`);u.push(I)}}let h=new Uint8Array(f),g=0;for(let p of u)h.set(p,g),g+=p.length;return h}async function RA(r,e,t){if(t.seed&&typeof t.seed=="object")return{format:"oss",seed:Ki(t.seed)};let i=An(r,"SEED_MAX_METADATA_SIZE",rw),n=t.seed_data||t.content||t.data||t.torrent_data,s=t.seed_path||t.path&&!n?await bie(r,e,String(t.seed_path||t.path)):Eie(t.seed_data??t.content??t.data??t.torrent_data,t.encoding);if(s.byteLength>i)throw new Error(`Seed content exceeds the ${i} byte limit`);return wN(s,iw(t.format||t.from_format||t.file_name?.split(".").pop()))}async function Q2(r,e,t){let i=Array.isArray(t)?t:[t];if(!i.length||i.some(a=>typeof a!="string"||!a.trim()))throw new Error("paths must contain at least one path");let n=An(r,"SEED_MAX_FILES",EN),s=[],o=async(a,c)=>{if(s.length>=n)throw new Error(`Seed file count exceeds the ${n} file limit`);let l=We(e,a),{item:d}=await Di(l,UA(r));if(!d.is_dir){let f=d.raw_url||`${new URL(r.req.url).origin}/api/p${l}`,h={...d.raw_url_headers||{}};!d.raw_url&&r.req.header("Authorization")&&(h.Authorization=r.req.header("Authorization")),s.push({virtualPath:l,relativePath:gN(c),size:d.size,modified:d.modified||"",rawUrl:f,headers:h,hashes:d.hashes??(d.hash?{md5:d.hash}:{})});return}let{content:u}=await Zt(l,UA(r));for(let f of u){let h=S2(a,f.name),g=`${c.replace(/\/$/,"")}/${f.name}`;await o(h,g)}};for(let a of i){let c=po(a),l=c.split("/").filter(Boolean).pop()||"root";await o(c,l)}if(!s.length)throw new Error("No files were found for seed generation");return s}function Vd(r,e){if(e==="cas"){let t=[];for(let i of r.files){i.hashes.md5||t.push(`${i.path}: missing whole-file MD5`);let n=!!i.cas_slice_md5,s=r.piece_size===10485760&&i.hashes.pieces.md5.length>0;i.size>10485760&&!n&&!s&&t.push(`${i.path}: missing legacy slice MD5 or complete 10 MiB MD5 pieces`)}return t}if(e==="torrent"){let t=[];return r.files.forEach((i,n)=>{i.hashes.pieces.sha1.length||t.push(`${i.path}: missing SHA-1 piece hashes`),r.files.length>1&&n<r.files.length-1&&i.size%r.piece_size!==0&&t.push(`${i.path}: piece boundary crosses the next file`)}),t}return[]}function vie(r){return{oss:Vd(r,"oss"),torrent:Vd(r,"torrent"),cas:Vd(r,"cas")}}function kie(r){return Object.fromEntries(["oss","torrent","cas"].map(e=>{let t=Vd(r,e);return[e,{feasible:t.length===0,missing:t}]}))}async function _2(r,e,t,i){if(!t)return;let n=bN(e,t);await Tn(n,Buffer.from(i),UA(r))}async function Sie(){try{let e=(await jn()).seed_default_matrix;if(e){let t=JSON.parse(String(e));if(t&&typeof t=="object")return t}}catch{}}async function Die(r){try{let e=await jn(),t=String(e.seed_site_url||"").trim();if(t)return t.replace(/\/+$/,"")}catch{}return new URL(r.req.url).origin}async function Qie(r,e,t){let i=e&&typeof e=="object"?e:null,n=!!i?.md5||!!i?.sha1||!!i?.sha256;if(!n)try{let o=(await jn()).seed_default_matrix;if(o){let a=JSON.parse(String(o));if(a?.md5||a?.sha1||a?.sha256)return ew(a,t)}}catch{}return ew(n?e:void 0,t)}async function _ie(r,e,t,i){let n=i.includes("cas")?10485760:Number(t.piece_size||10485760);if(!Number.isSafeInteger(n)||n<16*1024||n>64*1024*1024)throw new Error("Invalid piece_size");let s=await Qie(r,t.hash_matrix,i),o=t.file_comments&&typeof t.file_comments=="object"?t.file_comments:{},a=await Q2(r,e,t.paths??t.path),c=An(r,"SEED_MAX_HASH_BYTES",k2),l=a.reduce((h,g)=>h+g.size,0);if(!Number.isSafeInteger(l)||l>c)throw new Error(`Seed input exceeds the ${c} byte hashing limit`);let d=await TA.create(n),u=await Die(r),f=[];for(let h of a){let g=await nw(r,new URL(h.rawUrl,r.req.url),{headers:h.headers});if(!g.ok)throw new Error(`Source download failed with HTTP ${g.status}: ${h.virtualPath}`);if(!g.body)throw new Error(`Source download has no body: ${h.virtualPath}`);let p=await B2(g.body,n,h.size,c,d),I=String(o[h.relativePath]??o[h.virtualPath]??"");f.push(y2({path:h.relativePath,size:p.size,modified:h.modified,comment:I,hashes:p.hashes,cas_slice_md5:"",cas_create_time:"",cas_cloud:"",missing_channels:[],sources:t.include_direct_source===!0||t.include_sources===!0?[{type:"openlist-direct",url:`${u}/d${h.virtualPath}`,expires_at:"",share_id:""}]:[]},s))}return{torrentPieces:d.digest(),seed:Ki({name:String(t.name||Bie(a)),comment:String(t.comment||"Generated by OpenList"),created_at:new Date().toISOString(),created_by:String(t.created_by||"OpenList"),piece_size:n,trackers:Array.isArray(t.trackers)?t.trackers:[],channels:Array.isArray(t.channels)?t.channels:[],files:f})}}function F2(r,e){for(let t of e.sources)try{return{source:t,url:v2(r,t)}}catch{continue}}async function Fie(r,e,t,i,n,s=!1){let o=bN(e,i),a=o.split("/").filter(Boolean),c=a.pop();if(!c)throw new Error("Target file name is required");let l="/"+a.join("/"),d=await tt(o),u=await tt(l);if(d.isVirtual||u.isVirtual||!d.storage)throw new Error("Target storage was not found");let f=await lt(d.storage.driver,d.storage),h=f,g={size:t.size,md5:t.hashes.md5,sha1:t.hashes.sha1,sha256:t.hashes.sha256,hashes:t.hashes};try{if(typeof h.rapidUpload=="function"){let w=await h.rapidUpload(o,d.physical,g);if(w===!0||w?.reuse||w?.success)return{status:"reused",method:"rapidUpload"}}if(typeof h.putRapid=="function"){let w=await h.putRapid(o,d.physical,g);if(w===!0||w?.reuse||w?.success)return{status:"reused",method:"putRapid"}}let p;if(typeof h.createUploadSession=="function"&&(p=await h.createUploadSession(l,u.physical,c,t.size,t.hashes.md5),p?.reuse))return{status:"reused",method:"multipart-rapid"};if(s)throw new Error("capability unavailable: target driver did not reuse the available hashes");if(!n)throw new Error("capability unavailable: no rapid-upload match and no approved source URL");let I=await nw(r,n.url,{},!0);if(!I.ok||!I.body)throw new Error(`Source download failed with HTTP ${I.status}`);if(p?.session&&typeof h.uploadPart=="function"&&typeof h.completeUploadSession=="function"){let w=Math.min(An(r,"SEED_TRANSFER_CHUNK_SIZE",Cie),16777216),C=I.body.getReader(),b=new Uint8Array(0),x=1,_=0,R=[];for(;;){let{done:U,value:T}=await C.read();if(T?.length){if(_+=T.length,_>t.size)throw new Error("Source exceeds the declared file size");let D=new Uint8Array(b.length+T.length);for(D.set(b),D.set(T,b.length),b=D;b.length>=w;){let B=b.slice(0,w);b=b.slice(w);let Q=await h.uploadPart(p.session,x++,Buffer.from(B));Q?.partMd5&&R.push(Q.partMd5)}}if(U)break}if(_!==t.size)throw new Error("Source size does not match seed metadata");if(b.length||t.size===0){let U=await h.uploadPart(p.session,x,Buffer.from(b));U?.partMd5&&R.push(U.partMd5)}return await h.completeUploadSession(p.session,R),{status:"saved",method:"multipart-stream"}}if(typeof h.putStream=="function")return await h.putStream(o,d.physical,I.body,t.size,g),{status:"saved",method:"putStream"};let y=An(r,"SEED_BUFFERED_TRANSFER_MAX",BN);if(t.size<=y){let w=new Uint8Array(await I.arrayBuffer());if(w.byteLength!==t.size)throw new Error("Source size does not match seed metadata");return await f.put(o,d.physical,Buffer.from(w)),{status:"saved",method:"bounded-buffer"}}throw new Error("capability unavailable: target driver has no streaming or multipart upload API")}finally{await Jt(d.storage.driver,d.storage,f,UA(r))}}ys.get("/capabilities",async r=>{let e=await Me(r);if(!e||e.disabled)return qr(r,401,"Unauthorized");let t,i=r.req.query("path");if(i)try{let n=We(e,po(i)),s=await tt(n);if(!s.isVirtual&&s.storage){let a=await lt(s.storage.driver,s.storage);t={driver:s.storage.driver,rapid_upload:typeof a.rapidUpload=="function"||typeof a.putRapid=="function"||typeof a.createUploadSession=="function",stream_upload:typeof a.putStream=="function"||typeof a.createUploadSession=="function"&&typeof a.uploadPart=="function"&&typeof a.completeUploadSession=="function"}}}catch(n){t={error:Ne(n)}}return r.json({code:200,message:"success",data:{formats:["oss","torrent","cas"],version:1,hash_algorithms:["md5","sha1","sha256"],incremental_hashing:!0,torrent_v1:!0,extensions:["x-openlist","x-cas"],offline_download:"conditional",queue_adapter:!1,limits:{metadata_bytes:An(r,"SEED_MAX_METADATA_SIZE",rw),hash_bytes:An(r,"SEED_MAX_HASH_BYTES",k2),files:An(r,"SEED_MAX_FILES",EN)},target:t}})});ys.post("/capabilities",async r=>{let e=await Me(r);if(!e||e.disabled)return qr(r,401,"Unauthorized");try{let t=await Yd(r);if(Array.isArray(t.paths)&&t.paths.length>0){let g=await Q2(r,e,t.paths),p=await jn(),I=String(p.seed_default_trackers||"").split(` -`).map(x=>x.trim()).filter(Boolean),y=["md5","sha1","sha256"],w=g.map(x=>{let _=y.filter(U=>!!x.hashes[U]),R=_.length<y.length;return{path:x.virtualPath,name:x.relativePath,size:x.size,available_hashes:_,requires_download:R,requires_fetch:R,estimated_traffic:R?x.size:0,streamable:!0,share_available:!0,direct_source_available:!0}}),C=new Set;for(let x of g)for(let _ of y)x.hashes[_]&&C.add(_);let b=y.filter(x=>C.has(x));return r.json({code:200,message:"success",data:{formats:{oss:!0,torrent:!0,cas:!0},files:w,existing_hashes:b,estimated_traffic:w.reduce((x,_)=>x+_.estimated_traffic,0),default_matrix:await Sie(),trackers:I}})}let i=await RA(r,e,t),n=We(e,po(t.path)),s=await tt(n);if(s.isVirtual||!s.storage)throw new Error("Target storage was not found");let a=await lt(s.storage.driver,s.storage),c=typeof a.rapidUpload=="function"||typeof a.putRapid=="function"||typeof a.createUploadSession=="function",l=Array.isArray(a.rapidHashAlgos)?a.rapidHashAlgos.map(g=>String(g).toLowerCase()).filter(g=>["md5","sha1","sha256"].includes(g)):["md5","sha1"],d=typeof a.rapidHashNeedsPieces=="boolean"?a.rapidHashNeedsPieces:!1,u=typeof a.putStream=="function"||typeof a.createUploadSession=="function"&&typeof a.uploadPart=="function"&&typeof a.completeUploadSession=="function",f=An(r,"SEED_BUFFERED_TRANSFER_MAX",BN),h=i.seed.files.map(g=>{let p=l.some(C=>!!g.hashes[C])||!1,I=d?p&&(g.hashes.pieces.md5.length>0||g.hashes.pieces.sha1.length>0):p,y=!!F2(r,g),w="download_required";return c&&I?w="rapid_upload":y&&u?w="stream_upload":y&&g.size<=f&&(w="bounded_upload"),{path:g.path,method:w,requires_download:w==="download_required"}});return r.json({code:200,message:"success",data:{driver:s.storage.driver,policy:String(t.policy||"inherit"),driver_supports:{cas_rapid:c,rapid_hash_algos:l,rapid_uses_pieces:d},files:h}})}catch(t){return qr(r,400,Ne(t))}});ys.post("/generate",async r=>{let e=await Me(r);if(!e||e.disabled)return qr(r,401,"Unauthorized");try{let t=await Yd(r);if((t.save_path||t.output_path)&&!pt(e))return qr(r,403,"Permission denied");let n=(Array.isArray(t.formats)?t.formats:[t.format||"oss"]).map(iw);if(n.some(d=>!d))throw new Error("A valid output format is required");let s=n,{seed:o,torrentPieces:a}=await _ie(r,e,t,s),c=t.output_path||(Array.isArray(t.formats)?t.save_path:void 0),l=[];for(let d of s){let u=Vd(o,d);if(u.length){l.push({format:d,convertible:!1,diagnostics:u});continue}let f=d==="torrent"?await C2(o,a):await PA(o,d),h=c?S2(po(c),vN(o,d)):t.save_path;await _2(r,e,h,f),l.push(D2(o,d,f,{convertible:!0,...h?{path:h}:{}}))}return r.json({code:200,message:"success",data:Array.isArray(t.formats)?{seed:o,outputs:l,artifacts:l}:l[0]})}catch(t){let i=Ne(t);return qr(r,i.includes("limit")||i.includes("exceeds")?413:400,i)}});ys.post("/parse",async r=>{let e=await Me(r);if(!e||e.disabled)return qr(r,401,"Unauthorized");try{let t=await Yd(r),i=await RA(r,e,t),n=i.seed.files.reduce((a,c)=>a+c.size,0),s=i.seed.files.some(a=>!!F2(r,a)),o=i.seed.files.some(a=>!!a.hashes.md5||!!a.hashes.sha1||!!a.hashes.sha256);return r.json({code:200,message:"success",data:{format:i.format,seed:i.seed,files:i.seed.files,total_size:n,diagnostics:vie(i.seed),conversions:kie(i.seed),capabilities:{rapid_upload:o,offline_download:s,transfer:s,convert:!0,edit:!0,recalculate:!0},direct_preview:!1,...i.info_hash?{info_hash:i.info_hash}:{}}})}catch(t){return qr(r,400,Ne(t))}});ys.post("/convert",async r=>{let e=await Me(r);if(!e||e.disabled)return qr(r,401,"Unauthorized");try{let t=await Yd(r);if(t.save_path&&!pt(e))return qr(r,403,"Permission denied");let i=iw(t.to_format||t.target_format||t.output_format);if(!i)throw new Error("A valid target format is required");let n=await RA(r,e,t),s=Vd(n.seed,i);if(s.length)return r.json({code:200,message:"success",data:{convertible:!1,diagnostics:s}});let o=await PA(n.seed,i);return await _2(r,e,t.save_path,o),r.json({code:200,message:"success",data:D2(n.seed,i,o,{convertible:!0})})}catch(t){return qr(r,400,Ne(t))}});function Pie(r,e,t,i){if(!e)return;let n=!1;for(let s of i.values())if(s){n=!0;break}n&&!r.channels.some(s=>s.driver===e)&&r.channels.push({driver:e,mount_path:t});for(let s of r.files){if(!i.has(s.path))continue;i.get(s.path)?s.missing_channels=s.missing_channels.filter(a=>a!==e):s.missing_channels.includes(e)||s.missing_channels.push(e)}}async function DN(r,e){let t=await Me(r);if(!pt(t))return qr(r,403,"Permission denied");if(!e&&!_a(t,Qa.OFFLINE_DOWNLOAD))return qr(r,403,"Offline download permission is required");try{let i=await Yd(r),n=await RA(r,t,i),s=po(i.target_path||i.destination||i.path||"/"),o=new Set(Array.isArray(i.files)?i.files.map(p=>String(p)):[]),a=new Set(Array.isArray(i.selected_files)?i.selected_files.map(p=>Number(p)):[]);if([...a].some(p=>!Number.isSafeInteger(p)||p<0||p>=n.seed.files.length))throw new Error("selected_files contains an invalid index");let c="",l="";try{let p=await tt(We(t,s));!p.isVirtual&&p.storage&&(c=p.storage.driver||"",l=p.storage.mount_path||"")}catch{}let d=n.seed.files.filter((p,I)=>o.size?o.has(p.path):a.size?a.has(I):!0),u=[],f=new Map,h=0;for(let p of d){let I=S2(s,p.path),y=F2(r,p);try{if(!e&&!y)throw new Error("capability unavailable: offline download requires an approved source URL");let w=await Fie(r,t,p,I,y,e);h++,f.set(p.path,!0),u.push({path:p.path,target:I,...w})}catch(w){f.set(p.path,!1),u.push({path:p.path,target:I,status:"unavailable",error:Ne(w)})}}if(h===0)return r.json({code:501,message:e?"capability unavailable: target driver cannot reuse hashes and no transferable source is available":"capability unavailable: no approved source and streaming upload combination is available",data:{results:u}},501);let g={total:u.length,saved:h,results:u};if(i.update_channel===!0&&c){Pie(n.seed,c,l,f);let p=await PA(n.seed,n.format);g.seed_data=Buffer.from(p).toString("base64"),g.seed=n.seed}return r.json({code:200,message:"success",data:g})}catch(i){return qr(r,400,Ne(i))}}ys.post("/rapid_upload",r=>DN(r,!0));ys.post("/offline_download",r=>DN(r,!1));ys.post("/update",async r=>{let e=await Me(r);if(!e||e.disabled)return qr(r,401,"Unauthorized");try{let t=await Yd(r);if(t.save_path&&!pt(e))return qr(r,403,"Permission denied");let i=await RA(r,e,t),n=t.patch&&typeof t.patch=="object"?t.patch:t,s=t.options&&typeof t.options=="object"?t.options:{},o=n.comment??s.comment,a=!!(n.recalculate??s.recalculate),c=Ki({...i.seed,name:n.name??i.seed.name,comment:o??i.seed.comment,trackers:n.trackers??i.seed.trackers,channels:n.channels??i.seed.channels,files:n.files??i.seed.files}),l=t.file_comments&&typeof t.file_comments=="object"?t.file_comments:{},d=t.file_sources&&typeof t.file_sources=="object"?t.file_sources:{};for(let h of c.files)if(l[h.path]!==void 0&&(h.comment=String(l[h.path])),Array.isArray(d[h.path])){for(let g of d[h.path])v2(r,g);h.sources=d[h.path]}if(a){let h=Number(t.piece_size||i.seed.piece_size||10485760);if(!Number.isSafeInteger(h)||h<16*1024||h>64*1024*1024)throw new Error("Invalid piece_size");c.piece_size=h;let g=ew(t.hash_matrix,[i.format]),p=Array.isArray(t.recalc_files)?t.recalc_files:[];if(!p.length)throw new Error("recalculate requires at least one recalc_files entry");let I=new Map;for(let C of p)typeof C?.source_path=="string"&&C.source_path.trim()&&I.set(String(C.path),C.source_path);let y=await TA.create(h),w=An(r,"SEED_MAX_HASH_BYTES",k2);for(let C of c.files){let b=I.get(C.path);if(!b)continue;let x=await Q2(r,e,[b]);if(x.length!==1)throw new Error(`Recalculate path must resolve to exactly one file: ${b}`);let _=x[0],R=await nw(r,new URL(_.rawUrl,r.req.url),{headers:_.headers});if(!R.ok||!R.body)throw new Error(`Recalculate download failed with HTTP ${R.status}`);let U=await B2(R.body,h,_.size,w,y);C.hashes=y2({...C,hashes:U.hashes},g).hashes,C.size=U.size,C.cas_slice_md5="",C.cas_create_time=""}}for(let h of c.files)for(let g of h.sources)v2(r,g);let u=iw(t.output_format||t.to_format)||i.format,f=await PA(c,u);return await _2(r,e,t.save_path,f),r.json({code:200,message:"success",data:D2(c,u,f)})}catch(t){return qr(r,400,Ne(t))}});var sw=new Map,Tie=1*1024*1024,Uie=64*1024*1024,Rie=10*1024*1024;function QN(r){return!Number.isFinite(r)||r<=0?Rie:Math.min(Uie,Math.max(Tie,Math.floor(r)))}function Nie(r){let e=Array.from(r).sort((s,o)=>s-o);if(e.length===0)return[];let t=[],i=e[0],n=e[0];for(let s=1;s<e.length;s++)e[s]===n+1?n=e[s]:(t.push([i,n]),i=n=e[s]);return t.push([i,n]),t}function Xc(r){let e=Nie(r.received),t=r.received.size*r.chunk_size,i=0;for(let s=0;s<r.total_chunks&&r.received.has(s);s++)i=s+1;let n=r.total_chunks>0?Math.floor(r.received.size/r.total_chunks*100):0;return{upload_id:r.upload_id,state:r.state,attempt:r.attempt,path:r.path,size:r.size,chunk_size:r.chunk_size,total_chunks:r.total_chunks,received:e,received_bytes:t,frontier:i,storage_progress:n,error:r.error}}function ow(r){return sw.get(r)}function _N(r,e){for(let t of sw.values())if(t.path===r&&t.size===e&&(t.state==="receiving"||t.state==="failed_retriable"))return t}function NA(r){sw.set(r.upload_id,r)}function FN(r){sw.delete(r)}function PN(){return`mp_${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}`}async function qie(r){try{let e=await tt(r);return e?.storage?cN(e.storage):!1}catch{return!1}}var dt=new Xe;dt.route("/seed",ys);var _t=r=>{try{let e=r.executionCtx;return!e||typeof e.waitUntil!="function"?void 0:{waitUntil:t=>e.waitUntil(t),env:r.env}}catch{return}},cr=r=>r.json({code:403,message:"Permission denied",data:null},403),Oie=25*1024*1024,Mie=16*1024*1024;function Lie(r,e){let t=r.env||{},i=e?"MAX_UPPART":"MAX_UPLOAD",n=t[i]||(typeof process<"u"?process.env?.[i]:"");if(n){let s=parseInt(String(n),10);if(Number.isFinite(s)&&s>0)return s}return e?Mie:Oie}function aw(r,e=!1){let t=parseInt(r.req.header("Content-Length")||"0",10);if(!t)return null;let i=Lie(r,e);return t>i?i:null}var P2=(r,e)=>{let t=e==="wrong password",i=e||"share error";return r.json({code:t?403:400,message:i,data:null},t?403:400)};dt.post("/dirs",async r=>{let e=await r.req.json().catch(()=>({})),t=await Me(r),i=e.path||"/";if(!i.startsWith("/@s")&&(!t||t.disabled))return r.json({code:401,message:"Unauthorized",data:null},401);let s=_t(r),o=i;(!e.force_root||!ms(t))&&(o=We(t,o));try{if(o.startsWith("/@s")){let l=await Md(o,e.password||"",r.env);if(!l.ok)return P2(r,l.error);if(l.virtualList){let f=[];for(let h of l.share.files||[])try{let{item:g}=await Di(h,s);if(g.is_dir){let p=String(h).split("/").filter(Boolean);f.push({name:p[p.length-1]||h,modified:g.modified||new Date().toISOString()})}}catch{}return r.json({code:200,message:"success",data:f})}let{content:d}=await Zt(l.realPath,s),u=d.filter(f=>f.is_dir).map(f=>({name:f.name,modified:f.modified||new Date().toISOString()}));return r.json({code:200,message:"success",data:u})}let{content:a}=await Zt(o,s),c=a.filter(l=>l.is_dir).map(l=>({name:l.name,modified:l.modified||new Date().toISOString()}));return r.json({code:200,message:"success",data:c})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.post("/list",async r=>{let e=await r.req.json().catch(()=>({})),t=await Me(r);if(!(e.path||"/").startsWith("/@s")&&(!t||t.disabled))return r.json({code:401,message:"Unauthorized",data:null},401);let n=_t(r),s=We(t,e.path||"/"),o=parseInt(e.page,10)||1,a=parseInt(e.per_page,10)||0,c=l=>{let d=l.length;if(a<=0)return{content:l,total:d};let f=(Math.max(1,o)-1)*a,h=f+a;return{content:l.slice(f,h),total:d}};try{if(s.startsWith("/@s")){let B=await Md(s,e.password||"",r.env);if(!B.ok)return P2(r,B.error);if(B.virtualList){let J=[];for(let G of B.share.files||[]){let K=String(G).split("/").filter(Boolean),$=K[K.length-1]||G;try{let{item:te}=await Di(G,n);J.push({name:$,size:te.size||0,is_dir:!!te.is_dir,modified:te.modified||new Date().toISOString(),sign:"",thumb:te.thumb||"",type:te.type??0})}catch{try{await Zt(G,n),J.push({name:$,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",thumb:"",type:1})}catch{J.push({name:$,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",thumb:"",type:0})}}}let{content:z,total:L}=c(J);return r.json({code:200,message:"success",data:{content:z,total:L,readme:B.share.readme||"",header:B.share.header||"",write:!1,write_content_bypass:!1,provider:"Share"}})}let{content:Q,provider:v}=await Zt(B.realPath,n),E=Q.map(J=>({name:J.name,size:J.size,is_dir:J.is_dir,created:J.created||J.modified||new Date().toISOString(),modified:J.modified||new Date().toISOString(),sign:J.sign||"",thumb:J.thumb||"",type:J.type??0})),{content:P,total:N}=c(E);return r.json({code:200,message:"success",data:{content:P,total:N,readme:B.share.readme||"",header:B.share.header||"",write:!1,write_content_bypass:!1,provider:v}})}let l=await d2(s,r.env);if(!u2(t,l,s,e.password||""))return r.json({code:403,message:"Access denied (wrong password or not in read_users)",data:null},403);if(await qie(s))return r.json({code:403,message:"Index is disabled for this storage",data:null},403);let{content:d,provider:u,storage:f}=await Zt(s,n),h=pt(t)&&f2(t,l,s),g=A2(l,s),p=await zd(r),I=await WI(r,s),y=p.enabled||I,w=y?p.expiresIn||await DA(r):0,C=await Promise.all(d.filter(B=>!iN(l,s,B.name)).map(async B=>{let Q=`${s}/${B.name}`.replace(/\/{2,}/g,"/"),v=!B.is_dir&&y?await QA(r,Q,w):"",E=B.hashinfo||B.hash_info_str||"",P=B.hash_info||{};return{name:B.name,size:B.size,is_dir:B.is_dir,created:B.created||B.modified||new Date().toISOString(),modified:B.modified||new Date().toISOString(),sign:v,thumb:B.thumb||"",type:B.type??0,hashinfo:E,hash_info:P}})),b=0;if(f&&(b=parseInt(f.page_size,10)||0,!b&&f.addition))try{let B=typeof f.addition=="string"?JSON.parse(f.addition):f.addition;b=parseInt(B?.page_size,10)||0}catch{}let x=a>0?a:b>0?b:0,_=B=>{let Q=B.length;if(x<=0)return{content:B,total:Q};let E=(Math.max(1,o)-1)*x,P=E+x;return{content:B.slice(E,P),total:Q}},R=(()=>{if(!f)return[];let B=[],Q=f;if(/^(s3|minio|cos|oss|r2|b2|cloudflare_r2)/i.test(Q.driver||"")&&B.push("s3_presigned"),Array.isArray(Q.direct_upload_tools))for(let v of Q.direct_upload_tools)B.includes(v)||B.push(v);return B})(),{content:U,total:T}=_(C),D=f?lN(f,s):void 0;return r.json({code:200,message:"success",data:{content:U,total:T,readme:h2(l,s),header:g2(l,s),write:h,write_content_bypass:g,provider:u,direct_upload_tools:R,page_size:x>0?x:void 0,cache_expiration:D}})}catch(l){return r.json({code:500,message:Ne(l),data:null})}});dt.post("/get",async r=>{let e=await r.req.json().catch(()=>({})),t=await Me(r);if(!(e.path||"/").startsWith("/@s")&&(!t||t.disabled))return r.json({code:401,message:"Unauthorized",data:null},401);let n=_t(r),s=We(t,e.path||"/");try{if(s.startsWith("/@s")){let I=await Md(s,e.password||"",r.env);if(!I.ok)return P2(r,I.error);if(I.virtualList){let x=s.split("/").filter(Boolean)[1]||"share";return r.json({code:200,message:"success",data:{name:x,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",thumb:"",type:1,raw_url:"",readme:I.share.readme||"",header:I.share.header||"",provider:"Share",related:[],write:!1,write_content_bypass:!1}})}let y=s.split("/").filter(Boolean)[1]||"",{item:w,provider:C}=await Di(I.realPath,n),b=s.replace(/^\/@s\/[^/]+/,"");return r.json({code:200,message:"success",data:{name:w.name,size:w.size,is_dir:w.is_dir,created:w.created||w.modified||new Date().toISOString(),modified:w.modified,sign:w.sign||"",thumb:w.thumb||"",type:w.type??0,raw_url:`/api/sd/${y}${b}`,readme:I.share.readme||"",header:I.share.header||"",provider:C,related:[],write:!1,write_content_bypass:!1}})}let o=await d2(s,r.env);if(!u2(t,o,s,e.password||""))return r.json({code:403,message:"Access denied (wrong password or not in read_users)",data:null},403);let{item:a,provider:c,rawUrl:l}=await Di(s,n),d=await zd(r),u=d.enabled||await WI(r,s),f=!a.is_dir&&u?await QA(r,s,d.expiresIn||await DA(r)):"",h=pt(t)&&f2(t,o,s),g=A2(o,s),p=[];if(!a.is_dir)try{let I=s.includes("/")&&s.slice(0,s.lastIndexOf("/"))||"/",y=a.name.includes(".")?a.name.slice(0,a.name.lastIndexOf(".")):a.name,{content:w}=await Zt(I,n);p=w.filter(C=>C.name===a.name||C.is_dir?!1:(C.name.includes(".")?C.name.slice(0,C.name.lastIndexOf(".")):C.name)===y).map(C=>({name:C.name,size:C.size,is_dir:!1,modified:C.modified||new Date().toISOString(),sign:"",thumb:C.thumb||"",type:C.type??0}))}catch{p=[]}return r.json({code:200,message:"success",data:{name:a.name,size:a.size,is_dir:a.is_dir,created:a.created||a.modified||new Date().toISOString(),modified:a.modified,sign:f,thumb:a.thumb||"",type:a.type??0,raw_url:l,readme:h2(o,s),header:g2(o,s),provider:c,related:p,write:h,write_content_bypass:g}})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});function Wd(r){if(typeof r!="string"||!r.trim())throw new Error("Invalid or empty file name");let e=r.trim();if(e==="."||e===".."||e.includes("/")||e.includes("\\")||e.includes("\0"))throw new Error(`Illegal file name '${e}'`);return e}function mo(r){if(typeof r!="string")throw new Error("Path must be a string");if(r.includes("\0"))throw new Error("Path contains illegal null byte");return r}dt.post("/mkdir",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let i=(await r.req.json().catch(()=>({}))).path||"/";try{mo(i)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let n=We(e,i),s=_t(r);try{return await xA(n,s),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/rename",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,name:i}=await r.req.json().catch(()=>({})),n="";try{mo(t||"/"),n=Wd(i)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let s=_t(r);try{let o=We(e,t||"/");return await CA(o,n,s),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/remove",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{dir:t,names:i}=await r.req.json().catch(()=>({}));if(!Array.isArray(i)||i.length===0)return r.json({code:400,message:"Parameter 'names' must be a non-empty array",data:null},400);let n=[];try{mo(t||"/"),n=i.map(o=>Wd(o))}catch(o){return r.json({code:400,message:o.message,data:null},400)}let s=_t(r);try{let o=We(e,t||"/");return await ka(o,n,s),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/move",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,dst_dir:i,names:n}=await r.req.json().catch(()=>({}));if(!Array.isArray(n)||n.length===0)return r.json({code:400,message:"Parameter 'names' must be a non-empty array",data:null},400);let s=[];try{mo(t||"/"),mo(i||"/"),s=n.map(a=>Wd(a))}catch(a){return r.json({code:400,message:a.message,data:null},400)}let o=_t(r);try{let a=We(e,t||"/"),c=We(e,i||"/");return await Od(a,c,s,o),r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.post("/copy",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,dst_dir:i,names:n}=await r.req.json().catch(()=>({}));if(!Array.isArray(n)||n.length===0)return r.json({code:400,message:"Parameter 'names' must be a non-empty array",data:null},400);let s=[];try{mo(t||"/"),mo(i||"/"),s=n.map(a=>Wd(a))}catch(a){return r.json({code:400,message:a.message,data:null},400)}let o=_t(r);try{let a=We(e,t||"/"),c=We(e,i||"/");return await EA(a,c,s,o),r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.put("/put",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=decodeURIComponent(r.req.header("File-Path")||"");if(!t.trim())return r.json({code:400,message:"Missing File-Path header",data:null},400);try{mo(t)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let i=We(e,t),n=_t(r),s=aw(r);if(s!==null)return r.json({code:413,message:`File too large (max ${s} bytes)`,data:null},413);try{let o=await r.req.arrayBuffer();return await Tn(i,Buffer.from(o),n),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.put("/form",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=decodeURIComponent(r.req.header("File-Path")||"");if(!t.trim())return r.json({code:400,message:"Missing File-Path header",data:null},400);try{mo(t)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let i=We(e,t),n=_t(r),s=aw(r);if(s!==null)return r.json({code:413,message:`File too large (max ${s} bytes)`,data:null},413);try{let a=(await r.req.formData()).get("file");if(!a||typeof a=="string")return r.json({code:400,message:"missing file in form data",data:null});let c=Buffer.from(await a.arrayBuffer());return await Tn(i,c,n),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/upload/create",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,file_name:i,size:n,md5:s}=await r.req.json().catch(()=>({})),o=We(e,t||"/"),a=_t(r);if(!i)return r.json({code:400,message:"path and file_name are required",data:null});try{let c=await tt(o);if(c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(c.storage.driver,c.storage);if(typeof l.createUploadSession!="function")return r.json({code:200,message:"success",data:null});let d;try{d=await l.createUploadSession(o,c.physical,i,Number(n)||0,s||"")}finally{await Jt(c.storage.driver,c.storage,l,a)}return r.json({code:200,message:"success",data:d})}catch(c){return r.json({code:500,message:Ne(c),data:null})}});dt.put("/upload/part",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=r.req.header("X-Upload-Session")||"",i=parseInt(r.req.header("X-Part-Number")||"0",10),n=decodeURIComponent(r.req.header("Upload-Path")||""),s=We(e,n),o=_t(r);if(!t||!(i>=1)||!s)return r.json({code:400,message:"missing X-Upload-Session / X-Part-Number / Upload-Path",data:null});let a=aw(r,!0);if(a!==null)return r.json({code:413,message:`Part too large (max ${a} bytes)`,data:null},413);try{let c=await tt(s);if(c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(c.storage.driver,c.storage);if(typeof l.uploadPart!="function")throw new Error("storage does not support chunked upload");let d=Buffer.from(await r.req.arrayBuffer()),u;try{u=await l.uploadPart(t,i,d)}finally{await Jt(c.storage.driver,c.storage,l,o)}return r.json({code:200,message:"success",data:u??null})}catch(c){return r.json({code:500,message:Ne(c),data:null})}});dt.post("/upload/complete",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,session:i,partMd5s:n}=await r.req.json().catch(()=>({})),s=We(e,t||"/"),o=_t(r);if(!i)return r.json({code:400,message:"path and session are required",data:null});try{let a=await tt(s);if(a.isVirtual)throw new Error("failed get storage: storage not found");let c=await lt(a.storage.driver,a.storage);if(typeof c.completeUploadSession!="function")throw new Error("storage does not support chunked upload");try{await c.completeUploadSession(i,n)}finally{await Jt(a.storage.driver,a.storage,c,o)}return r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.post("/add_offline_download",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let{path:t,urls:i}=await r.req.json().catch(()=>({})),n=We(e,t||"/");return!i||i.length===0?r.json({code:400,message:"No URLs provided"}):r.json({code:501,message:"capability unavailable: this runtime has no durable offline-download adapter; use /fs/seed/offline_download with an approved source and a streaming-capable target driver",data:{path:n,accepted:0}},501)});dt.post("/search",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=We(e,t.parent||"/");try{let n=await Jd({parent:i,keywords:t.keywords||"",scope:t.scope!==void 0?parseInt(t.scope,10):0,page:t.page?parseInt(t.page,10):1,per_page:t.per_page?parseInt(t.per_page,10):30},r.env);return r.json({code:200,message:"success",data:n})}catch(n){return r.json({code:500,message:Ne(n),data:null},500)}});dt.post("/other",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=We(e,t.path||"/"),n=t.method;if(!n)return r.json({code:400,message:"Missing required parameter 'method'",data:null},400);if(!pt(e))return cr(r);try{let s=await tt(i);if(s.isVirtual||!s.storage)throw new Error("failed get storage: storage not found");let o=await lt(s.storage.driver,s.storage);if(typeof o.other=="function"){let a=await o.other(n,s.relative,t);return r.json({code:200,message:"success",data:a})}return r.json({code:500,message:`Driver '${s.storage.driver}' does not support other method '${n}'`,data:null},500)}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/batch_rename",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,rename_objects:i}=await r.req.json().catch(()=>({}));if(!Array.isArray(i)||i.length===0)return r.json({code:400,message:"rename_objects is required",data:null},400);let n=We(e,t||"/"),s=_t(r);try{for(let o of i){let a=o?.src_name,c=o?.new_name;if(!a||!c)continue;Wd(c);let l=`${n}/${a}`.replace(/\/{2,}/g,"/");await CA(l,c,s)}return r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null},500)}});dt.post("/regex_rename",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,src_name_regex:i,new_name_regex:n}=await r.req.json().catch(()=>({}));if(!i)return r.json({code:400,message:"src_name_regex is required",data:null},400);let s=We(e,t||"/"),o=_t(r);try{let a=new RegExp(i),{content:c}=await Zt(s,o);for(let l of c)if(!l.is_dir&&a.test(l.name)){let d=l.name.replace(a,n||"");Wd(d);let u=`${s}/${l.name}`.replace(/\/{2,}/g,"/");await CA(u,d,o)}return r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null},500)}});dt.post("/recursive_move",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,dst_dir:i,conflict_policy:n}=await r.req.json().catch(()=>({})),s=We(e,t||"/"),o=We(e,i||"/"),a=n||"overwrite",c=_t(r);try{let l=new Set;if(a!=="overwrite"){let f=await Zt(o,c);l=new Set(f.content.map(h=>h.name))}let d=[s],u=0;for(;d.length>0;){let f=d.shift(),{content:h}=await Zt(f,c);for(let g of h)if(g.is_dir)d.push(`${f}/${g.name}`.replace(/\/{2,}/g,"/"));else{if(l.has(g.name)){if(a==="cancel")return r.json({code:403,message:`file [${g.name}] exists`,data:null},403);if(a==="skip")continue}a!=="overwrite"&&l.add(g.name),await Od(f,o,[g.name],c),u++}}return r.json({code:200,message:`Successfully moved ${u} files`,data:null})}catch(l){return r.json({code:500,message:Ne(l),data:null},500)}});dt.post("/remove_empty_directory",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t}=await r.req.json().catch(()=>({})),i=We(e,t||"/"),n=_t(r);try{let s=async o=>{let{content:a}=await Zt(o,n);for(let l of a)l.is_dir&&await s(`${o}/${l.name}`.replace(/\/{2,}/g,"/"));if(o===i)return;if((await Zt(o,n)).content.length===0){let l=o.split("/").slice(0,-1).join("/")||"/",d=o.split("/").pop();await ka(l,[d],n)}};return await s(i),r.json({code:200,message:"success",data:null})}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/link",async r=>{let e=await Me(r);if(!ms(e))return cr(r);let{path:t}=await r.req.json().catch(()=>({})),i=We(e,t||"/"),n=_t(r);try{let s=await tt(i);if(s.isVirtual||!s.storage)return r.json({code:500,message:"storage not found",data:null},500);let o=await lt(s.storage.driver,s.storage);try{let a=await o.get(i,s.physical??"/");if(a&&a.raw_url)return r.json({code:200,message:"success",data:{url:a.raw_url}})}finally{await Jt(s.storage.driver,s.storage,o,n)}return r.json({code:200,message:"success",data:{url:`/api/p${i.startsWith("/")?"":"/"}${i}`}})}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/get_direct_upload_info",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,file_name:i,file_size:n}=await r.req.json().catch(()=>({})),s=We(e,t||"/");try{let o=await tt(s);if(o.isVirtual||!o.storage)return r.json({code:200,message:"success",data:null});let c=await lt(o.storage.driver,o.storage);if(typeof c.getDirectUploadInfo=="function"){let l=await c.getDirectUploadInfo(o.relative,i,n);return r.json({code:200,message:"success",data:l})}if(typeof c.other=="function")for(let l of["direct_upload","get_direct_upload_info"])try{let d=await c.other(l,o.relative,{file_name:i,file_size:n});if(d)return r.json({code:200,message:"success",data:d})}catch{}return r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null},500)}});function T2(r){let t=(r.startsWith("/")?r:"/"+r).split("/").filter(Boolean),i=t.pop()||"";return{dir:"/"+t.join("/"),name:i}}dt.post("/multipart/init",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=decodeURIComponent(r.req.header("File-Path")||""),i=parseInt(r.req.header("X-File-Size")||"0",10),n=parseInt(r.req.header("X-Chunk-Size")||"0",10),s=r.req.header("X-File-Md5")||"";if(!t.trim()||i<=0)return r.json({code:400,message:"Missing File-Path / X-File-Size header",data:null},400);let{dir:o,name:a}=T2(t),c=We(e,o),l=_t(r);try{let d=await tt(c);if(d.isVirtual)throw new Error("failed get storage: storage not found");let u=await lt(d.storage.driver,d.storage);if(typeof u.createUploadSession!="function")return r.json({code:200,message:"success",data:null});let f=QN(n),h=Math.max(1,Math.ceil(i/f)),g,p=!1,I=_N(t,i);if(I)g=I,p=!0;else{let y=await u.createUploadSession(c,d.physical,a,i,s);g={upload_id:PN(),state:"receiving",attempt:0,path:t,size:i,chunk_size:f,total_chunks:h,received:new Set,driver_session:y?.session||"",partMd5s:new Array(h).fill(void 0),storage_driver:d.storage.driver,created_at:Date.now()},y?.reuse&&(g.state="completed",g.received=new Set(Array.from({length:h},(w,C)=>C))),NA(g)}return await Jt(d.storage.driver,d.storage,u,l),r.json({code:200,message:"success",data:{...Xc(g),resumed:p}})}catch(d){return r.json({code:500,message:Ne(d),data:null},500)}});dt.put("/multipart/chunk",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=r.req.header("X-Upload-Id")||"",i=parseInt(r.req.header("X-Chunk-Index")||"-1",10),n=t?ow(t):void 0;if(!n)return r.json({code:404,message:"upload session not found",data:null},404);if(i<0||i>=n.total_chunks)return r.json({code:400,message:"invalid X-Chunk-Index",data:null},400);if(n.received.has(i))return r.json({code:200,message:"success",data:Xc(n)});let s=aw(r,!0);if(s!==null)return r.json({code:413,message:`Part too large (max ${s} bytes)`,data:null},413);let o=_t(r);try{let a=await tt(We(e,T2(n.path).dir));if(a.isVirtual)throw new Error("failed get storage: storage not found");let c=await lt(a.storage.driver,a.storage);if(typeof c.uploadPart!="function")throw new Error("storage does not support chunked upload");let l=Buffer.from(await r.req.arrayBuffer()),d;try{d=await c.uploadPart(n.driver_session,i+1,l)}finally{await Jt(a.storage.driver,a.storage,c,o)}return n.received.add(i),d?.partMd5&&(n.partMd5s[i]=d.partMd5),NA(n),r.json({code:200,message:"success",data:Xc(n)})}catch(a){return r.json({code:500,message:Ne(a),data:null},500)}});dt.post("/multipart/complete",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=r.req.header("X-Upload-Id")||"",i=t?ow(t):void 0;if(!i)return r.json({code:404,message:"upload session not found",data:null},404);if(i.state==="completed")return r.json({code:200,message:"success",data:Xc(i)});let n=_t(r);try{let s=await tt(We(e,T2(i.path).dir));if(s.isVirtual)throw new Error("failed get storage: storage not found");let o=await lt(s.storage.driver,s.storage);if(typeof o.completeUploadSession!="function")throw new Error("storage does not support chunked upload");try{await o.completeUploadSession(i.driver_session,i.partMd5s.filter(a=>a!==void 0))}finally{await Jt(s.storage.driver,s.storage,o,n)}return i.state="completed",NA(i),FN(i.upload_id),r.json({code:200,message:"success",data:Xc(i)})}catch(s){return i.state="failed_permanent",i.error=Ne(s),NA(i),r.json({code:500,message:Ne(s),data:null},500)}});dt.get("/multipart/status",async r=>{let e=r.req.query("upload_id")||"",t=e?ow(e):void 0;return t?r.json({code:200,message:"success",data:Xc(t)}):r.json({code:404,message:"upload session not found",data:null},404)});function U2(r){let e=r.toLowerCase();return e.endsWith(".zip")?"zip":e.endsWith(".tar.gz")||e.endsWith(".tgz")?"tar.gz":e.endsWith(".tar.bz2")||e.endsWith(".tbz2")?"tar.bz2":e.endsWith(".tar.xz")||e.endsWith(".txz")?"tar.xz":e.endsWith(".tar")?"tar":e.endsWith(".7z")?"7z":e.endsWith(".rar")?"rar":null}function R2(r){return r==="zip"}async function N2(r,e,t){let i=We(e,t),n=await tt(i);if(n.isVirtual)throw new Error("failed get storage: storage not found");let s=await lt(n.storage.driver,n.storage),o;try{o=await s.get(t,n.physical)}finally{await Jt(n.storage.driver,n.storage,s,_t(r))}if(!o||!o.raw_url)throw new Error("archive driver did not return download link");let a=yh(n.storage?.addition,r.env);zr(o.raw_url,"Archive download",a);let c=await fetch(o.raw_url,{headers:o.raw_url_headers||{}});if(!c.ok)throw new Error(`archive download failed: HTTP ${c.status}`);return await c.arrayBuffer()}function Hie(r){let e=[],t=new Map;for(let i of r.entries){let n=i.name.split("/").filter(Boolean);if(n.length===0)continue;let s=e,o="";for(let a=0;a<n.length;a++){let c=n[a],l=a===n.length-1;if(o=o?`${o}/${c}`:`/${c}`,l)s.push({name:c,size:i.size,is_dir:!1,modified:i.modified||new Date().toISOString(),type:TN(c,!1),children:[]});else{let d=t.get(o);d||(d={name:c,size:0,is_dir:!0,modified:i.modified||new Date().toISOString(),type:1,children:[]},t.set(o,d),s.push(d)),s=d.children}}}return e}function TN(r,e){let t=r.split(".").pop()?.toLowerCase()||"";if(e)return 1;let i=["mp4","mkv","webm","avi","mov","flv","m3u8"],n=["mp3","flac","wav","aac","ogg","m4a"],s=["jpg","jpeg","png","gif","webp","svg","bmp","ico"],o=["txt","md","json","js","ts","css","html","xml","yml","log"];return i.includes(t)?2:n.includes(t)?3:s.includes(t)?4:o.includes(t)?5:6}dt.post("/archive/meta",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=String(t.path||r.req.query("path")||"").trim();if(!i)return r.json({code:400,message:"path is required",data:null},400);let n=U2(i);if(!n)return r.json({code:400,message:"unrecognized archive format",data:null},400);if(!R2(n))return r.json({code:501,message:`archive format '${n}' is recognized but not supported in this runtime (Worker supports ZIP only); use the Go backend for ${n} archives`,data:null},501);try{let s=await N2(r,e,i),o=XI(s),a=Hie(o);return r.json({code:200,message:"success",data:{comment:"",encrypted:!1,content:a,raw_url:"",sign:""}})}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/archive/list",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=String(t.path||r.req.query("path")||"").trim(),n=String(t.inner_path||"").trim().replace(/\/+/g,"/");if(!i)return r.json({code:400,message:"path is required",data:null},400);let s=U2(i);if(!s)return r.json({code:400,message:"unrecognized archive format",data:null},400);if(!R2(s))return r.json({code:501,message:`archive format '${s}' is recognized but not supported in this runtime; use the Go backend for ${s} archives`,data:null},501);try{let o=await N2(r,e,i),a=XI(o),c=n?n.replace(/^\/+|\/+$/g,"")+"/":"",l=a.entries.filter(f=>c?f.name.startsWith(c)&&f.name!==c.slice(0,-1):!f.name.includes("/")).map(f=>{let h=c?f.name.slice(c.length):f.name;return{name:h.split("/")[0],size:f.size,is_dir:!1,modified:f.modified||new Date().toISOString(),type:TN(h.split("/")[0],!1)}}),d=new Set,u=l.filter(f=>d.has(f.name)?!1:(d.add(f.name),!0));return r.json({code:200,message:"success",data:{content:u,total:u.length}})}catch(o){return r.json({code:500,message:Ne(o),data:null},500)}});dt.post("/archive/decompress",async r=>{let e=await Me(r);if(!pt(e))return r.json({code:403,message:"Permission denied",data:null},403);let t=await r.req.json().catch(()=>({})),i=String(t.src_dir||"").trim(),n=String(t.dst_dir||"").trim(),s=Array.isArray(t.name)?t.name:t.name?[String(t.name)]:[],o=String(t.inner_path||"").trim().replace(/\/+/g,"/");if(!s.length||!n)return r.json({code:400,message:"src_dir/dst_dir/name are required",data:null},400);try{let a=0;for(let c of s){let l=i?`${i}/${c}`:`/${c}`,d=U2(c);if(!d||!R2(d))return r.json({code:400,message:`unsupported archive format: ${c} (only ZIP is supported)`,data:null},400);let u=await N2(r,e,l),f=XI(u),h=o?o.replace(/^\/+|\/+$/g,"")+"/":"";for(let g of f.entries){if(h&&!g.name.startsWith(h))continue;let p=h?g.name.slice(h.length):g.name;if(!p||p.endsWith("/"))continue;let I=`${n.replace(/\/+$/,"")}/${p}`,y=await AN(u,g);await Tn(I,Buffer.from(y),_t(r)),a++}}return r.json({code:200,message:"success",data:{task:null,count:a}})}catch(a){return r.json({code:500,message:Ne(a),data:null},500)}});sl();wr();Ve();Yt();bA();Da();var Vq=new Set(["weiyun","sftp","ftp","smb","crypt","virtual","strm","meganz","protondrive","chunk","googledrive","googlephoto","quarkopen","quarkuc","chaoxing","local"]),Qoe=new Set(["webdav","baidunetdisk","123pan","123open","123panshare"]),Yq=new Set(["139yun","alias","alistv3","openlist"]),_oe=["down_proxy_url","download_proxy_url","proxy_url"];function ol(r){return String(r??"").toLowerCase().replace(/[^a-z0-9]/g,"")}function al(r){let e=Array.isArray(r)?r.join(","):r;return String(e??"").split(",").map(t=>t.trim().toLowerCase().replace(/^\./,"")).filter(Boolean)}function Wq(r){let e=String(r??"").split("/").pop()?.trim();if(!e)return"";let t=e.lastIndexOf(".");return t<0||t===e.length-1?"":e.slice(t+1).toLowerCase()}function Xq(r){return Vq.has(ol(r))}function Foe(r){let e=sN(r?.addition),t=String(e.storage_zone_name??"").trim(),i=String(e.cdn_base_url??"").trim();return t!==""&&i===""}function Lw(r,e){let t=ol(e??r?.driver);return Vq.has(t)?!0:t==="bunnystorage"?Foe(r):!1}function nv(r){return Qoe.has(ol(r))}function Zq(r){if(!r)return"";let e=r.webdav_policy??r.webdavPolicy??r.policy??r.webdavPolicyType;return typeof e=="string"?e.trim():""}function eO(r){if(!r)return"";for(let t of["down_proxy_url","downProxyUrl"]){let i=r[t];if(typeof i=="string"&&i.trim())return i.trim()}let e=r.addition;if(typeof e=="string")try{e=JSON.parse(e||"{}")}catch{return""}if(!e||typeof e!="object")return"";for(let t of _oe){let i=e[t];if(typeof i=="string"&&i.trim())return i.trim()}return""}function tO(r){if(!r)return!1;let e=r.disable_proxy_sign??r.disableProxySign;return typeof e=="string"?e.toLowerCase()==="true":!!e}function rO(r,e){let t=r?.web_proxy??r?.webProxy;return t===!0||t==="true"?!0:t===!1||t==="false"?!1:nv(e)}function iO(r,e,t,i={}){let n=ol(e);if(Lw(r,n))return{mode:"native_proxy",needsProxy:!0,source:"force"};if(rO(r,n))return{mode:"native_proxy",needsProxy:!0,source:"web_proxy"};if(t)return{mode:"native_proxy",needsProxy:!0,source:"proxy_path"};if(iv(Wq(i.filename),i.proxyTypes))return{mode:"native_proxy",needsProxy:!0,source:"proxy_types"};let s=Zq(r);return s?{mode:s,needsProxy:s!=="302_redirect",source:"storage_policy"}:{mode:"302_redirect",needsProxy:!1,source:"driver_default"}}function iv(r,e){return r?al(e).includes(r):!1}function Hw(r){let e=ol(r.driver);if(Lw(r.storage,e)||rO(r.storage,e)||Zq(r.storage)==="use_proxy_url")return!0;let t=Wq(r.filename);return t?iv(t,r.proxyTypes)||iv(t,r.textTypes):!1}wr();Ve();sl();XA();Ao();Qi();$b();var qn=new Xe;qn.get("/list",async r=>{let t=((await ne(r.env)).users||[]).map(i=>({id:i.id,username:i.username,role:i.role,permission:i.permission??0,base_path:i.base_path||"/",disabled:!!i.disabled,sso_id:i.sso_id||"",allow_ldap:!!i.allow_ldap,pwd_update_at:i.pwd_update_at||"",otp:!!i.otp_secret}));return r.json({code:200,message:"success",data:{content:t,total:t.length}})});qn.get("/get",async r=>{let e=r.req.query("id");if(!e)return r.json({code:400,message:"Missing id parameter",data:null},400);let t=parseInt(e,10),n=((await ne(r.env)).users||[]).find(s=>s.id===t);return n?r.json({code:200,message:"success",data:{id:n.id,username:n.username,password:"",role:n.role,permission:n.permission??0,base_path:n.base_path||"/",disabled:!!n.disabled,sso_id:n.sso_id||"",allow_ldap:!!n.allow_ldap,otp:!!n.otp_secret}}):r.json({code:404,message:"User not found",data:null},404)});qn.post("/create",async r=>{let e=await r.req.json().catch(()=>({}));if(!e.username)return r.json({code:400,message:"Username is required",data:null},400);let t=await ne(r.env);if(t.users||(t.users=[]),t.users.some(l=>l.username===e.username))return r.json({code:400,message:"Username already exists",data:null},400);let s=t.users.reduce((l,d)=>Math.max(l,d.id||0),0)+1,o=e.password||"",a=null;o||(a=du(),o=a);let c={id:s,username:e.username,role:e.role!==void 0?parseInt(e.role,10):0,permission:e.permission!==void 0?parseInt(e.permission,10):0,base_path:e.base_path||"/",disabled:!!e.disabled,sso_id:e.sso_id||"",allow_ldap:!!e.allow_ldap,pwd_update_at:new Date().toISOString()};return await Fi(c,o),t.users.push(c),await fe(t,r.env),r.json({code:200,message:a?"success (a random password was generated \u2014 pass one explicitly to choose your own)":"success",data:a?{password:a}:null})});qn.post("/update",async r=>{let e=await r.req.json().catch(()=>({}));if(!e.id)return r.json({code:400,message:"User ID is required",data:null},400);let t=parseInt(e.id,10),i=await ne(r.env);i.users||(i.users=[]);let n=i.users.findIndex(o=>o.id===t);if(n===-1)return r.json({code:404,message:"User not found",data:null},404);let s=i.users[n];if(e.username&&e.username!==s.username){if(i.users.some(a=>a.id!==t&&a.username===e.username))return r.json({code:400,message:"Username already in use",data:null},400);s.username=e.username}return e.password&&e.password.trim()!==""&&await Fi(s,e.password.trim()),e.role!==void 0&&(s.role=parseInt(e.role,10)),e.permission!==void 0&&(s.permission=parseInt(e.permission,10)),e.base_path!==void 0&&(s.base_path=e.base_path),e.disabled!==void 0&&(s.disabled=!!e.disabled),e.sso_id!==void 0&&(s.sso_id=e.sso_id),e.allow_ldap!==void 0&&(s.allow_ldap=!!e.allow_ldap),i.users[n]=s,await fe(i,r.env),r.json({code:200,message:"success",data:null})});var nO=async r=>{let e=r.req.query("id");if(!e)return r.json({code:400,message:"Missing id parameter",data:null},400);let t=parseInt(e,10);if(t===1)return r.json({code:400,message:"Cannot delete primary admin user",data:null},400);let i=await ne(r.env);return i.users||(i.users=[]),i.users=i.users.filter(n=>n.id!==t),await fe(i,r.env),r.json({code:200,message:"success",data:null})};qn.post("/delete",nO);qn.post("/cancel",nO);qn.get("/sshkey/list",async r=>{let e=parseInt(r.req.query("uid")||"0",10),t=await ou(e,r.env);return r.json({code:200,message:"success",data:{content:t,total:t.length}})});qn.post("/sshkey/delete",async r=>{let e=parseInt(r.req.query("uid")||"0",10),t=r.req.query("id");if(!e||!t)return r.json({code:400,message:"Missing uid or id parameter",data:null},400);if(!await Uw(e,t,r.env))return r.json({code:404,message:"SSH key not found",data:null},404);let n=await ou(e,r.env);return r.json({code:200,message:"success",data:n})});qn.post("/cancel_2fa",async r=>{let e=parseInt(r.req.query("id")||"0",10);if(!e)return r.json({code:400,message:"Missing id parameter",data:null},400);let t=await ne(r.env),i=(t.users||[]).find(n=>n.id===e);return i?(delete i.otp_secret,await fe(t,r.env),r.json({code:200,message:"success",data:null})):r.json({code:404,message:"User not found",data:null},404)});var sO=async r=>{let e=r.req.header("Authorization");if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=e.startsWith("Bearer ")?e.substring(7):e;try{let i=await kr(r),n=await uo(t,i,"HS256"),s=await r.req.json().catch(()=>({})),o=s.old_password||"",a=s.new_password||"";if(!a)return r.json({code:400,message:"New password is required",data:null},400);let c=await ne(r.env);c.users||(c.users=[]);let l=c.users.findIndex(u=>u.id===n.id||u.username===n.username);if(l===-1)return r.json({code:404,message:"User not found",data:null},404);let d=c.users[l];return!d.password||!await lu(d,o)?r.json({code:400,message:"Incorrect old password",data:null},400):(await Fi(d,a),c.users[l]=d,await fe(c,r.env),r.json({code:200,message:"success",data:null}))}catch(i){return r.json({code:401,message:`Unauthorized: ${i.message||"Invalid token"}`,data:null},401)}};var Ue=new Xe;Ue.use("*",async(r,e)=>{if(!await Kd(r))return r.json({code:401,message:"Unauthorized",data:null});await e()});function Poe(r=32){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",t=new Uint8Array(r);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(t);else for(let n=0;n<r;n++)t[n]=(Math.random()*256|0)^Date.now()&255;let i="";for(let n=0;n<r;n++)i+=e.charAt(t[n]%e.length);return i}Ue.get("/storage/list",async r=>{let t=(await ne(r.env)).storages||[];return r.json({code:200,message:"success",data:{content:t,total:t.length}})});Ue.post("/storage/load_all",async r=>{let e=await ne(r.env),t=[],i=0,n=0;for(let s of e.storages||[])if(!s.disabled)try{await lt(s.driver,s),i++,t.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"ok"})}catch(o){n++,t.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"failed",error:o?.message||String(o)})}return r.json({code:200,message:"success",data:{loaded:i,failed:n,results:t}})});Ue.get("/storage/get",async r=>{let e=parseInt(r.req.query("id")||"0",10),i=(await ne(r.env)).storages.find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"storage not found",data:null})});var aO=r=>{let e=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");if(!e)return"";let i=Object.keys(fu).find(n=>n.toLowerCase()===e||n.toLowerCase().replace(/[^a-z0-9]/g,"")===e);return i||(e.startsWith("115")?"115Open":e.startsWith("123")?"123Pan":e.includes("aliyun")?"AliyundriveOpen":e.startsWith("baidu")?"BaiduNetdisk":e.startsWith("189")||e.includes("cloud189")||e.includes("ctyun")?"Cloud189":e==="onedriveapp"?"OnedriveAPP":e.startsWith("onedrive")?"Onedrive":e.startsWith("google")||e.includes("gdrive")?"GoogleDrive":(e.includes("thunder")||e.includes("xunlei"))&&e.includes("expert")?"ThunderExpert":e.includes("thunder")||e.includes("xunlei")?"Thunder":e==="webdav"||e==="webdavdriver"?"WebDav":e==="wopan"||e.includes("unicom")||e.includes("woyun")?"WoPan":e==="quark"||e==="quarkuc"||e==="uc"?"Quark":["s3","doge","dogecloud","minio","ceph","aws","r2","b2","cos","oss","kodo"].includes(e)?"S3":e.startsWith("github")?"Github":e==="local"?"Local":e.includes("pikpak")?"PikPak":e.includes("seafile")?"Seafile":e.includes("yandex")?"YandexDisk":e.includes("terabox")||e.includes("dubox")?"Terabox":e.includes("mediatrack")||e.includes("fenmiao")?"MediaTrack":e.includes("alias")?"Alias":r||"")},cO=(r,e)=>{let t="";if(typeof e=="object"&&e!==null)try{t=JSON.stringify(e)}catch{t="{}"}else t=String(e||"{}");let i=(r||"").toLowerCase();if(i.includes("thunder")||i.includes("xunlei"))try{let n=JSON.parse(t||"{}");if(!n.device_id||typeof n.device_id!="string"||n.device_id.trim().length!==32){let s=typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Math.random().toString(16).substring(2).padEnd(16,"0")+Math.random().toString(16).substring(2).padEnd(16,"0");return n.device_id=s.slice(0,32),JSON.stringify(n)}}catch{}return t};Ue.post("/storage/create",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);if(!e.driver||typeof e.driver!="string"||e.driver.trim()===""||e.driver==="undefined"||e.driver==="null")return r.json({code:400,message:"Storage driver is required",data:null},400);let i=e.mount_path;if(!i||String(i).trim()===""){let c=fu[e.driver]?.default_mount_path;c&&(i=c)}let n="/"+String(i||"").split("/").filter(Boolean).join("/");if(t.storages.some(c=>!c.disabled&&"/"+(c.mount_path||"").split("/").filter(Boolean).join("/")===n))return r.json({code:400,message:`mount path already exists: ${n}`,data:null});let s=aO(e.driver),o=cO(s,e.addition||"{}"),a={...e,driver:s,addition:o,mount_path:n,id:t.storages.length?Math.max(...t.storages.map(c=>c.id))+1:1,status:"work",modified:new Date().toISOString()};t.storages.push(a);try{await fe(t,r.env)}catch(c){return t.storages.pop(),r.json({code:500,message:`Failed to save storage config: ${c.message||String(c)}`,data:null})}if(!a.disabled){try{await lt(a.driver,a),a.status="work"}catch(c){a.status=c.message||String(c),String(c.message||c).includes("unsupported driver")&&(a.disabled=!0);try{await fe(t,r.env)}catch(l){console.error("[admin/storage/create] Failed to update storage status:",l)}return r.json({code:500,message:c.message||String(c),data:a})}try{await fe(t,r.env)}catch(c){console.error("[admin/storage/create] Failed to update storage status after connection:",c)}}return r.json({code:200,message:"success",data:a})});Ue.post("/storage/update",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env),i=e.mount_path;if(!i||String(i).trim()===""){let o=fu[e.driver]?.default_mount_path;o&&(i=o)}let n=String(i||"").trim()!==""?"/"+String(i||"").split("/").filter(Boolean).join("/"):void 0;if(n&&t.storages.some(o=>o.id!==e.id&&!o.disabled&&"/"+(o.mount_path||"").split("/").filter(Boolean).join("/")===n))return r.json({code:400,message:`mount path already exists: ${n}`,data:null});let s=t.storages.findIndex(o=>o.id===e.id);if(s!==-1){let o=e.driver||t.storages[s].driver,a=aO(o),c=cO(a,e.addition!==void 0?e.addition:t.storages[s].addition||"{}"),l={...t.storages[s],...e,driver:a,addition:c,mount_path:n||t.storages[s].mount_path,modified:new Date().toISOString()};if(!l.disabled)try{await(await lt(l.driver,l)).init?.(),l.status="work"}catch(d){return l.status=d.message||String(d),String(d.message||d).includes("unsupported driver")&&(l.disabled=!0),t.storages[s]=l,await fe(t,r.env),r.json({code:500,message:d.message||String(d),data:{id:l.id}})}t.storages[s]=l,await fe(t,r.env)}return r.json({code:200,message:"success",data:null})});Ue.post("/storage/delete",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env);return t.storages=t.storages.filter(i=>i.id!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.post("/storage/enable",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env),i=t.storages.find(n=>n.id===e);return i&&(i.disabled=!1,i.modified=new Date().toISOString(),await fe(t,r.env),(async()=>{try{await(await lt(i.driver,i)).init?.();let s=await ne(r.env),o=s.storages.find(a=>a.id===e);o&&!o.disabled&&(o.status="work",o.modified=new Date().toISOString(),await fe(s,r.env))}catch(n){let s=await ne(r.env),o=s.storages.find(a=>a.id===e);o&&!o.disabled&&(o.status=n.message||String(n),await fe(s,r.env))}})()),r.json({code:200,message:"success",data:null})});Ue.post("/storage/disable",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env),i=t.storages.find(n=>n.id===e);return i&&(i.disabled=!0,await fe(t,r.env)),r.json({code:200,message:"success",data:null})});Ue.get("/driver/names",r=>r.json({code:200,message:"success",data:["AliyundriveOpen","GoogleDrive","Onedrive","OnedriveAPP","Quark","123Pan","BaiduNetdisk","115Open","GitHub API","Thunder","ThunderExpert","189Cloud","WoPan","Lanzou","WebDav","S3","Doge","PikPak","Seafile","YandexDisk","Terabox","MediaTrack","Alias","Dropbox","WPS","139Yun","Mega_nz","115Share","123PanShare","AliyundriveShare","OnedriveSharelink","PikPakShare","SMB","Crypt","Virtual","AListV3","UrlTree","Strm","AzureBlob","USS","Alidoc","Emby","BunnyStorage","CloudflareImgbed","GuangYaPan","AutoIndex","ProtonDrive"]}));var Ft=[{name:"mount_path",type:"string",default:"",required:!0},{name:"order",type:"number",default:"0",required:!1},{name:"remark",type:"string",default:"",required:!1},{name:"cache_expiration",type:"number",default:"30",required:!1,help:"\u76EE\u5F55\u5185\u5BB9\u7F13\u5B58\u65F6\u957F\uFF08\u5206\u949F\uFF09"}],Pt={name:"custom_cache_policies",type:"text",default:"",required:!1,help:'\u6309\u8DEF\u5F84\u8986\u76D6\u7F13\u5B58\u65F6\u957F\uFF0CJSON \u683C\u5F0F\uFF0C\u5982 [{"path":"/photos/*","cache_expiration":1440}]'},Tt={name:"enable_sign",type:"bool",default:"false",required:!0,help:"Enable signature validation for this storage"},Ut={name:"disable_index",type:"bool",default:"false",required:!1,help:"Disable directory listing for this storage"};function Toe(){return{name:"proxy_range",type:"bool",default:"true",required:!1,help:"Need to enable proxy"}}var oO={name:"web_proxy",type:"bool",default:"false",required:!1},sv={name:"webdav_policy",type:"select",options:"302_redirect,use_proxy_url,native_proxy",default:"302_redirect",required:!1};function Rt(r=""){let e=ol(r),t=Yq.has(e)?[Toe()]:[];if(Xq(e))return[...t,{...sv,options:"use_proxy_url,native_proxy",default:"native_proxy"}];let i=nv(e);return[...t,i?{...oO,default:"true"}:{...oO},i?{...sv,default:"native_proxy"}:{...sv}]}var er={name:"seed_policy",type:"select",options:"inherit,on,off",default:"inherit",required:!0,help:"Override automatic transfer-seed generation for this storage"},cl={name:"down_proxy_url",type:"string",default:"",required:!1,help:"\u81EA\u5B9A\u4E49\u4E0B\u8F7D\u4EE3\u7406\u5730\u5740\uFF08\u652F\u6301 $path \u5360\u4F4D\u7B26\uFF1B\u7559\u7A7A\u5219\u7528\u672C\u670D\u52A1\u4EE3\u7406\uFF09"},Nt={name:"disable_proxy_sign",type:"bool",default:"false",required:!1,help:"Disable sign for Download proxy URL"},mt=[...Ft,Pt,Tt,Ut,...Rt(),cl,Nt,er],fu={AliyundriveOpen:{name:"AliyundriveOpen",default_mount_path:"/aliyundrive",common:mt,additional:[{name:"refresh_token",type:"text",default:"",required:!0,help:"true"},{name:"drive_type",type:"select",options:"resource,backup,default",default:"resource",required:!0},{name:"drive_id",type:"string",default:"",required:!1},{name:"root_folder_id",type:"string",default:"root",required:!0},{name:"order_by",type:"select",options:"updated_at,name,size,created_at",default:"updated_at",required:!1},{name:"order_direction",type:"select",options:"DESC,ASC",default:"DESC",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/alicloud/renewapi",required:!1,help:"true"},{name:"alipan_type",type:"select",options:"alipanQR,alipanTV",default:"alipanQR",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"remove_way",type:"select",options:"trash,delete",default:"trash",required:!1}],config:{name:"AliyundriveOpen",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"root"}},Onedrive:{name:"Onedrive",default_mount_path:"/onedrive",common:[...Ft,Pt,Tt,Ut,...Rt("Onedrive"),cl,Nt],additional:[{name:"root_folder_path",type:"string",default:"/",required:!0},{name:"region",type:"select",options:"global,cn,us,de",default:"global",required:!0},{name:"is_sharepoint",type:"bool",default:"false",required:!1},{name:"use_online_api",type:"bool",default:"true",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/onedrive/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"redirect_uri",type:"string",default:"https://api.oplist.org/onedrive/callback",required:!0},{name:"refresh_token",type:"string",default:"",required:!0},{name:"site_id",type:"string",default:"",required:!1},{name:"chunk_size",type:"number",default:"5",required:!1},{name:"custom_host",type:"string",default:"",required:!1,help:"true"},{name:"disable_disk_usage",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1,help:"true"},{name:"order_by",type:"select",options:"filename,modified_time,size",default:"filename",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Onedrive",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},OnedriveAPP:{name:"OnedriveAPP",default_mount_path:"/onedrive_app",common:[...Ft,Pt,Tt,Ut,...Rt("OnedriveAPP"),cl,Nt],additional:[{name:"root_folder_path",type:"string",default:"/",required:!0},{name:"region",type:"select",options:"global,cn,us,de",default:"global",required:!0},{name:"client_id",type:"string",default:"",required:!0},{name:"client_secret",type:"string",default:"",required:!0},{name:"tenant_id",type:"string",default:"",required:!0},{name:"email",type:"string",default:"",required:!0},{name:"chunk_size",type:"number",default:"5",required:!1},{name:"custom_host",type:"string",default:"",required:!1,help:"true"},{name:"disable_disk_usage",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1,help:"true"},{name:"order_by",type:"select",options:"filename,modified_time,size",default:"filename",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"OnedriveAPP",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},GoogleDrive:{name:"GoogleDrive",default_mount_path:"/google-drive",common:[...Ft,Pt,Tt,Ut,...Rt("GoogleDrive"),Nt,er],additional:[{name:"refresh_token",type:"text",default:"",required:!0,help:"true"},{name:"root_folder_id",type:"string",default:"root",required:!1},{name:"order_by",type:"select",options:"folder,name,modifiedTime desc",default:"folder,name,modifiedTime desc",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"api_url_address",type:"string",default:"https://api.alist.nn.ci/googledrive/token",required:!1,help:"true"},{name:"use_online_api",type:"bool",default:"true",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"chunk_size",type:"number",default:"5",required:!1}],config:{name:"GoogleDrive",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"root"}},Quark:{name:"Quark",default_mount_path:"/quark",common:mt,additional:[{name:"variant",type:"select",options:"Quark,UC",default:"Quark",required:!0},{name:"cookie",type:"text",default:"",required:!0,help:"true"},{name:"root_folder_id",type:"string",default:"0",required:!0},{name:"order_by",type:"select",options:"none,file_type,file_name,updated_at",default:"none",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"use_transcoding_address",type:"bool",default:"false",required:!1},{name:"only_list_video_file",type:"bool",default:"false",required:!1}],config:{name:"Quark",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0"}},"123Pan":{name:"123Pan",default_mount_path:"/123",common:[...Ft,Pt,Tt,Ut,...Rt("123Pan"),Nt,er],additional:[{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"access_token",type:"string",default:"",required:!1,help:"\u767B\u5F55\u4EE4\u724C\uFF08\u53EF\u9009\uFF0C\u81EA\u52A8\u6301\u4E45\u5316\uFF0C\u65E0\u9700\u624B\u52A8\u586B\u5199\uFF09\u3002\u4EC5\u9700\u586B\u5199\u4E0A\u65B9 123 \u7F51\u76D8\u624B\u673A\u53F7\u548C\u5BC6\u7801\uFF0C\u767B\u5F55\u540E\u81EA\u52A8\u83B7\u53D6\u5E76\u4FDD\u5B58\uFF0C\u8DF3\u8FC7\u91CD\u590D\u767B\u5F55\u53EF\u907F\u514D\u5883\u5916 IP \u89E6\u53D1\u98CE\u63A7\u3002"},{name:"cookie",type:"text",default:"",required:!1,help:"\u6D4F\u89C8\u5668 Cookie\uFF08\u53EF\u9009\uFF09\u3002\u5728 123 \u7F51\u76D8\u7F51\u9875\u767B\u5F55\u540E\uFF0C\u4ECE\u5F00\u53D1\u8005\u5DE5\u5177\u590D\u5236\u8BF7\u6C42\u5934\u4E2D\u7684 Cookie \u6574\u4E32\u7C98\u8D34\u4E8E\u6B64\uFF08\u542B sso-token\uFF09\uFF0C\u6216\u4ECE Authorization: Bearer <token> \u4E2D\u590D\u5236 token/Bearer \u503C\u3002\u89E3\u6790\u51FA\u7684 JWT \u4F1A\u4F5C\u4E3A Bearer \u4EE4\u724C\u4F7F\u7528\uFF0C\u6548\u679C\u7B49\u540C\u8BBF\u95EE\u4EE4\u724C\uFF0C\u9002\u5408\u8D26\u53F7\u5BC6\u7801\u767B\u5F55\u88AB\u98CE\u63A7\u62E6\u622A\u7684\u73AF\u5883\u3002"},{name:"root_id",type:"string",default:"0",required:!1},{name:"upload_thread",type:"number",default:"3",required:!1,help:"the threads of upload"},{name:"platform",type:"string",default:"web",required:!1,help:"the platform header value, sent with API requests"},{name:"order_by",type:"select",options:"file_id,file_name,size,created_at,updated_at",default:"file_id",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"desc",required:!1}],config:{name:"123Pan",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0"}},BaiduNetdisk:{name:"BaiduNetdisk",default_mount_path:"/baidu",common:[...Ft,Pt,Tt,Ut,...Rt("BaiduNetdisk"),Nt,er],additional:[{name:"refresh_token",type:"text",default:"",required:!0,help:"true"},{name:"access_token",type:"string",default:"",required:!0,help:"\u8BBF\u95EE\u4EE4\u724C\uFF08\u5FC5\u586B\uFF09\u3002\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\u3002\u82E5\u4EE4\u724C\u5931\u6548\uFF0C\u6302\u8F7D\u65F6\u4F1A\u81EA\u52A8\u6839\u636E refresh_token \u901A\u8FC7\u5728\u7EBF API \u6362\u65B0\u5E76\u6301\u4E45\u5316\u3002"},{name:"use_online_api",type:"bool",default:"true",required:!1,help:"\u4F7F\u7528\u5728\u7EBF API \u5237\u65B0 token\uFF08\u65E0\u9700 ClientID/ClientSecret\uFF09"},{name:"api_url_address",type:"string",default:"https://api.oplist.org/baiduyun/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"download_api",type:"select",options:"official,crack,crack_video",default:"official",required:!1},{name:"custom_crack_ua",type:"string",default:"netdisk",required:!0},{name:"order_by",type:"select",options:"name,time,size",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"only_list_video_file",type:"bool",default:"false",required:!1},{name:"upload_thread",type:"string",default:"3",required:!1,help:"1<=thread<=32"},{name:"upload_timeout",type:"number",default:"60",required:!1,help:"per-slice upload timeout in seconds"},{name:"custom_upload_part_size",type:"number",default:"0",required:!1,help:"0 for auto"},{name:"use_dynamic_upload_api",type:"bool",default:"true",required:!1,help:"dynamically get upload api domain, when enabled, the 'Upload API' setting will be used as a fallback if failed to get"},{name:"upload_api",type:"string",default:"https://d.pcs.baidu.com",required:!1},{name:"low_bandwith_upload_mode",type:"bool",default:"false",required:!1}],config:{name:"BaiduNetdisk",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},"115Open":{name:"115Open",default_mount_path:"/115",common:[...Ft,Pt,Tt,Ut,...Rt("115Open"),Nt,er],additional:[{name:"access_token",type:"string",default:"",required:!0,help:"\u8BBF\u95EE\u4EE4\u724C\uFF08\u5FC5\u586B\uFF09\u3002\u901A\u8FC7 115 \u5F00\u653E\u5E73\u53F0\u83B7\u53D6\uFF1B\u5931\u6548\u65F6\u81EA\u52A8\u7528 refresh_token \u5237\u65B0\u5E76\u6301\u4E45\u5316\u3002"},{name:"refresh_token",type:"string",default:"",required:!0,help:"\u5237\u65B0\u4EE4\u724C\uFF08\u5FC5\u586B\uFF09\u3002\u901A\u8FC7 115 \u5F00\u653E\u5E73\u53F0\u83B7\u53D6\uFF1Baccess_token \u5931\u6548\u65F6\u81EA\u52A8\u5237\u65B0\u3002"},{name:"root_id",type:"string",default:"0",required:!1,help:"\u6839\u6587\u4EF6\u5939 ID\uFF0C\u9ED8\u8BA4 0\uFF08\u6839\u76EE\u5F55\uFF09"},{name:"order_by",type:"select",options:"file_name,file_size,user_utime,file_type",default:"file_name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"page_size",type:"number",default:"200",required:!1,help:"list api per page size (1~1150)"},{name:"limit_rate",type:"float",default:"1",required:!1,help:"limit all api request rate ([limit]r/1s)\uFF0C0 \u8868\u793A\u4E0D\u9650\u901F"}],config:{name:"115Open",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0"}},"GitHub API":{name:"GitHub API",default_mount_path:"/github",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!0},{name:"token",type:"string",default:"",required:!0},{name:"owner",type:"string",default:"",required:!0},{name:"repo",type:"string",default:"",required:!0},{name:"ref",type:"string",default:"",required:!1,help:"A branch, a tag or a commit SHA, default branch by default."},{name:"gh_proxy",type:"string",default:"",required:!1,help:"GitHub proxy, e.g. https://ghproxy.net/raw.githubusercontent.com"},{name:"committer_name",type:"string",default:"",required:!1},{name:"committer_email",type:"string",default:"",required:!1},{name:"author_name",type:"string",default:"",required:!1},{name:"author_email",type:"string",default:"",required:!1},{name:"mkdir_commit_message",type:"text",default:"{{.UserName}} mkdir {{.ObjPath}}",required:!1},{name:"delete_commit_message",type:"text",default:"{{.UserName}} remove {{.ObjPath}}",required:!1},{name:"put_commit_message",type:"text",default:"{{.UserName}} upload {{.ObjPath}}",required:!1},{name:"rename_commit_message",type:"text",default:"{{.UserName}} rename {{.ObjPath}} to {{.TargetName}}",required:!1},{name:"copy_commit_message",type:"text",default:"{{.UserName}} copy {{.ObjPath}} to {{.TargetPath}}",required:!1},{name:"move_commit_message",type:"text",default:"{{.UserName}} move {{.ObjPath}} to {{.TargetPath}}",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"GitHub API",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},Thunder:{name:"Thunder",default_mount_path:"/thunder",common:mt,additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"captcha_token",type:"string",default:"",required:!1},{name:"credit_key",type:"string",default:"",required:!1,help:"credit key, used for login"},{name:"device_id",type:"string",default:"",required:!1,help:"32 hex characters"},{name:"space",type:"string",default:"",required:!1,help:"device id for remote device"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Thunder",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},ThunderExpert:{name:"ThunderExpert",default_mount_path:"/thunderexpert",common:mt,additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"login_type",type:"select",options:"user,refresh_token",default:"user",required:!0},{name:"sign_type",type:"select",options:"algorithms,captcha_sign",default:"algorithms",required:!0},{name:"username",type:"string",default:"",required:!1,help:"login type is user, this is required"},{name:"password",type:"string",default:"",required:!1,help:"login type is user, this is required"},{name:"refresh_token",type:"string",default:"",required:!1,help:"login type is refresh_token, this is required"},{name:"algorithms",type:"string",default:"9uJNVj/wLmdwKrJaVj/omlQ,Oz64Lp0GigmChHMf/6TNfxx7O9PyopcczMsnf,Eb+L7Ce+Ej48u,jKY0,ASr0zCl6v8W4aidjPK5KHd1Lq3t+vBFf41dqv5+fnOd,wQlozdg6r1qxh0eRmt3QgNXOvSZO6q/GXK,gmirk+ciAvIgA/cxUUCema47jr/YToixTT+Q6O,5IiCoM9B1/788ntB,P07JH0h6qoM6TSUAK2aL9T5s2QBVeY9JWvalf,+oK0AN",required:!1},{name:"captcha_sign",type:"string",default:"",required:!1},{name:"timestamp",type:"string",default:"",required:!1},{name:"captcha_token",type:"string",default:"",required:!1},{name:"credit_key",type:"string",default:"",required:!1,help:"credit key, used for login"},{name:"device_id",type:"string",default:"",required:!1},{name:"client_id",type:"string",default:"",required:!0,help:"\u8FC5\u96F7\u5F00\u653E\u5E73\u53F0 OAuth client_id\uFF08\u5FC5\u586B\uFF09\u3002"},{name:"client_secret",type:"string",default:"",required:!0,help:"\u8FC5\u96F7\u5F00\u653E\u5E73\u53F0 OAuth client_secret\uFF08\u5FC5\u586B\uFF09\u3002"},{name:"client_version",type:"string",default:"8.31.0.9726",required:!0},{name:"package_name",type:"string",default:"com.xunlei.downloadprovider",required:!0},{name:"user_agent",type:"string",default:"ANDROID-com.xunlei.downloadprovider/8.31.0.9726 netWorkType/5G appid/40 deviceName/Xiaomi_M2004j7ac deviceModel/M2004J7AC OSVersion/12 protocolVersion/301 platformVersion/10 sdkVersion/512000 Oauth2Client/0.9 (Linux 4_14_186-perf-gddfs8vbb238b) (JAVA 0)",required:!0},{name:"download_user_agent",type:"string",default:"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)",required:!0},{name:"use_video_url",type:"bool",default:"false",required:!1},{name:"space",type:"string",default:"",required:!1,help:"device id for remote device"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"ThunderExpert",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},"189Cloud":{name:"189Cloud",default_mount_path:"/189",common:[...Ft,Pt,Tt,Ut,...Rt("189Cloud"),Nt,er],additional:[{name:"username",type:"string",default:"",required:!0,help:"the phone number used to log in"},{name:"password",type:"string",default:"",required:!0,help:"password for login"},{name:"cookie",type:"text",default:"",required:!1,help:"Fill in the cookie if need captcha (\u82E5\u9047\u6ED1\u5757\u9A8C\u8BC1\u7801\u6216\u8BBE\u5907\u9501\uFF0C\u53EF\u5728\u6D4F\u89C8\u5668\u767B\u5F55\u540E\u590D\u5236 Cookie \u586B\u5165)"},{name:"root_folder_id",type:"string",default:"-11",required:!1,help:"\u6839\u6587\u4EF6\u5939ID\uFF0C\u9ED8\u8BA4\u4E3A -11\uFF08\u4E2A\u4EBA\u4E91\u6839\u76EE\u5F55\uFF09"},{name:"order_by",type:"select",options:"lastOpTime,filename,fileSize",default:"lastOpTime",required:!1},{name:"order_direction",type:"select",options:"desc,asc",default:"desc",required:!1}],config:{name:"189Cloud",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"-11"}},Lanzou:{name:"Lanzou",default_mount_path:"/lanzou",common:mt,additional:[{name:"type",type:"select",options:"cookie,account,url",default:"cookie",required:!0},{name:"account",type:"string",default:"",required:!1,help:"\u8D26\u53F7\uFF08\u624B\u673A\u53F7/UID\uFF09\uFF0C\u4EC5 account \u6A21\u5F0F\u9700\u586B\u5199"},{name:"password",type:"string",default:"",required:!1,help:"\u5BC6\u7801\uFF0C\u4EC5 account \u6A21\u5F0F\u9700\u586B\u5199"},{name:"cookie",type:"text",default:"",required:!1,help:"\u767B\u5F55 Cookie\uFF08\u542B ylogin, phpdisk_info \u7B49\uFF09\uFF0Ccookie \u6A21\u5F0F\u9700\u586B\u5199\uFF1B\u6709\u6548\u671F\u7EA6 15 \u5929"},{name:"root_folder_id",type:"string",default:"-1",required:!1,help:"\u6839\u6587\u4EF6\u5939 ID / \u5206\u4EAB ID\uFF08\u4E2A\u4EBA\u76D8\u9ED8\u8BA4 -1\uFF0C\u5206\u4EAB\u94FE\u63A5\u586B\u5206\u4EAB ID \u5982 b00xxxx\uFF09"},{name:"share_password",type:"string",default:"",required:!1,help:"\u63D0\u53D6\u7801 / \u8BBF\u95EE\u5BC6\u7801\uFF08\u65E0\u5BC6\u7801\u7559\u7A7A\uFF09"},{name:"baseUrl",type:"string",default:"https://pc.woozooo.com",required:!1,help:"\u57FA\u672C API \u57DF\u540D"},{name:"shareUrl",type:"string",default:"https://pan.lanzoui.com",required:!1,help:"\u5206\u4EAB\u9875\u9762\u89E3\u6790\u57DF\u540D"},{name:"user_agent",type:"string",default:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/42",required:!0,help:"\u53D1\u9001\u7ED9\u84DD\u594F\u4E91 API \u4E0E\u76F4\u94FE\u89E3\u6790\u65F6\u643A\u5E26\u7684\u5BA2\u6237\u7AEF User-Agent"},{name:"repair_file_info",type:"bool",default:"false",required:!1,help:"\u901A\u8FC7 HEAD \u8BF7\u6C42\u4FEE\u6B63\u6587\u4EF6\u7CBE\u786E\u5927\u5C0F\u4E0E\u4FEE\u6539\u65F6\u95F4\uFF08WebDAV \u63A8\u8350\u5F00\u542F\uFF09"},{name:"order_by",type:"select",options:"name,size,time",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Lanzou",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"-1"}},WebDav:{name:"WebDav",default_mount_path:"/webdav",common:[...Ft,Pt,Tt,Ut,...Rt("WebDav"),cl,Nt,er],additional:[{name:"vendor",type:"select",options:"other,sharepoint",default:"other",required:!0},{name:"address",type:"string",default:"",required:!0},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"tls_insecure_skip_verify",type:"bool",default:"false",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"WebDav",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},WoPan:{name:"WoPan",default_mount_path:"/wopan",common:mt,additional:[{name:"root_folder_id",type:"string",default:"0",required:!1},{name:"refresh_token",type:"text",default:"",required:!0},{name:"family_id",type:"string",default:"",required:!1,help:"true"},{name:"sort_rule",type:"select",options:"name_asc,name_desc,time_asc,time_desc,size_asc,size_desc",default:"name_asc",required:!1},{name:"access_token",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"WoPan",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0",no_overwrite_upload:!0}},S3:{name:"S3",default_mount_path:"/s3",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"bucket",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"",required:!0},{name:"region",type:"string",default:"",required:!1},{name:"access_key_id",type:"string",default:"",required:!0},{name:"secret_access_key",type:"string",default:"",required:!0},{name:"session_token",type:"string",default:"",required:!1},{name:"custom_host",type:"string",default:"",required:!1},{name:"enable_custom_host_presign",type:"bool",default:"false",required:!1},{name:"sign_url_expire",type:"number",default:"4",required:!1},{name:"placeholder",type:"string",default:"",required:!1},{name:"force_path_style",type:"bool",default:"false",required:!1},{name:"list_object_version",type:"select",options:"v1,v2",default:"v1",required:!1},{name:"remove_bucket",type:"bool",default:"false",required:!1,help:"true"},{name:"add_filename_to_disposition",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1},{name:"direct_upload_host",type:"string",default:"",required:!1},{name:"user_agent",type:"string",default:"",required:!1,help:"true"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"S3",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},Doge:{name:"Doge",default_mount_path:"/doge",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"bucket",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"",required:!0},{name:"region",type:"string",default:"",required:!1},{name:"access_key_id",type:"string",default:"",required:!0},{name:"secret_access_key",type:"string",default:"",required:!0},{name:"session_token",type:"string",default:"",required:!1},{name:"custom_host",type:"string",default:"",required:!1},{name:"enable_custom_host_presign",type:"bool",default:"false",required:!1},{name:"sign_url_expire",type:"number",default:"4",required:!1},{name:"placeholder",type:"string",default:"",required:!1},{name:"force_path_style",type:"bool",default:"false",required:!1},{name:"list_object_version",type:"select",options:"v1,v2",default:"v1",required:!1},{name:"remove_bucket",type:"bool",default:"false",required:!1,help:"true"},{name:"add_filename_to_disposition",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1},{name:"direct_upload_host",type:"string",default:"",required:!1},{name:"user_agent",type:"string",default:"",required:!1,help:"true"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Doge",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},WeiYun:{name:"WeiYun",default_mount_path:"/weiyun",common:[...Ft,Pt,Tt,Ut,...Rt("WeiYun"),Nt,er],additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"cookies",type:"text",default:"",required:!0},{name:"order_by",type:"select",options:"name,size,updated_at",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"upload_thread",type:"string",default:"4",required:!1,help:"4<=thread<=32"}],config:{name:"WeiYun",local_sort:!1,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"",check_status:!0}},SFTP:{name:"SFTP",default_mount_path:"/sftp",common:[...Ft,Pt,Tt,Ut,...Rt("SFTP"),Nt,er],additional:[{name:"address",type:"string",default:"",required:!0,help:"SSH host:port (e.g. 127.0.0.1:22)"},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!1},{name:"private_key",type:"text",default:"",required:!1},{name:"passphrase",type:"string",default:"",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"ignore_symlink_error",type:"bool",default:"false",required:!1,help:"Ignore symlink error"}],config:{name:"SFTP",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0,no_link_url:!0}},FTP:{name:"FTP",default_mount_path:"/ftp",common:[...Ft,Pt,Tt,Ut,...Rt("FTP"),Nt,er],additional:[{name:"address",type:"string",default:"",required:!0,help:"FTP host:port (e.g. 127.0.0.1:21)"},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"encoding",type:"string",default:"utf-8",required:!0,help:"Character encoding, e.g. utf-8, gbk, gb2312"},{name:"cwd_list",type:"bool",default:"false",required:!1,help:"Enter directory before listing"},{name:"root_folder_path",type:"string",default:"/",required:!1}],config:{name:"FTP",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0,no_link_url:!0}},PikPak:{name:"PikPak",default_mount_path:"/pikpak",common:mt,additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"platform",type:"select",options:"web,android,pc",default:"web",required:!0},{name:"refresh_token",type:"text",default:"",required:!1},{name:"captcha_token",type:"text",default:"",required:!1},{name:"device_id",type:"string",default:"",required:!1},{name:"disable_media_link",type:"bool",default:"true",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"PikPak",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},Seafile:{name:"Seafile",default_mount_path:"/seafile",common:mt,additional:[{name:"address",type:"string",default:"",required:!0},{name:"username",type:"string",default:"",required:!1},{name:"password",type:"string",default:"",required:!1},{name:"token",type:"string",default:"",required:!1},{name:"repo_id",type:"string",default:"",required:!1},{name:"repo_pwd",type:"string",default:"",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Seafile",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},YandexDisk:{name:"YandexDisk",default_mount_path:"/yandex",common:mt,additional:[{name:"refresh_token",type:"text",default:"",required:!0},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"use_online_api",type:"bool",default:"true",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/yandexui/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,path,created,modified,size",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"YandexDisk",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},Terabox:{name:"Terabox",default_mount_path:"/terabox",common:[...Ft,Pt,Tt,Ut,...Rt("Terabox"),Nt,er],additional:[{name:"cookie",type:"text",default:"",required:!0},{name:"download_api",type:"select",options:"official,crack",default:"official",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"order_by",type:"select",options:"name,time,size",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Terabox",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},MediaTrack:{name:"MediaTrack",default_mount_path:"/mediatrack",common:mt,additional:[{name:"access_token",type:"text",default:"",required:!0},{name:"project_id",type:"string",default:"",required:!1},{name:"root_folder_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"updated_at,title,size",default:"title",required:!1},{name:"order_desc",type:"bool",default:"false",required:!1}],config:{name:"MediaTrack",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},Alias:{name:"Alias",default_mount_path:"/alias",common:[...Ft,Pt,Tt,Ut,...Rt("Alias"),cl,Nt,er],additional:[{name:"paths",type:"text",default:"",required:!0,help:"Newline-separated list of paths, e.g. /local or sub:/target"},{name:"read_conflict_policy",type:"select",options:"first,random,all",default:"first",required:!1},{name:"write_conflict_policy",type:"select",options:"disabled,first,deterministic,deterministic_or_all,all,all_strict",default:"disabled",required:!1},{name:"put_conflict_policy",type:"select",options:"disabled,first,deterministic,deterministic_or_all,all,all_strict,random,quota,quota_strict",default:"disabled",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Alias",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/"}},Dropbox:{name:"Dropbox",default_mount_path:"/dropbox",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"use_online_api",type:"bool",default:"false",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/dropboxs/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"refresh_token",type:"text",default:"",required:!0},{name:"root_namespace_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Dropbox",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},WPS:{name:"WPS",default_mount_path:"/wps",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"cookie",type:"text",default:"",required:!0},{name:"mode",type:"select",options:"Personal,Business",default:"Personal",required:!1},{name:"custom_ua",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"WPS",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},"139Yun":{name:"139Yun",default_mount_path:"/139",common:[...Ft,Pt,Tt,Ut,...Rt("139Yun"),cl,Nt,er],additional:[{name:"authorization",type:"text",default:"",required:!0},{name:"root_folder_id",type:"string",default:"",required:!1},{name:"type",type:"select",options:"personal_new,family,group,personal,share",default:"personal_new",required:!1},{name:"link_id",type:"text",default:"",required:!1},{name:"cloud_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"139Yun",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},Mega_nz:{name:"Mega_nz",default_mount_path:"/mega",common:[...Ft,Pt,Tt,Ut,...Rt("Mega_nz"),Nt,er],additional:[{name:"email",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"two_fa_code",type:"string",default:"",required:!1},{name:"two_fa_secret",type:"string",default:"",required:!1},{name:"move_to_trash",type:"bool",default:"true",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Mega_nz",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},"115Share":{name:"115Share",default_mount_path:"/115_share",common:mt,additional:[{name:"share_code",type:"text",default:"",required:!0},{name:"receive_code",type:"text",default:"",required:!0},{name:"cookie",type:"text",default:"",required:!1},{name:"root_folder_id",type:"string",default:"0",required:!1},{name:"page_size",type:"number",default:"1000",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"115Share",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"0"}},"123PanShare":{name:"123PanShare",default_mount_path:"/123_share",common:[...Ft,Pt,Tt,Ut,...Rt("123PanShare"),Nt,er],additional:[{name:"sharekey",type:"string",default:"",required:!0},{name:"sharepassword",type:"string",default:"",required:!1},{name:"accesstoken",type:"text",default:"",required:!1},{name:"root_folder_id",type:"string",default:"0",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"123PanShare",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"0"}},AliyundriveShare:{name:"AliyundriveShare",default_mount_path:"/aliyun_share",common:mt,additional:[{name:"share_id",type:"string",default:"",required:!0},{name:"share_pwd",type:"string",default:"",required:!1},{name:"root_folder_id",type:"string",default:"root",required:!1},{name:"order_by",type:"select",options:"name,size,updated_at,created_at",default:"name",required:!1},{name:"order_direction",type:"select",options:"ASC,DESC",default:"ASC",required:!1}],config:{name:"AliyundriveShare",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"root"}},OnedriveSharelink:{name:"OnedriveSharelink",default_mount_path:"/onedrive_share",common:mt,additional:[{name:"url",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"OnedriveSharelink",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"/"}},PikPakShare:{name:"PikPakShare",default_mount_path:"/pikpak_share",common:mt,additional:[{name:"share_id",type:"string",default:"",required:!0},{name:"share_pwd",type:"string",default:"",required:!1},{name:"platform",type:"select",options:"android,web,pc",default:"web",required:!1},{name:"root_folder_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"PikPakShare",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:""}},SMB:{name:"SMB",default_mount_path:"/smb",common:[...Ft,Pt,Tt,Ut,...Rt("SMB"),Nt,er],additional:[{name:"address",type:"string",default:"",required:!0},{name:"share_name",type:"string",default:"",required:!0},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!1},{name:"port",type:"number",default:"445",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"SMB",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/"}},Crypt:{name:"Crypt",default_mount_path:"/crypt",common:[...Ft,Pt,Tt,Ut,...Rt("Crypt"),Nt,er],additional:[{name:"remote_path",type:"string",default:"",required:!0,help:"\u52A0\u5BC6\u6570\u636E\u5B9E\u9645\u5B58\u50A8\u7684\u4F4D\u7F6E\uFF08\u53E6\u4E00\u4E2A\u5DF2\u6302\u8F7D\u5B58\u50A8\u7684\u8DEF\u5F84\uFF0C\u5982 /aliyundrive/enc\uFF09"},{name:"password",type:"string",default:"",required:!0,help:"\u4E3B\u5BC6\u7801\uFF08\u7528\u4E8E\u6D3E\u751F\u52A0\u5BC6\u5BC6\u94A5\uFF09"},{name:"salt",type:"string",default:"",required:!1,help:"\u76D0\uFF08\u7B2C\u4E8C\u5BC6\u7801\uFF09\u3002\u53EF\u9009\u4F46\u63A8\u8350\uFF0C\u63D0\u9AD8\u5BC6\u94A5\u5F3A\u5EA6"},{name:"filename_encryption",type:"select",options:"off,standard,obfuscate",default:"off",required:!0,help:"\u6587\u4EF6\u540D\u52A0\u5BC6\u65B9\u5F0F\u3002\u5F53\u524D\u4EC5\u652F\u6301 off\uFF08\u6587\u4EF6\u540D\u4E0D\u52A0\u5BC6\uFF0C\u4EC5\u5185\u5BB9\u52A0\u5BC6\uFF09"},{name:"directory_name_encryption",type:"select",options:"false,true",default:"false",required:!0},{name:"encrypted_suffix",type:"string",default:".bin",required:!0,help:"\u52A0\u5BC6\u6587\u4EF6\u7684\u540E\u7F00\uFF08\u9AD8\u7EA7\u9009\u9879\uFF09"},{name:"filename_encoding",type:"select",options:"base64,base32,base32768",default:"base64",required:!0},{name:"thumbnail",type:"bool",default:"false",required:!1},{name:"show_hidden",type:"bool",default:"true",required:!1}],config:{name:"Crypt",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/",no_link_url:!0,check_status:!0}},Virtual:{name:"Virtual",default_mount_path:"/virtual",common:[...Ft,Pt,Tt,Ut,...Rt("Virtual"),Nt,er],additional:[{name:"num_file",type:"number",default:"30",required:!0,help:"\u6BCF\u4E2A\u76EE\u5F55\u4E0B\u751F\u6210\u7684\u5360\u4F4D\u6587\u4EF6\u6570\u91CF"},{name:"num_folder",type:"number",default:"30",required:!0,help:"\u6BCF\u4E2A\u76EE\u5F55\u4E0B\u751F\u6210\u7684\u5360\u4F4D\u76EE\u5F55\u6570\u91CF"},{name:"max_file_size",type:"number",default:"1073741824",required:!0,help:"\u5360\u4F4D\u6587\u4EF6\u6700\u5927\u5B57\u8282\u6570"},{name:"min_file_size",type:"number",default:"1048576",required:!0,help:"\u5360\u4F4D\u6587\u4EF6\u6700\u5C0F\u5B57\u8282\u6570"}],config:{name:"Virtual",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!0,default_root:"/",no_link_url:!0}},AListV3:{name:"AListV3",default_mount_path:"/alist",common:[...Ft,Pt,Tt,Ut,...Rt("AListV3"),cl,Nt,er],additional:[{name:"url",type:"string",default:"",required:!0,help:"\u53E6\u4E00\u4E2A OpenList / AList \u5B9E\u4F8B\u7684\u5730\u5740\uFF0C\u5982 https://example.com"},{name:"meta_password",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!1},{name:"password",type:"string",default:"",required:!1},{name:"token",type:"string",default:"",required:!1,help:"\u8BBF\u95EE\u4EE4\u724C\uFF08\u53EF\u9009\uFF0C\u81EA\u52A8\u6301\u4E45\u5316\uFF0C\u65E0\u9700\u624B\u52A8\u586B\u5199\uFF09"},{name:"pass_ip_to_upsteam",type:"bool",default:"true",required:!1},{name:"pass_ua_to_upsteam",type:"bool",default:"true",required:!1},{name:"forward_archive_requests",type:"bool",default:"true",required:!1}],config:{name:"AListV3",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},UrlTree:{name:"UrlTree",default_mount_path:"/url_tree",common:mt,additional:[{name:"url_structure",type:"text",default:"",required:!0,help:"URL \u6811\u7ED3\u6784\u6587\u672C\uFF0C\u6BCF\u884C\u7F29\u8FDB 2 \u7A7A\u683C\u8868\u793A\u4E00\u7EA7\u3002\u76EE\u5F55\u884C\u4EE5 : \u7ED3\u5C3E\uFF0C\u6587\u4EF6\u884C\u683C\u5F0F [FileName:][FileSize:][Modified:]Url"},{name:"head_size",type:"bool",default:"false",required:!1,help:"\u7528 HEAD \u8BF7\u6C42\u83B7\u53D6\u6587\u4EF6\u5927\u5C0F\uFF08\u53EF\u80FD\u5931\u8D25\uFF09"},{name:"writable",type:"bool",default:"false",required:!1,help:"\u5141\u8BB8\u589E\u5220\u6539\u6587\u4EF6\u6811\uFF08\u4F1A\u6301\u4E45\u5316\u56DE url_structure\uFF09"}],config:{name:"UrlTree",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},Strm:{name:"Strm",default_mount_path:"/strm",common:[...Ft,Pt,Tt,Ut,...Rt("Strm"),Nt,er],additional:[{name:"paths",type:"text",default:"",required:!0,help:"\u8DEF\u5F84\u6620\u5C04\uFF0C\u6BCF\u884C\u4E00\u4E2A\uFF1A\u865A\u62DF\u540D:\u5E95\u5C42\u8DEF\u5F84\uFF08\u5982 movies:/aliyundrive/movies\uFF09\uFF0C\u6216\u76F4\u63A5\u5E95\u5C42\u8DEF\u5F84"},{name:"siteUrl",type:"text",default:"",required:!1,help:"strm \u6587\u4EF6\u5185\u5BB9\u7684 URL \u524D\u7F00\uFF08\u7559\u7A7A\u5219\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF09"},{name:"PathPrefix",type:"text",default:"/d",required:!1,help:"\u4E0B\u8F7D\u8DEF\u5F84\u524D\u7F00"},{name:"downloadFileTypes",type:"text",default:"ass,srt,vtt,sub,strm",required:!1,help:"\u9700\u539F\u6837\u4E0B\u8F7D\u7684\u6587\u4EF6\u6269\u5C55\u540D\uFF08\u901A\u5E38\u4E3A\u5B57\u5E55\uFF09"},{name:"filterFileTypes",type:"text",default:"mp4,mkv,flv,avi,wmv,ts,rmvb,webm,mp3,flac,aac,wav,ogg,m4a,wma,alac",required:!1,help:"\u652F\u6301\u751F\u6210 strm \u7684\u6587\u4EF6\u6269\u5C55\u540D\uFF08\u89C6\u9891/\u97F3\u9891\uFF09"},{name:"encodePath",type:"bool",default:"true",required:!1},{name:"withoutUrl",type:"bool",default:"false",required:!1},{name:"withSign",type:"bool",default:"false",required:!1}],config:{name:"Strm",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!0,no_upload:!0,need_ms:!1,default_root:"/",no_link_url:!0}},AzureBlob:{name:"AzureBlob",default_mount_path:"/azure",common:mt,additional:[{name:"endpoint",type:"string",default:"",required:!0,help:"Azure \u5B58\u50A8\u7AEF\u70B9\uFF0C\u5982 https://accountname.blob.core.windows.net/"},{name:"access_key",type:"string",default:"",required:!0,help:"Azure \u5B58\u50A8\u8BBF\u95EE\u5BC6\u94A5\uFF08Base64\uFF09"},{name:"container_name",type:"string",default:"",required:!0,help:"\u5BB9\u5668\u540D\u79F0"},{name:"sign_url_expire",type:"number",default:"4",required:!1,help:"SAS URL \u6709\u6548\u671F\uFF08\u5C0F\u65F6\uFF09"}],config:{name:"AzureBlob",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},USS:{name:"USS",default_mount_path:"/uss",common:mt,additional:[{name:"bucket",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"",required:!0,help:"\u4E0B\u8F7D\u57DF\u540D\uFF08\u53EF\u542B\u534F\u8BAE\u5934\uFF09"},{name:"operator_name",type:"string",default:"",required:!0},{name:"operator_password",type:"string",default:"",required:!0},{name:"anti_theft_chain_token",type:"string",default:"",required:!1,help:"\u9632\u76D7\u94FE Token\uFF08\u7559\u7A7A\u5219\u7528\u64CD\u4F5C\u5458\u5BC6\u7801\uFF09"},{name:"sign_url_expire",type:"number",default:"4",required:!1,help:"\u94FE\u63A5\u6709\u6548\u671F\uFF08\u5C0F\u65F6\uFF09"}],config:{name:"USS",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},Alidoc:{name:"Alidoc",default_mount_path:"/alidoc",common:mt,additional:[{name:"cookie",type:"text",default:"",required:!0,help:"\u9489\u9489\u6587\u6863\u7F51\u9875 Cookie"},{name:"root_folder_id",type:"string",default:"",required:!0,help:"\u6839\u76EE\u5F55 dentryUuid"}],config:{name:"Alidoc",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:""}},Emby:{name:"Emby",default_mount_path:"/emby",common:mt,additional:[{name:"url",type:"string",default:"",required:!0,help:"Emby \u670D\u52A1\u5668\u5730\u5740\uFF0C\u5982 http://localhost:8096"},{name:"api_key",type:"string",default:"",required:!1},{name:"user_id",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!1},{name:"password",type:"string",default:"",required:!1},{name:"link_method",type:"select",options:"stream,download",default:"stream",required:!1},{name:"root_folder_id",type:"string",default:"1",required:!1,help:"\u6839\u76EE\u5F55 ID\uFF0C\u9ED8\u8BA4 1"}],config:{name:"Emby",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"1"}},BunnyStorage:{name:"BunnyStorage",default_mount_path:"/bunny",common:mt,additional:[{name:"storage_zone_name",type:"string",default:"",required:!0},{name:"access_key",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"storage.bunnycdn.com",required:!1},{name:"cdn_base_url",type:"string",default:"",required:!1},{name:"cdn_token_key",type:"string",default:"",required:!1},{name:"cdn_token_method",type:"select",options:"sha256,hmac_sha256",default:"sha256",required:!1},{name:"cdn_token_include_ip",type:"bool",default:"false",required:!1},{name:"sign_url_expire",type:"number",default:"4",required:!1,help:"\u94FE\u63A5\u6709\u6548\u671F\uFF08\u5C0F\u65F6\uFF09"},{name:"placeholder",type:"string",default:".openlist",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!0}],config:{name:"BunnyStorage",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},CloudflareImgbed:{name:"CloudflareImgbed",default_mount_path:"/cfimgbed",common:mt,additional:[{name:"address",type:"string",default:"",required:!0,help:"\u56FE\u5E8A\u670D\u52A1\u5730\u5740"},{name:"token",type:"string",default:"",required:!0},{name:"small_channel_name",type:"string",default:"",required:!1},{name:"large_channel_name",type:"string",default:"",required:!1},{name:"large_channel_type",type:"string",default:"",required:!1},{name:"upload_thread",type:"number",default:"3",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!0}],config:{name:"CloudflareImgbed",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},GuangYaPan:{name:"GuangYaPan",default_mount_path:"/guangyapan",common:mt,additional:[{name:"client_id",type:"string",default:"",required:!0},{name:"device_id",type:"string",default:"",required:!1},{name:"device_sign",type:"string",default:"",required:!1},{name:"access_token",type:"text",default:"",required:!1},{name:"refresh_token",type:"text",default:"",required:!1},{name:"phone_number",type:"string",default:"",required:!1,help:"\u624B\u673A\u53F7\uFF08\u767B\u5F55\u7528\uFF0C+86 \u683C\u5F0F\uFF09"},{name:"verify_code",type:"string",default:"",required:!1},{name:"page_size",type:"number",default:"100",required:!1},{name:"order_by",type:"number",default:"3",required:!1},{name:"sort_type",type:"number",default:"1",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!0}],config:{name:"GuangYaPan",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},AutoIndex:{name:"AutoIndex",default_mount_path:"/autoindex",common:mt,additional:[{name:"url",type:"string",default:"",required:!0,help:"AutoIndex \u76EE\u5F55\u9875 URL"},{name:"item_xpath",type:"string",default:"//pre/a",required:!0},{name:"name_xpath",type:"string",default:"@href",required:!0},{name:"modified_xpath",type:"string",default:"string(following-sibling::text()[2])",required:!1},{name:"size_xpath",type:"string",default:"string(following-sibling::text()[1])",required:!1},{name:"ignore_file_names",type:"text",default:`. +`,typeof t=="function"&&t(null,a),a}});var bO=oe(BO=>{var Vae="\x1B[47m",Yae="\x1B[40m",mv="\x1B[37m",yv="\x1B[30m",hl="\x1B[0m",Wae=Vae+yv,Xae=Yae+mv,Zae=function(r,e,t){return{"00":hl+" "+r,"01":hl+e+"\u2584"+r,"02":hl+t+"\u2584"+r,10:hl+e+"\u2580"+r,11:" ",12:"\u2584",20:hl+t+"\u2580"+r,21:"\u2580",22:"\u2588"}},CO=function(r,e,t,i){let n=e+1;if(t>=n||i>=n||i<-1||t<-1)return"0";if(t>=e||i>=e||i<0||t<0)return"1";let s=i*e+t;return r[s]?"2":"1"},EO=function(r,e,t,i){return CO(r,e,t,i)+CO(r,e,t,i+1)};BO.render=function(r,e,t){let i=r.modules.size,n=r.modules.data,s=!!(e&&e.inverse),o=e&&e.inverse?Xae:Wae,l=Zae(o,s?yv:mv,s?mv:yv),d=hl+` +`+o,u=o;for(let f=-1;f<i+1;f+=2){for(let h=-1;h<i;h++)u+=l[EO(n,i,h,f)];u+=l[EO(n,i,i,f)]+d}return u+=hl,typeof t=="function"&&t(null,u),u}});var kO=oe(vO=>{var ece=xO(),tce=bO();vO.render=function(r,e,t){return e&&e.small?tce.render(r,e,t):ece.render(r,e,t)}});var wv=oe(DO=>{var rce=s0();function SO(r,e){let t=r.a/255,i=e+'="'+r.hex+'"';return t<1?i+" "+e+'-opacity="'+t.toFixed(2).slice(1)+'"':i}function Iv(r,e,t){let i=r+e;return typeof t<"u"&&(i+=" "+t),i}function ice(r,e,t){let i="",n=0,s=!1,o=0;for(let a=0;a<r.length;a++){let c=Math.floor(a%e),l=Math.floor(a/e);!c&&!s&&(s=!0),r[a]?(o++,a>0&&c>0&&r[a-1]||(i+=s?Iv("M",c+t,.5+l+t):Iv("m",n,0),n=0,s=!1),c+1<e&&r[a+1]||(i+=Iv("h",o),o=0)):n++}return i}DO.render=function(e,t,i){let n=rce.getOptions(t),s=e.modules.size,o=e.modules.data,a=s+n.margin*2,c=n.color.light.a?"<path "+SO(n.color.light,"fill")+' d="M0 0h'+a+"v"+a+'H0z"/>':"",l="<path "+SO(n.color.dark,"stroke")+' d="'+ice(o,s,n.margin)+'"/>',d='viewBox="0 0 '+a+" "+a+'"',f='<svg xmlns="http://www.w3.org/2000/svg" '+(n.width?'width="'+n.width+'" height="'+n.width+'" ':"")+d+' shape-rendering="crispEdges">'+c+l+`</svg> +`;return typeof i=="function"&&i(null,f),f}});var QO=oe(ex=>{var nce=wv();ex.render=nce.render;ex.renderToFile=function(e,t,i,n){typeof n>"u"&&(n=i,i=void 0);let s=wt("fs"),a='<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'+ex.render(t,i);s.writeFile(e,a,n)}});var _O=oe(tx=>{var xv=s0();function sce(r,e,t){r.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=t,e.width=t,e.style.height=t+"px",e.style.width=t+"px"}function oce(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}tx.render=function(e,t,i){let n=i,s=t;typeof n>"u"&&(!t||!t.getContext)&&(n=t,t=void 0),t||(s=oce()),n=xv.getOptions(n);let o=xv.getImageWidth(e.modules.size,n),a=s.getContext("2d"),c=a.createImageData(o,o);return xv.qrToImageData(c.data,e,n),sce(a,s,o),a.putImageData(c,0,0),s};tx.renderToDataURL=function(e,t,i){let n=i;typeof n>"u"&&(!t||!t.getContext)&&(n=t,t=void 0),n||(n={});let s=tx.render(e,t,n),o=n.type||"image/png",a=n.rendererOpts||{};return s.toDataURL(o,a.quality)}});var PO=oe(o0=>{var ace=U2(),Cv=ev(),FO=_O(),cce=wv();function Ev(r,e,t,i,n){let s=[].slice.call(arguments,1),o=s.length,a=typeof s[o-1]=="function";if(!a&&!ace())throw new Error("Callback required as last argument");if(a){if(o<2)throw new Error("Too few arguments provided");o===2?(n=t,t=e,e=i=void 0):o===3&&(e.getContext&&typeof n>"u"?(n=i,i=void 0):(n=i,i=t,t=e,e=void 0))}else{if(o<1)throw new Error("Too few arguments provided");return o===1?(t=e,e=i=void 0):o===2&&!e.getContext&&(i=t,t=e,e=void 0),new Promise(function(c,l){try{let d=Cv.create(t,i);c(r(d,e,i))}catch(d){l(d)}})}try{let c=Cv.create(t,i);n(null,r(c,e,i))}catch(c){n(c)}}o0.create=Cv.create;o0.toCanvas=Ev.bind(null,FO.render);o0.toDataURL=Ev.bind(null,FO.renderToDataURL);o0.toString=Ev.bind(null,function(r,e,t){return cce.render(r,t)})});var NO=oe(Xa=>{var TO=U2(),Bv=ev(),lce=yO(),UO=IO(),dce=kO(),RO=QO();function a0(r,e,t){if(typeof r>"u")throw new Error("String required as first argument");if(typeof t>"u"&&(t=e,e={}),typeof t!="function")if(TO())e=t||{},t=null;else throw new Error("Callback required as last argument");return{opts:e,cb:t}}function uce(r){return r.slice((r.lastIndexOf(".")-1>>>0)+2).toLowerCase()}function rx(r){switch(r){case"svg":return RO;case"txt":case"utf8":return UO;default:return lce}}function fce(r){switch(r){case"svg":return RO;case"terminal":return dce;default:return UO}}function c0(r,e,t){if(!t.cb)return new Promise(function(i,n){try{let s=Bv.create(e,t.opts);return r(s,t.opts,function(o,a){return o?n(o):i(a)})}catch(s){n(s)}});try{let i=Bv.create(e,t.opts);return r(i,t.opts,t.cb)}catch(i){t.cb(i)}}Xa.create=Bv.create;Xa.toCanvas=PO().toCanvas;Xa.toString=function(e,t,i){let n=a0(e,t,i),s=n.opts?n.opts.type:void 0,o=fce(s);return c0(o.render,e,n)};Xa.toDataURL=function(e,t,i){let n=a0(e,t,i),s=rx(n.opts.type);return c0(s.renderToDataURL,e,n)};Xa.toBuffer=function(e,t,i){let n=a0(e,t,i),s=rx(n.opts.type);return c0(s.renderToBuffer,e,n)};Xa.toFile=function(e,t,i,n){if(typeof e!="string"||!(typeof t=="string"||typeof t=="object"))throw new Error("Invalid argument");if(arguments.length<3&&!TO())throw new Error("Too few arguments provided");let s=a0(t,i,n),o=s.opts.type||uce(e),c=rx(o).renderToFile.bind(null,e);return c0(c,t,s)};Xa.toFileStream=function(e,t,i){if(arguments.length<2)throw new Error("Too few arguments provided");let n=a0(t,i,e.emit.bind(e,"error")),o=rx("png").renderToFileStream.bind(null,e);c0(o,t,n)}});var OO=oe((vbe,qO)=>{qO.exports=NO()});function Ace(r,e){try{return l0.authenticator.options={window:1},l0.authenticator.verify({token:r,secret:e})}catch(t){return console.error("[TOTP] Verification error:",t),!1}}function LO(){return l0.authenticator.generateSecret()}async function bv(r,e){return Ace(e,r)}function HO(r,e,t="OpenList"){return l0.authenticator.keyuri(e,t,r)}async function KO(r){return MO.default.toDataURL(r)}var l0,MO,GO=J(()=>{"use strict";l0=xr(Q7(),1),MO=xr(OO(),1)});function hce(r){let e="";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return btoa(e)}function zO(r){let e=String(r||"").replace(/[\s\r\n]/g,"").replace(/-/g,"+").replace(/_/g,"/"),t=e.length%4,i=t?e+"=".repeat(4-t):e;try{let n=atob(i),s=new Uint8Array(n.length);for(let o=0;o<n.length;o++)s[o]=n.charCodeAt(o);return s}catch{return null}}function vv(r){let e=String(r||"").trim().split(/\s+/);if(e.length<2)return null;let t=e[0];if(!gce.includes(t))return null;let i=zO(e[1]);return!i||i.length<16?null:{type:t,blobBase64:e[1].replace(/[\s\r\n]/g,""),comment:e.slice(2).join(" ")||""}}async function JO(r){let e=vv(r);if(!e)return null;let t=zO(e.blobBase64);if(!t)return null;let i=await crypto.subtle.digest("SHA-256",t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),n=new Uint8Array(i);return"SHA256:"+hce(n).replace(/=+$/,"")}function jO(){let r=globalThis;return typeof r.crypto?.randomUUID=="function"?r.crypto.randomUUID():Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,10)+Math.random().toString(36).slice(2,10)}var gce,$O=J(()=>{"use strict";gce=["ssh-rsa","ssh-dss","ssh-ed25519","ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","sk-ssh-ed25519@openssh.com","sk-ecdsa-sha2-nistp256@openssh.com","sk-ssh-ed25519@openssh.com.webauthn","sk-ecdsa-sha2-nistp256@openssh.com.webauthn"]});async function mu(r,e){let i=((await ne(e)).users||[]).find(n=>n.id===r);return i?i.ssh_keys||[]:[]}async function VO(r,e,t,i){let n=vv(e);if(!n)throw new Error("Invalid OpenSSH public key format");let s=await JO(e);if(!s)throw new Error("Failed to compute SSH key fingerprint");let o=await ne(i),a=(o.users||[]).find(l=>l.id===r);if(!a)throw new Error("User not found");if(Array.isArray(a.ssh_keys)||(a.ssh_keys=[]),a.ssh_keys.some(l=>l.fingerprint===s))throw new Error("SSH key with this fingerprint already exists");let c={id:jO(),name:(t||n.comment||n.type).slice(0,64),public_key:e.trim(),fingerprint:s,created_at:new Date().toISOString()};return a.ssh_keys.push(c),await fe(o,i),c}async function ix(r,e,t){let i=await ne(t),n=(i.users||[]).find(o=>o.id===r);if(!n||!Array.isArray(n.ssh_keys))return!1;let s=n.ssh_keys.length;return n.ssh_keys=n.ssh_keys.filter(o=>o.id!==e),n.ssh_keys.length!==s?(await fe(i,t),!0):!1}var kv=J(()=>{"use strict";Ye();$O()});async function YO(r){let e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(r));return Array.from(new Uint8Array(e)).map(t=>t.toString(16).padStart(2,"0")).join("")}async function nx(r){return YO(`${r}-${pce}`)}async function sx(r,e){return YO(`${r}-${e}`)}async function mce(r,e){return sx(await nx(r),e)}function Sv(r=16){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=new Uint8Array(r);crypto.getRandomValues(t);let i="";for(let n=0;n<r;n++)i+=e[t[n]%e.length];return i}function ox(r){return/^[0-9a-f]{64}$/i.test(String(r||""))}async function Ti(r,e){r.salt=Sv(),r.password=await mce(e,r.salt),r.pwd_update_at=new Date().toISOString()}var pce,d0=J(()=>{"use strict";pce="https://github.com/alist-org/alist"});var WO=J(()=>{Hx()});function yce(r=32){let e=new Uint8Array(r);return crypto.getRandomValues(e),btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Dv(r,e={}){let t={...XO,...e},i=yce();return eM(r,t.cookieName,i,{maxAge:t.maxAge,...t.cookieOptions}),i}function ZO(r,e={}){let t={...XO,...e};eM(r,t.cookieName,"",{maxAge:0,...t.cookieOptions})}function eM(r,e,t,i={}){let n=[`${e}=${encodeURIComponent(t)}`];i.maxAge!==void 0&&n.push(`Max-Age=${i.maxAge}`),i.httpOnly&&n.push("HttpOnly"),i.secure&&n.push("Secure"),i.sameSite&&n.push(`SameSite=${i.sameSite}`),i.path&&n.push(`Path=${i.path}`),r.header("Set-Cookie",n.join("; "))}var XO,tM=J(()=>{"use strict";WO();XO={cookieName:"csrf_token",headerName:"x-csrf-token",maxAge:3600,cookieOptions:{httpOnly:!0,secure:!0,sameSite:"strict",path:"/"}}});function Ice(){return`${Date.now()}-${Math.random().toString(36).substring(2,15)}`}function wce(r){let e=r.get?.("user"),t=r.req.header("cf-connecting-ip")||r.req.header("x-forwarded-for")||r.req.header("x-real-ip")||"unknown",i=r.req.header("user-agent")||"unknown";return{user_id:e?.id,username:e?.username,ip_address:t,user_agent:i}}function yu(){if(!Qv){let r=new Fv(1e4);Qv=new _v(r)}return Qv}var _v,Fv,Qv,rM=J(()=>{"use strict";_v=class{storage;constructor(e){this.storage=e}async log(e,t,i,n,s,o={}){let a=wce(e),c={id:Ice(),timestamp:new Date().toISOString(),level:t,category:i,action:n,message:s,success:o.success??!0,...a,resource_type:o.resource_type,resource_id:o.resource_id,resource_name:o.resource_name,details:o.details,error_message:o.error_message};try{await this.storage.write(c)}catch(l){console.error("[AuditLog] Failed to write log:",l)}}async logLoginSuccess(e,t){await this.log(e,"info","auth","login",`User ${t} logged in successfully`,{success:!0})}async logLoginFailure(e,t,i){await this.log(e,"warn","auth","login_failed",`Failed login attempt for user ${t}`,{success:!1,error_message:i})}async logLogout(e){await this.log(e,"info","auth","logout","User logged out",{success:!0})}async logFileUpload(e,t,i){await this.log(e,"info","file","upload",`Uploaded file: ${t}`,{success:!0,resource_type:"file",resource_name:t,details:{file_size:i}})}async logFileDelete(e,t,i){await this.log(e,i?"critical":"error","file","delete",`Deleted file: ${t}`,{success:i,resource_type:"file",resource_name:t})}async logPermissionChange(e,t,i,n){await this.log(e,"critical","permission","update_permission",`Changed permission for user ${t}`,{success:!0,resource_type:"user",resource_name:t,details:{old_role:i,new_role:n}})}async logUserCreate(e,t,i){await this.log(e,"info","user","create",`Created user: ${t}`,{success:!0,resource_type:"user",resource_name:t,details:{role:i}})}async logUserDelete(e,t){await this.log(e,"critical","user","delete",`Deleted user: ${t}`,{success:!0,resource_type:"user",resource_name:t})}async query(e){return this.storage.query(e)}async count(e){return this.storage.count(e)}},Fv=class{logs=[];maxSize;constructor(e=1e4){this.maxSize=e}async write(e){this.logs.push(e),this.logs.length>this.maxSize&&this.logs.shift()}async query(e){let t=this.logs;e.start_time&&(t=t.filter(s=>s.timestamp>=e.start_time)),e.end_time&&(t=t.filter(s=>s.timestamp<=e.end_time)),e.level&&(t=t.filter(s=>s.level===e.level)),e.category&&(t=t.filter(s=>s.category===e.category)),e.user_id&&(t=t.filter(s=>s.user_id===e.user_id)),e.username&&(t=t.filter(s=>s.username===e.username)),e.action&&(t=t.filter(s=>s.action===e.action)),e.resource_type&&(t=t.filter(s=>s.resource_type===e.resource_type)),e.resource_id&&(t=t.filter(s=>s.resource_id===e.resource_id)),e.success!==void 0&&(t=t.filter(s=>s.success===e.success)),t=t.sort((s,o)=>new Date(o.timestamp).getTime()-new Date(s.timestamp).getTime());let i=e.offset||0,n=e.limit||100;return t.slice(i,i+n)}async count(e){return(await this.query({...e,limit:Number.MAX_SAFE_INTEGER})).length}clear(){this.logs=[]}},Qv=null});var dM={};Cn(dM,{authRouter:()=>mn,authUserFromReq:()=>qn,generateRandomPassword:()=>xu,getOrInitUsers:()=>u0,hashPasswordSHA256:()=>vce,logoutHandler:()=>Cu,meHandler:()=>cx,meRouter:()=>Iu,meUpdateHandler:()=>ax,verifyUserPassword:()=>wu,verifyUserStaticHash:()=>Uv});function Bce(r){return r.req.header("CF-Connecting-IP")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown"}function Pv(r,e){return`${Bce(r)}|${String(e||"").toLowerCase()}`}function Tv(r){return`__global__|${String(r||"").toLowerCase()}`}function bce(r){let e=Ece,t=Math.pow(2,Math.floor(r/5));return Math.min(e*t,nM)}async function iM(r,e,t){let i=Date.now(),n=Es.get(r)||{count:0,lockedUntil:0,attempts:0};try{let{getKvBinding:s}=await Promise.resolve().then(()=>(Ye(),Jr)),o=await s(t);if(o.mode!=="none"&&o.binding){let a=`login_fail:${r}`,c=null;try{c=await o.binding.get(a,"text")}catch{c=await o.binding.get(a)}if(c&&typeof c.text=="function"&&(c=await c.text()),c)try{n=JSON.parse(String(c))}catch{}}}catch{}if(!(n.lockedUntil>i)){if(n.count+=1,n.attempts+=1,n.count>=e){let s=bce(n.attempts);n.lockedUntil=i+s,n.count=0,console.warn(`[Auth] Login attempts exceeded for ${r}. Locked for ${Math.round(s/6e4)} minutes (attempt #${n.attempts}).`)}Es.set(r,n);try{let{getKvBinding:s}=await Promise.resolve().then(()=>(Ye(),Jr)),o=await s(t);if(o.mode!=="none"&&o.binding){let a=`login_fail:${r}`,c=JSON.stringify(n),l=Math.ceil((nM+36e5)/1e3);typeof o.binding.put=="function"&&await o.binding.put(a,c,{expirationTtl:l})}}catch(s){console.warn("[Auth] Failed to persist login failure to KV:",s)}}}async function sM(r,e,t){if(Es.size>1e4){let c=Date.now();for(let[l,d]of Es)d.lockedUntil<c&&d.count===0&&Es.delete(l)}let i=Date.now(),n=Pv(r,e),s=Tv(e),o=Es.get(n),a=Es.get(s);try{let{getKvBinding:c}=await Promise.resolve().then(()=>(Ye(),Jr)),l=await c(t);if(l.mode!=="none"&&l.binding)for(let d of[n,s]){let u=`login_fail:${d}`,f=null;try{f=await l.binding.get(u,"text")}catch{f=await l.binding.get(u)}if(f&&typeof f.text=="function"&&(f=await f.text()),f)try{let h=JSON.parse(String(f));d===n&&(o=h),d===s&&(a=h),Es.set(d,h)}catch{}}}catch{}return!!(o&&o.lockedUntil>i||a&&a.lockedUntil>i)}async function oM(r,e,t){await iM(Pv(r,e),xce,t),await iM(Tv(e),Cce,t)}async function aM(r,e,t){let i=Pv(r,e),n=Tv(e);Es.delete(i),Es.delete(n);try{let{getKvBinding:s}=await Promise.resolve().then(()=>(Ye(),Jr)),o=await s(t);if(o.mode!=="none"&&o.binding)for(let a of[i,n]){let c=`login_fail:${a}`;typeof o.binding.delete=="function"&&await o.binding.delete(c)}}catch(s){console.warn("[Auth] Failed to clear login failures from KV:",s)}}async function vce(r){return nx(r)}async function Uv(r,e){let t=String(r?.password||"").trim().toLowerCase(),i=String(e||"").trim().toLowerCase();if(!t||!ox(i)||!ox(t))return!1;if(r?.salt){let n=(await sx(i,String(r.salt))).toLowerCase();return t===n}return t===i}async function wu(r,e){return String(r?.password||"").trim()?Uv(r,await nx(e)):!1}function xu(){let r=new Uint8Array(16);return crypto.getRandomValues(r),Array.from(r).map(e=>e.toString(16).padStart(2,"0")).join("")}function cM(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();let r=new Uint8Array(16);return crypto.getRandomValues(r),Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}async function u0(r){let e=await ne(r);if(!e.users||e.users.length===0){let t=r&&r.ADMIN_PASS||(typeof process<"u"?process.env?.ADMIN_PASS:"")||"",i={id:2,username:"guest",password:"",role:1,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()};if(t){let s={id:1,username:"admin",password:"",role:2,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()};await Ti(s,t),e.users=[s,i]}else e.users=[i];await fe(e,r)||console.warn("[Auth] getOrInitUsers: skipped persisting an uninitialized placeholder DB (expected until POST /api/public/init/setup completes).")}else{let t=e.users.find(s=>s.role===2),i=t?String(t.password||"").trim():"",n=/^[0-9a-f]{64}$/i.test(i);if(t&&!n){let s=r&&r.ADMIN_PASS||(typeof process<"u"?process.env?.ADMIN_PASS:"")||"";s?(await Ti(t,s),await fe(e,r)):console.warn(i?"[SECURITY] Admin password uses a legacy hash format this build cannot verify; it has been left untouched. Log in with your existing password and re-set it, or set ADMIN_PASS to force a reset. It will NOT be reset to a default value.":"[SECURITY] Admin password is empty and no ADMIN_PASS is set \u2014 the system is NOT initialized. Open the site in a browser to run the setup wizard, or set ADMIN_PASS to initialize automatically.")}}return{db:e,users:e.users}}async function qn(r){let e=r.req.header("Authorization");if(!e)return null;let t=e.startsWith("Bearer ")?e.substring(7):e;try{let i=await Dr(r),n=await mo(t,i,"HS256");if(await mw(n?.jti,r.env))return null;let s=await ne(r.env);s.users||(s.users=[]);let o=s.users.find(a=>a.id===n.id||a.username===n.username);return o?{db:s,user:o}:null}catch{return null}}async function lM(r,e){if(!r.otp_secret)return{ok:!0,code:200,httpStatus:200,message:"ok"};let t=String(e.otp_code||e.code||"").trim();return t?await bv(r.otp_secret,t)?{ok:!0,code:200,httpStatus:200,message:"ok"}:{ok:!1,code:401,httpStatus:401,message:"Invalid OTP code"}:{ok:!1,code:402,httpStatus:200,message:"OTP code required"}}var mn,Iu,xce,Cce,Ece,nM,Es,ax,cx,Cu,gl=J(()=>{"use strict";Cr();Io();Ye();Fi();GO();kv();d0();tM();rM();mn=new Xe,Iu=new Xe,xce=5,Cce=20,Ece=900*1e3,nM=1440*60*1e3,Es=new Map;mn.post("/login",async r=>{let e=await r.req.json().catch(()=>({})),t=(e.username||"").trim(),i=e.password||"";if(await sM(r,t,r.env))return r.json({code:429,message:"Too many failed login attempts for this account/IP. Please try again later.",data:null},429);let{users:n,db:s}=await u0(r.env),o=n.find(c=>c.username===t&&!c.disabled);if(o&&await wu(o,i)){let l=String(o.password||"").trim();(/^\$2[aby]\$/.test(l)||!o.salt&&ox(l))&&(console.log(`[Auth] Upgrading password hash for user: ${t}`),await Ti(o,i),await fe(s,r.env));let u=await lM(o,e);if(!u.ok)return r.json({code:u.code,message:u.message,data:null},u.httpStatus);await aM(r,t,r.env);let f={id:o.id,username:o.username,role:o.role,exp:Math.floor(Date.now()/1e3)+3600*24*7,jti:cM()},h=await Dr(r),g=await yo(f,h),p=Dv(r);return await yu().logLoginSuccess(r,t),r.json({code:200,message:"success",data:{token:g,csrf_token:p}})}return await yu().logLoginFailure(r,t,"Invalid credentials"),await oM(r,t,r.env),r.json({code:401,message:"Invalid credentials",data:null},401)});mn.post("/login/hash",async r=>{let e=await r.req.json().catch(()=>({})),t=(e.username||"").trim(),i=String(e.password||"").trim().toLowerCase();if(await sM(r,t,r.env))return r.json({code:429,message:"Too many failed login attempts for this account/IP. Please try again later.",data:null},429);let{users:n,db:s}=await u0(r.env),o=n.find(c=>c.username===t&&!c.disabled);if(o&&i.length===64&&await Uv(o,i)){o.salt||(console.log(`[Auth] Upgrading password hash for user: ${t}`),o.salt=Sv(),o.password=await sx(i,o.salt),o.pwd_update_at=new Date().toISOString(),await fe(s,r.env));let l=await lM(o,e);if(!l.ok)return r.json({code:l.code,message:l.message,data:null},l.httpStatus);await aM(r,t,r.env);let d={id:o.id,username:o.username,role:o.role,exp:Math.floor(Date.now()/1e3)+3600*24*7,jti:cM()},u=await Dr(r),f=await yo(d,u),h=Dv(r);return await yu().logLoginSuccess(r,t),r.json({code:200,message:"success",data:{token:f,csrf_token:h}})}return await yu().logLoginFailure(r,t,"Invalid credentials"),await oM(r,t,r.env),r.json({code:401,message:"Invalid credentials",data:null},401)});ax=async r=>{let e=await qn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let{db:t,user:i}=e,n=await r.req.json().catch(()=>({}));if(n.username&&n.username.trim()!==""){let s=n.username.trim();if(t.users.some(a=>a.id!==i.id&&a.username===s))return r.json({code:400,message:"Username already exists",data:null},400);i.username=s}return n.password&&n.password.trim()!==""&&await Ti(i,n.password.trim()),await fe(t,r.env),r.json({code:200,message:"success",data:null})},cx=async r=>{let e=await Me(r);return!e||e.disabled?r.json({code:401,message:"Unauthorized",data:null},401):r.json({code:200,message:"success",data:{id:e.id,username:e.username,role:e.role,permission:e.permission??0,base_path:e.base_path||"/",disabled:!!e.disabled,sso_id:e.sso_id||"",allow_ldap:!!e.allow_ldap,otp:!!e.otp_secret}})};mn.get("/me",cx);mn.post("/me/update",ax);Cu=async r=>{let e=r.req.header("Authorization");if(e){let i=e.startsWith("Bearer ")?e.substring(7):e;try{let n=await Dr(r),s=await mo(i,n,"HS256");s?.jti&&await Lb(s.jti,s.exp,r.env)}catch{}}return ZO(r),await yu().logLogout(r),r.json({code:200,message:"success",data:null})};mn.get("/logout",Cu);mn.post("/logout",Cu);mn.get("/csrf",async r=>{try{let e=await Kb(r);return r.json({code:200,message:"success",data:{csrf_token:e}})}catch{return r.json({code:500,message:"Failed to generate CSRF token",data:null},500)}});mn.post("/2fa/generate",async r=>{let e=await qn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let{user:t}=e;if(t.otp_secret)return r.json({code:400,message:"2FA already enabled",data:null},400);let i=LO(),n=HO(i,t.username);return r.json({code:200,message:"success",data:{qr:KO(n),secret:i}})});mn.post("/2fa/verify",async r=>{let e=await qn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let{db:t,user:i}=e,n=await r.req.json().catch(()=>({})),s=String(n.code||"").trim(),o=String(n.secret||"").trim();return o?/^[A-Z2-7]+$/i.test(o)?await bv(o,s)?(i.otp_secret=o.toUpperCase(),await fe(t,r.env),r.json({code:200,message:"success",data:null})):r.json({code:400,message:"Invalid code",data:null},400):r.json({code:400,message:"Invalid secret format",data:null},400):r.json({code:400,message:"Missing secret parameter",data:null},400)});Iu.get("/sshkey/list",async r=>{let e=await qn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await mu(e.user.id,r.env);return r.json({code:200,message:"success",data:{content:t,total:t.length}})});Iu.post("/sshkey/add",async r=>{let e=await qn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({}));try{let i=await VO(e.user.id,t.key||t.public_key||"",t.name||t.title||"",r.env);return r.json({code:200,message:"success",data:i})}catch(i){return r.json({code:400,message:i.message||"Failed to add SSH key",data:null},400)}});Iu.post("/sshkey/delete",async r=>{let e=await qn(r);if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=r.req.query("id");if(!t)return r.json({code:400,message:"Missing id parameter",data:null},400);if(!await ix(e.user.id,t,r.env))return r.json({code:404,message:"SSH key not found",data:null},404);let n=await mu(e.user.id,r.env);return r.json({code:200,message:"success",data:n})})});Cr();var Gk=r=>{let e={origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH","QUERY"],allowHeaders:[],exposeHeaders:[],...r},t=(n=>typeof n=="string"?n==="*"?()=>n:s=>n===s?s:null:typeof n=="function"?n:s=>n.includes(s)?s:null)(e.origin),i=(n=>typeof n=="function"?n:Array.isArray(n)?()=>n:()=>[])(e.allowMethods);return async function(s,o){function a(l,d){s.res.headers.set(l,d)}let c=await t(s.req.header("origin")||"",s);if(c&&a("Access-Control-Allow-Origin",c),e.credentials&&a("Access-Control-Allow-Credentials","true"),e.exposeHeaders?.length&&a("Access-Control-Expose-Headers",e.exposeHeaders.join(",")),s.req.method==="OPTIONS"){e.origin!=="*"&&a("Vary","Origin"),e.maxAge!=null&&a("Access-Control-Max-Age",e.maxAge.toString());let l=await i(s.req.header("origin")||"",s);l.length&&a("Access-Control-Allow-Methods",l.join(","));let d=e.allowHeaders;if(!d?.length){let u=s.req.header("Access-Control-Request-Headers");u&&(d=u.split(",").map(f=>f.trim()))}return d?.length&&(a("Access-Control-Allow-Headers",d.join(",")),s.res.headers.append("Vary","Access-Control-Request-Headers")),s.res.headers.delete("Content-Length"),s.res.headers.delete("Content-Type"),new Response(null,{headers:s.res.headers,status:204,statusText:"No Content"})}await o(),e.origin!=="*"&&s.header("Vary","Origin",{append:!0})}};Ye();gc();Cr();Yt();Ye();var qA=r=>{let e=[];for(let t of String(r||"").replace(/\\/g,"/").split("/"))if(!(t===""||t===".")){if(t===".."){e.pop();continue}e.push(t)}return"/"+e.join("/")};async function Yd(r,e,t){let n=qA(r).split("/").filter(Boolean);if(n.length<1)return{ok:!1,error:"Invalid share path"};let s,o;if(n[0]==="@s"){if(n.length<2)return{ok:!1,error:"Invalid share path"};s=n[1],o=n.slice(2)}else s=n[0],o=n.slice(1);let a=await ne(t),c=(a.shares||[]).find(g=>g.id===s);if(!c)return{ok:!1,error:"share not found"};if(c.disabled)return{ok:!1,error:"share has been disabled"};if(c.expires&&new Date(c.expires)<new Date)return{ok:!1,error:"share has expired"};if(c.max_accessed>0&&c.accessed!==void 0&&c.accessed>=c.max_accessed)return{ok:!1,error:"share access count exceeded"};if(c.pwd&&c.pwd!==e)return{ok:!1,error:"wrong password"};if(!c.files||c.files.length===0)return{ok:!1,error:"share is empty"};if(c.accessed=(c.accessed||0)+1,fe(a,t).catch(()=>{}),c.files.length>1&&o.length===0)return{ok:!0,share:c,virtualList:!0};let l=(c.files||[]).map(g=>qA(g)),d=g=>l.some(p=>g===p||g.startsWith(p==="/"?"/":p+"/"));if(c.files.length===1)return o.length>0?{ok:!1,error:"path not found in share"}:{ok:!0,share:c,realPath:qA(c.files[0])};let u=o[0],f=c.files.find(g=>{let p=String(g).split("/").filter(Boolean);return p[p.length-1]===u});if(!f)return{ok:!1,error:"path not found in share"};let h=qA([qA(f),...o.slice(1)].join("/"));return d(h)?{ok:!0,share:c,realPath:h}:{ok:!1,error:"path not found in share"}}Ye();Fi();var La={SEE_HIDES:0,ACCESS_WITHOUT_PASSWORD:1,OFFLINE_DOWNLOAD:2,WRITE_CONTENT:3,RENAME:4,MOVE:5,COPY:6,DELETE:7,WEBDAV_READ:8,WEBDAV_MANAGE:9,FTP_READ:10,FTP_MANAGE:11,READ_ARCHIVES:12,DECOMPRESS:13,SHARE:14,CUSTOMIZE_SHARE_ID:15};function $ne(r){return!r||r.role===1}function Is(r){return!!r&&r.role===2}function Ha(r,e){return!r||r.disabled?!1:Is(r)?!0:$ne(r)?!1:(r.permission>>e&1)===1}function pt(r){return Ha(r,La.WRITE_CONTENT)}function We(r,e="/"){let t=e||"/";if(t.startsWith("/@s"))return t;let i=(r?.base_path||"/").trim();if(!i||i==="/")return t.startsWith("/")?t:`/${t}`;i.startsWith("/")||(i=`/${i}`),i.endsWith("/")&&i.length>1&&(i=i.replace(/\/+$/,""));let n=t.startsWith("/")?t:`/${t}`;return n==="/"?i:`${i}${n}`}Ye();async function Gb(r,e){let i=(await ne(e)).metas||[];if(i.length===0)return null;let n=HA(r),s=i.find(a=>HA(a.path)===n);if(s)return s;let o=n;for(;o!=="/";){let a=o.substring(0,o.lastIndexOf("/"))||"/",c=i.find(l=>HA(l.path)===a);if(c)return c;o=a}return null}function al(r,e,t){let i=HA(r),n=HA(e);if(i.toLowerCase()===n.toLowerCase())return!0;if(!t)return!1;let s=n;for(;s!=="/";)if(s=s.substring(0,s.lastIndexOf("/"))||"/",i.toLowerCase()===s.toLowerCase())return!0;return!1}function HA(r){let e=(r||"/").replace(/\\/g,"/").replace(/\/+/g,"/").trim();return e===""||e==="/"?"/":"/"+e.split("/").filter(Boolean).join("/")}function zb(r,e,t,i=""){return r&&Is(r)||!e?!0:!(e.password&&e.password.trim()!==""&&al(e.path,t,e.p_sub)&&i!==e.password||e.read_users&&e.read_users.length>0&&al(e.path,t,e.read_users_sub)&&(!r||!e.read_users.includes(r.id||0)))}function Jb(r,e,t){return r===null||r&&Is(r)?!0:e&&e.write_users&&e.write_users.length>0&&al(e.path,t,e.write_users_sub)?e.write_users.includes(r.id||0):!0}function jb(r,e){return r?r.write&&al(r.path,e,r.w_sub):!1}function $b(r,e){return!r||!r.readme?"":al(r.path,e,r.r_sub)?r.readme:""}function Vb(r,e){return!r||!r.header?"":al(r.path,e,r.header_sub)?r.header:""}function v9(r,e,t){if(!r||!r.hide||r.hide.trim()===""||!al(r.path,e,r.h_sub))return!1;let i=r.hide.split(` +`).map(n=>n.trim()).filter(Boolean);for(let n of i)try{if(new RegExp(n).test(t))return!0}catch{}return!1}function Yb(r){if(!r||r.trim()==="")return null;let e=r.split(` +`).map(t=>t.trim()).filter(Boolean);for(let t of e)try{new RegExp(t)}catch{return t}return null}Ye();Fi();Gr();Zu();function Vne(r,e){if(typeof r!="string"||typeof e!="string"||r.length!==e.length)return!1;let t=0;for(let i=0;i<r.length;i++)t|=r.charCodeAt(i)^e.charCodeAt(i);return t===0}async function yw(r){try{let e=await ne(r?.env),t={};for(let s of e.settings||[])t[s.key]=s.value;let i=t.sign_all==="true",n=parseInt(t.link_expiration,10)||0;return!i&&n<=0?{enabled:!1,expiresIn:0}:{enabled:!0,expiresIn:n>0?n*3600:0}}catch{return{enabled:!1,expiresIn:0}}}function eu(r){return"/"+String(r||"").split("/").filter(Boolean).join("/")}function Yne(r,e,t){let i=eu(r).toLowerCase(),n=eu(e).toLowerCase();if(i===n)return!0;if(!t)return!1;for(;n!=="/";)if(n=eu(n.split("/").slice(0,-1).join("/")),i===n)return!0;return!1}async function Wne(r,e){try{let i=(await ne(r?.env)).metas||[];if(!i.length)return null;let n=eu(e);for(;;){let s=i.find(o=>eu(o.path).toLowerCase()===n.toLowerCase());if(s)return s;if(n==="/")return null;n=eu(n.split("/").slice(0,-1).join("/"))}}catch{return null}}async function Xne(r,e){try{let{resolvePath:t}=await Promise.resolve().then(()=>(Ye(),Jr)),i=await t(e);return i?.storage?nQ(i.storage):!1}catch{return!1}}async function Iw(r,e){if(await Xne(r,e))return!0;let t=await Wne(r,e);return!t||!t.password?!1:Yne(t.path,e,!!t.p_sub)}async function k9(r,e){return(await yw(r)).enabled?!0:await Iw(r,e)}async function tu(r){try{let e=await ne(r?.env);for(let t of e.settings||[])if(t.key==="link_expiration"){let i=parseInt(t.value,10)||0;if(i>0)return i*3600;break}}catch{}return 0}async function ru(r,e,t){let i=await Dr(r),n=t===0?0:Math.floor(Date.now()/1e3)+t,s=await jx(`${e}:${n}`,i);return`${n}.${s}`}async function S9(r,e,t){let i=t.lastIndexOf(".");if(i<=0)return!1;let n=parseInt(t.slice(0,i),10),s=t.slice(i+1);if(!Number.isFinite(n)||n!==0&&n<=Math.floor(Date.now()/1e3))return!1;let o=await Dr(r),a=await jx(`${e}:${n}`,o);return Vne(a,s)}Ma();Nl();Yt();async function iu(r={},e){let t=(r.parent||"/").replace(/\/+/g,"/")||"/",i=String(r.keywords||"").trim().toLowerCase(),n=r.scope??0,s=Math.max(1,r.page||1),o=Math.max(1,Math.min(100,r.per_page||30)),a=Math.min(20,Math.max(0,r.max_depth??10)),c=Math.min(2e3,Math.max(1,r.max_results??500)),l=[];async function d(g,p){if(p>a||l.length>=c)return;let I=[];try{I=(await Zt(g)).content||[]}catch{return}for(let m of I){if(l.length>=c)break;let w=!i||m.name.toLowerCase().includes(i),B=!!m.is_dir,C=B&&!m.sign,x=!0;if(n===1&&!B&&(x=!1),n===2&&B&&(x=!1),!C&&w&&x&&l.push({...m,parent:g.endsWith("/")&&g!=="/"?g.slice(0,-1):g}),B){let Q=g==="/"?`/${m.name}`:`${g}/${m.name}`;await d(Q,p+1)}}}await d(t,0);let u=l.length,f=(s-1)*o;return{content:l.slice(f,f+o),total:u}}Zu();function ww(r){let e=new DataView(r),t=r.byteLength,i=-1,n=Math.max(0,t-22-65557);for(let l=t-22;l>=n;l--)if(e.getUint32(l,!0)===101010256){i=l;break}if(i===-1)throw new Error("Invalid ZIP: End of Central Directory not found");let s=e.getUint16(i+10,!0),o=e.getUint32(i+16,!0),a=[],c=o;for(let l=0;l<s&&e.getUint32(c,!0)===33639248;l++){let d=e.getUint16(c+10,!0),u=e.getUint32(c+20,!0),f=e.getUint32(c+24,!0),h=e.getUint16(c+28,!0),g=e.getUint16(c+30,!0),p=e.getUint16(c+32,!0),I=e.getUint32(c+42,!0),m=e.getUint16(c+12,!0),w=e.getUint16(c+14,!0),B=Zne(w,m),C=new Uint8Array(r,c+46,h),x=new TextDecoder("utf-8").decode(C);if(c+=46+h+g+p,x.endsWith("/")||e.getUint32(I,!0)!==67324752)continue;let Q=e.getUint16(I+26,!0),R=e.getUint16(I+28,!0),U=I+30+Q+R;a.push({name:x.replace(/\\/g,"/"),isDir:!1,size:f,compressedSize:u,compressionMethod:d,dataOffset:U,modified:B})}return{entries:a}}async function D9(r,e){let t=new Uint8Array(r,e.dataOffset,e.compressedSize);if(e.compressionMethod===0)return new Uint8Array(t);if(e.compressionMethod===8){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not supported in this runtime");let i=new DecompressionStream("deflate-raw"),n=i.writable.getWriter();n.write(t),n.close();let s=await new Response(i.readable).arrayBuffer();return new Uint8Array(s)}throw new Error(`Unsupported ZIP compression method: ${e.compressionMethod}`)}function Zne(r,e){let t=1980+(r>>9&127),i=r>>5&15,n=r&31,s=e>>11&31,o=e>>5&63,a=(e&31)*2,c=l=>String(l).padStart(2,"0");return`${t}-${c(i)}-${c(n)}T${c(s)}:${c(o)}:${c(a)}Z`}xc();Cr();Fi();xc();Ma();Ye();Yt();var GA=xr(jm(),1);var xw="openlist-sharing-seed";var ese={md5:32,sha1:40,sha256:64};function yr(r){return typeof r=="string"?r:""}var tse=64,rse=4096;function Q9(r){let e=yr(r).trim();if(e.length>rse)throw new Error("Seed file path exceeds the maximum length");let t=e.split("/");if(t.length>tse)throw new Error("Seed file path exceeds the maximum depth");if(e.includes("\0")||e.includes("\\")||e.startsWith("/")||t.length===0||t.some(i=>!i||i==="."||i===".."))throw new Error("Seed file path must be a safe relative path");return t.join("/")}function KA(r,e){let t=yr(r).toLowerCase();if(t&&!new RegExp(`^[0-9a-f]{${ese[e]}}$`).test(t))throw new Error(`Invalid ${e} hash`);return t}function ise(r){return Array.isArray(r)?r.map(e=>{if(!e||typeof e!="object")throw new Error("Invalid seed source");let t=yr(e.type),i=yr(e.url);if(!t||!i)throw new Error("Seed source type and URL are required");try{if(!new URL(i).protocol)throw new Error("missing scheme")}catch{throw new Error("Seed source URL must be absolute")}return{type:t,url:i,expires_at:yr(e.expires_at),share_id:yr(e.share_id)}}):[]}function zi(r){if(!r||typeof r!="object")throw new Error("Invalid seed payload");let e=r;if(e.format!==void 0&&e.format!==xw)throw new Error("Unsupported seed format");if(e.version!==void 0&&Number(e.version)!==1)throw new Error("Unsupported seed version");let t=Number(e.piece_size||10485760);if(!Number.isSafeInteger(t)||t<16*1024||t>64*1024*1024)throw new Error("Invalid piece_size");if(!Array.isArray(e.files)||e.files.length===0||e.files.length>1e5)throw new Error("Seed file count must be between 1 and 100000");let i=e.files.map(o=>{if(!o||typeof o!="object")throw new Error("Invalid seed file");let a=Number(o.size);if(!Number.isSafeInteger(a)||a<0)throw new Error("Invalid seed file size");let c=o.hashes||{},l=c.pieces||{},d=a>0?Math.ceil(a/t):0,u=f=>{if(!Array.isArray(l[f]))return[];let h=l[f].map(g=>KA(g,f));if(h.length!==0&&h.length!==d)throw new Error(`${f} piece count is ${h.length}, expected ${d}`);return h};return{path:Q9(o.path),size:a,modified:yr(o.modified),comment:yr(o.comment),hashes:{md5:KA(c.md5,"md5"),sha1:KA(c.sha1,"sha1"),sha256:KA(c.sha256,"sha256"),pieces:{md5:u("md5"),sha1:u("sha1"),sha256:u("sha256")}},sources:ise(o.sources),cas_slice_md5:KA(o.cas_slice_md5,"md5"),cas_create_time:yr(o.cas_create_time),cas_cloud:yr(o.cas_cloud).trim(),missing_channels:Array.isArray(o.missing_channels)?o.missing_channels.map(yr).filter(Boolean):[]}}),n=new Set;for(let o of i){if(n.has(o.path))throw new Error(`Duplicate seed file path: ${o.path}`);n.add(o.path)}let s=yr(e.name)||i[0].path.split("/")[0];if(!s.trim()||s==="."||s===".."||/[\\/\0]/.test(s))throw new Error("Invalid seed name");return{format:xw,version:1,name:s,comment:yr(e.comment),created_at:yr(e.created_at)||new Date().toISOString(),created_by:yr(e.created_by)||"OpenList",piece_size:t,trackers:Array.isArray(e.trackers)?e.trackers.map(yr).filter(Boolean):[],channels:Array.isArray(e.channels)?e.channels.map(o=>{if(!o||typeof o!="object"||!yr(o.driver).trim())throw new Error("Seed channel driver is required");let a=yr(o.mount_path);if(/[?#\0]/.test(a))throw new Error("Seed channel mount_path contains invalid characters");return{driver:yr(o.driver).trim(),mount_path:a}}):[],files:i}}function Cw(r,e){let t=r&&typeof r=="object"?r:{},i=o=>({whole:!!t[o]?.whole,pieces:!!t[o]?.pieces}),n={md5:i("md5"),sha1:i("sha1"),sha256:i("sha256")};!n.md5.whole&&!n.md5.pieces&&!n.sha1.whole&&!n.sha1.pieces&&!n.sha256.whole&&!n.sha256.pieces&&(n={md5:{whole:!0,pieces:!0},sha1:{whole:!0,pieces:!0},sha256:{whole:!0,pieces:!0}});for(let o of e)o==="torrent"&&(n.sha1={whole:!0,pieces:!0}),o==="cas"&&(n.md5={whole:!0,pieces:!0});return n}function Wb(r,e){let t={md5:e.md5.whole?r.hashes.md5:"",sha1:e.sha1.whole?r.hashes.sha1:"",sha256:e.sha256.whole?r.hashes.sha256:"",pieces:{md5:e.md5.pieces?r.hashes.pieces.md5:[],sha1:e.sha1.pieces?r.hashes.pieces.sha1:[],sha256:e.sha256.pieces?r.hashes.pieces.sha256:[]}};return{...r,hashes:t}}function _9(r){return Q9(r)}var Rn=new TextEncoder,Ga=new TextDecoder("utf-8",{fatal:!0}),sse=32,ose=1e5;function Ew(r){let e=r.reduce((n,s)=>n+s.byteLength,0),t=new Uint8Array(e),i=0;for(let n of r)t.set(n,i),i+=n.byteLength;return t}function nu(r){if(r instanceof Uint8Array)return Ew([Rn.encode(`${r.byteLength}:`),r]);if(typeof r=="string")return nu(Rn.encode(r));if(typeof r=="number"){if(!Number.isSafeInteger(r))throw new Error("Bencode integer is out of range");return Rn.encode(`i${r}e`)}if(Array.isArray(r))return Ew([Rn.encode("l"),...r.map(nu),Rn.encode("e")]);let e=Object.entries(r).sort(([t],[i])=>{let n=Rn.encode(t),s=Rn.encode(i),o=Math.min(n.length,s.length);for(let a=0;a<o;a++)if(n[a]!==s[a])return n[a]-s[a];return n.length-s.length});return Ew([Rn.encode("d"),...e.flatMap(([t,i])=>[nu(t),nu(i)]),Rn.encode("e")])}function ase(r){let e=0,t=0,i=s=>{if(++t>ose)throw new Error("Bencode item limit exceeded");if(s>sse)throw new Error("Bencode nesting limit exceeded");let o=r[e];if(o===105){let a=r.indexOf(101,++e);if(a<0)throw new Error("Unterminated bencode integer");let c=Ga.decode(r.subarray(e,a));if(!/^(0|-?[1-9]\d*)$/.test(c))throw new Error("Invalid bencode integer");let l=Number(c);if(!Number.isSafeInteger(l))throw new Error("Bencode integer is out of range");return e=a+1,l}if(o===108){e++;let a=[];for(;e<r.length&&r[e]!==101;)a.push(i(s+1));if(r[e++]!==101)throw new Error("Unterminated bencode list");return a}if(o===100){e++;let a={};for(;e<r.length&&r[e]!==101;){let c=i(s+1);if(!(c instanceof Uint8Array))throw new Error("Bencode dictionary key is not a string");let l=Ga.decode(c);a[l]=i(s+1)}if(r[e++]!==101)throw new Error("Unterminated bencode dictionary");return a}if(o>=48&&o<=57){let a=r.indexOf(58,e);if(a<0)throw new Error("Invalid bencode byte string");let c=Ga.decode(r.subarray(e,a));if(!/^(0|[1-9]\d*)$/.test(c))throw new Error("Invalid bencode byte string length");let l=Number(c),d=a+1,u=d+l;if(!Number.isSafeInteger(l)||u>r.length)throw new Error("Truncated bencode byte string");return e=u,r.slice(d,u)}throw new Error("Invalid bencode value")},n=i(0);if(e!==r.length)throw new Error("Trailing bencode data");return n}function su(r,e){if(!r||typeof r!="object"||Array.isArray(r)||r instanceof Uint8Array)throw new Error(`${e} must be a dictionary`);return r}function cse(r){return r instanceof Uint8Array?r:new Uint8Array}function un(r){return r instanceof Uint8Array?Ga.decode(r):typeof r=="string"?r:""}function Ka(r){return typeof r=="number"?r:0}function lse(r){return Array.isArray(r)?r.map(e=>un(e)).filter(Boolean):[]}function Xb(r){return r==null?"":typeof r=="string"||typeof r=="number"||r instanceof Uint8Array?r:typeof r=="boolean"?r?1:0:Array.isArray(r)?r.map(Xb):typeof r=="object"?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,Xb(t)])):String(r)}function Zb(r){return r instanceof Uint8Array?Ga.decode(r):Array.isArray(r)?r.map(Zb):r&&typeof r=="object"?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,Zb(t)])):r}function dse(r){if(!r||r.length%2!==0||!/^[0-9a-f]+$/i.test(r))return new Uint8Array;let e=new Uint8Array(r.length/2);for(let t=0;t<e.length;t++)e[t]=parseInt(r.slice(t*2,t*2+2),16);return e}function use(r){return Array.from(r,e=>e.toString(16).padStart(2,"0")).join("")}function fse(r){if(r.files.length>1){for(let e of r.files.slice(0,-1))if(e.size%r.piece_size!==0)throw new Error("Cannot convert this multi-file seed to a standard torrent: a file boundary splits a piece")}return r.files.flatMap(e=>e.hashes.pieces.sha1)}async function Ase(r,e){if(!r.hashes.md5)return;let t=r.cas_slice_md5?r.cas_slice_md5.toUpperCase():"",i=r.hashes.pieces.md5.map(n=>n.toUpperCase());if(!t&&i.length>0&&e===10485760&&(t=i.length>1?(await(0,GA.md5)(i.join(` +`))).toUpperCase():i[0]),!!t)return{cloud:r.cas_cloud||"189",file_md5:r.hashes.md5.toUpperCase(),slice_md5:t,slice_md5s:i,slice_size:e}}function hse(r){return Rn.encode(JSON.stringify(zi(r),null,2))}function e2(r){let e=JSON.parse(Ga.decode(r));if(e?.format!==xw||Number(e?.version)!==1||!e?.created_at||!e?.created_by)throw new Error("Invalid or incomplete OpenList sharing seed");return zi(e)}async function F9(r,e){if(!r.hashes.md5)throw new Error(`CAS requires a whole-file MD5 for ${r.path}`);let t=r.cas_slice_md5?r.cas_slice_md5.toUpperCase():"";if(!t&&r.hashes.pieces.md5.length>0&&e===10485760){let n=r.hashes.pieces.md5.map(s=>s.toUpperCase());t=n.length>1?(await(0,GA.md5)(n.join(` +`))).toUpperCase():n[0]}if(!t){if(r.size>10485760)throw new Error(`CAS requires a legacy slice MD5 or complete 10 MiB MD5 pieces for ${r.path}`);t=r.hashes.md5.toUpperCase()}let i={name:r.path.split("/").pop()||r.path,size:r.size,md5:r.hashes.md5,sliceMd5:t,create_time:r.cas_create_time||String(Math.floor(Date.now()/1e3)),cloud:r.cas_cloud||"189"};return r.hashes.pieces.md5.length>0&&(i.slice_md5s=r.hashes.pieces.md5.map(n=>n.toUpperCase()),i.slice_size=e||10485760),i}async function gse(r){let e=zi(r);if(e.files.length===0)throw new Error("CAS requires at least one file");let t;if(e.files.length===1){let i=await F9(e.files[0],e.piece_size);t={name:i.name,size:i.size,md5:i.md5,sliceMd5:i.sliceMd5,create_time:i.create_time,slice_md5s:i.slice_md5s,slice_size:i.slice_size,cloud:i.cloud}}else{let i=[],n=0;for(let s of e.files){let o=await F9(s,e.piece_size);i.push(o),n+=o.size}t={name:e.name,size:n,md5:"",sliceMd5:"",create_time:"",files:i}}return Rn.encode(Buffer.from(JSON.stringify(t)).toString("base64"))}function P9(r){let e=Ga.decode(r).trim(),t=e;try{t=Buffer.from(e,"base64").toString("utf8"),JSON.parse(t)}catch{t=e}let i=JSON.parse(t),n=l=>{if(!l.name||!Number.isSafeInteger(l.size)||Number(l.size)<0||!l.md5)throw new Error("Invalid CAS file entry");let d=String(l.md5).toLowerCase(),u=String(l.sliceMd5||l.md5).toLowerCase();if(!/^[0-9a-f]{32}$/i.test(d)||!/^[0-9a-f]{32}$/i.test(u))throw new Error("Invalid CAS hash");let f=Array.isArray(l.slice_md5s)?l.slice_md5s.map(h=>String(h).toLowerCase()):[];return{path:l.name,size:Number(l.size),modified:"",comment:"",hashes:{md5:d,sha1:"",sha256:"",pieces:{md5:f,sha1:[],sha256:[]}},sources:[],cas_slice_md5:u,cas_create_time:l.create_time||"",cas_cloud:String(l.cloud||""),missing_channels:[]}};if(Array.isArray(i.files)&&i.files.length>0){let l=i.files.map(n);return{format:"cas",cas:{name:String(i.name),size:l.reduce((u,f)=>u+f.size,0),md5:"",sliceMd5:"",create_time:"",cloud:String(i.cloud||""),files:i.files},seed:zi({name:i.name,comment:"Imported from OpenList CAS metadata",created_at:new Date().toISOString(),created_by:"OpenList",piece_size:10485760,files:l})}}if(!i.name||!Number.isSafeInteger(i.size)||Number(i.size)<0||!i.md5)throw new Error("Invalid CAS payload");let s=String(i.md5).toLowerCase(),o=String(i.sliceMd5||i.md5);if(!/^[0-9a-f]{32}$/i.test(s)||!/^[0-9a-f]{32}$/i.test(o))throw new Error("Invalid CAS hash");let a=Number(i.create_time);return{format:"cas",cas:{name:String(i.name),size:Number(i.size),md5:s,sliceMd5:o,create_time:String(i.create_time||""),slice_md5s:i.slice_md5s,slice_size:i.slice_size,cloud:String(i.cloud||"")},seed:zi({name:i.name,comment:"Imported from OpenList CAS metadata",created_at:Number.isFinite(a)&&a>0?new Date(a*1e3).toISOString():new Date().toISOString(),created_by:"OpenList",piece_size:i.slice_size||10485760,files:[n({name:i.name,size:Number(i.size),md5:s,sliceMd5:o,create_time:String(i.create_time||""),slice_md5s:i.slice_md5s,slice_size:i.slice_size})]})}}async function t2(r,e){let t=zi(r),i=e||fse(t);if(i.some(o=>o.length!==40))throw new Error("Torrent conversion requires SHA-1 piece hashes");let n={name:t.name,"piece length":t.piece_size,pieces:Ew(i.map(dse))};t.files.length===1?(n.length=t.files[0].size,t.files[0].hashes.md5&&(n.md5sum=t.files[0].hashes.md5)):n.files=t.files.map(o=>{let a={length:o.size,path:o.path.split("/")};return o.hashes.md5&&(a.md5sum=o.hashes.md5),a});let s={info:n,comment:t.comment,"created by":t.created_by,"creation date":Math.floor(new Date(t.created_at).getTime()/1e3)||Math.floor(Date.now()/1e3),"x-openlist":Xb(t)};if(t.trackers.length&&(s.announce=t.trackers[0],s["announce-list"]=t.trackers.map(o=>[o])),t.files.length===1){let o=await Ase(t.files[0],t.piece_size);o&&(s["x-cas"]=o)}return nu(s)}function pse(r,e,t,i,n){let s=Array.isArray(r.files)?r.files:null,o=s?s.map(c=>{let l=su(c,"torrent file");return{path:(Array.isArray(l.path)?l.path.map(un):[]).join("/"),size:Ka(l.length),md5:un(l.md5sum)}}):[{path:e,size:Ka(r.length),md5:un(r.md5sum)}],a=0;return o.map((c,l)=>{let d=c.size>0?Math.ceil(c.size/i):0,f=(l===o.length-1||c.size%i===0)&&a+d<=t.length?t.slice(a,a+d):[];a+=d;let h=o.length===1&&n?un(n.slice_md5):"",g=o.length===1&&n?un(n.create_time):"",p=o.length===1&&n?un(n.cloud):"";return{path:c.path,size:c.size,modified:"",comment:"",hashes:{md5:c.md5.toLowerCase(),sha1:"",sha256:"",pieces:{md5:[],sha1:f,sha256:[]}},sources:[],cas_slice_md5:h.toLowerCase(),cas_create_time:g,cas_cloud:p,missing_channels:[]}})}async function T9(r){let e=su(ase(r),"torrent root"),t=su(e.info,"torrent info"),i=await(0,GA.sha1)(nu(t)),n=un(t.name),s=Ka(t["piece length"]),o=cse(t.pieces);if(!n||s<=0||o.length%20!==0)throw new Error("Invalid torrent info dictionary");let a=Array.isArray(t.files)?t.files.reduce((g,p)=>g+Ka(su(p,"torrent file").length),0):Ka(t.length),c=a>0?Math.ceil(a/s):0;if(o.length/20!==c)throw new Error("Torrent piece count mismatch");if(e["x-openlist"]){let g=zi(Zb(e["x-openlist"]));return mse(g,t,n,s),{format:"torrent",seed:g,info_hash:i}}let l=[];for(let g=0;g<o.length;g+=20)l.push(use(o.subarray(g,g+20)));let d=[un(e.announce),...Array.isArray(e["announce-list"])?e["announce-list"].flatMap(g=>lse(g)):[]].filter((g,p,I)=>g&&I.indexOf(g)===p),u=Ka(e["creation date"]),f=e["x-cas"]?su(e["x-cas"],"x-cas"):void 0;return{format:"torrent",seed:zi({name:n,comment:un(e.comment),created_at:u>0?new Date(u*1e3).toISOString():new Date().toISOString(),created_by:un(e["created by"])||"OpenList",piece_size:s,trackers:d,channels:[],files:pse(t,n,l,s,f)}),info_hash:i}}function mse(r,e,t,i){if(r.name!==t||r.piece_size!==i)throw new Error("x-openlist metadata conflicts with torrent info");let n=Array.isArray(e.files)?e.files:null;if(!n){if(r.files.length!==1||r.files[0].size!==Ka(e.length))throw new Error("x-openlist file list conflicts with torrent info");return}if(r.files.length!==n.length)throw new Error("x-openlist file count conflicts with torrent info");n.forEach((s,o)=>{let a=su(s,"torrent file"),c=(Array.isArray(a.path)?a.path.map(un):[]).join("/");if(r.files[o].path!==c||r.files[o].size!==Ka(a.length))throw new Error(`x-openlist file ${o} conflicts with torrent info`)})}async function R9(r,e){if(e==="oss")return{format:"oss",seed:e2(r)};if(e==="torrent")return T9(r);if(e==="cas")return P9(r);let t=Ga.decode(r.subarray(0,Math.min(r.length,32))).trimStart()[0];return t==="{"?{format:"oss",seed:e2(r)}:t==="d"?T9(r):P9(r)}async function zA(r,e){return e==="oss"?hse(r):e==="torrent"?t2(r):gse(r)}var za=xr(jm(),1);async function N9(){let[r,e,t]=await Promise.all([(0,za.createMD5)(),(0,za.createSHA1)(),(0,za.createSHA256)()]);return{md5:r.init(),sha1:e.init(),sha256:t.init()}}function q9(r,e){r.md5.update(e),r.sha1.update(e),r.sha256.update(e)}function r2(r){return{md5:r.md5.digest("hex").toLowerCase(),sha1:r.sha1.digest("hex").toLowerCase(),sha256:r.sha256.digest("hex").toLowerCase()}}function yse(r){r.md5.init(),r.sha1.init(),r.sha256.init()}var JA=class r{constructor(e,t){this.pieceSize=t;this.hasher=e.init()}pieceSize;hasher;written=0;hashes=[];static async create(e){return new r(await(0,za.createSHA1)(),e)}update(e){let t=0;for(;t<e.length;){let i=Math.min(this.pieceSize-this.written,e.length-t);this.hasher.update(e.subarray(t,t+i)),this.written+=i,t+=i,this.written===this.pieceSize&&this.finishPiece()}}digest(){return this.written>0&&this.finishPiece(),[...this.hashes]}finishPiece(){this.hashes.push(this.hasher.digest("hex").toLowerCase()),this.hasher.init(),this.written=0}};async function i2(r,e,t,i,n){if(!Number.isSafeInteger(t)||t<0||t>i)throw new Error(`File exceeds the hashing limit of ${i} bytes`);let s=await N9(),o=await N9(),a={md5:[],sha1:[],sha256:[]},c=r.getReader(),l=0,d=0;try{for(;;){let{done:u,value:f}=await c.read();if(u)break;if(!f?.length)continue;if(l+f.length>i||l+f.length>t)throw new Error("Downloaded file size exceeds the declared or configured limit");l+=f.length,n?.update(f),q9(s,f);let h=0;for(;h<f.length;){let g=Math.min(e-d,f.length-h);if(q9(o,f.subarray(h,h+g)),d+=g,h+=g,d===e){let p=r2(o);a.md5.push(p.md5),a.sha1.push(p.sha1),a.sha256.push(p.sha256),yse(o),d=0}}}}finally{c.releaseLock()}if(l!==t)throw new Error(`Downloaded file size mismatch: expected ${t}, received ${l}`);if(d>0){let u=r2(o);a.md5.push(u.md5),a.sha1.push(u.sha1),a.sha256.push(u.sha256)}return{size:l,hashes:{...r2(s),pieces:a}}}var ws=new Xe,Bw=10*1024*1024,o2=512*1024*1024,O9=1e3,Ise=8*1024*1024,M9=4*1024*1024;function hn(r,e,t){let i=r.env?.[e]??(typeof process<"u"?process.env?.[e]:void 0),n=Number(i);return Number.isSafeInteger(n)&&n>0?n:t}function jA(r){try{return typeof r.executionCtx?.waitUntil!="function"?void 0:{waitUntil:e=>r.executionCtx.waitUntil(e)}}catch{return}}function Or(r,e,t){return r.json({code:e,message:t,data:null},e)}async function au(r){let e=hn(r,"SEED_MAX_METADATA_SIZE",Bw);if(Number(r.req.header("Content-Length")||0)>e)throw new Error(`Seed request exceeds the ${e} byte limit`);let i=await r.req.text();if(new TextEncoder().encode(i).byteLength>e)throw new Error(`Seed request exceeds the ${e} byte limit`);return i.trim()?JSON.parse(i):{}}function xo(r,e="/"){let t=String(r||e).replace(/\\/g,"/").trim();if(t.includes("\0"))throw new Error("Path contains an illegal null byte");let i=t.split("/").filter(Boolean);if(i.some(n=>n==="."||n===".."))throw new Error("Path traversal is not allowed");return"/"+i.join("/")}function a2(r,e){return xo(`${r.replace(/\/+$/,"")}/${e}`)}function L9(r,e){if(!pt(r))throw new Error("Permission denied");let t=xo(e);if(t==="/@s"||t.startsWith("/@s/"))throw new Error("Writing through a share path is not allowed");let i=We(r,t),n=xo(r?.base_path||"/");if(n!=="/"&&i!==n&&!i.startsWith(`${n}/`))throw new Error("Target path is outside the user base path");return i}function wse(r,e){if(r instanceof Uint8Array)return r;if(Array.isArray(r)&&r.every(t=>Number.isInteger(t)&&t>=0&&t<=255))return Uint8Array.from(r);if(typeof r!="string")throw new Error("Seed content is required");return e==="text"||r.trimStart().startsWith("{")||r.trimStart().startsWith("d")?new TextEncoder().encode(r):new Uint8Array(Buffer.from(r,"base64"))}function bw(r){let e=String(r||"").toLowerCase().replace(/^\./,"");return e==="oss"||e==="torrent"||e==="cas"?e:void 0}function H9(r,e){return`${r.name.replace(/[\\/:*?"<>|\0]/g,"_")||"seed"}.${e==="torrent"?"torrent":e}`}function n2(r){let e=r.split("/").pop()||r,t=e.lastIndexOf(".");return t>0?e.slice(0,t):e}function xse(r){if(r.length===0)return"OpenList Seed";if(r.length===1)return n2(r[0].virtualPath);let e=n2(r[0].virtualPath);if(r.every(o=>n2(o.virtualPath)===e)&&e)return e;let n=r[0].virtualPath.split("/").slice(0,-1);for(let o of r.slice(1)){let a=o.virtualPath.split("/").slice(0,-1),c=0;for(;c<n.length&&c<a.length&&n[c]===a[c];)c++;n=n.slice(0,c)}return n[n.length-1]||"OpenList Seed"}function c2(r,e,t,i={}){let n=Buffer.from(t).toString("base64");return{format:e,file_name:H9(r,e),seed_data:n,size:t.byteLength,seed:r,...i}}function K9(r){let e=r.env?.ALLOW_SEED??(typeof process<"u"?process.env?.ALLOW_SEED:"");return String(e||"").split(/[\s,;]+/).map(t=>t.toLowerCase()).filter(Boolean)}function G9(r,e){let t=r.toLowerCase();return e.some(i=>i.startsWith("*.")?t.endsWith(i.slice(1))&&t!==i.slice(2):t===i)}function s2(r,e){if(!e.url)throw new Error("Seed source URL is required");let t=new URL(r.req.url),i=new URL(e.url,t.origin);if(jr(i.toString(),"Seed source"),i.username||i.password)throw new Error("Seed source URL credentials are not allowed");let n=e.type.toLowerCase(),s=i.origin===t.origin&&(/^\/(api\/)?p\//.test(i.pathname)||i.pathname.startsWith("/d/")||i.pathname.startsWith("/@s/")),o=["share","openlist-share"].includes(n)&&i.pathname.startsWith("/@s/"),a=["direct","openlist-direct"].includes(n)&&s;if(!o&&!a&&!G9(i.hostname,K9(r)))throw new Error("Seed source host is not an approved OpenList endpoint or configured domain");if(e.expires_at){let c=Date.parse(e.expires_at);if(!Number.isFinite(c)||c<=Date.now())throw new Error("Seed source has expired")}return i}async function vw(r,e,t={},i=!1){let n=e;for(let s=0;s<=3;s++){if(jr(n.toString(),"Seed fetch"),i){let c=new URL(r.req.url);if(!(n.origin===c.origin&&(/^\/(api\/)?p\//.test(n.pathname)||n.pathname.startsWith("/@s/")))&&!G9(n.hostname,K9(r)))throw new Error("Seed fetch redirect left the approved source allowlist")}let o=await fetch(n,{...t,redirect:"manual"});if(o.status<300||o.status>=400)return o;let a=o.headers.get("Location");if(!a)throw new Error("Seed fetch redirect is missing a Location header");n=new URL(a,n)}throw new Error("Seed fetch exceeded the redirect limit")}async function Cse(r,e,t){let i=We(e,xo(t)),{item:n,rawUrl:s}=await _i(i,jA(r)),o=hn(r,"SEED_MAX_METADATA_SIZE",Bw);if(n.is_dir||n.size<0||n.size>o)throw new Error(`Seed file exceeds the ${o} byte limit`);let a=n.raw_url||new URL(s,r.req.url).toString(),c=n.raw_url_headers||{};!n.raw_url&&r.req.header("Authorization")&&(c.Authorization=r.req.header("Authorization"));let l=await vw(r,new URL(a,r.req.url),{headers:c});if(!l.ok)throw new Error(`Seed file download failed with HTTP ${l.status}`);if(Number(l.headers.get("Content-Length")||n.size)>o)throw new Error(`Seed file exceeds the ${o} byte limit`);let u=l.body?.getReader();if(!u)throw new Error("Seed file response has no body");let f=[],h=0;for(;;){let{done:I,value:m}=await u.read();if(I)break;if(m?.length){if(h+=m.length,h>o)throw new Error(`Seed file exceeds the ${o} byte limit`);f.push(m)}}let g=new Uint8Array(h),p=0;for(let I of f)g.set(I,p),p+=I.length;return g}async function $A(r,e,t){if(t.seed&&typeof t.seed=="object")return{format:"oss",seed:zi(t.seed)};let i=hn(r,"SEED_MAX_METADATA_SIZE",Bw),n=t.seed_data||t.content||t.data||t.torrent_data,s=t.seed_path||t.path&&!n?await Cse(r,e,String(t.seed_path||t.path)):wse(t.seed_data??t.content??t.data??t.torrent_data,t.encoding);if(s.byteLength>i)throw new Error(`Seed content exceeds the ${i} byte limit`);return R9(s,bw(t.format||t.from_format||t.file_name?.split(".").pop()))}async function l2(r,e,t){let i=Array.isArray(t)?t:[t];if(!i.length||i.some(a=>typeof a!="string"||!a.trim()))throw new Error("paths must contain at least one path");let n=hn(r,"SEED_MAX_FILES",O9),s=[],o=async(a,c)=>{if(s.length>=n)throw new Error(`Seed file count exceeds the ${n} file limit`);let l=We(e,a),{item:d,rawUrl:u}=await _i(l,jA(r));if(!d.is_dir){let h=d.raw_url||new URL(u,r.req.url).toString(),g={...d.raw_url_headers||{}};!d.raw_url&&r.req.header("Authorization")&&(g.Authorization=r.req.header("Authorization")),s.push({virtualPath:l,relativePath:_9(c),size:d.size,modified:d.modified||"",rawUrl:h,headers:g,hashes:d.hashes??(d.hash?{md5:d.hash}:{})});return}let{content:f}=await Zt(l,jA(r));for(let h of f){let g=a2(a,h.name),p=`${c.replace(/\/$/,"")}/${h.name}`;await o(g,p)}};for(let a of i){let c=xo(a),l=c.split("/").filter(Boolean).pop()||"root";await o(c,l)}if(!s.length)throw new Error("No files were found for seed generation");return s}function ou(r,e){if(e==="cas"){let t=[];for(let i of r.files){i.hashes.md5||t.push(`${i.path}: missing whole-file MD5`);let n=!!i.cas_slice_md5,s=r.piece_size===10485760&&i.hashes.pieces.md5.length>0;i.size>10485760&&!n&&!s&&t.push(`${i.path}: missing legacy slice MD5 or complete 10 MiB MD5 pieces`)}return t}if(e==="torrent"){let t=[];return r.files.forEach((i,n)=>{i.hashes.pieces.sha1.length||t.push(`${i.path}: missing SHA-1 piece hashes`),r.files.length>1&&n<r.files.length-1&&i.size%r.piece_size!==0&&t.push(`${i.path}: piece boundary crosses the next file`)}),t}return[]}function Ese(r){return{oss:ou(r,"oss"),torrent:ou(r,"torrent"),cas:ou(r,"cas")}}function Bse(r){return Object.fromEntries(["oss","torrent","cas"].map(e=>{let t=ou(r,e);return[e,{feasible:t.length===0,missing:t}]}))}async function d2(r,e,t,i){if(!t)return;let n=L9(e,t);await Un(n,Buffer.from(i),jA(r))}async function bse(){try{let e=(await Vn()).seed_default_matrix;if(e){let t=JSON.parse(String(e));if(t&&typeof t=="object")return t}}catch{}}async function vse(r){try{let e=await Vn(),t=String(e.seed_site_url||"").trim();if(t)return t.replace(/\/+$/,"")}catch{}return new URL(r.req.url).origin}async function kse(r,e,t){let i=e&&typeof e=="object"?e:null,n=!!i?.md5||!!i?.sha1||!!i?.sha256;if(!n)try{let o=(await Vn()).seed_default_matrix;if(o){let a=JSON.parse(String(o));if(a?.md5||a?.sha1||a?.sha256)return Cw(a,t)}}catch{}return Cw(n?e:void 0,t)}async function Sse(r,e,t,i){let n=i.includes("cas")?10485760:Number(t.piece_size||10485760);if(!Number.isSafeInteger(n)||n<16*1024||n>64*1024*1024)throw new Error("Invalid piece_size");let s=await kse(r,t.hash_matrix,i),o=t.file_comments&&typeof t.file_comments=="object"?t.file_comments:{},a=await l2(r,e,t.paths??t.path),c=hn(r,"SEED_MAX_HASH_BYTES",o2),l=a.reduce((h,g)=>h+g.size,0);if(!Number.isSafeInteger(l)||l>c)throw new Error(`Seed input exceeds the ${c} byte hashing limit`);let d=await JA.create(n),u=await vse(r),f=[];for(let h of a){let g=await vw(r,new URL(h.rawUrl,r.req.url),{headers:h.headers});if(!g.ok)throw new Error(`Source download failed with HTTP ${g.status}: ${h.virtualPath}`);if(!g.body)throw new Error(`Source download has no body: ${h.virtualPath}`);let p=await i2(g.body,n,h.size,c,d),I=String(o[h.relativePath]??o[h.virtualPath]??"");f.push(Wb({path:h.relativePath,size:p.size,modified:h.modified,comment:I,hashes:p.hashes,cas_slice_md5:"",cas_create_time:"",cas_cloud:"",missing_channels:[],sources:t.include_direct_source===!0||t.include_sources===!0?[{type:"openlist-direct",url:`${u}/d${h.virtualPath}`,expires_at:"",share_id:""}]:[]},s))}return{torrentPieces:d.digest(),seed:zi({name:String(t.name||xse(a)),comment:String(t.comment||"Generated by OpenList"),created_at:new Date().toISOString(),created_by:String(t.created_by||"OpenList"),piece_size:n,trackers:Array.isArray(t.trackers)?t.trackers:[],channels:Array.isArray(t.channels)?t.channels:[],files:f})}}function u2(r,e){for(let t of e.sources)try{return{source:t,url:s2(r,t)}}catch{continue}}async function Dse(r,e,t,i,n,s=!1){let o=L9(e,i),a=o.split("/").filter(Boolean),c=a.pop();if(!c)throw new Error("Target file name is required");let l="/"+a.join("/"),d=await ct(o),u=await ct(l);if(d.isVirtual||u.isVirtual||!d.storage)throw new Error("Target storage was not found");let f=await lt(d.storage.driver,d.storage),h=f,g={size:t.size,md5:t.hashes.md5,sha1:t.hashes.sha1,sha256:t.hashes.sha256,hashes:t.hashes};try{if(typeof h.rapidUpload=="function"){let w=await h.rapidUpload(o,d.physical,g);if(w===!0||w?.reuse||w?.success)return{status:"reused",method:"rapidUpload"}}if(typeof h.putRapid=="function"){let w=await h.putRapid(o,d.physical,g);if(w===!0||w?.reuse||w?.success)return{status:"reused",method:"putRapid"}}let p;if(typeof h.createUploadSession=="function"&&(p=await h.createUploadSession(l,u.physical,c,t.size,t.hashes.md5),p?.reuse))return{status:"reused",method:"multipart-rapid"};if(s)throw new Error("capability unavailable: target driver did not reuse the available hashes");if(!n)throw new Error("capability unavailable: no rapid-upload match and no approved source URL");let I=await vw(r,n.url,{},!0);if(!I.ok||!I.body)throw new Error(`Source download failed with HTTP ${I.status}`);if(p?.session&&typeof h.uploadPart=="function"&&typeof h.completeUploadSession=="function"){let w=Math.min(hn(r,"SEED_TRANSFER_CHUNK_SIZE",Ise),16777216),B=I.body.getReader(),C=new Uint8Array(0),x=1,Q=0,R=[];for(;;){let{done:U,value:T}=await B.read();if(T?.length){if(Q+=T.length,Q>t.size)throw new Error("Source exceeds the declared file size");let D=new Uint8Array(C.length+T.length);for(D.set(C),D.set(T,C.length),C=D;C.length>=w;){let b=C.slice(0,w);C=C.slice(w);let _=await h.uploadPart(p.session,x++,Buffer.from(b));_?.partMd5&&R.push(_.partMd5)}}if(U)break}if(Q!==t.size)throw new Error("Source size does not match seed metadata");if(C.length||t.size===0){let U=await h.uploadPart(p.session,x,Buffer.from(C));U?.partMd5&&R.push(U.partMd5)}return await h.completeUploadSession(p.session,R),{status:"saved",method:"multipart-stream"}}if(typeof h.putStream=="function")return await h.putStream(o,d.physical,I.body,t.size,g),{status:"saved",method:"putStream"};let m=hn(r,"SEED_BUFFERED_TRANSFER_MAX",M9);if(t.size<=m){let w=new Uint8Array(await I.arrayBuffer());if(w.byteLength!==t.size)throw new Error("Source size does not match seed metadata");return await f.put(o,d.physical,Buffer.from(w)),{status:"saved",method:"bounded-buffer"}}throw new Error("capability unavailable: target driver has no streaming or multipart upload API")}finally{await Jt(d.storage.driver,d.storage,f,jA(r))}}ws.get("/capabilities",async r=>{let e=await Me(r);if(!e||e.disabled)return Or(r,401,"Unauthorized");let t,i=r.req.query("path");if(i)try{let n=We(e,xo(i)),s=await ct(n);if(!s.isVirtual&&s.storage){let a=await lt(s.storage.driver,s.storage);t={driver:s.storage.driver,rapid_upload:typeof a.rapidUpload=="function"||typeof a.putRapid=="function"||typeof a.createUploadSession=="function",stream_upload:typeof a.putStream=="function"||typeof a.createUploadSession=="function"&&typeof a.uploadPart=="function"&&typeof a.completeUploadSession=="function"}}}catch(n){t={error:Ne(n)}}return r.json({code:200,message:"success",data:{formats:["oss","torrent","cas"],version:1,hash_algorithms:["md5","sha1","sha256"],incremental_hashing:!0,torrent_v1:!0,extensions:["x-openlist","x-cas"],offline_download:"conditional",queue_adapter:!1,limits:{metadata_bytes:hn(r,"SEED_MAX_METADATA_SIZE",Bw),hash_bytes:hn(r,"SEED_MAX_HASH_BYTES",o2),files:hn(r,"SEED_MAX_FILES",O9)},target:t}})});ws.post("/capabilities",async r=>{let e=await Me(r);if(!e||e.disabled)return Or(r,401,"Unauthorized");try{let t=await au(r);if(Array.isArray(t.paths)&&t.paths.length>0){let g=await l2(r,e,t.paths),p=await Vn(),I=String(p.seed_default_trackers||"").split(` +`).map(x=>x.trim()).filter(Boolean),m=["md5","sha1","sha256"],w=g.map(x=>{let Q=m.filter(U=>!!x.hashes[U]),R=Q.length<m.length;return{path:x.virtualPath,name:x.relativePath,size:x.size,available_hashes:Q,requires_download:R,requires_fetch:R,estimated_traffic:R?x.size:0,streamable:!0,share_available:!0,direct_source_available:!0}}),B=new Set;for(let x of g)for(let Q of m)x.hashes[Q]&&B.add(Q);let C=m.filter(x=>B.has(x));return r.json({code:200,message:"success",data:{formats:{oss:!0,torrent:!0,cas:!0},files:w,existing_hashes:C,estimated_traffic:w.reduce((x,Q)=>x+Q.estimated_traffic,0),default_matrix:await bse(),trackers:I}})}let i=await $A(r,e,t),n=We(e,xo(t.path)),s=await ct(n);if(s.isVirtual||!s.storage)throw new Error("Target storage was not found");let a=await lt(s.storage.driver,s.storage),c=typeof a.rapidUpload=="function"||typeof a.putRapid=="function"||typeof a.createUploadSession=="function",l=Array.isArray(a.rapidHashAlgos)?a.rapidHashAlgos.map(g=>String(g).toLowerCase()).filter(g=>["md5","sha1","sha256"].includes(g)):["md5","sha1"],d=typeof a.rapidHashNeedsPieces=="boolean"?a.rapidHashNeedsPieces:!1,u=typeof a.putStream=="function"||typeof a.createUploadSession=="function"&&typeof a.uploadPart=="function"&&typeof a.completeUploadSession=="function",f=hn(r,"SEED_BUFFERED_TRANSFER_MAX",M9),h=i.seed.files.map(g=>{let p=l.some(B=>!!g.hashes[B])||!1,I=d?p&&(g.hashes.pieces.md5.length>0||g.hashes.pieces.sha1.length>0):p,m=!!u2(r,g),w="download_required";return c&&I?w="rapid_upload":m&&u?w="stream_upload":m&&g.size<=f&&(w="bounded_upload"),{path:g.path,method:w,requires_download:w==="download_required"}});return r.json({code:200,message:"success",data:{driver:s.storage.driver,policy:String(t.policy||"inherit"),driver_supports:{cas_rapid:c,rapid_hash_algos:l,rapid_uses_pieces:d},files:h}})}catch(t){return Or(r,400,Ne(t))}});ws.post("/generate",async r=>{let e=await Me(r);if(!e||e.disabled)return Or(r,401,"Unauthorized");try{let t=await au(r);if((t.save_path||t.output_path)&&!pt(e))return Or(r,403,"Permission denied");let n=(Array.isArray(t.formats)?t.formats:[t.format||"oss"]).map(bw);if(n.some(d=>!d))throw new Error("A valid output format is required");let s=n,{seed:o,torrentPieces:a}=await Sse(r,e,t,s),c=t.output_path||(Array.isArray(t.formats)?t.save_path:void 0),l=[];for(let d of s){let u=ou(o,d);if(u.length){l.push({format:d,convertible:!1,diagnostics:u});continue}let f=d==="torrent"?await t2(o,a):await zA(o,d),h=c?a2(xo(c),H9(o,d)):t.save_path;await d2(r,e,h,f),l.push(c2(o,d,f,{convertible:!0,...h?{path:h}:{}}))}return r.json({code:200,message:"success",data:Array.isArray(t.formats)?{seed:o,outputs:l,artifacts:l}:l[0]})}catch(t){let i=Ne(t);return Or(r,i.includes("limit")||i.includes("exceeds")?413:400,i)}});ws.post("/parse",async r=>{let e=await Me(r);if(!e||e.disabled)return Or(r,401,"Unauthorized");try{let t=await au(r),i=await $A(r,e,t),n=i.seed.files.reduce((a,c)=>a+c.size,0),s=i.seed.files.some(a=>!!u2(r,a)),o=i.seed.files.some(a=>!!a.hashes.md5||!!a.hashes.sha1||!!a.hashes.sha256);return r.json({code:200,message:"success",data:{format:i.format,seed:i.seed,files:i.seed.files,total_size:n,diagnostics:Ese(i.seed),conversions:Bse(i.seed),capabilities:{rapid_upload:o,offline_download:s,transfer:s,convert:!0,edit:!0,recalculate:!0},direct_preview:!1,...i.info_hash?{info_hash:i.info_hash}:{}}})}catch(t){return Or(r,400,Ne(t))}});ws.post("/convert",async r=>{let e=await Me(r);if(!e||e.disabled)return Or(r,401,"Unauthorized");try{let t=await au(r);if(t.save_path&&!pt(e))return Or(r,403,"Permission denied");let i=bw(t.to_format||t.target_format||t.output_format);if(!i)throw new Error("A valid target format is required");let n=await $A(r,e,t),s=ou(n.seed,i);if(s.length)return r.json({code:200,message:"success",data:{convertible:!1,diagnostics:s}});let o=await zA(n.seed,i);return await d2(r,e,t.save_path,o),r.json({code:200,message:"success",data:c2(n.seed,i,o,{convertible:!0})})}catch(t){return Or(r,400,Ne(t))}});function Qse(r,e,t,i){if(!e)return;let n=!1;for(let s of i.values())if(s){n=!0;break}n&&!r.channels.some(s=>s.driver===e)&&r.channels.push({driver:e,mount_path:t});for(let s of r.files){if(!i.has(s.path))continue;i.get(s.path)?s.missing_channels=s.missing_channels.filter(a=>a!==e):s.missing_channels.includes(e)||s.missing_channels.push(e)}}async function z9(r,e){let t=await Me(r);if(!pt(t))return Or(r,403,"Permission denied");if(!e&&!Ha(t,La.OFFLINE_DOWNLOAD))return Or(r,403,"Offline download permission is required");try{let i=await au(r),n=await $A(r,t,i),s=xo(i.target_path||i.destination||i.path||"/"),o=new Set(Array.isArray(i.files)?i.files.map(p=>String(p)):[]),a=new Set(Array.isArray(i.selected_files)?i.selected_files.map(p=>Number(p)):[]);if([...a].some(p=>!Number.isSafeInteger(p)||p<0||p>=n.seed.files.length))throw new Error("selected_files contains an invalid index");let c="",l="";try{let p=await ct(We(t,s));!p.isVirtual&&p.storage&&(c=p.storage.driver||"",l=p.storage.mount_path||"")}catch{}let d=n.seed.files.filter((p,I)=>o.size?o.has(p.path):a.size?a.has(I):!0),u=[],f=new Map,h=0;for(let p of d){let I=a2(s,p.path),m=u2(r,p);try{if(!e&&!m)throw new Error("capability unavailable: offline download requires an approved source URL");let w=await Dse(r,t,p,I,m,e);h++,f.set(p.path,!0),u.push({path:p.path,target:I,...w})}catch(w){f.set(p.path,!1),u.push({path:p.path,target:I,status:"unavailable",error:Ne(w)})}}if(h===0)return r.json({code:501,message:e?"capability unavailable: target driver cannot reuse hashes and no transferable source is available":"capability unavailable: no approved source and streaming upload combination is available",data:{results:u}},501);let g={total:u.length,saved:h,results:u};if(i.update_channel===!0&&c){Qse(n.seed,c,l,f);let p=await zA(n.seed,n.format);g.seed_data=Buffer.from(p).toString("base64"),g.seed=n.seed}return r.json({code:200,message:"success",data:g})}catch(i){return Or(r,400,Ne(i))}}ws.post("/rapid_upload",r=>z9(r,!0));ws.post("/offline_download",r=>z9(r,!1));ws.post("/update",async r=>{let e=await Me(r);if(!e||e.disabled)return Or(r,401,"Unauthorized");try{let t=await au(r);if(t.save_path&&!pt(e))return Or(r,403,"Permission denied");let i=await $A(r,e,t),n=t.patch&&typeof t.patch=="object"?t.patch:t,s=t.options&&typeof t.options=="object"?t.options:{},o=n.comment??s.comment,a=!!(n.recalculate??s.recalculate),c=zi({...i.seed,name:n.name??i.seed.name,comment:o??i.seed.comment,trackers:n.trackers??i.seed.trackers,channels:n.channels??i.seed.channels,files:n.files??i.seed.files}),l=t.file_comments&&typeof t.file_comments=="object"?t.file_comments:{},d=t.file_sources&&typeof t.file_sources=="object"?t.file_sources:{};for(let h of c.files)if(l[h.path]!==void 0&&(h.comment=String(l[h.path])),Array.isArray(d[h.path])){for(let g of d[h.path])s2(r,g);h.sources=d[h.path]}if(a){let h=Number(t.piece_size||i.seed.piece_size||10485760);if(!Number.isSafeInteger(h)||h<16*1024||h>64*1024*1024)throw new Error("Invalid piece_size");c.piece_size=h;let g=Cw(t.hash_matrix,[i.format]),p=Array.isArray(t.recalc_files)?t.recalc_files:[];if(!p.length)throw new Error("recalculate requires at least one recalc_files entry");let I=new Map;for(let B of p)typeof B?.source_path=="string"&&B.source_path.trim()&&I.set(String(B.path),B.source_path);let m=await JA.create(h),w=hn(r,"SEED_MAX_HASH_BYTES",o2);for(let B of c.files){let C=I.get(B.path);if(!C)continue;let x=await l2(r,e,[C]);if(x.length!==1)throw new Error(`Recalculate path must resolve to exactly one file: ${C}`);let Q=x[0],R=await vw(r,new URL(Q.rawUrl,r.req.url),{headers:Q.headers});if(!R.ok||!R.body)throw new Error(`Recalculate download failed with HTTP ${R.status}`);let U=await i2(R.body,h,Q.size,w,m);B.hashes=Wb({...B,hashes:U.hashes},g).hashes,B.size=U.size,B.cas_slice_md5="",B.cas_create_time=""}}for(let h of c.files)for(let g of h.sources)s2(r,g);let u=bw(t.output_format||t.to_format)||i.format,f=await zA(c,u);return await d2(r,e,t.save_path,f),r.json({code:200,message:"success",data:c2(c,u,f)})}catch(t){return Or(r,400,Ne(t))}});var kw=new Map,_se=1*1024*1024,Fse=64*1024*1024,Pse=10*1024*1024;function J9(r){return!Number.isFinite(r)||r<=0?Pse:Math.min(Fse,Math.max(_se,Math.floor(r)))}function Tse(r){let e=Array.from(r).sort((s,o)=>s-o);if(e.length===0)return[];let t=[],i=e[0],n=e[0];for(let s=1;s<e.length;s++)e[s]===n+1?n=e[s]:(t.push([i,n]),i=n=e[s]);return t.push([i,n]),t}function cl(r){let e=Tse(r.received),t=r.received.size*r.chunk_size,i=0;for(let s=0;s<r.total_chunks&&r.received.has(s);s++)i=s+1;let n=r.total_chunks>0?Math.floor(r.received.size/r.total_chunks*100):0;return{upload_id:r.upload_id,state:r.state,attempt:r.attempt,path:r.path,size:r.size,chunk_size:r.chunk_size,total_chunks:r.total_chunks,received:e,received_bytes:t,frontier:i,storage_progress:n,error:r.error}}function Sw(r){return kw.get(r)}function j9(r,e){for(let t of kw.values())if(t.path===r&&t.size===e&&(t.state==="receiving"||t.state==="failed_retriable"))return t}function VA(r){kw.set(r.upload_id,r)}function $9(r){kw.delete(r)}function V9(){return`mp_${typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}`}async function Use(r){try{let e=await ct(r);return e?.storage?sQ(e.storage):!1}catch{return!1}}var dt=new Xe;dt.route("/seed",ws);var _t=r=>{try{let e=r.executionCtx;return!e||typeof e.waitUntil!="function"?void 0:{waitUntil:t=>e.waitUntil(t),env:r.env}}catch{return}},cr=r=>r.json({code:403,message:"Permission denied",data:null},403),Rse=25*1024*1024,Nse=16*1024*1024;function qse(r,e){let t=r.env||{},i=e?"MAX_UPPART":"MAX_UPLOAD",n=t[i]||(typeof process<"u"?process.env?.[i]:"");if(n){let s=parseInt(String(n),10);if(Number.isFinite(s)&&s>0)return s}return e?Nse:Rse}function Dw(r,e=!1){let t=parseInt(r.req.header("Content-Length")||"0",10);if(!t)return null;let i=qse(r,e);return t>i?i:null}var f2=(r,e)=>{let t=e==="wrong password",i=e||"share error";return r.json({code:t?403:400,message:i,data:null},t?403:400)};dt.post("/dirs",async r=>{let e=await r.req.json().catch(()=>({})),t=await Me(r),i=e.path||"/";if(!i.startsWith("/@s")&&(!t||t.disabled))return r.json({code:401,message:"Unauthorized",data:null},401);let s=_t(r),o=i;(!e.force_root||!Is(t))&&(o=We(t,o));try{if(o.startsWith("/@s")){let l=await Yd(o,e.password||"",r.env);if(!l.ok)return f2(r,l.error);if(l.virtualList){let f=[];for(let h of l.share.files||[])try{let{item:g}=await _i(h,s);if(g.is_dir){let p=String(h).split("/").filter(Boolean);f.push({name:p[p.length-1]||h,modified:g.modified||new Date().toISOString()})}}catch{}return r.json({code:200,message:"success",data:f})}let{content:d}=await Zt(l.realPath,s),u=d.filter(f=>f.is_dir).map(f=>({name:f.name,modified:f.modified||new Date().toISOString()}));return r.json({code:200,message:"success",data:u})}let{content:a}=await Zt(o,s),c=a.filter(l=>l.is_dir).map(l=>({name:l.name,modified:l.modified||new Date().toISOString()}));return r.json({code:200,message:"success",data:c})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.post("/list",async r=>{let e=await r.req.json().catch(()=>({})),t=await Me(r);if(!(e.path||"/").startsWith("/@s")&&(!t||t.disabled))return r.json({code:401,message:"Unauthorized",data:null},401);let n=_t(r),s=We(t,e.path||"/"),o=parseInt(e.page,10)||1,a=parseInt(e.per_page,10)||0,c=l=>{let d=l.length;if(a<=0)return{content:l,total:d};let f=(Math.max(1,o)-1)*a,h=f+a;return{content:l.slice(f,h),total:d}};try{if(s.startsWith("/@s")){let b=await Yd(s,e.password||"",r.env);if(!b.ok)return f2(r,b.error);if(b.virtualList){let j=[];for(let G of b.share.files||[]){let K=String(G).split("/").filter(Boolean),$=K[K.length-1]||G;try{let{item:te}=await _i(G,n);j.push({name:$,size:te.size||0,is_dir:!!te.is_dir,modified:te.modified||new Date().toISOString(),sign:"",thumb:te.thumb||"",type:te.type??0})}catch{try{await Zt(G,n),j.push({name:$,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",thumb:"",type:1})}catch{j.push({name:$,size:0,is_dir:!1,modified:new Date().toISOString(),sign:"",thumb:"",type:0})}}}let{content:z,total:L}=c(j);return r.json({code:200,message:"success",data:{content:z,total:L,readme:b.share.readme||"",header:b.share.header||"",write:!1,write_content_bypass:!1,provider:"Share"}})}let{content:_,provider:v}=await Zt(b.realPath,n),E=_.map(j=>({name:j.name,size:j.size,is_dir:j.is_dir,created:j.created||j.modified||new Date().toISOString(),modified:j.modified||new Date().toISOString(),sign:j.sign||"",thumb:j.thumb||"",type:j.type??0})),{content:P,total:N}=c(E);return r.json({code:200,message:"success",data:{content:P,total:N,readme:b.share.readme||"",header:b.share.header||"",write:!1,write_content_bypass:!1,provider:v}})}let l=await Gb(s,r.env);if(!zb(t,l,s,e.password||""))return r.json({code:403,message:"Access denied (wrong password or not in read_users)",data:null},403);if(await Use(s))return r.json({code:403,message:"Index is disabled for this storage",data:null},403);let{content:d,provider:u,storage:f}=await Zt(s,n),h=pt(t)&&Jb(t,l,s),g=jb(l,s),p=await yw(r),I=await Iw(r,s),m=p.enabled||I,w=m?p.expiresIn||await tu(r):0,B=await Promise.all(d.filter(b=>!v9(l,s,b.name)).map(async b=>{let _=`${s}/${b.name}`.replace(/\/{2,}/g,"/"),v=!b.is_dir&&m?await ru(r,_,w):"",E=b.hashinfo||b.hash_info_str||"",P=b.hash_info||{};return{name:b.name,size:b.size,is_dir:b.is_dir,created:b.created||b.modified||new Date().toISOString(),modified:b.modified||new Date().toISOString(),sign:v,thumb:b.thumb||"",type:b.type??0,hashinfo:E,hash_info:P}})),C=0;if(f&&(C=parseInt(f.page_size,10)||0,!C&&f.addition))try{let b=typeof f.addition=="string"?JSON.parse(f.addition):f.addition;C=parseInt(b?.page_size,10)||0}catch{}let x=a>0?a:C>0?C:0,Q=b=>{let _=b.length;if(x<=0)return{content:b,total:_};let E=(Math.max(1,o)-1)*x,P=E+x;return{content:b.slice(E,P),total:_}},R=(()=>{if(!f)return[];let b=[],_=f;if(/^(s3|minio|cos|oss|r2|b2|cloudflare_r2)/i.test(_.driver||"")&&b.push("s3_presigned"),Array.isArray(_.direct_upload_tools))for(let v of _.direct_upload_tools)b.includes(v)||b.push(v);return b})(),{content:U,total:T}=Q(B),D=f?oQ(f,s):void 0;return r.json({code:200,message:"success",data:{content:U,total:T,readme:$b(l,s),header:Vb(l,s),write:h,write_content_bypass:g,provider:u,direct_upload_tools:R,page_size:x>0?x:void 0,cache_expiration:D}})}catch(l){return r.json({code:500,message:Ne(l),data:null})}});dt.post("/get",async r=>{let e=await r.req.json().catch(()=>({})),t=await Me(r);if(!(e.path||"/").startsWith("/@s")&&(!t||t.disabled))return r.json({code:401,message:"Unauthorized",data:null},401);let n=_t(r),s=We(t,e.path||"/");try{if(s.startsWith("/@s")){let m=await Yd(s,e.password||"",r.env);if(!m.ok)return f2(r,m.error);if(m.virtualList){let Q=s.split("/").filter(Boolean)[1]||"share";return r.json({code:200,message:"success",data:{name:Q,size:0,is_dir:!0,modified:new Date().toISOString(),sign:"",thumb:"",type:1,raw_url:"",readme:m.share.readme||"",header:m.share.header||"",provider:"Share",related:[],write:!1,write_content_bypass:!1}})}let w=s.split("/").filter(Boolean)[1]||"",{item:B,provider:C}=await _i(m.realPath,n),x=s.replace(/^\/@s\/[^/]+/,"");return r.json({code:200,message:"success",data:{name:B.name,size:B.size,is_dir:B.is_dir,created:B.created||B.modified||new Date().toISOString(),modified:B.modified,sign:B.sign||"",thumb:B.thumb||"",type:B.type??0,raw_url:`/api/sd/${w}${x}`,readme:m.share.readme||"",header:m.share.header||"",provider:C,related:[],write:!1,write_content_bypass:!1}})}let o=await Gb(s,r.env);if(!zb(t,o,s,e.password||""))return r.json({code:403,message:"Access denied (wrong password or not in read_users)",data:null},403);let{item:a,provider:c,rawUrl:l}=await _i(s,n),d=await yw(r),u=d.enabled||await Iw(r,s),f=!a.is_dir&&u?await ru(r,s,d.expiresIn||await tu(r)):"",h=f&&l&&!/[?&]sign=/.test(l)?`${l}${l.includes("?")?"&":"?"}sign=${f}`:l,g=pt(t)&&Jb(t,o,s),p=jb(o,s),I=[];if(!a.is_dir)try{let m=s.includes("/")&&s.slice(0,s.lastIndexOf("/"))||"/",w=a.name.includes(".")?a.name.slice(0,a.name.lastIndexOf(".")):a.name,{content:B}=await Zt(m,n);I=B.filter(C=>C.name===a.name||C.is_dir?!1:(C.name.includes(".")?C.name.slice(0,C.name.lastIndexOf(".")):C.name)===w).map(C=>({name:C.name,size:C.size,is_dir:!1,modified:C.modified||new Date().toISOString(),sign:"",thumb:C.thumb||"",type:C.type??0}))}catch{I=[]}return r.json({code:200,message:"success",data:{name:a.name,size:a.size,is_dir:a.is_dir,created:a.created||a.modified||new Date().toISOString(),modified:a.modified,sign:f,thumb:a.thumb||"",type:a.type??0,raw_url:h,readme:$b(o,s),header:Vb(o,s),provider:c,related:I,write:g,write_content_bypass:p}})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});function cu(r){if(typeof r!="string"||!r.trim())throw new Error("Invalid or empty file name");let e=r.trim();if(e==="."||e===".."||e.includes("/")||e.includes("\\")||e.includes("\0"))throw new Error(`Illegal file name '${e}'`);return e}function Co(r){if(typeof r!="string")throw new Error("Path must be a string");if(r.includes("\0"))throw new Error("Path contains illegal null byte");return r}dt.post("/mkdir",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let i=(await r.req.json().catch(()=>({}))).path||"/";try{Co(i)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let n=We(e,i),s=_t(r);try{return await UA(n,s),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/rename",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,name:i}=await r.req.json().catch(()=>({})),n="";try{Co(t||"/"),n=cu(i)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let s=_t(r);try{let o=We(e,t||"/");return await RA(o,n,s),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/remove",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{dir:t,names:i}=await r.req.json().catch(()=>({}));if(!Array.isArray(i)||i.length===0)return r.json({code:400,message:"Parameter 'names' must be a non-empty array",data:null},400);let n=[];try{Co(t||"/"),n=i.map(o=>cu(o))}catch(o){return r.json({code:400,message:o.message,data:null},400)}let s=_t(r);try{let o=We(e,t||"/");return await qa(o,n,s),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/move",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,dst_dir:i,names:n}=await r.req.json().catch(()=>({}));if(!Array.isArray(n)||n.length===0)return r.json({code:400,message:"Parameter 'names' must be a non-empty array",data:null},400);let s=[];try{Co(t||"/"),Co(i||"/"),s=n.map(a=>cu(a))}catch(a){return r.json({code:400,message:a.message,data:null},400)}let o=_t(r);try{let a=We(e,t||"/"),c=We(e,i||"/");return await Vd(a,c,s,o),r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.post("/copy",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,dst_dir:i,names:n}=await r.req.json().catch(()=>({}));if(!Array.isArray(n)||n.length===0)return r.json({code:400,message:"Parameter 'names' must be a non-empty array",data:null},400);let s=[];try{Co(t||"/"),Co(i||"/"),s=n.map(a=>cu(a))}catch(a){return r.json({code:400,message:a.message,data:null},400)}let o=_t(r);try{let a=We(e,t||"/"),c=We(e,i||"/");return await NA(a,c,s,o),r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.put("/put",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=decodeURIComponent(r.req.header("File-Path")||"");if(!t.trim())return r.json({code:400,message:"Missing File-Path header",data:null},400);try{Co(t)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let i=We(e,t),n=_t(r),s=Dw(r);if(s!==null)return r.json({code:413,message:`File too large (max ${s} bytes)`,data:null},413);try{let o=await r.req.arrayBuffer();return await Un(i,Buffer.from(o),n),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.put("/form",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=decodeURIComponent(r.req.header("File-Path")||"");if(!t.trim())return r.json({code:400,message:"Missing File-Path header",data:null},400);try{Co(t)}catch(o){return r.json({code:400,message:o.message,data:null},400)}let i=We(e,t),n=_t(r),s=Dw(r);if(s!==null)return r.json({code:413,message:`File too large (max ${s} bytes)`,data:null},413);try{let a=(await r.req.formData()).get("file");if(!a||typeof a=="string")return r.json({code:400,message:"missing file in form data",data:null});let c=Buffer.from(await a.arrayBuffer());return await Un(i,c,n),r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null})}});dt.post("/upload/create",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,file_name:i,size:n,md5:s}=await r.req.json().catch(()=>({})),o=We(e,t||"/"),a=_t(r);if(!i)return r.json({code:400,message:"path and file_name are required",data:null});try{let c=await ct(o);if(c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(c.storage.driver,c.storage);if(typeof l.createUploadSession!="function")return r.json({code:200,message:"success",data:null});let d;try{d=await l.createUploadSession(o,c.physical,i,Number(n)||0,s||"")}finally{await Jt(c.storage.driver,c.storage,l,a)}return r.json({code:200,message:"success",data:d})}catch(c){return r.json({code:500,message:Ne(c),data:null})}});dt.put("/upload/part",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=r.req.header("X-Upload-Session")||"",i=parseInt(r.req.header("X-Part-Number")||"0",10),n=decodeURIComponent(r.req.header("Upload-Path")||""),s=We(e,n),o=_t(r);if(!t||!(i>=1)||!s)return r.json({code:400,message:"missing X-Upload-Session / X-Part-Number / Upload-Path",data:null});let a=Dw(r,!0);if(a!==null)return r.json({code:413,message:`Part too large (max ${a} bytes)`,data:null},413);try{let c=await ct(s);if(c.isVirtual)throw new Error("failed get storage: storage not found");let l=await lt(c.storage.driver,c.storage);if(typeof l.uploadPart!="function")throw new Error("storage does not support chunked upload");let d=Buffer.from(await r.req.arrayBuffer()),u;try{u=await l.uploadPart(t,i,d)}finally{await Jt(c.storage.driver,c.storage,l,o)}return r.json({code:200,message:"success",data:u??null})}catch(c){return r.json({code:500,message:Ne(c),data:null})}});dt.post("/upload/complete",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,session:i,partMd5s:n}=await r.req.json().catch(()=>({})),s=We(e,t||"/"),o=_t(r);if(!i)return r.json({code:400,message:"path and session are required",data:null});try{let a=await ct(s);if(a.isVirtual)throw new Error("failed get storage: storage not found");let c=await lt(a.storage.driver,a.storage);if(typeof c.completeUploadSession!="function")throw new Error("storage does not support chunked upload");try{await c.completeUploadSession(i,n)}finally{await Jt(a.storage.driver,a.storage,c,o)}return r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null})}});dt.post("/add_offline_download",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let{path:t,urls:i}=await r.req.json().catch(()=>({})),n=We(e,t||"/");return!i||i.length===0?r.json({code:400,message:"No URLs provided"}):r.json({code:501,message:"capability unavailable: this runtime has no durable offline-download adapter; use /fs/seed/offline_download with an approved source and a streaming-capable target driver",data:{path:n,accepted:0}},501)});dt.post("/search",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=We(e,t.parent||"/");try{let n=await iu({parent:i,keywords:t.keywords||"",scope:t.scope!==void 0?parseInt(t.scope,10):0,page:t.page?parseInt(t.page,10):1,per_page:t.per_page?parseInt(t.per_page,10):30},r.env);return r.json({code:200,message:"success",data:n})}catch(n){return r.json({code:500,message:Ne(n),data:null},500)}});dt.post("/other",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=We(e,t.path||"/"),n=t.method;if(!n)return r.json({code:400,message:"Missing required parameter 'method'",data:null},400);if(!pt(e))return cr(r);try{let s=await ct(i);if(s.isVirtual||!s.storage)throw new Error("failed get storage: storage not found");let o=await lt(s.storage.driver,s.storage);if(typeof o.other=="function"){let a=await o.other(n,s.relative,t);return r.json({code:200,message:"success",data:a})}return r.json({code:500,message:`Driver '${s.storage.driver}' does not support other method '${n}'`,data:null},500)}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/batch_rename",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,rename_objects:i}=await r.req.json().catch(()=>({}));if(!Array.isArray(i)||i.length===0)return r.json({code:400,message:"rename_objects is required",data:null},400);let n=We(e,t||"/"),s=_t(r);try{for(let o of i){let a=o?.src_name,c=o?.new_name;if(!a||!c)continue;cu(c);let l=`${n}/${a}`.replace(/\/{2,}/g,"/");await RA(l,c,s)}return r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null},500)}});dt.post("/regex_rename",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,src_name_regex:i,new_name_regex:n}=await r.req.json().catch(()=>({}));if(!i)return r.json({code:400,message:"src_name_regex is required",data:null},400);let s=We(e,t||"/"),o=_t(r);try{let a=new RegExp(i),{content:c}=await Zt(s,o);for(let l of c)if(!l.is_dir&&a.test(l.name)){let d=l.name.replace(a,n||"");cu(d);let u=`${s}/${l.name}`.replace(/\/{2,}/g,"/");await RA(u,d,o)}return r.json({code:200,message:"success",data:null})}catch(a){return r.json({code:500,message:Ne(a),data:null},500)}});dt.post("/recursive_move",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t,dst_dir:i,conflict_policy:n}=await r.req.json().catch(()=>({})),s=We(e,t||"/"),o=We(e,i||"/"),a=n||"overwrite",c=_t(r);try{let l=new Set;if(a!=="overwrite"){let f=await Zt(o,c);l=new Set(f.content.map(h=>h.name))}let d=[s],u=0;for(;d.length>0;){let f=d.shift(),{content:h}=await Zt(f,c);for(let g of h)if(g.is_dir)d.push(`${f}/${g.name}`.replace(/\/{2,}/g,"/"));else{if(l.has(g.name)){if(a==="cancel")return r.json({code:403,message:`file [${g.name}] exists`,data:null},403);if(a==="skip")continue}a!=="overwrite"&&l.add(g.name),await Vd(f,o,[g.name],c),u++}}return r.json({code:200,message:`Successfully moved ${u} files`,data:null})}catch(l){return r.json({code:500,message:Ne(l),data:null},500)}});dt.post("/remove_empty_directory",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{src_dir:t}=await r.req.json().catch(()=>({})),i=We(e,t||"/"),n=_t(r);try{let s=async o=>{let{content:a}=await Zt(o,n);for(let l of a)l.is_dir&&await s(`${o}/${l.name}`.replace(/\/{2,}/g,"/"));if(o===i)return;if((await Zt(o,n)).content.length===0){let l=o.split("/").slice(0,-1).join("/")||"/",d=o.split("/").pop();await qa(l,[d],n)}};return await s(i),r.json({code:200,message:"success",data:null})}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/link",async r=>{let e=await Me(r);if(!Is(e))return cr(r);let{path:t}=await r.req.json().catch(()=>({})),i=We(e,t||"/"),n=_t(r);try{let s=await ct(i);if(s.isVirtual||!s.storage)return r.json({code:500,message:"storage not found",data:null},500);let o=await lt(s.storage.driver,s.storage);try{let c=await o.get(i,s.physical??"/");if(c&&c.raw_url)return r.json({code:200,message:"success",data:{url:c.raw_url}})}finally{await Jt(s.storage.driver,s.storage,o,n)}let a=await ru(r,i,await tu(r));return r.json({code:200,message:"success",data:{url:`/api/p${Os(i)}?sign=${encodeURIComponent(a)}`}})}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/get_direct_upload_info",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let{path:t,file_name:i,file_size:n}=await r.req.json().catch(()=>({})),s=We(e,t||"/");try{let o=await ct(s);if(o.isVirtual||!o.storage)return r.json({code:200,message:"success",data:null});let c=await lt(o.storage.driver,o.storage);if(typeof c.getDirectUploadInfo=="function"){let l=await c.getDirectUploadInfo(o.relative,i,n);return r.json({code:200,message:"success",data:l})}if(typeof c.other=="function")for(let l of["direct_upload","get_direct_upload_info"])try{let d=await c.other(l,o.relative,{file_name:i,file_size:n});if(d)return r.json({code:200,message:"success",data:d})}catch{}return r.json({code:200,message:"success",data:null})}catch(o){return r.json({code:500,message:Ne(o),data:null},500)}});function A2(r){let t=(r.startsWith("/")?r:"/"+r).split("/").filter(Boolean),i=t.pop()||"";return{dir:"/"+t.join("/"),name:i}}dt.post("/multipart/init",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=decodeURIComponent(r.req.header("File-Path")||""),i=parseInt(r.req.header("X-File-Size")||"0",10),n=parseInt(r.req.header("X-Chunk-Size")||"0",10),s=r.req.header("X-File-Md5")||"";if(!t.trim()||i<=0)return r.json({code:400,message:"Missing File-Path / X-File-Size header",data:null},400);let{dir:o,name:a}=A2(t),c=We(e,o),l=_t(r);try{let d=await ct(c);if(d.isVirtual)throw new Error("failed get storage: storage not found");let u=await lt(d.storage.driver,d.storage);if(typeof u.createUploadSession!="function")return r.json({code:200,message:"success",data:null});let f=J9(n),h=Math.max(1,Math.ceil(i/f)),g,p=!1,I=j9(t,i);if(I)g=I,p=!0;else{let m=await u.createUploadSession(c,d.physical,a,i,s);g={upload_id:V9(),state:"receiving",attempt:0,path:t,size:i,chunk_size:f,total_chunks:h,received:new Set,driver_session:m?.session||"",partMd5s:new Array(h).fill(void 0),storage_driver:d.storage.driver,created_at:Date.now()},m?.reuse&&(g.state="completed",g.received=new Set(Array.from({length:h},(w,B)=>B))),VA(g)}return await Jt(d.storage.driver,d.storage,u,l),r.json({code:200,message:"success",data:{...cl(g),resumed:p}})}catch(d){return r.json({code:500,message:Ne(d),data:null},500)}});dt.put("/multipart/chunk",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=r.req.header("X-Upload-Id")||"",i=parseInt(r.req.header("X-Chunk-Index")||"-1",10),n=t?Sw(t):void 0;if(!n)return r.json({code:404,message:"upload session not found",data:null},404);if(i<0||i>=n.total_chunks)return r.json({code:400,message:"invalid X-Chunk-Index",data:null},400);if(n.received.has(i))return r.json({code:200,message:"success",data:cl(n)});let s=Dw(r,!0);if(s!==null)return r.json({code:413,message:`Part too large (max ${s} bytes)`,data:null},413);let o=_t(r);try{let a=await ct(We(e,A2(n.path).dir));if(a.isVirtual)throw new Error("failed get storage: storage not found");let c=await lt(a.storage.driver,a.storage);if(typeof c.uploadPart!="function")throw new Error("storage does not support chunked upload");let l=Buffer.from(await r.req.arrayBuffer()),d;try{d=await c.uploadPart(n.driver_session,i+1,l)}finally{await Jt(a.storage.driver,a.storage,c,o)}return n.received.add(i),d?.partMd5&&(n.partMd5s[i]=d.partMd5),VA(n),r.json({code:200,message:"success",data:cl(n)})}catch(a){return r.json({code:500,message:Ne(a),data:null},500)}});dt.post("/multipart/complete",async r=>{let e=await Me(r);if(!pt(e))return cr(r);let t=r.req.header("X-Upload-Id")||"",i=t?Sw(t):void 0;if(!i)return r.json({code:404,message:"upload session not found",data:null},404);if(i.state==="completed")return r.json({code:200,message:"success",data:cl(i)});let n=_t(r);try{let s=await ct(We(e,A2(i.path).dir));if(s.isVirtual)throw new Error("failed get storage: storage not found");let o=await lt(s.storage.driver,s.storage);if(typeof o.completeUploadSession!="function")throw new Error("storage does not support chunked upload");try{await o.completeUploadSession(i.driver_session,i.partMd5s.filter(a=>a!==void 0))}finally{await Jt(s.storage.driver,s.storage,o,n)}return i.state="completed",VA(i),$9(i.upload_id),r.json({code:200,message:"success",data:cl(i)})}catch(s){return i.state="failed_permanent",i.error=Ne(s),VA(i),r.json({code:500,message:Ne(s),data:null},500)}});dt.get("/multipart/status",async r=>{let e=r.req.query("upload_id")||"",t=e?Sw(e):void 0;return t?r.json({code:200,message:"success",data:cl(t)}):r.json({code:404,message:"upload session not found",data:null},404)});function h2(r){let e=r.toLowerCase();return e.endsWith(".zip")?"zip":e.endsWith(".tar.gz")||e.endsWith(".tgz")?"tar.gz":e.endsWith(".tar.bz2")||e.endsWith(".tbz2")?"tar.bz2":e.endsWith(".tar.xz")||e.endsWith(".txz")?"tar.xz":e.endsWith(".tar")?"tar":e.endsWith(".7z")?"7z":e.endsWith(".rar")?"rar":null}function g2(r){return r==="zip"}async function p2(r,e,t){let i=We(e,t),n=await ct(i);if(n.isVirtual)throw new Error("failed get storage: storage not found");let s=await lt(n.storage.driver,n.storage),o;try{o=await s.get(t,n.physical)}finally{await Jt(n.storage.driver,n.storage,s,_t(r))}if(!o||!o.raw_url)throw new Error("archive driver did not return download link");let a=Eg(n.storage?.addition,r.env);jr(o.raw_url,"Archive download",a);let c=await fetch(o.raw_url,{headers:o.raw_url_headers||{}});if(!c.ok)throw new Error(`archive download failed: HTTP ${c.status}`);return await c.arrayBuffer()}function Ose(r){let e=[],t=new Map;for(let i of r.entries){let n=i.name.split("/").filter(Boolean);if(n.length===0)continue;let s=e,o="";for(let a=0;a<n.length;a++){let c=n[a],l=a===n.length-1;if(o=o?`${o}/${c}`:`/${c}`,l)s.push({name:c,size:i.size,is_dir:!1,modified:i.modified||new Date().toISOString(),type:Y9(c,!1),children:[]});else{let d=t.get(o);d||(d={name:c,size:0,is_dir:!0,modified:i.modified||new Date().toISOString(),type:1,children:[]},t.set(o,d),s.push(d)),s=d.children}}}return e}function Y9(r,e){let t=r.split(".").pop()?.toLowerCase()||"";if(e)return 1;let i=["mp4","mkv","webm","avi","mov","flv","m3u8"],n=["mp3","flac","wav","aac","ogg","m4a"],s=["jpg","jpeg","png","gif","webp","svg","bmp","ico"],o=["txt","md","json","js","ts","css","html","xml","yml","log"];return i.includes(t)?2:n.includes(t)?3:s.includes(t)?4:o.includes(t)?5:6}dt.post("/archive/meta",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=String(t.path||r.req.query("path")||"").trim();if(!i)return r.json({code:400,message:"path is required",data:null},400);let n=h2(i);if(!n)return r.json({code:400,message:"unrecognized archive format",data:null},400);if(!g2(n))return r.json({code:501,message:`archive format '${n}' is recognized but not supported in this runtime (Worker supports ZIP only); use the Go backend for ${n} archives`,data:null},501);try{let s=await p2(r,e,i),o=ww(s),a=Ose(o);return r.json({code:200,message:"success",data:{comment:"",encrypted:!1,content:a,raw_url:"",sign:""}})}catch(s){return r.json({code:500,message:Ne(s),data:null},500)}});dt.post("/archive/list",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=await r.req.json().catch(()=>({})),i=String(t.path||r.req.query("path")||"").trim(),n=String(t.inner_path||"").trim().replace(/\/+/g,"/");if(!i)return r.json({code:400,message:"path is required",data:null},400);let s=h2(i);if(!s)return r.json({code:400,message:"unrecognized archive format",data:null},400);if(!g2(s))return r.json({code:501,message:`archive format '${s}' is recognized but not supported in this runtime; use the Go backend for ${s} archives`,data:null},501);try{let o=await p2(r,e,i),a=ww(o),c=n?n.replace(/^\/+|\/+$/g,"")+"/":"",l=a.entries.filter(f=>c?f.name.startsWith(c)&&f.name!==c.slice(0,-1):!f.name.includes("/")).map(f=>{let h=c?f.name.slice(c.length):f.name;return{name:h.split("/")[0],size:f.size,is_dir:!1,modified:f.modified||new Date().toISOString(),type:Y9(h.split("/")[0],!1)}}),d=new Set,u=l.filter(f=>d.has(f.name)?!1:(d.add(f.name),!0));return r.json({code:200,message:"success",data:{content:u,total:u.length}})}catch(o){return r.json({code:500,message:Ne(o),data:null},500)}});dt.post("/archive/decompress",async r=>{let e=await Me(r);if(!pt(e))return r.json({code:403,message:"Permission denied",data:null},403);let t=await r.req.json().catch(()=>({})),i=String(t.src_dir||"").trim(),n=String(t.dst_dir||"").trim(),s=Array.isArray(t.name)?t.name:t.name?[String(t.name)]:[],o=String(t.inner_path||"").trim().replace(/\/+/g,"/");if(!s.length||!n)return r.json({code:400,message:"src_dir/dst_dir/name are required",data:null},400);try{let a=0;for(let c of s){let l=i?`${i}/${c}`:`/${c}`,d=h2(c);if(!d||!g2(d))return r.json({code:400,message:`unsupported archive format: ${c} (only ZIP is supported)`,data:null},400);let u=await p2(r,e,l),f=ww(u),h=o?o.replace(/^\/+|\/+$/g,"")+"/":"";for(let g of f.entries){if(h&&!g.name.startsWith(h))continue;let p=h?g.name.slice(h.length):g.name;if(!p||p.endsWith("/"))continue;let I=`${n.replace(/\/+$/,"")}/${p}`,m=await D9(u,g);await Un(I,Buffer.from(m),_t(r)),a++}}return r.json({code:200,message:"success",data:{task:null,count:a}})}catch(a){return r.json({code:500,message:Ne(a),data:null},500)}});gl();Cr();Ye();Yt();OA();Ma();ef();Cr();Ye();gl();d0();Io();Fi();kv();var On=new Xe;On.get("/list",async r=>{let t=((await ne(r.env)).users||[]).map(i=>({id:i.id,username:i.username,role:i.role,permission:i.permission??0,base_path:i.base_path||"/",disabled:!!i.disabled,sso_id:i.sso_id||"",allow_ldap:!!i.allow_ldap,pwd_update_at:i.pwd_update_at||"",otp:!!i.otp_secret}));return r.json({code:200,message:"success",data:{content:t,total:t.length}})});On.get("/get",async r=>{let e=r.req.query("id");if(!e)return r.json({code:400,message:"Missing id parameter",data:null},400);let t=parseInt(e,10),n=((await ne(r.env)).users||[]).find(s=>s.id===t);return n?r.json({code:200,message:"success",data:{id:n.id,username:n.username,password:"",role:n.role,permission:n.permission??0,base_path:n.base_path||"/",disabled:!!n.disabled,sso_id:n.sso_id||"",allow_ldap:!!n.allow_ldap,otp:!!n.otp_secret}}):r.json({code:404,message:"User not found",data:null},404)});On.post("/create",async r=>{let e=await r.req.json().catch(()=>({}));if(!e.username)return r.json({code:400,message:"Username is required",data:null},400);let t=await ne(r.env);if(t.users||(t.users=[]),t.users.some(l=>l.username===e.username))return r.json({code:400,message:"Username already exists",data:null},400);let s=t.users.reduce((l,d)=>Math.max(l,d.id||0),0)+1,o=e.password||"",a=null;o||(a=xu(),o=a);let c={id:s,username:e.username,role:e.role!==void 0?parseInt(e.role,10):0,permission:e.permission!==void 0?parseInt(e.permission,10):0,base_path:e.base_path||"/",disabled:!!e.disabled,sso_id:e.sso_id||"",allow_ldap:!!e.allow_ldap,pwd_update_at:new Date().toISOString()};return await Ti(c,o),t.users.push(c),await fe(t,r.env),r.json({code:200,message:a?"success (a random password was generated \u2014 pass one explicitly to choose your own)":"success",data:a?{password:a}:null})});On.post("/update",async r=>{let e=await r.req.json().catch(()=>({}));if(!e.id)return r.json({code:400,message:"User ID is required",data:null},400);let t=parseInt(e.id,10),i=await ne(r.env);i.users||(i.users=[]);let n=i.users.findIndex(o=>o.id===t);if(n===-1)return r.json({code:404,message:"User not found",data:null},404);let s=i.users[n];if(e.username&&e.username!==s.username){if(i.users.some(a=>a.id!==t&&a.username===e.username))return r.json({code:400,message:"Username already in use",data:null},400);s.username=e.username}return e.password&&e.password.trim()!==""&&await Ti(s,e.password.trim()),e.role!==void 0&&(s.role=parseInt(e.role,10)),e.permission!==void 0&&(s.permission=parseInt(e.permission,10)),e.base_path!==void 0&&(s.base_path=e.base_path),e.disabled!==void 0&&(s.disabled=!!e.disabled),e.sso_id!==void 0&&(s.sso_id=e.sso_id),e.allow_ldap!==void 0&&(s.allow_ldap=!!e.allow_ldap),i.users[n]=s,await fe(i,r.env),r.json({code:200,message:"success",data:null})});var uM=async r=>{let e=r.req.query("id");if(!e)return r.json({code:400,message:"Missing id parameter",data:null},400);let t=parseInt(e,10);if(t===1)return r.json({code:400,message:"Cannot delete primary admin user",data:null},400);let i=await ne(r.env);return i.users||(i.users=[]),i.users=i.users.filter(n=>n.id!==t),await fe(i,r.env),r.json({code:200,message:"success",data:null})};On.post("/delete",uM);On.post("/cancel",uM);On.get("/sshkey/list",async r=>{let e=parseInt(r.req.query("uid")||"0",10),t=await mu(e,r.env);return r.json({code:200,message:"success",data:{content:t,total:t.length}})});On.post("/sshkey/delete",async r=>{let e=parseInt(r.req.query("uid")||"0",10),t=r.req.query("id");if(!e||!t)return r.json({code:400,message:"Missing uid or id parameter",data:null},400);if(!await ix(e,t,r.env))return r.json({code:404,message:"SSH key not found",data:null},404);let n=await mu(e,r.env);return r.json({code:200,message:"success",data:n})});On.post("/cancel_2fa",async r=>{let e=parseInt(r.req.query("id")||"0",10);if(!e)return r.json({code:400,message:"Missing id parameter",data:null},400);let t=await ne(r.env),i=(t.users||[]).find(n=>n.id===e);return i?(delete i.otp_secret,await fe(t,r.env),r.json({code:200,message:"success",data:null})):r.json({code:404,message:"User not found",data:null},404)});var fM=async r=>{let e=r.req.header("Authorization");if(!e)return r.json({code:401,message:"Unauthorized",data:null},401);let t=e.startsWith("Bearer ")?e.substring(7):e;try{let i=await Dr(r),n=await mo(t,i,"HS256"),s=await r.req.json().catch(()=>({})),o=s.old_password||"",a=s.new_password||"";if(!a)return r.json({code:400,message:"New password is required",data:null},400);let c=await ne(r.env);c.users||(c.users=[]);let l=c.users.findIndex(u=>u.id===n.id||u.username===n.username);if(l===-1)return r.json({code:404,message:"User not found",data:null},404);let d=c.users[l];return!d.password||!await wu(d,o)?r.json({code:400,message:"Incorrect old password",data:null},400):(await Ti(d,a),c.users[l]=d,await fe(c,r.env),r.json({code:200,message:"success",data:null}))}catch(i){return r.json({code:401,message:`Unauthorized: ${i.message||"Invalid token"}`,data:null},401)}};var Ue=new Xe;Ue.use("*",async(r,e)=>{if(!await Zd(r))return r.json({code:401,message:"Unauthorized",data:null});await e()});function kce(r=32){let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",t=new Uint8Array(r);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(t);else for(let n=0;n<r;n++)t[n]=(Math.random()*256|0)^Date.now()&255;let i="";for(let n=0;n<r;n++)i+=e.charAt(t[n]%e.length);return i}Ue.get("/storage/list",async r=>{let t=[...(await ne(r.env)).storages||[]].sort((i,n)=>{let s=Number(i.order)||0,o=Number(n.order)||0;return s!==o?s-o:(Number(i.id)||0)-(Number(n.id)||0)});return r.json({code:200,message:"success",data:{content:t,total:t.length}})});Ue.post("/storage/load_all",async r=>{let e=await ne(r.env),t=[],i=0,n=0;for(let s of e.storages||[])if(!s.disabled)try{await lt(s.driver,s),i++,t.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"ok"})}catch(o){n++,t.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"failed",error:o?.message||String(o)})}return r.json({code:200,message:"success",data:{loaded:i,failed:n,results:t}})});Ue.get("/storage/get",async r=>{let e=parseInt(r.req.query("id")||"0",10),i=(await ne(r.env)).storages.find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"storage not found",data:null})});var hM=r=>{let e=(r||"").toLowerCase().replace(/[^a-z0-9]/g,"");if(!e)return"";let i=Object.keys(Eu).find(n=>n.toLowerCase()===e||n.toLowerCase().replace(/[^a-z0-9]/g,"")===e);return i||(e.startsWith("115")?"115Open":e.startsWith("123")?"123Pan":e.includes("aliyun")?"AliyundriveOpen":e.startsWith("baidu")?"BaiduNetdisk":e.startsWith("189")||e.includes("cloud189")||e.includes("ctyun")?"Cloud189":e==="onedriveapp"?"OnedriveAPP":e.startsWith("onedrive")?"Onedrive":e.startsWith("google")||e.includes("gdrive")?"GoogleDrive":(e.includes("thunder")||e.includes("xunlei"))&&e.includes("expert")?"ThunderExpert":e.includes("thunder")||e.includes("xunlei")?"Thunder":e==="webdav"||e==="webdavdriver"?"WebDav":e==="wopan"||e.includes("unicom")||e.includes("woyun")?"WoPan":e==="quark"||e==="quarkuc"||e==="uc"?"Quark":["s3","doge","dogecloud","minio","ceph","aws","r2","b2","cos","oss","kodo"].includes(e)?"S3":e.startsWith("github")?"Github":e==="local"?"Local":e.includes("pikpak")?"PikPak":e.includes("seafile")?"Seafile":e.includes("yandex")?"YandexDisk":e.includes("terabox")||e.includes("dubox")?"Terabox":e.includes("mediatrack")||e.includes("fenmiao")?"MediaTrack":e.includes("alias")?"Alias":r||"")},gM=(r,e)=>{let t="";if(typeof e=="object"&&e!==null)try{t=JSON.stringify(e)}catch{t="{}"}else t=String(e||"{}");let i=(r||"").toLowerCase();if(i.includes("thunder")||i.includes("xunlei"))try{let n=JSON.parse(t||"{}");if(!n.device_id||typeof n.device_id!="string"||n.device_id.trim().length!==32){let s=typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Math.random().toString(16).substring(2).padEnd(16,"0")+Math.random().toString(16).substring(2).padEnd(16,"0");return n.device_id=s.slice(0,32),JSON.stringify(n)}}catch{}return t};Ue.post("/storage/create",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);if(!e.driver||typeof e.driver!="string"||e.driver.trim()===""||e.driver==="undefined"||e.driver==="null")return r.json({code:400,message:"Storage driver is required",data:null},400);let i=e.mount_path;if(!i||String(i).trim()===""){let c=Eu[e.driver]?.default_mount_path;c&&(i=c)}let n="/"+String(i||"").split("/").filter(Boolean).join("/");if(t.storages.some(c=>!c.disabled&&"/"+(c.mount_path||"").split("/").filter(Boolean).join("/")===n))return r.json({code:400,message:`mount path already exists: ${n}`,data:null});let s=hM(e.driver),o=gM(s,e.addition||"{}"),a={...e,driver:s,addition:o,mount_path:n,id:t.storages.length?Math.max(...t.storages.map(c=>c.id))+1:1,status:"work",modified:new Date().toISOString()};t.storages.push(a);try{await fe(t,r.env)}catch(c){return t.storages.pop(),r.json({code:500,message:`Failed to save storage config: ${c.message||String(c)}`,data:null})}if(!a.disabled){try{await lt(a.driver,a),a.status="work"}catch(c){a.status=c.message||String(c),String(c.message||c).includes("unsupported driver")&&(a.disabled=!0);try{await fe(t,r.env)}catch(l){console.error("[admin/storage/create] Failed to update storage status:",l)}return r.json({code:500,message:c.message||String(c),data:a})}try{await fe(t,r.env)}catch(c){console.error("[admin/storage/create] Failed to update storage status after connection:",c)}}return r.json({code:200,message:"success",data:a})});Ue.post("/storage/update",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env),i=e.mount_path;if(!i||String(i).trim()===""){let o=Eu[e.driver]?.default_mount_path;o&&(i=o)}let n=String(i||"").trim()!==""?"/"+String(i||"").split("/").filter(Boolean).join("/"):void 0;if(n&&t.storages.some(o=>o.id!==e.id&&!o.disabled&&"/"+(o.mount_path||"").split("/").filter(Boolean).join("/")===n))return r.json({code:400,message:`mount path already exists: ${n}`,data:null});let s=t.storages.findIndex(o=>o.id===e.id);if(s!==-1){let o=e.driver||t.storages[s].driver,a=hM(o),c=gM(a,e.addition!==void 0?e.addition:t.storages[s].addition||"{}"),l={...t.storages[s],...e,driver:a,addition:c,mount_path:n||t.storages[s].mount_path,modified:new Date().toISOString()};if(!l.disabled)try{await lt(l.driver,l,{deferTokenPersistence:!0}),l.status="work"}catch(d){return l.status=d.message||String(d),String(d.message||d).includes("unsupported driver")&&(l.disabled=!0),t.storages[s]=l,await fe(t,r.env),r.json({code:500,message:d.message||String(d),data:{id:l.id}})}t.storages[s]=l,await fe(t,r.env)}return r.json({code:200,message:"success",data:null})});Ue.post("/storage/delete",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env);return t.storages=t.storages.filter(i=>i.id!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.post("/storage/enable",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env),i=t.storages.find(n=>n.id===e);return i&&(i.disabled=!1,i.modified=new Date().toISOString(),await fe(t,r.env),(async()=>{try{await lt(i.driver,i);let n=await ne(r.env),s=n.storages.find(o=>o.id===e);s&&!s.disabled&&(s.status="work",s.modified=new Date().toISOString(),await fe(n,r.env))}catch(n){let s=await ne(r.env),o=s.storages.find(a=>a.id===e);o&&!o.disabled&&(o.status=n.message||String(n),await fe(s,r.env))}})()),r.json({code:200,message:"success",data:null})});Ue.post("/storage/disable",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env),i=t.storages.find(n=>n.id===e);return i&&(i.disabled=!0,await fe(t,r.env)),r.json({code:200,message:"success",data:null})});Ue.get("/driver/names",r=>r.json({code:200,message:"success",data:["AliyundriveOpen","GoogleDrive","Onedrive","OnedriveAPP","Quark","123Pan","BaiduNetdisk","115Open","GitHub API","Thunder","ThunderExpert","189Cloud","WoPan","Lanzou","WebDav","S3","Doge","PikPak","Seafile","YandexDisk","Terabox","MediaTrack","Alias","Dropbox","WPS","139Yun","Mega_nz","115Share","123PanShare","AliyundriveShare","OnedriveSharelink","PikPakShare","SMB","Crypt","Virtual","AListV3","UrlTree","Strm","AzureBlob","USS","Alidoc","Emby","BunnyStorage","CloudflareImgbed","GuangYaPan","AutoIndex","ProtonDrive"]}));var Ft=[{name:"mount_path",type:"string",default:"",required:!0},{name:"order",type:"number",default:"0",required:!1},{name:"remark",type:"string",default:"",required:!1},{name:"cache_expiration",type:"number",default:"30",required:!1,help:"\u76EE\u5F55\u5185\u5BB9\u7F13\u5B58\u65F6\u957F\uFF08\u5206\u949F\uFF09"}],Pt={name:"custom_cache_policies",type:"text",default:"",required:!1,help:'\u6309\u8DEF\u5F84\u8986\u76D6\u7F13\u5B58\u65F6\u957F\uFF0CJSON \u683C\u5F0F\uFF0C\u5982 [{"path":"/photos/*","cache_expiration":1440}]'},Tt={name:"enable_sign",type:"bool",default:"false",required:!0,help:"Enable signature validation for this storage"},Ut={name:"disable_index",type:"bool",default:"false",required:!1,help:"Disable directory listing for this storage"};function Sce(){return{name:"proxy_range",type:"bool",default:"true",required:!1,help:"Need to enable proxy"}}var AM={name:"web_proxy",type:"bool",default:"false",required:!1},Rv={name:"webdav_policy",type:"select",options:"302_redirect,use_proxy_url,native_proxy",default:"302_redirect",required:!1};function Rt(r=""){let e=yc(r),t=cQ.has(e)?[Sce()]:[];if(dQ(e))return[...t,{...Rv,options:"use_proxy_url,native_proxy",default:"native_proxy"}];let i=qC(e);return[...t,i?{...AM,default:"true"}:{...AM},i?{...Rv,default:"native_proxy"}:{...Rv}]}var er={name:"seed_policy",type:"select",options:"inherit,on,off",default:"inherit",required:!0,help:"Override automatic transfer-seed generation for this storage"},pl={name:"down_proxy_url",type:"string",default:"",required:!1,help:"\u81EA\u5B9A\u4E49\u4E0B\u8F7D\u4EE3\u7406\u5730\u5740\uFF08\u652F\u6301 $path \u5360\u4F4D\u7B26\uFF1B\u7559\u7A7A\u5219\u7528\u672C\u670D\u52A1\u4EE3\u7406\uFF09"},Nt={name:"disable_proxy_sign",type:"bool",default:"false",required:!1,help:"Disable sign for Download proxy URL"},mt=[...Ft,Pt,Tt,Ut,...Rt(),pl,Nt,er],Eu={AliyundriveOpen:{name:"AliyundriveOpen",default_mount_path:"/aliyundrive",common:mt,additional:[{name:"refresh_token",type:"text",default:"",required:!0,help:"true"},{name:"drive_type",type:"select",options:"resource,backup,default",default:"resource",required:!0},{name:"drive_id",type:"string",default:"",required:!1},{name:"root_folder_id",type:"string",default:"root",required:!0},{name:"order_by",type:"select",options:"updated_at,name,size,created_at",default:"updated_at",required:!1},{name:"order_direction",type:"select",options:"DESC,ASC",default:"DESC",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/alicloud/renewapi",required:!1,help:"true"},{name:"alipan_type",type:"select",options:"alipanQR,alipanTV",default:"alipanQR",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"remove_way",type:"select",options:"trash,delete",default:"trash",required:!1}],config:{name:"AliyundriveOpen",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"root"}},Onedrive:{name:"Onedrive",default_mount_path:"/onedrive",common:[...Ft,Pt,Tt,Ut,...Rt("Onedrive"),pl,Nt],additional:[{name:"root_folder_path",type:"string",default:"/",required:!0},{name:"region",type:"select",options:"global,cn,us,de",default:"global",required:!0},{name:"is_sharepoint",type:"bool",default:"false",required:!1},{name:"use_online_api",type:"bool",default:"true",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/onedrive/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"redirect_uri",type:"string",default:"https://api.oplist.org/onedrive/callback",required:!0},{name:"refresh_token",type:"string",default:"",required:!0},{name:"site_id",type:"string",default:"",required:!1},{name:"chunk_size",type:"number",default:"5",required:!1},{name:"custom_host",type:"string",default:"",required:!1,help:"true"},{name:"disable_disk_usage",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1,help:"true"},{name:"order_by",type:"select",options:"filename,modified_time,size",default:"filename",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Onedrive",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},OnedriveAPP:{name:"OnedriveAPP",default_mount_path:"/onedrive_app",common:[...Ft,Pt,Tt,Ut,...Rt("OnedriveAPP"),pl,Nt],additional:[{name:"root_folder_path",type:"string",default:"/",required:!0},{name:"region",type:"select",options:"global,cn,us,de",default:"global",required:!0},{name:"client_id",type:"string",default:"",required:!0},{name:"client_secret",type:"string",default:"",required:!0},{name:"tenant_id",type:"string",default:"",required:!0},{name:"email",type:"string",default:"",required:!0},{name:"chunk_size",type:"number",default:"5",required:!1},{name:"custom_host",type:"string",default:"",required:!1,help:"true"},{name:"disable_disk_usage",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1,help:"true"},{name:"order_by",type:"select",options:"filename,modified_time,size",default:"filename",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"OnedriveAPP",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},GoogleDrive:{name:"GoogleDrive",default_mount_path:"/google-drive",common:[...Ft,Pt,Tt,Ut,...Rt("GoogleDrive"),Nt,er],additional:[{name:"refresh_token",type:"text",default:"",required:!0,help:"true"},{name:"root_folder_id",type:"string",default:"root",required:!1},{name:"order_by",type:"select",options:"folder,name,modifiedTime desc",default:"folder,name,modifiedTime desc",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"api_url_address",type:"string",default:"https://api.alist.nn.ci/googledrive/token",required:!1,help:"true"},{name:"use_online_api",type:"bool",default:"true",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"chunk_size",type:"number",default:"5",required:!1}],config:{name:"GoogleDrive",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"root"}},Quark:{name:"Quark",default_mount_path:"/quark",common:mt,additional:[{name:"variant",type:"select",options:"Quark,UC",default:"Quark",required:!0},{name:"cookie",type:"text",default:"",required:!0,help:"true"},{name:"root_folder_id",type:"string",default:"0",required:!0},{name:"order_by",type:"select",options:"none,file_type,file_name,updated_at",default:"none",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"use_transcoding_address",type:"bool",default:"false",required:!1},{name:"only_list_video_file",type:"bool",default:"false",required:!1}],config:{name:"Quark",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0"}},"123Pan":{name:"123Pan",default_mount_path:"/123",common:[...Ft,Pt,Tt,Ut,...Rt("123Pan"),Nt,er],additional:[{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"access_token",type:"string",default:"",required:!1,help:"\u767B\u5F55\u4EE4\u724C\uFF08\u53EF\u9009\uFF0C\u81EA\u52A8\u6301\u4E45\u5316\uFF0C\u65E0\u9700\u624B\u52A8\u586B\u5199\uFF09\u3002\u4EC5\u9700\u586B\u5199\u4E0A\u65B9 123 \u7F51\u76D8\u624B\u673A\u53F7\u548C\u5BC6\u7801\uFF0C\u767B\u5F55\u540E\u81EA\u52A8\u83B7\u53D6\u5E76\u4FDD\u5B58\uFF0C\u8DF3\u8FC7\u91CD\u590D\u767B\u5F55\u53EF\u907F\u514D\u5883\u5916 IP \u89E6\u53D1\u98CE\u63A7\u3002"},{name:"cookie",type:"text",default:"",required:!1,help:"\u6D4F\u89C8\u5668 Cookie\uFF08\u53EF\u9009\uFF09\u3002\u5728 123 \u7F51\u76D8\u7F51\u9875\u767B\u5F55\u540E\uFF0C\u4ECE\u5F00\u53D1\u8005\u5DE5\u5177\u590D\u5236\u8BF7\u6C42\u5934\u4E2D\u7684 Cookie \u6574\u4E32\u7C98\u8D34\u4E8E\u6B64\uFF08\u542B sso-token\uFF09\uFF0C\u6216\u4ECE Authorization: Bearer <token> \u4E2D\u590D\u5236 token/Bearer \u503C\u3002\u89E3\u6790\u51FA\u7684 JWT \u4F1A\u4F5C\u4E3A Bearer \u4EE4\u724C\u4F7F\u7528\uFF0C\u6548\u679C\u7B49\u540C\u8BBF\u95EE\u4EE4\u724C\uFF0C\u9002\u5408\u8D26\u53F7\u5BC6\u7801\u767B\u5F55\u88AB\u98CE\u63A7\u62E6\u622A\u7684\u73AF\u5883\u3002"},{name:"root_id",type:"string",default:"0",required:!1},{name:"upload_thread",type:"number",default:"3",required:!1,help:"the threads of upload"},{name:"platform",type:"string",default:"web",required:!1,help:"the platform header value, sent with API requests"},{name:"order_by",type:"select",options:"file_id,file_name,size,created_at,updated_at",default:"file_id",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"desc",required:!1}],config:{name:"123Pan",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0"}},BaiduNetdisk:{name:"BaiduNetdisk",default_mount_path:"/baidu",common:[...Ft,Pt,Tt,Ut,...Rt("BaiduNetdisk"),Nt,er],additional:[{name:"refresh_token",type:"text",default:"",required:!0,help:"true"},{name:"access_token",type:"string",default:"",required:!0,help:"\u8BBF\u95EE\u4EE4\u724C\uFF08\u5FC5\u586B\uFF09\u3002\u901A\u8FC7 https://api.oplist.org/ \u83B7\u53D6\u3002\u82E5\u4EE4\u724C\u5931\u6548\uFF0C\u6302\u8F7D\u65F6\u4F1A\u81EA\u52A8\u6839\u636E refresh_token \u901A\u8FC7\u5728\u7EBF API \u6362\u65B0\u5E76\u6301\u4E45\u5316\u3002"},{name:"use_online_api",type:"bool",default:"true",required:!1,help:"\u4F7F\u7528\u5728\u7EBF API \u5237\u65B0 token\uFF08\u65E0\u9700 ClientID/ClientSecret\uFF09"},{name:"api_url_address",type:"string",default:"https://api.oplist.org/baiduyun/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"download_api",type:"select",options:"official,crack,crack_video",default:"official",required:!1},{name:"custom_crack_ua",type:"string",default:"netdisk",required:!0},{name:"order_by",type:"select",options:"name,time,size",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"only_list_video_file",type:"bool",default:"false",required:!1},{name:"upload_thread",type:"string",default:"3",required:!1,help:"1<=thread<=32"},{name:"upload_timeout",type:"number",default:"60",required:!1,help:"per-slice upload timeout in seconds"},{name:"custom_upload_part_size",type:"number",default:"0",required:!1,help:"0 for auto"},{name:"use_dynamic_upload_api",type:"bool",default:"true",required:!1,help:"dynamically get upload api domain, when enabled, the 'Upload API' setting will be used as a fallback if failed to get"},{name:"upload_api",type:"string",default:"https://d.pcs.baidu.com",required:!1},{name:"low_bandwith_upload_mode",type:"bool",default:"false",required:!1}],config:{name:"BaiduNetdisk",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},"115Open":{name:"115Open",default_mount_path:"/115",common:[...Ft,Pt,Tt,Ut,...Rt("115Open"),Nt,er],additional:[{name:"access_token",type:"string",default:"",required:!0,help:"\u8BBF\u95EE\u4EE4\u724C\uFF08\u5FC5\u586B\uFF09\u3002\u901A\u8FC7 115 \u5F00\u653E\u5E73\u53F0\u83B7\u53D6\uFF1B\u5931\u6548\u65F6\u81EA\u52A8\u7528 refresh_token \u5237\u65B0\u5E76\u6301\u4E45\u5316\u3002"},{name:"refresh_token",type:"string",default:"",required:!0,help:"\u5237\u65B0\u4EE4\u724C\uFF08\u5FC5\u586B\uFF09\u3002\u901A\u8FC7 115 \u5F00\u653E\u5E73\u53F0\u83B7\u53D6\uFF1Baccess_token \u5931\u6548\u65F6\u81EA\u52A8\u5237\u65B0\u3002"},{name:"root_id",type:"string",default:"0",required:!1,help:"\u6839\u6587\u4EF6\u5939 ID\uFF0C\u9ED8\u8BA4 0\uFF08\u6839\u76EE\u5F55\uFF09"},{name:"order_by",type:"select",options:"file_name,file_size,user_utime,file_type",default:"file_name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"page_size",type:"number",default:"200",required:!1,help:"list api per page size (1~1150)"},{name:"limit_rate",type:"float",default:"1",required:!1,help:"limit all api request rate ([limit]r/1s)\uFF0C0 \u8868\u793A\u4E0D\u9650\u901F"}],config:{name:"115Open",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0"}},"GitHub API":{name:"GitHub API",default_mount_path:"/github",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!0},{name:"token",type:"string",default:"",required:!0},{name:"owner",type:"string",default:"",required:!0},{name:"repo",type:"string",default:"",required:!0},{name:"ref",type:"string",default:"",required:!1,help:"A branch, a tag or a commit SHA, default branch by default."},{name:"gh_proxy",type:"string",default:"",required:!1,help:"GitHub proxy, e.g. https://ghproxy.net/raw.githubusercontent.com"},{name:"committer_name",type:"string",default:"",required:!1},{name:"committer_email",type:"string",default:"",required:!1},{name:"author_name",type:"string",default:"",required:!1},{name:"author_email",type:"string",default:"",required:!1},{name:"mkdir_commit_message",type:"text",default:"{{.UserName}} mkdir {{.ObjPath}}",required:!1},{name:"delete_commit_message",type:"text",default:"{{.UserName}} remove {{.ObjPath}}",required:!1},{name:"put_commit_message",type:"text",default:"{{.UserName}} upload {{.ObjPath}}",required:!1},{name:"rename_commit_message",type:"text",default:"{{.UserName}} rename {{.ObjPath}} to {{.TargetName}}",required:!1},{name:"copy_commit_message",type:"text",default:"{{.UserName}} copy {{.ObjPath}} to {{.TargetPath}}",required:!1},{name:"move_commit_message",type:"text",default:"{{.UserName}} move {{.ObjPath}} to {{.TargetPath}}",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"GitHub API",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},Thunder:{name:"Thunder",default_mount_path:"/thunder",common:mt,additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"captcha_token",type:"string",default:"",required:!1},{name:"credit_key",type:"string",default:"",required:!1,help:"credit key, used for login"},{name:"device_id",type:"string",default:"",required:!1,help:"32 hex characters"},{name:"space",type:"string",default:"",required:!1,help:"device id for remote device"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Thunder",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},ThunderExpert:{name:"ThunderExpert",default_mount_path:"/thunderexpert",common:mt,additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"login_type",type:"select",options:"user,refresh_token",default:"user",required:!0},{name:"sign_type",type:"select",options:"algorithms,captcha_sign",default:"algorithms",required:!0},{name:"username",type:"string",default:"",required:!1,help:"login type is user, this is required"},{name:"password",type:"string",default:"",required:!1,help:"login type is user, this is required"},{name:"refresh_token",type:"string",default:"",required:!1,help:"login type is refresh_token, this is required"},{name:"algorithms",type:"string",default:"9uJNVj/wLmdwKrJaVj/omlQ,Oz64Lp0GigmChHMf/6TNfxx7O9PyopcczMsnf,Eb+L7Ce+Ej48u,jKY0,ASr0zCl6v8W4aidjPK5KHd1Lq3t+vBFf41dqv5+fnOd,wQlozdg6r1qxh0eRmt3QgNXOvSZO6q/GXK,gmirk+ciAvIgA/cxUUCema47jr/YToixTT+Q6O,5IiCoM9B1/788ntB,P07JH0h6qoM6TSUAK2aL9T5s2QBVeY9JWvalf,+oK0AN",required:!1},{name:"captcha_sign",type:"string",default:"",required:!1},{name:"timestamp",type:"string",default:"",required:!1},{name:"captcha_token",type:"string",default:"",required:!1},{name:"credit_key",type:"string",default:"",required:!1,help:"credit key, used for login"},{name:"device_id",type:"string",default:"",required:!1},{name:"client_id",type:"string",default:"",required:!0,help:"\u8FC5\u96F7\u5F00\u653E\u5E73\u53F0 OAuth client_id\uFF08\u5FC5\u586B\uFF09\u3002"},{name:"client_secret",type:"string",default:"",required:!0,help:"\u8FC5\u96F7\u5F00\u653E\u5E73\u53F0 OAuth client_secret\uFF08\u5FC5\u586B\uFF09\u3002"},{name:"client_version",type:"string",default:"8.31.0.9726",required:!0},{name:"package_name",type:"string",default:"com.xunlei.downloadprovider",required:!0},{name:"user_agent",type:"string",default:"ANDROID-com.xunlei.downloadprovider/8.31.0.9726 netWorkType/5G appid/40 deviceName/Xiaomi_M2004j7ac deviceModel/M2004J7AC OSVersion/12 protocolVersion/301 platformVersion/10 sdkVersion/512000 Oauth2Client/0.9 (Linux 4_14_186-perf-gddfs8vbb238b) (JAVA 0)",required:!0},{name:"download_user_agent",type:"string",default:"Dalvik/2.1.0 (Linux; U; Android 12; M2004J7AC Build/SP1A.210812.016)",required:!0},{name:"use_video_url",type:"bool",default:"false",required:!1},{name:"space",type:"string",default:"",required:!1,help:"device id for remote device"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"ThunderExpert",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},"189Cloud":{name:"189Cloud",default_mount_path:"/189",common:[...Ft,Pt,Tt,Ut,...Rt("189Cloud"),Nt,er],additional:[{name:"username",type:"string",default:"",required:!0,help:"the phone number used to log in"},{name:"password",type:"string",default:"",required:!0,help:"password for login"},{name:"cookie",type:"text",default:"",required:!1,help:"Fill in the cookie if need captcha (\u82E5\u9047\u6ED1\u5757\u9A8C\u8BC1\u7801\u6216\u8BBE\u5907\u9501\uFF0C\u53EF\u5728\u6D4F\u89C8\u5668\u767B\u5F55\u540E\u590D\u5236 Cookie \u586B\u5165)"},{name:"root_folder_id",type:"string",default:"-11",required:!1,help:"\u6839\u6587\u4EF6\u5939ID\uFF0C\u9ED8\u8BA4\u4E3A -11\uFF08\u4E2A\u4EBA\u4E91\u6839\u76EE\u5F55\uFF09"},{name:"order_by",type:"select",options:"lastOpTime,filename,fileSize",default:"lastOpTime",required:!1},{name:"order_direction",type:"select",options:"desc,asc",default:"desc",required:!1}],config:{name:"189Cloud",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"-11"}},Lanzou:{name:"Lanzou",default_mount_path:"/lanzou",common:mt,additional:[{name:"type",type:"select",options:"cookie,account,url",default:"cookie",required:!0},{name:"account",type:"string",default:"",required:!1,help:"\u8D26\u53F7\uFF08\u624B\u673A\u53F7/UID\uFF09\uFF0C\u4EC5 account \u6A21\u5F0F\u9700\u586B\u5199"},{name:"password",type:"string",default:"",required:!1,help:"\u5BC6\u7801\uFF0C\u4EC5 account \u6A21\u5F0F\u9700\u586B\u5199"},{name:"cookie",type:"text",default:"",required:!1,help:"\u767B\u5F55 Cookie\uFF08\u542B ylogin, phpdisk_info \u7B49\uFF09\uFF0Ccookie \u6A21\u5F0F\u9700\u586B\u5199\uFF1B\u6709\u6548\u671F\u7EA6 15 \u5929"},{name:"root_folder_id",type:"string",default:"-1",required:!1,help:"\u6839\u6587\u4EF6\u5939 ID / \u5206\u4EAB ID\uFF08\u4E2A\u4EBA\u76D8\u9ED8\u8BA4 -1\uFF0C\u5206\u4EAB\u94FE\u63A5\u586B\u5206\u4EAB ID \u5982 b00xxxx\uFF09"},{name:"share_password",type:"string",default:"",required:!1,help:"\u63D0\u53D6\u7801 / \u8BBF\u95EE\u5BC6\u7801\uFF08\u65E0\u5BC6\u7801\u7559\u7A7A\uFF09"},{name:"baseUrl",type:"string",default:"https://pc.woozooo.com",required:!1,help:"\u57FA\u672C API \u57DF\u540D"},{name:"shareUrl",type:"string",default:"https://pan.lanzoui.com",required:!1,help:"\u5206\u4EAB\u9875\u9762\u89E3\u6790\u57DF\u540D"},{name:"user_agent",type:"string",default:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36 Chrome/142.0.0.0 OpenList/42",required:!0,help:"\u53D1\u9001\u7ED9\u84DD\u594F\u4E91 API \u4E0E\u76F4\u94FE\u89E3\u6790\u65F6\u643A\u5E26\u7684\u5BA2\u6237\u7AEF User-Agent"},{name:"repair_file_info",type:"bool",default:"false",required:!1,help:"\u901A\u8FC7 HEAD \u8BF7\u6C42\u4FEE\u6B63\u6587\u4EF6\u7CBE\u786E\u5927\u5C0F\u4E0E\u4FEE\u6539\u65F6\u95F4\uFF08WebDAV \u63A8\u8350\u5F00\u542F\uFF09"},{name:"order_by",type:"select",options:"name,size,time",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Lanzou",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"-1"}},WebDav:{name:"WebDav",default_mount_path:"/webdav",common:[...Ft,Pt,Tt,Ut,...Rt("WebDav"),pl,Nt,er],additional:[{name:"vendor",type:"select",options:"other,sharepoint",default:"other",required:!0},{name:"address",type:"string",default:"",required:!0},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"tls_insecure_skip_verify",type:"bool",default:"false",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"WebDav",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},WoPan:{name:"WoPan",default_mount_path:"/wopan",common:mt,additional:[{name:"root_folder_id",type:"string",default:"0",required:!1},{name:"refresh_token",type:"text",default:"",required:!0},{name:"family_id",type:"string",default:"",required:!1,help:"true"},{name:"sort_rule",type:"select",options:"name_asc,name_desc,time_asc,time_desc,size_asc,size_desc",default:"name_asc",required:!1},{name:"access_token",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"WoPan",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"0",no_overwrite_upload:!0}},S3:{name:"S3",default_mount_path:"/s3",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"bucket",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"",required:!0},{name:"region",type:"string",default:"",required:!1},{name:"access_key_id",type:"string",default:"",required:!0},{name:"secret_access_key",type:"string",default:"",required:!0},{name:"session_token",type:"string",default:"",required:!1},{name:"custom_host",type:"string",default:"",required:!1},{name:"enable_custom_host_presign",type:"bool",default:"false",required:!1},{name:"sign_url_expire",type:"number",default:"4",required:!1},{name:"placeholder",type:"string",default:"",required:!1},{name:"force_path_style",type:"bool",default:"false",required:!1},{name:"list_object_version",type:"select",options:"v1,v2",default:"v1",required:!1},{name:"remove_bucket",type:"bool",default:"false",required:!1,help:"true"},{name:"add_filename_to_disposition",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1},{name:"direct_upload_host",type:"string",default:"",required:!1},{name:"user_agent",type:"string",default:"",required:!1,help:"true"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"S3",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},Doge:{name:"Doge",default_mount_path:"/doge",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"bucket",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"",required:!0},{name:"region",type:"string",default:"",required:!1},{name:"access_key_id",type:"string",default:"",required:!0},{name:"secret_access_key",type:"string",default:"",required:!0},{name:"session_token",type:"string",default:"",required:!1},{name:"custom_host",type:"string",default:"",required:!1},{name:"enable_custom_host_presign",type:"bool",default:"false",required:!1},{name:"sign_url_expire",type:"number",default:"4",required:!1},{name:"placeholder",type:"string",default:"",required:!1},{name:"force_path_style",type:"bool",default:"false",required:!1},{name:"list_object_version",type:"select",options:"v1,v2",default:"v1",required:!1},{name:"remove_bucket",type:"bool",default:"false",required:!1,help:"true"},{name:"add_filename_to_disposition",type:"bool",default:"false",required:!1,help:"true"},{name:"enable_direct_upload",type:"bool",default:"false",required:!1},{name:"direct_upload_host",type:"string",default:"",required:!1},{name:"user_agent",type:"string",default:"",required:!1,help:"true"},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Doge",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},WeiYun:{name:"WeiYun",default_mount_path:"/weiyun",common:[...Ft,Pt,Tt,Ut,...Rt("WeiYun"),Nt,er],additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"cookies",type:"text",default:"",required:!0},{name:"order_by",type:"select",options:"name,size,updated_at",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1},{name:"upload_thread",type:"string",default:"4",required:!1,help:"4<=thread<=32"}],config:{name:"WeiYun",local_sort:!1,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"",check_status:!0}},SFTP:{name:"SFTP",default_mount_path:"/sftp",common:[...Ft,Pt,Tt,Ut,...Rt("SFTP"),Nt,er],additional:[{name:"address",type:"string",default:"",required:!0,help:"SSH host:port (e.g. 127.0.0.1:22)"},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!1},{name:"private_key",type:"text",default:"",required:!1},{name:"passphrase",type:"string",default:"",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"ignore_symlink_error",type:"bool",default:"false",required:!1,help:"Ignore symlink error"}],config:{name:"SFTP",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0,no_link_url:!0}},FTP:{name:"FTP",default_mount_path:"/ftp",common:[...Ft,Pt,Tt,Ut,...Rt("FTP"),Nt,er],additional:[{name:"address",type:"string",default:"",required:!0,help:"FTP host:port (e.g. 127.0.0.1:21)"},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"encoding",type:"string",default:"utf-8",required:!0,help:"Character encoding, e.g. utf-8, gbk, gb2312"},{name:"cwd_list",type:"bool",default:"false",required:!1,help:"Enter directory before listing"},{name:"root_folder_path",type:"string",default:"/",required:!1}],config:{name:"FTP",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0,no_link_url:!0}},PikPak:{name:"PikPak",default_mount_path:"/pikpak",common:mt,additional:[{name:"root_folder_id",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"platform",type:"select",options:"web,android,pc",default:"web",required:!0},{name:"refresh_token",type:"text",default:"",required:!1},{name:"captcha_token",type:"text",default:"",required:!1},{name:"device_id",type:"string",default:"",required:!1},{name:"disable_media_link",type:"bool",default:"true",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"PikPak",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},Seafile:{name:"Seafile",default_mount_path:"/seafile",common:mt,additional:[{name:"address",type:"string",default:"",required:!0},{name:"username",type:"string",default:"",required:!1},{name:"password",type:"string",default:"",required:!1},{name:"token",type:"string",default:"",required:!1},{name:"repo_id",type:"string",default:"",required:!1},{name:"repo_pwd",type:"string",default:"",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Seafile",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},YandexDisk:{name:"YandexDisk",default_mount_path:"/yandex",common:mt,additional:[{name:"refresh_token",type:"text",default:"",required:!0},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"use_online_api",type:"bool",default:"true",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/yandexui/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,path,created,modified,size",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"YandexDisk",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},Terabox:{name:"Terabox",default_mount_path:"/terabox",common:[...Ft,Pt,Tt,Ut,...Rt("Terabox"),Nt,er],additional:[{name:"cookie",type:"text",default:"",required:!0},{name:"download_api",type:"select",options:"official,crack",default:"official",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"order_by",type:"select",options:"name,time,size",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Terabox",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},MediaTrack:{name:"MediaTrack",default_mount_path:"/mediatrack",common:mt,additional:[{name:"access_token",type:"text",default:"",required:!0},{name:"project_id",type:"string",default:"",required:!1},{name:"root_folder_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"updated_at,title,size",default:"title",required:!1},{name:"order_desc",type:"bool",default:"false",required:!1}],config:{name:"MediaTrack",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},Alias:{name:"Alias",default_mount_path:"/alias",common:[...Ft,Pt,Tt,Ut,...Rt("Alias"),pl,Nt,er],additional:[{name:"paths",type:"text",default:"",required:!0,help:"Newline-separated list of paths, e.g. /local or sub:/target"},{name:"read_conflict_policy",type:"select",options:"first,random,all",default:"first",required:!1},{name:"write_conflict_policy",type:"select",options:"disabled,first,deterministic,deterministic_or_all,all,all_strict",default:"disabled",required:!1},{name:"put_conflict_policy",type:"select",options:"disabled,first,deterministic,deterministic_or_all,all,all_strict,random,quota,quota_strict",default:"disabled",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Alias",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/"}},Dropbox:{name:"Dropbox",default_mount_path:"/dropbox",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"use_online_api",type:"bool",default:"false",required:!1},{name:"api_url_address",type:"string",default:"https://api.oplist.org/dropboxs/renewapi",required:!1},{name:"client_id",type:"string",default:"",required:!1},{name:"client_secret",type:"string",default:"",required:!1},{name:"refresh_token",type:"text",default:"",required:!0},{name:"root_namespace_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Dropbox",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},WPS:{name:"WPS",default_mount_path:"/wps",common:mt,additional:[{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"cookie",type:"text",default:"",required:!0},{name:"mode",type:"select",options:"Personal,Business",default:"Personal",required:!1},{name:"custom_ua",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"WPS",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},"139Yun":{name:"139Yun",default_mount_path:"/139",common:[...Ft,Pt,Tt,Ut,...Rt("139Yun"),pl,Nt,er],additional:[{name:"authorization",type:"text",default:"",required:!0},{name:"root_folder_id",type:"string",default:"",required:!1},{name:"type",type:"select",options:"personal_new,family,group,personal,share",default:"personal_new",required:!1},{name:"link_id",type:"text",default:"",required:!1},{name:"cloud_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"139Yun",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:""}},Mega_nz:{name:"Mega_nz",default_mount_path:"/mega",common:[...Ft,Pt,Tt,Ut,...Rt("Mega_nz"),Nt,er],additional:[{name:"email",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!0},{name:"two_fa_code",type:"string",default:"",required:!1},{name:"two_fa_secret",type:"string",default:"",required:!1},{name:"move_to_trash",type:"bool",default:"true",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"Mega_nz",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},"115Share":{name:"115Share",default_mount_path:"/115_share",common:mt,additional:[{name:"share_code",type:"text",default:"",required:!0},{name:"receive_code",type:"text",default:"",required:!0},{name:"cookie",type:"text",default:"",required:!1},{name:"root_folder_id",type:"string",default:"0",required:!1},{name:"page_size",type:"number",default:"1000",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"115Share",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"0"}},"123PanShare":{name:"123PanShare",default_mount_path:"/123_share",common:[...Ft,Pt,Tt,Ut,...Rt("123PanShare"),Nt,er],additional:[{name:"sharekey",type:"string",default:"",required:!0},{name:"sharepassword",type:"string",default:"",required:!1},{name:"accesstoken",type:"text",default:"",required:!1},{name:"root_folder_id",type:"string",default:"0",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"123PanShare",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"0"}},AliyundriveShare:{name:"AliyundriveShare",default_mount_path:"/aliyun_share",common:mt,additional:[{name:"share_id",type:"string",default:"",required:!0},{name:"share_pwd",type:"string",default:"",required:!1},{name:"root_folder_id",type:"string",default:"root",required:!1},{name:"order_by",type:"select",options:"name,size,updated_at,created_at",default:"name",required:!1},{name:"order_direction",type:"select",options:"ASC,DESC",default:"ASC",required:!1}],config:{name:"AliyundriveShare",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"root"}},OnedriveSharelink:{name:"OnedriveSharelink",default_mount_path:"/onedrive_share",common:mt,additional:[{name:"url",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"OnedriveSharelink",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"/"}},PikPakShare:{name:"PikPakShare",default_mount_path:"/pikpak_share",common:mt,additional:[{name:"share_id",type:"string",default:"",required:!0},{name:"share_pwd",type:"string",default:"",required:!1},{name:"platform",type:"select",options:"android,web,pc",default:"web",required:!1},{name:"root_folder_id",type:"string",default:"",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"PikPakShare",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:""}},SMB:{name:"SMB",default_mount_path:"/smb",common:[...Ft,Pt,Tt,Ut,...Rt("SMB"),Nt,er],additional:[{name:"address",type:"string",default:"",required:!0},{name:"share_name",type:"string",default:"",required:!0},{name:"username",type:"string",default:"",required:!0},{name:"password",type:"string",default:"",required:!1},{name:"port",type:"number",default:"445",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!1},{name:"order_by",type:"select",options:"name,size,modified",default:"name",required:!1},{name:"order_direction",type:"select",options:"asc,desc",default:"asc",required:!1}],config:{name:"SMB",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/"}},Crypt:{name:"Crypt",default_mount_path:"/crypt",common:[...Ft,Pt,Tt,Ut,...Rt("Crypt"),Nt,er],additional:[{name:"remote_path",type:"string",default:"",required:!0,help:"\u52A0\u5BC6\u6570\u636E\u5B9E\u9645\u5B58\u50A8\u7684\u4F4D\u7F6E\uFF08\u53E6\u4E00\u4E2A\u5DF2\u6302\u8F7D\u5B58\u50A8\u7684\u8DEF\u5F84\uFF0C\u5982 /aliyundrive/enc\uFF09"},{name:"password",type:"string",default:"",required:!0,help:"\u4E3B\u5BC6\u7801\uFF08\u7528\u4E8E\u6D3E\u751F\u52A0\u5BC6\u5BC6\u94A5\uFF09"},{name:"salt",type:"string",default:"",required:!1,help:"\u76D0\uFF08\u7B2C\u4E8C\u5BC6\u7801\uFF09\u3002\u53EF\u9009\u4F46\u63A8\u8350\uFF0C\u63D0\u9AD8\u5BC6\u94A5\u5F3A\u5EA6"},{name:"filename_encryption",type:"select",options:"off,standard,obfuscate",default:"off",required:!0,help:"\u6587\u4EF6\u540D\u52A0\u5BC6\u65B9\u5F0F\u3002\u5F53\u524D\u4EC5\u652F\u6301 off\uFF08\u6587\u4EF6\u540D\u4E0D\u52A0\u5BC6\uFF0C\u4EC5\u5185\u5BB9\u52A0\u5BC6\uFF09"},{name:"directory_name_encryption",type:"select",options:"false,true",default:"false",required:!0},{name:"encrypted_suffix",type:"string",default:".bin",required:!0,help:"\u52A0\u5BC6\u6587\u4EF6\u7684\u540E\u7F00\uFF08\u9AD8\u7EA7\u9009\u9879\uFF09"},{name:"filename_encoding",type:"select",options:"base64,base32,base32768",default:"base64",required:!0},{name:"thumbnail",type:"bool",default:"false",required:!1},{name:"show_hidden",type:"bool",default:"true",required:!1}],config:{name:"Crypt",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/",no_link_url:!0,check_status:!0}},Virtual:{name:"Virtual",default_mount_path:"/virtual",common:[...Ft,Pt,Tt,Ut,...Rt("Virtual"),Nt,er],additional:[{name:"num_file",type:"number",default:"30",required:!0,help:"\u6BCF\u4E2A\u76EE\u5F55\u4E0B\u751F\u6210\u7684\u5360\u4F4D\u6587\u4EF6\u6570\u91CF"},{name:"num_folder",type:"number",default:"30",required:!0,help:"\u6BCF\u4E2A\u76EE\u5F55\u4E0B\u751F\u6210\u7684\u5360\u4F4D\u76EE\u5F55\u6570\u91CF"},{name:"max_file_size",type:"number",default:"1073741824",required:!0,help:"\u5360\u4F4D\u6587\u4EF6\u6700\u5927\u5B57\u8282\u6570"},{name:"min_file_size",type:"number",default:"1048576",required:!0,help:"\u5360\u4F4D\u6587\u4EF6\u6700\u5C0F\u5B57\u8282\u6570"}],config:{name:"Virtual",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!1,need_ms:!0,default_root:"/",no_link_url:!0}},AListV3:{name:"AListV3",default_mount_path:"/alist",common:[...Ft,Pt,Tt,Ut,...Rt("AListV3"),pl,Nt,er],additional:[{name:"url",type:"string",default:"",required:!0,help:"\u53E6\u4E00\u4E2A OpenList / AList \u5B9E\u4F8B\u7684\u5730\u5740\uFF0C\u5982 https://example.com"},{name:"meta_password",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!1},{name:"password",type:"string",default:"",required:!1},{name:"token",type:"string",default:"",required:!1,help:"\u8BBF\u95EE\u4EE4\u724C\uFF08\u53EF\u9009\uFF0C\u81EA\u52A8\u6301\u4E45\u5316\uFF0C\u65E0\u9700\u624B\u52A8\u586B\u5199\uFF09"},{name:"pass_ip_to_upsteam",type:"bool",default:"true",required:!1},{name:"pass_ua_to_upsteam",type:"bool",default:"true",required:!1},{name:"forward_archive_requests",type:"bool",default:"true",required:!1}],config:{name:"AListV3",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},UrlTree:{name:"UrlTree",default_mount_path:"/url_tree",common:mt,additional:[{name:"url_structure",type:"text",default:"",required:!0,help:"URL \u6811\u7ED3\u6784\u6587\u672C\uFF0C\u6BCF\u884C\u7F29\u8FDB 2 \u7A7A\u683C\u8868\u793A\u4E00\u7EA7\u3002\u76EE\u5F55\u884C\u4EE5 : \u7ED3\u5C3E\uFF0C\u6587\u4EF6\u884C\u683C\u5F0F [FileName:][FileSize:][Modified:]Url"},{name:"head_size",type:"bool",default:"false",required:!1,help:"\u7528 HEAD \u8BF7\u6C42\u83B7\u53D6\u6587\u4EF6\u5927\u5C0F\uFF08\u53EF\u80FD\u5931\u8D25\uFF09"},{name:"writable",type:"bool",default:"false",required:!1,help:"\u5141\u8BB8\u589E\u5220\u6539\u6587\u4EF6\u6811\uFF08\u4F1A\u6301\u4E45\u5316\u56DE url_structure\uFF09"}],config:{name:"UrlTree",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!0,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},Strm:{name:"Strm",default_mount_path:"/strm",common:[...Ft,Pt,Tt,Ut,...Rt("Strm"),Nt,er],additional:[{name:"paths",type:"text",default:"",required:!0,help:"\u8DEF\u5F84\u6620\u5C04\uFF0C\u6BCF\u884C\u4E00\u4E2A\uFF1A\u865A\u62DF\u540D:\u5E95\u5C42\u8DEF\u5F84\uFF08\u5982 movies:/aliyundrive/movies\uFF09\uFF0C\u6216\u76F4\u63A5\u5E95\u5C42\u8DEF\u5F84"},{name:"siteUrl",type:"text",default:"",required:!1,help:"strm \u6587\u4EF6\u5185\u5BB9\u7684 URL \u524D\u7F00\uFF08\u7559\u7A7A\u5219\u7528\u76F8\u5BF9\u8DEF\u5F84\uFF09"},{name:"PathPrefix",type:"text",default:"/d",required:!1,help:"\u4E0B\u8F7D\u8DEF\u5F84\u524D\u7F00"},{name:"downloadFileTypes",type:"text",default:"ass,srt,vtt,sub,strm",required:!1,help:"\u9700\u539F\u6837\u4E0B\u8F7D\u7684\u6587\u4EF6\u6269\u5C55\u540D\uFF08\u901A\u5E38\u4E3A\u5B57\u5E55\uFF09"},{name:"filterFileTypes",type:"text",default:"mp4,mkv,flv,avi,wmv,ts,rmvb,webm,mp3,flac,aac,wav,ogg,m4a,wma,alac",required:!1,help:"\u652F\u6301\u751F\u6210 strm \u7684\u6587\u4EF6\u6269\u5C55\u540D\uFF08\u89C6\u9891/\u97F3\u9891\uFF09"},{name:"encodePath",type:"bool",default:"true",required:!1},{name:"withoutUrl",type:"bool",default:"false",required:!1},{name:"withSign",type:"bool",default:"false",required:!1}],config:{name:"Strm",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!0,no_upload:!0,need_ms:!1,default_root:"/",no_link_url:!0}},AzureBlob:{name:"AzureBlob",default_mount_path:"/azure",common:mt,additional:[{name:"endpoint",type:"string",default:"",required:!0,help:"Azure \u5B58\u50A8\u7AEF\u70B9\uFF0C\u5982 https://accountname.blob.core.windows.net/"},{name:"access_key",type:"string",default:"",required:!0,help:"Azure \u5B58\u50A8\u8BBF\u95EE\u5BC6\u94A5\uFF08Base64\uFF09"},{name:"container_name",type:"string",default:"",required:!0,help:"\u5BB9\u5668\u540D\u79F0"},{name:"sign_url_expire",type:"number",default:"4",required:!1,help:"SAS URL \u6709\u6548\u671F\uFF08\u5C0F\u65F6\uFF09"}],config:{name:"AzureBlob",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/",check_status:!0}},USS:{name:"USS",default_mount_path:"/uss",common:mt,additional:[{name:"bucket",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"",required:!0,help:"\u4E0B\u8F7D\u57DF\u540D\uFF08\u53EF\u542B\u534F\u8BAE\u5934\uFF09"},{name:"operator_name",type:"string",default:"",required:!0},{name:"operator_password",type:"string",default:"",required:!0},{name:"anti_theft_chain_token",type:"string",default:"",required:!1,help:"\u9632\u76D7\u94FE Token\uFF08\u7559\u7A7A\u5219\u7528\u64CD\u4F5C\u5458\u5BC6\u7801\uFF09"},{name:"sign_url_expire",type:"number",default:"4",required:!1,help:"\u94FE\u63A5\u6709\u6548\u671F\uFF08\u5C0F\u65F6\uFF09"}],config:{name:"USS",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},Alidoc:{name:"Alidoc",default_mount_path:"/alidoc",common:mt,additional:[{name:"cookie",type:"text",default:"",required:!0,help:"\u9489\u9489\u6587\u6863\u7F51\u9875 Cookie"},{name:"root_folder_id",type:"string",default:"",required:!0,help:"\u6839\u76EE\u5F55 dentryUuid"}],config:{name:"Alidoc",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:""}},Emby:{name:"Emby",default_mount_path:"/emby",common:mt,additional:[{name:"url",type:"string",default:"",required:!0,help:"Emby \u670D\u52A1\u5668\u5730\u5740\uFF0C\u5982 http://localhost:8096"},{name:"api_key",type:"string",default:"",required:!1},{name:"user_id",type:"string",default:"",required:!1},{name:"username",type:"string",default:"",required:!1},{name:"password",type:"string",default:"",required:!1},{name:"link_method",type:"select",options:"stream,download",default:"stream",required:!1},{name:"root_folder_id",type:"string",default:"1",required:!1,help:"\u6839\u76EE\u5F55 ID\uFF0C\u9ED8\u8BA4 1"}],config:{name:"Emby",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"1"}},BunnyStorage:{name:"BunnyStorage",default_mount_path:"/bunny",common:mt,additional:[{name:"storage_zone_name",type:"string",default:"",required:!0},{name:"access_key",type:"string",default:"",required:!0},{name:"endpoint",type:"string",default:"storage.bunnycdn.com",required:!1},{name:"cdn_base_url",type:"string",default:"",required:!1},{name:"cdn_token_key",type:"string",default:"",required:!1},{name:"cdn_token_method",type:"select",options:"sha256,hmac_sha256",default:"sha256",required:!1},{name:"cdn_token_include_ip",type:"bool",default:"false",required:!1},{name:"sign_url_expire",type:"number",default:"4",required:!1,help:"\u94FE\u63A5\u6709\u6548\u671F\uFF08\u5C0F\u65F6\uFF09"},{name:"placeholder",type:"string",default:".openlist",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!0}],config:{name:"BunnyStorage",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},CloudflareImgbed:{name:"CloudflareImgbed",default_mount_path:"/cfimgbed",common:mt,additional:[{name:"address",type:"string",default:"",required:!0,help:"\u56FE\u5E8A\u670D\u52A1\u5730\u5740"},{name:"token",type:"string",default:"",required:!0},{name:"small_channel_name",type:"string",default:"",required:!1},{name:"large_channel_name",type:"string",default:"",required:!1},{name:"large_channel_type",type:"string",default:"",required:!1},{name:"upload_thread",type:"number",default:"3",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!0}],config:{name:"CloudflareImgbed",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},GuangYaPan:{name:"GuangYaPan",default_mount_path:"/guangyapan",common:mt,additional:[{name:"client_id",type:"string",default:"",required:!0},{name:"device_id",type:"string",default:"",required:!1},{name:"device_sign",type:"string",default:"",required:!1},{name:"access_token",type:"text",default:"",required:!1},{name:"refresh_token",type:"text",default:"",required:!1},{name:"phone_number",type:"string",default:"",required:!1,help:"\u624B\u673A\u53F7\uFF08\u767B\u5F55\u7528\uFF0C+86 \u683C\u5F0F\uFF09"},{name:"verify_code",type:"string",default:"",required:!1},{name:"page_size",type:"number",default:"100",required:!1},{name:"order_by",type:"number",default:"3",required:!1},{name:"sort_type",type:"number",default:"1",required:!1},{name:"root_folder_path",type:"string",default:"/",required:!0}],config:{name:"GuangYaPan",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!1,need_ms:!1,default_root:"/"}},AutoIndex:{name:"AutoIndex",default_mount_path:"/autoindex",common:mt,additional:[{name:"url",type:"string",default:"",required:!0,help:"AutoIndex \u76EE\u5F55\u9875 URL"},{name:"item_xpath",type:"string",default:"//pre/a",required:!0},{name:"name_xpath",type:"string",default:"@href",required:!0},{name:"modified_xpath",type:"string",default:"string(following-sibling::text()[2])",required:!1},{name:"size_xpath",type:"string",default:"string(following-sibling::text()[1])",required:!1},{name:"ignore_file_names",type:"text",default:`. .. Parent Directory -Up`,required:!1},{name:"modified_time_format",type:"string",default:"02-Jan-2006 15:04",required:!1}],config:{name:"AutoIndex",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:""}},ProtonDrive:{name:"ProtonDrive",default_mount_path:"/proton",common:[...Ft,Pt,Tt,Ut,...Rt("ProtonDrive"),Nt,er],additional:[{name:"email",type:"string",default:"",required:!0,help:"Proton \u8D26\u53F7\u90AE\u7BB1"},{name:"password",type:"string",default:"",required:!0,help:"Proton \u8D26\u53F7\u5BC6\u7801"},{name:"two_fa_code",type:"string",default:"",required:!1,help:"\u4E24\u6B65\u9A8C\u8BC1\u7801\uFF08\u5982\u5DF2\u542F\u7528 2FA\uFF09"},{name:"root_folder_id",type:"string",default:"root",required:!1,help:"\u6839\u6587\u4EF6\u5939 LinkID\uFF0C\u9ED8\u8BA4 root \u8868\u793A\u4E3B\u5171\u4EAB\u6839\u76EE\u5F55"},{name:"chunk_size",type:"number",default:"4",required:!1,help:"\u5206\u5757\u5927\u5C0F\uFF08MB\uFF09"},{name:"use_reusable_login",type:"bool",default:"true",required:!1}],config:{name:"ProtonDrive",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"root"}}};Ue.get("/driver/list",r=>r.json({code:200,message:"success",data:fu}));Ue.get("/driver/info",r=>{let e=r.req.query("driver")||"",t=fu[e]||fu.AliyundriveOpen;return r.json({code:200,message:"success",data:t})});Ue.get("/setting/list",async r=>{let e=await ne(r.env),t=r.req.query("group"),i=r.req.query("groups"),n=e.settings||[];if(t!==void 0){let s=parseInt(t,10);n=n.filter(o=>o.group===s)}else if(i!==void 0){let s=i.split(",").map(o=>parseInt(o,10));n=n.filter(o=>s.includes(o.group))}return r.json({code:200,message:"success",data:n})});Ue.post("/setting/save",async r=>{let e=await r.req.json().catch(()=>[]);if(!Array.isArray(e))return r.json({code:400,message:"body must be an array",data:null});let t=await ne(r.env);t.settings||(t.settings=[]);for(let n of e){if(!n||typeof n!="object"||Array.isArray(n))continue;let s=n.key;if(typeof s!="string"||s.length===0||s.length>128)continue;let o=n.value;o!==null&&typeof o=="object"&&(o=JSON.stringify(o));let a=t.settings.findIndex(c=>c.key===s);a!==-1?(t.settings[a].value=o,typeof n.group=="number"&&(t.settings[a].group=n.group)):t.settings.push({key:s,value:o,type:typeof n.type=="string"?n.type:"string",help:typeof n.help=="string"?n.help:"",group:typeof n.group=="number"?n.group:0,flag:typeof n.flag=="number"?n.flag:0})}let i=new Set;return t.settings=t.settings.filter(n=>!n.key||i.has(n.key)?!1:(i.add(n.key),!0)),await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.post("/setting/default",async r=>{let e=r.req.query("group");if(e===void 0)return r.json({code:400,message:"group is required",data:null});let t=parseInt(e,10),i=await ne(r.env);i.settings=(i.settings||[]).filter(o=>o.group!==t);let n=ac.settings.filter(o=>o.group===t),s=new Set(n.map(o=>o.key));return i.settings=i.settings.filter(o=>!s.has(o.key)),i.settings.push(...JSON.parse(JSON.stringify(n))),await fe(i,r.env),r.json({code:200,message:"success",data:n})});Ue.post("/setting/delete",async r=>{let e=r.req.query("key");if(!e)return r.json({code:400,message:"key is required",data:null});let t=await ne(r.env);return t.settings=(t.settings||[]).filter(i=>i.key!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});var Io=async(r,e,t=14)=>{let i=await ne(r);i.settings||(i.settings=[]);for(let[n,s]of Object.entries(e)){if(s===void 0)continue;let o=i.settings.findIndex(a=>a.key===n);o!==-1?i.settings[o].value=s:i.settings.push({key:n,value:s,type:"string",help:n,group:t,flag:0})}await fe(i,r)};Ue.post("/setting/set_115",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{"115_temp_dir":e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_115_open",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{"115_open_temp_dir":e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_123_pan",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{"123_pan_temp_dir":e.temp_dir||"","123_temp_dir":e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_123_open",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{"123_open_temp_dir":e.temp_dir||"","123_open_callback_url":e.callback_url||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_pikpak",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{pikpak_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_thunder",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{thunder_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_thunder_browser",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{thunder_browser_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_thunderx",async r=>{let e=await r.req.json().catch(()=>({}));return await Io(r.env,{thunderx_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/reset_token",async r=>{let e=Poe(32);await Io(r.env,{token:e});let{resetJwtSecretCache:t}=await Promise.resolve().then(()=>(Qi(),VI));return t(),r.json({code:200,message:"success",data:e})});Ue.get("/meta/list",async r=>{let t=(await ne(r.env)).metas||[];return r.json({code:200,message:"success",data:{content:t,total:t.length}})});Ue.get("/meta/get",async r=>{let e=parseInt(r.req.query("id")||"0",10),i=((await ne(r.env)).metas||[]).find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"meta not found",data:null})});Ue.post("/meta/create",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);t.metas||(t.metas=[]);let i="/"+String(e.path||"").split("/").filter(Boolean).join("/");if(!i||i==="/")return r.json({code:400,message:"path is required",data:null});if(t.metas.some(o=>o.path===i))return r.json({code:400,message:"meta already exists",data:null});let n=String(e.hide||"");if(n){let o=p2(n);if(o)return r.json({code:400,message:`invalid hide regex: ${o}`,data:null},400)}let s={id:t.metas.length?Math.max(...t.metas.map(o=>o.id))+1:1,path:i,password:e.password||"",read_users:e.read_users||[],read_users_sub:!!e.read_users_sub,write_users:e.write_users||[],write_users_sub:!!e.write_users_sub,p_sub:!!e.p_sub,write:!!e.write,w_sub:!!e.w_sub,hide:n,h_sub:!!e.h_sub,readme:e.readme||"",r_sub:!!e.r_sub,header:e.header||"",header_sub:!!e.header_sub};return t.metas.push(s),await fe(t,r.env),r.json({code:200,message:"success",data:s})});Ue.post("/meta/update",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);t.metas||(t.metas=[]);let i=t.metas.findIndex(o=>o.id===e.id);if(i===-1)return r.json({code:404,message:"meta not found",data:null});let n=e.path!==void 0?"/"+String(e.path).split("/").filter(Boolean).join("/"):t.metas[i].path;if(n&&t.metas.some(o=>o.path===n&&o.id!==e.id))return r.json({code:400,message:"meta already exists",data:null});let s=e.hide!==void 0?String(e.hide):t.metas[i].hide;if(s){let o=p2(s);if(o)return r.json({code:400,message:`invalid hide regex: ${o}`,data:null},400)}return t.metas[i]={...t.metas[i],...n?{path:n}:{},password:e.password!==void 0?e.password:t.metas[i].password,read_users:e.read_users!==void 0?e.read_users:t.metas[i].read_users,read_users_sub:e.read_users_sub!==void 0?!!e.read_users_sub:t.metas[i].read_users_sub,write_users:e.write_users!==void 0?e.write_users:t.metas[i].write_users,write_users_sub:e.write_users_sub!==void 0?!!e.write_users_sub:t.metas[i].write_users_sub,p_sub:e.p_sub!==void 0?!!e.p_sub:t.metas[i].p_sub,write:e.write!==void 0?!!e.write:t.metas[i].write,w_sub:e.w_sub!==void 0?!!e.w_sub:t.metas[i].w_sub,hide:e.hide!==void 0?e.hide:t.metas[i].hide,h_sub:e.h_sub!==void 0?!!e.h_sub:t.metas[i].h_sub,readme:e.readme!==void 0?e.readme:t.metas[i].readme,r_sub:e.r_sub!==void 0?!!e.r_sub:t.metas[i].r_sub,header:e.header!==void 0?e.header:t.metas[i].header,header_sub:e.header_sub!==void 0?!!e.header_sub:t.metas[i].header_sub},await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.post("/meta/delete",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env);return t.metas||(t.metas=[]),t.metas=t.metas.filter(i=>i.id!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.route("/user",qn);Ue.get("/kv/status",async r=>{let[e,t]=await Promise.all([bl(r.env),Jn(r.env)]);return r.json({code:200,message:"success",data:{...e,store:t}})});function e0(r){let e=r.search_index||{};return{obj_count:e.total??0,is_done:e.is_done!==!1,last_done_time:e.updated_at||null,error:e.error||""}}Ue.post("/index/build",async r=>{try{let e=await ne(r.env),t=await Jd({parent:"/",keywords:"",max_depth:20,max_results:2e3},r.env);return e.search_index={items:t.content,total:t.total,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(e,r.env),r.json({code:200,message:"success",data:e0(e)})}catch(e){return r.json({code:500,message:Ne(e),data:null},500)}});Ue.post("/index/update",async r=>{try{let e=await r.req.json().catch(()=>({})),t=Array.isArray(e.paths)?e.paths:["/"],i=Math.min(20,Math.max(0,Number(e.max_depth)||20)),n=await ne(r.env),o=(n.search_index?.items||[]).filter(c=>!t.some(l=>(c.parent||"/").startsWith(l))),a=await Jd({parent:"/",keywords:"",max_depth:i,max_results:2e3},r.env);return n.search_index={items:[...o,...a.content],total:o.length+a.total,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(n,r.env),r.json({code:200,message:"success",data:e0(n)})}catch(e){return r.json({code:500,message:Ne(e),data:null},500)}});Ue.post("/index/stop",async r=>{let e=await ne(r.env);return e.search_index&&(e.search_index.is_done=!0),await fe(e,r.env),r.json({code:200,message:"success",data:e0(e)})});Ue.post("/index/clear",async r=>{let e=await ne(r.env);return e.search_index={items:[],total:0,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(e,r.env),r.json({code:200,message:"success",data:e0(e)})});Ue.get("/index/progress",async r=>{let e=await ne(r.env);return r.json({code:200,message:"success",data:e0(e)})});Ue.post("/scan/start",async r=>{try{let e=await ne(r.env),t=await Jd({parent:"/",keywords:"",max_depth:20,max_results:2e3},r.env);return e.scan_result={items:t.content,total:t.total,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(e,r.env),r.json({code:200,message:"success",data:{obj_count:t.total,is_done:!0,last_done_time:e.scan_result.updated_at,error:""}})}catch(e){return r.json({code:500,message:Ne(e),data:null},500)}});Ue.post("/scan/stop",async r=>r.json({code:200,message:"success",data:{obj_count:0,is_done:!0,last_done_time:null,error:""}}));Ue.get("/scan/progress",async r=>{let t=(await ne(r.env)).scan_result||{};return r.json({code:200,message:"success",data:{obj_count:t.total??0,is_done:t.is_done!==!1,last_done_time:t.updated_at||null,error:t.error||""}})});Ue.get("/plugin/list",async r=>{let e=await ne(r.env);return e.plugins||(e.plugins=[]),r.json({code:200,message:"success",data:{content:e.plugins,total:e.plugins.length}})});Ue.get("/plugin/get",async r=>{let e=r.req.query("id");if(!e)return r.json({code:400,message:"id is required",data:null});let t=await ne(r.env);t.plugins||(t.plugins=[]);let i=t.plugins.find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"Plugin not found",data:null})});Ue.post("/plugin/install",async r=>{try{let e=await r.req.json(),t=e;if(e.manifest_url&&typeof e.manifest_url=="string")try{let a=await fetch(e.manifest_url);if(!a.ok)return r.json({code:400,message:`Failed to fetch plugin manifest from URL: HTTP ${a.status}`,data:null});t={...await a.json(),...e}}catch(a){return r.json({code:400,message:`Network error fetching plugin manifest: ${Ne(a,"unexpected network error")}`,data:null})}if(!t.id||!t.name)return r.json({code:400,message:"Plugin id and name are required",data:null});let i=await ne(r.env);i.plugins||(i.plugins=[]);let n=i.plugins.findIndex(a=>a.id===t.id),s=new Date().toISOString(),o={id:t.id,name:t.name,version:t.version||"1.0.0",description:t.description||"",author:t.author||"Unknown",homepage:t.homepage||"",repository:t.repository||"",icon:t.icon||"",type:t.type||"ui",enabled:t.enabled!==void 0?!!t.enabled:!0,high_privilege:!!t.high_privilege,permissions:Array.isArray(t.permissions)?t.permissions:[],entry_url:t.entry_url||"",script_content:t.script_content||"",style_content:t.style_content||"",config_schema:t.config_schema||[],config_values:t.config_values||t.default_config||{},target_hooks:t.target_hooks||["global"],is_builtin:!!t.is_builtin,tags:t.tags||[],created_at:n>=0?i.plugins[n].created_at:s,updated_at:s};return n>=0?i.plugins[n]=o:i.plugins.push(o),await fe(i,r.env),r.json({code:200,message:"Plugin installed successfully",data:o})}catch(e){return r.json({code:500,message:e.message||"Failed to install plugin",data:null})}});Ue.post("/plugin/update",async r=>{try{let e=await r.req.json();if(!e.id)return r.json({code:400,message:"Plugin id is required",data:null});let t=await ne(r.env);t.plugins||(t.plugins=[]);let i=t.plugins.findIndex(o=>o.id===e.id);if(i===-1)return r.json({code:404,message:"Plugin not found",data:null});let n=t.plugins[i],s={...n,...e,id:n.id,updated_at:new Date().toISOString()};return t.plugins[i]=s,await fe(t,r.env),r.json({code:200,message:"Plugin updated successfully",data:s})}catch(e){return r.json({code:500,message:e.message||"Failed to update plugin",data:null})}});Ue.post("/plugin/toggle",async r=>{try{let e=await r.req.json();if(!e.id)return r.json({code:400,message:"Plugin id is required",data:null});let t=await ne(r.env);t.plugins||(t.plugins=[]);let i=t.plugins.findIndex(s=>s.id===e.id);if(i===-1)return r.json({code:404,message:"Plugin not found",data:null});let n=e.enabled!==void 0?!!e.enabled:!t.plugins[i].enabled;return t.plugins[i].enabled=n,t.plugins[i].updated_at=new Date().toISOString(),await fe(t,r.env),r.json({code:200,message:n?"Plugin enabled":"Plugin disabled",data:{id:e.id,enabled:n}})}catch(e){return r.json({code:500,message:e.message||"Failed to toggle plugin",data:null})}});Ue.post("/plugin/delete",async r=>{try{let t=r.req.query("id");if(!t)try{t=(await r.req.json()).id}catch{}if(!t)return r.json({code:400,message:"Plugin id is required",data:null});let i=await ne(r.env);i.plugins||(i.plugins=[]);let n=i.plugins.length;return i.plugins=i.plugins.filter(s=>s.id!==t),i.plugins.length===n?r.json({code:404,message:"Plugin not found",data:null}):(await fe(i,r.env),r.json({code:200,message:"Plugin deleted successfully",data:null}))}catch(e){return r.json({code:500,message:e.message||"Failed to delete plugin",data:null})}});Ue.post("/plugin/batch_save",async r=>{try{let e=await r.req.json(),t=Array.isArray(e)?e:e.plugins;if(!Array.isArray(t))return r.json({code:400,message:"plugins array is required",data:null});let i=await ne(r.env);return i.plugins=t,await fe(i,r.env),r.json({code:200,message:"Plugins saved successfully",data:{count:t.length}})}catch(e){return r.json({code:500,message:e.message||"Failed to batch save plugins",data:null})}});var lO=[];Ue.post("/message/send",async r=>{let t=(await r.req.json().catch(()=>({})))?.message;return t==null||t===""?r.json({code:400,message:"message is required",data:null},400):(lO.push(String(t)),r.json({code:200,message:"success",data:null}))});Ue.post("/message/get",r=>{let e=lO.shift();return e===void 0?r.json({code:404,message:"no message",data:null},404):r.json({code:200,message:"success",data:e})});Ue.get("/audit/logs",async r=>{try{let{queryAuditLogs:e}=await Promise.resolve().then(()=>(kA(),vA)),t=r.req.query("username"),i=r.req.query("action"),n=r.req.query("method"),s=r.req.query("status"),o=r.req.query("start_date"),a=r.req.query("end_date"),c=parseInt(r.req.query("limit")||"100",10),l=e({username:t,action:i,method:n,status:s,startDate:o,endDate:a,limit:Math.min(c,1e3)});return r.json({code:200,message:"success",data:{content:l,total:l.length}})}catch(e){return r.json({code:500,message:e.message||"Failed to query audit logs",data:null},500)}});Ue.get("/audit/stats",async r=>{try{let{getAuditStats:e}=await Promise.resolve().then(()=>(kA(),vA)),t=e();return r.json({code:200,message:"success",data:t})}catch(e){return r.json({code:500,message:e.message||"Failed to get audit stats",data:null},500)}});Ue.post("/audit/cleanup",async r=>{try{let e=await r.req.json().catch(()=>({})),t=parseInt(e.retention_days||"30",10),{cleanupExpiredLogs:i}=await Promise.resolve().then(()=>(kA(),vA));return i(t),r.json({code:200,message:`Cleaned up logs older than ${t} days`,data:null})}catch(e){return r.json({code:500,message:e.message||"Failed to cleanup logs",data:null},500)}});wr();Ve();Ve();function t0(r,e){let t=r.replace(/bytes=/,"").split("-"),i=parseInt(t[0],10),n=t[1]?parseInt(t[1],10):e-1,s=n-i+1;return{start:i,end:n,chunksize:s}}Yt();Da();lc();var Uoe="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";function dO(r){let e=Roe(r.ignoreHeaders),t={...r.rawUrlHeaders||{}};return!t["User-Agent"]&&!e.has("user-agent")&&(t["User-Agent"]=Uoe),r.proxyRange&&r.rangeHeader&&!e.has("range")&&(t.Range=r.rangeHeader),t}function Roe(r){let e=Array.isArray(r)?r.join(","):r;return new Set(String(e??"").split(",").map(t=>t.trim().toLowerCase()).filter(Boolean))}function uO(r,e){return r.Range?e.status===412||e.status===200&&!e.headers.get("content-range"):!1}var Noe={pdf:"application/pdf",mp4:"video/mp4",webm:"video/webm",mkv:"video/x-matroska",mp3:"audio/mpeg",flac:"audio/flac",m3u8:"application/vnd.apple.mpegurl",ts:"video/mp2t",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml"};function fO(r){let e=r.split(".").pop()?.toLowerCase()||"";return Noe[e]||"application/octet-stream"}function AO(r){return r.replace(/[\r\n\u0000-\u001f]+/g,"")}var qoe=6*1024*1024,Ooe=(r,e)=>{let i=(r?.env||{})[e];if(i!=null)return String(i);if(typeof process<"u"&&process.env){let n=process.env[e];if(n!=null)return String(n)}return""};function Moe(r){let e=typeof globalThis<"u"?globalThis:{},t=r?.env||{},i=typeof process<"u"?process.env||{}:{};return!!(t.EDGEONE||t.EO_REGION||t.EDGEONE_BLOB||e.EDGEONE_BLOB||typeof e.EdgeOne<"u"||t.TENCENTCLOUD_SCF_FUNCTIONNAME||i.TENCENTCLOUD_SCF_FUNCTIONNAME)}function Cs(r){let e=Ooe(r,"RAW_PROXY_MAX_BYTES").trim();if(e!==""){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=0)return t}return Moe(r)?qoe:0}function Kw(r,e,t){if(!Number.isFinite(t)||t<=0||!Number.isFinite(r)||r<=0)return!1;if(e)try{return t0(e,r).chunksize>t}catch{return!1}return r>t}var Loe=new Set(["authorization","cookie"]);function Hoe(r){return r?Object.keys(r).some(e=>Loe.has(e.trim().toLowerCase())):!1}function hO(r,e,t){return Lw(t,r)||Hoe(e)}function gO(r){if(!r)return 0;let e=parseInt(r.get("content-length")||"",10);if(Number.isFinite(e)&&e>0)return e;let t=r.get("content-range")||"",i=/bytes\s+(\d+)-(\d+)\/(\d+|\*)/i.exec(t);if(i){let n=parseInt(i[1],10),s=parseInt(i[2],10);if(Number.isFinite(n)&&Number.isFinite(s)&&s>=n)return s-n+1}return 0}function ov(r){return Kw(r.size,r.range,r.payloadLimit)?r.authBound?"too-large":"redirect":"proxy"}var zw=null,Gw=null;async function Koe(){if(typeof process<"u"&&process.release?.name==="node"&&!zw)try{zw=await import("fs/promises"),Gw=(await import("fs")).createReadStream}catch{}}var Es=new Xe,Goe=r=>{try{let e=r.executionCtx;return!e||typeof e.waitUntil!="function"?void 0:{waitUntil:t=>e.waitUntil(t)}}catch{return}},zoe=new Set(["range","user-agent","accept","accept-language","referer"]);async function pO(r,e,t){let n=r,s=e;for(let o=0;o<5;o++){try{zr(n,"Proxy download",t)}catch(l){throw new Error(l?.message||"SSRF blocked: restricted destination")}let a=await fetch(n,{headers:s,redirect:"manual"}),c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){n=new URL(c,n).toString();let l={};for(let[d,u]of Object.entries(s))zoe.has(d.toLowerCase())&&u&&(l[d]=u);s=l;continue}return a}throw new Error("Proxy download blocked: too many redirects")}function Jw(r,e,t){let i=Cs(r);return`\u6587\u4EF6\u8FC7\u5927\uFF0C\u5F53\u524D\u90E8\u7F72\u5E73\u53F0\u65E0\u6CD5\u4EE3\u7406\u4E0B\u8F7D\uFF08${t} \u5B57\u8282 > \u4E0A\u9650 ${i} \u5B57\u8282 \u2248 ${(s=>Math.floor(s/1024/1024))(i)} MiB\uFF09\u3002\u5F53\u524D\u8FD0\u884C\u73AF\u5883\u5BF9\u51FD\u6570\u5355\u6B21\u8BF7\u6C42/\u54CD\u5E94 body \u6709\u786C\u4E0A\u9650\uFF08EdgeOne \u4E91\u51FD\u6570\u4E3A 6 MiB\uFF0C\u9519\u8BEF\u7801 CLOUD_FUNCTION_PAYLOAD_TOO_LARGE / HTTP 413\uFF09\uFF0C${e} \u65E0\u6CD5\u63D0\u4F9B\u53EF\u76F4\u8FDE\u7684\u4E0B\u8F7D\u94FE\u63A5\uFF08\u6216\u76F4\u94FE\u5FC5\u987B\u643A\u5E26\u79C1\u6709\u9274\u6743\u5934\uFF09\uFF0C\u53EA\u80FD\u7ECF\u670D\u52A1\u7AEF\u8F6C\u53D1\uFF0C\u56E0\u6B64\u65E0\u6CD5\u7ED5\u8FC7\u8BE5\u4E0A\u9650\u3002\u5EFA\u8BAE\uFF1A\u6539\u7528\u8FD4\u56DE\u516C\u5F00\u76F4\u94FE\u7684\u5B58\u50A8\u3001\u6216\u5728\u81EA\u6258\u7BA1\u73AF\u5883\uFF08Docker / Node\uFF09\u90E8\u7F72\uFF1B\u786E\u9700\u653E\u5F00\u9650\u5236\u53EF\u8BBE\u7F6E RAW_PROXY_MAX_BYTES=0\uFF08\u6216\u6309\u5E73\u53F0\u5B9E\u9645\u4E0A\u9650\u8C03\u6574\u8BE5\u503C\uFF09\u3002`}async function mO(r,e,t,i,n={}){let s=n.proxyRange??!1,o=n.driver??"",a=hO(o,e.raw_url_headers,n.storage),c=ov({size:Number(e.size)||0,range:s?r.req.header("Range"):void 0,payloadLimit:Cs(r),authBound:a});if(c==="redirect"){try{zr(e.raw_url,"Redirect download",i)}catch(C){return r.text(C.message||"SSRF blocked",403)}return console.warn(`[rawRouter] Falling back to 302 direct link for '${t}': ${e.size} bytes exceeds the ${Cs(r)}-byte payload limit of this runtime \u2014 native proxy would hit CLOUD_FUNCTION_PAYLOAD_TOO_LARGE`),r.redirect(e.raw_url,302)}if(c==="too-large")return console.warn(`[rawRouter] Refusing to proxy '${t}': ${e.size} bytes exceeds the ${Cs(r)}-byte payload limit of this runtime and no direct link can be handed to the browser (driver=${o}, authBound=${a})`),r.json({code:413,message:Jw(r,o||"\u8BE5\u5B58\u50A8",Number(e.size)||0),data:null},413);let l=dO({rawUrlHeaders:e.raw_url_headers,rangeHeader:r.req.header("Range"),proxyRange:s,ignoreHeaders:n.ignoreHeaders}),d;try{d=await pO(e.raw_url,l,i)}catch(C){return r.text(C.message||"SSRF blocked",403)}uO(l,d)&&(console.warn(`[rawRouter] Upstream ignored/refused Range (status=${d.status}) for '${t}', retrying without Range header...`),delete l.Range,d=await pO(e.raw_url,l,i));let u=gO(d.headers),f=ov({size:u,payloadLimit:Cs(r),authBound:a});if(f!=="proxy"){try{await d.body?.cancel()}catch{}if(console.warn(`[rawRouter] Upstream body is ${u} bytes after Range negotiation (status=${d.status}) for '${t}', which exceeds the ${Cs(r)}-byte payload limit of this runtime \u2014 refusing to stream it (decision=${f}).`),f==="redirect"){try{zr(e.raw_url,"Redirect download",i)}catch(C){return r.text(C.message||"SSRF blocked",403)}return r.redirect(e.raw_url,302)}return r.json({code:413,message:Jw(r,o||"\u8BE5\u5B58\u50A8",u),data:null},413)}r.header("Access-Control-Allow-Origin","*"),r.header("Access-Control-Allow-Methods","GET, OPTIONS, HEAD"),r.header("Access-Control-Expose-Headers","Content-Range, Accept-Ranges, Content-Length, Content-Disposition"),r.header("Content-Type",d.headers.get("content-type")||fO(t));let h=d.headers.get("content-length");h&&r.header("Content-Length",h);let g=d.headers.get("content-range");g&&r.header("Content-Range",g),r.header("Accept-Ranges",d.headers.get("accept-ranges")||"bytes");let p=d.headers.get("etag");p&&r.header("ETag",p);let I=d.headers.get("last-modified");I&&r.header("Last-Modified",I);let y=d.headers.get("cache-control");y&&r.header("Cache-Control",y);let w=d.headers.get("content-disposition");return w&&r.header("Content-Disposition",AO(w)),r.body(d.body,d.status)}function Joe(r,e){if(r.startsWith("/"))return!0;try{let t=new URL(r),i=e.req.header("host")||new URL(e.req.url).host;return t.host===i}catch{return!1}}async function joe(r,e,t,i){if(!e)return"";let n=encodeURI(t.startsWith("/")?t:"/"+t),s=e.includes("$path")?e.replace(/\$path(?!\w)/g,n):e.replace(/\/+$/,"")+n;if(Joe(s,r)&&!tO(i)&&!/[?&]sign=/.test(s))try{if((await zd(r)).enabled){let a=await QA(r,t,await DA(r));a&&(s+=(s.includes("?")?"&":"?")+"sign="+a)}}catch(o){console.warn(`[rawRouter] failed to sign down_proxy_url for '${t}': ${o?.message||o}`)}return s}Es.get("/*",async r=>{await Koe();let e=r.req.query("proxy")==="true"||r.req.path.startsWith("/p")||r.req.path.startsWith("/api/p")||r.req.path.startsWith("/sd")||r.req.path.startsWith("/api/sd"),t=r.req.path.startsWith("/p")||r.req.path.startsWith("/api/p"),i=r.req.path.replace(/^\/(?:api\/)?(?:raw|sd|d|p)(?=\/|$)/,""),n=decodeURIComponent(i);try{let s=n;if(r.req.path.startsWith("/api/sd")||r.req.path.startsWith("/sd")){let u=(r.req.header("Cookie")||"").split(";").map(p=>p.trim()).find(p=>p.startsWith("browser-password="))?.split("=").slice(1).join("=")||"",f;try{f=u?decodeURIComponent(u):""}catch{f=u}let h=r.req.query("pwd")||f,g=await Md(s,h,r.env);if(!g.ok)return r.text(g.error||"Share not found",404);if(g.virtualList||!g.realPath)return r.text("Cannot download share root",400);s=g.realPath}else if(await uN(r,s)){let d=r.req.query("sign")||"";if(!await fN(r,s,d))return r.text("sign verify failed",401)}let a=await tt(s);if(a.isVirtual||!a.physical)return r.text("Cannot download virtual directory path",400);if(a.storage){let d=(a.storage.driver||"").toLowerCase().replace(/[^a-z0-9]/g,""),u=await jn().catch(()=>({})),f=al(u.proxy_types),h=al(u.text_types),g={proxyRange:oN(a.storage),driver:a.storage.driver,storage:a.storage,ignoreHeaders:u.proxy_ignore_headers};if(t&&!Hw({storage:a.storage,driver:d,filename:s,proxyTypes:f,textTypes:h}))return console.warn(`[rawRouter] proxy not allowed for '${s}' (storage=${a.storage.id}, driver=${a.storage.driver})`),r.text("proxy not allowed",403);if(d!=="local")try{let p=yh(a.storage.addition,r.env),I=await lt(a.storage.driver,a.storage),y;try{y=await I.get(s,a.physical)}finally{await Jt(a.storage.driver,a.storage,I,Goe(r))}if(y&&y.raw_url){let w=iO(a.storage,d,e,{filename:s,proxyTypes:f});if(w.mode==="use_proxy_url"){let C=eO(a.storage);if(C){let b=await joe(r,C,s,a.storage);if(b){try{zr(b,"Redirect download",p)}catch(x){return r.text(x.message||"SSRF blocked",403)}return console.log(`[rawRouter] Redirecting download for '${s}' to configured proxy url via ${a.storage.driver}`),r.redirect(b,302)}}return console.warn(`[rawRouter] webdav_policy=use_proxy_url but down_proxy_url is empty (storage=${a.storage.id}); falling back to native proxy`),mO(r,y,s,p,g)}if(w.needsProxy)return mO(r,y,s,p,g);try{zr(y.raw_url,"Redirect download",p)}catch(C){return r.text(C.message||"SSRF blocked",403)}return console.log(`[rawRouter] Redirecting download for '${s}' via ${a.storage.driver}`),r.redirect(y.raw_url,302)}else if(typeof I.createReadStream=="function"&&y&&!y.is_dir){let w=Number(y.size)||0;if(Kw(w,r.req.header("Range"),Cs(r)))return console.warn(`[rawRouter] Refusing to stream '${s}': ${w} bytes exceeds the ${Cs(r)}-byte payload limit of this runtime.`),r.json({code:413,message:Jw(r,a.storage.driver,w),data:null},413);r.header("Access-Control-Allow-Origin","*");let C=y.size||0,b=r.req.header("Range");if(b&&C>0){let{start:x,end:_,chunksize:R}=t0(b,C),U=await I.createReadStream(a.physical,{start:x,end:_});return r.header("Content-Range",`bytes ${x}-${_}/${C}`),r.header("Accept-Ranges","bytes"),r.header("Content-Length",R.toString()),r.header("Content-Type","application/octet-stream"),r.body(U,206)}else{C>0&&r.header("Content-Length",C.toString()),r.header("Accept-Ranges","bytes"),r.header("Content-Type","application/octet-stream");let x=await I.createReadStream(a.physical);return r.body(x)}}else{let w=y?.raw_url_error||(y?.is_dir?"\u8BE5\u6761\u76EE\u662F\u6587\u4EF6\u5939\uFF0C\u4E0D\u53EF\u4F5C\u4E3A\u6587\u4EF6\u4E0B\u8F7D\u3002":"\u8BE5\u5B58\u50A8\u9A71\u52A8\u672A\u8FD4\u56DE\u4E0B\u8F7D\u94FE\u63A5\uFF08raw_url \u4E3A\u7A7A\uFF09\u3002");return r.text(`File not found or no download link available: ${s} -${w}`,404)}}catch(p){return console.error(`[rawRouter] Driver get failed for '${s}':`,p.message),r.text(`Download failed: ${Ne(p)}`,500)}}if(!zw||!Gw)return r.text("Local file streaming not supported in Edge Runtime",500);let c=await zw.stat(a.physical);if(c.isDirectory())return r.text("Cannot download directory",400);if(Kw(Number(c.size)||0,r.req.header("Range"),Cs(r)))return r.json({code:413,message:Jw(r,"local",Number(c.size)||0),data:null},413);r.header("Access-Control-Allow-Origin","*");let l=r.req.header("Range");if(l){let{start:d,end:u,chunksize:f}=t0(l,c.size),h=Gw(a.physical,{start:d,end:u});return r.header("Content-Range",`bytes ${d}-${u}/${c.size}`),r.header("Accept-Ranges","bytes"),r.header("Content-Length",f.toString()),r.header("Content-Type","application/octet-stream"),r.body(h,206)}else{r.header("Content-Length",c.size.toString()),r.header("Accept-Ranges","bytes");let d=Gw(a.physical);return r.body(d)}}catch(s){return console.error(`[rawRouter] Download 404 for '${n}':`,s.message),r.text(`Not found: ${Ne(s,"file not found")}`,404)}});wr();Ve();ic();XA();function yO(r){let e=String(r).trim();e=e.replace(/(\w+:\/\/)[^/@\s]+@/g,"$1***@"),e=e.replace(/\b(token|secret|password|passwd|pwd|api[_-]?key)\s*[=:]\s*\S+/gi,"$1=***");let t=160;return e.length>t?e.slice(0,t)+"\u2026":e}var $oe=new Set(["INVALID_COMBINATION","DRIVER_UNAVAILABLE","UNKNOWN_DRIVER","NO_STORAGE","PROXY_CONFIG","DRIVER_ERROR"]);function r0(r){return r&&$oe.has(r)?3:1}function Au(r){if(r==null)return null;let e=String(r).split(` -`).map(t=>t.trim()).find(t=>t.length>0);return e?yO(e):null}function ll(r,e=1){if(r==null)return"unknown error";let t=String(r).split(` -`).map(i=>i.trim()).filter(Boolean).slice(0,Math.max(1,e)).map(yO);return t.length?t.join(" "):"unknown error"}function IO(r){return{reason:r.message?ll(r.message,r0(r.code)):null,suggestion:r.suggestion}}var wo=new Xe,CO="https://doc.oplist.org",i0=`${CO}/ecosystem/official_worker/guide_env`,wO=`${CO}/ecosystem/official_worker/guide`;function xO(r){let e=String(r??"").trim();return e&&e!=="none"?e:null}wo.get("/env_check",async r=>{let e=r.env,t=rh(e),i=ih(e),n=zn(e),s=await Jn(e).catch(I=>({driver:"none",format:"none",available:!1,configError:String(I?.message||I)})),o=String(s?.driver??"none"),a=o==="memory",c=o!=="none"&&o!=="",l=!!s?.configError,d=s?.available!==!1,u=c&&!a&&!l&&d,f=await gh(e).catch(()=>!1),h=[],g={code:null,summary:null,message:null,suggestion:null};if(l){let I=await rc(e,{silent:!0});g={code:I.code,summary:Au(I.message),message:I.message,suggestion:I.suggestion}}if(l&&g.code==="NO_STORAGE")h.push({code:"STORAGE_UNAVAILABLE",level:"error",summary:"No storage backend available.",message:"No storage backend available.",docUrl:i0,suggestion:g.suggestion||"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto."});else if(l){let I=g.code==="INVALID_COMBINATION",y=ll(g.message||s?.configError,r0(g.code));h.push({code:I?"STORAGE_INVALID_COMBINATION":"STORAGE_CONFIG_ERROR",level:"error",summary:g.summary||(I?"Unsupported storage combination.":"Storage driver is not configured correctly."),message:I?`Unsupported storage combination: ${y}`:`Storage driver is not configured correctly: ${y}`,docUrl:wO,suggestion:g.suggestion})}else a?h.push({code:"STORAGE_MEMORY_ONLY",level:n?"error":"warning",summary:n?"In-memory storage only; data will be lost immediately.":"In-memory storage only; data will be lost on restart (fine for local dev).",message:n?"In-memory storage only; data will be lost immediately.":"In-memory storage only; data will be lost on restart (fine for local dev).",docUrl:i0,suggestion:"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto."}):c||h.push({code:"STORAGE_UNAVAILABLE",level:"error",summary:"No storage backend available.",message:"No storage backend available.",docUrl:i0,suggestion:"Bind a storage backend (D1 / KV / Blob) or set DB_DRIVER=auto."});if(c&&!a&&!l&&!d){let I=`Storage driver "${o}" is configured but not reachable${s.error?": "+ll(s.error):""}.`;h.push({code:"STORAGE_UNHEALTHY",level:"error",summary:I,message:I,docUrl:wO,suggestion:"Check the credentials/bindings of the configured driver, or set DB_DRIVER=auto."})}f||h.push({code:"JWT_SECRET_MISSING",level:n?"error":"warning",summary:"JWT_SECRET is not set.",message:"JWT_SECRET is not set.",docUrl:i0,suggestion:"Set JWT_SECRET (>=32 chars, `openssl rand -hex 32`) in your deployment variables."});let p=u&&f;return r.json({code:200,message:"success",data:{runtime:{serverless:n,platform:s?.platform??null},config:{db_format:i,db_driver:t,resolved_driver:xO(s?.driver),resolved_format:xO(s?.format)},storage:{available:u,configured:s?.configured??null,connected:s?.connected??null,platform:s?.platform??null,memory:a,error_code:g.code,summary:g.summary,error_message:g.message!==null?ll(g.message,r0(g.code)):null,suggestion:g.suggestion},jwt:{ready:f,source:f?"env-or-persisted":"none"},ready:p,issues:h,docUrl:i0}})});wo.get("/settings",async r=>{let e=await ne(r.env),t={title:"OpenList",site_title:"OpenList",version:"v4.2.3",backend:"ts-worker",announcement:"",pagination_type:"pagination",default_page_size:"20",allow_indexed:"false",allow_mounted:"true",robots_txt:`User-agent: * -Allow: /`,logo:"https://res.oplist.org/logo/logo.svg",favicon:"https://res.oplist.org/logo/logo.svg",main_color:"#1890ff",hide_storage_details:"false",hide_storage_details_in_manage_page:"false",customize_head:"",customize_body:"",text_types:"txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,yaml,toml,Makefile,mk,dockerfile,sh,pub,lock,gradle,ts,tsx,jsx,go,rs,c,cpp,h,cs,rb,swift,kt,dart,r,m,pl,pm,lua,ex,exs",audio_types:"mp3,flac,ogg,m4a,wav,opus,wma,aac,aiff,ape",video_types:"mp4,mkv,avi,mov,rmvb,webm,flv,m3u8,ts,wmv,m2ts,mpg,mpeg,3gp",image_types:"jpg,tiff,jpeg,png,gif,bmp,svg,ico,webp,avif,heic,heif,raw,cr2,nef,arw,dng",proxy_types:"",proxy_ignore_headers:"",audio_autoplay:"false",video_autoplay:"false",readme_autorender:"true",filter_readme_scripts:"true",preview_download_by_default:"false",preview_archives_by_default:"false",share_preview_download_by_default:"false",share_preview_archives_by_default:"false",share_preview:"true",share_archive_preview:"true",hide_files:"/\\.DS_Store/i",link_expiration:"0",sign_all:"false",filename_char_mapping:"{}",forward_direct_link_params:"false",ignore_direct_link_params:"",package_download:"true",offline_download:"true",ocr_api:"",privacy_regs:"",iframe_previews:"{}",external_previews:"{}",check_down_link:"false",check_update:"false",allow_guest:"true",webauthn_login_enabled:"false",sso_login_enabled:"false",sso_compatibility_mode:"false",ldap_login_enabled:"false",show_disk_usage_in_plain_text:"false",non_efs_zip_encoding:"UTF-8"},i=new Set([...Object.keys(t),"audio_cover","home_container","ldap_login_tips","search_index","settings_layout","share_icon","share_summary_content","sso_login_platform"]),n=/(secret|password|passwd|pwd|cookie|token|credential|private[_-]?key|api[_-]?key|access[_-]?key|jwt|salt|signature|webhook)/i;e.settings.forEach(a=>{if(a.key&&a.value!==void 0){if(!i.has(a.key)||n.test(a.key))return;t[a.key]=a.value,a.key==="site_title"&&(t.title=a.value)}});let s=(e.users||[]).find(a=>a.username==="guest");return!!!(s&&!s.disabled)||t.allow_guest==="false"?t.allow_guest="false":t.allow_guest="true",r.json({code:200,message:"success",data:t})});wo.get("/archive_extensions",r=>r.json({code:200,message:"success",data:["zip","rar","7z","tar","gz","bz2","xz","tar.gz","tar.bz2","tar.xz"]}));wo.get("/offline_download_tools",r=>r.json({code:200,message:"success",data:[]}));wo.get("/plugins",async r=>{let i=((await ne(r.env)).plugins||[]).filter(n=>n.enabled);return r.json({code:200,message:"success",data:i})});function Voe(r){let e=r?.ADMIN_PASS,t=typeof process<"u"?process.env?.ADMIN_PASS:"";return String(e||t||"").trim()!==""}wo.get("/init_status",async r=>{let e=await Xx(r.env),t=!1;if(e){if(Voe(r.env))try{let{getOrInitUsers:l}=await Promise.resolve().then(()=>(sl(),$q));await l(r.env)}catch(l){console.warn("[DB] init_status: ADMIN_PASS auto-initialization failed: "+(l?.message||l))}let c=((await ne(r.env)).users||[]).find(l=>l.role===2);t=!!(c&&String(c.password||"").trim()!=="")}let i=t?await gh(r.env):!1,n=null,s=null;if(!e){let a=await rc(r.env,{silent:!0});n=Au(a.message),s=a.suggestion}let o=Ah();return r.json({code:200,message:"success",data:{initialized:t,ready:i,db_trusted:nC(),storage_error:n,storage_suggestion:s,db_load_error:o?ll(o,1):null}})});wo.post("/init/setup",async r=>{let e=await r.req.json().catch(()=>({})),t=String(e.username||"admin").trim(),i=String(e.password||"").trim(),n=String(e.site_title||"").trim();if(!t)return r.json({code:400,message:"username is required",data:null},400);if(!i)return r.json({code:400,message:"password is required",data:null},400);if(i.length<4)return r.json({code:400,message:"password must be at least 4 characters",data:null},400);let s=await ne(r.env);s.users||(s.users=[]);let o=Ah();if(o){console.error("[DB] init/setup rejected: database could not be loaded from the persistence backend: "+o);let c=await rc(r.env,{silent:!0}),l=c.code||"STORAGE_READ_FAILED";return r.json({code:500,message:"database is not readable; refusing to initialize to avoid overwriting existing config",data:{code:l,summary:Au(o),reason:ll(o,r0(l)),suggestion:c.suggestion}},500)}let a=s.users.find(c=>c.role===2);if(a&&String(a.password||"").trim()!=="")return r.json({code:400,message:"system has already been initialized",data:null},400);if(await aC(r.env),a)a.username=t,await Fi(a,i);else{let c={id:1,username:t,password:"",role:2,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()};await Fi(c,i),s.users.push(c)}if(n){s.settings||(s.settings=[]);let c=s.settings.find(l=>l.key==="site_title");c?c.value=n:s.settings.push({key:"site_title",value:n,type:"string",help:"Site Title",group:1,flag:0})}return await fe(s,r.env,{force:!0}),r.json({code:200,message:"success",data:null})});wr();function Yoe(){return[{name:"list_files",description:"List files and directories in OpenList storage",inputSchema:{type:"object",properties:{path:{type:"string",description:"Storage mount path"}}}},{name:"get_system_info",description:"Fetch server hardware and storage metrics",inputSchema:{type:"object",properties:{}}}]}function Woe(){return[{uri:"openlist://storage/metrics",name:"Storage Metrics",mimeType:"application/json",description:"Current storage metrics of OpenList"}]}function Xoe(){return[{name:"summarize_directory",description:"Prompt to summarize contents of a folder",arguments:[{name:"path",description:"The folder path",required:!0}]}]}async function Zoe(r,e,t,i){try{if(e==="list_files"){let{listItems:n}=await Promise.resolve().then(()=>(Yt(),qi)),s=t?.path||"/",{content:o,provider:a}=await n(s),c=o.map(l=>({name:l.name,size:l.size,is_dir:l.is_dir,modified:l.modified}));return{jsonrpc:"2.0",result:{content:[{type:"text",text:JSON.stringify({path:s,provider:a,files:c},null,2)}],isError:!1},id:r}}if(e==="get_system_info"){let{getDb:n}=await Promise.resolve().then(()=>(Ve(),Gr)),s=await n(i);return{jsonrpc:"2.0",result:{content:[{type:"text",text:JSON.stringify({storages:s?.storages?.length??0,users:s?.users?.length??0,metas:s?.metas?.length??0,shares:s?.shares?.length??0},null,2)}],isError:!1},id:r}}return{jsonrpc:"2.0",error:{code:-32602,message:`Unknown tool: ${e}`},id:r}}catch(n){return{jsonrpc:"2.0",result:{content:[{type:"text",text:String(n?.message||n)}],isError:!0},id:r}}}async function EO(r,e,t,i){switch(r){case"tools/list":return{jsonrpc:"2.0",result:{tools:Yoe()},id:e};case"tools/call":{let n=t?.name,s=t?.arguments||{};return n?Zoe(e,n,s,i):{jsonrpc:"2.0",error:{code:-32602,message:"Missing tool name"},id:e}}case"resources/list":return{jsonrpc:"2.0",result:{resources:Woe()},id:e};case"prompts/list":return{jsonrpc:"2.0",result:{prompts:Xoe()},id:e};default:return{jsonrpc:"2.0",error:{code:-32601,message:"Method not found"},id:e}}}Qi();var n0=new Xe;n0.use("*",_i);n0.get("/sse",r=>(r.header("Content-Type","text/event-stream"),r.header("Cache-Control","no-cache"),r.header("Connection","keep-alive"),r.text(`event: endpoint +Up`,required:!1},{name:"modified_time_format",type:"string",default:"02-Jan-2006 15:04",required:!1}],config:{name:"AutoIndex",local_sort:!0,only_local:!1,only_proxy:!1,no_cache:!1,no_upload:!0,need_ms:!1,default_root:""}},ProtonDrive:{name:"ProtonDrive",default_mount_path:"/proton",common:[...Ft,Pt,Tt,Ut,...Rt("ProtonDrive"),Nt,er],additional:[{name:"email",type:"string",default:"",required:!0,help:"Proton \u8D26\u53F7\u90AE\u7BB1"},{name:"password",type:"string",default:"",required:!0,help:"Proton \u8D26\u53F7\u5BC6\u7801"},{name:"two_fa_code",type:"string",default:"",required:!1,help:"\u4E24\u6B65\u9A8C\u8BC1\u7801\uFF08\u5982\u5DF2\u542F\u7528 2FA\uFF09"},{name:"root_folder_id",type:"string",default:"root",required:!1,help:"\u6839\u6587\u4EF6\u5939 LinkID\uFF0C\u9ED8\u8BA4 root \u8868\u793A\u4E3B\u5171\u4EAB\u6839\u76EE\u5F55"},{name:"chunk_size",type:"number",default:"4",required:!1,help:"\u5206\u5757\u5927\u5C0F\uFF08MB\uFF09"},{name:"use_reusable_login",type:"bool",default:"true",required:!1}],config:{name:"ProtonDrive",local_sort:!0,only_local:!1,only_proxy:!0,no_cache:!1,no_upload:!0,need_ms:!1,default_root:"root"}}};Ue.get("/driver/list",r=>r.json({code:200,message:"success",data:Eu}));Ue.get("/driver/info",r=>{let e=r.req.query("driver")||"",t=Eu[e]||Eu.AliyundriveOpen;return r.json({code:200,message:"success",data:t})});Ue.get("/setting/list",async r=>{let e=await ne(r.env),t=r.req.query("group"),i=r.req.query("groups"),n=e.settings||[];if(t!==void 0){let s=parseInt(t,10);n=n.filter(o=>o.group===s)}else if(i!==void 0){let s=i.split(",").map(o=>parseInt(o,10));n=n.filter(o=>s.includes(o.group))}return r.json({code:200,message:"success",data:n})});Ue.post("/setting/save",async r=>{let e=await r.req.json().catch(()=>[]);if(!Array.isArray(e))return r.json({code:400,message:"body must be an array",data:null});let t=await ne(r.env);t.settings||(t.settings=[]);for(let n of e){if(!n||typeof n!="object"||Array.isArray(n))continue;let s=n.key;if(typeof s!="string"||s.length===0||s.length>128)continue;let o=n.value;o!==null&&typeof o=="object"&&(o=JSON.stringify(o));let a=t.settings.findIndex(c=>c.key===s);a!==-1?(t.settings[a].value=o,typeof n.group=="number"&&(t.settings[a].group=n.group)):t.settings.push({key:s,value:o,type:typeof n.type=="string"?n.type:"string",help:typeof n.help=="string"?n.help:"",group:typeof n.group=="number"?n.group:0,flag:typeof n.flag=="number"?n.flag:0})}let i=new Set;return t.settings=t.settings.filter(n=>!n.key||i.has(n.key)?!1:(i.add(n.key),!0)),await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.post("/setting/default",async r=>{let e=r.req.query("group");if(e===void 0)return r.json({code:400,message:"group is required",data:null});let t=parseInt(e,10),i=await ne(r.env);i.settings=(i.settings||[]).filter(o=>o.group!==t);let n=pc.settings.filter(o=>o.group===t),s=new Set(n.map(o=>o.key));return i.settings=i.settings.filter(o=>!s.has(o.key)),i.settings.push(...JSON.parse(JSON.stringify(n))),await fe(i,r.env),r.json({code:200,message:"success",data:n})});Ue.post("/setting/delete",async r=>{let e=r.req.query("key");if(!e)return r.json({code:400,message:"key is required",data:null});let t=await ne(r.env);return t.settings=(t.settings||[]).filter(i=>i.key!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});var Bo=async(r,e,t=14)=>{let i=await ne(r);i.settings||(i.settings=[]);for(let[n,s]of Object.entries(e)){if(s===void 0)continue;let o=i.settings.findIndex(a=>a.key===n);o!==-1?i.settings[o].value=s:i.settings.push({key:n,value:s,type:"string",help:n,group:t,flag:0})}await fe(i,r)};Ue.post("/setting/set_115",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{"115_temp_dir":e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_115_open",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{"115_open_temp_dir":e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_123_pan",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{"123_pan_temp_dir":e.temp_dir||"","123_temp_dir":e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_123_open",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{"123_open_temp_dir":e.temp_dir||"","123_open_callback_url":e.callback_url||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_pikpak",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{pikpak_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_thunder",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{thunder_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_thunder_browser",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{thunder_browser_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/set_thunderx",async r=>{let e=await r.req.json().catch(()=>({}));return await Bo(r.env,{thunderx_temp_dir:e.temp_dir||""}),r.json({code:200,message:"success",data:"success"})});Ue.post("/setting/reset_token",async r=>{let e=kce(32);await Bo(r.env,{token:e});let{resetJwtSecretCache:t}=await Promise.resolve().then(()=>(Fi(),pw));return t(),r.json({code:200,message:"success",data:e})});Ue.get("/meta/list",async r=>{let t=(await ne(r.env)).metas||[];return r.json({code:200,message:"success",data:{content:t,total:t.length}})});Ue.get("/meta/get",async r=>{let e=parseInt(r.req.query("id")||"0",10),i=((await ne(r.env)).metas||[]).find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"meta not found",data:null})});Ue.post("/meta/create",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);t.metas||(t.metas=[]);let i="/"+String(e.path||"").split("/").filter(Boolean).join("/");if(!i||i==="/")return r.json({code:400,message:"path is required",data:null});if(t.metas.some(o=>o.path===i))return r.json({code:400,message:"meta already exists",data:null});let n=String(e.hide||"");if(n){let o=Yb(n);if(o)return r.json({code:400,message:`invalid hide regex: ${o}`,data:null},400)}let s={id:t.metas.length?Math.max(...t.metas.map(o=>o.id))+1:1,path:i,password:e.password||"",read_users:e.read_users||[],read_users_sub:!!e.read_users_sub,write_users:e.write_users||[],write_users_sub:!!e.write_users_sub,p_sub:!!e.p_sub,write:!!e.write,w_sub:!!e.w_sub,hide:n,h_sub:!!e.h_sub,readme:e.readme||"",r_sub:!!e.r_sub,header:e.header||"",header_sub:!!e.header_sub};return t.metas.push(s),await fe(t,r.env),r.json({code:200,message:"success",data:s})});Ue.post("/meta/update",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);t.metas||(t.metas=[]);let i=t.metas.findIndex(o=>o.id===e.id);if(i===-1)return r.json({code:404,message:"meta not found",data:null});let n=e.path!==void 0?"/"+String(e.path).split("/").filter(Boolean).join("/"):t.metas[i].path;if(n&&t.metas.some(o=>o.path===n&&o.id!==e.id))return r.json({code:400,message:"meta already exists",data:null});let s=e.hide!==void 0?String(e.hide):t.metas[i].hide;if(s){let o=Yb(s);if(o)return r.json({code:400,message:`invalid hide regex: ${o}`,data:null},400)}return t.metas[i]={...t.metas[i],...n?{path:n}:{},password:e.password!==void 0?e.password:t.metas[i].password,read_users:e.read_users!==void 0?e.read_users:t.metas[i].read_users,read_users_sub:e.read_users_sub!==void 0?!!e.read_users_sub:t.metas[i].read_users_sub,write_users:e.write_users!==void 0?e.write_users:t.metas[i].write_users,write_users_sub:e.write_users_sub!==void 0?!!e.write_users_sub:t.metas[i].write_users_sub,p_sub:e.p_sub!==void 0?!!e.p_sub:t.metas[i].p_sub,write:e.write!==void 0?!!e.write:t.metas[i].write,w_sub:e.w_sub!==void 0?!!e.w_sub:t.metas[i].w_sub,hide:e.hide!==void 0?e.hide:t.metas[i].hide,h_sub:e.h_sub!==void 0?!!e.h_sub:t.metas[i].h_sub,readme:e.readme!==void 0?e.readme:t.metas[i].readme,r_sub:e.r_sub!==void 0?!!e.r_sub:t.metas[i].r_sub,header:e.header!==void 0?e.header:t.metas[i].header,header_sub:e.header_sub!==void 0?!!e.header_sub:t.metas[i].header_sub},await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.post("/meta/delete",async r=>{let e=parseInt(r.req.query("id")||"0",10),t=await ne(r.env);return t.metas||(t.metas=[]),t.metas=t.metas.filter(i=>i.id!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});Ue.route("/user",On);Ue.get("/kv/status",async r=>{let[e,t]=await Promise.all([Ul(r.env),$n(r.env)]);return r.json({code:200,message:"success",data:{...e,store:t}})});function f0(r){let e=r.search_index||{};return{obj_count:e.total??0,is_done:e.is_done!==!1,last_done_time:e.updated_at||null,error:e.error||""}}Ue.post("/index/build",async r=>{try{let e=await ne(r.env),t=await iu({parent:"/",keywords:"",max_depth:20,max_results:2e3},r.env);return e.search_index={items:t.content,total:t.total,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(e,r.env),r.json({code:200,message:"success",data:f0(e)})}catch(e){return r.json({code:500,message:Ne(e),data:null},500)}});Ue.post("/index/update",async r=>{try{let e=await r.req.json().catch(()=>({})),t=Array.isArray(e.paths)?e.paths:["/"],i=Math.min(20,Math.max(0,Number(e.max_depth)||20)),n=await ne(r.env),o=(n.search_index?.items||[]).filter(c=>!t.some(l=>(c.parent||"/").startsWith(l))),a=await iu({parent:"/",keywords:"",max_depth:i,max_results:2e3},r.env);return n.search_index={items:[...o,...a.content],total:o.length+a.total,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(n,r.env),r.json({code:200,message:"success",data:f0(n)})}catch(e){return r.json({code:500,message:Ne(e),data:null},500)}});Ue.post("/index/stop",async r=>{let e=await ne(r.env);return e.search_index&&(e.search_index.is_done=!0),await fe(e,r.env),r.json({code:200,message:"success",data:f0(e)})});Ue.post("/index/clear",async r=>{let e=await ne(r.env);return e.search_index={items:[],total:0,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(e,r.env),r.json({code:200,message:"success",data:f0(e)})});Ue.get("/index/progress",async r=>{let e=await ne(r.env);return r.json({code:200,message:"success",data:f0(e)})});Ue.post("/scan/start",async r=>{try{let e=await ne(r.env),t=await iu({parent:"/",keywords:"",max_depth:20,max_results:2e3},r.env);return e.scan_result={items:t.content,total:t.total,is_done:!0,updated_at:new Date().toISOString(),error:""},await fe(e,r.env),r.json({code:200,message:"success",data:{obj_count:t.total,is_done:!0,last_done_time:e.scan_result.updated_at,error:""}})}catch(e){return r.json({code:500,message:Ne(e),data:null},500)}});Ue.post("/scan/stop",async r=>r.json({code:200,message:"success",data:{obj_count:0,is_done:!0,last_done_time:null,error:""}}));Ue.get("/scan/progress",async r=>{let t=(await ne(r.env)).scan_result||{};return r.json({code:200,message:"success",data:{obj_count:t.total??0,is_done:t.is_done!==!1,last_done_time:t.updated_at||null,error:t.error||""}})});Ue.get("/plugin/list",async r=>{let e=await ne(r.env);return e.plugins||(e.plugins=[]),r.json({code:200,message:"success",data:{content:e.plugins,total:e.plugins.length}})});Ue.get("/plugin/get",async r=>{let e=r.req.query("id");if(!e)return r.json({code:400,message:"id is required",data:null});let t=await ne(r.env);t.plugins||(t.plugins=[]);let i=t.plugins.find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"Plugin not found",data:null})});Ue.post("/plugin/install",async r=>{try{let e=await r.req.json(),t=e;if(e.manifest_url&&typeof e.manifest_url=="string")try{let a=await fetch(e.manifest_url);if(!a.ok)return r.json({code:400,message:`Failed to fetch plugin manifest from URL: HTTP ${a.status}`,data:null});t={...await a.json(),...e}}catch(a){return r.json({code:400,message:`Network error fetching plugin manifest: ${Ne(a,"unexpected network error")}`,data:null})}if(!t.id||!t.name)return r.json({code:400,message:"Plugin id and name are required",data:null});let i=await ne(r.env);i.plugins||(i.plugins=[]);let n=i.plugins.findIndex(a=>a.id===t.id),s=new Date().toISOString(),o={id:t.id,name:t.name,version:t.version||"1.0.0",description:t.description||"",author:t.author||"Unknown",homepage:t.homepage||"",repository:t.repository||"",icon:t.icon||"",type:t.type||"ui",enabled:t.enabled!==void 0?!!t.enabled:!0,high_privilege:!!t.high_privilege,permissions:Array.isArray(t.permissions)?t.permissions:[],entry_url:t.entry_url||"",script_content:t.script_content||"",style_content:t.style_content||"",config_schema:t.config_schema||[],config_values:t.config_values||t.default_config||{},target_hooks:t.target_hooks||["global"],is_builtin:!!t.is_builtin,tags:t.tags||[],created_at:n>=0?i.plugins[n].created_at:s,updated_at:s};return n>=0?i.plugins[n]=o:i.plugins.push(o),await fe(i,r.env),r.json({code:200,message:"Plugin installed successfully",data:o})}catch(e){return r.json({code:500,message:e.message||"Failed to install plugin",data:null})}});Ue.post("/plugin/update",async r=>{try{let e=await r.req.json();if(!e.id)return r.json({code:400,message:"Plugin id is required",data:null});let t=await ne(r.env);t.plugins||(t.plugins=[]);let i=t.plugins.findIndex(o=>o.id===e.id);if(i===-1)return r.json({code:404,message:"Plugin not found",data:null});let n=t.plugins[i],s={...n,...e,id:n.id,updated_at:new Date().toISOString()};return t.plugins[i]=s,await fe(t,r.env),r.json({code:200,message:"Plugin updated successfully",data:s})}catch(e){return r.json({code:500,message:e.message||"Failed to update plugin",data:null})}});Ue.post("/plugin/toggle",async r=>{try{let e=await r.req.json();if(!e.id)return r.json({code:400,message:"Plugin id is required",data:null});let t=await ne(r.env);t.plugins||(t.plugins=[]);let i=t.plugins.findIndex(s=>s.id===e.id);if(i===-1)return r.json({code:404,message:"Plugin not found",data:null});let n=e.enabled!==void 0?!!e.enabled:!t.plugins[i].enabled;return t.plugins[i].enabled=n,t.plugins[i].updated_at=new Date().toISOString(),await fe(t,r.env),r.json({code:200,message:n?"Plugin enabled":"Plugin disabled",data:{id:e.id,enabled:n}})}catch(e){return r.json({code:500,message:e.message||"Failed to toggle plugin",data:null})}});Ue.post("/plugin/delete",async r=>{try{let t=r.req.query("id");if(!t)try{t=(await r.req.json()).id}catch{}if(!t)return r.json({code:400,message:"Plugin id is required",data:null});let i=await ne(r.env);i.plugins||(i.plugins=[]);let n=i.plugins.length;return i.plugins=i.plugins.filter(s=>s.id!==t),i.plugins.length===n?r.json({code:404,message:"Plugin not found",data:null}):(await fe(i,r.env),r.json({code:200,message:"Plugin deleted successfully",data:null}))}catch(e){return r.json({code:500,message:e.message||"Failed to delete plugin",data:null})}});Ue.post("/plugin/batch_save",async r=>{try{let e=await r.req.json(),t=Array.isArray(e)?e:e.plugins;if(!Array.isArray(t))return r.json({code:400,message:"plugins array is required",data:null});let i=await ne(r.env);return i.plugins=t,await fe(i,r.env),r.json({code:200,message:"Plugins saved successfully",data:{count:t.length}})}catch(e){return r.json({code:500,message:e.message||"Failed to batch save plugins",data:null})}});var pM=[];Ue.post("/message/send",async r=>{let t=(await r.req.json().catch(()=>({})))?.message;return t==null||t===""?r.json({code:400,message:"message is required",data:null},400):(pM.push(String(t)),r.json({code:200,message:"success",data:null}))});Ue.post("/message/get",r=>{let e=pM.shift();return e===void 0?r.json({code:404,message:"no message",data:null},404):r.json({code:200,message:"success",data:e})});Ue.get("/audit/logs",async r=>{try{let{queryAuditLogs:e}=await Promise.resolve().then(()=>(LA(),MA)),t=r.req.query("username"),i=r.req.query("action"),n=r.req.query("method"),s=r.req.query("status"),o=r.req.query("start_date"),a=r.req.query("end_date"),c=parseInt(r.req.query("limit")||"100",10),l=e({username:t,action:i,method:n,status:s,startDate:o,endDate:a,limit:Math.min(c,1e3)});return r.json({code:200,message:"success",data:{content:l,total:l.length}})}catch(e){return r.json({code:500,message:e.message||"Failed to query audit logs",data:null},500)}});Ue.get("/audit/stats",async r=>{try{let{getAuditStats:e}=await Promise.resolve().then(()=>(LA(),MA)),t=e();return r.json({code:200,message:"success",data:t})}catch(e){return r.json({code:500,message:e.message||"Failed to get audit stats",data:null},500)}});Ue.post("/audit/cleanup",async r=>{try{let e=await r.req.json().catch(()=>({})),t=parseInt(e.retention_days||"30",10),{cleanupExpiredLogs:i}=await Promise.resolve().then(()=>(LA(),MA));return i(t),r.json({code:200,message:`Cleaned up logs older than ${t} days`,data:null})}catch(e){return r.json({code:500,message:e.message||"Failed to cleanup logs",data:null},500)}});Cr();Ye();Ye();function A0(r,e){let t=r.replace(/bytes=/,"").split("-"),i=parseInt(t[0],10),n=t[1]?parseInt(t[1],10):e-1,s=n-i+1;return{start:i,end:n,chunksize:s}}Yt();Ma();Nl();xc();ef();Zu();ef();var Dce="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";function mM(r){let e=Qce(r.ignoreHeaders),t={...r.rawUrlHeaders||{}};return!t["User-Agent"]&&!e.has("user-agent")&&(t["User-Agent"]=Dce),r.proxyRange&&r.rangeHeader&&!e.has("range")&&(t.Range=r.rangeHeader),t}function Qce(r){let e=Array.isArray(r)?r.join(","):r;return new Set(String(e??"").split(",").map(t=>t.trim().toLowerCase()).filter(Boolean))}function yM(r,e){return r.Range?e.status===412||e.status===200&&!e.headers.get("content-range"):!1}var _ce={pdf:"application/pdf",mp4:"video/mp4",webm:"video/webm",mkv:"video/x-matroska",mp3:"audio/mpeg",flac:"audio/flac",m3u8:"application/vnd.apple.mpegurl",ts:"video/mp2t",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml"};function IM(r){let e=r.split(".").pop()?.toLowerCase()||"";return _ce[e]||"application/octet-stream"}function wM(r){return r.replace(/[\r\n\u0000-\u001f]+/g,"")}var Fce=6*1024*1024,Pce=(r,e)=>{let i=(r?.env||{})[e];if(i!=null)return String(i);if(typeof process<"u"&&process.env){let n=process.env[e];if(n!=null)return String(n)}return""};function Tce(r){let e=typeof globalThis<"u"?globalThis:{},t=r?.env||{},i=typeof process<"u"?process.env||{}:{};return!!(t.EDGEONE||t.EO_REGION||t.EDGEONE_BLOB||e.EDGEONE_BLOB||typeof e.EdgeOne<"u"||t.TENCENTCLOUD_SCF_FUNCTIONNAME||i.TENCENTCLOUD_SCF_FUNCTIONNAME)}function Bs(r){let e=Pce(r,"RAW_PROXY_MAX_BYTES").trim();if(e!==""){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=0)return t}return Tce(r)?Fce:0}function lx(r,e,t){if(!Number.isFinite(t)||t<=0||!Number.isFinite(r)||r<=0)return!1;if(e)try{return A0(e,r).chunksize>t}catch{return!1}return r>t}var Uce=new Set(["authorization","cookie"]);function Rce(r){return r?Object.keys(r).some(e=>Uce.has(e.trim().toLowerCase())):!1}function xM(r,e,t){return Ig(t,r)||Rce(e)}function CM(r){if(!r)return 0;let e=parseInt(r.get("content-length")||"",10);if(Number.isFinite(e)&&e>0)return e;let t=r.get("content-range")||"",i=/bytes\s+(\d+)-(\d+)\/(\d+|\*)/i.exec(t);if(i){let n=parseInt(i[1],10),s=parseInt(i[2],10);if(Number.isFinite(n)&&Number.isFinite(s)&&s>=n)return s-n+1}return 0}function Nv(r){return lx(r.size,r.range,r.payloadLimit)?r.authBound?"too-large":"redirect":"proxy"}var ux=null,dx=null;async function Nce(){if(typeof process<"u"&&process.release?.name==="node"&&!ux)try{ux=await import("fs/promises"),dx=(await import("fs")).createReadStream}catch{}}var bs=new Xe,qce=r=>{try{let e=r.executionCtx;return!e||typeof e.waitUntil!="function"?void 0:{waitUntil:t=>e.waitUntil(t)}}catch{return}},Oce=new Set(["range","user-agent","accept","accept-language","referer"]);async function EM(r,e,t){let n=r,s=e;for(let o=0;o<5;o++){try{jr(n,"Proxy download",t)}catch(l){throw new Error(l?.message||"SSRF blocked: restricted destination")}let a=await fetch(n,{headers:s,redirect:"manual"}),c=a.headers.get("location");if(a.status>=300&&a.status<400&&c){n=new URL(c,n).toString();let l={};for(let[d,u]of Object.entries(s))Oce.has(d.toLowerCase())&&u&&(l[d]=u);s=l;continue}return a}throw new Error("Proxy download blocked: too many redirects")}function fx(r,e,t){let i=Bs(r);return`\u6587\u4EF6\u8FC7\u5927\uFF0C\u5F53\u524D\u90E8\u7F72\u5E73\u53F0\u65E0\u6CD5\u4EE3\u7406\u4E0B\u8F7D\uFF08${t} \u5B57\u8282 > \u4E0A\u9650 ${i} \u5B57\u8282 \u2248 ${(s=>Math.floor(s/1024/1024))(i)} MiB\uFF09\u3002\u5F53\u524D\u8FD0\u884C\u73AF\u5883\u5BF9\u51FD\u6570\u5355\u6B21\u8BF7\u6C42/\u54CD\u5E94 body \u6709\u786C\u4E0A\u9650\uFF08EdgeOne \u4E91\u51FD\u6570\u4E3A 6 MiB\uFF0C\u9519\u8BEF\u7801 CLOUD_FUNCTION_PAYLOAD_TOO_LARGE / HTTP 413\uFF09\uFF0C${e} \u65E0\u6CD5\u63D0\u4F9B\u53EF\u76F4\u8FDE\u7684\u4E0B\u8F7D\u94FE\u63A5\uFF08\u6216\u76F4\u94FE\u5FC5\u987B\u643A\u5E26\u79C1\u6709\u9274\u6743\u5934\uFF09\uFF0C\u53EA\u80FD\u7ECF\u670D\u52A1\u7AEF\u8F6C\u53D1\uFF0C\u56E0\u6B64\u65E0\u6CD5\u7ED5\u8FC7\u8BE5\u4E0A\u9650\u3002\u5EFA\u8BAE\uFF1A\u6539\u7528\u8FD4\u56DE\u516C\u5F00\u76F4\u94FE\u7684\u5B58\u50A8\u3001\u6216\u5728\u81EA\u6258\u7BA1\u73AF\u5883\uFF08Docker / Node\uFF09\u90E8\u7F72\uFF1B\u786E\u9700\u653E\u5F00\u9650\u5236\u53EF\u8BBE\u7F6E RAW_PROXY_MAX_BYTES=0\uFF08\u6216\u6309\u5E73\u53F0\u5B9E\u9645\u4E0A\u9650\u8C03\u6574\u8BE5\u503C\uFF09\u3002`}async function BM(r,e,t,i,n={}){let s=n.proxyRange??!1,o=n.driver??"",a=xM(o,e.raw_url_headers,n.storage),c=Nv({size:Number(e.size)||0,range:s?r.req.header("Range"):void 0,payloadLimit:Bs(r),authBound:a});if(c==="redirect"){try{jr(e.raw_url,"Redirect download",i)}catch(B){return r.text(B.message||"SSRF blocked",403)}return console.warn(`[rawRouter] Falling back to 302 direct link for '${t}': ${e.size} bytes exceeds the ${Bs(r)}-byte payload limit of this runtime \u2014 native proxy would hit CLOUD_FUNCTION_PAYLOAD_TOO_LARGE`),r.redirect(e.raw_url,302)}if(c==="too-large")return console.warn(`[rawRouter] Refusing to proxy '${t}': ${e.size} bytes exceeds the ${Bs(r)}-byte payload limit of this runtime and no direct link can be handed to the browser (driver=${o}, authBound=${a})`),r.json({code:413,message:fx(r,o||"\u8BE5\u5B58\u50A8",Number(e.size)||0),data:null},413);let l=mM({rawUrlHeaders:e.raw_url_headers,rangeHeader:r.req.header("Range"),proxyRange:s,ignoreHeaders:n.ignoreHeaders}),d;try{d=await EM(e.raw_url,l,i)}catch(B){return r.text(B.message||"SSRF blocked",403)}yM(l,d)&&(console.warn(`[rawRouter] Upstream ignored/refused Range (status=${d.status}) for '${t}', retrying without Range header...`),delete l.Range,d=await EM(e.raw_url,l,i));let u=CM(d.headers),f=Nv({size:u,payloadLimit:Bs(r),authBound:a});if(f!=="proxy"){try{await d.body?.cancel()}catch{}if(console.warn(`[rawRouter] Upstream body is ${u} bytes after Range negotiation (status=${d.status}) for '${t}', which exceeds the ${Bs(r)}-byte payload limit of this runtime \u2014 refusing to stream it (decision=${f}).`),f==="redirect"){try{jr(e.raw_url,"Redirect download",i)}catch(B){return r.text(B.message||"SSRF blocked",403)}return r.redirect(e.raw_url,302)}return r.json({code:413,message:fx(r,o||"\u8BE5\u5B58\u50A8",u),data:null},413)}r.header("Access-Control-Allow-Origin","*"),r.header("Access-Control-Allow-Methods","GET, OPTIONS, HEAD"),r.header("Access-Control-Expose-Headers","Content-Range, Accept-Ranges, Content-Length, Content-Disposition"),r.header("Content-Type",d.headers.get("content-type")||IM(t));let h=d.headers.get("content-length");h&&r.header("Content-Length",h);let g=d.headers.get("content-range");g&&r.header("Content-Range",g),r.header("Accept-Ranges",d.headers.get("accept-ranges")||"bytes");let p=d.headers.get("etag");p&&r.header("ETag",p);let I=d.headers.get("last-modified");I&&r.header("Last-Modified",I);let m=d.headers.get("cache-control");m&&r.header("Cache-Control",m);let w=d.headers.get("content-disposition");return w&&r.header("Content-Disposition",wM(w)),r.body(d.body,d.status)}async function Mce(r,e,t,i){if(!e)return"";let n=Os(t),s=e.includes("$path")?e.replace(/\$path(?!\w)/g,n):e.replace(/\/+$/,"")+n;if(!AQ(i)&&!/[?&]sign=/.test(s))try{let o=await ru(r,t,await tu(r));o&&(s+=(s.includes("?")?"&":"?")+"sign="+o)}catch(o){console.warn(`[rawRouter] failed to sign down_proxy_url for '${t}': ${o?.message||o}`)}return s}bs.get("/*",async r=>{await Nce();let e=r.req.query("proxy")==="true"||r.req.path.startsWith("/p")||r.req.path.startsWith("/api/p")||r.req.path.startsWith("/sd")||r.req.path.startsWith("/api/sd"),t=r.req.path.startsWith("/p")||r.req.path.startsWith("/api/p"),i=r.req.path.replace(/^\/(?:api\/)?(?:raw|sd|d|p)(?=\/|$)/,""),n;try{n=decodeURIComponent(i)}catch{return r.text("Bad Request: malformed path encoding",400)}try{let s=n;if(r.req.path.startsWith("/api/sd")||r.req.path.startsWith("/sd")){let u=(r.req.header("Cookie")||"").split(";").map(p=>p.trim()).find(p=>p.startsWith("browser-password="))?.split("=").slice(1).join("=")||"",f;try{f=u?decodeURIComponent(u):""}catch{f=u}let h=r.req.query("pwd")||f,g=await Yd(s,h,r.env);if(!g.ok)return r.text(g.error||"Share not found",404);if(g.virtualList||!g.realPath)return r.text("Cannot download share root",400);s=g.realPath}else if(await k9(r,s)){let d=r.req.query("sign")||"";if(!await S9(r,s,d))return r.text("sign verify failed",401)}let a=await ct(s);if(a.isVirtual||!a.physical)return r.text("Cannot download virtual directory path",400);if(a.storage){let d=(a.storage.driver||"").toLowerCase().replace(/[^a-z0-9]/g,""),u=await Vn().catch(()=>({})),f=Ic(u.proxy_types),h=Ic(u.text_types),g={proxyRange:iQ(a.storage),driver:a.storage.driver,storage:a.storage,ignoreHeaders:u.proxy_ignore_headers};if(t&&!wg({storage:a.storage,driver:d,filename:s,proxyTypes:f,textTypes:h}))return console.warn(`[rawRouter] proxy not allowed for '${s}' (storage=${a.storage.id}, driver=${a.storage.driver})`),r.text("proxy not allowed",403);if(d!=="local")try{let p=Eg(a.storage.addition,r.env),I=await lt(a.storage.driver,a.storage),m;try{m=await I.get(s,a.physical)}finally{await Jt(a.storage.driver,a.storage,I,qce(r))}if(m&&m.raw_url){let w=gQ(a.storage,d,e,{filename:s,proxyTypes:f});if(w.mode==="use_proxy_url"){let B=fQ(a.storage);if(B){let C=await Mce(r,B,s,a.storage);if(C){try{jr(C,"Redirect download",p)}catch(x){return r.text(x.message||"SSRF blocked",403)}return console.log(`[rawRouter] Redirecting download for '${s}' to configured proxy url via ${a.storage.driver}`),r.redirect(C,302)}}return console.warn(`[rawRouter] webdav_policy=use_proxy_url but down_proxy_url is empty (storage=${a.storage.id}); falling back to native proxy`),BM(r,m,s,p,g)}if(w.needsProxy)return BM(r,m,s,p,g);try{jr(m.raw_url,"Redirect download",p)}catch(B){return r.text(B.message||"SSRF blocked",403)}return console.log(`[rawRouter] Redirecting download for '${s}' via ${a.storage.driver}`),r.redirect(m.raw_url,302)}else if(typeof I.createReadStream=="function"&&m&&!m.is_dir){let w=Number(m.size)||0;if(lx(w,r.req.header("Range"),Bs(r)))return console.warn(`[rawRouter] Refusing to stream '${s}': ${w} bytes exceeds the ${Bs(r)}-byte payload limit of this runtime.`),r.json({code:413,message:fx(r,a.storage.driver,w),data:null},413);r.header("Access-Control-Allow-Origin","*");let B=m.size||0,C=r.req.header("Range");if(C&&B>0){let{start:x,end:Q,chunksize:R}=A0(C,B),U=await I.createReadStream(a.physical,{start:x,end:Q});return r.header("Content-Range",`bytes ${x}-${Q}/${B}`),r.header("Accept-Ranges","bytes"),r.header("Content-Length",R.toString()),r.header("Content-Type","application/octet-stream"),r.body(U,206)}else{B>0&&r.header("Content-Length",B.toString()),r.header("Accept-Ranges","bytes"),r.header("Content-Type","application/octet-stream");let x=await I.createReadStream(a.physical);return r.body(x)}}else{let w=m?.raw_url_error||(m?.is_dir?"\u8BE5\u6761\u76EE\u662F\u6587\u4EF6\u5939\uFF0C\u4E0D\u53EF\u4F5C\u4E3A\u6587\u4EF6\u4E0B\u8F7D\u3002":"\u8BE5\u5B58\u50A8\u9A71\u52A8\u672A\u8FD4\u56DE\u4E0B\u8F7D\u94FE\u63A5\uFF08raw_url \u4E3A\u7A7A\uFF09\u3002");return r.text(`File not found or no download link available: ${s} +${w}`,404)}}catch(p){return console.error(`[rawRouter] Driver get failed for '${s}':`,p.message),r.text(`Download failed: ${Ne(p)}`,500)}}if(!ux||!dx)return r.text("Local file streaming not supported in Edge Runtime",500);let c=await ux.stat(a.physical);if(c.isDirectory())return r.text("Cannot download directory",400);if(lx(Number(c.size)||0,r.req.header("Range"),Bs(r)))return r.json({code:413,message:fx(r,"local",Number(c.size)||0),data:null},413);r.header("Access-Control-Allow-Origin","*");let l=r.req.header("Range");if(l){let{start:d,end:u,chunksize:f}=A0(l,c.size),h=dx(a.physical,{start:d,end:u});return r.header("Content-Range",`bytes ${d}-${u}/${c.size}`),r.header("Accept-Ranges","bytes"),r.header("Content-Length",f.toString()),r.header("Content-Type","application/octet-stream"),r.body(h,206)}else{r.header("Content-Length",c.size.toString()),r.header("Accept-Ranges","bytes");let d=dx(a.physical);return r.body(d)}}catch(s){return console.error(`[rawRouter] Download 404 for '${n}':`,s.message),r.text(`Not found: ${Ne(s,"file not found")}`,404)}});Cr();Ye();gc();d0();function bM(r){let e=String(r).trim();e=e.replace(/(\w+:\/\/)[^/@\s]+@/g,"$1***@"),e=e.replace(/\b(token|secret|password|passwd|pwd|api[_-]?key)\s*[=:]\s*\S+/gi,"$1=***");let t=160;return e.length>t?e.slice(0,t)+"\u2026":e}var Lce=new Set(["INVALID_COMBINATION","DRIVER_UNAVAILABLE","UNKNOWN_DRIVER","NO_STORAGE","PROXY_CONFIG","DRIVER_ERROR"]);function h0(r){return r&&Lce.has(r)?3:1}function Bu(r){if(r==null)return null;let e=String(r).split(` +`).map(t=>t.trim()).find(t=>t.length>0);return e?bM(e):null}function ml(r,e=1){if(r==null)return"unknown error";let t=String(r).split(` +`).map(i=>i.trim()).filter(Boolean).slice(0,Math.max(1,e)).map(bM);return t.length?t.join(" "):"unknown error"}function vM(r){return{reason:r.message?ml(r.message,h0(r.code)):null,suggestion:r.suggestion}}var bo=new Xe,DM="https://doc.oplist.org",g0=`${DM}/ecosystem/official_worker/guide_env`,kM=`${DM}/ecosystem/official_worker/guide`;function SM(r){let e=String(r??"").trim();return e&&e!=="none"?e:null}function qv(){return"No storage binding was detected (auto probes every driver). Bind one and redeploy \u2014 Cloudflare: D1 or KV namespace; EdgeOne: Blob; ESA: ESA_BLOB."}bo.get("/env_check",async r=>{let e=r.env,t=tg(e),i=rg(e),n=Ac(e),s=jn(e),o=await $n(e).catch(m=>({driver:"none",format:"none",available:!1,configError:String(m?.message||m)})),a=await ng(e),c=String(o?.driver??"none"),l=c==="memory",d=c!=="none"&&c!=="",u=!!o?.configError,f=o?.available!==!1,h=await yg(e).catch(()=>!1),g=[],p={code:null,summary:null,message:null,suggestion:null};if(u){let m=await hc(e,{silent:!0});p={code:m.code,summary:Bu(m.message),message:m.message,suggestion:m.suggestion}}if(u&&p.code==="NO_STORAGE")g.push({code:"STORAGE_UNAVAILABLE",level:"error",summary:"No storage backend available.",message:"No storage backend available.",docUrl:g0,suggestion:p.suggestion||qv()});else if(u){let m=p.code==="INVALID_COMBINATION",w=ml(p.message||o?.configError,h0(p.code));g.push({code:m?"STORAGE_INVALID_COMBINATION":"STORAGE_CONFIG_ERROR",level:"error",summary:p.summary||(m?"Unsupported storage combination.":"Storage driver is not configured correctly."),message:m?`Unsupported storage combination: ${w}`:`Storage driver is not configured correctly: ${w}`,docUrl:kM,suggestion:p.suggestion})}else l?g.push({code:"STORAGE_MEMORY_ONLY",level:s?"error":"warning",summary:s?"In-memory storage only; data will be lost immediately.":"In-memory storage only; data will be lost on restart (fine for local dev).",message:s?"In-memory storage only; data will be lost immediately.":"In-memory storage only; data will be lost on restart (fine for local dev).",docUrl:g0,suggestion:qv()}):d||g.push({code:"STORAGE_UNAVAILABLE",level:"error",summary:"No storage backend available.",message:"No storage backend available.",docUrl:g0,suggestion:qv()});if(d&&!l&&!u&&!f){let m=`Storage driver "${c}" is configured but not reachable${o.error?": "+ml(o.error):""}.`;g.push({code:"STORAGE_UNHEALTHY",level:"error",summary:m,message:m,docUrl:kM,suggestion:`Check the credentials/bindings for "${c}" (it resolved, but its health check failed).`})}h||g.push({code:"JWT_SECRET_MISSING",level:"warning",summary:"JWT_SECRET is not set.",message:"JWT_SECRET is not set. If storage is available, a secret is generated and persisted automatically during setup; setting it explicitly is recommended so that all instances and cold starts share one key.",docUrl:g0,suggestion:"Set JWT_SECRET (32+ chars recommended, `openssl rand -hex 32`) in your deployment variables \u2014 or leave it empty and let setup generate one (requires working storage)."});let I=a;return r.json({code:200,message:"success",data:{runtime:{serverless:s,platform:o?.platform??null},config:{db_format:i,db_driver:t,db_cipher:n,resolved_driver:SM(o?.driver),resolved_format:SM(o?.format)},storage:{available:a,configured:o?.configured??null,connected:o?.connected??null,platform:o?.platform??null,memory:l,error_code:p.code,summary:p.summary,error_message:p.message!==null?ml(p.message,h0(p.code)):null,suggestion:p.suggestion},jwt:{ready:h,source:h?"env-or-persisted":"none"},ready:I,issues:g,docUrl:g0}})});bo.get("/settings",async r=>{let e=await ne(r.env),t={title:"OpenList",site_title:"OpenList",version:"v4.2.3",backend:"ts-worker",announcement:"",pagination_type:"pagination",default_page_size:"20",allow_indexed:"false",allow_mounted:"true",robots_txt:`User-agent: * +Allow: /`,logo:"https://res.oplist.org/logo/logo.svg",favicon:"https://res.oplist.org/logo/logo.svg",main_color:"#1890ff",hide_storage_details:"false",hide_storage_details_in_manage_page:"false",customize_head:"",customize_body:"",text_types:"txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,yaml,toml,Makefile,mk,dockerfile,sh,pub,lock,gradle,ts,tsx,jsx,go,rs,c,cpp,h,cs,rb,swift,kt,dart,r,m,pl,pm,lua,ex,exs",audio_types:"mp3,flac,ogg,m4a,wav,opus,wma,aac,aiff,ape",video_types:"mp4,mkv,avi,mov,rmvb,webm,flv,m3u8,ts,wmv,m2ts,mpg,mpeg,3gp",image_types:"jpg,tiff,jpeg,png,gif,bmp,svg,ico,webp,avif,heic,heif,raw,cr2,nef,arw,dng",proxy_types:"",proxy_ignore_headers:"",audio_autoplay:"false",video_autoplay:"false",readme_autorender:"true",filter_readme_scripts:"true",preview_download_by_default:"false",preview_archives_by_default:"false",share_preview_download_by_default:"false",share_preview_archives_by_default:"false",share_preview:"true",share_archive_preview:"true",hide_files:"/\\.DS_Store/i",link_expiration:"0",sign_all:"false",filename_char_mapping:"{}",forward_direct_link_params:"false",ignore_direct_link_params:"",package_download:"true",offline_download:"true",ocr_api:"",privacy_regs:"",iframe_previews:"{}",external_previews:"{}",check_down_link:"false",check_update:"false",allow_guest:"true",webauthn_login_enabled:"false",sso_login_enabled:"false",sso_compatibility_mode:"false",ldap_login_enabled:"false",show_disk_usage_in_plain_text:"false",non_efs_zip_encoding:"UTF-8"},i=new Set([...Object.keys(t),"audio_cover","home_container","ldap_login_tips","search_index","settings_layout","share_icon","share_summary_content","sso_login_platform"]),n=/(secret|password|passwd|pwd|cookie|token|credential|private[_-]?key|api[_-]?key|access[_-]?key|jwt|salt|signature|webhook)/i;e.settings.forEach(a=>{if(a.key&&a.value!==void 0){if(!i.has(a.key)||n.test(a.key))return;t[a.key]=a.value,a.key==="site_title"&&(t.title=a.value)}});let s=(e.users||[]).find(a=>a.username==="guest");return!!!(s&&!s.disabled)||t.allow_guest==="false"?t.allow_guest="false":t.allow_guest="true",r.json({code:200,message:"success",data:t})});bo.get("/archive_extensions",r=>r.json({code:200,message:"success",data:["zip","rar","7z","tar","gz","bz2","xz","tar.gz","tar.bz2","tar.xz"]}));bo.get("/offline_download_tools",r=>r.json({code:200,message:"success",data:[]}));bo.get("/plugins",async r=>{let i=((await ne(r.env)).plugins||[]).filter(n=>n.enabled);return r.json({code:200,message:"success",data:i})});function Hce(r){let e=r?.ADMIN_PASS,t=typeof process<"u"?process.env?.ADMIN_PASS:"";return String(e||t||"").trim()!==""}bo.get("/init_status",async r=>{let e=await ng(r.env),t=!1;if(e){if(Hce(r.env))try{let{getOrInitUsers:l}=await Promise.resolve().then(()=>(gl(),dM));await l(r.env)}catch(l){console.warn("[DB] init_status: ADMIN_PASS auto-initialization failed: "+(l?.message||l))}let c=((await ne(r.env)).users||[]).find(l=>l.role===2);t=!!(c&&String(c.password||"").trim()!=="")}let i=t?await yg(r.env):!1,n=null,s=null;if(!e){let a=await hc(r.env,{silent:!0});n=Bu(a.message),s=a.suggestion}let o=pg();return r.json({code:200,message:"success",data:{initialized:t,ready:i,db_trusted:_C(),storage_error:n,storage_suggestion:s,db_load_error:o?ml(o,1):null}})});bo.post("/init/setup",async r=>{let e=await r.req.json().catch(()=>({})),t=String(e.username||"admin").trim(),i=String(e.password||"").trim(),n=String(e.site_title||"").trim();if(!t)return r.json({code:400,message:"username is required",data:null},400);if(!i)return r.json({code:400,message:"password is required",data:null},400);if(i.length<4)return r.json({code:400,message:"password must be at least 4 characters",data:null},400);let s=await ne(r.env);s.users||(s.users=[]);let o=pg();if(o){console.error("[DB] init/setup rejected: database could not be loaded from the persistence backend: "+o);let c=await hc(r.env,{silent:!0}),l=c.code||"STORAGE_READ_FAILED";return r.json({code:500,message:"database is not readable; refusing to initialize to avoid overwriting existing config",data:{code:l,summary:Bu(o),reason:ml(o,h0(l)),suggestion:c.suggestion}},500)}let a=s.users.find(c=>c.role===2);if(a&&String(a.password||"").trim()!=="")return r.json({code:400,message:"system has already been initialized",data:null},400);if(await UC(r.env),a)a.username=t,await Ti(a,i);else{let c={id:1,username:t,password:"",role:2,permission:0,base_path:"/",disabled:!1,sso_id:"",allow_ldap:!1,pwd_update_at:new Date().toISOString()};await Ti(c,i),s.users.push(c)}if(n){s.settings||(s.settings=[]);let c=s.settings.find(l=>l.key==="site_title");c?c.value=n:s.settings.push({key:"site_title",value:n,type:"string",help:"Site Title",group:1,flag:0})}return await fe(s,r.env,{force:!0}),r.json({code:200,message:"success",data:null})});Cr();function Kce(){return[{name:"list_files",description:"List files and directories in OpenList storage",inputSchema:{type:"object",properties:{path:{type:"string",description:"Storage mount path"}}}},{name:"get_system_info",description:"Fetch server hardware and storage metrics",inputSchema:{type:"object",properties:{}}}]}function Gce(){return[{uri:"openlist://storage/metrics",name:"Storage Metrics",mimeType:"application/json",description:"Current storage metrics of OpenList"}]}function zce(){return[{name:"summarize_directory",description:"Prompt to summarize contents of a folder",arguments:[{name:"path",description:"The folder path",required:!0}]}]}async function Jce(r,e,t,i){try{if(e==="list_files"){let{listItems:n}=await Promise.resolve().then(()=>(Yt(),Mi)),s=t?.path||"/",{content:o,provider:a}=await n(s),c=o.map(l=>({name:l.name,size:l.size,is_dir:l.is_dir,modified:l.modified}));return{jsonrpc:"2.0",result:{content:[{type:"text",text:JSON.stringify({path:s,provider:a,files:c},null,2)}],isError:!1},id:r}}if(e==="get_system_info"){let{getDb:n}=await Promise.resolve().then(()=>(Ye(),Jr)),s=await n(i);return{jsonrpc:"2.0",result:{content:[{type:"text",text:JSON.stringify({storages:s?.storages?.length??0,users:s?.users?.length??0,metas:s?.metas?.length??0,shares:s?.shares?.length??0},null,2)}],isError:!1},id:r}}return{jsonrpc:"2.0",error:{code:-32602,message:`Unknown tool: ${e}`},id:r}}catch(n){return{jsonrpc:"2.0",result:{content:[{type:"text",text:String(n?.message||n)}],isError:!0},id:r}}}async function QM(r,e,t,i){switch(r){case"tools/list":return{jsonrpc:"2.0",result:{tools:Kce()},id:e};case"tools/call":{let n=t?.name,s=t?.arguments||{};return n?Jce(e,n,s,i):{jsonrpc:"2.0",error:{code:-32602,message:"Missing tool name"},id:e}}case"resources/list":return{jsonrpc:"2.0",result:{resources:Gce()},id:e};case"prompts/list":return{jsonrpc:"2.0",result:{prompts:zce()},id:e};default:return{jsonrpc:"2.0",error:{code:-32601,message:"Method not found"},id:e}}}Fi();var p0=new Xe;p0.use("*",Pi);p0.get("/sse",r=>(r.header("Content-Type","text/event-stream"),r.header("Cache-Control","no-cache"),r.header("Connection","keep-alive"),r.text(`event: endpoint data: /api/mcp/messages -`)));n0.post("/messages",async r=>{let e=await r.req.json().catch(()=>({})),{method:t,id:i,params:n}=e;if(!t)return r.json({jsonrpc:"2.0",error:{code:-32600,message:"Invalid Request"},id:i||null},400);let s=await EO(t,i,n,r.env),o=s.error?404:200;return r.json(s,o)});wr();Ve();bA();var av=new Xe;av.get("/info",async r=>{let e=await Kd(r),t=await ne(r.env),i={runtime:"Cloudflare Workers / Edge",timestamp:new Date().toISOString(),store:await Jn(r.env)};return e&&(i.db_state={storages_count:t.storages?.length||0,users_count:t.users?.length||0,metas_count:t.metas?.length||0,settings_count:t.settings?.length||0}),r.json({code:200,message:"OpenList debug profile generated",data:i})});wr();Ve();Qi();var ei=new Xe;function eae(r){let t=(r||"").replace(/\\/g,"/").replace(/\/+/g,"/").split("/").filter(i=>i&&i!==".");if(t.some(i=>i===".."))throw new Error("Path traversal segment '..' is not allowed");return"/"+t.join("/")}ei.use("/list",_i);ei.use("/get",_i);ei.use("/update",_i);ei.use("/delete",_i);ei.use("/cancel",_i);ei.use("/enable",_i);ei.use("/disable",_i);ei.get("/list",async r=>{let t=(await ne(r.env)).shares||[];return r.json({code:200,message:"success",data:{content:t,total:t.length}})});ei.get("/get",async r=>{let e=r.req.query("id")||"",i=((await ne(r.env)).shares||[]).find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"share not found",data:null})});ei.post("/create",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);if(!ms(e)&&!_a(e,Qa.SHARE))return r.json({code:403,message:"Permission denied",data:null},403);let t=await r.req.json().catch(()=>({})),i=await ne(r.env),n=[];if(Array.isArray(t.files))try{n=t.files.map(c=>{let l=eae(String(c));return ms(e)?l:We(e,l)})}catch(c){return r.json({code:400,message:c.message||"Invalid file path",data:null},400)}let s=t.id?String(t.id).trim():"";if(s&&!/^[a-zA-Z0-9_-]{1,64}$/.test(s))return r.json({code:400,message:"Invalid share id format (only alphanumeric, _ and - allowed, max 64 chars)",data:null},400);let o=s||tae();if((i.shares||[]).some(c=>c.id===o))return r.json({code:400,message:"share id already exists",data:null},400);let a={id:o,new_id:t.new_id||o,creator:t.creator||e.username||"user",creator_role:t.creator_role!==void 0?t.creator_role:e.role??1,accessed:t.accessed??0,expires:t.expires||null,pwd:t.pwd||"",max_accessed:t.max_accessed??0,disabled:t.disabled??!1,order_by:t.order_by||"",order_direction:t.order_direction||"",extract_folder:t.extract_folder||"",files:n,remark:t.remark||"",readme:t.readme||"",header:t.header||""};return i.shares||(i.shares=[]),i.shares.push(a),await fe(i,r.env),r.json({code:200,message:"success",data:a})});function tae(){return crypto.randomUUID().replace(/-/g,"").slice(0,16)}ei.post("/update",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);if(!e.id)return r.json({code:400,message:"share id is required",data:null});let i=(t.shares||[]).findIndex(s=>s.id===e.id);if(i===-1)return r.json({code:404,message:"share not found",data:null});let n=e.new_id&&String(e.new_id).trim()!==""?String(e.new_id).trim():e.id;return n!==e.id&&(t.shares||[]).some(o=>o.id===n&&o.id!==e.id)?r.json({code:400,message:"share id already exists",data:null}):(t.shares[i]={...t.shares[i],id:n,new_id:n,expires:e.expires!==void 0?e.expires:t.shares[i].expires,pwd:e.pwd!==void 0?e.pwd:t.shares[i].pwd,max_accessed:e.max_accessed!==void 0?e.max_accessed:t.shares[i].max_accessed,disabled:e.disabled!==void 0?e.disabled:t.shares[i].disabled,order_by:e.order_by!==void 0?e.order_by:t.shares[i].order_by,order_direction:e.order_direction!==void 0?e.order_direction:t.shares[i].order_direction,extract_folder:e.extract_folder!==void 0?e.extract_folder:t.shares[i].extract_folder,files:e.files!==void 0?e.files:t.shares[i].files,remark:e.remark!==void 0?e.remark:t.shares[i].remark,readme:e.readme!==void 0?e.readme:t.shares[i].readme,header:e.header!==void 0?e.header:t.shares[i].header},await fe(t,r.env),r.json({code:200,message:"success",data:null}))});ei.post("/delete",async r=>{let e=r.req.query("id")||"",t=await ne(r.env);return t.shares||(t.shares=[]),t.shares=t.shares.filter(i=>i.id!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});ei.post("/enable",async r=>{let e=r.req.query("id")||"",t=await ne(r.env),i=(t.shares||[]).find(n=>n.id===e);return i&&(i.disabled=!1,await fe(t,r.env)),r.json({code:200,message:"success",data:null})});ei.post("/disable",async r=>{let e=r.req.query("id")||"",t=await ne(r.env),i=(t.shares||[]).find(n=>n.id===e);return i&&(i.disabled=!0,await fe(t,r.env)),r.json({code:200,message:"success",data:null})});wr();Ve();Yt();Qi();var Pi=new Xe;Pi.all("/refresh",async(r,e)=>await c2(r)?e():_i(r,e),async r=>{let e=await ne(r.env),t=0,i=0,n=[];for(let s of e.storages||[])if(!s.disabled)try{let o=await lt(s.driver,s);if(await o.init?.(),typeof o.checkCookieValid=="function"&&/lanzou/i.test(String(s.driver))){let a=await o.checkCookieValid();if(!a.valid){s.status="cookie_expired",i++,n.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"cookie_expired",error:a.error||"Cookie expired"});continue}}s.status="work",t++,n.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"ok"})}catch(o){i++,n.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"failed",error:o?.message||String(o)})}return await fe(e,r.env),i>0?r.json({code:500,message:`token refresh failed: ${i}/${t+i} storage(s) failed`,data:{refreshed:t,failed:i,total:e.storages?.length||0,results:n}},500):r.json({code:200,message:"token refresh executed",data:{refreshed:t,failed:i,total:e.storages?.length||0,results:n}})});var dl={upload:[],copy:[],move:[],offline_download:[]};Pi.use("*",_i);Pi.get("/:type/:state",r=>{let e=r.req.param("type"),t=r.req.param("state"),n=(dl[e]||[]).filter(s=>t==="done"?s.done:!s.done);return r.json({code:200,message:"success",data:n})});Pi.post("/:type/clear_done",r=>{let e=r.req.param("type");return dl[e]&&(dl[e]=dl[e].filter(t=>!t.done)),r.json({code:200,message:"success",data:null})});Pi.post("/:type/clear_succeeded",r=>{let e=r.req.param("type");return dl[e]&&(dl[e]=dl[e].filter(t=>t.state!=="succeeded")),r.json({code:200,message:"success",data:null})});var ul=r=>r.json({code:501,message:"task lifecycle operations (retry/cancel/delete) are not supported in the TS Worker runtime; file operations execute synchronously and do not produce persistent tasks",data:null},501);Pi.post("/:type/retry_failed",ul);Pi.post("/:type/retry",ul);Pi.post("/:type/retry_some",ul);Pi.post("/:type/cancel",ul);Pi.post("/:type/cancel_some",ul);Pi.post("/:type/delete",ul);Pi.post("/:type/delete_some",ul);wr();Ao();Ve();Qi();sl();XA();var jw=new Xe,rae=300*1e3,cv=new Map;function ti(r,e,t=""){let i=(r.settings||[]).find(n=>n.key===e);return!i||i.value===void 0||i.value===null?t:String(i.value)}function s0(r,e){let t=ti(r,e,"false");return t==="true"||t==="1"}function vO(r){return r.req.header("CF-Connecting-IP")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown"}function hu(r){try{return new URL(r.req.url).origin}catch{return"http://localhost"}}function iae(r,e){let t=new Uint8Array(16);crypto.getRandomValues(t);let i=Array.from(t,n=>n.toString(16).padStart(2,"0")).join("");return cv.set(`${r}_${i}`,{ip:e,exp:Date.now()+rae}),i}function nae(r,e,t){let i=`${r}_${t}`,n=cv.get(i);return n?(cv.delete(i),n.ip===e&&n.exp>Date.now()):!1}function kO(r,e,t,i,n){switch(r){case"Github":return{authUrl:"https://github.com/login/oauth/authorize",tokenUrl:"https://github.com/login/oauth/access_token",userUrl:"https://api.github.com/user",scope:n||"read:user",authField:"code",idField:"id",usernameField:"login"};case"Microsoft":return{authUrl:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",tokenUrl:"https://login.microsoftonline.com/common/oauth2/v2.0/token",userUrl:"https://graph.microsoft.com/v1.0/me",scope:n||"user.read",authField:"code",idField:"id",usernameField:"displayName",extraAuth:{response_mode:"query"},extraForm:{grant_type:"authorization_code"}};case"Google":return{authUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scope:n||"https://www.googleapis.com/auth/userinfo.profile",authField:"code",idField:"id",usernameField:"name",extraForm:{grant_type:"authorization_code"}};case"Dingtalk":return{authUrl:"https://login.dingtalk.com/oauth2/auth",tokenUrl:"https://api.dingtalk.com/v1.0/oauth2/userAccessToken",userUrl:"https://api.dingtalk.com/v1.0/contact/users/me",scope:n||"openid",authField:"authCode",idField:"unionId",usernameField:"nick",extraAuth:{prompt:"consent"},tokenStyle:"json"};case"Casdoor":return{authUrl:(e||"").replace(/\/login\/oauth\/authorize$/,"")+"/login/oauth/authorize",tokenUrl:(t||"").replace(/\/api\/login\/oauth\/access_token$/,"")+"/api/login/oauth/access_token",userUrl:(i||"").replace(/\/api\/userinfo$/,"")+"/api/userinfo",scope:n||"profile",authField:"code",idField:"sub",usernameField:"preferred_username",extraForm:{grant_type:"authorization_code"}};case"OIDC":return null;default:return null}}async function SO(r){let e=r.endsWith("/.well-known/openid-configuration")?r:r.replace(/\/+$/,"")+"/.well-known/openid-configuration",t=await fetch(e,{headers:{Accept:"application/json"}});if(!t.ok)throw new Error(`OIDC discovery failed: HTTP ${t.status}`);let i=await t.json();if(!i.authorization_endpoint||!i.token_endpoint)throw new Error("OIDC discovery returned incomplete metadata");return{authUrl:i.authorization_endpoint,tokenUrl:i.token_endpoint,userUrl:i.userinfo_endpoint||""}}async function sae(r,e){let t={id:r.id,username:r.username,role:r.role,exp:Math.floor(Date.now()/1e3)+604800,jti:typeof crypto.randomUUID=="function"?crypto.randomUUID():du()},i=await kr(e);return await fo(t,i)}async function oae(r,e,t){let i=e||t;r.users.some(o=>o.username===i)&&(i=`${i}_${t}`);let s={id:r.users.length?Math.max(...r.users.map(o=>Number(o.id)||0))+1:1,username:i,password:"",role:0,permission:0,base_path:"/",disabled:!1,sso_id:t,allow_ldap:!1,pwd_update_at:new Date().toISOString()};return await Fi(s,du()),r.users.push(s),await fe(r,r.env),s}function BO(r,e){let t=String(e).replace(/</g,"\\u003c").replace(/>/g,"\\u003e");return`<!DOCTYPE html> +`)));p0.post("/messages",async r=>{let e=await r.req.json().catch(()=>({})),{method:t,id:i,params:n}=e;if(!t)return r.json({jsonrpc:"2.0",error:{code:-32600,message:"Invalid Request"},id:i||null},400);let s=await QM(t,i,n,r.env),o=s.error?404:200;return r.json(s,o)});Cr();Ye();OA();var Ov=new Xe;Ov.get("/info",async r=>{let e=await Zd(r),t=await ne(r.env),i={runtime:"Cloudflare Workers / Edge",timestamp:new Date().toISOString(),store:await $n(r.env)};return e&&(i.db_state={storages_count:t.storages?.length||0,users_count:t.users?.length||0,metas_count:t.metas?.length||0,settings_count:t.settings?.length||0}),r.json({code:200,message:"OpenList debug profile generated",data:i})});Cr();Ye();Fi();var ri=new Xe;function jce(r){let t=(r||"").replace(/\\/g,"/").replace(/\/+/g,"/").split("/").filter(i=>i&&i!==".");if(t.some(i=>i===".."))throw new Error("Path traversal segment '..' is not allowed");return"/"+t.join("/")}ri.use("/list",Pi);ri.use("/get",Pi);ri.use("/update",Pi);ri.use("/delete",Pi);ri.use("/cancel",Pi);ri.use("/enable",Pi);ri.use("/disable",Pi);ri.get("/list",async r=>{let t=(await ne(r.env)).shares||[];return r.json({code:200,message:"success",data:{content:t,total:t.length}})});ri.get("/get",async r=>{let e=r.req.query("id")||"",i=((await ne(r.env)).shares||[]).find(n=>n.id===e);return i?r.json({code:200,message:"success",data:i}):r.json({code:404,message:"share not found",data:null})});ri.post("/create",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);if(!Is(e)&&!Ha(e,La.SHARE))return r.json({code:403,message:"Permission denied",data:null},403);let t=await r.req.json().catch(()=>({})),i=await ne(r.env),n=[];if(Array.isArray(t.files))try{n=t.files.map(c=>{let l=jce(String(c));return Is(e)?l:We(e,l)})}catch(c){return r.json({code:400,message:c.message||"Invalid file path",data:null},400)}let s=t.id?String(t.id).trim():"";if(s&&!/^[a-zA-Z0-9_-]{1,64}$/.test(s))return r.json({code:400,message:"Invalid share id format (only alphanumeric, _ and - allowed, max 64 chars)",data:null},400);let o=s||$ce();if((i.shares||[]).some(c=>c.id===o))return r.json({code:400,message:"share id already exists",data:null},400);let a={id:o,new_id:t.new_id||o,creator:t.creator||e.username||"user",creator_role:t.creator_role!==void 0?t.creator_role:e.role??1,accessed:t.accessed??0,expires:t.expires||null,pwd:t.pwd||"",max_accessed:t.max_accessed??0,disabled:t.disabled??!1,order_by:t.order_by||"",order_direction:t.order_direction||"",extract_folder:t.extract_folder||"",files:n,remark:t.remark||"",readme:t.readme||"",header:t.header||""};return i.shares||(i.shares=[]),i.shares.push(a),await fe(i,r.env),r.json({code:200,message:"success",data:a})});function $ce(){return crypto.randomUUID().replace(/-/g,"").slice(0,16)}ri.post("/update",async r=>{let e=await r.req.json().catch(()=>({})),t=await ne(r.env);if(!e.id)return r.json({code:400,message:"share id is required",data:null});let i=(t.shares||[]).findIndex(s=>s.id===e.id);if(i===-1)return r.json({code:404,message:"share not found",data:null});let n=e.new_id&&String(e.new_id).trim()!==""?String(e.new_id).trim():e.id;return n!==e.id&&(t.shares||[]).some(o=>o.id===n&&o.id!==e.id)?r.json({code:400,message:"share id already exists",data:null}):(t.shares[i]={...t.shares[i],id:n,new_id:n,expires:e.expires!==void 0?e.expires:t.shares[i].expires,pwd:e.pwd!==void 0?e.pwd:t.shares[i].pwd,max_accessed:e.max_accessed!==void 0?e.max_accessed:t.shares[i].max_accessed,disabled:e.disabled!==void 0?e.disabled:t.shares[i].disabled,order_by:e.order_by!==void 0?e.order_by:t.shares[i].order_by,order_direction:e.order_direction!==void 0?e.order_direction:t.shares[i].order_direction,extract_folder:e.extract_folder!==void 0?e.extract_folder:t.shares[i].extract_folder,files:e.files!==void 0?e.files:t.shares[i].files,remark:e.remark!==void 0?e.remark:t.shares[i].remark,readme:e.readme!==void 0?e.readme:t.shares[i].readme,header:e.header!==void 0?e.header:t.shares[i].header},await fe(t,r.env),r.json({code:200,message:"success",data:null}))});ri.post("/delete",async r=>{let e=r.req.query("id")||"",t=await ne(r.env);return t.shares||(t.shares=[]),t.shares=t.shares.filter(i=>i.id!==e),await fe(t,r.env),r.json({code:200,message:"success",data:null})});ri.post("/enable",async r=>{let e=r.req.query("id")||"",t=await ne(r.env),i=(t.shares||[]).find(n=>n.id===e);return i&&(i.disabled=!1,await fe(t,r.env)),r.json({code:200,message:"success",data:null})});ri.post("/disable",async r=>{let e=r.req.query("id")||"",t=await ne(r.env),i=(t.shares||[]).find(n=>n.id===e);return i&&(i.disabled=!0,await fe(t,r.env)),r.json({code:200,message:"success",data:null})});Cr();Ye();Yt();Fi();var Ui=new Xe;Ui.all("/refresh",async(r,e)=>await Hb(r)?e():Pi(r,e),async r=>{let e=await ne(r.env),t=0,i=0,n=[];for(let s of e.storages||[])if(!s.disabled)try{let o=await lt(s.driver,s);if(await o.init?.(),typeof o.checkCookieValid=="function"&&/lanzou/i.test(String(s.driver))){let a=await o.checkCookieValid();if(!a.valid){s.status="cookie_expired",i++,n.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"cookie_expired",error:a.error||"Cookie expired"});continue}}s.status="work",t++,n.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"ok"})}catch(o){i++,n.push({id:s.id,mount_path:s.mount_path,driver:s.driver,status:"failed",error:o?.message||String(o)})}return await fe(e,r.env),i>0?r.json({code:500,message:`token refresh failed: ${i}/${t+i} storage(s) failed`,data:{refreshed:t,failed:i,total:e.storages?.length||0,results:n}},500):r.json({code:200,message:"token refresh executed",data:{refreshed:t,failed:i,total:e.storages?.length||0,results:n}})});var yl={upload:[],copy:[],move:[],offline_download:[]};Ui.use("*",Pi);Ui.get("/:type/:state",r=>{let e=r.req.param("type"),t=r.req.param("state"),n=(yl[e]||[]).filter(s=>t==="done"?s.done:!s.done);return r.json({code:200,message:"success",data:n})});Ui.post("/:type/clear_done",r=>{let e=r.req.param("type");return yl[e]&&(yl[e]=yl[e].filter(t=>!t.done)),r.json({code:200,message:"success",data:null})});Ui.post("/:type/clear_succeeded",r=>{let e=r.req.param("type");return yl[e]&&(yl[e]=yl[e].filter(t=>t.state!=="succeeded")),r.json({code:200,message:"success",data:null})});var Il=r=>r.json({code:501,message:"task lifecycle operations (retry/cancel/delete) are not supported in the TS Worker runtime; file operations execute synchronously and do not produce persistent tasks",data:null},501);Ui.post("/:type/retry_failed",Il);Ui.post("/:type/retry",Il);Ui.post("/:type/retry_some",Il);Ui.post("/:type/cancel",Il);Ui.post("/:type/cancel_some",Il);Ui.post("/:type/delete",Il);Ui.post("/:type/delete_some",Il);Cr();Io();Ye();Fi();gl();d0();var Ax=new Xe,Vce=300*1e3,Mv=new Map;function ii(r,e,t=""){let i=(r.settings||[]).find(n=>n.key===e);return!i||i.value===void 0||i.value===null?t:String(i.value)}function m0(r,e){let t=ii(r,e,"false");return t==="true"||t==="1"}function PM(r){return r.req.header("CF-Connecting-IP")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown"}function bu(r){try{return new URL(r.req.url).origin}catch{return"http://localhost"}}function Yce(r,e){let t=new Uint8Array(16);crypto.getRandomValues(t);let i=Array.from(t,n=>n.toString(16).padStart(2,"0")).join("");return Mv.set(`${r}_${i}`,{ip:e,exp:Date.now()+Vce}),i}function Wce(r,e,t){let i=`${r}_${t}`,n=Mv.get(i);return n?(Mv.delete(i),n.ip===e&&n.exp>Date.now()):!1}function TM(r,e,t,i,n){switch(r){case"Github":return{authUrl:"https://github.com/login/oauth/authorize",tokenUrl:"https://github.com/login/oauth/access_token",userUrl:"https://api.github.com/user",scope:n||"read:user",authField:"code",idField:"id",usernameField:"login"};case"Microsoft":return{authUrl:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize",tokenUrl:"https://login.microsoftonline.com/common/oauth2/v2.0/token",userUrl:"https://graph.microsoft.com/v1.0/me",scope:n||"user.read",authField:"code",idField:"id",usernameField:"displayName",extraAuth:{response_mode:"query"},extraForm:{grant_type:"authorization_code"}};case"Google":return{authUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scope:n||"https://www.googleapis.com/auth/userinfo.profile",authField:"code",idField:"id",usernameField:"name",extraForm:{grant_type:"authorization_code"}};case"Dingtalk":return{authUrl:"https://login.dingtalk.com/oauth2/auth",tokenUrl:"https://api.dingtalk.com/v1.0/oauth2/userAccessToken",userUrl:"https://api.dingtalk.com/v1.0/contact/users/me",scope:n||"openid",authField:"authCode",idField:"unionId",usernameField:"nick",extraAuth:{prompt:"consent"},tokenStyle:"json"};case"Casdoor":return{authUrl:(e||"").replace(/\/login\/oauth\/authorize$/,"")+"/login/oauth/authorize",tokenUrl:(t||"").replace(/\/api\/login\/oauth\/access_token$/,"")+"/api/login/oauth/access_token",userUrl:(i||"").replace(/\/api\/userinfo$/,"")+"/api/userinfo",scope:n||"profile",authField:"code",idField:"sub",usernameField:"preferred_username",extraForm:{grant_type:"authorization_code"}};case"OIDC":return null;default:return null}}async function UM(r){let e=r.endsWith("/.well-known/openid-configuration")?r:r.replace(/\/+$/,"")+"/.well-known/openid-configuration",t=await fetch(e,{headers:{Accept:"application/json"}});if(!t.ok)throw new Error(`OIDC discovery failed: HTTP ${t.status}`);let i=await t.json();if(!i.authorization_endpoint||!i.token_endpoint)throw new Error("OIDC discovery returned incomplete metadata");return{authUrl:i.authorization_endpoint,tokenUrl:i.token_endpoint,userUrl:i.userinfo_endpoint||""}}async function Xce(r,e){let t={id:r.id,username:r.username,role:r.role,exp:Math.floor(Date.now()/1e3)+604800,jti:typeof crypto.randomUUID=="function"?crypto.randomUUID():xu()},i=await Dr(e);return await yo(t,i)}async function Zce(r,e,t){let i=e||t;r.users.some(o=>o.username===i)&&(i=`${i}_${t}`);let s={id:r.users.length?Math.max(...r.users.map(o=>Number(o.id)||0))+1:1,username:i,password:"",role:0,permission:0,base_path:"/",disabled:!1,sso_id:t,allow_ldap:!1,pwd_update_at:new Date().toISOString()};return await Ti(s,xu()),r.users.push(s),await fe(r,r.env),s}function _M(r,e){let t=String(e).replace(/</g,"\\u003c").replace(/>/g,"\\u003e");return`<!DOCTYPE html> <head></head> <body> <script> window.opener.postMessage({"${r}":"${t}"}, "*") window.close() </script> -</body>`}jw.get("/sso",async r=>{let e=await ne(r.env);if(!s0(e,"sso_login_enabled"))return r.json({code:403,message:"Single sign-on is not enabled",data:null},403);let t=r.req.query("method")||"";if(!t)return r.json({code:400,message:"no method provided",data:null},400);let i=ti(e,"sso_login_platform"),n=ti(e,"sso_client_id"),o=s0(e,"sso_compatibility_mode")?`${hu(r)}/api/auth/${t}`:`${hu(r)}/api/auth/sso_callback?method=${t}`,a=ti(e,"sso_login_url"),c=ti(e,"sso_token_url"),l=ti(e,"sso_userinfo_url"),d=ti(e,"sso_scopes"),u=ti(e,"sso_oidc_discovery_url");try{if(i==="OIDC"){let g=await SO(u||a),p=iae(n,vO(r)),I=new URLSearchParams({response_type:"code",client_id:n,redirect_uri:o,scope:d||"openid profile",state:p});return r.redirect(`${g.authUrl}?${I.toString()}`,302)}let f=kO(i,a,c,l,d);if(!f)return r.json({code:400,message:"invalid platform",data:null},400);let h=new URLSearchParams({response_type:"code",client_id:n,redirect_uri:o,scope:f.scope});for(let[g,p]of Object.entries(f.extraAuth||{}))h.set(g,p);return r.redirect(`${f.authUrl}?${h.toString()}`,302)}catch(f){return r.json({code:400,message:f.message||"SSO error",data:null},400)}});jw.get("/sso_callback",async r=>{let e=await ne(r.env);if(!s0(e,"sso_login_enabled"))return r.text("Single sign-on is not enabled",403);let t=r.req.query("method")||"";if(t!=="get_sso_id"&&t!=="sso_get_token")return r.text("invalid request",400);let i=ti(e,"sso_login_platform"),n=ti(e,"sso_client_id"),s=ti(e,"sso_client_secret"),o=s0(e,"sso_compatibility_mode"),a=o?`${hu(r)}/api/auth/${t}`:`${hu(r)}/api/auth/sso_callback?method=${t}`,c=ti(e,"sso_login_url"),l=ti(e,"sso_token_url"),d=ti(e,"sso_userinfo_url"),u=ti(e,"sso_scopes"),f=ti(e,"sso_oidc_discovery_url");try{let h,g,p,I,y,w,C;if(i==="OIDC"){let R=await SO(f||c);if(h=R.tokenUrl,g=R.userUrl,p="sub",I="preferred_username",y=u||"openid profile",!nae(n,vO(r),r.req.query("state")||""))return r.text("incorrect or expired state parameter",400);let U=r.req.query("code")||"",D=await(await fetch(h,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",code:U,client_id:n,client_secret:s,redirect_uri:a,scope:y}).toString()})).json().catch(()=>({}));if(w=D.access_token,!w)throw new Error("no access_token in token response");if(g){C=await(await fetch(g,{headers:{Authorization:`Bearer ${w}`,Accept:"application/json"}})).json().catch(()=>({}));let Q=C?.preferred_username||C?.name||C?.nickname||"";if(!C?.sub&&!Q){let v=D.id_token;if(v){let E=bO(v);C=C||{},C.sub=C.sub||E?.sub,C.name=Q||E?.name||E?.preferred_username||""}}Q&&(C.name=Q)}else{let B=D.id_token;if(!B)throw new Error("no id_token and no userinfo endpoint");C=bO(B)||{},C.sub=C.sub||C.name||""}}else{let R=kO(i,c,l,d,u);if(!R)return r.text("invalid platform",400);h=R.tokenUrl,g=R.userUrl,p=R.idField,I=R.usernameField,y=R.scope;let U=r.req.query(R.authField)||"";if(!U)return r.text("No code provided",400);let T;if(R.tokenStyle==="json")T=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:n,clientSecret:s,code:U,grantType:"authorization_code"})});else{let v={client_id:n,client_secret:s,code:U,redirect_uri:a,scope:y,...R.extraForm||{}};T=await fetch(h,{method:"POST",headers:{Accept:"application/json"},body:new URLSearchParams(v).toString()})}let D=await T.json().catch(()=>({}));if(w=D.access_token||D.accessToken,!w)throw new Error(`token exchange failed: ${D.error||T.status}`);let B={Accept:"application/json"};i==="Dingtalk"?B["x-acs-dingtalk-access-token"]=w:B.Authorization=`Bearer ${w}`,C=await(await fetch(g,{headers:B})).json().catch(()=>({}))}let b=String(C?.id??C?.sub??C?.[p]??"");if(!b||b==="0")return r.text("cannot get user id from SSO provider",400);if(t==="get_sso_id")return o?r.redirect(`${hu(r)}/@manage?sso_id=${encodeURIComponent(b)}`,302):r.html(BO("sso_id",b));let x=(e.users||[]).find(R=>R.sso_id===b);if(!x){if(!s0(e,"sso_auto_register"))return r.text("user not found and auto register is disabled",400);let U=String(C?.login??C?.[I]??C?.name??"");x=await oae(e,U||b,b)}let _=await sae(x,r);return o?r.redirect(`${hu(r)}/@login?token=${encodeURIComponent(_)}`,302):r.html(BO("token",_))}catch(h){return r.text(h.message||"SSO error",500)}});function bO(r){try{let e=r.split(".");if(e.length<2)return null;let t=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=t.padEnd(Math.ceil(t.length/4)*4,"="),n=atob(i);return JSON.parse(n)}catch{return null}}wr();Ao();Ve();Qi();var Ga=new Xe;function ri(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Ha(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=e.padEnd(Math.ceil(e.length/4)*4,"="),i=atob(t),n=new Uint8Array(i.length);for(let s=0;s<i.length;s++)n[s]=i.charCodeAt(s);return n}function aae(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}function cae(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function Ka(r){let e=r.u8[r.i++],t=e>>5,i=e&31,n=i;if(i===24)n=r.u8[r.i++];else if(i===25)n=r.u8[r.i]<<8|r.u8[r.i+1],r.i+=2;else if(i===26)n=r.u8[r.i]<<24|r.u8[r.i+1]<<16|r.u8[r.i+2]<<8|r.u8[r.i+3],r.i+=4;else if(i===27){let s=0n;for(let o=0;o<8;o++)s=s<<8n|BigInt(r.u8[r.i++]);n=Number(s)}else if(i===31){if(t===4){let s=[];for(;r.u8[r.i]!==255;)s.push(Ka(r));return r.i++,s}else if(t===5){let s={};for(;r.u8[r.i]!==255;){let o=Ka(r),a=Ka(r);s[String(o)]=a}return r.i++,s}}switch(t){case 0:return n;case 1:return-1-n;case 2:{let s=r.u8.slice(r.i,r.i+n);return r.i+=n,s}case 3:{let s=new TextDecoder().decode(r.u8.slice(r.i,r.i+n));return r.i+=n,s}case 4:{let s=[];for(let o=0;o<n;o++)s.push(Ka(r));return s}case 5:{let s={};for(let o=0;o<n;o++){let a=Ka(r),c=Ka(r);s[String(a)]=c}return s}default:throw new Error(`unsupported CBOR major type ${t}`)}}async function lae(r){let e=r[1],t=r[3];if(e===2){let i=r[-1],n=r[-2],s=r[-3];if(i!==1)throw new Error("unsupported EC curve (only P-256)");let o={kty:"EC",crv:"P-256",x:ri(new Uint8Array(n)),y:ri(new Uint8Array(s))};return await crypto.subtle.importKey("jwk",o,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}if(e===3){let i=r[-1],n=r[-2],s={kty:"RSA",n:ri(new Uint8Array(i)),e:ri(new Uint8Array(n))};return await crypto.subtle.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"])}throw new Error(`unsupported COSE kty ${e}`)}async function dae(r){let t=Ka({u8:r,i:0}),i=t.authData,n=t.attStmt||{},s=i.slice(0,32),o=i[32],a=i[33]<<24|i[34]<<16|i[35]<<8|i[36];if(!(o&64))throw new Error("attestedCredentialData not present");let c=37,l=i.slice(c,c+16);c+=16;let d=i[c]<<8|i[c+1];c+=2;let u=i.slice(c,c+d);c+=d;let f={u8:i.slice(c),i:0},h=Ka(f),g=await lae(h);return{authData:i,publicKey:g,aaguid:l,credentialId:u,signCount:a,flags:o}}function $w(r,e){let i=(r.settings||[]).find(n=>n.key===e)?.value;return i==="true"||i==="1"}function DO(r,e,t=""){let i=(r.settings||[]).find(n=>n.key===e);return i?.value?String(i.value):t}function Vw(r,e){let t=DO(e,"webauthn_rp_id");if(t)return t;try{return new URL(r.req.url).hostname}catch{return"localhost"}}function lv(){let r=new Uint8Array(32);return crypto.getRandomValues(r),r}function QO(r){return aae(new TextEncoder().encode(JSON.stringify(r)))}function _O(r){return JSON.parse(new TextDecoder().decode(cae(r)))}async function uae(r,e){let t={id:r.id,username:r.username,role:r.role,exp:Math.floor(Date.now()/1e3)+604800,jti:typeof crypto.randomUUID=="function"?crypto.randomUUID():ri(lv())},i=await kr(e);return await fo(t,i)}function o0(r){return r.webauthn_credentials||[]}Ga.post("/webauthn_begin_login",async r=>{let e=await ne(r.env);if(!$w(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=r.req.query("username")||"",i=Vw(r,e),n=lv(),s={challenge:ri(n),userVerification:"preferred"},o;if(t){let c=(e.users||[]).find(l=>l.username===t);if(!c)return r.json({code:400,message:"user not found",data:null},400);s.userId=String(c.id),s.username=t,o=o0(c).map(l=>({id:typeof l.id=="string"?l.id:ri(new Uint8Array(l.id)),type:"public-key"})),s.allowedCredentials=o}let a={challenge:s.challenge,rpId:i,userVerification:s.userVerification};return o&&o.length>0&&(a.allowCredentials=o),r.json({code:200,message:"success",data:{options:a,session:QO(s)}})});Ga.post("/webauthn_finish_login",async r=>{let e=await ne(r.env);if(!$w(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=r.req.header("session")||r.req.header("Session")||"",i;try{i=_O(t)}catch{return r.json({code:400,message:"invalid session",data:null},400)}let n=await r.req.json().catch(()=>({})),s=Vw(r,e);try{let o=Ha(n.id||""),a=JSON.parse(new TextDecoder().decode(Ha(n.response?.clientDataJSON||"")));if(a.challenge!==i.challenge)return r.json({code:400,message:"challenge mismatch",data:null},400);if(a.type!=="webauthn.get")return r.json({code:400,message:"invalid ceremony type",data:null},400);let c=Ha(n.response?.authenticatorData||"");if(c.length<37)throw new Error("invalid authenticatorData");let l=c.slice(0,32),d=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(s)));if(ri(l)!==ri(d))return r.json({code:400,message:"rpId hash mismatch",data:null},400);let u=r.req.query("username")||i.username||"",f=u?(e.users||[]).find(R=>R.username===u):null,h;if(f)h=o0(f).find(R=>(typeof R.id=="string"?R.id:ri(new Uint8Array(R.id)))===n.id);else{let R=Ha(n.response?.userHandle||"");if(R.length){let U=new TextDecoder().decode(R);f=(e.users||[]).find(T=>String(T.id)===U),f&&(h=o0(f).find(T=>(typeof T.id=="string"?T.id:ri(new Uint8Array(T.id)))===n.id))}}if(!f||!h)return r.json({code:400,message:"credential not found",data:null},400);let g=h.publicKey;if(!g)return r.json({code:400,message:"credential missing public key",data:null},400);let p=await crypto.subtle.importKey("jwk",g,g.kty==="RSA"?{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"}:{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),I=Ha(n.response?.signature||""),y=new Uint8Array(await crypto.subtle.digest("SHA-256",Ha(n.response?.clientDataJSON||""))),w=new Uint8Array(c.length+y.length);w.set(c,0),w.set(y,c.length);let C=g.kty==="RSA"?{name:"RSASSA-PKCS1-v1_5"}:{name:"ECDSA",hash:"SHA-256"};if(!await crypto.subtle.verify(C,p,I,w).catch(()=>!1))return r.json({code:400,message:"signature verification failed",data:null},400);let x=c[33]<<24|c[34]<<16|c[35]<<8|c[36];if(h.sign_count!==void 0&&x!==0&&x<=h.sign_count)return r.json({code:400,message:"stale signCount (possible replay)",data:null},400);h.sign_count=x,await fe(e,r.env);let _=await uae(f,r);return r.json({code:200,message:"success",data:{token:_}})}catch(o){return r.json({code:400,message:o.message||"WebAuthn login failed",data:null},400)}});Ga.post("/webauthn_begin_registration",async r=>{let e=await ne(r.env);if(!$w(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=await Me(r);if(!t||t.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let i=Vw(r,e),n=lv(),s=new TextEncoder().encode(String(t.id)),o={challenge:ri(n),userId:String(t.id),username:t.username,userVerification:"preferred"},a=o0(t).map(l=>({id:typeof l.id=="string"?l.id:ri(new Uint8Array(l.id)),type:"public-key"})),c={challenge:o.challenge,rp:{name:DO(e,"site_title","OpenList"),id:i},user:{id:ri(s),name:t.username,displayName:t.username},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],timeout:6e4,authenticatorSelection:{userVerification:o.userVerification,residentKey:"preferred"},attestation:"none"};return a.length>0&&(c.excludeCredentials=a),r.json({code:200,message:"success",data:{options:c,session:QO(o)}})});Ga.post("/webauthn_finish_registration",async r=>{let e=await ne(r.env);if(!$w(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=await Me(r);if(!t||t.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let i=r.req.header("Session")||r.req.header("session")||"",n;try{n=_O(i)}catch{return r.json({code:400,message:"invalid session",data:null},400)}let s=await r.req.json().catch(()=>({})),o=Vw(r,e);try{let a=JSON.parse(new TextDecoder().decode(Ha(s.response?.clientDataJSON||"")));if(a.challenge!==n.challenge)return r.json({code:400,message:"challenge mismatch",data:null},400);if(a.type!=="webauthn.create")return r.json({code:400,message:"invalid ceremony type",data:null},400);let c=Ha(s.response?.attestationObject||""),{publicKey:l,aaguid:d,credentialId:u,signCount:f}=await dae(c),g={id:s.id||ri(u),publicKey:await crypto.subtle.exportKey("jwk",l),aaguid:ri(d),sign_count:f,created_at:new Date().toISOString()},p=t;return p.webauthn_credentials||(p.webauthn_credentials=[]),p.webauthn_credentials.push(g),await fe(e,r.env),r.json({code:200,message:"Registered Successfully",data:null})}catch(a){return r.json({code:400,message:a.message||"registration failed",data:null},400)}});Ga.post("/delete_authn",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let i=(await r.req.json().catch(()=>({}))).id||"",n=await ne(r.env),s=(n.users||[]).find(a=>a.id===e.id);if(!s)return r.json({code:404,message:"user not found",data:null},404);let o=(s.webauthn_credentials||[]).length;return s.webauthn_credentials=(s.webauthn_credentials||[]).filter(a=>a.id!==i),s.webauthn_credentials.length===o?r.json({code:404,message:"credential not found",data:null},404):(await fe(n,r.env),r.json({code:200,message:"Deleted Successfully",data:null}))});Ga.get("/getcredentials",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=o0(e).map(i=>({id:i.id,fingerprint:i.aaguid||""}));return r.json({code:200,message:"success",data:t})});var a0=new Map,gu=new Map;function fae(r){return r.req.header("CF-Connecting-IP")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown"}function Aae(){let r=Date.now();if(a0.size>2e4)for(let[e,t]of a0)r-t.start>6e4&&a0.delete(e);if(gu.size>2e4)for(let[e,t]of gu)r-t.start>36e5&&gu.delete(e)}async function hae(r,e){let t=fae(r),i=Date.now(),n=0,s=0;try{let o=await ne(r.env),a={};for(let c of o.settings||[])a[c.key]=c.value;n=parseInt(a.ip_limit,10)||0,s=parseInt(a.traffic_limit,10)||0}catch{}if(Aae(),n>0){let o=a0.get(t);if(!o||i-o.start>6e4)a0.set(t,{start:i,count:1});else if(o.count+=1,o.count>n)return r.json({code:429,message:"Too many requests, slow down",data:null},429)}if(s>0){let o=gu.get(t),a=s*1024*1024;if(o&&i-o.start<=36e5&&o.bytes>=a)return r.json({code:429,message:"Traffic limit exceeded",data:null},429)}if(await e(),(r.req.query("token")||r.req.query("access_token"))&&(r.res?.headers?.set("Referrer-Policy","no-referrer"),r.res?.headers?.set("Cache-Control","no-store, no-cache, must-revalidate"),r.res?.headers?.set("Pragma","no-cache")),s>0){let o=parseInt(r.res?.headers?.get("content-length")||"0",10)||0;if(o>0){let a=gu.get(t);!a||i-a.start>36e5?gu.set(t,{start:i,bytes:o}):a.bytes+=o}}}function FO(r){r.use("*",hae),r.use("*",async(e,t)=>{let{auditMiddleware:i}=await Promise.resolve().then(()=>(Qi(),VI));return i(e,t)}),r.use("*",async(e,t)=>{await t(),e.res.headers.set("X-Frame-Options","DENY"),e.res.headers.set("X-Content-Type-Options","nosniff"),e.res.headers.set("Content-Security-Policy","default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; connect-src 'self'; media-src 'self' blob:; frame-ancestors 'none'"),e.res.headers.set("Strict-Transport-Security","max-age=31536000; includeSubDomains"),e.res.headers.set("Referrer-Policy","no-referrer")}),r.use("*",fk({origin:(e,t)=>{if(!e)return e;let s=((t.env||{}).ALLOW_URLS||(typeof process<"u"?process.env?.ALLOW_URLS:"")||"").split(",").map(a=>a.trim()).filter(Boolean);if(s.length>0)return s.includes(e)?e:null;let o=t.req.header("host")||"";try{if(new URL(e).host===o)return e}catch{}return null},allowHeaders:["Content-Type","Authorization","X-Requested-With"],allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],exposeHeaders:["Content-Length","Content-Type"],maxAge:600,credentials:!0})),r.route("/raw",Es),r.route("/fs",dt),r.route("/auth",pn),r.route("/public",wo),r.route("/admin",Ue),r.route("/mcp",n0),r.route("/debug",av),r.route("/share",ei),r.route("/task",Pi),r.route("/auth",jw),r.route("/authn",Ga),r.route("/d",Es),r.route("/sd",Es),r.route("/p",Es),r.route("/me",cu),r.get("/me",Mw),r.post("/me/update",Ow),r.post("/user/update_pwd",sO),r.get("/logout",uu),r.post("/logout",uu),r.get("/health",e=>e.json({ok:!0,name:"OpenList",version:"v4.2.3",environment:e.env?.ENVIRONMENT||"development"})),r.get("/healthz",async e=>{let t={},i=!0;try{let o=await ne(e.env);t.config={ok:!0,storages:o?.storages?.length??0,users:o?.users?.length??0}}catch(o){i=!1,t.config={ok:!1,error:o?.message||String(o)}}let n;try{n=await bl(e.env)}catch(o){i=!1,n={configured:!1,connected:!1,error:o?.message||String(o)}}t.persistence={configured:!!n?.configured,connected:!!n?.connected,platform:n?.platform??null,error:n?.error??null};let s=zn(e.env);return n?.configured||(t.persistence.mode=s?"unavailable":"memory",s?(t.persistence.note=Fs,i=!1):t.persistence.note="No persistence configured \u2014 changes are ephemeral"),n?.configured&&!n?.connected&&(i=!1),e.json({ok:i,name:"OpenList",version:"v4.2.3",environment:e.env?.ENVIRONMENT||"development",checks:t},i?200:503)})}wr();Ve();var gae="https://res.oplist.org/logo/logo.svg",za=new Xe;function c0(r){return r.redirect(gae,302)}za.get("/logo.svg",c0);za.get("/logo.png",c0);za.get("/favicon.svg",c0);za.get("/favicon.png",c0);za.get("/favicon.ico",c0);za.get("/:folder/:filepath*",async r=>{let t=r.env?.ASSET_URLS||process.env.ASSET_URLS;if(!t)return r.text("Static resource not found",404);let i=await ne(),n="latest";try{let l=i.get("SELECT * FROM x_settings WHERE key = 'version'");if(l&&l.value){let d=l.value.match(/Frontend:\s*([^\s-]+)/);d&&(n=d[1])}}catch{}let s=t.replace(/\$version/g,n),o=r.req.param("folder"),a=r.req.param("filepath")||"",c=`${s}/${o}/${a}`;return r.redirect(c,302)});wr();sl();Yt();bA();function PO(r,e){return YR(r,e)}Da();Ve();var dv=new Xe,pae=r=>{try{let e=r.executionCtx;return!e||typeof e.waitUntil!="function"?void 0:{waitUntil:t=>e.waitUntil(t),env:r.env}}catch{return}};async function mae(r){let e=r.req.header("Authorization")||"";if(e.startsWith("Basic "))try{let t=atob(e.substring(6).trim()),i=t.indexOf(":");if(i<0)return null;let n=t.substring(0,i),s=t.substring(i+1),{users:o}=await ZA(r.env),a=o.find(c=>c.username===n&&!c.disabled);return a?a.password?await lu(a,s)?a:null:s===""?a:null:null}catch{return null}if(e.startsWith("Bearer ")){let t=await Nn(r);return t?t.user:null}return null}function yae(r){let t=new URL(r.req.url).pathname.replace(/^\/dav/,"");t||(t="/");try{return decodeURIComponent(t)}catch{return t}}function l0(r){let t=(r.startsWith("/")?r:"/"+r).split("/").filter(Boolean),i=t.pop()||"";return{dir:"/"+t.join("/"),name:i}}dv.all("/*",async r=>{let e=await mae(r);if(!e)return r.text("Unauthorized",401,{"WWW-Authenticate":'Basic realm="OpenList"'});let t=_a(e,Qa.WEBDAV_READ),i=_a(e,Qa.WEBDAV_MANAGE);if(!t&&!i)return r.text("Forbidden",403);let n=r.req.method.toUpperCase(),s=yae(r),o=pae(r);try{switch(n){case"OPTIONS":return r.header("DAV","1, 2"),r.header("Allow","OPTIONS, PROPFIND, GET, HEAD, PUT, MKCOL, DELETE, MOVE, COPY"),r.header("MS-Author-Via","DAV"),r.body(null,200);case"PROPFIND":{if(!t)return r.text("Forbidden",403);let a=r.req.header("Depth")||"1",l=((await Zt(s,o)).content||[]).map(f=>({name:f.name,size:f.size||0,isFolder:!!f.is_dir,modified:f.modified||new Date().toISOString()})),d=s==="/"?"/":s.endsWith("/")?s:s+"/",u=PO(d,l);return r.body(u,207,{"Content-Type":"application/xml; charset=utf-8"})}case"GET":case"HEAD":{if(!t)return r.text("Forbidden",403);let{item:a,rawUrl:c}=await Di(s,o);if(!a)return r.text("Not found",404);if(a.is_dir)return r.text("Is a directory",400);let l="/api/p";try{let u=(await tt(s))?.storage;if(u){let f=await jn().catch(()=>({}));Hw({storage:u,driver:u.driver,filename:s,proxyTypes:al(f.proxy_types),textTypes:al(f.text_types)})||(l="/api/d")}}catch{}return r.redirect(c||`${l}${s.startsWith("/")?"":"/"}${s}`,302)}case"PUT":{if(!i)return r.text("Forbidden",403);let a=Buffer.from(await r.req.arrayBuffer());return await Tn(s,a,o),r.body(null,201)}case"MKCOL":return i?(await xA(s,o),r.body(null,201)):r.text("Forbidden",403);case"DELETE":{if(!i)return r.text("Forbidden",403);let{dir:a,name:c}=l0(s);return await ka(a,[c],o),r.body(null,204)}case"MOVE":{if(!i)return r.text("Forbidden",403);let a=r.req.header("Destination")||"",c=a;try{c=decodeURIComponent(new URL(a,r.req.url).pathname).replace(/^\/dav/,"")}catch{}let l=l0(s),d=l0(c);return await Od(l.dir,d.dir,[l.name],o),r.body(null,201)}case"COPY":{if(!i)return r.text("Forbidden",403);let a=r.req.header("Destination")||"",c=a;try{c=decodeURIComponent(new URL(a,r.req.url).pathname).replace(/^\/dav/,"")}catch{}let l=l0(s),d=l0(c);return await EA(l.dir,d.dir,[l.name],o),r.body(null,201)}case"LOCK":case"UNLOCK":return r.text("Locking not supported",405);default:return r.text("Method Not Allowed",405)}}catch(a){let c=Ne(a);return c.includes("not found")||c.includes("storage not found")?r.text("Not Found",404):r.text(c,500)}});wr();sl();Yt();Da();var fl=new Xe;function Yw(r){return String(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Dr(r,e,t){let i=`<?xml version="1.0" encoding="UTF-8"?> -<Error><Code>${Yw(r)}</Code><Message>${Yw(e)}</Message></Error>`;return new Response(i,{status:t,headers:{"Content-Type":"application/xml","x-amz-request-id":"-"}})}function Ww(r){let i=new URL(r.req.url).pathname.replace(/^\/s3\/?/,"").split("/").filter(Boolean),n=i[0]||"",s=i.slice(1).map(decodeURIComponent).join("/");return{bucket:n,key:s}}async function d0(r){let e=await Nn(r);return e?e.user:null}var u0=r=>{try{let e=r.executionCtx;return e&&typeof e.waitUntil=="function"?{waitUntil:t=>e.waitUntil(t)}:void 0}catch{return}};fl.get("/",async r=>{if(!await d0(r))return Dr("AccessDenied","Authentication required",403);try{let n=`<?xml version="1.0" encoding="UTF-8"?> +</body>`}Ax.get("/sso",async r=>{let e=await ne(r.env);if(!m0(e,"sso_login_enabled"))return r.json({code:403,message:"Single sign-on is not enabled",data:null},403);let t=r.req.query("method")||"";if(!t)return r.json({code:400,message:"no method provided",data:null},400);let i=ii(e,"sso_login_platform"),n=ii(e,"sso_client_id"),o=m0(e,"sso_compatibility_mode")?`${bu(r)}/api/auth/${t}`:`${bu(r)}/api/auth/sso_callback?method=${t}`,a=ii(e,"sso_login_url"),c=ii(e,"sso_token_url"),l=ii(e,"sso_userinfo_url"),d=ii(e,"sso_scopes"),u=ii(e,"sso_oidc_discovery_url");try{if(i==="OIDC"){let g=await UM(u||a),p=Yce(n,PM(r)),I=new URLSearchParams({response_type:"code",client_id:n,redirect_uri:o,scope:d||"openid profile",state:p});return r.redirect(`${g.authUrl}?${I.toString()}`,302)}let f=TM(i,a,c,l,d);if(!f)return r.json({code:400,message:"invalid platform",data:null},400);let h=new URLSearchParams({response_type:"code",client_id:n,redirect_uri:o,scope:f.scope});for(let[g,p]of Object.entries(f.extraAuth||{}))h.set(g,p);return r.redirect(`${f.authUrl}?${h.toString()}`,302)}catch(f){return r.json({code:400,message:f.message||"SSO error",data:null},400)}});Ax.get("/sso_callback",async r=>{let e=await ne(r.env);if(!m0(e,"sso_login_enabled"))return r.text("Single sign-on is not enabled",403);let t=r.req.query("method")||"";if(t!=="get_sso_id"&&t!=="sso_get_token")return r.text("invalid request",400);let i=ii(e,"sso_login_platform"),n=ii(e,"sso_client_id"),s=ii(e,"sso_client_secret"),o=m0(e,"sso_compatibility_mode"),a=o?`${bu(r)}/api/auth/${t}`:`${bu(r)}/api/auth/sso_callback?method=${t}`,c=ii(e,"sso_login_url"),l=ii(e,"sso_token_url"),d=ii(e,"sso_userinfo_url"),u=ii(e,"sso_scopes"),f=ii(e,"sso_oidc_discovery_url");try{let h,g,p,I,m,w,B;if(i==="OIDC"){let R=await UM(f||c);if(h=R.tokenUrl,g=R.userUrl,p="sub",I="preferred_username",m=u||"openid profile",!Wce(n,PM(r),r.req.query("state")||""))return r.text("incorrect or expired state parameter",400);let U=r.req.query("code")||"",D=await(await fetch(h,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",code:U,client_id:n,client_secret:s,redirect_uri:a,scope:m}).toString()})).json().catch(()=>({}));if(w=D.access_token,!w)throw new Error("no access_token in token response");if(g){B=await(await fetch(g,{headers:{Authorization:`Bearer ${w}`,Accept:"application/json"}})).json().catch(()=>({}));let _=B?.preferred_username||B?.name||B?.nickname||"";if(!B?.sub&&!_){let v=D.id_token;if(v){let E=FM(v);B=B||{},B.sub=B.sub||E?.sub,B.name=_||E?.name||E?.preferred_username||""}}_&&(B.name=_)}else{let b=D.id_token;if(!b)throw new Error("no id_token and no userinfo endpoint");B=FM(b)||{},B.sub=B.sub||B.name||""}}else{let R=TM(i,c,l,d,u);if(!R)return r.text("invalid platform",400);h=R.tokenUrl,g=R.userUrl,p=R.idField,I=R.usernameField,m=R.scope;let U=r.req.query(R.authField)||"";if(!U)return r.text("No code provided",400);let T;if(R.tokenStyle==="json")T=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:n,clientSecret:s,code:U,grantType:"authorization_code"})});else{let v={client_id:n,client_secret:s,code:U,redirect_uri:a,scope:m,...R.extraForm||{}};T=await fetch(h,{method:"POST",headers:{Accept:"application/json"},body:new URLSearchParams(v).toString()})}let D=await T.json().catch(()=>({}));if(w=D.access_token||D.accessToken,!w)throw new Error(`token exchange failed: ${D.error||T.status}`);let b={Accept:"application/json"};i==="Dingtalk"?b["x-acs-dingtalk-access-token"]=w:b.Authorization=`Bearer ${w}`,B=await(await fetch(g,{headers:b})).json().catch(()=>({}))}let C=String(B?.id??B?.sub??B?.[p]??"");if(!C||C==="0")return r.text("cannot get user id from SSO provider",400);if(t==="get_sso_id")return o?r.redirect(`${bu(r)}/@manage?sso_id=${encodeURIComponent(C)}`,302):r.html(_M("sso_id",C));let x=(e.users||[]).find(R=>R.sso_id===C);if(!x){if(!m0(e,"sso_auto_register"))return r.text("user not found and auto register is disabled",400);let U=String(B?.login??B?.[I]??B?.name??"");x=await Zce(e,U||C,C)}let Q=await Xce(x,r);return o?r.redirect(`${bu(r)}/@login?token=${encodeURIComponent(Q)}`,302):r.html(_M("token",Q))}catch(h){return r.text(h.message||"SSO error",500)}});function FM(r){try{let e=r.split(".");if(e.length<2)return null;let t=e[1].replace(/-/g,"+").replace(/_/g,"/"),i=t.padEnd(Math.ceil(t.length/4)*4,"="),n=atob(i);return JSON.parse(n)}catch{return null}}Cr();Io();Ye();Fi();var tc=new Xe;function ni(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Za(r){let e=r.replace(/-/g,"+").replace(/_/g,"/"),t=e.padEnd(Math.ceil(e.length/4)*4,"="),i=atob(t),n=new Uint8Array(i.length);for(let s=0;s<i.length;s++)n[s]=i.charCodeAt(s);return n}function ele(r){let e="";for(let t of r)e+=String.fromCharCode(t);return btoa(e)}function tle(r){let e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function ec(r){let e=r.u8[r.i++],t=e>>5,i=e&31,n=i;if(i===24)n=r.u8[r.i++];else if(i===25)n=r.u8[r.i]<<8|r.u8[r.i+1],r.i+=2;else if(i===26)n=r.u8[r.i]<<24|r.u8[r.i+1]<<16|r.u8[r.i+2]<<8|r.u8[r.i+3],r.i+=4;else if(i===27){let s=0n;for(let o=0;o<8;o++)s=s<<8n|BigInt(r.u8[r.i++]);n=Number(s)}else if(i===31){if(t===4){let s=[];for(;r.u8[r.i]!==255;)s.push(ec(r));return r.i++,s}else if(t===5){let s={};for(;r.u8[r.i]!==255;){let o=ec(r),a=ec(r);s[String(o)]=a}return r.i++,s}}switch(t){case 0:return n;case 1:return-1-n;case 2:{let s=r.u8.slice(r.i,r.i+n);return r.i+=n,s}case 3:{let s=new TextDecoder().decode(r.u8.slice(r.i,r.i+n));return r.i+=n,s}case 4:{let s=[];for(let o=0;o<n;o++)s.push(ec(r));return s}case 5:{let s={};for(let o=0;o<n;o++){let a=ec(r),c=ec(r);s[String(a)]=c}return s}default:throw new Error(`unsupported CBOR major type ${t}`)}}async function rle(r){let e=r[1],t=r[3];if(e===2){let i=r[-1],n=r[-2],s=r[-3];if(i!==1)throw new Error("unsupported EC curve (only P-256)");let o={kty:"EC",crv:"P-256",x:ni(new Uint8Array(n)),y:ni(new Uint8Array(s))};return await crypto.subtle.importKey("jwk",o,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"])}if(e===3){let i=r[-1],n=r[-2],s={kty:"RSA",n:ni(new Uint8Array(i)),e:ni(new Uint8Array(n))};return await crypto.subtle.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["verify"])}throw new Error(`unsupported COSE kty ${e}`)}async function ile(r){let t=ec({u8:r,i:0}),i=t.authData,n=t.attStmt||{},s=i.slice(0,32),o=i[32],a=i[33]<<24|i[34]<<16|i[35]<<8|i[36];if(!(o&64))throw new Error("attestedCredentialData not present");let c=37,l=i.slice(c,c+16);c+=16;let d=i[c]<<8|i[c+1];c+=2;let u=i.slice(c,c+d);c+=d;let f={u8:i.slice(c),i:0},h=ec(f),g=await rle(h);return{authData:i,publicKey:g,aaguid:l,credentialId:u,signCount:a,flags:o}}function hx(r,e){let i=(r.settings||[]).find(n=>n.key===e)?.value;return i==="true"||i==="1"}function RM(r,e,t=""){let i=(r.settings||[]).find(n=>n.key===e);return i?.value?String(i.value):t}function gx(r,e){let t=RM(e,"webauthn_rp_id");if(t)return t;try{return new URL(r.req.url).hostname}catch{return"localhost"}}function Lv(){let r=new Uint8Array(32);return crypto.getRandomValues(r),r}function NM(r){return ele(new TextEncoder().encode(JSON.stringify(r)))}function qM(r){return JSON.parse(new TextDecoder().decode(tle(r)))}async function nle(r,e){let t={id:r.id,username:r.username,role:r.role,exp:Math.floor(Date.now()/1e3)+604800,jti:typeof crypto.randomUUID=="function"?crypto.randomUUID():ni(Lv())},i=await Dr(e);return await yo(t,i)}function y0(r){return r.webauthn_credentials||[]}tc.post("/webauthn_begin_login",async r=>{let e=await ne(r.env);if(!hx(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=r.req.query("username")||"",i=gx(r,e),n=Lv(),s={challenge:ni(n),userVerification:"preferred"},o;if(t){let c=(e.users||[]).find(l=>l.username===t);if(!c)return r.json({code:400,message:"user not found",data:null},400);s.userId=String(c.id),s.username=t,o=y0(c).map(l=>({id:typeof l.id=="string"?l.id:ni(new Uint8Array(l.id)),type:"public-key"})),s.allowedCredentials=o}let a={challenge:s.challenge,rpId:i,userVerification:s.userVerification};return o&&o.length>0&&(a.allowCredentials=o),r.json({code:200,message:"success",data:{options:a,session:NM(s)}})});tc.post("/webauthn_finish_login",async r=>{let e=await ne(r.env);if(!hx(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=r.req.header("session")||r.req.header("Session")||"",i;try{i=qM(t)}catch{return r.json({code:400,message:"invalid session",data:null},400)}let n=await r.req.json().catch(()=>({})),s=gx(r,e);try{let o=Za(n.id||""),a=JSON.parse(new TextDecoder().decode(Za(n.response?.clientDataJSON||"")));if(a.challenge!==i.challenge)return r.json({code:400,message:"challenge mismatch",data:null},400);if(a.type!=="webauthn.get")return r.json({code:400,message:"invalid ceremony type",data:null},400);let c=Za(n.response?.authenticatorData||"");if(c.length<37)throw new Error("invalid authenticatorData");let l=c.slice(0,32),d=new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(s)));if(ni(l)!==ni(d))return r.json({code:400,message:"rpId hash mismatch",data:null},400);let u=r.req.query("username")||i.username||"",f=u?(e.users||[]).find(R=>R.username===u):null,h;if(f)h=y0(f).find(R=>(typeof R.id=="string"?R.id:ni(new Uint8Array(R.id)))===n.id);else{let R=Za(n.response?.userHandle||"");if(R.length){let U=new TextDecoder().decode(R);f=(e.users||[]).find(T=>String(T.id)===U),f&&(h=y0(f).find(T=>(typeof T.id=="string"?T.id:ni(new Uint8Array(T.id)))===n.id))}}if(!f||!h)return r.json({code:400,message:"credential not found",data:null},400);let g=h.publicKey;if(!g)return r.json({code:400,message:"credential missing public key",data:null},400);let p=await crypto.subtle.importKey("jwk",g,g.kty==="RSA"?{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"}:{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),I=Za(n.response?.signature||""),m=new Uint8Array(await crypto.subtle.digest("SHA-256",Za(n.response?.clientDataJSON||""))),w=new Uint8Array(c.length+m.length);w.set(c,0),w.set(m,c.length);let B=g.kty==="RSA"?{name:"RSASSA-PKCS1-v1_5"}:{name:"ECDSA",hash:"SHA-256"};if(!await crypto.subtle.verify(B,p,I,w).catch(()=>!1))return r.json({code:400,message:"signature verification failed",data:null},400);let x=c[33]<<24|c[34]<<16|c[35]<<8|c[36];if(h.sign_count!==void 0&&x!==0&&x<=h.sign_count)return r.json({code:400,message:"stale signCount (possible replay)",data:null},400);h.sign_count=x,await fe(e,r.env);let Q=await nle(f,r);return r.json({code:200,message:"success",data:{token:Q}})}catch(o){return r.json({code:400,message:o.message||"WebAuthn login failed",data:null},400)}});tc.post("/webauthn_begin_registration",async r=>{let e=await ne(r.env);if(!hx(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=await Me(r);if(!t||t.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let i=gx(r,e),n=Lv(),s=new TextEncoder().encode(String(t.id)),o={challenge:ni(n),userId:String(t.id),username:t.username,userVerification:"preferred"},a=y0(t).map(l=>({id:typeof l.id=="string"?l.id:ni(new Uint8Array(l.id)),type:"public-key"})),c={challenge:o.challenge,rp:{name:RM(e,"site_title","OpenList"),id:i},user:{id:ni(s),name:t.username,displayName:t.username},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],timeout:6e4,authenticatorSelection:{userVerification:o.userVerification,residentKey:"preferred"},attestation:"none"};return a.length>0&&(c.excludeCredentials=a),r.json({code:200,message:"success",data:{options:c,session:NM(o)}})});tc.post("/webauthn_finish_registration",async r=>{let e=await ne(r.env);if(!hx(e,"webauthn_login_enabled"))return r.json({code:403,message:"WebAuthn is not enabled",data:null},403);let t=await Me(r);if(!t||t.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let i=r.req.header("Session")||r.req.header("session")||"",n;try{n=qM(i)}catch{return r.json({code:400,message:"invalid session",data:null},400)}let s=await r.req.json().catch(()=>({})),o=gx(r,e);try{let a=JSON.parse(new TextDecoder().decode(Za(s.response?.clientDataJSON||"")));if(a.challenge!==n.challenge)return r.json({code:400,message:"challenge mismatch",data:null},400);if(a.type!=="webauthn.create")return r.json({code:400,message:"invalid ceremony type",data:null},400);let c=Za(s.response?.attestationObject||""),{publicKey:l,aaguid:d,credentialId:u,signCount:f}=await ile(c),g={id:s.id||ni(u),publicKey:await crypto.subtle.exportKey("jwk",l),aaguid:ni(d),sign_count:f,created_at:new Date().toISOString()},p=t;return p.webauthn_credentials||(p.webauthn_credentials=[]),p.webauthn_credentials.push(g),await fe(e,r.env),r.json({code:200,message:"Registered Successfully",data:null})}catch(a){return r.json({code:400,message:a.message||"registration failed",data:null},400)}});tc.post("/delete_authn",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let i=(await r.req.json().catch(()=>({}))).id||"",n=await ne(r.env),s=(n.users||[]).find(a=>a.id===e.id);if(!s)return r.json({code:404,message:"user not found",data:null},404);let o=(s.webauthn_credentials||[]).length;return s.webauthn_credentials=(s.webauthn_credentials||[]).filter(a=>a.id!==i),s.webauthn_credentials.length===o?r.json({code:404,message:"credential not found",data:null},404):(await fe(n,r.env),r.json({code:200,message:"Deleted Successfully",data:null}))});tc.get("/getcredentials",async r=>{let e=await Me(r);if(!e||e.disabled)return r.json({code:401,message:"Unauthorized",data:null},401);let t=y0(e).map(i=>({id:i.id,fingerprint:i.aaguid||""}));return r.json({code:200,message:"success",data:t})});var I0=new Map,vu=new Map;function sle(r){return r.req.header("CF-Connecting-IP")||r.req.header("x-real-ip")||r.req.header("x-forwarded-for")?.split(",")[0]?.trim()||"unknown"}function ole(){let r=Date.now();if(I0.size>2e4)for(let[e,t]of I0)r-t.start>6e4&&I0.delete(e);if(vu.size>2e4)for(let[e,t]of vu)r-t.start>36e5&&vu.delete(e)}async function ale(r,e){let t=sle(r),i=Date.now(),n=0,s=0;try{let o=await ne(r.env),a={};for(let c of o.settings||[])a[c.key]=c.value;n=parseInt(a.ip_limit,10)||0,s=parseInt(a.traffic_limit,10)||0}catch{}if(ole(),n>0){let o=I0.get(t);if(!o||i-o.start>6e4)I0.set(t,{start:i,count:1});else if(o.count+=1,o.count>n)return r.json({code:429,message:"Too many requests, slow down",data:null},429)}if(s>0){let o=vu.get(t),a=s*1024*1024;if(o&&i-o.start<=36e5&&o.bytes>=a)return r.json({code:429,message:"Traffic limit exceeded",data:null},429)}if(await e(),(r.req.query("token")||r.req.query("access_token"))&&(r.res?.headers?.set("Referrer-Policy","no-referrer"),r.res?.headers?.set("Cache-Control","no-store, no-cache, must-revalidate"),r.res?.headers?.set("Pragma","no-cache")),s>0){let o=parseInt(r.res?.headers?.get("content-length")||"0",10)||0;if(o>0){let a=vu.get(t);!a||i-a.start>36e5?vu.set(t,{start:i,bytes:o}):a.bytes+=o}}}function OM(r){r.use("*",ale),r.use("*",async(e,t)=>{let{auditMiddleware:i}=await Promise.resolve().then(()=>(Fi(),pw));return i(e,t)}),r.use("*",async(e,t)=>{await t(),e.res.headers.set("X-Frame-Options","DENY"),e.res.headers.set("X-Content-Type-Options","nosniff"),e.res.headers.set("Content-Security-Policy","default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; connect-src 'self'; media-src 'self' blob:; frame-ancestors 'none'"),e.res.headers.set("Strict-Transport-Security","max-age=31536000; includeSubDomains"),e.res.headers.set("Referrer-Policy","no-referrer")}),r.use("*",Gk({origin:(e,t)=>{if(!e)return e;let s=((t.env||{}).ALLOW_URLS||(typeof process<"u"?process.env?.ALLOW_URLS:"")||"").split(",").map(a=>a.trim()).filter(Boolean);if(s.length>0)return s.includes(e)?e:null;let o=t.req.header("host")||"";try{if(new URL(e).host===o)return e}catch{}return null},allowHeaders:["Content-Type","Authorization","X-Requested-With"],allowMethods:["GET","POST","PUT","DELETE","OPTIONS"],exposeHeaders:["Content-Length","Content-Type"],maxAge:600,credentials:!0})),r.route("/raw",bs),r.route("/fs",dt),r.route("/auth",mn),r.route("/public",bo),r.route("/admin",Ue),r.route("/mcp",p0),r.route("/debug",Ov),r.route("/share",ri),r.route("/task",Ui),r.route("/auth",Ax),r.route("/authn",tc),r.route("/d",bs),r.route("/sd",bs),r.route("/p",bs),r.route("/me",Iu),r.get("/me",cx),r.post("/me/update",ax),r.post("/user/update_pwd",fM),r.get("/logout",Cu),r.post("/logout",Cu),r.get("/health",e=>e.json({ok:!0,name:"OpenList",version:"v4.2.3",environment:e.env?.ENVIRONMENT||"development"})),r.get("/healthz",async e=>{let t={},i=!0;try{let o=await ne(e.env);t.config={ok:!0,storages:o?.storages?.length??0,users:o?.users?.length??0}}catch(o){i=!1,t.config={ok:!1,error:o?.message||String(o)}}let n;try{n=await Ul(e.env)}catch(o){i=!1,n={configured:!1,connected:!1,error:o?.message||String(o)}}t.persistence={configured:!!n?.configured,connected:!!n?.connected,platform:n?.platform??null,error:n?.error??null};let s=jn(e.env);return n?.configured||(t.persistence.mode=s?"unavailable":"memory",s?(t.persistence.note=Vo,i=!1):t.persistence.note="No persistence configured \u2014 changes are ephemeral"),n?.configured&&!n?.connected&&(i=!1),e.json({ok:i,name:"OpenList",version:"v4.2.3",environment:e.env?.ENVIRONMENT||"development",checks:t},i?200:503)})}Cr();Ye();var cle="https://res.oplist.org/logo/logo.svg",rc=new Xe;function w0(r){return r.redirect(cle,302)}rc.get("/logo.svg",w0);rc.get("/logo.png",w0);rc.get("/favicon.svg",w0);rc.get("/favicon.png",w0);rc.get("/favicon.ico",w0);var lle=["assets","images","streamer","static"];async function dle(r){let e="latest";try{let i=(await ne()).get("SELECT * FROM x_settings WHERE key = 'version'");if(i&&i.value){let n=i.value.match(/Frontend:\s*([^\s-]+)/);n&&(e=n[1])}}catch{}return r.replace(/\$version/g,e)}for(let r of lle)rc.get(`/${r}/*`,async(e,t)=>{let n=e.env?.ASSET_URLS||(typeof process<"u"?process.env?.ASSET_URLS:"")||"";if(!n)return await t();let s=await dle(n),o=`/${r}/`,a=e.req.path.startsWith(o)?e.req.path.slice(o.length):"";return e.redirect(`${s}/${r}/${a}`,302)});Cr();gl();Yt();OA();function MM(r,e){return I9(r,e)}Ma();Nl();var Hv=new Xe,ule=r=>{try{let e=r.executionCtx;return!e||typeof e.waitUntil!="function"?void 0:{waitUntil:t=>e.waitUntil(t),env:r.env}}catch{return}};async function fle(r){let e=r.req.header("Authorization")||"";if(e.startsWith("Basic "))try{let t=atob(e.substring(6).trim()),i=t.indexOf(":");if(i<0)return null;let n=t.substring(0,i),s=t.substring(i+1),{users:o}=await u0(r.env),a=o.find(c=>c.username===n&&!c.disabled);return a?a.password?await wu(a,s)?a:null:s===""?a:null:null}catch{return null}if(e.startsWith("Bearer ")){let t=await qn(r);return t?t.user:null}return null}function Ale(r){let t=new URL(r.req.url).pathname.replace(/^\/dav/,"");t||(t="/");try{return decodeURIComponent(t)}catch{return t}}function x0(r){let t=(r.startsWith("/")?r:"/"+r).split("/").filter(Boolean),i=t.pop()||"";return{dir:"/"+t.join("/"),name:i}}Hv.all("/*",async r=>{let e=await fle(r);if(!e)return r.text("Unauthorized",401,{"WWW-Authenticate":'Basic realm="OpenList"'});let t=Ha(e,La.WEBDAV_READ),i=Ha(e,La.WEBDAV_MANAGE);if(!t&&!i)return r.text("Forbidden",403);let n=r.req.method.toUpperCase(),s=Ale(r),o=ule(r);try{switch(n){case"OPTIONS":return r.header("DAV","1, 2"),r.header("Allow","OPTIONS, PROPFIND, GET, HEAD, PUT, MKCOL, DELETE, MOVE, COPY"),r.header("MS-Author-Via","DAV"),r.body(null,200);case"PROPFIND":{if(!t)return r.text("Forbidden",403);let a=r.req.header("Depth")||"1",l=((await Zt(s,o)).content||[]).map(f=>({name:f.name,size:f.size||0,isFolder:!!f.is_dir,modified:f.modified||new Date().toISOString()})),d=s==="/"?"/":s.endsWith("/")?s:s+"/",u=MM(d,l);return r.body(u,207,{"Content-Type":"application/xml; charset=utf-8"})}case"GET":case"HEAD":{if(!t)return r.text("Forbidden",403);let{item:a,rawUrl:c}=await _i(s,o);return a?a.is_dir?r.text("Is a directory",400):r.redirect(c||`/api/d${Os(s)}`,302):r.text("Not found",404)}case"PUT":{if(!i)return r.text("Forbidden",403);let a=Buffer.from(await r.req.arrayBuffer());return await Un(s,a,o),r.body(null,201)}case"MKCOL":return i?(await UA(s,o),r.body(null,201)):r.text("Forbidden",403);case"DELETE":{if(!i)return r.text("Forbidden",403);let{dir:a,name:c}=x0(s);return await qa(a,[c],o),r.body(null,204)}case"MOVE":{if(!i)return r.text("Forbidden",403);let a=r.req.header("Destination")||"",c=a;try{c=decodeURIComponent(new URL(a,r.req.url).pathname).replace(/^\/dav/,"")}catch{}let l=x0(s),d=x0(c);return await Vd(l.dir,d.dir,[l.name],o),r.body(null,201)}case"COPY":{if(!i)return r.text("Forbidden",403);let a=r.req.header("Destination")||"",c=a;try{c=decodeURIComponent(new URL(a,r.req.url).pathname).replace(/^\/dav/,"")}catch{}let l=x0(s),d=x0(c);return await NA(l.dir,d.dir,[l.name],o),r.body(null,201)}case"LOCK":case"UNLOCK":return r.text("Locking not supported",405);default:return r.text("Method Not Allowed",405)}}catch(a){let c=Ne(a);return c.includes("not found")||c.includes("storage not found")?r.text("Not Found",404):r.text(c,500)}});Cr();gl();Yt();Ma();var wl=new Xe;function px(r){return String(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function _r(r,e,t){let i=`<?xml version="1.0" encoding="UTF-8"?> +<Error><Code>${px(r)}</Code><Message>${px(e)}</Message></Error>`;return new Response(i,{status:t,headers:{"Content-Type":"application/xml","x-amz-request-id":"-"}})}function mx(r){let i=new URL(r.req.url).pathname.replace(/^\/s3\/?/,"").split("/").filter(Boolean),n=i[0]||"",s=i.slice(1).map(decodeURIComponent).join("/");return{bucket:n,key:s}}async function C0(r){let e=await qn(r);return e?e.user:null}var E0=r=>{try{let e=r.executionCtx;return e&&typeof e.waitUntil=="function"?{waitUntil:t=>e.waitUntil(t)}:void 0}catch{return}};wl.get("/",async r=>{if(!await C0(r))return _r("AccessDenied","Authentication required",403);try{let n=`<?xml version="1.0" encoding="UTF-8"?> <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner><ID>openlist</ID><DisplayName>openlist</DisplayName></Owner> <Buckets> -${((await Zt("/",u0(r))).content||[]).filter(s=>s.is_dir).map(s=>` <Bucket><Name>${Yw(s.name)}</Name><CreationDate>${Yw(s.modified||new Date().toISOString())}</CreationDate></Bucket>`).join(` +${((await Zt("/",E0(r))).content||[]).filter(s=>s.is_dir).map(s=>` <Bucket><Name>${px(s.name)}</Name><CreationDate>${px(s.modified||new Date().toISOString())}</CreationDate></Bucket>`).join(` `)} </Buckets> -</ListAllMyBucketsResult>`;return new Response(n,{status:200,headers:{"Content-Type":"application/xml"}})}catch(t){return Dr("InternalError",Ne(t),500)}});fl.get("/*",async r=>{if(!await d0(r))return Dr("AccessDenied","Authentication required",403);let{bucket:t,key:i}=Ww(r);if(!t||!i)return Dr("NoSuchKey","NoSuchKey",404);let n=`/${t}/${i}`;try{let{item:s,rawUrl:o}=await Di(n,u0(r));return!s||s.is_dir?Dr("NoSuchKey","NoSuchKey",404):o?r.redirect(o,302):Dr("NoSuchKey","NoSuchKey",404)}catch(s){return Dr("NoSuchKey",Ne(s),404)}});fl.on("HEAD","/*",async r=>{if(!await d0(r))return Dr("AccessDenied","Authentication required",403);let{bucket:t,key:i}=Ww(r);if(!t||!i)return Dr("NoSuchKey","NoSuchKey",404);try{let{item:n}=await Di(`/${t}/${i}`,u0(r));if(!n||n.is_dir)return Dr("NoSuchKey","NoSuchKey",404);let s={"Content-Length":String(n.size||0),"Content-Type":String(n.type||"application/octet-stream"),"Last-Modified":n.modified||new Date().toISOString()};return new Response(null,{status:200,headers:s})}catch{return Dr("NoSuchKey","NoSuchKey",404)}});fl.put("/*",async r=>{if(!await d0(r))return Dr("AccessDenied","Authentication required",403);let{bucket:t,key:i}=Ww(r);if(!t||!i)return Dr("InvalidArgument","Invalid bucket/key",400);try{let n=Buffer.from(await r.req.arrayBuffer());return await Tn(`/${t}/${i}`,n,u0(r)),new Response(null,{status:200,headers:{ETag:`"${Date.now().toString(16)}"`}})}catch(n){return Dr("InternalError",Ne(n),500)}});fl.delete("/*",async r=>{if(!await d0(r))return Dr("AccessDenied","Authentication required",403);let{bucket:t,key:i}=Ww(r);if(!t||!i)return Dr("InvalidArgument","Invalid bucket/key",400);let n=i.lastIndexOf("/"),s=n>=0?`/${t}/${i.slice(0,n)}`:`/${t}`,o=n>=0?i.slice(n+1):i;try{return await ka(s,[o],u0(r)),new Response(null,{status:204})}catch(a){return Dr("NoSuchKey",Ne(a),404)}});Ve();ic();var On=new Xe;function Iae(r,e,t){return!!(/\.[a-zA-Z0-9]+$/.test(r)||(t==="GET"||t==="HEAD")&&e.includes("text/html"))}var wae=["/api/public/env_check","/api/public/init_status","/api/healthz"];function xae(r){return wae.includes(r)}var TO=["/kv-list","/kv-get","/kv-put","/kv-delete"];function Cae(r){return TO.includes(r)}On.use("*",async(r,e)=>{let t=r.env||{};try{let s=new URL(r.req.url);t.__requestOrigin||(t.__requestOrigin=s.origin)}catch{}sC(t);let{pathname:i}=new URL(r.req.url);if(!(Iae(i,r.req.header("accept")||"",r.req.method)||xae(i)||Cae(i))){let s=await rc(t);if(s.message){let o=IO(s);return r.json({code:503,message:s.message,data:{error:"STORAGE_CONFIG_ERROR",code:s.code,configError:s.message,summary:Au(s.message),reason:o.reason,suggestion:o.suggestion}},503)}}await e()});for(let r of TO)On.all(r,e=>e.json({code:410,message:`KV proxy endpoint "${r}" is not served by this deployment. It only exists on EdgeOne Edge Functions (functions/kv-*) or Cloudflare Pages Functions. See /api/public/env_check for the storage backend actually in use.`,data:null},410));var UO=new Xe;FO(UO);On.route("/api",UO);On.route("/d",Es);On.route("/sd",Es);On.route("/p",Es);On.route("/",za);On.route("/dav",dv);On.route("/s3",fl);var uv=null;function RO(r){uv=r}On.all("*",async r=>{let e=r.env;if(e&&e.ASSETS&&typeof e.ASSETS.fetch=="function"){let t=new URL(r.req.url),i=await e.ASSETS.fetch(r.req.raw);if(i.status>=200&&i.status<300){if(t.pathname==="/"||t.pathname==="/index.html"){let s=new Headers(i.headers);return s.set("Cache-Control","no-cache, must-revalidate"),new Response(i.body,{status:i.status,headers:s})}return i}let n=new Request(`${t.origin}/`,r.req.raw);return e.ASSETS.fetch(n)}return uv&&(r.req.method==="GET"||r.req.method==="HEAD")?r.body(uv,200,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-cache, must-revalidate"}):r.text("404 Not Found",404)});var NO=On;var qO=`<!doctype html> +</ListAllMyBucketsResult>`;return new Response(n,{status:200,headers:{"Content-Type":"application/xml"}})}catch(t){return _r("InternalError",Ne(t),500)}});wl.get("/*",async r=>{if(!await C0(r))return _r("AccessDenied","Authentication required",403);let{bucket:t,key:i}=mx(r);if(!t||!i)return _r("NoSuchKey","NoSuchKey",404);let n=`/${t}/${i}`;try{let{item:s,rawUrl:o}=await _i(n,E0(r));return!s||s.is_dir?_r("NoSuchKey","NoSuchKey",404):o?r.redirect(o,302):_r("NoSuchKey","NoSuchKey",404)}catch(s){return _r("NoSuchKey",Ne(s),404)}});wl.on("HEAD","/*",async r=>{if(!await C0(r))return _r("AccessDenied","Authentication required",403);let{bucket:t,key:i}=mx(r);if(!t||!i)return _r("NoSuchKey","NoSuchKey",404);try{let{item:n}=await _i(`/${t}/${i}`,E0(r));if(!n||n.is_dir)return _r("NoSuchKey","NoSuchKey",404);let s={"Content-Length":String(n.size||0),"Content-Type":String(n.type||"application/octet-stream"),"Last-Modified":n.modified||new Date().toISOString()};return new Response(null,{status:200,headers:s})}catch{return _r("NoSuchKey","NoSuchKey",404)}});wl.put("/*",async r=>{if(!await C0(r))return _r("AccessDenied","Authentication required",403);let{bucket:t,key:i}=mx(r);if(!t||!i)return _r("InvalidArgument","Invalid bucket/key",400);try{let n=Buffer.from(await r.req.arrayBuffer());return await Un(`/${t}/${i}`,n,E0(r)),new Response(null,{status:200,headers:{ETag:`"${Date.now().toString(16)}"`}})}catch(n){return _r("InternalError",Ne(n),500)}});wl.delete("/*",async r=>{if(!await C0(r))return _r("AccessDenied","Authentication required",403);let{bucket:t,key:i}=mx(r);if(!t||!i)return _r("InvalidArgument","Invalid bucket/key",400);let n=i.lastIndexOf("/"),s=n>=0?`/${t}/${i.slice(0,n)}`:`/${t}`,o=n>=0?i.slice(n+1):i;try{return await qa(s,[o],E0(r)),new Response(null,{status:204})}catch(a){return _r("NoSuchKey",Ne(a),404)}});Ye();gc();var Mn=new Xe;function hle(r,e,t){return!!(/\.[a-zA-Z0-9]+$/.test(r)||(t==="GET"||t==="HEAD")&&e.includes("text/html"))}var gle=["/api/public/env_check","/api/public/init_status","/api/healthz"];function ple(r){return gle.includes(r)}var LM=["/kv-list","/kv-get","/kv-put","/kv-delete"];function mle(r){return LM.includes(r)}Mn.use("*",async(r,e)=>{let t=r.env||{};try{let s=new URL(r.req.url);t.__requestOrigin||(t.__requestOrigin=s.origin)}catch{}FC(t);let{pathname:i}=new URL(r.req.url);if(!(hle(i,r.req.header("accept")||"",r.req.method)||ple(i)||mle(i))){let s=await hc(t);if(s.message){let o=vM(s);return r.json({code:503,message:s.message,data:{error:"STORAGE_CONFIG_ERROR",code:s.code,configError:s.message,summary:Bu(s.message),reason:o.reason,suggestion:o.suggestion}},503)}}await e()});for(let r of LM)Mn.all(r,e=>e.json({code:410,message:`KV proxy endpoint "${r}" is not served by this deployment. It only exists on EdgeOne Edge Functions (functions/kv-*) or Cloudflare Pages Functions. See /api/public/env_check for the storage backend actually in use.`,data:null},410));var HM=new Xe;OM(HM);Mn.route("/api",HM);Mn.route("/d",bs);Mn.route("/sd",bs);Mn.route("/p",bs);Mn.route("/",rc);Mn.route("/dav",Hv);Mn.route("/s3",wl);var Kv=null;function KM(r){Kv=r}Mn.all("*",async r=>{let e=r.env;if(e&&e.ASSETS&&typeof e.ASSETS.fetch=="function"){let t=new URL(r.req.url),i=await e.ASSETS.fetch(r.req.raw);if(i.status>=200&&i.status<300){if(t.pathname==="/"||t.pathname==="/index.html"){let s=new Headers(i.headers);return s.set("Cache-Control","no-cache, must-revalidate"),new Response(i.body,{status:i.status,headers:s})}return i}let n=new Request(`${t.origin}/`,r.req.raw);return e.ASSETS.fetch(n)}return Kv&&(r.req.method==="GET"||r.req.method==="HEAD")?r.body(Kv,200,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-cache, must-revalidate"}):r.text("404 Not Found",404)});var GM=Mn;var zM=`<!doctype html> <html lang="en" translate="no"> <head> <!-- customize head --> @@ -376,7 +378,7 @@ document.getElementsByTagName(item.parentTagName)[0].appendChild(childNode); </body> </html> -`;RO(qO);function Bae(r){return NO.fetch(r.request,r.env,r)}var nbe=Bae;export{nbe as default,Bae as onRequest}; +`;KM(zM);function Ile(r){return GM.fetch(r.request,r.env,r)}var lke=Ile;export{lke as default,Ile as onRequest}; /*! Bundled license information: crypto-js/ripemd160.js: diff --git a/src/backend/internal/model/store/driver/kv.ts b/src/backend/internal/model/store/driver/kv.ts index 6962fd03..5f26775b 100644 --- a/src/backend/internal/model/store/driver/kv.ts +++ b/src/backend/internal/model/store/driver/kv.ts @@ -161,7 +161,7 @@ function getProxyBaseUrl(env?: EnvContext): string { * KV 代理健康探测(唯一实现)。 * * isAvailable() 与 health() 共用,避免两处各自实现导致判定标准漂移。 - * 判定:HTTP 200 表示代理与 KV 均可用;401 表示代理可达但鉴权失败, + * 判定:HTTP 200 且返回合法 key 列表表示代理与 KV 均可用;401 表示代理可达但鉴权失败, * 属于「代理部署存在但密钥不对」。 * * 注意两个调用方对 401 的取舍不同,故这里只返回原始探测结果, @@ -194,7 +194,26 @@ async function probeProxy( method: "GET", headers: buildProxyHeaders(env), }) - return { ok: response.ok, status: response.status } + if (!response.ok) { + return { ok: false, status: response.status } + } + try { + const payload = await response.json() + if (!payload || !Array.isArray(payload.keys)) { + return { + ok: false, + status: response.status, + error: "KV proxy health response is not a valid key listing", + } + } + return { ok: true, status: response.status } + } catch { + return { + ok: false, + status: response.status, + error: "KV proxy health response is not valid JSON", + } + } } catch (err: any) { return { ok: false, status: 0, error: err?.message || String(err) } } diff --git a/src/backend/server/kv_proxy_loop.test.ts b/src/backend/server/kv_proxy_loop.test.ts index 1396cf1e..ea11f882 100644 --- a/src/backend/server/kv_proxy_loop.test.ts +++ b/src/backend/server/kv_proxy_loop.test.ts @@ -1,6 +1,7 @@ import assert from "node:assert/strict" import { test } from "node:test" import app from "../index" +import { kvDriver } from "../internal/model/store/driver/kv" /** * KV 代理端点的「自调用环」回归测试。 @@ -42,6 +43,55 @@ const kvEnv = (): any => ({ __requestOrigin: "https://example.workers.dev", }) +test("KV proxy health accepts a valid key listing", async () => { + const originalFetch = globalThis.fetch + ;(globalThis as any).fetch = async () => + new Response(JSON.stringify({ keys: [] }), { + status: 200, + headers: { "content-type": "application/json" }, + }) + try { + assert.equal(await kvDriver.isAvailable(kvEnv()), true) + } finally { + globalThis.fetch = originalFetch + } +}) + +test("KV proxy health rejects an HTML 200 response", async () => { + const originalFetch = globalThis.fetch + ;(globalThis as any).fetch = async () => + new Response("<!doctype html><html></html>", { status: 200 }) + try { + assert.equal(await kvDriver.isAvailable(kvEnv()), false) + } finally { + globalThis.fetch = originalFetch + } +}) + +test("KV proxy health rejects a malformed key listing", async () => { + const originalFetch = globalThis.fetch + ;(globalThis as any).fetch = async () => + new Response(JSON.stringify({ keys: {} }), { status: 200 }) + try { + assert.equal(await kvDriver.isAvailable(kvEnv()), false) + } finally { + globalThis.fetch = originalFetch + } +}) + +test("KV proxy keeps 401 available for diagnostics but unhealthy", async () => { + const originalFetch = globalThis.fetch + ;(globalThis as any).fetch = async () => + new Response("unauthorized", { status: 401 }) + try { + assert.equal(await kvDriver.isAvailable(kvEnv()), true) + const health = await kvDriver.health(kvEnv()) + assert.equal(health.available, false) + } finally { + globalThis.fetch = originalFetch + } +}) + test("KV 代理端点:本部署不提供 → 410,且处理它绝不再发起探测", async () => { const cap = captureFetch(503) try {