@zip.js/zip.js 2.8.44 → 2.8.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/deno.json +21 -1
  2. package/dist/zip-core-external.js +138 -123
  3. package/dist/zip-core-external.min.js +1 -1
  4. package/dist/zip-core.js +137 -96
  5. package/dist/zip-core.min.js +1 -1
  6. package/dist/zip-fs-core-external.js +190 -131
  7. package/dist/zip-fs-core-external.min.js +1 -1
  8. package/dist/zip-fs-core.js +189 -104
  9. package/dist/zip-fs-core.min.js +1 -1
  10. package/dist/zip-fs-external.js +211 -1725
  11. package/dist/zip-fs-external.min.js +1 -1
  12. package/dist/zip-fs-native.js +212 -1700
  13. package/dist/zip-fs-native.min.js +1 -1
  14. package/dist/zip-fs.js +211 -1699
  15. package/dist/zip-fs.min.js +1 -1
  16. package/dist/zip-legacy.js +139 -98
  17. package/dist/zip-legacy.min.js +1 -1
  18. package/dist/zip-native.js +139 -98
  19. package/dist/zip-native.min.js +1 -1
  20. package/dist/zip-web-worker-native.js +1 -1
  21. package/dist/zip-web-worker.js +1 -1
  22. package/dist/zip.js +138 -97
  23. package/dist/zip.min.js +1 -1
  24. package/eslint.config.mjs +31 -2
  25. package/index-native.cjs +212 -1700
  26. package/index-native.min.js +1 -1
  27. package/index.cjs +211 -1699
  28. package/index.d.cts +49 -1
  29. package/index.d.ts +49 -1
  30. package/index.min.js +1 -1
  31. package/lib/core/codec-worker.js +2 -2
  32. package/lib/core/constants.js +4 -0
  33. package/lib/core/options.js +2 -0
  34. package/lib/core/streams/aes-crypto-stream.js +15 -18
  35. package/lib/core/streams/codec-stream.js +2 -2
  36. package/lib/core/streams/zip-entry-stream.js +5 -10
  37. package/lib/core/util/mime-type-data.js +3 -0
  38. package/lib/core/util/mime-type.js +23 -1596
  39. package/lib/core/web-worker-base.js +2 -2
  40. package/lib/core/web-worker-inline-native.js +1 -1
  41. package/lib/core/web-worker-inline-wasm.js +1 -1
  42. package/lib/core/zip-entry.js +8 -1
  43. package/lib/core/zip-fs.js +62 -5
  44. package/lib/core/zip-reader.js +45 -17
  45. package/lib/core/zip-writer.js +58 -44
  46. package/lib/zip-core-external.js +2 -0
  47. package/lib/zip-fs-core-external.js +2 -0
  48. package/lib/zip-fs-external.js +2 -0
  49. package/lib/zip-mime-types.js +2 -0
  50. package/package.json +9 -3
  51. package/worker-message-property-names.js +1 -1
