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