single-file-core 1.5.95 → 1.5.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/single-file.js CHANGED
@@ -128,12 +128,17 @@ async function getPageData(options = {}, initOptions, doc, win) {
128
128
  embeddedPdf: options.embeddedPdf
129
129
  });
130
130
  delete pageData.resources;
131
- const reader = new globalThis.FileReader();
132
- reader.readAsArrayBuffer(blob);
133
- const arrayBuffer = await new Promise((resolve, reject) => {
134
- reader.addEventListener("load", () => resolve(reader.result), false);
135
- reader.addEventListener("error", event => reject(event.detail.error), false);
136
- });
131
+ let arrayBuffer;
132
+ if (globalThis.FileReader) {
133
+ const reader = new globalThis.FileReader();
134
+ reader.readAsArrayBuffer(blob);
135
+ arrayBuffer = await new Promise((resolve, reject) => {
136
+ reader.addEventListener("load", () => resolve(reader.result), false);
137
+ reader.addEventListener("error", reject, false);
138
+ });
139
+ } else {
140
+ arrayBuffer = await blob.arrayBuffer();
141
+ }
137
142
  pageData.content = Array.from(new Uint8Array(arrayBuffer));
138
143
  }
139
144
  return pageData;
@@ -1 +1 @@
1
- !function(){"use strict";const{Array:t,Object:e,Number:n,Math:r,Error:s,Uint8Array:o,Uint16Array:c,Uint32Array:a,Int32Array:i,Map:u,DataView:f,Promise:l,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:g,DecompressionStream:S}=self,v=void 0,k="undefined",z="function",b=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;C[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=C[e-1][t];C[e][t]=n>>>8^C[0][255&n]}const[I,A,x,P,M,B,D,F]=C;class _{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new f(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=F[255&t]^D[t>>>8&255]^B[t>>>16&255]^M[t>>>24&255]^P[255&n]^x[n>>>8&255]^A[n>>>16&255]^I[n>>>24&255]}}for(;n>r;r++)e=e>>>8^I[255&(e^t[r])];this.o=e}get(){return~this.o}}class R extends d{constructor(){let t;const e=new _;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new f(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function T(t,e){const n=new o(t.length+e.length);return n.set(t),n.set(e,t.length),n}function U(t){return new f(t.buffer,t.byteOffset,t.byteLength)}const V={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=V.l(n);return 32===r?t.concat(e):V.h(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+V.l(n)},m(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,r.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=V.S(e,t[n-1]&2147483648>>e-1,1)),t},S:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>r.round(t/1099511627776)||32,h(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=V.l(s);return r.push(V.S(e+o&31,e+o>32?n:r.pop(),1)),r}},K={bytes:{v(t){const e=V.bitLength(t)/8,n=new o(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},C(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(V.S(8*(3&n),r)),e}}},E=class{constructor(t){const e=this;e.blockSize=512,e.I=[1732584193,4023233417,2562383102,271733878,3285377520],e.A=[1518500249,1859775393,2400959708,3395469782],t?(e.P=t.P.slice(0),e.M=t.M.slice(0),e.B=t.B):e.reset()}reset(){const t=this;return t.P=t.I.slice(0),t.M=[],t.B=0,t}update(t){const e=this;"string"==typeof t&&(t=K.D.C(t));const n=e.M=V.concat(e.M,t),r=e.B,o=e.B=r+V.bitLength(t);if(o>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const c=new a(n);let i=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);o>=t;t+=e.blockSize)e.F(c.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),e}_(){const t=this;let e=t.M;const n=t.P;e=V.concat(e,[V.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(r.floor(t.B/4294967296)),e.push(0|t.B);e.length;)t.F(e.splice(0,16));return t.reset(),n}R(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}T(t,e){return e<<t|e>>>32-t}F(e){const n=this,s=n.P,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let c=s[0],a=s[1],i=s[2],u=s[3],f=s[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.T(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.T(5,c)+n.R(t,a,i,u)+f+o[t]+n.A[r.floor(t/20)]|0;f=u,u=i,i=n.T(30,a),a=c,c=e}s[0]=s[0]+c|0,s[1]=s[1]+a|0,s[2]=s[2]+i|0,s[3]=s[3]+u|0,s[4]=s[4]+f|0}},O={importKey:t=>new O.U(K.bytes.C(t)),V(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const o=1+(r>>5)<<2;let c,a,i,u,l;const w=new ArrayBuffer(o),h=new f(w);let p=0;const d=V;for(e=K.bytes.C(e),l=1;(o||1)>p;l++){for(c=a=t.encrypt(d.concat(e,[l])),i=1;n>i;i++)for(a=t.encrypt(a),u=0;u<a.length;u++)c[u]^=a[u];for(i=0;(o||1)>p&&i<c.length;i++)h.setInt32(p,c[i]),p+=4}return w.slice(0,r/8)},U:class{constructor(t){const e=this,n=e.K=E,r=[[],[]];e.O=[new n,new n];const s=e.O[0].blockSize/32;t.length>s&&(t=(new n).update(t)._());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.O[0].update(r[0]),e.O[1].update(r[1]),e.W=new n(e.O[0])}reset(){const t=this;t.W=new t.K(t.O[0]),t.j=!1}update(t){this.j=!0,this.W.update(t)}digest(){const t=this,e=t.W._(),n=new t.K(t.O[1]).update(e)._();return t.reset(),n}encrypt(t){if(this.j)throw new s("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},W=typeof h!=k&&typeof h.getRandomValues==z,j="Invalid password",H="Invalid signature",L=H,N="zipjs-abort-check-password";function q(t){if(W)return h.getRandomValues(t);throw new s("Crypto API not supported")}const G=16,J={name:"PBKDF2"},Q=e.assign({hash:{name:"HMAC"}},J),X=e.assign({iterations:1e3,hash:{name:"SHA-1"}},J),Y=["deriveBits"],Z=[8,12,16],$=[16,24,32],tt=10,et=[0,0,0,0],nt=typeof h!=k,rt=nt&&h.subtle,st=nt&&typeof rt!=k,ot=K.bytes,ct=class{constructor(t){const e=this;e.H=[[[],[],[],[],[]],[[],[],[],[],[]]],e.H[0][0][0]||e.L();const n=e.H[0][4],r=e.H[1],o=t.length;let c,a,i,u=1;if(4!==o&&6!==o&&8!==o)throw new s("invalid aes key size");for(e.A=[a=t.slice(0),i=[]],c=o;4*o+28>c;c++){let t=a[c-1];(c%o===0||8===o&&c%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],c%o===0&&(t=t<<8^t>>>24^u<<24,u=u<<1^283*(u>>7))),a[c]=a[c-o]^t}for(let t=0;c;t++,c--){const e=a[3&t?c:c-4];i[t]=4>=c||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.H[0],e=this.H[1],n=t[4],r=e[4],s=[],o=[];let c,a,i,u;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let f=c=0;!n[f];f^=a||1,c=o[c]||1){let o=c^c<<1^c<<2^c<<3^c<<4;o=o>>8^255&o^99,n[f]=o,r[o]=f,u=s[i=s[a=s[f]]];let l=16843009*u^65537*i^257*a^16843008*f,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][f]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new s("invalid aes block size");const n=this.A[e],r=n.length/4-2,o=[0,0,0,0],c=this.H[e],a=c[0],i=c[1],u=c[2],f=c[3],l=c[4];let w,h,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],g=t[e?1:3]^n[3],S=4;for(let t=0;r>t;t++)w=a[d>>>24]^i[y>>16&255]^u[m>>8&255]^f[255&g]^n[S],h=a[y>>>24]^i[m>>16&255]^u[g>>8&255]^f[255&d]^n[S+1],p=a[m>>>24]^i[g>>16&255]^u[d>>8&255]^f[255&y]^n[S+2],g=a[g>>>24]^i[d>>16&255]^u[y>>8&255]^f[255&m]^n[S+3],S+=4,d=w,y=h,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=l[d>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&g]^n[S++],w=d,d=y,y=m,m=g,g=w;return o}},at=class{constructor(t,e){this.G=t,this.J=e,this.X=e}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}Z(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}$(t){0===(t[0]=this.Z(t[0]))&&(t[1]=this.Z(t[1]))}Y(t,e,n){let r;if(!(r=e.length))return[];const s=V.bitLength(e);for(let s=0;r>s;s+=4){this.$(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return V.m(e,s)}},it=O.U;let ut=nt&&st&&typeof rt.importKey==z,ft=nt&&st&&typeof rt.deriveBits==z;class lt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:c=!0}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:c,strength:a,et:i,ready:u}=n;c?(await(async(t,e,n,r)=>{const o=await dt(t,e,n,mt(r,0,Z[e])),c=mt(r,Z[e]);if(o[0]!=c[0]||o[1]!=c[1])throw new s(j)})(n,a,c,mt(t,0,Z[a]+2)),t=mt(t,Z[a]+2),r?e.error(new s(N)):i()):await u;const f=new o(t.length-tt-(t.length-tt)%G);e.enqueue(pt(n,t,f,0,tt,!0))},async flush(t){const{nt:e,st:n,ot:r,ready:o}=this;if(n&&e){await o;const a=mt(r,0,r.length-tt),i=mt(r,r.length-tt);let u=b;if(a.length){const t=St(ot,a);n.update(t);const r=e.update(t);u=gt(ot,r)}const f=mt(gt(ot,n.digest()),0,tt);let l=r.length<tt?1:0;for(let t=0;tt>t;t++)l|=f[t]^i[t];if(l&&c)throw new s(L);t.enqueue(u)}}})}}class wt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,et:c,ready:a}=n;let i=b;r?(i=await(async(t,e,n)=>{const r=q(new o(Z[e]));return T(r,await dt(t,e,n,r))})(n,s,r),c()):await a;const u=new o(i.length+t.length-t.length%G);u.set(i,0),e.enqueue(pt(n,t,u,i.length,0))},async flush(t){const{nt:e,st:n,ot:r,ready:s}=this;if(n&&e){await s;let o=b;if(r.length){const t=e.update(St(ot,r));n.update(t),o=gt(ot,t)}const c=gt(ot,n.digest()).slice(0,tt);t.enqueue(T(o,c))}}})}}function ht(t,n,r,s){e.assign(t,{ready:new l(e=>t.et=e),password:yt(n,r),strength:s-1,ot:b})}function pt(t,e,n,r,s,c){const{nt:a,st:i,ot:u}=t;u.length&&(e=T(u,e));const f=e.length-s;let l;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,r+(f-f%G)),l=0;f-G>=l;l+=G){const t=St(ot,mt(e,l,l+G));c&&i.update(t);const s=a.update(t);c||i.update(s),n.set(gt(ot,s),l+r)}return t.ot=mt(e,l),n}async function dt(n,r,s,c){n.password=null;const a=await(async(t,e,n,r,s)=>{if(!ut)return O.importKey(e);try{return await rt.importKey("raw",e,n,!1,s)}catch{return ut=!1,O.importKey(e)}})(0,s,Q,0,Y),i=await(async(t,e,n)=>{if(!ft)return O.V(e,t.salt,X.iterations,n);try{return await rt.deriveBits(t,e,n)}catch{return ft=!1,O.V(e,t.salt,X.iterations,n)}})(e.assign({salt:c},X),a,8*(2*$[r]+2)),u=new o(i),f=St(ot,mt(u,0,$[r])),l=St(ot,mt(u,$[r],2*$[r])),w=mt(u,2*$[r]);return e.assign(n,{keys:{key:f,ct:l,passwordVerification:w},nt:new at(new ct(f),t.from(et)),st:new it(l)}),w}function yt(t,e){return e===v?(t=>{if(typeof w==k){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new w).encode(t)})(t):e}function mt(t,e,n){return t.subarray(e,n)}function gt(t,e){return t.v(e)}function St(t,e){return t.C(e)}class vt extends d{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=bt(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new s(j);t=t.subarray(12)}r?e.error(new s(N)):e.enqueue(bt(n,t))}})}}class kt extends d{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=q(new o(12));e[11]=n.passwordVerification,r=new o(t.length+e.length),r.set(Ct(n,e),0),s=12}else r=new o(t.length),s=0;r.set(Ct(n,t),s),e.enqueue(r)}})}}function zt(t,n,r,s){e.assign(t,{password:n,rawPassword:r,passwordVerification:s}),((t,n,r)=>{const s=[305419896,591751049,878082192];if(e.assign(t,{keys:s,it:new _(s[0]),ut:new _(s[2])}),r)for(let e=0;e<r.length;e++)It(t,r[e]);else for(let e=0;e<n.length;e++)It(t,n.charCodeAt(e))})(t,n,r)}function bt(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,n[r]);return n}function Ct(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,e[r]);return n}function It(t,e){let[,n]=t.keys;t.it.append([e]);const s=~t.it.get();n=Pt(r.imul(Pt(n+xt(s)),134775813)+1),t.ut.append([n>>>24]);const o=~t.ut.get();t.keys=[s,n,o]}function At(t){const e=2|t.keys[2];return xt(r.imul(e,1^e)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Mt(t){if(t instanceof y)return t;const e=t.getReader();return new y({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}const Bt=new u;function Dt(t){return Bt.get(t)}const Ft="Invalid uncompressed size",_t=H,Rt="deflate-raw",Tt="gzip",Ut=[31,139,8];class Vt extends d{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:c,zipCrypto:a,computeCrc32:i,level:u,deflate64:l,format:w,compressionMethod:h}=t,p=this;let d,y,m,g=super.readable;const S=w&&Dt(w),v=i&&s&&!l&&!S&&(!o||a)&&!(!c||!r);if(o&&!a||!i||v||(d=new R,g=Lt(g,d)),s)if(S)g=Nt(g,jt(S.CompressionStream,w,{level:u,chunkSize:e,compressionMethod:h}));else if(v)m=new Kt,g=Nt(g,new r(Tt)),g=Lt(g,m);else try{g=Ht(g,c,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(Tt)}catch{throw t}g=Nt(g,e),g=Lt(g,new Kt)}o&&(a?g=Lt(g,new kt(t)):(y=new wt(t),g=Lt(g,y))),Wt(p,g,()=>{o&&!a||!i||(p.crc32=v?m.crc32:new f(d.value.buffer).getUint32(0))})}}class Kt extends d{constructor(){let t,e=10,n=new o(0);super({transform(t,s){if(e){const n=r.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const o=n.length+t.length;if(8>=o)return void(n=T(n,t));const c=o-8,a=r.min(c,n.length);s.enqueue(T(n.subarray(0,a),t.subarray(0,c-a))),n=T(n.subarray(a),t.subarray(c-a))},flush(){const e=U(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class Et extends d{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:c,encrypted:a,checkCrc32:i,crc32:u,compressed:w,useCompressionStream:h,deflate64:p,format:m,compressionMethod:g,rawBitFlag:S,outputSize:k}=t;let z,b,C=super.readable;if(a&&(c?C=Lt(C,new vt(t)):(b=new lt(t),C=Lt(C,b))),w){const t=m&&Dt(m);if(t)C=Nt(C,jt(t.DecompressionStream,m,{chunkSize:e,compressionMethod:g,rawBitFlag:S,uncompressedSize:k}));else try{C=Ht(C,h,{chunkSize:e,deflate64:p},r,n)}catch(t){if(p||k===v)throw t;let e;try{e=new r(Tt)}catch{throw t}C=((t,e,n)=>{const r=new _;let c,a,i,u=0,f=!1;const w=new l((t,e)=>{a=t,i=e});w.catch(()=>{}),n||a();const h=new d({start(t){const e=new o(10);e.set(Ut),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){f=!0,y();try{await w}finally{m()}const e=new o(8),s=U(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){i(t)}}),p=new d({transform(t,e){r.append(t),u+=t.length,n>u?f&&y():a(),e.enqueue(t)},cancel(t){i(t)}});return t=Lt(t,h),Lt(t=Nt(t,e),p);function y(){m(),c=setTimeout(()=>i(new s(Ft)),5e3)}function m(){clearTimeout(c)}})(C,e,k)}C=(t=>{const e=t.getReader();return new y({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new s("Invalid compressed data");throw e.cause=t,e}const{value:r,done:o}=n;o?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(C)}i&&(z=new R,C=Lt(C,z)),Wt(this,C,()=>{if(i){const t=new f(z.value.buffer);if(u!=t.getUint32(0,!1))throw new s(_t)}})}}const Ot=new u;function Wt(t,n,r){n=Lt(n,new d({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}function jt(t,e,n){if(!t)throw new s("Compression method not supported");return new t(e,n)}function Ht(t,e,n,r,s){const o=e&&r?r:s||r,c=n.deflate64?"deflate64-raw":Rt;let a;try{a=new o(c,n)}catch(t){if(!e||!s||o==s)throw t;a=new s(c,n)}return Nt(t,a)}function Lt(t,e){return Mt(t).pipeThrough(e)}function Nt(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const qt="data",Gt="close",Jt="deflate";class Qt extends d{constructor(t,n){super({});const r=this,{codecType:o}=t;let c;o.startsWith(Jt)?c=Vt:o.startsWith("inflate")&&(c=Et),r.outputSize=0;let a=0;const i=new c(t,n),u=super.readable,f=new d({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){e.assign(r,{inputSize:a})}}),l=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==v&&r.outputSize>t.outputSize))throw new s(Ft)},flush(){const{crc32:t}=i;e.assign(r,{crc32:t,inputSize:a})}});e.defineProperty(r,"readable",{get:()=>u.pipeThrough(f).pipeThrough(i).pipeThrough(l)})}}class Xt extends d{constructor(t){const e=[];let r=0;function s(){const n=new o(t);let s=0;for(;t>s;){const r=e[0],o=t-s;r.length>o?(n.set(r.subarray(0,o),s),e[0]=r.subarray(o),s+=o):(n.set(r,s),s+=r.length,e.shift())}return r-=t,n}n.isFinite(t)&&t>=1||(t=65536),super({transform(n,o){for(e.push(n),r+=n.length;r>t;)o.enqueue(s())},flush(t){r&&t.enqueue(((t,e)=>{const n=new o(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,r))}})}}let Yt=2;try{typeof navigator!=k&&navigator.hardwareConcurrency&&(Yt=navigator.hardwareConcurrency)}catch{}const Zt=new u,$t=new u;let te,ee=0;async function ne(t){let e,o;try{const{options:c,config:a}=t;if(c.format)try{await(async(t,e)=>{!Bt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=z&&typeof r!=z)throw new s("Invalid codec module");Bt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(c.format,c.codecURI)}catch(t){throw t.codecImportFailed=!0,t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,c.compressed&&!c.format)if(c.useCompressionStream){if(!((t,e)=>{if(!t)return!1;let n=Ot.get(t);n||(n=new u,Ot.set(t,n));let r=n.get(e);if(r===v){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(c.codecType.startsWith(Jt)?a.CompressionStream:a.DecompressionStream,Rt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{c.useCompressionStream=!0}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const i={highWaterMark:1},f=t.readable?Mt(t.readable):new y({async pull(t){const e=new l(t=>Zt.set(ee,t));re({type:"pull",messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await e;t.enqueue(r),s&&t.close()}},i);o=t.writable?(t=>{if(t instanceof m)return t;const e=t.getWriter();return new m({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})})(t.writable):new m({async write(t){let e;const r=new l(t=>e=t);$t.set(ee,e),re({type:qt,value:t,messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER,await r}},i),e=new Qt(c,a),te=new AbortController;const{signal:w}=te;await f.pipeThrough(e).pipeThrough(new Xt((t=>{return s="string"==typeof(e=s=t.chunkSize)&&e.trim()?n(e):e,n.isInteger(s)&&s>=1?r.max(s,64):65536;var e,s})(a))).pipeTo(o,{signal:w,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=e;re({type:Gt,result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){if(t.outputSize=e?e.outputSize:0,o&&!o.locked)try{await o.getWriter().close()}catch{}se(t)}}function re(t){const{value:e}=t;if(e)if(e.length)try{t.value=(n=e,n.byteOffset||n.byteLength!=n.buffer.byteLength?new o(n):n).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var n}function se(t=new s("Unknown error")){const{message:e,stack:n,code:r,name:o,outputSize:c,cause:a,codecImportFailed:i}=t,u={message:e,stack:n,code:r,name:o,outputSize:c};a&&(u.cause={name:a.name,message:a.message}),i&&(u.codecImportFailed=!0),p({error:u})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:r,done:s}=t;try{if("start"==e&&ne(t),e==qt){const t=Zt.get(n);Zt.delete(n),t({value:r||new o,done:s})}if("ack"==e){const t=$t.get(n);$t.delete(n),t()}e==Gt&&te.abort()}catch(t){se(t)}}),p({type:"ready"}),((t={})=>{const{init:e}=t,n=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;self.initModule=async t=>{e&&await e(t),n&&(t.CompressionStreamFallback=n),r&&(t.DecompressionStreamFallback=r)}})()}();
1
+ !function(){"use strict";const{Array:t,Object:e,Number:n,Math:r,Error:s,Uint8Array:o,Uint16Array:c,Uint32Array:a,Int32Array:i,Map:u,DataView:f,Promise:l,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,k="undefined",z="function",b=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;C[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=C[e-1][t];C[e][t]=n>>>8^C[0][255&n]}const[I,A,x,P,M,B,D,F]=C;class _{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new f(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=F[255&t]^D[t>>>8&255]^B[t>>>16&255]^M[t>>>24&255]^P[255&n]^x[n>>>8&255]^A[n>>>16&255]^I[n>>>24&255]}}for(;n>r;r++)e=e>>>8^I[255&(e^t[r])];this.o=e}get(){return~this.o}}class R extends d{constructor(){let t;const e=new _;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new f(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function T(t,e){const n=new o(t.length+e.length);return n.set(t),n.set(e,t.length),n}function U(t){return new f(t.buffer,t.byteOffset,t.byteLength)}const V={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=V.l(n);return 32===r?t.concat(e):V.h(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+V.l(n)},m(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,r.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=V.S(e,t[n-1]&2147483648>>e-1,1)),t},S:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,l:t=>r.round(t/1099511627776)||32,h(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=V.l(s);return r.push(V.S(e+o&31,e+o>32?n:r.pop(),1)),r}},K={bytes:{v(t){const e=V.bitLength(t)/8,n=new o(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},C(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(V.S(8*(3&n),r)),e}}},E=class{constructor(t){const e=this;e.blockSize=512,e.I=[1732584193,4023233417,2562383102,271733878,3285377520],e.A=[1518500249,1859775393,2400959708,3395469782],t?(e.P=t.P.slice(0),e.M=t.M.slice(0),e.B=t.B):e.reset()}reset(){const t=this;return t.P=t.I.slice(0),t.M=[],t.B=0,t}update(t){const e=this;"string"==typeof t&&(t=K.D.C(t));const n=e.M=V.concat(e.M,t),r=e.B,o=e.B=r+V.bitLength(t);if(o>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const c=new a(n);let i=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);o>=t;t+=e.blockSize)e.F(c.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),e}_(){const t=this;let e=t.M;const n=t.P;e=V.concat(e,[V.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(r.floor(t.B/4294967296)),e.push(0|t.B);e.length;)t.F(e.splice(0,16));return t.reset(),n}R(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}T(t,e){return e<<t|e>>>32-t}F(e){const n=this,s=n.P,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let c=s[0],a=s[1],i=s[2],u=s[3],f=s[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.T(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.T(5,c)+n.R(t,a,i,u)+f+o[t]+n.A[r.floor(t/20)]|0;f=u,u=i,i=n.T(30,a),a=c,c=e}s[0]=s[0]+c|0,s[1]=s[1]+a|0,s[2]=s[2]+i|0,s[3]=s[3]+u|0,s[4]=s[4]+f|0}},O={importKey:t=>new O.U(K.bytes.C(t)),V(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const o=1+(r>>5)<<2;let c,a,i,u,l;const w=new ArrayBuffer(o),h=new f(w);let p=0;const d=V;for(e=K.bytes.C(e),l=1;(o||1)>p;l++){for(c=a=t.encrypt(d.concat(e,[l])),i=1;n>i;i++)for(a=t.encrypt(a),u=0;u<a.length;u++)c[u]^=a[u];for(i=0;(o||1)>p&&i<c.length;i++)h.setInt32(p,c[i]),p+=4}return w.slice(0,r/8)},U:class{constructor(t){const e=this,n=e.K=E,r=[[],[]];e.O=[new n,new n];const s=e.O[0].blockSize/32;t.length>s&&(t=(new n).update(t)._());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.O[0].update(r[0]),e.O[1].update(r[1]),e.W=new n(e.O[0])}reset(){const t=this;t.W=new t.K(t.O[0]),t.j=!1}update(t){this.j=!0,this.W.update(t)}digest(){const t=this,e=t.W._(),n=new t.K(t.O[1]).update(e)._();return t.reset(),n}encrypt(t){if(this.j)throw new s("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},W=typeof h!=k&&typeof h.getRandomValues==z,j="Invalid password",H="Invalid signature",L=H,N="zipjs-abort-check-password";function q(t){if(W)return h.getRandomValues(t);throw new s("Crypto API not supported")}const G=16,J={name:"PBKDF2"},Q=e.assign({hash:{name:"HMAC"}},J),X=e.assign({iterations:1e3,hash:{name:"SHA-1"}},J),Y=["deriveBits"],Z=[8,12,16],$=[16,24,32],tt=10,et=[0,0,0,0],nt=typeof h!=k,rt=nt&&h.subtle,st=nt&&typeof rt!=k,ot=K.bytes,ct=class{constructor(t){const e=this;e.H=[[[],[],[],[],[]],[[],[],[],[],[]]],e.H[0][0][0]||e.L();const n=e.H[0][4],r=e.H[1],o=t.length;let c,a,i,u=1;if(4!==o&&6!==o&&8!==o)throw new s("invalid aes key size");for(e.A=[a=t.slice(0),i=[]],c=o;4*o+28>c;c++){let t=a[c-1];(c%o===0||8===o&&c%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],c%o===0&&(t=t<<8^t>>>24^u<<24,u=u<<1^283*(u>>7))),a[c]=a[c-o]^t}for(let t=0;c;t++,c--){const e=a[3&t?c:c-4];i[t]=4>=c||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.H[0],e=this.H[1],n=t[4],r=e[4],s=[],o=[];let c,a,i,u;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let f=c=0;!n[f];f^=a||1,c=o[c]||1){let o=c^c<<1^c<<2^c<<3^c<<4;o=o>>8^255&o^99,n[f]=o,r[o]=f,u=s[i=s[a=s[f]]];let l=16843009*u^65537*i^257*a^16843008*f,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][f]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new s("invalid aes block size");const n=this.A[e],r=n.length/4-2,o=[0,0,0,0],c=this.H[e],a=c[0],i=c[1],u=c[2],f=c[3],l=c[4];let w,h,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],S=t[e?1:3]^n[3],g=4;for(let t=0;r>t;t++)w=a[d>>>24]^i[y>>16&255]^u[m>>8&255]^f[255&S]^n[g],h=a[y>>>24]^i[m>>16&255]^u[S>>8&255]^f[255&d]^n[g+1],p=a[m>>>24]^i[S>>16&255]^u[d>>8&255]^f[255&y]^n[g+2],S=a[S>>>24]^i[d>>16&255]^u[y>>8&255]^f[255&m]^n[g+3],g+=4,d=w,y=h,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=l[d>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&S]^n[g++],w=d,d=y,y=m,m=S,S=w;return o}},at=class{constructor(t,e){this.G=t,this.J=e,this.X=e}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}Z(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}$(t){0===(t[0]=this.Z(t[0]))&&(t[1]=this.Z(t[1]))}Y(t,e,n){let r;if(!(r=e.length))return[];const s=V.bitLength(e);for(let s=0;r>s;s+=4){this.$(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return V.m(e,s)}},it=O.U;let ut=nt&&st&&typeof rt.importKey==z,ft=nt&&st&&typeof rt.deriveBits==z;class lt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:c=!0}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:c,strength:a,et:i,ready:u}=n;c?(await(async(t,e,n,r)=>{const o=await dt(t,e,n,mt(r,0,Z[e])),c=mt(r,Z[e]);if(o[0]!=c[0]||o[1]!=c[1])throw new s(j)})(n,a,c,mt(t,0,Z[a]+2)),t=mt(t,Z[a]+2),r?e.error(new s(N)):i()):await u;const f=new o(t.length-tt-(t.length-tt)%G);e.enqueue(pt(n,t,f,0,tt,!0))},async flush(t){const{nt:e,st:n,ot:r,ready:o}=this;if(n&&e){await o;const a=mt(r,0,r.length-tt),i=mt(r,r.length-tt);let u=b;if(a.length){const t=gt(ot,a);n.update(t);const r=e.update(t);u=St(ot,r)}const f=mt(St(ot,n.digest()),0,tt);let l=r.length<tt?1:0;for(let t=0;tt>t;t++)l|=f[t]^i[t];if(l&&c)throw new s(L);t.enqueue(u)}}})}}class wt extends d{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){ht(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,et:c,ready:a}=n;let i=b;r?(i=await(async(t,e,n)=>{const r=q(new o(Z[e]));return T(r,await dt(t,e,n,r))})(n,s,r),c()):await a;const u=new o(i.length+t.length-t.length%G);u.set(i,0),e.enqueue(pt(n,t,u,i.length,0))},async flush(t){const{nt:e,st:n,ot:r,ready:s}=this;if(n&&e){await s;let o=b;if(r.length){const t=e.update(gt(ot,r));n.update(t),o=St(ot,t)}const c=St(ot,n.digest()).slice(0,tt);t.enqueue(T(o,c))}}})}}function ht(t,n,r,s){e.assign(t,{ready:new l(e=>t.et=e),password:yt(n,r),strength:s-1,ot:b})}function pt(t,e,n,r,s,c){const{nt:a,st:i,ot:u}=t;u.length&&(e=T(u,e));const f=e.length-s;let l;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,r+(f-f%G)),l=0;f-G>=l;l+=G){const t=gt(ot,mt(e,l,l+G));c&&i.update(t);const s=a.update(t);c||i.update(s),n.set(St(ot,s),l+r)}return t.ot=mt(e,l),n}async function dt(n,r,s,c){n.password=null;const a=await(async(t,e,n,r,s)=>{if(!ut)return O.importKey(e);try{return await rt.importKey("raw",e,n,!1,s)}catch{return ut=!1,O.importKey(e)}})(0,s,Q,0,Y),i=await(async(t,e,n)=>{if(!ft)return O.V(e,t.salt,X.iterations,n);try{return await rt.deriveBits(t,e,n)}catch{return ft=!1,O.V(e,t.salt,X.iterations,n)}})(e.assign({salt:c},X),a,8*(2*$[r]+2)),u=new o(i),f=gt(ot,mt(u,0,$[r])),l=gt(ot,mt(u,$[r],2*$[r])),w=mt(u,2*$[r]);return e.assign(n,{keys:{key:f,ct:l,passwordVerification:w},nt:new at(new ct(f),t.from(et)),st:new it(l)}),w}function yt(t,e){return e===v?(t=>{if(typeof w==k){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new w).encode(t)})(t):e}function mt(t,e,n){return t.subarray(e,n)}function St(t,e){return t.v(e)}function gt(t,e){return t.C(e)}class vt extends d{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=bt(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new s(j);t=t.subarray(12)}r?e.error(new s(N)):e.enqueue(bt(n,t))}})}}class kt extends d{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){zt(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=q(new o(12));e[11]=n.passwordVerification,r=new o(t.length+e.length),r.set(Ct(n,e),0),s=12}else r=new o(t.length),s=0;r.set(Ct(n,t),s),e.enqueue(r)}})}}function zt(t,n,r,s){e.assign(t,{password:n,rawPassword:r,passwordVerification:s}),((t,n,r)=>{const s=[305419896,591751049,878082192];if(e.assign(t,{keys:s,it:new _(s[0]),ut:new _(s[2])}),r)for(let e=0;e<r.length;e++)It(t,r[e]);else for(let e=0;e<n.length;e++)It(t,n.charCodeAt(e))})(t,n,r)}function bt(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,n[r]);return n}function Ct(t,e){const n=new o(e.length);for(let r=0;r<e.length;r++)n[r]=At(t)^e[r],It(t,e[r]);return n}function It(t,e){let[,n]=t.keys;t.it.append([e]);const s=~t.it.get();n=Pt(r.imul(Pt(n+xt(s)),134775813)+1),t.ut.append([n>>>24]);const o=~t.ut.get();t.keys=[s,n,o]}function At(t){const e=2|t.keys[2];return xt(r.imul(e,1^e)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Mt(t){if(t instanceof y)return t;const e=t.getReader();return new y({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}const Bt=new u;function Dt(t){return Bt.get(t)}const Ft="Invalid uncompressed size",_t=H,Rt="deflate-raw",Tt="gzip",Ut=[31,139,8];class Vt extends d{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:c,zipCrypto:a,computeCrc32:i,level:u,deflate64:l,format:w,compressionMethod:h,inputSize:p}=t,d=this;let y,m,S,g=super.readable;const v=w&&Dt(w),k=i&&s&&!l&&!v&&(!o||a)&&!(!c||!r);if(o&&!a||!i||k||(y=new R,g=Lt(g,y)),s)if(v)g=Nt(g,jt(v.CompressionStream,w,{level:u,chunkSize:e,compressionMethod:h,uncompressedSize:p}));else if(k)S=new Kt,g=Nt(g,new r(Tt)),g=Lt(g,S);else try{g=Ht(g,c,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(Tt)}catch{throw t}g=Nt(g,e),g=Lt(g,new Kt)}o&&(a?g=Lt(g,new kt(t)):(m=new wt(t),g=Lt(g,m))),Wt(d,g,()=>{o&&!a||!i||(d.crc32=k?S.crc32:new f(y.value.buffer).getUint32(0))})}}class Kt extends d{constructor(){let t,e=10,n=new o(0);super({transform(t,s){if(e){const n=r.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const o=n.length+t.length;if(8>=o)return void(n=T(n,t));const c=o-8,a=r.min(c,n.length);s.enqueue(T(n.subarray(0,a),t.subarray(0,c-a))),n=T(n.subarray(a),t.subarray(c-a))},flush(){const e=U(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class Et extends d{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:c,encrypted:a,checkCrc32:i,crc32:u,compressed:w,useCompressionStream:h,deflate64:p,format:m,compressionMethod:S,rawBitFlag:g,outputSize:k}=t;let z,b,C=super.readable;if(a&&(c?C=Lt(C,new vt(t)):(b=new lt(t),C=Lt(C,b))),w){const t=m&&Dt(m);if(t)C=Nt(C,jt(t.DecompressionStream,m,{chunkSize:e,compressionMethod:S,rawBitFlag:g,uncompressedSize:k}));else try{C=Ht(C,h,{chunkSize:e,deflate64:p},r,n)}catch(t){if(p||k===v)throw t;let e;try{e=new r(Tt)}catch{throw t}C=((t,e,n)=>{const r=new _;let c,a,i,u=0,f=!1;const w=new l((t,e)=>{a=t,i=e});w.catch(()=>{}),n||a();const h=new d({start(t){const e=new o(10);e.set(Ut),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){f=!0,y();try{await w}finally{m()}const e=new o(8),s=U(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){i(t)}}),p=new d({transform(t,e){r.append(t),u+=t.length,n>u?f&&y():a(),e.enqueue(t)},cancel(t){i(t)}});return t=Lt(t,h),Lt(t=Nt(t,e),p);function y(){m(),c=setTimeout(()=>i(new s(Ft)),5e3)}function m(){clearTimeout(c)}})(C,e,k)}C=(t=>{const e=t.getReader();return new y({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new s("Invalid compressed data");throw e.cause=t,e}const{value:r,done:o}=n;o?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(C)}i&&(z=new R,C=Lt(C,z)),Wt(this,C,()=>{if(i){const t=new f(z.value.buffer);if(u!=t.getUint32(0,!1))throw new s(_t)}})}}const Ot=new u;function Wt(t,n,r){n=Lt(n,new d({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}function jt(t,e,n){if(!t)throw new s("Compression method not supported");return new t(e,n)}function Ht(t,e,n,r,s){const o=e&&r?r:s||r,c=n.deflate64?"deflate64-raw":Rt;let a;try{a=new o(c,n)}catch(t){if(!e||!s||o==s)throw t;a=new s(c,n)}return Nt(t,a)}function Lt(t,e){return Mt(t).pipeThrough(e)}function Nt(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const qt="data",Gt="close",Jt="deflate";class Qt extends d{constructor(t,n){super({});const r=this,{codecType:o}=t;let c;o.startsWith(Jt)?c=Vt:o.startsWith("inflate")&&(c=Et),r.outputSize=0;let a=0;const i=new c(t,n),u=super.readable,f=new d({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){e.assign(r,{inputSize:a})}}),l=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==v&&r.outputSize>t.outputSize))throw new s(Ft)},flush(){const{crc32:t}=i;e.assign(r,{crc32:t,inputSize:a})}});e.defineProperty(r,"readable",{get:()=>u.pipeThrough(f).pipeThrough(i).pipeThrough(l)})}}class Xt extends d{constructor(t){const e=[];let r=0;function s(){const n=new o(t);let s=0;for(;t>s;){const r=e[0],o=t-s;r.length>o?(n.set(r.subarray(0,o),s),e[0]=r.subarray(o),s+=o):(n.set(r,s),s+=r.length,e.shift())}return r-=t,n}n.isFinite(t)&&t>=1||(t=65536),super({transform(n,o){for(e.push(n),r+=n.length;r>t;)o.enqueue(s())},flush(t){r&&t.enqueue(((t,e)=>{const n=new o(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,r))}})}}let Yt=2;try{typeof navigator!=k&&navigator.hardwareConcurrency&&(Yt=navigator.hardwareConcurrency)}catch{}const Zt=new u,$t=new u;let te,ee=0;async function ne(t){let e,o;try{const{options:c,config:a}=t;if(c.format)try{await(async(t,e)=>{!Bt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=z&&typeof r!=z)throw new s("Invalid codec module");Bt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(c.format,c.codecURI)}catch(t){throw t.codecImportFailed=!0,t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,c.compressed&&!c.format)if(c.useCompressionStream){if(!((t,e)=>{if(!t)return!1;let n=Ot.get(t);n||(n=new u,Ot.set(t,n));let r=n.get(e);if(r===v){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(c.codecType.startsWith(Jt)?a.CompressionStream:a.DecompressionStream,Rt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{c.useCompressionStream=!0}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const i={highWaterMark:1},f=t.readable?Mt(t.readable):new y({async pull(t){const e=new l(t=>Zt.set(ee,t));re({type:"pull",messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await e;t.enqueue(r),s&&t.close()}},i);o=t.writable?(t=>{if(t instanceof m)return t;const e=t.getWriter();return new m({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})})(t.writable):new m({async write(t){let e;const r=new l(t=>e=t);$t.set(ee,e),re({type:qt,value:t,messageId:ee}),ee=(ee+1)%n.MAX_SAFE_INTEGER,await r}},i),e=new Qt(c,a),te=new AbortController;const{signal:w}=te;await f.pipeThrough(e).pipeThrough(new Xt((t=>{return s="string"==typeof(e=s=t.chunkSize)&&e.trim()?n(e):e,n.isInteger(s)&&s>=1?r.max(s,64):65536;var e,s})(a))).pipeTo(o,{signal:w,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=e;re({type:Gt,result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){if(t.outputSize=e?e.outputSize:0,o&&!o.locked)try{await o.getWriter().close()}catch{}se(t)}}function re(t){const{value:e}=t;if(e)if(e.length)try{t.value=(n=e,n.byteOffset||n.byteLength!=n.buffer.byteLength?new o(n):n).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var n}function se(t=new s("Unknown error")){const{message:e,stack:n,code:r,name:o,outputSize:c,cause:a,codecImportFailed:i}=t,u={message:e,stack:n,code:r,name:o,outputSize:c};a&&(u.cause={name:a.name,message:a.message}),i&&(u.codecImportFailed=!0),p({error:u})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:r,done:s}=t;try{if("start"==e&&ne(t),e==qt){const t=Zt.get(n);Zt.delete(n),t({value:r||new o,done:s})}if("ack"==e){const t=$t.get(n);$t.delete(n),t()}e==Gt&&te.abort()}catch(t){se(t)}}),p({type:"ready"}),((t={})=>{const{init:e}=t,n=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;self.initModule=async t=>{e&&await e(t),n&&(t.CompressionStreamFallback=n),r&&(t.DecompressionStreamFallback=r)}})()}();
package/vendor/zip/zip.js CHANGED
@@ -2075,6 +2075,10 @@ function getRegisteredCodec(compressionMethod) {
2075
2075
  return registeredCodecs.get(compressionMethod);
2076
2076
  }
2077
2077
 
2078
+ function getRegisteredCodecs() {
2079
+ return Array.from(registeredCodecs.values(), codec => Object.assign({}, codec, codecStreams.get(codec.format)));
2080
+ }
2081
+
2078
2082
  function getCodecStreams(format) {
2079
2083
  return codecStreams.get(format);
2080
2084
  }
@@ -2138,7 +2142,7 @@ class DeflateStream extends TransformStream {
2138
2142
 
2139
2143
  constructor(options, { chunkSize, CompressionStreamFallback, CompressionStream }) {
2140
2144
  super({});
2141
- const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod } = options;
2145
+ const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod, inputSize } = options;
2142
2146
  const stream = this;
2143
2147
  let crc32Stream, encryptionStream, gzipCrc32Stream;
2144
2148
  let readable = super.readable;
@@ -2151,7 +2155,7 @@ class DeflateStream extends TransformStream {
2151
2155
  }
2152
2156
  if (compressed) {
2153
2157
  if (codecStreams) {
2154
- readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod }));
2158
+ readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod, uncompressedSize: inputSize }));
2155
2159
  } else if (useGzipCrc32) {
2156
2160
  gzipCrc32Stream = new GzipToRawDeflateStream();
2157
2161
  readable = pipeThroughBackpressured(readable, new CompressionStream(FORMAT_GZIP));
@@ -7316,6 +7320,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
7316
7320
  const workerOptions = {
7317
7321
  options: {
7318
7322
  codecType: CODEC_DEFLATE,
7323
+ inputSize: size,
7319
7324
  level,
7320
7325
  rawPassword,
7321
7326
  password,
@@ -8426,6 +8431,111 @@ function getMimeType() {
8426
8431
  */
8427
8432
 
8428
8433
 
8434
+ function getSupportedCompressionMethods() {
8435
+ const { CompressionStream, DecompressionStream, CompressionStreamFallback, DecompressionStreamFallback } = getConfiguration();
8436
+ const supportedMethods = [{
8437
+ compressionMethod: COMPRESSION_METHOD_STORE,
8438
+ compression: true,
8439
+ decompression: true,
8440
+ registered: false
8441
+ }, {
8442
+ compressionMethod: COMPRESSION_METHOD_DEFLATE,
8443
+ compression: formatSupported(CompressionStreamFallback, FORMAT_DEFLATE_RAW) ||
8444
+ formatSupported(CompressionStream, FORMAT_DEFLATE_RAW) || formatSupported(CompressionStream, FORMAT_GZIP),
8445
+ decompression: formatSupported(DecompressionStreamFallback, FORMAT_DEFLATE_RAW) ||
8446
+ formatSupported(DecompressionStream, FORMAT_DEFLATE_RAW) || formatSupported(DecompressionStream, FORMAT_GZIP),
8447
+ registered: false
8448
+ }, {
8449
+ compressionMethod: COMPRESSION_METHOD_DEFLATE_64,
8450
+ compression: false,
8451
+ decompression: formatSupported(DecompressionStreamFallback, FORMAT_DEFLATE64_RAW) ||
8452
+ formatSupported(DecompressionStream, FORMAT_DEFLATE64_RAW),
8453
+ registered: false
8454
+ }];
8455
+ for (const codec of getRegisteredCodecs()) {
8456
+ const codecStreams = getCodecStreams(codec.format);
8457
+ supportedMethods.push({
8458
+ compressionMethod: codec.compressionMethod,
8459
+ // deno-lint-ignore valid-typeof
8460
+ compression: codecStreams ? typeof codecStreams.CompressionStream == FUNCTION_TYPE : UNDEFINED_VALUE,
8461
+ // deno-lint-ignore valid-typeof
8462
+ decompression: codecStreams ? typeof codecStreams.DecompressionStream == FUNCTION_TYPE : UNDEFINED_VALUE,
8463
+ registered: true
8464
+ });
8465
+ }
8466
+ return supportedMethods;
8467
+ }
8468
+
8469
+ function formatSupported(StreamClass, format) {
8470
+ if (!StreamClass) {
8471
+ return false;
8472
+ }
8473
+ const { supportedFormats } = StreamClass;
8474
+ if (supportedFormats) {
8475
+ return supportedFormats.includes(format);
8476
+ }
8477
+ return supportsFormat(StreamClass, format);
8478
+ }
8479
+
8480
+ /*
8481
+ Copyright (c) 2025 Gildas Lormeau. All rights reserved.
8482
+
8483
+ Redistribution and use in source and binary forms, with or without
8484
+ modification, are permitted provided that the following conditions are met:
8485
+
8486
+ 1. Redistributions of source code must retain the above copyright notice,
8487
+ this list of conditions and the following disclaimer.
8488
+
8489
+ 2. Redistributions in binary form must reproduce the above copyright
8490
+ notice, this list of conditions and the following disclaimer in
8491
+ the documentation and/or other materials provided with the distribution.
8492
+
8493
+ 3. The names of the authors may not be used to endorse or promote products
8494
+ derived from this software without specific prior written permission.
8495
+
8496
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
8497
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
8498
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
8499
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
8500
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
8501
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
8502
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
8503
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
8504
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
8505
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8506
+ */
8507
+
8508
+ const VERSION = "2.8.60";
8509
+
8510
+ /*
8511
+ Copyright (c) 2025 Gildas Lormeau. All rights reserved.
8512
+
8513
+ Redistribution and use in source and binary forms, with or without
8514
+ modification, are permitted provided that the following conditions are met:
8515
+
8516
+ 1. Redistributions of source code must retain the above copyright notice,
8517
+ this list of conditions and the following disclaimer.
8518
+
8519
+ 2. Redistributions in binary form must reproduce the above copyright
8520
+ notice, this list of conditions and the following disclaimer in
8521
+ the documentation and/or other materials provided with the distribution.
8522
+
8523
+ 3. The names of the authors may not be used to endorse or promote products
8524
+ derived from this software without specific prior written permission.
8525
+
8526
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
8527
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
8528
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
8529
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
8530
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
8531
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
8532
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
8533
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
8534
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
8535
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8536
+ */
8537
+
8538
+
8429
8539
  const DEFAULT_THRESHOLD$2 = 1024 * 1024;
8430
8540
  const DEFAULT_DIRECTORY_NAME$1 = ".zip.js-temp";
8431
8541
 
@@ -9589,4 +9699,4 @@ try {
9589
9699
  }
9590
9700
  catch (e) { }
9591
9701
 
9592
- export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION$1 as ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, WARNING_APPENDED_DATA, WARNING_COMPRESSED_PATCHED_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, deflateSync as deflateRaw, getMimeType, inflateSync as inflateRaw, initStream, isZipFile, readUint8Array, registerCodec, resetConfiguration, terminateWorkers, unregisterCodec };
9702
+ export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION$1 as ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, VERSION, WARNING_APPENDED_DATA, WARNING_COMPRESSED_PATCHED_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, deflateSync as deflateRaw, getMimeType, getRegisteredCodecs, getSupportedCompressionMethods, inflateSync as inflateRaw, initStream, isZipFile, readUint8Array, registerCodec, resetConfiguration, terminateWorkers, unregisterCodec };
@@ -1 +1 @@
1
- ((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})})(this,function(t){"use strict";const{Array:e,Object:n,String:r,Number:s,BigInt:o,Math:a,Date:i,Map:c,Set:f,Response:u,URL:l,Error:w,Uint8Array:d,Uint16Array:h,Uint32Array:p,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:k,btoa:S,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:F,navigator:C,Worker:A,setTimeout:T,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:this||self,E=4294967295,I=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,B=117853008,H=22,V=20,Z=56,q=61440,N=new i(1980,0,1),_=void 0,j="undefined",K="function",G="string",X=new d,J="strict",Q="balanced",Y="tolerant";function $(t){if(t&&typeof t!=K)throw new w("Invalid option (must be a function)");return t}function tt(t){return typeof t==G&&t.trim()?s(t):t}let et=2;try{typeof C!=j&&C.hardwareConcurrency&&(et=C.hardwareConcurrency)}catch{}const nt={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:et,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=j&&D,DecompressionStream:typeof F!=j&&F},rt="maxWorkers",st=["chunkSize",rt,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ot=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],at=["baseURI","wasmURI","workerURI","useCompressionStream","useWebWorkers","transferStreams",...st,...ot],it={...nt};function ct(){return it}function ft(t){return ut(t.chunkSize)}function ut(t){return t=tt(t),s.isInteger(t)&&t>=1?a.max(t,64):65536}function lt(t){const e={};for(const n of at){const r=t[n];r!==_&&(e[n]=wt(n,r))}return e}function wt(t,e){if(st.includes(t)){if(e=tt(e),t==rt&&(!s.isInteger(e)||1>e))throw new w("Invalid maxWorkers (must be an integer greater than 0)")}else ot.includes(t)&&$(e);return e}function dt(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===_&&r===_)return t;const s=n.assign({},t);return s.CompressionStreamFallback===_&&(s.CompressionStreamFallback=e),s.DecompressionStreamFallback===_&&(s.DecompressionStreamFallback=r),s}var ht=d,pt=h,mt=Int32Array,yt=new ht([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),gt=new ht([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),bt=new ht([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vt=(t,e)=>{for(var n=new pt(31),r=0;31>r;++r)n[r]=e+=1<<t[r-1];var s=new mt(n[30]);for(r=1;30>r;++r)for(var o=n[r];o<n[r+1];++o)s[o]=o-n[r]<<5|r;return{b:n,r:s}},kt=vt(yt,2),St=kt.b,xt=kt.r;St[28]=258,xt[258]=28;for(var zt=vt(gt,0).b,Rt=new pt(32768),Dt=0;32768>Dt;++Dt){var Ft=(43690&Dt)>>1|(21845&Dt)<<1;Ft=(61680&(Ft=(52428&Ft)>>2|(13107&Ft)<<2))>>4|(3855&Ft)<<4,Rt[Dt]=((65280&Ft)>>8|(255&Ft)<<8)>>1}var Ct=(t,e,n)=>{for(var r=t.length,s=0,o=new pt(e);r>s;++s)t[s]&&++o[t[s]-1];var a,i=new pt(e);for(s=1;e>s;++s)i[s]=i[s-1]+o[s-1]<<1;if(n){a=new pt(1<<e);var c=15-e;for(s=0;r>s;++s)if(t[s])for(var f=s<<4|t[s],u=e-t[s],l=i[t[s]-1]++<<u,w=l|(1<<u)-1;w>=l;++l)a[Rt[l]>>c]=f}else for(a=new pt(r),s=0;r>s;++s)t[s]&&(a[s]=Rt[i[t[s]-1]++]>>15-t[s]);return a},At=new ht(288);for(Dt=0;144>Dt;++Dt)At[Dt]=8;for(Dt=144;256>Dt;++Dt)At[Dt]=9;for(Dt=256;280>Dt;++Dt)At[Dt]=7;for(Dt=280;288>Dt;++Dt)At[Dt]=8;var Tt=new ht(32);for(Dt=0;32>Dt;++Dt)Tt[Dt]=5;var Ut=Ct(At,9,1),Et=Ct(Tt,5,1),It=t=>{for(var e=t[0],n=1;n<t.length;++n)t[n]>e&&(e=t[n]);return e},Wt=(t,e,n)=>{var r=e/8|0;return(t[r]|t[r+1]<<8)>>(7&e)&n},Mt=(t,e)=>{var n=e/8|0;return(t[n]|t[n+1]<<8|t[n+2]<<16)>>(7&e)},Ot=t=>(t+7)/8|0,Lt=(t,e,n)=>((null==e||0>e)&&(e=0),(null==n||n>t.length)&&(n=t.length),new ht(t.subarray(e,n))),Pt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Bt=(t,e,n)=>{var r=new w(e||Pt[t]);if(r.code=t,w.captureStackTrace&&w.captureStackTrace(r,Bt),!n)throw r;return r},Ht=(t,e,n,r)=>{var s=t.length,o=r?r.length:0;if(!s||e.f&&!e.o)return n||new ht(0);var i=!n,c=i||2!=e.i,f=e.i;i&&(n=new ht(3*s));var u=t=>{var e=n.length;if(t>e){var r=new ht(a.max(2*e,t));r.set(n),n=r}},l=e.f||0,w=e.p||0,d=e.b||0,h=e.o,p=e.d,m=e.l,y=e.n,g=8*s;do{if(!h){l=Wt(t,w,1);var b=Wt(t,w+1,3);if(w+=3,!b){var v=t[(U=Ot(w)+4)-4]|t[U-3]<<8,k=U+v;if(k>s){f&&Bt(0);break}c&&u(d+v),n.set(t.subarray(U,k),d),e.b=d+=v,e.p=w=8*k,e.f=l;continue}if(1==b)h=Ut,p=Et,m=9,y=5;else if(2==b){var S=Wt(t,w,31)+257,x=Wt(t,w+10,15)+4,z=S+Wt(t,w+5,31)+1;w+=14;for(var R=new ht(z),D=new ht(19),F=0;x>F;++F)D[bt[F]]=Wt(t,w+3*F,7);w+=3*x;var C=It(D),A=(1<<C)-1,T=Ct(D,C,1);for(F=0;z>F;){var U,E=T[Wt(t,w,A)];if(w+=15&E,16>(U=E>>4))R[F++]=U;else{var I=0,W=0;for(16==U?(W=3+Wt(t,w,3),w+=2,I=R[F-1]):17==U?(W=3+Wt(t,w,7),w+=3):18==U&&(W=11+Wt(t,w,127),w+=7);W--;)R[F++]=I}}var M=R.subarray(0,S),O=R.subarray(S);m=It(M),y=It(O),h=Ct(M,m,1),p=Ct(O,y,1)}else Bt(1);if(w>g){f&&Bt(0);break}}c&&u(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,B=w;;B=w){var H=(I=h[Mt(t,w)&L])>>4;if((w+=15&I)>g){f&&Bt(0);break}if(I||Bt(2),256>H)n[d++]=H;else{if(256==H){B=w,h=null;break}var V=H-254;if(H>264){var Z=yt[F=H-257];V=Wt(t,w,(1<<Z)-1)+St[F],w+=Z}var q=p[Mt(t,w)&P],N=q>>4;if(q||Bt(3),w+=15&q,O=zt[N],N>3&&(Z=gt[N],O+=Mt(t,w)&(1<<Z)-1,w+=Z),w>g){f&&Bt(0);break}c&&u(d+131072);var _=d+V;if(O>d){var j=o-O,K=a.min(O,_);for(0>j+d&&Bt(3);K>d;++d)n[d]=r[j+d]}for(;_>d;++d)n[d]=n[d-O]}}e.o=h,e.p=B,e.b=d,e.f=l,h&&(l=1,e.l=m,e.d=p,e.n=y)}while(!l);return d!=n.length&&i?Lt(n,0,d):n.subarray(0,d)},Vt=new ht(0),Zt=function(){function t(t,e){"function"==typeof t&&(e=t,t={}),this.h=e;var n=t&&t.m&&t.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ht(32768),this.p=new ht(0),n&&this.v.set(n)}return t.prototype.e=function(t){if(this.h||Bt(5),this.d&&Bt(4),this.p.length){if(t.length){var e=new ht(this.p.length+t.length);e.set(this.p),e.set(t,this.p.length),this.p=e}}else this.p=t},t.prototype.c=function(t){this.s.i=+(this.d=t||!1);var e=this.s.b,n=Ht(this.p,this.s,this.v);this.h(Lt(n,e,this.s.b),this.d),this.v=Lt(n,this.s.b-32768),this.s.b=this.v.length,this.p=Lt(this.p,this.s.p/8|0),this.s.p&=7},t.prototype.push=function(t,e){this.e(t),this.c(e)},t}(),qt=void 0!==v&&new v;try{qt.decode(Vt,{stream:!0})}catch(t){}class Nt extends x{constructor(t){super({start(e){t.h=t=>{t.length&&e.enqueue(t)}},transform(e){t.push(e)},flush(){t.push(new d(0),!0)}})}}const _t=new c,jt=new c;function Kt(t){return jt.get(t)}const Gt=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;Gt[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=Gt[e-1][t];Gt[e][t]=n>>>8^Gt[0][255&n]}const[Xt,Jt,Qt,Yt,$t,te,ee,ne]=Gt;class re{constructor(t){this.S=t||-1}append(t){let e=0|this.S;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new m(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=ne[255&t]^ee[t>>>8&255]^te[t>>>16&255]^$t[t>>>24&255]^Yt[255&n]^Qt[n>>>8&255]^Jt[n>>>16&255]^Xt[n>>>24&255]}}for(;n>r;r++)e=e>>>8^Xt[255&(e^t[r])];this.S=e}get(){return~this.S}}class se extends x{constructor(){let t;const e=new re;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function oe(t,e){const n=new d(t.length+e.length);return n.set(t),n.set(e,t.length),n}function ae(t){return new m(t.buffer,t.byteOffset,t.byteLength)}const ie={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=ie.R(n);return 32===r?t.concat(e):ie.D(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+ie.R(n)},F(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,a.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=ie.C(e,t[n-1]&2147483648>>e-1,1)),t},C:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,R:t=>a.round(t/1099511627776)||32,D(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=ie.R(s);return r.push(ie.C(e+o&31,e+o>32?n:r.pop(),1)),r}},ce={bytes:{A(t){const e=ie.bitLength(t)/8,n=new d(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},T(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(ie.C(8*(3&n),r)),e}}},fe=class{constructor(t){const e=this;e.blockSize=512,e.U=[1732584193,4023233417,2562383102,271733878,3285377520],e.I=[1518500249,1859775393,2400959708,3395469782],t?(e.W=t.W.slice(0),e.M=t.M.slice(0),e.O=t.O):e.reset()}reset(){const t=this;return t.W=t.U.slice(0),t.M=[],t.O=0,t}update(t){const e=this;"string"==typeof t&&(t=ce.L.T(t));const n=e.M=ie.concat(e.M,t),r=e.O,s=e.O=r+ie.bitLength(t);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const o=new p(n);let a=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);s>=t;t+=e.blockSize)e.P(o.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}B(){const t=this;let e=t.M;const n=t.W;e=ie.concat(e,[ie.C(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(a.floor(t.O/4294967296)),e.push(0|t.O);e.length;)t.P(e.splice(0,16));return t.reset(),n}H(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}V(t,e){return e<<t|e>>>32-t}P(t){const n=this,r=n.W,s=e(80);for(let e=0;16>e;e++)s[e]=t[e];let o=r[0],i=r[1],c=r[2],f=r[3],u=r[4];for(let t=0;79>=t;t++){16>t||(s[t]=n.V(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=n.V(5,o)+n.H(t,i,c,f)+u+s[t]+n.I[a.floor(t/20)]|0;u=f,f=c,c=n.V(30,i),i=o,o=e}r[0]=r[0]+o|0,r[1]=r[1]+i|0,r[2]=r[2]+c|0,r[3]=r[3]+f|0,r[4]=r[4]+u|0}},ue={importKey:t=>new ue.Z(ce.bytes.T(t)),N(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new w("invalid params to pbkdf2");const s=1+(r>>5)<<2;let o,a,i,c,f;const u=new ArrayBuffer(s),l=new m(u);let d=0;const h=ie;for(e=ce.bytes.T(e),f=1;(s||1)>d;f++){for(o=a=t.encrypt(h.concat(e,[f])),i=1;n>i;i++)for(a=t.encrypt(a),c=0;c<a.length;c++)o[c]^=a[c];for(i=0;(s||1)>d&&i<o.length;i++)l.setInt32(d,o[i]),d+=4}return u.slice(0,r/8)},Z:class{constructor(t){const e=this,n=e._=fe,r=[[],[]];e.j=[new n,new n];const s=e.j[0].blockSize/32;t.length>s&&(t=(new n).update(t).B());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.j[0].update(r[0]),e.j[1].update(r[1]),e.K=new n(e.j[0])}reset(){const t=this;t.K=new t._(t.j[0]),t.G=!1}update(t){this.G=!0,this.K.update(t)}digest(){const t=this,e=t.K.B(),n=new t._(t.j[1]).update(e).B();return t.reset(),n}encrypt(t){if(this.G)throw new w("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},le=typeof k!=j&&typeof k.getRandomValues==K,we="Invalid password",de="Invalid signature",he=de,pe="zipjs-abort-check-password";function me(t){if(le)return k.getRandomValues(t);throw new w("Crypto API not supported")}const ye=16,ge={name:"PBKDF2"},be=n.assign({hash:{name:"HMAC"}},ge),ve=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ge),ke=["deriveBits"],Se=[8,12,16],xe=[16,24,32],ze=10,Re=[0,0,0,0],De=typeof k!=j,Fe=De&&k.subtle,Ce=De&&typeof Fe!=j,Ae=ce.bytes,Te=class{constructor(t){const e=this;e.X=[[[],[],[],[],[]],[[],[],[],[],[]]],e.X[0][0][0]||e.J();const n=e.X[0][4],r=e.X[1],s=t.length;let o,a,i,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(e.I=[a=t.slice(0),i=[]],o=s;4*s+28>o;o++){let t=a[o-1];(o%s===0||8===s&&o%s===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),a[o]=a[o-s]^t}for(let t=0;o;t++,o--){const e=a[3&t?o:o-4];i[t]=4>=o||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.Y(t,0)}decrypt(t){return this.Y(t,1)}J(){const t=this.X[0],e=this.X[1],n=t[4],r=e[4],s=[],o=[];let a,i,c,f;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let u=a=0;!n[u];u^=i||1,a=o[a]||1){let o=a^a<<1^a<<2^a<<3^a<<4;o=o>>8^255&o^99,n[u]=o,r[o]=u,f=s[c=s[i=s[u]]];let l=16843009*f^65537*c^257*i^16843008*u,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][u]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}Y(t,e){if(4!==t.length)throw new w("invalid aes block size");const n=this.I[e],r=n.length/4-2,s=[0,0,0,0],o=this.X[e],a=o[0],i=o[1],c=o[2],f=o[3],u=o[4];let l,d,h,p=t[0]^n[0],m=t[e?3:1]^n[1],y=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;r>t;t++)l=a[p>>>24]^i[m>>16&255]^c[y>>8&255]^f[255&g]^n[b],d=a[m>>>24]^i[y>>16&255]^c[g>>8&255]^f[255&p]^n[b+1],h=a[y>>>24]^i[g>>16&255]^c[p>>8&255]^f[255&m]^n[b+2],g=a[g>>>24]^i[p>>16&255]^c[m>>8&255]^f[255&y]^n[b+3],b+=4,p=l,m=d,y=h;for(let t=0;4>t;t++)s[e?3&-t:t]=u[p>>>24]<<24^u[m>>16&255]<<16^u[y>>8&255]<<8^u[255&g]^n[b++],l=p,p=m,m=y,y=g,g=l;return s}},Ue=class{constructor(t,e){this.$=t,this.et=e,this.nt=e}reset(){this.nt=this.et}update(t){return this.st(this.$,t,this.nt)}ot(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}it(t){0===(t[0]=this.ot(t[0]))&&(t[1]=this.ot(t[1]))}st(t,e,n){let r;if(!(r=e.length))return[];const s=ie.bitLength(e);for(let s=0;r>s;s+=4){this.it(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return ie.F(e,s)}},Ee=ue.Z;let Ie=De&&Ce&&typeof Fe.importKey==K,We=De&&Ce&&typeof Fe.deriveBits==K;class Me extends x{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:o,ct:a,ready:i}=n;s?(await(async(t,e,n,r)=>{const s=await Be(t,e,n,Ve(r,0,Se[e])),o=Ve(r,Se[e]);if(s[0]!=o[0]||s[1]!=o[1])throw new w(we)})(n,o,s,Ve(t,0,Se[o]+2)),t=Ve(t,Se[o]+2),r?e.error(new w(pe)):a()):await i;const c=new d(t.length-ze-(t.length-ze)%ye);e.enqueue(Pe(n,t,c,0,ze,!0))},async flush(t){const{ft:e,ut:n,lt:r,ready:o}=this;if(n&&e){await o;const a=Ve(r,0,r.length-ze),i=Ve(r,r.length-ze);let c=X;if(a.length){const t=qe(Ae,a);n.update(t);const r=e.update(t);c=Ze(Ae,r)}const f=Ve(Ze(Ae,n.digest()),0,ze);let u=r.length<ze?1:0;for(let t=0;ze>t;t++)u|=f[t]^i[t];if(u&&s)throw new w(he);t.enqueue(c)}}})}}class Oe extends x{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,ct:o,ready:a}=n;let i=X;r?(i=await(async(t,e,n)=>{const r=me(new d(Se[e]));return oe(r,await Be(t,e,n,r))})(n,s,r),o()):await a;const c=new d(i.length+t.length-t.length%ye);c.set(i,0),e.enqueue(Pe(n,t,c,i.length,0))},async flush(t){const{ft:e,ut:n,lt:r,ready:s}=this;if(n&&e){await s;let o=X;if(r.length){const t=e.update(qe(Ae,r));n.update(t),o=Ze(Ae,t)}const a=Ze(Ae,n.digest()).slice(0,ze);t.enqueue(oe(o,a))}}})}}function Le(t,e,r,s){n.assign(t,{ready:new g(e=>t.ct=e),password:He(e,r),strength:s-1,lt:X})}function Pe(t,e,n,r,s,o){const{ft:a,ut:i,lt:c}=t;c.length&&(e=oe(c,e));const f=e.length-s;let u;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new d(e)).set(n,0)}return t})(n,r+(f-f%ye)),u=0;f-ye>=u;u+=ye){const t=qe(Ae,Ve(e,u,u+ye));o&&i.update(t);const s=a.update(t);o||i.update(s),n.set(Ze(Ae,s),u+r)}return t.lt=Ve(e,u),n}async function Be(t,r,s,o){t.password=null;const a=await(async(t,e,n,r,s)=>{if(!Ie)return ue.importKey(e);try{return await Fe.importKey("raw",e,n,!1,s)}catch{return Ie=!1,ue.importKey(e)}})(0,s,be,0,ke),i=await(async(t,e,n)=>{if(!We)return ue.N(e,t.salt,ve.iterations,n);try{return await Fe.deriveBits(t,e,n)}catch{return We=!1,ue.N(e,t.salt,ve.iterations,n)}})(n.assign({salt:o},ve),a,8*(2*xe[r]+2)),c=new d(i),f=qe(Ae,Ve(c,0,xe[r])),u=qe(Ae,Ve(c,xe[r],2*xe[r])),l=Ve(c,2*xe[r]);return n.assign(t,{keys:{key:f,wt:u,passwordVerification:l},ft:new Ue(new Te(f),e.from(Re)),ut:new Ee(u)}),l}function He(t,e){return e===_?(t=>{if(typeof b==j){const e=new d((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new b).encode(t)})(t):e}function Ve(t,e,n){return t.subarray(e,n)}function Ze(t,e){return t.A(e)}function qe(t,e){return t.T(e)}class Ne extends x{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=Ke(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new w(we);t=t.subarray(12)}r?e.error(new w(pe)):e.enqueue(Ke(n,t))}})}}class _e extends x{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=me(new d(12));e[11]=n.passwordVerification,r=new d(t.length+e.length),r.set(Ge(n,e),0),s=12}else r=new d(t.length),s=0;r.set(Ge(n,t),s),e.enqueue(r)}})}}function je(t,e,r,s){n.assign(t,{password:e,rawPassword:r,passwordVerification:s}),((t,e,r)=>{const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,ht:new re(s[0]),yt:new re(s[2])}),r)for(let e=0;e<r.length;e++)Xe(t,r[e]);else for(let n=0;n<e.length;n++)Xe(t,e.charCodeAt(n))})(t,e,r)}function Ke(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,n[r]);return n}function Ge(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,e[r]);return n}function Xe(t,e){let[,n]=t.keys;t.ht.append([e]);const r=~t.ht.get();n=Ye(a.imul(Ye(n+Qe(r)),134775813)+1),t.yt.append([n>>>24]);const s=~t.yt.get();t.keys=[r,n,s]}function Je(t){const e=2|t.keys[2];return Qe(a.imul(e,1^e)>>>8)}function Qe(t){return 255&t}function Ye(t){return 4294967295&t}function $e(t){if(t instanceof z)return t;const e=t.getReader();return new z({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}function tn(t,e){t=$e(t);const n=e?{type:e}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new u(t).blob().then(t=>e?new y([t],n):t);const r=[];return t.pipeTo(new R({write(t){r.push(t)}})).then(()=>new y(r,n))}function en(t){if(t instanceof R)return t;const e=t.getWriter();return new R({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}const nn="Invalid uncompressed size",rn=de,sn="deflate-raw",on="gzip",an=[31,139,8];class cn extends x{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:f,deflate64:u,format:l,compressionMethod:w}=t,d=this;let h,p,y,g=super.readable;const b=l&&Kt(l),v=c&&s&&!u&&!b&&(!o||i)&&!(!a||!r);if(o&&!i||!c||v||(h=new se,g=pn(g,h)),s)if(b)g=mn(g,dn(b.CompressionStream,l,{level:f,chunkSize:e,compressionMethod:w}));else if(v)y=new fn,g=mn(g,new r(on)),g=pn(g,y);else try{g=hn(g,a,{level:f,chunkSize:e},r,n)}catch(t){let e;try{e=new r(on)}catch{throw t}g=mn(g,e),g=pn(g,new fn)}o&&(i?g=pn(g,new _e(t)):(p=new Oe(t),g=pn(g,p))),wn(d,g,()=>{o&&!i||!c||(d.crc32=v?y.crc32:new m(h.value.buffer).getUint32(0))})}}class fn extends x{constructor(){let t,e=10,n=new d(0);super({transform(t,r){if(e){const n=a.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const s=n.length+t.length;if(8>=s)return void(n=oe(n,t));const o=s-8,i=a.min(o,n.length);r.enqueue(oe(n.subarray(0,i),t.subarray(0,o-i))),n=oe(n.subarray(i),t.subarray(o-i))},flush(){const e=ae(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class un extends x{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:o,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:f,deflate64:u,format:l,compressionMethod:h,rawBitFlag:p,outputSize:y}=t;let b,v,k=super.readable;if(o&&(s?k=pn(k,new Ne(t)):(v=new Me(t),k=pn(k,v))),c){const t=l&&Kt(l);if(t)k=mn(k,dn(t.DecompressionStream,l,{chunkSize:e,compressionMethod:h,rawBitFlag:p,uncompressedSize:y}));else try{k=hn(k,f,{chunkSize:e,deflate64:u},r,n)}catch(t){if(u||y===_)throw t;let e;try{e=new r(on)}catch{throw t}k=((t,e,n)=>{const r=new re;let s,o,a,i=0,c=!1;const f=new g((t,e)=>{o=t,a=e});f.catch(()=>{}),n||o();const u=new x({start(t){const e=new d(10);e.set(an),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){c=!0,h();try{await f}finally{p()}const e=new d(8),s=ae(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){a(t)}}),l=new x({transform(t,e){r.append(t),i+=t.length,n>i?c&&h():o(),e.enqueue(t)},cancel(t){a(t)}});return t=pn(t,u),pn(t=mn(t,e),l);function h(){p(),s=T(()=>a(new w(nn)),5e3)}function p(){U(s)}})(k,e,y)}k=(t=>{const e=t.getReader();return new z({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new w("Invalid compressed data");throw e.cause=t,e}const{value:r,done:s}=n;s?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(k)}a&&(b=new se,k=pn(k,b)),wn(this,k,()=>{if(a){const t=new m(b.value.buffer);if(i!=t.getUint32(0,!1))throw new w(rn)}})}}const ln=new c;function wn(t,e,r){e=pn(e,new x({flush:r})),n.defineProperty(t,"readable",{get:()=>e})}function dn(t,e,n){if(!t)throw new w("Compression method not supported");return new t(e,n)}function hn(t,e,n,r,s){const o=e&&r?r:s||r,a=n.deflate64?"deflate64-raw":sn;let i;try{i=new o(a,n)}catch(t){if(!e||!s||o==s)throw t;i=new s(a,n)}return mn(t,i)}function pn(t,e){return $e(t).pipeThrough(e)}function mn(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const yn="deflate",gn="inflate";class bn extends x{constructor(t,e){super({});const r=this,{codecType:s}=t;let o;s.startsWith(yn)?o=cn:s.startsWith(gn)&&(o=un),r.outputSize=0;let a=0;const i=new o(t,e),c=super.readable,f=new x({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){n.assign(r,{inputSize:a})}}),u=new x({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==_&&r.outputSize>t.outputSize))throw new w(nn)},flush(){const{crc32:t}=i;n.assign(r,{crc32:t,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(f).pipeThrough(i).pipeThrough(u)})}}class vn extends x{constructor(t){const e=[];let n=0;function r(){const r=new d(t);let s=0;for(;t>s;){const n=e[0],o=t-s;n.length>o?(r.set(n.subarray(0,o),s),e[0]=n.subarray(o),s+=o):(r.set(n,s),s+=n.length,e.shift())}return n-=t,r}s.isFinite(t)&&t>=1||(t=65536),super({transform(s,o){for(e.push(s),n+=s.length;n>t;)o.enqueue(r())},flush(t){n&&t.enqueue(((t,e)=>{const n=new d(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,n))}})}}class kn{constructor(t,{readable:e,writable:r},{options:s,config:o,gt:a,useWebWorkers:i,transferStreams:f,workerURI:u,createWorker:l},w){const{signal:d}=a;return n.assign(t,{bt:!0,vt:(t.vt||0)+1,readable:e.pipeThrough(new vn(ft(o))).pipeThrough(new Sn(a),{signal:d}),writable:r,options:n.assign({},s),workerURI:u,createWorker:l,transferStreams:f,terminate:()=>new g(e=>{const{kt:n,bt:r}=t;n?(r?t.St=e:(n.terminate(),e()),t.xt=null):e()}),zt(){if(t.bt){const{St:e}=t;e&&(t.St=null,t.Rt=!0,t.kt.terminate(),e()),t.bt=!1,w(t)}}}),((t,e)=>({run:()=>(async({options:t,readable:e,writable:n,zt:r},s)=>{let o;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(yn),n=e?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=e?s.CompressionStream:s.DecompressionStream;if(t.useCompressionStream){if(n&&n.Dt&&!((t,e)=>{if(!t)return!1;let n=ln.get(t);n||(n=new c,ln.set(t,n));let r=n.get(e);if(r===_){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(r,sn))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.Dt||(t.useCompressionStream=!0)}}o=new bn(t,s),await e.pipeThrough(o).pipeThrough(new vn(ft(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:a,outputSize:i}=o;return{crc32:r,inputSize:a,outputSize:i}}catch(t){throw o&&(t.outputSize=o.outputSize),t}finally{r()}})(t,e)}))(t,o)}}class Sn extends x{constructor({onstart:t,onprogress:e,size:n,onend:r}){let s=0;super({async start(){t&&await xn(t,n)},async transform(t,r){s+=t.length,e&&await xn(e,s,n),r.enqueue(t)},async flush(){r&&await xn(r,s)}})}}async function xn(t,...e){try{await t(...e)}catch{}}let zn=[];const Rn=[];let Dn,Fn,Cn=0;function An(){!Dn&&Rn.length&&s.isFinite(Fn)&&Fn>=0&&(Dn=T(Un,Fn))}function Tn(){Dn&&(U(Dn),Dn=null)}function Un(){if(Dn=null,Rn.length){const[{resolve:t,stream:e,Ft:r}]=Rn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:_,createWorker:_});t(new kn({},e,s,En)),An()}}function En(){Tn(),An()}function In(t){const{Ct:e}=t;e&&(U(e),t.Ct=null)}const Wn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Mn(t,e){return On(t,e,!0)}function On(t,e,n){return e&&"cp437"==e.trim().toLowerCase()?(t=>{{let e="";for(let n=0;n<t.length;n++)e+=Wn[t[n]];return e}})(t):new v(e,{ignoreBOM:n}).decode(t)}const Ln="HTTP error ",Pn="HTTP Range not supported",Bn="HTTP resource changed",Hn="Content-Range",Vn="Range",Zn="GET",qn="bytes",Nn=16777216,_n="writable",jn=Symbol();class Kn{constructor(){this.size=0}init(){this.initialized=!0}}class Gn extends Kn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=ft(ct())}={}){const r=this;let s=0;return n=ut(n),new z({async pull(o){const i=e===_?n:a.min(n,e-s),c=await zr(r,t+s,i);c.length&&o.enqueue(c),s+n>=e||!c.length&&i?o.close():s+=n}})}}class Xn extends Kn{constructor(){super();const t=this,e=new R({write(e){if(!t.initialized)throw new w("Writer not initialized");return t.writeUint8Array((n=e).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(t,_n,{get:()=>e})}writeUint8Array(){}}let Jn,Qn;class Yn extends Gn{constructor(t){super(),n.assign(this,{At:t,size:t.size}),Qn||(Qn=(async()=>{try{const t=new y([new d(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();Jn=1==e}catch{Jn=!1}})())}createReadable(t){const{At:e,size:n}=this,{offset:r=0,size:s=n-r}=t||{};return r||n>s?Jn?$e(e.slice(r,r+s).stream()):super.createReadable(t):$e(e.stream())}async readUint8Array(t,e){const n=this,r=t+e,s=t||r<n.size?n.At.slice(t,r):n.At;let o=await s.arrayBuffer();return o.byteLength>e&&(o=o.slice(t,r)),new d(o)}}class $n extends Kn{constructor(t){super();const e=this,r=new x;n.defineProperty(e,_n,{get:()=>r.writable}),e.contentType=t,e.Tt=tn(r.readable,t),e.Tt.catch(()=>{})}getData(){return this.Tt}}class tr extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,pr,lr),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=e;if((n||r)&&o!==_){const{offset:n=0,size:r=o-n}=t||{};if(r>0&&o>n)return((t,e,n)=>{let r,o=e,i=0,c=n;return new z({start:()=>f(),async pull(t){r||await f();const{value:e,done:n}=await r.read();if(n)throw new w(Pn);const s=e.length>i?e.subarray(0,i):e;i-=s.length,c-=s.length,s.length&&t.enqueue(s),i||(await(async()=>{const t=r;r=_,await t.cancel()})(),c||t.close())},cancel:t=>r&&r.cancel(t)});async function f(){const e=a.min(t.maximumRangeSize,c),n=await pr(Zn,t,fr(t,o,e));if(206!=n.status)throw new w(Pn);const f=n.headers.get(Hn);if(f){const t=s(f.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=o)throw new w(Pn)}cr(t,n),ir(t,n),o+=e,i=e,r=n.body.getReader()}})(e,n,a.min(r,o-n))}return super.createReadable(t)}readUint8Array(t,e){return sr(this,t,e,pr,lr)}}class er extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,mr,wr),super.init()}readUint8Array(t,e){return sr(this,t,e,mr,wr)}}function nr(t,e,r){const{preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:f=Nn,fetch:u}=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(t,{url:e,options:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:f,fetch:u})}async function rr(t,e,n){const{url:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i}=t;if((t=>{const{baseURI:e}=ct(),{protocol:n}=new l(t,e);return"http:"==n||"https:"==n})(r)&&(o||a)&&(typeof s==j||s)){const r=await e(Zn,t,fr(t,i?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==qn))throw new w(Pn);{if(i){const e=new d(await r.arrayBuffer());206==r.status&&e.length==H&&(t.Ut=e)}ir(t,r);const s=or(r);s===_?await hr(t,e,n):t.size=s}}else await hr(t,e,n)}async function sr(t,e,n,r,o){const{useRangeHeader:a,forceRangeRequests:i,Ut:c,size:f,options:u}=t;if(a||i){if(c&&e==f-H&&n==H)return c;if(f>e&&0!==n){e+n>f&&(n=f-e);const o=await r(Zn,t,fr(t,e,n));if(206!=o.status)throw new w(Pn);const a=o.headers.get(Hn);if(a){const t=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=e)throw new w(Pn)}cr(t,o),ir(t,o);const i=new d(await o.arrayBuffer());if(i.length!=n)throw new w(Pn);return i}return X}{const{data:r}=t;return r||await o(t,u),t.data.subarray(e,e+n)}}function or(t){const e=t.headers.get(Hn);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=s(t);if(!s.isNaN(e))return e}}}function ar({headers:t}){return{Et:t.get("Etag")||_,lastModified:t.get("Last-Modified")||_}}function ir(t,e){const{checkResourceChanges:n,It:r}=t;n&&!r&&206==e.status&&(t.It=ar(e))}function cr(t,e){const{checkResourceChanges:r,It:s,size:o}=t;if(r){const t=or(e);if(t!==_&&o!==_&&t!=o)throw new w(Bn);if(s){const t=ar(e);if(n.entries(s).some(([e,n])=>n!==_&&t[e]!==_&&n!=t[e]))throw new w(Bn)}}}function fr(t,e=0,r=1){return n.assign({},ur(t),{[Vn]:qn+"="+(0>e?e:e+"-"+(e+r-1))})}function ur({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?n.fromEntries(e):e}async function lr(t){await dr(t,pr)}async function wr(t){await dr(t,mr)}async function dr(t,e){const n=await e(Zn,t,ur(t));t.data=new d(await n.arrayBuffer()),t.size=t.data.length}async function hr(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const r=await e("HEAD",t,ur(t)),o=r.headers.get("Content-Length");o&&!r.headers.get("Content-Encoding")?t.size=s(o):await n(t,t.options)}}async function pr(t,{fetch:e=fetch,options:r,url:s},o){const a=await e(s,n.assign({},r,{method:t,headers:o}));if(400>a.status)return a;throw 416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status))}function mr(t,{url:e},r){return new g((s,o)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(t)})}else o(416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>o(t.detail?t.detail.error:new w("Network error")),!1),a.open(t,e),r)for(const t of n.entries(r))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class yr extends Gn{constructor(t,e={}){super(),n.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new er(t,e):new tr(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class gr extends Gn{constructor(t){super(),this.Wt=t}async init(){const t=this;t.Mt=0;const e=t.Wt=await g.all(t.Wt.map(xr));t.Ot=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}Lt(t){const{Ot:e,size:n}=this,r=e[t];return r===_?n:r}async readUint8Array(t,e){const n=this,{Wt:r}=this;let s,o=0,i=t;for(;r[o]&&i>=r[o].size;)i-=r[o].size,o++;const c=r[o];if(c){const r=c.size;if(i+e>r){const o=r-i;s=oe(await zr(c,i,o),await n.readUint8Array(t+o,e-o))}else s=await zr(c,i,e)}else s=X;return n.Mt=a.max(o,n.Mt),s}}class br extends Kn{constructor(t,e=4294967295){super();const r=this;let s,o,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const i=new R({async write(e){if(e===jn)return void(a&&await f());const{availableSize:n}=r;if(a)e.length<n?await c(e):(await c(e.subarray(0,n)),await f(),e.length>n&&await this.write(e.subarray(n)));else{const{value:n,done:i}=await t.next();if(i&&!n)throw new w("Writer iterator completed too soon");s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await Sr(s),o=n.writable,a=o.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await u())},async abort(t){a&&await a.abort(t)}});async function c(t){const e=t.length;e&&(await a.ready,await a.write(t),s.size+=e,r.availableSize-=e)}async function f(){await u(),r.diskOffset+=s.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function u(){await a.close()}n.defineProperty(r,_n,{get:()=>i})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(jn)}finally{t.releaseLock()}}}class vr{constructor(t){return e.isArray(t)&&(t=new gr(t)),(t instanceof z||typeof t.getReader==K)&&(t={readable:$e(t)}),t}}class kr{constructor(t){return t.writable===_&&typeof t.next==K&&(t=new br(t)),(t instanceof R||typeof t.getWriter==K)&&(t={writable:en(t)}),t.size===_&&(t.size=0),t}}async function Sr(t,e){if(!t.init||t.initialized)return g.resolve();await t.init(e)}async function xr(t){return t=new vr(t),await Sr(t),t.size!==_&&t.readUint8Array||(t=new Yn(await tn(t.readable)),await Sr(t)),t}function zr(t,e,n){return t.readUint8Array(e,n)}const Rr="filename",Dr="rawFilename",Fr="comment",Cr="rawComment",Ar="uncompressedSize",Tr="compressedSize",Ur="offset",Er="diskNumberStart",Ir="lastModDate",Wr="rawLastModDate",Mr="lastAccessDate",Or="rawLastAccessDate",Lr="creationDate",Pr="rawCreationDate",Br=[Rr,Dr,Ar,Tr,Ir,Wr,Fr,Cr,Mr,Or,Lr,Pr,Ur,Er,"internalFileAttributes","externalFileAttributes","internalFileAttribute","externalFileAttribute","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Hr{constructor(t){Br.forEach(e=>this[e]=t[e])}}const Vr="File format is not recognized",Zr="Encryption method not supported",qr="Compression method not supported",Nr="Split zip file",_r="malformed extra field",jr="wrapped entries count",Kr="appended data",Gr="prepended data",Xr="mismatched zip64 end of central directory record",Jr=/^[a-zA-Z]:/,Qr="utf-8",Yr="cp437",$r=[[Ar,E],[Tr,E],[Ur,E],[Er,I]],ts={[I]:{Pt:Es,bytes:4},[E]:{Pt:Is,bytes:8}},es=o(s.MAX_SAFE_INTEGER);class ns{constructor(t,e){n.assign(this,{reader:t,options:e})}async getData(t,e,n,r={}){const o=this,i=ct(),{reader:c,index:f,offset:u,diskNumberStart:h,extraFieldAES:p,extraFieldZip64:m,compressionMethod:y,bitFlag:b,rawBitFlag:v,crc32:k,rawLastModDate:S,uncompressedSize:x,compressedSize:z}=o,{dataDescriptor:D}=b,F=e.localDirectory={},C=e.warnings=[],A=ds(c,h)+u,U=await zr(c,A,30),E=ae(U);let I=Ds(o,r,"password"),M=Ds(o,r,"rawPassword");const L=Ds(o,r,"passThrough");if(((t,e)=>{if(t&&typeof t!=G||e&&!(e instanceof d))throw new w("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(I,M),I=I&&I.length&&I,M=M&&M.length&&M,p&&99!=p.originalCompressionMethod)throw new w(qr);if(30>U.length||67324752!=Es(E,0))throw new w("Local file header not found");as(F,E,4);const{extraFieldLength:P,filenameLength:B}=F,H=F.dataOffset=A+30+B+P,V=Ds(o,r,"checkLocalDirectory"),Z=ms(r,o.options),q=((t,e)=>t===_?e!=Y:!!t)(V,Z),N=((t,e)=>t===_?e==J:!!t)(V,Z);let j=X;if(N&&(B||P)){const t=await zr(c,A+30,B+P);j=t.subarray(0,B),F.rawExtraField=t.subarray(B)}else F.rawExtraField=P?await zr(c,A+30+B,P):X;N&&(F.rawFilename=j),is(o,F,E,4,!0)&&zs(C,_r),((t,e,n,r,s)=>{const{rawFilename:o}=t,a=!s,i=t.Bt&&!(8192&~e.rawBitFlag);!r||i||n.length==o.length&&!n.some((t,e)=>t!=o[e])||xs(a,s,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&xs(a,s,"mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&xs(a,s,"mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||i||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||xs(a,s,"mismatched local file header (crc32 or sizes)")})(o,F,j,N,q?_:C);const{lastAccessDate:Q,creationDate:$,uid:tt,gid:et}=F;Q&&(e.lastAccessDate=Q),$&&(e.creationDate=$),tt!==_&&e.uid===_&&(e.uid=tt),et!==_&&e.gid===_&&(e.gid=et);const nt=o.encrypted&&F.encrypted&&!L,rt=nt&&!p;if(L||(e.zipCrypto=rt),nt&&!(64&~F.rawBitFlag))throw new w(Zr);const st=L?_:(t=>_t.get(t))(y);if(0!=y&&8!=y&&9!=y&&!st&&!L)throw new w(qr);if(nt){if(!rt&&(1>p.strength||p.strength>3))throw new w(Zr);if(!I&&!M)throw new w("File contains encrypted entry")}if(H+z>c.size)throw new w("Entry data out of bounds");const ot=z,at=$e(c.createReadable({offset:H,size:ot})),it=(t=>{if(t&&(typeof t.addEventListener!=K||"boolean"!=typeof t.aborted))throw new w("Invalid signal (must be an AbortSignal instance)");return t||_})(Ds(o,r,"signal")),ft=Ds(o,r,"checkPasswordOnly");let ut=Ds(o,r,"checkOverlappingEntry");const lt=Ds(o,r,"checkOverlappingEntryOnly");lt&&(ut=!0);const{onstart:wt,onprogress:dt,onend:ht}=r,pt=0!=y&&!L,mt=L?z:x,yt=9==y;let gt=Ds(o,r,"useCompressionStream");yt&&(gt=!1);const bt=Ds(o,r,"checkCrc32"),vt=(bt===_?Ds(o,r,"checkSignature"):bt)&&!L&&(!nt||rt||p&&1==p.vendorVersion),kt={options:{codecType:gn,password:I,rawPassword:M,zipCrypto:rt,encryptionStrength:p&&p.strength,checkCrc32:vt,checkAuthenticationCode:Ds(o,r,"checkAuthenticationCode"),passwordVerification:rt&&(D?S>>>8&W:k>>>24&W),outputSize:mt,crc32:k,compressed:pt,encrypted:nt,useWebWorkers:Ds(o,r,"useWebWorkers"),useCompressionStream:gt,transferStreams:Ds(o,r,"transferStreams"),deflate64:yt,format:st?st.format:_,codecURI:st?st.codecURI:_,compressionMethod:y,rawBitFlag:v,checkPasswordOnly:ft},config:i,gt:{signal:it,size:ot,onstart:wt,onprogress:dt,onend:ht}};let St,xt;ut&&await(async({reader:t,Ht:e,index:n,offset:r,crc32:s,compressedSize:o,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:f,Vt:u})=>{let l=0;if(c&&(l=f?20:12),l){const n=await zr(t,i+o,l+4),r=ae(n);let c=n.length==l+4&&Es(r,0)==O;if(c){const t=ws(r,4,f);(e.encrypted&&!e.zipCrypto||t.crc32==s)&&t.compressedSize==o&&t.uncompressedSize==a?l+=4:c=!1}if(n.length>=l){const t=ws(r,c?4:0,f);t.signature=c,e.localDirectory.dataDescriptor=t}}const d={start:r,end:i+o+l,Ht:e};for(const[t,e]of u)if(t!=n&&d.start<e.end&&e.start<d.end){const t=new w("Overlapping entry found");throw t.overlappingEntry=e.Ht,t}u.set(n,d)})({reader:c,Ht:e,index:f,offset:A,crc32:k,compressedSize:z,uncompressedSize:x,dataOffset:H,dataDescriptor:D||F.bitFlag.dataDescriptor,extraFieldZip64:m||F.extraFieldZip64,Vt:n});try{if(!lt){ft&&(t=new R),t=new kr(t),await Sr(t,((t,e,n)=>a.min(t,n?1032*e:e))(mt,z,pt)),({writable:St}=t);const{outputSize:e}=await async function(t,e){const{options:n,config:r}=e,{transferStreams:o,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:f,computeCrc32:u,encrypted:d,format:h,codecURI:p}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;h&&(p&&(n.codecURI=((t,e)=>{try{return new l(t,e).toString()}catch{return t}})(p,r.baseURI)),await(async(t,e)=>{!jt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=K&&typeof r!=K)throw new w("Invalid codec module");jt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(h,n.codecURI)),e.transferStreams=!h&&(o||o===_&&r.transferStreams);const v=!(c||f||u||d),k=h===_||!!n.codecURI;return e.useWebWorkers=!v&&k&&(a||a===_&&r.useWebWorkers),e.workerURI=e.useWebWorkers&&m?m:_,e.createWorker=e.useWebWorkers&&y?y:_,n.useCompressionStream=i||i===_&&r.useCompressionStream,(await(async()=>{const n=zn.find(t=>!t.bt);if(n)return In(n),new kn(n,t,e,S);if(zn.length<b){const n={Zt:Cn};return Cn++,zn.push(n),new kn(n,t,e,S)}return new g(n=>{Rn.push({resolve:n,stream:t,Ft:e}),Fn=r.workerStarvationTimeout,An()})})()).run();function S(t){if(Tn(),Rn.length){const[{resolve:e,stream:n,Ft:r}]=Rn.splice(0,1);e(new kn(t,n,r,S)),An()}else t.kt?(In(t),((t,e)=>{const{config:n}=e,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(t.Rt?t.Rt=!1:t.Ct=T(async()=>{zn=zn.filter(e=>e!=t);try{await t.terminate()}catch{}},r))})(t,e)):zn=zn.filter(e=>e!=t)}}({readable:at,writable:St},kt);if(t.size+=e,e!=mt)throw new w(nn)}}catch(e){if(e.outputSize!==_&&(t.size+=e.outputSize),!ft||e.message!=pe)throw xt=e,e}finally{const e=!(t=>!(!t||!t.getData))(t)&&Ds(o,r,"preventClose");if(!e&&St&&!St.locked){const t=St.getWriter();if(xt)try{await t.abort(xt)}catch{}else await t.close()}}return ft||lt?_:t.getData?t.getData():St}}function rs(t){const e=a.min(t.byteLength,1024)-3;for(let n=0;e>n;n++)if(134630224==Es(t,n))return!0;return!1}function ss(t,e,n){let r=0;for(;n+46<=e.length&&Es(t,n)==L;)n+=46+Us(t,n+28)+Us(t,n+30)+Us(t,n+32),r++;return r%65536?0:r}function os(t){if(t.length>=6){const e=ae(t);if(84233040==Es(e,0)){const n=Us(e,4);if(6+n<=t.length)return t.subarray(6,6+n)}}}function as(t,e,r){const s=t.rawBitFlag=Us(e,r+2),o=!(1&~s),a=Es(e,r+6);n.assign(t,{encrypted:o,version:Us(e,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:!(2048&~s)},rawLastModDate:a,lastModDate:Cs(a),filenameLength:Us(e,r+22),extraFieldLength:Us(e,r+24)})}function is(t,e,r,s,o){const{rawExtraField:a}=e,f=e.extraField=new c,u=ae(a);let l=0,d=!1;try{for(;l<a.length;){const t=Us(u,l),e=Us(u,l+2);f.set(t,{type:t,data:a.slice(l+4,l+4+e)}),l+=4+e}}catch{d=!0}l>a.length&&(d=!0);const h=Us(r,s+4);n.assign(e,{signature:Es(r,s+10),crc32:Es(r,s+10),compressedSize:Es(r,s+14),uncompressedSize:Es(r,s+18)});const p=f.get(1);p&&(((t,e)=>{e.zip64=!0;const n=ae(t.data),r=$r.filter(([t,n])=>e[t]==n),s=r.reduce((t,[,e])=>t+ts[e].bytes,0);if(t.data.length<s)throw new w("Zip64 extra field not found");for(let s=0,o=0;s<r.length;s++){const[a,i]=r[s],c=ts[i];e[a]=t[a]=c.Pt(n,o),o+=c.bytes}})(p,e),e.extraFieldZip64=p);const m=f.get(28789);m&&(cs(m,Rr,Dr,e,t),e.extraFieldUnicodePath=m);const y=f.get(25461);y&&(cs(y,Fr,Cr,e,t),e.extraFieldUnicodeComment=y);const g=f.get(39169);g&&g.data.length>=7?(((t,e,r)=>{const s=ae(t.data),o=Ts(s,4);n.assign(t,{vendorVersion:Ts(s,0),vendorId:Ts(s,2),strength:o,originalCompressionMethod:r,compressionMethod:Us(s,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=_)})(g,e,h),e.extraFieldAES=g):e.compressionMethod=h;const b=f.get(13);b&&(fs(b,e),e.extraFieldPkwareUnix=b);const v=f.get(22613);v&&(fs(v,e),e.extraFieldUnixType1=v);const k=f.get(10);k&&(((t,e)=>{const r=ae(t.data);let s,o=4;try{for(;o<t.data.length&&!s;){const e=Us(r,o),n=Us(r,o+2);1==e&&(s=t.data.slice(o+4,o+4+n)),o+=4+n}}catch{}if(s&&24==s.length){const r=ae(s),o=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:As(o),lastAccessDate:As(a),creationDate:As(i)};n.assign(t,c),n.assign(e,c,{rawLastAccessDate:a,rawCreationDate:i})}})(k,e),e.extraFieldNTFS=k);const S=f.get(30805);let x;if(S&&(x=us(S,e,!1),e.extraFieldUnix=S),!x){const t=f.get(30837);t&&(us(t,e,!0),e.extraFieldInfoZip=t)}const z=f.get(21589);z&&(((t,e,n)=>{if(!t.data.length)return;const r=ae(t.data),s=Ts(r,0),o=[],a=[];n?(1&~s||(o.push(Ir),a.push(Wr)),2&~s||(o.push(Mr),a.push(Or)),4&~s||(o.push(Lr),a.push(Pr))):5>t.data.length||(o.push(Ir),a.push(Wr));let c=1;o.forEach((n,s)=>{if(t.data.length>=c+4){const o=Es(r,c);e[n]=t[n]=new i(1e3*(0|o));const f=a[s];t[f]=o}c+=4})})(z,e,o),e.extraFieldExtendedTimestamp=z);const R=f.get(6534);return R&&(e.extraFieldUSDZ=R),d}function cs(t,e,r,s,o){if(5>t.data.length)return void(t.valid=!1);const a=ae(t.data),i=new re;i.append(o[r]);const c=ae(new d(4));c.setUint32(0,i.get(),!0);const f=Es(a,1),u=Ts(a,0);n.assign(t,{version:u,[e]:Mn(t.data.subarray(5)),valid:1==u&&!o.bitFlag.languageEncodingFlag&&f==Es(c,0)}),t.valid&&(s[e]=t[e],s[e+"UTF8"]=!0)}function fs(t,e){if(8>t.data.length)return;const r=ae(t.data),s={lastAccessDate:new i(1e3*(0|Es(r,0))),lastModDate:new i(1e3*(0|Es(r,4)))};12>t.data.length||(s.uid=Us(r,8),s.gid=Us(r,10)),n.assign(t,s),n.assign(e,s)}function us(t,e,r){try{const s=ae(t.data);let o,a;if(r){let e=0;const r=Ts(s,e++),i=Ts(s,e++);o=ls(t.data.subarray(e,e+i)),e+=i;const c=Ts(s,e++);a=ls(t.data.subarray(e,e+c)),n.assign(t,{version:r,uid:o,gid:a})}else 4>t.data.length||(o=Us(s,0),a=Us(s,2),n.assign(t,{uid:o,gid:a}));return o!==_&&(e.uid=o),a!==_&&(e.gid=a),o!==_||a!==_}catch{}}function ls(t){const e=new d(4);return e.set(t,0),new m(e.buffer,e.byteOffset,4).getUint32(0,!0)}function ws(t,e,n){const r=Es(t,e);let s,o;return n?(s=Is(t,e+4),o=Is(t,e+12)):(s=Es(t,e+4),o=Es(t,e+8)),{crc32:r,compressedSize:s,uncompressedSize:o}}function ds(t,e){return t.Lt?t.Lt(e):0}async function hs(t){return Es(ae(await zr(t,0,4)))}function ps(t){return t===J||t===Q||t===Y}function ms(t,e){return ys(t,ys(e,Q))}function ys(t,e){const n=t.strictness;if(n!==_){if(!ps(n))throw new w("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=t.checkAmbiguity;return r===_?e:r?J:e==Y?Y:Q}function gs(t,e){if(e==Y)return!1;const n=t.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(n.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||Jr.test(t))||e==J&&(n.includes(".")||n.includes(""))}async function*bs(t,e){const n=t.size-e,r=await zr(t,n,e),s=ae(r);for(let t=r.length-H;t>=0;t--)101010256==Es(s,t)&&(yield[s,n,r,t,n+t])}function vs(t,e,n){return{offset:n,buffer:t.slice(e,e+H).buffer}}async function ks(t,e,n,r,s,o,a){const i=Us(e,r+10),c=Es(e,r+12),f=Es(e,r+16);if(i==I||c==E||f==E)return await Ss(t,e,n,s-V,o,a)==B?2:0;if(!i&&!c)return 1;const u=Us(e,r+6);for(const r of[s-c,ds(t,u)+f])if(await Ss(t,e,n,r,o,a)==L)return 2;return 0}async function Ss(t,e,n,r,s,o){return 0>r||r+4>s?_:n>r?o.count>0?(o.count--,Es(ae(await zr(t,r,4)),0)):_:Es(e,r-n)}function xs(t,e,n){t?Rs(n):zs(e,n)}function zs(t,e,n){if(!t.some(t=>t.reason==e)){const r={reason:e};n!==_&&(r.filename=n),t.push(r)}}function Rs(t){const e=new w("Ambiguous archive");throw e.reason=t,e}function Ds(t,e,n){return e[n]===_?t.options[n]:e[n]}function Fs(t,e,n){return $(Ds(t,e,n))}function Cs(t){const e=(4294901760&t)>>16,n=t&I,r=new i(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function As(t){return new i(s(t/o(1e4)-o(116444736e5)))}function Ts(t,e){return t.getUint8(e)}function Us(t,e){return t.getUint16(e,!0)}function Es(t,e){return t.getUint32(e,!0)}function Is(t,e){const n=t.getBigUint64(e,!0);if(n>es)throw new w("64-bit value exceeds Number.MAX_SAFE_INTEGER");return s(n)}(t=>{const e=lt(dt(t));n.assign(nt,e),n.assign(it,e)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Nt{constructor(t){(t=>{if("deflate-raw"!=t)throw new TypeError("Unsupported compression format: "+t)})(t),super(new Zt)}}}),t.BlobReader=Yn,t.BlobWriter=$n,t.Data64URIWriter=class extends Xn{constructor(t){super(),n.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",qt:""})}writeUint8Array(t){const e=this;let n,s=e.qt;const o=e.qt.length;for(e.qt="",n=0;n<3*a.floor((o+t.length)/3)-o;n++)s+=r.fromCharCode(t[n]);for(;n<t.length;n++)e.qt+=r.fromCharCode(t[n]);s.length>2?e.data+=S(s):e.qt=s+e.qt}getData(){return this.data+S(this.qt)}},t.HttpRangeReader=class extends yr{constructor(t,e={}){super(t,n.assign({},e,{useRangeHeader:!0}))}},t.TextWriter=class extends $n{constructor(t){super(),n.assign(this,{encoding:t,Nt:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,Nt:e}=this,n=await super.getData();return n.text&&e?n.text():((t,e)=>On(t,e,!1))(new d(await n.arrayBuffer()),t)}},t.ZipReader=class{constructor(t,e={}){n.assign(this,{reader:new vr(t),options:e,Vt:new c})}async*getEntriesGenerator(t={}){const e=this;let{reader:r}=e;if(await Sr(r),r.size!==_&&r.readUint8Array||(r=new Yn(await tn(r.readable)),await Sr(r)),r.size<H)throw new w(Vr);const o=e.warnings=[],i=ms(t,e.options),c=i==J,u=i!=Y,l=((t,e)=>{if(t!==_){const e=tt(t);if("number"!=typeof e||s.isNaN(e)||0>e)throw new w("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return e}return e==J?0:e==Y?1/0:I})(Ds(e,t,"maxAppendedDataSize"),i),d=((t,e)=>{if(t===_)return e;if(!ps(t))throw new w("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return t})(Ds(e,t,"filenameValidation"),i),h=Ds(e,t,"normalizeFilename"),{_t:p,jt:m}=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,65557),o={count:64};let i,c,f=0;for await(const[n,a,u,l,w]of bs(t,s)){const s=Us(n,l+20);if(w+H+s==r){const s=await ks(t,n,a,l,w,r,o);if(2==s){if(i||(i=vs(u,l,w)),f++,!e||f>1)break}else 1!=s||c||(c=vs(u,l,w))}}return i||(i=c),i||(i=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,e==1/0?r:65557+e);let o,i;for await(const[e,a,c,f,u]of bs(t,s)){const s=vs(c,f,u);o||(o=s);const l=await ks(t,e,a,f,u,r,n);if(2==l)return s;1!=l||i||(i=s)}return i||o})(t,n,o)),{_t:i,jt:f}})(r,u,l);if(!p)throw await(async t=>await hs(t)==M)(r)?new w(Nr):new w("End of central directory not found");u&&m>1&&Rs("multiple end of central directory records");const y=ae(p);let g=Es(y,12),b=Es(y,16);const v=p.offset,k=Us(y,20),S=v+H+k,z=r.size-S;z>l&&Rs(Kr),z>0&&zs(o,Kr);let R=Us(y,4);const D=r.Mt||0;let F,C,A,T,U=Us(y,6),O=Us(y,10),N=0,j=Z;const K=b==E||g==E||O==I||U==I;if(b!=E&&U!=I&&(b+=ds(r,U)),K){const t=p.offset<V?X:await zr(r,p.offset-V,V),e=ae(t);if(t.length==V&&Es(e,0)==B){b=ds(r,Es(e,4))+Is(e,8);let t=await zr(r,b,Z),s=ae(t);const i=p.offset-V-Z;if((t.length<Z||Es(s,0)!=P)&&b!=i&&i>=0){const e=b;b=i,b>e&&(N=b-e),t=await zr(r,b,Z),s=ae(t)}if(t.length<Z||Es(s,0)!=P)throw new w("End of Zip64 central directory locator not found");if(C=!0,A=Is(s,4)>44,A){const t=a.min(Is(s,4)-44,r.size-b-Z);t>0&&(j+=t,T=(t=>{const e={rawExtensibleData:t};if(t.length>=28){const r=ae(t),s=Us(r,26);n.assign(e,{compressionMethod:Us(r,0),compressedSize:Is(r,2),uncompressedSize:Is(r,10),encryptionAlgorithm:Us(r,18),bitLength:Us(r,20),flags:Us(r,22),hashAlgorithm:Us(r,24),hashData:t.subarray(28,28+s)})}return e})(await zr(r,b+Z,t)))}R==I?R=Es(s,16):R!=Es(s,16)&&xs(c,o,Xr),U==I?U=Es(s,20):U!=Es(s,20)&&xs(c,o,Xr),O==I?O=Is(s,32):O!=Is(s,32)&&xs(c,o,Xr),g==E?g=Is(s,40):g!=Is(s,40)&&xs(c,o,Xr),b=ds(r,U)+Is(s,48)+N}}let G=g;const Q=p.offset-(C?j+V:0);if(b<r.size||(N=r.size-b-g-H,b=r.size-g-H),D!=R)throw new w(Nr);if(0>b)throw new w(Vr);let $=0,et=await zr(r,b,g),nt=ae(et);if(g){if(4>et.length)throw new w(Vr);const t=Q-g;if(b!=t&&U==R){let e=!(Es(nt,$)==L||T&&T.compressedSize||rs(nt));if(e||0>t||t+4>r.size||(e=Es(ae(await zr(r,t,4)),0)==L),e){const e=b;b=t,b>e&&(N+=b-e),et=await zr(r,b,g),nt=ae(et)}}}const rt=Q-b;if(g==rt||0>rt||U!=R||(g=rt,et=await zr(r,b,g),nt=ae(et)),0>b||b>=r.size)throw new w(Vr);e.directoryOffset=b,e.directoryLength=G;const st=Fs(e,t,"decryptCentralDirectory");let ot,at;if(st&&O&&et.length>=4&&Es(nt,0)!=L&&(A||rs(nt))){const t=((t,e,n)=>{const r=t&&t.compressedSize?t.compressedSize:e;return r>0&&n>=r?r:n})(T,G,et.length);at=et.subarray(t),et=await st(et.subarray(0,t),T),nt=ae(et),G=et.length,ot=!0}!T||ot||et.length>=4&&Es(nt,0)!=L||zs(o,"unknown zip64 extensible data"),F=b;const it=Ds(e,t,"filenameEncoding"),ct=Ds(e,t,"commentEncoding"),ft=new f;let ut,lt=-1;const wt=!c&&!C;!O&&wt&&(O=ss(nt,et,$),O&&zs(o,jr));for(let s=0;O>s;s++){const i=new ns(r,e.options);if($+46>et.length||Es(nt,$)!=L){if(0==s&&!ot&&(A||rs(nt)))throw new w("Encrypted central directory is not supported");throw new w("Central directory header not found")}as(i,nt,$+6);const c=!!i.bitFlag.languageEncodingFlag,f=$+46,u=f+i.filenameLength,l=u+i.extraFieldLength,p=Us(nt,$+4),m=!(p>>8),y=p>>8==3,g=et.subarray(f,u),b=Us(nt,$+32),v=l+b,k=et.subarray(l,v),S=c,z=c,R=Es(nt,$+38),D=R&W,C={readOnly:!!(1&D),hidden:!!(2&D),system:!!(4&D),directory:!!(16&D),archive:!!(32&D)},T=Es(nt,$+42),U=Fs(e,t,"decodeText")||Mn,E=S?Qr:it||Yr,M=z?Qr:ct||Yr;let P=U(g,E,"filename");if(P===_&&(P=Mn(g,E)),h){const t=h(P);t!==_&&(P=t)}if(gs(P,d)){const t=new w("Unsafe filename");throw t.filename=P,t}let B=U(k,M,"comment");B===_&&(B=Mn(k,M)),n.assign(i,{index:s,Bt:ot,versionMadeBy:p,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,Kt:b,offset:T,diskNumberStart:Us(nt,$+34),internalFileAttributes:Us(nt,$+36),externalFileAttributes:R,msdosAttributesRaw:D,msdosAttributes:C,rawFilename:g,filenameUTF8:S,commentUTF8:z,rawExtraField:et.subarray(u,l),rawComment:k,filename:P,comment:B}),is(i,i,nt,$+6)&&zs(o,_r,P),i.offset+=N;const H=ds(r,i.diskNumberStart)+i.offset;F=a.min(H,F),lt>H&&zs(o,"unsorted central directory",P),lt=H,(i.version&W)>63&&zs(o,"unknown version needed to extract",P),32&~i.rawBitFlag||zs(o,"compressed patched data",P),ft.has(i.filename)&&(ut=!0),ft.add(i.filename);const V=i.externalFileAttributes>>16&I;i.unixMode===_&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),j=!!(1024&i.unixMode),K=!!(512&i.unixMode),G=40960==((i.unixMode===_?V:i.unixMode)&q),X=!G&&(i.unixMode!==_?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==_&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:j,sticky:K,symlink:G,unixExternalUpper:V,internalFileAttribute:i.internalFileAttributes,externalFileAttribute:i.externalFileAttributes,executable:X,directory:J||Q||m&&C.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new Hr(i);if(Y.getData=(t,n)=>i.getData(t,Y,e.Vt,n),Y.arrayBuffer=async t=>{const n=new x,r=tn(n.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await i.getData(n,Y,e.Vt,t),r},$=v,s==O-1&&wt){const t=ss(nt,et,$);t&&(O+=t,zs(o,jr))}const{onprogress:tt}=t;if(tt)try{await tt(s+1,O,new Hr(i))}catch{}yield Y}let dt=$,ht=os(et.subarray($))||(ot?os(at):_);if(!ht&&!ot){const t=b+$,e=a.min(Q-t,65541);6>e||(ht=os(await zr(r,t,e)))}ht&&(e.digitalSignature=ht,dt=$+6+ht.length),($!=G&&dt!=G||!ot&&$!=g&&dt!=g)&&xs(c,o,"trailing central directory data"),ut&&xs(c,o,"duplicate filename");const pt=Ds(e,t,"extractPrependedData"),mt=Ds(e,t,"extractAppendedData"),yt=(c||pt)&&O&&4==F&&await(async t=>{const e=await hs(t);return e==M||808471376==e})(r)?4:0;return c&&(N||O&&F>yt)&&Rs(Gr),(N||O&&F>4)&&zs(o,Gr),pt&&(e.prependedData=F>yt?await zr(r,yt,F-yt):X),e.comment=k?await zr(r,v+H,k):X,mt&&(e.appendedData=S<r.size?await zr(r,S,r.size-S):X),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}},t.configure=t=>{n.assign(it,lt(dt(t)))},t.inflateRaw=(t,e)=>Ht(t,{i:2},e&&e.Gt,e&&e.m)});
1
+ ((t,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})})(this,function(t){"use strict";const{Array:e,Object:n,String:r,Number:s,BigInt:o,Math:a,Date:i,Map:c,Set:u,Response:f,URL:l,Error:w,Uint8Array:d,Uint16Array:h,Uint32Array:p,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:S,btoa:k,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:F,navigator:C,Worker:A,setTimeout:T,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:this||self,E=4294967295,I=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,B=117853008,H=22,V=20,Z=56,q=61440,N=new i(1980,0,1),_=void 0,j="undefined",K="function",G="string",X=new d,J="strict",Q="balanced",Y="tolerant";function $(t){if(t&&typeof t!=K)throw new w("Invalid option (must be a function)");return t}function tt(t){return typeof t==G&&t.trim()?s(t):t}let et=2;try{typeof C!=j&&C.hardwareConcurrency&&(et=C.hardwareConcurrency)}catch{}const nt={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:et,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=j&&D,DecompressionStream:typeof F!=j&&F},rt="maxWorkers",st=["chunkSize",rt,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ot=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],at=["baseURI","wasmURI","workerURI","useCompressionStream","useWebWorkers","transferStreams",...st,...ot],it={...nt};function ct(){return it}function ut(t){return ft(t.chunkSize)}function ft(t){return t=tt(t),s.isInteger(t)&&t>=1?a.max(t,64):65536}function lt(t){const e={};for(const n of at){const r=t[n];r!==_&&(e[n]=wt(n,r))}return e}function wt(t,e){if(st.includes(t)){if(e=tt(e),t==rt&&(!s.isInteger(e)||1>e))throw new w("Invalid maxWorkers (must be an integer greater than 0)")}else ot.includes(t)&&$(e);return e}function dt(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===_&&r===_)return t;const s=n.assign({},t);return s.CompressionStreamFallback===_&&(s.CompressionStreamFallback=e),s.DecompressionStreamFallback===_&&(s.DecompressionStreamFallback=r),s}var ht=d,pt=h,mt=Int32Array,yt=new ht([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),gt=new ht([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),bt=new ht([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),vt=(t,e)=>{for(var n=new pt(31),r=0;31>r;++r)n[r]=e+=1<<t[r-1];var s=new mt(n[30]);for(r=1;30>r;++r)for(var o=n[r];o<n[r+1];++o)s[o]=o-n[r]<<5|r;return{b:n,r:s}},St=vt(yt,2),kt=St.b,xt=St.r;kt[28]=258,xt[258]=28;for(var zt=vt(gt,0).b,Rt=new pt(32768),Dt=0;32768>Dt;++Dt){var Ft=(43690&Dt)>>1|(21845&Dt)<<1;Ft=(61680&(Ft=(52428&Ft)>>2|(13107&Ft)<<2))>>4|(3855&Ft)<<4,Rt[Dt]=((65280&Ft)>>8|(255&Ft)<<8)>>1}var Ct=(t,e,n)=>{for(var r=t.length,s=0,o=new pt(e);r>s;++s)t[s]&&++o[t[s]-1];var a,i=new pt(e);for(s=1;e>s;++s)i[s]=i[s-1]+o[s-1]<<1;if(n){a=new pt(1<<e);var c=15-e;for(s=0;r>s;++s)if(t[s])for(var u=s<<4|t[s],f=e-t[s],l=i[t[s]-1]++<<f,w=l|(1<<f)-1;w>=l;++l)a[Rt[l]>>c]=u}else for(a=new pt(r),s=0;r>s;++s)t[s]&&(a[s]=Rt[i[t[s]-1]++]>>15-t[s]);return a},At=new ht(288);for(Dt=0;144>Dt;++Dt)At[Dt]=8;for(Dt=144;256>Dt;++Dt)At[Dt]=9;for(Dt=256;280>Dt;++Dt)At[Dt]=7;for(Dt=280;288>Dt;++Dt)At[Dt]=8;var Tt=new ht(32);for(Dt=0;32>Dt;++Dt)Tt[Dt]=5;var Ut=Ct(At,9,1),Et=Ct(Tt,5,1),It=t=>{for(var e=t[0],n=1;n<t.length;++n)t[n]>e&&(e=t[n]);return e},Wt=(t,e,n)=>{var r=e/8|0;return(t[r]|t[r+1]<<8)>>(7&e)&n},Mt=(t,e)=>{var n=e/8|0;return(t[n]|t[n+1]<<8|t[n+2]<<16)>>(7&e)},Ot=t=>(t+7)/8|0,Lt=(t,e,n)=>((null==e||0>e)&&(e=0),(null==n||n>t.length)&&(n=t.length),new ht(t.subarray(e,n))),Pt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Bt=(t,e,n)=>{var r=new w(e||Pt[t]);if(r.code=t,w.captureStackTrace&&w.captureStackTrace(r,Bt),!n)throw r;return r},Ht=(t,e,n,r)=>{var s=t.length,o=r?r.length:0;if(!s||e.f&&!e.o)return n||new ht(0);var i=!n,c=i||2!=e.i,u=e.i;i&&(n=new ht(3*s));var f=t=>{var e=n.length;if(t>e){var r=new ht(a.max(2*e,t));r.set(n),n=r}},l=e.f||0,w=e.p||0,d=e.b||0,h=e.o,p=e.d,m=e.l,y=e.n,g=8*s;do{if(!h){l=Wt(t,w,1);var b=Wt(t,w+1,3);if(w+=3,!b){var v=t[(U=Ot(w)+4)-4]|t[U-3]<<8,S=U+v;if(S>s){u&&Bt(0);break}c&&f(d+v),n.set(t.subarray(U,S),d),e.b=d+=v,e.p=w=8*S,e.f=l;continue}if(1==b)h=Ut,p=Et,m=9,y=5;else if(2==b){var k=Wt(t,w,31)+257,x=Wt(t,w+10,15)+4,z=k+Wt(t,w+5,31)+1;w+=14;for(var R=new ht(z),D=new ht(19),F=0;x>F;++F)D[bt[F]]=Wt(t,w+3*F,7);w+=3*x;var C=It(D),A=(1<<C)-1,T=Ct(D,C,1);for(F=0;z>F;){var U,E=T[Wt(t,w,A)];if(w+=15&E,16>(U=E>>4))R[F++]=U;else{var I=0,W=0;for(16==U?(W=3+Wt(t,w,3),w+=2,I=R[F-1]):17==U?(W=3+Wt(t,w,7),w+=3):18==U&&(W=11+Wt(t,w,127),w+=7);W--;)R[F++]=I}}var M=R.subarray(0,k),O=R.subarray(k);m=It(M),y=It(O),h=Ct(M,m,1),p=Ct(O,y,1)}else Bt(1);if(w>g){u&&Bt(0);break}}c&&f(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,B=w;;B=w){var H=(I=h[Mt(t,w)&L])>>4;if((w+=15&I)>g){u&&Bt(0);break}if(I||Bt(2),256>H)n[d++]=H;else{if(256==H){B=w,h=null;break}var V=H-254;if(H>264){var Z=yt[F=H-257];V=Wt(t,w,(1<<Z)-1)+kt[F],w+=Z}var q=p[Mt(t,w)&P],N=q>>4;if(q||Bt(3),w+=15&q,O=zt[N],N>3&&(Z=gt[N],O+=Mt(t,w)&(1<<Z)-1,w+=Z),w>g){u&&Bt(0);break}c&&f(d+131072);var _=d+V;if(O>d){var j=o-O,K=a.min(O,_);for(0>j+d&&Bt(3);K>d;++d)n[d]=r[j+d]}for(;_>d;++d)n[d]=n[d-O]}}e.o=h,e.p=B,e.b=d,e.f=l,h&&(l=1,e.l=m,e.d=p,e.n=y)}while(!l);return d!=n.length&&i?Lt(n,0,d):n.subarray(0,d)},Vt=new ht(0),Zt=function(){function t(t,e){"function"==typeof t&&(e=t,t={}),this.h=e;var n=t&&t.m&&t.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ht(32768),this.p=new ht(0),n&&this.v.set(n)}return t.prototype.e=function(t){if(this.h||Bt(5),this.d&&Bt(4),this.p.length){if(t.length){var e=new ht(this.p.length+t.length);e.set(this.p),e.set(t,this.p.length),this.p=e}}else this.p=t},t.prototype.c=function(t){this.s.i=+(this.d=t||!1);var e=this.s.b,n=Ht(this.p,this.s,this.v);this.h(Lt(n,e,this.s.b),this.d),this.v=Lt(n,this.s.b-32768),this.s.b=this.v.length,this.p=Lt(this.p,this.s.p/8|0),this.s.p&=7},t.prototype.push=function(t,e){this.e(t),this.c(e)},t}(),qt=void 0!==v&&new v;try{qt.decode(Vt,{stream:!0})}catch(t){}class Nt extends x{constructor(t){super({start(e){t.h=t=>{t.length&&e.enqueue(t)}},transform(e){t.push(e)},flush(){t.push(new d(0),!0)}})}}const _t=new c,jt=new c;function Kt(t){return jt.get(t)}const Gt=[[],[],[],[],[],[],[],[]];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)e=1&e?e>>>1^3988292384:e>>>1;Gt[0][t]=e}for(let t=0;256>t;t++)for(let e=1;8>e;e++){const n=Gt[e-1][t];Gt[e][t]=n>>>8^Gt[0][255&n]}const[Xt,Jt,Qt,Yt,$t,te,ee,ne]=Gt;class re{constructor(t){this.S=t||-1}append(t){let e=0|this.S;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const s=new m(t.buffer,t.byteOffset,n),o=n-8;for(;o>=r;r+=8){const t=e^s.getInt32(r,!0),n=s.getInt32(r+4,!0);e=ne[255&t]^ee[t>>>8&255]^te[t>>>16&255]^$t[t>>>24&255]^Yt[255&n]^Qt[n>>>8&255]^Jt[n>>>16&255]^Xt[n>>>24&255]}}for(;n>r;r++)e=e>>>8^Xt[255&(e^t[r])];this.S=e}get(){return~this.S}}class se extends x{constructor(){let t;const e=new re;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function oe(t,e){const n=new d(t.length+e.length);return n.set(t),n.set(e,t.length),n}function ae(t){return new m(t.buffer,t.byteOffset,t.byteLength)}const ie={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=ie.R(n);return 32===r?t.concat(e):ie.D(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+ie.R(n)},F(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,a.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=ie.C(e,t[n-1]&2147483648>>e-1,1)),t},C:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,R:t=>a.round(t/1099511627776)||32,D(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,o=ie.R(s);return r.push(ie.C(e+o&31,e+o>32?n:r.pop(),1)),r}},ce={bytes:{A(t){const e=ie.bitLength(t)/8,n=new d(e);let r;for(let s=0;e>s;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},T(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(ie.C(8*(3&n),r)),e}}},ue=class{constructor(t){const e=this;e.blockSize=512,e.U=[1732584193,4023233417,2562383102,271733878,3285377520],e.I=[1518500249,1859775393,2400959708,3395469782],t?(e.W=t.W.slice(0),e.M=t.M.slice(0),e.O=t.O):e.reset()}reset(){const t=this;return t.W=t.U.slice(0),t.M=[],t.O=0,t}update(t){const e=this;"string"==typeof t&&(t=ce.L.T(t));const n=e.M=ie.concat(e.M,t),r=e.O,s=e.O=r+ie.bitLength(t);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const o=new p(n);let a=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);s>=t;t+=e.blockSize)e.P(o.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}B(){const t=this;let e=t.M;const n=t.W;e=ie.concat(e,[ie.C(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(a.floor(t.O/4294967296)),e.push(0|t.O);e.length;)t.P(e.splice(0,16));return t.reset(),n}H(t,e,n,r){return t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r}V(t,e){return e<<t|e>>>32-t}P(t){const n=this,r=n.W,s=e(80);for(let e=0;16>e;e++)s[e]=t[e];let o=r[0],i=r[1],c=r[2],u=r[3],f=r[4];for(let t=0;79>=t;t++){16>t||(s[t]=n.V(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=n.V(5,o)+n.H(t,i,c,u)+f+s[t]+n.I[a.floor(t/20)]|0;f=u,u=c,c=n.V(30,i),i=o,o=e}r[0]=r[0]+o|0,r[1]=r[1]+i|0,r[2]=r[2]+c|0,r[3]=r[3]+u|0,r[4]=r[4]+f|0}},fe={importKey:t=>new fe.Z(ce.bytes.T(t)),N(t,e,n,r){if(n=n||1e4,0>r||0>n)throw new w("invalid params to pbkdf2");const s=1+(r>>5)<<2;let o,a,i,c,u;const f=new ArrayBuffer(s),l=new m(f);let d=0;const h=ie;for(e=ce.bytes.T(e),u=1;(s||1)>d;u++){for(o=a=t.encrypt(h.concat(e,[u])),i=1;n>i;i++)for(a=t.encrypt(a),c=0;c<a.length;c++)o[c]^=a[c];for(i=0;(s||1)>d&&i<o.length;i++)l.setInt32(d,o[i]),d+=4}return f.slice(0,r/8)},Z:class{constructor(t){const e=this,n=e._=ue,r=[[],[]];e.j=[new n,new n];const s=e.j[0].blockSize/32;t.length>s&&(t=(new n).update(t).B());for(let e=0;s>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.j[0].update(r[0]),e.j[1].update(r[1]),e.K=new n(e.j[0])}reset(){const t=this;t.K=new t._(t.j[0]),t.G=!1}update(t){this.G=!0,this.K.update(t)}digest(){const t=this,e=t.K.B(),n=new t._(t.j[1]).update(e).B();return t.reset(),n}encrypt(t){if(this.G)throw new w("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},le=typeof S!=j&&typeof S.getRandomValues==K,we="Invalid password",de="Invalid signature",he=de,pe="zipjs-abort-check-password";function me(t){if(le)return S.getRandomValues(t);throw new w("Crypto API not supported")}const ye=16,ge={name:"PBKDF2"},be=n.assign({hash:{name:"HMAC"}},ge),ve=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ge),Se=["deriveBits"],ke=[8,12,16],xe=[16,24,32],ze=10,Re=[0,0,0,0],De=typeof S!=j,Fe=De&&S.subtle,Ce=De&&typeof Fe!=j,Ae=ce.bytes,Te=class{constructor(t){const e=this;e.X=[[[],[],[],[],[]],[[],[],[],[],[]]],e.X[0][0][0]||e.J();const n=e.X[0][4],r=e.X[1],s=t.length;let o,a,i,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(e.I=[a=t.slice(0),i=[]],o=s;4*s+28>o;o++){let t=a[o-1];(o%s===0||8===s&&o%s===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),a[o]=a[o-s]^t}for(let t=0;o;t++,o--){const e=a[3&t?o:o-4];i[t]=4>=o||4>t?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this.Y(t,0)}decrypt(t){return this.Y(t,1)}J(){const t=this.X[0],e=this.X[1],n=t[4],r=e[4],s=[],o=[];let a,i,c,u;for(let t=0;256>t;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let f=a=0;!n[f];f^=i||1,a=o[a]||1){let o=a^a<<1^a<<2^a<<3^a<<4;o=o>>8^255&o^99,n[f]=o,r[o]=f,u=s[c=s[i=s[f]]];let l=16843009*u^65537*c^257*i^16843008*f,w=257*s[o]^16843008*o;for(let n=0;4>n;n++)t[n][f]=w=w<<24^w>>>8,e[n][o]=l=l<<24^l>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}Y(t,e){if(4!==t.length)throw new w("invalid aes block size");const n=this.I[e],r=n.length/4-2,s=[0,0,0,0],o=this.X[e],a=o[0],i=o[1],c=o[2],u=o[3],f=o[4];let l,d,h,p=t[0]^n[0],m=t[e?3:1]^n[1],y=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;r>t;t++)l=a[p>>>24]^i[m>>16&255]^c[y>>8&255]^u[255&g]^n[b],d=a[m>>>24]^i[y>>16&255]^c[g>>8&255]^u[255&p]^n[b+1],h=a[y>>>24]^i[g>>16&255]^c[p>>8&255]^u[255&m]^n[b+2],g=a[g>>>24]^i[p>>16&255]^c[m>>8&255]^u[255&y]^n[b+3],b+=4,p=l,m=d,y=h;for(let t=0;4>t;t++)s[e?3&-t:t]=f[p>>>24]<<24^f[m>>16&255]<<16^f[y>>8&255]<<8^f[255&g]^n[b++],l=p,p=m,m=y,y=g,g=l;return s}},Ue=class{constructor(t,e){this.$=t,this.et=e,this.nt=e}reset(){this.nt=this.et}update(t){return this.st(this.$,t,this.nt)}ot(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}it(t){0===(t[0]=this.ot(t[0]))&&(t[1]=this.ot(t[1]))}st(t,e,n){let r;if(!(r=e.length))return[];const s=ie.bitLength(e);for(let s=0;r>s;s+=4){this.it(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return ie.F(e,s)}},Ee=fe.Z;let Ie=De&&Ce&&typeof Fe.importKey==K,We=De&&Ce&&typeof Fe.deriveBits==K;class Me extends x{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:o,ct:a,ready:i}=n;s?(await(async(t,e,n,r)=>{const s=await Be(t,e,n,Ve(r,0,ke[e])),o=Ve(r,ke[e]);if(s[0]!=o[0]||s[1]!=o[1])throw new w(we)})(n,o,s,Ve(t,0,ke[o]+2)),t=Ve(t,ke[o]+2),r?e.error(new w(pe)):a()):await i;const c=new d(t.length-ze-(t.length-ze)%ye);e.enqueue(Pe(n,t,c,0,ze,!0))},async flush(t){const{ut:e,ft:n,lt:r,ready:o}=this;if(n&&e){await o;const a=Ve(r,0,r.length-ze),i=Ve(r,r.length-ze);let c=X;if(a.length){const t=qe(Ae,a);n.update(t);const r=e.update(t);c=Ze(Ae,r)}const u=Ve(Ze(Ae,n.digest()),0,ze);let f=r.length<ze?1:0;for(let t=0;ze>t;t++)f|=u[t]^i[t];if(f&&s)throw new w(he);t.enqueue(c)}}})}}class Oe extends x{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){Le(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,ct:o,ready:a}=n;let i=X;r?(i=await(async(t,e,n)=>{const r=me(new d(ke[e]));return oe(r,await Be(t,e,n,r))})(n,s,r),o()):await a;const c=new d(i.length+t.length-t.length%ye);c.set(i,0),e.enqueue(Pe(n,t,c,i.length,0))},async flush(t){const{ut:e,ft:n,lt:r,ready:s}=this;if(n&&e){await s;let o=X;if(r.length){const t=e.update(qe(Ae,r));n.update(t),o=Ze(Ae,t)}const a=Ze(Ae,n.digest()).slice(0,ze);t.enqueue(oe(o,a))}}})}}function Le(t,e,r,s){n.assign(t,{ready:new g(e=>t.ct=e),password:He(e,r),strength:s-1,lt:X})}function Pe(t,e,n,r,s,o){const{ut:a,ft:i,lt:c}=t;c.length&&(e=oe(c,e));const u=e.length-s;let f;for(n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new d(e)).set(n,0)}return t})(n,r+(u-u%ye)),f=0;u-ye>=f;f+=ye){const t=qe(Ae,Ve(e,f,f+ye));o&&i.update(t);const s=a.update(t);o||i.update(s),n.set(Ze(Ae,s),f+r)}return t.lt=Ve(e,f),n}async function Be(t,r,s,o){t.password=null;const a=await(async(t,e,n,r,s)=>{if(!Ie)return fe.importKey(e);try{return await Fe.importKey("raw",e,n,!1,s)}catch{return Ie=!1,fe.importKey(e)}})(0,s,be,0,Se),i=await(async(t,e,n)=>{if(!We)return fe.N(e,t.salt,ve.iterations,n);try{return await Fe.deriveBits(t,e,n)}catch{return We=!1,fe.N(e,t.salt,ve.iterations,n)}})(n.assign({salt:o},ve),a,8*(2*xe[r]+2)),c=new d(i),u=qe(Ae,Ve(c,0,xe[r])),f=qe(Ae,Ve(c,xe[r],2*xe[r])),l=Ve(c,2*xe[r]);return n.assign(t,{keys:{key:u,wt:f,passwordVerification:l},ut:new Ue(new Te(u),e.from(Re)),ft:new Ee(f)}),l}function He(t,e){return e===_?(t=>{if(typeof b==j){const e=new d((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new b).encode(t)})(t):e}function Ve(t,e,n){return t.subarray(e,n)}function Ze(t,e){return t.A(e)}function qe(t,e){return t.T(e)}class Ne extends x{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=Ke(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new w(we);t=t.subarray(12)}r?e.error(new w(pe)):e.enqueue(Ke(n,t))}})}}class _e extends x{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){je(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=me(new d(12));e[11]=n.passwordVerification,r=new d(t.length+e.length),r.set(Ge(n,e),0),s=12}else r=new d(t.length),s=0;r.set(Ge(n,t),s),e.enqueue(r)}})}}function je(t,e,r,s){n.assign(t,{password:e,rawPassword:r,passwordVerification:s}),((t,e,r)=>{const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,ht:new re(s[0]),yt:new re(s[2])}),r)for(let e=0;e<r.length;e++)Xe(t,r[e]);else for(let n=0;n<e.length;n++)Xe(t,e.charCodeAt(n))})(t,e,r)}function Ke(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,n[r]);return n}function Ge(t,e){const n=new d(e.length);for(let r=0;r<e.length;r++)n[r]=Je(t)^e[r],Xe(t,e[r]);return n}function Xe(t,e){let[,n]=t.keys;t.ht.append([e]);const r=~t.ht.get();n=Ye(a.imul(Ye(n+Qe(r)),134775813)+1),t.yt.append([n>>>24]);const s=~t.yt.get();t.keys=[r,n,s]}function Je(t){const e=2|t.keys[2];return Qe(a.imul(e,1^e)>>>8)}function Qe(t){return 255&t}function Ye(t){return 4294967295&t}function $e(t){if(t instanceof z)return t;const e=t.getReader();return new z({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}function tn(t,e){t=$e(t);const n=e?{type:e}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new f(t).blob().then(t=>e?new y([t],n):t);const r=[];return t.pipeTo(new R({write(t){r.push(t)}})).then(()=>new y(r,n))}function en(t){if(t instanceof R)return t;const e=t.getWriter();return new R({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}const nn="Invalid uncompressed size",rn=de,sn="deflate-raw",on="gzip",an=[31,139,8];class cn extends x{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:u,deflate64:f,format:l,compressionMethod:w,inputSize:d}=t,h=this;let p,y,g,b=super.readable;const v=l&&Kt(l),S=c&&s&&!f&&!v&&(!o||i)&&!(!a||!r);if(o&&!i||!c||S||(p=new se,b=pn(b,p)),s)if(v)b=mn(b,dn(v.CompressionStream,l,{level:u,chunkSize:e,compressionMethod:w,uncompressedSize:d}));else if(S)g=new un,b=mn(b,new r(on)),b=pn(b,g);else try{b=hn(b,a,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(on)}catch{throw t}b=mn(b,e),b=pn(b,new un)}o&&(i?b=pn(b,new _e(t)):(y=new Oe(t),b=pn(b,y))),wn(h,b,()=>{o&&!i||!c||(h.crc32=S?g.crc32:new m(p.value.buffer).getUint32(0))})}}class un extends x{constructor(){let t,e=10,n=new d(0);super({transform(t,r){if(e){const n=a.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const s=n.length+t.length;if(8>=s)return void(n=oe(n,t));const o=s-8,i=a.min(o,n.length);r.enqueue(oe(n.subarray(0,i),t.subarray(0,o-i))),n=oe(n.subarray(i),t.subarray(o-i))},flush(){const e=ae(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class fn extends x{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:o,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:u,deflate64:f,format:l,compressionMethod:h,rawBitFlag:p,outputSize:y}=t;let b,v,S=super.readable;if(o&&(s?S=pn(S,new Ne(t)):(v=new Me(t),S=pn(S,v))),c){const t=l&&Kt(l);if(t)S=mn(S,dn(t.DecompressionStream,l,{chunkSize:e,compressionMethod:h,rawBitFlag:p,uncompressedSize:y}));else try{S=hn(S,u,{chunkSize:e,deflate64:f},r,n)}catch(t){if(f||y===_)throw t;let e;try{e=new r(on)}catch{throw t}S=((t,e,n)=>{const r=new re;let s,o,a,i=0,c=!1;const u=new g((t,e)=>{o=t,a=e});u.catch(()=>{}),n||o();const f=new x({start(t){const e=new d(10);e.set(an),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){c=!0,h();try{await u}finally{p()}const e=new d(8),s=ae(e);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),t.enqueue(e)},cancel(t){a(t)}}),l=new x({transform(t,e){r.append(t),i+=t.length,n>i?c&&h():o(),e.enqueue(t)},cancel(t){a(t)}});return t=pn(t,f),pn(t=mn(t,e),l);function h(){p(),s=T(()=>a(new w(nn)),5e3)}function p(){U(s)}})(S,e,y)}S=(t=>{const e=t.getReader();return new z({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new w("Invalid compressed data");throw e.cause=t,e}const{value:r,done:s}=n;s?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})})(S)}a&&(b=new se,S=pn(S,b)),wn(this,S,()=>{if(a){const t=new m(b.value.buffer);if(i!=t.getUint32(0,!1))throw new w(rn)}})}}const ln=new c;function wn(t,e,r){e=pn(e,new x({flush:r})),n.defineProperty(t,"readable",{get:()=>e})}function dn(t,e,n){if(!t)throw new w("Compression method not supported");return new t(e,n)}function hn(t,e,n,r,s){const o=e&&r?r:s||r,a=n.deflate64?"deflate64-raw":sn;let i;try{i=new o(a,n)}catch(t){if(!e||!s||o==s)throw t;i=new s(a,n)}return mn(t,i)}function pn(t,e){return $e(t).pipeThrough(e)}function mn(t,e){const n=e.writable.getWriter(),r=t.getReader();return(async()=>{try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await(async(t,e)=>{try{await t.abort(e)}catch{}})(n,t),await(async(t,e)=>{try{await t.cancel(e)}catch{}})(r,t)}})(),e.readable}const yn="deflate",gn="inflate";class bn extends x{constructor(t,e){super({});const r=this,{codecType:s}=t;let o;s.startsWith(yn)?o=cn:s.startsWith(gn)&&(o=fn),r.outputSize=0;let a=0;const i=new o(t,e),c=super.readable,u=new x({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){n.assign(r,{inputSize:a})}}),f=new x({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==_&&r.outputSize>t.outputSize))throw new w(nn)},flush(){const{crc32:t}=i;n.assign(r,{crc32:t,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(u).pipeThrough(i).pipeThrough(f)})}}class vn extends x{constructor(t){const e=[];let n=0;function r(){const r=new d(t);let s=0;for(;t>s;){const n=e[0],o=t-s;n.length>o?(r.set(n.subarray(0,o),s),e[0]=n.subarray(o),s+=o):(r.set(n,s),s+=n.length,e.shift())}return n-=t,r}s.isFinite(t)&&t>=1||(t=65536),super({transform(s,o){for(e.push(s),n+=s.length;n>t;)o.enqueue(r())},flush(t){n&&t.enqueue(((t,e)=>{const n=new d(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n})(e,n))}})}}class Sn{constructor(t,{readable:e,writable:r},{options:s,config:o,gt:a,useWebWorkers:i,transferStreams:u,workerURI:f,createWorker:l},w){const{signal:d}=a;return n.assign(t,{bt:!0,vt:(t.vt||0)+1,readable:e.pipeThrough(new vn(ut(o))).pipeThrough(new kn(a),{signal:d}),writable:r,options:n.assign({},s),workerURI:f,createWorker:l,transferStreams:u,terminate:()=>new g(e=>{const{St:n,bt:r}=t;n?(r?t.kt=e:(n.terminate(),e()),t.xt=null):e()}),zt(){if(t.bt){const{kt:e}=t;e&&(t.kt=null,t.Rt=!0,t.St.terminate(),e()),t.bt=!1,w(t)}}}),((t,e)=>({run:()=>(async({options:t,readable:e,writable:n,zt:r},s)=>{let o;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(yn),n=e?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=e?s.CompressionStream:s.DecompressionStream;if(t.useCompressionStream){if(n&&n.Dt&&!((t,e)=>{if(!t)return!1;let n=ln.get(t);n||(n=new c,ln.set(t,n));let r=n.get(e);if(r===_){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r})(r,sn))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.Dt||(t.useCompressionStream=!0)}}o=new bn(t,s),await e.pipeThrough(o).pipeThrough(new vn(ut(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:a,outputSize:i}=o;return{crc32:r,inputSize:a,outputSize:i}}catch(t){throw o&&(t.outputSize=o.outputSize),t}finally{r()}})(t,e)}))(t,o)}}class kn extends x{constructor({onstart:t,onprogress:e,size:n,onend:r}){let s=0;super({async start(){t&&await xn(t,n)},async transform(t,r){s+=t.length,e&&await xn(e,s,n),r.enqueue(t)},async flush(){r&&await xn(r,s)}})}}async function xn(t,...e){try{await t(...e)}catch{}}let zn=[];const Rn=[];let Dn,Fn,Cn=0;function An(){!Dn&&Rn.length&&s.isFinite(Fn)&&Fn>=0&&(Dn=T(Un,Fn))}function Tn(){Dn&&(U(Dn),Dn=null)}function Un(){if(Dn=null,Rn.length){const[{resolve:t,stream:e,Ft:r}]=Rn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:_,createWorker:_});t(new Sn({},e,s,En)),An()}}function En(){Tn(),An()}function In(t){const{Ct:e}=t;e&&(U(e),t.Ct=null)}const Wn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Mn(t,e){return On(t,e,!0)}function On(t,e,n){return e&&"cp437"==e.trim().toLowerCase()?(t=>{{let e="";for(let n=0;n<t.length;n++)e+=Wn[t[n]];return e}})(t):new v(e,{ignoreBOM:n}).decode(t)}const Ln="HTTP error ",Pn="HTTP Range not supported",Bn="HTTP resource changed",Hn="Content-Range",Vn="Range",Zn="GET",qn="bytes",Nn=16777216,_n="writable",jn=Symbol();class Kn{constructor(){this.size=0}init(){this.initialized=!0}}class Gn extends Kn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=ut(ct())}={}){const r=this;let s=0;return n=ft(n),new z({async pull(o){const i=e===_?n:a.min(n,e-s),c=await zr(r,t+s,i);c.length&&o.enqueue(c),s+n>=e||!c.length&&i?o.close():s+=n}})}}class Xn extends Kn{constructor(){super();const t=this,e=new R({write(e){if(!t.initialized)throw new w("Writer not initialized");return t.writeUint8Array((n=e).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(t,_n,{get:()=>e})}writeUint8Array(){}}let Jn,Qn;class Yn extends Gn{constructor(t){super(),n.assign(this,{At:t,size:t.size}),Qn||(Qn=(async()=>{try{const t=new y([new d(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();Jn=1==e}catch{Jn=!1}})())}createReadable(t){const{At:e,size:n}=this,{offset:r=0,size:s=n-r}=t||{};return r||n>s?Jn?$e(e.slice(r,r+s).stream()):super.createReadable(t):$e(e.stream())}async readUint8Array(t,e){const n=this,r=t+e,s=t||r<n.size?n.At.slice(t,r):n.At;let o=await s.arrayBuffer();return o.byteLength>e&&(o=o.slice(t,r)),new d(o)}}class $n extends Kn{constructor(t){super();const e=this,r=new x;n.defineProperty(e,_n,{get:()=>r.writable}),e.contentType=t,e.Tt=tn(r.readable,t),e.Tt.catch(()=>{})}getData(){return this.Tt}}class tr extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,pr,lr),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=e;if((n||r)&&o!==_){const{offset:n=0,size:r=o-n}=t||{};if(r>0&&o>n)return((t,e,n)=>{let r,o=e,i=0,c=n;return new z({start:()=>u(),async pull(t){r||await u();const{value:e,done:n}=await r.read();if(n)throw new w(Pn);const s=e.length>i?e.subarray(0,i):e;i-=s.length,c-=s.length,s.length&&t.enqueue(s),i||(await(async()=>{const t=r;r=_,await t.cancel()})(),c||t.close())},cancel:t=>r&&r.cancel(t)});async function u(){const e=a.min(t.maximumRangeSize,c),n=await pr(Zn,t,ur(t,o,e));if(206!=n.status)throw new w(Pn);const u=n.headers.get(Hn);if(u){const t=s(u.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=o)throw new w(Pn)}cr(t,n),ir(t,n),o+=e,i=e,r=n.body.getReader()}})(e,n,a.min(r,o-n))}return super.createReadable(t)}readUint8Array(t,e){return sr(this,t,e,pr,lr)}}class er extends Gn{constructor(t,e){super(),nr(this,t,e)}async init(){await rr(this,mr,wr),super.init()}readUint8Array(t,e){return sr(this,t,e,mr,wr)}}function nr(t,e,r){const{preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:u=Nn,fetch:f}=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(t,{url:e,options:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:u,fetch:f})}async function rr(t,e,n){const{url:r,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i}=t;if((t=>{const{baseURI:e}=ct(),{protocol:n}=new l(t,e);return"http:"==n||"https:"==n})(r)&&(o||a)&&(typeof s==j||s)){const r=await e(Zn,t,ur(t,i?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==qn))throw new w(Pn);{if(i){const e=new d(await r.arrayBuffer());206==r.status&&e.length==H&&(t.Ut=e)}ir(t,r);const s=or(r);s===_?await hr(t,e,n):t.size=s}}else await hr(t,e,n)}async function sr(t,e,n,r,o){const{useRangeHeader:a,forceRangeRequests:i,Ut:c,size:u,options:f}=t;if(a||i){if(c&&e==u-H&&n==H)return c;if(u>e&&0!==n){e+n>u&&(n=u-e);const o=await r(Zn,t,ur(t,e,n));if(206!=o.status)throw new w(Pn);const a=o.headers.get(Hn);if(a){const t=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(t)&&t!=e)throw new w(Pn)}cr(t,o),ir(t,o);const i=new d(await o.arrayBuffer());if(i.length!=n)throw new w(Pn);return i}return X}{const{data:r}=t;return r||await o(t,f),t.data.subarray(e,e+n)}}function or(t){const e=t.headers.get(Hn);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=s(t);if(!s.isNaN(e))return e}}}function ar({headers:t}){return{Et:t.get("Etag")||_,lastModified:t.get("Last-Modified")||_}}function ir(t,e){const{checkResourceChanges:n,It:r}=t;n&&!r&&206==e.status&&(t.It=ar(e))}function cr(t,e){const{checkResourceChanges:r,It:s,size:o}=t;if(r){const t=or(e);if(t!==_&&o!==_&&t!=o)throw new w(Bn);if(s){const t=ar(e);if(n.entries(s).some(([e,n])=>n!==_&&t[e]!==_&&n!=t[e]))throw new w(Bn)}}}function ur(t,e=0,r=1){return n.assign({},fr(t),{[Vn]:qn+"="+(0>e?e:e+"-"+(e+r-1))})}function fr({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?n.fromEntries(e):e}async function lr(t){await dr(t,pr)}async function wr(t){await dr(t,mr)}async function dr(t,e){const n=await e(Zn,t,fr(t));t.data=new d(await n.arrayBuffer()),t.size=t.data.length}async function hr(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const r=await e("HEAD",t,fr(t)),o=r.headers.get("Content-Length");o&&!r.headers.get("Content-Encoding")?t.size=s(o):await n(t,t.options)}}async function pr(t,{fetch:e=fetch,options:r,url:s},o){const a=await e(s,n.assign({},r,{method:t,headers:o}));if(400>a.status)return a;throw 416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status))}function mr(t,{url:e},r){return new g((s,o)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(t)})}else o(416==a.status?new w(Pn):new w(Ln+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>o(t.detail?t.detail.error:new w("Network error")),!1),a.open(t,e),r)for(const t of n.entries(r))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class yr extends Gn{constructor(t,e={}){super(),n.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new er(t,e):new tr(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class gr extends Gn{constructor(t){super(),this.Wt=t}async init(){const t=this;t.Mt=0;const e=t.Wt=await g.all(t.Wt.map(xr));t.Ot=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}Lt(t){const{Ot:e,size:n}=this,r=e[t];return r===_?n:r}async readUint8Array(t,e){const n=this,{Wt:r}=this;let s,o=0,i=t;for(;r[o]&&i>=r[o].size;)i-=r[o].size,o++;const c=r[o];if(c){const r=c.size;if(i+e>r){const o=r-i;s=oe(await zr(c,i,o),await n.readUint8Array(t+o,e-o))}else s=await zr(c,i,e)}else s=X;return n.Mt=a.max(o,n.Mt),s}}class br extends Kn{constructor(t,e=4294967295){super();const r=this;let s,o,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const i=new R({async write(e){if(e===jn)return void(a&&await u());const{availableSize:n}=r;if(a)e.length<n?await c(e):(await c(e.subarray(0,n)),await u(),e.length>n&&await this.write(e.subarray(n)));else{const{value:n,done:i}=await t.next();if(i&&!n)throw new w("Writer iterator completed too soon");s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await kr(s),o=n.writable,a=o.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await f())},async abort(t){a&&await a.abort(t)}});async function c(t){const e=t.length;e&&(await a.ready,await a.write(t),s.size+=e,r.availableSize-=e)}async function u(){await f(),r.diskOffset+=s.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function f(){await a.close()}n.defineProperty(r,_n,{get:()=>i})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(jn)}finally{t.releaseLock()}}}class vr{constructor(t){return e.isArray(t)&&(t=new gr(t)),(t instanceof z||typeof t.getReader==K)&&(t={readable:$e(t)}),t}}class Sr{constructor(t){return t.writable===_&&typeof t.next==K&&(t=new br(t)),(t instanceof R||typeof t.getWriter==K)&&(t={writable:en(t)}),t.size===_&&(t.size=0),t}}async function kr(t,e){if(!t.init||t.initialized)return g.resolve();await t.init(e)}async function xr(t){return t=new vr(t),await kr(t),t.size!==_&&t.readUint8Array||(t=new Yn(await tn(t.readable)),await kr(t)),t}function zr(t,e,n){return t.readUint8Array(e,n)}const Rr="filename",Dr="rawFilename",Fr="comment",Cr="rawComment",Ar="uncompressedSize",Tr="compressedSize",Ur="offset",Er="diskNumberStart",Ir="lastModDate",Wr="rawLastModDate",Mr="lastAccessDate",Or="rawLastAccessDate",Lr="creationDate",Pr="rawCreationDate",Br=[Rr,Dr,Ar,Tr,Ir,Wr,Fr,Cr,Mr,Or,Lr,Pr,Ur,Er,"internalFileAttributes","externalFileAttributes","internalFileAttribute","externalFileAttribute","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Hr{constructor(t){Br.forEach(e=>this[e]=t[e])}}const Vr="File format is not recognized",Zr="Encryption method not supported",qr="Compression method not supported",Nr="Split zip file",_r="malformed extra field",jr="wrapped entries count",Kr="appended data",Gr="prepended data",Xr="mismatched zip64 end of central directory record",Jr=/^[a-zA-Z]:/,Qr="utf-8",Yr="cp437",$r=[[Ar,E],[Tr,E],[Ur,E],[Er,I]],ts={[I]:{Pt:Es,bytes:4},[E]:{Pt:Is,bytes:8}},es=o(s.MAX_SAFE_INTEGER);class ns{constructor(t,e){n.assign(this,{reader:t,options:e})}async getData(t,e,n,r={}){const o=this,i=ct(),{reader:c,index:u,offset:f,diskNumberStart:h,extraFieldAES:p,extraFieldZip64:m,compressionMethod:y,bitFlag:b,rawBitFlag:v,crc32:S,rawLastModDate:k,uncompressedSize:x,compressedSize:z}=o,{dataDescriptor:D}=b,F=e.localDirectory={},C=e.warnings=[],A=ds(c,h)+f,U=await zr(c,A,30),E=ae(U);let I=Ds(o,r,"password"),M=Ds(o,r,"rawPassword");const L=Ds(o,r,"passThrough");if(((t,e)=>{if(t&&typeof t!=G||e&&!(e instanceof d))throw new w("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(I,M),I=I&&I.length&&I,M=M&&M.length&&M,p&&99!=p.originalCompressionMethod)throw new w(qr);if(30>U.length||67324752!=Es(E,0))throw new w("Local file header not found");as(F,E,4);const{extraFieldLength:P,filenameLength:B}=F,H=F.dataOffset=A+30+B+P,V=Ds(o,r,"checkLocalDirectory"),Z=ms(r,o.options),q=((t,e)=>t===_?e!=Y:!!t)(V,Z),N=((t,e)=>t===_?e==J:!!t)(V,Z);let j=X;if(N&&(B||P)){const t=await zr(c,A+30,B+P);j=t.subarray(0,B),F.rawExtraField=t.subarray(B)}else F.rawExtraField=P?await zr(c,A+30+B,P):X;N&&(F.rawFilename=j),is(o,F,E,4,!0)&&zs(C,_r),((t,e,n,r,s)=>{const{rawFilename:o}=t,a=!s,i=t.Bt&&!(8192&~e.rawBitFlag);!r||i||n.length==o.length&&!n.some((t,e)=>t!=o[e])||xs(a,s,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&xs(a,s,"mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&xs(a,s,"mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||i||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||xs(a,s,"mismatched local file header (crc32 or sizes)")})(o,F,j,N,q?_:C);const{lastAccessDate:Q,creationDate:$,uid:tt,gid:et}=F;Q&&(e.lastAccessDate=Q),$&&(e.creationDate=$),tt!==_&&e.uid===_&&(e.uid=tt),et!==_&&e.gid===_&&(e.gid=et);const nt=o.encrypted&&F.encrypted&&!L,rt=nt&&!p;if(L||(e.zipCrypto=rt),nt&&!(64&~F.rawBitFlag))throw new w(Zr);const st=L?_:(t=>_t.get(t))(y);if(0!=y&&8!=y&&9!=y&&!st&&!L)throw new w(qr);if(nt){if(!rt&&(1>p.strength||p.strength>3))throw new w(Zr);if(!I&&!M)throw new w("File contains encrypted entry")}if(H+z>c.size)throw new w("Entry data out of bounds");const ot=z,at=$e(c.createReadable({offset:H,size:ot})),it=(t=>{if(t&&(typeof t.addEventListener!=K||"boolean"!=typeof t.aborted))throw new w("Invalid signal (must be an AbortSignal instance)");return t||_})(Ds(o,r,"signal")),ut=Ds(o,r,"checkPasswordOnly");let ft=Ds(o,r,"checkOverlappingEntry");const lt=Ds(o,r,"checkOverlappingEntryOnly");lt&&(ft=!0);const{onstart:wt,onprogress:dt,onend:ht}=r,pt=0!=y&&!L,mt=L?z:x,yt=9==y;let gt=Ds(o,r,"useCompressionStream");yt&&(gt=!1);const bt=Ds(o,r,"checkCrc32"),vt=(bt===_?Ds(o,r,"checkSignature"):bt)&&!L&&(!nt||rt||p&&1==p.vendorVersion),St={options:{codecType:gn,password:I,rawPassword:M,zipCrypto:rt,encryptionStrength:p&&p.strength,checkCrc32:vt,checkAuthenticationCode:Ds(o,r,"checkAuthenticationCode"),passwordVerification:rt&&(D?k>>>8&W:S>>>24&W),outputSize:mt,crc32:S,compressed:pt,encrypted:nt,useWebWorkers:Ds(o,r,"useWebWorkers"),useCompressionStream:gt,transferStreams:Ds(o,r,"transferStreams"),deflate64:yt,format:st?st.format:_,codecURI:st?st.codecURI:_,compressionMethod:y,rawBitFlag:v,checkPasswordOnly:ut},config:i,gt:{signal:it,size:ot,onstart:wt,onprogress:dt,onend:ht}};let kt,xt;ft&&await(async({reader:t,Ht:e,index:n,offset:r,crc32:s,compressedSize:o,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:u,Vt:f})=>{let l=0;if(c&&(l=u?20:12),l){const n=await zr(t,i+o,l+4),r=ae(n);let c=n.length==l+4&&Es(r,0)==O;if(c){const t=ws(r,4,u);(e.encrypted&&!e.zipCrypto||t.crc32==s)&&t.compressedSize==o&&t.uncompressedSize==a?l+=4:c=!1}if(n.length>=l){const t=ws(r,c?4:0,u);t.signature=c,e.localDirectory.dataDescriptor=t}}const d={start:r,end:i+o+l,Ht:e};for(const[t,e]of f)if(t!=n&&d.start<e.end&&e.start<d.end){const t=new w("Overlapping entry found");throw t.overlappingEntry=e.Ht,t}f.set(n,d)})({reader:c,Ht:e,index:u,offset:A,crc32:S,compressedSize:z,uncompressedSize:x,dataOffset:H,dataDescriptor:D||F.bitFlag.dataDescriptor,extraFieldZip64:m||F.extraFieldZip64,Vt:n});try{if(!lt){ut&&(t=new R),t=new Sr(t),await kr(t,((t,e,n)=>a.min(t,n?1032*e:e))(mt,z,pt)),({writable:kt}=t);const{outputSize:e}=await async function(t,e){const{options:n,config:r}=e,{transferStreams:o,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:u,computeCrc32:f,encrypted:d,format:h,codecURI:p}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;h&&(p&&(n.codecURI=((t,e)=>{try{return new l(t,e).toString()}catch{return t}})(p,r.baseURI)),await(async(t,e)=>{!jt.has(t)&&e&&((t,e)=>{const{CompressionStream:n,DecompressionStream:r}=e;if(typeof n!=K&&typeof r!=K)throw new w("Invalid codec module");jt.set(t,{CompressionStream:n,DecompressionStream:r})})(t,await(import(e)))})(h,n.codecURI)),e.transferStreams=!h&&(o||o===_&&r.transferStreams);const v=!(c||u||f||d),S=h===_||!!n.codecURI;return e.useWebWorkers=!v&&S&&(a||a===_&&r.useWebWorkers),e.workerURI=e.useWebWorkers&&m?m:_,e.createWorker=e.useWebWorkers&&y?y:_,n.useCompressionStream=i||i===_&&r.useCompressionStream,(await(async()=>{const n=zn.find(t=>!t.bt);if(n)return In(n),new Sn(n,t,e,k);if(zn.length<b){const n={Zt:Cn};return Cn++,zn.push(n),new Sn(n,t,e,k)}return new g(n=>{Rn.push({resolve:n,stream:t,Ft:e}),Fn=r.workerStarvationTimeout,An()})})()).run();function k(t){if(Tn(),Rn.length){const[{resolve:e,stream:n,Ft:r}]=Rn.splice(0,1);e(new Sn(t,n,r,k)),An()}else t.St?(In(t),((t,e)=>{const{config:n}=e,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(t.Rt?t.Rt=!1:t.Ct=T(async()=>{zn=zn.filter(e=>e!=t);try{await t.terminate()}catch{}},r))})(t,e)):zn=zn.filter(e=>e!=t)}}({readable:at,writable:kt},St);if(t.size+=e,e!=mt)throw new w(nn)}}catch(e){if(e.outputSize!==_&&(t.size+=e.outputSize),!ut||e.message!=pe)throw xt=e,e}finally{const e=!(t=>!(!t||!t.getData))(t)&&Ds(o,r,"preventClose");if(!e&&kt&&!kt.locked){const t=kt.getWriter();if(xt)try{await t.abort(xt)}catch{}else await t.close()}}return ut||lt?_:t.getData?t.getData():kt}}function rs(t){const e=a.min(t.byteLength,1024)-3;for(let n=0;e>n;n++)if(134630224==Es(t,n))return!0;return!1}function ss(t,e,n){let r=0;for(;n+46<=e.length&&Es(t,n)==L;)n+=46+Us(t,n+28)+Us(t,n+30)+Us(t,n+32),r++;return r%65536?0:r}function os(t){if(t.length>=6){const e=ae(t);if(84233040==Es(e,0)){const n=Us(e,4);if(6+n<=t.length)return t.subarray(6,6+n)}}}function as(t,e,r){const s=t.rawBitFlag=Us(e,r+2),o=!(1&~s),a=Es(e,r+6);n.assign(t,{encrypted:o,version:Us(e,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:!(2048&~s)},rawLastModDate:a,lastModDate:Cs(a),filenameLength:Us(e,r+22),extraFieldLength:Us(e,r+24)})}function is(t,e,r,s,o){const{rawExtraField:a}=e,u=e.extraField=new c,f=ae(a);let l=0,d=!1;try{for(;l<a.length;){const t=Us(f,l),e=Us(f,l+2);u.set(t,{type:t,data:a.slice(l+4,l+4+e)}),l+=4+e}}catch{d=!0}l>a.length&&(d=!0);const h=Us(r,s+4);n.assign(e,{signature:Es(r,s+10),crc32:Es(r,s+10),compressedSize:Es(r,s+14),uncompressedSize:Es(r,s+18)});const p=u.get(1);p&&(((t,e)=>{e.zip64=!0;const n=ae(t.data),r=$r.filter(([t,n])=>e[t]==n),s=r.reduce((t,[,e])=>t+ts[e].bytes,0);if(t.data.length<s)throw new w("Zip64 extra field not found");for(let s=0,o=0;s<r.length;s++){const[a,i]=r[s],c=ts[i];e[a]=t[a]=c.Pt(n,o),o+=c.bytes}})(p,e),e.extraFieldZip64=p);const m=u.get(28789);m&&(cs(m,Rr,Dr,e,t),e.extraFieldUnicodePath=m);const y=u.get(25461);y&&(cs(y,Fr,Cr,e,t),e.extraFieldUnicodeComment=y);const g=u.get(39169);g&&g.data.length>=7?(((t,e,r)=>{const s=ae(t.data),o=Ts(s,4);n.assign(t,{vendorVersion:Ts(s,0),vendorId:Ts(s,2),strength:o,originalCompressionMethod:r,compressionMethod:Us(s,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=_)})(g,e,h),e.extraFieldAES=g):e.compressionMethod=h;const b=u.get(13);b&&(us(b,e),e.extraFieldPkwareUnix=b);const v=u.get(22613);v&&(us(v,e),e.extraFieldUnixType1=v);const S=u.get(10);S&&(((t,e)=>{const r=ae(t.data);let s,o=4;try{for(;o<t.data.length&&!s;){const e=Us(r,o),n=Us(r,o+2);1==e&&(s=t.data.slice(o+4,o+4+n)),o+=4+n}}catch{}if(s&&24==s.length){const r=ae(s),o=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:As(o),lastAccessDate:As(a),creationDate:As(i)};n.assign(t,c),n.assign(e,c,{rawLastAccessDate:a,rawCreationDate:i})}})(S,e),e.extraFieldNTFS=S);const k=u.get(30805);let x;if(k&&(x=fs(k,e,!1),e.extraFieldUnix=k),!x){const t=u.get(30837);t&&(fs(t,e,!0),e.extraFieldInfoZip=t)}const z=u.get(21589);z&&(((t,e,n)=>{if(!t.data.length)return;const r=ae(t.data),s=Ts(r,0),o=[],a=[];n?(1&~s||(o.push(Ir),a.push(Wr)),2&~s||(o.push(Mr),a.push(Or)),4&~s||(o.push(Lr),a.push(Pr))):5>t.data.length||(o.push(Ir),a.push(Wr));let c=1;o.forEach((n,s)=>{if(t.data.length>=c+4){const o=Es(r,c);e[n]=t[n]=new i(1e3*(0|o));const u=a[s];t[u]=o}c+=4})})(z,e,o),e.extraFieldExtendedTimestamp=z);const R=u.get(6534);return R&&(e.extraFieldUSDZ=R),d}function cs(t,e,r,s,o){if(5>t.data.length)return void(t.valid=!1);const a=ae(t.data),i=new re;i.append(o[r]);const c=ae(new d(4));c.setUint32(0,i.get(),!0);const u=Es(a,1),f=Ts(a,0);n.assign(t,{version:f,[e]:Mn(t.data.subarray(5)),valid:1==f&&!o.bitFlag.languageEncodingFlag&&u==Es(c,0)}),t.valid&&(s[e]=t[e],s[e+"UTF8"]=!0)}function us(t,e){if(8>t.data.length)return;const r=ae(t.data),s={lastAccessDate:new i(1e3*(0|Es(r,0))),lastModDate:new i(1e3*(0|Es(r,4)))};12>t.data.length||(s.uid=Us(r,8),s.gid=Us(r,10)),n.assign(t,s),n.assign(e,s)}function fs(t,e,r){try{const s=ae(t.data);let o,a;if(r){let e=0;const r=Ts(s,e++),i=Ts(s,e++);o=ls(t.data.subarray(e,e+i)),e+=i;const c=Ts(s,e++);a=ls(t.data.subarray(e,e+c)),n.assign(t,{version:r,uid:o,gid:a})}else 4>t.data.length||(o=Us(s,0),a=Us(s,2),n.assign(t,{uid:o,gid:a}));return o!==_&&(e.uid=o),a!==_&&(e.gid=a),o!==_||a!==_}catch{}}function ls(t){const e=new d(4);return e.set(t,0),new m(e.buffer,e.byteOffset,4).getUint32(0,!0)}function ws(t,e,n){const r=Es(t,e);let s,o;return n?(s=Is(t,e+4),o=Is(t,e+12)):(s=Es(t,e+4),o=Es(t,e+8)),{crc32:r,compressedSize:s,uncompressedSize:o}}function ds(t,e){return t.Lt?t.Lt(e):0}async function hs(t){return Es(ae(await zr(t,0,4)))}function ps(t){return t===J||t===Q||t===Y}function ms(t,e){return ys(t,ys(e,Q))}function ys(t,e){const n=t.strictness;if(n!==_){if(!ps(n))throw new w("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=t.checkAmbiguity;return r===_?e:r?J:e==Y?Y:Q}function gs(t,e){if(e==Y)return!1;const n=t.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(n.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||Jr.test(t))||e==J&&(n.includes(".")||n.includes(""))}async function*bs(t,e){const n=t.size-e,r=await zr(t,n,e),s=ae(r);for(let t=r.length-H;t>=0;t--)101010256==Es(s,t)&&(yield[s,n,r,t,n+t])}function vs(t,e,n){return{offset:n,buffer:t.slice(e,e+H).buffer}}async function Ss(t,e,n,r,s,o,a){const i=Us(e,r+10),c=Es(e,r+12),u=Es(e,r+16);if(i==I||c==E||u==E)return await ks(t,e,n,s-V,o,a)==B?2:0;if(!i&&!c)return 1;const f=Us(e,r+6);for(const r of[s-c,ds(t,f)+u])if(await ks(t,e,n,r,o,a)==L)return 2;return 0}async function ks(t,e,n,r,s,o){return 0>r||r+4>s?_:n>r?o.count>0?(o.count--,Es(ae(await zr(t,r,4)),0)):_:Es(e,r-n)}function xs(t,e,n){t?Rs(n):zs(e,n)}function zs(t,e,n){if(!t.some(t=>t.reason==e)){const r={reason:e};n!==_&&(r.filename=n),t.push(r)}}function Rs(t){const e=new w("Ambiguous archive");throw e.reason=t,e}function Ds(t,e,n){return e[n]===_?t.options[n]:e[n]}function Fs(t,e,n){return $(Ds(t,e,n))}function Cs(t){const e=(4294901760&t)>>16,n=t&I,r=new i(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function As(t){return new i(s(t/o(1e4)-o(116444736e5)))}function Ts(t,e){return t.getUint8(e)}function Us(t,e){return t.getUint16(e,!0)}function Es(t,e){return t.getUint32(e,!0)}function Is(t,e){const n=t.getBigUint64(e,!0);if(n>es)throw new w("64-bit value exceeds Number.MAX_SAFE_INTEGER");return s(n)}(t=>{const e=lt(dt(t));n.assign(nt,e),n.assign(it,e)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Nt{constructor(t){(t=>{if("deflate-raw"!=t)throw new TypeError("Unsupported compression format: "+t)})(t),super(new Zt)}}}),t.BlobReader=Yn,t.BlobWriter=$n,t.Data64URIWriter=class extends Xn{constructor(t){super(),n.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",qt:""})}writeUint8Array(t){const e=this;let n,s=e.qt;const o=e.qt.length;for(e.qt="",n=0;n<3*a.floor((o+t.length)/3)-o;n++)s+=r.fromCharCode(t[n]);for(;n<t.length;n++)e.qt+=r.fromCharCode(t[n]);s.length>2?e.data+=k(s):e.qt=s+e.qt}getData(){return this.data+k(this.qt)}},t.HttpRangeReader=class extends yr{constructor(t,e={}){super(t,n.assign({},e,{useRangeHeader:!0}))}},t.TextWriter=class extends $n{constructor(t){super(),n.assign(this,{encoding:t,Nt:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,Nt:e}=this,n=await super.getData();return n.text&&e?n.text():((t,e)=>On(t,e,!1))(new d(await n.arrayBuffer()),t)}},t.ZipReader=class{constructor(t,e={}){n.assign(this,{reader:new vr(t),options:e,Vt:new c})}async*getEntriesGenerator(t={}){const e=this;let{reader:r}=e;if(await kr(r),r.size!==_&&r.readUint8Array||(r=new Yn(await tn(r.readable)),await kr(r)),r.size<H)throw new w(Vr);const o=e.warnings=[],i=ms(t,e.options),c=i==J,f=i!=Y,l=((t,e)=>{if(t!==_){const e=tt(t);if("number"!=typeof e||s.isNaN(e)||0>e)throw new w("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return e}return e==J?0:e==Y?1/0:I})(Ds(e,t,"maxAppendedDataSize"),i),d=((t,e)=>{if(t===_)return e;if(!ps(t))throw new w("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return t})(Ds(e,t,"filenameValidation"),i),h=Ds(e,t,"normalizeFilename"),{_t:p,jt:m}=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,65557),o={count:64};let i,c,u=0;for await(const[n,a,f,l,w]of bs(t,s)){const s=Us(n,l+20);if(w+H+s==r){const s=await Ss(t,n,a,l,w,r,o);if(2==s){if(i||(i=vs(f,l,w)),u++,!e||u>1)break}else 1!=s||c||(c=vs(f,l,w))}}return i||(i=c),i||(i=await(async(t,e,n)=>{const{size:r}=t,s=a.min(r,e==1/0?r:65557+e);let o,i;for await(const[e,a,c,u,f]of bs(t,s)){const s=vs(c,u,f);o||(o=s);const l=await Ss(t,e,a,u,f,r,n);if(2==l)return s;1!=l||i||(i=s)}return i||o})(t,n,o)),{_t:i,jt:u}})(r,f,l);if(!p)throw await(async t=>await hs(t)==M)(r)?new w(Nr):new w("End of central directory not found");f&&m>1&&Rs("multiple end of central directory records");const y=ae(p);let g=Es(y,12),b=Es(y,16);const v=p.offset,S=Us(y,20),k=v+H+S,z=r.size-k;z>l&&Rs(Kr),z>0&&zs(o,Kr);let R=Us(y,4);const D=r.Mt||0;let F,C,A,T,U=Us(y,6),O=Us(y,10),N=0,j=Z;const K=b==E||g==E||O==I||U==I;if(b!=E&&U!=I&&(b+=ds(r,U)),K){const t=p.offset<V?X:await zr(r,p.offset-V,V),e=ae(t);if(t.length==V&&Es(e,0)==B){b=ds(r,Es(e,4))+Is(e,8);let t=await zr(r,b,Z),s=ae(t);const i=p.offset-V-Z;if((t.length<Z||Es(s,0)!=P)&&b!=i&&i>=0){const e=b;b=i,b>e&&(N=b-e),t=await zr(r,b,Z),s=ae(t)}if(t.length<Z||Es(s,0)!=P)throw new w("End of Zip64 central directory locator not found");if(C=!0,A=Is(s,4)>44,A){const t=a.min(Is(s,4)-44,r.size-b-Z);t>0&&(j+=t,T=(t=>{const e={rawExtensibleData:t};if(t.length>=28){const r=ae(t),s=Us(r,26);n.assign(e,{compressionMethod:Us(r,0),compressedSize:Is(r,2),uncompressedSize:Is(r,10),encryptionAlgorithm:Us(r,18),bitLength:Us(r,20),flags:Us(r,22),hashAlgorithm:Us(r,24),hashData:t.subarray(28,28+s)})}return e})(await zr(r,b+Z,t)))}R==I?R=Es(s,16):R!=Es(s,16)&&xs(c,o,Xr),U==I?U=Es(s,20):U!=Es(s,20)&&xs(c,o,Xr),O==I?O=Is(s,32):O!=Is(s,32)&&xs(c,o,Xr),g==E?g=Is(s,40):g!=Is(s,40)&&xs(c,o,Xr),b=ds(r,U)+Is(s,48)+N}}let G=g;const Q=p.offset-(C?j+V:0);if(b<r.size||(N=r.size-b-g-H,b=r.size-g-H),D!=R)throw new w(Nr);if(0>b)throw new w(Vr);let $=0,et=await zr(r,b,g),nt=ae(et);if(g){if(4>et.length)throw new w(Vr);const t=Q-g;if(b!=t&&U==R){let e=!(Es(nt,$)==L||T&&T.compressedSize||rs(nt));if(e||0>t||t+4>r.size||(e=Es(ae(await zr(r,t,4)),0)==L),e){const e=b;b=t,b>e&&(N+=b-e),et=await zr(r,b,g),nt=ae(et)}}}const rt=Q-b;if(g==rt||0>rt||U!=R||(g=rt,et=await zr(r,b,g),nt=ae(et)),0>b||b>=r.size)throw new w(Vr);e.directoryOffset=b,e.directoryLength=G;const st=Fs(e,t,"decryptCentralDirectory");let ot,at;if(st&&O&&et.length>=4&&Es(nt,0)!=L&&(A||rs(nt))){const t=((t,e,n)=>{const r=t&&t.compressedSize?t.compressedSize:e;return r>0&&n>=r?r:n})(T,G,et.length);at=et.subarray(t),et=await st(et.subarray(0,t),T),nt=ae(et),G=et.length,ot=!0}!T||ot||et.length>=4&&Es(nt,0)!=L||zs(o,"unknown zip64 extensible data"),F=b;const it=Ds(e,t,"filenameEncoding"),ct=Ds(e,t,"commentEncoding"),ut=new u;let ft,lt=-1;const wt=!c&&!C;!O&&wt&&(O=ss(nt,et,$),O&&zs(o,jr));for(let s=0;O>s;s++){const i=new ns(r,e.options);if($+46>et.length||Es(nt,$)!=L){if(0==s&&!ot&&(A||rs(nt)))throw new w("Encrypted central directory is not supported");throw new w("Central directory header not found")}as(i,nt,$+6);const c=!!i.bitFlag.languageEncodingFlag,u=$+46,f=u+i.filenameLength,l=f+i.extraFieldLength,p=Us(nt,$+4),m=!(p>>8),y=p>>8==3,g=et.subarray(u,f),b=Us(nt,$+32),v=l+b,S=et.subarray(l,v),k=c,z=c,R=Es(nt,$+38),D=R&W,C={readOnly:!!(1&D),hidden:!!(2&D),system:!!(4&D),directory:!!(16&D),archive:!!(32&D)},T=Es(nt,$+42),U=Fs(e,t,"decodeText")||Mn,E=k?Qr:it||Yr,M=z?Qr:ct||Yr;let P=U(g,E,"filename");if(P===_&&(P=Mn(g,E)),h){const t=h(P);t!==_&&(P=t)}if(gs(P,d)){const t=new w("Unsafe filename");throw t.filename=P,t}let B=U(S,M,"comment");B===_&&(B=Mn(S,M)),n.assign(i,{index:s,Bt:ot,versionMadeBy:p,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,Kt:b,offset:T,diskNumberStart:Us(nt,$+34),internalFileAttributes:Us(nt,$+36),externalFileAttributes:R,msdosAttributesRaw:D,msdosAttributes:C,rawFilename:g,filenameUTF8:k,commentUTF8:z,rawExtraField:et.subarray(f,l),rawComment:S,filename:P,comment:B}),is(i,i,nt,$+6)&&zs(o,_r,P),i.offset+=N;const H=ds(r,i.diskNumberStart)+i.offset;F=a.min(H,F),lt>H&&zs(o,"unsorted central directory",P),lt=H,(i.version&W)>63&&zs(o,"unknown version needed to extract",P),32&~i.rawBitFlag||zs(o,"compressed patched data",P),ut.has(i.filename)&&(ft=!0),ut.add(i.filename);const V=i.externalFileAttributes>>16&I;i.unixMode===_&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),j=!!(1024&i.unixMode),K=!!(512&i.unixMode),G=40960==((i.unixMode===_?V:i.unixMode)&q),X=!G&&(i.unixMode!==_?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==_&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:j,sticky:K,symlink:G,unixExternalUpper:V,internalFileAttribute:i.internalFileAttributes,externalFileAttribute:i.externalFileAttributes,executable:X,directory:J||Q||m&&C.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new Hr(i);if(Y.getData=(t,n)=>i.getData(t,Y,e.Vt,n),Y.arrayBuffer=async t=>{const n=new x,r=tn(n.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await i.getData(n,Y,e.Vt,t),r},$=v,s==O-1&&wt){const t=ss(nt,et,$);t&&(O+=t,zs(o,jr))}const{onprogress:tt}=t;if(tt)try{await tt(s+1,O,new Hr(i))}catch{}yield Y}let dt=$,ht=os(et.subarray($))||(ot?os(at):_);if(!ht&&!ot){const t=b+$,e=a.min(Q-t,65541);6>e||(ht=os(await zr(r,t,e)))}ht&&(e.digitalSignature=ht,dt=$+6+ht.length),($!=G&&dt!=G||!ot&&$!=g&&dt!=g)&&xs(c,o,"trailing central directory data"),ft&&xs(c,o,"duplicate filename");const pt=Ds(e,t,"extractPrependedData"),mt=Ds(e,t,"extractAppendedData"),yt=(c||pt)&&O&&4==F&&await(async t=>{const e=await hs(t);return e==M||808471376==e})(r)?4:0;return c&&(N||O&&F>yt)&&Rs(Gr),(N||O&&F>4)&&zs(o,Gr),pt&&(e.prependedData=F>yt?await zr(r,yt,F-yt):X),e.comment=S?await zr(r,v+H,S):X,mt&&(e.appendedData=k<r.size?await zr(r,k,r.size-k):X),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}},t.configure=t=>{n.assign(it,lt(dt(t)))},t.inflateRaw=(t,e)=>Ht(t,{i:2},e&&e.Gt,e&&e.m)});
@@ -7,7 +7,7 @@
7
7
  "name": "single-file-core-zip-build",
8
8
  "devDependencies": {
9
9
  "@rollup/plugin-terser": "1.0.0",
10
- "@zip.js/zip.js": "2.8.59",
10
+ "@zip.js/zip.js": "2.8.60",
11
11
  "rollup": "4.62.4",
12
12
  "terser": "5.50.0"
13
13
  }
@@ -502,9 +502,9 @@
502
502
  "license": "MIT"
503
503
  },
504
504
  "node_modules/@zip.js/zip.js": {
505
- "version": "2.8.59",
506
- "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.59.tgz",
507
- "integrity": "sha512-gD5q0xfvv4Xdg1bkl+mvcYaNE9tyf7jqIcDLkv4mq3WPtPgJ38jJtu5dzfyEo/CnZl46nnh+/KzFBot5BdTYRg==",
505
+ "version": "2.8.60",
506
+ "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.60.tgz",
507
+ "integrity": "sha512-pULv0waMlnKAUUxrsuAOa0ADONGRuhdHORtuXVgClNlScDB5YjImCV8DZrE1SicaROyE6MwGkH8CLJ+o4Nx07g==",
508
508
  "dev": true,
509
509
  "license": "BSD-3-Clause",
510
510
  "engines": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "devDependencies": {
10
10
  "@rollup/plugin-terser": "1.0.0",
11
- "@zip.js/zip.js": "2.8.59",
11
+ "@zip.js/zip.js": "2.8.60",
12
12
  "rollup": "4.62.4",
13
13
  "terser": "5.50.0"
14
14
  }