@arcgis/core 5.2.0-next.109 → 5.2.0-next.110
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/analysis/featureReferenceUtils.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{7eb929beb691694da2db.js → abcda435bc83ef4240f9.js} +1 -1
- package/assets/esri/core/workers/chunks/{62c03ffda779df11892b.js → c2684fcde2923c9830e0.js} +1 -1
- package/assets/esri/core/workers/chunks/fc622f9e33e3b48113c8.js +1 -0
- package/assets/esri/views/3d/environment/resources/milkyway-band.ktx2 +0 -0
- package/chunks/DeepSky.glsl.js +14 -41
- package/package.json +3 -3
- package/support/revision.js +1 -1
- package/symbols/Symbol3DLayer.d.ts +2 -2
- package/views/2d/input/MapViewInputManager.js +1 -1
- package/views/2d/input/handlers/KeyPan.js +1 -1
- package/views/2d/navigation/MapViewNavigation.js +1 -1
- package/views/3d/camera/constraintUtils/altitude.js +1 -1
- package/views/3d/camera/constraintUtils/distance.js +1 -1
- package/views/3d/camera/constraintUtils.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
- package/views/3d/input/handlers/ground/GroundNavigation.js +2 -0
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/state/controllers/FovController.js +1 -1
- package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
- package/views/3d/state/controllers/GroundNavigationController.js +2 -0
- package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
- package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
- package/views/3d/state/controllers/PointToPointAnimationController.js +1 -1
- package/views/3d/state/controllers/RotateController.js +1 -1
- package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
- package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
- package/views/3d/state/controllers/momentum/{RopePullMomentumController.js → GroundNavigationMomentumController.js} +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +2 -0
- package/views/3d/state/utils/navigationUtils.js +1 -1
- package/views/3d/support/popupHitTest.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +2 -20
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js +13 -26
- package/views/3d/webgl-engine/effects/stars/DeepSky.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/stars/DeepSkyTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
- package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/affectsGeometry.js +2 -0
- package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +10 -8
- package/views/MapView.d.ts +1 -0
- package/views/SceneView.d.ts +1 -0
- package/views/SceneView.js +1 -1
- package/views/navigation/{RopePullMomentumEstimator.js → GroundNavigationMomentumEstimator.js} +1 -1
- package/assets/esri/core/workers/chunks/208caecab10a48506723.js +0 -1
- package/views/3d/input/handlers/RopePullNavigation.js +0 -2
- package/views/3d/state/controllers/RopePullController.js +0 -2
- package/views/3d/state/utils/ropePullUtils.js +0 -2
- package/views/3d/webgl-engine/lib/VertexAttribute.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2696],{90315(t,e,n){n.d(e,{nZ:()=>x.nZ,D7:()=>x.D7,zg:()=>k.ZipReader});var r=n(91438);const s=new Uint8Array(288);s.fill(8,0,144),s.fill(9,144,256),s.fill(7,256,280),s.fill(8,280,288),new Uint8Array(30).fill(5);const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var o=n(50305),i=n(44996),c=n(87511),l=n(45533),u=n(12845);const f={type:"module"},d="error";let w,h,p,m=!0;try{m=typeof structuredClone==o.On&&void 0!==structuredClone(new DOMException("","AbortError")).code}catch{}function g(t){const{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function y(t){const{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function b(t,e,n,r,s=!0){const{createWorker:a}=n;let i,u,m;if(a)i=a();else if(void 0===h||w!==t){const a=typeof t==o.On;u=a?t(s):t;const c=u.startsWith("data:"),l=u.startsWith("blob:");if(c||l){void 0===r&&(r=!1),r&&(m=f);try{i=new Worker(u,m)}catch(s){if(l)try{URL.revokeObjectURL(u)}catch{}if(a&&l)return b(t,e,n,r,!1);if(r)throw s;return b(t,e,n,!0,!1)}}else{void 0===r&&(r=!0),r&&(m=f);try{u=new URL(u,e)}catch{}try{i=new Worker(u,m)}catch(a){if(r)return b(t,e,n,!1,s);throw a}}w=t,h=u,p=m}else i=new Worker(h,p);return i.addEventListener(l.AJ,t=>{n.workerAlive=!0,S(n),async function({data:t},e){const{type:n,value:r,messageId:s,result:a,error:o,errorValue:i}=t,{reader:l,writer:u,resolveResult:f,rejectResult:d,onTaskFinished:w,generation:h}=e,p=()=>e.generation!=h;try{if(o)m(function(t,e){const{message:n,stack:r,code:s,name:a,outputSize:o,cause:i,codecImportFailed:l}=t;let u;if(e?u=e.value:(u=Object.assign(new Error(n),{stack:r,code:s,name:a}),i&&(u.cause=Object.assign(new Error(i.message),{name:i.name}))),(0,c.K)(u))try{void 0!==o&&(u.outputSize=o),l&&(u.codecImportFailed=!0),e&&(u.name!==a&&(u.name=a),u.code!==s&&(u.code=s))}catch{}return u}(o,i));else{if("pull"==n){const{value:t,done:n}=await l.read();p()||z({type:"data",value:t,done:n,messageId:s},e)}if("data"==n){const t=new Uint8Array(r);await u.ready,await u.write(t),p()||z({type:"ack",messageId:s},e)}"close"==n&&function(t){p()||(f(t),g(),w())}(a)}}catch(o){p()||(y(e),m(o))}function m(t){p()||(d(t),g(),(0,c.K)(t)&&t.codecImportFailed||w())}function g(){u&&u.releaseLock()}}(t,n)}),i.addEventListener(d,t=>v(t,n)),i.addEventListener("messageerror",t=>v(t,n)),i}function S(t){const{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function v(t,e){t.preventDefault&&t.preventDefault(),S(e);const{workerAlive:n,rejectResult:r,writer:s,onTaskFinished:a}=e;y(e),n||(e.worker=null);let o=t.error||new Error(t.message||d);n||(o=Object.assign(new Error(o.message||d),{workerStartupFailed:!0}),e.startupError=o),r&&(r(o),s&&s.releaseLock(),n&&a())}function z(t,{worker:e,writer:n,transferStreams:r,workerAlive:s}){try{const{value:n,readable:a,writable:o}=t,c=[];if(n&&(t.value=(0,i.ok)(n),c.push(t.value.buffer)),r&&m&&s?(a&&c.push(a),o&&c.push(o)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{m=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(t){throw n&&n.releaseLock(),t}}(0,u.pR)(function(t,e){const{baseURI:n,chunkSize:r,workerStartupTimeout:s}=e;let{wasmURI:a}=e;if(!t.interface){let i;typeof a==o.On&&(a=a());try{i=b(t.workerURI,n,t)}catch{return(0,u.BS)(t),(0,u.C9)(t,e)}Object.assign(t,{worker:i,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await async function(t,e){if(!t.worker){const{startupError:e}=t;t.startupError=null;const n=e||new Error(u.hU);throw n.workerStartupFailed=!0,n}let n,r;const s=new Promise((e,s)=>{n=e,r=e=>{const{outputSize:n,workerOptions:r}=t;if(r.outputSize=n,(0,c.K)(e))try{e.outputSize=n}catch{}s(e)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:n,rejectResult:r,result:s});const{readable:a,options:o}=t,{writable:i,closed:l,abortPipe:f}=function(t,e){const n=new AbortController;let r;const{writable:s,readable:a}=new TransformStream({transform(t,n){e.outputSize+=t.length,n.enqueue(t)}}),o=a.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:n.signal});return o.catch(t=>{r||Object.assign(e,{destinationFailed:!0,destinationError:t})}),{writable:s,closed:o,abortPipe:()=>{r=!0,n.abort()}}}(t.writable,t);let d;try{d=z({type:"start",options:o,config:e,readable:a,writable:i},t)}catch(e){f();try{await l}catch{}throw t.onTaskFinished(),e}d||Object.assign(t,{reader:a.getReader(),writer:i.getWriter()});const{workerStartupTimeout:w}=e;!t.workerAlive&&Number.isFinite(w)&&w>=0&&(t.startupTimeout=setTimeout(()=>function(t){if(t.startupTimeout=null,t.workerAlive)return;const{rejectResult:e,writer:n}=t;if(y(t),t.worker=null,e){const t=new Error(u.hU);t.workerStartupFailed=!0,e(t),n&&n.releaseLock()}}(t),w));try{const t=await s;return await h(),await l,t}catch(e){await h(),f();try{await l}catch{}const{outputSize:n,workerOptions:r,destinationFailed:s,destinationError:a}=t;r.outputSize=n;const o=(0,c.K)(e)&&(e.codecImportFailed||e.workerStartupFailed),i=s&&!o?a:e;if((0,c.K)(i))try{i.outputSize=n}catch{}throw i}async function h(){if(!d&&!i.locked)try{await i.getWriter().close()}catch{}}}(t,{chunkSize:r,wasmURI:a,baseURI:n,workerStartupTimeout:s})}catch(n){if(n&&n.workerStartupFailed)return(0,u.BS)(t),g(t),(0,u.WY)(t,e);if(n&&n.codecImportFailed){if(t.reader)return g(t),(0,u.WY)(t,e);t.onTaskFinished()}throw n}}}})}return t.interface});var k=n(94567),x=(n(64072),n(95549),n(20262));n(26195),n(31408),n(49731),n(62498),n(24066),BigInt(0),BigInt("0x7fffffffffffffff"),new Uint8Array([7,0,2,0,65,69,3,0,0]),o.kZ,n(21674);try{(0,r.ap)({baseURI:"file:///data/arcgis-web-compoments/actions-runner-1/_work/webgis-sdk/webgis-sdk/node_modules/.pnpm/@zip.js+zip.js@2.14.1/node_modules/@zip.js/zip.js/lib/zip-core-base.js"})}catch{}const U=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],A=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],R=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],C=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],D=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],O=new Uint8Array(288);O.fill(8,0,144),O.fill(9,144,256),O.fill(7,256,280),O.fill(8,280,288);const L=new Uint8Array(30).fill(5);function I(t){const e=new Uint16Array(16);for(const n of t)e[n]++;e[0]=0;const n=new Uint16Array(17);for(let t=1;t<=15;t++)n[t+1]=n[t]+e[t];const r=new Uint16Array(t.length);for(let e=0;e<t.length;e++)t[e]&&(r[n[t[e]]++]=e);return{o:e,symbols:r}}const E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var P=n(69400);const B="deflate",q="deflate-raw",W="deflate64-raw",T="gzip";let N,F,M,V,j;function H(t,e,n={}){if(!N){const t=new Error("WASM module not loaded");throw t.cause=j,t}const r="number"==typeof n.level?n.level:-1,s="number"==typeof n.outBuffer?n.outBuffer:65536,a="number"==typeof n.inBufferSize?n.inBufferSize:65536;return new TransformStream({start(){try{let n;if(this.out=F(s),this.in=F(a),this.inBufferSize=a,!this.out||!this.in)throw new Error("allocation failed");if(t?(this._process=N.deflate_process,this._last_consumed=N.deflate_last_consumed,this._end=N.deflate_end,this.streamHandle=N.deflate_new(),n=e===T?N.deflate_init_gzip(this.streamHandle,r):e===q?N.deflate_init_raw(this.streamHandle,r):N.deflate_init(this.streamHandle,r)):e===W?(this._process=N.inflate9_process,this._last_consumed=N.inflate9_last_consumed,this._end=N.inflate9_end,this.streamHandle=N.inflate9_new(),n=N.inflate9_init_raw(this.streamHandle)):(this._process=N.inflate_process,this._last_consumed=N.inflate_last_consumed,this._end=N.inflate_end,this.streamHandle=N.inflate_new(),n=e===q?N.inflate_init_raw(this.streamHandle):e===T?N.inflate_init_gzip(this.streamHandle):N.inflate_init(this.streamHandle)),0!==n)throw new Error("init failed:"+n)}catch(t){throw o(this),t}},transform(t,e){try{const n=t,r=new Uint8Array(V.buffer),a=this._process,o=this._last_consumed,i=this.out;let c=0;for(;c<n.length;){const t=Math.min(n.length-c,32768);if((!this.in||this.inBufferSize<t)&&(this.in&&M&&(M(this.in),this.in=0),this.in=F(t),this.inBufferSize=t,!this.in))throw new Error("allocation failed");r.set(n.subarray(c,c+t),this.in);const l=a(this.streamHandle,this.in,t,i,s,0),u=l>>24&255,f=128&u?u-256:u;if(f<0)throw new Error("process error:"+f);const d=16777215&l;d&&e.enqueue(r.slice(i,i+d));const w=o(this.streamHandle);if(0===w&&0===d)break;c+=w}}catch(t){o(this),e.error(t)}},flush(t){try{const e=new Uint8Array(V.buffer),n=this._process,r=this.out;for(;;){const a=n(this.streamHandle,0,0,r,s,4),o=a>>24&255,i=128&o?o-256:o;if(i<0)throw new Error("process error:"+i);const c=16777215&a;if(c&&t.enqueue(e.slice(r,r+c)),1===o||0===c)break}}catch(e){t.error(e)}finally{const e=o(this);0!==e&&t.error(new Error("end error:"+e))}},cancel(){o(this)}});function o(t){let e=0;return t.streamHandle&&t._end&&(e=t._end(t.streamHandle)),t.streamHandle=0,t.in&&M&&M(t.in),t.in=0,t.out&&M&&M(t.out),t.out=0,e}}class X{constructor(t=B,e){return H(!0,t,e)}}class G{constructor(t=B,e){return H(!1,t,e)}}X.requiresModule=!0,G.requiresModule=!0,X.supportedFormats=[B,q,T],G.supportedFormats=[B,q,T,W];var Y=n(70949);const Z=65536;let K,J;function Q(t){return new Uint8Array(t.memory.buffer)}let _,$=!1;(0,P.w1)(function(t,e){const n=K;let r=n?function(t,e,n){J||(J=t.malloc(Z));const r=J?t.aes_hmac_new():0;if(r){const s=Q(t);if(s.set(e,J),s.set(n,J+e.length),t.aes_hmac_init(r,J,e.length,J+e.length,n.length))return t.aes_hmac_end(r,0),0}return r}(n,t,e):0;if(!r)return(0,Y.P)(t,e);const s=J;return{process(t,e){for(let a=0;a<t.length;a+=Z){const o=t.subarray(a,a+Z),i=Q(n);i.set(o,s),n.aes_hmac_process(r,s,o.length,e?1:0),o.set(i.subarray(s,s+o.length))}},digest:()=>(n.aes_hmac_end(r,s),r=0,Q(n).slice(s,s+20)),dispose(){r&&(n.aes_hmac_end(r,0),r=0)}}}),(0,u.zx)({initModule:t=>{if(!_){let{wasmURI:e}=t;typeof e==o.On&&(e=e()),_=async function(t,{baseURI:e}){if(!$)try{await async function(t,e){let n,r;try{try{r=new URL(t,e)}catch{}const s=await fetch(r);n=await s.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;n=function(t){const e=t.split(",")[1],n=atob(e),r=n.length,s=new Uint8Array(r);for(let t=0;t<r;++t)s[t]=n.charCodeAt(t);return s.buffer}(t)}const s=await WebAssembly.instantiate(n);var a;(function(t){if(N=t,({malloc:F,free:M,memory:V}=N),"function"!=typeof F||"function"!=typeof M||!V)throw N=F=M=V=null,new Error("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==o.On&&(K=a,J=0)}(t,e),$=!0}catch(t){throw function(t){j=t}(t),t}}(e,t).catch(t=>{throw _=null,t})}return _}}),(0,r.ap)({CompressionStreamFallback:X,DecompressionStreamFallback:G}),function(t){let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+function(t){let e="";const n=t.length;let r=0;for(;r+2<n;r+=3){const n=t[r]<<16|t[r+1]<<8|t[r+2];e+=E[n>>18&63]+E[n>>12&63]+E[n>>6&63]+E[63&n]}const s=n-r;if(1===s){const n=t[r]<<16;e+=E[n>>18&63]+E[n>>12&63]+"=="}else if(2===s){const n=t[r]<<16|t[r+1]<<8;e+=E[n>>18&63]+E[n>>12&63]+E[n>>6&63]+"="}return e}(function(t){let e=0,n=0,r=0,s=new Uint8Array(1024),a=0,o=0;for(;!o;){o=c(1);const t=c(2);if(0==t)l();else if(1==t)u(I(O),I(L));else{if(2!=t)throw new Error("invalid deflate block type");u(...f())}}return s.subarray(0,a);function i(){if(e>=t.length)throw new Error("unexpected end of deflate data");return t[e++]}function c(t){for(;r<t;)n|=i()<<r,r+=8;const e=n&(1<<t)-1;return n>>>=t,r-=t,e}function l(){n=0,r=0;const t=i()|i()<<8;e+=2,w(a+t);for(let e=0;e<t;e++)s[a++]=i()}function u(t,e){let n=d(t);for(;256!=n;){if(n<256)w(a+1),s[a++]=n;else{const t=n-257,r=U[t]+c(A[t]),o=d(e),i=R[o]+c(C[o]);w(a+r);const l=a-i;for(let t=0;t<r;t++)s[a++]=s[l+t]}n=d(t)}}function f(){const t=c(5)+257,e=c(5)+1,n=c(4)+4,r=new Uint8Array(19);for(let t=0;t<n;t++)r[D[t]]=c(3);const s=I(r),a=new Uint8Array(t+e);let o=0;for(;o<a.length;){const t=d(s);if(t<16)a[o++]=t;else if(16==t){const t=a[o-1];let e=c(2)+3;for(;e--;)a[o++]=t}else o+=17==t?c(3)+3:c(7)+11}return[I(a.subarray(0,t)),I(a.subarray(t))]}function d(t){const{o:e,symbols:n}=t;let r=0,s=0,a=0;for(let t=1;t<=15;t++){r|=c(1);const o=e[t];if(r-s<o)return n[a+(r-s)];a+=o,s=s+o<<1,r<<=1}throw new Error("invalid huffman code")}function w(t){if(s.length<t){let e=2*s.length;for(;e<t;)e*=2;const n=new Uint8Array(e);n.set(s.subarray(0,a)),s=n}}}(function(t){const e=(t=String(t).replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;r<e;r+=4){const e=E.indexOf(t[r])<<18|E.indexOf(t[r+1])<<12|(63&E.indexOf(t[r+2]))<<6|63&E.indexOf(t[r+3]);n.push(e>>16&255),"="!==t[r+2]&&n.push(e>>8&255),"="!==t[r+3]&&n.push(255&e)}return new Uint8Array(n)}("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")))),e)})}(r.ap);new Set(["throw","keep-first","keep-last"]),(t=>{t({workerURI:t=>{const e="text/javascript";let n='!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:s,Uint8Array:r,Uint16Array:c,Uint32Array:i,Int32Array:a,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",z="function",k=new r,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,A,x,M,P,D,F,E]=C;class R{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const s=new u(t.buffer,t.byteOffset,e),r=e-8;for(;o<=r;o+=8){const t=n^s.getInt32(o,!0),e=s.getInt32(o+4,!0);n=E[255&t]^F[t>>>8&255]^D[t>>>16&255]^P[t>>>24&255]^M[255&e]^x[e>>>8&255]^A[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends d{constructor(){let t;const n=new R;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new r(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new r(t.length+n.length);return e.set(t),e.set(n,t.length),e}function T(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const V=64,W=20,j=new r([128]),K=new r(1),O=new a([1732584193,4023233417,2562383102,271733878,3285377520]),H=new r(256),L=new a(256),N=new a(256),q=new a(256),G=new a(256);let J=!1;function Q(t,n){!function(){if(!J){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),H[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);H[0]=99;for(let t=0;t<256;t++){const n=H[t],e=$(n),o=e<<24|n<<16|n<<8|e^n;L[t]=o,N[t]=o>>>8|o<<24,q[t]=o>>>16|o<<16,G[t]=o>>>24|o<<8}J=!0}}();const e=new a(60),o=function(t,n){const e=t.length>>2,o=e+6,s=4*(o+1);let r=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<s;t++){let o=n[t-1];t%e==0?(o=Y(o<<8|o>>>24)^r<<24,r=$(r)):e>6&&t%e==4&&(o=Y(o)),n[t]=n[t-e]^o}return o}(t,e),s=new a(4),r=X(n);let c=0,i=0,f=0,w=0;return{process(t,n){n&&r.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^s[0]),n.setInt32(o+4,n.getInt32(o+4)^s[1]),n.setInt32(o+8,n.getInt32(o+8)^s[2]),n.setInt32(o+12,n.getInt32(o+12)^s[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=s[n>>2]>>>24-8*(3&n)}}(t),n||r.update(t,0,t.length)},digest:()=>r.digest()};function l(){c=c+1|0,c||(i=i+1|0,i||(f=f+1|0,f||(w=w+1|0)));let t=Z(c)^e[0],n=Z(i)^e[1],r=Z(f)^e[2],a=Z(w)^e[3],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[4],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[5],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[6],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[7];t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[8],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[9],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[10],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[11],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[12],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[13],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[14],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[15],t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[16],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[17],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[18],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[19],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[20],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[21],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[22],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[23],t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[24],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[25],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[26],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[27],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[28],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[29],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[30],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[31],t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[32],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[33],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[34],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[35],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[36],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[37],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[38],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[39];let d=40;o>10&&(t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[40],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[41],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[42],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[43],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[44],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[45],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[46],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[47],d=48),o>12&&(t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[48],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[49],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[50],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[51],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[52],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[53],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[54],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[55],d=56),s[0]=(H[u>>>24]<<24|H[l>>>16&255]<<16|H[h>>>8&255]<<8|H[255&p])^e[d],s[1]=(H[l>>>24]<<24|H[h>>>16&255]<<16|H[p>>>8&255]<<8|H[255&u])^e[d+1],s[2]=(H[h>>>24]<<24|H[p>>>16&255]<<16|H[u>>>8&255]<<8|H[255&l])^e[d+2],s[3]=(H[p>>>24]<<24|H[u>>>16&255]<<16|H[l>>>8&255]<<8|H[255&h])^e[d+3]}}function X(t){const n=function(){const t=new a(O),n=new a(16),e=new r(V),s=new u(e.buffer),c=new r(8);let i=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),s=n>>>0;for(w(j,0,1);56!=i;)w(K,0,1);c[0]=e>>>24,c[1]=e>>>16,c[2]=e>>>8,c[3]=e,c[4]=s>>>24,c[5]=s>>>16,c[6]=s>>>8,c[7]=s,w(c,0,8);const a=new r(W),l=new u(a.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(O),i=0,f=0,a}};function w(t,n,o){const r=n+o;if(f+=o,i){for(;n<r&&i<V;)e[i++]=t[n++];i==V&&(l(s,0),i=0)}if(n+V<=r){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+V<=r;n+=V)l(e,n)}for(;n<r;)e[i++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let s,r=t[0],c=t[1],i=t[2],a=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(r<<5|r>>>27)+((i^a)&c^a)+f+1518500249+n[t]|0,c=c<<30|c>>>2,a=(f<<5|f>>>27)+((c^i)&r^i)+a+1518500249+n[t+1]|0,r=r<<30|r>>>2,i=(a<<5|a>>>27)+((r^c)&f^c)+i+1518500249+n[t+2]|0,f=f<<30|f>>>2,c=(i<<5|i>>>27)+((f^r)&a^r)+c+1518500249+n[t+3]|0,a=a<<30|a>>>2,r=(c<<5|c>>>27)+((a^f)&i^f)+r+1518500249+n[t+4]|0,i=i<<30|i>>>2;f=(r<<5|r>>>27)+((i^a)&c^a)+f+1518500249+n[15]|0,c=c<<30|c>>>2,s=n[13]^n[8]^n[2]^n[0],s=s<<1|s>>>31,n[0]=s,a=(f<<5|f>>>27)+((c^i)&r^i)+a+1518500249+s|0,r=r<<30|r>>>2,s=n[14]^n[9]^n[3]^n[1],s=s<<1|s>>>31,n[1]=s,i=(a<<5|a>>>27)+((r^c)&f^c)+i+1518500249+s|0,f=f<<30|f>>>2,s=n[15]^n[10]^n[4]^n[2],s=s<<1|s>>>31,n[2]=s,c=(i<<5|i>>>27)+((f^r)&a^r)+c+1518500249+s|0,a=a<<30|a>>>2,s=n[0]^n[11]^n[5]^n[3],s=s<<1|s>>>31,n[3]=s,r=(c<<5|c>>>27)+((a^f)&i^f)+r+1518500249+s|0,i=i<<30|i>>>2;for(let t=20;t<40;t+=5)s=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],s=s<<1|s>>>31,n[15&t]=s,f=(r<<5|r>>>27)+(c^i^a)+f+1859775393+s|0,c=c<<30|c>>>2,s=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],s=s<<1|s>>>31,n[t+1&15]=s,a=(f<<5|f>>>27)+(r^c^i)+a+1859775393+s|0,r=r<<30|r>>>2,s=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],s=s<<1|s>>>31,n[t+2&15]=s,i=(a<<5|a>>>27)+(f^r^c)+i+1859775393+s|0,f=f<<30|f>>>2,s=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],s=s<<1|s>>>31,n[t+3&15]=s,c=(i<<5|i>>>27)+(a^f^r)+c+1859775393+s|0,a=a<<30|a>>>2,s=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],s=s<<1|s>>>31,n[t+4&15]=s,r=(c<<5|c>>>27)+(i^a^f)+r+1859775393+s|0,i=i<<30|i>>>2;for(let t=40;t<60;t+=5)s=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],s=s<<1|s>>>31,n[15&t]=s,f=(r<<5|r>>>27)+(c&i|(c|i)&a)+f+2400959708+s|0,c=c<<30|c>>>2,s=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],s=s<<1|s>>>31,n[t+1&15]=s,a=(f<<5|f>>>27)+(r&c|(r|c)&i)+a+2400959708+s|0,r=r<<30|r>>>2,s=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],s=s<<1|s>>>31,n[t+2&15]=s,i=(a<<5|a>>>27)+(f&r|(f|r)&c)+i+2400959708+s|0,f=f<<30|f>>>2,s=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],s=s<<1|s>>>31,n[t+3&15]=s,c=(i<<5|i>>>27)+(a&f|(a|f)&r)+c+2400959708+s|0,a=a<<30|a>>>2,s=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],s=s<<1|s>>>31,n[t+4&15]=s,r=(c<<5|c>>>27)+(i&a|(i|a)&f)+r+2400959708+s|0,i=i<<30|i>>>2;for(let t=60;t<80;t+=5)s=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],s=s<<1|s>>>31,n[15&t]=s,f=(r<<5|r>>>27)+(c^i^a)+f+3395469782+s|0,c=c<<30|c>>>2,s=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],s=s<<1|s>>>31,n[t+1&15]=s,a=(f<<5|f>>>27)+(r^c^i)+a+3395469782+s|0,r=r<<30|r>>>2,s=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],s=s<<1|s>>>31,n[t+2&15]=s,i=(a<<5|a>>>27)+(f^r^c)+i+3395469782+s|0,f=f<<30|f>>>2,s=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],s=s<<1|s>>>31,n[t+3&15]=s,c=(i<<5|i>>>27)+(a^f^r)+c+3395469782+s|0,a=a<<30|a>>>2,s=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],s=s<<1|s>>>31,n[t+4&15]=s,r=(c<<5|c>>>27)+(i^a^f)+r+3395469782+s|0,i=i<<30|i>>>2;t[0]=t[0]+r|0,t[1]=t[1]+c|0,t[2]=t[2]+i|0,t[3]=t[3]+a|0,t[4]=t[4]+f|0}}(),e=new r(V),s=new r(V);t.length>V&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<V;n++){const o=n<t.length?t[n]:0;e[n]=54^o,s[n]=92^o}return n.update(e,0,V),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(s,0,V),n.update(t,0,W);const o=n.digest();return n.update(e,0,V),o}}}function Y(t){return H[t>>>24]<<24|H[t>>>16&255]<<16|H[t>>>8&255]<<8|H[255&t]}function Z(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function $(t){return 255&(t<<1^27*(t>>7))}const _=typeof h!=b&&typeof h.getRandomValues==z,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if(_)return h.getRandomValues(t);throw new s("Crypto API not supported")}const ot={name:"PBKDF2"},st=n.assign({hash:{name:"HMAC"}},ot),rt=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),ct=["deriveBits"],it=[8,12,16],at=[16,24,32],ft=10,ut=typeof h!=b,wt=ut&&h.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==z&&typeof wt.deriveBits==z,ht=Q;class pt extends d{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:c=!0}){super({start(){yt(this,t,n,e)},async transform(t,n){const e=this,{password:c,strength:i,l:a,ready:f}=e;c?(await async function(t,n,e,o){const r=await gt(t,n,e,bt(o,0,it[n])),c=bt(o,it[n]);if(r[0]!=c[0]||r[1]!=c[1])throw St(t),new s(tt)}(e,i,c,bt(t,0,it[i]+2)),t=bt(t,it[i]+2),o?(St(e),n.error(new s(nt))):a()):await f;const u=new r(t.length-ft-(t.length-ft)%16);n.enqueue(mt(e,t,u,0,ft,!0))},async flush(t){const{h:n,m:e,ready:o}=this;if(n){await o;const i=bt(e,e.length-ft),a=new r(bt(e,0,e.length-ft));n.process(a,!0);const f=n.digest();let u=e.length<ft?1:0;for(let t=0;t<ft;t++)u|=f[t]^i[t];if(u&&c)throw new s("Invalid authentication code");t.enqueue(a)}},cancel(){St(this)}})}}class dt extends d{constructor({password:t,rawPassword:n,encryptionStrength:e}){super({start(){yt(this,t,n,e)},async transform(t,n){const e=this,{password:o,strength:s,l:c,ready:i}=e;let a=k;o?(a=await async function(t,n,e){const o=et(new r(it[n]));return B(o,await gt(t,n,e,o))}(e,s,o),c()):await i;const f=new r(a.length+t.length-t.length%16);f.set(a,0),n.enqueue(mt(e,t,f,a.length,0,!1))},async flush(t){const{h:n,m:e,ready:o}=this;if(n){await o;const s=new r(e);n.process(s,!1);const c=bt(n.digest(),0,ft);t.enqueue(B(s,c))}},cancel(){St(this)}})}}function yt(t,e,o,s){n.assign(t,{ready:new w(n=>t.l=n),password:vt(e,o),strength:s-1,m:k})}function mt(t,n,e,o,s,c){const{h:i,m:a}=t;a.length&&(n=B(a,n));const f=n.length-s,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new r(n)).set(e,0)}return t}(e,o+u),u){const t=bt(e,o,o+u);t.set(bt(n,0,u)),i.process(t,c)}return t.m=bt(n,u),e}function St({h:t}){t&&t.dispose&&t.dispose()}async function gt(t,e,s,c){t.password=null;const i=at[e],a=await async function(t,e,s){if(lt)try{const o=await wt.importKey("raw",t,st,!1,ct);return new r(await wt.deriveBits(n.assign({salt:e},rt),o,8*s))}catch{lt=!1}return function(t,n,e,s){const c=X(t),i=new r(s),a=new r(n.length+4),f=new u(a.buffer);a.set(n);for(let t=1,e=0;e<s;t++,e+=W){f.setUint32(n.length,t),c.update(a,0,a.length);let r=c.digest();const u=r.slice();for(let t=1;t<1e3;t++){c.update(r,0,W),r=c.digest();for(let t=0;t<W;t++)u[t]^=r[t]}i.set(u.subarray(0,o.min(W,s-e)),e)}return i}(t,e,0,s)}(s,c,2*i+2);return t.h=ht(bt(a,0,i),bt(a,i,2*i)),bt(a,2*i)}function vt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new r(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function bt(t,n,e){return t.subarray(n,e)}class zt extends d{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){Ct(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=It(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new s(tt);t=t.subarray(12)}o?n.error(new s(nt)):n.enqueue(It(e,t))}})}}class kt extends d{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){Ct(this,t,n,e)},transform(t,n){const e=this;let o,s;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new r(12));n[11]=e.passwordVerification,o=new r(t.length+n.length),o.set(At(e,n),0),s=12}else o=new r(t.length),s=0;o.set(At(e,t),s),n.enqueue(o)}})}}function Ct(t,e,o,s){n.assign(t,{password:e,rawPassword:o,passwordVerification:s}),function(t,e,o){const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,S:new R(s[0]),v:new R(s[2])}),o)for(let n=0;n<o.length;n++)xt(t,o[n]);else for(let n=0;n<e.length;n++)xt(t,e.charCodeAt(n))}(t,e,o)}function It(t,n){const e=new r(n.length);for(let o=0;o<n.length;o++)e[o]=Mt(t)^n[o],xt(t,e[o]);return e}function At(t,n){const e=new r(n.length);for(let o=0;o<n.length;o++)e[o]=Mt(t)^n[o],xt(t,n[o]);return e}function xt(t,n){let[,e]=t.keys;t.S.append([n]);const s=~t.S.get();e=Dt(o.imul(Dt(e+Pt(s)),134775813)+1),t.v.append([e>>>24]);const r=~t.v.get();t.keys=[s,e,r]}function Mt(t){const n=2|t.keys[2];return Pt(o.imul(n,1^n)>>>8)}function Pt(t){return 255&t}function Dt(t){return 4294967295&t}function Ft(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)},cancel:t=>n.cancel(t)})}const Et=new f;function Rt(t){return Et.get(t)}const Ut="Invalid uncompressed size",Bt="deflate-raw",Tt="gzip",Vt=[31,139,8];class Wt extends d{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:s,encrypted:r,useCompressionStream:c,zipCrypto:i,computeCrc32:a,level:f,deflate64:w,format:l,compressionMethod:h,inputSize:p}=t,d=this;let y,m,S,g=super.readable;const v=l&&Rt(l),b=a&&s&&!w&&!v&&(!r||i)&&Boolean(c&&o);if(r&&!i||!a||b||(y=new U,g=qt(g,y)),s)if(v)g=Gt(g,Lt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:h,uncompressedSize:p}));else if(b)S=new jt,g=Gt(g,new o(Tt)),g=qt(g,S);else try{g=Nt(g,c,{level:f,chunkSize:n},o,e)}catch(t){let n;try{n=new o(Tt)}catch{throw t}g=Gt(g,n),g=qt(g,new jt)}r&&(i?g=qt(g,new kt(t)):(m=new dt(t),g=qt(g,m))),Ht(d,g,()=>{r&&!i||!a||(d.crc32=b?S.crc32:new u(y.value.buffer).getUint32(0))})}}class jt extends d{constructor(){let t,n=10,e=new r(0);super({transform(t,s){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const r=e.length+t.length;if(r<=8)return void(e=B(e,t));const c=r-8,i=o.min(c,e.length);s.enqueue(B(e.subarray(0,i),t.subarray(0,c-i))),e=B(e.subarray(i),t.subarray(c-i))},flush(){const n=T(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Kt extends d{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:c,encrypted:i,checkCrc32:a,crc32:f,compressed:l,useCompressionStream:h,deflate64:p,format:m,compressionMethod:S,rawBitFlag:g,outputSize:b}=t;let z,k,C=super.readable;if(i&&(c?C=qt(C,new zt(t)):(k=new pt(t),C=qt(C,k))),l){const t=m&&Rt(m);if(t)C=Gt(C,Lt(t.DecompressionStream,m,{chunkSize:n,compressionMethod:S,rawBitFlag:g,uncompressedSize:b}));else try{C=Nt(C,h,{chunkSize:n,deflate64:p},o,e)}catch(t){if(p||b===v)throw t;let n;try{n=new o(Tt)}catch{throw t}C=function(t,n,e){const o=new R;let c,i,a,f=0,u=!1;const l=new w((t,n)=>{i=t,a=n});l.catch(()=>{}),e||i();const h=new d({start(t){const n=new r(10);n.set(Vt),t.enqueue(n)},transform(t,n){n.enqueue(t)},async flush(t){u=!0,y();try{await l}finally{m()}const n=new r(8),s=T(n);s.setUint32(0,o.get(),!0),s.setUint32(4,e,!0),t.enqueue(n)},cancel(t){a(t)}}),p=new d({transform(t,n){o.append(t),f+=t.length,f>=e?i():u&&y(),n.enqueue(t)},cancel(t){a(t)}});return t=qt(t,h),qt(t=Gt(t,n),p);function y(){m(),c=setTimeout(()=>a(new s(Ut)),5e3)}function m(){clearTimeout(c)}}(C,n,b)}C=function(t){const n=t.getReader();return new y({async pull(t){let e;try{e=await n.read()}catch(t){if(t&&t.message)throw t;const n=new s("Invalid compressed data");throw n.cause=t,n}const{value:o,done:r}=e;r?t.close():t.enqueue(o)},cancel:t=>n.cancel(t)})}(C)}a&&(z=new U,C=qt(C,z)),Ht(this,C,()=>{if(a){const t=new u(z.value.buffer);if(f!=t.getUint32(0,!1))throw new s("Invalid CRC32")}})}}const Ot=new f;function Ht(t,e,o){e=qt(e,new d({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function Lt(t,n,e){if(!t)throw new s("Compression method not supported");return new t(n,e)}function Nt(t,n,e,o,s){const r=n&&o?o:s||o,c=e.deflate64?"deflate64-raw":Bt;let i;try{i=new r(c,e)}catch(t){if(!n||!s||r==s)throw t;i=new s(c,e)}return Gt(t,i)}function qt(t,n){return Ft(t).pipeThrough(n)}function Gt(t,n){const e=n.writable.getWriter(),o=t.getReader();return async function(){try{for(;;){await e.ready;const t=await o.read();if(t.done){await e.close();break}await e.write(t.value)}}catch(t){await async function(t,n){try{await t.abort(n)}catch{}}(e,t),await async function(t,n){try{await t.cancel(n)}catch{}}(o,t)}}(),n.readable}const Jt="data",Qt="deflate";class Xt extends d{constructor(t,e){super({});const o=this,{codecType:r}=t;let c;r.startsWith(Qt)?c=Wt:r.startsWith("inflate")&&(c=Kt),o.outputSize=0;let i=0;const a=new c(t,e),f=super.readable,u=new d({transform(t,n){t&&t.length&&(i+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:i})}}),w=new d({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new s(Ut)},flush(){const{crc32:t}=a;n.assign(o,{crc32:t,inputSize:i})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(a).pipeThrough(w)})}}class Yt extends d{constructor(t){const o=[];let s=0,c=0;function i(){const n=new r(t);let e=0;for(;e<t;){const s=o[0],r=t-e;s.length<=r?(n.set(s,e),e+=s.length,o.shift()):(n.set(s.subarray(0,r),e),o[0]=s.subarray(r),e+=r)}return s-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),s+=n.length;s>t;)c+=t,e.enqueue(i())},flush(t){s&&(c+=s,t.enqueue(function(t,n){const e=new r(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,s)))}}),n.defineProperty(this,"outputSize",{get:()=>c})}}let Zt=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(Zt=navigator.hardwareConcurrency)}catch{}function $t(t){return Boolean(t)&&"object"==typeof t}const _t=new f,tn=new f,nn=function(){try{return structuredClone(new s)instanceof s}catch{return!1}}();let en=0;async function on(t){let n,r,c;try{const{options:i,config:a}=t;if(i.format)try{await async function(t,n){!Et.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=z&&typeof o!=z)throw new s("Invalid codec module");Et.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(i.format,i.codecURI)}catch(t){if($t(t))try{t.codecImportFailed=!0}catch{}throw t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,i.compressed&&!i.format)if(i.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Ot.get(t);e||(e=new f,Ot.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(i.codecType.startsWith(Qt)?a.CompressionStream:a.DecompressionStream,Bt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{i.useCompressionStream=!0}if(i.encrypted&&!i.zipCrypto)try{await self.initModule(t.config)}catch{}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Ft(t.readable):new y({async pull(t){const n=new w(t=>_t.set(en,t));sn({type:"pull",messageId:en}),en=(en+1)%e.MAX_SAFE_INTEGER;const{value:o,done:s}=await n;t.enqueue(o),s&&t.close()}},u);c=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);tn.set(en,n),sn({type:Jt,value:t,messageId:en}),en=(en+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new Xt(i,a),r=new Yt(function(t){return s="string"==typeof(n=s=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(s)&&s>=1?o.max(s,64):65536;var n,s}(a)),await l.pipeThrough(n).pipeThrough(r).pipeTo(c,{preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=n;sn({type:"close",result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){const n=r?r.outputSize:0;if($t(t))try{t.outputSize=n}catch{}if(c&&!c.locked)try{await c.getWriter().close()}catch{}rn(t,n)}}function sn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new r(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function rn(t,n){const{message:e,stack:o,code:r,name:c,outputSize:i,cause:a,codecImportFailed:f}=function(t=new s("Unknown error")){return $t(t)?t:new s(String(t))}(t),u={message:e,stack:o,code:r,name:c,outputSize:i===v?n:i};if(a&&(u.cause={name:a.name,message:a.message}),f&&(u.codecImportFailed=!0),nn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:s}=t;try{if("start"==n&&on(t),n==Jt){const t=_t.get(e);_t.delete(e),t({value:o||new r,done:s})}if("ack"==n){const t=tn.get(e);tn.delete(e),t()}}catch(t){rn(t)}}),p({type:"ready"});const cn="deflate",an="deflate-raw",fn="deflate64-raw",un="gzip";let wn,ln,hn,pn,dn;function yn(t,n,e={}){if(!wn){const t=new s("WASM module not loaded");throw t.cause=dn,t}const c="number"==typeof e.level?e.level:-1,i="number"==typeof e.outBuffer?e.outBuffer:65536,a="number"==typeof e.inBufferSize?e.inBufferSize:65536;return new d({start(){try{let e;if(this.C=ln(i),this.in=ln(a),this.inBufferSize=a,!this.C||!this.in)throw new s("allocation failed");if(t?(this.I=wn.deflate_process,this.A=wn.deflate_last_consumed,this.M=wn.deflate_end,this.P=wn.deflate_new(),e=n===un?wn.deflate_init_gzip(this.P,c):n===an?wn.deflate_init_raw(this.P,c):wn.deflate_init(this.P,c)):n===fn?(this.I=wn.inflate9_process,this.A=wn.inflate9_last_consumed,this.M=wn.inflate9_end,this.P=wn.inflate9_new(),e=wn.inflate9_init_raw(this.P)):(this.I=wn.inflate_process,this.A=wn.inflate_last_consumed,this.M=wn.inflate_end,this.P=wn.inflate_new(),e=n===an?wn.inflate_init_raw(this.P):n===un?wn.inflate_init_gzip(this.P):wn.inflate_init(this.P)),0!==e)throw new s("init failed:"+e)}catch(t){throw f(this),t}},transform(t,n){try{const e=t,c=new r(pn.buffer),a=this.I,f=this.A,u=this.C;let w=0;for(;w<e.length;){const t=o.min(e.length-w,32768);if((!this.in||this.inBufferSize<t)&&(this.in&&hn&&(hn(this.in),this.in=0),this.in=ln(t),this.inBufferSize=t,!this.in))throw new s("allocation failed");c.set(e.subarray(w,w+t),this.in);const r=a(this.P,this.in,t,u,i,0),l=r>>24&255,h=128&l?l-256:l;if(h<0)throw new s("process error:"+h);const p=16777215&r;p&&n.enqueue(c.slice(u,u+p));const d=f(this.P);if(0===d&&0===p)break;w+=d}}catch(t){f(this),n.error(t)}},flush(t){try{const n=new r(pn.buffer),e=this.I,o=this.C;for(;;){const r=e(this.P,0,0,o,i,4),c=r>>24&255,a=128&c?c-256:c;if(a<0)throw new s("process error:"+a);const f=16777215&r;if(f&&t.enqueue(n.slice(o,o+f)),1===c||0===f)break}}catch(n){t.error(n)}finally{const n=f(this);0!==n&&t.error(new s("end error:"+n))}},cancel(){f(this)}});function f(t){let n=0;return t.P&&t.M&&(n=t.M(t.P)),t.P=0,t.in&&hn&&hn(t.in),t.in=0,t.C&&hn&&hn(t.C),t.C=0,n}}class mn{constructor(t=cn,n){return yn(!0,t,n)}}class Sn{constructor(t=cn,n){return yn(!1,t,n)}}mn.D=!0,Sn.D=!0,mn.F=[cn,an,un],Sn.F=[cn,an,un,fn];const gn=65536;let vn,bn;function zn(t){return new r(t.memory.buffer)}let kn=!1;!function(t={}){const{init:n,R:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,s=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(ht=e||Q),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),s&&(t.DecompressionStreamFallback=s)}}({CompressionStreamFallback:mn,DecompressionStreamFallback:Sn,R:function(t,n){const e=vn;let o=e?function(t,n,e){bn||(bn=t.malloc(gn));const o=bn?t.aes_hmac_new():0;if(o){const s=zn(t);if(s.set(n,bn),s.set(e,bn+n.length),t.aes_hmac_init(o,bn,n.length,bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return Q(t,n);const s=bn;return{process(t,n){for(let r=0;r<t.length;r+=gn){const c=t.subarray(r,r+gn),i=zn(e);i.set(c,s),e.aes_hmac_process(o,s,c.length,n?1:0),c.set(i.subarray(s,s+c.length))}},digest:()=>(e.aes_hmac_end(o,s),o=0,zn(e).slice(s,s+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!kn)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const s=await fetch(o);e=await s.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,s=new r(o);for(let t=0;t<o;++t)s[t]=e.charCodeAt(t);return s.buffer}(t)}const c=await WebAssembly.instantiate(e);var i;(function(t){if(wn=t,({malloc:ln,free:hn,memory:pn}=wn),"function"!=typeof ln||"function"!=typeof hn||!pn)throw wn=ln=hn=pn=null,new s("Invalid WASM module")})(c.instance.exports),typeof(i=c.instance.exports).aes_hmac_new==z&&(vn=i,bn=0)}(t,n),kn=!0}catch(t){throw function(t){dn=t}(t),t}}(t.wasmURI,t)})});\n';if("string"==typeof n&&(n=(new TextEncoder).encode(n)),t){const t=new Blob([n],{type:e});return URL.createObjectURL(t)}return"data:"+e+";base64,"+function(t){let e="";const n=t.length;let r=0;for(;r+2<n;r+=3){const n=t[r]<<16|t[r+1]<<8|t[r+2];e+=a[n>>18&63]+a[n>>12&63]+a[n>>6&63]+a[63&n]}const s=n-r;if(1===s){const n=t[r]<<16;e+=a[n>>18&63]+a[n>>12&63]+"=="}else if(2===s){const n=t[r]<<16|t[r+1]<<8;e+=a[n>>18&63]+a[n>>12&63]+a[n>>6&63]+"="}return e}(n)}})})(r.ap)},95549(t,e,n){n.d(e,{Re:()=>r.Re,WY:()=>f,XJ:()=>r.XJ,mV:()=>r.mV,nD:()=>r.nD,wP:()=>r.wP}),n(50305);var r=n(45533),s=n(64072),a=n(12845);let o=[];const i=[];let c,l,u=0;async function f(t,e){const{options:n,config:r}=e,{transferStreams:c,useWebWorkers:f,useCompressionStream:h,compressed:p,checkCrc32:g,computeCrc32:y,encrypted:b,format:S,codecURI:v}=n,{workerURI:z,createWorker:k,maxWorkers:x}=r;S&&(v&&(n.codecURI=function(t,e){try{return new URL(t,e).toString()}catch{return t}}(v,r.baseURI)),await(0,s.wH)(S,n.codecURI)),e.transferStreams=!S&&(c||void 0===c&&r.transferStreams);const U=!(p||g||y||b),A=void 0===S||Boolean(n.codecURI);return e.useWebWorkers=!U&&A&&(f||void 0===f&&r.useWebWorkers),e.workerURI=e.useWebWorkers&&z?z:void 0,e.createWorker=e.useWebWorkers&&k?k:void 0,n.useCompressionStream=h||void 0===h&&r.useCompressionStream,(await async function(){const n=o.find(t=>!t.busy);if(n)return m(n),new a.r2(n,t,e,R);if(o.length<x){const n={indexWorker:u};return u++,o.push(n),new a.r2(n,t,e,R)}return new Promise(n=>{i.push({resolve:n,stream:t,workerOptions:e}),l=r.workerStarvationTimeout,d()})}()).run();function R(t){if(w(),i.length){const[{resolve:e,stream:n,workerOptions:r}]=i.splice(0,1);e(new a.r2(t,n,r,R)),d()}else t.worker?(m(t),function(t,e){const{config:n}=e,{terminateWorkerTimeout:r}=n;Number.isFinite(r)&&r>=0&&(t.terminated?t.terminated=!1:t.terminateTimeout=setTimeout(async()=>{o=o.filter(e=>e!=t);try{await t.terminate()}catch{}},r))}(t,e)):o=o.filter(e=>e!=t)}}function d(){!c&&i.length&&Number.isFinite(l)&&l>=0&&(c=setTimeout(h,l))}function w(){c&&(clearTimeout(c),c=null)}function h(){if(c=null,i.length){const[{resolve:t,stream:e,workerOptions:n}]=i.splice(0,1),r=Object.assign({},n,{useWebWorkers:!1,workerURI:void 0,createWorker:void 0});t(new a.r2({},e,r,p)),d()}}function p(){w(),d()}function m(t){const{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}},64072(t,e,n){n.d(e,{$_:()=>o,wH:()=>c,yE:()=>i});var r=n(50305);const s=new Map,a=new Map;function o(t){return s.get(t)}function i(t){return a.get(t)}async function c(t,e){!a.has(t)&&e&&function(t,e){const{CompressionStream:n,DecompressionStream:s}=e;if(typeof n!=r.On&&typeof s!=r.On)throw new Error("Invalid codec module");a.set(t,{CompressionStream:n,DecompressionStream:s})}(t,await(import(e)))}n.d(e,["Ns",0,"Compression method not supported"])},12845(t,e,n){n.d(e,{BS:()=>p,C9:()=>b,O_:()=>w,WY:()=>S,_v:()=>g,pR:()=>d,r2:()=>m,th:()=>y,zx:()=>f});var r=n(50305),s=n(91438),a=n(87511),o=n(45533);let i,c,l,u=()=>{};function f({initModule:t}){u=t}function d(t){l=t}async function w(t){const{CompressionStream:e,CompressionStreamFallback:n}=t;return!(!n||n.requiresModule)||!(!(0,o.St)(e)&&!(0,o.Ri)(e))||!!n&&await h(t)}async function h(t){if(u)try{return await u(t),!0}catch{}return!1}function p(t){t.createWorker?c=!0:i=!1}class m{constructor(t,{readable:e,writable:n},a,u){const{options:f,config:d,streamOptions:w,useWebWorkers:h,transferStreams:p,workerURI:m}=a;let{createWorker:y}=a;const{signal:S}=w;return c&&(y=void 0),Object.assign(t,{busy:!0,generation:(t.generation||0)+1,readable:e.pipeThrough(new o.Qo((0,s.L3)(d))).pipeThrough(new g(w),{signal:S}),writable:n,options:Object.assign({},f),workerOptions:a,workerURI:m,createWorker:y,transferStreams:p,terminate:()=>new Promise(e=>{const{worker:n,busy:r}=t;r?(t.terminateResolvers=t.terminateResolvers||[],t.terminateResolvers.push(e)):(n&&(n.terminate(),t.worker=null),e()),t.interface=null}),onTaskFinished(){if(t.busy){const{terminateResolvers:e,worker:n}=t;e&&(t.terminateResolvers=null,n&&(t.terminated=!0,n.terminate()),e.forEach(t=>t())),t.busy=!1,u(t)}}}),void 0===i&&(i=typeof Worker!=r.AV),(h&&l&&(i&&m||y)?l:b)(t,d)}}class g extends TransformStream{constructor({onstart:t,onprogress:e,size:n,onend:r}){let s=0;super({async start(){t&&await y(t,n)},async transform(t,r){s+=t.length,e&&await y(e,s,n),r.enqueue(t)},async flush(){r&&await y(r,s)}})}}async function y(t,...e){try{await t(...e)}catch{}}function b(t,e){return{run:()=>S(t,e)}}async function S({options:t,readable:e,writable:n,onTaskFinished:r,workerOptions:i},c){let l,u,f;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(o.XJ),n=e?c.CompressionStreamFallback:c.DecompressionStreamFallback,r=e?c.CompressionStream:c.DecompressionStream;t.useCompressionStream?n&&n.requiresModule&&!(0,o.St)(r)&&await d():await d()||n&&!n.requiresModule||(t.useCompressionStream=!0)}t.encrypted&&!t.zipCrypto&&await d(),l=new o.z5(t,c),u=new o.Qo((0,s.L3)(c)),await e.pipeThrough(l).pipeThrough(u).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:a,outputSize:i}=l;return{crc32:r,inputSize:a,outputSize:i}}catch(t){if(l){const e=u?u.outputSize:0;if(i.outputSize=e,(0,a.K)(t))try{t.outputSize=e}catch{}}throw t}finally{r()}function d(){return f||(f=h(c)),f}}n.d(e,["hU",0,"Worker startup timeout"])},91438(t,e,n){n.d(e,{D0:()=>h,I1:()=>m,L3:()=>p,ap:()=>y});var r=n(50305),s=n(24066);let a=2;try{typeof navigator!=r.AV&&navigator.hardwareConcurrency&&(a=navigator.hardwareConcurrency)}catch{}const o={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:a,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=r.AV&&CompressionStream,DecompressionStream:typeof DecompressionStream!=r.AV&&DecompressionStream},i="maxWorkers",c="baseURI",l=["wasmURI","workerURI"],u=["chunkSize",i,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],f=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],d=[c,...l,"useCompressionStream","useWebWorkers","transferStreams",...u,...f],w={...o};function h(){return w}function p(t){return m(t.chunkSize)}function m(t){return t=(0,s.Ro)(t),Number.isInteger(t)&&t>=1?Math.max(t,64):65536}function g(t,e){if(u.includes(t)){if(e=(0,s.Ro)(e),t==i&&(!Number.isInteger(e)||e<1))throw new Error("Invalid maxWorkers (must be an integer greater than 0)")}else if(f.includes(t))(0,s.oe)(e);else if(t==c){if(e&&"string"!=typeof e)throw new Error("Invalid baseURI (must be a string)")}else if(l.includes(t)&&e&&"string"!=typeof e&&typeof e!=r.On)throw new Error("Invalid URI (must be a string or a function returning a string)");return e}function y(t){const e=function(t){const e={};for(const n of d){const r=t[n];void 0!==r&&(e[n]=g(n,r))}return e}(function(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:n}=t;if(void 0===e&&void 0===n)return t;const r=Object.assign({},t);return void 0===r.CompressionStreamFallback&&(r.CompressionStreamFallback=e),void 0===r.DecompressionStreamFallback&&(r.DecompressionStreamFallback=n),r}(t));Object.assign(o,e),Object.assign(w,e)}},50305(t,e,n){const r=134695760,s=r,a=new Date(2107,11,31,23,59,58),o=new Date(1980,0,1),i=new Uint8Array,c=Symbol.asyncDispose||Symbol();n.d(e,["AN",0,o,"AV",0,"undefined","Ae",0,a,"D6",0,i,"G4",0,134630224,"GC",0,"boolean","Gi",0,s,"Gq",0,67324752,"OL",0,117853008,"On",0,"function","Tm",0,101075792,"X",0,1/0,"ZP",0,r,"ac",0,4294967295,"cC",0,33639248,"dh",0,808471376,"fB",0,101010256,"kZ",0,c,"nc",0,84233040])},20262(t,e,n){n.d(e,{$i:()=>J,D3:()=>at,D7:()=>A,M3:()=>z,TX:()=>R,Ul:()=>st,ZD:()=>nt,b9:()=>$,kh:()=>et,mP:()=>b,nZ:()=>U,pp:()=>K,qG:()=>v,rd:()=>D,sW:()=>Z,xY:()=>C,xm:()=>tt});var r=n(50305),s=n(91438),a=n(44996),o=n(49731),i=n(79261);const c="HTTP error ",l="HTTP Range not supported",u="HTTP resource changed",f="Content-Range",d="Range",w="GET",h="bytes",p=16777216,m="writable",g=Symbol();class y{constructor(){this.size=0}init(){this.initialized=!0}}class b extends y{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=(0,s.L3)((0,s.D0)())}={}){const r=this;let a=0;return n=(0,s.I1)(n),new ReadableStream({async pull(s){const o=void 0===e?n:Math.min(n,e-a),i=await st(r,t+a,o);i.length&&(s.enqueue(i),a+=i.length),(void 0!==e&&a>=e||!i.length&&o)&&s.close()}})}}class S extends y{constructor(){super();const t=this,e=new WritableStream({write(e){if(!t.initialized)throw new Error("Writer not initialized");return t.writeUint8Array((0,a.ok)(e))}});Object.defineProperty(t,m,{get:()=>e})}writeUint8Array(){}}class v extends b{constructor(t){super();let e=t.length;for(;"="==t.charAt(e-1);)e--;const n=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:n,size:Math.floor(.75*(e-n))})}readUint8Array(t,e){const{dataStart:n,dataURI:r}=this,s=new Uint8Array(e),a=4*Math.floor(t/3),o=atob(r.substring(a+n,4*Math.ceil((t+e)/3)+n)),i=t-3*Math.floor(a/4);let c=0;for(let t=i;t<i+e&&t<o.length;t++)s[t-i]=o.charCodeAt(t),c++;return c<s.length?s.subarray(0,c):s}}class z extends S{constructor(t){super(),Object.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",pendingCharacters:""})}writeUint8Array(t){const e=this;let n,r=e.pendingCharacters;const s=e.pendingCharacters.length;for(e.pendingCharacters="",n=0;n<3*Math.floor((s+t.length)/3)-s;n++)r+=String.fromCharCode(t[n]);for(;n<t.length;n++)e.pendingCharacters+=String.fromCharCode(t[n]);r.length>2?e.data+=btoa(r):e.pendingCharacters=r+e.pendingCharacters}getData(){return this.data+btoa(this.pendingCharacters)}}let k,x;class U extends b{constructor(t){super(),Object.assign(this,{sourceBlob:t,size:t.size}),x||(x=(async()=>{try{const t=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();k=1==e}catch{k=!1}})())}createReadable(t){const{sourceBlob:e,size:n}=this,{offset:s=0,size:a=n-s}=t||{};if(typeof e.stream==r.On){if(!s&&a>=n)return(0,o.QK)(e.stream());if(k)return(0,o.QK)(e.slice(s,s+a).stream())}return super.createReadable(t)}async readUint8Array(t,e){const n=this,r=t+e,s=!t&&r>=n.size?n.sourceBlob:n.sourceBlob.slice(t,r);let a=await s.arrayBuffer();return a.byteLength>e&&(a=a.slice(t,r)),new Uint8Array(a)}}class A extends y{constructor(t){super();const e=this,n=new TransformStream;Object.defineProperty(e,m,{get:()=>n.writable}),e.contentType=t,e.blobPromise=(0,o.x1)(n.readable,t),e.blobPromise.catch(()=>{})}getData(){return this.blobPromise}}class R extends U{constructor(t){super(new Blob([t],{type:"text/plain"}))}}function C(t){let e=0;for(let n=0;n<t.length;n++){const r=t.charCodeAt(n);r<128?e+=1:r<2048?e+=2:r<55296||r>=57344?e+=3:r<56320&&56320==(64512&t.charCodeAt(n+1))?(e+=4,n++):e+=3}return e}class D extends A{constructor(t){super(),Object.assign(this,{encoding:t,utf8:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,utf8:e}=this,n=await super.getData();return n.text&&e?n.text():(0,i.h)(new Uint8Array(await n.arrayBuffer()),t)}}class O extends b{constructor(t,e){super(),I(this,t,e)}async init(){await E(this,G,V),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:r,size:s}=e;if((n||r)&&void 0!==s){const{offset:n=0,size:r=s-n}=t||{};if(r>0&&n<s)return function(t,e,n){let r,s=e,a=0,o=n;return new ReadableStream({start:()=>i(),async pull(t){r||await i();const{value:e,done:n}=await r.read();if(n)throw new Error(l);const s=e.length>a?e.subarray(0,a):e;a-=s.length,o-=s.length,s.length&&t.enqueue(s),a||(await async function(){const t=r;r=void 0,await t.cancel()}(),o||t.close())},cancel:t=>r&&r.cancel(t)});async function i(){const e=Math.min(t.maximumRangeSize,o),n=await G(w,t,F(t,s,e));if(206!=n.status)throw new Error(l);const i=B(n);if(void 0!==i&&i!=s)throw new Error(l);N(t,n),T(t,n),s+=e,a=e,r=n.body.getReader()}}(e,n,Math.min(r,s-n))}return super.createReadable(t)}readUint8Array(t,e){return P(this,t,e,G,V)}}class L extends b{constructor(t,e){super(),I(this,t,e)}async init(){await E(this,Y,j),super.init()}readUint8Array(t,e){return P(this,t,e,Y,j)}}function I(t,e,n){const{preventHeadRequest:r,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:i=!0,maximumRangeSize:c=p,fetch:l}=n;delete(n=Object.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,Object.assign(t,{url:e,options:n,preventHeadRequest:r,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:i,maximumRangeSize:c,fetch:l})}async function E(t,e,n){const{url:a,preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:c,combineSizeEocd:u}=t;if(function(t){const{baseURI:e}=(0,s.D0)(),{protocol:n}=new URL(t,e);return"http:"==n||"https:"==n}(a)&&(i||c)&&(typeof o==r.AV||o)){const r=await e(w,t,F(t,u?-65557:void 0)),s=r.headers.get("Accept-Ranges");if(!(c||s&&s.toLowerCase()==h))throw new Error(l);{let s;u&&206==r.status&&(s=new Uint8Array(await r.arrayBuffer())),T(t,r);const a=q(r);void 0===a?await X(t,e,n):t.size=a,s&&s.length&&B(r)===t.size-s.length&&(t.eocdCache=s)}}else await X(t,e,n)}async function P(t,e,n,s,a){const{useRangeHeader:o,forceRangeRequests:i,eocdCache:c,size:u,options:f}=t;if(o||i){if(e>=u||0===n)return r.D6;{if(e+n>u&&(n=u-e),c&&e>=u-c.length){const t=e-(u-c.length);return c.slice(t,t+n)}const r=await s(w,t,F(t,e,n));if(206!=r.status)throw new Error(l);const a=B(r);if(void 0!==a&&a!=e)throw new Error(l);N(t,r),T(t,r);const o=new Uint8Array(await r.arrayBuffer());if(o.length!=n)throw new Error(l);return o}}{const{data:r}=t;return r||await a(t,f),t.data.subarray(e,e+n)}}function B(t){const e=t.headers.get(f);if(e){const t=Number(e.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t))return t}}function q(t){const e=t.headers.get(f);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=Number(t);if(!Number.isNaN(e))return e}}}function W({headers:t}){return{etag:t.get("Etag")||void 0,lastModified:t.get("Last-Modified")||void 0}}function T(t,e){const{checkResourceChanges:n,resourceValidators:r}=t;n&&!r&&206==e.status&&(t.resourceValidators=W(e))}function N(t,e){const{checkResourceChanges:n,resourceValidators:r,size:s}=t;if(n){const t=q(e);if(void 0!==t&&void 0!==s&&t!=s)throw new Error(u);if(r){const t=W(e);if(Object.entries(r).some(([e,n])=>void 0!==n&&void 0!==t[e]&&n!=t[e]))throw new Error(u)}}}function F(t,e=0,n=1){return Object.assign({},M(t),{[d]:h+"="+(e<0?e:e+"-"+(e+n-1))})}function M({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?Object.fromEntries(e):e}async function V(t){await H(t,G)}async function j(t){await H(t,Y)}async function H(t,e){const n=await e(w,t,M(t));t.data=new Uint8Array(await n.arrayBuffer()),t.size=t.data.length}async function X(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const r=await e("HEAD",t,M(t)),s=r.headers.get("Content-Length");s&&!r.headers.get("Content-Encoding")?t.size=Number(s):await n(t,t.options)}}async function G(t,{fetch:e=fetch,options:n,url:r},s){const a=await e(r,Object.assign({},n,{method:t,headers:s}));if(a.status>=200&&a.status<=299)return a;throw 416==a.status?new Error(l):new Error(c+(a.statusText||a.status))}function Y(t,{url:e},n){return new Promise((r,s)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(a.status>=200&&a.status<=299){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),r({status:a.status,arrayBuffer:()=>a.response,headers:new Map(t)})}else s(416==a.status?new Error(l):new Error(c+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>s(t.detail?t.detail.error:new Error("Network error")),!1),a.open(t,e),n)for(const t of Object.entries(n))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class Z extends b{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new L(t,e):new O(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class K extends b{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class J extends S{constructor(t){super(),this.defaultBufferSize=t||262144}init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t>0?t:this.defaultBufferSize)}),super.init()}writeUint8Array(t){const e=this,n=e.offset+t.length;if(n>e.array.length){let t=e.array.length?2*e.array.length:e.defaultBufferSize;for(;t<n;)t*=2;const r=e.array;e.array=new Uint8Array(t),e.array.set(r)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Q extends b{constructor(t){super(),this.readers=t}async init(){const t=this;t.lastDiskNumber=0;const e=t.readers=await Promise.all(t.readers.map(rt));t.diskOffsets=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}getDiskOffset(t){const{diskOffsets:e,size:n}=this,r=e[t];return void 0===r?n:r}async readUint8Array(t,e){const n=this,{readers:s}=this;let o,i=0,c=t;for(;s[i]&&c>=s[i].size;)c-=s[i].size,i++;const l=s[i];if(l){const r=l.size;if(c+e<=r)o=await st(l,c,e);else{const s=r-c,i=await st(l,c,s),u=await n.readUint8Array(t+s,e-s);o=(0,a.xW)(i,u)}}else o=r.D6;return n.lastDiskNumber=Math.max(i,n.lastDiskNumber),o}}class _ extends y{constructor(t,e=4294967295){super();const n=this;let r,s,a;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const o=new WritableStream({async write(e){if(e===g)return void(a&&await c());const{availableSize:o}=n;if(a)e.length>=o?(await i(e.subarray(0,o)),await c(),e.length>o&&await this.write(e.subarray(o))):await i(e);else{const{value:o,done:i}=await t.next();if(i&&!o)throw new Error("Writer iterator completed too soon");r=o,r.size=0,r.maxSize&&(n.maxSize=r.maxSize),n.availableSize=n.maxSize,await nt(r),s=o.writable,a=s.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await l())},async abort(t){a&&await a.abort(t)}});async function i(t){const e=t.length;e&&(await a.ready,await a.write(t),r.size+=e,n.availableSize-=e)}async function c(){await l(),n.diskOffset+=r.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}Object.defineProperty(n,m,{get:()=>o})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(g)}finally{t.releaseLock()}}}class ${constructor(t){return Array.isArray(t)&&(t=new Q(t)),(t instanceof ReadableStream||typeof t.getReader==r.On)&&(t={readable:(0,o.QK)(t)}),t}}class tt{constructor(t){void 0===t.writable&&typeof t.next==r.On&&(t=new _(t)),(t instanceof WritableStream||typeof t.getWriter==r.On)&&(t={writable:(0,o.Ox)(t)});try{t.size=void 0===t.size?0:t.size}catch{throw new Error("Invalid writer (size must be writable)")}return t}}function et(t){return Boolean(t&&t.getData)}async function nt(t,e){if(!t.init||t.initialized)return Promise.resolve();await t.init(e)}async function rt(t){return t=new $(t),await nt(t),void 0!==t.size&&t.readUint8Array||(t=new U(await(0,o.x1)(t.readable)),await nt(t)),t}function st(t,e,n){return t.readUint8Array(e,n)}function at(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?b.prototype.createReadable.call(t,e):t.readable}},24066(t,e,n){n.d(e,{Ot:()=>l,Ro:()=>d,Tc:()=>c,Te:()=>i,kQ:()=>f,mR:()=>o,oe:()=>a,zQ:()=>u});var r=n(50305);const s="compressed";function a(t){if(t&&typeof t!=r.On)throw new Error("Invalid option (must be a function)");return t}function o(t){if(t&&(typeof t.addEventListener!=r.On||typeof t.aborted!=r.GC))throw new Error("Invalid signal (must be an AbortSignal instance)");return t||void 0}function i(t){if(t&&t.aborted)throw void 0===t.reason?new DOMException("The operation was aborted","AbortError"):t.reason}function c(t,e){if(t&&"string"!=typeof t||e&&!(e instanceof Uint8Array))throw new Error("Invalid password (password must be a string, rawPassword must be a Uint8Array)")}function l(t){if(void 0!==t&&typeof t!=r.GC&&t!==s)throw new Error("Invalid passThrough option (must be a boolean or 'compressed')");return t}function u(t,e,n){if(!Number.isInteger(t)||t<0||t>e)throw new Error(n)}function f(t,e,n){void 0!==t&&u(t,e,n)}function d(t){return"string"==typeof t&&t.trim()?Number(t):t}n.d(e,["A4",0,"checkSignature","BH",0,"strictness","Bt",0,"dataDescriptor","C5",0,"preventClose","D9",0,"checkAmbiguity","DC",0,"ntfsTimestamp","Fp",0,"checkCrc32","GP",0,"localExtraField","HL",0,"checkLocalFilename","IB",0,"filenameEncoding","JD",0,"rawPassword","JO",0,"extractPrependedData","LP",0,"comment","MC",0,"dataDescriptorSignature","PG",0,"extractAppendedData","Q$",0,"useUnicodeFileNames","SB",0,s,"SC",0,"transferStreams","Si",0,"checkAuthenticationCode","So",0,"balanced","VL",0,"checkOverlappingEntryOnly","VV",0,"keepOrder","Wm",0,"checkPasswordOnly","Ym",0,"signCentralDirectory","aK",0,"encryptionStrength","bn",0,"useWebWorkers","cq",0,"filenameValidation","eU",0,"normalizeFilename","hp",0,"encodeText","im",0,"supportZip64SplitFile","j$",0,"filename","jg",0,"extendedTimestamp","kF",0,"password","ki",0,"passThrough","kq",0,"useCompressionStream","ku",0,"commentEncoding","kv",0,"decryptCentralDirectory","ln",0,"decodeText","mU",0,"maxAppendedDataSize","me",0,"centralExtraField","rm",0,"checkLocalDirectory","sC",0,"unixExtraFieldType","sn",0,"checkOverlappingEntry","tg",0,"createTempStream","wM",0,"bufferedWrite","xC",0,"tolerant"])},69400(t,e,n){n.d(e,{LL:()=>b,ho:()=>S,w1:()=>v});var r=n(50305),s=n(26195),a=n(44996),o=n(70949),i=n(90887);const c={name:"PBKDF2"},l=Object.assign({hash:{name:"HMAC"}},c),u=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},c),f=["deriveBits"],d=[8,12,16],w=[16,24,32],h=10,p=typeof crypto!=r.AV,m=p&&crypto.subtle;let g=p&&typeof m!=r.AV&&typeof m.importKey==r.On&&typeof m.deriveBits==r.On,y=o.P;class b extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){z(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:a,resolveReady:o,ready:c}=n;s?(await async function(t,e,n,r){const s=await U(t,e,n,R(r,0,d[e])),a=R(r,d[e]);if(s[0]!=a[0]||s[1]!=a[1])throw x(t),new Error(i.wP)}(n,a,s,R(t,0,d[a]+2)),t=R(t,d[a]+2),r?(x(n),e.error(new Error(i.mV))):o()):await c;const l=new Uint8Array(t.length-h-(t.length-h)%16);e.enqueue(k(n,t,l,0,h,!0))},async flush(t){const{engine:e,pendingInput:n,ready:r}=this;if(e){await r;const a=R(n,n.length-h),o=new Uint8Array(R(n,0,n.length-h));e.process(o,!0);const c=e.digest();let l=n.length<h?1:0;for(let t=0;t<h;t++)l|=c[t]^a[t];if(l&&s)throw new Error(i.RT);t.enqueue(o)}},cancel(){x(this)}})}}class S extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){z(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:o,resolveReady:c,ready:l}=n;let u=r.D6;s?(u=await async function(t,e,n){const r=(0,i.UY)(new Uint8Array(d[e])),s=await U(t,e,n,r);return(0,a.xW)(r,s)}(n,o,s),c()):await l;const f=new Uint8Array(u.length+t.length-t.length%16);f.set(u,0),e.enqueue(k(n,t,f,u.length,0,!1))},async flush(t){const{engine:e,pendingInput:n,ready:r}=this;if(e){await r;const s=new Uint8Array(n);e.process(s,!1);const o=R(e.digest(),0,h);t.enqueue((0,a.xW)(s,o))}},cancel(){x(this)}})}}function v(t){y=t||o.P}function z(t,e,n,s){Object.assign(t,{ready:new Promise(e=>t.resolveReady=e),password:A(e,n),strength:s-1,pendingInput:r.D6})}function k(t,e,n,r,s,o){const{engine:i,pendingInput:c}=t;c.length&&(e=(0,a.xW)(c,e));const l=e.length-s,u=l-l%16;if(n=function(t,e){if(e&&e>t.length){const n=t;(t=new Uint8Array(e)).set(n,0)}return t}(n,r+u),u){const t=R(n,r,r+u);t.set(R(e,0,u)),i.process(t,o)}return t.pendingInput=R(e,u),n}function x({engine:t}){t&&t.dispose&&t.dispose()}async function U(t,e,n,r){t.password=null;const s=w[e],a=await async function(t,e,n){if(g)try{const r=await m.importKey("raw",t,l,!1,f);return new Uint8Array(await m.deriveBits(Object.assign({salt:e},u),r,8*n))}catch{g=!1}return(0,o.A)(t,e,1e3,n)}(n,r,2*s+2);return t.engine=y(R(a,0,s),R(a,s,2*s)),R(a,2*s)}function A(t,e){return void 0===e?(0,s.w)(t):e}function R(t,e,n){return t.subarray(e,n)}},45533(t,e,n){n.d(e,{Qo:()=>i,Ri:()=>r.Ri,St:()=>r.St,mV:()=>r.mV,nD:()=>r.nD,wP:()=>r.wP,z5:()=>o}),n(50305);var r=n(21674);const s="deflate",a="inflate";class o extends TransformStream{constructor(t,e){super({});const n=this,{codecType:o}=t;let i;o.startsWith(s)?i=r.C_:o.startsWith(a)&&(i=r.Oc),n.outputSize=0;let c=0;const l=new i(t,e),u=super.readable,f=new TransformStream({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))},flush(){Object.assign(n,{inputSize:c})}}),d=new TransformStream({transform(e,s){if(e&&e.length&&(s.enqueue(e),n.outputSize+=e.length,void 0!==t.outputSize&&n.outputSize>t.outputSize))throw new Error(r.nD)},flush(){const{crc32:t}=l;Object.assign(n,{crc32:t,inputSize:c})}});Object.defineProperty(n,"readable",{get:()=>u.pipeThrough(f).pipeThrough(l).pipeThrough(d)})}}class i extends TransformStream{constructor(t){const e=[];let n=0,r=0;function s(){const r=new Uint8Array(t);let s=0;for(;s<t;){const n=e[0],a=t-s;n.length<=a?(r.set(n,s),s+=n.length,e.shift()):(r.set(n.subarray(0,a),s),e[0]=n.subarray(a),s+=a)}return n-=t,r}(!Number.isFinite(t)||t<1)&&(t=65536),super({transform(a,o){for(e.push(a),n+=a.length;n>t;)r+=t,o.enqueue(s())},flush(t){n&&(r+=n,t.enqueue(function(t,e){const n=new Uint8Array(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n}(e,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>r})}}n.d(e,["AJ",0,"message","Re",0,a,"XJ",0,s])},70949(t,e,n){n.d(e,{A:()=>p,P:()=>h});const r=64,s=20,a=new Uint8Array([128]),o=new Uint8Array(1),i=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),c=new Uint8Array(256),l=new Int32Array(256),u=new Int32Array(256),f=new Int32Array(256),d=new Int32Array(256);let w=!1;function h(t,e){!function(){if(!w){let t=1,e=1;do{t=255&(t^t<<1^(128&t?27:0)),e=255&(e^e<<1),e=255&(e^e<<2),e=255&(e^e<<4),128&e&&(e^=9),c[t]=255&(e^(e<<1|e>>7)^(e<<2|e>>6)^(e<<3|e>>5)^(e<<4|e>>4)^99)}while(1!=t);c[0]=99;for(let t=0;t<256;t++){const e=c[t],n=b(e),r=n<<24|e<<16|e<<8|n^e;l[t]=r,u[t]=r>>>8|r<<24,f[t]=r>>>16|r<<16,d[t]=r>>>24|r<<8}w=!0}}();const n=new Int32Array(60),r=function(t,e){const n=t.length>>2,r=n+6,s=4*(r+1);let a=1;for(let r=0;r<n;r++)e[r]=t[4*r]<<24|t[4*r+1]<<16|t[4*r+2]<<8|t[4*r+3];for(let t=n;t<s;t++){let r=e[t-1];t%n==0?(r=g(r<<8|r>>>24)^a<<24,a=b(a)):n>6&&t%n==4&&(r=g(r)),e[t]=e[t-n]^r}return r}(t,n),s=new Int32Array(4),a=m(e);let o=0,i=0,h=0,p=0;return{process(t,e){e&&a.update(t,0,t.length),function(t){const e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=t.length;let r=0;for(;r+16<=n;r+=16)S(),e.setInt32(r,e.getInt32(r)^s[0]),e.setInt32(r+4,e.getInt32(r+4)^s[1]),e.setInt32(r+8,e.getInt32(r+8)^s[2]),e.setInt32(r+12,e.getInt32(r+12)^s[3]);if(r<n){S();for(let e=0;r<n;r++,e++)t[r]^=s[e>>2]>>>24-8*(3&e)}}(t),e||a.update(t,0,t.length)},digest:()=>a.digest()};function S(){o=o+1|0,o||(i=i+1|0,i||(h=h+1|0,h||(p=p+1|0)));let t=y(o)^n[0],e=y(i)^n[1],a=y(h)^n[2],w=y(p)^n[3],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[4],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[5],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[6],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[7];t=l[m>>>24]^u[g>>>16&255]^f[b>>>8&255]^d[255&S]^n[8],e=l[g>>>24]^u[b>>>16&255]^f[S>>>8&255]^d[255&m]^n[9],a=l[b>>>24]^u[S>>>16&255]^f[m>>>8&255]^d[255&g]^n[10],w=l[S>>>24]^u[m>>>16&255]^f[g>>>8&255]^d[255&b]^n[11],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[12],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[13],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[14],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[15],t=l[m>>>24]^u[g>>>16&255]^f[b>>>8&255]^d[255&S]^n[16],e=l[g>>>24]^u[b>>>16&255]^f[S>>>8&255]^d[255&m]^n[17],a=l[b>>>24]^u[S>>>16&255]^f[m>>>8&255]^d[255&g]^n[18],w=l[S>>>24]^u[m>>>16&255]^f[g>>>8&255]^d[255&b]^n[19],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[20],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[21],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[22],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[23],t=l[m>>>24]^u[g>>>16&255]^f[b>>>8&255]^d[255&S]^n[24],e=l[g>>>24]^u[b>>>16&255]^f[S>>>8&255]^d[255&m]^n[25],a=l[b>>>24]^u[S>>>16&255]^f[m>>>8&255]^d[255&g]^n[26],w=l[S>>>24]^u[m>>>16&255]^f[g>>>8&255]^d[255&b]^n[27],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[28],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[29],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[30],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[31],t=l[m>>>24]^u[g>>>16&255]^f[b>>>8&255]^d[255&S]^n[32],e=l[g>>>24]^u[b>>>16&255]^f[S>>>8&255]^d[255&m]^n[33],a=l[b>>>24]^u[S>>>16&255]^f[m>>>8&255]^d[255&g]^n[34],w=l[S>>>24]^u[m>>>16&255]^f[g>>>8&255]^d[255&b]^n[35],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[36],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[37],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[38],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[39];let v=40;r>10&&(t=l[m>>>24]^u[g>>>16&255]^f[b>>>8&255]^d[255&S]^n[40],e=l[g>>>24]^u[b>>>16&255]^f[S>>>8&255]^d[255&m]^n[41],a=l[b>>>24]^u[S>>>16&255]^f[m>>>8&255]^d[255&g]^n[42],w=l[S>>>24]^u[m>>>16&255]^f[g>>>8&255]^d[255&b]^n[43],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[44],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[45],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[46],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[47],v=48),r>12&&(t=l[m>>>24]^u[g>>>16&255]^f[b>>>8&255]^d[255&S]^n[48],e=l[g>>>24]^u[b>>>16&255]^f[S>>>8&255]^d[255&m]^n[49],a=l[b>>>24]^u[S>>>16&255]^f[m>>>8&255]^d[255&g]^n[50],w=l[S>>>24]^u[m>>>16&255]^f[g>>>8&255]^d[255&b]^n[51],m=l[t>>>24]^u[e>>>16&255]^f[a>>>8&255]^d[255&w]^n[52],g=l[e>>>24]^u[a>>>16&255]^f[w>>>8&255]^d[255&t]^n[53],b=l[a>>>24]^u[w>>>16&255]^f[t>>>8&255]^d[255&e]^n[54],S=l[w>>>24]^u[t>>>16&255]^f[e>>>8&255]^d[255&a]^n[55],v=56),s[0]=(c[m>>>24]<<24|c[g>>>16&255]<<16|c[b>>>8&255]<<8|c[255&S])^n[v],s[1]=(c[g>>>24]<<24|c[b>>>16&255]<<16|c[S>>>8&255]<<8|c[255&m])^n[v+1],s[2]=(c[b>>>24]<<24|c[S>>>16&255]<<16|c[m>>>8&255]<<8|c[255&g])^n[v+2],s[3]=(c[S>>>24]<<24|c[m>>>16&255]<<16|c[g>>>8&255]<<8|c[255&b])^n[v+3]}}function p(t,e,n,r){const a=m(t),o=new Uint8Array(r),i=new Uint8Array(e.length+4),c=new DataView(i.buffer);i.set(e);for(let t=1,l=0;l<r;t++,l+=s){c.setUint32(e.length,t),a.update(i,0,i.length);let u=a.digest();const f=u.slice();for(let t=1;t<n;t++){a.update(u,0,s),u=a.digest();for(let t=0;t<s;t++)f[t]^=u[t]}o.set(f.subarray(0,Math.min(s,r-l)),l)}return o}function m(t){const e=function(){const t=new Int32Array(i),e=new Int32Array(16),n=new Uint8Array(r),c=new DataView(n.buffer),l=new Uint8Array(8);let u=0,f=0;return{update:d,digest:function(){const e=8*f,n=Math.floor(e/4294967296),r=e>>>0;for(d(a,0,1);56!=u;)d(o,0,1);l[0]=n>>>24,l[1]=n>>>16,l[2]=n>>>8,l[3]=n,l[4]=r>>>24,l[5]=r>>>16,l[6]=r>>>8,l[7]=r,d(l,0,8);const c=new Uint8Array(s),w=new DataView(c.buffer);for(let e=0;e<t.length;e++)w.setInt32(4*e,t[e]);return t.set(i),u=0,f=0,c}};function d(t,e,s){const a=e+s;if(f+=s,u){for(;e<a&&u<r;)n[u++]=t[e++];u==r&&(w(c,0),u=0)}if(e+r<=a){const n=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;e+r<=a;e+=r)w(n,e)}for(;e<a;)n[u++]=t[e++]}function w(n,r){for(let t=0;t<16;t++)e[t]=n.getInt32(r+4*t);let s,a=t[0],o=t[1],i=t[2],c=t[3],l=t[4];for(let t=0;t<15;t+=5)l=(a<<5|a>>>27)+((i^c)&o^c)+l+1518500249+e[t]|0,o=o<<30|o>>>2,c=(l<<5|l>>>27)+((o^i)&a^i)+c+1518500249+e[t+1]|0,a=a<<30|a>>>2,i=(c<<5|c>>>27)+((a^o)&l^o)+i+1518500249+e[t+2]|0,l=l<<30|l>>>2,o=(i<<5|i>>>27)+((l^a)&c^a)+o+1518500249+e[t+3]|0,c=c<<30|c>>>2,a=(o<<5|o>>>27)+((c^l)&i^l)+a+1518500249+e[t+4]|0,i=i<<30|i>>>2;l=(a<<5|a>>>27)+((i^c)&o^c)+l+1518500249+e[15]|0,o=o<<30|o>>>2,s=e[13]^e[8]^e[2]^e[0],s=s<<1|s>>>31,e[0]=s,c=(l<<5|l>>>27)+((o^i)&a^i)+c+1518500249+s|0,a=a<<30|a>>>2,s=e[14]^e[9]^e[3]^e[1],s=s<<1|s>>>31,e[1]=s,i=(c<<5|c>>>27)+((a^o)&l^o)+i+1518500249+s|0,l=l<<30|l>>>2,s=e[15]^e[10]^e[4]^e[2],s=s<<1|s>>>31,e[2]=s,o=(i<<5|i>>>27)+((l^a)&c^a)+o+1518500249+s|0,c=c<<30|c>>>2,s=e[0]^e[11]^e[5]^e[3],s=s<<1|s>>>31,e[3]=s,a=(o<<5|o>>>27)+((c^l)&i^l)+a+1518500249+s|0,i=i<<30|i>>>2;for(let t=20;t<40;t+=5)s=e[t-3&15]^e[t-8&15]^e[t-14&15]^e[15&t],s=s<<1|s>>>31,e[15&t]=s,l=(a<<5|a>>>27)+(o^i^c)+l+1859775393+s|0,o=o<<30|o>>>2,s=e[t-2&15]^e[t-7&15]^e[t-13&15]^e[t+1&15],s=s<<1|s>>>31,e[t+1&15]=s,c=(l<<5|l>>>27)+(a^o^i)+c+1859775393+s|0,a=a<<30|a>>>2,s=e[t-1&15]^e[t-6&15]^e[t-12&15]^e[t+2&15],s=s<<1|s>>>31,e[t+2&15]=s,i=(c<<5|c>>>27)+(l^a^o)+i+1859775393+s|0,l=l<<30|l>>>2,s=e[15&t]^e[t-5&15]^e[t-11&15]^e[t+3&15],s=s<<1|s>>>31,e[t+3&15]=s,o=(i<<5|i>>>27)+(c^l^a)+o+1859775393+s|0,c=c<<30|c>>>2,s=e[t+1&15]^e[t-4&15]^e[t-10&15]^e[t+4&15],s=s<<1|s>>>31,e[t+4&15]=s,a=(o<<5|o>>>27)+(i^c^l)+a+1859775393+s|0,i=i<<30|i>>>2;for(let t=40;t<60;t+=5)s=e[t-3&15]^e[t-8&15]^e[t-14&15]^e[15&t],s=s<<1|s>>>31,e[15&t]=s,l=(a<<5|a>>>27)+(o&i|(o|i)&c)+l+2400959708+s|0,o=o<<30|o>>>2,s=e[t-2&15]^e[t-7&15]^e[t-13&15]^e[t+1&15],s=s<<1|s>>>31,e[t+1&15]=s,c=(l<<5|l>>>27)+(a&o|(a|o)&i)+c+2400959708+s|0,a=a<<30|a>>>2,s=e[t-1&15]^e[t-6&15]^e[t-12&15]^e[t+2&15],s=s<<1|s>>>31,e[t+2&15]=s,i=(c<<5|c>>>27)+(l&a|(l|a)&o)+i+2400959708+s|0,l=l<<30|l>>>2,s=e[15&t]^e[t-5&15]^e[t-11&15]^e[t+3&15],s=s<<1|s>>>31,e[t+3&15]=s,o=(i<<5|i>>>27)+(c&l|(c|l)&a)+o+2400959708+s|0,c=c<<30|c>>>2,s=e[t+1&15]^e[t-4&15]^e[t-10&15]^e[t+4&15],s=s<<1|s>>>31,e[t+4&15]=s,a=(o<<5|o>>>27)+(i&c|(i|c)&l)+a+2400959708+s|0,i=i<<30|i>>>2;for(let t=60;t<80;t+=5)s=e[t-3&15]^e[t-8&15]^e[t-14&15]^e[15&t],s=s<<1|s>>>31,e[15&t]=s,l=(a<<5|a>>>27)+(o^i^c)+l+3395469782+s|0,o=o<<30|o>>>2,s=e[t-2&15]^e[t-7&15]^e[t-13&15]^e[t+1&15],s=s<<1|s>>>31,e[t+1&15]=s,c=(l<<5|l>>>27)+(a^o^i)+c+3395469782+s|0,a=a<<30|a>>>2,s=e[t-1&15]^e[t-6&15]^e[t-12&15]^e[t+2&15],s=s<<1|s>>>31,e[t+2&15]=s,i=(c<<5|c>>>27)+(l^a^o)+i+3395469782+s|0,l=l<<30|l>>>2,s=e[15&t]^e[t-5&15]^e[t-11&15]^e[t+3&15],s=s<<1|s>>>31,e[t+3&15]=s,o=(i<<5|i>>>27)+(c^l^a)+o+3395469782+s|0,c=c<<30|c>>>2,s=e[t+1&15]^e[t-4&15]^e[t-10&15]^e[t+4&15],s=s<<1|s>>>31,e[t+4&15]=s,a=(o<<5|o>>>27)+(i^c^l)+a+3395469782+s|0,i=i<<30|i>>>2;t[0]=t[0]+a|0,t[1]=t[1]+o|0,t[2]=t[2]+i|0,t[3]=t[3]+c|0,t[4]=t[4]+l|0}}(),n=new Uint8Array(r),c=new Uint8Array(r);t.length>r&&(e.update(t,0,t.length),t=e.digest());for(let e=0;e<r;e++){const r=e<t.length?t[e]:0;n[e]=54^r,c[e]=92^r}return e.update(n,0,r),{update(t,n,r){e.update(t,n,r)},digest(){const t=e.digest();e.update(c,0,r),e.update(t,0,s);const a=e.digest();return e.update(n,0,r),a}}}function g(t){return c[t>>>24]<<24|c[t>>>16&255]<<16|c[t>>>8&255]<<8|c[255&t]}function y(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function b(t){return 255&(t<<1^27*(t>>7))}},38691(t,e,n){n.d(e,{s:()=>d});const r=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)e=1&e?e>>>1^3988292384:e>>>1;r[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){const n=r[e-1][t];r[e][t]=n>>>8^r[0][255&n]}const[s,a,o,i,c,l,u,f]=r;class d{constructor(t){this.crc=t||-1}append(t){let e=0|this.crc;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const d=new DataView(t.buffer,t.byteOffset,n),w=n-8;for(;r<=w;r+=8){const t=e^d.getInt32(r,!0),n=d.getInt32(r+4,!0);e=f[255&t]^u[t>>>8&255]^l[t>>>16&255]^c[t>>>24&255]^i[255&n]^o[n>>>8&255]^a[n>>>16&255]^s[n>>>24&255]}}for(;r<n;r++)e=e>>>8^s[255&(e^t[r])];this.crc=e}get(){return~this.crc}}},90887(t,e,n){n.d(e,{UY:()=>a});var r=n(50305);const s=typeof crypto!=r.AV&&typeof crypto.getRandomValues==r.On;function a(t){if(s)return crypto.getRandomValues(t);throw new Error("Crypto API not supported")}n.d(e,["RT",0,"Invalid authentication code","mV",0,"zipjs-abort-check-password","wP",0,"Invalid password"])},21674(t,e,n){n.d(e,{C_:()=>k,mV:()=>o.mV,wP:()=>o.wP,nD:()=>b,Oc:()=>U,St:()=>C,Ri:()=>D});var r=n(38691);class s extends TransformStream{constructor(){let t;const e=new r.s;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}var a=n(69400),o=n(90887);class i extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){l(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=u(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new Error(o.wP);t=t.subarray(12)}r?e.error(new Error(o.mV)):e.enqueue(u(n,t))}})}}class c extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){l(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=(0,o.UY)(new Uint8Array(12));e[11]=n.passwordVerification,r=new Uint8Array(t.length+e.length),r.set(f(n,e),0),s=12}else r=new Uint8Array(t.length),s=0;r.set(f(n,t),s),e.enqueue(r)}})}}function l(t,e,n,s){Object.assign(t,{password:e,rawPassword:n,passwordVerification:s}),function(t,e,n){const s=[305419896,591751049,878082192];if(Object.assign(t,{keys:s,crcKey0:new r.s(s[0]),crcKey2:new r.s(s[2])}),n)for(let e=0;e<n.length;e++)d(t,n[e]);else for(let n=0;n<e.length;n++)d(t,e.charCodeAt(n))}(t,e,n)}function u(t,e){const n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=w(t)^e[r],d(t,n[r]);return n}function f(t,e){const n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=w(t)^e[r],d(t,e[r]);return n}function d(t,e){let[,n]=t.keys;t.crcKey0.append([e]);const r=~t.crcKey0.get();n=p(Math.imul(p(n+h(r)),134775813)+1),t.crcKey2.append([n>>>24]);const s=~t.crcKey2.get();t.keys=[r,n,s]}function w(t){const e=2|t.keys[2];return h(Math.imul(e,1^e)>>>8)}function h(t){return 255&t}function p(t){return 4294967295&t}n(50305);var m=n(44996),g=n(49731),y=n(64072);const b="Invalid uncompressed size",S="deflate-raw",v="gzip",z=[31,139,8];class k extends TransformStream{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:o,encrypted:i,useCompressionStream:l,zipCrypto:u,computeCrc32:f,level:d,deflate64:w,format:h,compressionMethod:p,inputSize:m}=t,g=this;let b,S,z,k=super.readable;const U=h&&(0,y.yE)(h),A=f&&o&&!w&&!U&&(!i||u)&&Boolean(l&&r);if(i&&!u||!f||A||(b=new s,k=E(k,b)),o)if(U)k=P(k,L(U.CompressionStream,h,{level:d,chunkSize:e,compressionMethod:p,uncompressedSize:m}));else if(A)z=new x,k=P(k,new r(v)),k=E(k,z);else try{k=I(k,l,{level:d,chunkSize:e},r,n)}catch(t){let e;try{e=new r(v)}catch{throw t}k=P(k,e),k=E(k,new x)}i&&(u?k=E(k,new c(t)):(S=new a.ho(t),k=E(k,S))),O(g,k,()=>{i&&!u||!f||(g.crc32=A?z.crc32:new DataView(b.value.buffer).getUint32(0))})}}class x extends TransformStream{constructor(){let t,e=10,n=new Uint8Array(0);super({transform(t,r){if(e){const n=Math.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const s=n.length+t.length;if(s<=8)return void(n=(0,m.xW)(n,t));const a=s-8,o=Math.min(a,n.length);r.enqueue((0,m.xW)(n.subarray(0,o),t.subarray(0,a-o))),n=(0,m.xW)(n.subarray(o),t.subarray(a-o))},flush(){const e=(0,m.MS)(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class U extends TransformStream{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:o}){super({});const{zipCrypto:c,encrypted:l,checkCrc32:u,crc32:f,compressed:d,useCompressionStream:w,deflate64:h,format:p,compressionMethod:g,rawBitFlag:S,outputSize:k}=t;let x,U,A=super.readable;if(l&&(c?A=E(A,new i(t)):(U=new a.LL(t),A=E(A,U))),d){const t=p&&(0,y.yE)(p);if(t)A=P(A,L(t.DecompressionStream,p,{chunkSize:e,compressionMethod:g,rawBitFlag:S,uncompressedSize:k}));else try{A=I(A,w,{chunkSize:e,deflate64:h},o,n)}catch(t){if(h||void 0===k)throw t;let e;try{e=new o(v)}catch{throw t}A=function(t,e,n){const s=new r.s;let a,o,i,c=0,l=!1;const u=new Promise((t,e)=>{o=t,i=e});u.catch(()=>{}),n||o();const f=new TransformStream({start(t){const e=new Uint8Array(10);e.set(z),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){l=!0,w();try{await u}finally{h()}const e=new Uint8Array(8),r=(0,m.MS)(e);r.setUint32(0,s.get(),!0),r.setUint32(4,n,!0),t.enqueue(e)},cancel(t){i(t)}}),d=new TransformStream({transform(t,e){s.append(t),c+=t.length,c>=n?o():l&&w(),e.enqueue(t)},cancel(t){i(t)}});return t=E(t,f),E(t=P(t,e),d);function w(){h(),a=setTimeout(()=>i(new Error(b)),5e3)}function h(){clearTimeout(a)}}(A,e,k)}A=function(t){const e=t.getReader();return new ReadableStream({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new Error("Invalid compressed data");throw e.cause=t,e}const{value:r,done:s}=n;s?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})}(A)}u&&(x=new s,A=E(A,x)),O(this,A,()=>{if(u){const t=new DataView(x.value.buffer);if(f!=t.getUint32(0,!1))throw new Error("Invalid CRC32")}})}}const A=new Map;function R(t,e){if(!t)return!1;let n=A.get(t);n||(n=new Map,A.set(t,n));let r=n.get(e);if(void 0===r){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r}function C(t){return R(t,S)}function D(t){return R(t,v)}function O(t,e,n){e=E(e,new TransformStream({flush:n})),Object.defineProperty(t,"readable",{get:()=>e})}function L(t,e,n){if(!t)throw new Error(y.Ns);return new t(e,n)}function I(t,e,n,r,s){const a=e&&r?r:s||r,o=n.deflate64?"deflate64-raw":S;let i;try{i=new a(o,n)}catch(t){if(!e||!s||a==s)throw t;i=new s(o,n)}return P(t,i)}function E(t,e){return(0,g.QK)(t).pipeThrough(e)}function P(t,e){const n=e.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await async function(t,e){try{await t.abort(e)}catch{}}(n,t),await async function(t,e){try{await t.cancel(e)}catch{}}(r,t)}}(),e.readable}},44996(t,e,n){function r(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function s(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function a(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}n.d(e,{MS:()=>a,ok:()=>s,xW:()=>r})},49731(t,e,n){n.d(e,{Ox:()=>o,QK:()=>s,x1:()=>a});var r=n(50305);function s(t){if(t instanceof ReadableStream)return t;const e=t.getReader();return new ReadableStream({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}function a(t,e){t=s(t);const n=e?{type:e}:{};if(typeof Blob.prototype.stream!=r.On||new Blob([]).stream()instanceof ReadableStream)return new Response(t).blob().then(t=>e?new Blob([t],n):t);const a=[];return t.pipeTo(new WritableStream({write(t){a.push(t)}})).then(()=>new Blob(a,n))}function o(t){if(t instanceof WritableStream)return t;const e=t.getWriter();return new WritableStream({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}},79261(t,e,n){n.d(e,{g:()=>s,h:()=>a});const r="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function s(t,e){return o(t,e,!0)}function a(t,e){return o(t,e,!1)}function o(t,e,n){return e&&"cp437"==e.trim().toLowerCase()?function(t){let e="";for(let n=0;n<t.length;n++)e+=r[t[n]];return e}(t):new TextDecoder(e,{ignoreBOM:n}).decode(t)}},26195(t,e,n){n.d(e,{w:()=>s});var r=n(50305);function s(t){if(typeof TextEncoder==r.AV){t=unescape(encodeURIComponent(t));const e=new Uint8Array(t.length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new TextEncoder).encode(t)}},87511(t,e,n){function r(t){return Boolean(t)&&"object"==typeof t}n.d(e,{K:()=>r})},31408(t,e,n){function r(t,e,n){if(!t.some(t=>t.reason==e)){const r={reason:e};void 0!==n&&(r.filename=n),t.push(r)}}n.d(e,{A:()=>r}),n(50305)},62498(t,e,n){n.d(e,{C7:()=>B,HK:()=>I,Oh:()=>P}),n(50305);const r="filename",s="rawFilename",a="comment",o="rawComment",i="uncompressedSize",c="compressedSize",l="diskNumberStart",u="lastModDate",f="rawLastModDate",d="lastAccessDate",w="rawLastAccessDate",h="creationDate",p="rawCreationDate",m="internalFileAttributes",g="externalFileAttributes",y="msdosAttributesRaw",b="msdosAttributes",S="msDosCompatible",v="encrypted",z="version",k="versionMadeBy",x="zipCrypto",U="directory",A="executable",R="compressionMethod",C="signature",D="extraField",O="unixMode",L=[r,s,i,c,u,f,a,o,d,w,h,p,"offset",l,m,g,y,b,S,"zip64",v,z,k,x,U,A,"symlink",R,C,"crc32",D,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",O,"unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class I{constructor(t){L.forEach(e=>this[e]=t[e])}}const E=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13]);function P(t){if(t){const e=new Map;if(t.forEach((t,n)=>{E.has(n)||e.set(n,t.data)}),e.size)return e}}function B(t,e,n){return t?e?12:16+4*n:0}n.d(e,["$T",0,S,"ET",0,y,"FJ",0,A,"Hq",0,h,"JJ",0,x,"Kq",0,a,"Nr",0,C,"Nz",0,d,"Pt",0,l,"Ri",0,o,"VF",0,i,"YQ",0,p,"ZQ",0,g,"Zs",0,R,"_x",0,U,"f9",0,b,"gk",0,r,"jF",0,k,"l0",0,v,"nX",0,s,"nd",0,O,"pf",0,m,"q_",0,w,"r9",0,z,"sw",0,c,"uD",0,f,"xI",0,u,"yg",0,D])},94567(t,e,n){n.d(e,{ZipReader:()=>O,wP:()=>o.wP});var r=n(50305),s=n(91438),a=n(64072),o=n(95549),i=n(20262),c=n(79261),l=n(44996),u=n(31408),f=n(49731),d=n(87511),w=n(38691),h=n(62498),p=n(24066);const m="File format is not recognized",g="Encryption method not supported",y="Split zip file",b="malformed extra field",S="wrapped entries count",v="appended data",z="prepended data",k="mismatched zip64 end of central directory record",x=/^[a-zA-Z]:/,U="utf-8",A="cp437",R=[[h.VF,r.ac],[h.sw,r.ac],["offset",r.ac],[h.Pt,65535]],C={65535:{getValue:it,bytes:4},[r.ac]:{getValue:ct,bytes:8}},D=BigInt(Number.MAX_SAFE_INTEGER);class O{constructor(t,e={}){Object.assign(this,{reader:new i.b9(t),options:e,readRanges:{indexes:new Set,sortedRanges:[],pendingRanges:[]}})}async*getEntriesGenerator(t={}){const e=this;let{reader:n}=e;if(await(0,i.ZD)(n),void 0!==n.size&&n.readUint8Array||(n=new i.nZ(await(0,f.x1)(n.readable)),await(0,i.ZD)(n)),n.size<22)throw new Error(m);const s=e.warnings=[],a=G(t,e.options),o="strict"==a,d=a!=p.xC,w=function(t,e){if(void 0!==t){const e=(0,p.Ro)(t);if("number"!=typeof e||Number.isNaN(e)||e<0)throw new Error("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return e}return"strict"==e?0:e==p.xC?1/0:65535}(et(e,t,p.mU),a),g=function(t,e){if(void 0===t)return e;if(!X(t))throw new Error("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return t}(et(e,t,p.cq),a),x=et(e,t,p.eU),{endOfDirectoryInfo:R,endOfDirectoryReachingEndCount:C}=await async function(t,e,n){const{size:r}=t,s=Math.min(r,65557),a={count:64};let o,i,c=0;for await(const[n,l,u,f,d]of K(t,s))if(d+22+ot(n,f+20)==r){const s=await Q(t,n,l,f,d,r,a);if(2==s){if(o||(o=J(u,f,d)),c++,!e||c>1)break}else 1!=s||i||(i=J(u,f,d))}return o||(o=i),o||(o=await async function(t,e,n){const{size:r}=t,s=Math.min(r,e==1/0?r:65557+e);let a,o;for await(const[e,i,c,l,u]of K(t,s)){const s=J(c,l,u);a||(a=s);const f=await Q(t,e,i,l,u,r,n);if(2==f)return s;1!=f||o||(o=s)}return o||a}(t,n,a)),{endOfDirectoryInfo:o,endOfDirectoryReachingEndCount:c}}(n,d,w);if(!R)throw await async function(t){return await H(t)==r.ZP}(n)?new Error(y):new Error("End of central directory not found");d&&C>1&&tt("multiple end of central directory records");const D=(0,l.MS)(R);let O=it(D,12),W=it(D,16);const T=R.offset,N=ot(D,20),F=T+22+N,M=n.size-F;M>w&&tt(v),M>0&&(0,u.A)(s,v);let V=ot(D,4);const Y=n.lastDiskNumber||0;let _,rt,st,at,lt,ut=ot(D,6),ft=ot(D,10),dt=0,wt=56;const ht=W==r.ac||O==r.ac||65535==ft||65535==ut;if(W!=r.ac&&65535!=ut&&(W+=j(n,ut)),ht){const t=R.offset>=20?await(0,i.Ul)(n,R.offset-20,20):r.D6,e=(0,l.MS)(t);if(20==t.length&&it(e,0)==r.OL){W=j(n,it(e,4))+ct(e,8);let t=await(0,i.Ul)(n,W,56),a=(0,l.MS)(t);const c=R.offset-20-56;if((t.length<56||it(a,0)!=r.Tm)&&W!=c&&c>=0){const e=W;W=c,W>e&&(dt=W-e),t=await(0,i.Ul)(n,W,56),a=(0,l.MS)(t)}if(t.length<56||it(a,0)!=r.Tm)throw new Error("End of Zip64 central directory locator not found");if(st=!0,at=ct(a,4)>44,at){const t=Math.min(ct(a,4)-44,n.size-W-56);t>0&&(wt+=t,lt=function(t){const e={rawExtensibleData:t};if(t.length>=28){const n=(0,l.MS)(t),r=ot(n,26);Object.assign(e,{compressionMethod:ot(n,0),compressedSize:ct(n,2),uncompressedSize:ct(n,10),encryptionAlgorithm:ot(n,18),bitLength:ot(n,20),flags:ot(n,22),hashAlgorithm:ot(n,24),hashData:t.subarray(28,28+r)})}return e}(await(0,i.Ul)(n,W+56,t)))}65535==V?V=it(a,16):V!=it(a,16)&&$(o,s,k),65535==ut?ut=it(a,20):ut!=it(a,20)&&$(o,s,k),65535==ft?ft=ct(a,32):ft!=ct(a,32)&&$(o,s,k),O==r.ac?O=ct(a,40):O!=ct(a,40)&&$(o,s,k),W=j(n,ut)+ct(a,48)+dt}}let pt=O;const mt=R.offset-(st?wt+20:0);if(W>=n.size&&(dt=n.size-W-O-22,W=n.size-O-22),Y!=V)throw new Error(y);if(W<0)throw new Error(m);let gt=0,yt=await(0,i.Ul)(n,W,O),bt=(0,l.MS)(yt);if(O){if(yt.length<4)throw new Error(m);const t=mt-O;if(W!=t&&ut==V){const e=it(bt,gt)==r.cC||Boolean(lt&<.compressedSize)||I(bt);let s=!e;if(!s&&t>=0&&t+4<=n.size){const e=await(0,i.Ul)(n,t,4);s=it((0,l.MS)(e),0)==r.cC}if(s){const r=W;W=t,W>r&&(dt+=W-r,_=e),yt=await(0,i.Ul)(n,W,O),bt=(0,l.MS)(yt)}}}const St=mt-W;if(O!=St&&St>=0&&ut==V&&(O=St,yt=await(0,i.Ul)(n,W,O),bt=(0,l.MS)(yt)),W<0||W>=n.size)throw new Error(m);e.directoryOffset=W,e.directoryLength=pt;const vt=nt(e,t,p.kv);let zt,kt;if(vt&&ft&&yt.length>=4&&it(bt,0)!=r.cC&&(at||I(bt))){const t=function(t,e,n){const r=t&&t.compressedSize?t.compressedSize:e;return r>0&&r<=n?r:n}(lt,pt,yt.length);kt=yt.subarray(t),yt=await vt(yt.subarray(0,t),lt),bt=(0,l.MS)(yt),pt=yt.length,zt=!0}lt&&!zt&&(yt.length<4||it(bt,0)==r.cC)&&(0,u.A)(s,"unknown zip64 extensible data"),rt=W;const xt=et(e,t,p.IB),Ut=et(e,t,p.ku),At=new Set;let Rt,Ct=-1;const Dt=!o&&!st;!ft&&Dt&&(ft=E(bt,yt,gt),ft&&(0,u.A)(s,S));for(let a=0;a<ft;a++){const o=new L(n,e.options);if(gt+46>yt.length||it(bt,gt)!=r.cC){if(0==a&&!zt&&(at||I(bt)))throw new Error("Encrypted central directory is not supported");throw new Error("Central directory header not found")}B(o,bt,gt+6);const i=Boolean(o.bitFlag.languageEncodingFlag),l=gt+46,d=l+o.filenameLength,w=d+o.extraFieldLength,m=ot(bt,gt+4),y=!(m>>8),v=m>>8==3,z=yt.subarray(l,d),k=ot(bt,gt+32),R=w+k,C=yt.subarray(w,R),D=i,O=i,P=it(bt,gt+38),W=255&P,T={readOnly:Boolean(1&W),hidden:Boolean(2&W),system:Boolean(4&W),directory:Boolean(16&W),archive:Boolean(32&W)},N=it(bt,gt+42),F=nt(e,t,p.ln)||c.g,M=D?U:xt||A,V=O?U:Ut||A;let H=F(z,M,p.j$);if(void 0===H&&(H=(0,c.g)(z,M)),x){const t=x(H);void 0!==t&&(H=t)}if(Z(H,g)){const t=new Error("Unsafe filename");throw t.filename=H,t}let X=F(C,V,p.LP);void 0===X&&(X=(0,c.g)(C,V)),Object.assign(o,{index:a,decryptedDirectory:zt,versionMadeBy:m,msDosCompatible:y,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:k,offset:N,diskNumberStart:ot(bt,gt+34),internalFileAttributes:ot(bt,gt+36),externalFileAttributes:P,msdosAttributesRaw:W,msdosAttributes:T,rawFilename:z,filenameUTF8:D,commentUTF8:O,rawExtraField:yt.subarray(d,w),rawComment:C,filename:H,comment:X}),q(o,o,bt,gt+6)&&(0,u.A)(s,b,H),o.offset+=dt;const G=j(n,o.diskNumberStart)+o.offset;rt=Math.min(G,rt),G<Ct&&(0,u.A)(s,"unsorted central directory",H),Ct=G,(255&o.version)>63&&(0,u.A)(s,"unknown version needed to extract",H),32&~o.rawBitFlag||(0,u.A)(s,"compressed patched data",H),At.has(o.filename)&&(Rt=!0),At.add(o.filename);const Y=o.externalFileAttributes>>16&65535;void 0===o.unixMode&&16877&Y&&(o.unixMode=Y);const K=Boolean(2048&o.unixMode),J=Boolean(1024&o.unixMode),Q=Boolean(512&o.unixMode),_=40960==(61440&(void 0===o.unixMode?Y:o.unixMode)),$=!_&&(void 0!==o.unixMode?!!(73&o.unixMode):v&&!!(73&Y)),tt=void 0!==o.unixMode&&16384==(61440&o.unixMode),et=16384==(61440&Y);Object.assign(o,{setuid:K,setgid:J,sticky:Q,symlink:_,unixExternalUpper:Y,executable:$,directory:tt||et||y&&T.directory||o.filename.endsWith("/"),zipCrypto:o.encrypted&&!o.extraFieldAES});const st=new h.HK(o);if(st.getData=(t,n)=>o.getData(t,st,e.readRanges,n),st.arrayBuffer=async t=>{const n=new TransformStream,r=(0,f.x1)(n.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await o.getData(n,st,e.readRanges,Object.assign({},t,{preventClose:!1})),r},gt=R,a==ft-1&&Dt){const t=E(bt,yt,gt);t&&(ft+=t,(0,u.A)(s,S))}const{onprogress:ct}=t;if(ct)try{await ct(a+1,ft,new h.HK(o))}catch{}yield st}let Ot=gt,Lt=P(yt.subarray(gt))||(zt?P(kt):void 0);if(!Lt&&!zt){const t=W+gt,e=Math.min(mt-t,65541);e>=6&&(Lt=P(await(0,i.Ul)(n,t,e)))}Lt&&(e.digitalSignature=Lt,Ot=gt+6+Lt.length),(gt!=pt&&Ot!=pt||!zt&>!=O&&Ot!=O)&&$(o,s,"trailing central directory data"),Rt&&$(o,s,"duplicate filename");const It=et(e,t,p.JO),Et=et(e,t,p.PG),Pt=(o||It)&&ft&&4==rt&&await async function(t){const e=await H(t);return e==r.ZP||e==r.dh}(n)?4:0;return o&&(dt||ft&&rt>Pt)&&tt(z),(dt||ft&&rt>4)&&(0,u.A)(s,z),_&&(0,u.A)(s,"prepended central directory"),It&&(e.prependedData=rt>Pt?await(0,i.Ul)(n,Pt,rt-Pt):r.D6),e.comment=N?await(0,i.Ul)(n,T+22,N):r.D6,Et&&(e.appendedData=F<n.size?await(0,i.Ul)(n,F,n.size-F):r.D6),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}[r.kZ](){return this.close()}}class L{constructor(t,e){Object.assign(this,{reader:t,options:e})}async getData(t,e,n,c={}){const w=this,m=(0,s.D0)(),{reader:y,index:S,offset:v,diskNumberStart:z,extraFieldAES:k,extraFieldZip64:x,compressionMethod:U,bitFlag:A,rawBitFlag:R,crc32:C,rawLastModDate:D,uncompressedSize:O,compressedSize:L}=w,{dataDescriptor:I}=A,E=e.localDirectory={},P=e.warnings=[],W=j(y,z)+v,T=await(0,i.Ul)(y,W,30),N=(0,l.MS)(T);let F=et(w,c,p.kF),H=et(w,c,p.JD);const X=(0,p.Ot)(et(w,c,p.ki)),Y=Boolean(X),Z=!0===X;if((0,p.Tc)(F,H),F=F&&F.length&&F,H=H&&H.length&&H,k&&99!=k.originalCompressionMethod)throw new Error(a.Ns);if(T.length<30||it(N,0)!=r.Gq)throw new Error("Local file header not found");B(E,N,4);const{extraFieldLength:K,filenameLength:J}=E,Q=E.dataOffset=W+30+J+K,_=et(w,c,p.rm),tt=G(c,w.options),nt=function(t,e){return void 0===t?e!=p.xC:Boolean(t)}(_,tt),rt=et(w,c,p.HL),st=function(t,e){return void 0===t?"strict"==e:Boolean(t)}(void 0===rt?_:rt,tt);let at=r.D6;if(st&&(J||K)){const t=await(0,i.Ul)(y,W+30,J+K);at=t.subarray(0,J),E.rawExtraField=t.subarray(J)}else E.rawExtraField=K?await(0,i.Ul)(y,W+30+J,K):r.D6;st&&(E.rawFilename=at),q(w,E,N,4,!0)&&(0,u.A)(P,b),function(t,e,n,r,s){const{rawFilename:a}=t,o=!s,i=t.decryptedDirectory&&!(8192&~e.rawBitFlag);!r||i||n.length==a.length&&!n.some((t,e)=>t!=a[e])||$(o,s,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&$(o,s,"mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&$(o,s,"mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||i||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||$(o,s,"mismatched local file header (crc32 or sizes)")}(w,E,at,st,nt?void 0:P);const{lastAccessDate:ot,creationDate:ct,uid:lt,gid:ut}=E;ot&&(e.lastAccessDate=ot),ct&&(e.creationDate=ct),void 0!==lt&&void 0===e.uid&&(e.uid=lt),void 0!==ut&&void 0===e.gid&&(e.gid=ut);const ft=et(w,c,p.Wm),dt=w.encrypted&&E.encrypted&&(!Z||ft),wt=dt&&!k;if(Z||(e.zipCrypto=wt),dt&&!(64&~E.rawBitFlag))throw new Error(g);const ht=Y?void 0:(0,a.$_)(U);if(0!=U&&8!=U&&9!=U&&!ht&&!Y)throw new Error(a.Ns);if(dt){if(!wt&&(k.strength<1||k.strength>3))throw new Error(g);if(!F&&!H)throw new Error("File contains encrypted entry")}if(Q+L>y.size)throw new Error("Entry data out of bounds");const pt=L,mt=(0,p.mR)(et(w,c,"signal"));(0,p.Te)(mt);let gt=et(w,c,p.sn);const yt=et(w,c,p.VL);yt&&(gt=!0);const{onstart:bt,onprogress:St,onend:vt}=c,zt=0!=U&&!Y,kt=Y?L-(0,h.C7)(dt,wt,k&&k.strength):O,xt=9==U;let Ut=et(w,c,p.kq);xt&&(Ut=!1);const At=et(w,c,p.Fp),Rt=(void 0===At?et(w,c,p.A4):At)&&!Y&&(!dt||wt||k&&1==k.vendorVersion),Ct={options:{codecType:o.Re,password:F,rawPassword:H,zipCrypto:wt,encryptionStrength:k&&k.strength,checkCrc32:Rt,checkAuthenticationCode:et(w,c,p.Si),passwordVerification:wt&&(I?D>>>8&255:C>>>24&255),outputSize:kt,crc32:C,compressed:zt,encrypted:dt,useWebWorkers:et(w,c,p.bn),useCompressionStream:Ut,transferStreams:et(w,c,p.SC),deflate64:xt,format:ht?ht.format:void 0,codecURI:ht?ht.codecURI:void 0,compressionMethod:U,rawBitFlag:R,checkPasswordOnly:ft},config:m,streamOptions:{signal:mt,size:pt,onstart:bt,onprogress:St,onend:vt}};let Dt,Ot,Lt;gt&&await async function({reader:t,fileEntry:e,index:n,offset:s,crc32:a,compressedSize:o,uncompressedSize:c,dataOffset:u,dataDescriptor:f,extraFieldZip64:d,readRanges:w}){let h=0;if(f&&(h=d?20:12),h){const n=await(0,i.Ul)(t,u+o,h+4),s=(0,l.MS)(n);let f=n.length==h+4&&it(s,0)==r.Gi;if(f){const t=V(s,4,d);(e.encrypted&&!e.zipCrypto||t.crc32==a)&&t.compressedSize==o&&t.uncompressedSize==c?h+=4:f=!1}if(n.length>=h){const t=V(s,f?4:0,d);t.signature=f,e.localDirectory.dataDescriptor=t}}const p={start:s,end:u+o+h,fileEntry:e},{indexes:m,sortedRanges:g,pendingRanges:y}=w;if(!m.has(n)){const t=function(t,e){let n=0,r=t.length;for(;n<r;){const s=n+r>>>1;t[s].start<e.start?n=s+1:r=s}const s=t[n-1],a=t[n];return s&&M(e,s)?s:a&&M(e,a)?a:void 0}(g,p)||y.find(t=>M(p,t));if(t){const e=new Error("Overlapping entry found");throw e.overlappingEntry=t.fileEntry,e}m.add(n),y.push(p),y.length*y.length>g.length&&(y.sort((t,e)=>t.start-e.start),w.sortedRanges=function(t,e){const n=[];let r=0,s=0;for(;r<t.length||s<e.length;)s==e.length||r<t.length&&t[r].start<e[s].start?n.push(t[r++]):n.push(e[s++]);return n}(g,y),y.length=0)}}({reader:y,fileEntry:e,index:S,offset:W,crc32:C,compressedSize:L,uncompressedSize:O,dataOffset:Q,dataDescriptor:I||E.bitFlag.dataDescriptor,extraFieldZip64:x||E.extraFieldZip64,readRanges:n});try{if(!yt){ft&&(t=new WritableStream),t=new i.xm(t),await(0,i.ZD)(t,function(t,e,n){return Math.min(t,n?1032*e:e)}(kt,L,zt)),({writable:Dt}=t);const e=(0,f.QK)(y.createReadable({offset:Q,size:pt})),{outputSize:n}=await(0,o.WY)({readable:e,writable:Dt},Ct);if(n!=kt)throw Object.assign(new Error(o.nD),{outputSize:n});t.size+=n}}catch(e){const{outputSize:n}=Ct;if(void 0!==n?t.size+=n:(0,d.K)(e)&&void 0!==e.outputSize&&(t.size+=e.outputSize),!ft||!(0,d.K)(e)||e.message!=o.mV)throw Ot=e,Lt=!0,e}finally{if(((0,i.kh)(t)||!et(w,c,p.C5))&&Dt&&!Dt.locked){const t=Dt.getWriter();if(Lt)try{await t.abort(Ot)}catch{}else await t.close()}}return ft||yt?void 0:t.getData?t.getData():Dt}}function I(t){const e=Math.min(t.byteLength,1024)-3;for(let n=0;n<e;n++)if(it(t,n)==r.G4)return!0;return!1}function E(t,e,n){let s=0;for(;n+46<=e.length&&it(t,n)==r.cC;)n+=46+ot(t,n+28)+ot(t,n+30)+ot(t,n+32),s++;return s%65536?0:s}function P(t){if(t.length>=6){const e=(0,l.MS)(t);if(it(e,0)==r.nc){const n=ot(e,4);if(6+n<=t.length)return t.subarray(6,6+n)}}}function B(t,e,n){const r=t.rawBitFlag=ot(e,n+2),s=!(1&~r),a=it(e,n+6);Object.assign(t,{encrypted:s,version:ot(e,n),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:!(2048&~r)},rawLastModDate:a,lastModDate:rt(a),filenameLength:ot(e,n+22),extraFieldLength:ot(e,n+24)})}function q(t,e,n,r,s){const{rawExtraField:a}=e,o=e.extraField=new Map,i=(0,l.MS)(a);let c=0,u=!1;try{for(;c<a.length;){const t=ot(i,c),e=ot(i,c+2);o.set(t,{type:t,data:a.slice(c+4,c+4+e)}),c+=4+e}}catch{u=!0}c>a.length&&(u=!0);const f=ot(n,r+4);Object.assign(e,{signature:it(n,r+10),crc32:it(n,r+10),compressedSize:it(n,r+14),uncompressedSize:it(n,r+18)});const d=o.get(1);d&&(function(t,e){e.zip64=!0;const n=(0,l.MS)(t.data),r=R.filter(([t,n])=>e[t]==n),s=r.reduce((t,[,e])=>t+C[e].bytes,0);if(t.data.length<s)throw new Error("Zip64 extra field not found");for(let s=0,a=0;s<r.length;s++){const[o,i]=r[s],c=C[i];e[o]=t[o]=c.getValue(n,a),a+=c.bytes}}(d,e),e.extraFieldZip64=d);const w=o.get(28789);w&&(W(w,h.gk,h.nX,e,t),e.extraFieldUnicodePath=w);const p=o.get(25461);p&&(W(p,h.Kq,h.Ri,e,t),e.extraFieldUnicodeComment=p);const m=o.get(39169);m&&m.data.length>=7?(function(t,e,n){const r=(0,l.MS)(t.data),s=at(r,4);Object.assign(t,{vendorVersion:at(r,0),vendorId:at(r,2),strength:s,originalCompressionMethod:n,compressionMethod:ot(r,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=void 0)}(m,e,f),e.extraFieldAES=m):e.compressionMethod=f;const g=o.get(13);g&&(T(g,e),e.extraFieldPkwareUnix=g);const y=o.get(22613);y&&(T(y,e),e.extraFieldUnixType1=y);const b=o.get(10);b&&(function(t,e){const n=(0,l.MS)(t.data);let r,s=4;try{for(;s<t.data.length&&!r;){const e=ot(n,s),a=ot(n,s+2);1==e&&(r=t.data.slice(s+4,s+4+a)),s+=4+a}}catch{}if(r&&24==r.length){const n=(0,l.MS)(r),s=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:o});const i={lastModDate:st(s),lastAccessDate:st(a),creationDate:st(o)};Object.assign(t,i),Object.assign(e,i,{rawLastAccessDate:a,rawCreationDate:o})}}(b,e),e.extraFieldNTFS=b);const S=o.get(30805);let v;if(S&&(v=N(S,e,!1),e.extraFieldUnix=S),!v){const t=o.get(30837);t&&(N(t,e,!0),e.extraFieldInfoZip=t)}const z=o.get(21589);z&&(function(t,e,n){if(!t.data.length)return;const r=(0,l.MS)(t.data),s=at(r,0),a=[],o=[];n?(1&~s||(a.push(h.xI),o.push(h.uD)),2&~s||(a.push(h.Nz),o.push(h.q_)),4&~s||(a.push(h.Hq),o.push(h.YQ))):t.data.length>=5&&(a.push(h.xI),o.push(h.uD));let i=1;a.forEach((n,s)=>{if(t.data.length>=i+4){const a=it(r,i);e[n]=t[n]=new Date(1e3*(0|a));const c=o[s];t[c]=a}i+=4})}(z,e,s),e.extraFieldExtendedTimestamp=z);const k=o.get(6534);return k&&(e.extraFieldUSDZ=k),u}function W(t,e,n,r,s){if(t.data.length<5)return void(t.valid=!1);const a=(0,l.MS)(t.data),o=new w.s;o.append(s[n]);const i=(0,l.MS)(new Uint8Array(4));i.setUint32(0,o.get(),!0);const u=it(a,1),f=at(a,0);Object.assign(t,{version:f,[e]:(0,c.g)(t.data.subarray(5)),valid:1==f&&!s.bitFlag.languageEncodingFlag&&u==it(i,0)}),t.valid&&(r[e]=t[e],r[e+"UTF8"]=!0)}function T(t,e){if(t.data.length<8)return;const n=(0,l.MS)(t.data),r={lastAccessDate:new Date(1e3*(0|it(n,0))),lastModDate:new Date(1e3*(0|it(n,4)))};t.data.length>=12&&(r.uid=ot(n,8),r.gid=ot(n,10)),Object.assign(t,r),Object.assign(e,r)}function N(t,e,n){try{const r=(0,l.MS)(t.data);let s,a;if(n){let e=0;const n=at(r,e++),o=at(r,e++);s=F(t.data.subarray(e,e+o)),e+=o;const i=at(r,e++);a=F(t.data.subarray(e,e+i)),Object.assign(t,{version:n,uid:s,gid:a})}else t.data.length>=4&&(s=ot(r,0),a=ot(r,2),Object.assign(t,{uid:s,gid:a}));return void 0!==s&&(e.uid=s),void 0!==a&&(e.gid=a),void 0!==s||void 0!==a}catch{}}function F(t){const e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function M(t,e){return t.start<e.end&&e.start<t.end}function V(t,e,n){const r=it(t,e);let s,a;return n?(s=ct(t,e+4),a=ct(t,e+12)):(s=it(t,e+4),a=it(t,e+8)),{crc32:r,compressedSize:s,uncompressedSize:a}}function j(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function H(t){const e=await(0,i.Ul)(t,0,4);return it((0,l.MS)(e))}function X(t){return"strict"===t||t===p.So||t===p.xC}function G(t,e){return Y(t,Y(e,p.So))}function Y(t,e){const n=t[p.BH];if(void 0!==n){if(!X(n))throw new Error("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=t[p.D9];return void 0===r?e:r?"strict":e==p.xC?p.xC:p.So}function Z(t,e){if(e==p.xC)return!1;const n=t.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(n.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||x.test(t))||"strict"==e&&(n.includes(".")||n.includes(""))}async function*K(t,e){const n=t.size-e,s=await(0,i.Ul)(t,n,e),a=(0,l.MS)(s);for(let t=s.length-22;t>=0;t--)it(a,t)==r.fB&&(yield[a,n,s,t,n+t])}function J(t,e,n){return{offset:n,buffer:t.slice(e,e+22).buffer}}async function Q(t,e,n,s,a,o,i){const c=ot(e,s+10),l=it(e,s+12),u=it(e,s+16);if(65535==c||l==r.ac||u==r.ac)return await _(t,e,n,a-20,o,i)==r.OL?2:0;if(!c&&!l)return 1;const f=ot(e,s+6);for(const s of[a-l,j(t,f)+u])if(await _(t,e,n,s,o,i)==r.cC)return 2;return 0}async function _(t,e,n,r,s,a){if(!(r<0||r+4>s)){if(r>=n)return it(e,r-n);if(a.count>0){a.count--;const e=await(0,i.Ul)(t,r,4);return it((0,l.MS)(e),0)}}}function $(t,e,n){t?tt(n):(0,u.A)(e,n)}function tt(t){const e=new Error("Ambiguous archive");throw e.reason=t,e}function et(t,e,n){return void 0===e[n]?t.options[n]:e[n]}function nt(t,e,n){return(0,p.oe)(et(t,e,n))}function rt(t){const e=(4294901760&t)>>16,n=65535&t,s=new Date(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return s<r.AN?r.AN:s}function st(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function at(t,e){return t.getUint8(e)}function ot(t,e){return t.getUint16(e,!0)}function it(t,e){return t.getUint32(e,!0)}function ct(t,e){const n=t.getBigUint64(e,!0);if(n>D)throw new Error("64-bit value exceeds Number.MAX_SAFE_INTEGER");return Number(n)}}}]);
|
|
Binary file
|
package/chunks/DeepSky.glsl.js
CHANGED
|
@@ -1,36 +1,15 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
|
|
2
|
-
import{invertOrIdentity as
|
|
2
|
+
import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{Gamma as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4PassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js";import{Texture2DPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as d}from"../views/webgl/ShaderBuilder.js";function l(){const r=new d;r.attributes.add("position","vec2"),r.varyings.add("worldRay","vec3");const{vertex:l,fragment:g}=r;return l.uniforms.add(new t("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new t("inverseViewMatrix",r=>e(c,r.camera.viewMatrix))),l.main.add(o`vec3 posViewNear = (inverseProjectionMatrix * vec4(position, -1.0, 1.0)).xyz;
|
|
3
3
|
worldRay = (inverseViewMatrix * vec4(posViewNear, 0.0)).xyz;
|
|
4
|
-
gl_Position = vec4(position, 1.0, 1.0);`),
|
|
4
|
+
gl_Position = vec4(position, 1.0, 1.0);`),g.uniforms.add(new n("inverseModelMatrix",e=>e.inverseModelMatrix),new s("bandTexture",e=>e.bandTexture),new i("heightAboveSeaLevelSquared",e=>e.heightAboveSeaLevelSquared),new i("radiusCloseToGround",e=>e.radiusCloseToGround),new i("radiusBrightnessTransitionEnd",e=>e.radiusBrightnessTransitionEnd)),g.constants.add("bandInner","float",u).constants.add("bandOuter","float",v).constants.add("brightness","float",b).constants.add("brightnessCloseToGround","float",m),g.include(a),g.code.add(o`vec2 wrapBandUv(vec2 uv) {
|
|
5
5
|
return vec2(fract(uv.x), clamp(uv.y, 0.0, 1.0));
|
|
6
|
-
}`),
|
|
7
|
-
vec3 encoded = texture(bandTexture, wrapBandUv(uv)).rgb;
|
|
8
|
-
return (encoded * encoded) / bandEncodeScale;
|
|
9
|
-
}`),l.code.add(o`vec3 equatorialToGalactic(vec3 dir) {
|
|
6
|
+
}`),g.code.add(o`vec3 equatorialToGalactic(vec3 dir) {
|
|
10
7
|
return vec3(
|
|
11
8
|
dot(dir, vec3(-0.0548755604, -0.8734370902, -0.4838350155)),
|
|
12
9
|
dot(dir, vec3( 0.4941094279, -0.4448296300, 0.7469822445)),
|
|
13
10
|
dot(dir, vec3(-0.8676661490, -0.1980763734, 0.4559837762))
|
|
14
11
|
);
|
|
15
|
-
}
|
|
16
|
-
float gaussian1D(float x, float sigma) {
|
|
17
|
-
float t = x / sigma;
|
|
18
|
-
return exp(-0.5 * t * t);
|
|
19
|
-
}
|
|
20
|
-
float wrapAngle(float angle) {
|
|
21
|
-
return atan(sin(angle), cos(angle));
|
|
22
|
-
}`),l.code.add(o`vec3 sampleResidual(float galacticLon, float galacticLat) {
|
|
23
|
-
float absB = abs(galacticLat);
|
|
24
|
-
float broadPlane = exp(-absB / residualSigmaBroad);
|
|
25
|
-
float corePlane = gaussian1D(galacticLat, residualSigmaCore);
|
|
26
|
-
float centerBulge = gaussian1D(wrapAngle(galacticLon), residualSigmaCenterLon) * gaussian1D(galacticLat, residualSigmaCenterLat);
|
|
27
|
-
return residualFloorColor +
|
|
28
|
-
residualBroadPlaneColor * broadPlane +
|
|
29
|
-
residualCorePlaneColor * corePlane +
|
|
30
|
-
residualCenterBulgeColor * centerBulge;
|
|
31
|
-
}`),l.main.add(o`
|
|
32
|
-
// Rotate the view ray into the current celestial frame, then flip into the equatorial
|
|
33
|
-
// convention used by the stars data and the deep-sky preprocessing pipeline.
|
|
12
|
+
}`),g.main.add(o`
|
|
34
13
|
vec3 worldDir = normalize(worldRay);
|
|
35
14
|
vec3 celestialDir = normalize((inverseModelMatrix * vec4(worldDir, 0.0)).xyz);
|
|
36
15
|
vec3 equatorialDir = vec3(-celestialDir.xy, celestialDir.z);
|
|
@@ -40,27 +19,21 @@ residualCenterBulgeColor * centerBulge;
|
|
|
40
19
|
float absB = abs(b);
|
|
41
20
|
float l = atan(galacticDir.y, galacticDir.x);
|
|
42
21
|
|
|
43
|
-
|
|
44
|
-
// while the residual extends farther and fades to zero in the outer sky.
|
|
45
|
-
float bandMask = (1.0 - smoothstep(bandInner, bandOuter, absB));
|
|
46
|
-
float residualMask = (1.0 - smoothstep(bandOuter, residualOuter, absB));
|
|
22
|
+
float bandMask = 1.0 - smoothstep(bandInner, bandOuter, absB);
|
|
47
23
|
|
|
48
|
-
if (bandMask == 0.0
|
|
24
|
+
if (bandMask == 0.0) {
|
|
49
25
|
discard;
|
|
50
26
|
}
|
|
51
27
|
|
|
52
28
|
// The band texture is parameterized by galactic longitude and by latitude remapped from the
|
|
53
29
|
// cropped [-bandOuter, +bandOuter] interval into [0, 1].
|
|
54
30
|
vec2 bandUv = vec2(fract(l / ${o.float(2*Math.PI)} + 0.5), clamp((b + bandOuter) / (2.0 * bandOuter), 0.0, 1.0));
|
|
55
|
-
|
|
31
|
+
vec4 bandTexture = texture(bandTexture, wrapBandUv(bandUv));
|
|
32
|
+
vec3 bandColor = linearizeGamma(bandTexture.rgb);
|
|
56
33
|
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
float deepSkyAlpha = max(bandMask * bandAlpha, residualMask * residualAlpha);
|
|
64
|
-
|
|
65
|
-
fragColor = vec4(delinearizeGamma(deepSkyColor), deepSkyAlpha);
|
|
66
|
-
`),e}const c=e(),u=8*Math.PI/180,m=18*Math.PI/180,g=48,f=30*Math.PI/180,b=t(.00037912933280105036,966403148172618e-19,0),v=t(.0006391131181262561,.001663171662153682,.0019988993871838086),p=t(.0022710911301533463,.0014036775769294533,.0008699157429814243),h=t(.012048146292768035,.008078340563000157,.005795412645214463),x=34.3609898352314*Math.PI/180,M=7.496212095292093*Math.PI/180,w=51.566192676725976*Math.PI/180,y=9.564164702743726*Math.PI/180,B=15,C=.03,P=.35,S=48,k=.2,D=Object.freeze(Object.defineProperty({__proto__:null,build:l},Symbol.toStringTag,{value:"Module"}));export{D,l as b};
|
|
34
|
+
// The Milkyway is a prominent feature in globe view, but we reduce brightness close to ground because it should not
|
|
35
|
+
// be a dominant feature in these views.
|
|
36
|
+
float brightnessOverground = mix(brightnessCloseToGround, brightness, smoothstep(radiusCloseToGround, radiusBrightnessTransitionEnd, heightAboveSeaLevelSquared));
|
|
37
|
+
vec3 deepSkyColor = bandColor * brightnessOverground;
|
|
38
|
+
fragColor = vec4(delinearizeGamma(deepSkyColor), bandTexture.a * bandMask);
|
|
39
|
+
`),r}const c=r(),u=8*Math.PI/180,v=18*Math.PI/180,b=.8,m=.3,g=Object.freeze(Object.defineProperty({__proto__:null,build:l},Symbol.toStringTag,{value:"Module"}));export{g as D,l as b};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.2.0-next.
|
|
3
|
+
"version": "5.2.0-next.110",
|
|
4
4
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ArcGIS",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@amcharts/amcharts5": "~5.20.5",
|
|
23
|
-
"@arcgis/toolkit": "5.2.0-next.
|
|
23
|
+
"@arcgis/toolkit": "5.2.0-next.110",
|
|
24
24
|
"@esri/arcgis-html-sanitizer": "~4.1.0",
|
|
25
25
|
"@esri/calcite-components": "^5.2.0-next.65",
|
|
26
26
|
"@vaadin/grid": "~25.2.10",
|
|
27
|
-
"@zip.js/zip.js": "~2.14.
|
|
27
|
+
"@zip.js/zip.js": "~2.14.1",
|
|
28
28
|
"luxon": "~3.7.2",
|
|
29
29
|
"marked": "~18.0.12",
|
|
30
30
|
"tslib": "^2.8.1"
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const f="20260914",e="9464839586f236683e71f2f1c3af053da8bb0e67";export{f as buildDate,e as revision};
|
|
@@ -23,12 +23,12 @@ export interface Symbol3DLayerProperties {}
|
|
|
23
23
|
* ------------|-----------|------------|-------------|-----------
|
|
24
24
|
* [IconSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/IconSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | 
|
|
25
25
|
* [ObjectSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ObjectSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | 
|
|
26
|
-
* [LineSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/)
|
|
26
|
+
* [LineSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/) | flat | points | 
|
|
27
27
|
* [PathSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/PathSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/) | volumetric | meters | 
|
|
28
28
|
* [FillSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [MeshSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/) | flat | - | 
|
|
29
29
|
* [WaterSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/WaterSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | - | 
|
|
30
30
|
* [ExtrudeSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ExtrudeSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | 
|
|
31
|
-
* [TextSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [
|
|
31
|
+
* [TextSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [LabelSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LabelSymbol3D/) | flat | points | 
|
|
32
32
|
*
|
|
33
33
|
* The size of flat symbol layers is usually defined in either points or pixels (screen space) whereas the
|
|
34
34
|
* size of volumetric symbol layers is defined in meters (real-world space).
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{destroyMaybe as
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{when as o,watch as i,initial as r,syncAndInitial as s}from"../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{DoubleClickZoom as c}from"./handlers/DoubleClickZoom.js";import{DoubleTapDragZoom as l}from"./handlers/DoubleTapDragZoom.js";import{DragPan as m}from"./handlers/DragPan.js";import{DragRotate as u}from"./handlers/DragRotate.js";import{DragZoomBox as h}from"./handlers/DragZoomBox.js";import{GamepadNavigation as w}from"./handlers/GamepadNavigation.js";import{KeyPan as d}from"./handlers/KeyPan.js";import{KeyRotate as v}from"./handlers/KeyRotate.js";import{KeyZoom as g}from"./handlers/KeyZoom.js";import{MouseWheelZoom as f}from"./handlers/MouseWheelZoom.js";import{PinchRotateAndZoom as j}from"./handlers/PinchAction.js";import{BrowserEventSource as A}from"../../input/BrowserEventSource.js";import{InputManager as y,ViewEventPriorities as _}from"../../input/InputManager.js";import{PreventContextMenu as D}from"../../input/handlers/PreventContextMenu.js";import{PreventTouchSelection as M}from"../../input/handlers/PreventTouchSelection.js";import{getPointerActions as P}from"../../input/handlers/support.js";import{DoubleTapDrag as I}from"../../input/recognizers/DoubleTapDrag.js";import{Drag as b}from"../../input/recognizers/Drag.js";import{ImmediateDoubleClick as z}from"../../input/recognizers/ImmediateDoubleClick.js";import{PointerClickHoldAndDrag as T}from"../../input/recognizers/PointerClickHoldAndDrag.js";import{SingleAndDoubleClick as E}from"../../input/recognizers/SingleAndDoubleClick.js";const N={counter:"Control",precisionPan:"Alt",pan:{left:"ArrowLeft",right:"ArrowRight",up:"ArrowUp",down:"ArrowDown"},zoom:{zoomIn:["=","+"],zoomOut:["-","_"]},rotate:{clockwise:["a","A"],counterClockwise:["d","D"],reset:["n","N"]}},C=Symbol("handles");let H=class extends t{initialize(){const e=()=>this.view?.ready;this.addHandles([o(()=>!e(),()=>this._disconnect()),o(e,()=>this._connect())])}destroy(){this._disconnect()}get updating(){return!!this._inputManager?.updating}get latestPointerInfo(){return this._inputManager?.latestPointerInfo}get latestPenInfo(){return this._inputManager?.latestPenInfo}get multiTouchActive(){return this._inputManager?.multiTouchActive??!1}isModifierKeyDown(e){return this._inputManager?.isModifierKeyDown(e)??!1}_disconnect(){this.view.viewEvents.disconnect(),this.removeHandles(C),this._inputManager=n(this._inputManager)}_connect(){const e=this.view.surface,t=new A(e,this.view.input),n=[new z,new T,new E,new b(this.view.navigation),new I],o=new y({eventSource:t,recognizers:n}),a=new m(this.view,["primary"]),p=new u(this.view,["secondary"]);o.installHandlers("prevent-context-menu",[new D],_.INTERNAL),o.installHandlers("prevent-touch-text-selection-gesture",[new M(this.view)],_.INTERNAL),o.installHandlers("navigation",[new j(this.view),new w(this.view),new f(this.view),new c(this.view),new c(this.view,[N.counter]),new h(this.view),a,new d(this.view,N.pan),new d(this.view,N.pan,[N.precisionPan],.25),new g(this.view,N.zoom),new v(this.view,N.rotate),p,new l(this.view,"touch")],_.INTERNAL),this.view.viewEvents.connect(o),this._source=t,this._inputManager=o,this.addHandles([i(()=>this.view?.navigation?.browserTouchPanEnabled,e=>{this._source&&(this._source.browserTouchPanningEnabled=!e)},r),i(()=>{const{actionMap:e}=this.view.navigation;return{panActions:P("pan",e),rotateActions:P("rotate",e)}},({panActions:e,rotateActions:t})=>{a.pointerActions=e,p.pointerActions=t},s)],C)}get test(){}};e([a()],H.prototype,"view",void 0),e([a({readOnly:!0})],H.prototype,"updating",null),e([a()],H.prototype,"latestPointerInfo",null),e([a()],H.prototype,"latestPenInfo",null),e([a()],H.prototype,"multiTouchActive",null),H=e([p("esri.views.2d.input.MapViewInputManager")],H);const k=H;export{k as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
|
|
2
|
-
import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(i.modifiers.has("Meta")||i.modifiers.has("Control"))return void this._stopMovement();if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type;if(this._pressedKeys[e?"add":"delete"](t),e){if(this._direction===t)return;this._direction=t,this._isSticky=!1,this._setTimeout(()=>{this._isSticky&&this._handlePopKey()})}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._direction=Array.from(this._pressedKeys).pop(),null==this._direction&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",s,this._handleKey),this.registerIncoming("blur",s,this._stopMovement),this._visibilityHandle=t(i=>i?null:this._stopMovement())}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;if(null!=i){if(t||this.view.mapViewNavigation.begin(),this._currentDirection!==i)switch(i){case"left":this.
|
|
2
|
+
import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s,o=1){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(1!==this._panFactor){if("key-up"===i.type&&this._modifiers.some(t=>t.toLowerCase()===i.data.key.toLowerCase()))return void this._stopMovement();if(!this._modifiers.every(t=>i.modifiers.has(t)||i.modifiers.has(t.toLowerCase())||i.modifiers.has(t.toUpperCase())))return}if(i.modifiers.has("Meta")||i.modifiers.has("Control"))return void this._stopMovement();if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type;if(this._pressedKeys[e?"add":"delete"](t),e){if(this._direction===t)return;this._direction=t,this._isSticky=!1,this._setTimeout(()=>{this._isSticky&&this._handlePopKey()})}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._direction=Array.from(this._pressedKeys).pop(),null==this._direction&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._panFactor=o,this._modifiers=s??[],this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",1!==o?null:s,this._handleKey),this.registerIncoming("blur",1!==o?null:s,this._stopMovement),this._visibilityHandle=t(i=>i?null:this._stopMovement())}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;if(null!=i){if(t||this.view.mapViewNavigation.begin(),this._currentDirection!==i)switch(i){case"left":this._continuousPanLeft();break;case"right":this._continuousPanRight();break;case"up":this._continuousPanUp();break;case"down":this._continuousPanDown()}}else t&&this.view.mapViewNavigation.stop();this._currentDirection=i}_setTimeout(i){clearTimeout(this._timeout),this._timeout=void 0===i?void 0:setTimeout(()=>{this._timeout=void 0,i()},this._stickyKeyDuration)}_continuousPanLeft(){this.view.mapViewNavigation.continuousPanLeft(this._panFactor)}_continuousPanRight(){this.view.mapViewNavigation.continuousPanRight(this._panFactor)}_continuousPanUp(){this.view.mapViewNavigation.continuousPanUp(this._panFactor)}_continuousPanDown(){this.view.mapViewNavigation.continuousPanDown(this._panFactor)}}export{e as KeyPan};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import i from"../../../Viewpoint.js";import n from"../../../core/Accessor.js";import{destroyMaybe as o}from"../../../core/maybe.js";import{property as e,subclass as s}from"../../../core/accessorSupport/decorators.js";import a from"../../../geometry/Point.js";import{rotateBy as r,translateBy as c,padAndScaleAndRotateBy as h}from"../viewpointUtils.js";import{getGoToDuration as m}from"./duration.js";import p from"./actions/Pan.js";import u from"./actions/Pinch.js";import l from"./actions/Rotate.js";const w=10,v=1,g=new i({targetGeometry:new a}),d=[0,0],_=250;let T=class extends n{constructor(t){super(t),this._endTimer=null,this._lastEventTimestamp=null,this.animationManager=null,this.interacting=!1}initialize(){this.pan=new p({navigation:this}),this.rotate=new l({navigation:this}),this.pinch=new u({navigation:this})}destroy(){this.pan=o(this.pan),this.rotate=o(this.rotate),this.pinch=o(this.pinch),this.animationManager=null}begin(){this.stop(),this._set("interacting",!0)}end(){this._lastEventTimestamp=performance.now(),this._startTimer(_)}async zoom(t,i=this._getDefaultAnchor()){if(this.begin(),this.view.constraints.snapToZoom&&this.view.constraints.effectiveLODs)return t<1?this.zoomIn(i):this.zoomOut(i);this.setViewpoint(i,t,0,[0,0])}async zoomIn(t){const i=this.view,n=i.constraints.snapToNextScale(i.scale);return this._zoomToScale(n,t)}async zoomOut(t){const i=this.view,n=i.constraints.snapToPreviousScale(i.scale);return this._zoomToScale(n,t)}setViewpoint(t,i,n,o){this.begin(),this.view.stateManager.state.viewpoint=this._scaleRotateTranslateViewpoint(this.view.viewpoint,t,i,n,o),this.end()}setViewpointImmediate(t,i=0,n=[0,0],o=this._getDefaultAnchor()){this.view.stateManager.state.viewpoint=this._scaleRotateTranslateViewpoint(this.view.viewpoint,o,t,i,n)}continuousRotateClockwise(){const t=this.view.viewpoint;this.animationManager?.animateContinuous(t,t=>{r(t,t,-v)})}continuousRotateCounterclockwise(){const t=this.view.viewpoint;this.animationManager?.animateContinuous(t,t=>{r(t,t,v)})}resetRotation(){this.view.constraints.rotationEnabled&&(this.view.rotation=0)}continuousPanLeft(){this._continuousPan([-w,0])}continuousPanRight(){this._continuousPan([w,0])}continuousPanUp(){this._continuousPan([0,w])}continuousPanDown(){this._continuousPan([0,-w])}continuousPanVector({x:t,y:i}){this._continuousPan([t*w,i*w])}stop(){this.pan.stopMomentumNavigation(),this.animationManager?.stop(),this.end(),null!==this._endTimer&&(clearTimeout(this._endTimer),this._endTimer=null,this._set("interacting",!1))}_continuousPan(t){const i=this.view.viewpoint;this.animationManager?.animateContinuous(i,i=>{c(i,i,t),this.view.constraints.constrainByGeometry(i)})}_startTimer(t){return null!==this._endTimer||(this._endTimer=setTimeout(()=>{this._endTimer=null;const t=performance.now()-(this._lastEventTimestamp??0);t<_?this._endTimer=this._startTimer(t):this._set("interacting",!1)},t)),this._endTimer}_getDefaultAnchor(){const{size:t,padding:{left:i,right:n,top:o,bottom:e}}=this.view;return d[0]=.5*(t[0]-n+i),d[1]=.5*(t[1]-e+o),d}async _zoomToScale(t,i=this._getDefaultAnchor()){const{view:n}=this,{constraints:o,scale:e,viewpoint:s,size:a,padding:r}=n,c=o.canZoomInTo(t),p=o.canZoomOutTo(t);if(!(t<e&&!c||t>e&&!p))return h(g,s,t/e,0,i,a,r),o.constrainByGeometry(g),n.goTo(g,{animate:!0,animationMode:"always",duration:m(),pickClosestTarget:!1})}_scaleRotateTranslateViewpoint(t,i,n,o,e){const{view:s}=this,{size:a,padding:r,constraints:m,scale:p,viewpoint:u}=s,l=p*n,w=m.canZoomInTo(l),v=m.canZoomOutTo(l);return(n<1&&!w||n>1&&!v)&&(n=1),c(u,u,e),h(t,u,n,o,i,a,r),m.constrainByGeometry(t)}};t([e()],T.prototype,"animationManager",void 0),t([e({type:Boolean,readOnly:!0})],T.prototype,"interacting",void 0),t([e()],T.prototype,"pan",void 0),t([e()],T.prototype,"pinch",void 0),t([e()],T.prototype,"rotate",void 0),t([e()],T.prototype,"view",void 0),T=t([s("esri.views.2d.navigation.MapViewNavigation")],T);const f=T;export{f as default};
|
|
2
|
+
import{__decorate as t}from"tslib";import i from"../../../Viewpoint.js";import n from"../../../core/Accessor.js";import{destroyMaybe as o}from"../../../core/maybe.js";import{property as e,subclass as s}from"../../../core/accessorSupport/decorators.js";import a from"../../../geometry/Point.js";import{rotateBy as r,translateBy as c,padAndScaleAndRotateBy as h}from"../viewpointUtils.js";import{getGoToDuration as m}from"./duration.js";import p from"./actions/Pan.js";import u from"./actions/Pinch.js";import l from"./actions/Rotate.js";const w=10,v=1,g=new i({targetGeometry:new a}),d=[0,0],_=250;let T=class extends n{constructor(t){super(t),this._endTimer=null,this._lastEventTimestamp=null,this.animationManager=null,this.interacting=!1}initialize(){this.pan=new p({navigation:this}),this.rotate=new l({navigation:this}),this.pinch=new u({navigation:this})}destroy(){this.pan=o(this.pan),this.rotate=o(this.rotate),this.pinch=o(this.pinch),this.animationManager=null}begin(){this.stop(),this._set("interacting",!0)}end(){this._lastEventTimestamp=performance.now(),this._startTimer(_)}async zoom(t,i=this._getDefaultAnchor()){if(this.begin(),this.view.constraints.snapToZoom&&this.view.constraints.effectiveLODs)return t<1?this.zoomIn(i):this.zoomOut(i);this.setViewpoint(i,t,0,[0,0])}async zoomIn(t){const i=this.view,n=i.constraints.snapToNextScale(i.scale);return this._zoomToScale(n,t)}async zoomOut(t){const i=this.view,n=i.constraints.snapToPreviousScale(i.scale);return this._zoomToScale(n,t)}setViewpoint(t,i,n,o){this.begin(),this.view.stateManager.state.viewpoint=this._scaleRotateTranslateViewpoint(this.view.viewpoint,t,i,n,o),this.end()}setViewpointImmediate(t,i=0,n=[0,0],o=this._getDefaultAnchor()){this.view.stateManager.state.viewpoint=this._scaleRotateTranslateViewpoint(this.view.viewpoint,o,t,i,n)}continuousRotateClockwise(){const t=this.view.viewpoint;this.animationManager?.animateContinuous(t,t=>{r(t,t,-v)})}continuousRotateCounterclockwise(){const t=this.view.viewpoint;this.animationManager?.animateContinuous(t,t=>{r(t,t,v)})}resetRotation(){this.view.constraints.rotationEnabled&&(this.view.rotation=0)}continuousPanLeft(t=1){this._continuousPan([-w*t,0])}continuousPanRight(t=1){this._continuousPan([w*t,0])}continuousPanUp(t=1){this._continuousPan([0,w*t])}continuousPanDown(t=1){this._continuousPan([0,-w*t])}continuousPanVector({x:t,y:i}){this._continuousPan([t*w,i*w])}stop(){this.pan.stopMomentumNavigation(),this.animationManager?.stop(),this.end(),null!==this._endTimer&&(clearTimeout(this._endTimer),this._endTimer=null,this._set("interacting",!1))}_continuousPan(t){const i=this.view.viewpoint;this.animationManager?.animateContinuous(i,i=>{c(i,i,t),this.view.constraints.constrainByGeometry(i)})}_startTimer(t){return null!==this._endTimer||(this._endTimer=setTimeout(()=>{this._endTimer=null;const t=performance.now()-(this._lastEventTimestamp??0);t<_?this._endTimer=this._startTimer(t):this._set("interacting",!1)},t)),this._endTimer}_getDefaultAnchor(){const{size:t,padding:{left:i,right:n,top:o,bottom:e}}=this.view;return d[0]=.5*(t[0]-n+i),d[1]=.5*(t[1]-e+o),d}async _zoomToScale(t,i=this._getDefaultAnchor()){const{view:n}=this,{constraints:o,scale:e,viewpoint:s,size:a,padding:r}=n,c=o.canZoomInTo(t),p=o.canZoomOutTo(t);if(!(t<e&&!c||t>e&&!p))return h(g,s,t/e,0,i,a,r),o.constrainByGeometry(g),n.goTo(g,{animate:!0,animationMode:"always",duration:m(),pickClosestTarget:!1})}_scaleRotateTranslateViewpoint(t,i,n,o,e){const{view:s}=this,{size:a,padding:r,constraints:m,scale:p,viewpoint:u}=s,l=p*n,w=m.canZoomInTo(l),v=m.canZoomOutTo(l);return(n<1&&!w||n>1&&!v)&&(n=1),c(u,u,e),h(t,u,n,o,i,a,r),m.constrainByGeometry(t)}};t([e()],T.prototype,"animationManager",void 0),t([e({type:Boolean,readOnly:!0})],T.prototype,"interacting",void 0),t([e()],T.prototype,"pan",void 0),t([e()],T.prototype,"pinch",void 0),t([e()],T.prototype,"rotate",void 0),t([e()],T.prototype,"view",void 0),T=t([s("esri.views.2d.navigation.MapViewNavigation")],T);const f=T;export{f as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
|
|
2
|
-
import{clamp as t}from"../../../../core/mathUtils.js";import{copy as e,scale as r}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{wrap as i}from"../../../../geometry/support/ray.js";import{defaultConstraintOptions as o,interactionDirectionTowardsConstraintMinimization as s,hasConstraintType as a,adjustRangeForInteraction as c}from"./common.js";import{closestPointOnRay as m}from"../../support/intersectionUtils.js";function u(t,r,n=o){const a=l(t,r,n);if(0===a)return!1;const c=t.renderCoordsHelper,u=c.getAltitude(r.eye)+a,f=s(r,n.interactionDirection,p(t,r,Math.sign(a),j),g),d=e(A,r.viewForward),y=c.intersectInfiniteManifold(i(r.eye,f),u,C);return r.eye=null!=y?y:c.setAltitude(C,u,r.eye),r.center=m(C,r.eye,d,r.center),!0}function l(e,r,n=o){if(!f(e,n)||!e.state.constraints.altitude)return 0;const i=y(e.state.constraints.altitude,x);d(e,n,i);const s=e.renderCoordsHelper.getAltitude(r.eye),a=t(s,i.min,i.max)-s;return Math.abs(a)<=1e-6?0:a}function f(t,e){const r=t.state.constraints.altitude;return!(!t.state.isGlobal||!r)&&(2!==e.interactionType||!a(e.selection,1))}function d(t,e,r){const n=e.interactionType;if(0===n)return;const{min:i,max:o}=r,{interactionStartCamera:s,interactionFactor:a}=e;if(!s)return;const m=2===n||1===n,u=l(t,s),f=0===u?0:t.renderCoordsHelper.getAltitude(s.eye);r.min=i,r.max=o;c(u,f,m,a,.05*f,r)}function p(t,e,n,i){return t.renderCoordsHelper.worldUpAtPosition(e.eye,i),r(i,i,n),i}function y(t,e){return e.min=t.min,e.max=t.max,e}const x={min:0,max:0},g=n(),j=n(),A=n(),C=n();export{u as applyAltitudeConstraint,l as getAltitudeConstraintError};
|
|
2
|
+
import{clamp as t}from"../../../../core/mathUtils.js";import{copy as e,scale as r}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{wrap as i}from"../../../../geometry/support/ray.js";import{defaultConstraintOptions as o,interactionDirectionTowardsConstraintMinimization as s,hasConstraintType as a,adjustRangeForInteraction as c}from"./common.js";import{closestPointOnRay as m}from"../../support/intersectionUtils.js";function u(t,r,n=o){const a=l(t,r,n);if(0===a)return!1;const c=t.renderCoordsHelper,u=c.getAltitude(r.eye)+a,f=s(r,n.interactionDirection,p(t,r,Math.sign(a),j),g),d=e(A,r.viewForward),y=c.intersectInfiniteManifold(i(r.eye,f),u,C);return r.eye=null!=y?y:c.setAltitude(C,u,r.eye),r.center=m(C,r.eye,d,r.center),!0}function l(e,r,n=o){if(!f(e,n)||!e.state.constraints.altitude)return 0;const i=y(e.state.constraints.altitude,x);d(e,n,i);const s=e.renderCoordsHelper.getAltitude(r.eye),a=t(s,i.min,i.max)-s;return Math.abs(a)<=1e-6?0:a}function f(t,e){const r=t.state.constraints.altitude;return!(!t.state.isGlobal||!r)&&(2!==e.interactionType||!a(e.selection,1))}function d(t,e,r){const n=e.interactionType;if(0===n)return;const{min:i,max:o}=r,{interactionStartCamera:s,interactionFactor:a}=e;if(!s)return;const m=2===n||1===n||4===n||6===n,u=l(t,s),f=0===u?0:t.renderCoordsHelper.getAltitude(s.eye);r.min=i,r.max=o;c(u,f,m,a,.05*f,r)}function p(t,e,n,i){return t.renderCoordsHelper.worldUpAtPosition(e.eye,i),r(i,i,n),i}function y(t,e){return e.min=t.min,e.max=t.max,e}const x={min:0,max:0},g=n(),j=n(),A=n(),C=n();export{u as applyAltitudeConstraint,l as getAltitudeConstraintError};
|