@@ -1 +1 @@
1
- ((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).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:a,Math:o,Date:i,Map:c,Set:l,Response:d,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:b,TextEncoder:g,TextDecoder:z,document:F,crypto:S,btoa:x,TransformStream:R,ReadableStream:D,WritableStream:E,CompressionStream:k,DecompressionStream:v,navigator:C,Worker:M}="undefined"!=typeof globalThis?globalThis:this||self;var T=void 0!==F?F.currentScript:null;const U=4294967295,N=65535,O=255,W=67324752,V=134695760,I=V,L=33639248,Z=101010256,A=101075792,P=117853008,H=22,G=20,j=21589,Y=2048,B=16384,K=2048,J=1024,X="/",Q=30,q=new i(2107,11,31,23,59,58),_=new i(1980,0,1),$=void 0,ee=1/0,te="undefined",ne="function",re=new f;let se=2;try{typeof C!=te&&C.hardwareConcurrency&&(se=C.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof k!=te&&k,DecompressionStream:typeof v!=te&&v},oe=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],ie={...ae};function ce(){return ie}function le(e){return o.max(e.chunkSize,64)}function de(e){for(const t of oe){const n=e[t];n!==$&&(ie[t]=n)}}function ue(e){for(const t of oe){const n=e[t];n!==$&&(ae[t]=n)}de(e)}const we=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],fe=[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],pe=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],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],me=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const be=new f(30).fill(5);function ge(e){const t=new p(16);for(const n of e)t[n]++;t[0]=0;const n=new p(17);for(let e=1;15>=e;e++)n[e+1]=n[e]+t[e];const r=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(r[n[e[t]]++]=t);return{o:t,symbols:r}}const ze="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Fe="Invalid codec definition",Se="Reserved compression method",xe="Invalid codec module",Re="string",De=[0,8,9,99],Ee=new c,ke=new c;function ve(e){return Ee.get(e)}function Ce(e){return ke.get(e)}function Me(e,t){const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=ne&&typeof r!=ne)throw new w(xe);ke.set(e,{CompressionStream:n,DecompressionStream:r})}const Te=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Te[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Te[t-1][e];Te[t][e]=n>>>8^Te[0][255&n]}const[Ue,Ne,Oe,We,Ve,Ie,Le,Ze]=Te;class Ae{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,n),a=n-8;for(;a>=r;r+=8){const e=t^s.getInt32(r,!0),n=s.getInt32(r+4,!0);t=Ze[255&e]^Le[e>>>8&255]^Ie[e>>>16&255]^Ve[e>>>24&255]^We[255&n]^Oe[n>>>8&255]^Ne[n>>>16&255]^Ue[n>>>24&255]}}for(;n>r;r++)t=t>>>8^Ue[255&(t^e[r])];this.l=t}get(){return~this.l}}class Pe extends R{constructor(){let e;const t=new Ae;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new f(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function He(e){if(typeof g==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new g).encode(e)}function Ge(e,t){const n=new f(e.length+t.length);return n.set(e),n.set(t,e.length),n}function je(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Ye(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Be={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Be.h(n);return 32===r?e.concat(t):Be.m(t,r,0|n,e.slice(0,e.length-1))},F(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Be.h(n)},S(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,o.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Be.R(t,e[n-1]&2147483648>>t-1,1)),e},R:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,h:e=>o.round(e/1099511627776)||32,m(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<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Be.h(s);return r.push(Be.R(t+a&31,t+a>32?n:r.pop(),1)),r}},Ke={bytes:{D(e){const t=Be.F(e)/8,n=new f(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},v(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Be.R(8*(3&n),r)),t}}},Je=class{constructor(e){const t=this;t.blockSize=512,t.C=[1732584193,4023233417,2562383102,271733878,3285377520],t.M=[1518500249,1859775393,2400959708,3395469782],e?(t.T=e.T.slice(0),t.U=e.U.slice(0),t.N=e.N):t.reset()}reset(){const e=this;return e.T=e.C.slice(0),e.U=[],e.N=0,e}update(e){const t=this;"string"==typeof e&&(e=Ke.O.v(e));const n=t.U=Be.concat(t.U,e),r=t.N,s=t.N=r+Be.F(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const a=new h(n);let o=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t.W(a.subarray(16*o,16*(o+1))),o+=1;return n.splice(0,16*o),t}V(){const e=this;let t=e.U;const n=e.T;t=Be.concat(t,[Be.R(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(o.floor(e.N/4294967296)),t.push(0|e.N);t.length;)e.W(t.splice(0,16));return e.reset(),n}I(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}L(e,t){return t<<e|t>>>32-e}W(e){const n=this,r=n.T,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=r[0],i=r[1],c=r[2],l=r[3],d=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n.L(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n.L(5,a)+n.I(e,i,c,l)+d+s[e]+n.M[o.floor(e/20)]|0;d=l,l=c,c=n.L(30,i),i=a,a=t}r[0]=r[0]+a|0,r[1]=r[1]+i|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+d|0}},Xe={importKey:e=>new Xe.Z(Ke.bytes.v(e)),A(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new w("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,o,i,c,l;const d=new ArrayBuffer(s),u=new m(d);let f=0;const p=Be;for(t=Ke.bytes.v(t),l=1;(s||1)>f;l++){for(a=o=e.encrypt(p.concat(t,[l])),i=1;n>i;i++)for(o=e.encrypt(o),c=0;c<o.length;c++)a[c]^=o[c];for(i=0;(s||1)>f&&i<a.length;i++)u.setInt32(f,a[i]),f+=4}return d.slice(0,r/8)},Z:class{constructor(e){const t=this,n=t.P=Je,r=[[],[]];t.H=[new n,new n];const s=t.H[0].blockSize/32;e.length>s&&(e=(new n).update(e).V());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.H[0].update(r[0]),t.H[1].update(r[1]),t.G=new n(t.H[0])}reset(){const e=this;e.G=new e.P(e.H[0]),e.j=!1}update(e){this.j=!0,this.G.update(e)}digest(){const e=this,t=e.G.V(),n=new e.P(e.H[1]).update(t).V();return e.reset(),n}encrypt(e){if(this.j)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Qe=typeof S!=te&&typeof S.getRandomValues==ne,qe="Invalid password",_e="Invalid signature",$e=_e,et="zipjs-abort-check-password";function tt(e){if(Qe)return S.getRandomValues(e);throw new w("Crypto API not supported")}const nt=16,rt={name:"PBKDF2"},st=n.assign({hash:{name:"HMAC"}},rt),at=n.assign({iterations:1e3,hash:{name:"SHA-1"}},rt),ot=["deriveBits"],it=[8,12,16],ct=[16,24,32],lt=10,dt=[0,0,0,0],ut=typeof S!=te,wt=ut&&S.subtle,ft=ut&&typeof wt!=te,pt=Ke.bytes,ht=class{constructor(e){const t=this;t.Y=[[[],[],[],[],[]],[[],[],[],[],[]]],t.Y[0][0][0]||t.B();const n=t.Y[0][4],r=t.Y[1],s=e.length;let a,o,i,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.M=[o=e.slice(0),i=[]],a=s;4*s+28>a;a++){let e=o[a-1];(a%s===0||8===s&&a%s===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),o[a]=o[a-s]^e}for(let e=0;a;e++,a--){const t=o[3&e?a:a-4];i[e]=4>=a||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.K(e,0)}decrypt(e){return this.K(e,1)}B(){const e=this.Y[0],t=this.Y[1],n=e[4],r=t[4],s=[],a=[];let o,i,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=o=0;!n[d];d^=i||1,o=a[o]||1){let a=o^o<<1^o<<2^o<<3^o<<4;a=a>>8^255&a^99,n[d]=a,r[a]=d,l=s[c=s[i=s[d]]];let u=16843009*l^65537*c^257*i^16843008*d,w=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][d]=w=w<<24^w>>>8,t[n][a]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}K(e,t){if(4!==e.length)throw new w("invalid aes block size");const n=this.M[t],r=n.length/4-2,s=[0,0,0,0],a=this.Y[t],o=a[0],i=a[1],c=a[2],l=a[3],d=a[4];let u,f,p,h=e[0]^n[0],m=e[t?3:1]^n[1],y=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)u=o[h>>>24]^i[m>>16&255]^c[y>>8&255]^l[255&b]^n[g],f=o[m>>>24]^i[y>>16&255]^c[b>>8&255]^l[255&h]^n[g+1],p=o[y>>>24]^i[b>>16&255]^c[h>>8&255]^l[255&m]^n[g+2],b=o[b>>>24]^i[h>>16&255]^c[m>>8&255]^l[255&y]^n[g+3],g+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&b]^n[g++],u=h,h=m,m=y,y=b,b=u;return s}},mt=class{constructor(e,t){this.J=e,this.X=t,this._=t}reset(){this._=this.X}update(e){return this.$(this.J,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{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}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,n){let r;if(!(r=t.length))return[];const s=Be.F(t);for(let s=0;r>s;s+=4){this.te(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 Be.S(t,s)}},yt=Xe.Z;let bt=ut&&ft&&typeof wt.importKey==ne,gt=ut&&ft&&typeof wt.deriveBits==ne;class zt extends R{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){St(this,e,t,n)},async transform(e,t){const n=this,{password:s,strength:a,ne:o,ready:i}=n;s?(await(async(e,t,n,r)=>{const s=await Rt(e,t,n,Et(r,0,it[t])),a=Et(r,it[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new w(qe)})(n,a,s,Et(e,0,it[a]+2)),e=Et(e,it[a]+2),r?t.error(new w(et)):o()):await i;const c=new f(e.length-lt-(e.length-lt)%nt);t.enqueue(xt(n,e,c,0,lt,!0))},async flush(e){const{re:t,se:n,pending:r,ready:a}=this;if(n&&t){await a;const o=Et(r,0,r.length-lt),i=Et(r,r.length-lt);let c=re;if(o.length){const e=vt(pt,o);n.update(e);const r=t.update(e);c=kt(pt,r)}const l=Et(kt(pt,n.digest()),0,lt);let d=r.length<lt?1:0;for(let e=0;lt>e;e++)d|=l[e]^i[e];if(d&&s)throw new w($e);e.enqueue(c)}}})}}class Ft extends R{constructor({password:e,rawPassword:t,encryptionStrength:n}){let r;super({start(){St(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:s,ne:a,ready:o}=n;let i=re;r?(i=await(async(e,t,n)=>{const r=tt(new f(it[t]));return Ge(r,await Rt(e,t,n,r))})(n,s,r),a()):await o;const c=new f(i.length+e.length-e.length%nt);c.set(i,0),t.enqueue(xt(n,e,c,i.length,0))},async flush(e){const{re:t,se:n,pending:s,ready:a}=this;if(n&&t){await a;let o=re;if(s.length){const e=t.update(vt(pt,s));n.update(e),o=kt(pt,e)}r.signature=kt(pt,n.digest()).slice(0,lt),e.enqueue(Ge(o,r.signature))}}}),r=this}}function St(e,t,r,s){n.assign(e,{ready:new b(t=>e.ne=t),password:Dt(t,r),strength:s-1,pending:re})}function xt(e,t,n,r,s,a){const{re:o,se:i,pending:c}=e;c.length&&(t=Ge(c,t));const l=t.length-s;let d;for(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new f(t)).set(n,0)}return e})(n,r+(l-l%nt)),d=0;l-nt>=d;d+=nt){const e=vt(pt,Et(t,d,d+nt));a&&i.update(e);const s=o.update(e);a||i.update(s),n.set(kt(pt,s),d+r)}return e.pending=Et(t,d),n}async function Rt(e,r,s,a){e.password=null;const o=await(async(e,t,n,r,s)=>{if(!bt)return Xe.importKey(t);try{return await wt.importKey("raw",t,n,!1,s)}catch{return bt=!1,Xe.importKey(t)}})(0,s,st,0,ot),i=await(async(e,t,n)=>{if(!gt)return Xe.A(t,e.salt,at.iterations,n);try{return await wt.deriveBits(e,t,n)}catch{return gt=!1,Xe.A(t,e.salt,at.iterations,n)}})(n.assign({salt:a},at),o,8*(2*ct[r]+2)),c=new f(i),l=vt(pt,Et(c,0,ct[r])),d=vt(pt,Et(c,ct[r],2*ct[r])),u=Et(c,2*ct[r]);return n.assign(e,{keys:{key:l,ae:d,passwordVerification:u},re:new mt(new ht(l),t.from(dt)),se:new yt(d)}),u}function Dt(e,t){return t===$?He(e):t}function Et(e,t,n){return e.subarray(t,n)}function kt(e,t){return e.D(t)}function vt(e,t){return e.v(t)}class Ct extends R{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Tt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Ut(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new w(qe);e=e.subarray(12)}r?t.error(new w(et)):t.enqueue(Ut(n,e))}})}}class Mt extends R{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Tt(this,e,t,n)},transform(e,t){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=tt(new f(12));t[11]=n.passwordVerification,r=new f(e.length+t.length),r.set(Nt(n,t),0),s=12}else r=new f(e.length),s=0;r.set(Nt(n,e),s),t.enqueue(r)}})}}function Tt(e,t,r,s){n.assign(e,{password:t,rawPassword:r,passwordVerification:s}),((e,t,r)=>{const s=[305419896,591751049,878082192];if(n.assign(e,{keys:s,oe:new Ae(s[0]),ie:new Ae(s[2])}),r)for(let t=0;t<r.length;t++)Ot(e,r[t]);else for(let n=0;n<t.length;n++)Ot(e,t.charCodeAt(n))})(e,t,r)}function Ut(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Wt(e)^t[r],Ot(e,n[r]);return n}function Nt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Wt(e)^t[r],Ot(e,t[r]);return n}function Ot(e,t){let[,n]=e.keys;e.oe.append([t]);const r=~e.oe.get();n=It(o.imul(It(n+Vt(r)),134775813)+1),e.ie.append([n>>>24]);const s=~e.ie.get();e.keys=[r,n,s]}function Wt(e){const t=2|e.keys[2];return Vt(o.imul(t,1^t)>>>8)}function Vt(e){return 255&e}function It(e){return 4294967295&e}function Lt(e){if(e instanceof D)return e;const t=e.getReader();return new D({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function Zt(e){if(e instanceof E)return e;const t=e.getWriter();return new E({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const At="Invalid uncompressed size",Pt="Invalid compressed data",Ht=_e,Gt="deflate-raw",jt="gzip",Yt=[31,139,8];class Bt extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:n,CompressionStream:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:o,zipCrypto:i,computeCrc32:c,level:l,deflate64:d,format:u,compressionMethod:w}=e,f=this;let p,h,y,b=super.readable;const g=u&&Ce(u),z=c&&s&&!d&&!g&&(!a||i)&&!(!o||!r);if(a&&!i||!c||z||(p=new Pe,b=tn(b,p)),s)if(g)b=nn(b,$t(g.CompressionStream,u,{level:l,chunkSize:t,compressionMethod:w}));else if(z)y=new Kt,b=nn(b,new r(jt)),b=tn(b,y);else try{b=en(b,o,{level:l,chunkSize:t},r,n)}catch(e){let t;try{t=new r(jt)}catch{throw e}b=nn(b,t),b=tn(b,new Kt)}a&&(i?b=tn(b,new Mt(e)):(h=new Ft(e),b=tn(b,h))),_t(f,b,()=>{let e;a&&!i&&(e=h.signature),a&&!i||!c||(e=z?y.signature:new m(p.value.buffer).getUint32(0)),f.signature=e})}}class Kt extends R{constructor(){let e,t=10,n=new f(0);super({transform(e,r){if(t){const n=o.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const s=n.length+e.length;if(8>=s)return void(n=Ge(n,e));const a=s-8,i=o.min(a,n.length);r.enqueue(Ge(n.subarray(0,i),e.subarray(0,a-i))),n=Ge(n.subarray(i),e.subarray(a-i))},flush(){const t=Ye(n);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Jt extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:o,signature:i,compressed:c,useCompressionStream:l,deflate64:d,format:u,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let g,z,F=super.readable;if(a&&(s?F=tn(F,new Ct(e)):(z=new zt(e),F=tn(F,z))),c){const e=u&&Ce(u);if(e)F=nn(F,$t(e.DecompressionStream,u,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{F=en(F,l,{chunkSize:t,deflate64:d},r,n)}catch(e){if(d||y===$)throw e;let t;try{t=new r(jt)}catch{throw e}F=((e,t,n)=>{const r=new Ae;let s,a,o,i=0,c=!1;const l=new b((e,t)=>{a=e,o=t});l.catch(()=>{}),n||a();const d=new R({start(e){const t=new f(10);t.set(Yt),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await l}finally{h()}const t=new f(8),s=Ye(t);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),e.enqueue(t)},cancel(e){o(e)}}),u=new R({transform(e,t){r.append(e),i+=e.length,n>i?c&&p():a(),t.enqueue(e)},cancel(e){o(e)}});return e=tn(e,d),tn(e=nn(e,t),u);function p(){h(),s=setTimeout(()=>o(new w(At)),5e3)}function h(){clearTimeout(s)}})(F,t,y)}F=(e=>{const t=e.getReader();return new D({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(Pt);throw t.cause=e,t}const{value:r,done:s}=n;s?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(F)}o&&(g=new Pe,F=tn(F,g)),_t(this,F,()=>{if(o){const e=new m(g.value.buffer);if(i!=e.getUint32(0,!1))throw new w(Ht)}})}}const Xt=new c;function Qt(e,t){if(!e)return!1;let n=Xt.get(e);n||(n=new c,Xt.set(e,n));let r=n.get(t);if(r===$){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r}function qt(e){return Qt(e,Gt)}function _t(e,t,r){t=tn(t,new R({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function $t(e,t,n){if(!e)throw new w("Compression method not supported");return new e(t,n)}function en(e,t,n,r,s){const a=t&&r?r:s||r,o=n.deflate64?"deflate64-raw":Gt;let i;try{i=new a(o,n)}catch(e){if(!t||!s||a==s)throw e;i=new s(o,n)}return nn(e,i)}function tn(e,t){return Lt(e).pipeThrough(t)}function nn(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const rn="data",sn="deflate",an="inflate";class on extends R{constructor(e,t){super({});const r=this,{codecType:s}=e;let a;s.startsWith(sn)?a=Bt:s.startsWith(an)&&(a=Jt),r.outputSize=0;let o=0;const i=new a(e,t),c=super.readable,l=new R({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:o})}}),d=new R({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==$&&r.outputSize>e.outputSize))throw new w(At)},flush(){const{signature:e}=i;n.assign(r,{signature:e,inputSize:o})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(l).pipeThrough(i).pipeThrough(d)})}}class cn extends R{constructor(e){const t=[];let n=0;function r(){const r=new f(e);let s=0;for(;e>s;){const n=t[0],a=e-s;n.length>a?(r.set(n.subarray(0,a),s),t[0]=n.subarray(a),s+=a):(r.set(n,s),s+=n.length,t.shift())}return n-=e,r}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),n+=s.length;n>e;)a.enqueue(r())},flush(e){n&&e.enqueue(((e,t)=>{const n=new f(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,n))}})}}const ln={type:"module"},dn="error";let un,wn,fn,pn,hn=!0;try{hn=typeof structuredClone==ne&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class mn{constructor(e,{readable:t,writable:r},{options:s,config:a,ce:o,useWebWorkers:i,transferStreams:c,workerURI:l},d){const{signal:u}=o;return n.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new cn(le(a))).pipeThrough(new yn(o),{signal:u}),writable:r,options:n.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new b(t=>{const{ue:n,le:r}=e;n?(r?e.we=t:(n.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{we:t}=e;t&&(e.we=null,e.he=!0,e.ue.terminate(),t()),e.le=!1,d(e)}}}),un===$&&(un=typeof M!=te),(i&&un?zn:gn)(e,a)}}class yn extends R{constructor({onstart:e,onprogress:t,size:n,onend:r}){let s=0;super({async start(){e&&await bn(e,n)},async transform(e,r){s+=e.length,t&&await bn(t,s,n),r.enqueue(e)},async flush(){r&&await bn(r,s)}})}}async function bn(e,...t){try{await e(...t)}catch{}}function gn(e,t){return{run:()=>Fn(e,t)}}function zn(e,t){const{baseURI:r,chunkSize:a,workerStartupTimeout:o}=t;let{wasmURI:i}=t;if(!e.fe){let c;typeof i==ne&&(i=i());try{c=xn(e.workerURI,r,e)}catch{return un=!1,gn(e,t)}n.assign(e,{ue:c,me:!1,he:!1,fe:{run:async()=>{try{return await(async(e,t)=>{let r,a;const o=new b((e,t)=>{r=e,a=t});n.assign(e,{reader:null,writer:null,ye:r,be:a,result:o});const{readable:i,options:c}=e,{writable:l,closed:d,ge:u}=(e=>{const t=new AbortController,{writable:n,readable:r}=new R,s=r.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:n,closed:s,ge:()=>t.abort()}})(e.writable);let f;try{f=En({type:"start",options:c,config:t,readable:i,writable:l},e)}catch(t){u();try{await d}catch{}throw e.pe(),t}f||n.assign(e,{reader:i.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.me||!s.isFinite(p)||0>p||(e.ze=setTimeout(()=>(e=>{if(e.ze=null,e.me)return;const{be:t,writer:n}=e;if(Sn(e),e.ue=null,t){const e=new w("Worker startup timeout");e.Fe=!0,t(e),n&&n.releaseLock()}})(e),p));try{const e=await o;return await h(),await d,e}catch(e){await h(),u();try{await d}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:a,wasmURI:i,baseURI:r,workerStartupTimeout:o})}catch(n){if(n&&n.Fe){un=!1;const{reader:n}=e;return n&&n.releaseLock(),e.reader=null,e.writer=null,Fn(e,t)}throw n}}}})}return e.fe}async function Fn({options:e,readable:t,writable:n,pe:r},s){let a;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(sn),n=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,r=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(n&&n.Se&&!qt(r))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.Se||(e.useCompressionStream=!0)}}a=new on(e,s),await t.pipeThrough(a).pipeThrough(new cn(le(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:r,inputSize:o,outputSize:i}=a;return{signature:r,inputSize:o,outputSize:i}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{r()}}function Sn(e){const{ue:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function xn(e,t,r,s,a=!0){let o,i,c;if(fn===$||wn!==e){const n=typeof e==ne;i=n?e(a):e;const l=i.startsWith("data:"),d=i.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=ln);try{o=new M(i,c)}catch(a){if(d)try{u.revokeObjectURL(i)}catch{}if(n&&d)return xn(e,t,r,s,!1);if(s)throw a;return xn(e,t,r,!0,!1)}}else{s===$&&(s=!0),s&&(c=ln);try{i=new u(i,t)}catch{}try{o=new M(i,c)}catch(n){if(s)throw n;return xn(e,t,r,!1,a)}}wn=e,fn=i,pn=c}else o=new M(fn,pn);return o.addEventListener("message",e=>{r.me=!0,Rn(r),(async({data:e},t)=>{const{type:r,value:s,messageId:a,result:o,error:i}=e,{reader:c,writer:l,ye:d,be:u,pe:p,de:h}=t,m=()=>t.de!=h;try{if(i){const{message:e,stack:t,code:r,name:s,outputSize:a,cause:o}=i,c=new w(e);n.assign(c,{stack:t,code:r,name:s,outputSize:a}),o&&(c.cause=n.assign(new w(o.message),{name:o.name})),y(c)}else{if("pull"==r){const{value:e,done:n}=await c.read();m()||En({type:rn,value:e,done:n,messageId:a},t)}r==rn&&(await l.ready,await l.write(new f(s)),m()||En({type:"ack",messageId:a},t)),"close"==r&&y(null,o)}}catch(i){m()||(Sn(t),y(i))}function y(e,t){m()||(e?u(e):d(t),l&&l.releaseLock(),p())}})(e,r)}),o.addEventListener(dn,e=>Dn(e,r)),o.addEventListener("messageerror",e=>Dn(e,r)),o}function Rn(e){const{ze:t}=e;t&&(clearTimeout(t),e.ze=null)}function Dn(e,t){e.preventDefault&&e.preventDefault(),Rn(t);const{me:r,be:s,writer:a,pe:o}=t;if(Sn(t),r||(t.ue=null),s){let t=e.error||new w(e.message||dn);r||(t=n.assign(new w(t.message||dn),{Fe:!0})),s(t),a&&a.releaseLock(),r&&o()}}function En(e,{ue:t,writer:n,transferStreams:r,me:s}){try{const{value:n,readable:a,writable:o}=e,i=[];if(n&&(e.value=je(n),i.push(e.value.buffer)),r&&hn&&s?(a&&i.push(a),o&&i.push(o)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{hn=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),e}}let kn=[];const vn=[];let Cn,Mn,Tn=0;async function Un(e,t){const{options:n,config:r}=t,{transferStreams:a,useWebWorkers:o,useCompressionStream:i,compressed:c,checkCrc32:l,computeCrc32:d,encrypted:w,format:f,codecURI:p}=n,{workerURI:h,maxWorkers:m}=r;f&&(p&&(n.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(p,r.baseURI)),await(async(e,t)=>{!ke.has(e)&&t&&Me(e,await(import(/* webpackIgnore: true */ /* @vite-ignore */t)))})(f,n.codecURI)),t.transferStreams=a||a===$&&r.transferStreams;const y=!(c||l||d||w),g=f===$||!!n.codecURI;return t.useWebWorkers=!y&&g&&(o||o===$&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&h?h:$,n.useCompressionStream=i||i===$&&r.useCompressionStream,(await(async()=>{const n=kn.find(e=>!e.le);if(n)return In(n),new mn(n,e,t,z);if(kn.length<m){const n={xe:Tn};return Tn++,kn.push(n),new mn(n,e,t,z)}return new b(n=>{vn.push({resolve:n,stream:e,Re:t}),Mn=r.workerStarvationTimeout,Nn()})})()).run();function z(e){if(On(),vn.length){const[{resolve:t,stream:n,Re:r}]=vn.splice(0,1);t(new mn(e,n,r,z)),Nn()}else e.ue?(In(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.he?e.he=!1:e.De=setTimeout(async()=>{kn=kn.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):kn=kn.filter(t=>t!=e)}}function Nn(){!Cn&&vn.length&&s.isFinite(Mn)&&Mn>=0&&(Cn=setTimeout(Wn,Mn))}function On(){Cn&&(clearTimeout(Cn),Cn=null)}function Wn(){if(Cn=null,vn.length){const[{resolve:e,stream:t,Re:r}]=vn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:$});e(new mn({},t,s,Vn)),Nn()}}function Vn(){On(),Nn()}function In(e){const{De:t}=e;t&&(clearTimeout(t),e.De=null)}const Ln="HTTP error ",Zn="HTTP Range not supported",An="HTTP resource changed",Pn="Writer iterator completed too soon",Hn="Writer not initialized",Gn="Content-Range",jn="Range",Yn="GET",Bn="bytes",Kn=16777216,Jn="writable",Xn=Symbol();class Qn{constructor(){this.size=0}init(){this.initialized=!0}}class qn extends Qn{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=le(ce())}={}){const r=this;let s=0;return new D({async pull(a){const i=t===$?n:o.min(n,t-s),c=await Er(r,e+s,i);a.enqueue(c),s+n>t||t===$&&!c.length&&i?a.close():s+=n}})}}class _n extends Qn{constructor(){super();const e=this,t=new E({write(t){if(!e.initialized)throw new w(Hn);return e.writeUint8Array(je(t))}});n.defineProperty(e,Jn,{get:()=>t})}writeUint8Array(){}}let $n,er;class tr extends qn{constructor(e){super(),n.assign(this,{blob:e,size:e.size}),er||(er=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();$n=1==t}catch{$n=!1}})())}createReadable(e){const{blob:t,size:n}=this,{offset:r=0,size:s=n-r}=e||{};return r||n>s?$n?Lt(t.slice(r,r+s).stream()):super.createReadable(e):Lt(t.stream())}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,r)),new f(a)}}class nr extends Qn{constructor(e){super();const t=this,r=new R;if(n.defineProperty(t,Jn,{get:()=>r.writable}),typeof y.prototype.stream!=ne||new y([]).stream()instanceof D){const n=[];e&&n.push(["Content-Type",e]),t.blob=new d(r.readable,{headers:n}).blob()}else{const n=[];t.blob=r.readable.pipeTo(new E({write(e){n.push(e)}})).then(()=>new y(n,{type:e}))}t.blob.catch(()=>{})}getData(){return this.blob}}class rr extends qn{constructor(e,t){super(),ar(this,e,t)}async init(){await or(this,br,pr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:a}=t;if((n||r)&&a!==$){const{offset:n=0,size:r=a-n}=e||{};if(r>0&&a>n)return((e,t,n)=>{let r,a=t,i=0,c=n;return new D({start:()=>l(),async pull(e){r||await l();const{value:t,done:n}=await r.read();if(n)throw new w(Zn);const s=t.length>i?t.subarray(0,i):t;i-=s.length,c-=s.length,s.length&&e.enqueue(s),i||(await(async()=>{const e=r;r=$,await e.cancel()})(),c||e.close())},cancel:e=>r&&r.cancel(e)});async function l(){const t=o.min(e.maximumRangeSize,c),n=await br(Yn,e,wr(e,a,t));if(206!=n.status)throw new w(Zn);const l=n.headers.get(Gn);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new w(Zn)}ur(e,n),dr(e,n),a+=t,i=t,r=n.body.getReader()}})(t,n,o.min(r,a-n))}return super.createReadable(e)}readUint8Array(e,t){return ir(this,e,t,br,pr)}}class sr extends qn{constructor(e,t){super(),ar(this,e,t)}async init(){await or(this,gr,hr),super.init()}readUint8Array(e,t){return ir(this,e,t,gr,hr)}}function ar(e,t,r){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:l=Kn,fetch:d}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:l,fetch:d})}async function or(e,t,n){const{url:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:i}=e;if((e=>{const{baseURI:t}=ce(),{protocol:n}=new u(e,t);return"http:"==n||"https:"==n})(r)&&(a||o)&&(void 0===s||s)){const r=await t(Yn,e,wr(e,i?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(o||s&&s.toLowerCase()==Bn))throw new w(Zn);{if(i){const t=new f(await r.arrayBuffer());206==r.status&&t.length==H&&(e.Ee=t)}dr(e,r);const s=cr(r);s===$?await yr(e,t,n):e.size=s}}else await yr(e,t,n)}async function ir(e,t,n,r,a){const{useRangeHeader:o,forceRangeRequests:i,Ee:c,size:l,options:d}=e;if(o||i){if(c&&t==l-H&&n==H)return c;if(l>t&&0!==n){t+n>l&&(n=l-t);const a=await r(Yn,e,wr(e,t,n));if(206!=a.status)throw new w(Zn);const o=a.headers.get(Gn);if(o){const e=s(o.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(Zn)}ur(e,a),dr(e,a);const i=new f(await a.arrayBuffer());if(i.length!=n)throw new w(Zn);return i}return re}{const{data:r}=e;return r||await a(e,d),e.data.subarray(t,t+n)}}function cr(e){const t=e.headers.get(Gn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function lr({headers:e}){return{ke:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function dr(e,t){const{checkResourceChanges:n,ve:r}=e;n&&!r&&206==t.status&&(e.ve=lr(t))}function ur(e,t){const{checkResourceChanges:r,ve:s,size:a}=e;if(r){const e=cr(t);if(e!==$&&a!==$&&e!=a)throw new w(An);if(s){const e=lr(t);if(n.entries(s).some(([t,n])=>n!==$&&e[t]!==$&&n!=e[t]))throw new w(An)}}}function wr(e,t=0,r=1){return n.assign({},fr(e),{[jn]:Bn+"="+(0>t?t:t+"-"+(t+r-1))})}function fr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function pr(e){await mr(e,br)}async function hr(e){await mr(e,gr)}async function mr(e,t){const n=await t(Yn,e,fr(e));e.data=new f(await n.arrayBuffer()),e.size=e.data.length}async function yr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,fr(e)),a=r.headers.get("Content-Length");a&&!r.headers.get("Content-Encoding")?e.size=s(a):await n(e,e.options)}}async function br(e,{fetch:t=fetch,options:r,url:s},a){const o=await t(s,n.assign({},r,{method:e,headers:a}));if(400>o.status)return o;throw 416==o.status?new w(Zn):new w(Ln+(o.statusText||o.status))}function gr(e,{url:t},r){return new b((s,a)=>{const o=new XMLHttpRequest;if(o.addEventListener("load",()=>{if(400>o.status){const e=[];o.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)}),s({status:o.status,arrayBuffer:()=>o.response,headers:new c(e)})}else a(416==o.status?new w(Zn):new w(Ln+(o.statusText||o.status)))},!1),o.addEventListener("error",e=>a(e.detail?e.detail.error:new w("Network error")),!1),o.open(e,t),r)for(const e of n.entries(r))o.setRequestHeader(e[0],e[1]);o.responseType="arraybuffer",o.send()})}class zr extends qn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new sr(e,t):new rr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Fr extends qn{constructor(e){super(),this.Ce=e}async init(){const e=this,{Ce:t}=e;e.Me=0,await b.all(t.map(e=>Dr(e))),e.Te=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}Ue(e){const{Te:t,size:n}=this,r=t[e];return r===$?n:r}async readUint8Array(e,t){const n=this,{Ce:r}=this;let s,a=0,i=e;for(;r[a]&&i>=r[a].size;)i-=r[a].size,a++;const c=r[a];if(c){const r=c.size;if(i+t>r){const a=r-i;s=Ge(await Er(c,i,a),await n.readUint8Array(e+a,t-a))}else s=await Er(c,i,t)}else s=re;return n.Me=o.max(a,n.Me),s}}class Sr extends Qn{constructor(e,t=4294967295){super();const r=this;let s,a,o;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const i=new E({async write(t){if(t===Xn)return void(o&&await l());const{availableSize:n}=r;if(o)t.length<n?await c(t):(await c(t.subarray(0,n)),await l(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:i}=await e.next();if(i&&!n)throw new w(Pn);s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await Dr(s),a=n.writable,o=a.getWriter(),await this.write(t)}},async close(){o&&(await o.ready,await d())},async abort(e){o&&await o.abort(e)}});async function c(e){const t=e.length;t&&(await o.ready,await o.write(e),s.size+=t,r.availableSize-=t)}async function l(){await d(),r.diskOffset+=s.size,r.diskNumber++,o=null,r.availableSize=r.maxSize}async function d(){await o.close()}n.defineProperty(r,Jn,{get:()=>i})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Xn)}finally{e.releaseLock()}}}class xr{constructor(e){return t.isArray(e)&&(e=new Fr(e)),(e instanceof D||typeof e.getReader==ne)&&(e={readable:Lt(e)}),e}}class Rr{constructor(e){return e.writable===$&&typeof e.next==ne&&(e=new Sr(e)),(e instanceof E||typeof e.getWriter==ne)&&(e={writable:Zt(e)}),e.size===$&&(e.size=0),e}}async function Dr(e,t){if(!e.init||e.initialized)return b.resolve();await e.init(t)}function Er(e,t,n){return e.readUint8Array(t,n)}const kr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function vr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;n<e.length;n++)t+=kr[e[n]];return t}})(e):new z(t,{ignoreBOM:!0}).decode(e)}const Cr="filename",Mr="rawFilename",Tr="comment",Ur="rawComment",Nr="uncompressedSize",Or="compressedSize",Wr="offset",Vr="diskNumberStart",Ir="lastModDate",Lr="rawLastModDate",Zr="lastAccessDate",Ar="creationDate",Pr="rawCreationDate",Hr="internalFileAttributes",Gr="externalFileAttributes",jr="msdosAttributesRaw",Yr="msdosAttributes",Br="msDosCompatible",Kr="zip64",Jr="encrypted",Xr="version",Qr="versionMadeBy",qr="zipCrypto",_r="directory",$r="executable",es="compressionMethod",ts="signature",ns="extraField",rs="unixMode",ss="setuid",as="setgid",os="sticky",is=[Cr,Mr,Nr,Or,Ir,Lr,Tr,Ur,Zr,Ar,Pr,Wr,Vr,Hr,Gr,jr,Yr,Br,Kr,Jr,Xr,Qr,qr,_r,$r,es,ts,"crc32",ns,"extraFieldUnix","extraFieldInfoZip","uid","gid",rs,ss,as,os,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class cs{constructor(e){is.forEach(t=>this[t]=e[t])}}const ls="password",ds="rawPassword",us="passThrough",ws="signal",fs="checkAmbiguity",ps="useWebWorkers",hs="useCompressionStream",ms="transferStreams",ys="preventClose",bs="offset",gs="usdz",zs="strictness",Fs="strict",Ss="tolerant",xs="File format is not recognized",Rs="End of central directory not found",Ds="End of Zip64 central directory locator not found",Es="Central directory header not found",ks="Local file header not found",vs="Zip64 extra field not found",Cs="File contains encrypted entry",Ms="Encryption method not supported",Ts="Compression method not supported",Us="Split zip file",Ns="Overlapping entry found",Os="Ambiguous archive",Ws="Encrypted central directory is not supported",Vs="utf-8",Is="cp437",Ls=[[Nr,U],[Or,U],[Wr,U],[Vr,N]],Zs={[N]:{Ne:ua,bytes:4},[U]:{Ne:wa,bytes:8}};class As{constructor(e,t={}){n.assign(this,{reader:new xr(e),options:t,config:ce(),Oe:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await Dr(r),r.size!==$&&r.readUint8Array||(r=new tr(await new d(r.readable).blob()),await Dr(r)),r.size<H)throw new w(xs);const a=Qs(oa(t,e,zs),oa(t,e,fs)),i=a==Fs,c=a!=Ss,u=((e,t)=>e!==$?e:t==Fs?0:t==Ss?1/0:N)(oa(t,e,"maxAppendedDataSize"),a),{We:f,Ve:p}=await(async(e,t,n)=>{const{size:r}=e,s=o.min(r,65557),a={count:qs};let i,c,l=0;for await(const[n,o,d,u,w]of ta(e,s)){const s=da(n,u+20);if(w+H+s==r){const s=await ra(e,n,o,u,w,r,a);if(s==ea){if(i||(i=na(d,u,w)),l++,!t||l>1)break}else s!=$s||c||(c=na(d,u,w))}}return i||(i=c),i||(i=await(async(e,t,n)=>{const{size:r}=e,s=o.min(r,t==1/0?r:65557+t);let a,i;for await(const[t,o,c,l,d]of ta(e,s)){const s=na(c,l,d);a||(a=s);const u=await ra(e,t,o,l,d,r,n);if(u==ea)return s;u!=$s||i||(i=s)}return i||a})(e,n,a)),{We:i,Ve:l}})(r,c,u);if(!f)throw ua(Ye(await Er(r,0,4)))==V?new w(Us):new w(Rs);c&&p>1&&aa("multiple end of central directory records");const h=Ye(f);let m=ua(h,12),y=ua(h,16);const g=f.offset,z=da(h,20),F=g+H+z;r.size-F>u&&aa("appended data");let S=da(h,4);const x=r.Me||0;let D,E,k,v=da(h,6),C=da(h,10),M=0;const T=y==U||m==U||C==N||v==N;if(y!=U&&v!=N&&(y+=Xs(r,v)),T){const e=f.offset<G?re:await Er(r,f.offset-G,G),t=Ye(e);if(e.length==G&&ua(t,0)==P){y=Xs(r,ua(t,4))+wa(t,8);let e=await Er(r,y,56),n=Ye(e);const s=f.offset-G-56;if((56>e.length||ua(n,0)!=A)&&y!=s&&s>=0){const t=y;y=s,y>t&&(M=y-t),e=await Er(r,y,56),n=Ye(e)}if(56>e.length||ua(n,0)!=A)throw new w(Ds);E=!0,k=wa(n,4)>44,S==N?S=ua(n,16):i&&S!=ua(n,16)&&aa("mismatched zip64 end of central directory record"),v==N?v=ua(n,20):i&&v!=ua(n,20)&&aa("mismatched zip64 end of central directory record"),C==N?C=wa(n,32):i&&C!=wa(n,32)&&aa("mismatched zip64 end of central directory record"),m==U?m=wa(n,40):i&&m!=wa(n,40)&&aa("mismatched zip64 end of central directory record"),y=Xs(r,v)+wa(n,48)+M}}const W=m,I=f.offset-(E?76:0);if(y<r.size||(M=r.size-y-m-H,y=r.size-m-H),x!=S)throw new w(Us);if(0>y)throw new w(xs);let Z=0,j=await Er(r,y,m),Y=Ye(j);if(m){if(4>j.length)throw new w(xs);const e=I-m;if(y!=e&&v==S){let t=!(ua(Y,Z)==L);if(t||0>e||e+4>r.size||(t=ua(Ye(await Er(r,e,4)),0)==L),t){const t=y;y=e,y>t&&(M+=y-t),j=await Er(r,y,m),Y=Ye(j)}}}const Q=I-y;if(m==Q||0>Q||v!=S||(m=Q,j=await Er(r,y,m),Y=Ye(j)),0>y||y>=r.size)throw new w(xs);D=y;const q=oa(t,e,"filenameEncoding"),_=oa(t,e,"commentEncoding"),ee=i?new l:$;let te;for(let a=0;C>a;a++){const c=new Hs(r,s,t.options);if(Z+46>j.length||ua(Y,Z)!=L){if(0==a&&(k||Gs(Y)))throw new w(Ws);throw new w(Es)}js(c,Y,Z+6);const l=!!c.bitFlag.languageEncodingFlag,u=Z+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=da(Y,Z+4),m=!(h>>8),y=h>>8==3,g=j.subarray(u,f),z=da(Y,Z+32),F=p+z,S=j.subarray(p,F),x=l,E=l,v=ua(Y,Z+38),T=v&O,U={readOnly:!!(1&T),hidden:!!(2&T),system:!!(4&T),directory:!!(16&T),archive:!!(32&T)},W=ua(Y,Z+42),V=oa(t,e,"decodeText")||vr,I=x?Vs:q||Is,A=E?Vs:_||Is;let P=V(g,I);P===$&&(P=vr(g,I));let H=V(S,A);H===$&&(H=vr(S,A)),n.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ie:z,offset:W,diskNumberStart:da(Y,Z+34),internalFileAttributes:da(Y,Z+36),externalFileAttributes:v,msdosAttributesRaw:T,msdosAttributes:U,rawFilename:g,filenameUTF8:x,commentUTF8:E,rawExtraField:j.subarray(f,p),rawComment:S,filename:P,comment:H}),Ys(c,c,Y,Z+6),c.offset+=M,D=o.min(Xs(r,c.diskNumberStart)+c.offset,D),i&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const G=c.externalFileAttributes>>16&N;c.unixMode===$&&16877&G&&(c.unixMode=G);const Q=!!(c.unixMode&K),ne=!!(c.unixMode&J),re=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&G),ae=c.unixMode!==$&&(61440&c.unixMode)==B,oe=(61440&G)==B;n.assign(c,{setuid:Q,setgid:ne,sticky:re,unixExternalUpper:G,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ae||oe||m&&U.directory||c.filename.endsWith(X)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new cs(c);ie.getData=(e,n)=>c.getData(e,ie,t.Oe,n),ie.arrayBuffer=async e=>{const n=new R,[r]=await b.all([new d(n.readable).arrayBuffer(),c.getData(n,ie,t.Oe,e)]);return r},Z=F;const{onprogress:ce}=e;if(ce)try{await ce(a+1,C,new cs(c))}catch{}yield ie}i&&Z!=W&&aa("trailing central directory data"),te&&aa("duplicate filename"),i&&(M||C&&D>0)&&aa("prepended data");const ne=oa(t,e,"extractPrependedData"),se=oa(t,e,"extractAppendedData");return ne&&(t.prependedData=D>0?await Er(r,0,D):re),t.comment=z?await Er(r,g+H,z):re,se&&(t.appendedData=F<r.size?await Er(r,F,r.size-F):re),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class Ps{constructor(e={}){const{readable:t,writable:n}=new R,r=new As(t,e).getEntriesGenerator();this.readable=new D({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new R;if(n.getData)return(async()=>{try{await n.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}}class Hs{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,n,r={}){const s=this,{reader:a,index:o,offset:i,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:f,bitFlag:p,rawBitFlag:h,signature:m,rawLastModDate:y,uncompressedSize:b,compressedSize:g}=s,{dataDescriptor:z}=p,F=t.localDirectory={},S=Xs(a,c)+i,x=await Er(a,S,Q),R=Ye(x);let D=oa(s,r,ls),k=oa(s,r,ds);const v=oa(s,r,us);if(D=D&&D.length&&D,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new w(Ts);if(x.length<Q||ua(R,0)!=W)throw new w(ks);js(F,R,4);const{extraFieldLength:C,filenameLength:M}=F,T=Qs(oa(s,r,zs),oa(s,r,fs))==Fs;let U=re;if(T&&(M||C)){const e=await Er(a,S+Q,M+C);U=e.subarray(0,M),F.rawExtraField=e.subarray(M)}else F.rawExtraField=C?await Er(a,S+Q+M,C):re;Ys(s,F,R,4,!0),T&&((e,t,n)=>{const{rawFilename:r}=e;(n.length!=r.length||n.some((e,t)=>e!=r[t]))&&aa("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&aa("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&aa("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||aa("mismatched local file header (signature or sizes)")})(s,F,U);const{lastAccessDate:N,creationDate:V}=F;N&&(t.lastAccessDate=N),V&&(t.creationDate=V);const L=s.encrypted&&F.encrypted&&!v,Z=L&&!l;if(v||(t.zipCrypto=Z),L&&!(64&~F.rawBitFlag))throw new w(Ms);const A=v?$:ve(u);if(0!=u&&8!=u&&9!=u&&!A&&!v)throw new w(Ts);if(L){if(!Z&&(1>l.strength||l.strength>3))throw new w(Ms);if(!D&&!k)throw new w(Cs)}const P=S+Q+M+C,H=g,G=Lt(a.createReadable({offset:P,size:H})),j=oa(s,r,ws),Y=oa(s,r,"checkPasswordOnly");let B=oa(s,r,"checkOverlappingEntry");const K=oa(s,r,"checkOverlappingEntryOnly");K&&(B=!0);const{onstart:J,onprogress:X,onend:q}=r,_=9==u;let ee=oa(s,r,hs);_&&(ee=!1);const te=oa(s,r,"checkCrc32"),ne=(te===$?oa(s,r,"checkSignature"):te)&&!v&&(!L||Z||l&&1==l.vendorVersion),se={options:{codecType:an,password:D,rawPassword:k,zipCrypto:Z,encryptionStrength:l&&l.strength,checkCrc32:ne,checkAuthenticationCode:oa(s,r,"checkAuthenticationCode"),passwordVerification:Z&&(z?y>>>8&O:m>>>24&O),outputSize:v?g:b,signature:m,compressed:0!=u&&!v,encrypted:L,useWebWorkers:oa(s,r,ps),useCompressionStream:ee,transferStreams:oa(s,r,ms),deflate64:_,format:A?A.format:$,codecURI:A?A.codecURI:$,compressionMethod:u,rawBitFlag:h,checkPasswordOnly:Y},config:f,ce:{signal:j,size:H,onstart:J,onprogress:X,onend:q}};let ae;B&&await(async({reader:e,Le:t,index:n,offset:r,signature:s,compressedSize:a,uncompressedSize:o,Ze:i,dataDescriptor:c,extraFieldZip64:l,Oe:d})=>{let u=0;if(c&&(u=l?20:12),u){const n=await Er(e,i+a,u+4);if(n.length==u+4&&ua(Ye(n),0)==I){const e=ua(Ye(n),4);let r,i;l?(r=wa(Ye(n),8),i=wa(Ye(n),16)):(r=ua(Ye(n),8),i=ua(Ye(n),12)),(t.encrypted&&!t.zipCrypto||e==s)&&r==a&&i==o&&(u+=4)}}const f={start:r,end:i+a+u,Le:t};for(const[e,t]of d)if(e!=n&&f.start<t.end&&t.start<f.end){const e=new w(Ns);throw e.Ae=t.Le,e}d.set(n,f)})({reader:a,Le:t,index:o,offset:S,signature:m,compressedSize:g,uncompressedSize:b,Ze:P,dataDescriptor:z||F.bitFlag.dataDescriptor,extraFieldZip64:d||F.extraFieldZip64,Oe:n});try{if(!K){Y&&(e=new E),e=new Rr(e),await Dr(e,v?g:b),({writable:ae}=e);const{outputSize:t}=await Un({readable:G,writable:ae},se);if(e.size+=t,t!=(v?g:b))throw new w(At)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!Y||t.message!=et)throw t}finally{oa(s,r,ys)||!ae||ae.locked||await ae.getWriter().close()}return Y||K?$:e.getData?e.getData():ae}}function Gs(e){const t=o.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==ua(e,n))return!0;return!1}function js(e,t,r){const s=e.rawBitFlag=da(t,r+2),a=!(1&~s),o=ua(t,r+6);n.assign(e,{encrypted:a,version:da(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&Y)==Y},rawLastModDate:o,lastModDate:ia(o),filenameLength:da(t,r+22),extraFieldLength:da(t,r+24)})}function Ys(e,t,r,s,a){const{rawExtraField:o}=t,l=t.extraField=new c,d=Ye(o);let u=0;try{for(;u<o.length;){const e=da(d,u),t=da(d,u+2);l.set(e,{type:e,data:o.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=da(r,s+4);n.assign(t,{signature:ua(r,s+10),crc32:ua(r,s+10),compressedSize:ua(r,s+14),uncompressedSize:ua(r,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const n=Ye(e.data),r=Ls.filter(([e,n])=>t[e]==n),s=r.reduce((e,[,t])=>e+Zs[t].bytes,0);if(e.data.length<s)throw new w(vs);for(let s=0,a=0;s<r.length;s++){const[o,i]=r[s],c=Zs[i];t[o]=e[o]=c.Ne(n,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(Bs(h,Cr,Mr,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(Bs(m,Tr,Ur,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,r)=>{const s=Ye(e.data),a=la(s,4);n.assign(e,{vendorVersion:la(s,0),vendorId:la(s,2),strength:a,originalCompressionMethod:r,compressionMethod:da(s,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=$)})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const b=l.get(10);b&&(((e,t)=>{const r=Ye(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=da(r,a),n=da(r,a+2);1==t&&(s=e.data.slice(a+4,a+4+n)),a+=4+n}}catch{}if(s&&24==s.length){const r=Ye(s),a=r.getBigUint64(0,!0),o=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:i});const c={lastModDate:ca(a),lastAccessDate:ca(o),creationDate:ca(i)};n.assign(e,c),n.assign(t,c)}})(b,t),t.extraFieldNTFS=b);const g=l.get(30805);if(g)Ks(g,t,!1),t.extraFieldUnix=g;else{const e=l.get(30837);e&&(Ks(e,t,!0),t.extraFieldInfoZip=e)}const z=l.get(j);z&&(((e,t,n)=>{if(!e.data.length)return;const r=Ye(e.data),s=la(r,0),a=[],o=[];n?(1&~s||(a.push(Ir),o.push(Lr)),2&~s||(a.push(Zr),o.push("rawLastAccessDate")),4&~s||(a.push(Ar),o.push(Pr))):5>e.data.length||(a.push(Ir),o.push(Lr));let c=1;a.forEach((n,s)=>{if(e.data.length>=c+4){const a=ua(r,c);t[n]=e[n]=new i(1e3*(0|a));const l=o[s];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const F=l.get(6534);F&&(t.extraFieldUSDZ=F)}function Bs(e,t,r,s,a){if(5>e.data.length)return void(e.valid=!1);const o=Ye(e.data),i=new Ae;i.append(a[r]);const c=Ye(new f(4));c.setUint32(0,i.get(),!0);const l=ua(o,1);n.assign(e,{version:la(o,0),[t]:vr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==ua(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Ks(e,t,r){try{const s=Ye(e.data);let a,o;if(r){let t=0;const r=la(s,t++),i=la(s,t++);a=Js(e.data.subarray(t,t+i)),t+=i;const c=la(s,t++);o=Js(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:a,gid:o})}else 4>e.data.length||(a=da(s,0),o=da(s,2),n.assign(e,{uid:a,gid:o}));a!==$&&(t.uid=a),o!==$&&(t.gid=o)}catch{}}function Js(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Xs(e,t){return e.Ue?e.Ue(t):0}function Qs(e,t){return e===$?t?Fs:"balanced":e}const qs=64,_s=0,$s=1,ea=2;async function*ta(e,t){const n=e.size-t,r=await Er(e,n,t),s=Ye(r);for(let e=r.length-H;e>=0;e--)ua(s,e)==Z&&(yield[s,n,r,e,n+e])}function na(e,t,n){return{offset:n,buffer:e.slice(t,t+H).buffer}}async function ra(e,t,n,r,s,a,o){const i=da(t,r+10),c=ua(t,r+12),l=ua(t,r+16);if(i==N||c==U||l==U)return await sa(e,t,n,s-G,a,o)==P?ea:_s;if(!i&&!c)return $s;const d=da(t,r+6);for(const r of[s-c,Xs(e,d)+l])if(await sa(e,t,n,r,a,o)==L)return ea;return _s}async function sa(e,t,n,r,s,a){return 0>r||r+4>s?$:n>r?a.count>0?(a.count--,ua(Ye(await Er(e,r,4)),0)):$:ua(t,r-n)}function aa(e){const t=new w(Os);throw t.reason=e,t}function oa(e,t,n){return t[n]===$?e.options[n]:t[n]}function ia(e){const t=(4294901760&e)>>16,n=e&N;return new i(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}function ca(e){return new i(s(e/a(1e4)-a(116444736e5)))}function la(e,t){return e.getUint8(t)}function da(e,t){return e.getUint16(t,!0)}function ua(e,t){return e.getUint32(t,!0)}function wa(e,t){return s(e.getBigUint64(t,!0))}var fa=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Os,ERR_BAD_FORMAT:xs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Es,ERR_ENCRYPTED:Cs,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Ws,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Ds,ERR_EOCDR_NOT_FOUND:Rs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:vs,ERR_INVALID_AUTHENTICATION_CODE:$e,ERR_INVALID_COMPRESSED_DATA:Pt,ERR_INVALID_CRC32:Ht,ERR_INVALID_PASSWORD:qe,ERR_INVALID_SIGNATURE:_e,ERR_INVALID_UNCOMPRESSED_SIZE:At,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ks,ERR_OVERLAPPING_ENTRY:Ns,ERR_SPLIT_ZIP_FILE:Us,ERR_UNSUPPORTED_COMPRESSION:Ts,ERR_UNSUPPORTED_ENCRYPTION:Ms,ZipReader:As,ZipReaderStream:Ps});const pa="File already exists",ha="Zip file comment exceeds 64KB",ma="File entry comment exceeds 64KB",ya="File entry name exceeds 64KB",ba="Version exceeds 65535",ga="The strength must equal 1, 2, or 3",za="Encryption is not supported in USDZ files",Fa="Extra field type exceeds 65535",Sa="Extra field data exceeds 64KB",xa=-2147483648,Ra=2147483647,Da=a(0),Ea=a("0x7fffffffffffffff"),ka="Zip64 is not supported (set the 'zip64' option to 'true')",va="Undefined uncompressed size",Ca="Undefined reader",Ma="Zip file not empty",Ta=new f([7,0,2,0,65,69,3,0,0]),Ua="infozip",Na="unix";let Oa=0;const Wa=[];class Va{constructor(e,t={}){e=new Rr(e);const{availableSize:r=ee,maxSize:s=ee}=e,a=r>0&&r!==ee&&s>0&&s!==ee;n.assign(this,{writer:e,Pe:a,options:t,config:ce(),files:new c,He:new l,offset:t[bs]===$?e.size||e.writable.size||0:t[bs],Ge:t[bs]===$?0:t[bs]-(e.size||e.writable.size||0),je:new l,Ye:0,Be:$})}async prependZip(e){if(this.He.size)throw new w(Ma);e=new xr(e),await Dr(e);const{ZipReader:t}=await b.resolve().then(()=>fa),r=new t(e.readable),s=await r.getEntries();await r.close(),await Dr(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.He=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:r,lastAccessDate:s,creationDate:a,rawFilename:o,bitFlag:i,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:u}=e;let{compressionMethod:w,Ke:f,Je:p,Xe:h,Qe:m,qe:y,rawExtraField:b}=e;const{level:g,languageEncodingFlag:z,dataDescriptor:F}=i;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,b=b||re,e.extraFieldAES&&(w=99);const S=no(f,p,h,m,y,b),x=u&&l>=U,R=u&&d>=U,D=-7&so(g,z,F,c,w)|g<<1,{_e:E,$e:k}=ro({version:t,bitFlag:D,compressionMethod:w,uncompressedSize:l,compressedSize:d,rawLastModDate:r,rawFilename:o,et:R,nt:x,extraFieldLength:S}),{signature:v}=e;return v!==$&&$a(k,10,v),n.assign(e,{nt:x,et:R,st:u&&e.offset>=U,diskNumberStart:0,ot:!1,Ke:f,Je:p,Xe:h,Qe:m,qe:y,rawExtraField:b,extendedTimestamp:h.length>0||m.length>0,it:1+(s?2:0)+(a?4:0),_e:E,$e:k}),[e.filename,e]}))}async add(e="",t,r={}){const s=this;r=n.assign({},r);const{je:c,config:l}=s;let d,u;Oa<l.maxWorkers?Oa++:await new b(e=>Wa.push(e));try{if(e=e.trim(),Qa(s,r,_r)&&!e.endsWith(X)&&(e+=X),s.He.has(e))throw new w(pa);return s.He.add(e),u=!0,d=(async(e,t,r,s)=>{const c=((e,t,n)=>{t=t.trim();let r=Qa(e,n,Br),s=Qa(e,n,Qr,r?20:768);const a=Qa(e,n,$r),o=Qa(e,n,"uid"),i=Qa(e,n,"gid");let c=Qa(e,n,rs),l=Qa(e,n,"unixExtraFieldType"),d=Qa(e,n,ss),u=Qa(e,n,as),f=Qa(e,n,os);if(o!==$&&(0>o||o>U))throw new w("Invalid uid (must be integer 0..2^32-1)");if(i!==$&&(0>i||i>U))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>N))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Ua&&l!==Na)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===Na&&(o!==$&&o>N||i!==$&&i>N))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||o===$&&i===$||(l=Ua);let p=Qa(e,n,jr),h=Qa(e,n,Yr);const m=p!==$||h!==$;if(o!==$||i!==$||c!==$||l?(r=!1,s=s&N|768):m&&(r=!0,s&=O),p!==$&&(0>p||p>O))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>N)throw new w(ba);let y=Qa(e,n,Gr);const b=y!==$;b||(y=0),!n[_r]&&t.endsWith(X)&&(n[_r]=!0);const g=Qa(e,n,_r);let z;if(g?(t.endsWith(X)||(t+=X),b||(y=16,r||(y|=16877<<16))):r||b||(y=a?493<<16:27525120),!r){const e=c!==$||!!(d||u||f);z=y>>16&N,c=c===$?z:c&N,d?c|=K:d=!!(c&K),u?c|=J:u=!!(c&J),f?c|=512:f=!!(512&c),b&&!e||(g&&(c|=B),y=(c&N)<<16|y&N)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=O;else if(t!==$){const{readOnly:n,hidden:r,system:s,directory:a,archive:o}=t;let i=0;n&&(i|=1),r&&(i|=2),s&&(i|=4),a&&(i|=16),o&&(i|=32),e=i&O}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&U|p&O),{name:t,ct:{versionMadeBy:s,msDosCompatible:r,externalFileAttributes:y,unixExternalUpper:z,uid:o,gid:i,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,n)=>{const r=Qa(e,n,"encodeText",He);let s=r(t);if(s===$&&(s=He(t)),no(s)>N)throw new w(ya);const a=n[Tr]||"";let o=r(a);if(o===$&&(o=He(a)),no(o)>N)throw new w(ma);const c=Qa(e,n,Xr,20);if(c>N)throw new w(ba);const l=Qa(e,n,Ir,new i),d=Qa(e,n,Zr),u=Qa(e,n,Ar),p=Qa(e,n,Hr,0),h=Qa(e,n,us);let m,y;h||(m=Qa(e,n,ls),y=Qa(e,n,ds));const b=Qa(e,n,"encryptionStrength",3),g=Qa(e,n,qr),z=Qa(e,n,"extendedTimestamp",!0),F=Qa(e,n,"ntfsTimestamp"),S=Qa(e,n,"keepOrder",!0),x=Qa(e,n,ps),R=Qa(e,n,ms),D=Qa(e,n,"bufferedWrite"),E=Qa(e,n,"createTempStream"),k=Qa(e,n,"dataDescriptorSignature",!0),v=Qa(e,n,ws),C=Qa(e,n,"useUnicodeFileNames",!0),M=Qa(e,n,es),T=h||M===$?$:ve(M);if(!h&&M!==$&&0!==M&&8!==M&&!T)throw new w("Compression method not supported");let U=Qa(e,n,"level");if(e.options[gs]){if(m!==$||y!==$)throw new w(za);U===$&&M===$&&(U=0)}let O=Qa(e,n,hs),W=Qa(e,n,"dataDescriptor");D&&W===$&&(W=!1),(W===$||g)&&(W=!0),U!==$&&6!=U&&(O=!1);const V=Qa(e,n,Kr);if(!g&&(m!==$||y!==$)&&(1>b||b>3))throw new w(ga);let I=re;const L=n[ns];if(L){let e=0,t=0;L.forEach(t=>e+=4+no(t)),I=new f(e);const n=Ye(I);L.forEach((e,r)=>{if(r>N)throw new w(Fa);if(no(e)>N)throw new w(Sa);_a(n,t,r),_a(n,t+2,no(e)),to(I,e,t+4),t+=4+no(e)})}return{comment:a,ct:{rawFilename:s,rawComment:o,version:c,lastModDate:l,lastAccessDate:d,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:b,zipCrypto:g,extendedTimestamp:z,ntfsTimestamp:F,keepOrder:S,useWebWorkers:x,transferStreams:R,bufferedWrite:D,createTempStream:E,dataDescriptorSignature:k,signal:v,useUnicodeFileNames:C,compressionMethod:M,format:T?T.format:$,codecURI:T?T.codecURI:$,lt:T?T.versionNeeded:$,level:U,useCompressionStream:O,dataDescriptor:W,zip64:V,rawExtraField:I}}})(e,t,s),{comment:d}=l,u=s[ns];let p;e.files.set(t,$);try{const{ct:d}=l;0==d.level||d.compressionMethod!==$||d.passThrough||await(async e=>{const{CompressionStream:t,CompressionStreamZlib:n}=e;if(n&&!n.Se)return!0;if(qt(t)||Qt(t,jt))return!0;if(n)try{return await void 0,!0}catch{return!1}return!1})(e.config)||(d.level=0);const u=await(async(e,t,{ct:n},r)=>{const{passThrough:s,zipCrypto:a,password:o,rawPassword:i,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:d,level:u,compressionMethod:f}=n,p=0,h=0;if(s){if(!t)throw new w(Ca);if(h=r[Nr],h===$)throw new w(va)}const m=!0===d,y=Qa(e,r,Jr),b=!!t&&(!!(o&&no(o)||i&&no(i))||s&&y);t||(u=0,f=0);const g=b?a?12:16+4*c:0;t&&(t=new xr(t),await Dr(t),s?(r.uncompressedSize=h,p=qa(h)+g):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(r.uncompressedSize=h=t.size,p=qa(h)+g));const z=m||h>=U,F=m||p>=U;if(z||F){if(!1===d)throw new w(ka);d=!0}return d=d||!1,{reader:t,ct:{dataDescriptor:l,zip64:d,nt:z,et:F,uncompressedSize:h,level:u,compressionMethod:f,encrypted:b}}})(e,r,l,s);({reader:r}=u);const h=Ha(e.writer),m=Pa(e.writer),y=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,level:a,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:p,encryptionStrength:h,extendedTimestamp:m,ntfsTimestamp:y,passThrough:b,encrypted:g,nt:z,et:F,uncompressedSize:S}=e;let{version:x,compressionMethod:R}=e;const D=!f&&(R===$?a===$||a>0:0!==R);let E;const k=b||!D,v=c&&(e.bufferedWrite||!u||!z&&!F||k),C=v||c&&u&&(z||F);if(c&&(z||F)){const e=20,t=Aa(e);if(t.uint16(1),t.uint16(e-4),E=t.array,v&&(t.ut(S),k)){const e=g?l?12:16+4*h:0;t.ut(b?0:S+e)}}else E=re;let M,T,U,O,V;if(g&&!l){const e=Aa(no(Ta)+2);e.uint16(39169),e.bytes(Ta),M=e.array,M[8]=h}else M=re;if(m){const e=Ka(n),t=Ja(e);if(t){const t=9+(r?4:0)+(s?4:0),n=Aa(t);O=1+(r?2:0)+(s?4:0),n.uint16(j),n.uint16(t-4),n.uint8(O),n.uint32(e),r&&n.uint32(Xa(Ka(r))),s&&n.uint32(Xa(Ka(s))),U=n.array}else U=re;if(y===$?!t||r||s:y)try{const e=Ba(n),t=Aa(36);t.uint16(10),t.uint16(32),t.wt(4),t.uint16(1),t.uint16(24),t.ut(e),t.ut(r?Ba(r):e),t.ut(s?Ba(s):e),T=t.array}catch{T=re}else T=re}else T=U=re;try{const{uid:t,gid:n,unixExtraFieldType:r}=e;if(r!=Ua||t===$&&n===$)if(r!=Na||t===$&&n===$)V=re;else{const e=Aa(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&N),e.uint16((n===$?0:n)&N),V=e.array}else{const e=Za(t),r=Za(n),s=3+e.length+r.length,a=Aa(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(r.length),a.bytes(r),V=a.array}}catch{V=re}R===$&&(R=D?8:0);const{lt:I}=e;D&&I!==$&&(x=x>I?x:I),c&&(x=x>45?x:45),g&&!l&&(x=x>51?x:51,M[9]=R,R=99);const L=C?no(E):0,Z=L+no(M,U,T,V,p);if(Z>N)throw new w(Sa);const A=new i(2e3*o.ceil(o.floor(n.getTime()/1e3)/2)),{_e:P,$e:H,rawLastModDate:G}=ro({version:x,bitFlag:so(a,d,u,g,R),compressionMethod:R,uncompressedSize:S,lastModDate:_>A?_:A>q?q:A,rawFilename:t,et:F,nt:z,extraFieldLength:Z}),Y=Aa(Q+no(t)+Z),B=Y.array,K=Ye(B);return Y.uint32(W),Y.bytes(P),Y.bytes(t),C&&Y.bytes(E),Y.bytes(M),Y.bytes(U),Y.bytes(T),Y.bytes(V),Y.bytes(p),u&&(F||$a(K,18,0),z||$a(K,22,0)),{ft:B,ht:K,_e:P,$e:H,lastModDate:n,rawLastModDate:G,encrypted:g,compressed:D,version:x,compressionMethod:R,it:O,Ke:re,yt:L,Xe:U,Qe:T,qe:V,Je:M,extraFieldLength:Z}})(s=n.assign({},s,c.ct,l.ct,u.ct,{internalFileAttribute:l.ct.internalFileAttributes,externalFileAttribute:c.ct.externalFileAttributes,signature:s[ts],offset:e.offset-h,diskNumberStart:m})),g=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:n})=>{let r,s=re,a=0,o=e?20:12;return n&&(o+=4),t&&(s=new f(o),r=Ye(s),n&&(a=4,$a(r,0,I))),{bt:s,gt:r,zt:a}})(s),z=no(y.ft,g.bt);p=await(async(e,t,r,s,o)=>{const{files:i,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:u}=o,{Ft:p}=s,h=e.options[gs],m=e.Be;let y,g,z,F,S,x,D,k={},v=0;i.set(t,k),e.Be=k;try{let g;l&&(g=m&&m.lock,k.lock=new b(e=>z=e)),o.bufferedWrite||!l||e.St||e.Ye||!d?(y=!0,e.Ye++,D=o.createTempStream?await o.createTempStream():new R($,$,{highWaterMark:ee}),D.size=0,await Dr(c)):(D=c,await C()),await Dr(D);const T=Ha(c);if(e.Pe){delete e.Pe;const t=new f(4);$a(Ye(t),0,V),await Ya(c,t),e.offset+=4}h&&!y&&La(s,e.offset-T);const{ft:N}=p;y||(await g,await M());const W=Pa(c),I=ja(e,c);if(k.diskNumberStart=W,y||(S=!0,x=c.size,await Ya(D,N)),k=await(async(e,t,{diskNumberStart:r,lock:s},o,i,c)=>{const{Ft:l,xt:d,Rt:u}=o,{_e:f,$e:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:b,version:g,compressionMethod:z,Ke:F,yt:S,Xe:x,it:R,Qe:D,qe:E,Je:k}=l,{bt:v}=d,{rawFilename:C,lastAccessDate:M,creationDate:T,password:N,rawPassword:W,level:V,zip64:I,nt:L,et:Z,zipCrypto:A,dataDescriptor:P,directory:H,executable:G,versionMadeBy:j,rawComment:Y,rawExtraField:B,useWebWorkers:K,transferStreams:J,onstart:X,onprogress:Q,onend:q,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,uid:ae,gid:oe,unixMode:ie,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,be={lock:s,versionMadeBy:j,zip64:I,directory:!!H,executable:!!G,filenameUTF8:!0,rawFilename:C,commentUTF8:!0,rawComment:Y,Ke:F,yt:S,Xe:x,Qe:D,qe:E,Je:k,rawExtraField:B,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:r,uid:ae,gid:oe,unixMode:ie,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{crc32:ge,uncompressedSize:ze}=c;ge===$&&({signature:ge}=c);let Fe=0;he||(ze=0);const{writable:Se}=t;if(e){const n=Lt(e.createReadable?e.createReadable():e.readable),r=e.size,s={options:{codecType:sn,level:V,rawPassword:W,password:N,encryptionStrength:ee,zipCrypto:y&&A,passwordVerification:y&&A&&m>>8&O,computeCrc32:!he,compressed:b&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:J,format:me,codecURI:ye,compressionMethod:z},config:i,ce:{signal:_,size:r,onstart:X,onprogress:Q,onend:q}};try{const e=await Un({readable:n,writable:Se},s);if(Fe=e.outputSize,t.size+=Fe,he||(ze=e.inputSize,y&&!A||(ge=e.signature)),!Z&&Fe>=U||!L&&ze>=U)throw new w(ka)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:n,Ft:r,xt:s},{zip64:o,zipCrypto:i,dataDescriptor:c})=>{const{$e:l,encrypted:d}=r,{gt:u,zt:w}=s;d&&!i||e===$||($a(l,10,e),c&&$a(u,w,e)),o?c&&(eo(u,w+4,a(t)),eo(u,w+12,a(n))):($a(l,14,t),$a(l,18,n),c&&($a(u,w+4,t),$a(u,w+8,n)))})({signature:ge,compressedSize:Fe,uncompressedSize:ze,Ft:l,xt:d},c),P&&await Ya(t,v),n.assign(be,{uncompressedSize:ze,compressedSize:Fe,lastModDate:h,rawLastModDate:m,creationDate:T,lastAccessDate:M,encrypted:y,zipCrypto:A,size:u+Fe,compressionMethod:z,version:g,_e:f,$e:p,signature:ge,crc32:y&&!A?$:ge,it:R,nt:L,et:Z}),be})(r,D,k,s,e.config,o),y||(S=!1),i.set(t,k),k.filename=t,y){if(await b.all([D.writable.getWriter().close(),g]),await C(),F=!0,x=c.size,await M(),k.diskNumberStart=Pa(c),k.offset=ja(e,c),h){const t=s.Rt;La(s,e.offset-Ha(c)),k.size+=s.Rt-t}(({rawFilename:e,encrypted:t,zip64:n,yt:r,signature:s,compressedSize:o,uncompressedSize:i,nt:c,et:l},d,{dataDescriptor:u})=>{if(u||(t||$a(d,14,s),l||$a(d,18,o),c||$a(d,22,i)),n&&r){const t=Q+no(e)+4;eo(d,t,a(i)),eo(d,t+8,a(o))}})(k,p.ht,o),await Ya(c,p.ft),await(async(e,t,n)=>{const r=t.writable.getWriter();try{await e.pipeTo(new E({async write(e){var t;await r.ready,await r.write(e),t=no(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{r.releaseLock()}})(D.readable,c,u),c.size+=D.size,F=!1}else k.diskNumberStart=W,k.offset=I;return e.offset+=k.size,k}catch(n){if(F||S){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}e.offset+=c.size-x,y&&(e.offset+=v)}throw i.delete(t),n}finally{if(y&&e.Ye--,z&&z(),g&&g(),y&&D&&D.dispose)try{await D.dispose()}catch{}}async function C(){e.St=!0;const{Dt:t}=e;e.Dt=new b(t=>g=()=>{e.St=!1,t()}),await t}async function M(){Ga(c,no(p.ft))&&await c.closeDisk()}})(e,t,r,{Ft:y,xt:g,Rt:z},s)}catch(n){throw e.files.delete(t),n}return n.assign(p,{name:t,comment:d,extraField:u}),new cs(p)})(s,e,t,r),c.add(d),await d}catch(t){throw u&&s.He.delete(e),t}finally{c.delete(d);const e=Wa.shift();e?e():Oa--}}remove(e){const{He:t,files:n}=this;if("string"==typeof e&&(e=n.get(e)),e&&e.filename!==$){const{filename:r}=e;if(t.has(r)&&n.has(r))return t.delete(r),n.delete(r),!0}return!1}async close(e=re,n={}){const{je:r,writer:s}=this,{writable:o}=s;if(no(e)>N)throw new w(ha);for(;r.size;)await b.allSettled(t.from(r));return await(async(e,n,r)=>{const s=(e=>{let t=0;for(const[,n]of e){const{rawFilename:e,Je:r,rawComment:s,Qe:a,qe:o,rawExtraField:i,extendedTimestamp:c,it:l,lastModDate:d,nt:u,et:f,uncompressedSize:p,compressedSize:h}=n,m=n.offset>=U,y=n.diskNumberStart>=N;let b,g;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Aa(e);t.uint16(1),t.uint16(e-4),u&&t.ut(p),f&&t.ut(h),m&&t.ut(n.offset),y&&t.uint32(n.diskNumberStart),b=t.array}else b=re;n.Ke=b,n.st=m,n.ot=y;const z=Ka(d);if(c&&Ja(z)){const e=Aa(9);e.uint16(j),e.uint16(5),e.uint8(l),e.uint32(z),g=e.array}else g=re;n.Xe=g;const F=no(b,r,a,o,g,i);if(F>N)throw new w(Sa);t+=46+no(e,s)+F}return t})(e.files),o=await(async(e,n,r)=>{const{files:s,writer:a}=e,o=new f(n);await Dr(a);let i=0,c=0,l=Pa(a),d=Ha(a);for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,Ke:w,Je:f,Xe:p,Qe:h,qe:m,rawExtraField:y,rawComment:b,versionMadeBy:g,_e:z,$e:F,nt:S,et:x,ot:R,st:D,internalFileAttributes:E,externalFileAttributes:k,diskNumberStart:v,uncompressedSize:C,compressedSize:M}=n,T=no(w,f,p,h,m,y),O=46+no(u,b)+T;Ga(a,i+O-c)&&(await Ya(a,o.slice(c,i)),c=i,await a.closeDisk()),0==e&&(l=Pa(a),d=Ha(a)),S||$a(F,18,C),x||$a(F,14,M),(D||R)&&45>n.version&&_a(F,0,45);const W=Aa(O);if(W.uint32(L),W.uint16(g),W.bytes(z.subarray(0,24)),W.uint16(T),W.uint16(no(b)),W.uint16(R?N:v),W.uint16(E),W.uint32(k),W.uint32(D?U:t),W.bytes(u),W.bytes(w),W.bytes(f),W.bytes(p),W.bytes(h),W.bytes(m),W.bytes(y),W.bytes(b),to(o,W.array,i),i+=O,r.onprogress)try{await r.onprogress(e+1,s.size,new cs(n))}catch{}}return await Ya(a,c?o.slice(c):o),{diskNumber:l,diskOffset:d}})(e,s,r);await(async(e,t,n,r)=>{const{writer:s}=e,{Et:o}=r;let{kt:i}=r,c=e.files.size,l=o.diskNumber,d=ja(e,o),u=Pa(s);Ga(s,H)&&u++;let f=Qa(e,n,Kr);if(!(U>d&&U>i&&N>c&&N>u)){if(!1===f)throw new w(ka);f=!0}const p=no(t);if(p>N)throw new w(ha);const h=Aa(f?98:H);Ga(s,no(h.array)+p)&&await s.closeDisk(),u=Pa(s),f&&(h.uint32(A),h.ut(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(l),h.ut(c),h.ut(c),h.ut(i),h.ut(d),h.uint32(P),h.uint32(u),h.ut(a(ja(e,s))+a(i)),h.uint32(u+1),Qa(e,n,"supportZip64SplitFile",!0)&&(u=N,l=N),c=N,d=U,i=U),h.uint32(Z),h.uint16(u),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(i),h.uint32(d),h.uint16(p),await Ya(s,h.array),p&&await Ya(s,t)})(e,n,r,{Et:o,kt:s})})(this,e,n),Qa(this,n,ys)||await o.getWriter().close(),s.getData?s.getData():o}}function Ia(e,t,n){e.je.add(t),t.catch(e=>{try{n(e)}catch{}})}function La(e,t){const{Ft:n}=e;let{ft:r,extraFieldLength:s}=n,a=64-(t+no(r))%64;4>a&&(a+=64);const o=new f(a),i=Ye(o);_a(i,0,6534),_a(i,2,a-4);const c=r;n.ft=r=new f(no(c)+a),to(r,c),to(r,o,no(c));const l=Ye(r);_a(l,28,s+a),n.ht=l,e.Rt+=a}function Za(e){if(e===$)return re;{const t=new f(4);Ye(t).setUint32(0,e,!0);let n=4;for(;n>1&&0===t[n-1];)n--;return t.subarray(0,n)}}function Aa(e){const t=new f(e),n=Ye(t);let r=0;return{array:t,uint8:e=>{((e,t,n)=>{e.setUint8(t,n)})(n,r,e),r+=1},uint16:e=>{_a(n,r,e),r+=2},uint32:e=>{$a(n,r,e),r+=4},ut:e=>{eo(n,r,a(e)),r+=8},bytes:e=>{to(t,e,r),r+=no(e)},wt:e=>r+=e}}function Pa(e){const{diskNumber:t=0}=e;return t}function Ha(e){const{diskOffset:t=0}=e;return t}function Ga(e,t){const{availableSize:n=ee}=e;return t>n}function ja(e,{diskNumber:t=0,diskOffset:n=0}){return e.offset-n-(t?e.Ge:0)}async function Ya(e,t){const{writable:n}=e,r=n.getWriter();try{await r.ready,e.size+=no(t),await r.write(t)}finally{r.releaseLock()}}function Ba(e){if(e){const t=(a(e.getTime())+a(116444736e5))*a(1e4);return Da>t?Da:t>Ea?Ea:t}}function Ka(e){return o.floor(e.getTime()/1e3)}function Ja(e){return e>=xa&&Ra>=e}function Xa(e){return o.min(Ra,o.max(xa,e))}function Qa(e,t,n,r){const s=t[n]===$?e.options[n]:t[n];return s===$?r:s}function qa(e){return e+5*(o.floor(e/16383)+1)}function _a(e,t,n){e.setUint16(t,n,!0)}function $a(e,t,n){e.setUint32(t,n,!0)}function eo(e,t,n){e.setBigUint64(t,n,!0)}function to(e,t,n){e.set(t,n)}function no(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function ro({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:r,compressedSize:s,lastModDate:a,rawLastModDate:o,rawFilename:i,et:c,nt:l,extraFieldLength:d}){const u=Aa(26),w=u.array,f=Ye(w);if(u.uint16(e),u.uint16(t),u.uint16(n),o===$){const e=new h(1),t=Ye(e);_a(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),_a(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),o=e[0]}return u.uint32(o),u.wt(4),c||s!==$?u.uint32(c?U:s):u.wt(4),l||r!==$?u.uint32(l?U:r):u.wt(4),u.uint16(no(i)),u.uint16(d),{_e:w,$e:f,rawLastModDate:o}}function so(e,t,n,r,s){let a=0;return t&&(a|=Y),n&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),r&&(a|=1),a}const ao=1048576,oo=".zip.js-temp",io=1048576,co=1048576,lo=".zip.js-temp";try{ue({baseURI:void 0===F&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===F?location.href:T&&"SCRIPT"===T.tagName.toUpperCase()&&T.src||new u("zip-legacy.min.js",F.baseURI).href})}catch{}ue({workerURI:e=>{const t="text/javascript",n=(e=>{let t=0,n=0,r=0,s=new f(1024),a=0,o=0;for(;!o;){o=c(1);const e=c(2);if(0==e)l();else if(1==e)d(ge(ye),ge(be));else{if(2!=e)throw w("invalid deflate block type");d(...u())}}return s.subarray(0,a);function i(){if(t>=e.length)throw w("unexpected end of deflate data");return e[t++]}function c(e){for(;e>r;)n|=i()<<r,r+=8;const t=n&(1<<e)-1;return n>>>=e,r-=e,t}function l(){n=0,r=0;const e=i()|i()<<8;t+=2,h(a+e);for(let t=0;e>t;t++)s[a++]=i()}function d(e,t){let n=p(e);for(;256!=n;){if(256>n)h(a+1),s[a++]=n;else{const e=n-257,r=we[e]+c(fe[e]),o=p(t),i=pe[o]+c(he[o]);h(a+r);const l=a-i;for(let e=0;r>e;e++)s[a++]=s[l+e]}n=p(e)}}function u(){const e=c(5)+257,t=c(5)+1,n=c(4)+4,r=new f(19);for(let e=0;n>e;e++)r[me[e]]=c(3);const s=ge(r),a=new f(e+t);let o=0;for(;o<a.length;){const e=p(s);if(16>e)a[o++]=e;else if(16==e){const e=a[o-1];let t=c(2)+3;for(;t--;)a[o++]=e}else o+=17==e?c(3)+3:c(7)+11}return[ge(a.subarray(0,e)),ge(a.subarray(e))]}function p(e){const{o:t,symbols:n}=e;let r=0,s=0,a=0;for(let e=1;15>=e;e++){r|=c(1);const o=t[e];if(o>r-s)return n[a+(r-s)];a+=o,s=s+o<<1,r<<=1}throw w("invalid huffman code")}function h(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const n=new f(t);n.set(s.subarray(0,a)),s=n}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;t>r;r+=4){const t=ze.indexOf(e[r])<<18|ze.indexOf(e[r+1])<<12|(63&ze.indexOf(e[r+2]))<<6|63&ze.indexOf(e[r+3]);n.push(t>>16&255),"="!==e[r+2]&&n.push(t>>8&255),"="!==e[r+3]&&n.push(255&t)}return new f(n)})("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"));if(e){const e=new y([n],{type:t});return u.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const n=e.length;let r=0;for(;n>r+2;r+=3){const n=e[r]<<16|e[r+1]<<8|e[r+2];t+=ze[n>>18&63]+ze[n>>12&63]+ze[n>>6&63]+ze[63&n]}const s=n-r;if(1===s){const n=e[r]<<16;t+=ze[n>>18&63]+ze[n>>12&63]+"=="}else if(2===s){const n=e[r]<<16|e[r+1]<<8;t+=ze[n>>18&63]+ze[n>>12&63]+ze[n>>6&63]+"="}return t})(n)}}),e.BlobReader=tr,e.BlobWriter=nr,e.Data64URIReader=class extends qn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,vt:r,size:o.floor(.75*(t-r))})}readUint8Array(e,t){const{vt:n,dataURI:r}=this,s=new f(t),a=4*o.floor(e/3),i=atob(r.substring(a+n,4*o.ceil((e+t)/3)+n)),c=e-3*o.floor(a/4);let l=0;for(let e=c;c+t>e&&e<i.length;e++)s[e-c]=i.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends _n{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n,s=t.pending;const a=t.pending.length;for(t.pending="",n=0;n<3*o.floor((a+e.length)/3)-a;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=x(s):t.pending=s+t.pending}getData(){return this.data+x(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Os,e.ERR_BAD_FORMAT=xs,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Es,e.ERR_DUPLICATED_NAME=pa,e.ERR_ENCRYPTED=Cs,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=Ws,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Ds,e.ERR_EOCDR_NOT_FOUND=Rs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=vs,e.ERR_HTTP_RANGE=Zn,e.ERR_HTTP_RESOURCE_CHANGED=An,e.ERR_INVALID_AUTHENTICATION_CODE=$e,e.ERR_INVALID_CODEC_DEFINITION=Fe,e.ERR_INVALID_CODEC_MODULE=xe,e.ERR_INVALID_COMMENT=ha,e.ERR_INVALID_COMPRESSED_DATA=Pt,e.ERR_INVALID_CRC32=Ht,e.ERR_INVALID_ENCRYPTION_STRENGTH=ga,e.ERR_INVALID_ENTRY_COMMENT=ma,e.ERR_INVALID_ENTRY_NAME=ya,e.ERR_INVALID_EXTRAFIELD_DATA=Sa,e.ERR_INVALID_EXTRAFIELD_TYPE=Fa,e.ERR_INVALID_PASSWORD=qe,e.ERR_INVALID_SIGNATURE=_e,e.ERR_INVALID_UNCOMPRESSED_SIZE=At,e.ERR_INVALID_VERSION=ba,e.ERR_ITERATOR_COMPLETED_TOO_SOON=Pn,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ks,e.ERR_OVERLAPPING_ENTRY=Ns,e.ERR_RESERVED_COMPRESSION_METHOD=Se,e.ERR_SPLIT_ZIP_FILE=Us,e.ERR_UNDEFINED_READER=Ca,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=va,e.ERR_UNSUPPORTED_COMPRESSION=Ts,e.ERR_UNSUPPORTED_ENCRYPTION=Ms,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=za,e.ERR_UNSUPPORTED_FORMAT=ka,e.ERR_WRITER_NOT_INITIALIZED=Hn,e.ERR_ZIP_NOT_EMPTY=Ma,e.HttpRangeReader=class extends zr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=zr,e.Reader=qn,e.SplitDataReader=Fr,e.SplitDataWriter=Sr,e.TextReader=class extends tr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends nr{constructor(e){super(e),n.assign(this,{encoding:e,Ct:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,Ct:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new b((s,a)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(r,e)})}}},e.Uint8ArrayReader=class extends qn{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends _n{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){n.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,n=t.offset+e.length;if(n>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;n>e;)e*=2;const r=t.array;t.array=new f(e),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=_n,e.ZipReader=As,e.ZipReaderStream=Ps,e.ZipWriter=Va,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new R;this.readable=t,this.zipWriter=new Va(n,e),this.je=new l}transform(e){const t=this.zipWriter;let n;const{readable:r,writable:s}=new R({start(e){n=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Ia(this,this.zipWriter.add(e,r),e=>n.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:n,writable:r}=new R({start(e){t=e}});return Ia(this,this.zipWriter.add(e,n),e=>t.error(e)),r}async close(e,n={}){return await b.all(t.from(this.je)),this.zipWriter.close(e,n)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=io}=e;return()=>{const e=[];let n,r,s,a=0,o=!1;const i=new E({async write(s){o?await n.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new R;r=new d(t.readable).blob(),n=t.writable.getWriter(),o=!0;for(const t of e)await n.write(t);e.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:i,readable:new D({async pull(t){if(o){if(!s){const e=await r;s=e.stream().getReader()}const{value:e,done:n}=await s.read();n?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}r&&(r.catch(()=>{}),r=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=ao,directoryName:n=oo,getDirectory:r=()=>C.storage.getDirectory()}=e;let s;function a(){return s||(s=b.resolve(r()).then(e=>e.getDirectoryHandle(n,{create:!0}))),s}return()=>{const e=[];let n,r,s,o,i=0,c=!1;const l=new E({async write(o){c?await s.write(o):(e.push(o),i+=o.length,i>t&&await(async()=>{const t=await a();n=S.randomUUID(),r=await t.getFileHandle(n,{create:!0}),s=(await r.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new D({async pull(t){if(c){if(!o){const e=await r.getFile();o=e.stream().getReader()}const{value:e,done:n}=await o.read();n?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){o&&await o.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(n){try{const e=await a();await e.removeEntry(n)}catch{}r=n=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=co,directoryName:n=lo,getDirectory:r}=e;if(!(r||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new w("createSyncAccessHandle is only available in dedicated workers");const s=r||(()=>C.storage.getDirectory());let a;function i(){return a||(a=b.resolve(s()).then(e=>e.getDirectoryHandle(n,{create:!0}))),a}return()=>{const e=[];let n,r,s=0,a=!1,c=0,l=0;const d=new E({async write(o){a?(r.write(o,{at:c}),c+=o.length):(e.push(o),s+=o.length,s>t&&await(async()=>{const t=await i();n=S.randomUUID();const s=await t.getFileHandle(n,{create:!0});r=await s.createSyncAccessHandle(),a=!0;for(const t of e)r.write(t,{at:c}),c+=t.length;e.length=0})())},close(){r&&r.flush()}});let u=0;return{writable:d,readable:new D({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const n=new f(o.min(524288,e)),s=r.read(n,{at:l});s?(l+=s,t.enqueue(n.subarray(0,s))):t.close()}else u<e.length?t.enqueue(e[u++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(r){try{r.close()}catch{}r=null}if(n){try{const e=await i();await e.removeEntry(n)}catch{}n=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:n,codecURI:r,CompressionStream:a,DecompressionStream:o,versionNeeded:i}=e;if(!s.isInteger(t)||0>t||t>N||typeof n!=Re||!n.length)throw new w(Fe);if(De.includes(t))throw new w(Se);const c=typeof a==ne||typeof o==ne;if(!(c||typeof r==Re&&r.length))throw new w(Fe);Ee.set(t,{compressionMethod:t,format:n,codecURI:r,versionNeeded:i}),c&&Me(n,{CompressionStream:a,DecompressionStream:o})},e.resetConfiguration=()=>{for(const e of oe)delete ie[e];n.assign(ie,ae)},e.terminateWorkers=async()=>{await b.allSettled(kn.map(e=>(In(e),e.terminate()))),un=$},e.unregisterCodec=e=>{const t=Ee.get(e);if(t){let n;Ee.delete(e),Ee.forEach(e=>n=n||e.format==t.format),n||ke.delete(t.format)}}});
1
+ ((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).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:b,TextEncoder:z,TextDecoder:x,document:S,crypto:g,btoa:F,TransformStream:R,ReadableStream:E,WritableStream:C,CompressionStream:v,DecompressionStream:D,navigator:T,Worker:O}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==S?S.currentScript:null;const k=4294967295,Z=65535,A=255,L=67324752,M=134695760,P=M,I=33639248,N=101010256,W=101075792,j=117853008,V=22,H=20,Y=21589,G=2048,B=16384,q=2048,Q=1024,X="/",J=30,K=new o(2107,11,31,23,59,58),_=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",ne="function",re=new f;let se=2;try{typeof T!=te&&T.hardwareConcurrency&&(se=T.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof v!=te&&v,DecompressionStream:typeof D!=te&&D},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const n=e[t];n!==$&&(oe[t]=n)}}function ue(e){for(const t of ie){const n=e[t];n!==$&&(ae[t]=n)}de(e)}const we=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],fe=[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],pe=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],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],me=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const be=new f(30).fill(5);function ze(e){const t=new p(16);for(const n of e)t[n]++;t[0]=0;const n=new p(17);for(let e=1;15>=e;e++)n[e+1]=n[e]+t[e];const r=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(r[n[e[t]]++]=t);return{o:t,symbols:r}}const xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Se="Invalid codec definition",ge="Reserved compression method",Fe="Invalid codec module",Re="string",Ee=[0,8,9,99],Ce=new c,ve=new c;function De(e){return Ce.get(e)}function Te(e){return ve.get(e)}function Oe(e,t){const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=ne&&typeof r!=ne)throw new w(Fe);ve.set(e,{CompressionStream:n,DecompressionStream:r})}const Ue=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ue[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Ue[t-1][e];Ue[t][e]=n>>>8^Ue[0][255&n]}const[ke,Ze,Ae,Le,Me,Pe,Ie,Ne]=Ue;class We{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,n),a=n-8;for(;a>=r;r+=8){const e=t^s.getInt32(r,!0),n=s.getInt32(r+4,!0);t=Ne[255&e]^Ie[e>>>8&255]^Pe[e>>>16&255]^Me[e>>>24&255]^Le[255&n]^Ae[n>>>8&255]^Ze[n>>>16&255]^ke[n>>>24&255]}}for(;n>r;r++)t=t>>>8^ke[255&(t^e[r])];this.l=t}get(){return~this.l}}class je extends R{constructor(){let e;const t=new We;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new f(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function Ve(e){if(typeof z==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new z).encode(e)}function He(e,t){const n=new f(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Ye(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Ge(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Be={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Be.h(n);return 32===r?e.concat(t):Be.m(t,r,0|n,e.slice(0,e.length-1))},S(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Be.h(n)},F(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Be.R(t,e[n-1]&2147483648>>t-1,1)),e},R:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,h:e=>i.round(e/1099511627776)||32,m(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<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Be.h(s);return r.push(Be.R(t+a&31,t+a>32?n:r.pop(),1)),r}},qe={bytes:{C(e){const t=Be.S(e)/8,n=new f(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},v(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Be.R(8*(3&n),r)),t}}},Qe=class{constructor(e){const t=this;t.blockSize=512,t.D=[1732584193,4023233417,2562383102,271733878,3285377520],t.T=[1518500249,1859775393,2400959708,3395469782],e?(t.O=e.O.slice(0),t.U=e.U.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.O=e.D.slice(0),e.U=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=qe.A.v(e));const n=t.U=Be.concat(t.U,e),r=t.Z,s=t.Z=r+Be.S(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const a=new h(n);let i=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t.L(a.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t}M(){const e=this;let t=e.U;const n=e.O;t=Be.concat(t,[Be.R(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.L(t.splice(0,16));return e.reset(),n}P(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}I(e,t){return t<<e|t>>>32-e}L(e){const n=this,r=n.O,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=r[0],o=r[1],c=r[2],l=r[3],d=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n.I(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n.I(5,a)+n.P(e,o,c,l)+d+s[e]+n.T[i.floor(e/20)]|0;d=l,l=c,c=n.I(30,o),o=a,a=t}r[0]=r[0]+a|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+d|0}},Xe={importKey:e=>new Xe.N(qe.bytes.v(e)),W(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new w("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),u=new m(d);let f=0;const p=Be;for(t=qe.bytes.v(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,r/8)},N:class{constructor(e){const t=this,n=t.j=Qe,r=[[],[]];t.V=[new n,new n];const s=t.V[0].blockSize/32;e.length>s&&(e=(new n).update(e).M());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.V[0].update(r[0]),t.V[1].update(r[1]),t.H=new n(t.V[0])}reset(){const e=this;e.H=new e.j(e.V[0]),e.Y=!1}update(e){this.Y=!0,this.H.update(e)}digest(){const e=this,t=e.H.M(),n=new e.j(e.V[1]).update(t).M();return e.reset(),n}encrypt(e){if(this.Y)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Je=typeof g!=te&&typeof g.getRandomValues==ne,Ke="Invalid password",_e="Invalid signature",$e=_e,et="zipjs-abort-check-password";function tt(e){if(Je)return g.getRandomValues(e);throw new w("Crypto API not supported")}const nt=16,rt={name:"PBKDF2"},st=n.assign({hash:{name:"HMAC"}},rt),at=n.assign({iterations:1e3,hash:{name:"SHA-1"}},rt),it=["deriveBits"],ot=[8,12,16],ct=[16,24,32],lt=10,dt=[0,0,0,0],ut=typeof g!=te,wt=ut&&g.subtle,ft=ut&&typeof wt!=te,pt=qe.bytes,ht=class{constructor(e){const t=this;t.G=[[[],[],[],[],[]],[[],[],[],[],[]]],t.G[0][0][0]||t.B();const n=t.G[0][4],r=t.G[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.T=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||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.X(e,0)}decrypt(e){return this.X(e,1)}B(){const e=this.G[0],t=this.G[1],n=e[4],r=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!n[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[d]=a,r[a]=d,l=s[c=s[o=s[d]]];let u=16843009*l^65537*c^257*o^16843008*d,w=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][d]=w=w<<24^w>>>8,t[n][a]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}X(e,t){if(4!==e.length)throw new w("invalid aes block size");const n=this.T[t],r=n.length/4-2,s=[0,0,0,0],a=this.G[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,p,h=e[0]^n[0],m=e[t?3:1]^n[1],y=e[2]^n[2],b=e[t?1:3]^n[3],z=4;for(let e=0;r>e;e++)u=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&b]^n[z],f=i[m>>>24]^o[y>>16&255]^c[b>>8&255]^l[255&h]^n[z+1],p=i[y>>>24]^o[b>>16&255]^c[h>>8&255]^l[255&m]^n[z+2],b=i[b>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^n[z+3],z+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&b]^n[z++],u=h,h=m,m=y,y=b,b=u;return s}},mt=class{constructor(e,t){this.J=e,this.K=t,this._=t}reset(){this._=this.K}update(e){return this.$(this.J,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{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}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,n){let r;if(!(r=t.length))return[];const s=Be.S(t);for(let s=0;r>s;s+=4){this.te(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 Be.F(t,s)}},yt=Xe.N;let bt=ut&&ft&&typeof wt.importKey==ne,zt=ut&&ft&&typeof wt.deriveBits==ne;class xt extends R{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){gt(this,e,t,n)},async transform(e,t){const n=this,{password:s,strength:a,ne:i,ready:o}=n;s?(await(async(e,t,n,r)=>{const s=await Rt(e,t,n,Ct(r,0,ot[t])),a=Ct(r,ot[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new w(Ke)})(n,a,s,Ct(e,0,ot[a]+2)),e=Ct(e,ot[a]+2),r?t.error(new w(et)):i()):await o;const c=new f(e.length-lt-(e.length-lt)%nt);t.enqueue(Ft(n,e,c,0,lt,!0))},async flush(e){const{re:t,se:n,pending:r,ready:a}=this;if(n&&t){await a;const i=Ct(r,0,r.length-lt),o=Ct(r,r.length-lt);let c=re;if(i.length){const e=Dt(pt,i);n.update(e);const r=t.update(e);c=vt(pt,r)}const l=Ct(vt(pt,n.digest()),0,lt);let d=r.length<lt?1:0;for(let e=0;lt>e;e++)d|=l[e]^o[e];if(d&&s)throw new w($e);e.enqueue(c)}}})}}class St extends R{constructor({password:e,rawPassword:t,encryptionStrength:n}){super({start(){gt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:s,ne:a,ready:i}=n;let o=re;r?(o=await(async(e,t,n)=>{const r=tt(new f(ot[t]));return He(r,await Rt(e,t,n,r))})(n,s,r),a()):await i;const c=new f(o.length+e.length-e.length%nt);c.set(o,0),t.enqueue(Ft(n,e,c,o.length,0))},async flush(e){const{re:t,se:n,pending:r,ready:s}=this;if(n&&t){await s;let a=re;if(r.length){const e=t.update(Dt(pt,r));n.update(e),a=vt(pt,e)}const i=vt(pt,n.digest()).slice(0,lt);e.enqueue(He(a,i))}}})}}function gt(e,t,r,s){n.assign(e,{ready:new b(t=>e.ne=t),password:Et(t,r),strength:s-1,pending:re})}function Ft(e,t,n,r,s,a){const{re:i,se:o,pending:c}=e;c.length&&(t=He(c,t));const l=t.length-s;let d;for(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new f(t)).set(n,0)}return e})(n,r+(l-l%nt)),d=0;l-nt>=d;d+=nt){const e=Dt(pt,Ct(t,d,d+nt));a&&o.update(e);const s=i.update(e);a||o.update(s),n.set(vt(pt,s),d+r)}return e.pending=Ct(t,d),n}async function Rt(e,r,s,a){e.password=null;const i=await(async(e,t,n,r,s)=>{if(!bt)return Xe.importKey(t);try{return await wt.importKey("raw",t,n,!1,s)}catch{return bt=!1,Xe.importKey(t)}})(0,s,st,0,it),o=await(async(e,t,n)=>{if(!zt)return Xe.W(t,e.salt,at.iterations,n);try{return await wt.deriveBits(e,t,n)}catch{return zt=!1,Xe.W(t,e.salt,at.iterations,n)}})(n.assign({salt:a},at),i,8*(2*ct[r]+2)),c=new f(o),l=Dt(pt,Ct(c,0,ct[r])),d=Dt(pt,Ct(c,ct[r],2*ct[r])),u=Ct(c,2*ct[r]);return n.assign(e,{keys:{key:l,ae:d,passwordVerification:u},re:new mt(new ht(l),t.from(dt)),se:new yt(d)}),u}function Et(e,t){return t===$?Ve(e):t}function Ct(e,t,n){return e.subarray(t,n)}function vt(e,t){return e.C(t)}function Dt(e,t){return e.v(t)}class Tt extends R{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Ut(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=kt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new w(Ke);e=e.subarray(12)}r?t.error(new w(et)):t.enqueue(kt(n,e))}})}}class Ot extends R{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Ut(this,e,t,n)},transform(e,t){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=tt(new f(12));t[11]=n.passwordVerification,r=new f(e.length+t.length),r.set(Zt(n,t),0),s=12}else r=new f(e.length),s=0;r.set(Zt(n,e),s),t.enqueue(r)}})}}function Ut(e,t,r,s){n.assign(e,{password:t,rawPassword:r,passwordVerification:s}),((e,t,r)=>{const s=[305419896,591751049,878082192];if(n.assign(e,{keys:s,ie:new We(s[0]),oe:new We(s[2])}),r)for(let t=0;t<r.length;t++)At(e,r[t]);else for(let n=0;n<t.length;n++)At(e,t.charCodeAt(n))})(e,t,r)}function kt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Lt(e)^t[r],At(e,n[r]);return n}function Zt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Lt(e)^t[r],At(e,t[r]);return n}function At(e,t){let[,n]=e.keys;e.ie.append([t]);const r=~e.ie.get();n=Pt(i.imul(Pt(n+Mt(r)),134775813)+1),e.oe.append([n>>>24]);const s=~e.oe.get();e.keys=[r,n,s]}function Lt(e){const t=2|e.keys[2];return Mt(i.imul(t,1^t)>>>8)}function Mt(e){return 255&e}function Pt(e){return 4294967295&e}function It(e){if(e instanceof E)return e;const t=e.getReader();return new E({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function Nt(e){if(e instanceof C)return e;const t=e.getWriter();return new C({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const Wt="Invalid uncompressed size",jt="Invalid compressed data",Vt=_e,Ht="deflate-raw",Yt="gzip",Gt=[31,139,8];class Bt extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:n,CompressionStream:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,computeCrc32:c,level:l,deflate64:d,format:u,compressionMethod:w}=e,f=this;let p,h,y,b=super.readable;const z=u&&Te(u),x=c&&s&&!d&&!z&&(!a||o)&&!(!i||!r);if(a&&!o||!c||x||(p=new je,b=tn(b,p)),s)if(z)b=nn(b,$t(z.CompressionStream,u,{level:l,chunkSize:t,compressionMethod:w}));else if(x)y=new qt,b=nn(b,new r(Yt)),b=tn(b,y);else try{b=en(b,i,{level:l,chunkSize:t},r,n)}catch(e){let t;try{t=new r(Yt)}catch{throw e}b=nn(b,t),b=tn(b,new qt)}a&&(o?b=tn(b,new Ot(e)):(h=new St(e),b=tn(b,h))),_t(f,b,()=>{a&&!o||!c||(f.crc32=x?y.crc32:new m(p.value.buffer).getUint32(0))})}}class qt extends R{constructor(){let e,t=10,n=new f(0);super({transform(e,r){if(t){const n=i.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const s=n.length+e.length;if(8>=s)return void(n=He(n,e));const a=s-8,o=i.min(a,n.length);r.enqueue(He(n.subarray(0,o),e.subarray(0,a-o))),n=He(n.subarray(o),e.subarray(a-o))},flush(){const t=Ge(n);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Qt extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:o,compressed:c,useCompressionStream:l,deflate64:d,format:u,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let z,x,S=super.readable;if(a&&(s?S=tn(S,new Tt(e)):(x=new xt(e),S=tn(S,x))),c){const e=u&&Te(u);if(e)S=nn(S,$t(e.DecompressionStream,u,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{S=en(S,l,{chunkSize:t,deflate64:d},r,n)}catch(e){if(d||y===$)throw e;let t;try{t=new r(Yt)}catch{throw e}S=((e,t,n)=>{const r=new We;let s,a,i,o=0,c=!1;const l=new b((e,t)=>{a=e,i=t});l.catch(()=>{}),n||a();const d=new R({start(e){const t=new f(10);t.set(Gt),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await l}finally{h()}const t=new f(8),s=Ge(t);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),e.enqueue(t)},cancel(e){i(e)}}),u=new R({transform(e,t){r.append(e),o+=e.length,n>o?c&&p():a(),t.enqueue(e)},cancel(e){i(e)}});return e=tn(e,d),tn(e=nn(e,t),u);function p(){h(),s=setTimeout(()=>i(new w(Wt)),5e3)}function h(){clearTimeout(s)}})(S,t,y)}S=(e=>{const t=e.getReader();return new E({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(jt);throw t.cause=e,t}const{value:r,done:s}=n;s?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(S)}i&&(z=new je,S=tn(S,z)),_t(this,S,()=>{if(i){const e=new m(z.value.buffer);if(o!=e.getUint32(0,!1))throw new w(Vt)}})}}const Xt=new c;function Jt(e,t){if(!e)return!1;let n=Xt.get(e);n||(n=new c,Xt.set(e,n));let r=n.get(t);if(r===$){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r}function Kt(e){return Jt(e,Ht)}function _t(e,t,r){t=tn(t,new R({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function $t(e,t,n){if(!e)throw new w("Compression method not supported");return new e(t,n)}function en(e,t,n,r,s){const a=t&&r?r:s||r,i=n.deflate64?"deflate64-raw":Ht;let o;try{o=new a(i,n)}catch(e){if(!t||!s||a==s)throw e;o=new s(i,n)}return nn(e,o)}function tn(e,t){return It(e).pipeThrough(t)}function nn(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const rn="data",sn="deflate",an="inflate";class on extends R{constructor(e,t){super({});const r=this,{codecType:s}=e;let a;s.startsWith(sn)?a=Bt:s.startsWith(an)&&(a=Qt),r.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new R({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:i})}}),d=new R({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==$&&r.outputSize>e.outputSize))throw new w(Wt)},flush(){const{crc32:e}=o;n.assign(r,{crc32:e,inputSize:i})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class cn extends R{constructor(e){const t=[];let n=0;function r(){const r=new f(e);let s=0;for(;e>s;){const n=t[0],a=e-s;n.length>a?(r.set(n.subarray(0,a),s),t[0]=n.subarray(a),s+=a):(r.set(n,s),s+=n.length,t.shift())}return n-=e,r}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),n+=s.length;n>e;)a.enqueue(r())},flush(e){n&&e.enqueue(((e,t)=>{const n=new f(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,n))}})}}const ln={type:"module"},dn="error";let un,wn,fn,pn,hn=!0;try{hn=typeof structuredClone==ne&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class mn{constructor(e,{readable:t,writable:r},{options:s,config:a,ce:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return n.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new cn(le(a))).pipeThrough(new yn(i),{signal:u}),writable:r,options:n.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new b(t=>{const{ue:n,le:r}=e;n?(r?e.we=t:(n.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{we:t}=e;t&&(e.we=null,e.he=!0,e.ue.terminate(),t()),e.le=!1,d(e)}}}),un===$&&(un=typeof O!=te),(o&&un?xn:zn)(e,a)}}class yn extends R{constructor({onstart:e,onprogress:t,size:n,onend:r}){let s=0;super({async start(){e&&await bn(e,n)},async transform(e,r){s+=e.length,t&&await bn(t,s,n),r.enqueue(e)},async flush(){r&&await bn(r,s)}})}}async function bn(e,...t){try{await e(...t)}catch{}}function zn(e,t){return{run:()=>Sn(e,t)}}function xn(e,t){const{baseURI:r,chunkSize:a,workerStartupTimeout:i}=t;let{wasmURI:o}=t;if(!e.fe){let c;typeof o==ne&&(o=o());try{c=Fn(e.workerURI,r,e)}catch{return un=!1,zn(e,t)}n.assign(e,{ue:c,me:!1,he:!1,fe:{run:async()=>{try{return await(async(e,t)=>{let r,a;const i=new b((e,t)=>{r=e,a=t});n.assign(e,{reader:null,writer:null,ye:r,be:a,result:i});const{readable:o,options:c}=e,{writable:l,closed:d,ze:u}=(e=>{const t=new AbortController,{writable:n,readable:r}=new R,s=r.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:n,closed:s,ze:()=>t.abort()}})(e.writable);let f;try{f=Cn({type:"start",options:c,config:t,readable:o,writable:l},e)}catch(t){u();try{await d}catch{}throw e.pe(),t}f||n.assign(e,{reader:o.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.me||!s.isFinite(p)||0>p||(e.xe=setTimeout(()=>(e=>{if(e.xe=null,e.me)return;const{be:t,writer:n}=e;if(gn(e),e.ue=null,t){const e=new w("Worker startup timeout");e.Se=!0,t(e),n&&n.releaseLock()}})(e),p));try{const e=await i;return await h(),await d,e}catch(e){await h(),u();try{await d}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:a,wasmURI:o,baseURI:r,workerStartupTimeout:i})}catch(n){if(n&&n.Se){un=!1;const{reader:n}=e;return n&&n.releaseLock(),e.reader=null,e.writer=null,Sn(e,t)}throw n}}}})}return e.fe}async function Sn({options:e,readable:t,writable:n,pe:r},s){let a;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(sn),n=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,r=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(n&&n.ge&&!Kt(r))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.ge||(e.useCompressionStream=!0)}}a=new on(e,s),await t.pipeThrough(a).pipeThrough(new cn(le(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:i,outputSize:o}=a;return{crc32:r,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{r()}}function gn(e){const{ue:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function Fn(e,t,r,s,a=!0){let i,o,c;if(fn===$||wn!==e){const n=typeof e==ne;o=n?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=ln);try{i=new O(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(n&&d)return Fn(e,t,r,s,!1);if(s)throw a;return Fn(e,t,r,!0,!1)}}else{s===$&&(s=!0),s&&(c=ln);try{o=new u(o,t)}catch{}try{i=new O(o,c)}catch(n){if(s)throw n;return Fn(e,t,r,!1,a)}}wn=e,fn=o,pn=c}else i=new O(fn,pn);return i.addEventListener("message",e=>{r.me=!0,Rn(r),(async({data:e},t)=>{const{type:r,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,ye:d,be:u,pe:p,de:h}=t,m=()=>t.de!=h;try{if(o){const{message:e,stack:t,code:r,name:s,outputSize:a,cause:i}=o,c=new w(e);n.assign(c,{stack:t,code:r,name:s,outputSize:a}),i&&(c.cause=n.assign(new w(i.message),{name:i.name})),y(c)}else{if("pull"==r){const{value:e,done:n}=await c.read();m()||Cn({type:rn,value:e,done:n,messageId:a},t)}r==rn&&(await l.ready,await l.write(new f(s)),m()||Cn({type:"ack",messageId:a},t)),"close"==r&&y(null,i)}}catch(o){m()||(gn(t),y(o))}function y(e,t){m()||(e?u(e):d(t),l&&l.releaseLock(),p())}})(e,r)}),i.addEventListener(dn,e=>En(e,r)),i.addEventListener("messageerror",e=>En(e,r)),i}function Rn(e){const{xe:t}=e;t&&(clearTimeout(t),e.xe=null)}function En(e,t){e.preventDefault&&e.preventDefault(),Rn(t);const{me:r,be:s,writer:a,pe:i}=t;if(gn(t),r||(t.ue=null),s){let t=e.error||new w(e.message||dn);r||(t=n.assign(new w(t.message||dn),{Se:!0})),s(t),a&&a.releaseLock(),r&&i()}}function Cn(e,{ue:t,writer:n,transferStreams:r,me:s}){try{const{value:n,readable:a,writable:i}=e,o=[];if(n&&(e.value=Ye(n),o.push(e.value.buffer)),r&&hn&&s?(a&&o.push(a),i&&o.push(i)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{hn=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),e}}let vn=[];const Dn=[];let Tn,On,Un=0;async function kn(e,t){const{options:n,config:r}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,checkCrc32:l,computeCrc32:d,encrypted:w,format:f,codecURI:p}=n,{workerURI:h,maxWorkers:m}=r;f&&(p&&(n.codecURI=((e,t)=>{try{return new u(e,t).toString()}catch{return e}})(p,r.baseURI)),await(async(e,t)=>{!ve.has(e)&&t&&Oe(e,await(import(/* webpackIgnore: true */ /* @vite-ignore */t)))})(f,n.codecURI)),t.transferStreams=a||a===$&&r.transferStreams;const y=!(c||l||d||w),z=f===$||!!n.codecURI;return t.useWebWorkers=!y&&z&&(i||i===$&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&h?h:$,n.useCompressionStream=o||o===$&&r.useCompressionStream,(await(async()=>{const n=vn.find(e=>!e.le);if(n)return Pn(n),new mn(n,e,t,x);if(vn.length<m){const n={Fe:Un};return Un++,vn.push(n),new mn(n,e,t,x)}return new b(n=>{Dn.push({resolve:n,stream:e,Re:t}),On=r.workerStarvationTimeout,Zn()})})()).run();function x(e){if(An(),Dn.length){const[{resolve:t,stream:n,Re:r}]=Dn.splice(0,1);t(new mn(e,n,r,x)),Zn()}else e.ue?(Pn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.he?e.he=!1:e.Ee=setTimeout(async()=>{vn=vn.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):vn=vn.filter(t=>t!=e)}}function Zn(){!Tn&&Dn.length&&s.isFinite(On)&&On>=0&&(Tn=setTimeout(Ln,On))}function An(){Tn&&(clearTimeout(Tn),Tn=null)}function Ln(){if(Tn=null,Dn.length){const[{resolve:e,stream:t,Re:r}]=Dn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:$});e(new mn({},t,s,Mn)),Zn()}}function Mn(){An(),Zn()}function Pn(e){const{Ee:t}=e;t&&(clearTimeout(t),e.Ee=null)}const In="HTTP error ",Nn="HTTP Range not supported",Wn="HTTP resource changed",jn="Writer iterator completed too soon",Vn="Writer not initialized",Hn="Content-Range",Yn="Range",Gn="GET",Bn="bytes",qn=16777216,Qn="writable",Xn=Symbol();class Jn{constructor(){this.size=0}init(){this.initialized=!0}}class Kn extends Jn{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=le(ce())}={}){const r=this;let s=0;return new E({async pull(a){const o=t===$?n:i.min(n,t-s),c=await Cr(r,e+s,o);a.enqueue(c),s+n>t||t===$&&!c.length&&o?a.close():s+=n}})}}class _n extends Jn{constructor(){super();const e=this,t=new C({write(t){if(!e.initialized)throw new w(Vn);return e.writeUint8Array(Ye(t))}});n.defineProperty(e,Qn,{get:()=>t})}writeUint8Array(){}}let $n,er;class tr extends Kn{constructor(e){super(),n.assign(this,{blob:e,size:e.size}),er||(er=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();$n=1==t}catch{$n=!1}})())}createReadable(e){const{blob:t,size:n}=this,{offset:r=0,size:s=n-r}=e||{};return r||n>s?$n?It(t.slice(r,r+s).stream()):super.createReadable(e):It(t.stream())}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,r)),new f(a)}}class nr extends Jn{constructor(e){super();const t=this,r=new R;if(n.defineProperty(t,Qn,{get:()=>r.writable}),typeof y.prototype.stream!=ne||new y([]).stream()instanceof E){const n=[];e&&n.push(["Content-Type",e]),t.blob=new d(r.readable,{headers:n}).blob()}else{const n=[];t.blob=r.readable.pipeTo(new C({write(e){n.push(e)}})).then(()=>new y(n,{type:e}))}t.blob.catch(()=>{})}getData(){return this.blob}}class rr extends Kn{constructor(e,t){super(),ar(this,e,t)}async init(){await ir(this,br,pr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:a}=t;if((n||r)&&a!==$){const{offset:n=0,size:r=a-n}=e||{};if(r>0&&a>n)return((e,t,n)=>{let r,a=t,o=0,c=n;return new E({start:()=>l(),async pull(e){r||await l();const{value:t,done:n}=await r.read();if(n)throw new w(Nn);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=r;r=$,await e.cancel()})(),c||e.close())},cancel:e=>r&&r.cancel(e)});async function l(){const t=i.min(e.maximumRangeSize,c),n=await br(Gn,e,wr(e,a,t));if(206!=n.status)throw new w(Nn);const l=n.headers.get(Hn);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new w(Nn)}ur(e,n),dr(e,n),a+=t,o=t,r=n.body.getReader()}})(t,n,i.min(r,a-n))}return super.createReadable(e)}readUint8Array(e,t){return or(this,e,t,br,pr)}}class sr extends Kn{constructor(e,t){super(),ar(this,e,t)}async init(){await ir(this,zr,hr),super.init()}readUint8Array(e,t){return or(this,e,t,zr,hr)}}function ar(e,t,r){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=qn,fetch:d}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:l,fetch:d})}async function ir(e,t,n){const{url:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:n}=new u(e,t);return"http:"==n||"https:"==n})(r)&&(a||i)&&(void 0===s||s)){const r=await t(Gn,e,wr(e,o?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==Bn))throw new w(Nn);{if(o){const t=new f(await r.arrayBuffer());206==r.status&&t.length==V&&(e.Ce=t)}dr(e,r);const s=cr(r);s===$?await yr(e,t,n):e.size=s}}else await yr(e,t,n)}async function or(e,t,n,r,a){const{useRangeHeader:i,forceRangeRequests:o,Ce:c,size:l,options:d}=e;if(i||o){if(c&&t==l-V&&n==V)return c;if(l>t&&0!==n){t+n>l&&(n=l-t);const a=await r(Gn,e,wr(e,t,n));if(206!=a.status)throw new w(Nn);const i=a.headers.get(Hn);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(Nn)}ur(e,a),dr(e,a);const o=new f(await a.arrayBuffer());if(o.length!=n)throw new w(Nn);return o}return re}{const{data:r}=e;return r||await a(e,d),e.data.subarray(t,t+n)}}function cr(e){const t=e.headers.get(Hn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function lr({headers:e}){return{ve:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function dr(e,t){const{checkResourceChanges:n,De:r}=e;n&&!r&&206==t.status&&(e.De=lr(t))}function ur(e,t){const{checkResourceChanges:r,De:s,size:a}=e;if(r){const e=cr(t);if(e!==$&&a!==$&&e!=a)throw new w(Wn);if(s){const e=lr(t);if(n.entries(s).some(([t,n])=>n!==$&&e[t]!==$&&n!=e[t]))throw new w(Wn)}}}function wr(e,t=0,r=1){return n.assign({},fr(e),{[Yn]:Bn+"="+(0>t?t:t+"-"+(t+r-1))})}function fr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function pr(e){await mr(e,br)}async function hr(e){await mr(e,zr)}async function mr(e,t){const n=await t(Gn,e,fr(e));e.data=new f(await n.arrayBuffer()),e.size=e.data.length}async function yr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,fr(e)),a=r.headers.get("Content-Length");a&&!r.headers.get("Content-Encoding")?e.size=s(a):await n(e,e.options)}}async function br(e,{fetch:t=fetch,options:r,url:s},a){const i=await t(s,n.assign({},r,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new w(Nn):new w(In+(i.statusText||i.status))}function zr(e,{url:t},r){return new b((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){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)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new w(Nn):new w(In+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new w("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 xr extends Kn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new sr(e,t):new rr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Sr extends Kn{constructor(e){super(),this.Te=e}async init(){const e=this,{Te:t}=e;e.Oe=0,await b.all(t.map(e=>Er(e))),e.Ue=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}ke(e){const{Ue:t,size:n}=this,r=t[e];return r===$?n:r}async readUint8Array(e,t){const n=this,{Te:r}=this;let s,a=0,o=e;for(;r[a]&&o>=r[a].size;)o-=r[a].size,a++;const c=r[a];if(c){const r=c.size;if(o+t>r){const a=r-o;s=He(await Cr(c,o,a),await n.readUint8Array(e+a,t-a))}else s=await Cr(c,o,t)}else s=re;return n.Oe=i.max(a,n.Oe),s}}class gr extends Jn{constructor(e,t=4294967295){super();const r=this;let s,a,i;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new C({async write(t){if(t===Xn)return void(i&&await l());const{availableSize:n}=r;if(i)t.length<n?await c(t):(await c(t.subarray(0,n)),await l(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:o}=await e.next();if(o&&!n)throw new w(jn);s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await Er(s),a=n.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,r.availableSize-=t)}async function l(){await d(),r.diskOffset+=s.size,r.diskNumber++,i=null,r.availableSize=r.maxSize}async function d(){await i.close()}n.defineProperty(r,Qn,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Xn)}finally{e.releaseLock()}}}class Fr{constructor(e){return t.isArray(e)&&(e=new Sr(e)),(e instanceof E||typeof e.getReader==ne)&&(e={readable:It(e)}),e}}class Rr{constructor(e){return e.writable===$&&typeof e.next==ne&&(e=new gr(e)),(e instanceof C||typeof e.getWriter==ne)&&(e={writable:Nt(e)}),e.size===$&&(e.size=0),e}}async function Er(e,t){if(!e.init||e.initialized)return b.resolve();await e.init(t)}function Cr(e,t,n){return e.readUint8Array(t,n)}const vr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Dr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;n<e.length;n++)t+=vr[e[n]];return t}})(e):new x(t,{ignoreBOM:!0}).decode(e)}const Tr="filename",Or="rawFilename",Ur="comment",kr="rawComment",Zr="uncompressedSize",Ar="compressedSize",Lr="offset",Mr="diskNumberStart",Pr="lastModDate",Ir="rawLastModDate",Nr="lastAccessDate",Wr="rawLastAccessDate",jr="creationDate",Vr="rawCreationDate",Hr="internalFileAttributes",Yr="externalFileAttributes",Gr="msdosAttributesRaw",Br="msdosAttributes",qr="msDosCompatible",Qr="zip64",Xr="encrypted",Jr="version",Kr="versionMadeBy",_r="zipCrypto",$r="directory",es="executable",ts="compressionMethod",ns="signature",rs="extraField",ss="unixMode",as="setuid",is="setgid",os="sticky",cs=[Tr,Or,Zr,Ar,Pr,Ir,Ur,kr,Nr,Wr,jr,Vr,Lr,Mr,Hr,Yr,Gr,Br,qr,Qr,Xr,Jr,Kr,_r,$r,es,ts,ns,"crc32",rs,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",ss,as,is,os,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class ls{constructor(e){cs.forEach(t=>this[t]=e[t])}}const ds="password",us="rawPassword",ws="passThrough",fs="signal",ps="checkAmbiguity",hs="useWebWorkers",ms="useCompressionStream",ys="transferStreams",bs="preventClose",zs="offset",xs="usdz",Ss="strictness",gs="strict",Fs="tolerant",Rs="File format is not recognized",Es="End of central directory not found",Cs="End of Zip64 central directory locator not found",vs="Central directory header not found",Ds="Local file header not found",Ts="Zip64 extra field not found",Os="File contains encrypted entry",Us="Encryption method not supported",ks="Compression method not supported",Zs="Split zip file",As="Overlapping entry found",Ls="Ambiguous archive",Ms="Encrypted central directory is not supported",Ps="utf-8",Is="cp437",Ns=[[Zr,k],[Ar,k],[Lr,k],[Mr,Z]],Ws={[Z]:{Ze:fa,bytes:4},[k]:{Ze:pa,bytes:8}};class js{constructor(e,t={}){n.assign(this,{reader:new Fr(e),options:t,config:ce(),Ae:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await Er(r),r.size!==$&&r.readUint8Array||(r=new tr(await new d(r.readable).blob()),await Er(r)),r.size<V)throw new w(Rs);const a=_s(ca(t,e,Ss),ca(t,e,ps)),o=a==gs,c=a!=Fs,u=((e,t)=>e!==$?e:t==gs?0:t==Fs?1/0:Z)(ca(t,e,"maxAppendedDataSize"),a),{Le:f,Me:p}=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,65557),a={count:$s};let o,c,l=0;for await(const[n,i,d,u,w]of ra(e,s)){const s=wa(n,u+20);if(w+V+s==r){const s=await aa(e,n,i,u,w,r,a);if(s==na){if(o||(o=sa(d,u,w)),l++,!t||l>1)break}else s!=ta||c||(c=sa(d,u,w))}}return o||(o=c),o||(o=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,t==1/0?r:65557+t);let a,o;for await(const[t,i,c,l,d]of ra(e,s)){const s=sa(c,l,d);a||(a=s);const u=await aa(e,t,i,l,d,r,n);if(u==na)return s;u!=ta||o||(o=s)}return o||a})(e,n,a)),{Le:o,Me:l}})(r,c,u);if(!f)throw fa(Ge(await Cr(r,0,4)))==M?new w(Zs):new w(Es);c&&p>1&&oa("multiple end of central directory records");const h=Ge(f);let m=fa(h,12),y=fa(h,16);const z=f.offset,x=wa(h,20),S=z+V+x;r.size-S>u&&oa("appended data");let g=wa(h,4);const F=r.Oe||0;let E,C,v,D=wa(h,6),T=wa(h,10),O=0;const U=y==k||m==k||T==Z||D==Z;if(y!=k&&D!=Z&&(y+=Ks(r,D)),U){const e=f.offset<H?re:await Cr(r,f.offset-H,H),t=Ge(e);if(e.length==H&&fa(t,0)==j){y=Ks(r,fa(t,4))+pa(t,8);let e=await Cr(r,y,56),n=Ge(e);const s=f.offset-H-56;if((56>e.length||fa(n,0)!=W)&&y!=s&&s>=0){const t=y;y=s,y>t&&(O=y-t),e=await Cr(r,y,56),n=Ge(e)}if(56>e.length||fa(n,0)!=W)throw new w(Cs);C=!0,v=pa(n,4)>44,g==Z?g=fa(n,16):o&&g!=fa(n,16)&&oa("mismatched zip64 end of central directory record"),D==Z?D=fa(n,20):o&&D!=fa(n,20)&&oa("mismatched zip64 end of central directory record"),T==Z?T=pa(n,32):o&&T!=pa(n,32)&&oa("mismatched zip64 end of central directory record"),m==k?m=pa(n,40):o&&m!=pa(n,40)&&oa("mismatched zip64 end of central directory record"),y=Ks(r,D)+pa(n,48)+O}}const L=m,P=f.offset-(C?76:0);if(y<r.size||(O=r.size-y-m-V,y=r.size-m-V),F!=g)throw new w(Zs);if(0>y)throw new w(Rs);let N=0,Y=await Cr(r,y,m),G=Ge(Y);if(m){if(4>Y.length)throw new w(Rs);const e=P-m;if(y!=e&&D==g){let t=!(fa(G,N)==I);if(t||0>e||e+4>r.size||(t=fa(Ge(await Cr(r,e,4)),0)==I),t){const t=y;y=e,y>t&&(O+=y-t),Y=await Cr(r,y,m),G=Ge(Y)}}}const J=P-y;if(m==J||0>J||D!=g||(m=J,Y=await Cr(r,y,m),G=Ge(Y)),0>y||y>=r.size)throw new w(Rs);E=y;const K=ca(t,e,"filenameEncoding"),_=ca(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let a=0;T>a;a++){const c=new Hs(r,s,t.options);if(N+46>Y.length||fa(G,N)!=I){if(0==a&&(v||Ys(G)))throw new w(Ms);throw new w(vs)}Gs(c,G,N+6);const l=!!c.bitFlag.languageEncodingFlag,u=N+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=wa(G,N+4),m=!(h>>8),y=h>>8==3,z=Y.subarray(u,f),x=wa(G,N+32),S=p+x,g=Y.subarray(p,S),F=l,C=l,D=fa(G,N+38),U=D&A,k={readOnly:!!(1&U),hidden:!!(2&U),system:!!(4&U),directory:!!(16&U),archive:!!(32&U)},L=fa(G,N+42),M=ca(t,e,"decodeText")||Dr,P=F?Ps:K||Is,W=C?Ps:_||Is;let j=M(z,P);j===$&&(j=Dr(z,P));let V=M(g,W);V===$&&(V=Dr(g,W)),n.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Pe:x,offset:L,diskNumberStart:wa(G,N+34),internalFileAttributes:wa(G,N+36),externalFileAttributes:D,msdosAttributesRaw:U,msdosAttributes:k,rawFilename:z,filenameUTF8:F,commentUTF8:C,rawExtraField:Y.subarray(f,p),rawComment:g,filename:j,comment:V}),Bs(c,c,G,N+6),c.offset+=O,E=i.min(Ks(r,c.diskNumberStart)+c.offset,E),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const H=c.externalFileAttributes>>16&Z;c.unixMode===$&&16877&H&&(c.unixMode=H);const J=!!(c.unixMode&q),ne=!!(c.unixMode&Q),re=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&H),ae=c.unixMode!==$&&(61440&c.unixMode)==B,ie=(61440&H)==B;n.assign(c,{setuid:J,setgid:ne,sticky:re,unixExternalUpper:H,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ae||ie||m&&k.directory||c.filename.endsWith(X)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new ls(c);oe.getData=(e,n)=>c.getData(e,oe,t.Ae,n),oe.arrayBuffer=async e=>{const n=new R,[r]=await b.all([new d(n.readable).arrayBuffer(),c.getData(n,oe,t.Ae,e)]);return r},N=S;const{onprogress:ce}=e;if(ce)try{await ce(a+1,T,new ls(c))}catch{}yield oe}o&&N!=L&&oa("trailing central directory data"),te&&oa("duplicate filename"),o&&(O||T&&E>0)&&oa("prepended data");const ne=ca(t,e,"extractPrependedData"),se=ca(t,e,"extractAppendedData");return ne&&(t.prependedData=E>0?await Cr(r,0,E):re),t.comment=x?await Cr(r,z+V,x):re,se&&(t.appendedData=S<r.size?await Cr(r,S,r.size-S):re),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class Vs{constructor(e={}){const{readable:t,writable:n}=new R,r=new js(t,e).getEntriesGenerator();this.readable=new E({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new R;if(n.getData)return(async()=>{try{await n.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}}class Hs{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,n,r={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:f,bitFlag:p,rawBitFlag:h,crc32:m,rawLastModDate:y,uncompressedSize:b,compressedSize:z}=s,{dataDescriptor:x}=p,S=t.localDirectory={},g=Ks(a,c)+o,F=await Cr(a,g,J),R=Ge(F);let E=ca(s,r,ds),v=ca(s,r,us);const D=ca(s,r,ws);if(E=E&&E.length&&E,v=v&&v.length&&v,l&&99!=l.originalCompressionMethod)throw new w(ks);if(F.length<J||fa(R,0)!=L)throw new w(Ds);Gs(S,R,4);const{extraFieldLength:T,filenameLength:O}=S,U=_s(ca(s,r,Ss),ca(s,r,ps))==gs;let k=re;if(U&&(O||T)){const e=await Cr(a,g+J,O+T);k=e.subarray(0,O),S.rawExtraField=e.subarray(O)}else S.rawExtraField=T?await Cr(a,g+J+O,T):re;Bs(s,S,R,4,!0),U&&((e,t,n)=>{const{rawFilename:r}=e;(n.length!=r.length||n.some((e,t)=>e!=r[t]))&&oa("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&oa("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&oa("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||oa("mismatched local file header (crc32 or sizes)")})(s,S,k);const{lastAccessDate:Z,creationDate:M}=S;Z&&(t.lastAccessDate=Z),M&&(t.creationDate=M);const I=s.encrypted&&S.encrypted&&!D,N=I&&!l;if(D||(t.zipCrypto=N),I&&!(64&~S.rawBitFlag))throw new w(Us);const W=D?$:De(u);if(0!=u&&8!=u&&9!=u&&!W&&!D)throw new w(ks);if(I){if(!N&&(1>l.strength||l.strength>3))throw new w(Us);if(!E&&!v)throw new w(Os)}const j=g+J+O+T,V=z,H=It(a.createReadable({offset:j,size:V})),Y=ca(s,r,fs),G=ca(s,r,"checkPasswordOnly");let B=ca(s,r,"checkOverlappingEntry");const q=ca(s,r,"checkOverlappingEntryOnly");q&&(B=!0);const{onstart:Q,onprogress:X,onend:K}=r,_=9==u;let ee=ca(s,r,ms);_&&(ee=!1);const te=ca(s,r,"checkCrc32"),ne=(te===$?ca(s,r,"checkSignature"):te)&&!D&&(!I||N||l&&1==l.vendorVersion),se={options:{codecType:an,password:E,rawPassword:v,zipCrypto:N,encryptionStrength:l&&l.strength,checkCrc32:ne,checkAuthenticationCode:ca(s,r,"checkAuthenticationCode"),passwordVerification:N&&(x?y>>>8&A:m>>>24&A),outputSize:D?z:b,crc32:m,compressed:0!=u&&!D,encrypted:I,useWebWorkers:ca(s,r,hs),useCompressionStream:ee,transferStreams:ca(s,r,ys),deflate64:_,format:W?W.format:$,codecURI:W?W.codecURI:$,compressionMethod:u,rawBitFlag:h,checkPasswordOnly:G},config:f,ce:{signal:Y,size:V,onstart:Q,onprogress:X,onend:K}};let ae;B&&await(async({reader:e,Ie:t,index:n,offset:r,crc32:s,compressedSize:a,uncompressedSize:i,Ne:o,dataDescriptor:c,extraFieldZip64:l,Ae:d})=>{let u=0;if(c&&(u=l?20:12),u){const n=await Cr(e,o+a,u+4);if(n.length==u+4&&fa(Ge(n),0)==P){const e=fa(Ge(n),4);let r,o;l?(r=pa(Ge(n),8),o=pa(Ge(n),16)):(r=fa(Ge(n),8),o=fa(Ge(n),12)),(t.encrypted&&!t.zipCrypto||e==s)&&r==a&&o==i&&(u+=4)}}const f={start:r,end:o+a+u,Ie:t};for(const[e,t]of d)if(e!=n&&f.start<t.end&&t.start<f.end){const e=new w(As);throw e.We=t.Ie,e}d.set(n,f)})({reader:a,Ie:t,index:i,offset:g,crc32:m,compressedSize:z,uncompressedSize:b,Ne:j,dataDescriptor:x||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,Ae:n});try{if(!q){G&&(e=new C),e=new Rr(e),await Er(e,D?z:b),({writable:ae}=e);const{outputSize:t}=await kn({readable:H,writable:ae},se);if(e.size+=t,t!=(D?z:b))throw new w(Wt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!G||t.message!=et)throw t}finally{ca(s,r,bs)||!ae||ae.locked||await ae.getWriter().close()}return G||q?$:e.getData?e.getData():ae}}function Ys(e){const t=i.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==fa(e,n))return!0;return!1}function Gs(e,t,r){const s=e.rawBitFlag=wa(t,r+2),a=!(1&~s),i=fa(t,r+6);n.assign(e,{encrypted:a,version:wa(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&G)==G},rawLastModDate:i,lastModDate:la(i),filenameLength:wa(t,r+22),extraFieldLength:wa(t,r+24)})}function Bs(e,t,r,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Ge(i);let u=0;try{for(;u<i.length;){const e=wa(d,u),t=wa(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=wa(r,s+4);n.assign(t,{signature:fa(r,s+10),crc32:fa(r,s+10),compressedSize:fa(r,s+14),uncompressedSize:fa(r,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const n=Ge(e.data),r=Ns.filter(([e,n])=>t[e]==n),s=r.reduce((e,[,t])=>e+Ws[t].bytes,0);if(e.data.length<s)throw new w(Ts);for(let s=0,a=0;s<r.length;s++){const[i,o]=r[s],c=Ws[o];t[i]=e[i]=c.Ze(n,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(qs(h,Tr,Or,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(qs(m,Ur,kr,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,r)=>{const s=Ge(e.data),a=ua(s,4);n.assign(e,{vendorVersion:ua(s,0),vendorId:ua(s,2),strength:a,originalCompressionMethod:r,compressionMethod:wa(s,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=$)})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const b=l.get(13);b&&(Qs(b,t),t.extraFieldPkwareUnix=b);const z=l.get(22613);z&&(Qs(z,t),t.extraFieldUnixType1=z);const x=l.get(10);x&&(((e,t)=>{const r=Ge(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=wa(r,a),n=wa(r,a+2);1==t&&(s=e.data.slice(a+4,a+4+n)),a+=4+n}}catch{}if(s&&24==s.length){const r=Ge(s),a=r.getBigUint64(0,!0),i=r.getBigUint64(8,!0),o=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:da(a),lastAccessDate:da(i),creationDate:da(o)};n.assign(e,c),n.assign(t,c)}})(x,t),t.extraFieldNTFS=x);const S=l.get(30805);if(S)Xs(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(Xs(e,t,!0),t.extraFieldInfoZip=e)}const g=l.get(Y);g&&(((e,t,n)=>{if(!e.data.length)return;const r=Ge(e.data),s=ua(r,0),a=[],i=[];n?(1&~s||(a.push(Pr),i.push(Ir)),2&~s||(a.push(Nr),i.push(Wr)),4&~s||(a.push(jr),i.push(Vr))):5>e.data.length||(a.push(Pr),i.push(Ir));let c=1;a.forEach((n,s)=>{if(e.data.length>=c+4){const a=fa(r,c);t[n]=e[n]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(g,t,a),t.extraFieldExtendedTimestamp=g);const F=l.get(6534);F&&(t.extraFieldUSDZ=F)}function qs(e,t,r,s,a){if(5>e.data.length)return void(e.valid=!1);const i=Ge(e.data),o=new We;o.append(a[r]);const c=Ge(new f(4));c.setUint32(0,o.get(),!0);const l=fa(i,1);n.assign(e,{version:ua(i,0),[t]:Dr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==fa(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Qs(e,t){if(8>e.data.length)return;const r=Ge(e.data),s={lastAccessDate:new o(1e3*fa(r,0)),lastModDate:new o(1e3*fa(r,4))};12>e.data.length||(s.uid=wa(r,8),s.gid=wa(r,10)),n.assign(e,s),n.assign(t,s)}function Xs(e,t,r){try{const s=Ge(e.data);let a,i;if(r){let t=0;const r=ua(s,t++),o=ua(s,t++);a=Js(e.data.subarray(t,t+o)),t+=o;const c=ua(s,t++);i=Js(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:a,gid:i})}else 4>e.data.length||(a=wa(s,0),i=wa(s,2),n.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function Js(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ks(e,t){return e.ke?e.ke(t):0}function _s(e,t){return e===$?t?gs:"balanced":e}const $s=64,ea=0,ta=1,na=2;async function*ra(e,t){const n=e.size-t,r=await Cr(e,n,t),s=Ge(r);for(let e=r.length-V;e>=0;e--)fa(s,e)==N&&(yield[s,n,r,e,n+e])}function sa(e,t,n){return{offset:n,buffer:e.slice(t,t+V).buffer}}async function aa(e,t,n,r,s,a,i){const o=wa(t,r+10),c=fa(t,r+12),l=fa(t,r+16);if(o==Z||c==k||l==k)return await ia(e,t,n,s-H,a,i)==j?na:ea;if(!o&&!c)return ta;const d=wa(t,r+6);for(const r of[s-c,Ks(e,d)+l])if(await ia(e,t,n,r,a,i)==I)return na;return ea}async function ia(e,t,n,r,s,a){return 0>r||r+4>s?$:n>r?a.count>0?(a.count--,fa(Ge(await Cr(e,r,4)),0)):$:fa(t,r-n)}function oa(e){const t=new w(Ls);throw t.reason=e,t}function ca(e,t,n){return t[n]===$?e.options[n]:t[n]}function la(e){const t=(4294901760&e)>>16,n=e&Z;return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}function da(e){return new o(s(e/a(1e4)-a(116444736e5)))}function ua(e,t){return e.getUint8(t)}function wa(e,t){return e.getUint16(t,!0)}function fa(e,t){return e.getUint32(t,!0)}function pa(e,t){return s(e.getBigUint64(t,!0))}var ha=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Ls,ERR_BAD_FORMAT:Rs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:vs,ERR_ENCRYPTED:Os,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Ms,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Cs,ERR_EOCDR_NOT_FOUND:Es,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Ts,ERR_INVALID_AUTHENTICATION_CODE:$e,ERR_INVALID_COMPRESSED_DATA:jt,ERR_INVALID_CRC32:Vt,ERR_INVALID_PASSWORD:Ke,ERR_INVALID_SIGNATURE:_e,ERR_INVALID_UNCOMPRESSED_SIZE:Wt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Ds,ERR_OVERLAPPING_ENTRY:As,ERR_SPLIT_ZIP_FILE:Zs,ERR_UNSUPPORTED_COMPRESSION:ks,ERR_UNSUPPORTED_ENCRYPTION:Us,ZipReader:js,ZipReaderStream:Vs});const ma="File already exists",ya="Zip file comment exceeds 64KB",ba="File entry comment exceeds 64KB",za="File entry name exceeds 64KB",xa="Version exceeds 65535",Sa="The strength must equal 1, 2, or 3",ga="Encryption is not supported in USDZ files",Fa="Extra field type exceeds 65535",Ra="Extra field data exceeds 64KB",Ea=-2147483648,Ca=2147483647,va=a(0),Da=a("0x7fffffffffffffff"),Ta="Zip64 is not supported (set the 'zip64' option to 'true')",Oa="Undefined uncompressed size",Ua="Undefined reader",ka="Zip file not empty",Za=new f([7,0,2,0,65,69,3,0,0]),Aa="infozip",La="unix";let Ma=0;const Pa=[];class Ia{constructor(e,t={}){e=new Rr(e);const{availableSize:r=ee,maxSize:s=ee}=e,a=r>0&&r!==ee&&s>0&&s!==ee;n.assign(this,{writer:e,je:a,options:t,config:ce(),files:new c,Ve:new l,offset:t[zs]===$?e.size||e.writable.size||0:t[zs],He:t[zs]===$?0:t[zs]-(e.size||e.writable.size||0),Ye:new l,Ge:0,Be:$})}async prependZip(e){if(this.Ve.size)throw new w(ka);e=new Fr(e),await Er(e);const{ZipReader:t}=await b.resolve().then(()=>ha),r=new t(e.readable),s=await r.getEntries();await r.close(),await Er(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ve=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:r,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:u}=e;let{compressionMethod:w,qe:f,Qe:p,Xe:h,Je:m,Ke:y,rawExtraField:b}=e;const{level:z,languageEncodingFlag:x,dataDescriptor:S}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,b=b||re,e.extraFieldAES&&(w=99);const g=ai(f,p,h,m,y,b),F=u&&l>=k,R=u&&d>=k,E=-7&oi(z,x,S,c,w)|z<<1,{_e:C,$e:v}=ii({version:t,bitFlag:E,compressionMethod:w,uncompressedSize:l,compressedSize:d,rawLastModDate:r,rawFilename:i,et:R,nt:F,extraFieldLength:g}),{crc32:D}=e;return D!==$&&ni(v,10,D),n.assign(e,{nt:F,et:R,st:u&&e.offset>=k,diskNumberStart:0,it:!1,qe:f,Qe:p,Xe:h,Je:m,Ke:y,rawExtraField:b,extendedTimestamp:h.length>0||m.length>0,ot:1+(s?2:0)+(a?4:0),_e:C,$e:v}),[e.filename,e]}))}async add(e="",t,r={}){const s=this;r=n.assign({},r);const{Ye:c,config:l}=s;let d,u;Ma<l.maxWorkers?Ma++:await new b(e=>Pa.push(e));try{if(e=e.trim(),$a(s,r,$r)&&!e.endsWith(X)&&(e+=X),s.Ve.has(e))throw new w(ma);return s.Ve.add(e),u=!0,d=(async(e,t,r,s)=>{const c=((e,t,n)=>{t=t.trim();let r=$a(e,n,qr),s=$a(e,n,Kr,r?20:768);const a=$a(e,n,es),i=$a(e,n,"uid"),o=$a(e,n,"gid");let c=$a(e,n,ss),l=$a(e,n,"unixExtraFieldType"),d=$a(e,n,as),u=$a(e,n,is),f=$a(e,n,os);if(i!==$&&(0>i||i>k))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>k))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>Z))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Aa&&l!==La)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===La&&(i!==$&&i>Z||o!==$&&o>Z))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=Aa);let p=$a(e,n,Gr),h=$a(e,n,Br);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(r=!1,s=s&Z|768):m&&(r=!0,s&=A),p!==$&&(0>p||p>A))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>Z)throw new w(xa);let y=$a(e,n,Yr);const b=y!==$;b||(y=0),!n[$r]&&t.endsWith(X)&&(n[$r]=!0);const z=$a(e,n,$r);let x;if(z?(t.endsWith(X)||(t+=X),b||(y=16,r||(y|=16877<<16))):r||b||(y=a?493<<16:27525120),!r){const e=c!==$||!!(d||u||f);x=y>>16&Z,c=c===$?x:c&Z,d?c|=q:d=!!(c&q),u?c|=Q:u=!!(c&Q),f?c|=512:f=!!(512&c),b&&!e||(z&&(c|=B),y=(c&Z)<<16|y&Z)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=A;else if(t!==$){const{readOnly:n,hidden:r,system:s,directory:a,archive:i}=t;let o=0;n&&(o|=1),r&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&A}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&k|p&A),{name:t,ct:{versionMadeBy:s,msDosCompatible:r,externalFileAttributes:y,unixExternalUpper:x,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,n)=>{const r=$a(e,n,"encodeText",Ve);let s=r(t);if(s===$&&(s=Ve(t)),ai(s)>Z)throw new w(za);const a=n[Ur]||"";let i=r(a);if(i===$&&(i=Ve(a)),ai(i)>Z)throw new w(ba);const c=$a(e,n,Jr,20);if(c>Z)throw new w(xa);const l=$a(e,n,Pr,new o),d=$a(e,n,Nr),u=$a(e,n,jr),f=$a(e,n,Hr,0),p=$a(e,n,ws);let h,m;p||(h=$a(e,n,ds),m=$a(e,n,us));const y=$a(e,n,"encryptionStrength",3),b=$a(e,n,_r),z=$a(e,n,"extendedTimestamp",!0),x=$a(e,n,"ntfsTimestamp"),S=$a(e,n,"keepOrder",!0),g=$a(e,n,hs),F=$a(e,n,ys),R=$a(e,n,"bufferedWrite"),E=$a(e,n,"createTempStream"),C=$a(e,n,"dataDescriptorSignature",!0),v=$a(e,n,fs),D=$a(e,n,"useUnicodeFileNames",!0),T=$a(e,n,ts),O=p||T===$?$:De(T);if(!p&&T!==$&&0!==T&&8!==T&&!O)throw new w("Compression method not supported");let U=$a(e,n,"level");if(e.options[xs]){if(h!==$||m!==$)throw new w(ga);U===$&&T===$&&(U=0)}let k=$a(e,n,ms),A=$a(e,n,"dataDescriptor");R&&A===$&&(A=!1),(A===$||b)&&(A=!0),U!==$&&6!=U&&(k=!1);const L=$a(e,n,Qr);if(!b&&(h!==$||m!==$)&&(1>y||y>3))throw new w(Sa);const M=Wa(n[rs]),P=Wa(n.localExtraField);return{comment:a,ct:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:u,internalFileAttributes:f,passThrough:p,password:h,rawPassword:m,encryptionStrength:y,zipCrypto:b,extendedTimestamp:z,ntfsTimestamp:x,keepOrder:S,useWebWorkers:g,transferStreams:F,bufferedWrite:R,createTempStream:E,dataDescriptorSignature:C,signal:v,useUnicodeFileNames:D,compressionMethod:T,format:O?O.format:$,codecURI:O?O.codecURI:$,lt:O?O.versionNeeded:$,level:U,useCompressionStream:k,dataDescriptor:A,zip64:L,rawExtraField:M,ut:P}}})(e,t,s),{comment:d}=l,u=s[rs];let p;e.files.set(t,$);try{const{ct:d}=l;0==d.level||d.compressionMethod!==$||d.passThrough||await(async e=>{const{CompressionStream:t,CompressionStreamZlib:n}=e;if(n&&!n.ge)return!0;if(Kt(t)||Jt(t,Yt))return!0;if(n)try{return await void 0,!0}catch{return!1}return!1})(e.config)||(d.level=0);const u=await(async(e,t,{ct:n},r)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:d,level:u,compressionMethod:f}=n,p=0,h=0;if(s){if(!t)throw new w(Ua);if(h=r[Zr],h===$)throw new w(Oa)}const m=!0===d,y=$a(e,r,Xr),b=!!t&&(!!(i&&ai(i)||o&&ai(o))||s&&y);t||(u=0,f=0);const z=b?a?12:16+4*c:0;t&&(t=new Fr(t),await Er(t),s?(r.uncompressedSize=h,p=ei(h)+z):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(r.uncompressedSize=h=t.size,p=ei(h)+z));const x=m||h>=k,S=m||p>=k;if(x||S){if(!1===d)throw new w(Ta);d=!0}return d=d||!1,{reader:t,ct:{dataDescriptor:l,zip64:d,nt:x,et:S,uncompressedSize:h,level:u,compressionMethod:f,encrypted:b}}})(e,r,l,s);({reader:r}=u);const h=Ga(e.writer),m=Ya(e.writer),y=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,level:a,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:p,ut:h,encryptionStrength:m,extendedTimestamp:y,ntfsTimestamp:b,passThrough:z,encrypted:x,nt:S,et:g,uncompressedSize:F,crc32:R}=e;let{version:E,compressionMethod:C}=e;const v=!f&&(C===$?a===$||a>0:0!==C);let D;const T=z||!v,O=c&&(e.bufferedWrite||!u||!S&&!g||T),U=O||c&&u&&(S||g);if(c&&(S||g)){const e=20,t=Ha(e);if(t.uint16(1),t.uint16(e-4),D=t.array,O&&(t.wt(F),T)){const e=x?l?12:16+4*m:0;t.wt(z?0:F+e)}}else D=re;let k,A,M,P,I;if(x&&!l){const e=Ha(ai(Za)+2);e.uint16(39169),e.bytes(Za),k=e.array,k[8]=m}else k=re;if(y){const e=Ja(n),t=Ka(e);if(t){const t=9+(r?4:0)+(s?4:0),n=Ha(t);P=1+(r?2:0)+(s?4:0),n.uint16(Y),n.uint16(t-4),n.uint8(P),n.uint32(e),r&&n.uint32(_a(Ja(r))),s&&n.uint32(_a(Ja(s))),M=n.array}else M=re;if(b===$?!t||r||s:b)try{const e=Xa(n),t=Ha(36);t.uint16(10),t.uint16(32),t.ft(4),t.uint16(1),t.uint16(24),t.wt(e),t.wt(r?Xa(r):e),t.wt(s?Xa(s):e),A=t.array}catch{A=re}else A=re}else A=M=re;try{const{uid:t,gid:n,unixExtraFieldType:r}=e;if(r!=Aa||t===$&&n===$)if(r!=La||t===$&&n===$)I=re;else{const e=Ha(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&Z),e.uint16((n===$?0:n)&Z),I=e.array}else{const e=Va(t),r=Va(n),s=3+e.length+r.length,a=Ha(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(r.length),a.bytes(r),I=a.array}}catch{I=re}C===$&&(C=v?8:0);const{lt:N}=e;v&&N!==$&&(E=E>N?E:N),c&&(E=E>45?E:45),x&&!l&&(E=E>51?E:51,z&&R!==$&&(k[4]=1),k[9]=C,C=99);const W=U?ai(D):0,j=W+ai(k,M,A,I,p,h);if(j>Z)throw new w(Ra);const V=new o(2e3*i.ceil(i.floor(n.getTime()/1e3)/2)),{_e:H,$e:G,rawLastModDate:B}=ii({version:E,bitFlag:oi(a,d,u,x,C),compressionMethod:C,uncompressedSize:F,lastModDate:_>V?_:V>K?K:V,rawFilename:t,et:g,nt:S,extraFieldLength:j}),q=Ha(J+ai(t)+j),Q=q.array,X=Ge(Q);return q.uint32(L),q.bytes(H),q.bytes(t),U&&q.bytes(D),q.bytes(k),q.bytes(M),q.bytes(A),q.bytes(I),q.bytes(p),q.bytes(h),u&&(g||ni(X,18,0),S||ni(X,22,0)),{ht:Q,yt:X,_e:H,$e:G,lastModDate:n,rawLastModDate:B,encrypted:x,compressed:v,version:E,compressionMethod:C,ot:P,qe:re,bt:W,Xe:M,Je:A,Ke:I,Qe:k,extraFieldLength:j}})(s=n.assign({},s,c.ct,l.ct,u.ct,{internalFileAttribute:l.ct.internalFileAttributes,externalFileAttribute:c.ct.externalFileAttributes,signature:s[ns],crc32:s.crc32===$?s[ns]:s.crc32,offset:e.offset-h,diskNumberStart:m})),z=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:n})=>{let r,s=re,a=0,i=e?20:12;return n&&(i+=4),t&&(s=new f(i),r=Ge(s),n&&(a=4,ni(r,0,P))),{zt:s,xt:r,St:a}})(s),x=ai(y.ht,z.zt);p=await(async(e,t,r,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:u}=i,{gt:p}=s,h=e.options[xs],m=e.Be;let y,z,x,S,g,F,E,v={},D=0;o.set(t,v),e.Be=v;try{let z;l&&(z=m&&m.lock,v.lock=new b(e=>x=e)),i.bufferedWrite||!l||e.Ft||e.Ge||!d?(y=!0,e.Ge++,E=i.createTempStream?await i.createTempStream():new R($,$,{highWaterMark:ee}),E.size=0,await Er(c)):(E=c,await T()),await Er(E);const U=Ga(c);if(e.je){delete e.je;const t=new f(4);ni(Ge(t),0,M),await Qa(c,t),e.offset+=4}h&&!y&&ja(s,e.offset-U);const{ht:Z}=p;y||(await z,await O());const L=Ya(c),P=qa(e,c);if(v.diskNumberStart=L,y||(g=!0,F=c.size,await Qa(E,Z)),v=await(async(e,t,{diskNumberStart:r,lock:s},i,o,c)=>{const{gt:l,Rt:d,Et:u}=i,{_e:f,$e:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:b,version:z,compressionMethod:x,qe:S,bt:g,Xe:F,ot:R,Je:E,Ke:C,Qe:v}=l,{zt:D}=d,{rawFilename:T,lastAccessDate:O,creationDate:U,password:Z,rawPassword:L,level:M,zip64:P,nt:I,et:N,zipCrypto:W,dataDescriptor:j,directory:V,executable:H,versionMadeBy:Y,rawComment:G,rawExtraField:B,useWebWorkers:q,transferStreams:Q,onstart:X,onprogress:J,onend:K,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,be={lock:s,versionMadeBy:Y,zip64:P,directory:!!V,executable:!!H,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:G,qe:S,bt:g,Xe:F,Je:E,Ke:C,Qe:v,rawExtraField:B,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:r,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{crc32:ze,uncompressedSize:xe}=c,Se=0;he||(xe=0);const{writable:ge}=t;if(e){const n=It(e.createReadable?e.createReadable():e.readable),r=e.size,s={options:{codecType:sn,level:M,rawPassword:L,password:Z,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&A,computeCrc32:!he,compressed:b&&!he,encrypted:y&&!he,useWebWorkers:q,useCompressionStream:pe,transferStreams:Q,format:me,codecURI:ye,compressionMethod:x},config:o,ce:{signal:_,size:r,onstart:X,onprogress:J,onend:K}};try{const e=await kn({readable:n,writable:ge},s);if(Se=e.outputSize,t.size+=Se,he||(xe=e.inputSize,y&&!W||(ze=e.crc32)),!N&&Se>=k||!I&&xe>=k)throw new w(Ta)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({crc32:e,compressedSize:t,uncompressedSize:n,gt:r,Rt:s},{zip64:i,zipCrypto:o,passThrough:c,dataDescriptor:l})=>{const{$e:d,encrypted:u}=r,{xt:w,St:f}=s;u&&!o&&!c||e===$||(ni(d,10,e),l&&ni(w,f,e)),i?l&&(ri(w,f+4,a(t)),ri(w,f+12,a(n))):(ni(d,14,t),ni(d,18,n),l&&(ni(w,f+4,t),ni(w,f+8,n)))})({crc32:ze,compressedSize:Se,uncompressedSize:xe,gt:l,Rt:d},c),j&&await Qa(t,D),n.assign(be,{uncompressedSize:xe,compressedSize:Se,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:O,encrypted:y,zipCrypto:W,size:u+Se,compressionMethod:x,version:z,_e:f,$e:p,signature:ze,crc32:!y||W||he?ze:$,ot:R,nt:I,et:N}),be})(r,E,v,s,e.config,i),y||(g=!1),o.set(t,v),v.filename=t,y){if(await b.all([E.writable.getWriter().close(),z]),await T(),S=!0,F=c.size,await O(),v.diskNumberStart=Ya(c),v.offset=qa(e,c),h){const t=s.Et;ja(s,e.offset-Ga(c)),v.size+=s.Et-t}(({rawFilename:e,encrypted:t,zip64:n,bt:r,crc32:s,compressedSize:i,uncompressedSize:o,nt:c,et:l},d,{dataDescriptor:u,passThrough:w})=>{if(u||((!t||w&&s!==$)&&ni(d,14,s),l||ni(d,18,i),c||ni(d,22,o)),n&&r){const t=J+ai(e)+4;ri(d,t,a(o)),ri(d,t+8,a(i))}})(v,p.yt,i),await Qa(c,p.ht),await(async(e,t,n)=>{const r=t.writable.getWriter();try{await e.pipeTo(new C({async write(e){var t;await r.ready,await r.write(e),t=ai(e),D+=t}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{r.releaseLock()}})(E.readable,c,u),c.size+=E.size,S=!1}else v.diskNumberStart=L,v.offset=P;return e.offset+=v.size,v}catch(n){if(S||g){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=D)}throw o.delete(t),n}finally{if(y&&e.Ge--,x&&x(),z&&z(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function T(){e.Ft=!0;const{Ct:t}=e;e.Ct=new b(t=>z=()=>{e.Ft=!1,t()}),await t}async function O(){Ba(c,ai(p.ht))&&await c.closeDisk()}})(e,t,r,{gt:y,Rt:z,Et:x},s)}catch(n){throw e.files.delete(t),n}return n.assign(p,{name:t,comment:d,extraField:u}),new ls(p)})(s,e,t,r),c.add(d),await d}catch(t){throw u&&s.Ve.delete(e),t}finally{c.delete(d);const e=Pa.shift();e?e():Ma--}}remove(e){const{Ve:t,files:n}=this;if("string"==typeof e&&(e=n.get(e)),e&&e.filename!==$){const{filename:r}=e;if(t.has(r)&&n.has(r))return t.delete(r),n.delete(r),!0}return!1}async close(e=re,n={}){const{Ye:r,writer:s}=this,{writable:i}=s;if(ai(e)>Z)throw new w(ya);for(;r.size;)await b.allSettled(t.from(r));return await(async(e,n,r)=>{const s=(e=>{let t=0;for(const[,n]of e){const{rawFilename:e,Qe:r,rawComment:s,Je:a,Ke:i,rawExtraField:o,extendedTimestamp:c,ot:l,lastModDate:d,nt:u,et:f,uncompressedSize:p,compressedSize:h}=n,m=n.offset>=k,y=n.diskNumberStart>=Z;let b,z;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Ha(e);t.uint16(1),t.uint16(e-4),u&&t.wt(p),f&&t.wt(h),m&&t.wt(n.offset),y&&t.uint32(n.diskNumberStart),b=t.array}else b=re;n.qe=b,n.st=m,n.it=y;const x=Ja(d);if(c&&Ka(x)){const e=Ha(9);e.uint16(Y),e.uint16(5),e.uint8(l),e.uint32(x),z=e.array}else z=re;n.Xe=z;const S=ai(b,r,a,i,z,o);if(S>Z)throw new w(Ra);t+=46+ai(e,s)+S}return t})(e.files),i=await(async(e,n,r)=>{const{files:s,writer:a}=e,i=new f(n);await Er(a);let o=0,c=0,l=Ya(a),d=Ga(a);for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,qe:w,Qe:f,Xe:p,Je:h,Ke:m,rawExtraField:y,rawComment:b,versionMadeBy:z,_e:x,$e:S,nt:g,et:F,it:R,st:E,internalFileAttributes:C,externalFileAttributes:v,diskNumberStart:D,uncompressedSize:T,compressedSize:O}=n,U=ai(w,f,p,h,m,y),A=46+ai(u,b)+U;Ba(a,o+A-c)&&(await Qa(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=Ya(a),d=Ga(a)),g||ni(S,18,T),F||ni(S,14,O),(E||R)&&45>n.version&&ti(S,0,45);const L=Ha(A);if(L.uint32(I),L.uint16(z),L.bytes(x.subarray(0,24)),L.uint16(U),L.uint16(ai(b)),L.uint16(R?Z:D),L.uint16(C),L.uint32(v),L.uint32(E?k:t),L.bytes(u),L.bytes(w),L.bytes(f),L.bytes(p),L.bytes(h),L.bytes(m),L.bytes(y),L.bytes(b),si(i,L.array,o),o+=A,r.onprogress)try{await r.onprogress(e+1,s.size,new ls(n))}catch{}}return await Qa(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,r);await(async(e,t,n,r)=>{const{writer:s}=e,{vt:i}=r;let{Dt:o}=r,c=e.files.size,l=i.diskNumber,d=qa(e,i),u=Ya(s);Ba(s,V)&&u++;let f=$a(e,n,Qr);if(!(k>d&&k>o&&Z>c&&Z>u)){if(!1===f)throw new w(Ta);f=!0}const p=ai(t);if(p>Z)throw new w(ya);const h=Ha(f?98:V);Ba(s,ai(h.array)+p)&&await s.closeDisk(),u=Ya(s),f&&(h.uint32(W),h.wt(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(l),h.wt(c),h.wt(c),h.wt(o),h.wt(d),h.uint32(j),h.uint32(u),h.wt(a(qa(e,s))+a(o)),h.uint32(u+1),$a(e,n,"supportZip64SplitFile",!0)&&(u=Z,l=Z),c=Z,d=k,o=k),h.uint32(N),h.uint16(u),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(d),h.uint16(p),await Qa(s,h.array),p&&await Qa(s,t)})(e,n,r,{vt:i,Dt:s})})(this,e,n),$a(this,n,bs)||await i.getWriter().close(),s.getData?s.getData():i}}function Na(e,t,n){e.Ye.add(t),t.catch(e=>{try{n(e)}catch{}})}function Wa(e){if(!e)return re;let t=0,n=0;e.forEach(e=>t+=4+ai(e));const r=new f(t),s=Ge(r);return e.forEach((e,t)=>{if(t>Z)throw new w(Fa);if(ai(e)>Z)throw new w(Ra);ti(s,n,t),ti(s,n+2,ai(e)),si(r,e,n+4),n+=4+ai(e)}),r}function ja(e,t){const{gt:n}=e;let{ht:r,extraFieldLength:s}=n,a=64-(t+ai(r))%64;4>a&&(a+=64);const i=new f(a),o=Ge(i);ti(o,0,6534),ti(o,2,a-4);const c=r;n.ht=r=new f(ai(c)+a),si(r,c),si(r,i,ai(c));const l=Ge(r);ti(l,28,s+a),n.yt=l,e.Et+=a}function Va(e){if(e===$)return re;{const t=new f(4);Ge(t).setUint32(0,e,!0);let n=4;for(;n>1&&0===t[n-1];)n--;return t.subarray(0,n)}}function Ha(e){const t=new f(e),n=Ge(t);let r=0;return{array:t,uint8:e=>{((e,t,n)=>{e.setUint8(t,n)})(n,r,e),r+=1},uint16:e=>{ti(n,r,e),r+=2},uint32:e=>{ni(n,r,e),r+=4},wt:e=>{ri(n,r,a(e)),r+=8},bytes:e=>{si(t,e,r),r+=ai(e)},ft:e=>r+=e}}function Ya(e){const{diskNumber:t=0}=e;return t}function Ga(e){const{diskOffset:t=0}=e;return t}function Ba(e,t){const{availableSize:n=ee}=e;return t>n}function qa(e,{diskNumber:t=0,diskOffset:n=0}){return e.offset-n-(t?e.He:0)}async function Qa(e,t){const{writable:n}=e,r=n.getWriter();try{await r.ready,e.size+=ai(t),await r.write(t)}finally{r.releaseLock()}}function Xa(e){if(e){const t=(a(e.getTime())+a(116444736e5))*a(1e4);return va>t?va:t>Da?Da:t}}function Ja(e){return i.floor(e.getTime()/1e3)}function Ka(e){return e>=Ea&&Ca>=e}function _a(e){return i.min(Ca,i.max(Ea,e))}function $a(e,t,n,r){const s=t[n]===$?e.options[n]:t[n];return s===$?r:s}function ei(e){return e+5*(i.floor(e/16383)+1)}function ti(e,t,n){e.setUint16(t,n,!0)}function ni(e,t,n){e.setUint32(t,n,!0)}function ri(e,t,n){e.setBigUint64(t,n,!0)}function si(e,t,n){e.set(t,n)}function ai(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function ii({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:r,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,et:c,nt:l,extraFieldLength:d}){const u=Ha(26),w=u.array,f=Ge(w);if(u.uint16(e),u.uint16(t),u.uint16(n),i===$){const e=new h(1),t=Ge(e);ti(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),ti(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return u.uint32(i),u.ft(4),c||s!==$?u.uint32(c?k:s):u.ft(4),l||r!==$?u.uint32(l?k:r):u.ft(4),u.uint16(ai(o)),u.uint16(d),{_e:w,$e:f,rawLastModDate:i}}function oi(e,t,n,r,s){let a=0;return t&&(a|=G),n&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),r&&(a|=1),a}const ci=1048576,li=".zip.js-temp",di=1048576,ui=1048576,wi=".zip.js-temp";try{ue({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-legacy.min.js",S.baseURI).href})}catch{}ue({workerURI:e=>{const t="text/javascript",n=(e=>{let t=0,n=0,r=0,s=new f(1024),a=0,i=0;for(;!i;){i=c(1);const e=c(2);if(0==e)l();else if(1==e)d(ze(ye),ze(be));else{if(2!=e)throw w("invalid deflate block type");d(...u())}}return s.subarray(0,a);function o(){if(t>=e.length)throw w("unexpected end of deflate data");return e[t++]}function c(e){for(;e>r;)n|=o()<<r,r+=8;const t=n&(1<<e)-1;return n>>>=e,r-=e,t}function l(){n=0,r=0;const e=o()|o()<<8;t+=2,h(a+e);for(let t=0;e>t;t++)s[a++]=o()}function d(e,t){let n=p(e);for(;256!=n;){if(256>n)h(a+1),s[a++]=n;else{const e=n-257,r=we[e]+c(fe[e]),i=p(t),o=pe[i]+c(he[i]);h(a+r);const l=a-o;for(let e=0;r>e;e++)s[a++]=s[l+e]}n=p(e)}}function u(){const e=c(5)+257,t=c(5)+1,n=c(4)+4,r=new f(19);for(let e=0;n>e;e++)r[me[e]]=c(3);const s=ze(r),a=new f(e+t);let i=0;for(;i<a.length;){const e=p(s);if(16>e)a[i++]=e;else if(16==e){const e=a[i-1];let t=c(2)+3;for(;t--;)a[i++]=e}else i+=17==e?c(3)+3:c(7)+11}return[ze(a.subarray(0,e)),ze(a.subarray(e))]}function p(e){const{o:t,symbols:n}=e;let r=0,s=0,a=0;for(let e=1;15>=e;e++){r|=c(1);const i=t[e];if(i>r-s)return n[a+(r-s)];a+=i,s=s+i<<1,r<<=1}throw w("invalid huffman code")}function h(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const n=new f(t);n.set(s.subarray(0,a)),s=n}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;t>r;r+=4){const t=xe.indexOf(e[r])<<18|xe.indexOf(e[r+1])<<12|(63&xe.indexOf(e[r+2]))<<6|63&xe.indexOf(e[r+3]);n.push(t>>16&255),"="!==e[r+2]&&n.push(t>>8&255),"="!==e[r+3]&&n.push(255&t)}return new f(n)})("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"));if(e){const e=new y([n],{type:t});return u.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const n=e.length;let r=0;for(;n>r+2;r+=3){const n=e[r]<<16|e[r+1]<<8|e[r+2];t+=xe[n>>18&63]+xe[n>>12&63]+xe[n>>6&63]+xe[63&n]}const s=n-r;if(1===s){const n=e[r]<<16;t+=xe[n>>18&63]+xe[n>>12&63]+"=="}else if(2===s){const n=e[r]<<16|e[r+1]<<8;t+=xe[n>>18&63]+xe[n>>12&63]+xe[n>>6&63]+"="}return t})(n)}}),e.BlobReader=tr,e.BlobWriter=nr,e.Data64URIReader=class extends Kn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,Tt:r,size:i.floor(.75*(t-r))})}readUint8Array(e,t){const{Tt:n,dataURI:r}=this,s=new f(t),a=4*i.floor(e/3),o=atob(r.substring(a+n,4*i.ceil((e+t)/3)+n)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends _n{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n,s=t.pending;const a=t.pending.length;for(t.pending="",n=0;n<3*i.floor((a+e.length)/3)-a;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Ls,e.ERR_BAD_FORMAT=Rs,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=vs,e.ERR_DUPLICATED_NAME=ma,e.ERR_ENCRYPTED=Os,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=Ms,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Cs,e.ERR_EOCDR_NOT_FOUND=Es,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Ts,e.ERR_HTTP_RANGE=Nn,e.ERR_HTTP_RESOURCE_CHANGED=Wn,e.ERR_INVALID_AUTHENTICATION_CODE=$e,e.ERR_INVALID_CODEC_DEFINITION=Se,e.ERR_INVALID_CODEC_MODULE=Fe,e.ERR_INVALID_COMMENT=ya,e.ERR_INVALID_COMPRESSED_DATA=jt,e.ERR_INVALID_CRC32=Vt,e.ERR_INVALID_ENCRYPTION_STRENGTH=Sa,e.ERR_INVALID_ENTRY_COMMENT=ba,e.ERR_INVALID_ENTRY_NAME=za,e.ERR_INVALID_EXTRAFIELD_DATA=Ra,e.ERR_INVALID_EXTRAFIELD_TYPE=Fa,e.ERR_INVALID_PASSWORD=Ke,e.ERR_INVALID_SIGNATURE=_e,e.ERR_INVALID_UNCOMPRESSED_SIZE=Wt,e.ERR_INVALID_VERSION=xa,e.ERR_ITERATOR_COMPLETED_TOO_SOON=jn,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Ds,e.ERR_OVERLAPPING_ENTRY=As,e.ERR_RESERVED_COMPRESSION_METHOD=ge,e.ERR_SPLIT_ZIP_FILE=Zs,e.ERR_UNDEFINED_READER=Ua,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Oa,e.ERR_UNSUPPORTED_COMPRESSION=ks,e.ERR_UNSUPPORTED_ENCRYPTION=Us,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=ga,e.ERR_UNSUPPORTED_FORMAT=Ta,e.ERR_WRITER_NOT_INITIALIZED=Vn,e.ERR_ZIP_NOT_EMPTY=ka,e.HttpRangeReader=class extends xr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=xr,e.Reader=Kn,e.SplitDataReader=Sr,e.SplitDataWriter=gr,e.TextReader=class extends tr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends nr{constructor(e){super(e),n.assign(this,{encoding:e,Ot:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,Ot:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new b((s,a)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(r,e)})}}},e.Uint8ArrayReader=class extends Kn{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends _n{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){n.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,n=t.offset+e.length;if(n>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;n>e;)e*=2;const r=t.array;t.array=new f(e),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=_n,e.ZipReader=js,e.ZipReaderStream=Vs,e.ZipWriter=Ia,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new R;this.readable=t,this.zipWriter=new Ia(n,e),this.Ye=new l}transform(e){const t=this.zipWriter;let n;const{readable:r,writable:s}=new R({start(e){n=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Na(this,this.zipWriter.add(e,r),e=>n.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:n,writable:r}=new R({start(e){t=e}});return Na(this,this.zipWriter.add(e,n),e=>t.error(e)),r}async close(e,n={}){return await b.all(t.from(this.Ye)),this.zipWriter.close(e,n)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=di}=e;return()=>{const e=[];let n,r,s,a=0,i=!1;const o=new C({async write(s){i?await n.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new R;r=new d(t.readable).blob(),n=t.writable.getWriter(),i=!0;for(const t of e)await n.write(t);e.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new E({async pull(t){if(i){if(!s){const e=await r;s=e.stream().getReader()}const{value:e,done:n}=await s.read();n?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}r&&(r.catch(()=>{}),r=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=ci,directoryName:n=li,getDirectory:r=()=>T.storage.getDirectory()}=e;let s;function a(){return s||(s=b.resolve(r()).then(e=>e.getDirectoryHandle(n,{create:!0}))),s}return()=>{const e=[];let n,r,s,i,o=0,c=!1;const l=new C({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();n=g.randomUUID(),r=await t.getFileHandle(n,{create:!0}),s=(await r.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new E({async pull(t){if(c){if(!i){const e=await r.getFile();i=e.stream().getReader()}const{value:e,done:n}=await i.read();n?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(n){try{const e=await a();await e.removeEntry(n)}catch{}r=n=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=ui,directoryName:n=wi,getDirectory:r}=e;if(!(r||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new w("createSyncAccessHandle is only available in dedicated workers");const s=r||(()=>T.storage.getDirectory());let a;function o(){return a||(a=b.resolve(s()).then(e=>e.getDirectoryHandle(n,{create:!0}))),a}return()=>{const e=[];let n,r,s=0,a=!1,c=0,l=0;const d=new C({async write(i){a?(r.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();n=g.randomUUID();const s=await t.getFileHandle(n,{create:!0});r=await s.createSyncAccessHandle(),a=!0;for(const t of e)r.write(t,{at:c}),c+=t.length;e.length=0})())},close(){r&&r.flush()}});let u=0;return{writable:d,readable:new E({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const n=new f(i.min(524288,e)),s=r.read(n,{at:l});s?(l+=s,t.enqueue(n.subarray(0,s))):t.close()}else u<e.length?t.enqueue(e[u++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(r){try{r.close()}catch{}r=null}if(n){try{const e=await o();await e.removeEntry(n)}catch{}n=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:n,codecURI:r,CompressionStream:a,DecompressionStream:i,versionNeeded:o}=e;if(!s.isInteger(t)||0>t||t>Z||typeof n!=Re||!n.length)throw new w(Se);if(Ee.includes(t))throw new w(ge);const c=typeof a==ne||typeof i==ne;if(!(c||typeof r==Re&&r.length))throw new w(Se);Ce.set(t,{compressionMethod:t,format:n,codecURI:r,versionNeeded:o}),c&&Oe(n,{CompressionStream:a,DecompressionStream:i})},e.resetConfiguration=()=>{for(const e of ie)delete oe[e];n.assign(oe,ae)},e.terminateWorkers=async()=>{await b.allSettled(vn.map(e=>(Pn(e),e.terminate()))),un=$},e.unregisterCodec=e=>{const t=Ce.get(e);if(t){let n;Ce.delete(e),Ce.forEach(e=>n=n||e.format==t.format),n||ve.delete(t.format)}}});