!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).singlefile={})}(this,(function(e){"use strict";const{Array:t,Object:n,String:r,Number:a,BigInt:o,Math:i,Date:s,Map:l,Set:c,Response:u,URL:d,Error:h,Uint8Array:p,Uint16Array:m,Uint32Array:f,DataView:g,Blob:b,Promise:y,TextEncoder:w,TextDecoder:k,document:v,crypto:x,btoa:A,TransformStream:S,ReadableStream:E,WritableStream:T,CompressionStream:C,DecompressionStream:R,navigator:_,Worker:z}=globalThis,I=4294967295,L=65535,P=8,D=0,N=99,U=67324752,M=134695760,O=M,F=33639248,q=101010256,B=101075792,j=117853008,H=22,W=1,V=39169,K=10,$=1,G=21589,Y=6534,J=1,Q=8,Z=2048,X=45,ee=51,te="/",ne=new s(2107,11,31),re=new s(1980,0,1),ae=void 0,oe="undefined",ie="function";class se{constructor(e){return class extends S{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const le=64;let ce=2;try{typeof _!=oe&&_.hardwareConcurrency&&(ce=_.hardwareConcurrency)}catch(e){}const ue={chunkSize:524288,maxWorkers:ce,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:ae,CompressionStreamNative:typeof C!=oe&&C,DecompressionStreamNative:typeof R!=oe&&R},de=n.assign({},ue);function he(){return de}function pe(e){return i.max(e.chunkSize,le)}function me(e){const{baseURL:n,chunkSize:r,maxWorkers:a,terminateWorkerTimeout:o,useCompressionStream:i,useWebWorkers:s,Deflate:l,Inflate:c,CompressionStream:u,DecompressionStream:d,workerScripts:p}=e;if(fe("baseURL",n),fe("chunkSize",r),fe("maxWorkers",a),fe("terminateWorkerTimeout",o),fe("useCompressionStream",i),fe("useWebWorkers",s),l&&(de.CompressionStream=new se(l)),c&&(de.DecompressionStream=new se(c)),fe("CompressionStream",u),fe("DecompressionStream",d),p!==ae){const{deflate:e,inflate:n}=p;if((e||n)&&(de.workerScripts||(de.workerScripts={})),e){if(!t.isArray(e))throw new h("workerScripts.deflate must be an array");de.workerScripts.deflate=e}if(n){if(!t.isArray(n))throw new h("workerScripts.inflate must be an array");de.workerScripts.inflate=n}}}function fe(e,t){t!==ae&&(de[e]=t)}function ge(e,t,r){return class{constructor(a){const o=this;var i,s;i=a,s="level",("function"==typeof n.hasOwn?n.hasOwn(i,s):i.hasOwnProperty(s))&&void 0===a.level&&delete a.level,o.codec=new e(n.assign({},t,a)),r(o.codec,(e=>{if(o.pendingData){const t=o.pendingData;o.pendingData=new p(t.length+e.length);const{pendingData:n}=o;n.set(t,0),n.set(e,t.length)}else o.pendingData=new p(e)}))}append(e){return this.codec.push(e),a(this)}flush(){return this.codec.push(new p,!0),a(this)}};function a(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new p}}const be=[];for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)1&t?t=t>>>1^3988292384:t>>>=1;be[e]=t}class ye{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;n>>8^be[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class we extends S{constructor(){let e;const t=new ye;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new p(4);new g(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function ke(e){if(void 0===w){e=unescape(encodeURIComponent(e));const t=new p(e.length);for(let n=0;n0&&t&&(e[n-1]=ve.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let a=0;a>>t),n=e[a]<<32-t;const a=e.length?e[e.length-1]:0,o=ve.getPartial(a);return r.push(ve.partial(t+o&31,t+o>32?n:r.pop(),1)),r}},xe={bytes:{fromBits(e){const t=ve.bitLength(e)/8,n=new p(t);let r;for(let a=0;a>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new h("Cannot hash more than 2^53 - 1 bits");const o=new f(n);let i=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);e<=a;e+=t.blockSize)t._block(o.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=ve.concat(t,[ve.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e<=19?t&n|~t&r:e<=39?t^n^r:e<=59?t&n|t&r|n&r:e<=79?t^n^r:void 0}_S(e,t){return t<>>32-e}_block(e){const n=this,r=n._h,a=t(80);for(let t=0;t<16;t++)a[t]=e[t];let o=r[0],s=r[1],l=r[2],c=r[3],u=r[4];for(let e=0;e<=79;e++){e>=16&&(a[e]=n._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=n._S(5,o)+n._f(e,s,l,c)+u+a[e]+n._key[i.floor(e/20)]|0;u=c,c=l,l=n._S(30,s),s=o,o=t}r[0]=r[0]+o|0,r[1]=r[1]+s|0,r[2]=r[2]+l|0,r[3]=r[3]+c|0,r[4]=r[4]+u|0}}},Se={aes:class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let o,i,s,l=1;if(4!==a&&6!==a&&8!==a)throw new h("invalid aes key size");for(t._key=[i=e.slice(0),s=[]],o=a;o<4*a+28;o++){let e=i[o-1];(o%a==0||8===a&&o%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%a==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),i[o]=i[o-a]^e}for(let e=0;o;e++,o--){const t=i[3&e?o:o-4];s[e]=o<=4||e<4?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],a=[],o=[];let i,s,l,c;for(let e=0;e<256;e++)o[(a[e]=e<<1^283*(e>>7))^e]=e;for(let u=i=0;!n[u];u^=s||1,i=o[i]||1){let o=i^i<<1^i<<2^i<<3^i<<4;o=o>>8^255&o^99,n[u]=o,r[o]=u,c=a[l=a[s=a[u]]];let d=16843009*c^65537*l^257*s^16843008*u,h=257*a[o]^16843008*o;for(let n=0;n<4;n++)e[n][u]=h=h<<24^h>>>8,t[n][o]=d=d<<24^d>>>8}for(let n=0;n<5;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new h("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],o=this._tables[t],i=o[0],s=o[1],l=o[2],c=o[3],u=o[4];let d,p,m,f=e[0]^n[0],g=e[t?3:1]^n[1],b=e[2]^n[2],y=e[t?1:3]^n[3],w=4;for(let e=0;e>>24]^s[g>>16&255]^l[b>>8&255]^c[255&y]^n[w],p=i[g>>>24]^s[b>>16&255]^l[y>>8&255]^c[255&f]^n[w+1],m=i[b>>>24]^s[y>>16&255]^l[f>>8&255]^c[255&g]^n[w+2],y=i[y>>>24]^s[f>>16&255]^l[g>>8&255]^c[255&b]^n[w+3],w+=4,f=d,g=p,b=m;for(let e=0;e<4;e++)a[t?3&-e:e]=u[f>>>24]<<24^u[g>>16&255]<<16^u[b>>8&255]<<8^u[255&y]^n[w++],d=f,f=g,g=b,b=y,y=d;return a}}},Ee={getRandomValues(e){const t=new f(e.buffer),n=e=>{let t=987654321;const n=4294967295;return function(){t=36969*(65535&t)+(t>>16)&n;return(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(i.random()>.5?1:-1)}};for(let r,a=0;a>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const a=ve.bitLength(t);for(let a=0;anew Ce.hmacSha1(xe.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,r<0||n<0)throw new h("invalid params to pbkdf2");const a=1+(r>>5)<<2;let o,i,s,l,c;const u=new ArrayBuffer(a),d=new g(u);let p=0;const m=ve;for(t=xe.bytes.toBits(t),c=1;p<(a||1);c++){for(o=i=e.encrypt(m.concat(t,[c])),s=1;sa&&(e=(new n).update(e).finalize());for(let t=0;tthis.resolveReady=e)),password:e,signed:t,strength:r-1,pending:new p})},async transform(e,t){const n=this,{password:r,strength:o,resolveReady:i,ready:s}=n;r?(await async function(e,t,n,r){const a=await rt(e,t,n,ot(r,0,Fe[t])),o=ot(r,Fe[t]);if(a[0]!=o[0]||a[1]!=o[1])throw new h(_e)}(n,o,r,ot(e,0,Fe[o]+2)),e=ot(e,Fe[o]+2),a?t.error(new h(Ie)):i()):await s;const l=new p(e.length-Be-(e.length-Be)%Pe);t.enqueue(nt(n,e,l,0,Be,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:a,ready:o}=this;await o;const i=ot(a,0,a.length-Be),s=ot(a,a.length-Be);let l=new p;if(i.length){const e=st(Ge,i);r.update(e);const t=n.update(e);l=it(Ge,t)}if(t){const e=ot(it(Ge,r.digest()),0,Be);for(let t=0;tthis.resolveReady=e)),password:e,strength:t-1,pending:new p})},async transform(e,t){const n=this,{password:r,strength:a,resolveReady:o,ready:i}=n;let s=new p;r?(s=await async function(e,t,n){const r=Le(new p(Fe[t])),a=await rt(e,t,n,r);return at(r,a)}(n,a,r),o()):await i;const l=new p(s.length+e.length-e.length%Pe);l.set(s,0),t.enqueue(nt(n,e,l,s.length,0))},async flush(e){const{ctr:t,hmac:n,pending:a,ready:o}=this;await o;let i=new p;if(a.length){const e=t.update(st(Ge,a));n.update(e),i=it(Ge,e)}r.signature=it(Ge,n.digest()).slice(0,Be),e.enqueue(at(i,r.signature))}}),r=this}}function nt(e,t,n,r,a,o){const{ctr:i,hmac:s,pending:l}=e,c=t.length-a;let u;for(l.length&&(t=at(l,t),n=function(e,t){if(t&&t>e.length){const n=e;(e=new p(t)).set(n,0)}return e}(n,c-c%Pe)),u=0;u<=c-Pe;u+=Pe){const e=st(Ge,ot(t,u,u+Pe));o&&s.update(e);const a=i.update(e);o||s.update(a),n.set(it(Ge,a),u+r)}return e.pending=ot(t,u),n}async function rt(e,r,a,o){e.password=null;const i=ke(a),s=await async function(e,t,n,r,a){if(!Ze)return Ce.importKey(t);try{return await Ke.importKey(e,t,n,r,a)}catch(e){return Ze=!1,Ce.importKey(t)}}(De,i,Ue,!1,Oe),l=await async function(e,t,n){if(!Xe)return Ce.pbkdf2(t,e.salt,Me.iterations,n);try{return await Ke.deriveBits(e,t,n)}catch(r){return Xe=!1,Ce.pbkdf2(t,e.salt,Me.iterations,n)}}(n.assign({salt:o},Me),s,8*(2*qe[r]+2)),c=new p(l),u=st(Ge,ot(c,0,qe[r])),d=st(Ge,ot(c,qe[r],2*qe[r])),h=ot(c,2*qe[r]);return n.assign(e,{keys:{key:u,authentication:d,passwordVerification:h},ctr:new Je(new Ye(u),t.from(je)),hmac:new Qe(d)}),h}function at(e,t){let n=e;return e.length+t.length&&(n=new p(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ot(e,t,n){return e.subarray(t,n)}function it(e,t){return e.fromBits(t)}function st(e,t){return e.toBits(t)}const lt=12;class ct extends S{constructor({password:e,passwordVerification:t,checkPasswordOnly:r}){super({start(){n.assign(this,{password:e,passwordVerification:t}),pt(this,e)},transform(e,t){const n=this;if(n.password){const t=dt(n,e.subarray(0,lt));if(n.password=null,t[11]!=n.passwordVerification)throw new h(_e);e=e.subarray(lt)}r?t.error(new h(Ie)):t.enqueue(dt(n,e))}})}}class ut extends S{constructor({password:e,passwordVerification:t}){super({start(){n.assign(this,{password:e,passwordVerification:t}),pt(this,e)},transform(e,t){const n=this;let r,a;if(n.password){n.password=null;const t=Le(new p(lt));t[11]=n.passwordVerification,r=new p(e.length+t.length),r.set(ht(n,t),0),a=lt}else r=new p(e.length),a=0;r.set(ht(n,e),a),t.enqueue(r)}})}}function dt(e,t){const n=new p(t.length);for(let r=0;r>>24]),a=~e.crcKey2.get(),e.keys=[n,r,a]}function ft(e){const t=2|e.keys[2];return gt(i.imul(t,1^t)>>>8)}function gt(e){return 255&e}function bt(e){return 4294967295&e}const yt="deflate-raw";class wt extends S{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:a,encrypted:o,useCompressionStream:i,zipCrypto:s,signed:l,level:c}=e,u=this;let d,h,p=vt(super.readable);o&&!s||!l||(d=new we,p=St(p,d)),a&&(p=At(p,i,{level:c,chunkSize:t},r,n)),o&&(s?p=St(p,new ut(e)):(h=new tt(e),p=St(p,h))),xt(u,p,(()=>{let e;o&&!s&&(e=h.signature),o&&!s||!l||(e=new g(d.value.buffer).getUint32(0)),u.signature=e}))}}class kt extends S{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:a,encrypted:o,signed:i,signature:s,compressed:l,useCompressionStream:c}=e;let u,d,p=vt(super.readable);o&&(a?p=St(p,new ct(e)):(d=new et(e),p=St(p,d))),l&&(p=At(p,c,{chunkSize:t},r,n)),o&&!a||!i||(u=new we,p=St(p,u)),xt(this,p,(()=>{if((!o||a)&&i){const e=new g(u.value.buffer);if(s!=e.getUint32(0,!1))throw new h(ze)}}))}}function vt(e){return St(e,new S({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function xt(e,t,r){t=St(t,new S({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function At(e,t,n,r,a){try{e=St(e,new(t&&r?r:a)(yt,n))}catch(r){if(!t)throw r;e=St(e,new a(yt,n))}return e}function St(e,t){return e.pipeThrough(t)}const Et="message",Tt="start",Ct="pull",Rt="data",_t="ack",zt="close",It="deflate",Lt="inflate";class Pt extends S{constructor(e,t){super({});const r=this,{codecType:a}=e;let o;a.startsWith(It)?o=wt:a.startsWith(Lt)&&(o=kt);let i=0;const s=new o(e,t),l=super.readable,c=new S({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=s;n.assign(r,{signature:e,size:i})}});n.defineProperty(r,"readable",{get:()=>l.pipeThrough(s).pipeThrough(c)})}}const Dt=typeof z!=oe;class Nt{constructor(e,{readable:t,writable:r},{options:a,config:o,streamOptions:i,useWebWorkers:s,transferStreams:l,scripts:c},u){const{signal:d}=i;return n.assign(e,{busy:!0,readable:t.pipeThrough(new Ut(t,i,o),{signal:d}),writable:r,options:n.assign({},a),scripts:c,transferStreams:l,terminate(){const{worker:t,busy:n}=e;t&&!n&&(t.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,u(e)}}),(s&&Dt?Ft:Ot)(e,o)}}class Ut extends S{constructor(e,{onstart:t,onprogress:n,size:r,onend:a},{chunkSize:o}){let i=0;super({start(){t&&Mt(t,r)},async transform(e,t){i+=e.length,n&&await Mt(n,i,r),t.enqueue(e)},flush(){e.size=i,a&&Mt(a,i)}},{highWaterMark:1,size:()=>o})}}async function Mt(e,...t){try{await e(...t)}catch(e){}}function Ot(e,t){return{run:()=>async function({options:e,readable:t,writable:n,onTaskFinished:r},a){const o=new Pt(e,a);try{await t.pipeThrough(o).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:e,size:r}=o;return{signature:e,size:r}}finally{r()}}(e,t)}}function Ft(e,{baseURL:t,chunkSize:r}){return e.interface||n.assign(e,{worker:jt(e.scripts[0],t,e),interface:{run:()=>async function(e,t){let r,a;const o=new y(((e,t)=>{r=e,a=t}));n.assign(e,{reader:null,writer:null,resolveResult:r,rejectResult:a,result:o});const{readable:i,options:s,scripts:l}=e,{writable:c,closed:u}=function(e){const t=e.getWriter();let n;const r=new y((e=>n=e)),a=new T({async write(e){await t.ready,await t.write(e)},close(){t.releaseLock(),n()},abort:e=>t.abort(e)});return{writable:a,closed:r}}(e.writable),d=Ht({type:Tt,scripts:l.slice(1),options:s,config:t,readable:i,writable:c},e);d||n.assign(e,{reader:i.getReader(),writer:c.getWriter()});const h=await o;try{await c.getWriter().close()}catch(e){}return await u,h}(e,{chunkSize:r})}}),e.interface}let qt=!0,Bt=!0;function jt(e,t,r){const a={type:"module"};let o,i;typeof e==ie&&(e=e());try{o=new d(e,t)}catch(t){o=e}if(qt)try{i=new z(o)}catch(e){qt=!1,i=new z(o,a)}else i=new z(o,a);return i.addEventListener(Et,(e=>async function({data:e},t){const{type:r,value:a,messageId:o,result:i,error:s}=e,{reader:l,writer:c,resolveResult:u,rejectResult:d,onTaskFinished:m}=t;try{if(s){const{message:e,stack:t,code:r,name:a}=s,o=new h(e);n.assign(o,{stack:t,code:r,name:a}),f(o)}else{if(r==Ct){const{value:e,done:n}=await l.read();Ht({type:Rt,value:e,done:n,messageId:o},t)}r==Rt&&(await c.ready,await c.write(new p(a)),Ht({type:_t,messageId:o},t)),r==zt&&f(null,i)}}catch(s){f(s)}function f(e,t){e?d(e):u(t),c&&c.releaseLock(),m()}}(e,r))),i}function Ht(e,{worker:t,writer:n,onTaskFinished:r,transferStreams:a}){try{let{value:n,readable:r,writable:o}=e;const i=[];if(n&&(e.value=n.buffer,i.push(e.value)),a&&Bt?(r&&i.push(r),o&&i.push(o)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch(n){Bt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),r(),e}}let Wt=[];const Vt=[];let Kt=0;async function $t(e,t){const{options:n,config:r}=t,{transferStreams:o,useWebWorkers:i,useCompressionStream:s,codecType:l,compressed:c,signed:u,encrypted:d}=n,{workerScripts:h,maxWorkers:p,terminateWorkerTimeout:m}=r;t.transferStreams=o||o===ae;const f=!(c||u||d||t.transferStreams);let g;t.useWebWorkers=!f&&(i||i===ae&&r.useWebWorkers),t.scripts=t.useWebWorkers&&h?h[l]:[],n.useCompressionStream=s||s===ae&&r.useCompressionStream;const b=Wt.find((e=>!e.busy));if(b)Gt(b),g=new Nt(b,e,t,w);else if(Wt.lengthVt.push({resolve:n,stream:e,workerOptions:t})));return g.run();function w(e){if(Vt.length){const[{resolve:t,stream:n,workerOptions:r}]=Vt.splice(0,1);t(new Nt(e,n,r,w))}else e.worker?(Gt(e),a.isFinite(m)&&m>=0&&(e.terminateTimeout=setTimeout((()=>{Wt=Wt.filter((t=>t!=e)),e.terminate()}),m))):Wt=Wt.filter((t=>t!=e))}}function Gt(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Yt="HTTP error ",Jt="HTTP Range not supported",Qt="Writer iterator completed too soon",Zt="Content-Length",Xt="Range",en="HEAD",tn="GET",nn="bytes",rn=65536,an="writable";class on{constructor(){this.size=0}init(){this.initialized=!0}}class sn extends on{get readable(){const e=this,{chunkSize:t=rn}=e,n=new E({start(){this.chunkOffset=0},async pull(r){const{offset:a=0,size:o,diskNumberStart:s}=n,{chunkOffset:l}=this;r.enqueue(await Ln(e,a+l,i.min(t,o-l),s)),l+t>o?r.close():this.chunkOffset+=t}});return n}}class ln extends on{constructor(){super();const e=this,t=new T({write:t=>e.writeUint8Array(t)});n.defineProperty(e,an,{get:()=>t})}writeUint8Array(){}}class cn extends sn{constructor(e){super(),n.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,r=e+t,a=e||rt&&(o=o.slice(e,r)),new p(o)}}class un extends on{constructor(e){super();const t=new S,r=[];e&&r.push(["Content-Type",e]),n.defineProperty(this,an,{get:()=>t.writable}),this.blob=new u(t.readable,{headers:r}).blob()}getData(){return this.blob}}class dn extends cn{constructor(e){super(new b([e],{type:"text/plain"}))}}class hn extends sn{constructor(e,t){super(),mn(this,e,t)}async init(){await fn(this,An,wn),super.init()}readUint8Array(e,t){return gn(this,e,t,An,wn)}}class pn extends sn{constructor(e,t){super(),mn(this,e,t)}async init(){await fn(this,Sn,kn),super.init()}readUint8Array(e,t){return gn(this,e,t,Sn,kn)}}function mn(e,t,r){const{preventHeadRequest:a,useRangeHeader:o,forceRangeRequests:i}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.useXHR,n.assign(e,{url:t,options:r,preventHeadRequest:a,useRangeHeader:o,forceRangeRequests:i})}async function fn(e,t,n){const{url:r,useRangeHeader:o,forceRangeRequests:i}=e;if(function(e){const{baseURL:t}=he(),{protocol:n}=new d(e,t);return"http:"==n||"https:"==n}(r)&&(o||i)){const{headers:r}=await t(tn,e,bn(e));if(!i&&r.get("Accept-Ranges")!=nn)throw new h(Jt);{let o;const i=r.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(o=a(t))}}o===ae?await xn(e,t,n):e.size=o}}else await xn(e,t,n)}async function gn(e,t,n,r,a){const{useRangeHeader:o,forceRangeRequests:i,options:s}=e;if(o||i){const a=await r(tn,e,bn(e,t,n));if(206!=a.status)throw new h(Jt);return new p(await a.arrayBuffer())}{const{data:r}=e;return r||await a(e,s),new p(e.data.subarray(t,t+n))}}function bn(e,t=0,r=1){return n.assign({},yn(e),{[Xt]:nn+"="+t+"-"+(t+r-1)})}function yn({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function wn(e){await vn(e,An)}async function kn(e){await vn(e,Sn)}async function vn(e,t){const n=await t(tn,e,yn(e));e.data=new p(await n.arrayBuffer()),e.size||(e.size=e.data.length)}async function xn(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=(await t(en,e,yn(e))).headers.get(Zt);r?e.size=a(r):await n(e,e.options)}}async function An(e,{options:t,url:r},a){const o=await fetch(r,n.assign({},t,{method:e,headers:a}));if(o.status<400)return o;throw 416==o.status?new h(Jt):new h(Yt+(o.statusText||o.status))}function Sn(e,{url:t},r){return new y(((a,o)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",(()=>{if(i.status<400){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach((t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,(e=>e.toUpperCase())),e.push(n)})),a({status:i.status,arrayBuffer:()=>i.response,headers:new l(e)})}else o(416==i.status?new h(Jt):new h(Yt+(i.statusText||i.status)))}),!1),i.addEventListener("error",(e=>o(e.detail?e.detail.error:new h("Network error"))),!1),i.open(e,t),r)for(const e of n.entries(r))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()}))}class En extends sn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR?new pn(e,t):new hn(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Tn extends ln{init(e=0){n.assign(this,{offset:0,array:new p(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const n=t.array;t.array=new p(n.length+e.length),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class Cn extends sn{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map((async(n,r)=>{await n.init(),r!=t.length-1&&(e.lastDiskOffset+=n.size),e.size+=n.size}))),super.init()}async readUint8Array(e,t,n=0){const r=this,{readers:a}=this;let o,s=n;-1==s&&(s=a.length-1);let l=e;for(;l>=a[s].size;)l-=a[s].size,s++;const c=a[s],u=c.size;if(l+t<=u)o=await Ln(c,l,t);else{const a=u-l;o=new p(t),o.set(await Ln(c,l,a)),o.set(await r.readUint8Array(e+a,t-a,n),a)}return r.lastDiskNumber=i.max(s,r.lastDiskNumber),o}}class Rn extends on{constructor(e,t=4294967295){super();const r=this;let a,o,i;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const s=new T({async write(t){const{availableSize:n}=r;if(i)t.length>=n?(await l(t.slice(0,n)),await c(),r.diskOffset+=a.size,r.diskNumber++,i=null,await this.write(t.slice(n))):await l(t);else{const{value:n,done:s}=await e.next();if(s&&!n)throw new h(Qt);a=n,a.size=0,a.maxSize&&(r.maxSize=a.maxSize),r.availableSize=r.maxSize,await _n(a),o=n.writable,i=o.getWriter(),await this.write(t)}},async close(){await i.ready,await c()}});async function l(e){const t=e.length;t&&(await i.ready,await i.write(e),a.size+=t,r.size+=t,r.availableSize-=t)}async function c(){o.size=a.size,await i.close()}n.defineProperty(r,an,{get:()=>s})}}async function _n(e,t){e.init&&!e.initialized&&await e.init(t)}function zn(e){return t.isArray(e)&&(e=new Cn(e)),e instanceof E&&(e={readable:e}),e}function In(e){e.writable===ae&&typeof e.next==ie&&(e=new Rn(e)),e instanceof T&&(e={writable:e});const{writable:t}=e;t.size===ae&&(t.size=0);return e instanceof Rn||n.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function Ln(e,t,n,r){return e.readUint8Array(t,n,r)}const Pn=Cn,Dn=Rn,Nn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),Un=256==Nn.length;function Mn(e,t){return t&&"cp437"==t.trim().toLowerCase()?function(e){if(Un){let t="";for(let n=0;nthis[t]=e[t]))}}const ar="File format is not recognized",or="End of central directory not found",ir="End of Zip64 central directory not found",sr="End of Zip64 central directory locator not found",lr="Central directory header not found",cr="Local file header not found",ur="Zip64 extra field not found",dr="File contains encrypted entry",hr="Encryption method not supported",pr="Compression method not supported",mr="Split zip file",fr="utf-8",gr="cp437",br=[[jn,I],[Hn,I],[Wn,I],[Vn,L]],yr={[L]:{getValue:Rr,bytes:4},[I]:{getValue:_r,bytes:8}};class wr{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,r={}){const a=this,{reader:o,offset:i,diskNumberStart:s,extraFieldAES:l,compressionMethod:c,config:u,bitFlag:d,signature:m,rawLastModDate:f,uncompressedSize:g,compressedSize:b}=a,y=t.localDirectory={},w=zr(await Ln(o,i,30,s));let k=Ar(a,r,"password");if(k=k&&k.length&&k,l&&l.originalCompressionMethod!=N)throw new h(pr);if(c!=D&&c!=P)throw new h(pr);if(Rr(w,0)!=U)throw new h(cr);kr(y,w,4),y.rawExtraField=y.extraFieldLength?await Ln(o,i+30+y.filenameLength,y.extraFieldLength,s):new p,await vr(a,y,w,4,!0),n.assign(t,{lastAccessDate:y.lastAccessDate,creationDate:y.creationDate});const v=a.encrypted&&y.encrypted,x=v&&!l;if(v){if(!x&&l.strength===ae)throw new h(hr);if(!k)throw new h(dr)}const A=i+30+y.filenameLength+y.extraFieldLength,S=b,E=o.readable;n.assign(E,{diskNumberStart:s,offset:A,size:S});const C=Ar(a,r,"signal"),R=Ar(a,r,"checkPasswordOnly");R&&(e=new T),e=In(e),await _n(e,g);const{writable:_}=e,{onstart:z,onprogress:I,onend:L}=r,M={options:{codecType:Lt,password:k,zipCrypto:x,encryptionStrength:l&&l.strength,signed:Ar(a,r,"checkSignature"),passwordVerification:x&&(d.dataDescriptor?f>>>8&255:m>>>24&255),signature:m,compressed:0!=c,encrypted:v,useWebWorkers:Ar(a,r,"useWebWorkers"),useCompressionStream:Ar(a,r,"useCompressionStream"),transferStreams:Ar(a,r,"transferStreams"),checkPasswordOnly:R},config:u,streamOptions:{signal:C,size:S,onstart:z,onprogress:I,onend:L}};let O=0;try{({outputSize:O}=await $t({readable:E,writable:_},M))}catch(e){if(!R||e.message!=Ie)throw e}finally{const e=Ar(a,r,"preventClose");_.size+=O,e||_.locked||await _.getWriter().close()}return R?void 0:e.getData?e.getData():_}}function kr(e,t,r){const a=e.rawBitFlag=Cr(t,r+2),o=(a&J)==J,i=Rr(t,r+6);n.assign(e,{encrypted:o,version:Cr(t,r),bitFlag:{level:(6&a)>>1,dataDescriptor:(a&Q)==Q,languageEncodingFlag:(a&Z)==Z},rawLastModDate:i,lastModDate:Sr(i),filenameLength:Cr(t,r+22),extraFieldLength:Cr(t,r+24)})}async function vr(e,t,r,a,o){const{rawExtraField:i}=t,c=t.extraField=new l,u=zr(new p(i));let d=0;try{for(;dt[e]==n));for(let a=0,o=0;a=5&&(o.push(Kn),i.push($n));let l=1;o.forEach(((n,a)=>{if(e.data.length>=l+4){const o=Rr(r,l);t[n]=e[n]=new s(1e3*o);const c=i[a];e[c]=o}l+=4}))}(k,t,o),t.extraFieldExtendedTimestamp=k);const v=c.get(Y);v&&(t.extraFieldUSDZ=v)}async function xr(e,t,r,a,o){const i=zr(e.data),s=new ye;s.append(o[r]);const l=zr(new p(4));l.setUint32(0,s.get(),!0);const c=Rr(i,1);n.assign(e,{version:Tr(i,0),[t]:Mn(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&c==Rr(l,0)}),e.valid&&(a[t]=e[t],a[t+"UTF8"]=!0)}function Ar(e,t,n){return t[n]===ae?e.options[n]:t[n]}function Sr(e){const t=(4294901760&e)>>16,n=65535&e;try{return new s(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch(e){}}function Er(e){return new s(a(e/o(1e4)-o(116444736e5)))}function Tr(e,t){return e.getUint8(t)}function Cr(e,t){return e.getUint16(t,!0)}function Rr(e,t){return e.getUint32(t,!0)}function _r(e,t){return a(e.getBigUint64(t,!0))}function zr(e){return new g(e.buffer)}const Ir="File already exists",Lr="Zip file comment exceeds 64KB",Pr="File entry comment exceeds 64KB",Dr="File entry name exceeds 64KB",Nr="Version exceeds 65535",Ur="The strength must equal 1, 2, or 3",Mr="Extra field type exceeds 65535",Or="Extra field data exceeds 64KB",Fr="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",qr=new p([7,0,2,0,65,69,3,0,0]);let Br=0;const jr=[];class Hr{constructor(e,t={}){e=In(e),n.assign(this,{writer:e,addSplitZipSignature:e instanceof Rn,options:t,config:he(),files:new l,filenames:new c,offset:e.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new c,bufferedWrites:0})}async add(e="",r,a={}){const l=this,{pendingAddFileCalls:c,config:u}=l;let d;Brjr.push(e)));try{if(e=e.trim(),l.filenames.has(e))throw new h(Ir);return l.filenames.add(e),d=async function(e,r,a,l){r=r.trim(),l.directory&&!r.endsWith(te)?r+=te:l.directory=r.endsWith(te);const c=ke(r);if(Xr(c)>L)throw new h(Dr);const u=l.comment||"",d=ke(u);if(Xr(d)>L)throw new h(Pr);const b=Kr(e,l,"version",20);if(b>L)throw new h(Nr);const w=Kr(e,l,"versionMadeBy",20);if(w>L)throw new h(Nr);const k=Kr(e,l,Kn,new s),v=Kr(e,l,Gn),x=Kr(e,l,Jn),A=Kr(e,l,er,!0),S=Kr(e,l,Zn,0),E=Kr(e,l,Xn,0),T=Kr(e,l,"password"),C=Kr(e,l,"encryptionStrength",3),R=Kr(e,l,"zipCrypto"),_=Kr(e,l,"extendedTimestamp",!0),z=Kr(e,l,"keepOrder",!0),F=Kr(e,l,"level"),q=Kr(e,l,"useWebWorkers"),B=Kr(e,l,"bufferedWrite"),j=Kr(e,l,"dataDescriptorSignature",!1),H=Kr(e,l,"signal"),oe=Kr(e,l,"useCompressionStream");let ie=Kr(e,l,"dataDescriptor",!0),se=Kr(e,l,tr);if(T!==ae&&C!==ae&&(C<1||C>3))throw new h(Ur);let le=new p;const{extraField:ce}=l;if(ce){let e=0,t=0;ce.forEach((t=>e+=4+Xr(t))),le=new p(e),ce.forEach(((e,n)=>{if(n>L)throw new h(Mr);if(Xr(e)>L)throw new h(Or);Qr(le,new m([n]),t),Qr(le,new m([Xr(e)]),t+2),Qr(le,e,t+4),t+=4+Xr(e)}))}let ue=0,de=0,he=0;const me=!0===se;a&&(a=zn(a),await _n(a),a.size===ae?(ie=!0,(se||se===ae)&&(se=!0,he=ue=I)):(he=a.size,ue=function(e){return e+5*(i.floor(e/16383)+1)}(he)));const{diskOffset:fe,diskNumber:ge,maxSize:be}=e.writer,ye=me||he>=I,we=me||ue>=I,ve=me||e.offset+e.pendingEntriesSize-fe>=I,xe=Kr(e,l,"supportZip64SplitFile",!0),Ae=xe&&me||ge+i.ceil(e.pendingEntriesSize/be)>=L;if(ve||ye||we||Ae){if(!1===se||!z)throw new h(Fr);se=!0}se=se||!1,l=n.assign({},l,{rawFilename:c,rawComment:d,version:b,versionMadeBy:w,lastModDate:k,lastAccessDate:v,creationDate:x,rawExtraField:le,zip64:se,zip64UncompressedSize:ye,zip64CompressedSize:we,zip64Offset:ve,zip64DiskNumberStart:Ae,password:T,level:F,useWebWorkers:q,encryptionStrength:C,extendedTimestamp:_,zipCrypto:R,bufferedWrite:B,keepOrder:z,dataDescriptor:ie,dataDescriptorSignature:j,signal:H,msDosCompatible:A,internalFileAttribute:S,externalFileAttribute:E,useCompressionStream:oe});const Se=function(e){const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:a,password:o,level:s,zip64:l,zipCrypto:c,dataDescriptor:u,directory:d,rawExtraField:h,encryptionStrength:m,extendedTimestamp:g}=e,b=0!==s&&!d,y=Boolean(o&&Xr(o));let w,k,v,x,A=e.version;if(y&&!c){w=new p(Xr(qr)+2);const e=Zr(w);Gr(e,0,V),Qr(w,qr,2),$r(e,8,m)}else w=new p;if(g){v=new p(9+(r?4:0)+(a?4:0));const e=Zr(v);Gr(e,0,G),Gr(e,2,Xr(v)-4),x=1+(r?2:0)+(a?4:0),$r(e,4,x);let t=5;Yr(e,t,i.floor(n.getTime()/1e3)),t+=4,r&&(Yr(e,t,i.floor(r.getTime()/1e3)),t+=4),a&&Yr(e,t,i.floor(a.getTime()/1e3));try{k=new p(36);const e=Zr(k),t=Vr(n);Gr(e,0,K),Gr(e,2,32),Gr(e,8,$),Gr(e,10,24),Jr(e,12,t),Jr(e,20,Vr(r)||t),Jr(e,28,Vr(a)||t)}catch(e){k=new p}}else k=v=new p;let S=Z;u&&(S|=Q);let E=D;b&&(E=P);l&&(A=A>X?A:X);y&&(S|=J,c||(A=A>ee?A:ee,E=N,b&&(w[9]=P)));const T=new p(26),C=Zr(T);Gr(C,0,A),Gr(C,2,S),Gr(C,4,E);const R=new f(1),_=Zr(R);let z;z=nne?ne:n;Gr(_,0,(z.getHours()<<6|z.getMinutes())<<5|z.getSeconds()/2),Gr(_,2,(z.getFullYear()-1980<<4|z.getMonth()+1)<<5|z.getDate());const I=R[0];Yr(C,6,I),Gr(C,22,Xr(t));const L=Xr(w,v,k,h);Gr(C,24,L);const M=new p(30+Xr(t)+L);return Yr(Zr(M),0,U),Qr(M,T,4),Qr(M,t,30),Qr(M,w,30+Xr(t)),Qr(M,v,30+Xr(t,w)),Qr(M,k,30+Xr(t,w,v)),Qr(M,h,30+Xr(t,w,v,k)),{localHeaderArray:M,headerArray:T,headerView:C,lastModDate:n,rawLastModDate:I,encrypted:y,compressed:b,version:A,compressionMethod:E,extraFieldExtendedTimestampFlag:x,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:k,rawExtraFieldAES:w,extraFieldLength:L}}(l),Ee=function(e){const{zip64:t,dataDescriptor:n,dataDescriptorSignature:r}=e;let a,o=new p,i=0;n&&(o=new p(t?r?24:20:r?16:12),a=Zr(o),r&&(i=4,Yr(a,0,O)));return{dataDescriptorArray:o,dataDescriptorView:a,dataDescriptorOffset:i}}(l),Te=Xr(Se.localHeaderArray,Ee.dataDescriptorArray);de=Te+ue,e.options.usdz&&(de+=de+64);let Ce;e.pendingEntriesSize+=de;try{Ce=await async function(e,r,a,i,s){const{files:l,writer:c}=e,{keepOrder:u,dataDescriptor:d,signal:m}=s,{headerInfo:f}=i,{usdz:b}=e.options,w=t.from(l.values()).pop();let k,v,x,A,S,E,T={};l.set(r,T);try{let t;u&&(t=w&&w.lock,C()),!(s.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&d||b?(E=c,await R()):(E=new un,E.writable.size=0,k=!0,e.bufferedWrites++,await _n(c)),await _n(E);const{writable:f}=c;let{diskOffset:y}=c;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);Yr(Zr(t),0,M),await Wr(f,t),e.offset+=4}k||(await t,await _(f));const{diskNumber:v}=c;if(S=!0,T.diskNumberStart=v,b&&function(e,t){const{headerInfo:n}=e;let{localHeaderArray:r,extraFieldLength:a}=n,o=Zr(r),i=64-(t+r.length)%64;i<4&&(i+=64);const s=new p(i),l=Zr(s);Gr(l,0,Y),Gr(l,2,i-2);const c=r;n.localHeaderArray=r=new p(c.length+i),Qr(r,c),Qr(r,s,c.length),o=Zr(r),Gr(o,28,a+i),e.metadataSize+=i}(i,e.offset-y),T=await async function(e,t,{diskNumberStart:r,lock:a},i,s,l){const{headerInfo:c,dataDescriptorInfo:u,metadataSize:d}=i,{localHeaderArray:h,headerArray:m,lastModDate:f,rawLastModDate:g,encrypted:b,compressed:y,version:w,compressionMethod:k,rawExtraFieldExtendedTimestamp:v,extraFieldExtendedTimestampFlag:x,rawExtraFieldNTFS:A,rawExtraFieldAES:S}=c,{dataDescriptorArray:E}=u,{rawFilename:T,lastAccessDate:C,creationDate:R,password:_,level:z,zip64:L,zip64UncompressedSize:P,zip64CompressedSize:D,zip64Offset:N,zip64DiskNumberStart:U,zipCrypto:M,dataDescriptor:O,directory:F,versionMadeBy:q,rawComment:B,rawExtraField:j,useWebWorkers:H,onstart:V,onprogress:K,onend:$,signal:G,encryptionStrength:Y,extendedTimestamp:J,msDosCompatible:Q,internalFileAttribute:Z,externalFileAttribute:X,useCompressionStream:ee}=l,te={lock:a,versionMadeBy:q,zip64:L,directory:Boolean(F),filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:B,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:A,rawExtraFieldAES:S,rawExtraField:j,extendedTimestamp:J,msDosCompatible:Q,internalFileAttribute:Z,externalFileAttribute:X,diskNumberStart:r};let ne,re=0,oe=0;const{writable:ie}=t;if(e){e.chunkSize=pe(s),await Wr(ie,h);const t=e.readable,n=t.size=e.size,r={options:{codecType:It,level:z,password:_,encryptionStrength:Y,zipCrypto:b&&M,passwordVerification:b&&M&&g>>8&255,signed:!0,compressed:y,encrypted:b,useWebWorkers:H,useCompressionStream:ee,transferStreams:!1},config:s,streamOptions:{signal:G,size:n,onstart:V,onprogress:K,onend:$}},a=await $t({readable:t,writable:ie},r);ie.size+=a.size,ne=a.signature,oe=e.size=t.size,re=a.size}else await Wr(ie,h);let se;if(L){let e=4;P&&(e+=8),D&&(e+=8),N&&(e+=8),U&&(e+=4),se=new p(e)}else se=new p;(function(e,t){const{signature:n,rawExtraFieldZip64:r,compressedSize:a,uncompressedSize:i,headerInfo:s,dataDescriptorInfo:l}=e,{headerView:c,encrypted:u}=s,{dataDescriptorView:d,dataDescriptorOffset:h}=l,{zip64:p,zip64UncompressedSize:m,zip64CompressedSize:f,zipCrypto:g,dataDescriptor:b}=t;u&&!g||n===ae||(Yr(c,10,n),b&&Yr(d,h,n));if(p){const e=Zr(r);Gr(e,0,W),Gr(e,2,r.length-4);let t=4;m&&(Yr(c,18,I),Jr(e,t,o(i)),t+=8),f&&(Yr(c,14,I),Jr(e,t,o(a))),b&&(Jr(d,h+4,o(a)),Jr(d,h+12,o(i)))}else Yr(c,14,a),Yr(c,18,i),b&&(Yr(d,h+4,a),Yr(d,h+8,i))})({signature:ne,rawExtraFieldZip64:se,compressedSize:re,uncompressedSize:oe,headerInfo:c,dataDescriptorInfo:u},l),O&&await Wr(ie,E);return n.assign(te,{uncompressedSize:oe,compressedSize:re,lastModDate:f,rawLastModDate:g,creationDate:R,lastAccessDate:C,encrypted:b,length:d+re,compressionMethod:k,version:w,headerArray:m,signature:ne,rawExtraFieldZip64:se,extraFieldExtendedTimestampFlag:x,zip64UncompressedSize:P,zip64CompressedSize:D,zip64Offset:N,zip64DiskNumberStart:U}),te}(a,E,T,i,e.config,s),S=!1,l.set(r,T),T.filename=r,k){await E.writable.getWriter().close();let e=await E.getData();await t,await R(),A=!0,d||(e=await async function(e,t,n,{zipCrypto:r}){let a;a=await t.slice(0,26).arrayBuffer(),26!=a.byteLength&&(a=a.slice(0,26));const o=new g(a);e.encrypted&&!r||Yr(o,14,e.signature);e.zip64?(Yr(o,18,I),Yr(o,22,I)):(Yr(o,18,e.compressedSize),Yr(o,22,e.uncompressedSize));return await Wr(n,new p(a)),t.slice(a.byteLength)}(T,e,f,s)),await _(f),T.diskNumberStart=c.diskNumber,y=c.diskOffset,await e.stream().pipeTo(f,{preventClose:!0,preventAbort:!0,signal:m}),f.size+=e.size,A=!1}if(T.offset=e.offset-y,T.zip64)!function(e,t){const{rawExtraFieldZip64:n,offset:r,diskNumberStart:a}=e,{zip64UncompressedSize:i,zip64CompressedSize:s,zip64Offset:l,zip64DiskNumberStart:c}=t,u=Zr(n);let d=4;i&&(d+=8);s&&(d+=8);l&&(Jr(u,d,o(r)),d+=8);c&&Yr(u,d,a)}(T,s);else if(T.offset>=I)throw new h(Fr);return e.offset+=T.length,T}catch(t){if(k&&A||!k&&S){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch(e){}k?e.offset+=E.writable.size:e.offset=E.writable.size}throw l.delete(r),t}finally{k&&e.bufferedWrites--,x&&x(),v&&v()}function C(){T.lock=new y((e=>x=e))}async function R(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y((t=>v=()=>{e.writerLocked=!1,t()})),await t}async function _(e){f.localHeaderArray.length>c.availableSize&&(c.availableSize=0,await Wr(e,new p))}}(e,r,a,{headerInfo:Se,dataDescriptorInfo:Ee,metadataSize:Te},l)}finally{e.pendingEntriesSize-=de}return n.assign(Ce,{name:r,comment:u,extraField:ce}),new rr(Ce)}(l,e,r,a),c.add(d),await d}catch(t){throw l.filenames.delete(e),t}finally{c.delete(d);const e=jr.shift();e?e():Br--}}async close(e=new p,n={}){const{pendingAddFileCalls:r,writer:a}=this,{writable:s}=a;for(;r.size;)await y.all(t.from(r));await async function(e,n,r){const{files:a,writer:s}=e,{diskOffset:l,writable:c}=s;let{diskNumber:u}=s,d=0,m=0,f=e.offset-l,g=a.size;for(const[,e]of a){const{rawFilename:t,rawExtraFieldZip64:n,rawExtraFieldAES:r,rawComment:a,rawExtraFieldNTFS:o,rawExtraField:s,extendedTimestamp:l,extraFieldExtendedTimestampFlag:c,lastModDate:u}=e;let d;if(l){d=new p(9);const e=Zr(d);Gr(e,0,G),Gr(e,2,5),$r(e,4,c),Yr(e,5,i.floor(u.getTime()/1e3))}else d=new p;e.rawExtraFieldCDExtendedTimestamp=d,m+=46+Xr(t,a,n,r,o,d,s)}const b=new p(m),y=Zr(b);await _n(s);let w=0;for(const[e,n]of t.from(a.values()).entries()){const{offset:t,rawFilename:o,rawExtraFieldZip64:i,rawExtraFieldAES:l,rawExtraFieldCDExtendedTimestamp:u,rawExtraFieldNTFS:h,rawExtraField:p,rawComment:m,versionMadeBy:f,headerArray:g,directory:k,zip64:v,zip64UncompressedSize:x,zip64CompressedSize:A,zip64DiskNumberStart:S,zip64Offset:E,msDosCompatible:T,internalFileAttribute:C,externalFileAttribute:R,diskNumberStart:_,uncompressedSize:z,compressedSize:P}=n,D=Xr(i,l,u,h,p);Yr(y,d,F),Gr(y,d+4,f);const N=Zr(g);x||Yr(N,18,z),A||Yr(N,14,P),Qr(b,g,d+6),Gr(y,d+30,D),Gr(y,d+32,Xr(m)),Gr(y,d+34,v&&S?L:_),Gr(y,d+36,C),R?Yr(y,d+38,R):k&&T&&$r(y,d+38,16),Yr(y,d+42,v&&E?I:t),Qr(b,o,d+46),Qr(b,i,d+46+Xr(o)),Qr(b,l,d+46+Xr(o,i)),Qr(b,u,d+46+Xr(o,i,l)),Qr(b,h,d+46+Xr(o,i,l,u)),Qr(b,p,d+46+Xr(o,i,l,u,h)),Qr(b,m,d+46+Xr(o)+D);const U=46+Xr(o,m)+D;if(d-w>s.availableSize&&(s.availableSize=0,await Wr(c,b.slice(w,d)),w=d),d+=U,r.onprogress)try{await r.onprogress(e+1,a.size,new rr(n))}catch(e){}}await Wr(c,w?b.slice(w):b);let k=s.diskNumber;const{availableSize:v}=s;v=I||m>=I||g>=L||k>=L){if(!1===x)throw new h(Fr);x=!0}const A=new p(x?98:H),S=Zr(A);if(d=0,x){Yr(S,0,B),Jr(S,4,o(44)),Gr(S,12,45),Gr(S,14,45),Yr(S,16,k),Yr(S,20,u),Jr(S,24,o(g)),Jr(S,32,o(g)),Jr(S,40,o(m)),Jr(S,48,o(f)),Yr(S,56,j),Jr(S,64,o(f)+o(m)),Yr(S,72,k+1);Kr(e,r,"supportZip64SplitFile",!0)&&(k=L,u=L),g=L,f=I,m=I,d+=76}Yr(S,d,q),Gr(S,d+4,k),Gr(S,d+6,u),Gr(S,d+8,g),Gr(S,d+10,g),Yr(S,d+12,m),Yr(S,d+16,f);const E=Xr(n);if(E){if(!(E<=L))throw new h(Lr);Gr(S,d+20,E)}await Wr(c,A),E&&await Wr(c,n)}(this,e,n);return Kr(this,n,"preventClose")||await s.getWriter().close(),a.getData?a.getData():s}}async function Wr(e,t){const n=e.getWriter();await n.ready,e.size+=Xr(t),await n.write(t),n.releaseLock()}function Vr(e){if(e)return(o(e.getTime())+o(116444736e5))*o(1e4)}function Kr(e,t,n,r){const a=t[n]===ae?e.options[n]:t[n];return a===ae?r:a}function $r(e,t,n){e.setUint8(t,n)}function Gr(e,t,n){e.setUint16(t,n,!0)}function Yr(e,t,n){e.setUint32(t,n,!0)}function Jr(e,t,n){e.setBigUint64(t,n,!0)}function Qr(e,t,n){e.set(t,n)}function Zr(e){return new g(e.buffer)}function Xr(...e){let t=0;return e.forEach((e=>e&&(t+=e.length))),t}let ea;try{ea="undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("single-file.js",document.baseURI).href}catch(e){}me({baseURL:ea}),function(e){const t=()=>d.createObjectURL(new b(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:a,Uint16Array:i,Uint32Array:o,Int32Array:l,Map:c,DataView:h,Promise:f,TextEncoder:u,crypto:p,postMessage:d,TransformStream:g,ReadableStream:w,WritableStream:v,CompressionStream:y,DecompressionStream:b}=self;class m{constructor(e){return class extends g{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const _=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;_[e]=t}class k{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class S extends g{constructor(){let e;const t=new k;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new a(4);new h(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const z={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=z.getPartial(n);return 32===r?e.concat(t):z._shiftRight(t,r,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+z.getPartial(n)},clamp(e,t){if(32*e.length0&&t&&(e[n-1]=z.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>r.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=z.getPartial(s);return r.push(z.partial(t+a&31,t+a>32?n:r.pop(),1)),r}},D={bytes:{fromBits(e){const t=z.bitLength(e)/8,n=new a(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const i=new o(n);let l=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);a>=e;e+=t.blockSize)t._block(i.subarray(16*l,16*(l+1))),l+=1;return n.splice(0,16*l),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=z.concat(t,[z.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}_S(e,t){return t<>>32-e}_block(t){const n=this,s=n._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=s[0],o=s[1],l=s[2],c=s[3],h=s[4];for(let e=0;79>=e;e++){16>e||(a[e]=n._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=n._S(5,i)+n._f(e,o,l,c)+h+a[e]+n._key[r.floor(e/20)]|0;h=c,c=l,l=n._S(30,o),o=i,i=t}s[0]=s[0]+i|0,s[1]=s[1]+o|0,s[2]=s[2]+l|0,s[3]=s[3]+c|0,s[4]=s[4]+h|0}},I={getRandomValues(e){const t=new o(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,a=0;anew x.hmacSha1(D.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,c,f;const u=new ArrayBuffer(a),p=new h(u);let d=0;const g=z;for(t=D.bytes.toBits(t),f=1;(a||1)>d;f++){for(i=o=e.encrypt(g.concat(t,[f])),l=1;n>l;l++)for(o=e.encrypt(o),c=0;cd&&ls&&(e=(new n).update(e).finalize());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},A=void 0!==p&&"function"==typeof p.getRandomValues,T="Invalid password",R="Invalid signature",H="zipjs-abort-check-password";function q(e){return A?p.getRandomValues(e):I.getRandomValues(e)}const B=16,K={name:"PBKDF2"},V=t.assign({hash:{name:"HMAC"}},K),P=t.assign({iterations:1e3,hash:{name:"SHA-1"}},K),E=["deriveBits"],U=[8,12,16],W=[16,24,32],M=10,N=[0,0,0,0],O="undefined",F="function",L=typeof p!=O,j=L&&p.subtle,G=L&&typeof j!=O,X=D.bytes,J=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,l,c=1;if(4!==a&&6!==a&&8!==a)throw new s("invalid aes key size");for(t._key=[o=e.slice(0),l=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];l[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],s=[],a=[];let i,o,l,c;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,r[a]=h,c=s[l=s[o=s[h]]];let f=16843009*c^65537*l^257*o^16843008*h,u=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=u=u<<24^u>>>8,t[n][a]=f=f<<24^f>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],l=i[1],c=i[2],h=i[3],f=i[4];let u,p,d,g=e[0]^n[0],w=e[t?3:1]^n[1],v=e[2]^n[2],y=e[t?1:3]^n[3],b=4;for(let e=0;r>e;e++)u=o[g>>>24]^l[w>>16&255]^c[v>>8&255]^h[255&y]^n[b],p=o[w>>>24]^l[v>>16&255]^c[y>>8&255]^h[255&g]^n[b+1],d=o[v>>>24]^l[y>>16&255]^c[g>>8&255]^h[255&w]^n[b+2],y=o[y>>>24]^l[g>>16&255]^c[w>>8&255]^h[255&v]^n[b+3],b+=4,g=u,w=p,v=d;for(let e=0;4>e;e++)a[t?3&-e:e]=f[g>>>24]<<24^f[w>>16&255]<<16^f[v>>8&255]<<8^f[255&y]^n[b++],u=g,g=w,w=v,v=y,y=u;return a}},Q=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const s=z.bitLength(t);for(let s=0;r>s;s+=4){this.incCounter(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return z.clamp(t,s)}},Y=x.hmacSha1;let Z=L&&G&&typeof j.importKey==F,$=L&&G&&typeof j.deriveBits==F;class ee extends g{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:i}){super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:e,signed:n,strength:r-1,pending:new a})},async transform(e,t){const n=this,{password:r,strength:o,resolveReady:l,ready:c}=n;r?(await(async(e,t,n,r)=>{const a=await re(e,t,n,ae(r,0,U[t])),i=ae(r,U[t]);if(a[0]!=i[0]||a[1]!=i[1])throw new s(T)})(n,o,r,ae(e,0,U[o]+2)),e=ae(e,U[o]+2),i?t.error(new s(H)):l()):await c;const h=new a(e.length-M-(e.length-M)%B);t.enqueue(ne(n,e,h,0,M,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:i,ready:o}=this;await o;const l=ae(i,0,i.length-M),c=ae(i,i.length-M);let h=new a;if(l.length){const e=oe(X,l);r.update(e);const t=n.update(e);h=ie(X,t)}if(t){const e=ae(ie(X,r.digest()),0,M);for(let t=0;M>t;t++)if(e[t]!=c[t])throw new s(R)}e.enqueue(h)}})}}class te extends g{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:e,strength:n-1,pending:new a})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:i,ready:o}=n;let l=new a;r?(l=await(async(e,t,n)=>{const r=q(new a(U[t]));return se(r,await re(e,t,n,r))})(n,s,r),i()):await o;const c=new a(l.length+e.length-e.length%B);c.set(l,0),t.enqueue(ne(n,e,c,l.length,0))},async flush(e){const{ctr:t,hmac:n,pending:s,ready:i}=this;await i;let o=new a;if(s.length){const e=t.update(oe(X,s));n.update(e),o=ie(X,e)}r.signature=ie(X,n.digest()).slice(0,M),e.enqueue(se(o,r.signature))}}),r=this}}function ne(e,t,n,r,s,i){const{ctr:o,hmac:l,pending:c}=e,h=t.length-s;let f;for(c.length&&(t=se(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new a(t)).set(n,0)}return e})(n,h-h%B)),f=0;h-B>=f;f+=B){const e=oe(X,ae(t,f,f+B));i&&l.update(e);const s=o.update(e);i||l.update(s),n.set(ie(X,s),f+r)}return e.pending=ae(t,f),n}async function re(n,r,s,i){n.password=null;const o=(e=>{if(void 0===u){const t=new a((e=unescape(encodeURIComponent(e))).length);for(let n=0;n{if(!Z)return x.importKey(t);try{return await j.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,x.importKey(t)}})(0,o,V,0,E),c=await(async(e,t,n)=>{if(!$)return x.pbkdf2(t,e.salt,P.iterations,n);try{return await j.deriveBits(e,t,n)}catch(r){return $=!1,x.pbkdf2(t,e.salt,P.iterations,n)}})(t.assign({salt:i},P),l,8*(2*W[r]+2)),h=new a(c),f=oe(X,ae(h,0,W[r])),p=oe(X,ae(h,W[r],2*W[r])),d=ae(h,2*W[r]);return t.assign(n,{keys:{key:f,authentication:p,passwordVerification:d},ctr:new Q(new J(f),e.from(N)),hmac:new Y(p)}),d}function se(e,t){let n=e;return e.length+t.length&&(n=new a(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ae(e,t,n){return e.subarray(t,n)}function ie(e,t){return e.fromBits(t)}function oe(e,t){return e.toBits(t)}class le extends g{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),ue(this,e)},transform(e,t){const n=this;if(n.password){const t=he(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(T);e=e.subarray(12)}r?t.error(new s(H)):t.enqueue(he(n,e))}})}}class ce extends g{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),ue(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=q(new a(12));t[11]=n.passwordVerification,r=new a(e.length+t.length),r.set(fe(n,t),0),s=12}else r=new a(e.length),s=0;r.set(fe(n,e),s),t.enqueue(r)}})}}function he(e,t){const n=new a(t.length);for(let r=0;r>>24]),a=~e.crcKey2.get(),e.keys=[n,s,a]}function de(e){const t=2|e.keys[2];return ge(r.imul(t,1^t)>>>8)}function ge(e){return 255&e}function we(e){return 4294967295&e}const ve="deflate-raw";class ye extends g{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:l,level:c}=e,f=this;let u,p,d=me(super.readable);a&&!o||!l||(u=new S,d=Se(d,u)),s&&(d=ke(d,i,{level:c,chunkSize:t},r,n)),a&&(o?d=Se(d,new ce(e)):(p=new te(e),d=Se(d,p))),_e(f,d,(()=>{let e;a&&!o&&(e=p.signature),a&&!o||!l||(e=new h(u.value.buffer).getUint32(0)),f.signature=e}))}}class be extends g{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:a,encrypted:i,signed:o,signature:l,compressed:c,useCompressionStream:f}=e;let u,p,d=me(super.readable);i&&(a?d=Se(d,new le(e)):(p=new ee(e),d=Se(d,p))),c&&(d=ke(d,f,{chunkSize:t},r,n)),i&&!a||!o||(u=new S,d=Se(d,u)),_e(this,d,(()=>{if((!i||a)&&o){const e=new h(u.value.buffer);if(l!=e.getUint32(0,!1))throw new s(R)}}))}}function me(e){return Se(e,new g({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function _e(e,n,r){n=Se(n,new g({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function ke(e,t,n,r,s){try{e=Se(e,new(t&&r?r:s)(ve,n))}catch(r){if(!t)throw r;e=Se(e,new s(ve,n))}return e}function Se(e,t){return e.pipeThrough(t)}const ze="data";class De extends g{constructor(e,n){super({});const r=this,{codecType:s}=e;let a;s.startsWith("deflate")?a=ye:s.startsWith("inflate")&&(a=be);let i=0;const o=new a(e,n),l=super.readable,c=new g({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=o;t.assign(r,{signature:e,size:i})}});t.defineProperty(r,"readable",{get:()=>l.pipeThrough(o).pipeThrough(c)})}}const Ce=new c,Ie=new c;let xe=0;async function Ae(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new m(self.Deflate)),self.Inflate&&(s.DecompressionStream=new m(self.Inflate));const a={highWaterMark:1,size:()=>s.chunkSize},i=e.readable||new w({async pull(e){const t=new f((e=>Ce.set(xe,e)));Te({type:"pull",messageId:xe}),xe=(xe+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},a),o=e.writable||new v({async write(e){let t;const r=new f((e=>t=e));Ie.set(xe,t),Te({type:ze,value:e,messageId:xe}),xe=(xe+1)%n.MAX_SAFE_INTEGER,await r}},a),l=new De(t,s);await i.pipeThrough(l).pipeTo(o,{preventClose:!0,preventAbort:!0});try{await o.getWriter().close()}catch(e){}const{signature:c,size:h}=l;Te({type:"close",result:{signature:c,size:h}})}catch(e){Re(e)}}function Te(e){let{value:t}=e;if(t)if(t.length)try{t=new a(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Re(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:a}=e;d({error:{message:t,stack:n,code:r,name:a}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Ae(e),t==ze){const e=Ce.get(n);Ce.delete(n),e({value:new a(r),done:s})}if("ack"==t){const e=Ie.get(n);Ie.delete(n),e()}}catch(e){Re(e)}}));var He=a,qe=i,Be=l,Ke=new He([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]),Ve=new He([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]),Pe=new He([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ee=(e,t)=>{for(var n=new qe(31),r=0;31>r;++r)n[r]=t+=1<r;++r)for(var a=n[r];aje;++je){var Ge=(43690&je)>>1|(21845&je)<<1;Ge=(61680&(Ge=(52428&Ge)>>2|(13107&Ge)<<2))>>4|(3855&Ge)<<4,Le[je]=((65280&Ge)>>8|(255&Ge)<<8)>>1}var Xe=(e,t,n)=>{for(var r=e.length,s=0,a=new qe(t);r>s;++s)e[s]&&++a[e[s]-1];var i,o=new qe(t);for(s=1;t>s;++s)o[s]=o[s-1]+a[s-1]<<1;if(n){i=new qe(1<s;++s)if(e[s])for(var c=s<<4|e[s],h=t-e[s],f=o[e[s]-1]++<=f;++f)i[Le[f]>>l]=c}else for(i=new qe(r),s=0;r>s;++s)e[s]&&(i[s]=Le[o[e[s]-1]++]>>15-e[s]);return i},Je=new He(288);for(je=0;144>je;++je)Je[je]=8;for(je=144;256>je;++je)Je[je]=9;for(je=256;280>je;++je)Je[je]=7;for(je=280;288>je;++je)Je[je]=8;var Qe=new He(32);for(je=0;32>je;++je)Qe[je]=5;var Ye=Xe(Je,9,0),Ze=Xe(Je,9,1),$e=Xe(Qe,5,0),et=Xe(Qe,5,1),tt=e=>{for(var t=e[0],n=1;nt&&(t=e[n]);return t},nt=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},rt=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},st=e=>(e+7)/8|0,at=(e,t,n)=>{(null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length);var r=new He(n-t);return r.set(e.subarray(t,n)),r},it=["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"],ot=(e,t,n)=>{var r=new s(t||it[e]);if(r.code=e,s.captureStackTrace&&s.captureStackTrace(r,ot),!n)throw r;return r},lt=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},ct=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},ht=(e,t)=>{for(var n=[],r=0;re.f-t.f)),n.push({s:-1,f:25001});var o=n[0],l=n[1],c=0,h=1,f=2;for(n[0]={s:-1,f:o.f+l.f,l:o,r:l};h!=s-1;)o=n[n[c].fr;++r)a[r].s>u&&(u=a[r].s);var p=new qe(u+1),d=ft(n[h-1],p,0);if(d>t){r=0;var g=0,w=d-t,v=1<p[t.s]-p[e.s]||e.f-t.f));s>r;++r){var y=a[r].s;if(p[y]<=t)break;g+=v-(1<>=w;g>0;){var b=a[r].s;p[b]=0&&g;--r){var m=a[r].s;p[m]==t&&(--p[m],++g)}d=t}return{t:new He(p),l:d}},ft=(e,t,n)=>-1==e.s?r.max(ft(e.l,t,n+1),ft(e.r,t,n+1)):t[e.s]=n,ut=e=>{for(var t=e.length;t&&!e[--t];);for(var n=new qe(++t),r=0,s=e[0],a=1,i=e=>{n[r++]=e},o=1;t>=o;++o)if(e[o]==s&&o!=t)++a;else{if(!s&&a>2){for(;a>138;a-=138)i(32754);a>2&&(i(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(i(s),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(s);a=1,s=e[o]}return{c:n.subarray(0,r),n:t}},pt=(e,t)=>{for(var n=0,r=0;r{var r=n.length,s=st(t+2);e[s]=255&r,e[s+1]=r>>8,e[s+2]=255^e[s],e[s+3]=255^e[s+1];for(var a=0;r>a;++a)e[s+a+4]=n[a];return 8*(s+4+r)},gt=(e,t,n,r,s,a,i,o,l,c,h)=>{lt(t,h++,n),++s[256];for(var f=ht(s,15),u=f.t,p=f.l,d=ht(a,15),g=d.t,w=d.l,v=ut(u),y=v.c,b=v.n,m=ut(g),_=m.c,k=m.n,S=new qe(19),z=0;z4&&!C[Pe[x-1]];--x);var A,T,R,H,q=c+5<<3,B=pt(s,Je)+pt(a,Qe)+i,K=pt(s,u)+pt(a,g)+i+14+3*x+pt(S,C)+2*S[16]+3*S[17]+7*S[18];if(l>=0&&B>=q&&K>=q)return dt(t,h,e.subarray(l,l+c));if(lt(t,h,1+(B>K)),h+=2,B>K){A=Xe(u,p,0),T=u,R=Xe(g,w,0),H=g;var V=Xe(C,I,0);for(lt(t,h,b-257),lt(t,h+5,k-1),lt(t,h+10,x-4),h+=14,z=0;x>z;++z)lt(t,h+3*z,C[Pe[z]]);h+=3*x;for(var P=[y,_],E=0;2>E;++E){var U=P[E];for(z=0;z15&&(lt(t,h,U[z]>>5&127),h+=U[z]>>12)}}}else A=Ye,T=Je,R=$e,H=Qe;for(z=0;o>z;++z){var M=r[z];if(M>255){ct(t,h,A[257+(W=M>>18&31)]),h+=T[W+257],W>7&&(lt(t,h,M>>23&31),h+=Ke[W]);var N=31&M;ct(t,h,R[N]),h+=H[N],N>3&&(ct(t,h,M>>5&8191),h+=Ve[N])}else ct(t,h,A[M]),h+=T[M]}return ct(t,h,A[256]),h+T[256]},wt=new Be([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),vt=new He(0),yt=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new He(98304),this.o.dictionary){var n=this.o.dictionary.subarray(-32768);this.b.set(n,32768-n.length),this.s.i=32768-n.length}}return e.prototype.p=function(e,t){this.ondata(((e,t,n,s,a)=>{if(!a&&(a={l:1},t.dictionary)){var i=t.dictionary.subarray(-32768),o=new He(i.length+e.length);o.set(i),o.set(e,i.length),e=o,a.w=i.length}return((e,t,n,s,a,i)=>{var o=i.z||e.length,l=new He(0+o+5*(1+r.ceil(o/7e3))+0),c=l.subarray(0,l.length-0),h=i.l,f=7&(i.r||0);if(t){f&&(c[0]=i.r>>3);for(var u=wt[t-1],p=u>>13,d=8191&u,g=(1<(e[t]^e[t+1]<C+2;++C){var T=m(C),R=32767&C,H=v[T];if(w[R]=H,v[T]=R,C>=x){var q=o-C;if((z>7e3||I>24576)&&(q>423||!h)){f=gt(e,c,0,_,k,S,D,I,A,C-A,f),I=z=D=0,A=C;for(var B=0;286>B;++B)k[B]=0;for(B=0;30>B;++B)S[B]=0}var K=2,V=0,P=d,E=R-H&32767;if(q>2&&T==m(C-E))for(var U=r.min(p,q)-1,W=r.min(32767,C),M=r.min(258,q);W>=E&&--P&&R!=H;){if(e[C+K]==e[C+K-E]){for(var N=0;M>N&&e[C+N]==e[C+N-E];++N);if(N>K){if(K=N,V=E,N>U)break;var O=r.min(E,N-2),F=0;for(B=0;O>B;++B){var L=C-E+B&32767,j=L-w[L]&32767;j>F&&(F=j,H=L)}}}E+=(R=H)-(H=w[R])&32767}if(V){_[I++]=268435456|Me[K]<<18|Fe[V];var G=31&Me[K],X=31&Fe[V];D+=Ke[G]+Ve[X],++k[257+G],++S[X],x=C+K,++z}else _[I++]=e[C],++k[e[C]]}}for(C=r.max(C,x);o>C;++C)_[I++]=e[C],++k[e[C]];f=gt(e,c,h,_,k,S,D,I,A,C-A,f),h||(i.r=7&f|c[f/8|0]<<3,f-=7,i.h=v,i.p=w,i.i=C,i.w=x)}else{for(C=i.w||0;o+h>C;C+=65535){var J=C+65535;o>J||(c[f/8|0]=h,J=o),f=dt(c,f+1,e.subarray(C,J))}i.i=o}return at(l,0,0+st(f)+0)})(e,null==t.level?6:t.level,null==t.mem?r.ceil(1.5*r.max(8,r.min(13,r.log(e.length)))):12+t.mem,0,0,a)})(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||ot(5),this.s.l&&ot(4);var n=e.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var r=new He(-32768&n);r.set(this.b.subarray(0,this.s.z)),this.b=r}var s=this.b.length-this.s.z;s&&(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=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e}(),bt=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new He(32768),this.p=new He(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||ot(5),this.d&&ot(4),this.p.length){if(e.length){var t=new He(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=((e,t,n)=>{var s=e.length;if(!s||t.f&&!t.l)return n||new He(0);var a=!n||2!=t.i,i=t.i;n||(n=new He(3*s));var o=e=>{var t=n.length;if(e>t){var s=new He(r.max(2*t,e));s.set(n),n=s}},l=t.f||0,c=t.p||0,h=t.b||0,f=t.l,u=t.d,p=t.m,d=t.n,g=8*s;do{if(!f){l=nt(e,c,1);var w=nt(e,c+1,3);if(c+=3,!w){var v=e[(x=st(c)+4)-4]|e[x-3]<<8,y=x+v;if(y>s){i&&ot(0);break}a&&o(h+v),n.set(e.subarray(x,y),h),t.b=h+=v,t.p=c=8*y,t.f=l;continue}if(1==w)f=Ze,u=et,p=9,d=5;else if(2==w){var b=nt(e,c,31)+257,m=nt(e,c+10,15)+4,_=b+nt(e,c+5,31)+1;c+=14;for(var k=new He(_),S=new He(19),z=0;m>z;++z)S[Pe[z]]=nt(e,c+3*z,7);c+=3*m;var D=tt(S),C=(1<z;){var x,A=I[nt(e,c,C)];if(c+=15&A,16>(x=A>>4))k[z++]=x;else{var T=0,R=0;for(16==x?(R=3+nt(e,c,3),c+=2,T=k[z-1]):17==x?(R=3+nt(e,c,7),c+=3):18==x&&(R=11+nt(e,c,127),c+=7);R--;)k[z++]=T}}var H=k.subarray(0,b),q=k.subarray(b);p=tt(H),d=tt(q),f=Xe(H,p,1),u=Xe(q,d,1)}else ot(1);if(c>g){i&&ot(0);break}}a&&o(h+131072);for(var B=(1<>4;if((c+=15&T)>g){i&&ot(0);break}if(T||ot(2),256>P)n[h++]=P;else{if(256==P){V=c,f=null;break}var E=P-254;if(P>264){var U=Ke[z=P-257];E=nt(e,c,(1<>4;if(W||ot(3),c+=15&W,q=Oe[M],M>3&&(U=Ve[M],q+=rt(e,c)&(1<g){i&&ot(0);break}a&&o(h+131072);var N=h+E;if(q>h){var O=0-q,F=r.min(q,N);for(0>O+h&&ot(3);F>h;++h)n[h]=undefined[O+h]}for(;N>h;h+=4)n[h]=n[h-q],n[h+1]=n[h+1-q],n[h+2]=n[h+2-q],n[h+3]=n[h+3-q];h=N}}t.l=f,t.p=V,t.b=h,t.f=l,f&&(l=1,t.m=p,t.d=u,t.n=d)}while(!l);return h==n.length?n:at(n,0,h)})(this.p,this.s,this.o);this.ondata(at(n,t,this.s.b),this.d),this.o=at(n,this.s.b-32768),this.s.b=this.o.length,this.p=at(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),mt="undefined"!=typeof TextDecoder&&new TextDecoder;try{mt.decode(vt,{stream:!0})}catch(e){}function _t(e,n,r){return class{constructor(s){const i=this;var o,l;o=s,l="level",("function"==typeof t.hasOwn?t.hasOwn(o,l):o.hasOwnProperty(l))&&void 0===s.level&&delete s.level,i.codec=new e(t.assign({},n,s)),r(i.codec,(e=>{if(i.pendingData){const t=i.pendingData;i.pendingData=new a(t.length+e.length);const{pendingData:n}=i;n.set(t,0),n.set(e,t.length)}else i.pendingData=new a(e)}))}append(e){return this.codec.push(e),s(this)}flush(){return this.codec.push(new a,!0),s(this)}};function s(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new a}}const{Deflate:kt,Inflate:St}=((e,t={},n)=>({Deflate:_t(e.Deflate,t.deflate,n),Inflate:_t(e.Inflate,t.inflate,n)}))({Deflate:yt,Inflate:bt},void 0,((e,t)=>e.ondata=t));self.initCodec=()=>{self.Deflate=kt,self.Inflate=St};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}(me);var ta=Object.freeze({__proto__:null,BlobReader:cn,BlobWriter:un,Data64URIReader:class extends sn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,dataStart:r,size:i.floor(.75*(t-r))})}readUint8Array(e,t){const{dataStart:n,dataURI:r}=this,a=new p(t),o=4*i.floor(e/3),s=atob(r.substring(o+n,4*i.ceil((e+t)/3)+n)),l=e-3*i.floor(o/4);for(let e=l;e2?t.data+=A(a):t.pending=a}getData(){return this.data+A(this.pending)}},ERR_BAD_FORMAT:ar,ERR_CENTRAL_DIRECTORY_NOT_FOUND:lr,ERR_DUPLICATED_NAME:Ir,ERR_ENCRYPTED:dr,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:sr,ERR_EOCDR_NOT_FOUND:or,ERR_EOCDR_ZIP64_NOT_FOUND:ir,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ur,ERR_HTTP_RANGE:Jt,ERR_INVALID_COMMENT:Lr,ERR_INVALID_ENCRYPTION_STRENGTH:Ur,ERR_INVALID_ENTRY_COMMENT:Pr,ERR_INVALID_ENTRY_NAME:Dr,ERR_INVALID_EXTRAFIELD_DATA:Or,ERR_INVALID_EXTRAFIELD_TYPE:Mr,ERR_INVALID_PASSWORD:_e,ERR_INVALID_SIGNATURE:ze,ERR_INVALID_VERSION:Nr,ERR_ITERATOR_COMPLETED_TOO_SOON:Qt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:cr,ERR_SPLIT_ZIP_FILE:mr,ERR_UNSUPPORTED_COMPRESSION:pr,ERR_UNSUPPORTED_ENCRYPTION:hr,ERR_UNSUPPORTED_FORMAT:Fr,HttpRangeReader:class extends En{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},HttpReader:En,Reader:sn,SplitDataReader:Cn,SplitDataWriter:Rn,SplitZipReader:Pn,SplitZipWriter:Dn,TextReader:dn,TextWriter:class extends un{constructor(e){super(e),n.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new y(((a,o)=>{n.assign(t,{onload:({target:e})=>a(e.result),onerror:()=>o(t.error)}),t.readAsText(r,e)}))}}},Uint8ArrayReader:class extends sn{constructor(e){super(),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},Uint8ArrayWriter:Tn,Writer:ln,ZipReader:class{constructor(e,t={}){n.assign(this,{reader:zn(e),options:t,config:he()})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:a}=t;if(await _n(r),r.size!==ae&&r.readUint8Array||(r=new cn(await new u(r.readable).blob()),await _n(r)),r.size=0;e--)if(i[e]==o[0]&&i[e+1]==o[1]&&i[e+2]==o[2]&&i[e+3]==o[3])return{offset:a+e,buffer:i.slice(e,e+r).buffer}}}(r,q,r.size,H,1048560);if(!o){throw Rr(zr(await Ln(r,0,4)))==M?new h(mr):new h(or)}const s=zr(o);let l=Rr(s,12),c=Rr(s,16);const d=o.offset,m=Cr(s,20),f=d+H+m;let g=Cr(s,4);const b=r.lastDiskNumber||0;let w=Cr(s,6),k=Cr(s,8),v=0,x=0;if(c==I||l==I||k==L||w==L){const e=zr(await Ln(r,o.offset-20,20));if(Rr(e,0)!=j)throw new h(ir);c=_r(e,8);let t=await Ln(r,c,56,-1),n=zr(t);const a=o.offset-20-56;if(Rr(n,0)!=B&&c!=a){const e=c;c=a,v=c-e,t=await Ln(r,c,56,-1),n=zr(t)}if(Rr(n,0)!=B)throw new h(sr);g==L&&(g=Rr(n,16)),w==L&&(w=Rr(n,20)),k==L&&(k=_r(n,32)),l==I&&(l=_r(n,40)),c-=l}if(b!=g)throw new h(mr);if(c<0||c>=r.size)throw new h(ar);let A=0,S=await Ln(r,c,l,w),E=zr(S);if(l){const e=o.offset-l;if(Rr(E,A)!=F&&c!=e){const t=c;c=e,v=c-t,S=await Ln(r,c,l,w),E=zr(S)}}const T=o.offset-c-(r.lastDiskOffset||0);if(l!=T&&T>=0&&(l=T,S=await Ln(r,c,l,w),E=zr(S)),c<0||c>=r.size)throw new h(ar);const C=Ar(t,e,"filenameEncoding"),R=Ar(t,e,"commentEncoding");for(let o=0;os.getData(e,D,t),A=b;const{onprogress:N}=e;if(N)try{await N(o+1,k,new rr(s))}catch(e){}yield D}const _=Ar(t,e,"extractPrependedData"),z=Ar(t,e,"extractAppendedData");return _&&(t.prependedData=x>0?await Ln(r,0,x):new p),t.comment=m?await Ln(r,d+H,m):new p,z&&(t.appendedData=f{Gt(e),e.terminate()}))}});async function na(e,{password:t,prompt:n=(()=>{}),shadowRootScriptURL:r,zipOptions:a={useWebWorkers:!1},noBlobURL:o}={}){const i={gif:"image/gif",jpg:"image/jpeg",png:"image/png",tif:"image/tiff",tiff:"image/tiff",bmp:"image/bmp",ico:"image/vnd.microsoft.icon",webp:"image/webp",svg:"image/svg+xml",avi:"video/x-msvideo",ogv:"video/ogg",mp4:"video/mp4",mpeg:"video/mpeg",ts:"video/mp2t",webm:"video/webm","3gp":"video/3gpp","3g2":"video/3gpp",mp3:"audio/mpeg",oga:"audio/ogg",mid:"audio/midi",midi:"audio/midi",opus:"audio/opus",wav:"audio/wav",weba:"audio/webm"},s=/stylesheet_[0-9]+\.css/,l=/scripts\/[0-9]+\.js/,c=/^([0-9_]+\/)?index\.html$/,u=/index\.html$/,d=/frames\//,h=";charset=utf-8";Array.isArray(e)&&(e=new Blob([new Uint8Array(e)])),zip.configure(a);const p=new zip.BlobReader(e),m=new zip.ZipReader(p),f=await m.getEntries(),g={password:t};let b,y,w,k=[];await Promise.all(f.map((async e=>{const{filename:t}=e;let r,a,c,p;if(!g.password&&e.encrypted&&(g.password=n("Please enter the password to view the page")),t.match(u)||t.match(s)||t.match(l))r=new zip.TextWriter,c=await e.getData(r,g),t.match(u)?p="text/html"+h:(t.match(s)?p="text/css"+h:t.match(l)&&(p="text/javascript"+h),a=void 0!==c?o?await v(c,p):URL.createObjectURL(new Blob([c],{type:p})):"data:text/plain,");else{const n=t.match(/\.([^.]+)/);if(p=n&&n[1]&&i[n[1]]?i[n[1]]:"application/octet-stream",t.match(d)||o)a=await e.getData(new zip.Data64URIWriter(p),g);else{const t=await e.getData(new zip.BlobWriter(p),g);a=URL.createObjectURL(t)}}const m=e.filename.match(/^([0-9_]+\/)?(.*)$/)[2];k.push({filename:e.filename,name:m,url:e.comment,content:a,mimeType:p,textContent:c,parentResources:[]})}))),await m.close(),k=k.sort(((e,t)=>t.filename.length-e.filename.length));for(const e of k){let{textContent:t,mimeType:n,filename:a}=e;if(void 0!==t){let i="";const s=a.match(/(.*\/)[^/]+$/);if(s&&s[1]&&(i=s[1]),a.match(c)&&(y=t),!a.match(l)){const r=a;await Promise.all(k.map((async e=>{const{filename:n,parentResources:a,content:o}=e;if(n.startsWith(i)&&n!=r){const e=n.substring(i.length);if(!e.match(/manifest\.json$/)){-1!=t.indexOf(e)&&(a.push(r),t=t.replaceAll(e,o))}}}))),a.match(u)||a.match(d)||o?e.content=await v(t,n):e.content=URL.createObjectURL(new Blob([t],{type:n})),e.textContent=t}a.match(u)&&r&&(e.textContent=t.replace(/