@zip.js/zip.js 2.8.39 → 2.8.42

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