From 1890b68177a7315684394e3d70b668a7ffdf7e69 Mon Sep 17 00:00:00 2001 From: thomcsmits Date: Sun, 17 Mar 2024 15:22:40 -0400 Subject: [PATCH] Updates --- assets/blosc-0acfcf7e-snUT6D4i.js | 20 + assets/deflate-9cfe31b4--UOSjJNF.js | 1 + assets/gzip-dd5ab7c8-wU2g_iAo.js | 1 + assets/index-3h9IID_q.js | 7322 +++++++++++++++++ assets/jpeg-e623e3f3-YCPYlkuQ.js | 1 + assets/lerc-3b89a300-TuOOlTso.js | 1 + assets/lz4-abb4416a-LNQAkPQb.js | 18 + assets/lzw-834edf30-0njj13Xc.js | 1 + assets/packbits-37beb194-fKqmk4nw.js | 1 + assets/pako.esm-68f84e2a-tSdR82fX.js | 1 + assets/pako.esm-856454b6-c5c8cd15-LlE9m97O.js | 1 + assets/raw-f349901d-whtBA5Mu.js | 1 + assets/webimage-89dafa8c-tJ_h1vk0.js | 1 + assets/zlib-cd823c38-UG7B4fyc.js | 1 + assets/zstd-4072ca78-EVHwT9c-.js | 18 + index.html | 13 + vite.svg | 1 + 17 files changed, 7403 insertions(+) create mode 100644 assets/blosc-0acfcf7e-snUT6D4i.js create mode 100644 assets/deflate-9cfe31b4--UOSjJNF.js create mode 100644 assets/gzip-dd5ab7c8-wU2g_iAo.js create mode 100644 assets/index-3h9IID_q.js create mode 100644 assets/jpeg-e623e3f3-YCPYlkuQ.js create mode 100644 assets/lerc-3b89a300-TuOOlTso.js create mode 100644 assets/lz4-abb4416a-LNQAkPQb.js create mode 100644 assets/lzw-834edf30-0njj13Xc.js create mode 100644 assets/packbits-37beb194-fKqmk4nw.js create mode 100644 assets/pako.esm-68f84e2a-tSdR82fX.js create mode 100644 assets/pako.esm-856454b6-c5c8cd15-LlE9m97O.js create mode 100644 assets/raw-f349901d-whtBA5Mu.js create mode 100644 assets/webimage-89dafa8c-tJ_h1vk0.js create mode 100644 assets/zlib-cd823c38-UG7B4fyc.js create mode 100644 assets/zstd-4072ca78-EVHwT9c-.js create mode 100644 index.html create mode 100644 vite.svg diff --git a/assets/blosc-0acfcf7e-snUT6D4i.js b/assets/blosc-0acfcf7e-snUT6D4i.js new file mode 100644 index 0000000..edda01a --- /dev/null +++ b/assets/blosc-0acfcf7e-snUT6D4i.js @@ -0,0 +1,20 @@ +var FI=function(){return typeof document<"u"&&document.currentScript&&document.currentScript.src,function(a){a=a||{};var B;B||(B=typeof a<"u"?a:{});var S,N;B.ready=new Promise(function(A,I){S=A,N=I});var U={},R;for(R in B)B.hasOwnProperty(R)&&(U[R]=B[R]);var x="./this.program",$=B.print||console.log.bind(console),K=B.printErr||console.warn.bind(console);for(R in U)U.hasOwnProperty(R)&&(B[R]=U[R]);U=null,B.thisProgram&&(x=B.thisProgram);var r;B.wasmBinary&&(r=B.wasmBinary),B.noExitRuntime&&B.noExitRuntime,typeof WebAssembly!="object"&&e("no native wasm support detected");var M,DA=!1,oA=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function FA(A,I,g){var Q=I+g;for(g=I;A[g]&&!(g>=Q);)++g;if(16C?Q+=String.fromCharCode(C):(C-=65536,Q+=String.fromCharCode(55296|C>>10,56320|C&1023))}}else Q+=String.fromCharCode(C)}return Q}function pA(A,I,g){var Q=s;if(0=E){var D=A.charCodeAt(++C);E=65536+((E&1023)<<10)|D&1023}if(127>=E){if(I>=g)break;Q[I++]=E}else{if(2047>=E){if(I+1>=g)break;Q[I++]=192|E>>6}else{if(65535>=E){if(I+2>=g)break;Q[I++]=224|E>>12}else{if(I+3>=g)break;Q[I++]=240|E>>18,Q[I++]=128|E>>12&63}Q[I++]=128|E>>6&63}Q[I++]=128|E&63}}Q[I]=0}}var GA=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function VA(A,I){for(var g=A>>1,Q=g+I/2;!(g>=Q)&&O[g];)++g;if(g<<=1,32>1];if(C==0||g==I/2)return Q;++g,Q+=String.fromCharCode(C)}}function lA(A,I,g){if(g===void 0&&(g=2147483647),2>g)return 0;g-=2;var Q=I;g=g<2*A.length?g/2:A.length;for(var C=0;C>1]=A.charCodeAt(C),I+=2;return Z[I>>1]=0,I-Q}function mA(A){return 2*A.length}function bA(A,I){for(var g=0,Q="";!(g>=I/4);){var C=w[A+4*g>>2];if(C==0)break;++g,65536<=C?(C-=65536,Q+=String.fromCharCode(55296|C>>10,56320|C&1023)):Q+=String.fromCharCode(C)}return Q}function eA(A,I,g){if(g===void 0&&(g=2147483647),4>g)return 0;var Q=I;g=Q+g-4;for(var C=0;C=E){var D=A.charCodeAt(++C);E=65536+((E&1023)<<10)|D&1023}if(w[I>>2]=E,I+=4,I+4>g)break}return w[I>>2]=0,I-Q}function OA(A){for(var I=0,g=0;g=Q&&++g,I+=4}return I}var X,f,s,Z,O,w,H,aA,yA;function hA(A){X=A,B.HEAP8=f=new Int8Array(A),B.HEAP16=Z=new Int16Array(A),B.HEAP32=w=new Int32Array(A),B.HEAPU8=s=new Uint8Array(A),B.HEAPU16=O=new Uint16Array(A),B.HEAPU32=H=new Uint32Array(A),B.HEAPF32=aA=new Float32Array(A),B.HEAPF64=yA=new Float64Array(A)}var SA=B.INITIAL_MEMORY||16777216;B.wasmMemory?M=B.wasmMemory:M=new WebAssembly.Memory({initial:SA/65536,maximum:32768}),M&&(X=M.buffer),SA=X.byteLength,hA(X);var m,NA=[],wA=[],PA=[],RA=[];function jA(){var A=B.preRun.shift();NA.unshift(A)}var n=0,b=null;B.preloadedImages={},B.preloadedAudios={};function e(A){throw B.onAbort&&B.onAbort(A),K(A),DA=!0,A=new WebAssembly.RuntimeError("abort("+A+"). Build with -s ASSERTIONS=1 for more info."),N(A),A}function sA(A){var I=P;return String.prototype.startsWith?I.startsWith(A):I.indexOf(A)===0}function UA(){return sA("data:application/octet-stream;base64,")}var P="blosc_codec.wasm";if(!UA()){var JA=P;P=B.locateFile?B.locateFile(JA,""):""+JA}function uA(){try{if(r)return new Uint8Array(r);throw"both async and sync fetching of the wasm failed"}catch(A){e(A)}}function j(A){for(;0>2]=I},this.X=function(I){w[this.N+0>>2]=I},this.Y=function(){w[this.N+4>>2]=0},this.W=function(){f[this.N+12>>0]=0},this.Z=function(){f[this.N+13>>0]=0},this.V=function(I,g){this.$(I),this.X(g),this.Y(),this.W(),this.Z()}}function AA(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+A)}}var kA=void 0;function k(A){for(var I="";s[A];)I+=kA[s[A++]];return I}var p={},W={},u={};function qA(A){if(A===void 0)return"_unknown";A=A.replace(/[^a-zA-Z0-9_]/g,"$");var I=A.charCodeAt(0);return 48<=I&&57>=I?"_"+A:A}function LA(A,I){return A=qA(A),new Function("body","return function "+A+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(I)}function IA(A){var I=Error,g=LA(A,function(Q){this.name=A,this.message=Q,Q=Error(Q).stack,Q!==void 0&&(this.stack=this.toString()+` +`+Q.replace(/^Error(:[^\n]*)?\n/,""))});return g.prototype=Object.create(I.prototype),g.prototype.constructor=g,g.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},g}var KA=void 0;function J(A){throw new KA(A)}var gA=void 0;function vA(A,I){function g(i){if(i=I(i),i.length!==Q.length)throw new gA("Mismatched type converter count");for(var o=0;o>2])}function CA(A){if(A===null)return"null";var I=typeof A;return I==="object"||I==="array"||I==="function"?A.toString():""+A}function _A(A,I){switch(I){case 2:return function(g){return this.fromWireType(aA[g>>2])};case 3:return function(g){return this.fromWireType(yA[g>>3])};default:throw new TypeError("Unknown float type: "+A)}}function $A(A){var I=Function;if(!(I instanceof Function))throw new TypeError("new_ called with constructor type "+typeof I+" which is not a function");var g=LA(I.name||"unknownFunctionName",function(){});return g.prototype=I.prototype,g=new g,A=I.apply(g,A),A instanceof Object?A:g}function AI(A){for(;A.length;){var I=A.pop();A.pop()(I)}}function II(A,I){var g=B;if(g[A].L===void 0){var Q=g[A];g[A]=function(){return g[A].L.hasOwnProperty(arguments.length)||J("Function '"+I+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+g[A].L+")!"),g[A].L[arguments.length].apply(this,arguments)},g[A].L=[],g[A].L[Q.S]=Q}}function gI(A,I,g){B.hasOwnProperty(A)?((g===void 0||B[A].L!==void 0&&B[A].L[g]!==void 0)&&J("Cannot register public name '"+A+"' twice"),II(A,A),B.hasOwnProperty(g)&&J("Cannot register multiple overloads of a function with the same number of arguments ("+g+")!"),B[A].L[g]=I):(B[A]=I,g!==void 0&&(B[A].ba=g))}function BI(A,I){for(var g=[],Q=0;Q>2)+Q]);return g}function QI(A,I){0<=A.indexOf("j")||e("Assertion failed: getDynCaller should only be called with i64 sigs");var g=[];return function(){g.length=arguments.length;for(var Q=0;Q>1]}:function(Q){return O[Q>>1]};case 2:return g?function(Q){return w[Q>>2]}:function(Q){return H[Q>>2]};default:throw new TypeError("Unknown integer type: "+A)}}var tA={};function dA(){if(!EA){var A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:x||"./this.program"},I;for(I in tA)A[I]=tA[I];var g=[];for(I in A)g.push(I+"="+A[I]);EA=g}return EA}for(var EA,DI=[null,[],[]],rA=Array(256),z=0;256>z;++z)rA[z]=String.fromCharCode(z);kA=rA,KA=B.BindingError=IA("BindingError"),gA=B.InternalError=IA("InternalError"),B.count_emval_handles=function(){for(var A=0,I=5;I>E])},M:null})},y:function(A,I){I=k(I),Y(A,{name:I,fromWireType:function(g){var Q=q[g].value;return MA(g),Q},toWireType:function(g,Q){return HA(Q)},argPackAdvance:8,readValueFromPointer:QA,M:null})},h:function(A,I,g){g=AA(g),I=k(I),Y(A,{name:I,fromWireType:function(Q){return Q},toWireType:function(Q,C){if(typeof C!="number"&&typeof C!="boolean")throw new TypeError('Cannot convert "'+CA(C)+'" to '+this.name);return C},argPackAdvance:8,readValueFromPointer:_A(I,g),M:null})},e:function(A,I,g,Q,C,E){var D=BI(I,g);A=k(A),C=CI(Q,C),gI(A,function(){EI("Cannot call "+A+" due to unbound types",D)},I-1),vA(D,function(i){var o=A,G=A;i=[i[0],null].concat(i.slice(1));var y=C,h=i.length;2>h&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var L=i[1]!==null&&!1,t=!1,F=1;F>>i}}var o=I.indexOf("unsigned")!=-1;Y(A,{name:I,fromWireType:E,toWireType:function(G,y){if(typeof y!="number"&&typeof y!="boolean")throw new TypeError('Cannot convert "'+CA(y)+'" to '+this.name);if(yC)throw new TypeError('Passing a number "'+CA(y)+'" from JS side to C/C++ side to an argument of type "'+I+'", which is outside the valid range ['+Q+", "+C+"]!");return o?y>>>0:y|0},argPackAdvance:8,readValueFromPointer:iI(I,D,Q!==0),M:null})},b:function(A,I,g){function Q(E){E>>=2;var D=H;return new C(X,D[E+1],D[E])}var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][I];g=k(g),Y(A,{name:g,fromWireType:Q,argPackAdvance:8,readValueFromPointer:Q},{U:!0})},i:function(A,I){I=k(I);var g=I==="std::string";Y(A,{name:I,fromWireType:function(Q){var C=H[Q>>2];if(g)for(var E=Q+4,D=0;D<=C;++D){var i=Q+4+D;if(D==C||s[i]==0){if(E=E?FA(s,E,i-E):"",o===void 0)var o=E;else o+="\0",o+=E;E=i+1}}else{for(o=Array(C),D=0;D=h&&(h=65536+((h&1023)<<10)|C.charCodeAt(++y)&1023),127>=h?++G:G=2047>=h?G+2:65535>=h?G+3:G+4}return G}:function(){return C.length})(),i=v(4+D+1);if(H[i>>2]=D,g&&E)pA(C,i+4,D+1);else if(E)for(E=0;E>2],y=D(),h,L=o+4,t=0;t<=G;++t){var F=o+4+t*I;(t==G||y[F>>i]==0)&&(L=Q(L,F-L),h===void 0?h=L:(h+="\0",h+=L),L=F+I)}return c(o),h},toWireType:function(o,G){typeof G!="string"&&J("Cannot pass non-string to C++ string type "+g);var y=E(G),h=v(4+y+I);return H[h>>2]=y>>i,C(G,h+4,y+I),o!==null&&o.push(c,h),h},argPackAdvance:8,readValueFromPointer:QA,M:function(o){c(o)}})},A:function(A,I){I=k(I),Y(A,{aa:!0,name:I,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:MA,x:function(A){4>>=0;var I=s.length;if(2147483648=g;g*=2){var Q=I*(1+.2/g);Q=Math.min(Q,A+100663296),Q=Math.max(16777216,A,Q),0>>16),hA(M.buffer);var C=1;break A}catch{}C=void 0}if(C)return!0}return!1},u:function(A,I){var g=0;return dA().forEach(function(Q,C){var E=I+g;for(C=w[A+4*C>>2]=E,E=0;E>0]=Q.charCodeAt(E);f[C>>0]=0,g+=Q.length+1}),0},v:function(A,I){var g=dA();w[A>>2]=g.length;var Q=0;return g.forEach(function(C){Q+=C.length+1}),w[I>>2]=Q,0},w:function(){return 0},q:function(){},g:function(A,I,g,Q){for(var C=0,E=0;E>2],i=w[I+(8*E+4)>>2],o=0;o>2]=C,0},a:M,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};(function(){function A(C){B.asm=C.exports,m=B.asm.D,n--,B.monitorRunDependencies&&B.monitorRunDependencies(n),n==0&&b&&(C=b,b=null,C())}function I(C){A(C.instance)}function g(C){return Promise.resolve().then(uA).then(function(E){return WebAssembly.instantiate(E,Q)}).then(C,function(E){K("failed to asynchronously prepare wasm: "+E),e(E)})}var Q={a:oI};if(n++,B.monitorRunDependencies&&B.monitorRunDependencies(n),B.instantiateWasm)try{return B.instantiateWasm(Q,A)}catch(C){return K("Module.instantiateWasm callback failed with error: "+C),!1}return function(){return r||typeof WebAssembly.instantiateStreaming!="function"||UA()||sA("file://")||typeof fetch!="function"?g(I):fetch(P,{credentials:"same-origin"}).then(function(C){return WebAssembly.instantiateStreaming(C,Q).then(I,function(E){return K("wasm streaming compile failed: "+E),K("falling back to ArrayBuffer instantiation"),g(I)})})}().catch(N),{}})();var fA=B.___wasm_call_ctors=function(){return(fA=B.___wasm_call_ctors=B.asm.E).apply(null,arguments)},v=B._malloc=function(){return(v=B._malloc=B.asm.F).apply(null,arguments)},c=B._free=function(){return(c=B._free=B.asm.G).apply(null,arguments)},nA=B.___getTypeName=function(){return(nA=B.___getTypeName=B.asm.H).apply(null,arguments)};B.___embind_register_native_and_builtin_types=function(){return(B.___embind_register_native_and_builtin_types=B.asm.I).apply(null,arguments)},B.dynCall_jiiiii=function(){return(B.dynCall_jiiiii=B.asm.J).apply(null,arguments)},B.dynCall_jiji=function(){return(B.dynCall_jiji=B.asm.K).apply(null,arguments)};var _;b=function A(){_||iA(),_||(b=A)};function iA(){function A(){if(!_&&(_=!0,B.calledRun=!0,!DA)){if(j(wA),j(PA),S(B),B.onRuntimeInitialized&&B.onRuntimeInitialized(),B.postRun)for(typeof B.postRun=="function"&&(B.postRun=[B.postRun]);B.postRun.length;){var I=B.postRun.shift();RA.unshift(I)}j(RA)}}if(!(0new Uint8Array(Buffer.from(a,"base64")):(()=>{for(var a=new Uint8Array(128),B=0;B<64;B++)a[B<26?B+65:B<52?B+71:B<62?B-4:B*4-205]=B;return S=>{for(var N=S.length,U=new Uint8Array((N-(S[N-1]=="=")-(S[N-2]=="="))*3/4|0),R=0,x=0;R>4,U[x++]=K<<4|r>>2,U[x++]=r<<6|M}return U}})(),yI=aI("AGFzbQEAAAABwAImYAF/AX9gA39/fwF/YAV/f39/fwF/YAJ/fwF/YAJ/fwBgAX8AYAN/f38AYAR/f39/AX9gBH9/f38AYAAAYAZ/f39/f38Bf2AFf39/f38AYAZ/f39/f38AYAd/f39/f39/AX9gBH9/f38BfmAFf39/f38BfmAIf39/f39/f38Bf2AJf39/f39/f39/AX9gAn5/AX9gC39/f39/f39/f39/AX9gA39+fwF+YAN/f34AYAN/f34Bf2ADfn9/AX9gAn5+AX5gCH9/f39/f39/AGAJf39/f39/f39/AGAFf35/f38AYAABf2ANf39/f39/f39/f39/fwF/YA9/f39/f39/f39/f39/f38Bf2AFf39/fn8Bf2AGf3x/f39/AX9gAX8BfmACf38BfmAHf35/f39/fwF+YAF+AX5gBH5/f34BfgK0AR0BYQFiAAYBYQFjAAsBYQFkAAYBYQFlAAwBYQFmAAUBYQFnAAcBYQFoAAYBYQFpAAQBYQFqAAMBYQFrAAABYQFsAAABYQFtAAMBYQFuAAUBYQFvAAYBYQFwAAABYQFxAAIBYQFyAAEBYQFzAAABYQF0AAkBYQF1AAMBYQF2AAMBYQF3AAABYQF4AAUBYQF5AAQBYQF6AAsBYQFBAAQBYQFCAAcBYQFDAAMBYQFhAgGAAoCAAgOtBKsEBAEBAwIACAAAAAQHAQEBAAIBAAQDAQMBBAEFAwUFAAYAAwAIAgIDAQgBAwYBCwEBAAQYBAEEBwoGAwMLBwgBBggDCwUDAwMGCAEGBAYABwIGAAABAAIEBAYEBQMDAAsABgwDAAANBgIYAwkAAQwGBggAAgAAAAUQHQAEAQMbBwcHBwMDBh4TBAgBAgECCgcGCgYEAAQAARARAwAIAAYDBgAFBQUFBQUJCwUGAQAFBQICAgcHAwQEAAcSARIXJQQGAwMDAAUEAQABBQUDAAMGCgAFBQMBHwUDAwUFAREDBwoEAAUBAwcKCiEGBQEABgYGBQUIAxMNAAADAAkBBwcHBwcHBwcAAQgGBwMRAgICAgYCCAoCAgcCCAAFBAUFAAMAAAIKBBQACQwMCwMLCAgICwwAAQEFAAUABQkDAAMSEhcGAQAUAAAJCQkJBgAJCQkJCQkJCQkJCQkJDQ0ABgcBAQcHAgEBAgEEAwoABAcFBRwKCgoFAgoCAgMaGQUE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BCAGanQgAWohASACIARHIQwgBEEBaiEEIAwNAAsLIA1BAWoiDSACayIBIAcgAWtBAWoiCEkEQCAKQQJJIQYDQEEBIQQgBkUEQANAIARBAnQiCiADIAFBNGxqaiADIApqKAIAIAF2NgIAIAIgBEchCiAEQQFqIQQgCg0ACwsgAUEBaiIBIAhJDQALCyAAQQRqIAcgCyAJIANBpAVqIAMgAiANEJYDIAVBAToABSAFIAc6AAYgACAFKAIENgIACyAQIQQLIAVBEGokACAEC+ACAQl/IwBBEGsiBCQAIARBADYCDCAEQQA2AggCQCADQUBrIgkgAyAEQQhqIARBDGogASACEPsBIggQIQ0AIARBBGogACgCABA0QQEhASAEKAIMIgUgBC0ABEEBak0EQEEAIQIgBEEAOgAFIAQgBToABiAAIAQoAgQ2AgAgBUEBakEBSwRAA0AgAyABQQJ0aiIGKAIAIQcgBiACNgIAIAcgAUF/anQgAmohAiABIAVGIQYgAUEBaiEBIAZFDQALCyAEKAIIIgdFDQEgAEEEaiEKIAVBAWohC0EAIQADQCADIAAgCWotAAAiBUECdGoiBigCACIBIAFBASAFdEEBdSIMaiICSQRAIAsgBWshBQNAIAogAUEBdGoiAiAFOgABIAIgADoAACABQQFqIgEgBigCACAMaiICSQ0ACwsgBiACNgIAIABBAWoiACAHRw0ACwwBC0FUIQgLIARBEGokACAICxQAIAAoAABBgPqerQNsQSAgAWt2CygAAkACQAJAIAAoAowBQX9qDgIAAQILIAAgARDCAw8LIAAgARDHAwsLOgEBfyABIAAoAgRrIgEgACgCGCICQYAIaksEQCAAIAEgASACa0GAeGoiAEGABCAAQYAESRtrNgIYCwsVACAAEJEBBEAgACgCBA8LIAAtAAsLRQEBfwJAIAIgA00gACABTXINAANAIABBf2oiAC0AACACQX9qIgItAABHDQEgBEEBaiEEIAIgA00NASAAIAFLDQALCyAECwwAIABBICABa62IpwsQACAAIAEgAigCCHRBA3RqCxIAIABBwAAgAWutiKdBACABGwsvAEEgIAFrIgEgAkkEQCAAp0F/IAJ0QX9zcQ8LIAAgASACa62Ip0F/IAJ0QX9zcQsgACACrSAAIAGtQgp8IAN+fULjyJW9y5vvjU9+fEIKfAsoAQF/IwBBEGsiAiQAIABBzA8gAkEIaiABEMYCEBs2AgAgAkEQaiQACxAAIAAgAjYCBCAAIAE2AgALGwAgACkAAEKAgOz8y5vvjU9+QcAAIAFrrYinCxsAIAApAABCgICA2Mub741PfkHAACABa62IpwsUACAAKAAAQbHz3fF5bEEgIAFrdgsNACAAKAIIQQh2QQFxCxAAIABCADcCACAAQgA3AggLUgEBfyAAKAIgIgIgAUkEQCACRQRAIAAgACgCCDYCEAsCQCABQQJJDQAgACAAKAIUQXxxIgI2AhQgAiAAKAIQTw0AIAAgAjYCEAsgACABNgIgCwtHAQF/IAAoAgwhAyAAIAIQ4QEgACgCFCABayIBIANJBEAgAEEBNgIYQQAPCyABIAAoAhBJBEAgACABNgIQCyAAIAE2AhQgAQsKACAAQQNqQXxxCw8AIAAgARDnASACQQNsTwsdAQF/IAAgACgCACAAKAIEayIBNgIQIAAgATYCDAsvACAAQQA2AhggACAAKAIINgIMIAAgACgCBDYCFCAAKAIgQQJPBEAgAEEBNgIgCwsHACABIABrCw0AIAAoAhAgACgCDEkLFQAgACABQX9qQQYgAUEHSxt2QQJqC8oBAQd/AkAgAUUNACAAKAIEIgMgACgCCCIGIAMgBksbIQgDQCADIAhGDQEgACgCACIJIANBDGxqIgUhBCABIAUoAgQiB00EQCAEIAcgAWs2AgQPCyAEQQA2AgQgASAHayIBIAUoAggiBEkEQCAFIAQgAWsiATYCCCABIAJPDQIgA0EBaiICIAZJBEAgCUEMaiADQQxsaiIDIAMoAgQgAWo2AgQLIAAgAjYCBA8LIAVBADYCCCAAIANBAWoiAzYCBCABIARrIgENAAsLC5gEAgx/AX4jAEEQayIIJAAgBCAFaiEJIAEoAoQBIQ8gASgCjAEgARDsARDzASELAkACQCAFQQFIDQAgACgCBCAAKAIITw0AIAlBYGohDANAIAggACAJIARrIgUgDxCmAyAIKAIAIg1FDQIgASAEENIBIAEgBBDRASABIAIgAyAEIAgoAgQiBSALEQIAIQYgAykCACESIAMgDTYCACADIBI3AgQgBCAFaiIKIAZrIQcgCCgCCCIQQX1qIQ4gAigCDCEEAkACQCAKIAxNBEAgBCAHEBwgAigCDCEEIAZBEE0EQCACIAQgBmo2AgwMAwsgBEEQaiAHQRBqIgUQHCAEQSBqIAdBIGoQHCAGQTFIDQEgBCAGaiERIARBMGohBANAIAQgBUEgaiIHEBwgBEEQaiAFQTBqEBwgByEFIARBIGoiBCARSQ0ACwwBCyAEIAcgCiAMECILIAIgAigCDCAGajYCDCAGQYCABEkNACACQQE2AiQgAiACKAIEIAIoAgBrQQN1NgIoCyACKAIEIgQgDUEDajYCACAEIAY7AQQgDkGAgARPBEAgAkECNgIkIAIgBCACKAIAa0EDdTYCKAsgBCAOOwEGIAIgBEEIajYCBCAKIBBqIgQgCU8NASAAKAIEIAAoAghJDQALCyAJIARrIQULIAEgBBDSASABIAQQ0QEgASACIAMgBCAFIAsRAgAhACAIQRBqJAAgAAtRAQJ/IwBBIGsiASQAIAEgACgCEDYCGCABIAApAgg3AxAgASAAKQIANwMIQQEhAiABQQhqEOgBRQRAIAAoAnBBAEdBAXQhAgsgAUEgaiQAIAILGwEBfyAAKAIQIAAoAgwiAUkEQCAAIAE2AhALCwwAIAAgACgCCDYCEAsRACABIAAoAgRrQYCAgIB6SwupAQEEfwJAIAEgACgCACIDRgRAIAAoAgwhAyAAKAIQIQUgACgCCCEEQQEhBgwBCyAAIAAoAgwiBTYCECAAIAAoAgQiBDYCCCAAIAMgBGsiAzYCDCAAIAEgA2s2AgQgAyAFa0EHSw0AIAAgAzYCECADIQULIAAgASACaiICNgIAIAIgBCAFak0gAyAEaiABTXJFBEAgACADIAIgBGsiACAAIANKGzYCEAsgBguRAwEGfyACKAIoIQYgAigCBCEJIAIoAiQhByACKAIgIgoEQCADQv8BViADQv+BBFZqIANC/v///w9WaiEIC0G6fyEFAkAgAUESSQ0AQQAgBEEARyAEQf8BS2ogBEH//wNLaiAGGyIGIAdBAEpBAnRqQSBBACAKQQBHQQEgCXStIANacSIBG3IgCEEGdHIhB0EAIQUgAigCAEUEQCAAQajqvmkQTUEEIQULIAAgBWogBzoAACAFQQFyIQUgAUUEQCAAIAVqIAlBA3RBsH9qOgAAIAVBAWohBQsCQAJAAkACQCAGQX9qDgMAAQIDCyAAIAVqIAQ6AAAgBUEBaiEFDAILIAAgBWogBEH//wNxEC8gBUECaiEFDAELIAAgBWogBBBNIAVBBGohBQsCQAJAAkACQCAIQX9qDgMBAgMACyABRQ0DIAAgBWogAzwAACAFQQFqDwsgACAFaiADp0GAfmpB//8DcRAvIAVBAmoPCyAAIAVqIAOnEE0gBUEEag8LIAAgBWogAzcAACAFQQhqIQULIAULHQAgAEEANgIkIAAgACgCCDYCDCAAIAAoAgA2AgQLFQAgAUEobCAAQQJ0akGQmQFqKAIACwoAIAAgAUEFS2sLAwABC00AIAAoAvAFIAAoApgDIAAoApwDIAAoAqADEGQgACgCgAYQ9wMgAEEANgKQBiAAQgA3A4gGIABCADcDgAYgAEIANwP4BSAAQgA3A/AFC0QBA38gAkEATgR/A0AgBCABIANBAnQiBGooAgAgACAEai0AAmxqIQQgAiADRyEFIANBAWohAyAFDQALIARBA3YFIAMLC6AEAQV/IwBBEGsiCyQAIAtB/wE2AgxBfyEJAkAgBUEDcQ0AIAFFBEBBACEJDAELQbh/IQkgA0GAgAhLDQAgACABaiEMAkAgB0EARyAIQQBHcSIIRQ0AIAcoAgBBAkcNACAAIAAgDCACIAMgBCAGEIEBIQkMAQsgBSALQQxqIAIgAyAFEIkEIgkQIQ0AIAMgCUYEQCAAIAItAAA6AABBASEJDAELIAkgA0EHdkEEak0hCkEAIQkgCg0AAkAgB0UNAAJAAkAgBygCACIJQQFGBEAgBiAFIAsoAgwQ+wMNASAHQQA2AgAMAwsgCUUNAiAIQQFzRQ0BDAILIAhFDQELIAAgACAMIAIgAyAEIAYQgQEhCQwBCyAFQYAIaiIIIAUgCygCDCIKQQsgAyAKQQEQgQIgBUGAEGoQ/wMiCRAhDQAgCkECdCINIAhqQQRqQQBB/AcgDWsQKBogACABIAggCiAJEIAEIgEQIQRAIAEhCQwBCwJAAkAgBwRAIAcoAgBFBEAgAUEMaiEFDAILIAYgBSAKEPcBIQkgCCAFIAoQ9wEhCiABQQxqIgUgA0lBACAJIAEgCmpLGw0BIAAgACAMIAIgAyAEIAYQgQEhCQwDC0EAIQkgAUEMaiADTw0CDAELQQAhCSAFIANPDQEgB0EANgIACyAGBEAgBiAIQYAIECoaCyAAIAAgAWogDCACIAMgBCAIEIEBIQkLIAtBEGokACAJCw0AIAAgAUECdGotAAILgAIBBn8jAEGQA2siBCQAIARBDDYCjAMCQCADQQJJDQAgBEEgaiAEQYwDaiACIAMQqgEiBSADRiEGIAVBAUYgAyAFRnINACAEQQYgAyAEKAKMAyIHEKcBIgggBEEgaiADIAcQpgEiBhAhDQAgACABIAQgByAIEKgBIgUQISIJBEAgBSEGDAELIARBoAFqIAQgByAIIARB4ABqQcAAEKkBIgYQIQ0AIAAgACAFaiAJGyIFIAAgAWogBWsiASACIAMgBEGgAWogAyADQQd2akEIaiABTRCGBCIBECEEQCABIQYMAQtBACEGIAFFDQAgASAFaiAAayEGCyAEQZADaiQAIAYLggQBBn8jAEGQAmsiCyQAQbh/IQgCQCAFRQ0AIAQsAAAiCUH/AXEhBgJAAkAgCUF/TARAIAZBgn9qQQF2IgkgBU8NA0FsIQggBkGBf2oiB0H/AUsNAyAHRQ0CIARBAWohBEEAIQUDQCAAIAVqIAQgBUEBdmoiBi0AAEEEdjoAACAAIAVBAXJqIAYtAABBD3E6AAAgBUECaiIFIAdJDQALIAkhBgwBCyAGIAVPDQIgACAEQQFqIAYgCxCBBCIHIQggBxAhDQILIAFCADcCAEEAIQQgAUEANgIwIAFCADcCKCABQgA3AiAgAUIANwIYIAFCADcCECABQgA3AghBbCEIIAdFDQFBACEFA0AgACAFaiIJLQAAIgpBC0sNAiABIApBAnRqIgogCigCAEEBajYCAEEBIAktAAB0QQF1IARqIQQgBUEBaiIFIAdHDQALIARFDQEgBBAkQQFqIgVBDEsNASADIAU2AgBBAUEBIAV0IARrIgMQJCIEdCADRw0BIAAgB2ogBEEBaiIAOgAAIAEgAEECdGoiACAAKAIAQQFqNgIAIAEoAgQiAEECSSAAQQFxcg0BIAIgB0EBajYCACAGQQFqIQgMAQsgAUIANwIAIAFBADYCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIICyALQZACaiQAIAgLCAAgACABEE0LMQECfyAAEIQEIAAQOSAAKAIMIgIgACgCEEkEfyACIAAoAghrIAAoAgRBAEdqBSABCwtFAQF/IAAoAgQhASAAKAIMIAAoAgAQ/AEgACAAKAIMIAFBA3ZqNgIMIAAgACgCBEEHcTYCBCAAIAAoAgAgAUF4cXY2AgALLwAgACABNgIMIAAgATYCCCAAQgA3AgAgACABIAJqQXxqNgIQQbp/QQAgAkEFSRsLGgAgABAkQQFqIgAgARAkQQJqIgEgACABSRsLQQEBfyABQX9qECQhBCABIAIQgAIiASAEIANrIgIgACACIABJGyIAIAEgAEsbIgBBBSAAQQVLGyIAQQwgAEEMSRsL5AQBC38Cf0F/IANBAWoiDiADSQ0AGiAEQQFqIQ8gBEF7aiEHQQEgBHQiDEEBaiEKIAAgAWpBfmohDUEEIQEgACEIA0ACQAJAIAtFBEAgBiEEDAELAkAgBiIEIA5PDQADQCACIARBAXRqLwEADQEgAyAERiEJIARBAWohBCAJRQ0ACyAKIQkMAgsgBCAORgRAIAohCQwCCyAEIAZBGGoiCU8EQEH//wMgAXQhCwNAIAUgCCANTXJFBEBBun8PCyAIIAcgC2oiBjsAACAGQRB2IQcgCEECaiEIIAkiBkEYaiIQIQkgBCAQTw0ACwsgBCAGQQNqIglPBEADQEEDIAF0IAdqIQcgAUECaiEBIAQgCSIGQQNqIglPDQALCyAEIAZrIAF0IAdqIQcgAUEPSARAIAFBAmohAQwBCyAFIAggDU1yRQRAQbp/DwsgCCAHOwAAIAFBcmohASAHQRB2IQcgCEECaiEIC0F/IAIgBEEBdGouAQAiBkEAIAZrIAZBAEgbIApqIglBAUgNAhogASAPakEAIApBf3MgDEEBdGoiCyAGQQFqIgYgDEgbIAZqIgogC0hrIQYgCSAMSARAA0AgD0F/aiEPIAkgDEEBdSIMSA0ACwsgCiABdCAHaiEHIAZBEUgEfyAGBSAFIAggDU1yRQRAQbp/DwsgCCAHOwAAIAdBEHYhByAIQQJqIQggBkFwagshASAJQQJIDQAgCkEBRiELIAkhCiAEQQFqIgYgDkkNAQsLQX8gCUEBRw0AGiAFRQRAQbp/IAggDUsNARoLIAggBzsAACAIIAFBB2pBCG1qIABrCwvgBgEJfyABKAIAIQwgBUEAQYAgECghByADRQRAIABBACAMQQFqECgaIAFBADYCAEEADwsgB0GAGGohCCAHQYAQaiEJIAdBgAhqIQogAiADaiENAkAgA0EUSARAIAIhAwwBCyANQXFqIQ4gAkEEaiEFIAIoAAAhBgNAIAUoAAAhAyAHIAZB/wFxQQJ0aiIFIAUoAgBBAWo2AgAgCiAGQQZ2QfwHcWoiBSAFKAIAQQFqNgIAIAkgBkEOdkH8B3FqIgUgBSgCAEEBajYCACAIIAZBFnZB/AdxaiIFIAUoAgBBAWo2AgAgAigACCEFIAcgA0H/AXFBAnRqIgYgBigCAEEBajYCACAKIANBBnZB/AdxaiIGIAYoAgBBAWo2AgAgCSADQQ52QfwHcWoiBiAGKAIAQQFqNgIAIAggA0EWdkH8B3FqIgMgAygCAEEBajYCACACKAAMIQsgByAFQf8BcUECdGoiAyADKAIAQQFqNgIAIAogBUEGdkH8B3FqIgMgAygCAEEBajYCACAJIAVBDnZB/AdxaiIDIAMoAgBBAWo2AgAgCCAFQRZ2QfwHcWoiAyADKAIAQQFqNgIAIAJBEGoiAygAACEGIAcgC0H/AXFBAnRqIgUgBSgCAEEBajYCACAKIAtBBnZB/AdxaiIFIAUoAgBBAWo2AgAgCSALQQ52QfwHcWoiBSAFKAIAQQFqNgIAIAggC0EWdkH8B3FqIgUgBSgCAEEBajYCACACQRRqIQUgAyECIAUgDkkNAAsLIAMgDUkEQANAIAcgAy0AAEECdGoiAiACKAIAQQFqNgIAIANBAWoiAyANRw0ACwsCQCAERSAMQf8BIAwbIgJB/wFPcg0AQf8BIQMDQAJAIAcgA0ECdCIEaiIFIAUoAgAgBCAIaigCACAEIAlqKAIAIAQgCmooAgBqamoiBDYCACAEDQAgA0F/aiIDIAJLDQEMAgsLQVAPCyACQf8BIAJB/wFJGyEFQQAhA0EAIQYDQCAAIANBAnQiAmogAiAIaigCACACIAlqKAIAIAIgCmooAgAgAiAHaigCAGpqaiICNgIAIAIgBiACIAZLGyEGIAMgBUchAiADQQFqIQMgAg0ACwNAIAUiAkF/aiEFIAAgAkECdGooAgBFDQALIAEgAjYCACAGC4gDAgV/BX4gAEEoaiIBIAAoAkgiBWohAgJ+IAApAwAiBkIgWgRAIAApAxAiB0IHiSAAKQMIIghCAYl8IAApAxgiCUIMiXwgACkDICIKQhKJfCAIEIQBIAcQhAEgCRCEASAKEIQBDAELIAApAxhCxc/ZsvHluuonfAsgBnwhBgJAIAIgAEEwaiIESQRAIAEhAwwBCwNAQgAgASkAABBOIAaFQhuJQoeVr6+Ytt6bnn9+QuPcypX8zvL1hX98IQYgBCIDIgFBCGoiBCACTQ0ACwsCQCADQQRqIgEgAksEQCADIQEMAQsgAygAAK1Ch5Wvr5i23puef34gBoVCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQYLIAEgAkkEQCAAIAVqQShqIQADQCABMQAAQsXP2bLx5brqJ34gBoVCC4lCh5Wvr5i23puef34hBiABQQFqIgEgAEcNAAsLIAZCIYggBoVCz9bTvtLHq9lCfiIGQh2IIAaFQvnz3fGZ9pmrFn4iBkIgiCAGhQv4AgICfwR+IAAgACkDACACrXw3AwACQAJAIAAoAkgiAyACakEfTQRAIAAgA2pBKGogASACEKsBIAAoAkggAmohAQwBCyABIAJqIQQCQAJ/IAMEQCAAQShqIgIgA2ogAUEgIANrEKsBIAAgACkDCCACKQAAEE43AwggACAAKQMQIAApADAQTjcDECAAIAApAxggACkAOBBONwMYIAAgACkDICAAQUBrKQAAEE43AyAgACgCSCECIABBADYCSCABIAJrQSBqIQELIAFBIGogBEsLBEAgASECDAELIARBYGohAyAAKQMgIQUgACkDGCEGIAApAxAhByAAKQMIIQgDQCAIIAEpAAAQTiEIIAcgASkACBBOIQcgBiABKQAQEE4hBiAFIAEpABgQTiEFIAFBIGoiAiEBIAIgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyACIARPDQEgAEEoaiACIAQgAmsiARCrAQsgACABNgJICwtlACAAQgA3AyggAEL56tDQ58mh5OEANwMgIABCADcDGCAAQs/W077Sx6vZQjcDECAAQtbrgu7q/Yn14AA3AwggAEIANwMAIABCADcDMCAAQgA3AzggAEFAa0IANwMAIABCADcDSAsVACABBEAgAiAAIAERAwAPCyAAEEwLYQEDf0F+IQECQCAARQ0AIAAoAhwiAkUNACAAKAIkIgNFDQAgAigCNCIBBEAgACgCKCABIAMRBAAgACgCJCEDIAAoAhwhAgsgACgCKCACIAMRBABBACEBIABBADYCHAsgAQudCwEMfyACQQBOBEBBBEEDIAEvAQIiCxshB0EHQYoBIAsbIQQgAEG5LWohCEF/IQYDQCALIQkCQCAJIAEgDCINQQFqIgxBAnRqLwECIgtH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AhQgCiAAKAIIaiADOgAAIAAgACgCFCIDQQFqNgIUIAMgACgCCGogAEG5LWotAAA6AAAgACABQRAgACgCvC0iAWt2OwG4LSAAIAEgAmpBcGo2ArwtDwsgACACIARqNgK8LQuXAQECfwJAAn8gACgCvC0iAUEJTgRAIAAgACgCFCIBQQFqNgIUIAEgACgCCGogAC0AuC06AAAgACAAKAIUIgFBAWo2AhQgAEG5LWotAAAhAiABIAAoAghqDAELIAFBAUgNASAAIAAoAhQiAUEBajYCFCAALQC4LSECIAEgACgCCGoLIAI6AAALIABBADYCvC0gAEEAOwG4LQvaBAEBfwNAIAAgAUECdGpBADsBlAEgAUEBaiIBQZ4CRw0ACyAAQQA7AfwUIABBADsBiBMgAEHEFWpBADsBACAAQcAVakEAOwEAIABBvBVqQQA7AQAgAEG4FWpBADsBACAAQbQVakEAOwEAIABBsBVqQQA7AQAgAEGsFWpBADsBACAAQagVakEAOwEAIABBpBVqQQA7AQAgAEGgFWpBADsBACAAQZwVakEAOwEAIABBmBVqQQA7AQAgAEGUFWpBADsBACAAQZAVakEAOwEAIABBjBVqQQA7AQAgAEGIFWpBADsBACAAQYQVakEAOwEAIABBgBVqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEHYE2pBADsBACAAQdQTakEAOwEAIABB0BNqQQA7AQAgAEHME2pBADsBACAAQcgTakEAOwEAIABBxBNqQQA7AQAgAEHAE2pBADsBACAAQbwTakEAOwEAIABBuBNqQQA7AQAgAEG0E2pBADsBACAAQbATakEAOwEAIABBrBNqQQA7AQAgAEGoE2pBADsBACAAQaQTakEAOwEAIABBoBNqQQA7AQAgAEGcE2pBADsBACAAQZgTakEAOwEAIABBlBNqQQA7AQAgAEGQE2pBADsBACAAQYwTakEAOwEAIABCADcCrC0gAEGUCWpBATsBACAAQQA2AqgtIABBADYCoC0LngEBAn8gACAALwG4LSADQf//A3EiBCAAKAK8LSIDdHIiBTsBuC0gAAJ/IANB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A0AgCSAFIARBAXRqIgotAAEiC0ECdGoiDCgCACEDIAlBPGogCi0AAEEIdCAIakH//wNxEC8gCUECOgA/IAkgByALayIKIAJqOgA+IANBASABIAprdGohCiAJKAI8IQsDQCAAIANBAnRqIAs2AQAgA0EBaiIDIApJDQALIAwgCjYCACAEQQFqIgQgBkcNAAsLIAlBQGskAAvdAgEJfyMAQdAAayIJJAAgCUFAayAFKAIwNgIAIAkgBSkCKDcDOCAJIAUpAiA3AzAgCSAFKQIYNwMoIAkgBSkCEDcDICAJIAUpAgA3AxAgCSAFKQIINwMYIAMEQCAHIAZrIQ8gByABayEQA0BBASABIAcgAiALQQF0aiIGLQABIgxrIghrIgp0IQ0gBi0AACEOIAlBEGogDEECdGoiDCgCACEGAkAgCiAPTwRAIAAgBkECdGogCiAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QlQMgBiANaiEIDAELIAlBDGogDhAvIAlBAToADyAJIAg6AA4gBiAGIA1qIghPDQAgCSgCDCEKA0AgACAGQQJ0aiAKNgEAIAZBAWoiBiAIRw0ACwsgDCAINgIAIAtBAWoiCyADRw0ACwsgCUHQAGokAAs+AQN/IAAEQCAAKAIAIABBvNABaigCACIBIABBwNABaigCACICIABBxNABaigCACIDEGQgACABIAIgAxBkCwvMAQEBfyAAIAEoArTQATYCmOIBIAAgASgCBCICNgLA4AEgACACNgK84AEgACACIAEoAghqIgI2ArjgASAAIAI2AsTgASABKAK40AEEQCAAQoGAgIAQNwOI4QEgACABQaTQAGo2AgwgACABQZQgajYCCCAAIAFBnDBqNgIEIAAgAUEMajYCACAAQazQAWogAUGo0AFqKAIANgIAIABBsNABaiABQazQAWooAgA2AgAgAEG00AFqIAFBsNABaigCADYCAA8LIABCADcDiOEBC6JIAS5/IwBB4ABrIhIkACAAKAKEASEGIAAoAgQhByAAKAKIASEFIAAoAgwhCCASIAAoAhg2AlwgACgCPCEbIABBQGsoAgAhHCAAQSxqIiYgAyAEQQIQWSADIAcgCGogA0ZqIg0gAyAEaiIMQXhqIi5JBEAgBUH/HyAFQf8fSRsh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AnRBsKcBaigCABBHIAtBOGoQOSALQThqIAAvAQYgAi0AAEECdEGQpAFqKAIAEEcgC0E4ahA5AkAgCgRAIAEtAAAiASABQRggAUEYSRsiAmsiAQRAIAtBOGogACgCACABEEcgC0E4ahA5CyALQThqIAAoAgAgAXYgAhBHDAELIAtBOGogACgCACABLQAAEEcLIAtBOGoQOSAJQQJPBEAgCUF+aiEMA0AgByAMai0AACECIAMgDGotAAAhBCALQThqIAtBGGogBSAMai0AACIAEGwgC0E4aiALQShqIAQQbCALQThqEDkgC0E4aiALQQhqIAIQbCALQThqEDkgC0E4aiAIIAxBA3RqIgEvAQQgAkECdEGwpwFqKAIAIgIQRyACIARBAnRBkKQBaigCACICakEZTwRAIAtBOGoQOQsgC0E4aiABLwEGIAIQRyALQThqEDkCQCAKBEAgACAAQRggAEEYSRsiAmsiAARAIAtBOGogASgCACAAEEcgC0E4ahA5CyALQThqIAEoAgAgAHYgAhBHDAELIAtBOGogASgCACAAEEcLIAtBOGoQOSAMQX9qIgwgCUkNAAsLIAtBOGogCygCKCALKAI0EHQgC0E4aiALKAIYIAsoAiQQdCALQThqIAsoAgggCygCFBB0IAtBOGoQ/QEiAEG6fyAAGyEMCyALQdAAaiQAIAwLLwAgACACQQN0aigCBCIAQRB2QQFqIgJBCHRBfyABdCAAayACQRB0akEIdCABdmsLTwEEfwNAIANBASAAIARBAnRqKAIAIgNBCHQiBSACbiIGIAUgAkkbIAYgAxtBAnRBkJwBaigCACADbGohAyAEQQFqIgQgAU0NAAsgA0EIdgtKAQF/IwBB8ARrIgQkACAEIAMgAiABEKcBIgMgACACIAEQpgEiAhAhRQRAIARB8ABqQYAEIAQgASADEKgBIQILIARB8ARqJAAgAguKAQEIfyMAQRBrIgMkACADIAAQc0F/IQUCQCAALwACIAJJDQAgAygCDCIHQQh0QYACaiEIIAMoAgghCUEAIQADQCAJIAcgABDJAyEGIAEgAEECdGooAgAiCgRAIAYgCE8NAiAGIApsIARqIQQLIABBAWoiACACTQ0ACyAEQQh2IQULIANBEGokACAFC18BAn9BCCABayEFQQAhAQNAIARBASAAIAFBAXRqLwEAIgQg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ASACEEUiARAhDQEgBEEQaiAEQRhqIAMQggEgBEEIaiAEQRhqIAMQggFBACEBAkAgBEEYahAjBEBBACEDDAELA0AgACABaiICIARBEGogBEEYahBiOgAAIAIgBEEIaiAEQRhqEGI6AAEgBEEYahAjBEAgAUECciEDDAILIAIgBEEQaiAEQRhqEGI6AAIgAiAEQQhqIARBGGoQYjoAAyABQQRqIQMgBEEYahAjIQIgAUH3AUsNASADIQEgAkUNAAsLAn8DQEG6fyEBIANB/QFLDQMgACADaiICIARBEGogBEEYahBiOgAAIAIiBkEBaiEFIARBGGoQI0EDRgRAQQIhAyAEQQhqDAILIANB/AFLDQMgBiAEQQhqIARBGGoQYjoAASADQQJqIQMgBEEYahAjQQNHDQALIAAgA2ohBUEDIQMgBEEQagshASAFIAEgBEEYahBiOgAAIAIgA2ogAGshAQwBCyAEQRhqIAEgAhBFIgEQIQ0AIARBEGogBEEYaiADEIIBIARBCGogBEEYaiADEIIBQQAhAQJAIARBGGoQIwRAQQAhAwwBCwNAIAAgAWoiAiAEQRBqIARBGGoQYToAACACIARBCGogBEEYahBhOgABIARBGGoQIwRAIAFBAnIhAwwCCyACIARBEGogBEEYahBhOgACIAIgBEEIaiAEQRhqEGE6AAMgAUEEaiEDIARBGGoQIyECIAFB9wFLDQEgAyEBIAJFDQALCwJ/A0BBun8hASADQf0BSw0CIAAgA2oiAiAEQRBqIARBGGoQYToAACACIgZBAWohBSAEQRhqECNBA0YEQEECIQMgBEEIagwCCyADQfwBSw0CIAYgBEEIaiAEQRhqEGE6AAEgA0ECaiEDIARBGGoQI0EDRw0ACyAAIANqIQVBAyEDIARBEGoLIQEgBSABIARBGGoQYToAACACIANqIABrIQELIARBMGokACABC68DAQp/IwBBgARrIgkkAEFSIQUCQCACQf8BSw0AIABBBGohCkGAgAQgA0F/anRBEHUhC0EBIAN0IghBf2oiDCEHQQEhBQNAAkAgASAEQQF0Ig1qLwEAIgZB//8DRgRAIAogB0ECdGogBDoAAiAHQX9qIQdBASEGDAELIAVBACALIAZBEHRBEHVKGyEFCyAJIA1qIAY7AQAgAiAERyEGIARBAWohBCAGDQALIAAgBTsB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IAIgASgCCGpBADoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQA6AABBAiECIAEoAoQBIgNBCUcEQEEEIAEoAogBQQFKQQJ0IANBAkgbIQILIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACABIAEoAhQiAkEBajYCFCACIAEoAghqQQM6AAAgAUHxADYCBAwNCyACKAIkIQMgAigCHCEEIAIoAhAhBSACKAIsIQYgAigCACEHIAEgASgCFCIIQQFqNgIUQQIhAiAIIAEoAghqIAZBAEdBAXQgB0EAR3IgBUEAR0ECdHIgBEEAR0EDdHIgA0EAR0EEdHI6AAAgASgCHCgCBCEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAIcKAIEIQMgASABKAIUIgRBAWo2AhQgBCABKAIIaiADQQh2OgAAIAEoAhwvAQYhAyABIAEoAhQiBEEBajYCFCAEIAEoAghqIAM6AAAgASgCHC0AByEDIAEgASgCFCIEQQFqNgIUIAQgASgCCGogAzoAACABKAKEASIDQQlHBEBBBCABKAKIAUEBSkECdCADQQJIGyECCyABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCDCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAAAJ/IAEoAhwiBCgCEARAIAQoAhQhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgASgCHCgCFCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACABKAIcIQQLIAQoAiwLBEAgACAAKAIwIAEoAgggASgCFBA1NgIwCyABQcUANgIEIAFBADYCIAwCCyABKAIwQQx0QYCQfmohBEEAIQICQCABKAKIAUEBSg0AIAEoAoQBIgNBAkgNAEHAACECIANBBkgNAEGAAUHAASADQQZGGyECCyABQfEANgIEIAEgAiAEciICQSByIAIgASgCbBsiAkEfcCACckEfcxB1IAEoAmwEQCABIAAvATIQdSABIAAvATAQdQsgAEEAQQBBABBlNgIwIAEoAgQhAgsgAkHFAEcNASABKAIcIQQLAkAgBCgCEARAIAEoAhQhAiABKAIgIgUgBC8BFE8NASACIQMDQCABKAIMIAJGBEACQCACIANNDQAgBCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIcIQQgASgCFCICIAEoAgxGDQMgASgCICEFIAIhAwsgBCgCECAFai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgASABKAIgQQFqIgU2AiAgBSABKAIcIgQvARRPBEAgAyECDAMFIAEoAhQhAgwBCwALAAsgAUHJADYCBAwCCwJAIAQoAixFDQAgASgCFCIDIAJNDQAgACAAKAIwIAEoAgggAmogAyACaxA1NgIwCyABKAIgIAQoAhRGBEAgAUHJADYCBCABQQA2AiAMAgsgASgCBCECCyACQckARw0BIAEoAhwhBAsgBCgCHEUNAiABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIcIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB2wBHDQMgASgCHCEEDAILIAFBADYCIAsgAUHbADYCBAsgBCgCJEUNASABKAIUIgIhAwJAA0ACQCABKAIMIAJGBEACQCACIANNDQAgASgCHCgCLEUNACAAIAAoAjAgASgCCCADaiACIANrEDU2AjALIAAQNiABKAIUIgIgASgCDEYNASACIQMLQQEhBSABKAIcKAIkIQQgASABKAIgIgZBAWo2AiAgBCAGai0AACEEIAEgAkEBajYCFCABKAIIIAJqIAQ6AAAgBARAIAEoAhQhAgwCBSADIQIMAwsACwtBACEFCwJAIAEoAhwiBCgCLEUNACABKAIUIgMgAk0NACAAIAAoAjAgASgCCCACaiADIAJrEDU2AjALIAUNASABKAIEIQILIAJB5wBHDQIgASgCHCEEDAELIAFB5wA2AgQLIAQoAiwEQCABKAIUIgVBAmoiAiABKAIMIgRLBH8gABA2IAEoAgwhBCABKAIUIgVBAmoFIAILIARLDQEgACgCMCECIAEgBUEBajYCFCABKAIIIAVqIAI6AAAgACgCMCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAAQQBBAEEAEDU2AjAgAUHxADYCBAwBCyABQfEANgIECwJAIAEoAhQEQCAAEDYgACgCEARAIAAoAgQhAgwCCwwECyAAKAIEIgINAEEAIQILAkACQAJAIAEoAgQiA0GaBUYEQCACRQ0BDAULIAINAQsgA0GaBUcNACABKAJ0RQ0BCwJ/AkACQAJAIAEoAogBQX5qDgIAAQILIAEQnQQMAgsgARCcBAwBCyABQQQgASgChAFBDGxBuNcAaigCABEDAAsiAkF+cUECRgRAIAFBmgU2AgQLIAJBfXFFBEBBACECIAAoAhANAgwECyACQQFHDQAgAUEAQQBBABCOAiAAEDYgACgCEA0ADAMLQQEhAiABKAIYIgNBAUgNACAAKAIwIQICQCADQQJGBEAgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAjAhAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAJBCHY6AAAgAC8BMiECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAjoAACAALQAzIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAoAgghAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAgACgCCCECIAEgASgCFCIDQQFqNgIUIAMgASgCCGogAkEIdjoAACAALwEKIQIgASABKAIUIgNBAWo2AhQgAyABKAIIaiACOgAAIAAtAAshAiABIAEoAhQiA0EBajYCFCADIAEoAghqIAI6AAAMAQsgASACQRB2EHUgASAALwEwEHULIAAQNiABKAIYIgBBAU4EQCABQQAgAGs2AhgLIAEoAhRFIQILIAIPCyAAQceEATYCGEF7DwsgAUF/NgIoQQAL3QEBBn8CQCAAKAKAgBAiBSAAKAKEgBAiAyAAKAKMgBAiBGpBBGpJDQAgACgClIAQIgIgBSADa0F9aiIGTw0AA0AgACACQf//A3FBAXRqQYCACGogAiAAIAIgA2oQOkECdGoiBCgCAGsiB0H//wMgB0H//wNJGzsBACAEIAI2AgAgAkEBaiICIAZJDQALIAAoAoyAECEECyAAIAQ2ApCAECAAIAM2AoiAECAAQQA2ApyAECAAIAE2AoCAECAAIAUgA2siAjYCjIAQIAAgAjYClIAQIAAgASACazYChIAQC9kDAQR/IwBBEGsiAyQAIAFBADYCACAAKAIAIgIgA0EMaiACKAIAKAIMEQMAIQICQCADKAIMRQ0AIAIsAAAhAiAAKAIAIgRBASAEKAIAKAIQEQQAIAEgASgCACACQf8AcXI2AgACQCACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQd0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQQ50cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACECIAAoAgAiBEEBIAQoAgAoAhARBAAgASABKAIAIAJB/wBxQRV0cjYCACACQX9KDQAgACgCACICIANBDGogAigCACgCDBEDACECIAMoAgxFDQEgAiwAACEFIAAoAgAiAEEBIAAoAgAoAhARBAAgASABKAIAIAVBHHRyNgIAIAVBf0oNAEEAIQUMAQtBASEFCyADQRBqJAAgBQvhSQE3fwJAIAAoAoCAECIJIAAoAoSAECILayAAKAKQgBBrIghBgIAETwRAIABBADYCnIAQDAELAkAgCA0AIAMoAgBBgSBIDQAgACAAKAKcgBBBoIAQECoiACABEKwEIAAgBTsBmIAQDAELAkAgBEEATEEAIAZBAkYbDQAgAygCACIIQYCAgPAHSw0AIAAgCCAJajYCgIAQQQkgBSAFQQFIGyIFQQwgBUEMSBsiG0EMbCIJQZQWaigCACEuAkACfyAbQQlNBEAgA0EANgIAIAIgBGoiOkF7aiA6IAZBAkYiOxshKSABIAhqITMgASEoIAIhCQJAIAhBDUgNACAzQXRqIjIgAUkNAEGANCAbdkEBcSE0IDNBe2oiGEF/aiEvIBhBfWohIkEAIRsDQCAAKAKUgBAhBCAAKAKIgBAhEyAAKAKcgBAhFCAoIQwDQCAAKAKQgBAiBSAMIAtrIh9BgYB8aiAFQYCABGogH0sbIRUgACgC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BEADQCADKAAAIAQoAABzIgkEQCAJECUgBGogAGsMBAsgA0EEaiEDIARBBGoiBCAUSQ0ACwsCQCAEIBhPDQAgAy8AACAELwAARw0AIANBAmohAyAEQQJqIQQLIAQgF0kEfyAEQQFqIAQgAy0AACAELQAARhsFIAQLIABrDAELIAMQJQsiAEHwAWpB/wFuakEIaiAPSw0EIAdBAmohAyAAIAZqQQRqIQYgBS0AACEEAn8gAEEPTwRAIAUgBEEPajoAACADQX8QNCAAQXFqIgRB/AdPBEADQCADQQRqIgNBfxA0IARBhHhqIgRB+wdLDQALCyADIARB//8DcUH/AW4iAGoiAyAAQYF+bCAEajoAACADQQFqDAELIAUgACAEajoAACADCyEFIAYgEU8NASAGQX5qIgAgACgAACALEDAgCCALIAwQSSAGKAAAIQACQAJAIBZFBEAgAEEBEDAiACAIEIUBIQQgBiAAIAhBASAMEEkgBEH//wNqIAZJDQEgBCgAACAGKAAARw0BDAILIAAgCxAwIgMgCCALEEghACAGIAxrIgQgAyAIIAsQXCAAQf//A2ogBEkNACAAIAxqIgQoAAAgBigAAEYNAQsgBkEBaiIDKAAAIAsQMCEEDAMLIAVBADoAACAFQQFqIQcMAAsACwtBACETIAUgECAGayIBaiABQfABakH/AW5qQQFqIA9LDQECQCABQQ9PBEAgBUHwAToAACAFQQFqIQAgAUFxaiIDQf8BSQRAIAAiBSADOgAADAILIABB/wEgAUHyfWoiAEH/AW5BAWoQKBogAEH/AW4iAyAFakECaiIFIANBgX5sIABqOgAADAELIAUgAUEEdDoAAAsgBUEBaiAGIAEQKiABaiACayETDAELIANBgICA8AdLDQAgASADaiIPQXVqIRAgD0F0aiEUIAgoAoCAASEAIAhBAUECIAFB//8DSxsiCzsBhoABIAggACADajYCgIABIAggCCgCkIABIANqNgKQgAEgASABKAAAIAsQMCAIIAsgASAAayIMEEkgD0F7aiITQX9qIRcgE0F9aiERIAZBBnQiCkEBciENIAFBAWoiAygAACALEDAhBCABQYCABEkhFSACIQUgASEGA0ACQCAVRQRAIAMgFEsNBCADQQFqIQ4gCiEJIA0hBwNAIAQgCBCFASEAIA4oAABBARAwIRIgAyAE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IAJBCE8EQANAIAMEQCADIAVsIQcgBUEHciIIIANsIQkgBUEGciIKIANsIQsgBUEFciIMIANsIQ0gBUEEciIOIANsIQ8gBUEDciIQIANsIREgBUECciISIANsIRMgBUEBciIUIANsIRVBACEEA0AgASAFIAIgBGwiBmpqIAAgBCAHamotAAA6AAAgASAGIBRqaiAAIAQgFWpqLQAAOgAAIAEgBiASamogACAEIBNqai0AADoAACABIAYgEGpqIAAgBCARamotAAA6AAAgASAGIA5qaiAAIAQgD2pqLQAAOgAAIAEgBiAMamogACAEIA1qai0AADoAACABIAYgCmpqIAAgBCALamotAAA6AAAgASAGIAhqaiAAIAQgCWpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEPaiEEIAVBCGohBSAEIAJJDQALCyACQXhxIgUgAk8NAANAIAMEQCADIAVsIQZBACEEA0AgASACIARsIAVqaiAAIAQgBmpqLQAAOgAAIARBAWoiBCADRw0ACwsgBUEBaiIFIAJHDQALCyACIANsrQuCAQEGfyABIAEgAG4iBiAAbGshByAAIAFNBEAgBkEBIAZBAUsbIQgDQCAABEAgACAEbCEJQQAhBQNAIAMgBSAJamogAiAFIAZsIARqai0AADoAACAFQQFqIgUgAEcNAAsLIARBAWoiBCAIRw0ACwsgAyABIAdrIgBqIAAgAmogBxAqGgsNACAAIAEgAiADEL0EC4IBAQZ/IAEgASAAbiIGIABsayEHIAAEQCAGQQEgBkEBSxshCANAIAAgAU0EQCAEIAZsIQlBACEFA0AgAyAFIAlqaiACIAAgBWwgBGpqLQAAOgAAIAVBAWoiBSAIRw0ACwsgBEEBaiIEIABHDQALCyADIAEgB2siAGogACACaiAHECoaC7gBAQN/AkAgAUEBSA0AIAAsAAAiBEH/AHEhAwJAIARBf0oNACABQQJIDQEgACwAASIEQQd0QYD/AHEgA3IhAyAEQX9KDQAgAUEDSA0BIAAsAAIiBEEOdEGAgP8AcSADciEDIARBf0oNACABQQRIDQEgACwAAyIEQRV0QYCAgP8AcSADciEDIARBf0oNACABQQVIDQEgAC0ABCIAQQ9LDQEgAEEcdCADciEDCyACIAM2AgBBASEFCyAFCw0AIAAgASACIAMQvwQLlAIB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CA0tEC0gLgAJDS4QLiAvAAoNLxAvIDAACw0wEDAgMQAEDjEQMSAyAAUOMhAyIDMABg4zEDMgNAAHDjQQNCA1AAgONRA1IDYACQ42EDYgNwAKDjcQNyA4AAsOOBA4IDkABA85EDkgOgAFDzoQOiA7AAYPOxA7IDwABw88EDwgAQgIDz0QPSABEAkPPhA+IAEYCg8/ED8gASALD0AQQCAAAAAA/wAAAP//AAD///8A/////2RlY29tcHJlc3MAY29tcHJlc3MAZnJlZV9yZXN1bHQAdmkAAHhzAABpaWlpaWlpAEGQDgvUBigHAAAwBwAAMAcAAMxzAADMcwAAzHMAABh0AAC2BwAAQHQAAEgHAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAABh0AACQBwAATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQBOMTBlbXNjcmlwdGVuM3ZhbEUAAAAAGHQAANQHAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAaWlpAAAoBwAAMAcAABgIAAAgCAAAJAgAACoIAAAxCAAANggAAGJsb3NjbHoAbHo0AGx6NGhjAHNuYXBweQB6bGliAHpzdGQARXJyb3IuICBudGhyZWFkcyBjYW5ub3QgYmUgbGFyZ2VyIHRoYW4gQkxPU0NfTUFYX1RIUkVBRFMgKCVkKQBFcnJvci4gIG50aHJlYWRzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyAEVSUk9SOyByZXR1cm4gY29kZSBmcm9tIHB0aHJlYWRfY3JlYXRlKCkgaXMgJWQKAAlFcnJvciBkZXRhaWw6ICVzCgBCbG9zYyBoYXMgbm90IGJlZW4gY29tcGlsZWQgd2l0aCAnJXMnIABjb21wcmVzc2lvbiBzdXBwb3J0LiAgUGxlYXNlIHVzZSBvbmUgaGF2aW5nIGl0LgBFcnJvciBhbGxvY2F0aW5nIG1lbW9yeSEARVJST1I7IHJldHVybiBjb2RlIGZyb20gcHRocmVhZF9qb2luKCkgaXMgJWQKAElucHV0IGJ1ZmZlciBzaXplIGNhbm5vdCBleGNlZWQgJWQgYnl0ZXMKAE91dHB1dCBidWZmZXIgc2l6ZSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gJWQgYnl0ZXMKAGBjbGV2ZWxgIHBhcmFtZXRlciBtdXN0IGJlIGJldHdlZW4gMCBhbmQgOSEKAGBzaHVmZmxlYCBwYXJhbWV0ZXIgbXVzdCBiZSBlaXRoZXIgMCwgMSBvciAyIQoAAAAAAQAAgAAAAAABAAAAAQAACgoLDA0ODg4O/wAICBAgICAgQABB9hQLUfC/mpmZmZmZuT+amZmZmZnJPzMzMzMzM9M/mpmZmZmZ2T8zMzMzMzPjP83MzMzMzOw/ZmZmZmZm7j8AAAAAAADwPwAAAAAAAPA/Z2VuZXJpYwBB1BULGQEAAAACAAAAAQAAAAAAAAAEAAAABAAAAAQAQfwVC64B//////z///8BAAAAAgAAAAMAAAAAAAAAAgAAABAAAAAAAAAAAgAAABAAAAAAAAAAAgAAABAAAAAAAAAABAAAABAAAAAAAAAACAAAABAAAAAAAAAAEAAAABAAAAAAAAAAIAAAABAAAAAAAAAAQAAAABAAAAAAAAAAgAAAABAAAAAAAAAAAAEAABAAAAABAAAAYAAAAEAAAAABAAAAAAIAAIAAAAABAAAAAEAAAAAQAEG0FwvxQJYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2Cb18sX4HLbjnkR2/kGQQtx3yILBqSHG5895BvoR91Noa6+TdbVG11PTHhdODVphsE8Coa2R6+WL97Mllik9cARTZbAZjYz0P+vUNCI3IIG47XhBpTORBYNVycWei0eQDPEfUBEv9hQ3Sa7UKpfqotTVsmLJC1sm720D5vKzjbNgydVzfRc8N1txZPdGrrDDZJjoA3lGAUdfIFmHQv7X0tCEjxLNWmZW6zw+lvbieuAIoCIgFX7LZDMYk6Quxh3xvLxFMaFirHWHBPS1mtpBB3HYGcdsBvCDSmCoQ1e+JhbFxH7W2BqXkv58z1LjooskHeDT5AA+OqAmWGJgO4bsNan8tPW0Il2xkkQFcY+b0UWtrYmFsHNgwZYVOAGLy7ZUGbHulARvB9AiCV8QP9cbZsGVQ6bcS6ri+i3yIufzfHd1iSS3aFfN804xlTNT7WGGyTc5RtTp0ALyj4jC71EGl30rXldg9bcTRpPv01tNq6WlD/NluNEaIZ63QuGDacy0EROUdAzNfTAqqyXwN3TxxBVCqQQInEBALvoYgDMkltWhXs4VvIAnUZrmf5GHODvneXpjJ2SkimNCwtKjXxxc9s1mBDbQuO1y9t61susAgg7jttrO/mgzitgOa0rF0OUfV6q930p0VJtsEgxbccxILY+OEO2SUPmptDahaanoLzw7knf8JkyeuAAqxngd9RJMP8NKjCIdo8gEe/sIGaV1XYvfLZ2WAcTZsGecGa252G9T+4CvTiVp62hDMSt1nb9+5+fnvvo5DvrcX1Y6wYOij1tZ+k9GhxMLYOFLy30/xZ7vRZ1e8pt0GtT9LNrJI2isN2EwbCq/2SgM2YHoEQcPvYN9V32eo745uMXm+aUaMs2HLGoNmvKDSbyU24mhSlXcMzANHC7u5FgIiLyYFVb47usUoC72yklq0KwRqs1yn/9fCMc/QtYue2Swdrt5bsMJkmybyY+yco2p1CpNtAqkGCZw/Ng7rhWcHchNXAAWCSr+VFHq44q4rsXs4G7YMm47Skg2+1eW379x8Id/bC9TS04ZC4tTx+LPdaG6D2h/NFr6BWya59uF3sG93R7cY5loIiHBqD//KOwZmXAsBEf+eZY9prmL40/9rYUXPbBZ44gqg7tIN11SDBE7CswM5YSZnp/cWYNBNR2lJ23duPkpq0a7cWtbZZgvfQPA72DdTrrypxZ673n/Pskfp/7UwHPK9vYrCusowk7NTpqO0JAU20LqTBtfNKVfeVL9n2SMuemazuEphxAIbaF2UK28qN74LtKGODMMb3wVaje8CLQAAAABBMRsZgmI2MsNTLSsExWxkRfR3fYanWlbHlkFPCIrZyEm7wtGK6O/6y9n04wxPtaxNfq61ji2Dns8cmIdREsJKECPZU9Nw9HiSQe9hVdeuLhTmtTfXtZgcloSDBVmYG4IYqQCb2/otsJrLNqldXXfmHGxs/98/QdSeDlrNoiSEleMVn4wgRrKnYXepvqbh6PHn0PPoJIPew2Wyxdqqrl1d659GRCjMa29p/XB2rmsxOe9aKiAsCQcLbTgcEvM2Rt+yB13GcVRw7TBla/T38yq7tsIxonWRHIk0oAeQ+7yfF7qNhA553qklOO+yPP9583O+SOhqfRvFQTwq3lgFT3nwRH5i6YctT8LGHFTbAYoVlEC7Do2D6COmwtk4vw3FoDhM9Lshj6eWCs6WjRMJAMxcSDHXRYti+m7KU+F3VF27uhVsoKPWP42Ilw6WkVCY194RqczH0vrh7JPL+vVc12JyHeZ5a961VECfhE9ZWBIOFhkjFQ/acDgkm0EjPadr/WXmWuZ8JQnLV2Q40E6jrpEB4p+KGCHMpzNg/bwqr+Ekre7QP7QtgxKfbLIJhqskSMnqFVPQKUZ++2h3ZeL2eT8vt0gkNnQbCR01KhIE8rxTS7ONSFJw3mV5Me9+YP7z5ue/wv3+fJHQ1T2gy8z6NoqDuweRmnhUvLE5ZaeoS5iDOwqpmCLJ+rUJiMuuEE9d718ObPRGzT/ZbYwOwnRDElrzAiNB6sFwbMGAQXfYR9c2lwbmLY7FtQClhIQbvBqKQXFbu1pomOh3Q9nZbFoeTy0VX342DJwtGyfdHAA+EgCYuVMxg6CQYq6L0VO1khbF9N1X9O/ElKfC79WW2fbpvAeuqI0ct2veMZwq7yqF7XlryqxIcNNvG134LipG4eE23magB8V/Y1ToVCJl803l87ICpMKpG2eRhDAmoJ8puK7F5Pmf3v06zPPWe/3oz7xrqYD9WrKZPgmfsn84hKuwJBws8RUHNTJGKh5zdzEHtOFwSPXQa1E2g0Z6d7JdY07X+ssP5uHSzLXM+Y2E1+BKEpavCyONtshwoJ2JQbuERl0jAwdsOBrEPxUxhQ4OKEKYT2cDqVR+wPp5VYHLYkwfxTiBXvQjmJ2nDrPclhWqGwBU5VoxT/yZYmLX2FN5zhdP4UlWfvpQlS3Xe9QczGITio0tUruWNJHoux/Q2aAG7PN+Xq3CZUdukUhsL6BTdeg2EjqpBwkjalQkCCtlPxHkeaeWpUi8j2YbkaQnKoq94LzL8qGN0Oti3v3AI+/m2b3hvBT80KcNP4OKJn6ykT+5JNBw+BXLaTtG5kJ6d/1btWtl3PRafsU3CVPudjhI97GuCbjwnxKhM8w/inL9JJMAAAAAN2rCAW7UhANZvkYC3KgJB+vCywayfI0EhRZPBbhREw6PO9EP1oWXDeHvVQxk+RoJU5PYCAotngo9R1wLcKMmHEfJ5B0ed6IfKR1gHqwLLxubYe0awt+rGPW1aRnI8jUS/5j3E6YmsRGRTHMQFFo8FSMw/hR6jrgWTeR6F+BGTTjXLI85jpLJO7n4Czo87kQ/C4SGPlI6wDxlUAI9WBdeNm99nDc2w9o1AakYNIS/VzGz1ZUw6mvTMt0BETOQ5Wskp4+pJf4x7yfJWy0mTE1iI3snoCIimeYgFfMkISi0eCof3rorRmD8KXEKPij0HHEtw3azLJrI9S6tojcvwI2acPfnWHGuWR5zmTPcchwlk3crT1F2cvEXdEWb1XV43Il+T7ZLfxYIDX0hYs98pHSAeZMeQnjKoAR6/crGe7AuvGyHRH5t3vo4b+mQ+m5shrVrW+x3agJSMWg1OPNpCH+vYj8VbWNmqythUcHpYNTXpmXjvWRkugMiZo1p4Gcgy9dIF6EVSU4fU0t5dZFK/GPeT8sJHE6St1pMpd2YTZiaxEav8AZH9k5ARcEkgkREMs1Bc1gPQCrmSUIdjItDUGjxVGcCM1U+vHVXCda3VozA+FO7qjpS4hR8UNV+vlHoOeJa31MgW4btZlmxh6RYNJHrXQP7KVxaRW9ebS+tX4AbNeG3cffg7s+x4tmlc+Ncszzma9n+5zJnuOUFDXrkOEom7w8g5O5WnqLsYfRg7eTiL+jTiO3pijar671caerwuBP9x9LR/J5sl/6pBlX/LBAa+ht62PtCxJ75da5c+EjpAPN/g8LyJj2E8BFXRvGUQQn0oyvL9fqVjffN/0/2YF142Vc3utgOifzaOeM+27z1cd6Ln7Pf0iH13eVLN9zYDGvX72ap1rbY79SBsi3VBKRi0DPOoNFqcObTXRok0hD+XsUnlJzEfiraxklAGMfMVlfC+zyVw6KC08GV6BHAqK9Ny5/Fj8rGe8nI8RELyXQHRMxDbYbNGtPAzy25As5Alq+Rd/xtkC5CK5IZKOmTnD6mlqtUZJfy6iKVxYDglPjHvJ/PrX6elhM4nKF5+p0kb7WYEwV3mUq7MZt90fOaMDWJjQdfS4xe4Q2OaYvPj+ydgIrb90KLgkkEibUjxoiIZJqDvw5YguawHoDR2tyBVMyThGOmUYU6GBeHDXLVhqDQ4qmXuiCozgRmqvlupKt8eOuuSxIprxKsb60lxq2sGIHxpy/rM6Z2VXWkQT+3pcQp+KDzQzqhqv18o52XvqLQc8S15xkGtL6nQLaJzYK3DNvNsjuxD7NiD0mxVWWLsGgi17tfSBW6BvZTuDGckbm0it68g+AcvdpeWr/tNJi+AAAAAGVnvLiLyAmq7q+1EleXYo8y8N433F9rJbk4153vKLTFik8IfWTgvW8BhwHXuL/WSt3YavIzd9/gVhBjWJ9XGVD6MKXoFJ8Q+nH4rELIwHvfrafHZ0MIcnUmb87NcH+tlRUYES37t6Q/ntAYhyfozxpCj3OirCDGsMlHegg+rzKgW8iOGLVnOwrQAIeyaThQLwxf7Jfi8FmFh5flPdGHhmW04DrdWk+Pzz8oM3eGEOTq43dYUg3Y7UBov1H4ofgr8MSfl0gqMCJaT1ee4vZvSX+TCPXHfadA1RjA/G1O0J81K7cjjcUYlp+gfyonGUf9unwgQQKSj/QQ9+hIqD1YFJtYP6gjtpAdMdP3oYlqz3YUD6jKrOEHf76EYMMG0nCgXrcXHOZZuKn0PN8VTIXnwtHggH5pDi/Le2tId8OiDw3Lx2ixcynHBGFMoLjZ9ZhvRJD/0/x+UGbuGzfaVk0nuQ4oQAW2xu+wpKOIDBwasNuBf9dnOZF40iv0H26TA/cmO2aQmoOIPy+R7ViTKVRgRLQxB/gM36hNHrrP8abs35L+ibguRmcXm1QCcCfsu0jwcd4vTMkwgPnbVedFY5ygP2v5x4PTF2g2wXIPinnLN13krlDhXED/VE4lmOj2c4iLrhbvNxb4QIIEnSc+vCQf6SFBeFWZr9fgi8qwXDM7tlntXtHlVbB+UEfVGez/bCE7YglGh9rn6TLIgo6OcNSe7Six+VGQX1bkgjoxWDqDCY+n5m4zHwjBhg1tpjq1pOFAvcGG/AUvKUkXSk71r/N2IjKWEZ6KeL4rmB3ZlyBLyfR4Lq5IwMAB/dKlZkFqHF6W93k5Kk+Xlp9d8vEj5QUZa01gftf1jtFi5+u23l9SjgnCN+m1etlGAGi8IbzQ6jHfiI9WYzBh+dYiBJ5qmr2mvQfYwQG/Nm60rVMJCBWaTnId/ynOpRGGe7d04ccPzdkQkqi+rCpGERk4I3algHVmxtgQAXpg/q7PcpvJc8oi8aRXR5YY76k5rf3MXhFFBu5NdmOJ8c6NJkTc6EH4ZFF5L/k0HpNB2rEmU7/WmuvpxvmzjKFFC2IO8BkHaUyhvlGbPNs2J4Q1mZKWUP4uLpm5VCb83uieEnFdjHcW4TTOLjapq0mKEUXmPwMggYO7dpHg4xP2XFv9WelJmD5V8SEGgmxEYT7Uqs6Lxs+pN344QX/WXSbDbrOJdnzW7srEb9YdWQqxoeHkHhTzgXmoS9dpyxOyDnerXKHCuTnGfgGA/qmc5ZkVJAs2oDZuURyOpxZmhsJx2j4s3m8sSbnTlPCBBAmV5rixe0kNox4usRtIPtJDLVlu+8P22+mmkWdRH6mwzHrODHSUYblm8QYF3gAAAAB3BzCW7g5hLJkJUboHbcQZcGr0j+ljpTWeZJWjDtuIMnncuKTg1ekel9LZiAm2TCt+sXy957gtB5C/HZEdtxBkarAg8vO5cUiEvkHeGtrUfW3d5Ov01LVRg9OFxxNsmFZka6jA/WL5eoplyewUAVxPYwZs2foPPWONCA31O24gyExpEF7VYEHkomdxcjwD5NFLBNRH0g2F/aUKtWs1taj6QrKYbNu7ydasvPlAMths40XfXHXc1g3Pq9E9WSbZMKxR3gA6yNdRgL/QYRYhtPS1VrPEI8+6lZm4vaUPKAK4nl8FiAjGDNmysQvpJC9vfIdYaEwRwWEdq7ZmLT123EGQAdtxBpjSILzv1RAqcbGFiQa2tR+fv+Sl6LjUM3gHyaIPAPk0lgmojuEOmBh/ag27CG09LZFkbJfmY1wBa2tR9BxsYWKFZTDY8mIATmwGle0bAaV7ggj0wfUPxFdlsNnGErfpUIu+uOr8uYh8Yt0d3xXaLUmM03zz+9RMZU2yYVg6tVHOo7wAdNS7MOJK36VBPdiV16TRxG3T1vT7Q2npajRu2fytZ4hG2mC40EQELXMzAx3lqgpMX90NfMlQBXE8JwJBqr4LEBDJDCCGV2i1JSBvhbO5ZtQJzmHkn17e+Q4p2cmYsNCYIsfXqLRZsz0XLrQNgbe9XDvAumyt7biDIJq/s7YDtuIMdLHSmurVRzmd0nevBNsmFXPcFoPjYwsSlGQ7hA1taj56alqo5A7PC5MJ/50KAK4nfQeesfAPk0SHCKPSHgHyaGkGwv73YlddgGVnyxlsNnFuawbn/tQbdonTK+AQ2npaZ91KzPm532+Ovu/5F7e+Q2CwjtXW1qPoodGTfjjYwsRP3/JS0btn8aa8V2c/tQbdSLI2S9gNK9qvChtMNgNK9kEEemDfYO/DqGffVTFuju9Gab55y2GzjLxmgxolb9KgUmjiNswMd5W7C0cDIgIWuVUFJi/Fuju+sr0LKCu0WpJcs2oEwtf/p7XQzzEs2Z6LW96uHZtkwrDsY/ImdWqjnAJtkwqcCQap6w42P3IHZ4UFAFcTlb9KguK4ehR7sSuuDLYbOJLSjpvl1b4NfNzvtwvb3yGG09LU8dTiQmjds/gf2oNugb4Wzfa5JltvsHfhGLdHd4gIWub/D2pwZgY7yhEBC1yPZZ7/+GKuaWFr/9MWbM9FoArieNcN0u5OBINUOQOzwqdnJmHQYBb3SWlHTT5ud9uu0WpK2dZa3EDfC2Y32DvwqbyuU967nsVHss9/MLX/6b298hzKusKKU7OTMCS0o6a60DYFzdcGk1TeVykj2We/s2Z6LsRhSrhdaBsCKm8rlLQLvjfDDI6hWgXfGy0C740AAAAAGRsxQTI2YoIrLVPDZGzFBH139EVWWqeGT0GWx8jZigjRwrtJ+u/oiuP02custU8Mta5+TZ6DLY6HmBzPSsISUVPZIxB49HDTYe9Bki6u11U3teYUHJi11wWDhJaCG5hZmwCpGLAt+tupNsua5nddXf9sbBzUQT/fzVoOnpWEJKKMnxXjp7JGIL6pd2Hx6OGm6PPQ58PegyTaxbJlXV2uqkRGn+tva8wodnD9aTkxa64gKlrvCwcJLBIcOG3fRjbzxl0Hsu1wVHH0a2Uwuyrz96IxwraJHJF1kAegNBefvPsOhI26JaneeTyy7zhz83n/auhIvkHFG31Y3io88HlPBelifkTCTy2H21QcxpQVigGNDrtApiPog7842cI4oMUNIbv0TAqWp48TjZbOXMwACUXXMUhu+mKLd+FTyrq7XVSjoGwViI0/1pGWDpfe15hQx8ypEezh+tL1+suTcmLXXGt55h1AVLXeWU+EnxYOElgPFSMZJDhw2j0jQZtl/WunfOZa5lfLCSVO0DhkAZGuoxiKn+Izp8whKrz9YK0k4a+0P9DunxKDLYYJsmzJSCSr0FMV6vt+RiniZXdoLz959jYkSLcdCRt0BBIqNUtTvPJSSI2zeWXecGB+7zHn5vP+/v3Cv9XQkXzMy6A9g4o2+pqRB7uxvFR4qKdlOTuDmEsimKkKCbX6yRCuy4hf711PRvRsDm3ZP810wg6M81oSQ+pBIwLBbHDB2HdBgJc210eOLeYGpQC1xbwbhIRxQYoaaFq7W0N36JhabNnZFS1PHgw2fl8nGy2cPgAc3bmYABKggzFTi65ikJK1U9Hd9MUWxO/0V+/Cp5T22ZbVrge86bccjaicMd5rhSrvKspree3TcEis+F0bb+FGKi5m3jbhf8UHoFToVGNN82UiArLz5RupwqQwhJFnKZ+gJuTFrrj93p/51vPMOs/o/XuAqWu8mbJa/bKfCT6rhDh/LBwksDUHFfEeKkYyBzF3c0hw4bRRa9D1ekaDNmNdsnfL+tdO0uHmD/nMtczg14SNr5YSSraNIwudoHDIhLtBiQMjXUYaOGwHMRU/xCgODoVnT5hCflSpA1V5+sBMYsuBgTjFH5gj9F6zDqedqhWW3OVUABv8TzFa12Jimc55U9hJ4U8XUPp+VnvXLZVizBzULY2KEzSWu1Ifu+iRBqDZ0F5+8+xHZcKtbEiRbnVToC86EjboIwkHqQgkVGoRP2Urlqd55I+8SKWkkRtmvYoqJ/LLvODr0I2hwP3eYtnm7yMUvOG9DafQ/CaKgz8/kbJ+cNAkuWnLFfhC5kY7W/13etxla7XFflr07lMJN/dIOHa4Ca6xoRKf8Io/zDOTJP1yAAAAAAHCajcDhNRuAka+WQcJqNwGy8LrBI18sgVPFoUOE1G4D9E7jw2XhdYMVe/hCRr5ZAjYk1MKni0KC1xHPRwmo3Ad5MlHH6J3Hh5gHSkbLwusGu1hmxir38IZabX1EjXyyBP3mP8RsSamEHNMkRU8WhQU/jAjFriOehd65E04TUbgOY8s1zvJko46C/i5P0TuPD6GhAs8wDpSPQJQZTZeF1g3nH1vNdrDNjQYqQExV7+EMJXVszLTa+ozEQHdJGvlkCWpj6cn7zH+Ji1bySNiTUwioCd7IOaZIiEk8xUqeLQoK7reHyn8YEYoPgpxLXEc9CyzdsMu9ciaLzeirXCajcBxWOf3cx5ZrnLcM5l3kyUcdlFPK3QX8XJ11ZtFfonceH9Ltk99DQgWfM9iIXmAdKR4Qh6TegSgynvGyv1svC6wbX5Eh284+t5u+pDpa7WGbGp37FtoMVICafM4NWKvfwhjbRU/YSurZmDpwVFlptfUZGS942YiA7pn4GmNSNfLIEkVoRdLUx9OSpF1eU/eY/xOHAnLTFq3kk2Y3aVGxJqYRwbwr0VATvZEgiTBQc0yREAPWHNCSeYqQ4uMHVTxaFBVMwJnV3W8Pla31glT+MCMUjqqu1B8FOJRvn7VWuI56FsgU99ZZu2GWKSHsV3rkTRcKfsDXm9FWl+tL23hNRuA4Pdxt+Kxz+7jc6XZ5jyzXOf+2WvluGcy5HoNBe8mSjju5CAP7KKeVu1g9GHoL+Lk6e2I0+urNorqaVy9/RO48PzR0sf+l2ye/1UGqfoaECz72Hob+Z7EQvhcrnXzAOlI8sKDf/CEPSbxRlcR9AlBlPXLK6P3jZX69k//zdl4XWDYujdX2vyJDts+4znecfW837Ofi931IdLcN0vl12sM2NapZu/U79i21S2ygdBipATRoM4z0+ZwatIkGl3FXv4QxJyUJ8baKn7HGEBJwldWzMOVPPvB04KiwBHolctNr6jKj8WfyMl7xskLEfHMRAd0zYZtQ8/A0xrOArktka+WQJBt/HeSK0Iuk+koGZamPpyXZFSrlSLq8pTggMWfvMf4nn6tz5w4E5ad+nmhmLVvJJl3BRObMbtKmvPRfY2JNTCMS18Hjg3hXo/Pi2mKgJ3si0L324kESYKIxiO1g5pkiIJYDr+AHrDmgdza0YSTzFSFUaZjhxcYOobVcg2p4tCgqCC6l6pmBM6rpG75rut4fK8pEkutb6wSrK3GJafxgRimM+svpHVVdqW3P0Gg+CnEoTpD86N8/aqivpedtcRz0LQGGee2QKe+t4LNibLN2wyzD7E7sUkPYrCLZVW71yJouhVIX7hT9ga5kZwxvN6KtL0c4IO/Wl7avpg07QAAAAC4vGdlqgnIixK1r+6PYpdXN97wMiVrX9yd1zi5xbQo730IT4pvveBk1wGHAUrWv7jyatjd4N93M1hjEFZQGVef6KUw+voQnxRCrPhx33vAyGfHp611cghDzc5vJpWtf3AtERgVP6S3+4cY0J4az+gnonOPQrDGIKwIekfJoDKvPhiOyFsKO2e1socA0C9QOGmX7F8MhVnw4j3ll4dlhofR3TrgtM+PT1p3Myg/6uQQhlJYd+NA7dgN+FG/aPAr+KFIl5/EWiIwKuKeV09/SW/2x/UIk9VAp31t/MAYNZ/QTo0jtyuflhjFJyp/oLr9RxkCQSB8EPSPkqhI6PebFFg9I6g/WDEdkLaJoffTFHbPaqzKqA++fwfhBsNghF6gcNLmHBe39Km4WUwV3zzRwueFaX6A4HvLLw7Dd0hryw0PonOxaMdhBMcp2bigTERvmPX80/+Q7mZQflbaNxsOuSdNtgVAKKSw78YcDIijgduwGjln138r0niRk24f9Dsm9wODmpBmkS8/iCmTWO20RGBUDPgHMR5NqN+m8c+6/pLf7EYuuIlUmxdn7CdwAnHwSLvJTC/e2/mAMGNF51VrP6Cc04PH+cE2aBd5ig9y5F03y1zhUK5OVP9A9uiYJa6LiHMWN+8WBIJA+Lw+J50h6R8kmVV4QYvg168zXLDK7Vm2O1Xl0V5HUH6w/+wZ1WI7IWzah0YJyDLp53COjoIo7Z7UkFH5sYLkVl86WDE6p48Jgx8zbuYNhsEItTqmbb1A4aQF/IbBF0kpL6/1TkoyInbzip4Rlpgrvnggl9kdePTJS8BIri7S/QHAakFmpfeWXhxPKjl5XZ+Wl+Uj8fJNaxkF9dd+YOdi0Y5f3rbrwgmOUnq16TdoAEbZ0LwhvIjfMeowY1aPItb5YZpqngQHvaa9vwHB2K20bjYVCAlTHXJOmqXOKf+3e4YRD8fhdJIQ2c0qrL6oOBkRRoCldiPYxmZ1YHoBEHLPrv7Kc8mbV6TxIu8Ylkf9rTmpRRFezHZN7gbO8Ylj3EQmjWT4Qej5L3lRQZMeNFMmsdrrmta/s/nG6QtFoYwZ8A5ioUxpBzybUb6EJzbblpKZNS4u/lAmVLmZnuje/IxdcRI04RZ3qTYuzhGKSasDP+ZFu4OBIOPgkXZbXPYTSelZ/fFVPphsggYh1D5hRMaLzqp+N6nP1n9BOG7DJl18domzxMru1lkd1m/hobEK8xQe5EuoeYETy2nXq3cOsrnCoVwBfsY5nKn+gCQVmeU2oDYLjhxRboZmFqc+2nHCLG/eLJTTuUkJBIHwsbjmlaMNSXsbsS4eQ9I+SPtuWS3p2/bDUWeRpsywqR90DM56ZrlhlN4FBvEAAAAAAAAAAB0AAAAEAAQACAAEAB4AAAAEAAUAEAAIAB4AAAAEAAYAIAAgAB4AAAAEAAQAEAAQAB8AAAAIABAAIAAgAB8AAAAIABAAgACAAB8AAAAIACAAgAAAAR8AAAAgAIAAAgEABB8AAAAgAAIBAgEAEB8AQfDYAAsJAgAAAAMAAAAHAEGC2QALdQUAEAAFAAgABQAYAAUABAAFABQABQAMAAUAHAAFAAIABQASAAUACgAFABoABQAGAAUAFgAFAA4ABQAeAAUAAQAFABEABQAJAAUAGQAFAAUABQAVAAUADQAFAB0ABQADAAUAEwAFAAsABQAbAAUABwAFABcABQBBkNoAC2UBAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABAAAAAUAAAAFAAAABgAAAAYAAAAHAAAABwAAAAgAAAAIAAAACQAAAAkAAAAKAAAACgAAAAsAAAALAAAADAAAAAwAAAANAAAADQBBgNsAC/8IDAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBX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AAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi44AHN0cmVhbSBlcnJvcgBpbnN1ZmZpY2llbnQgbWVtb3J5AGJ1ZmZlciBlcnJvcgBB5IQBC6EVazgHAA2yBwCc8gcAcGQIAGCuCgCwcQsAMKoMABMAAAAMAAAADQAAAAEAAAAGAAAAAQAAAAEAAAATAAAADQAAAA4AAAABAAAABwAAAAAAAAABAAAAFAAAAA8AAAAQAAAAAQAAAAYAAAAAAAAAAQAAABUAAAAQAAAAEQAAAAEAAAAFAAAAAAAAAAIAAAAVAAAAEgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAAIAAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADAAAAAxAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA4AEGQmgEL+gEEAAMAAgACAAIAAgACAAIAAgACAAIAAgACAAEAAQABAAIAAgACAAIAAgACAAIAAgACAAMAAgABAAEAAQABAAEA//////////8AAAAAAAAAAAEAAQABAAEAAQABAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP////////////8AAAAAAAABAAQAAwACAAIAAgACAAIAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAP//////////////////AEGVnAEL+AcIAAAABwAAagYAAAAGAACtBQAAagUAADEFAAAABQAA1AQAAK0EAACKBAAAagQAAEwEAAAxBAAAFwQAAAAEAADpAwAA1AMAAMADAACtAwAAmwMAAIoDAAB5AwAAagMAAFsDAABMAwAAPgMAADEDAAAkAwAAFwMAAAsDAAAAAwAA9AIAAOkCAADeAgAA1AIAAMoCAADAAgAAtgIAAK0CAACkAgAAmwIAAJICAACKAgAAggIAAHkCAAByAgAAagIAAGICAABbAgAAUwIAAEwCAABFAgAAPgIAADcCAAAxAgAAKgIAACQCAAAeAgAAFwIAABECAAALAgAABQIAAAACAAD6AQAA9AEAAO8BAADpAQAA5AEAAN4BAADZAQAA1AEAAM8BAADKAQAAxQEAAMABAAC7AQAAtgEAALIBAACtAQAAqAEAAKQBAACfAQAAmwEAAJcBAACSAQAAjgEAAIoBAACGAQAAggEAAH4BAAB5AQAAdQEAAHIBAABuAQAAagEAAGYBAABiAQAAXgEAAFsBAABXAQAAUwEAAFABAABMAQAASQEAAEUBAABCAQAAPgEAADsBAAA3AQAANAEAADEBAAAuAQAAKgEAACcBAAAkAQAAIQEAAB4BAAAaAQAAFwEAABQBAAARAQAADgEAAAsBAAAIAQAABQEAAAIBAAAAAQAA/QAAAPoAAAD3AAAA9AAAAPEAAADvAAAA7AAAAOkAAADmAAAA5AAAAOEAAADeAAAA3AAAANkAAADXAAAA1AAAANEAAADPAAAAzAAAAMoAAADHAAAAxQAAAMIAAADAAAAAvgAAALsAAAC5AAAAtgAAALQAAACyAAAArwAAAK0AAACrAAAAqAAAAKYAAACkAAAAogAAAJ8AAACdAAAAmwAAAJkAAACXAAAAlQAAAJIA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AAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBsLIBC9YEAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAwAAAAMAAAAEAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBlLcBC4MEAQAAAAEAAAAFAAAADQAAAB0AAAA9AAAAfQAAAP0AAAD9AQAA/QMAAP0HAAD9DwAA/R8AAP0/AAD9fwAA/f8AAP3/AQD9/wMA/f8HAP3/DwD9/x8A/f8/AP3/fwD9//8A/f//Af3//wP9//8H/f//D/3//x/9//8//f//fwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAAT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IGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AAAAGHQAAFBlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUAABh0AAB4ZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAYdAAAoGUAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQAAGHQAAMhlAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAABh0AADwZQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAYdAAAGGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQAAGHQAAEBmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAABh0AABoZgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAYdAAAkGYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAAGHQAALhmAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAAEB0AADwZgAAAAAAAAEAAACIBwAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAAQHQAAExnAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAABAdAAAqGcAAAAAAAABAAAAiAcAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAQHQAAABoAAAAAAAAAQAAAIgHAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGR0QELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBy9EBCwEMAEHX0QELFQwAAAAADAAAAAAJDAAAAAAADAAADABBhdIBCwEOAEGR0gELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBv9IBCwEQAEHL0gELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBgtMBCw4SAAAAEhISAAAAAAAACQBBs9MBCwELAEG/0wELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB7dMBCwEMAEH50wELJwwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQBBsNQBC2cwMTIzNDU2Nzg5QUJDREVGGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGg1QEL9hNJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAYmFzaWNfc3RyaW5nAHN0ZDo6ZXhjZXB0aW9uAAAAAADccQAAPAAAAD0AAAA+AAAAGHQAAORxAABTdDlleGNlcHRpb24AAAAAAAAAAAhyAAAQAAAAPwAAAEAAAACMcgAAFHIAANxxAABTdDExbG9naWNfZXJyb3IAAAAAADhyAAAQAAAAQQAAAEAAAACMcgAARHIAAAhyAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAABh0AABVcgAAjHIAAAFzAABkcgAAjHIAAKxyAABscgAAAAAAANByAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAIxyAADccgAAeHIAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAABAcwAAQgAAAEoAAABEAAAARQAAAEsAAACMcgAATHMAAGxyAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAACxzAAB0cwAAYgAAACxzAACAcwAAYwAAACxzAACMcwAAaAAAACxzAACYcwAAYQAAACxzAACkcwAAcwAAACxzAACwcwAAdAAAACxzAAC8cwAAaQAAACxzAADIcwAAagAAACxzAADUcwAAbAAAACxzAADgcwAAbQAAACxzAADscwAAZgAAACxzAAD4cwAAZAAAACxzAAAEdAAAAAAAAHhyAABCAAAATAAAAEQAAABFAAAARgAAAE0AAABOAAAATwAAAAAAAABgdAAAQgAAAFAAAABEAAAARQAAAEYAAABRAAAAUgAAAFMAAACMcgAAbHQAAHhyAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAcHUAQZjpAQtBgC0AAAAyAAABAQAAHgEAAA8AAACALAAAAC0AAAAAAAAeAAAADwAAAAAAAAAwLAAAAAAAABMAAAAHAAAAAAAAAAUAQeTpAQsBOQBB/OkBCwo6AAAAOwAAAC12AEGU6gELAQIAQaPqAQsF//////8AQejqAQsJoH5QAAAAAAAFAEH86gELAVQAQZTrAQsOOgAAAFUAAACYegAAAAQAQazrAQsBAQBBu+sBCwUK/////w=="),d,xA;(function(a){a[a.NOSHUFFLE=0]="NOSHUFFLE",a[a.SHUFFLE=1]="SHUFFLE",a[a.BITSHUFFLE=2]="BITSHUFFLE",a[a.AUTOSHUFFLE=-1]="AUTOSHUFFLE"})(xA||(xA={}));const XA=new Set(["blosclz","lz4","lz4hc","snappy","zlib","zstd"]);let l;const ZA=()=>FI({noInitialRun:!0,wasmBinary:yI}),hI=(d=class{constructor(a=5,B="lz4",S=1,N=0){if(a<0||a>9)throw new Error(`Invalid compression level: '${a}'. It should be between 0 and 9`);if(!XA.has(B))throw new Error(`Invalid compressor '${B}'. Valid compressors include + 'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'.`);if(S<-1||S>2)throw new Error(`Invalid shuffle ${S}. Must be one of 0 (NOSHUFFLE), + 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE).`);this.blocksize=N,this.clevel=a,this.cname=B,this.shuffle=S}static fromConfig({blocksize:a,clevel:B,cname:S,shuffle:N}){return new d(B,S,N,a)}async encode(a){l||(l=ZA());const B=await l,S=B.compress(a,this.cname,this.clevel,this.shuffle,this.blocksize),N=new Uint8Array(S);return B.free_result(),N}async decode(a,B){l||(l=ZA());const S=await l,N=S.decompress(a),U=new Uint8Array(N);return S.free_result(),B!==void 0?(B.set(U),B):U}},d.codecId="blosc",d.COMPRESSORS=[...XA],d.NOSHUFFLE=0,d.SHUFFLE=1,d.BITSHUFFLE=2,d.AUTOSHUFFLE=-1,d);export{hI as default}; diff --git a/assets/deflate-9cfe31b4--UOSjJNF.js b/assets/deflate-9cfe31b4--UOSjJNF.js new file mode 100644 index 0000000..71f5d06 --- /dev/null +++ b/assets/deflate-9cfe31b4--UOSjJNF.js @@ -0,0 +1 @@ +import{i as r}from"./pako.esm-68f84e2a-tSdR82fX.js";import{B as a}from"./index-3h9IID_q.js";class s extends a{decodeBlock(e){return r(new Uint8Array(e)).buffer}}export{s as default}; diff --git a/assets/gzip-dd5ab7c8-wU2g_iAo.js b/assets/gzip-dd5ab7c8-wU2g_iAo.js new file mode 100644 index 0000000..af0b2a1 --- /dev/null +++ b/assets/gzip-dd5ab7c8-wU2g_iAo.js @@ -0,0 +1 @@ +import{p as n}from"./pako.esm-856454b6-c5c8cd15-LlE9m97O.js";var o;const s=(o=class{constructor(e=1){if(e<0||e>9)throw new Error("Invalid gzip compression level, it should be between 0 and 9");this.level=e}static fromConfig({level:e}){return new o(e)}encode(e){return n.gzip(e,{level:this.level})}decode(e,r){const i=n.ungzip(e);return r!==void 0?(r.set(i),r):i}},o.codecId="gzip",o);export{s as default}; diff --git a/assets/index-3h9IID_q.js b/assets/index-3h9IID_q.js new file mode 100644 index 0000000..d2ecf78 --- /dev/null +++ b/assets/index-3h9IID_q.js @@ -0,0 +1,7322 @@ +function _mergeNamespaces(j,$){for(var _e=0;_e<$.length;_e++){const et=$[_e];if(typeof et!="string"&&!Array.isArray(et)){for(const tt in et)if(tt!=="default"&&!(tt in j)){const rt=Object.getOwnPropertyDescriptor(et,tt);rt&&Object.defineProperty(j,tt,rt.get?rt:{enumerable:!0,get:()=>et[tt]})}}}return Object.freeze(Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}))}(function(){const $=document.createElement("link").relList;if($&&$.supports&&$.supports("modulepreload"))return;for(const tt of document.querySelectorAll('link[rel="modulepreload"]'))et(tt);new MutationObserver(tt=>{for(const rt of tt)if(rt.type==="childList")for(const nt of rt.addedNodes)nt.tagName==="LINK"&&nt.rel==="modulepreload"&&et(nt)}).observe(document,{childList:!0,subtree:!0});function _e(tt){const rt={};return tt.integrity&&(rt.integrity=tt.integrity),tt.referrerPolicy&&(rt.referrerPolicy=tt.referrerPolicy),tt.crossOrigin==="use-credentials"?rt.credentials="include":tt.crossOrigin==="anonymous"?rt.credentials="omit":rt.credentials="same-origin",rt}function et(tt){if(tt.ep)return;tt.ep=!0;const rt=_e(tt);fetch(tt.href,rt)}})();function getDefaultExportFromCjs$2(j){return j&&j.__esModule&&Object.prototype.hasOwnProperty.call(j,"default")?j.default:j}function getAugmentedNamespace$2(j){if(j.__esModule)return j;var $=j.default;if(typeof $=="function"){var _e=function et(){return this instanceof et?Reflect.construct($,arguments,this.constructor):$.apply(this,arguments)};_e.prototype=$.prototype}else _e={};return Object.defineProperty(_e,"__esModule",{value:!0}),Object.keys(j).forEach(function(et){var tt=Object.getOwnPropertyDescriptor(j,et);Object.defineProperty(_e,et,tt.get?tt:{enumerable:!0,get:function(){return j[et]}})}),_e}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var l$4=Symbol.for("react.element"),n$4=Symbol.for("react.portal"),p$4=Symbol.for("react.fragment"),q$3=Symbol.for("react.strict_mode"),r$4=Symbol.for("react.profiler"),t$5=Symbol.for("react.provider"),u$1=Symbol.for("react.context"),v$3=Symbol.for("react.forward_ref"),w$2=Symbol.for("react.suspense"),x$2=Symbol.for("react.memo"),y$2=Symbol.for("react.lazy"),z$4=Symbol.iterator;function A$3(j){return j===null||typeof j!="object"?null:(j=z$4&&j[z$4]||j["@@iterator"],typeof j=="function"?j:null)}var B$2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C$2=Object.assign,D$2={};function E$2(j,$,_e){this.props=j,this.context=$,this.refs=D$2,this.updater=_e||B$2}E$2.prototype.isReactComponent={};E$2.prototype.setState=function(j,$){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,$,"setState")};E$2.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function F(){}F.prototype=E$2.prototype;function G$2(j,$,_e){this.props=j,this.context=$,this.refs=D$2,this.updater=_e||B$2}var H$1=G$2.prototype=new F;H$1.constructor=G$2;C$2(H$1,E$2.prototype);H$1.isPureReactComponent=!0;var I$2=Array.isArray,J=Object.prototype.hasOwnProperty,K$1={current:null},L$1={key:!0,ref:!0,__self:!0,__source:!0};function M$1(j,$,_e){var et,tt={},rt=null,nt=null;if($!=null)for(et in $.ref!==void 0&&(nt=$.ref),$.key!==void 0&&(rt=""+$.key),$)J.call($,et)&&!L$1.hasOwnProperty(et)&&(tt[et]=$[et]);var it=arguments.length-2;if(it===1)tt.children=_e;else if(1>>1,Zt=sr[pr];if(0>>1;prtt(_r,Yt))Ertt(Lr,_r)?(sr[pr]=Lr,sr[Er]=Yt,pr=Er):(sr[pr]=_r,sr[vr]=Yt,pr=vr);else if(Ertt(Lr,Yt))sr[pr]=Lr,sr[Er]=Yt,pr=Er;else break e}}return ar}function tt(sr,ar){var Yt=sr.sortIndex-ar.sortIndex;return Yt!==0?Yt:sr.id-ar.id}if(typeof performance=="object"&&typeof performance.now=="function"){var rt=performance;j.unstable_now=function(){return rt.now()}}else{var nt=Date,it=nt.now();j.unstable_now=function(){return nt.now()-it}}var ot=[],At=[],ut=1,ft=null,dt=3,Et=!1,Bt=!1,St=!1,Dt=typeof setTimeout=="function"?setTimeout:null,$t=typeof clearTimeout=="function"?clearTimeout:null,Rt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function wt(sr){for(var ar=_e(At);ar!==null;){if(ar.callback===null)et(At);else if(ar.startTime<=sr)et(At),ar.sortIndex=ar.expirationTime,$(ot,ar);else break;ar=_e(At)}}function xt(sr){if(St=!1,wt(sr),!Bt)if(_e(ot)!==null)Bt=!0,Ar(Nt);else{var ar=_e(At);ar!==null&&hr(xt,ar.startTime-sr)}}function Nt(sr,ar){Bt=!1,St&&(St=!1,$t(Jt),Jt=-1),Et=!0;var Yt=dt;try{for(wt(ar),ft=_e(ot);ft!==null&&(!(ft.expirationTime>ar)||sr&&!Gt());){var pr=ft.callback;if(typeof pr=="function"){ft.callback=null,dt=ft.priorityLevel;var Zt=pr(ft.expirationTime<=ar);ar=j.unstable_now(),typeof Zt=="function"?ft.callback=Zt:ft===_e(ot)&&et(ot),wt(ar)}else et(ot);ft=_e(ot)}if(ft!==null)var mr=!0;else{var vr=_e(At);vr!==null&&hr(xt,vr.startTime-ar),mr=!1}return mr}finally{ft=null,dt=Yt,Et=!1}}var Ot=!1,kt=null,Jt=-1,jt=5,Ht=-1;function Gt(){return!(j.unstable_now()-Htsr||125pr?(sr.sortIndex=Yt,$(At,sr),_e(ot)===null&&sr===_e(At)&&(St?($t(Jt),Jt=-1):St=!0,hr(xt,Yt-pr))):(sr.sortIndex=Zt,$(ot,sr),Bt||Et||(Bt=!0,Ar(Nt))),sr},j.unstable_shouldYield=Gt,j.unstable_wrapCallback=function(sr){var ar=dt;return function(){var Yt=dt;dt=ar;try{return sr.apply(this,arguments)}finally{dt=Yt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var aa=reactExports,ca=schedulerExports;function p$2(j){for(var $="https://reactjs.org/docs/error-decoder.html?invariant="+j,_e=1;_e"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la={},ma={};function oa(j){return ja.call(ma,j)?!0:ja.call(la,j)?!1:ka.test(j)?ma[j]=!0:(la[j]=!0,!1)}function pa(j,$,_e,et){if(_e!==null&&_e.type===0)return!1;switch(typeof $){case"function":case"symbol":return!0;case"boolean":return et?!1:_e!==null?!_e.acceptsBooleans:(j=j.toLowerCase().slice(0,5),j!=="data-"&&j!=="aria-");default:return!1}}function qa(j,$,_e,et){if($===null||typeof $>"u"||pa(j,$,_e,et))return!0;if(et)return!1;if(_e!==null)switch(_e.type){case 3:return!$;case 4:return $===!1;case 5:return isNaN($);case 6:return isNaN($)||1>$}return!1}function v$2(j,$,_e,et,tt,rt,nt){this.acceptsBooleans=$===2||$===3||$===4,this.attributeName=et,this.attributeNamespace=tt,this.mustUseProperty=_e,this.propertyName=j,this.type=$,this.sanitizeURL=rt,this.removeEmptyString=nt}var z$3={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(j){z$3[j]=new v$2(j,0,!1,j,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(j){var $=j[0];z$3[$]=new v$2($,1,!1,j[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(j){z$3[j]=new v$2(j,2,!1,j.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(j){z$3[j]=new v$2(j,2,!1,j,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(j){z$3[j]=new v$2(j,3,!1,j.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(j){z$3[j]=new v$2(j,3,!0,j,null,!1,!1)});["capture","download"].forEach(function(j){z$3[j]=new v$2(j,4,!1,j,null,!1,!1)});["cols","rows","size","span"].forEach(function(j){z$3[j]=new v$2(j,6,!1,j,null,!1,!1)});["rowSpan","start"].forEach(function(j){z$3[j]=new v$2(j,5,!1,j.toLowerCase(),null,!1,!1)});var ra=/[\-:]([a-z])/g;function sa(j){return j[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(j){var $=j.replace(ra,sa);z$3[$]=new v$2($,1,!1,j,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(j){var $=j.replace(ra,sa);z$3[$]=new v$2($,1,!1,j,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(j){var $=j.replace(ra,sa);z$3[$]=new v$2($,1,!1,j,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(j){z$3[j]=new v$2(j,1,!1,j.toLowerCase(),null,!1,!1)});z$3.xlinkHref=new v$2("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(j){z$3[j]=new v$2(j,1,!1,j.toLowerCase(),null,!0,!0)});function ta(j,$,_e,et){var tt=z$3.hasOwnProperty($)?z$3[$]:null;(tt!==null?tt.type!==0:et||!(2<$.length)||$[0]!=="o"&&$[0]!=="O"||$[1]!=="n"&&$[1]!=="N")&&(qa($,_e,tt,et)&&(_e=null),et||tt===null?oa($)&&(_e===null?j.removeAttribute($):j.setAttribute($,""+_e)):tt.mustUseProperty?j[tt.propertyName]=_e===null?tt.type===3?!1:"":_e:($=tt.attributeName,et=tt.attributeNamespace,_e===null?j.removeAttribute($):(tt=tt.type,_e=tt===3||tt===4&&_e===!0?"":""+_e,et?j.setAttributeNS(et,$,_e):j.setAttribute($,_e))))}var ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for("react.element"),wa=Symbol.for("react.portal"),ya=Symbol.for("react.fragment"),za=Symbol.for("react.strict_mode"),Aa=Symbol.for("react.profiler"),Ba=Symbol.for("react.provider"),Ca=Symbol.for("react.context"),Da=Symbol.for("react.forward_ref"),Ea=Symbol.for("react.suspense"),Fa=Symbol.for("react.suspense_list"),Ga=Symbol.for("react.memo"),Ha=Symbol.for("react.lazy"),Ia=Symbol.for("react.offscreen"),Ja=Symbol.iterator;function Ka(j){return j===null||typeof j!="object"?null:(j=Ja&&j[Ja]||j["@@iterator"],typeof j=="function"?j:null)}var A$2=Object.assign,La;function Ma(j){if(La===void 0)try{throw Error()}catch(_e){var $=_e.stack.trim().match(/\n( *(at )?)/);La=$&&$[1]||""}return` +`+La+j}var Na=!1;function Oa(j,$){if(!j||Na)return"";Na=!0;var _e=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if($)if($=function(){throw Error()},Object.defineProperty($.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct($,[])}catch(At){var et=At}Reflect.construct(j,[],$)}else{try{$.call()}catch(At){et=At}j.call($.prototype)}else{try{throw Error()}catch(At){et=At}j()}}catch(At){if(At&&et&&typeof At.stack=="string"){for(var tt=At.stack.split(` +`),rt=et.stack.split(` +`),nt=tt.length-1,it=rt.length-1;1<=nt&&0<=it&&tt[nt]!==rt[it];)it--;for(;1<=nt&&0<=it;nt--,it--)if(tt[nt]!==rt[it]){if(nt!==1||it!==1)do if(nt--,it--,0>it||tt[nt]!==rt[it]){var ot=` +`+tt[nt].replace(" at new "," at ");return j.displayName&&ot.includes("")&&(ot=ot.replace("",j.displayName)),ot}while(1<=nt&&0<=it);break}}}finally{Na=!1,Error.prepareStackTrace=_e}return(j=j?j.displayName||j.name:"")?Ma(j):""}function Pa(j){switch(j.tag){case 5:return Ma(j.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return j=Oa(j.type,!1),j;case 11:return j=Oa(j.type.render,!1),j;case 1:return j=Oa(j.type,!0),j;default:return""}}function Qa(j){if(j==null)return null;if(typeof j=="function")return j.displayName||j.name||null;if(typeof j=="string")return j;switch(j){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof j=="object")switch(j.$$typeof){case Ca:return(j.displayName||"Context")+".Consumer";case Ba:return(j._context.displayName||"Context")+".Provider";case Da:var $=j.render;return j=j.displayName,j||(j=$.displayName||$.name||"",j=j!==""?"ForwardRef("+j+")":"ForwardRef"),j;case Ga:return $=j.displayName||null,$!==null?$:Qa(j.type)||"Memo";case Ha:$=j._payload,j=j._init;try{return Qa(j($))}catch{}}return null}function Ra(j){var $=j.type;switch(j.tag){case 24:return"Cache";case 9:return($.displayName||"Context")+".Consumer";case 10:return($._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return j=$.render,j=j.displayName||j.name||"",$.displayName||(j!==""?"ForwardRef("+j+")":"ForwardRef");case 7:return"Fragment";case 5:return $;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa($);case 8:return $===za?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof $=="function")return $.displayName||$.name||null;if(typeof $=="string")return $}return null}function Sa(j){switch(typeof j){case"boolean":case"number":case"string":case"undefined":return j;case"object":return j;default:return""}}function Ta(j){var $=j.type;return(j=j.nodeName)&&j.toLowerCase()==="input"&&($==="checkbox"||$==="radio")}function Ua(j){var $=Ta(j)?"checked":"value",_e=Object.getOwnPropertyDescriptor(j.constructor.prototype,$),et=""+j[$];if(!j.hasOwnProperty($)&&typeof _e<"u"&&typeof _e.get=="function"&&typeof _e.set=="function"){var tt=_e.get,rt=_e.set;return Object.defineProperty(j,$,{configurable:!0,get:function(){return tt.call(this)},set:function(nt){et=""+nt,rt.call(this,nt)}}),Object.defineProperty(j,$,{enumerable:_e.enumerable}),{getValue:function(){return et},setValue:function(nt){et=""+nt},stopTracking:function(){j._valueTracker=null,delete j[$]}}}}function Va(j){j._valueTracker||(j._valueTracker=Ua(j))}function Wa(j){if(!j)return!1;var $=j._valueTracker;if(!$)return!0;var _e=$.getValue(),et="";return j&&(et=Ta(j)?j.checked?"true":"false":j.value),j=et,j!==_e?($.setValue(j),!0):!1}function Xa(j){if(j=j||(typeof document<"u"?document:void 0),typeof j>"u")return null;try{return j.activeElement||j.body}catch{return j.body}}function Ya(j,$){var _e=$.checked;return A$2({},$,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:_e??j._wrapperState.initialChecked})}function Za(j,$){var _e=$.defaultValue==null?"":$.defaultValue,et=$.checked!=null?$.checked:$.defaultChecked;_e=Sa($.value!=null?$.value:_e),j._wrapperState={initialChecked:et,initialValue:_e,controlled:$.type==="checkbox"||$.type==="radio"?$.checked!=null:$.value!=null}}function ab(j,$){$=$.checked,$!=null&&ta(j,"checked",$,!1)}function bb(j,$){ab(j,$);var _e=Sa($.value),et=$.type;if(_e!=null)et==="number"?(_e===0&&j.value===""||j.value!=_e)&&(j.value=""+_e):j.value!==""+_e&&(j.value=""+_e);else if(et==="submit"||et==="reset"){j.removeAttribute("value");return}$.hasOwnProperty("value")?cb(j,$.type,_e):$.hasOwnProperty("defaultValue")&&cb(j,$.type,Sa($.defaultValue)),$.checked==null&&$.defaultChecked!=null&&(j.defaultChecked=!!$.defaultChecked)}function db(j,$,_e){if($.hasOwnProperty("value")||$.hasOwnProperty("defaultValue")){var et=$.type;if(!(et!=="submit"&&et!=="reset"||$.value!==void 0&&$.value!==null))return;$=""+j._wrapperState.initialValue,_e||$===j.value||(j.value=$),j.defaultValue=$}_e=j.name,_e!==""&&(j.name=""),j.defaultChecked=!!j._wrapperState.initialChecked,_e!==""&&(j.name=_e)}function cb(j,$,_e){($!=="number"||Xa(j.ownerDocument)!==j)&&(_e==null?j.defaultValue=""+j._wrapperState.initialValue:j.defaultValue!==""+_e&&(j.defaultValue=""+_e))}var eb=Array.isArray;function fb(j,$,_e,et){if(j=j.options,$){$={};for(var tt=0;tt<_e.length;tt++)$["$"+_e[tt]]=!0;for(_e=0;_e"+$.valueOf().toString()+"",$=mb.firstChild;j.firstChild;)j.removeChild(j.firstChild);for(;$.firstChild;)j.appendChild($.firstChild)}});function ob(j,$){if($){var _e=j.firstChild;if(_e&&_e===j.lastChild&&_e.nodeType===3){_e.nodeValue=$;return}}j.textContent=$}var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(j){qb.forEach(function($){$=$+j.charAt(0).toUpperCase()+j.substring(1),pb[$]=pb[j]})});function rb(j,$,_e){return $==null||typeof $=="boolean"||$===""?"":_e||typeof $!="number"||$===0||pb.hasOwnProperty(j)&&pb[j]?(""+$).trim():$+"px"}function sb(j,$){j=j.style;for(var _e in $)if($.hasOwnProperty(_e)){var et=_e.indexOf("--")===0,tt=rb(_e,$[_e],et);_e==="float"&&(_e="cssFloat"),et?j.setProperty(_e,tt):j[_e]=tt}}var tb=A$2({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(j,$){if($){if(tb[j]&&($.children!=null||$.dangerouslySetInnerHTML!=null))throw Error(p$2(137,j));if($.dangerouslySetInnerHTML!=null){if($.children!=null)throw Error(p$2(60));if(typeof $.dangerouslySetInnerHTML!="object"||!("__html"in $.dangerouslySetInnerHTML))throw Error(p$2(61))}if($.style!=null&&typeof $.style!="object")throw Error(p$2(62))}}function vb(j,$){if(j.indexOf("-")===-1)return typeof $.is=="string";switch(j){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb=null;function xb(j){return j=j.target||j.srcElement||window,j.correspondingUseElement&&(j=j.correspondingUseElement),j.nodeType===3?j.parentNode:j}var yb=null,zb=null,Ab=null;function Bb(j){if(j=Cb(j)){if(typeof yb!="function")throw Error(p$2(280));var $=j.stateNode;$&&($=Db($),yb(j.stateNode,j.type,$))}}function Eb(j){zb?Ab?Ab.push(j):Ab=[j]:zb=j}function Fb(){if(zb){var j=zb,$=Ab;if(Ab=zb=null,Bb(j),$)for(j=0;j<$.length;j++)Bb($[j])}}function Gb(j,$){return j($)}function Hb(){}var Ib=!1;function Jb(j,$,_e){if(Ib)return j($,_e);Ib=!0;try{return Gb(j,$,_e)}finally{Ib=!1,(zb!==null||Ab!==null)&&(Hb(),Fb())}}function Kb(j,$){var _e=j.stateNode;if(_e===null)return null;var et=Db(_e);if(et===null)return null;_e=et[$];e:switch($){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(et=!et.disabled)||(j=j.type,et=!(j==="button"||j==="input"||j==="select"||j==="textarea")),j=!et;break e;default:j=!1}if(j)return null;if(_e&&typeof _e!="function")throw Error(p$2(231,$,typeof _e));return _e}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}}),window.addEventListener("test",Mb,Mb),window.removeEventListener("test",Mb,Mb)}catch{Lb=!1}function Nb(j,$,_e,et,tt,rt,nt,it,ot){var At=Array.prototype.slice.call(arguments,3);try{$.apply(_e,At)}catch(ut){this.onError(ut)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(j){Ob=!0,Pb=j}};function Tb(j,$,_e,et,tt,rt,nt,it,ot){Ob=!1,Pb=null,Nb.apply(Sb,arguments)}function Ub(j,$,_e,et,tt,rt,nt,it,ot){if(Tb.apply(this,arguments),Ob){if(Ob){var At=Pb;Ob=!1,Pb=null}else throw Error(p$2(198));Qb||(Qb=!0,Rb=At)}}function Vb(j){var $=j,_e=j;if(j.alternate)for(;$.return;)$=$.return;else{j=$;do $=j,$.flags&4098&&(_e=$.return),j=$.return;while(j)}return $.tag===3?_e:null}function Wb(j){if(j.tag===13){var $=j.memoizedState;if($===null&&(j=j.alternate,j!==null&&($=j.memoizedState)),$!==null)return $.dehydrated}return null}function Xb(j){if(Vb(j)!==j)throw Error(p$2(188))}function Yb(j){var $=j.alternate;if(!$){if($=Vb(j),$===null)throw Error(p$2(188));return $!==j?null:j}for(var _e=j,et=$;;){var tt=_e.return;if(tt===null)break;var rt=tt.alternate;if(rt===null){if(et=tt.return,et!==null){_e=et;continue}break}if(tt.child===rt.child){for(rt=tt.child;rt;){if(rt===_e)return Xb(tt),j;if(rt===et)return Xb(tt),$;rt=rt.sibling}throw Error(p$2(188))}if(_e.return!==et.return)_e=tt,et=rt;else{for(var nt=!1,it=tt.child;it;){if(it===_e){nt=!0,_e=tt,et=rt;break}if(it===et){nt=!0,et=tt,_e=rt;break}it=it.sibling}if(!nt){for(it=rt.child;it;){if(it===_e){nt=!0,_e=rt,et=tt;break}if(it===et){nt=!0,et=rt,_e=tt;break}it=it.sibling}if(!nt)throw Error(p$2(189))}}if(_e.alternate!==et)throw Error(p$2(190))}if(_e.tag!==3)throw Error(p$2(188));return _e.stateNode.current===_e?j:$}function Zb(j){return j=Yb(j),j!==null?$b(j):null}function $b(j){if(j.tag===5||j.tag===6)return j;for(j=j.child;j!==null;){var $=$b(j);if($!==null)return $;j=j.sibling}return null}var ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B$1=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(j){if(lc&&typeof lc.onCommitFiberRoot=="function")try{lc.onCommitFiberRoot(kc,j,void 0,(j.current.flags&128)===128)}catch{}}var oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(j){return j>>>=0,j===0?32:31-(pc(j)/qc|0)|0}var rc=64,sc=4194304;function tc(j){switch(j&-j){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return j&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return j&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return j}}function uc(j,$){var _e=j.pendingLanes;if(_e===0)return 0;var et=0,tt=j.suspendedLanes,rt=j.pingedLanes,nt=_e&268435455;if(nt!==0){var it=nt&~tt;it!==0?et=tc(it):(rt&=nt,rt!==0&&(et=tc(rt)))}else nt=_e&~tt,nt!==0?et=tc(nt):rt!==0&&(et=tc(rt));if(et===0)return 0;if($!==0&&$!==et&&!($&tt)&&(tt=et&-et,rt=$&-$,tt>=rt||tt===16&&(rt&4194240)!==0))return $;if(et&4&&(et|=_e&16),$=j.entangledLanes,$!==0)for(j=j.entanglements,$&=et;0<$;)_e=31-oc($),tt=1<<_e,et|=j[_e],$&=~tt;return et}function vc(j,$){switch(j){case 1:case 2:case 4:return $+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return $+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function wc(j,$){for(var _e=j.suspendedLanes,et=j.pingedLanes,tt=j.expirationTimes,rt=j.pendingLanes;0_e;_e++)$.push(j);return $}function Ac(j,$,_e){j.pendingLanes|=$,$!==536870912&&(j.suspendedLanes=0,j.pingedLanes=0),j=j.eventTimes,$=31-oc($),j[$]=_e}function Bc(j,$){var _e=j.pendingLanes&~$;j.pendingLanes=$,j.suspendedLanes=0,j.pingedLanes=0,j.expiredLanes&=$,j.mutableReadLanes&=$,j.entangledLanes&=$,$=j.entanglements;var et=j.eventTimes;for(j=j.expirationTimes;0<_e;){var tt=31-oc(_e),rt=1<=be),ee=" ",fe=!1;function ge(j,$){switch(j){case"keyup":return $d.indexOf($.keyCode)!==-1;case"keydown":return $.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(j){return j=j.detail,typeof j=="object"&&"data"in j?j.data:null}var ie=!1;function je(j,$){switch(j){case"compositionend":return he($);case"keypress":return $.which!==32?null:(fe=!0,ee);case"textInput":return j=$.data,j===ee&&fe?null:j;default:return null}}function ke(j,$){if(ie)return j==="compositionend"||!ae&&ge(j,$)?(j=nd(),md=ld=kd=null,ie=!1,j):null;switch(j){case"paste":return null;case"keypress":if(!($.ctrlKey||$.altKey||$.metaKey)||$.ctrlKey&&$.altKey){if($.char&&1<$.char.length)return $.char;if($.which)return String.fromCharCode($.which)}return null;case"compositionend":return de&&$.locale!=="ko"?null:$.data;default:return null}}var le={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(j){var $=j&&j.nodeName&&j.nodeName.toLowerCase();return $==="input"?!!le[j.type]:$==="textarea"}function ne(j,$,_e,et){Eb(et),$=oe($,"onChange"),0<$.length&&(_e=new td("onChange","change",null,_e,et),j.push({event:_e,listeners:$}))}var pe=null,qe=null;function re$6(j){se(j,0)}function te(j){var $=ue(j);if(Wa($))return j}function ve(j,$){if(j==="change")return $}var we=!1;if(ia){var xe;if(ia){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;"),ye=typeof ze.oninput=="function"}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9=$)return{node:_e,offset:$-j};j=et}e:{for(;_e;){if(_e.nextSibling){_e=_e.nextSibling;break e}_e=_e.parentNode}_e=void 0}_e=Je(_e)}}function Le(j,$){return j&&$?j===$?!0:j&&j.nodeType===3?!1:$&&$.nodeType===3?Le(j,$.parentNode):"contains"in j?j.contains($):j.compareDocumentPosition?!!(j.compareDocumentPosition($)&16):!1:!1}function Me(){for(var j=window,$=Xa();$ instanceof j.HTMLIFrameElement;){try{var _e=typeof $.contentWindow.location.href=="string"}catch{_e=!1}if(_e)j=$.contentWindow;else break;$=Xa(j.document)}return $}function Ne(j){var $=j&&j.nodeName&&j.nodeName.toLowerCase();return $&&($==="input"&&(j.type==="text"||j.type==="search"||j.type==="tel"||j.type==="url"||j.type==="password")||$==="textarea"||j.contentEditable==="true")}function Oe(j){var $=Me(),_e=j.focusedElem,et=j.selectionRange;if($!==_e&&_e&&_e.ownerDocument&&Le(_e.ownerDocument.documentElement,_e)){if(et!==null&&Ne(_e)){if($=et.start,j=et.end,j===void 0&&(j=$),"selectionStart"in _e)_e.selectionStart=$,_e.selectionEnd=Math.min(j,_e.value.length);else if(j=($=_e.ownerDocument||document)&&$.defaultView||window,j.getSelection){j=j.getSelection();var tt=_e.textContent.length,rt=Math.min(et.start,tt);et=et.end===void 0?rt:Math.min(et.end,tt),!j.extend&&rt>et&&(tt=et,et=rt,rt=tt),tt=Ke(_e,rt);var nt=Ke(_e,et);tt&&nt&&(j.rangeCount!==1||j.anchorNode!==tt.node||j.anchorOffset!==tt.offset||j.focusNode!==nt.node||j.focusOffset!==nt.offset)&&($=$.createRange(),$.setStart(tt.node,tt.offset),j.removeAllRanges(),rt>et?(j.addRange($),j.extend(nt.node,nt.offset)):($.setEnd(nt.node,nt.offset),j.addRange($)))}}for($=[],j=_e;j=j.parentNode;)j.nodeType===1&&$.push({element:j,left:j.scrollLeft,top:j.scrollTop});for(typeof _e.focus=="function"&&_e.focus(),_e=0;_e<$.length;_e++)j=$[_e],j.element.scrollLeft=j.left,j.element.scrollTop=j.top}}var Pe=ia&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;function Ue(j,$,_e){var et=_e.window===_e?_e.document:_e.nodeType===9?_e:_e.ownerDocument;Te||Qe==null||Qe!==Xa(et)||(et=Qe,"selectionStart"in et&&Ne(et)?et={start:et.selectionStart,end:et.selectionEnd}:(et=(et.ownerDocument&&et.ownerDocument.defaultView||window).getSelection(),et={anchorNode:et.anchorNode,anchorOffset:et.anchorOffset,focusNode:et.focusNode,focusOffset:et.focusOffset}),Se&&Ie(Se,et)||(Se=et,et=oe(Re,"onSelect"),0Tf||(j.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$1(j,$){Tf++,Sf[Tf]=j.current,j.current=$}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(j,$){var _e=j.type.contextTypes;if(!_e)return Vf;var et=j.stateNode;if(et&&et.__reactInternalMemoizedUnmaskedChildContext===$)return et.__reactInternalMemoizedMaskedChildContext;var tt={},rt;for(rt in _e)tt[rt]=$[rt];return et&&(j=j.stateNode,j.__reactInternalMemoizedUnmaskedChildContext=$,j.__reactInternalMemoizedMaskedChildContext=tt),tt}function Zf(j){return j=j.childContextTypes,j!=null}function $f(){E$1(Wf),E$1(H)}function ag(j,$,_e){if(H.current!==Vf)throw Error(p$2(168));G$1(H,$),G$1(Wf,_e)}function bg(j,$,_e){var et=j.stateNode;if($=$.childContextTypes,typeof et.getChildContext!="function")return _e;et=et.getChildContext();for(var tt in et)if(!(tt in $))throw Error(p$2(108,Ra(j)||"Unknown",tt));return A$2({},_e,et)}function cg(j){return j=(j=j.stateNode)&&j.__reactInternalMemoizedMergedChildContext||Vf,Xf=H.current,G$1(H,j),G$1(Wf,Wf.current),!0}function dg(j,$,_e){var et=j.stateNode;if(!et)throw Error(p$2(169));_e?(j=bg(j,$,Xf),et.__reactInternalMemoizedMergedChildContext=j,E$1(Wf),E$1(H),G$1(H,j)):E$1(Wf),G$1(Wf,_e)}var eg=null,fg=!1,gg=!1;function hg(j){eg===null?eg=[j]:eg.push(j)}function ig(j){fg=!0,hg(j)}function jg(){if(!gg&&eg!==null){gg=!0;var j=0,$=C$1;try{var _e=eg;for(C$1=1;j<_e.length;j++){var et=_e[j];do et=et(!0);while(et!==null)}eg=null,fg=!1}catch(tt){throw eg!==null&&(eg=eg.slice(j+1)),ac(fc,jg),tt}finally{C$1=$,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg="";function tg(j,$){kg[lg++]=ng,kg[lg++]=mg,mg=j,ng=$}function ug(j,$,_e){og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,qg=j;var et=rg;j=sg;var tt=32-oc(et)-1;et&=~(1<>=nt,tt-=nt,rg=1<<32-oc($)+tt|_e<Jt?(jt=kt,kt=null):jt=kt.sibling;var Ht=dt($t,kt,wt[Jt],xt);if(Ht===null){kt===null&&(kt=jt);break}j&&kt&&Ht.alternate===null&&$($t,kt),Rt=rt(Ht,Rt,Jt),Ot===null?Nt=Ht:Ot.sibling=Ht,Ot=Ht,kt=jt}if(Jt===wt.length)return _e($t,kt),I$1&&tg($t,Jt),Nt;if(kt===null){for(;JtJt?(jt=kt,kt=null):jt=kt.sibling;var Gt=dt($t,kt,Ht.value,xt);if(Gt===null){kt===null&&(kt=jt);break}j&&kt&&Gt.alternate===null&&$($t,kt),Rt=rt(Gt,Rt,Jt),Ot===null?Nt=Gt:Ot.sibling=Gt,Ot=Gt,kt=jt}if(Ht.done)return _e($t,kt),I$1&&tg($t,Jt),Nt;if(kt===null){for(;!Ht.done;Jt++,Ht=wt.next())Ht=ft($t,Ht.value,xt),Ht!==null&&(Rt=rt(Ht,Rt,Jt),Ot===null?Nt=Ht:Ot.sibling=Ht,Ot=Ht);return I$1&&tg($t,Jt),Nt}for(kt=et($t,kt);!Ht.done;Jt++,Ht=wt.next())Ht=Et(kt,$t,Jt,Ht.value,xt),Ht!==null&&(j&&Ht.alternate!==null&&kt.delete(Ht.key===null?Jt:Ht.key),Rt=rt(Ht,Rt,Jt),Ot===null?Nt=Ht:Ot.sibling=Ht,Ot=Ht);return j&&kt.forEach(function(Kt){return $($t,Kt)}),I$1&&tg($t,Jt),Nt}function Dt($t,Rt,wt,xt){if(typeof wt=="object"&&wt!==null&&wt.type===ya&&wt.key===null&&(wt=wt.props.children),typeof wt=="object"&&wt!==null){switch(wt.$$typeof){case va:e:{for(var Nt=wt.key,Ot=Rt;Ot!==null;){if(Ot.key===Nt){if(Nt=wt.type,Nt===ya){if(Ot.tag===7){_e($t,Ot.sibling),Rt=tt(Ot,wt.props.children),Rt.return=$t,$t=Rt;break e}}else if(Ot.elementType===Nt||typeof Nt=="object"&&Nt!==null&&Nt.$$typeof===Ha&&uh(Nt)===Ot.type){_e($t,Ot.sibling),Rt=tt(Ot,wt.props),Rt.ref=sh($t,Ot,wt),Rt.return=$t,$t=Rt;break e}_e($t,Ot);break}else $($t,Ot);Ot=Ot.sibling}wt.type===ya?(Rt=Ah(wt.props.children,$t.mode,xt,wt.key),Rt.return=$t,$t=Rt):(xt=yh(wt.type,wt.key,wt.props,null,$t.mode,xt),xt.ref=sh($t,Rt,wt),xt.return=$t,$t=xt)}return nt($t);case wa:e:{for(Ot=wt.key;Rt!==null;){if(Rt.key===Ot)if(Rt.tag===4&&Rt.stateNode.containerInfo===wt.containerInfo&&Rt.stateNode.implementation===wt.implementation){_e($t,Rt.sibling),Rt=tt(Rt,wt.children||[]),Rt.return=$t,$t=Rt;break e}else{_e($t,Rt);break}else $($t,Rt);Rt=Rt.sibling}Rt=zh(wt,$t.mode,xt),Rt.return=$t,$t=Rt}return nt($t);case Ha:return Ot=wt._init,Dt($t,Rt,Ot(wt._payload),xt)}if(eb(wt))return Bt($t,Rt,wt,xt);if(Ka(wt))return St($t,Rt,wt,xt);th($t,wt)}return typeof wt=="string"&&wt!==""||typeof wt=="number"?(wt=""+wt,Rt!==null&&Rt.tag===6?(_e($t,Rt.sibling),Rt=tt(Rt,wt),Rt.return=$t,$t=Rt):(_e($t,Rt),Rt=xh(wt,$t.mode,xt),Rt.return=$t,$t=Rt),nt($t)):_e($t,Rt)}return Dt}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(j){if(j===Dh)throw Error(p$2(174));return j}function Ih(j,$){switch(G$1(Gh,$),G$1(Fh,j),G$1(Eh,Dh),j=$.nodeType,j){case 9:case 11:$=($=$.documentElement)?$.namespaceURI:lb(null,"");break;default:j=j===8?$.parentNode:$,$=j.namespaceURI||null,j=j.tagName,$=lb($,j)}E$1(Eh),G$1(Eh,$)}function Jh(){E$1(Eh),E$1(Fh),E$1(Gh)}function Kh(j){Hh(Gh.current);var $=Hh(Eh.current),_e=lb($,j.type);$!==_e&&(G$1(Fh,j),G$1(Eh,_e))}function Lh(j){Fh.current===j&&(E$1(Eh),E$1(Fh))}var M=Uf(0);function Mh(j){for(var $=j;$!==null;){if($.tag===13){var _e=$.memoizedState;if(_e!==null&&(_e=_e.dehydrated,_e===null||_e.data==="$?"||_e.data==="$!"))return $}else if($.tag===19&&$.memoizedProps.revealOrder!==void 0){if($.flags&128)return $}else if($.child!==null){$.child.return=$,$=$.child;continue}if($===j)break;for(;$.sibling===null;){if($.return===null||$.return===j)return null;$=$.return}$.sibling.return=$.return,$=$.sibling}return null}var Nh=[];function Oh(){for(var j=0;j_e?_e:4,j(!0);var et=Qh.transition;Qh.transition={};try{j(!1),$()}finally{C$1=_e,Qh.transition=et}}function Fi(){return di().memoizedState}function Gi(j,$,_e){var et=lh(j);if(_e={lane:et,action:_e,hasEagerState:!1,eagerState:null,next:null},Hi(j))Ii($,_e);else if(_e=Yg(j,$,_e,et),_e!==null){var tt=L();mh(_e,j,et,tt),Ji(_e,$,et)}}function ri(j,$,_e){var et=lh(j),tt={lane:et,action:_e,hasEagerState:!1,eagerState:null,next:null};if(Hi(j))Ii($,tt);else{var rt=j.alternate;if(j.lanes===0&&(rt===null||rt.lanes===0)&&(rt=$.lastRenderedReducer,rt!==null))try{var nt=$.lastRenderedState,it=rt(nt,_e);if(tt.hasEagerState=!0,tt.eagerState=it,He(it,nt)){var ot=$.interleaved;ot===null?(tt.next=tt,Xg($)):(tt.next=ot.next,ot.next=tt),$.interleaved=tt;return}}catch{}finally{}_e=Yg(j,$,tt,et),_e!==null&&(tt=L(),mh(_e,j,et,tt),Ji(_e,$,et))}}function Hi(j){var $=j.alternate;return j===N$1||$!==null&&$===N$1}function Ii(j,$){Th=Sh=!0;var _e=j.pending;_e===null?$.next=$:($.next=_e.next,_e.next=$),j.pending=$}function Ji(j,$,_e){if(_e&4194240){var et=$.lanes;et&=j.pendingLanes,_e|=et,$.lanes=_e,Cc(j,_e)}}var ai={readContext:Vg,useCallback:Q$1,useContext:Q$1,useEffect:Q$1,useImperativeHandle:Q$1,useInsertionEffect:Q$1,useLayoutEffect:Q$1,useMemo:Q$1,useReducer:Q$1,useRef:Q$1,useState:Q$1,useDebugValue:Q$1,useDeferredValue:Q$1,useTransition:Q$1,useMutableSource:Q$1,useSyncExternalStore:Q$1,useId:Q$1,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(j,$){return ci().memoizedState=[j,$===void 0?null:$],j},useContext:Vg,useEffect:vi,useImperativeHandle:function(j,$,_e){return _e=_e!=null?_e.concat([j]):null,ti(4194308,4,yi.bind(null,$,j),_e)},useLayoutEffect:function(j,$){return ti(4194308,4,j,$)},useInsertionEffect:function(j,$){return ti(4,2,j,$)},useMemo:function(j,$){var _e=ci();return $=$===void 0?null:$,j=j(),_e.memoizedState=[j,$],j},useReducer:function(j,$,_e){var et=ci();return $=_e!==void 0?_e($):$,et.memoizedState=et.baseState=$,j={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:j,lastRenderedState:$},et.queue=j,j=j.dispatch=Gi.bind(null,N$1,j),[et.memoizedState,j]},useRef:function(j){var $=ci();return j={current:j},$.memoizedState=j},useState:qi,useDebugValue:Ai,useDeferredValue:function(j){return ci().memoizedState=j},useTransition:function(){var j=qi(!1),$=j[0];return j=Ei.bind(null,j[1]),ci().memoizedState=j,[$,j]},useMutableSource:function(){},useSyncExternalStore:function(j,$,_e){var et=N$1,tt=ci();if(I$1){if(_e===void 0)throw Error(p$2(407));_e=_e()}else{if(_e=$(),R$1===null)throw Error(p$2(349));Rh&30||ni(et,$,_e)}tt.memoizedState=_e;var rt={value:_e,getSnapshot:$};return tt.queue=rt,vi(ki.bind(null,et,rt,j),[j]),et.flags|=2048,li(9,mi.bind(null,et,rt,_e,$),void 0,null),_e},useId:function(){var j=ci(),$=R$1.identifierPrefix;if(I$1){var _e=sg,et=rg;_e=(et&~(1<<32-oc(et)-1)).toString(32)+_e,$=":"+$+"R"+_e,_e=Uh++,0<_e&&($+="H"+_e.toString(32)),$+=":"}else _e=Vh++,$=":"+$+"r"+_e.toString(32)+":";return j.memoizedState=$},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},useDebugValue:Ai,useDeferredValue:function(j){var $=di();return Di($,O.memoizedState,j)},useTransition:function(){var j=fi(ei)[0],$=di().memoizedState;return[j,$]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(j){var $=di();return O===null?$.memoizedState=j:Di($,O.memoizedState,j)},useTransition:function(){var j=gi(ei)[0],$=di().memoizedState;return[j,$]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(j,$){try{var _e="",et=$;do _e+=Pa(et),et=et.return;while(et);var tt=_e}catch(rt){tt=` +Error generating stack: `+rt.message+` +`+rt.stack}return{value:j,source:$,stack:tt,digest:null}}function Li(j,$,_e){return{value:j,source:null,stack:_e??null,digest:$??null}}function Mi(j,$){try{console.error($.value)}catch(_e){setTimeout(function(){throw _e})}}var Ni=typeof WeakMap=="function"?WeakMap:Map;function Oi(j,$,_e){_e=ch(-1,_e),_e.tag=3,_e.payload={element:null};var et=$.value;return _e.callback=function(){Pi||(Pi=!0,Qi=et),Mi(j,$)},_e}function Ri(j,$,_e){_e=ch(-1,_e),_e.tag=3;var et=j.type.getDerivedStateFromError;if(typeof et=="function"){var tt=$.value;_e.payload=function(){return et(tt)},_e.callback=function(){Mi(j,$)}}var rt=j.stateNode;return rt!==null&&typeof rt.componentDidCatch=="function"&&(_e.callback=function(){Mi(j,$),typeof et!="function"&&(Si===null?Si=new Set([this]):Si.add(this));var nt=$.stack;this.componentDidCatch($.value,{componentStack:nt!==null?nt:""})}),_e}function Ti(j,$,_e){var et=j.pingCache;if(et===null){et=j.pingCache=new Ni;var tt=new Set;et.set($,tt)}else tt=et.get($),tt===void 0&&(tt=new Set,et.set($,tt));tt.has(_e)||(tt.add(_e),j=Ui.bind(null,j,$,_e),$.then(j,j))}function Vi(j){do{var $;if(($=j.tag===13)&&($=j.memoizedState,$=$!==null?$.dehydrated!==null:!0),$)return j;j=j.return}while(j!==null);return null}function Wi(j,$,_e,et,tt){return j.mode&1?(j.flags|=65536,j.lanes=tt,j):(j===$?j.flags|=65536:(j.flags|=128,_e.flags|=131072,_e.flags&=-52805,_e.tag===1&&(_e.alternate===null?_e.tag=17:($=ch(-1,1),$.tag=2,dh(_e,$,1))),_e.lanes|=1),j)}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(j,$,_e,et){$.child=j===null?Ch($,null,_e,et):Bh($,j.child,_e,et)}function Zi(j,$,_e,et,tt){_e=_e.render;var rt=$.ref;return Tg($,tt),et=Xh(j,$,_e,et,rt,tt),_e=bi(),j!==null&&!Ug?($.updateQueue=j.updateQueue,$.flags&=-2053,j.lanes&=~tt,$i(j,$,tt)):(I$1&&_e&&vg($),$.flags|=1,Yi(j,$,et,tt),$.child)}function aj(j,$,_e,et,tt){if(j===null){var rt=_e.type;return typeof rt=="function"&&!bj(rt)&&rt.defaultProps===void 0&&_e.compare===null&&_e.defaultProps===void 0?($.tag=15,$.type=rt,cj(j,$,rt,et,tt)):(j=yh(_e.type,null,et,$,$.mode,tt),j.ref=$.ref,j.return=$,$.child=j)}if(rt=j.child,!(j.lanes&tt)){var nt=rt.memoizedProps;if(_e=_e.compare,_e=_e!==null?_e:Ie,_e(nt,et)&&j.ref===$.ref)return $i(j,$,tt)}return $.flags|=1,j=wh(rt,et),j.ref=$.ref,j.return=$,$.child=j}function cj(j,$,_e,et,tt){if(j!==null){var rt=j.memoizedProps;if(Ie(rt,et)&&j.ref===$.ref)if(Ug=!1,$.pendingProps=et=rt,(j.lanes&tt)!==0)j.flags&131072&&(Ug=!0);else return $.lanes=j.lanes,$i(j,$,tt)}return dj(j,$,_e,et,tt)}function ej(j,$,_e){var et=$.pendingProps,tt=et.children,rt=j!==null?j.memoizedState:null;if(et.mode==="hidden")if(!($.mode&1))$.memoizedState={baseLanes:0,cachePool:null,transitions:null},G$1(fj,gj),gj|=_e;else{if(!(_e&1073741824))return j=rt!==null?rt.baseLanes|_e:_e,$.lanes=$.childLanes=1073741824,$.memoizedState={baseLanes:j,cachePool:null,transitions:null},$.updateQueue=null,G$1(fj,gj),gj|=j,null;$.memoizedState={baseLanes:0,cachePool:null,transitions:null},et=rt!==null?rt.baseLanes:_e,G$1(fj,gj),gj|=et}else rt!==null?(et=rt.baseLanes|_e,$.memoizedState=null):et=_e,G$1(fj,gj),gj|=et;return Yi(j,$,tt,_e),$.child}function hj(j,$){var _e=$.ref;(j===null&&_e!==null||j!==null&&j.ref!==_e)&&($.flags|=512,$.flags|=2097152)}function dj(j,$,_e,et,tt){var rt=Zf(_e)?Xf:H.current;return rt=Yf($,rt),Tg($,tt),_e=Xh(j,$,_e,et,rt,tt),et=bi(),j!==null&&!Ug?($.updateQueue=j.updateQueue,$.flags&=-2053,j.lanes&=~tt,$i(j,$,tt)):(I$1&&et&&vg($),$.flags|=1,Yi(j,$,_e,tt),$.child)}function ij(j,$,_e,et,tt){if(Zf(_e)){var rt=!0;cg($)}else rt=!1;if(Tg($,tt),$.stateNode===null)jj(j,$),ph($,_e,et),rh($,_e,et,tt),et=!0;else if(j===null){var nt=$.stateNode,it=$.memoizedProps;nt.props=it;var ot=nt.context,At=_e.contextType;typeof At=="object"&&At!==null?At=Vg(At):(At=Zf(_e)?Xf:H.current,At=Yf($,At));var ut=_e.getDerivedStateFromProps,ft=typeof ut=="function"||typeof nt.getSnapshotBeforeUpdate=="function";ft||typeof nt.UNSAFE_componentWillReceiveProps!="function"&&typeof nt.componentWillReceiveProps!="function"||(it!==et||ot!==At)&&qh($,nt,et,At),$g=!1;var dt=$.memoizedState;nt.state=dt,gh($,et,nt,tt),ot=$.memoizedState,it!==et||dt!==ot||Wf.current||$g?(typeof ut=="function"&&(kh($,_e,ut,et),ot=$.memoizedState),(it=$g||oh($,_e,it,et,dt,ot,At))?(ft||typeof nt.UNSAFE_componentWillMount!="function"&&typeof nt.componentWillMount!="function"||(typeof nt.componentWillMount=="function"&&nt.componentWillMount(),typeof nt.UNSAFE_componentWillMount=="function"&&nt.UNSAFE_componentWillMount()),typeof nt.componentDidMount=="function"&&($.flags|=4194308)):(typeof nt.componentDidMount=="function"&&($.flags|=4194308),$.memoizedProps=et,$.memoizedState=ot),nt.props=et,nt.state=ot,nt.context=At,et=it):(typeof nt.componentDidMount=="function"&&($.flags|=4194308),et=!1)}else{nt=$.stateNode,bh(j,$),it=$.memoizedProps,At=$.type===$.elementType?it:Lg($.type,it),nt.props=At,ft=$.pendingProps,dt=nt.context,ot=_e.contextType,typeof ot=="object"&&ot!==null?ot=Vg(ot):(ot=Zf(_e)?Xf:H.current,ot=Yf($,ot));var Et=_e.getDerivedStateFromProps;(ut=typeof Et=="function"||typeof nt.getSnapshotBeforeUpdate=="function")||typeof nt.UNSAFE_componentWillReceiveProps!="function"&&typeof nt.componentWillReceiveProps!="function"||(it!==ft||dt!==ot)&&qh($,nt,et,ot),$g=!1,dt=$.memoizedState,nt.state=dt,gh($,et,nt,tt);var Bt=$.memoizedState;it!==ft||dt!==Bt||Wf.current||$g?(typeof Et=="function"&&(kh($,_e,Et,et),Bt=$.memoizedState),(At=$g||oh($,_e,At,et,dt,Bt,ot)||!1)?(ut||typeof nt.UNSAFE_componentWillUpdate!="function"&&typeof nt.componentWillUpdate!="function"||(typeof nt.componentWillUpdate=="function"&&nt.componentWillUpdate(et,Bt,ot),typeof nt.UNSAFE_componentWillUpdate=="function"&&nt.UNSAFE_componentWillUpdate(et,Bt,ot)),typeof nt.componentDidUpdate=="function"&&($.flags|=4),typeof nt.getSnapshotBeforeUpdate=="function"&&($.flags|=1024)):(typeof nt.componentDidUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||($.flags|=4),typeof nt.getSnapshotBeforeUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||($.flags|=1024),$.memoizedProps=et,$.memoizedState=Bt),nt.props=et,nt.state=Bt,nt.context=ot,et=At):(typeof nt.componentDidUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||($.flags|=4),typeof nt.getSnapshotBeforeUpdate!="function"||it===j.memoizedProps&&dt===j.memoizedState||($.flags|=1024),et=!1)}return kj(j,$,_e,et,rt,tt)}function kj(j,$,_e,et,tt,rt){hj(j,$);var nt=($.flags&128)!==0;if(!et&&!nt)return tt&&dg($,_e,!1),$i(j,$,rt);et=$.stateNode,Xi.current=$;var it=nt&&typeof _e.getDerivedStateFromError!="function"?null:et.render();return $.flags|=1,j!==null&&nt?($.child=Bh($,j.child,null,rt),$.child=Bh($,null,it,rt)):Yi(j,$,it,rt),$.memoizedState=et.state,tt&&dg($,_e,!0),$.child}function lj(j){var $=j.stateNode;$.pendingContext?ag(j,$.pendingContext,$.pendingContext!==$.context):$.context&&ag(j,$.context,!1),Ih(j,$.containerInfo)}function mj(j,$,_e,et,tt){return Ig(),Jg(tt),$.flags|=256,Yi(j,$,_e,et),$.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(j){return{baseLanes:j,cachePool:null,transitions:null}}function pj(j,$,_e){var et=$.pendingProps,tt=M.current,rt=!1,nt=($.flags&128)!==0,it;if((it=nt)||(it=j!==null&&j.memoizedState===null?!1:(tt&2)!==0),it?(rt=!0,$.flags&=-129):(j===null||j.memoizedState!==null)&&(tt|=1),G$1(M,tt&1),j===null)return Eg($),j=$.memoizedState,j!==null&&(j=j.dehydrated,j!==null)?($.mode&1?j.data==="$!"?$.lanes=8:$.lanes=1073741824:$.lanes=1,null):(nt=et.children,j=et.fallback,rt?(et=$.mode,rt=$.child,nt={mode:"hidden",children:nt},!(et&1)&&rt!==null?(rt.childLanes=0,rt.pendingProps=nt):rt=qj(nt,et,0,null),j=Ah(j,et,_e,null),rt.return=$,j.return=$,rt.sibling=j,$.child=rt,$.child.memoizedState=oj(_e),$.memoizedState=nj,j):rj($,nt));if(tt=j.memoizedState,tt!==null&&(it=tt.dehydrated,it!==null))return sj(j,$,nt,et,it,tt,_e);if(rt){rt=et.fallback,nt=$.mode,tt=j.child,it=tt.sibling;var ot={mode:"hidden",children:et.children};return!(nt&1)&&$.child!==tt?(et=$.child,et.childLanes=0,et.pendingProps=ot,$.deletions=null):(et=wh(tt,ot),et.subtreeFlags=tt.subtreeFlags&14680064),it!==null?rt=wh(it,rt):(rt=Ah(rt,nt,_e,null),rt.flags|=2),rt.return=$,et.return=$,et.sibling=rt,$.child=et,et=rt,rt=$.child,nt=j.child.memoizedState,nt=nt===null?oj(_e):{baseLanes:nt.baseLanes|_e,cachePool:null,transitions:nt.transitions},rt.memoizedState=nt,rt.childLanes=j.childLanes&~_e,$.memoizedState=nj,et}return rt=j.child,j=rt.sibling,et=wh(rt,{mode:"visible",children:et.children}),!($.mode&1)&&(et.lanes=_e),et.return=$,et.sibling=null,j!==null&&(_e=$.deletions,_e===null?($.deletions=[j],$.flags|=16):_e.push(j)),$.child=et,$.memoizedState=null,et}function rj(j,$){return $=qj({mode:"visible",children:$},j.mode,0,null),$.return=j,j.child=$}function tj(j,$,_e,et){return et!==null&&Jg(et),Bh($,j.child,null,_e),j=rj($,$.pendingProps.children),j.flags|=2,$.memoizedState=null,j}function sj(j,$,_e,et,tt,rt,nt){if(_e)return $.flags&256?($.flags&=-257,et=Li(Error(p$2(422))),tj(j,$,nt,et)):$.memoizedState!==null?($.child=j.child,$.flags|=128,null):(rt=et.fallback,tt=$.mode,et=qj({mode:"visible",children:et.children},tt,0,null),rt=Ah(rt,tt,nt,null),rt.flags|=2,et.return=$,rt.return=$,et.sibling=rt,$.child=et,$.mode&1&&Bh($,j.child,null,nt),$.child.memoizedState=oj(nt),$.memoizedState=nj,rt);if(!($.mode&1))return tj(j,$,nt,null);if(tt.data==="$!"){if(et=tt.nextSibling&&tt.nextSibling.dataset,et)var it=et.dgst;return et=it,rt=Error(p$2(419)),et=Li(rt,et,void 0),tj(j,$,nt,et)}if(it=(nt&j.childLanes)!==0,Ug||it){if(et=R$1,et!==null){switch(nt&-nt){case 4:tt=2;break;case 16:tt=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:tt=32;break;case 536870912:tt=268435456;break;default:tt=0}tt=tt&(et.suspendedLanes|nt)?0:tt,tt!==0&&tt!==rt.retryLane&&(rt.retryLane=tt,Zg(j,tt),mh(et,j,tt,-1))}return uj(),et=Li(Error(p$2(421))),tj(j,$,nt,et)}return tt.data==="$?"?($.flags|=128,$.child=j.child,$=vj.bind(null,j),tt._reactRetry=$,null):(j=rt.treeContext,yg=Lf(tt.nextSibling),xg=$,I$1=!0,zg=null,j!==null&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=j.id,sg=j.overflow,qg=$),$=rj($,et.children),$.flags|=4096,$)}function wj(j,$,_e){j.lanes|=$;var et=j.alternate;et!==null&&(et.lanes|=$),Sg(j.return,$,_e)}function xj(j,$,_e,et,tt){var rt=j.memoizedState;rt===null?j.memoizedState={isBackwards:$,rendering:null,renderingStartTime:0,last:et,tail:_e,tailMode:tt}:(rt.isBackwards=$,rt.rendering=null,rt.renderingStartTime=0,rt.last=et,rt.tail=_e,rt.tailMode=tt)}function yj(j,$,_e){var et=$.pendingProps,tt=et.revealOrder,rt=et.tail;if(Yi(j,$,et.children,_e),et=M.current,et&2)et=et&1|2,$.flags|=128;else{if(j!==null&&j.flags&128)e:for(j=$.child;j!==null;){if(j.tag===13)j.memoizedState!==null&&wj(j,_e,$);else if(j.tag===19)wj(j,_e,$);else if(j.child!==null){j.child.return=j,j=j.child;continue}if(j===$)break e;for(;j.sibling===null;){if(j.return===null||j.return===$)break e;j=j.return}j.sibling.return=j.return,j=j.sibling}et&=1}if(G$1(M,et),!($.mode&1))$.memoizedState=null;else switch(tt){case"forwards":for(_e=$.child,tt=null;_e!==null;)j=_e.alternate,j!==null&&Mh(j)===null&&(tt=_e),_e=_e.sibling;_e=tt,_e===null?(tt=$.child,$.child=null):(tt=_e.sibling,_e.sibling=null),xj($,!1,tt,_e,rt);break;case"backwards":for(_e=null,tt=$.child,$.child=null;tt!==null;){if(j=tt.alternate,j!==null&&Mh(j)===null){$.child=tt;break}j=tt.sibling,tt.sibling=_e,_e=tt,tt=j}xj($,!0,_e,null,rt);break;case"together":xj($,!1,null,null,void 0);break;default:$.memoizedState=null}return $.child}function jj(j,$){!($.mode&1)&&j!==null&&(j.alternate=null,$.alternate=null,$.flags|=2)}function $i(j,$,_e){if(j!==null&&($.dependencies=j.dependencies),hh|=$.lanes,!(_e&$.childLanes))return null;if(j!==null&&$.child!==j.child)throw Error(p$2(153));if($.child!==null){for(j=$.child,_e=wh(j,j.pendingProps),$.child=_e,_e.return=$;j.sibling!==null;)j=j.sibling,_e=_e.sibling=wh(j,j.pendingProps),_e.return=$;_e.sibling=null}return $.child}function zj(j,$,_e){switch($.tag){case 3:lj($),Ig();break;case 5:Kh($);break;case 1:Zf($.type)&&cg($);break;case 4:Ih($,$.stateNode.containerInfo);break;case 10:var et=$.type._context,tt=$.memoizedProps.value;G$1(Mg,et._currentValue),et._currentValue=tt;break;case 13:if(et=$.memoizedState,et!==null)return et.dehydrated!==null?(G$1(M,M.current&1),$.flags|=128,null):_e&$.child.childLanes?pj(j,$,_e):(G$1(M,M.current&1),j=$i(j,$,_e),j!==null?j.sibling:null);G$1(M,M.current&1);break;case 19:if(et=(_e&$.childLanes)!==0,j.flags&128){if(et)return yj(j,$,_e);$.flags|=128}if(tt=$.memoizedState,tt!==null&&(tt.rendering=null,tt.tail=null,tt.lastEffect=null),G$1(M,M.current),et)break;return null;case 22:case 23:return $.lanes=0,ej(j,$,_e)}return $i(j,$,_e)}var Aj,Bj,Cj,Dj;Aj=function(j,$){for(var _e=$.child;_e!==null;){if(_e.tag===5||_e.tag===6)j.appendChild(_e.stateNode);else if(_e.tag!==4&&_e.child!==null){_e.child.return=_e,_e=_e.child;continue}if(_e===$)break;for(;_e.sibling===null;){if(_e.return===null||_e.return===$)return;_e=_e.return}_e.sibling.return=_e.return,_e=_e.sibling}};Bj=function(){};Cj=function(j,$,_e,et){var tt=j.memoizedProps;if(tt!==et){j=$.stateNode,Hh(Eh.current);var rt=null;switch(_e){case"input":tt=Ya(j,tt),et=Ya(j,et),rt=[];break;case"select":tt=A$2({},tt,{value:void 0}),et=A$2({},et,{value:void 0}),rt=[];break;case"textarea":tt=gb(j,tt),et=gb(j,et),rt=[];break;default:typeof tt.onClick!="function"&&typeof et.onClick=="function"&&(j.onclick=Bf)}ub(_e,et);var nt;_e=null;for(At in tt)if(!et.hasOwnProperty(At)&&tt.hasOwnProperty(At)&&tt[At]!=null)if(At==="style"){var it=tt[At];for(nt in it)it.hasOwnProperty(nt)&&(_e||(_e={}),_e[nt]="")}else At!=="dangerouslySetInnerHTML"&&At!=="children"&&At!=="suppressContentEditableWarning"&&At!=="suppressHydrationWarning"&&At!=="autoFocus"&&(ea.hasOwnProperty(At)?rt||(rt=[]):(rt=rt||[]).push(At,null));for(At in et){var ot=et[At];if(it=tt!=null?tt[At]:void 0,et.hasOwnProperty(At)&&ot!==it&&(ot!=null||it!=null))if(At==="style")if(it){for(nt in it)!it.hasOwnProperty(nt)||ot&&ot.hasOwnProperty(nt)||(_e||(_e={}),_e[nt]="");for(nt in ot)ot.hasOwnProperty(nt)&&it[nt]!==ot[nt]&&(_e||(_e={}),_e[nt]=ot[nt])}else _e||(rt||(rt=[]),rt.push(At,_e)),_e=ot;else At==="dangerouslySetInnerHTML"?(ot=ot?ot.__html:void 0,it=it?it.__html:void 0,ot!=null&&it!==ot&&(rt=rt||[]).push(At,ot)):At==="children"?typeof ot!="string"&&typeof ot!="number"||(rt=rt||[]).push(At,""+ot):At!=="suppressContentEditableWarning"&&At!=="suppressHydrationWarning"&&(ea.hasOwnProperty(At)?(ot!=null&&At==="onScroll"&&D$1("scroll",j),rt||it===ot||(rt=[])):(rt=rt||[]).push(At,ot))}_e&&(rt=rt||[]).push("style",_e);var At=rt;($.updateQueue=At)&&($.flags|=4)}};Dj=function(j,$,_e,et){_e!==et&&($.flags|=4)};function Ej(j,$){if(!I$1)switch(j.tailMode){case"hidden":$=j.tail;for(var _e=null;$!==null;)$.alternate!==null&&(_e=$),$=$.sibling;_e===null?j.tail=null:_e.sibling=null;break;case"collapsed":_e=j.tail;for(var et=null;_e!==null;)_e.alternate!==null&&(et=_e),_e=_e.sibling;et===null?$||j.tail===null?j.tail=null:j.tail.sibling=null:et.sibling=null}}function S(j){var $=j.alternate!==null&&j.alternate.child===j.child,_e=0,et=0;if($)for(var tt=j.child;tt!==null;)_e|=tt.lanes|tt.childLanes,et|=tt.subtreeFlags&14680064,et|=tt.flags&14680064,tt.return=j,tt=tt.sibling;else for(tt=j.child;tt!==null;)_e|=tt.lanes|tt.childLanes,et|=tt.subtreeFlags,et|=tt.flags,tt.return=j,tt=tt.sibling;return j.subtreeFlags|=et,j.childLanes=_e,$}function Fj(j,$,_e){var et=$.pendingProps;switch(wg($),$.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S($),null;case 1:return Zf($.type)&&$f(),S($),null;case 3:return et=$.stateNode,Jh(),E$1(Wf),E$1(H),Oh(),et.pendingContext&&(et.context=et.pendingContext,et.pendingContext=null),(j===null||j.child===null)&&(Gg($)?$.flags|=4:j===null||j.memoizedState.isDehydrated&&!($.flags&256)||($.flags|=1024,zg!==null&&(Gj(zg),zg=null))),Bj(j,$),S($),null;case 5:Lh($);var tt=Hh(Gh.current);if(_e=$.type,j!==null&&$.stateNode!=null)Cj(j,$,_e,et,tt),j.ref!==$.ref&&($.flags|=512,$.flags|=2097152);else{if(!et){if($.stateNode===null)throw Error(p$2(166));return S($),null}if(j=Hh(Eh.current),Gg($)){et=$.stateNode,_e=$.type;var rt=$.memoizedProps;switch(et[Of]=$,et[Pf]=rt,j=($.mode&1)!==0,_e){case"dialog":D$1("cancel",et),D$1("close",et);break;case"iframe":case"object":case"embed":D$1("load",et);break;case"video":case"audio":for(tt=0;tt<\/script>",j=j.removeChild(j.firstChild)):typeof et.is=="string"?j=nt.createElement(_e,{is:et.is}):(j=nt.createElement(_e),_e==="select"&&(nt=j,et.multiple?nt.multiple=!0:et.size&&(nt.size=et.size))):j=nt.createElementNS(j,_e),j[Of]=$,j[Pf]=et,Aj(j,$,!1,!1),$.stateNode=j;e:{switch(nt=vb(_e,et),_e){case"dialog":D$1("cancel",j),D$1("close",j),tt=et;break;case"iframe":case"object":case"embed":D$1("load",j),tt=et;break;case"video":case"audio":for(tt=0;ttHj&&($.flags|=128,et=!0,Ej(rt,!1),$.lanes=4194304)}else{if(!et)if(j=Mh(nt),j!==null){if($.flags|=128,et=!0,_e=j.updateQueue,_e!==null&&($.updateQueue=_e,$.flags|=4),Ej(rt,!0),rt.tail===null&&rt.tailMode==="hidden"&&!nt.alternate&&!I$1)return S($),null}else 2*B$1()-rt.renderingStartTime>Hj&&_e!==1073741824&&($.flags|=128,et=!0,Ej(rt,!1),$.lanes=4194304);rt.isBackwards?(nt.sibling=$.child,$.child=nt):(_e=rt.last,_e!==null?_e.sibling=nt:$.child=nt,rt.last=nt)}return rt.tail!==null?($=rt.tail,rt.rendering=$,rt.tail=$.sibling,rt.renderingStartTime=B$1(),$.sibling=null,_e=M.current,G$1(M,et?_e&1|2:_e&1),$):(S($),null);case 22:case 23:return Ij(),et=$.memoizedState!==null,j!==null&&j.memoizedState!==null!==et&&($.flags|=8192),et&&$.mode&1?gj&1073741824&&(S($),$.subtreeFlags&6&&($.flags|=8192)):S($),null;case 24:return null;case 25:return null}throw Error(p$2(156,$.tag))}function Jj(j,$){switch(wg($),$.tag){case 1:return Zf($.type)&&$f(),j=$.flags,j&65536?($.flags=j&-65537|128,$):null;case 3:return Jh(),E$1(Wf),E$1(H),Oh(),j=$.flags,j&65536&&!(j&128)?($.flags=j&-65537|128,$):null;case 5:return Lh($),null;case 13:if(E$1(M),j=$.memoizedState,j!==null&&j.dehydrated!==null){if($.alternate===null)throw Error(p$2(340));Ig()}return j=$.flags,j&65536?($.flags=j&-65537|128,$):null;case 19:return E$1(M),null;case 4:return Jh(),null;case 10:return Rg($.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V=null;function Mj(j,$){var _e=j.ref;if(_e!==null)if(typeof _e=="function")try{_e(null)}catch(et){W(j,$,et)}else _e.current=null}function Nj(j,$,_e){try{_e()}catch(et){W(j,$,et)}}var Oj=!1;function Pj(j,$){if(Cf=dd,j=Me(),Ne(j)){if("selectionStart"in j)var _e={start:j.selectionStart,end:j.selectionEnd};else e:{_e=(_e=j.ownerDocument)&&_e.defaultView||window;var et=_e.getSelection&&_e.getSelection();if(et&&et.rangeCount!==0){_e=et.anchorNode;var tt=et.anchorOffset,rt=et.focusNode;et=et.focusOffset;try{_e.nodeType,rt.nodeType}catch{_e=null;break e}var nt=0,it=-1,ot=-1,At=0,ut=0,ft=j,dt=null;t:for(;;){for(var Et;ft!==_e||tt!==0&&ft.nodeType!==3||(it=nt+tt),ft!==rt||et!==0&&ft.nodeType!==3||(ot=nt+et),ft.nodeType===3&&(nt+=ft.nodeValue.length),(Et=ft.firstChild)!==null;)dt=ft,ft=Et;for(;;){if(ft===j)break t;if(dt===_e&&++At===tt&&(it=nt),dt===rt&&++ut===et&&(ot=nt),(Et=ft.nextSibling)!==null)break;ft=dt,dt=ft.parentNode}ft=Et}_e=it===-1||ot===-1?null:{start:it,end:ot}}else _e=null}_e=_e||{start:0,end:0}}else _e=null;for(Df={focusedElem:j,selectionRange:_e},dd=!1,V=$;V!==null;)if($=V,j=$.child,($.subtreeFlags&1028)!==0&&j!==null)j.return=$,V=j;else for(;V!==null;){$=V;try{var Bt=$.alternate;if($.flags&1024)switch($.tag){case 0:case 11:case 15:break;case 1:if(Bt!==null){var St=Bt.memoizedProps,Dt=Bt.memoizedState,$t=$.stateNode,Rt=$t.getSnapshotBeforeUpdate($.elementType===$.type?St:Lg($.type,St),Dt);$t.__reactInternalSnapshotBeforeUpdate=Rt}break;case 3:var wt=$.stateNode.containerInfo;wt.nodeType===1?wt.textContent="":wt.nodeType===9&&wt.documentElement&&wt.removeChild(wt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$2(163))}}catch(xt){W($,$.return,xt)}if(j=$.sibling,j!==null){j.return=$.return,V=j;break}V=$.return}return Bt=Oj,Oj=!1,Bt}function Qj(j,$,_e){var et=$.updateQueue;if(et=et!==null?et.lastEffect:null,et!==null){var tt=et=et.next;do{if((tt.tag&j)===j){var rt=tt.destroy;tt.destroy=void 0,rt!==void 0&&Nj($,_e,rt)}tt=tt.next}while(tt!==et)}}function Rj(j,$){if($=$.updateQueue,$=$!==null?$.lastEffect:null,$!==null){var _e=$=$.next;do{if((_e.tag&j)===j){var et=_e.create;_e.destroy=et()}_e=_e.next}while(_e!==$)}}function Sj(j){var $=j.ref;if($!==null){var _e=j.stateNode;switch(j.tag){case 5:j=_e;break;default:j=_e}typeof $=="function"?$(j):$.current=j}}function Tj(j){var $=j.alternate;$!==null&&(j.alternate=null,Tj($)),j.child=null,j.deletions=null,j.sibling=null,j.tag===5&&($=j.stateNode,$!==null&&(delete $[Of],delete $[Pf],delete $[of],delete $[Qf],delete $[Rf])),j.stateNode=null,j.return=null,j.dependencies=null,j.memoizedProps=null,j.memoizedState=null,j.pendingProps=null,j.stateNode=null,j.updateQueue=null}function Uj(j){return j.tag===5||j.tag===3||j.tag===4}function Vj(j){e:for(;;){for(;j.sibling===null;){if(j.return===null||Uj(j.return))return null;j=j.return}for(j.sibling.return=j.return,j=j.sibling;j.tag!==5&&j.tag!==6&&j.tag!==18;){if(j.flags&2||j.child===null||j.tag===4)continue e;j.child.return=j,j=j.child}if(!(j.flags&2))return j.stateNode}}function Wj(j,$,_e){var et=j.tag;if(et===5||et===6)j=j.stateNode,$?_e.nodeType===8?_e.parentNode.insertBefore(j,$):_e.insertBefore(j,$):(_e.nodeType===8?($=_e.parentNode,$.insertBefore(j,_e)):($=_e,$.appendChild(j)),_e=_e._reactRootContainer,_e!=null||$.onclick!==null||($.onclick=Bf));else if(et!==4&&(j=j.child,j!==null))for(Wj(j,$,_e),j=j.sibling;j!==null;)Wj(j,$,_e),j=j.sibling}function Xj(j,$,_e){var et=j.tag;if(et===5||et===6)j=j.stateNode,$?_e.insertBefore(j,$):_e.appendChild(j);else if(et!==4&&(j=j.child,j!==null))for(Xj(j,$,_e),j=j.sibling;j!==null;)Xj(j,$,_e),j=j.sibling}var X=null,Yj=!1;function Zj(j,$,_e){for(_e=_e.child;_e!==null;)ak(j,$,_e),_e=_e.sibling}function ak(j,$,_e){if(lc&&typeof lc.onCommitFiberUnmount=="function")try{lc.onCommitFiberUnmount(kc,_e)}catch{}switch(_e.tag){case 5:U||Mj(_e,$);case 6:var et=X,tt=Yj;X=null,Zj(j,$,_e),X=et,Yj=tt,X!==null&&(Yj?(j=X,_e=_e.stateNode,j.nodeType===8?j.parentNode.removeChild(_e):j.removeChild(_e)):X.removeChild(_e.stateNode));break;case 18:X!==null&&(Yj?(j=X,_e=_e.stateNode,j.nodeType===8?Kf(j.parentNode,_e):j.nodeType===1&&Kf(j,_e),bd(j)):Kf(X,_e.stateNode));break;case 4:et=X,tt=Yj,X=_e.stateNode.containerInfo,Yj=!0,Zj(j,$,_e),X=et,Yj=tt;break;case 0:case 11:case 14:case 15:if(!U&&(et=_e.updateQueue,et!==null&&(et=et.lastEffect,et!==null))){tt=et=et.next;do{var rt=tt,nt=rt.destroy;rt=rt.tag,nt!==void 0&&(rt&2||rt&4)&&Nj(_e,$,nt),tt=tt.next}while(tt!==et)}Zj(j,$,_e);break;case 1:if(!U&&(Mj(_e,$),et=_e.stateNode,typeof et.componentWillUnmount=="function"))try{et.props=_e.memoizedProps,et.state=_e.memoizedState,et.componentWillUnmount()}catch(it){W(_e,$,it)}Zj(j,$,_e);break;case 21:Zj(j,$,_e);break;case 22:_e.mode&1?(U=(et=U)||_e.memoizedState!==null,Zj(j,$,_e),U=et):Zj(j,$,_e);break;default:Zj(j,$,_e)}}function bk(j){var $=j.updateQueue;if($!==null){j.updateQueue=null;var _e=j.stateNode;_e===null&&(_e=j.stateNode=new Lj),$.forEach(function(et){var tt=ck.bind(null,j,et);_e.has(et)||(_e.add(et),et.then(tt,tt))})}}function dk(j,$){var _e=$.deletions;if(_e!==null)for(var et=0;et<_e.length;et++){var tt=_e[et];try{var rt=j,nt=$,it=nt;e:for(;it!==null;){switch(it.tag){case 5:X=it.stateNode,Yj=!1;break e;case 3:X=it.stateNode.containerInfo,Yj=!0;break e;case 4:X=it.stateNode.containerInfo,Yj=!0;break e}it=it.return}if(X===null)throw Error(p$2(160));ak(rt,nt,tt),X=null,Yj=!1;var ot=tt.alternate;ot!==null&&(ot.return=null),tt.return=null}catch(At){W(tt,$,At)}}if($.subtreeFlags&12854)for($=$.child;$!==null;)ek($,j),$=$.sibling}function ek(j,$){var _e=j.alternate,et=j.flags;switch(j.tag){case 0:case 11:case 14:case 15:if(dk($,j),fk(j),et&4){try{Qj(3,j,j.return),Rj(3,j)}catch(St){W(j,j.return,St)}try{Qj(5,j,j.return)}catch(St){W(j,j.return,St)}}break;case 1:dk($,j),fk(j),et&512&&_e!==null&&Mj(_e,_e.return);break;case 5:if(dk($,j),fk(j),et&512&&_e!==null&&Mj(_e,_e.return),j.flags&32){var tt=j.stateNode;try{ob(tt,"")}catch(St){W(j,j.return,St)}}if(et&4&&(tt=j.stateNode,tt!=null)){var rt=j.memoizedProps,nt=_e!==null?_e.memoizedProps:rt,it=j.type,ot=j.updateQueue;if(j.updateQueue=null,ot!==null)try{it==="input"&&rt.type==="radio"&&rt.name!=null&&ab(tt,rt),vb(it,nt);var At=vb(it,rt);for(nt=0;nttt&&(tt=nt),et&=~rt}if(et=tt,et=B$1()-et,et=(120>et?120:480>et?480:1080>et?1080:1920>et?1920:3e3>et?3e3:4320>et?4320:1960*mk(et/1960))-et,10j?16:j,xk===null)var et=!1;else{if(j=xk,xk=null,yk=0,K&6)throw Error(p$2(331));var tt=K;for(K|=4,V=j.current;V!==null;){var rt=V,nt=rt.child;if(V.flags&16){var it=rt.deletions;if(it!==null){for(var ot=0;otB$1()-gk?Lk(j,0):sk|=_e),Ek(j,$)}function Zk(j,$){$===0&&(j.mode&1?($=sc,sc<<=1,!(sc&130023424)&&(sc=4194304)):$=1);var _e=L();j=Zg(j,$),j!==null&&(Ac(j,$,_e),Ek(j,_e))}function vj(j){var $=j.memoizedState,_e=0;$!==null&&(_e=$.retryLane),Zk(j,_e)}function ck(j,$){var _e=0;switch(j.tag){case 13:var et=j.stateNode,tt=j.memoizedState;tt!==null&&(_e=tt.retryLane);break;case 19:et=j.stateNode;break;default:throw Error(p$2(314))}et!==null&&et.delete($),Zk(j,_e)}var Wk;Wk=function(j,$,_e){if(j!==null)if(j.memoizedProps!==$.pendingProps||Wf.current)Ug=!0;else{if(!(j.lanes&_e)&&!($.flags&128))return Ug=!1,zj(j,$,_e);Ug=!!(j.flags&131072)}else Ug=!1,I$1&&$.flags&1048576&&ug($,ng,$.index);switch($.lanes=0,$.tag){case 2:var et=$.type;jj(j,$),j=$.pendingProps;var tt=Yf($,H.current);Tg($,_e),tt=Xh(null,$,et,j,tt,_e);var rt=bi();return $.flags|=1,typeof tt=="object"&&tt!==null&&typeof tt.render=="function"&&tt.$$typeof===void 0?($.tag=1,$.memoizedState=null,$.updateQueue=null,Zf(et)?(rt=!0,cg($)):rt=!1,$.memoizedState=tt.state!==null&&tt.state!==void 0?tt.state:null,ah($),tt.updater=nh,$.stateNode=tt,tt._reactInternals=$,rh($,et,j,_e),$=kj(null,$,et,!0,rt,_e)):($.tag=0,I$1&&rt&&vg($),Yi(null,$,tt,_e),$=$.child),$;case 16:et=$.elementType;e:{switch(jj(j,$),j=$.pendingProps,tt=et._init,et=tt(et._payload),$.type=et,tt=$.tag=$k(et),j=Lg(et,j),tt){case 0:$=dj(null,$,et,j,_e);break e;case 1:$=ij(null,$,et,j,_e);break e;case 11:$=Zi(null,$,et,j,_e);break e;case 14:$=aj(null,$,et,Lg(et.type,j),_e);break e}throw Error(p$2(306,et,""))}return $;case 0:return et=$.type,tt=$.pendingProps,tt=$.elementType===et?tt:Lg(et,tt),dj(j,$,et,tt,_e);case 1:return et=$.type,tt=$.pendingProps,tt=$.elementType===et?tt:Lg(et,tt),ij(j,$,et,tt,_e);case 3:e:{if(lj($),j===null)throw Error(p$2(387));et=$.pendingProps,rt=$.memoizedState,tt=rt.element,bh(j,$),gh($,et,null,_e);var nt=$.memoizedState;if(et=nt.element,rt.isDehydrated)if(rt={element:et,isDehydrated:!1,cache:nt.cache,pendingSuspenseBoundaries:nt.pendingSuspenseBoundaries,transitions:nt.transitions},$.updateQueue.baseState=rt,$.memoizedState=rt,$.flags&256){tt=Ki(Error(p$2(423)),$),$=mj(j,$,et,_e,tt);break e}else if(et!==tt){tt=Ki(Error(p$2(424)),$),$=mj(j,$,et,_e,tt);break e}else for(yg=Lf($.stateNode.containerInfo.firstChild),xg=$,I$1=!0,zg=null,_e=Ch($,null,et,_e),$.child=_e;_e;)_e.flags=_e.flags&-3|4096,_e=_e.sibling;else{if(Ig(),et===tt){$=$i(j,$,_e);break e}Yi(j,$,et,_e)}$=$.child}return $;case 5:return Kh($),j===null&&Eg($),et=$.type,tt=$.pendingProps,rt=j!==null?j.memoizedProps:null,nt=tt.children,Ef(et,tt)?nt=null:rt!==null&&Ef(et,rt)&&($.flags|=32),hj(j,$),Yi(j,$,nt,_e),$.child;case 6:return j===null&&Eg($),null;case 13:return pj(j,$,_e);case 4:return Ih($,$.stateNode.containerInfo),et=$.pendingProps,j===null?$.child=Bh($,null,et,_e):Yi(j,$,et,_e),$.child;case 11:return et=$.type,tt=$.pendingProps,tt=$.elementType===et?tt:Lg(et,tt),Zi(j,$,et,tt,_e);case 7:return Yi(j,$,$.pendingProps,_e),$.child;case 8:return Yi(j,$,$.pendingProps.children,_e),$.child;case 12:return Yi(j,$,$.pendingProps.children,_e),$.child;case 10:e:{if(et=$.type._context,tt=$.pendingProps,rt=$.memoizedProps,nt=tt.value,G$1(Mg,et._currentValue),et._currentValue=nt,rt!==null)if(He(rt.value,nt)){if(rt.children===tt.children&&!Wf.current){$=$i(j,$,_e);break e}}else for(rt=$.child,rt!==null&&(rt.return=$);rt!==null;){var it=rt.dependencies;if(it!==null){nt=rt.child;for(var ot=it.firstContext;ot!==null;){if(ot.context===et){if(rt.tag===1){ot=ch(-1,_e&-_e),ot.tag=2;var At=rt.updateQueue;if(At!==null){At=At.shared;var ut=At.pending;ut===null?ot.next=ot:(ot.next=ut.next,ut.next=ot),At.pending=ot}}rt.lanes|=_e,ot=rt.alternate,ot!==null&&(ot.lanes|=_e),Sg(rt.return,_e,$),it.lanes|=_e;break}ot=ot.next}}else if(rt.tag===10)nt=rt.type===$.type?null:rt.child;else if(rt.tag===18){if(nt=rt.return,nt===null)throw Error(p$2(341));nt.lanes|=_e,it=nt.alternate,it!==null&&(it.lanes|=_e),Sg(nt,_e,$),nt=rt.sibling}else nt=rt.child;if(nt!==null)nt.return=rt;else for(nt=rt;nt!==null;){if(nt===$){nt=null;break}if(rt=nt.sibling,rt!==null){rt.return=nt.return,nt=rt;break}nt=nt.return}rt=nt}Yi(j,$,tt.children,_e),$=$.child}return $;case 9:return tt=$.type,et=$.pendingProps.children,Tg($,_e),tt=Vg(tt),et=et(tt),$.flags|=1,Yi(j,$,et,_e),$.child;case 14:return et=$.type,tt=Lg(et,$.pendingProps),tt=Lg(et.type,tt),aj(j,$,et,tt,_e);case 15:return cj(j,$,$.type,$.pendingProps,_e);case 17:return et=$.type,tt=$.pendingProps,tt=$.elementType===et?tt:Lg(et,tt),jj(j,$),$.tag=1,Zf(et)?(j=!0,cg($)):j=!1,Tg($,_e),ph($,et,tt),rh($,et,tt,_e),kj(null,$,et,!0,j,_e);case 19:return yj(j,$,_e);case 22:return ej(j,$,_e)}throw Error(p$2(156,$.tag))};function Gk(j,$){return ac(j,$)}function al(j,$,_e,et){this.tag=j,this.key=_e,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=$,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=et,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(j,$,_e,et){return new al(j,$,_e,et)}function bj(j){return j=j.prototype,!(!j||!j.isReactComponent)}function $k(j){if(typeof j=="function")return bj(j)?1:0;if(j!=null){if(j=j.$$typeof,j===Da)return 11;if(j===Ga)return 14}return 2}function wh(j,$){var _e=j.alternate;return _e===null?(_e=Bg(j.tag,$,j.key,j.mode),_e.elementType=j.elementType,_e.type=j.type,_e.stateNode=j.stateNode,_e.alternate=j,j.alternate=_e):(_e.pendingProps=$,_e.type=j.type,_e.flags=0,_e.subtreeFlags=0,_e.deletions=null),_e.flags=j.flags&14680064,_e.childLanes=j.childLanes,_e.lanes=j.lanes,_e.child=j.child,_e.memoizedProps=j.memoizedProps,_e.memoizedState=j.memoizedState,_e.updateQueue=j.updateQueue,$=j.dependencies,_e.dependencies=$===null?null:{lanes:$.lanes,firstContext:$.firstContext},_e.sibling=j.sibling,_e.index=j.index,_e.ref=j.ref,_e}function yh(j,$,_e,et,tt,rt){var nt=2;if(et=j,typeof j=="function")bj(j)&&(nt=1);else if(typeof j=="string")nt=5;else e:switch(j){case ya:return Ah(_e.children,tt,rt,$);case za:nt=8,tt|=8;break;case Aa:return j=Bg(12,_e,$,tt|2),j.elementType=Aa,j.lanes=rt,j;case Ea:return j=Bg(13,_e,$,tt),j.elementType=Ea,j.lanes=rt,j;case Fa:return j=Bg(19,_e,$,tt),j.elementType=Fa,j.lanes=rt,j;case Ia:return qj(_e,tt,rt,$);default:if(typeof j=="object"&&j!==null)switch(j.$$typeof){case Ba:nt=10;break e;case Ca:nt=9;break e;case Da:nt=11;break e;case Ga:nt=14;break e;case Ha:nt=16,et=null;break e}throw Error(p$2(130,j==null?j:typeof j,""))}return $=Bg(nt,_e,$,tt),$.elementType=j,$.type=et,$.lanes=rt,$}function Ah(j,$,_e,et){return j=Bg(7,j,et,$),j.lanes=_e,j}function qj(j,$,_e,et){return j=Bg(22,j,et,$),j.elementType=Ia,j.lanes=_e,j.stateNode={isHidden:!1},j}function xh(j,$,_e){return j=Bg(6,j,null,$),j.lanes=_e,j}function zh(j,$,_e){return $=Bg(4,j.children!==null?j.children:[],j.key,$),$.lanes=_e,$.stateNode={containerInfo:j.containerInfo,pendingChildren:null,implementation:j.implementation},$}function bl(j,$,_e,et,tt){this.tag=$,this.containerInfo=j,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=et,this.onRecoverableError=tt,this.mutableSourceEagerHydrationData=null}function cl(j,$,_e,et,tt,rt,nt,it,ot){return j=new bl(j,$,_e,it,ot),$===1?($=1,rt===!0&&($|=8)):$=0,rt=Bg(3,null,null,$),j.current=rt,rt.stateNode=j,rt.memoizedState={element:et,isDehydrated:_e,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(rt),j}function dl(j,$,_e){var et=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(j){console.error(j)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const ReactDOM=getDefaultExportFromCjs$2(reactDomExports);var m$2=reactDomExports;client.createRoot=m$2.createRoot,client.hydrateRoot=m$2.hydrateRoot;const scriptRel="modulepreload",assetsURL=function(j){return"/cellpop/"+j},seen={},__vitePreload=function($,_e,et){let tt=Promise.resolve();if(_e&&_e.length>0){const rt=document.getElementsByTagName("link");tt=Promise.all(_e.map(nt=>{if(nt=assetsURL(nt),nt in seen)return;seen[nt]=!0;const it=nt.endsWith(".css"),ot=it?'[rel="stylesheet"]':"";if(!!et)for(let ft=rt.length-1;ft>=0;ft--){const dt=rt[ft];if(dt.href===nt&&(!it||dt.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${nt}"]${ot}`))return;const ut=document.createElement("link");if(ut.rel=it?"stylesheet":scriptRel,it||(ut.as="script",ut.crossOrigin=""),ut.href=nt,document.head.appendChild(ut),it)return new Promise((ft,dt)=>{ut.addEventListener("load",ft),ut.addEventListener("error",()=>dt(new Error(`Unable to preload CSS for ${nt}`)))})}))}return tt.then(()=>$()).catch(rt=>{const nt=new Event("vite:preloadError",{cancelable:!0});if(nt.payload=rt,window.dispatchEvent(nt),!nt.defaultPrevented)throw rt})};var define_process_env_default$1={},commonjsGlobal$1=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs$1(j){return j&&j.__esModule&&Object.prototype.hasOwnProperty.call(j,"default")?j.default:j}function getAugmentedNamespace$1(j){if(j.__esModule)return j;var $=j.default;if(typeof $=="function"){var _e=function et(){if(this instanceof et){var tt=[null];tt.push.apply(tt,arguments);var rt=Function.bind.apply($,tt);return new rt}return $.apply(this,arguments)};_e.prototype=$.prototype}else _e={};return Object.defineProperty(_e,"__esModule",{value:!0}),Object.keys(j).forEach(function(et){var tt=Object.getOwnPropertyDescriptor(j,et);Object.defineProperty(_e,et,tt.get?tt:{enumerable:!0,get:function(){return j[et]}})}),_e}var reactJsxRuntime_development={};/** + * @license React + * react-jsx-runtime.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){var j=React$6,$=Symbol.for("react.element"),_e=Symbol.for("react.portal"),et=Symbol.for("react.fragment"),tt=Symbol.for("react.strict_mode"),rt=Symbol.for("react.profiler"),nt=Symbol.for("react.provider"),it=Symbol.for("react.context"),ot=Symbol.for("react.forward_ref"),At=Symbol.for("react.suspense"),ut=Symbol.for("react.suspense_list"),ft=Symbol.for("react.memo"),dt=Symbol.for("react.lazy"),Et=Symbol.for("react.offscreen"),Bt=Symbol.iterator,St="@@iterator";function Dt(Sr){if(Sr===null||typeof Sr!="object")return null;var Ir=Bt&&Sr[Bt]||Sr[St];return typeof Ir=="function"?Ir:null}var $t=j.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function Rt(Sr){{for(var Ir=arguments.length,mt=new Array(Ir>1?Ir-1:0),gr=1;gr=1&&vn>=0&&cn[hn]!==En[vn];)vn--;for(;hn>=1&&vn>=0;hn--,vn--)if(cn[hn]!==En[vn]){if(hn!==1||vn!==1)do if(hn--,vn--,vn<0||cn[hn]!==En[vn]){var Qn=` +`+cn[hn].replace(" at new "," at ");return Sr.displayName&&Qn.includes("")&&(Qn=Qn.replace("",Sr.displayName)),typeof Sr=="function"&&xr.set(Sr,Qn),Qn}while(hn>=1&&vn>=0);break}}}finally{$r=!1,Er.current=Jr,_r(),Error.prepareStackTrace=Hr}var xn=Sr?Sr.displayName||Sr.name:"",mo=xn?Rr(xn):"";return typeof Sr=="function"&&xr.set(Sr,mo),mo}function Xt(Sr,Ir,mt){return Nr(Sr,!1)}function cr(Sr){var Ir=Sr.prototype;return!!(Ir&&Ir.isReactComponent)}function ir(Sr,Ir,mt){if(Sr==null)return"";if(typeof Sr=="function")return Nr(Sr,cr(Sr));if(typeof Sr=="string")return Rr(Sr);switch(Sr){case At:return Rr("Suspense");case ut:return Rr("SuspenseList")}if(typeof Sr=="object")switch(Sr.$$typeof){case ot:return Xt(Sr.render);case ft:return ir(Sr.type,Ir,mt);case dt:{var gr=Sr,Hr=gr._payload,Jr=gr._init;try{return ir(Jr(Hr),Ir,mt)}catch{}}}return""}var Qr=Object.prototype.hasOwnProperty,Or={},Yr=$t.ReactDebugCurrentFrame;function wr(Sr){if(Sr){var Ir=Sr._owner,mt=ir(Sr.type,Sr._source,Ir?Ir.type:null);Yr.setExtraStackFrame(mt)}else Yr.setExtraStackFrame(null)}function rr(Sr,Ir,mt,gr,Hr){{var Jr=Function.call.bind(Qr);for(var tn in Sr)if(Jr(Sr,tn)){var cn=void 0;try{if(typeof Sr[tn]!="function"){var En=Error((gr||"React class")+": "+mt+" type `"+tn+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Sr[tn]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw En.name="Invariant Violation",En}cn=Sr[tn](Ir,tn,gr,mt,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(hn){cn=hn}cn&&!(cn instanceof Error)&&(wr(Hr),Rt("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",gr||"React class",mt,tn,typeof cn),wr(null)),cn instanceof Error&&!(cn.message in Or)&&(Or[cn.message]=!0,wr(Hr),Rt("Failed %s type: %s",mt,cn.message),wr(null))}}}var er=Array.isArray;function lr(Sr){return er(Sr)}function fr(Sr){{var Ir=typeof Symbol=="function"&&Symbol.toStringTag,mt=Ir&&Sr[Symbol.toStringTag]||Sr.constructor.name||"Object";return mt}}function yr(Sr){try{return Ur(Sr),!1}catch{return!0}}function Ur(Sr){return""+Sr}function Wr(Sr){if(yr(Sr))return Rt("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",fr(Sr)),Ur(Sr)}var Pr=$t.ReactCurrentOwner,Zr={key:!0,ref:!0,__self:!0,__source:!0},rn,on,In;In={};function Sn(Sr){if(Qr.call(Sr,"ref")){var Ir=Object.getOwnPropertyDescriptor(Sr,"ref").get;if(Ir&&Ir.isReactWarning)return!1}return Sr.ref!==void 0}function un(Sr){if(Qr.call(Sr,"key")){var Ir=Object.getOwnPropertyDescriptor(Sr,"key").get;if(Ir&&Ir.isReactWarning)return!1}return Sr.key!==void 0}function dn(Sr,Ir){if(typeof Sr.ref=="string"&&Pr.current&&Ir&&Pr.current.stateNode!==Ir){var mt=Wt(Pr.current.type);In[mt]||(Rt('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',Wt(Pr.current.type),Sr.ref),In[mt]=!0)}}function wn(Sr,Ir){{var mt=function(){rn||(rn=!0,Rt("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Ir))};mt.isReactWarning=!0,Object.defineProperty(Sr,"key",{get:mt,configurable:!0})}}function Nn(Sr,Ir){{var mt=function(){on||(on=!0,Rt("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Ir))};mt.isReactWarning=!0,Object.defineProperty(Sr,"ref",{get:mt,configurable:!0})}}var Tn=function(Sr,Ir,mt,gr,Hr,Jr,tn){var cn={$$typeof:$,type:Sr,key:Ir,ref:mt,props:tn,_owner:Jr};return cn._store={},Object.defineProperty(cn._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(cn,"_self",{configurable:!1,enumerable:!1,writable:!1,value:gr}),Object.defineProperty(cn,"_source",{configurable:!1,enumerable:!1,writable:!1,value:Hr}),Object.freeze&&(Object.freeze(cn.props),Object.freeze(cn)),cn};function oo(Sr,Ir,mt,gr,Hr){{var Jr,tn={},cn=null,En=null;mt!==void 0&&(Wr(mt),cn=""+mt),un(Ir)&&(Wr(Ir.key),cn=""+Ir.key),Sn(Ir)&&(En=Ir.ref,dn(Ir,Hr));for(Jr in Ir)Qr.call(Ir,Jr)&&!Zr.hasOwnProperty(Jr)&&(tn[Jr]=Ir[Jr]);if(Sr&&Sr.defaultProps){var hn=Sr.defaultProps;for(Jr in hn)tn[Jr]===void 0&&(tn[Jr]=hn[Jr])}if(cn||En){var vn=typeof Sr=="function"?Sr.displayName||Sr.name||"Unknown":Sr;cn&&wn(tn,vn),En&&Nn(tn,vn)}return Tn(Sr,cn,En,Hr,gr,Pr.current,tn)}}var ao=$t.ReactCurrentOwner,qn=$t.ReactDebugCurrentFrame;function Ao(Sr){if(Sr){var Ir=Sr._owner,mt=ir(Sr.type,Sr._source,Ir?Ir.type:null);qn.setExtraStackFrame(mt)}else qn.setExtraStackFrame(null)}var go;go=!1;function Xr(Sr){return typeof Sr=="object"&&Sr!==null&&Sr.$$typeof===$}function Co(){{if(ao.current){var Sr=Wt(ao.current.type);if(Sr)return` + +Check the render method of \``+Sr+"`."}return""}}function Lo(Sr){{if(Sr!==void 0){var Ir=Sr.fileName.replace(/^.*[\\\/]/,""),mt=Sr.lineNumber;return` + +Check your code at `+Ir+":"+mt+"."}return""}}var Ln={};function rs(Sr){{var Ir=Co();if(!Ir){var mt=typeof Sr=="string"?Sr:Sr.displayName||Sr.name;mt&&(Ir=` + +Check the top-level render call using <`+mt+">.")}return Ir}}function Jo(Sr,Ir){{if(!Sr._store||Sr._store.validated||Sr.key!=null)return;Sr._store.validated=!0;var mt=rs(Ir);if(Ln[mt])return;Ln[mt]=!0;var gr="";Sr&&Sr._owner&&Sr._owner!==ao.current&&(gr=" It was passed a child from "+Wt(Sr._owner.type)+"."),Ao(Sr),Rt('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',mt,gr),Ao(null)}}function zo(Sr,Ir){{if(typeof Sr!="object")return;if(lr(Sr))for(var mt=0;mt",cn=" Did you accidentally export a JSX literal instead of a component?"):hn=typeof Sr,Rt("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",hn,cn)}var vn=oo(Sr,Ir,mt,Hr,Jr);if(vn==null)return vn;if(tn){var Qn=Ir.children;if(Qn!==void 0)if(gr)if(lr(Qn)){for(var xn=0;xn2&&arguments[2]!==void 0?arguments[2]:{clone:!0},et=_e.clone?_extends$6({},j):j;return isPlainObject$2(j)&&isPlainObject$2($)&&Object.keys($).forEach(function(tt){tt!=="__proto__"&&(isPlainObject$2($[tt])&&tt in j?et[tt]=deepmerge$2(j[tt],$[tt],_e):et[tt]=$[tt])}),et}var propTypes$1={exports:{}},reactIs$2$1={exports:{}},reactIs_development$1={};/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){var j=typeof Symbol=="function"&&Symbol.for,$=j?Symbol.for("react.element"):60103,_e=j?Symbol.for("react.portal"):60106,et=j?Symbol.for("react.fragment"):60107,tt=j?Symbol.for("react.strict_mode"):60108,rt=j?Symbol.for("react.profiler"):60114,nt=j?Symbol.for("react.provider"):60109,it=j?Symbol.for("react.context"):60110,ot=j?Symbol.for("react.async_mode"):60111,At=j?Symbol.for("react.concurrent_mode"):60111,ut=j?Symbol.for("react.forward_ref"):60112,ft=j?Symbol.for("react.suspense"):60113,dt=j?Symbol.for("react.suspense_list"):60120,Et=j?Symbol.for("react.memo"):60115,Bt=j?Symbol.for("react.lazy"):60116,St=j?Symbol.for("react.block"):60121,Dt=j?Symbol.for("react.fundamental"):60117,$t=j?Symbol.for("react.responder"):60118,Rt=j?Symbol.for("react.scope"):60119;function wt(Nr){return typeof Nr=="string"||typeof Nr=="function"||Nr===et||Nr===At||Nr===rt||Nr===tt||Nr===ft||Nr===dt||typeof Nr=="object"&&Nr!==null&&(Nr.$$typeof===Bt||Nr.$$typeof===Et||Nr.$$typeof===nt||Nr.$$typeof===it||Nr.$$typeof===ut||Nr.$$typeof===Dt||Nr.$$typeof===$t||Nr.$$typeof===Rt||Nr.$$typeof===St)}function xt(Nr){if(typeof Nr=="object"&&Nr!==null){var Xt=Nr.$$typeof;switch(Xt){case $:var cr=Nr.type;switch(cr){case ot:case At:case et:case rt:case tt:case ft:return cr;default:var ir=cr&&cr.$$typeof;switch(ir){case it:case ut:case Bt:case Et:case nt:return ir;default:return Xt}}case _e:return Xt}}}var Nt=ot,Ot=At,kt=it,Jt=nt,jt=$,Ht=ut,Gt=et,Kt=Bt,Wt=Et,Vt=_e,ur=rt,Ar=tt,hr=ft,sr=!1;function ar(Nr){return sr||(sr=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),Yt(Nr)||xt(Nr)===ot}function Yt(Nr){return xt(Nr)===At}function pr(Nr){return xt(Nr)===it}function Zt(Nr){return xt(Nr)===nt}function mr(Nr){return typeof Nr=="object"&&Nr!==null&&Nr.$$typeof===$}function vr(Nr){return xt(Nr)===ut}function _r(Nr){return xt(Nr)===et}function Er(Nr){return xt(Nr)===Bt}function Lr(Nr){return xt(Nr)===Et}function Rr(Nr){return xt(Nr)===_e}function $r(Nr){return xt(Nr)===rt}function xr(Nr){return xt(Nr)===tt}function Fr(Nr){return xt(Nr)===ft}reactIs_development$1.AsyncMode=Nt,reactIs_development$1.ConcurrentMode=Ot,reactIs_development$1.ContextConsumer=kt,reactIs_development$1.ContextProvider=Jt,reactIs_development$1.Element=jt,reactIs_development$1.ForwardRef=Ht,reactIs_development$1.Fragment=Gt,reactIs_development$1.Lazy=Kt,reactIs_development$1.Memo=Wt,reactIs_development$1.Portal=Vt,reactIs_development$1.Profiler=ur,reactIs_development$1.StrictMode=Ar,reactIs_development$1.Suspense=hr,reactIs_development$1.isAsyncMode=ar,reactIs_development$1.isConcurrentMode=Yt,reactIs_development$1.isContextConsumer=pr,reactIs_development$1.isContextProvider=Zt,reactIs_development$1.isElement=mr,reactIs_development$1.isForwardRef=vr,reactIs_development$1.isFragment=_r,reactIs_development$1.isLazy=Er,reactIs_development$1.isMemo=Lr,reactIs_development$1.isPortal=Rr,reactIs_development$1.isProfiler=$r,reactIs_development$1.isStrictMode=xr,reactIs_development$1.isSuspense=Fr,reactIs_development$1.isValidElementType=wt,reactIs_development$1.typeOf=xt})();reactIs$2$1.exports=reactIs_development$1;var reactIsExports$1$1=reactIs$2$1.exports;/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var getOwnPropertySymbols$1=Object.getOwnPropertySymbols,hasOwnProperty$m=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(j){if(j==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(j)}function shouldUseNative(){try{if(!Object.assign)return!1;var j=new String("abc");if(j[5]="de",Object.getOwnPropertyNames(j)[0]==="5")return!1;for(var $={},_e=0;_e<10;_e++)$["_"+String.fromCharCode(_e)]=_e;var et=Object.getOwnPropertyNames($).map(function(rt){return $[rt]});if(et.join("")!=="0123456789")return!1;var tt={};return"abcdefghijklmnopqrst".split("").forEach(function(rt){tt[rt]=rt}),Object.keys(Object.assign({},tt)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var objectAssign=shouldUseNative()?Object.assign:function(j,$){for(var _e,et=toObject(j),tt,rt=1;rt1?printWarning("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):printWarning("Invalid argument supplied to oneOf, expected an array."),emptyFunctionThatReturnsNull;function Vt(ur,Ar,hr,sr,ar){for(var Yt=ur[Ar],pr=0;pr0?", expected one of type ["+Zt.join(", ")+"]":"";return new ot("Invalid "+Yt+" `"+pr+"` supplied to "+("`"+ar+"`"+Er+"."))}return At(Ar)}function wt(){function Wt(Vt,ur,Ar,hr,sr){return kt(Vt[ur])?null:new ot("Invalid "+hr+" `"+sr+"` supplied to "+("`"+Ar+"`, expected a ReactNode."))}return At(Wt)}function xt(Wt,Vt,ur,Ar,hr){return new ot((Wt||"React class")+": "+Vt+" type `"+ur+"."+Ar+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+hr+"`.")}function Nt(Wt){function Vt(ur,Ar,hr,sr,ar){var Yt=ur[Ar],pr=jt(Yt);if(pr!=="object")return new ot("Invalid "+sr+" `"+ar+"` of type `"+pr+"` "+("supplied to `"+hr+"`, expected `object`."));for(var Zt in Wt){var mr=Wt[Zt];if(typeof mr!="function")return xt(hr,sr,ar,Zt,Ht(mr));var vr=mr(Yt,Zt,hr,sr,ar+"."+Zt,ReactPropTypesSecret);if(vr)return vr}return null}return At(Vt)}function Ot(Wt){function Vt(ur,Ar,hr,sr,ar){var Yt=ur[Ar],pr=jt(Yt);if(pr!=="object")return new ot("Invalid "+sr+" `"+ar+"` of type `"+pr+"` "+("supplied to `"+hr+"`, expected `object`."));var Zt=assign$2({},ur[Ar],Wt);for(var mr in Zt){var vr=Wt[mr];if(has$3(Wt,mr)&&typeof vr!="function")return xt(hr,sr,ar,mr,Ht(vr));if(!vr)return new ot("Invalid "+sr+" `"+ar+"` key `"+mr+"` supplied to `"+hr+"`.\nBad object: "+JSON.stringify(ur[Ar],null," ")+` +Valid keys: `+JSON.stringify(Object.keys(Wt),null," "));var _r=vr(Yt,mr,hr,sr,ar+"."+mr,ReactPropTypesSecret);if(_r)return _r}return null}return At(Vt)}function kt(Wt){switch(typeof Wt){case"number":case"string":case"undefined":return!0;case"boolean":return!Wt;case"object":if(Array.isArray(Wt))return Wt.every(kt);if(Wt===null||j(Wt))return!0;var Vt=tt(Wt);if(Vt){var ur=Vt.call(Wt),Ar;if(Vt!==Wt.entries){for(;!(Ar=ur.next()).done;)if(!kt(Ar.value))return!1}else for(;!(Ar=ur.next()).done;){var hr=Ar.value;if(hr&&!kt(hr[1]))return!1}}else return!1;return!0;default:return!1}}function Jt(Wt,Vt){return Wt==="symbol"?!0:Vt?Vt["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&Vt instanceof Symbol:!1}function jt(Wt){var Vt=typeof Wt;return Array.isArray(Wt)?"array":Wt instanceof RegExp?"object":Jt(Vt,Wt)?"symbol":Vt}function Ht(Wt){if(typeof Wt>"u"||Wt===null)return""+Wt;var Vt=jt(Wt);if(Vt==="object"){if(Wt instanceof Date)return"date";if(Wt instanceof RegExp)return"regexp"}return Vt}function Gt(Wt){var Vt=Ht(Wt);switch(Vt){case"array":case"object":return"an "+Vt;case"boolean":case"date":case"regexp":return"a "+Vt;default:return Vt}}function Kt(Wt){return!Wt.constructor||!Wt.constructor.name?rt:Wt.constructor.name}return nt.checkPropTypes=checkPropTypes,nt.resetWarningCache=checkPropTypes.resetWarningCache,nt.PropTypes=nt,nt};{var ReactIs=reactIsExports$1$1,throwOnDirectAccess=!0;propTypes$1.exports=factoryWithTypeCheckers(ReactIs.isElement,throwOnDirectAccess)}var propTypesExports=propTypes$1.exports;const PropTypes=getDefaultExportFromCjs$1(propTypesExports);function isClassComponent$1(j){var $=j.prototype,_e=$===void 0?{}:$;return!!_e.isReactComponent}function acceptingRef(j,$,_e,et,tt){var rt=j[$],nt=tt||$;if(rt==null)return null;var it,ot=rt.type;return typeof ot=="function"&&!isClassComponent$1(ot)&&(it="Did you accidentally use a plain function component for an element instead?"),it!==void 0?new Error("Invalid ".concat(et," `").concat(nt,"` supplied to `").concat(_e,"`. ")+"Expected an element that can hold a ref. ".concat(it," ")+"For more information see https://mui.com/r/caveat-with-refs-guide"):null}var elementAcceptingRef=chainPropTypes(PropTypes.element,acceptingRef);elementAcceptingRef.isRequired=chainPropTypes(PropTypes.element.isRequired,acceptingRef);const elementAcceptingRef$1=elementAcceptingRef;function isClassComponent(j){var $=j.prototype,_e=$===void 0?{}:$;return!!_e.isReactComponent}function elementTypeAcceptingRef(j,$,_e,et,tt){var rt=j[$],nt=tt||$;if(rt==null)return null;var it;return typeof rt=="function"&&!isClassComponent(rt)&&(it="Did you accidentally provide a plain function component instead?"),it!==void 0?new Error("Invalid ".concat(et," `").concat(nt,"` supplied to `").concat(_e,"`. ")+"Expected an element type that can hold a ref. ".concat(it," ")+"For more information see https://mui.com/r/caveat-with-refs-guide"):null}const elementTypeAcceptingRef$1=chainPropTypes(propTypesExports.elementType,elementTypeAcceptingRef);function _toPrimitive$1(j,$){if(_typeof$8$1(j)!=="object"||j===null)return j;var _e=j[Symbol.toPrimitive];if(_e!==void 0){var et=_e.call(j,$||"default");if(_typeof$8$1(et)!=="object")return et;throw new TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(j)}function _toPropertyKey$1(j){var $=_toPrimitive$1(j,"string");return _typeof$8$1($)==="symbol"?$:String($)}function _defineProperty$b$1(j,$,_e){return $=_toPropertyKey$1($),$ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var specialProperty="exact-prop: ​";function exactProp(j){return _extends$6({},j,_defineProperty$b$1({},specialProperty,function($){var _e=Object.keys($).filter(function(et){return!j.hasOwnProperty(et)});return _e.length>0?new Error("The following props are not supported: ".concat(_e.map(function(et){return"`".concat(et,"`")}).join(", "),". Please remove them.")):null}))}var reactIs$1$1={exports:{}},reactIs_development={};/** @license React v17.0.2 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){var j=60103,$=60106,_e=60107,et=60108,tt=60114,rt=60109,nt=60110,it=60112,ot=60113,At=60120,ut=60115,ft=60116,dt=60121,Et=60122,Bt=60117,St=60129,Dt=60131;if(typeof Symbol=="function"&&Symbol.for){var $t=Symbol.for;j=$t("react.element"),$=$t("react.portal"),_e=$t("react.fragment"),et=$t("react.strict_mode"),tt=$t("react.profiler"),rt=$t("react.provider"),nt=$t("react.context"),it=$t("react.forward_ref"),ot=$t("react.suspense"),At=$t("react.suspense_list"),ut=$t("react.memo"),ft=$t("react.lazy"),dt=$t("react.block"),Et=$t("react.server.block"),Bt=$t("react.fundamental"),$t("react.scope"),$t("react.opaque.id"),St=$t("react.debug_trace_mode"),$t("react.offscreen"),Dt=$t("react.legacy_hidden")}var Rt=!1;function wt(Fr){return!!(typeof Fr=="string"||typeof Fr=="function"||Fr===_e||Fr===tt||Fr===St||Fr===et||Fr===ot||Fr===At||Fr===Dt||Rt||typeof Fr=="object"&&Fr!==null&&(Fr.$$typeof===ft||Fr.$$typeof===ut||Fr.$$typeof===rt||Fr.$$typeof===nt||Fr.$$typeof===it||Fr.$$typeof===Bt||Fr.$$typeof===dt||Fr[0]===Et))}function xt(Fr){if(typeof Fr=="object"&&Fr!==null){var Nr=Fr.$$typeof;switch(Nr){case j:var Xt=Fr.type;switch(Xt){case _e:case tt:case et:case ot:case At:return Xt;default:var cr=Xt&&Xt.$$typeof;switch(cr){case nt:case it:case ft:case ut:case rt:return cr;default:return Nr}}case $:return Nr}}}var Nt=nt,Ot=rt,kt=j,Jt=it,jt=_e,Ht=ft,Gt=ut,Kt=$,Wt=tt,Vt=et,ur=ot,Ar=!1,hr=!1;function sr(Fr){return Ar||(Ar=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 18+.")),!1}function ar(Fr){return hr||(hr=!0,console.warn("The ReactIs.isConcurrentMode() alias has been deprecated, and will be removed in React 18+.")),!1}function Yt(Fr){return xt(Fr)===nt}function pr(Fr){return xt(Fr)===rt}function Zt(Fr){return typeof Fr=="object"&&Fr!==null&&Fr.$$typeof===j}function mr(Fr){return xt(Fr)===it}function vr(Fr){return xt(Fr)===_e}function _r(Fr){return xt(Fr)===ft}function Er(Fr){return xt(Fr)===ut}function Lr(Fr){return xt(Fr)===$}function Rr(Fr){return xt(Fr)===tt}function $r(Fr){return xt(Fr)===et}function xr(Fr){return xt(Fr)===ot}reactIs_development.ContextConsumer=Nt,reactIs_development.ContextProvider=Ot,reactIs_development.Element=kt,reactIs_development.ForwardRef=Jt,reactIs_development.Fragment=jt,reactIs_development.Lazy=Ht,reactIs_development.Memo=Gt,reactIs_development.Portal=Kt,reactIs_development.Profiler=Wt,reactIs_development.StrictMode=Vt,reactIs_development.Suspense=ur,reactIs_development.isAsyncMode=sr,reactIs_development.isConcurrentMode=ar,reactIs_development.isContextConsumer=Yt,reactIs_development.isContextProvider=pr,reactIs_development.isElement=Zt,reactIs_development.isForwardRef=mr,reactIs_development.isFragment=vr,reactIs_development.isLazy=_r,reactIs_development.isMemo=Er,reactIs_development.isPortal=Lr,reactIs_development.isProfiler=Rr,reactIs_development.isStrictMode=$r,reactIs_development.isSuspense=xr,reactIs_development.isValidElementType=wt,reactIs_development.typeOf=xt})();reactIs$1$1.exports=reactIs_development;var reactIsExports$2=reactIs$1$1.exports,fnNameMatchRegex$1=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function getFunctionName$1(j){var $="".concat(j).match(fnNameMatchRegex$1),_e=$&&$[1];return _e||""}function getFunctionComponentName$1(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return j.displayName||j.name||getFunctionName$1(j)||$}function getWrappedName$1(j,$,_e){var et=getFunctionComponentName$1($);return j.displayName||(et!==""?"".concat(_e,"(").concat(et,")"):_e)}function getDisplayName$2(j){if(j!=null){if(typeof j=="string")return j;if(typeof j=="function")return getFunctionComponentName$1(j,"Component");if(_typeof$8$1(j)==="object")switch(j.$$typeof){case reactIsExports$2.ForwardRef:return getWrappedName$1(j,j.render,"ForwardRef");case reactIsExports$2.Memo:return getWrappedName$1(j,j.type,"memo");default:return}}}function HTMLElementType(j,$,_e,et,tt){var rt=j[$],nt=tt||$;return rt==null?null:rt&&rt.nodeType!==1?new Error("Invalid ".concat(et," `").concat(nt,"` supplied to `").concat(_e,"`. ")+"Expected an HTMLElement."):null}var refType=PropTypes.oneOfType([PropTypes.func,PropTypes.object]);const refType$1=refType;function clamp$1$2(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,_e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return(j<$||j>_e)&&console.error("Material-UI: The value provided ".concat(j," is out of range [").concat($,", ").concat(_e,"].")),Math.min(Math.max($,j),_e)}function hexToRgb$2(j){j=j.substr(1);var $=new RegExp(".{1,".concat(j.length>=6?2:1,"}"),"g"),_e=j.match($);return _e&&_e[0].length===1&&(_e=_e.map(function(et){return et+et})),_e?"rgb".concat(_e.length===4?"a":"","(").concat(_e.map(function(et,tt){return tt<3?parseInt(et,16):Math.round(parseInt(et,16)/255*1e3)/1e3}).join(", "),")"):""}function hslToRgb$1(j){j=decomposeColor$2(j);var $=j,_e=$.values,et=_e[0],tt=_e[1]/100,rt=_e[2]/100,nt=tt*Math.min(rt,1-rt),it=function(ft){var dt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:(ft+et/30)%12;return rt-nt*Math.max(Math.min(dt-3,9-dt,1),-1)},ot="rgb",At=[Math.round(it(0)*255),Math.round(it(8)*255),Math.round(it(4)*255)];return j.type==="hsla"&&(ot+="a",At.push(_e[3])),recomposeColor$2({type:ot,values:At})}function decomposeColor$2(j){if(j.type)return j;if(j.charAt(0)==="#")return decomposeColor$2(hexToRgb$2(j));var $=j.indexOf("("),_e=j.substring(0,$);if(["rgb","rgba","hsl","hsla"].indexOf(_e)===-1)throw new Error("Material-UI: Unsupported `".concat(j,"` color.\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()."));var et=j.substring($+1,j.length-1).split(",");return et=et.map(function(tt){return parseFloat(tt)}),{type:_e,values:et}}function recomposeColor$2(j){var $=j.type,_e=j.values;return $.indexOf("rgb")!==-1?_e=_e.map(function(et,tt){return tt<3?parseInt(et,10):et}):$.indexOf("hsl")!==-1&&(_e[1]="".concat(_e[1],"%"),_e[2]="".concat(_e[2],"%")),"".concat($,"(").concat(_e.join(", "),")")}function getContrastRatio$1(j,$){var _e=getLuminance$1(j),et=getLuminance$1($);return(Math.max(_e,et)+.05)/(Math.min(_e,et)+.05)}function getLuminance$1(j){j=decomposeColor$2(j);var $=j.type==="hsl"?decomposeColor$2(hslToRgb$1(j)).values:j.values;return $=$.map(function(_e){return _e/=255,_e<=.03928?_e/12.92:Math.pow((_e+.055)/1.055,2.4)}),Number((.2126*$[0]+.7152*$[1]+.0722*$[2]).toFixed(3))}function alpha$3(j,$){return j=decomposeColor$2(j),$=clamp$1$2($),(j.type==="rgb"||j.type==="hsl")&&(j.type+="a"),j.values[3]=$,recomposeColor$2(j)}function darken$1(j,$){if(j=decomposeColor$2(j),$=clamp$1$2($),j.type.indexOf("hsl")!==-1)j.values[2]*=1-$;else if(j.type.indexOf("rgb")!==-1)for(var _e=0;_e<3;_e+=1)j.values[_e]*=1-$;return recomposeColor$2(j)}function lighten$1(j,$){if(j=decomposeColor$2(j),$=clamp$1$2($),j.type.indexOf("hsl")!==-1)j.values[2]+=(100-j.values[2])*$;else if(j.type.indexOf("rgb")!==-1)for(var _e=0;_e<3;_e+=1)j.values[_e]+=(255-j.values[_e])*$;return recomposeColor$2(j)}function _defineProperty$a$1(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}function _objectWithoutPropertiesLoose$5(j,$){if(j==null)return{};var _e={},et=Object.keys(j),tt,rt;for(rt=0;rt=0)&&(_e[tt]=j[tt]);return _e}function _objectWithoutProperties$2(j,$){if(j==null)return{};var _e=_objectWithoutPropertiesLoose$5(j,$),et,tt;if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(j);for(tt=0;tt=0)&&Object.prototype.propertyIsEnumerable.call(j,et)&&(_e[et]=j[et])}return _e}function _extends$5(){return _extends$5=Object.assign?Object.assign.bind():function(j){for(var $=1;$0?Dt:Bt;return"@media (max-width:".concat($t-nt/100).concat(tt,")")}function ut(Bt,St){var Dt=keys$3.indexOf(St);return Dt===keys$3.length-1?ot(Bt):"@media (min-width:".concat(typeof _e[Bt]=="number"?_e[Bt]:Bt).concat(tt,") and ")+"(max-width:".concat((Dt!==-1&&typeof _e[keys$3[Dt+1]]=="number"?_e[keys$3[Dt+1]]:St)-nt/100).concat(tt,")")}function ft(Bt){return ut(Bt,Bt)}var dt=!1;function Et(Bt){return dt||(dt=!0,console.warn(["Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.","Use the `theme.breakpoints.values` instead."].join(` +`))),_e[Bt]}return _extends$5({keys:keys$3,values:_e,up:ot,down:At,between:ut,only:ft,width:Et},it)}function createMixins$1(j,$,_e){var et;return _extends$5({gutters:function(){var rt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:",` + paddingLeft: theme.spacing(2), + paddingRight: theme.spacing(2), + [theme.breakpoints.up('sm')]: { + paddingLeft: theme.spacing(3), + paddingRight: theme.spacing(3), + }, + `].join(` +`)),_extends$5({paddingLeft:$(2),paddingRight:$(2)},rt,_defineProperty$a$1({},j.up("sm"),_extends$5({paddingLeft:$(3),paddingRight:$(3)},rt[j.up("sm")])))},toolbar:(et={minHeight:56},_defineProperty$a$1(et,"".concat(j.up("xs")," and (orientation: landscape)"),{minHeight:48}),_defineProperty$a$1(et,j.up("sm"),{minHeight:64}),et)},_e)}var light$1={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$1$2.white,default:grey$2[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark$1={text:{primary:common$1$2.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:grey$2[800],default:"#303030"},action:{active:common$1$2.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark$1(j,$,_e,et){var tt=et.light||et,rt=et.dark||et*1.5;j[$]||(j.hasOwnProperty(_e)?j[$]=j[_e]:$==="light"?j.light=lighten$1(j.main,tt):$==="dark"&&(j.dark=darken$1(j.main,rt)))}function createPalette$1(j){var $=j.primary,_e=$===void 0?{light:indigo$1[300],main:indigo$1[500],dark:indigo$1[700]}:$,et=j.secondary,tt=et===void 0?{light:pink$1.A200,main:pink$1.A400,dark:pink$1.A700}:et,rt=j.error,nt=rt===void 0?{light:red$1$1[300],main:red$1$1[500],dark:red$1$1[700]}:rt,it=j.warning,ot=it===void 0?{light:orange$1$1[300],main:orange$1$1[500],dark:orange$1$1[700]}:it,At=j.info,ut=At===void 0?{light:blue$1$1[300],main:blue$1$1[500],dark:blue$1$1[700]}:At,ft=j.success,dt=ft===void 0?{light:green$1$1[300],main:green$1$1[500],dark:green$1$1[700]}:ft,Et=j.type,Bt=Et===void 0?"light":Et,St=j.contrastThreshold,Dt=St===void 0?3:St,$t=j.tonalOffset,Rt=$t===void 0?.2:$t,wt=_objectWithoutProperties$2(j,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function xt(Jt){var jt=getContrastRatio$1(Jt,dark$1.text.primary)>=Dt?dark$1.text.primary:light$1.text.primary;{var Ht=getContrastRatio$1(Jt,jt);Ht<3&&console.error(["Material-UI: The contrast ratio of ".concat(Ht,":1 for ").concat(jt," on ").concat(Jt),"falls below the WCAG recommended absolute minimum contrast ratio of 3:1.","https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast"].join(` +`))}return jt}var Nt=function(jt){var Ht=arguments.length>1&&arguments[1]!==void 0?arguments[1]:500,Gt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:300,Kt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:700;if(jt=_extends$5({},jt),!jt.main&&jt[Ht]&&(jt.main=jt[Ht]),!jt.main)throw new Error("Material-UI: The color provided to augmentColor(color) is invalid.\nThe color object needs to have a `main` property or a `".concat(Ht,"` property."));if(typeof jt.main!="string")throw new Error("Material-UI: The color provided to augmentColor(color) is invalid.\n`color.main` should be a string, but `".concat(JSON.stringify(jt.main),`\` was provided instead. + +Did you intend to use one of the following approaches? + +import { green } from "@material-ui/core/colors"; + +const theme1 = createTheme({ palette: { + primary: green, +} }); + +const theme2 = createTheme({ palette: { + primary: { main: green[500] }, +} });`));return addLightOrDark$1(jt,"light",Gt,Rt),addLightOrDark$1(jt,"dark",Kt,Rt),jt.contrastText||(jt.contrastText=xt(jt.main)),jt},Ot={dark:dark$1,light:light$1};Ot[Bt]||console.error("Material-UI: The palette type `".concat(Bt,"` is not supported."));var kt=deepmerge$2(_extends$5({common:common$1$2,type:Bt,primary:Nt(_e),secondary:Nt(tt,"A400","A200","A700"),error:Nt(nt),warning:Nt(ot),info:Nt(ut),success:Nt(dt),grey:grey$2,contrastThreshold:Dt,getContrastText:xt,augmentColor:Nt,tonalOffset:Rt},Ot[Bt]),wt);return kt}function round$4(j){return Math.round(j*1e5)/1e5}var warnedOnce$1=!1;function roundWithDeprecationWarning(j){return warnedOnce$1||(console.warn(["Material-UI: The `theme.typography.round` helper is deprecated.","Head to https://mui.com/r/migration-v4/#theme for a migration path."].join(` +`)),warnedOnce$1=!0),round$4(j)}var caseAllCaps$1={textTransform:"uppercase"},defaultFontFamily$1='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography$1(j,$){var _e=typeof $=="function"?$(j):$,et=_e.fontFamily,tt=et===void 0?defaultFontFamily$1:et,rt=_e.fontSize,nt=rt===void 0?14:rt,it=_e.fontWeightLight,ot=it===void 0?300:it,At=_e.fontWeightRegular,ut=At===void 0?400:At,ft=_e.fontWeightMedium,dt=ft===void 0?500:ft,Et=_e.fontWeightBold,Bt=Et===void 0?700:Et,St=_e.htmlFontSize,Dt=St===void 0?16:St,$t=_e.allVariants,Rt=_e.pxToRem,wt=_objectWithoutProperties$2(_e,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]);typeof nt!="number"&&console.error("Material-UI: `fontSize` is required to be a number."),typeof Dt!="number"&&console.error("Material-UI: `htmlFontSize` is required to be a number.");var xt=nt/14,Nt=Rt||function(Jt){return"".concat(Jt/Dt*xt,"rem")},Ot=function(jt,Ht,Gt,Kt,Wt){return _extends$5({fontFamily:tt,fontWeight:jt,fontSize:Nt(Ht),lineHeight:Gt},tt===defaultFontFamily$1?{letterSpacing:"".concat(round$4(Kt/Ht),"em")}:{},Wt,$t)},kt={h1:Ot(ot,96,1.167,-1.5),h2:Ot(ot,60,1.2,-.5),h3:Ot(ut,48,1.167,0),h4:Ot(ut,34,1.235,.25),h5:Ot(ut,24,1.334,0),h6:Ot(dt,20,1.6,.15),subtitle1:Ot(ut,16,1.75,.15),subtitle2:Ot(dt,14,1.57,.1),body1:Ot(ut,16,1.5,.15),body2:Ot(ut,14,1.43,.15),button:Ot(dt,14,1.75,.4,caseAllCaps$1),caption:Ot(ut,12,1.66,.4),overline:Ot(ut,12,2.66,1,caseAllCaps$1)};return deepmerge$2(_extends$5({htmlFontSize:Dt,pxToRem:Nt,round:roundWithDeprecationWarning,fontFamily:tt,fontSize:nt,fontWeightLight:ot,fontWeightRegular:ut,fontWeightMedium:dt,fontWeightBold:Bt},kt),wt,{clone:!1})}var shadowKeyUmbraOpacity$1=.2,shadowKeyPenumbraOpacity$1=.14,shadowAmbientShadowOpacity$1=.12;function createShadow$1(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(shadowKeyUmbraOpacity$1,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(shadowKeyPenumbraOpacity$1,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(shadowAmbientShadowOpacity$1,")")].join(",")}var shadows$1=["none",createShadow$1(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow$1(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow$1(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow$1(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow$1(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow$1(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow$1(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow$1(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow$1(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow$1(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow$1(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow$1(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow$1(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow$1(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow$1(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow$1(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow$1(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow$1(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow$1(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow$1(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow$1(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow$1(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow$1(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow$1(0,11,15,-7,0,24,38,3,0,9,46,8)];const shadows$2=shadows$1;var shape$2={borderRadius:4};const shape$1$1=shape$2;var responsivePropType=PropTypes.oneOfType([PropTypes.number,PropTypes.string,PropTypes.object,PropTypes.array]);const responsivePropType$1=responsivePropType;function _arrayLikeToArray$3$1(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _arrayWithoutHoles$2$1(j){if(Array.isArray(j))return _arrayLikeToArray$3$1(j)}function _iterableToArray$2$1(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _unsupportedIterableToArray$3$1(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$3$1(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(j);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$3$1(j,$)}}function _nonIterableSpread$2$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$2$1(j){return _arrayWithoutHoles$2$1(j)||_iterableToArray$2$1(j)||_unsupportedIterableToArray$3$1(j)||_nonIterableSpread$2$1()}function _typeof$7$1(j){"@babel/helpers - typeof";return _typeof$7$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$7$1(j)}function merge$2(j,$){return $?deepmerge$2(j,$,{clone:!1}):j}var values$1$1={xs:0,sm:600,md:960,lg:1280,xl:1920},defaultBreakpoints$1={keys:["xs","sm","md","lg","xl"],up:function($){return"@media (min-width:".concat(values$1$1[$],"px)")}};function handleBreakpoints$1(j,$,_e){if(j.theme||console.error("Material-UI: You are calling a style function without a theme value."),Array.isArray($)){var et=j.theme.breakpoints||defaultBreakpoints$1;return $.reduce(function(nt,it,ot){return nt[et.up(et.keys[ot])]=_e($[ot]),nt},{})}if(_typeof$7$1($)==="object"){var tt=j.theme.breakpoints||defaultBreakpoints$1;return Object.keys($).reduce(function(nt,it){return nt[tt.up(it)]=_e($[it]),nt},{})}var rt=_e($);return rt}function getPath$1(j,$){return!$||typeof $!="string"?null:$.split(".").reduce(function(_e,et){return _e&&_e[et]?_e[et]:null},j)}function style$1$2(j){var $=j.prop,_e=j.cssProperty,et=_e===void 0?j.prop:_e,tt=j.themeKey,rt=j.transform,nt=function(ot){if(ot[$]==null)return null;var At=ot[$],ut=ot.theme,ft=getPath$1(ut,tt)||{},dt=function(Bt){var St;return typeof ft=="function"?St=ft(Bt):Array.isArray(ft)?St=ft[Bt]||Bt:(St=getPath$1(ft,Bt)||Bt,rt&&(St=rt(St))),et===!1?St:_defineProperty$a$1({},et,St)};return handleBreakpoints$1(ot,At,dt)};return nt.propTypes=_defineProperty$a$1({},$,responsivePropType$1),nt.filterProps=[$],nt}function compose$2(){for(var j=arguments.length,$=new Array(j),_e=0;_e2)if(aliases$1[j])j=aliases$1[j];else return[j];var $=j.split(""),_e=_slicedToArray$2$1($,2),et=_e[0],tt=_e[1],rt=properties$1[et],nt=directions$1[tt]||"";return Array.isArray(nt)?nt.map(function(it){return rt+it}):[rt+nt]}),spacingKeys=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function createUnarySpacing$1(j){var $=j.spacing||8;return typeof $=="number"?function(_e){return typeof _e!="number"&&console.error("Material-UI: Expected spacing argument to be a number, got ".concat(_e,".")),$*_e}:Array.isArray($)?function(_e){return _e>$.length-1&&console.error(["Material-UI: The value provided (".concat(_e,") overflows."),"The supported values are: ".concat(JSON.stringify($),"."),"".concat(_e," > ").concat($.length-1,", you need to add the missing values.")].join(` +`)),$[_e]}:typeof $=="function"?$:(console.error(["Material-UI: The `theme.spacing` value (".concat($,") is invalid."),"It should be a number, an array or a function."].join(` +`)),function(){})}function getValue$3(j,$){if(typeof $=="string"||$==null)return $;var _e=Math.abs($),et=j(_e);return $>=0?et:typeof et=="number"?-et:"-".concat(et)}function getStyleFromPropValue$1(j,$){return function(_e){return j.reduce(function(et,tt){return et[tt]=getValue$3($,_e),et},{})}}function spacing(j){var $=j.theme,_e=createUnarySpacing$1($);return Object.keys(j).map(function(et){if(spacingKeys.indexOf(et)===-1)return null;var tt=getCssProperties$1(et),rt=getStyleFromPropValue$1(tt,_e),nt=j[et];return handleBreakpoints$1(j,nt,rt)}).reduce(merge$2,{})}spacing.propTypes=spacingKeys.reduce(function(j,$){return j[$]=responsivePropType$1,j},{});spacing.filterProps=spacingKeys;var fontFamily=style$1$2({prop:"fontFamily",themeKey:"typography"}),fontSize=style$1$2({prop:"fontSize",themeKey:"typography"}),fontStyle=style$1$2({prop:"fontStyle",themeKey:"typography"}),fontWeight=style$1$2({prop:"fontWeight",themeKey:"typography"}),letterSpacing=style$1$2({prop:"letterSpacing"}),lineHeight=style$1$2({prop:"lineHeight"}),textAlign=style$1$2({prop:"textAlign"}),typography=compose$2(fontFamily,fontSize,fontStyle,fontWeight,letterSpacing,lineHeight,textAlign);const typography$1=typography;var warnOnce;function createSpacing$1(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:8;if(j.mui)return j;var $=createUnarySpacing$1({spacing:j}),_e=function(){for(var tt=arguments.length,rt=new Array(tt),nt=0;nt0&&arguments[0]!==void 0?arguments[0]:["all"],_e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=_e.duration,tt=et===void 0?duration$1.standard:et,rt=_e.easing,nt=rt===void 0?easing$1.easeInOut:rt,it=_e.delay,ot=it===void 0?0:it,At=_objectWithoutProperties$2(_e,["duration","easing","delay"]);{var ut=function(Et){return typeof Et=="string"},ft=function(Et){return!isNaN(parseFloat(Et))};!ut($)&&!Array.isArray($)&&console.error('Material-UI: Argument "props" must be a string or Array.'),!ft(tt)&&!ut(tt)&&console.error('Material-UI: Argument "duration" must be a number or a string but found '.concat(tt,".")),ut(nt)||console.error('Material-UI: Argument "easing" must be a string.'),!ft(ot)&&!ut(ot)&&console.error('Material-UI: Argument "delay" must be a number or a string.'),Object.keys(At).length!==0&&console.error("Material-UI: Unrecognized argument(s) [".concat(Object.keys(At).join(","),"]."))}return(Array.isArray($)?$:[$]).map(function(dt){return"".concat(dt," ").concat(typeof tt=="string"?tt:formatMs$1(tt)," ").concat(nt," ").concat(typeof ot=="string"?ot:formatMs$1(ot))}).join(",")},getAutoHeightDuration:function($){if(!$)return 0;var _e=$/36;return Math.round((4+15*Math.pow(_e,.25)+_e/5)*10)}};var zIndex$3={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};const zIndex$1$1=zIndex$3;function createTheme$3(){for(var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},$=j.breakpoints,_e=$===void 0?{}:$,et=j.mixins,tt=et===void 0?{}:et,rt=j.palette,nt=rt===void 0?{}:rt,it=j.spacing,ot=j.typography,At=ot===void 0?{}:ot,ut=_objectWithoutProperties$2(j,["breakpoints","mixins","palette","spacing","typography"]),ft=createPalette$1(nt),dt=createBreakpoints$1(_e),Et=createSpacing$1(it),Bt=deepmerge$2({breakpoints:dt,direction:"ltr",mixins:createMixins$1(dt,Et,tt),overrides:{},palette:ft,props:{},shadows:shadows$2,typography:createTypography$1(ft,At),spacing:Et,shape:shape$1$1,transitions,zIndex:zIndex$1$1},ut),St=arguments.length,Dt=new Array(St>1?St-1:0),$t=1;$t2&&arguments[2]!==void 0?arguments[2]:1,Jt;for(Jt in Nt){var jt=Nt[Jt];kt===1?Jt.indexOf("Mui")===0&&jt&&xt(jt,Jt,kt+1):Rt.indexOf(Jt)!==-1&&Object.keys(jt).length>0&&(console.error(["Material-UI: The `".concat(Ot,"` component increases ")+"the CSS specificity of the `".concat(Jt,"` internal state."),"You can not override it like this: ",JSON.stringify(Nt,null,2),"","Instead, you need to use the $ruleName syntax:",JSON.stringify({root:_defineProperty$a$1({},"&$".concat(Jt),jt)},null,2),"","https://mui.com/r/pseudo-classes-guide"].join(` +`)),Nt[Jt]={})}};wt(Bt.overrides)}return Bt}var hasSymbol=typeof Symbol=="function"&&Symbol.for;const nested$1=hasSymbol?Symbol.for("mui.nested"):"__THEME_NESTED__";var pseudoClasses=["checked","disabled","error","focused","focusVisible","required","expanded","selected"];function createGenerateClassName$1(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},$=j.disableGlobal,_e=$===void 0?!1:$;j.productionPrefix;var et=j.seed,tt=et===void 0?"":et,rt=tt===""?"":"".concat(tt,"-"),nt=0,it=function(){return nt+=1,nt>=1e10&&console.warn(["Material-UI: You might have a memory leak.","The ruleCounter is not supposed to grow that much."].join("")),nt};return function(ot,At){var ut=At.options.name;if(ut&&ut.indexOf("Mui")===0&&!At.options.link&&!_e){if(pseudoClasses.indexOf(ot.key)!==-1)return"Mui-".concat(ot.key);var ft="".concat(rt).concat(ut,"-").concat(ot.key);return!At.options.theme[nested$1]||tt!==""?ft:"".concat(ft,"-").concat(it())}var dt="".concat(ot.key,"-").concat(it());return At.options.classNamePrefix?"".concat(rt).concat(At.options.classNamePrefix,"-").concat(dt):"".concat(rt).concat(dt)}}function getThemeProps$1(j){var $=j.theme,_e=j.name,et=j.props;if(!$||!$.props||!$.props[_e])return et;var tt=$.props[_e],rt;for(rt in tt)et[rt]===void 0&&(et[rt]=tt[rt]);return et}function warning(j,$){{if(j)return;var _e="Warning: "+$;typeof console<"u"&&console.warn(_e);try{throw Error(_e)}catch{}}}var _typeof$6$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(j){return typeof j}:function(j){return j&&typeof Symbol=="function"&&j.constructor===Symbol&&j!==Symbol.prototype?"symbol":typeof j},isBrowser$1$1=(typeof window>"u"?"undefined":_typeof$6$1(window))==="object"&&(typeof document>"u"?"undefined":_typeof$6$1(document))==="object"&&document.nodeType===9;function _defineProperties$6$1(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,_toPropertyKey$1(et.key),et)}}function _createClass$6$1(j,$,_e){return $&&_defineProperties$6$1(j.prototype,$),_e&&_defineProperties$6$1(j,_e),Object.defineProperty(j,"prototype",{writable:!1}),j}function _setPrototypeOf$8$1(j,$){return _setPrototypeOf$8$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$8$1(j,$)}function _inheritsLoose$3(j,$){j.prototype=Object.create($.prototype),j.prototype.constructor=j,_setPrototypeOf$8$1(j,$)}function _assertThisInitialized$6$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _objectWithoutPropertiesLoose$4(j,$){if(j==null)return{};var _e={},et=Object.keys(j),tt,rt;for(rt=0;rt=0)&&(_e[tt]=j[tt]);return _e}var plainObjectConstrurctor={}.constructor;function cloneStyle(j){if(j==null||typeof j!="object")return j;if(Array.isArray(j))return j.map(cloneStyle);if(j.constructor!==plainObjectConstrurctor)return j;var $={};for(var _e in j)$[_e]=cloneStyle(j[_e]);return $}function createRule(j,$,_e){j===void 0&&(j="unnamed");var et=_e.jss,tt=cloneStyle($),rt=et.plugins.onCreateRule(j,tt,_e);return rt||(j[0]==="@"&&warning(!1,"[JSS] Unknown rule "+j),null)}var join=function($,_e){for(var et="",tt=0;tt<$.length&&$[tt]!=="!important";tt++)et&&(et+=_e),et+=$[tt];return et},toCssValue=function($){if(!Array.isArray($))return $;var _e="";if(Array.isArray($[0]))for(var et=0;et<$.length&&$[et]!=="!important";et++)_e&&(_e+=", "),_e+=join($[et]," ");else _e=join($,", ");return $[$.length-1]==="!important"&&(_e+=" !important"),_e};function getWhitespaceSymbols(j){return j&&j.format===!1?{linebreak:"",space:""}:{linebreak:` +`,space:" "}}function indentStr(j,$){for(var _e="",et=0;et<$;et++)_e+=" ";return _e+j}function toCss(j,$,_e){_e===void 0&&(_e={});var et="";if(!$)return et;var tt=_e,rt=tt.indent,nt=rt===void 0?0:rt,it=$.fallbacks;_e.format===!1&&(nt=-1/0);var ot=getWhitespaceSymbols(_e),At=ot.linebreak,ut=ot.space;if(j&&nt++,it)if(Array.isArray(it))for(var ft=0;ft<+~=|^:(),"'`\s])/g,nativeEscape=typeof CSS<"u"&&CSS.escape,escape=function(j){return nativeEscape?nativeEscape(j):j.replace(escapeRegex,"\\$1")},BaseStyleRule=function(){function j(_e,et,tt){this.type="style",this.isProcessed=!1;var rt=tt.sheet,nt=tt.Renderer;this.key=_e,this.options=tt,this.style=et,rt?this.renderer=rt.renderer:nt&&(this.renderer=new nt)}var $=j.prototype;return $.prop=function(et,tt,rt){if(tt===void 0)return this.style[et];var nt=rt?rt.force:!1;if(!nt&&this.style[et]===tt)return this;var it=tt;(!rt||rt.process!==!1)&&(it=this.options.jss.plugins.onChangeValue(tt,et,this));var ot=it==null||it===!1,At=et in this.style;if(ot&&!At&&!nt)return this;var ut=ot&&At;if(ut?delete this.style[et]:this.style[et]=it,this.renderable&&this.renderer)return ut?this.renderer.removeProperty(this.renderable,et):this.renderer.setProperty(this.renderable,et,it),this;var ft=this.options.sheet;return ft&&ft.attached&&warning(!1,'[JSS] Rule is not linked. Missing sheet option "link: true".'),this},j}(),StyleRule=function(j){_inheritsLoose$3($,j);function $(et,tt,rt){var nt;nt=j.call(this,et,tt,rt)||this;var it=rt.selector,ot=rt.scoped,At=rt.sheet,ut=rt.generateId;return it?nt.selectorText=it:ot!==!1&&(nt.id=ut(_assertThisInitialized$6$1(_assertThisInitialized$6$1(nt)),At),nt.selectorText="."+escape(nt.id)),nt}var _e=$.prototype;return _e.applyTo=function(tt){var rt=this.renderer;if(rt){var nt=this.toJSON();for(var it in nt)rt.setProperty(tt,it,nt[it])}return this},_e.toJSON=function(){var tt={};for(var rt in this.style){var nt=this.style[rt];typeof nt!="object"?tt[rt]=nt:Array.isArray(nt)&&(tt[rt]=toCssValue(nt))}return tt},_e.toString=function(tt){var rt=this.options.sheet,nt=rt?rt.options.link:!1,it=nt?_extends$6({},tt,{allowEmpty:!0}):tt;return toCss(this.selectorText,this.style,it)},_createClass$6$1($,[{key:"selector",set:function(tt){if(tt!==this.selectorText){this.selectorText=tt;var rt=this.renderer,nt=this.renderable;if(!(!nt||!rt)){var it=rt.setSelector(nt,tt);it||rt.replaceRule(nt,this)}}},get:function(){return this.selectorText}}]),$}(BaseStyleRule),pluginStyleRule={onCreateRule:function($,_e,et){return $[0]==="@"||et.parent&&et.parent.type==="keyframes"?null:new StyleRule($,_e,et)}},defaultToStringOptions={indent:1,children:!0},atRegExp=/@([\w-]+)/,ConditionalRule=function(){function j(_e,et,tt){this.type="conditional",this.isProcessed=!1,this.key=_e;var rt=_e.match(atRegExp);this.at=rt?rt[1]:"unknown",this.query=tt.name||"@"+this.at,this.options=tt,this.rules=new RuleList(_extends$6({},tt,{parent:this}));for(var nt in et)this.rules.add(nt,et[nt]);this.rules.process()}var $=j.prototype;return $.getRule=function(et){return this.rules.get(et)},$.indexOf=function(et){return this.rules.indexOf(et)},$.addRule=function(et,tt,rt){var nt=this.rules.add(et,tt,rt);return nt?(this.options.jss.plugins.onProcessRule(nt),nt):null},$.replaceRule=function(et,tt,rt){var nt=this.rules.replace(et,tt,rt);return nt&&this.options.jss.plugins.onProcessRule(nt),nt},$.toString=function(et){et===void 0&&(et=defaultToStringOptions);var tt=getWhitespaceSymbols(et),rt=tt.linebreak;if(et.indent==null&&(et.indent=defaultToStringOptions.indent),et.children==null&&(et.children=defaultToStringOptions.children),et.children===!1)return this.query+" {}";var nt=this.rules.toString(et);return nt?this.query+" {"+rt+nt+rt+"}":""},j}(),keyRegExp=/@media|@supports\s+/,pluginConditionalRule={onCreateRule:function($,_e,et){return keyRegExp.test($)?new ConditionalRule($,_e,et):null}},defaultToStringOptions$1={indent:1,children:!0},nameRegExp=/@keyframes\s+([\w-]+)/,KeyframesRule=function(){function j(_e,et,tt){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var rt=_e.match(nameRegExp);rt&&rt[1]?this.name=rt[1]:(this.name="noname",warning(!1,"[JSS] Bad keyframes name "+_e)),this.key=this.type+"-"+this.name,this.options=tt;var nt=tt.scoped,it=tt.sheet,ot=tt.generateId;this.id=nt===!1?this.name:escape(ot(this,it)),this.rules=new RuleList(_extends$6({},tt,{parent:this}));for(var At in et)this.rules.add(At,et[At],_extends$6({},tt,{parent:this}));this.rules.process()}var $=j.prototype;return $.toString=function(et){et===void 0&&(et=defaultToStringOptions$1);var tt=getWhitespaceSymbols(et),rt=tt.linebreak;if(et.indent==null&&(et.indent=defaultToStringOptions$1.indent),et.children==null&&(et.children=defaultToStringOptions$1.children),et.children===!1)return this.at+" "+this.id+" {}";var nt=this.rules.toString(et);return nt&&(nt=""+rt+nt+rt),this.at+" "+this.id+" {"+nt+"}"},j}(),keyRegExp$1=/@keyframes\s+/,refRegExp$1=/\$([\w-]+)/g,findReferencedKeyframe=function($,_e){return typeof $=="string"?$.replace(refRegExp$1,function(et,tt){return tt in _e?_e[tt]:(warning(!1,'[JSS] Referenced keyframes rule "'+tt+'" is not defined.'),et)}):$},replaceRef=function($,_e,et){var tt=$[_e],rt=findReferencedKeyframe(tt,et);rt!==tt&&($[_e]=rt)},pluginKeyframesRule={onCreateRule:function($,_e,et){return typeof $=="string"&&keyRegExp$1.test($)?new KeyframesRule($,_e,et):null},onProcessStyle:function($,_e,et){return _e.type!=="style"||!et||("animation-name"in $&&replaceRef($,"animation-name",et.keyframes),"animation"in $&&replaceRef($,"animation",et.keyframes)),$},onChangeValue:function($,_e,et){var tt=et.options.sheet;if(!tt)return $;switch(_e){case"animation":return findReferencedKeyframe($,tt.keyframes);case"animation-name":return findReferencedKeyframe($,tt.keyframes);default:return $}}},KeyframeRule=function(j){_inheritsLoose$3($,j);function $(){return j.apply(this,arguments)||this}var _e=$.prototype;return _e.toString=function(tt){var rt=this.options.sheet,nt=rt?rt.options.link:!1,it=nt?_extends$6({},tt,{allowEmpty:!0}):tt;return toCss(this.key,this.style,it)},$}(BaseStyleRule),pluginKeyframeRule={onCreateRule:function($,_e,et){return et.parent&&et.parent.type==="keyframes"?new KeyframeRule($,_e,et):null}},FontFaceRule=function(){function j(_e,et,tt){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=_e,this.style=et,this.options=tt}var $=j.prototype;return $.toString=function(et){var tt=getWhitespaceSymbols(et),rt=tt.linebreak;if(Array.isArray(this.style)){for(var nt="",it=0;it=this.index){tt.push(et);return}for(var nt=0;ntrt){tt.splice(nt,0,et);return}}},$.reset=function(){this.registry=[]},$.remove=function(et){var tt=this.registry.indexOf(et);this.registry.splice(tt,1)},$.toString=function(et){for(var tt=et===void 0?{}:et,rt=tt.attached,nt=_objectWithoutPropertiesLoose$4(tt,["attached"]),it=getWhitespaceSymbols(nt),ot=it.linebreak,At="",ut=0;utmaxRules&&warning(!1,"[JSS] You might have a memory leak. Rule counter is at "+_e+".");var it="",ot="";return nt&&(nt.options.classNamePrefix&&(ot=nt.options.classNamePrefix),nt.options.jss.id!=null&&(it=String(nt.options.jss.id))),$.minify?""+(ot||"c")+moduleId+it+_e:ot+rt.key+"-"+moduleId+(it?"-"+it:"")+"-"+_e};return et},memoize$1$2=function($){var _e;return function(){return _e||(_e=$()),_e}},getPropertyValue=function($,_e){try{return $.attributeStyleMap?$.attributeStyleMap.get(_e):$.style.getPropertyValue(_e)}catch{return""}},setProperty=function($,_e,et){try{var tt=et;if(Array.isArray(et)&&(tt=toCssValue(et)),$.attributeStyleMap)$.attributeStyleMap.set(_e,tt);else{var rt=tt?tt.indexOf("!important"):-1,nt=rt>-1?tt.substr(0,rt-1):tt;$.style.setProperty(_e,nt,rt>-1?"important":"")}}catch{return!1}return!0},removeProperty=function($,_e){try{$.attributeStyleMap?$.attributeStyleMap.delete(_e):$.style.removeProperty(_e)}catch(et){warning(!1,'[JSS] DOMException "'+et.message+'" was thrown. Tried to remove property "'+_e+'".')}},setSelector=function($,_e){return $.selectorText=_e,$.selectorText===_e},getHead=memoize$1$2(function(){return document.querySelector("head")});function findHigherSheet(j,$){for(var _e=0;_e$.index&&et.options.insertionPoint===$.insertionPoint)return et}return null}function findHighestSheet(j,$){for(var _e=j.length-1;_e>=0;_e--){var et=j[_e];if(et.attached&&et.options.insertionPoint===$.insertionPoint)return et}return null}function findCommentNode(j){for(var $=getHead(),_e=0;_e<$.childNodes.length;_e++){var et=$.childNodes[_e];if(et.nodeType===8&&et.nodeValue.trim()===j)return et}return null}function findPrevNode(j){var $=sheets.registry;if($.length>0){var _e=findHigherSheet($,j);if(_e&&_e.renderer)return{parent:_e.renderer.element.parentNode,node:_e.renderer.element};if(_e=findHighestSheet($,j),_e&&_e.renderer)return{parent:_e.renderer.element.parentNode,node:_e.renderer.element.nextSibling}}var et=j.insertionPoint;if(et&&typeof et=="string"){var tt=findCommentNode(et);if(tt)return{parent:tt.parentNode,node:tt.nextSibling};warning(!1,'[JSS] Insertion point "'+et+'" not found.')}return!1}function insertStyle(j,$){var _e=$.insertionPoint,et=findPrevNode($);if(et!==!1&&et.parent){et.parent.insertBefore(j,et.node);return}if(_e&&typeof _e.nodeType=="number"){var tt=_e,rt=tt.parentNode;rt?rt.insertBefore(j,tt.nextSibling):warning(!1,"[JSS] Insertion point is not in the DOM.");return}getHead().appendChild(j)}var getNonce=memoize$1$2(function(){var j=document.querySelector('meta[property="csp-nonce"]');return j?j.getAttribute("content"):null}),_insertRule=function($,_e,et){try{"insertRule"in $?$.insertRule(_e,et):"appendRule"in $&&$.appendRule(_e)}catch(tt){return warning(!1,"[JSS] "+tt.message),!1}return $.cssRules[et]},getValidRuleInsertionIndex=function($,_e){var et=$.cssRules.length;return _e===void 0||_e>et?et:_e},createStyle=function(){var $=document.createElement("style");return $.textContent=` +`,$},DomRenderer=function(){function j(_e){this.getPropertyValue=getPropertyValue,this.setProperty=setProperty,this.removeProperty=removeProperty,this.setSelector=setSelector,this.hasInsertedRules=!1,this.cssRules=[],_e&&sheets.add(_e),this.sheet=_e;var et=this.sheet?this.sheet.options:{},tt=et.media,rt=et.meta,nt=et.element;this.element=nt||createStyle(),this.element.setAttribute("data-jss",""),tt&&this.element.setAttribute("media",tt),rt&&this.element.setAttribute("data-meta",rt);var it=getNonce();it&&this.element.setAttribute("nonce",it)}var $=j.prototype;return $.attach=function(){if(!(this.element.parentNode||!this.sheet)){insertStyle(this.element,this.sheet.options);var et=!!(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&et&&(this.hasInsertedRules=!1,this.deploy())}},$.detach=function(){if(this.sheet){var et=this.element.parentNode;et&&et.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent=` +`)}},$.deploy=function(){var et=this.sheet;if(et){if(et.options.link){this.insertRules(et.rules);return}this.element.textContent=` +`+et.toString()+` +`}},$.insertRules=function(et,tt){for(var rt=0;rtj.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _arrayWithoutHoles$1$1(j){if(Array.isArray(j))return _arrayLikeToArray$2$1(j)}function _iterableToArray$1$1(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _unsupportedIterableToArray$2$1(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$2$1(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(j);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$2$1(j,$)}}function _nonIterableSpread$1$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$1$1(j){return _arrayWithoutHoles$1$1(j)||_iterableToArray$1$1(j)||_unsupportedIterableToArray$2$1(j)||_nonIterableSpread$1$1()}var js$w="",css$1="",vendor="",browser="",isTouch=isBrowser$1$1&&"ontouchstart"in document.documentElement;if(isBrowser$1$1){var jsCssMap={Moz:"-moz-",ms:"-ms-",O:"-o-",Webkit:"-webkit-"},_document$createEleme=document.createElement("p"),style$4=_document$createEleme.style,testProp="Transform";for(var key in jsCssMap)if(key+testProp in style$4){js$w=key,css$1=jsCssMap[key];break}js$w==="Webkit"&&"msHyphens"in style$4&&(js$w="ms",css$1=jsCssMap.ms,browser="edge"),js$w==="Webkit"&&"-apple-trailing-word"in style$4&&(vendor="apple")}var prefix$1={js:js$w,css:css$1,vendor,browser,isTouch};function supportedKeyframes(j){return j[1]==="-"||prefix$1.js==="ms"?j:"@"+prefix$1.css+"keyframes"+j.substr(10)}var appearence={noPrefill:["appearance"],supportedProperty:function($){return $!=="appearance"?!1:prefix$1.js==="ms"?"-webkit-"+$:prefix$1.css+$}},colorAdjust={noPrefill:["color-adjust"],supportedProperty:function($){return $!=="color-adjust"?!1:prefix$1.js==="Webkit"?prefix$1.css+"print-"+$:$}},regExp=/[-\s]+(.)?/g;function toUpper(j,$){return $?$.toUpperCase():""}function camelize(j){return j.replace(regExp,toUpper)}function pascalize(j){return camelize("-"+j)}var mask={noPrefill:["mask"],supportedProperty:function($,_e){if(!/^mask/.test($))return!1;if(prefix$1.js==="Webkit"){var et="mask-image";if(camelize(et)in _e)return $;if(prefix$1.js+pascalize(et)in _e)return prefix$1.css+$}return $}},textOrientation={noPrefill:["text-orientation"],supportedProperty:function($){return $!=="text-orientation"?!1:prefix$1.vendor==="apple"&&!prefix$1.isTouch?prefix$1.css+$:$}},transform2={noPrefill:["transform"],supportedProperty:function($,_e,et){return $!=="transform"?!1:et.transform?$:prefix$1.css+$}},transition={noPrefill:["transition"],supportedProperty:function($,_e,et){return $!=="transition"?!1:et.transition?$:prefix$1.css+$}},writingMode={noPrefill:["writing-mode"],supportedProperty:function($){return $!=="writing-mode"?!1:prefix$1.js==="Webkit"||prefix$1.js==="ms"&&prefix$1.browser!=="edge"?prefix$1.css+$:$}},userSelect={noPrefill:["user-select"],supportedProperty:function($){return $!=="user-select"?!1:prefix$1.js==="Moz"||prefix$1.js==="ms"||prefix$1.vendor==="apple"?prefix$1.css+$:$}},breakPropsOld={supportedProperty:function($,_e){if(!/^break-/.test($))return!1;if(prefix$1.js==="Webkit"){var et="WebkitColumn"+pascalize($);return et in _e?prefix$1.css+"column-"+$:!1}if(prefix$1.js==="Moz"){var tt="page"+pascalize($);return tt in _e?"page-"+$:!1}return!1}},inlineLogicalOld={supportedProperty:function($,_e){if(!/^(border|margin|padding)-inline/.test($))return!1;if(prefix$1.js==="Moz")return $;var et=$.replace("-inline","");return prefix$1.js+pascalize(et)in _e?prefix$1.css+et:!1}},unprefixed={supportedProperty:function($,_e){return camelize($)in _e?$:!1}},prefixed={supportedProperty:function($,_e){var et=pascalize($);return $[0]==="-"||$[0]==="-"&&$[1]==="-"?$:prefix$1.js+et in _e?prefix$1.css+$:prefix$1.js!=="Webkit"&&"Webkit"+et in _e?"-webkit-"+$:!1}},scrollSnap={supportedProperty:function($){return $.substring(0,11)!=="scroll-snap"?!1:prefix$1.js==="ms"?""+prefix$1.css+$:$}},overscrollBehavior={supportedProperty:function($){return $!=="overscroll-behavior"?!1:prefix$1.js==="ms"?prefix$1.css+"scroll-chaining":$}},propMap={"flex-grow":"flex-positive","flex-shrink":"flex-negative","flex-basis":"flex-preferred-size","justify-content":"flex-pack",order:"flex-order","align-items":"flex-align","align-content":"flex-line-pack"},flex2012={supportedProperty:function($,_e){var et=propMap[$];return et&&prefix$1.js+pascalize(et)in _e?prefix$1.css+et:!1}},propMap$1={flex:"box-flex","flex-grow":"box-flex","flex-direction":["box-orient","box-direction"],order:"box-ordinal-group","align-items":"box-align","flex-flow":["box-orient","box-direction"],"justify-content":"box-pack"},propKeys=Object.keys(propMap$1),prefixCss=function($){return prefix$1.css+$},flex2009={supportedProperty:function($,_e,et){var tt=et.multiple;if(propKeys.indexOf($)>-1){var rt=propMap$1[$];if(!Array.isArray(rt))return prefix$1.js+pascalize(rt)in _e?prefix$1.css+rt:!1;if(!tt)return!1;for(var nt=0;ntet?1:-1:_e.length-et.length};return{onProcessStyle:function(_e,et){if(et.type!=="style")return _e;for(var tt={},rt=Object.keys(_e).sort(j),nt=0;nt"u"?null:jssVendorPrefixer(),jssPropsSort()]}}function mergeClasses(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},$=j.baseClasses,_e=j.newClasses,et=j.Component;if(!_e)return $;var tt=_extends$5({},$);return typeof _e=="string"?(console.error(["Material-UI: The value `".concat(_e,"` ")+"provided to the classes prop of ".concat(getDisplayName$2(et)," is incorrect."),"You might want to use the className prop instead."].join(` +`)),$):(Object.keys(_e).forEach(function(rt){!$[rt]&&_e[rt]&&console.error(["Material-UI: The key `".concat(rt,"` ")+"provided to the classes prop is not implemented in ".concat(getDisplayName$2(et),"."),"You can only override one of the following: ".concat(Object.keys($).join(","),".")].join(` +`)),_e[rt]&&typeof _e[rt]!="string"&&console.error(["Material-UI: The key `".concat(rt,"` ")+"provided to the classes prop is not valid for ".concat(getDisplayName$2(et),"."),"You need to provide a non empty string instead of: ".concat(_e[rt],".")].join(` +`)),_e[rt]&&(tt[rt]="".concat($[rt]," ").concat(_e[rt]))}),tt)}var multiKeyStore={set:function($,_e,et,tt){var rt=$.get(_e);rt||(rt=new Map,$.set(_e,rt)),rt.set(et,tt)},get:function($,_e,et){var tt=$.get(_e);return tt?tt.get(et):void 0},delete:function($,_e,et){var tt=$.get(_e);tt.delete(et)}};const multiKeyStore$1=multiKeyStore;var ThemeContext$1=React$6.createContext(null);ThemeContext$1.displayName="ThemeContext";const ThemeContext$1$1=ThemeContext$1;function useTheme$1$1(){var j=React$6.useContext(ThemeContext$1$1);return React$6.useDebugValue(j),j}var jss=createJss(jssPreset()),generateClassName=createGenerateClassName$1(),sheetsManager=new Map,defaultOptions$2={disableGeneration:!1,generateClassName,jss,sheetsCache:null,sheetsManager,sheetsRegistry:null},StylesContext=React$6.createContext(defaultOptions$2);StylesContext.displayName="StylesContext";var injectFirstNode;function StylesProvider(j){var $=j.children,_e=j.injectFirst,et=_e===void 0?!1:_e,tt=j.disableGeneration,rt=tt===void 0?!1:tt,nt=_objectWithoutProperties$2(j,["children","injectFirst","disableGeneration"]),it=React$6.useContext(StylesContext),ot=_extends$5({},it,{disableGeneration:rt},nt);if(typeof window>"u"&&!ot.sheetsManager&&console.error("Material-UI: You need to use the ServerStyleSheets API when rendering on the server."),ot.jss.options.insertionPoint&&et&&console.error("Material-UI: You cannot use a custom insertionPoint and at the same time."),et&&nt.jss&&console.error("Material-UI: You cannot use the jss and injectFirst props at the same time."),!ot.jss.options.insertionPoint&&et&&typeof window<"u"){if(!injectFirstNode){var At=document.head;injectFirstNode=document.createComment("mui-inject-first"),At.insertBefore(injectFirstNode,At.firstChild)}ot.jss=createJss({plugins:jssPreset().plugins,insertionPoint:injectFirstNode})}return React$6.createElement(StylesContext.Provider,{value:ot},$)}StylesProvider.propTypes={children:PropTypes.node.isRequired,disableGeneration:PropTypes.bool,generateClassName:PropTypes.func,injectFirst:PropTypes.bool,jss:PropTypes.object,serverGenerateClassName:PropTypes.func,sheetsCache:PropTypes.object,sheetsManager:PropTypes.object,sheetsRegistry:PropTypes.object};StylesProvider.propTypes=exactProp(StylesProvider.propTypes);var indexCounter=-1e9;function increment(){return indexCounter+=1,indexCounter>=0&&console.warn(["Material-UI: You might have a memory leak.","The indexCounter is not supposed to grow that much."].join(` +`)),indexCounter}var noopTheme={};const noopTheme$1=noopTheme;function getStylesCreator(j){var $=typeof j=="function";return _typeof$7$1(j)!=="object"&&!$&&console.error(["Material-UI: The `styles` argument provided is invalid.","You need to provide a function generating the styles or a styles object."].join(` +`)),{create:function(et,tt){var rt;try{rt=$?j(et):j}catch(ot){throw $===!0&&et===noopTheme$1&&console.error(["Material-UI: The `styles` argument provided is invalid.","You are providing a function without a theme in the context.","One of the parent elements needs to use a ThemeProvider."].join(` +`)),ot}if(!tt||!et.overrides||!et.overrides[tt])return rt;var nt=et.overrides[tt],it=_extends$5({},rt);return Object.keys(nt).forEach(function(ot){it[ot]||console.warn(["Material-UI: You are trying to override a style that does not exist.","Fix the `".concat(ot,"` key of `theme.overrides.").concat(tt,"`.")].join(` +`)),it[ot]=deepmerge$2(it[ot],nt[ot])}),it},options:{}}}function getClasses(j,$,_e){var et=j.state,tt=j.stylesOptions;if(tt.disableGeneration)return $||{};et.cacheClasses||(et.cacheClasses={value:null,lastProp:null,lastJSS:{}});var rt=!1;return et.classes!==et.cacheClasses.lastJSS&&(et.cacheClasses.lastJSS=et.classes,rt=!0),$!==et.cacheClasses.lastProp&&(et.cacheClasses.lastProp=$,rt=!0),rt&&(et.cacheClasses.value=mergeClasses({baseClasses:et.cacheClasses.lastJSS,newClasses:$,Component:_e})),et.cacheClasses.value}function attach(j,$){var _e=j.state,et=j.theme,tt=j.stylesOptions,rt=j.stylesCreator,nt=j.name;if(!tt.disableGeneration){var it=multiKeyStore$1.get(tt.sheetsManager,rt,et);it||(it={refs:0,staticSheet:null,dynamicStyles:null},multiKeyStore$1.set(tt.sheetsManager,rt,et,it));var ot=_extends$5({},rt.options,tt,{theme:et,flip:typeof tt.flip=="boolean"?tt.flip:et.direction==="rtl"});ot.generateId=ot.serverGenerateClassName||ot.generateClassName;var At=tt.sheetsRegistry;if(it.refs===0){var ut;tt.sheetsCache&&(ut=multiKeyStore$1.get(tt.sheetsCache,rt,et));var ft=rt.create(et,nt);ut||(ut=tt.jss.createStyleSheet(ft,_extends$5({link:!1},ot)),ut.attach(),tt.sheetsCache&&multiKeyStore$1.set(tt.sheetsCache,rt,et,ut)),At&&At.add(ut),it.staticSheet=ut,it.dynamicStyles=getDynamicStyles(ft)}if(it.dynamicStyles){var dt=tt.jss.createStyleSheet(it.dynamicStyles,_extends$5({link:!0},ot));dt.update($),dt.attach(),_e.dynamicSheet=dt,_e.classes=mergeClasses({baseClasses:it.staticSheet.classes,newClasses:dt.classes}),At&&At.add(dt)}else _e.classes=it.staticSheet.classes;it.refs+=1}}function update$1(j,$){var _e=j.state;_e.dynamicSheet&&_e.dynamicSheet.update($)}function detach(j){var $=j.state,_e=j.theme,et=j.stylesOptions,tt=j.stylesCreator;if(!et.disableGeneration){var rt=multiKeyStore$1.get(et.sheetsManager,tt,_e);rt.refs-=1;var nt=et.sheetsRegistry;rt.refs===0&&(multiKeyStore$1.delete(et.sheetsManager,tt,_e),et.jss.removeStyleSheet(rt.staticSheet),nt&&nt.remove(rt.staticSheet)),$.dynamicSheet&&(et.jss.removeStyleSheet($.dynamicSheet),nt&&nt.remove($.dynamicSheet))}}function useSynchronousEffect(j,$){var _e=React$6.useRef([]),et,tt=React$6.useMemo(function(){return{}},$);_e.current!==tt&&(_e.current=tt,et=j()),React$6.useEffect(function(){return function(){et&&et()}},[tt])}function makeStyles$1(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_e=$.name,et=$.classNamePrefix,tt=$.Component,rt=$.defaultTheme,nt=rt===void 0?noopTheme$1:rt,it=_objectWithoutProperties$2($,["name","classNamePrefix","Component","defaultTheme"]),ot=getStylesCreator(j),At=_e||et||"makeStyles";ot.options={index:increment(),name:_e,meta:At,classNamePrefix:At};var ut=function(){var dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Et=useTheme$1$1()||nt,Bt=_extends$5({},React$6.useContext(StylesContext),it),St=React$6.useRef(),Dt=React$6.useRef();useSynchronousEffect(function(){var Rt={name:_e,state:{},stylesCreator:ot,stylesOptions:Bt,theme:Et};return attach(Rt,dt),Dt.current=!1,St.current=Rt,function(){detach(Rt)}},[Et,ot]),React$6.useEffect(function(){Dt.current&&update$1(St.current,dt),Dt.current=!0});var $t=getClasses(St.current,dt.classes,tt);return React$6.useDebugValue($t),$t};return ut}function _classCallCheck$5$1(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$5$1(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$5$1(j,$,_e){return $&&_defineProperties$5$1(j.prototype,$),_e&&_defineProperties$5$1(j,_e),Object.defineProperty(j,"prototype",{writable:!1}),j}function r$3(j){var $,_e,et="";if(typeof j=="string"||typeof j=="number")et+=j;else if(typeof j=="object")if(Array.isArray(j))for($=0;$1&&arguments[1]!==void 0?arguments[1]:{},rt=tt.name,nt=_objectWithoutProperties$2(tt,["name"]);if(j===void 0)throw new Error(["You are calling styled(Component)(style) with an undefined component.","You may have forgotten to import it."].join(` +`));var it=rt;if(!rt){var ot=getDisplayName$2(j);ot!==void 0&&(it=ot)}var At=typeof et=="function"?function(Bt){return{root:function(Dt){return et(_extends$5({theme:Bt},Dt))}}}:{root:et},ut=makeStyles$1(At,_extends$5({Component:j,name:rt||j.displayName,classNamePrefix:it},nt)),ft,dt={};et.filterProps&&(ft=et.filterProps,delete et.filterProps),et.propTypes&&(dt=et.propTypes,delete et.propTypes);var Et=React$6.forwardRef(function(St,Dt){var $t=St.children,Rt=St.className,wt=St.clone,xt=St.component,Nt=_objectWithoutProperties$2(St,["children","className","clone","component"]),Ot=ut(St),kt=clsx$1(Ot.root,Rt),Jt=Nt;if(ft&&(Jt=omit(Jt,ft)),wt)return React$6.cloneElement($t,_extends$5({className:clsx$1($t.props.className,kt)},Jt));if(typeof $t=="function")return $t(_extends$5({className:kt},Jt));var jt=xt||j;return React$6.createElement(jt,_extends$5({ref:Dt,className:kt},Jt),$t)});return Et.propTypes=_extends$5({children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]),className:PropTypes.string,clone:chainPropTypes(PropTypes.bool,function(Bt){return Bt.clone&&Bt.component?new Error("You can not use the clone and component prop at the same time."):null}),component:PropTypes.elementType},dt),Et.displayName="Styled(".concat(it,")"),hoistNonReactStatics$1(Et,j),Et};return $}function mergeOuterLocalTheme(j,$){if(typeof $=="function"){var _e=$(j);return _e||console.error(["Material-UI: You should return an object from your theme function, i.e."," ({})} />"].join(` +`)),_e}return _extends$5({},j,$)}function ThemeProvider(j){var $=j.children,_e=j.theme,et=useTheme$1$1();et===null&&typeof _e=="function"&&console.error(["Material-UI: You are providing a theme function prop to the ThemeProvider component:"," outerTheme} />","","However, no outer theme is present.","Make sure a theme is already injected higher in the React tree or provide a theme object."].join(` +`));var tt=React$6.useMemo(function(){var rt=et===null?_e:mergeOuterLocalTheme(et,_e);return rt!=null&&(rt[nested$1]=et!==null),rt},[_e,et]);return React$6.createElement(ThemeContext$1$1.Provider,{value:tt},$)}ThemeProvider.propTypes={children:PropTypes.node.isRequired,theme:PropTypes.oneOfType([PropTypes.object,PropTypes.func]).isRequired};ThemeProvider.propTypes=exactProp(ThemeProvider.propTypes);var withStyles$1=function($){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function(et){var tt=_e.defaultTheme,rt=_e.withTheme,nt=rt===void 0?!1:rt,it=_e.name,ot=_objectWithoutProperties$2(_e,["defaultTheme","withTheme","name"]);if(et===void 0)throw new Error(["You are calling withStyles(styles)(Component) with an undefined component.","You may have forgotten to import it."].join(` +`));var At=it;if(!it){var ut=getDisplayName$2(et);ut!==void 0&&(At=ut)}var ft=makeStyles$1($,_extends$5({defaultTheme:tt,Component:et,name:it||et.displayName,classNamePrefix:At},ot)),dt=React$6.forwardRef(function(Bt,St){Bt.classes;var Dt=Bt.innerRef,$t=_objectWithoutProperties$2(Bt,["classes","innerRef"]),Rt=ft(_extends$5({},et.defaultProps,Bt)),wt,xt=$t;return(typeof it=="string"||nt)&&(wt=useTheme$1$1()||tt,it&&(xt=getThemeProps$1({theme:wt,name:it,props:$t})),nt&&!xt.theme&&(xt.theme=wt)),React$6.createElement(et,_extends$5({ref:Dt||St,classes:Rt},xt))});return dt.propTypes={classes:PropTypes.object,innerRef:chainPropTypes(PropTypes.oneOfType([PropTypes.func,PropTypes.object]),function(Et){return Et.innerRef==null,null})},dt.displayName="WithStyles(".concat(getDisplayName$2(et),")"),hoistNonReactStatics$1(dt,et),dt.Naked=et,dt.options=_e,dt.useStyles=ft,dt}};const withStylesWithoutDefault=withStyles$1;var defaultTheme$3=createTheme$3();const defaultTheme$1$1=defaultTheme$3;function makeStyles(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return makeStyles$1(j,_extends$5({defaultTheme:defaultTheme$1$1},$))}var styled$3=function($){var _e=styled$2$1($);return function(et,tt){return _e(et,_extends$5({defaultTheme:defaultTheme$1$1},tt))}};const styled$1$1=styled$3;function useTheme$3(){var j=useTheme$1$1()||defaultTheme$1$1;return React$6.useDebugValue(j),j}function withStyles2(j,$){return withStylesWithoutDefault(j,_extends$5({defaultTheme:defaultTheme$1$1},$))}function capitalize$1$1(j){if(typeof j!="string")throw new Error("Material-UI: capitalize(string) expects a string argument.");return j.charAt(0).toUpperCase()+j.slice(1)}function createChainedFunction$1(){for(var j=arguments.length,$=new Array(j),_e=0;_e1&&arguments[1]!==void 0?arguments[1]:166,_e;function et(){for(var tt=arguments.length,rt=new Array(tt),nt=0;nt>",ot=nt||et;return typeof _e[et]<"u"?new Error("The ".concat(rt," `").concat(ot,"` of ")+"`".concat(it,"` is deprecated. ").concat($)):null}}function isMuiElement$1(j,$){return reactExports.isValidElement(j)&&$.indexOf(j.type.muiName)!==-1}function ownerDocument$1(j){return j&&j.ownerDocument||document}function ownerWindow$1(j){var $=ownerDocument$1(j);return $.defaultView||window}function setRef$1(j,$){typeof j=="function"?j($):j&&(j.current=$)}function useControlled$1(j){var $=j.controlled,_e=j.default,et=j.name,tt=j.state,rt=tt===void 0?"value":tt,nt=reactExports.useRef($!==void 0),it=nt.current,ot=reactExports.useState(_e),At=ot[0],ut=ot[1],ft=it?$:At;{reactExports.useEffect(function(){it!==($!==void 0)&&console.error(["Material-UI: A component is changing the ".concat(it?"":"un","controlled ").concat(rt," state of ").concat(et," to be ").concat(it?"un":"","controlled."),"Elements should not switch from uncontrolled to controlled (or vice versa).","Decide between using a controlled or uncontrolled ".concat(et," ")+"element for the lifetime of the component.","The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.","More info: https://fb.me/react-controlled-components"].join(` +`))},[$]);var dt=reactExports.useRef(_e),Et=dt.current;reactExports.useEffect(function(){!it&&Et!==_e&&console.error(["Material-UI: A component is changing the default ".concat(rt," state of an uncontrolled ").concat(et," after being initialized. ")+"To suppress this warning opt to use a controlled ".concat(et,".")].join(` +`))},[JSON.stringify(_e)])}var Bt=reactExports.useCallback(function(St){it||ut(St)},[]);return[ft,Bt]}var useEnhancedEffect$7=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function useEventCallback$1(j){var $=reactExports.useRef(j);return useEnhancedEffect$7(function(){$.current=j}),reactExports.useCallback(function(){return $.current.apply(void 0,arguments)},[])}function useForkRef$1(j,$){return reactExports.useMemo(function(){return j==null&&$==null?null:function(_e){setRef$1(j,_e),setRef$1($,_e)}},[j,$])}var hadKeyboardEvent$1=!0,hadFocusVisibleRecently$1=!1,hadFocusVisibleRecentlyTimeout$1=null,inputTypesWhitelist$1={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function focusTriggersKeyboardModality$1(j){var $=j.type,_e=j.tagName;return!!(_e==="INPUT"&&inputTypesWhitelist$1[$]&&!j.readOnly||_e==="TEXTAREA"&&!j.readOnly||j.isContentEditable)}function handleKeyDown$1(j){j.metaKey||j.altKey||j.ctrlKey||(hadKeyboardEvent$1=!0)}function handlePointerDown$1(){hadKeyboardEvent$1=!1}function handleVisibilityChange$1(){this.visibilityState==="hidden"&&hadFocusVisibleRecently$1&&(hadKeyboardEvent$1=!0)}function prepare$1(j){j.addEventListener("keydown",handleKeyDown$1,!0),j.addEventListener("mousedown",handlePointerDown$1,!0),j.addEventListener("pointerdown",handlePointerDown$1,!0),j.addEventListener("touchstart",handlePointerDown$1,!0),j.addEventListener("visibilitychange",handleVisibilityChange$1,!0)}function isFocusVisible$1(j){var $=j.target;try{return $.matches(":focus-visible")}catch{}return hadKeyboardEvent$1||focusTriggersKeyboardModality$1($)}function handleBlurVisible(){hadFocusVisibleRecently$1=!0,window.clearTimeout(hadFocusVisibleRecentlyTimeout$1),hadFocusVisibleRecentlyTimeout$1=window.setTimeout(function(){hadFocusVisibleRecently$1=!1},100)}function useIsFocusVisible$1(){var j=reactExports.useCallback(function($){var _e=reactDomExports.findDOMNode($);_e!=null&&prepare$1(_e.ownerDocument)},[]);return reactExports.useDebugValue(isFocusVisible$1),{isFocusVisible:isFocusVisible$1,onBlurVisible:handleBlurVisible,ref:j}}function _setPrototypeOf$7$1(j,$){return _setPrototypeOf$7$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$7$1(j,$)}function _inheritsLoose$2(j,$){j.prototype=Object.create($.prototype),j.prototype.constructor=j,_setPrototypeOf$7$1(j,$)}const config$3={disabled:!1};var timeoutsShape=PropTypes.oneOfType([PropTypes.number,PropTypes.shape({enter:PropTypes.number,exit:PropTypes.number,appear:PropTypes.number}).isRequired]);PropTypes.oneOfType([PropTypes.string,PropTypes.shape({enter:PropTypes.string,exit:PropTypes.string,active:PropTypes.string}),PropTypes.shape({enter:PropTypes.string,enterDone:PropTypes.string,enterActive:PropTypes.string,exit:PropTypes.string,exitDone:PropTypes.string,exitActive:PropTypes.string})]);const TransitionGroupContext$1=React$6.createContext(null);var forceReflow$1=function($){return $.scrollTop},UNMOUNTED$1="unmounted",EXITED$1="exited",ENTERING$1="entering",ENTERED$1="entered",EXITING$1="exiting",Transition$4=function(j){_inheritsLoose$2($,j);function $(et,tt){var rt;rt=j.call(this,et,tt)||this;var nt=tt,it=nt&&!nt.isMounting?et.enter:et.appear,ot;return rt.appearStatus=null,et.in?it?(ot=EXITED$1,rt.appearStatus=ENTERING$1):ot=ENTERED$1:et.unmountOnExit||et.mountOnEnter?ot=UNMOUNTED$1:ot=EXITED$1,rt.state={status:ot},rt.nextCallback=null,rt}$.getDerivedStateFromProps=function(tt,rt){var nt=tt.in;return nt&&rt.status===UNMOUNTED$1?{status:EXITED$1}:null};var _e=$.prototype;return _e.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},_e.componentDidUpdate=function(tt){var rt=null;if(tt!==this.props){var nt=this.state.status;this.props.in?nt!==ENTERING$1&&nt!==ENTERED$1&&(rt=ENTERING$1):(nt===ENTERING$1||nt===ENTERED$1)&&(rt=EXITING$1)}this.updateStatus(!1,rt)},_e.componentWillUnmount=function(){this.cancelNextCallback()},_e.getTimeouts=function(){var tt=this.props.timeout,rt,nt,it;return rt=nt=it=tt,tt!=null&&typeof tt!="number"&&(rt=tt.exit,nt=tt.enter,it=tt.appear!==void 0?tt.appear:nt),{exit:rt,enter:nt,appear:it}},_e.updateStatus=function(tt,rt){if(tt===void 0&&(tt=!1),rt!==null)if(this.cancelNextCallback(),rt===ENTERING$1){if(this.props.unmountOnExit||this.props.mountOnEnter){var nt=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);nt&&forceReflow$1(nt)}this.performEnter(tt)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED$1&&this.setState({status:UNMOUNTED$1})},_e.performEnter=function(tt){var rt=this,nt=this.props.enter,it=this.context?this.context.isMounting:tt,ot=this.props.nodeRef?[it]:[ReactDOM.findDOMNode(this),it],At=ot[0],ut=ot[1],ft=this.getTimeouts(),dt=it?ft.appear:ft.enter;if(!tt&&!nt||config$3.disabled){this.safeSetState({status:ENTERED$1},function(){rt.props.onEntered(At)});return}this.props.onEnter(At,ut),this.safeSetState({status:ENTERING$1},function(){rt.props.onEntering(At,ut),rt.onTransitionEnd(dt,function(){rt.safeSetState({status:ENTERED$1},function(){rt.props.onEntered(At,ut)})})})},_e.performExit=function(){var tt=this,rt=this.props.exit,nt=this.getTimeouts(),it=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!rt||config$3.disabled){this.safeSetState({status:EXITED$1},function(){tt.props.onExited(it)});return}this.props.onExit(it),this.safeSetState({status:EXITING$1},function(){tt.props.onExiting(it),tt.onTransitionEnd(nt.exit,function(){tt.safeSetState({status:EXITED$1},function(){tt.props.onExited(it)})})})},_e.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},_e.safeSetState=function(tt,rt){rt=this.setNextCallback(rt),this.setState(tt,rt)},_e.setNextCallback=function(tt){var rt=this,nt=!0;return this.nextCallback=function(it){nt&&(nt=!1,rt.nextCallback=null,tt(it))},this.nextCallback.cancel=function(){nt=!1},this.nextCallback},_e.onTransitionEnd=function(tt,rt){this.setNextCallback(rt);var nt=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),it=tt==null&&!this.props.addEndListener;if(!nt||it){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var ot=this.props.nodeRef?[this.nextCallback]:[nt,this.nextCallback],At=ot[0],ut=ot[1];this.props.addEndListener(At,ut)}tt!=null&&setTimeout(this.nextCallback,tt)},_e.render=function(){var tt=this.state.status;if(tt===UNMOUNTED$1)return null;var rt=this.props,nt=rt.children;rt.in,rt.mountOnEnter,rt.unmountOnExit,rt.appear,rt.enter,rt.exit,rt.timeout,rt.addEndListener,rt.onEnter,rt.onEntering,rt.onEntered,rt.onExit,rt.onExiting,rt.onExited,rt.nodeRef;var it=_objectWithoutPropertiesLoose$5(rt,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React$6.createElement(TransitionGroupContext$1.Provider,{value:null},typeof nt=="function"?nt(tt,it):React$6.cloneElement(React$6.Children.only(nt),it))},$}(React$6.Component);Transition$4.contextType=TransitionGroupContext$1;Transition$4.propTypes={nodeRef:PropTypes.shape({current:typeof Element>"u"?PropTypes.any:function(j,$,_e,et,tt,rt){var nt=j[$];return PropTypes.instanceOf(nt&&"ownerDocument"in nt?nt.ownerDocument.defaultView.Element:Element)(j,$,_e,et,tt,rt)}}),children:PropTypes.oneOfType([PropTypes.func.isRequired,PropTypes.element.isRequired]).isRequired,in:PropTypes.bool,mountOnEnter:PropTypes.bool,unmountOnExit:PropTypes.bool,appear:PropTypes.bool,enter:PropTypes.bool,exit:PropTypes.bool,timeout:function($){var _e=timeoutsShape;$.addEndListener||(_e=_e.isRequired);for(var et=arguments.length,tt=new Array(et>1?et-1:0),rt=1;rt"u"?reactExports.useEffect:reactExports.useLayoutEffect;function Ripple$1(j){var $=j.classes,_e=j.pulsate,et=_e===void 0?!1:_e,tt=j.rippleX,rt=j.rippleY,nt=j.rippleSize,it=j.in,ot=j.onExited,At=ot===void 0?function(){}:ot,ut=j.timeout,ft=reactExports.useState(!1),dt=ft[0],Et=ft[1],Bt=clsx$1($.ripple,$.rippleVisible,et&&$.ripplePulsate),St={width:nt,height:nt,top:-(nt/2)+rt,left:-(nt/2)+tt},Dt=clsx$1($.child,dt&&$.childLeaving,et&&$.childPulsate),$t=useEventCallback$1(At);return useEnhancedEffect$6(function(){if(!it){Et(!0);var Rt=setTimeout($t,ut);return function(){clearTimeout(Rt)}}},[$t,it,ut]),reactExports.createElement("span",{className:Bt,style:St},reactExports.createElement("span",{className:Dt}))}Ripple$1.propTypes={classes:PropTypes.object.isRequired,in:PropTypes.bool,onExited:PropTypes.func,pulsate:PropTypes.bool,rippleSize:PropTypes.number,rippleX:PropTypes.number,rippleY:PropTypes.number,timeout:PropTypes.number.isRequired};var DURATION$1=550,DELAY_RIPPLE$1=80,styles$r=function($){return{root:{overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"$enter ".concat(DURATION$1,"ms ").concat($.transitions.easing.easeInOut)},ripplePulsate:{animationDuration:"".concat($.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"$exit ".concat(DURATION$1,"ms ").concat($.transitions.easing.easeInOut)},childPulsate:{position:"absolute",left:0,top:0,animation:"$pulsate 2500ms ".concat($.transitions.easing.easeInOut," 200ms infinite")},"@keyframes enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}},TouchRipple$2=reactExports.forwardRef(function($,_e){var et=$.center,tt=et===void 0?!1:et,rt=$.classes,nt=$.className,it=_objectWithoutProperties$2($,["center","classes","className"]),ot=reactExports.useState([]),At=ot[0],ut=ot[1],ft=reactExports.useRef(0),dt=reactExports.useRef(null);reactExports.useEffect(function(){dt.current&&(dt.current(),dt.current=null)},[At]);var Et=reactExports.useRef(!1),Bt=reactExports.useRef(null),St=reactExports.useRef(null),Dt=reactExports.useRef(null);reactExports.useEffect(function(){return function(){clearTimeout(Bt.current)}},[]);var $t=reactExports.useCallback(function(Nt){var Ot=Nt.pulsate,kt=Nt.rippleX,Jt=Nt.rippleY,jt=Nt.rippleSize,Ht=Nt.cb;ut(function(Gt){return[].concat(_toConsumableArray$2$1(Gt),[reactExports.createElement(Ripple$1,{key:ft.current,classes:rt,timeout:DURATION$1,pulsate:Ot,rippleX:kt,rippleY:Jt,rippleSize:jt})])}),ft.current+=1,dt.current=Ht},[rt]),Rt=reactExports.useCallback(function(){var Nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},kt=arguments.length>2?arguments[2]:void 0,Jt=Ot.pulsate,jt=Jt===void 0?!1:Jt,Ht=Ot.center,Gt=Ht===void 0?tt||Ot.pulsate:Ht,Kt=Ot.fakeElement,Wt=Kt===void 0?!1:Kt;if(Nt.type==="mousedown"&&Et.current){Et.current=!1;return}Nt.type==="touchstart"&&(Et.current=!0);var Vt=Wt?null:Dt.current,ur=Vt?Vt.getBoundingClientRect():{width:0,height:0,left:0,top:0},Ar,hr,sr;if(Gt||Nt.clientX===0&&Nt.clientY===0||!Nt.clientX&&!Nt.touches)Ar=Math.round(ur.width/2),hr=Math.round(ur.height/2);else{var ar=Nt.touches?Nt.touches[0]:Nt,Yt=ar.clientX,pr=ar.clientY;Ar=Math.round(Yt-ur.left),hr=Math.round(pr-ur.top)}if(Gt)sr=Math.sqrt((2*Math.pow(ur.width,2)+Math.pow(ur.height,2))/3),sr%2===0&&(sr+=1);else{var Zt=Math.max(Math.abs((Vt?Vt.clientWidth:0)-Ar),Ar)*2+2,mr=Math.max(Math.abs((Vt?Vt.clientHeight:0)-hr),hr)*2+2;sr=Math.sqrt(Math.pow(Zt,2)+Math.pow(mr,2))}Nt.touches?St.current===null&&(St.current=function(){$t({pulsate:jt,rippleX:Ar,rippleY:hr,rippleSize:sr,cb:kt})},Bt.current=setTimeout(function(){St.current&&(St.current(),St.current=null)},DELAY_RIPPLE$1)):$t({pulsate:jt,rippleX:Ar,rippleY:hr,rippleSize:sr,cb:kt})},[tt,$t]),wt=reactExports.useCallback(function(){Rt({},{pulsate:!0})},[Rt]),xt=reactExports.useCallback(function(Nt,Ot){if(clearTimeout(Bt.current),Nt.type==="touchend"&&St.current){Nt.persist(),St.current(),St.current=null,Bt.current=setTimeout(function(){xt(Nt,Ot)});return}St.current=null,ut(function(kt){return kt.length>0?kt.slice(1):kt}),dt.current=Ot},[]);return reactExports.useImperativeHandle(_e,function(){return{pulsate:wt,start:Rt,stop:xt}},[wt,Rt,xt]),reactExports.createElement("span",_extends$5({className:clsx$1(rt.root,nt),ref:Dt},it),reactExports.createElement(TransitionGroup$1$1,{component:null,exit:!0},At))});TouchRipple$2.propTypes={center:PropTypes.bool,classes:PropTypes.object.isRequired,className:PropTypes.string};const TouchRipple$1$1=withStyles2(styles$r,{flip:!1,name:"MuiTouchRipple"})(reactExports.memo(TouchRipple$2));var styles$q={root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},ButtonBase$2=reactExports.forwardRef(function($,_e){var et=$.action,tt=$.buttonRef,rt=$.centerRipple,nt=rt===void 0?!1:rt,it=$.children,ot=$.classes,At=$.className,ut=$.component,ft=ut===void 0?"button":ut,dt=$.disabled,Et=dt===void 0?!1:dt,Bt=$.disableRipple,St=Bt===void 0?!1:Bt,Dt=$.disableTouchRipple,$t=Dt===void 0?!1:Dt,Rt=$.focusRipple,wt=Rt===void 0?!1:Rt,xt=$.focusVisibleClassName,Nt=$.onBlur,Ot=$.onClick,kt=$.onFocus,Jt=$.onFocusVisible,jt=$.onKeyDown,Ht=$.onKeyUp,Gt=$.onMouseDown,Kt=$.onMouseLeave,Wt=$.onMouseUp,Vt=$.onTouchEnd,ur=$.onTouchMove,Ar=$.onTouchStart,hr=$.onDragLeave,sr=$.tabIndex,ar=sr===void 0?0:sr,Yt=$.TouchRippleProps,pr=$.type,Zt=pr===void 0?"button":pr,mr=_objectWithoutProperties$2($,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),vr=reactExports.useRef(null);function _r(){return reactDomExports.findDOMNode(vr.current)}var Er=reactExports.useRef(null),Lr=reactExports.useState(!1),Rr=Lr[0],$r=Lr[1];Et&&Rr&&$r(!1);var xr=useIsFocusVisible$1(),Fr=xr.isFocusVisible,Nr=xr.onBlurVisible,Xt=xr.ref;reactExports.useImperativeHandle(et,function(){return{focusVisible:function(){$r(!0),vr.current.focus()}}},[]),reactExports.useEffect(function(){Rr&&wt&&!St&&Er.current.pulsate()},[St,wt,Rr]);function cr(Tn,oo){var ao=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$t;return useEventCallback$1(function(qn){oo&&oo(qn);var Ao=ao;return!Ao&&Er.current&&Er.current[Tn](qn),!0})}var ir=cr("start",Gt),Qr=cr("stop",hr),Or=cr("stop",Wt),Yr=cr("stop",function(Tn){Rr&&Tn.preventDefault(),Kt&&Kt(Tn)}),wr=cr("start",Ar),rr=cr("stop",Vt),er=cr("stop",ur),lr=cr("stop",function(Tn){Rr&&(Nr(Tn),$r(!1)),Nt&&Nt(Tn)},!1),fr=useEventCallback$1(function(Tn){vr.current||(vr.current=Tn.currentTarget),Fr(Tn)&&($r(!0),Jt&&Jt(Tn)),kt&&kt(Tn)}),yr=function(){var oo=_r();return ft&&ft!=="button"&&!(oo.tagName==="A"&&oo.href)},Ur=reactExports.useRef(!1),Wr=useEventCallback$1(function(Tn){wt&&!Ur.current&&Rr&&Er.current&&Tn.key===" "&&(Ur.current=!0,Tn.persist(),Er.current.stop(Tn,function(){Er.current.start(Tn)})),Tn.target===Tn.currentTarget&&yr()&&Tn.key===" "&&Tn.preventDefault(),jt&&jt(Tn),Tn.target===Tn.currentTarget&&yr()&&Tn.key==="Enter"&&!Et&&(Tn.preventDefault(),Ot&&Ot(Tn))}),Pr=useEventCallback$1(function(Tn){wt&&Tn.key===" "&&Er.current&&Rr&&!Tn.defaultPrevented&&(Ur.current=!1,Tn.persist(),Er.current.stop(Tn,function(){Er.current.pulsate(Tn)})),Ht&&Ht(Tn),Ot&&Tn.target===Tn.currentTarget&&yr()&&Tn.key===" "&&!Tn.defaultPrevented&&Ot(Tn)}),Zr=ft;Zr==="button"&&mr.href&&(Zr="a");var rn={};Zr==="button"?(rn.type=Zt,rn.disabled=Et):((Zr!=="a"||!mr.href)&&(rn.role="button"),rn["aria-disabled"]=Et);var on=useForkRef$1(tt,_e),In=useForkRef$1(Xt,vr),Sn=useForkRef$1(on,In),un=reactExports.useState(!1),dn=un[0],wn=un[1];reactExports.useEffect(function(){wn(!0)},[]);var Nn=dn&&!St&&!Et;return reactExports.useEffect(function(){Nn&&!Er.current&&console.error(["Material-UI: The `component` prop provided to ButtonBase is invalid.","Please make sure the children prop is rendered in this custom component."].join(` +`))},[Nn]),reactExports.createElement(Zr,_extends$5({className:clsx$1(ot.root,At,Rr&&[ot.focusVisible,xt],Et&&ot.disabled),onBlur:lr,onClick:Ot,onFocus:fr,onKeyDown:Wr,onKeyUp:Pr,onMouseDown:ir,onMouseLeave:Yr,onMouseUp:Or,onDragLeave:Qr,onTouchEnd:rr,onTouchMove:er,onTouchStart:wr,ref:Sn,tabIndex:Et?-1:ar},rn,mr),it,Nn?reactExports.createElement(TouchRipple$1$1,_extends$5({ref:Er,center:nt},Yt)):null)});ButtonBase$2.propTypes={action:refType$1,buttonRef:deprecatedPropType(refType$1,"Use `ref` instead."),centerRipple:PropTypes.bool,children:PropTypes.node,classes:PropTypes.object,className:PropTypes.string,component:elementTypeAcceptingRef$1,disabled:PropTypes.bool,disableRipple:PropTypes.bool,disableTouchRipple:PropTypes.bool,focusRipple:PropTypes.bool,focusVisibleClassName:PropTypes.string,href:PropTypes.string,onBlur:PropTypes.func,onClick:PropTypes.func,onDragLeave:PropTypes.func,onFocus:PropTypes.func,onFocusVisible:PropTypes.func,onKeyDown:PropTypes.func,onKeyUp:PropTypes.func,onMouseDown:PropTypes.func,onMouseLeave:PropTypes.func,onMouseUp:PropTypes.func,onTouchEnd:PropTypes.func,onTouchMove:PropTypes.func,onTouchStart:PropTypes.func,tabIndex:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),TouchRippleProps:PropTypes.object,type:PropTypes.oneOfType([PropTypes.oneOf(["button","reset","submit"]),PropTypes.string])};const ButtonBase$1$1=withStyles2(styles$q,{name:"MuiButtonBase"})(ButtonBase$2);var styles$p=function($){return{root:{textAlign:"center",flex:"0 0 auto",fontSize:$.typography.pxToRem(24),padding:12,borderRadius:"50%",overflow:"visible",color:$.palette.action.active,transition:$.transitions.create("background-color",{duration:$.transitions.duration.shortest}),"&:hover":{backgroundColor:alpha$3($.palette.action.active,$.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{backgroundColor:"transparent",color:$.palette.action.disabled}},edgeStart:{marginLeft:-12,"$sizeSmall&":{marginLeft:-3}},edgeEnd:{marginRight:-12,"$sizeSmall&":{marginRight:-3}},colorInherit:{color:"inherit"},colorPrimary:{color:$.palette.primary.main,"&:hover":{backgroundColor:alpha$3($.palette.primary.main,$.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},colorSecondary:{color:$.palette.secondary.main,"&:hover":{backgroundColor:alpha$3($.palette.secondary.main,$.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},disabled:{},sizeSmall:{padding:3,fontSize:$.typography.pxToRem(18)},label:{width:"100%",display:"flex",alignItems:"inherit",justifyContent:"inherit"}}},IconButton=reactExports.forwardRef(function($,_e){var et=$.edge,tt=et===void 0?!1:et,rt=$.children,nt=$.classes,it=$.className,ot=$.color,At=ot===void 0?"default":ot,ut=$.disabled,ft=ut===void 0?!1:ut,dt=$.disableFocusRipple,Et=dt===void 0?!1:dt,Bt=$.size,St=Bt===void 0?"medium":Bt,Dt=_objectWithoutProperties$2($,["edge","children","classes","className","color","disabled","disableFocusRipple","size"]);return reactExports.createElement(ButtonBase$1$1,_extends$5({className:clsx$1(nt.root,it,At!=="default"&&nt["color".concat(capitalize$1$1(At))],ft&&nt.disabled,St==="small"&&nt["size".concat(capitalize$1$1(St))],{start:nt.edgeStart,end:nt.edgeEnd}[tt]),centerRipple:!0,focusRipple:!Et,disabled:ft,ref:_e},Dt),reactExports.createElement("span",{className:nt.label},rt))});IconButton.propTypes={children:chainPropTypes(PropTypes.node,function(j){var $=reactExports.Children.toArray(j.children).some(function(_e){return reactExports.isValidElement(_e)&&_e.props.onClick});return $?new Error(["Material-UI: You are providing an onClick event listener to a child of a button element.","Firefox will never trigger the event.","You should move the onClick listener to the parent button element.","https://github.com/mui-org/material-ui/issues/13957"].join(` +`)):null}),classes:PropTypes.object.isRequired,className:PropTypes.string,color:PropTypes.oneOf(["default","inherit","primary","secondary"]),disabled:PropTypes.bool,disableFocusRipple:PropTypes.bool,disableRipple:PropTypes.bool,edge:PropTypes.oneOf(["start","end",!1]),size:PropTypes.oneOf(["small","medium"])};withStyles2(styles$p,{name:"MuiIconButton"})(IconButton);var styles$o={entering:{opacity:1},entered:{opacity:1}},defaultTimeout={enter:duration$1.enteringScreen,exit:duration$1.leavingScreen},Fade$2=reactExports.forwardRef(function($,_e){var et=$.children,tt=$.disableStrictModeCompat,rt=tt===void 0?!1:tt,nt=$.in,it=$.onEnter,ot=$.onEntered,At=$.onEntering,ut=$.onExit,ft=$.onExited,dt=$.onExiting,Et=$.style,Bt=$.TransitionComponent,St=Bt===void 0?Transition$1$1:Bt,Dt=$.timeout,$t=Dt===void 0?defaultTimeout:Dt,Rt=_objectWithoutProperties$2($,["children","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","TransitionComponent","timeout"]),wt=useTheme$3(),xt=wt.unstable_strictMode&&!rt,Nt=reactExports.useRef(null),Ot=useForkRef$1(et.ref,_e),kt=useForkRef$1(xt?Nt:void 0,Ot),Jt=function(Ar){return function(hr,sr){if(Ar){var ar=xt?[Nt.current,hr]:[hr,sr],Yt=_slicedToArray$2$1(ar,2),pr=Yt[0],Zt=Yt[1];Zt===void 0?Ar(pr):Ar(pr,Zt)}}},jt=Jt(At),Ht=Jt(function(ur,Ar){reflow$1(ur);var hr=getTransitionProps$1({style:Et,timeout:$t},{mode:"enter"});ur.style.webkitTransition=wt.transitions.create("opacity",hr),ur.style.transition=wt.transitions.create("opacity",hr),it&&it(ur,Ar)}),Gt=Jt(ot),Kt=Jt(dt),Wt=Jt(function(ur){var Ar=getTransitionProps$1({style:Et,timeout:$t},{mode:"exit"});ur.style.webkitTransition=wt.transitions.create("opacity",Ar),ur.style.transition=wt.transitions.create("opacity",Ar),ut&&ut(ur)}),Vt=Jt(ft);return reactExports.createElement(St,_extends$5({appear:!0,in:nt,nodeRef:xt?Nt:void 0,onEnter:Ht,onEntered:Gt,onEntering:jt,onExit:Wt,onExited:Vt,onExiting:Kt,timeout:$t},Rt),function(ur,Ar){return reactExports.cloneElement(et,_extends$5({style:_extends$5({opacity:0,visibility:ur==="exited"&&!nt?"hidden":void 0},styles$o[ur],Et,et.props.style),ref:kt},Ar))})});Fade$2.propTypes={children:PropTypes.element,disableStrictModeCompat:PropTypes.bool,in:PropTypes.bool,onEnter:PropTypes.func,onEntered:PropTypes.func,onEntering:PropTypes.func,onExit:PropTypes.func,onExited:PropTypes.func,onExiting:PropTypes.func,style:PropTypes.object,timeout:PropTypes.oneOfType([PropTypes.number,PropTypes.shape({appear:PropTypes.number,enter:PropTypes.number,exit:PropTypes.number})])};var styleFunction$2=styleFunctionSx$2(compose$2(borders$1,display,flexbox$1,grid$1,positions,palette$1,shadows$3,sizing$1,spacing,typography$1));styled$1$1("div")(styleFunction$2,{name:"MuiBox"});var styles$n=function($){return{root:{margin:0},body2:$.typography.body2,body1:$.typography.body1,caption:$.typography.caption,button:$.typography.button,h1:$.typography.h1,h2:$.typography.h2,h3:$.typography.h3,h4:$.typography.h4,h5:$.typography.h5,h6:$.typography.h6,subtitle1:$.typography.subtitle1,subtitle2:$.typography.subtitle2,overline:$.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:$.palette.primary.main},colorSecondary:{color:$.palette.secondary.main},colorTextPrimary:{color:$.palette.text.primary},colorTextSecondary:{color:$.palette.text.secondary},colorError:{color:$.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}},defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},Typography=reactExports.forwardRef(function($,_e){var et=$.align,tt=et===void 0?"inherit":et,rt=$.classes,nt=$.className,it=$.color,ot=it===void 0?"initial":it,At=$.component,ut=$.display,ft=ut===void 0?"initial":ut,dt=$.gutterBottom,Et=dt===void 0?!1:dt,Bt=$.noWrap,St=Bt===void 0?!1:Bt,Dt=$.paragraph,$t=Dt===void 0?!1:Dt,Rt=$.variant,wt=Rt===void 0?"body1":Rt,xt=$.variantMapping,Nt=xt===void 0?defaultVariantMapping:xt,Ot=_objectWithoutProperties$2($,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","variant","variantMapping"]),kt=At||($t?"p":Nt[wt]||defaultVariantMapping[wt])||"span";return reactExports.createElement(kt,_extends$5({className:clsx$1(rt.root,nt,wt!=="inherit"&&rt[wt],ot!=="initial"&&rt["color".concat(capitalize$1$1(ot))],St&&rt.noWrap,Et&&rt.gutterBottom,$t&&rt.paragraph,tt!=="inherit"&&rt["align".concat(capitalize$1$1(tt))],ft!=="initial"&&rt["display".concat(capitalize$1$1(ft))]),ref:_e},Ot))});Typography.propTypes={align:PropTypes.oneOf(["inherit","left","center","right","justify"]),children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,color:PropTypes.oneOf(["initial","inherit","primary","secondary","textPrimary","textSecondary","error"]),component:PropTypes.elementType,display:PropTypes.oneOf(["initial","block","inline"]),gutterBottom:PropTypes.bool,noWrap:PropTypes.bool,paragraph:PropTypes.bool,variant:PropTypes.oneOf(["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline","srOnly","inherit"]),variantMapping:PropTypes.object};const Typography$1=withStyles2(styles$n,{name:"MuiTypography"})(Typography);var FormControlContext$2=reactExports.createContext();FormControlContext$2.displayName="FormControlContext";function useFormControl$1(){return reactExports.useContext(FormControlContext$2)}const FormControlContext$1$1=FormControlContext$2;function useFormControl$2(){return reactExports.useContext(FormControlContext$1$1)}var SIZE=44,styles$m=function($){return{root:{display:"inline-block"},static:{transition:$.transitions.create("transform")},indeterminate:{animation:"$circular-rotate 1.4s linear infinite"},determinate:{transition:$.transitions.create("transform")},colorPrimary:{color:$.palette.primary.main},colorSecondary:{color:$.palette.secondary.main},svg:{display:"block"},circle:{stroke:"currentColor"},circleStatic:{transition:$.transitions.create("stroke-dashoffset")},circleIndeterminate:{animation:"$circular-dash 1.4s ease-in-out infinite",strokeDasharray:"80px, 200px",strokeDashoffset:"0px"},circleDeterminate:{transition:$.transitions.create("stroke-dashoffset")},"@keyframes circular-rotate":{"0%":{transformOrigin:"50% 50%"},"100%":{transform:"rotate(360deg)"}},"@keyframes circular-dash":{"0%":{strokeDasharray:"1px, 200px",strokeDashoffset:"0px"},"50%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-15px"},"100%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-125px"}},circleDisableShrink:{animation:"none"}}},CircularProgress=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.color,nt=rt===void 0?"primary":rt,it=$.disableShrink,ot=it===void 0?!1:it,At=$.size,ut=At===void 0?40:At,ft=$.style,dt=$.thickness,Et=dt===void 0?3.6:dt,Bt=$.value,St=Bt===void 0?0:Bt,Dt=$.variant,$t=Dt===void 0?"indeterminate":Dt,Rt=_objectWithoutProperties$2($,["classes","className","color","disableShrink","size","style","thickness","value","variant"]),wt={},xt={},Nt={};if($t==="determinate"||$t==="static"){var Ot=2*Math.PI*((SIZE-Et)/2);wt.strokeDasharray=Ot.toFixed(3),Nt["aria-valuenow"]=Math.round(St),wt.strokeDashoffset="".concat(((100-St)/100*Ot).toFixed(3),"px"),xt.transform="rotate(-90deg)"}return reactExports.createElement("div",_extends$5({className:clsx$1(et.root,tt,nt!=="inherit"&&et["color".concat(capitalize$1$1(nt))],{determinate:et.determinate,indeterminate:et.indeterminate,static:et.static}[$t]),style:_extends$5({width:ut,height:ut},xt,ft),ref:_e,role:"progressbar"},Nt,Rt),reactExports.createElement("svg",{className:et.svg,viewBox:"".concat(SIZE/2," ").concat(SIZE/2," ").concat(SIZE," ").concat(SIZE)},reactExports.createElement("circle",{className:clsx$1(et.circle,ot&&et.circleDisableShrink,{determinate:et.circleDeterminate,indeterminate:et.circleIndeterminate,static:et.circleStatic}[$t]),style:wt,cx:SIZE,cy:SIZE,r:(SIZE-Et)/2,fill:"none",strokeWidth:Et})))});CircularProgress.propTypes={classes:PropTypes.object,className:PropTypes.string,color:PropTypes.oneOf(["inherit","primary","secondary"]),disableShrink:chainPropTypes(PropTypes.bool,function(j){return j.disableShrink&&j.variant&&j.variant!=="indeterminate"?new Error("Material-UI: You have provided the `disableShrink` prop with a variant other than `indeterminate`. This will have no effect."):null}),size:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),style:PropTypes.object,thickness:PropTypes.number,value:PropTypes.number,variant:chainPropTypes(PropTypes.oneOf(["determinate","indeterminate","static"]),function(j){var $=j.variant;if($==="static")throw new Error('Material-UI: `variant="static"` was deprecated. Use `variant="determinate"` instead.');return null})};withStyles2(styles$m,{name:"MuiCircularProgress",flip:!1})(CircularProgress);function mapEventPropToEvent(j){return j.substring(2).toLowerCase()}function clickedRootScrollbar(j){return document.documentElement.clientWidth-1;else{var Nt=ownerDocument$1(ut.current);xt=!Nt.documentElement.contains(Rt.target)||ut.current.contains(Rt.target)}!xt&&(et||!wt)&&nt(Rt)}}),Dt=function(wt){return function(xt){dt.current=!0;var Nt=$.props[wt];Nt&&Nt(xt)}},$t={ref:Bt};return ot!==!1&&($t[ot]=Dt(ot)),reactExports.useEffect(function(){if(ot!==!1){var Rt=mapEventPropToEvent(ot),wt=ownerDocument$1(ut.current),xt=function(){At.current=!0};return wt.addEventListener(Rt,St),wt.addEventListener("touchmove",xt),function(){wt.removeEventListener(Rt,St),wt.removeEventListener("touchmove",xt)}}},[St,ot]),rt!==!1&&($t[rt]=Dt(rt)),reactExports.useEffect(function(){if(rt!==!1){var Rt=mapEventPropToEvent(rt),wt=ownerDocument$1(ut.current);return wt.addEventListener(Rt,St),function(){wt.removeEventListener(Rt,St)}}},[St,rt]),reactExports.createElement(reactExports.Fragment,null,reactExports.cloneElement($,$t))}ClickAwayListener.propTypes={children:elementAcceptingRef$1.isRequired,disableReactTree:PropTypes.bool,mouseEvent:PropTypes.oneOf(["onClick","onMouseDown","onMouseUp",!1]),onClickAway:PropTypes.func.isRequired,touchEvent:PropTypes.oneOf(["onTouchEnd","onTouchStart",!1])};ClickAwayListener.propTypes=exactProp(ClickAwayListener.propTypes);function getContainer$1$1(j){return j=typeof j=="function"?j():j,reactDomExports.findDOMNode(j)}var useEnhancedEffect$5=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,Portal$1=reactExports.forwardRef(function($,_e){var et=$.children,tt=$.container,rt=$.disablePortal,nt=rt===void 0?!1:rt,it=$.onRendered,ot=reactExports.useState(null),At=ot[0],ut=ot[1],ft=useForkRef$1(reactExports.isValidElement(et)?et.ref:null,_e);return useEnhancedEffect$5(function(){nt||ut(getContainer$1$1(tt)||document.body)},[tt,nt]),useEnhancedEffect$5(function(){if(At&&!nt)return setRef$1(_e,At),function(){setRef$1(_e,null)}},[_e,At,nt]),useEnhancedEffect$5(function(){it&&(At||nt)&&it()},[it,At,nt]),nt?reactExports.isValidElement(et)?reactExports.cloneElement(et,{ref:ft}):et:At&&reactDomExports.createPortal(et,At)});Portal$1.propTypes={children:PropTypes.node,container:PropTypes.oneOfType([HTMLElementType,PropTypes.instanceOf(reactExports.Component),PropTypes.func]),disablePortal:PropTypes.bool,onRendered:deprecatedPropType(PropTypes.func,"Use the ref instead.")};Portal$1.propTypes=exactProp(Portal$1.propTypes);const Portal$1$1=Portal$1;function getScrollbarSize$1(){var j=document.createElement("div");j.style.width="99px",j.style.height="99px",j.style.position="absolute",j.style.top="-9999px",j.style.overflow="scroll",document.body.appendChild(j);var $=j.offsetWidth-j.clientWidth;return document.body.removeChild(j),$}function isOverflowing$1(j){var $=ownerDocument$1(j);return $.body===j?ownerWindow$1($).innerWidth>$.documentElement.clientWidth:j.scrollHeight>j.clientHeight}function ariaHidden$1(j,$){$?j.setAttribute("aria-hidden","true"):j.removeAttribute("aria-hidden")}function getPaddingRight$1(j){return parseInt(window.getComputedStyle(j)["padding-right"],10)||0}function ariaHiddenSiblings$1(j,$,_e){var et=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[],tt=arguments.length>4?arguments[4]:void 0,rt=[$,_e].concat(_toConsumableArray$2$1(et)),nt=["TEMPLATE","SCRIPT","STYLE"];[].forEach.call(j.children,function(it){it.nodeType===1&&rt.indexOf(it)===-1&&nt.indexOf(it.tagName)===-1&&ariaHidden$1(it,tt)})}function findIndexOf$1(j,$){var _e=-1;return j.some(function(et,tt){return $(et)?(_e=tt,!0):!1}),_e}function handleContainer$1(j,$){var _e=[],et=[],tt=j.container,rt;if(!$.disableScrollLock){if(isOverflowing$1(tt)){var nt=getScrollbarSize$1();_e.push({value:tt.style.paddingRight,key:"padding-right",el:tt}),tt.style["padding-right"]="".concat(getPaddingRight$1(tt)+nt,"px"),rt=ownerDocument$1(tt).querySelectorAll(".mui-fixed"),[].forEach.call(rt,function(ut){et.push(ut.style.paddingRight),ut.style.paddingRight="".concat(getPaddingRight$1(ut)+nt,"px")})}var it=tt.parentElement,ot=it.nodeName==="HTML"&&window.getComputedStyle(it)["overflow-y"]==="scroll"?it:tt;_e.push({value:ot.style.overflow,key:"overflow",el:ot}),ot.style.overflow="hidden"}var At=function(){rt&&[].forEach.call(rt,function(ft,dt){et[dt]?ft.style.paddingRight=et[dt]:ft.style.removeProperty("padding-right")}),_e.forEach(function(ft){var dt=ft.value,Et=ft.el,Bt=ft.key;dt?Et.style.setProperty(Bt,dt):Et.style.removeProperty(Bt)})};return At}function getHiddenSiblings$1(j){var $=[];return[].forEach.call(j.children,function(_e){_e.getAttribute&&_e.getAttribute("aria-hidden")==="true"&&$.push(_e)}),$}var ModalManager$1=function(){function j(){_classCallCheck$5$1(this,j),this.modals=[],this.containers=[]}return _createClass$5$1(j,[{key:"add",value:function(_e,et){var tt=this.modals.indexOf(_e);if(tt!==-1)return tt;tt=this.modals.length,this.modals.push(_e),_e.modalRef&&ariaHidden$1(_e.modalRef,!1);var rt=getHiddenSiblings$1(et);ariaHiddenSiblings$1(et,_e.mountNode,_e.modalRef,rt,!0);var nt=findIndexOf$1(this.containers,function(it){return it.container===et});return nt!==-1?(this.containers[nt].modals.push(_e),tt):(this.containers.push({modals:[_e],container:et,restore:null,hiddenSiblingNodes:rt}),tt)}},{key:"mount",value:function(_e,et){var tt=findIndexOf$1(this.containers,function(nt){return nt.modals.indexOf(_e)!==-1}),rt=this.containers[tt];rt.restore||(rt.restore=handleContainer$1(rt,et))}},{key:"remove",value:function(_e){var et=this.modals.indexOf(_e);if(et===-1)return et;var tt=findIndexOf$1(this.containers,function(it){return it.modals.indexOf(_e)!==-1}),rt=this.containers[tt];if(rt.modals.splice(rt.modals.indexOf(_e),1),this.modals.splice(et,1),rt.modals.length===0)rt.restore&&rt.restore(),_e.modalRef&&ariaHidden$1(_e.modalRef,!0),ariaHiddenSiblings$1(rt.container,_e.mountNode,_e.modalRef,rt.hiddenSiblingNodes,!1),this.containers.splice(tt,1);else{var nt=rt.modals[rt.modals.length-1];nt.modalRef&&ariaHidden$1(nt.modalRef,!1)}return et}},{key:"isTopModal",value:function(_e){return this.modals.length>0&&this.modals[this.modals.length-1]===_e}}]),j}();function Unstable_TrapFocus(j){var $=j.children,_e=j.disableAutoFocus,et=_e===void 0?!1:_e,tt=j.disableEnforceFocus,rt=tt===void 0?!1:tt,nt=j.disableRestoreFocus,it=nt===void 0?!1:nt,ot=j.getDoc,At=j.isEnabled,ut=j.open,ft=reactExports.useRef(),dt=reactExports.useRef(null),Et=reactExports.useRef(null),Bt=reactExports.useRef(),St=reactExports.useRef(null),Dt=reactExports.useCallback(function(wt){St.current=reactDomExports.findDOMNode(wt)},[]),$t=useForkRef$1($.ref,Dt),Rt=reactExports.useRef();return reactExports.useEffect(function(){Rt.current=ut},[ut]),!Rt.current&&ut&&typeof window<"u"&&(Bt.current=ot().activeElement),reactExports.useEffect(function(){if(ut){var wt=ownerDocument$1(St.current);!et&&St.current&&!St.current.contains(wt.activeElement)&&(St.current.hasAttribute("tabIndex")||(console.error(["Material-UI: The modal content node does not accept focus.",'For the benefit of assistive technologies, the tabIndex of the node is being set to "-1".'].join(` +`)),St.current.setAttribute("tabIndex",-1)),St.current.focus());var xt=function(){var Jt=St.current;if(Jt!==null){if(!wt.hasFocus()||rt||!At()||ft.current){ft.current=!1;return}St.current&&!St.current.contains(wt.activeElement)&&St.current.focus()}},Nt=function(Jt){rt||!At()||Jt.keyCode!==9||wt.activeElement===St.current&&(ft.current=!0,Jt.shiftKey?Et.current.focus():dt.current.focus())};wt.addEventListener("focus",xt,!0),wt.addEventListener("keydown",Nt,!0);var Ot=setInterval(function(){xt()},50);return function(){clearInterval(Ot),wt.removeEventListener("focus",xt,!0),wt.removeEventListener("keydown",Nt,!0),it||(Bt.current&&Bt.current.focus&&Bt.current.focus(),Bt.current=null)}}},[et,rt,it,At,ut]),reactExports.createElement(reactExports.Fragment,null,reactExports.createElement("div",{tabIndex:0,ref:dt,"data-test":"sentinelStart"}),reactExports.cloneElement($,{ref:$t}),reactExports.createElement("div",{tabIndex:0,ref:Et,"data-test":"sentinelEnd"}))}Unstable_TrapFocus.propTypes={children:PropTypes.node,disableAutoFocus:PropTypes.bool,disableEnforceFocus:PropTypes.bool,disableRestoreFocus:PropTypes.bool,getDoc:PropTypes.func.isRequired,isEnabled:PropTypes.func.isRequired,open:PropTypes.bool.isRequired};Unstable_TrapFocus.propTypes=exactProp(Unstable_TrapFocus.propTypes);var styles$l={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},invisible:{backgroundColor:"transparent"}},SimpleBackdrop=reactExports.forwardRef(function($,_e){var et=$.invisible,tt=et===void 0?!1:et,rt=$.open,nt=_objectWithoutProperties$2($,["invisible","open"]);return rt?reactExports.createElement("div",_extends$5({"aria-hidden":!0,ref:_e},nt,{style:_extends$5({},styles$l.root,tt?styles$l.invisible:{},nt.style)})):null});SimpleBackdrop.propTypes={invisible:PropTypes.bool,open:PropTypes.bool.isRequired};const SimpleBackdrop$1=SimpleBackdrop;function getContainer$2(j){return j=typeof j=="function"?j():j,reactDomExports.findDOMNode(j)}function getHasTransition$1(j){return j.children?j.children.props.hasOwnProperty("in"):!1}var defaultManager$1=new ModalManager$1,styles$k=function($){return{root:{position:"fixed",zIndex:$.zIndex.modal,right:0,bottom:0,top:0,left:0},hidden:{visibility:"hidden"}}},Modal$2=reactExports.forwardRef(function($,_e){var et=useTheme$1$1(),tt=getThemeProps$1({name:"MuiModal",props:_extends$5({},$),theme:et}),rt=tt.BackdropComponent,nt=rt===void 0?SimpleBackdrop$1:rt,it=tt.BackdropProps,ot=tt.children,At=tt.closeAfterTransition,ut=At===void 0?!1:At,ft=tt.container,dt=tt.disableAutoFocus,Et=dt===void 0?!1:dt,Bt=tt.disableBackdropClick,St=Bt===void 0?!1:Bt,Dt=tt.disableEnforceFocus,$t=Dt===void 0?!1:Dt,Rt=tt.disableEscapeKeyDown,wt=Rt===void 0?!1:Rt,xt=tt.disablePortal,Nt=xt===void 0?!1:xt,Ot=tt.disableRestoreFocus,kt=Ot===void 0?!1:Ot,Jt=tt.disableScrollLock,jt=Jt===void 0?!1:Jt,Ht=tt.hideBackdrop,Gt=Ht===void 0?!1:Ht,Kt=tt.keepMounted,Wt=Kt===void 0?!1:Kt,Vt=tt.manager,ur=Vt===void 0?defaultManager$1:Vt,Ar=tt.onBackdropClick,hr=tt.onClose,sr=tt.onEscapeKeyDown,ar=tt.onRendered,Yt=tt.open,pr=_objectWithoutProperties$2(tt,["BackdropComponent","BackdropProps","children","closeAfterTransition","container","disableAutoFocus","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onEscapeKeyDown","onRendered","open"]),Zt=reactExports.useState(!0),mr=Zt[0],vr=Zt[1],_r=reactExports.useRef({}),Er=reactExports.useRef(null),Lr=reactExports.useRef(null),Rr=useForkRef$1(Lr,_e),$r=getHasTransition$1(tt),xr=function(){return ownerDocument$1(Er.current)},Fr=function(){return _r.current.modalRef=Lr.current,_r.current.mountNode=Er.current,_r.current},Nr=function(){ur.mount(Fr(),{disableScrollLock:jt}),Lr.current.scrollTop=0},Xt=useEventCallback$1(function(){var fr=getContainer$2(ft)||xr().body;ur.add(Fr(),fr),Lr.current&&Nr()}),cr=reactExports.useCallback(function(){return ur.isTopModal(Fr())},[ur]),ir=useEventCallback$1(function(fr){Er.current=fr,fr&&(ar&&ar(),Yt&&cr()?Nr():ariaHidden$1(Lr.current,!0))}),Qr=reactExports.useCallback(function(){ur.remove(Fr())},[ur]);if(reactExports.useEffect(function(){return function(){Qr()}},[Qr]),reactExports.useEffect(function(){Yt?Xt():(!$r||!ut)&&Qr()},[Yt,Qr,$r,ut,Xt]),!Wt&&!Yt&&(!$r||mr))return null;var Or=function(){vr(!1)},Yr=function(){vr(!0),ut&&Qr()},wr=function(yr){yr.target===yr.currentTarget&&(Ar&&Ar(yr),!St&&hr&&hr(yr,"backdropClick"))},rr=function(yr){yr.key!=="Escape"||!cr()||(sr&&sr(yr),wt||(yr.stopPropagation(),hr&&hr(yr,"escapeKeyDown")))},er=styles$k(et||{zIndex:zIndex$1$1}),lr={};return ot.props.tabIndex===void 0&&(lr.tabIndex=ot.props.tabIndex||"-1"),$r&&(lr.onEnter=createChainedFunction$1(Or,ot.props.onEnter),lr.onExited=createChainedFunction$1(Yr,ot.props.onExited)),reactExports.createElement(Portal$1$1,{ref:ir,container:ft,disablePortal:Nt},reactExports.createElement("div",_extends$5({ref:Rr,onKeyDown:rr,role:"presentation"},pr,{style:_extends$5({},er.root,!Yt&&mr?er.hidden:{},pr.style)}),Gt?null:reactExports.createElement(nt,_extends$5({open:Yt,onClick:wr},it)),reactExports.createElement(Unstable_TrapFocus,{disableEnforceFocus:$t,disableAutoFocus:Et,disableRestoreFocus:kt,getDoc:xr,isEnabled:cr,open:Yt},reactExports.cloneElement(ot,lr))))});Modal$2.propTypes={BackdropComponent:PropTypes.elementType,BackdropProps:PropTypes.object,children:elementAcceptingRef$1.isRequired,closeAfterTransition:PropTypes.bool,container:PropTypes.oneOfType([HTMLElementType,PropTypes.instanceOf(reactExports.Component),PropTypes.func]),disableAutoFocus:PropTypes.bool,disableBackdropClick:deprecatedPropType(PropTypes.bool,"Use the onClose prop with the `reason` argument to filter the `backdropClick` events."),disableEnforceFocus:PropTypes.bool,disableEscapeKeyDown:PropTypes.bool,disablePortal:PropTypes.bool,disableRestoreFocus:PropTypes.bool,disableScrollLock:PropTypes.bool,hideBackdrop:PropTypes.bool,keepMounted:PropTypes.bool,manager:PropTypes.object,onBackdropClick:deprecatedPropType(PropTypes.func,"Use the onClose prop with the `reason` argument to handle the `backdropClick` events."),onClose:PropTypes.func,onEscapeKeyDown:deprecatedPropType(PropTypes.func,"Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events."),onRendered:deprecatedPropType(PropTypes.func,"Use the ref instead."),open:PropTypes.bool.isRequired};const Modal$1$1=Modal$2;function formControlState$1(j){var $=j.props,_e=j.states,et=j.muiFormControl;return _e.reduce(function(tt,rt){return tt[rt]=$[rt],et&&typeof $[rt]>"u"&&(tt[rt]=et[rt]),tt},{})}function getStyleValue$2(j,$){return parseInt(j[$],10)||0}var useEnhancedEffect$4=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,styles$j={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}},TextareaAutosize$1=reactExports.forwardRef(function($,_e){var et=$.onChange,tt=$.rows,rt=$.rowsMax,nt=$.rowsMin,it=$.maxRows,ot=$.minRows,At=ot===void 0?1:ot,ut=$.style,ft=$.value,dt=_objectWithoutProperties$2($,["onChange","rows","rowsMax","rowsMin","maxRows","minRows","style","value"]),Et=it||rt,Bt=tt||nt||At,St=reactExports.useRef(ft!=null),Dt=St.current,$t=reactExports.useRef(null),Rt=useForkRef$1(_e,$t),wt=reactExports.useRef(null),xt=reactExports.useRef(0),Nt=reactExports.useState({}),Ot=Nt[0],kt=Nt[1],Jt=reactExports.useCallback(function(){var Ht=$t.current,Gt=window.getComputedStyle(Ht),Kt=wt.current;Kt.style.width=Gt.width,Kt.value=Ht.value||$.placeholder||"x",Kt.value.slice(-1)===` +`&&(Kt.value+=" ");var Wt=Gt["box-sizing"],Vt=getStyleValue$2(Gt,"padding-bottom")+getStyleValue$2(Gt,"padding-top"),ur=getStyleValue$2(Gt,"border-bottom-width")+getStyleValue$2(Gt,"border-top-width"),Ar=Kt.scrollHeight-Vt;Kt.value="x";var hr=Kt.scrollHeight-Vt,sr=Ar;Bt&&(sr=Math.max(Number(Bt)*hr,sr)),Et&&(sr=Math.min(Number(Et)*hr,sr)),sr=Math.max(sr,hr);var ar=sr+(Wt==="border-box"?Vt+ur:0),Yt=Math.abs(sr-Ar)<=1;kt(function(pr){return xt.current<20&&(ar>0&&Math.abs((pr.outerHeightStyle||0)-ar)>1||pr.overflow!==Yt)?(xt.current+=1,{overflow:Yt,outerHeightStyle:ar}):(xt.current===20&&console.error(["Material-UI: Too many re-renders. The layout is unstable.","TextareaAutosize limits the number of renders to prevent an infinite loop."].join(` +`)),pr)})},[Et,Bt,$.placeholder]);reactExports.useEffect(function(){var Ht=debounce$2(function(){xt.current=0,Jt()});return window.addEventListener("resize",Ht),function(){Ht.clear(),window.removeEventListener("resize",Ht)}},[Jt]),useEnhancedEffect$4(function(){Jt()}),reactExports.useEffect(function(){xt.current=0},[ft]);var jt=function(Gt){xt.current=0,Dt||Jt(),et&&et(Gt)};return reactExports.createElement(reactExports.Fragment,null,reactExports.createElement("textarea",_extends$5({value:ft,onChange:jt,ref:Rt,rows:Bt,style:_extends$5({height:Ot.outerHeightStyle,overflow:Ot.overflow?"hidden":null},ut)},dt)),reactExports.createElement("textarea",{"aria-hidden":!0,className:$.className,readOnly:!0,ref:wt,tabIndex:-1,style:_extends$5({},styles$j.shadow,ut)}))});TextareaAutosize$1.propTypes={className:PropTypes.string,maxRows:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),minRows:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),onChange:PropTypes.func,placeholder:PropTypes.string,rows:deprecatedPropType(PropTypes.oneOfType([PropTypes.number,PropTypes.string]),"Use `minRows` instead."),rowsMax:deprecatedPropType(PropTypes.oneOfType([PropTypes.number,PropTypes.string]),"Use `maxRows` instead."),rowsMin:deprecatedPropType(PropTypes.oneOfType([PropTypes.number,PropTypes.string]),"Use `minRows` instead."),style:PropTypes.object,value:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string),PropTypes.number,PropTypes.string])};const TextareaAutosize$1$1=TextareaAutosize$1;function hasValue$1(j){return j!=null&&!(Array.isArray(j)&&j.length===0)}function isFilled$1(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return j&&(hasValue$1(j.value)&&j.value!==""||$&&hasValue$1(j.defaultValue)&&j.defaultValue!=="")}var styles$i=function($){var _e=$.palette.type==="light",et={color:"currentColor",opacity:_e?.42:.5,transition:$.transitions.create("opacity",{duration:$.transitions.duration.shorter})},tt={opacity:"0 !important"},rt={opacity:_e?.42:.5};return{"@global":{"@keyframes mui-auto-fill":{},"@keyframes mui-auto-fill-cancel":{}},root:_extends$5({},$.typography.body1,{color:$.palette.text.primary,lineHeight:"1.1876em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center","&$disabled":{color:$.palette.text.disabled,cursor:"default"}}),formControl:{},focused:{},disabled:{},adornedStart:{},adornedEnd:{},error:{},marginDense:{},multiline:{padding:"".concat(6,"px 0 ").concat(7,"px"),"&$marginDense":{paddingTop:3}},colorSecondary:{},fullWidth:{width:"100%"},input:{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"".concat(6,"px 0 ").concat(7,"px"),border:0,boxSizing:"content-box",background:"none",height:"1.1876em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":et,"&::-moz-placeholder":et,"&:-ms-input-placeholder":et,"&::-ms-input-placeholder":et,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{"-webkit-appearance":"none"},"label[data-shrink=false] + $formControl &":{"&::-webkit-input-placeholder":tt,"&::-moz-placeholder":tt,"&:-ms-input-placeholder":tt,"&::-ms-input-placeholder":tt,"&:focus::-webkit-input-placeholder":rt,"&:focus::-moz-placeholder":rt,"&:focus:-ms-input-placeholder":rt,"&:focus::-ms-input-placeholder":rt},"&$disabled":{opacity:1},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},inputMarginDense:{paddingTop:3},inputMultiline:{height:"auto",resize:"none",padding:0},inputTypeSearch:{"-moz-appearance":"textfield","-webkit-appearance":"textfield"},inputAdornedStart:{},inputAdornedEnd:{},inputHiddenLabel:{}}},useEnhancedEffect$3=typeof window>"u"?reactExports.useEffect:reactExports.useLayoutEffect,InputBase$2=reactExports.forwardRef(function($,_e){var et=$["aria-describedby"],tt=$.autoComplete,rt=$.autoFocus,nt=$.classes,it=$.className;$.color;var ot=$.defaultValue,At=$.disabled,ut=$.endAdornment;$.error;var ft=$.fullWidth,dt=ft===void 0?!1:ft,Et=$.id,Bt=$.inputComponent,St=Bt===void 0?"input":Bt,Dt=$.inputProps,$t=Dt===void 0?{}:Dt,Rt=$.inputRef;$.margin;var wt=$.multiline,xt=wt===void 0?!1:wt,Nt=$.name,Ot=$.onBlur,kt=$.onChange,Jt=$.onClick,jt=$.onFocus,Ht=$.onKeyDown,Gt=$.onKeyUp,Kt=$.placeholder,Wt=$.readOnly,Vt=$.renderSuffix,ur=$.rows,Ar=$.rowsMax,hr=$.rowsMin,sr=$.maxRows,ar=$.minRows,Yt=$.startAdornment,pr=$.type,Zt=pr===void 0?"text":pr,mr=$.value,vr=_objectWithoutProperties$2($,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),_r=$t.value!=null?$t.value:mr,Er=reactExports.useRef(_r!=null),Lr=Er.current,Rr=reactExports.useRef(),$r=reactExports.useCallback(function(Zr){Zr&&Zr.nodeName!=="INPUT"&&!Zr.focus&&console.error(["Material-UI: You have provided a `inputComponent` to the input component","that does not correctly handle the `inputRef` prop.","Make sure the `inputRef` prop is called with a HTMLInputElement."].join(` +`))},[]),xr=useForkRef$1($t.ref,$r),Fr=useForkRef$1(Rt,xr),Nr=useForkRef$1(Rr,Fr),Xt=reactExports.useState(!1),cr=Xt[0],ir=Xt[1],Qr=useFormControl$1();reactExports.useEffect(function(){if(Qr)return Qr.registerEffect()},[Qr]);var Or=formControlState$1({props:$,muiFormControl:Qr,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});Or.focused=Qr?Qr.focused:cr,reactExports.useEffect(function(){!Qr&&At&&cr&&(ir(!1),Ot&&Ot())},[Qr,At,cr,Ot]);var Yr=Qr&&Qr.onFilled,wr=Qr&&Qr.onEmpty,rr=reactExports.useCallback(function(Zr){isFilled$1(Zr)?Yr&&Yr():wr&&wr()},[Yr,wr]);useEnhancedEffect$3(function(){Lr&&rr({value:_r})},[_r,rr,Lr]);var er=function(rn){if(Or.disabled){rn.stopPropagation();return}jt&&jt(rn),$t.onFocus&&$t.onFocus(rn),Qr&&Qr.onFocus?Qr.onFocus(rn):ir(!0)},lr=function(rn){Ot&&Ot(rn),$t.onBlur&&$t.onBlur(rn),Qr&&Qr.onBlur?Qr.onBlur(rn):ir(!1)},fr=function(rn){if(!Lr){var on=rn.target||Rr.current;if(on==null)throw new Error("Material-UI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.");rr({value:on.value})}for(var In=arguments.length,Sn=new Array(In>1?In-1:0),un=1;un"u"?reactExports.useEffect:reactExports.useLayoutEffect,ListItem=reactExports.forwardRef(function($,_e){var et=$.alignItems,tt=et===void 0?"center":et,rt=$.autoFocus,nt=rt===void 0?!1:rt,it=$.button,ot=it===void 0?!1:it,At=$.children,ut=$.classes,ft=$.className,dt=$.component,Et=$.ContainerComponent,Bt=Et===void 0?"li":Et,St=$.ContainerProps;St=St===void 0?{}:St;var Dt=St.className,$t=_objectWithoutProperties$2(St,["className"]),Rt=$.dense,wt=Rt===void 0?!1:Rt,xt=$.disabled,Nt=xt===void 0?!1:xt,Ot=$.disableGutters,kt=Ot===void 0?!1:Ot,Jt=$.divider,jt=Jt===void 0?!1:Jt,Ht=$.focusVisibleClassName,Gt=$.selected,Kt=Gt===void 0?!1:Gt,Wt=_objectWithoutProperties$2($,["alignItems","autoFocus","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]),Vt=reactExports.useContext(ListContext$1$1),ur={dense:wt||Vt.dense||!1,alignItems:tt},Ar=reactExports.useRef(null);useEnhancedEffect$2(function(){nt&&(Ar.current?Ar.current.focus():console.error("Material-UI: Unable to set focus to a ListItem whose component has not been rendered."))},[nt]);var hr=reactExports.Children.toArray(At),sr=hr.length&&isMuiElement$1(hr[hr.length-1],["ListItemSecondaryAction"]),ar=reactExports.useCallback(function(mr){Ar.current=reactDomExports.findDOMNode(mr)},[]),Yt=useForkRef$1(ar,_e),pr=_extends$5({className:clsx$1(ut.root,ft,ur.dense&&ut.dense,!kt&&ut.gutters,jt&&ut.divider,Nt&&ut.disabled,ot&&ut.button,tt!=="center"&&ut.alignItemsFlexStart,sr&&ut.secondaryAction,Kt&&ut.selected),disabled:Nt},Wt),Zt=dt||"li";return ot&&(pr.component=dt||"div",pr.focusVisibleClassName=clsx$1(ut.focusVisible,Ht),Zt=ButtonBase$1$1),sr?(Zt=!pr.component&&!dt?"div":Zt,Bt==="li"&&(Zt==="li"?Zt="div":pr.component==="li"&&(pr.component="div")),reactExports.createElement(ListContext$1$1.Provider,{value:ur},reactExports.createElement(Bt,_extends$5({className:clsx$1(ut.container,Dt),ref:Yt},$t),reactExports.createElement(Zt,pr,hr),hr.pop()))):reactExports.createElement(ListContext$1$1.Provider,{value:ur},reactExports.createElement(Zt,_extends$5({ref:Yt},pr),hr))});ListItem.propTypes={alignItems:PropTypes.oneOf(["flex-start","center"]),autoFocus:PropTypes.bool,button:PropTypes.bool,children:chainPropTypes(PropTypes.node,function(j){for(var $=reactExports.Children.toArray(j.children),_e=-1,et=$.length-1;et>=0;et-=1){var tt=$[et];if(isMuiElement$1(tt,["ListItemSecondaryAction"])){_e=et;break}}return _e!==-1&&_e!==$.length-1?new Error("Material-UI: You used an element after ListItemSecondaryAction. For ListItem to detect that it has a secondary action you must pass it as the last child to ListItem."):null}),classes:PropTypes.object.isRequired,className:PropTypes.string,component:PropTypes.elementType,ContainerComponent:PropTypes.elementType,ContainerProps:PropTypes.object,dense:PropTypes.bool,disabled:PropTypes.bool,disableGutters:PropTypes.bool,divider:PropTypes.bool,focusVisibleClassName:PropTypes.string,selected:PropTypes.bool};const ListItem$1=withStyles2(styles$c,{name:"MuiListItem"})(ListItem);function getOffsetTop$1(j,$){var _e=0;return typeof $=="number"?_e=$:$==="center"?_e=j.height/2:$==="bottom"&&(_e=j.height),_e}function getOffsetLeft$1(j,$){var _e=0;return typeof $=="number"?_e=$:$==="center"?_e=j.width/2:$==="right"&&(_e=j.width),_e}function getTransformOriginValue$1(j){return[j.horizontal,j.vertical].map(function($){return typeof $=="number"?"".concat($,"px"):$}).join(" ")}function getScrollParent$1(j,$){for(var _e=$,et=0;_e&&_e!==j;)_e=_e.parentElement,et+=_e.scrollTop;return et}function getAnchorEl$1(j){return typeof j=="function"?j():j}var styles$b={root:{},paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}},Popover$2=reactExports.forwardRef(function($,_e){var et=$.action,tt=$.anchorEl,rt=$.anchorOrigin,nt=rt===void 0?{vertical:"top",horizontal:"left"}:rt,it=$.anchorPosition,ot=$.anchorReference,At=ot===void 0?"anchorEl":ot,ut=$.children,ft=$.classes,dt=$.className,Et=$.container,Bt=$.elevation,St=Bt===void 0?8:Bt,Dt=$.getContentAnchorEl,$t=$.marginThreshold,Rt=$t===void 0?16:$t,wt=$.onEnter,xt=$.onEntered,Nt=$.onEntering,Ot=$.onExit,kt=$.onExited,Jt=$.onExiting,jt=$.open,Ht=$.PaperProps,Gt=Ht===void 0?{}:Ht,Kt=$.transformOrigin,Wt=Kt===void 0?{vertical:"top",horizontal:"left"}:Kt,Vt=$.TransitionComponent,ur=Vt===void 0?Grow$1$1:Vt,Ar=$.transitionDuration,hr=Ar===void 0?"auto":Ar,sr=$.TransitionProps,ar=sr===void 0?{}:sr,Yt=_objectWithoutProperties$2($,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","className","container","elevation","getContentAnchorEl","marginThreshold","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),pr=reactExports.useRef(),Zt=reactExports.useCallback(function(Fr){if(At==="anchorPosition")return it||console.error('Material-UI: You need to provide a `anchorPosition` prop when using .'),it;var Nr=getAnchorEl$1(tt),Xt=Nr&&Nr.nodeType===1?Nr:ownerDocument$1(pr.current).body,cr=Xt.getBoundingClientRect();{var ir=Xt.getBoundingClientRect();ir.top===0&&ir.left===0&&ir.right===0&&ir.bottom===0&&console.warn(["Material-UI: The `anchorEl` prop provided to the component is invalid.","The anchor element should be part of the document layout.","Make sure the element is present in the document or that it's not display none."].join(` +`))}var Qr=Fr===0?nt.vertical:"center";return{top:cr.top+getOffsetTop$1(cr,Qr),left:cr.left+getOffsetLeft$1(cr,nt.horizontal)}},[tt,nt.horizontal,nt.vertical,it,At]),mr=reactExports.useCallback(function(Fr){var Nr=0;if(Dt&&At==="anchorEl"){var Xt=Dt(Fr);if(Xt&&Fr.contains(Xt)){var cr=getScrollParent$1(Fr,Xt);Nr=Xt.offsetTop+Xt.clientHeight/2-cr||0}nt.vertical!=="top"&&console.error(["Material-UI: You can not change the default `anchorOrigin.vertical` value ","when also providing the `getContentAnchorEl` prop to the popover component.","Only use one of the two props.","Set `getContentAnchorEl` to `null | undefined` or leave `anchorOrigin.vertical` unchanged."].join(` +`))}return Nr},[nt.vertical,At,Dt]),vr=reactExports.useCallback(function(Fr){var Nr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return{vertical:getOffsetTop$1(Fr,Wt.vertical)+Nr,horizontal:getOffsetLeft$1(Fr,Wt.horizontal)}},[Wt.horizontal,Wt.vertical]),_r=reactExports.useCallback(function(Fr){var Nr=mr(Fr),Xt={width:Fr.offsetWidth,height:Fr.offsetHeight},cr=vr(Xt,Nr);if(At==="none")return{top:null,left:null,transformOrigin:getTransformOriginValue$1(cr)};var ir=Zt(Nr),Qr=ir.top-cr.vertical,Or=ir.left-cr.horizontal,Yr=Qr+Xt.height,wr=Or+Xt.width,rr=ownerWindow$1(getAnchorEl$1(tt)),er=rr.innerHeight-Rt,lr=rr.innerWidth-Rt;if(Qrer){var yr=Yr-er;Qr-=yr,cr.vertical+=yr}if(Xt.height>er&&Xt.height&&er&&console.error(["Material-UI: The popover component is too tall.","Some part of it can not be seen on the screen (".concat(Xt.height-er,"px)."),"Please consider adding a `max-height` to improve the user-experience."].join(` +`)),Orlr){var Wr=wr-lr;Or-=Wr,cr.horizontal+=Wr}return{top:"".concat(Math.round(Qr),"px"),left:"".concat(Math.round(Or),"px"),transformOrigin:getTransformOriginValue$1(cr)}},[tt,At,Zt,mr,vr,Rt]),Er=reactExports.useCallback(function(){var Fr=pr.current;if(Fr){var Nr=_r(Fr);Nr.top!==null&&(Fr.style.top=Nr.top),Nr.left!==null&&(Fr.style.left=Nr.left),Fr.style.transformOrigin=Nr.transformOrigin}},[_r]),Lr=function(Nr,Xt){Nt&&Nt(Nr,Xt),Er()},Rr=reactExports.useCallback(function(Fr){pr.current=reactDomExports.findDOMNode(Fr)},[]);reactExports.useEffect(function(){jt&&Er()}),reactExports.useImperativeHandle(et,function(){return jt?{updatePosition:function(){Er()}}:null},[jt,Er]),reactExports.useEffect(function(){if(jt){var Fr=debounce$2(function(){Er()});return window.addEventListener("resize",Fr),function(){Fr.clear(),window.removeEventListener("resize",Fr)}}},[jt,Er]);var $r=hr;hr==="auto"&&!ur.muiSupportAuto&&($r=void 0);var xr=Et||(tt?ownerDocument$1(getAnchorEl$1(tt)).body:void 0);return reactExports.createElement(Modal$1$1,_extends$5({container:xr,open:jt,ref:_e,BackdropProps:{invisible:!0},className:clsx$1(ft.root,dt)},Yt),reactExports.createElement(ur,_extends$5({appear:!0,in:jt,onEnter:wt,onEntered:xt,onExit:Ot,onExited:kt,onExiting:Jt,timeout:$r},ar,{onEntering:createChainedFunction$1(Lr,ar.onEntering)}),reactExports.createElement(Paper$1$1,_extends$5({elevation:St,ref:Rr},Gt,{className:clsx$1(ft.paper,Gt.className)}),ut)))});Popover$2.propTypes={action:refType$1,anchorEl:chainPropTypes(PropTypes.oneOfType([HTMLElementType,PropTypes.func]),function(j){if(j.open&&(!j.anchorReference||j.anchorReference==="anchorEl")){var $=getAnchorEl$1(j.anchorEl);if($&&$.nodeType===1){var _e=$.getBoundingClientRect();if(_e.top===0&&_e.left===0&&_e.right===0&&_e.bottom===0)return new Error(["Material-UI: The `anchorEl` prop provided to the component is invalid.","The anchor element should be part of the document layout.","Make sure the element is present in the document or that it's not display none."].join(` +`))}else return new Error(["Material-UI: The `anchorEl` prop provided to the component is invalid.","It should be an Element instance but it's `".concat($,"` instead.")].join(` +`))}return null}),anchorOrigin:PropTypes.shape({horizontal:PropTypes.oneOfType([PropTypes.oneOf(["center","left","right"]),PropTypes.number]).isRequired,vertical:PropTypes.oneOfType([PropTypes.oneOf(["bottom","center","top"]),PropTypes.number]).isRequired}),anchorPosition:PropTypes.shape({left:PropTypes.number.isRequired,top:PropTypes.number.isRequired}),anchorReference:PropTypes.oneOf(["anchorEl","anchorPosition","none"]),children:PropTypes.node,classes:PropTypes.object,className:PropTypes.string,container:PropTypes.oneOfType([HTMLElementType,PropTypes.instanceOf(reactExports.Component),PropTypes.func]),elevation:PropTypes.number,getContentAnchorEl:PropTypes.func,marginThreshold:PropTypes.number,onClose:PropTypes.func,onEnter:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onEntered:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onEntering:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onExit:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onExited:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onExiting:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),open:PropTypes.bool.isRequired,PaperProps:PropTypes.shape({component:elementTypeAcceptingRef$1}),transformOrigin:PropTypes.shape({horizontal:PropTypes.oneOfType([PropTypes.oneOf(["center","left","right"]),PropTypes.number]).isRequired,vertical:PropTypes.oneOfType([PropTypes.oneOf(["bottom","center","top"]),PropTypes.number]).isRequired}),TransitionComponent:PropTypes.elementType,transitionDuration:PropTypes.oneOfType([PropTypes.oneOf(["auto"]),PropTypes.number,PropTypes.shape({appear:PropTypes.number,enter:PropTypes.number,exit:PropTypes.number})]),TransitionProps:PropTypes.object};const Popover$1$1=withStyles2(styles$b,{name:"MuiPopover"})(Popover$2);function nextItem$1(j,$,_e){return j===$?j.firstChild:$&&$.nextElementSibling?$.nextElementSibling:_e?null:j.firstChild}function previousItem$1(j,$,_e){return j===$?_e?j.firstChild:j.lastChild:$&&$.previousElementSibling?$.previousElementSibling:_e?null:j.lastChild}function textCriteriaMatches$1(j,$){if($===void 0)return!0;var _e=j.innerText;return _e===void 0&&(_e=j.textContent),_e=_e.trim().toLowerCase(),_e.length===0?!1:$.repeating?_e[0]===$.keys[0]:_e.indexOf($.keys.join(""))===0}function moveFocus$1(j,$,_e,et,tt,rt){for(var nt=!1,it=tt(j,$,$?_e:!1);it;){if(it===j.firstChild){if(nt)return;nt=!0}var ot=et?!1:it.disabled||it.getAttribute("aria-disabled")==="true";if(!it.hasAttribute("tabindex")||!textCriteriaMatches$1(it,rt)||ot)it=tt(j,it,_e);else{it.focus();return}}}var useEnhancedEffect$1=typeof window>"u"?reactExports.useEffect:reactExports.useLayoutEffect,MenuList$2=reactExports.forwardRef(function($,_e){var et=$.actions,tt=$.autoFocus,rt=tt===void 0?!1:tt,nt=$.autoFocusItem,it=nt===void 0?!1:nt,ot=$.children,At=$.className,ut=$.disabledItemsFocusable,ft=ut===void 0?!1:ut,dt=$.disableListWrap,Et=dt===void 0?!1:dt,Bt=$.onKeyDown,St=$.variant,Dt=St===void 0?"selectedMenu":St,$t=_objectWithoutProperties$2($,["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"]),Rt=reactExports.useRef(null),wt=reactExports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect$1(function(){rt&&Rt.current.focus()},[rt]),reactExports.useImperativeHandle(et,function(){return{adjustStyleForScrollbar:function(Ht,Gt){var Kt=!Rt.current.style.width;if(Ht.clientHeight0&&(Ar-Vt.lastTime>500?(Vt.keys=[],Vt.repeating=!0,Vt.previousKeyMatched=!0):Vt.repeating&&ur!==Vt.keys[0]&&(Vt.repeating=!1)),Vt.lastTime=Ar,Vt.keys.push(ur);var hr=Wt&&!Vt.repeating&&textCriteriaMatches$1(Wt,Vt);Vt.previousKeyMatched&&(hr||moveFocus$1(Gt,Wt,!1,ft,nextItem$1,Vt))?Ht.preventDefault():Vt.previousKeyMatched=!1}Bt&&Bt(Ht)},Nt=reactExports.useCallback(function(jt){Rt.current=reactDomExports.findDOMNode(jt)},[]),Ot=useForkRef$1(Nt,_e),kt=-1;reactExports.Children.forEach(ot,function(jt,Ht){reactExports.isValidElement(jt)&&(reactIsExports$2.isFragment(jt)&&console.error(["Material-UI: The Menu component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(` +`)),jt.props.disabled||(Dt==="selectedMenu"&&jt.props.selected||kt===-1)&&(kt=Ht))});var Jt=reactExports.Children.map(ot,function(jt,Ht){if(Ht===kt){var Gt={};return it&&(Gt.autoFocus=!0),jt.props.tabIndex===void 0&&Dt==="selectedMenu"&&(Gt.tabIndex=0),reactExports.cloneElement(jt,Gt)}return jt});return reactExports.createElement(List$1$1,_extends$5({role:"menu",ref:Ot,className:At,onKeyDown:xt,tabIndex:rt?0:-1},$t),Jt)});MenuList$2.propTypes={autoFocus:PropTypes.bool,autoFocusItem:PropTypes.bool,children:PropTypes.node,className:PropTypes.string,disabledItemsFocusable:PropTypes.bool,disableListWrap:PropTypes.bool,onKeyDown:PropTypes.func,variant:PropTypes.oneOf(["menu","selectedMenu"])};const MenuList$1$1=MenuList$2;var RTL_ORIGIN$1={vertical:"top",horizontal:"right"},LTR_ORIGIN$1={vertical:"top",horizontal:"left"},styles$a={paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"},list:{outline:0}},Menu$2=reactExports.forwardRef(function($,_e){var et=$.autoFocus,tt=et===void 0?!0:et,rt=$.children,nt=$.classes,it=$.disableAutoFocusItem,ot=it===void 0?!1:it,At=$.MenuListProps,ut=At===void 0?{}:At,ft=$.onClose,dt=$.onEntering,Et=$.open,Bt=$.PaperProps,St=Bt===void 0?{}:Bt,Dt=$.PopoverClasses,$t=$.transitionDuration,Rt=$t===void 0?"auto":$t,wt=$.TransitionProps;wt=wt===void 0?{}:wt;var xt=wt.onEntering,Nt=_objectWithoutProperties$2(wt,["onEntering"]),Ot=$.variant,kt=Ot===void 0?"selectedMenu":Ot,Jt=_objectWithoutProperties$2($,["autoFocus","children","classes","disableAutoFocusItem","MenuListProps","onClose","onEntering","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"]),jt=useTheme$3(),Ht=tt&&!ot&&Et,Gt=reactExports.useRef(null),Kt=reactExports.useRef(null),Wt=function(){return Kt.current},Vt=function(ar,Yt){Gt.current&&Gt.current.adjustStyleForScrollbar(ar,jt),dt&&dt(ar,Yt),xt&&xt(ar,Yt)},ur=function(ar){ar.key==="Tab"&&(ar.preventDefault(),ft&&ft(ar,"tabKeyDown"))},Ar=-1;reactExports.Children.map(rt,function(sr,ar){reactExports.isValidElement(sr)&&(reactIsExports$2.isFragment(sr)&&console.error(["Material-UI: The Menu component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(` +`)),sr.props.disabled||(kt!=="menu"&&sr.props.selected||Ar===-1)&&(Ar=ar))});var hr=reactExports.Children.map(rt,function(sr,ar){return ar===Ar?reactExports.cloneElement(sr,{ref:function(pr){Kt.current=reactDomExports.findDOMNode(pr),setRef$1(sr.ref,pr)}}):sr});return reactExports.createElement(Popover$1$1,_extends$5({getContentAnchorEl:Wt,classes:Dt,onClose:ft,TransitionProps:_extends$5({onEntering:Vt},Nt),anchorOrigin:jt.direction==="rtl"?RTL_ORIGIN$1:LTR_ORIGIN$1,transformOrigin:jt.direction==="rtl"?RTL_ORIGIN$1:LTR_ORIGIN$1,PaperProps:_extends$5({},St,{classes:_extends$5({},St.classes,{root:nt.paper})}),open:Et,ref:_e,transitionDuration:Rt},Jt),reactExports.createElement(MenuList$1$1,_extends$5({onKeyDown:ur,actions:Gt,autoFocus:tt&&(Ar===-1||ot),autoFocusItem:Ht,variant:kt},ut,{className:clsx$1(nt.list,ut.className)}),hr))});Menu$2.propTypes={anchorEl:PropTypes.oneOfType([HTMLElementType,PropTypes.func]),autoFocus:PropTypes.bool,children:PropTypes.node,classes:PropTypes.object,disableAutoFocusItem:PropTypes.bool,MenuListProps:PropTypes.object,onClose:PropTypes.func,onEnter:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onEntered:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onEntering:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onExit:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onExited:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),onExiting:deprecatedPropType(PropTypes.func,"Use the `TransitionProps` prop instead."),open:PropTypes.bool.isRequired,PaperProps:PropTypes.object,PopoverClasses:PropTypes.object,transitionDuration:PropTypes.oneOfType([PropTypes.oneOf(["auto"]),PropTypes.number,PropTypes.shape({appear:PropTypes.number,enter:PropTypes.number,exit:PropTypes.number})]),TransitionProps:PropTypes.object,variant:PropTypes.oneOf(["menu","selectedMenu"])};const Menu$1$1=withStyles2(styles$a,{name:"MuiMenu"})(Menu$2);var styles$9=function($){return{root:_extends$5({},$.typography.body1,_defineProperty$a$1({minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",width:"auto",overflow:"hidden",whiteSpace:"nowrap"},$.breakpoints.up("sm"),{minHeight:"auto"})),gutters:{},selected:{},dense:_extends$5({},$.typography.body2,{minHeight:"auto"})}},MenuItem$2=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.component,nt=rt===void 0?"li":rt,it=$.disableGutters,ot=it===void 0?!1:it,At=$.ListItemClasses,ut=$.role,ft=ut===void 0?"menuitem":ut,dt=$.selected,Et=$.tabIndex,Bt=_objectWithoutProperties$2($,["classes","className","component","disableGutters","ListItemClasses","role","selected","tabIndex"]),St;return $.disabled||(St=Et!==void 0?Et:-1),reactExports.createElement(ListItem$1,_extends$5({button:!0,role:ft,tabIndex:St,component:nt,selected:dt,disableGutters:ot,classes:_extends$5({dense:et.dense},At),className:clsx$1(et.root,tt,dt&&et.selected,!ot&&et.gutters),ref:_e},Bt))});MenuItem$2.propTypes={children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,component:PropTypes.elementType,dense:PropTypes.bool,disabled:PropTypes.bool,disableGutters:PropTypes.bool,ListItemClasses:PropTypes.object,role:PropTypes.string,selected:PropTypes.bool,tabIndex:PropTypes.number};withStyles2(styles$9,{name:"MuiMenuItem"})(MenuItem$2);var NativeSelectInput$2=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.disabled,nt=$.IconComponent,it=$.inputRef,ot=$.variant,At=ot===void 0?"standard":ot,ut=_objectWithoutProperties$2($,["classes","className","disabled","IconComponent","inputRef","variant"]);return reactExports.createElement(reactExports.Fragment,null,reactExports.createElement("select",_extends$5({className:clsx$1(et.root,et.select,et[At],tt,rt&&et.disabled),disabled:rt,ref:it||_e},ut)),$.multiple?null:reactExports.createElement(nt,{className:clsx$1(et.icon,et["icon".concat(capitalize$1$1(At))],rt&&et.disabled)}))});NativeSelectInput$2.propTypes={children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,disabled:PropTypes.bool,IconComponent:PropTypes.elementType.isRequired,inputRef:refType$1,multiple:PropTypes.bool,name:PropTypes.string,onChange:PropTypes.func,value:PropTypes.any,variant:PropTypes.oneOf(["standard","outlined","filled"])};const NativeSelectInput$1$1=NativeSelectInput$2,ArrowDropDownIcon$1=createSvgIcon$1(reactExports.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");var styles$8=function($){return{root:{},select:{"-moz-appearance":"none","-webkit-appearance":"none",userSelect:"none",borderRadius:0,minWidth:16,cursor:"pointer","&:focus":{backgroundColor:$.palette.type==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)",borderRadius:0},"&::-ms-expand":{display:"none"},"&$disabled":{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:$.palette.background.paper},"&&":{paddingRight:24}},filled:{"&&":{paddingRight:32}},outlined:{borderRadius:$.shape.borderRadius,"&&":{paddingRight:32}},selectMenu:{height:"auto",minHeight:"1.1876em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"},disabled:{},icon:{position:"absolute",right:0,top:"calc(50% - 12px)",pointerEvents:"none",color:$.palette.action.active,"&$disabled":{color:$.palette.action.disabled}},iconOpen:{transform:"rotate(180deg)"},iconFilled:{right:7},iconOutlined:{right:7},nativeInput:{bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%"}}},defaultInput=reactExports.createElement(Input$1$1,null),NativeSelect=reactExports.forwardRef(function($,_e){var et=$.children,tt=$.classes,rt=$.IconComponent,nt=rt===void 0?ArrowDropDownIcon$1:rt,it=$.input,ot=it===void 0?defaultInput:it,At=$.inputProps;$.variant;var ut=_objectWithoutProperties$2($,["children","classes","IconComponent","input","inputProps","variant"]),ft=useFormControl$2(),dt=formControlState$1({props:$,muiFormControl:ft,states:["variant"]});return reactExports.cloneElement(ot,_extends$5({inputComponent:NativeSelectInput$1$1,inputProps:_extends$5({children:et,classes:tt,IconComponent:nt,variant:dt.variant,type:void 0},At,ot?ot.props.inputProps:{}),ref:_e},ut))});NativeSelect.propTypes={children:PropTypes.node,classes:PropTypes.object,IconComponent:PropTypes.elementType,input:PropTypes.element,inputProps:PropTypes.object,onChange:PropTypes.func,value:PropTypes.any,variant:PropTypes.oneOf(["filled","outlined","standard"])};NativeSelect.muiName="Select";withStyles2(styles$8,{name:"MuiNativeSelect"})(NativeSelect);var styles$7=function($){return{root:{position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden"},legend:{textAlign:"left",padding:0,lineHeight:"11px",transition:$.transitions.create("width",{duration:150,easing:$.transitions.easing.easeOut})},legendLabelled:{display:"block",width:"auto",textAlign:"left",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:$.transitions.create("max-width",{duration:50,easing:$.transitions.easing.easeOut}),"& > span":{paddingLeft:5,paddingRight:5,display:"inline-block"}},legendNotched:{maxWidth:1e3,transition:$.transitions.create("max-width",{duration:100,easing:$.transitions.easing.easeOut,delay:50})}}},NotchedOutline$1=reactExports.forwardRef(function($,_e){$.children;var et=$.classes,tt=$.className,rt=$.label,nt=$.labelWidth,it=$.notched,ot=$.style,At=_objectWithoutProperties$2($,["children","classes","className","label","labelWidth","notched","style"]),ut=useTheme$3(),ft=ut.direction==="rtl"?"right":"left";if(rt!==void 0)return reactExports.createElement("fieldset",_extends$5({"aria-hidden":!0,className:clsx$1(et.root,tt),ref:_e,style:ot},At),reactExports.createElement("legend",{className:clsx$1(et.legendLabelled,it&&et.legendNotched)},rt?reactExports.createElement("span",null,rt):reactExports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})));var dt=nt>0?nt*.75+8:.01;return reactExports.createElement("fieldset",_extends$5({"aria-hidden":!0,style:_extends$5(_defineProperty$a$1({},"padding".concat(capitalize$1$1(ft)),8),ot),className:clsx$1(et.root,tt),ref:_e},At),reactExports.createElement("legend",{className:et.legend,style:{width:it?dt:.01}},reactExports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))});NotchedOutline$1.propTypes={children:PropTypes.node,classes:PropTypes.object,className:PropTypes.string,label:PropTypes.node,labelWidth:PropTypes.number.isRequired,notched:PropTypes.bool.isRequired,style:PropTypes.object};const NotchedOutline$1$1=withStyles2(styles$7,{name:"PrivateNotchedOutline"})(NotchedOutline$1);var styles$6=function($){var _e=$.palette.type==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative",borderRadius:$.shape.borderRadius,"&:hover $notchedOutline":{borderColor:$.palette.text.primary},"@media (hover: none)":{"&:hover $notchedOutline":{borderColor:_e}},"&$focused $notchedOutline":{borderColor:$.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:$.palette.error.main},"&$disabled $notchedOutline":{borderColor:$.palette.action.disabled}},colorSecondary:{"&$focused $notchedOutline":{borderColor:$.palette.secondary.main}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},marginDense:{},multiline:{padding:"18.5px 14px","&$marginDense":{paddingTop:10.5,paddingBottom:10.5}},notchedOutline:{borderColor:_e},input:{padding:"18.5px 14px","&:-webkit-autofill":{WebkitBoxShadow:$.palette.type==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:$.palette.type==="light"?null:"#fff",caretColor:$.palette.type==="light"?null:"#fff",borderRadius:"inherit"}},inputMarginDense:{paddingTop:10.5,paddingBottom:10.5},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}},OutlinedInput$2=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.fullWidth,rt=tt===void 0?!1:tt,nt=$.inputComponent,it=nt===void 0?"input":nt,ot=$.label,At=$.labelWidth,ut=At===void 0?0:At,ft=$.multiline,dt=ft===void 0?!1:ft,Et=$.notched,Bt=$.type,St=Bt===void 0?"text":Bt,Dt=_objectWithoutProperties$2($,["classes","fullWidth","inputComponent","label","labelWidth","multiline","notched","type"]);return reactExports.createElement(InputBase$1$1,_extends$5({renderSuffix:function(Rt){return reactExports.createElement(NotchedOutline$1$1,{className:et.notchedOutline,label:ot,labelWidth:ut,notched:typeof Et<"u"?Et:!!(Rt.startAdornment||Rt.filled||Rt.focused)})},classes:_extends$5({},et,{root:clsx$1(et.root,et.underline),notchedOutline:null}),fullWidth:rt,inputComponent:it,multiline:dt,ref:_e,type:St},Dt))});OutlinedInput$2.propTypes={autoComplete:PropTypes.string,autoFocus:PropTypes.bool,classes:PropTypes.object,color:PropTypes.oneOf(["primary","secondary"]),defaultValue:PropTypes.any,disabled:PropTypes.bool,endAdornment:PropTypes.node,error:PropTypes.bool,fullWidth:PropTypes.bool,id:PropTypes.string,inputComponent:PropTypes.elementType,inputProps:PropTypes.object,inputRef:refType$1,label:PropTypes.node,labelWidth:PropTypes.number,margin:PropTypes.oneOf(["dense","none"]),maxRows:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),multiline:PropTypes.bool,name:PropTypes.string,notched:PropTypes.bool,onChange:PropTypes.func,placeholder:PropTypes.string,readOnly:PropTypes.bool,required:PropTypes.bool,rows:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),startAdornment:PropTypes.node,type:PropTypes.string,value:PropTypes.any};OutlinedInput$2.muiName="Input";const OutlinedInput$1$1=withStyles2(styles$6,{name:"MuiOutlinedInput"})(OutlinedInput$2);/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1-lts + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */var isBrowser$5=typeof window<"u"&&typeof document<"u"&&typeof navigator<"u",timeoutDuration=function(){for(var j=["Edge","Trident","Firefox"],$=0;$=0)return 1;return 0}();function microtaskDebounce(j){var $=!1;return function(){$||($=!0,window.Promise.resolve().then(function(){$=!1,j()}))}}function taskDebounce(j){var $=!1;return function(){$||($=!0,setTimeout(function(){$=!1,j()},timeoutDuration))}}var supportsMicroTasks=isBrowser$5&&window.Promise,debounce$1$1=supportsMicroTasks?microtaskDebounce:taskDebounce;function isFunction$5(j){var $={};return j&&$.toString.call(j)==="[object Function]"}function getStyleComputedProperty(j,$){if(j.nodeType!==1)return[];var _e=j.ownerDocument.defaultView,et=_e.getComputedStyle(j,null);return $?et[$]:et}function getParentNode(j){return j.nodeName==="HTML"?j:j.parentNode||j.host}function getScrollParent(j){if(!j)return document.body;switch(j.nodeName){case"HTML":case"BODY":return j.ownerDocument.body;case"#document":return j.body}var $=getStyleComputedProperty(j),_e=$.overflow,et=$.overflowX,tt=$.overflowY;return/(auto|scroll|overlay)/.test(_e+tt+et)?j:getScrollParent(getParentNode(j))}function getReferenceNode(j){return j&&j.referenceNode?j.referenceNode:j}var isIE11=isBrowser$5&&!!(window.MSInputMethodContext&&document.documentMode),isIE10=isBrowser$5&&/MSIE 10/.test(navigator.userAgent);function isIE(j){return j===11?isIE11:j===10?isIE10:isIE11||isIE10}function getOffsetParent(j){if(!j)return document.documentElement;for(var $=isIE(10)?document.body:null,_e=j.offsetParent||null;_e===$&&j.nextElementSibling;)_e=(j=j.nextElementSibling).offsetParent;var et=_e&&_e.nodeName;return!et||et==="BODY"||et==="HTML"?j?j.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(_e.nodeName)!==-1&&getStyleComputedProperty(_e,"position")==="static"?getOffsetParent(_e):_e}function isOffsetContainer(j){var $=j.nodeName;return $==="BODY"?!1:$==="HTML"||getOffsetParent(j.firstElementChild)===j}function getRoot(j){return j.parentNode!==null?getRoot(j.parentNode):j}function findCommonOffsetParent(j,$){if(!j||!j.nodeType||!$||!$.nodeType)return document.documentElement;var _e=j.compareDocumentPosition($)&Node.DOCUMENT_POSITION_FOLLOWING,et=_e?j:$,tt=_e?$:j,rt=document.createRange();rt.setStart(et,0),rt.setEnd(tt,0);var nt=rt.commonAncestorContainer;if(j!==nt&&$!==nt||et.contains(tt))return isOffsetContainer(nt)?nt:getOffsetParent(nt);var it=getRoot(j);return it.host?findCommonOffsetParent(it.host,$):findCommonOffsetParent(j,getRoot($).host)}function getScroll(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",_e=$==="top"?"scrollTop":"scrollLeft",et=j.nodeName;if(et==="BODY"||et==="HTML"){var tt=j.ownerDocument.documentElement,rt=j.ownerDocument.scrollingElement||tt;return rt[_e]}return j[_e]}function includeScroll(j,$){var _e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,et=getScroll($,"top"),tt=getScroll($,"left"),rt=_e?-1:1;return j.top+=et*rt,j.bottom+=et*rt,j.left+=tt*rt,j.right+=tt*rt,j}function getBordersSize(j,$){var _e=$==="x"?"Left":"Top",et=_e==="Left"?"Right":"Bottom";return parseFloat(j["border"+_e+"Width"])+parseFloat(j["border"+et+"Width"])}function getSize(j,$,_e,et){return Math.max($["offset"+j],$["scroll"+j],_e["client"+j],_e["offset"+j],_e["scroll"+j],isIE(10)?parseInt(_e["offset"+j])+parseInt(et["margin"+(j==="Height"?"Top":"Left")])+parseInt(et["margin"+(j==="Height"?"Bottom":"Right")]):0)}function getWindowSizes(j){var $=j.body,_e=j.documentElement,et=isIE(10)&&getComputedStyle(_e);return{height:getSize("Height",$,_e,et),width:getSize("Width",$,_e,et)}}var classCallCheck=function(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")},createClass=function(){function j($,_e){for(var et=0;et<_e.length;et++){var tt=_e[et];tt.enumerable=tt.enumerable||!1,tt.configurable=!0,"value"in tt&&(tt.writable=!0),Object.defineProperty($,tt.key,tt)}}return function($,_e,et){return _e&&j($.prototype,_e),et&&j($,et),$}}(),defineProperty$2$1=function(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j},_extends$4=Object.assign||function(j){for(var $=1;$2&&arguments[2]!==void 0?arguments[2]:!1,et=isIE(10),tt=$.nodeName==="HTML",rt=getBoundingClientRect(j),nt=getBoundingClientRect($),it=getScrollParent(j),ot=getStyleComputedProperty($),At=parseFloat(ot.borderTopWidth),ut=parseFloat(ot.borderLeftWidth);_e&&tt&&(nt.top=Math.max(nt.top,0),nt.left=Math.max(nt.left,0));var ft=getClientRect({top:rt.top-nt.top-At,left:rt.left-nt.left-ut,width:rt.width,height:rt.height});if(ft.marginTop=0,ft.marginLeft=0,!et&&tt){var dt=parseFloat(ot.marginTop),Et=parseFloat(ot.marginLeft);ft.top-=At-dt,ft.bottom-=At-dt,ft.left-=ut-Et,ft.right-=ut-Et,ft.marginTop=dt,ft.marginLeft=Et}return(et&&!_e?$.contains(it):$===it&&it.nodeName!=="BODY")&&(ft=includeScroll(ft,$)),ft}function getViewportOffsetRectRelativeToArtbitraryNode(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,_e=j.ownerDocument.documentElement,et=getOffsetRectRelativeToArbitraryNode(j,_e),tt=Math.max(_e.clientWidth,window.innerWidth||0),rt=Math.max(_e.clientHeight,window.innerHeight||0),nt=$?0:getScroll(_e),it=$?0:getScroll(_e,"left"),ot={top:nt-et.top+et.marginTop,left:it-et.left+et.marginLeft,width:tt,height:rt};return getClientRect(ot)}function isFixed(j){var $=j.nodeName;if($==="BODY"||$==="HTML")return!1;if(getStyleComputedProperty(j,"position")==="fixed")return!0;var _e=getParentNode(j);return _e?isFixed(_e):!1}function getFixedPositionOffsetParent(j){if(!j||!j.parentElement||isIE())return document.documentElement;for(var $=j.parentElement;$&&getStyleComputedProperty($,"transform")==="none";)$=$.parentElement;return $||document.documentElement}function getBoundaries(j,$,_e,et){var tt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,rt={top:0,left:0},nt=tt?getFixedPositionOffsetParent(j):findCommonOffsetParent(j,getReferenceNode($));if(et==="viewport")rt=getViewportOffsetRectRelativeToArtbitraryNode(nt,tt);else{var it=void 0;et==="scrollParent"?(it=getScrollParent(getParentNode($)),it.nodeName==="BODY"&&(it=j.ownerDocument.documentElement)):et==="window"?it=j.ownerDocument.documentElement:it=et;var ot=getOffsetRectRelativeToArbitraryNode(it,nt,tt);if(it.nodeName==="HTML"&&!isFixed(nt)){var At=getWindowSizes(j.ownerDocument),ut=At.height,ft=At.width;rt.top+=ot.top-ot.marginTop,rt.bottom=ut+ot.top,rt.left+=ot.left-ot.marginLeft,rt.right=ft+ot.left}else rt=ot}_e=_e||0;var dt=typeof _e=="number";return rt.left+=dt?_e:_e.left||0,rt.top+=dt?_e:_e.top||0,rt.right-=dt?_e:_e.right||0,rt.bottom-=dt?_e:_e.bottom||0,rt}function getArea(j){var $=j.width,_e=j.height;return $*_e}function computeAutoPlacement(j,$,_e,et,tt){var rt=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(j.indexOf("auto")===-1)return j;var nt=getBoundaries(_e,et,rt,tt),it={top:{width:nt.width,height:$.top-nt.top},right:{width:nt.right-$.right,height:nt.height},bottom:{width:nt.width,height:nt.bottom-$.bottom},left:{width:$.left-nt.left,height:nt.height}},ot=Object.keys(it).map(function(dt){return _extends$4({key:dt},it[dt],{area:getArea(it[dt])})}).sort(function(dt,Et){return Et.area-dt.area}),At=ot.filter(function(dt){var Et=dt.width,Bt=dt.height;return Et>=_e.clientWidth&&Bt>=_e.clientHeight}),ut=At.length>0?At[0].key:ot[0].key,ft=j.split("-")[1];return ut+(ft?"-"+ft:"")}function getReferenceOffsets(j,$,_e){var et=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,tt=et?getFixedPositionOffsetParent($):findCommonOffsetParent($,getReferenceNode(_e));return getOffsetRectRelativeToArbitraryNode(_e,tt,et)}function getOuterSizes(j){var $=j.ownerDocument.defaultView,_e=$.getComputedStyle(j),et=parseFloat(_e.marginTop||0)+parseFloat(_e.marginBottom||0),tt=parseFloat(_e.marginLeft||0)+parseFloat(_e.marginRight||0),rt={width:j.offsetWidth+tt,height:j.offsetHeight+et};return rt}function getOppositePlacement(j){var $={left:"right",right:"left",bottom:"top",top:"bottom"};return j.replace(/left|right|bottom|top/g,function(_e){return $[_e]})}function getPopperOffsets(j,$,_e){_e=_e.split("-")[0];var et=getOuterSizes(j),tt={width:et.width,height:et.height},rt=["right","left"].indexOf(_e)!==-1,nt=rt?"top":"left",it=rt?"left":"top",ot=rt?"height":"width",At=rt?"width":"height";return tt[nt]=$[nt]+$[ot]/2-et[ot]/2,_e===it?tt[it]=$[it]-et[At]:tt[it]=$[getOppositePlacement(it)],tt}function find$1(j,$){return Array.prototype.find?j.find($):j.filter($)[0]}function findIndex$1(j,$,_e){if(Array.prototype.findIndex)return j.findIndex(function(tt){return tt[$]===_e});var et=find$1(j,function(tt){return tt[$]===_e});return j.indexOf(et)}function runModifiers(j,$,_e){var et=_e===void 0?j:j.slice(0,findIndex$1(j,"name",_e));return et.forEach(function(tt){tt.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var rt=tt.function||tt.fn;tt.enabled&&isFunction$5(rt)&&($.offsets.popper=getClientRect($.offsets.popper),$.offsets.reference=getClientRect($.offsets.reference),$=rt($,tt))}),$}function update(){if(!this.state.isDestroyed){var j={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};j.offsets.reference=getReferenceOffsets(this.state,this.popper,this.reference,this.options.positionFixed),j.placement=computeAutoPlacement(this.options.placement,j.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),j.originalPlacement=j.placement,j.positionFixed=this.options.positionFixed,j.offsets.popper=getPopperOffsets(this.popper,j.offsets.reference,j.placement),j.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",j=runModifiers(this.modifiers,j),this.state.isCreated?this.options.onUpdate(j):(this.state.isCreated=!0,this.options.onCreate(j))}}function isModifierEnabled(j,$){return j.some(function(_e){var et=_e.name,tt=_e.enabled;return tt&&et===$})}function getSupportedPropertyName(j){for(var $=[!1,"ms","Webkit","Moz","O"],_e=j.charAt(0).toUpperCase()+j.slice(1),et=0;et<$.length;et++){var tt=$[et],rt=tt?""+tt+_e:j;if(typeof document.body.style[rt]<"u")return rt}return null}function destroy(){return this.state.isDestroyed=!0,isModifierEnabled(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[getSupportedPropertyName("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function getWindow(j){var $=j.ownerDocument;return $?$.defaultView:window}function attachToScrollParents(j,$,_e,et){var tt=j.nodeName==="BODY",rt=tt?j.ownerDocument.defaultView:j;rt.addEventListener($,_e,{passive:!0}),tt||attachToScrollParents(getScrollParent(rt.parentNode),$,_e,et),et.push(rt)}function setupEventListeners(j,$,_e,et){_e.updateBound=et,getWindow(j).addEventListener("resize",_e.updateBound,{passive:!0});var tt=getScrollParent(j);return attachToScrollParents(tt,"scroll",_e.updateBound,_e.scrollParents),_e.scrollElement=tt,_e.eventsEnabled=!0,_e}function enableEventListeners(){this.state.eventsEnabled||(this.state=setupEventListeners(this.reference,this.options,this.state,this.scheduleUpdate))}function removeEventListeners(j,$){return getWindow(j).removeEventListener("resize",$.updateBound),$.scrollParents.forEach(function(_e){_e.removeEventListener("scroll",$.updateBound)}),$.updateBound=null,$.scrollParents=[],$.scrollElement=null,$.eventsEnabled=!1,$}function disableEventListeners(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=removeEventListeners(this.reference,this.state))}function isNumeric(j){return j!==""&&!isNaN(parseFloat(j))&&isFinite(j)}function setStyles(j,$){Object.keys($).forEach(function(_e){var et="";["width","height","top","right","bottom","left"].indexOf(_e)!==-1&&isNumeric($[_e])&&(et="px"),j.style[_e]=$[_e]+et})}function setAttributes(j,$){Object.keys($).forEach(function(_e){var et=$[_e];et!==!1?j.setAttribute(_e,$[_e]):j.removeAttribute(_e)})}function applyStyle(j){return setStyles(j.instance.popper,j.styles),setAttributes(j.instance.popper,j.attributes),j.arrowElement&&Object.keys(j.arrowStyles).length&&setStyles(j.arrowElement,j.arrowStyles),j}function applyStyleOnLoad(j,$,_e,et,tt){var rt=getReferenceOffsets(tt,$,j,_e.positionFixed),nt=computeAutoPlacement(_e.placement,rt,$,j,_e.modifiers.flip.boundariesElement,_e.modifiers.flip.padding);return $.setAttribute("x-placement",nt),setStyles($,{position:_e.positionFixed?"fixed":"absolute"}),_e}function getRoundedOffsets(j,$){var _e=j.offsets,et=_e.popper,tt=_e.reference,rt=Math.round,nt=Math.floor,it=function($t){return $t},ot=rt(tt.width),At=rt(et.width),ut=["left","right"].indexOf(j.placement)!==-1,ft=j.placement.indexOf("-")!==-1,dt=ot%2===At%2,Et=ot%2===1&&At%2===1,Bt=$?ut||ft||dt?rt:nt:it,St=$?rt:it;return{left:Bt(Et&&!ft&&$?et.left-1:et.left),top:St(et.top),bottom:St(et.bottom),right:Bt(et.right)}}var isFirefox$1=isBrowser$5&&/Firefox/i.test(navigator.userAgent);function computeStyle(j,$){var _e=$.x,et=$.y,tt=j.offsets.popper,rt=find$1(j.instance.modifiers,function(wt){return wt.name==="applyStyle"}).gpuAcceleration;rt!==void 0&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var nt=rt!==void 0?rt:$.gpuAcceleration,it=getOffsetParent(j.instance.popper),ot=getBoundingClientRect(it),At={position:tt.position},ut=getRoundedOffsets(j,window.devicePixelRatio<2||!isFirefox$1),ft=_e==="bottom"?"top":"bottom",dt=et==="right"?"left":"right",Et=getSupportedPropertyName("transform"),Bt=void 0,St=void 0;if(ft==="bottom"?it.nodeName==="HTML"?St=-it.clientHeight+ut.bottom:St=-ot.height+ut.bottom:St=ut.top,dt==="right"?it.nodeName==="HTML"?Bt=-it.clientWidth+ut.right:Bt=-ot.width+ut.right:Bt=ut.left,nt&&Et)At[Et]="translate3d("+Bt+"px, "+St+"px, 0)",At[ft]=0,At[dt]=0,At.willChange="transform";else{var Dt=ft==="bottom"?-1:1,$t=dt==="right"?-1:1;At[ft]=St*Dt,At[dt]=Bt*$t,At.willChange=ft+", "+dt}var Rt={"x-placement":j.placement};return j.attributes=_extends$4({},Rt,j.attributes),j.styles=_extends$4({},At,j.styles),j.arrowStyles=_extends$4({},j.offsets.arrow,j.arrowStyles),j}function isModifierRequired(j,$,_e){var et=find$1(j,function(it){var ot=it.name;return ot===$}),tt=!!et&&j.some(function(it){return it.name===_e&&it.enabled&&it.ordernt[Et]&&(j.offsets.popper[ft]+=it[ft]+Bt-nt[Et]),j.offsets.popper=getClientRect(j.offsets.popper);var St=it[ft]+it[At]/2-Bt/2,Dt=getStyleComputedProperty(j.instance.popper),$t=parseFloat(Dt["margin"+ut]),Rt=parseFloat(Dt["border"+ut+"Width"]),wt=St-j.offsets.popper[ft]-$t-Rt;return wt=Math.max(Math.min(nt[At]-Bt,wt),0),j.arrowElement=et,j.offsets.arrow=(_e={},defineProperty$2$1(_e,ft,Math.round(wt)),defineProperty$2$1(_e,dt,""),_e),j}function getOppositeVariation(j){return j==="end"?"start":j==="start"?"end":j}var placements=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],validPlacements=placements.slice(3);function clockwise(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,_e=validPlacements.indexOf(j),et=validPlacements.slice(_e+1).concat(validPlacements.slice(0,_e));return $?et.reverse():et}var BEHAVIORS={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function flip(j,$){if(isModifierEnabled(j.instance.modifiers,"inner")||j.flipped&&j.placement===j.originalPlacement)return j;var _e=getBoundaries(j.instance.popper,j.instance.reference,$.padding,$.boundariesElement,j.positionFixed),et=j.placement.split("-")[0],tt=getOppositePlacement(et),rt=j.placement.split("-")[1]||"",nt=[];switch($.behavior){case BEHAVIORS.FLIP:nt=[et,tt];break;case BEHAVIORS.CLOCKWISE:nt=clockwise(et);break;case BEHAVIORS.COUNTERCLOCKWISE:nt=clockwise(et,!0);break;default:nt=$.behavior}return nt.forEach(function(it,ot){if(et!==it||nt.length===ot+1)return j;et=j.placement.split("-")[0],tt=getOppositePlacement(et);var At=j.offsets.popper,ut=j.offsets.reference,ft=Math.floor,dt=et==="left"&&ft(At.right)>ft(ut.left)||et==="right"&&ft(At.left)ft(ut.top)||et==="bottom"&&ft(At.top)ft(_e.right),St=ft(At.top)ft(_e.bottom),$t=et==="left"&&Et||et==="right"&&Bt||et==="top"&&St||et==="bottom"&&Dt,Rt=["top","bottom"].indexOf(et)!==-1,wt=!!$.flipVariations&&(Rt&&rt==="start"&&Et||Rt&&rt==="end"&&Bt||!Rt&&rt==="start"&&St||!Rt&&rt==="end"&&Dt),xt=!!$.flipVariationsByContent&&(Rt&&rt==="start"&&Bt||Rt&&rt==="end"&&Et||!Rt&&rt==="start"&&Dt||!Rt&&rt==="end"&&St),Nt=wt||xt;(dt||$t||Nt)&&(j.flipped=!0,(dt||$t)&&(et=nt[ot+1]),Nt&&(rt=getOppositeVariation(rt)),j.placement=et+(rt?"-"+rt:""),j.offsets.popper=_extends$4({},j.offsets.popper,getPopperOffsets(j.instance.popper,j.offsets.reference,j.placement)),j=runModifiers(j.instance.modifiers,j,"flip"))}),j}function keepTogether(j){var $=j.offsets,_e=$.popper,et=$.reference,tt=j.placement.split("-")[0],rt=Math.floor,nt=["top","bottom"].indexOf(tt)!==-1,it=nt?"right":"bottom",ot=nt?"left":"top",At=nt?"width":"height";return _e[it]rt(et[it])&&(j.offsets.popper[ot]=rt(et[it])),j}function toValue(j,$,_e,et){var tt=j.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),rt=+tt[1],nt=tt[2];if(!rt)return j;if(nt.indexOf("%")===0){var it=void 0;switch(nt){case"%p":it=_e;break;case"%":case"%r":default:it=et}var ot=getClientRect(it);return ot[$]/100*rt}else if(nt==="vh"||nt==="vw"){var At=void 0;return nt==="vh"?At=Math.max(document.documentElement.clientHeight,window.innerHeight||0):At=Math.max(document.documentElement.clientWidth,window.innerWidth||0),At/100*rt}else return rt}function parseOffset(j,$,_e,et){var tt=[0,0],rt=["right","left"].indexOf(et)!==-1,nt=j.split(/(\+|\-)/).map(function(ut){return ut.trim()}),it=nt.indexOf(find$1(nt,function(ut){return ut.search(/,|\s/)!==-1}));nt[it]&&nt[it].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var ot=/\s*,\s*|\s+/,At=it!==-1?[nt.slice(0,it).concat([nt[it].split(ot)[0]]),[nt[it].split(ot)[1]].concat(nt.slice(it+1))]:[nt];return At=At.map(function(ut,ft){var dt=(ft===1?!rt:rt)?"height":"width",Et=!1;return ut.reduce(function(Bt,St){return Bt[Bt.length-1]===""&&["+","-"].indexOf(St)!==-1?(Bt[Bt.length-1]=St,Et=!0,Bt):Et?(Bt[Bt.length-1]+=St,Et=!1,Bt):Bt.concat(St)},[]).map(function(Bt){return toValue(Bt,dt,$,_e)})}),At.forEach(function(ut,ft){ut.forEach(function(dt,Et){isNumeric(dt)&&(tt[ft]+=dt*(ut[Et-1]==="-"?-1:1))})}),tt}function offset(j,$){var _e=$.offset,et=j.placement,tt=j.offsets,rt=tt.popper,nt=tt.reference,it=et.split("-")[0],ot=void 0;return isNumeric(+_e)?ot=[+_e,0]:ot=parseOffset(_e,rt,nt,it),it==="left"?(rt.top+=ot[0],rt.left-=ot[1]):it==="right"?(rt.top+=ot[0],rt.left+=ot[1]):it==="top"?(rt.left+=ot[0],rt.top-=ot[1]):it==="bottom"&&(rt.left+=ot[0],rt.top+=ot[1]),j.popper=rt,j}function preventOverflow(j,$){var _e=$.boundariesElement||getOffsetParent(j.instance.popper);j.instance.reference===_e&&(_e=getOffsetParent(_e));var et=getSupportedPropertyName("transform"),tt=j.instance.popper.style,rt=tt.top,nt=tt.left,it=tt[et];tt.top="",tt.left="",tt[et]="";var ot=getBoundaries(j.instance.popper,j.instance.reference,$.padding,_e,j.positionFixed);tt.top=rt,tt.left=nt,tt[et]=it,$.boundaries=ot;var At=$.priority,ut=j.offsets.popper,ft={primary:function(Et){var Bt=ut[Et];return ut[Et]ot[Et]&&!$.escapeWithReference&&(St=Math.min(ut[Bt],ot[Et]-(Et==="right"?ut.width:ut.height))),defineProperty$2$1({},Bt,St)}};return At.forEach(function(dt){var Et=["left","top"].indexOf(dt)!==-1?"primary":"secondary";ut=_extends$4({},ut,ft[Et](dt))}),j.offsets.popper=ut,j}function shift(j){var $=j.placement,_e=$.split("-")[0],et=$.split("-")[1];if(et){var tt=j.offsets,rt=tt.reference,nt=tt.popper,it=["bottom","top"].indexOf(_e)!==-1,ot=it?"left":"top",At=it?"width":"height",ut={start:defineProperty$2$1({},ot,rt[ot]),end:defineProperty$2$1({},ot,rt[ot]+rt[At]-nt[At])};j.offsets.popper=_extends$4({},nt,ut[et])}return j}function hide(j){if(!isModifierRequired(j.instance.modifiers,"hide","preventOverflow"))return j;var $=j.offsets.reference,_e=find$1(j.instance.modifiers,function(et){return et.name==="preventOverflow"}).boundaries;if($.bottom<_e.top||$.left>_e.right||$.top>_e.bottom||$.right<_e.left){if(j.hide===!0)return j;j.hide=!0,j.attributes["x-out-of-boundaries"]=""}else{if(j.hide===!1)return j;j.hide=!1,j.attributes["x-out-of-boundaries"]=!1}return j}function inner(j){var $=j.placement,_e=$.split("-")[0],et=j.offsets,tt=et.popper,rt=et.reference,nt=["left","right"].indexOf(_e)!==-1,it=["top","left"].indexOf(_e)===-1;return tt[nt?"left":"top"]=rt[_e]-(it?tt[nt?"width":"height"]:0),j.placement=getOppositePlacement($),j.offsets.popper=getClientRect(tt),j}var modifiers={shift:{order:100,enabled:!0,fn:shift},offset:{order:200,enabled:!0,fn:offset,offset:0},preventOverflow:{order:300,enabled:!0,fn:preventOverflow,priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:keepTogether},arrow:{order:500,enabled:!0,fn:arrow,element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:flip,behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:inner},hide:{order:800,enabled:!0,fn:hide},computeStyle:{order:850,enabled:!0,fn:computeStyle,gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:applyStyle,onLoad:applyStyleOnLoad,gpuAcceleration:void 0}},Defaults={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers},Popper$2=function(){function j($,_e){var et=this,tt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};classCallCheck(this,j),this.scheduleUpdate=function(){return requestAnimationFrame(et.update)},this.update=debounce$1$1(this.update.bind(this)),this.options=_extends$4({},j.Defaults,tt),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=$&&$.jquery?$[0]:$,this.popper=_e&&_e.jquery?_e[0]:_e,this.options.modifiers={},Object.keys(_extends$4({},j.Defaults.modifiers,tt.modifiers)).forEach(function(nt){et.options.modifiers[nt]=_extends$4({},j.Defaults.modifiers[nt]||{},tt.modifiers?tt.modifiers[nt]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(nt){return _extends$4({name:nt},et.options.modifiers[nt])}).sort(function(nt,it){return nt.order-it.order}),this.modifiers.forEach(function(nt){nt.enabled&&isFunction$5(nt.onLoad)&&nt.onLoad(et.reference,et.popper,et.options,nt,et.state)}),this.update();var rt=this.options.eventsEnabled;rt&&this.enableEventListeners(),this.state.eventsEnabled=rt}return createClass(j,[{key:"update",value:function(){return update.call(this)}},{key:"destroy",value:function(){return destroy.call(this)}},{key:"enableEventListeners",value:function(){return enableEventListeners.call(this)}},{key:"disableEventListeners",value:function(){return disableEventListeners.call(this)}}]),j}();Popper$2.Utils=(typeof window<"u"?window:global).PopperUtils;Popper$2.placements=placements;Popper$2.Defaults=Defaults;const PopperJs=Popper$2;function flipPlacement(j,$){var _e=$&&$.direction||"ltr";if(_e==="ltr")return j;switch(j){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return j}}function getAnchorEl(j){return typeof j=="function"?j():j}var useEnhancedEffect$8=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,defaultPopperOptions={},Popper=reactExports.forwardRef(function($,_e){var et=$.anchorEl,tt=$.children,rt=$.container,nt=$.disablePortal,it=nt===void 0?!1:nt,ot=$.keepMounted,At=ot===void 0?!1:ot,ut=$.modifiers,ft=$.open,dt=$.placement,Et=dt===void 0?"bottom":dt,Bt=$.popperOptions,St=Bt===void 0?defaultPopperOptions:Bt,Dt=$.popperRef,$t=$.style,Rt=$.transition,wt=Rt===void 0?!1:Rt,xt=_objectWithoutProperties$2($,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),Nt=reactExports.useRef(null),Ot=useForkRef$1(Nt,_e),kt=reactExports.useRef(null),Jt=useForkRef$1(kt,Dt),jt=reactExports.useRef(Jt);useEnhancedEffect$8(function(){jt.current=Jt},[Jt]),reactExports.useImperativeHandle(Dt,function(){return kt.current},[]);var Ht=reactExports.useState(!0),Gt=Ht[0],Kt=Ht[1],Wt=useTheme$1$1(),Vt=flipPlacement(Et,Wt),ur=reactExports.useState(Vt),Ar=ur[0],hr=ur[1];reactExports.useEffect(function(){kt.current&&kt.current.update()});var sr=reactExports.useCallback(function(){if(!(!Nt.current||!et||!ft)){kt.current&&(kt.current.destroy(),jt.current(null));var vr=function($r){hr($r.placement)},_r=getAnchorEl(et);if(_r&&_r.nodeType===1){var Er=_r.getBoundingClientRect();Er.top===0&&Er.left===0&&Er.right===0&&Er.bottom===0&&console.warn(["Material-UI: The `anchorEl` prop provided to the component is invalid.","The anchor element should be part of the document layout.","Make sure the element is present in the document or that it's not display none."].join(` +`))}var Lr=new PopperJs(getAnchorEl(et),Nt.current,_extends$5({placement:Vt},St,{modifiers:_extends$5({},it?{}:{preventOverflow:{boundariesElement:"window"}},ut,St.modifiers),onCreate:createChainedFunction$1(vr,St.onCreate),onUpdate:createChainedFunction$1(vr,St.onUpdate)}));jt.current(Lr)}},[et,it,ut,ft,Vt,St]),ar=reactExports.useCallback(function(vr){setRef$1(Ot,vr),sr()},[Ot,sr]),Yt=function(){Kt(!1)},pr=function(){kt.current&&(kt.current.destroy(),jt.current(null))},Zt=function(){Kt(!0),pr()};if(reactExports.useEffect(function(){return function(){pr()}},[]),reactExports.useEffect(function(){!ft&&!wt&&pr()},[ft,wt]),!At&&!ft&&(!wt||Gt))return null;var mr={placement:Ar};return wt&&(mr.TransitionProps={in:ft,onEnter:Yt,onExited:Zt}),reactExports.createElement(Portal$1$1,{disablePortal:it,container:rt},reactExports.createElement("div",_extends$5({ref:ar,role:"tooltip"},xt,{style:_extends$5({position:"fixed",top:0,left:0,display:!ft&&At&&!wt?"none":null},$t)}),typeof tt=="function"?tt(mr):tt))});Popper.propTypes={anchorEl:chainPropTypes(PropTypes.oneOfType([HTMLElementType,PropTypes.object,PropTypes.func]),function(j){if(j.open){var $=getAnchorEl(j.anchorEl);if($&&$.nodeType===1){var _e=$.getBoundingClientRect();if(_e.top===0&&_e.left===0&&_e.right===0&&_e.bottom===0)return new Error(["Material-UI: The `anchorEl` prop provided to the component is invalid.","The anchor element should be part of the document layout.","Make sure the element is present in the document or that it's not display none."].join(` +`))}else if(!$||typeof $.clientWidth!="number"||typeof $.clientHeight!="number"||typeof $.getBoundingClientRect!="function")return new Error(["Material-UI: The `anchorEl` prop provided to the component is invalid.","It should be an HTML element instance or a referenceObject ","(https://popper.js.org/docs/v1/#referenceObject)."].join(` +`))}return null}),children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]).isRequired,container:PropTypes.oneOfType([HTMLElementType,PropTypes.instanceOf(reactExports.Component),PropTypes.func]),disablePortal:PropTypes.bool,keepMounted:PropTypes.bool,modifiers:PropTypes.object,open:PropTypes.bool.isRequired,placement:PropTypes.oneOf(["bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),popperOptions:PropTypes.object,popperRef:refType$1,style:PropTypes.object,transition:PropTypes.bool};function areEqualValues$1(j,$){return _typeof$7$1($)==="object"&&$!==null?j===$:String(j)===String($)}function isEmpty$5(j){return j==null||typeof j=="string"&&!j.trim()}var SelectInput$2=reactExports.forwardRef(function($,_e){var et=$["aria-label"],tt=$.autoFocus,rt=$.autoWidth,nt=$.children,it=$.classes,ot=$.className,At=$.defaultValue,ut=$.disabled,ft=$.displayEmpty,dt=$.IconComponent,Et=$.inputRef,Bt=$.labelId,St=$.MenuProps,Dt=St===void 0?{}:St,$t=$.multiple,Rt=$.name,wt=$.onBlur,xt=$.onChange,Nt=$.onClose,Ot=$.onFocus,kt=$.onOpen,Jt=$.open,jt=$.readOnly,Ht=$.renderValue,Gt=$.SelectDisplayProps,Kt=Gt===void 0?{}:Gt,Wt=$.tabIndex;$.type;var Vt=$.value,ur=$.variant,Ar=ur===void 0?"standard":ur,hr=_objectWithoutProperties$2($,["aria-label","autoFocus","autoWidth","children","classes","className","defaultValue","disabled","displayEmpty","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"]),sr=useControlled$1({controlled:Vt,default:At,name:"Select"}),ar=_slicedToArray$2$1(sr,2),Yt=ar[0],pr=ar[1],Zt=reactExports.useRef(null),mr=reactExports.useState(null),vr=mr[0],_r=mr[1],Er=reactExports.useRef(Jt!=null),Lr=Er.current,Rr=reactExports.useState(),$r=Rr[0],xr=Rr[1],Fr=reactExports.useState(!1),Nr=Fr[0],Xt=Fr[1],cr=useForkRef$1(_e,Et);reactExports.useImperativeHandle(cr,function(){return{focus:function(){vr.focus()},node:Zt.current,value:Yt}},[vr,Yt]),reactExports.useEffect(function(){tt&&vr&&vr.focus()},[tt,vr]),reactExports.useEffect(function(){if(vr){var un=ownerDocument$1(vr).getElementById(Bt);if(un){var dn=function(){getSelection().isCollapsed&&vr.focus()};return un.addEventListener("click",dn),function(){un.removeEventListener("click",dn)}}}},[Bt,vr]);var ir=function(dn,wn){dn?kt&&kt(wn):Nt&&Nt(wn),Lr||(xr(rt?null:vr.clientWidth),Xt(dn))},Qr=function(dn){dn.button===0&&(dn.preventDefault(),vr.focus(),ir(!0,dn))},Or=function(dn){ir(!1,dn)},Yr=reactExports.Children.toArray(nt),wr=function(dn){var wn=Yr.map(function(Tn){return Tn.props.value}).indexOf(dn.target.value);if(wn!==-1){var Nn=Yr[wn];pr(Nn.props.value),xt&&xt(dn,Nn)}},rr=function(dn){return function(wn){$t||ir(!1,wn);var Nn;if($t){Nn=Array.isArray(Yt)?Yt.slice():[];var Tn=Yt.indexOf(dn.props.value);Tn===-1?Nn.push(dn.props.value):Nn.splice(Tn,1)}else Nn=dn.props.value;dn.props.onClick&&dn.props.onClick(wn),Yt!==Nn&&(pr(Nn),xt&&(wn.persist(),Object.defineProperty(wn,"target",{writable:!0,value:{value:Nn,name:Rt}}),xt(wn,dn)))}},er=function(dn){if(!jt){var wn=[" ","ArrowUp","ArrowDown","Enter"];wn.indexOf(dn.key)!==-1&&(dn.preventDefault(),ir(!0,dn))}},lr=vr!==null&&(Lr?Jt:Nr),fr=function(dn){!lr&&wt&&(dn.persist(),Object.defineProperty(dn,"target",{writable:!0,value:{value:Yt,name:Rt}}),wt(dn))};delete hr["aria-invalid"];var yr,Ur,Wr=[],Pr=!1,Zr=!1;(isFilled$1({value:Yt})||ft)&&(Ht?yr=Ht(Yt):Pr=!0);var rn=Yr.map(function(un){if(!reactExports.isValidElement(un))return null;reactIsExports$2.isFragment(un)&&console.error(["Material-UI: The Select component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(` +`));var dn;if($t){if(!Array.isArray(Yt))throw new Error("Material-UI: The `value` prop must be an array when using the `Select` component with `multiple`.");dn=Yt.some(function(wn){return areEqualValues$1(wn,un.props.value)}),dn&&Pr&&Wr.push(un.props.children)}else dn=areEqualValues$1(Yt,un.props.value),dn&&Pr&&(Ur=un.props.children);return dn&&(Zr=!0),reactExports.cloneElement(un,{"aria-selected":dn?"true":void 0,onClick:rr(un),onKeyUp:function(Nn){Nn.key===" "&&Nn.preventDefault(),un.props.onKeyUp&&un.props.onKeyUp(Nn)},role:"option",selected:dn,value:void 0,"data-value":un.props.value})});reactExports.useEffect(function(){if(!Zr&&!$t&&Yt!==""){var un=Yr.map(function(dn){return dn.props.value});console.warn(["Material-UI: You have provided an out-of-range value `".concat(Yt,"` for the select ").concat(Rt?'(name="'.concat(Rt,'") '):"","component."),"Consider providing a value that matches one of the available options or ''.","The available values are ".concat(un.filter(function(dn){return dn!=null}).map(function(dn){return"`".concat(dn,"`")}).join(", ")||'""',".")].join(` +`))}},[Zr,Yr,$t,Rt,Yt]),Pr&&(yr=$t?Wr.join(", "):Ur);var on=$r;!rt&&Lr&&vr&&(on=vr.clientWidth);var In;typeof Wt<"u"?In=Wt:In=ut?null:0;var Sn=Kt.id||(Rt?"mui-component-select-".concat(Rt):void 0);return reactExports.createElement(reactExports.Fragment,null,reactExports.createElement("div",_extends$5({className:clsx$1(it.root,it.select,it.selectMenu,it[Ar],ot,ut&&it.disabled),ref:_r,tabIndex:In,role:"button","aria-disabled":ut?"true":void 0,"aria-expanded":lr?"true":void 0,"aria-haspopup":"listbox","aria-label":et,"aria-labelledby":[Bt,Sn].filter(Boolean).join(" ")||void 0,onKeyDown:er,onMouseDown:ut||jt?null:Qr,onBlur:fr,onFocus:Ot},Kt,{id:Sn}),isEmpty$5(yr)?reactExports.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}}):yr),reactExports.createElement("input",_extends$5({value:Array.isArray(Yt)?Yt.join(","):Yt,name:Rt,ref:Zt,"aria-hidden":!0,onChange:wr,tabIndex:-1,className:it.nativeInput,autoFocus:tt},hr)),reactExports.createElement(dt,{className:clsx$1(it.icon,it["icon".concat(capitalize$1$1(Ar))],lr&&it.iconOpen,ut&&it.disabled)}),reactExports.createElement(Menu$1$1,_extends$5({id:"menu-".concat(Rt||""),anchorEl:vr,open:lr,onClose:Or},Dt,{MenuListProps:_extends$5({"aria-labelledby":Bt,role:"listbox",disableListWrap:!0},Dt.MenuListProps),PaperProps:_extends$5({},Dt.PaperProps,{style:_extends$5({minWidth:on},Dt.PaperProps!=null?Dt.PaperProps.style:null)})}),rn))});SelectInput$2.propTypes={"aria-label":PropTypes.string,autoFocus:PropTypes.bool,autoWidth:PropTypes.bool,children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,defaultValue:PropTypes.any,disabled:PropTypes.bool,displayEmpty:PropTypes.bool,IconComponent:PropTypes.elementType.isRequired,inputRef:refType$1,labelId:PropTypes.string,MenuProps:PropTypes.object,multiple:PropTypes.bool,name:PropTypes.string,onBlur:PropTypes.func,onChange:PropTypes.func,onClose:PropTypes.func,onFocus:PropTypes.func,onOpen:PropTypes.func,open:PropTypes.bool,readOnly:PropTypes.bool,renderValue:PropTypes.func,SelectDisplayProps:PropTypes.object,tabIndex:PropTypes.oneOfType([PropTypes.number,PropTypes.string]),type:PropTypes.any,value:PropTypes.any,variant:PropTypes.oneOf(["standard","outlined","filled"])};const SelectInput$1$1=SelectInput$2;var styles$5=styles$8,_ref=reactExports.createElement(Input$1$1,null),_ref2=reactExports.createElement(FilledInput$1$1,null),Select$2=reactExports.forwardRef(function j($,_e){var et=$.autoWidth,tt=et===void 0?!1:et,rt=$.children,nt=$.classes,it=$.displayEmpty,ot=it===void 0?!1:it,At=$.IconComponent,ut=At===void 0?ArrowDropDownIcon$1:At,ft=$.id,dt=$.input,Et=$.inputProps,Bt=$.label,St=$.labelId,Dt=$.labelWidth,$t=Dt===void 0?0:Dt,Rt=$.MenuProps,wt=$.multiple,xt=wt===void 0?!1:wt,Nt=$.native,Ot=Nt===void 0?!1:Nt,kt=$.onClose,Jt=$.onOpen,jt=$.open,Ht=$.renderValue,Gt=$.SelectDisplayProps,Kt=$.variant,Wt=Kt===void 0?"standard":Kt,Vt=_objectWithoutProperties$2($,["autoWidth","children","classes","displayEmpty","IconComponent","id","input","inputProps","label","labelId","labelWidth","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"]),ur=Ot?NativeSelectInput$1$1:SelectInput$1$1,Ar=useFormControl$2(),hr=formControlState$1({props:$,muiFormControl:Ar,states:["variant"]}),sr=hr.variant||Wt,ar=dt||{standard:_ref,outlined:reactExports.createElement(OutlinedInput$1$1,{label:Bt,labelWidth:$t}),filled:_ref2}[sr];return reactExports.cloneElement(ar,_extends$5({inputComponent:ur,inputProps:_extends$5({children:rt,IconComponent:ut,variant:sr,type:void 0,multiple:xt},Ot?{id:ft}:{autoWidth:tt,displayEmpty:ot,labelId:St,MenuProps:Rt,onClose:kt,onOpen:Jt,open:jt,renderValue:Ht,SelectDisplayProps:_extends$5({id:ft},Gt)},Et,{classes:Et?mergeClasses({baseClasses:nt,newClasses:Et.classes,Component:j}):nt},dt?dt.props.inputProps:{}),ref:_e},Vt))});Select$2.propTypes={autoWidth:PropTypes.bool,children:PropTypes.node,classes:PropTypes.object,defaultValue:PropTypes.any,displayEmpty:PropTypes.bool,IconComponent:PropTypes.elementType,id:PropTypes.string,input:PropTypes.element,inputProps:PropTypes.object,label:PropTypes.node,labelId:PropTypes.string,labelWidth:PropTypes.number,MenuProps:PropTypes.object,multiple:PropTypes.bool,native:PropTypes.bool,onChange:PropTypes.func,onClose:PropTypes.func,onOpen:PropTypes.func,open:PropTypes.bool,renderValue:PropTypes.func,SelectDisplayProps:PropTypes.object,value:PropTypes.any,variant:PropTypes.oneOf(["filled","outlined","standard"])};Select$2.muiName="Select";withStyles2(styles$5,{name:"MuiSelect"})(Select$2);var TableContext=reactExports.createContext();TableContext.displayName="TableContext";const TableContext$1=TableContext;var styles$4=function($){return{root:{display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":_extends$5({},$.typography.body2,{padding:$.spacing(2),color:$.palette.text.secondary,textAlign:"left",captionSide:"bottom"})},stickyHeader:{borderCollapse:"separate"}}},defaultComponent$2="table",Table=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.component,nt=rt===void 0?defaultComponent$2:rt,it=$.padding,ot=it===void 0?"normal":it,At=$.size,ut=At===void 0?"medium":At,ft=$.stickyHeader,dt=ft===void 0?!1:ft,Et=_objectWithoutProperties$2($,["classes","className","component","padding","size","stickyHeader"]),Bt=reactExports.useMemo(function(){return{padding:ot,size:ut,stickyHeader:dt}},[ot,ut,dt]);return reactExports.createElement(TableContext$1.Provider,{value:Bt},reactExports.createElement(nt,_extends$5({role:nt===defaultComponent$2?null:"table",ref:_e,className:clsx$1(et.root,tt,dt&&et.stickyHeader)},Et)))});Table.propTypes={children:PropTypes.node.isRequired,classes:PropTypes.object.isRequired,className:PropTypes.string,component:PropTypes.elementType,padding:chainPropTypes(PropTypes.oneOf(["normal","checkbox","none","default"]),function(j){return j.padding==="default"?new Error('Material-UI: padding="default" was renamed to padding="normal" for consistency.'):null}),size:PropTypes.oneOf(["small","medium"]),stickyHeader:PropTypes.bool};withStyles2(styles$4,{name:"MuiTable"})(Table);var Tablelvl2Context=reactExports.createContext();Tablelvl2Context.displayName="Tablelvl2Context";const Tablelvl2Context$1=Tablelvl2Context;var styles$3={root:{display:"table-row-group"}},tablelvl2={variant:"body"},defaultComponent$1="tbody",TableBody=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.component,nt=rt===void 0?defaultComponent$1:rt,it=_objectWithoutProperties$2($,["classes","className","component"]);return reactExports.createElement(Tablelvl2Context$1.Provider,{value:tablelvl2},reactExports.createElement(nt,_extends$5({className:clsx$1(et.root,tt),ref:_e,role:nt===defaultComponent$1?null:"rowgroup"},it)))});TableBody.propTypes={children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,component:PropTypes.elementType};withStyles2(styles$3,{name:"MuiTableBody"})(TableBody);var styles$2$1=function($){return{root:_extends$5({},$.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:`1px solid + `.concat($.palette.type==="light"?lighten$1(alpha$3($.palette.divider,1),.88):darken$1(alpha$3($.palette.divider,1),.68)),textAlign:"left",padding:16}),head:{color:$.palette.text.primary,lineHeight:$.typography.pxToRem(24),fontWeight:$.typography.fontWeightMedium},body:{color:$.palette.text.primary},footer:{color:$.palette.text.secondary,lineHeight:$.typography.pxToRem(21),fontSize:$.typography.pxToRem(12)},sizeSmall:{padding:"6px 24px 6px 16px","&:last-child":{paddingRight:16},"&$paddingCheckbox":{width:24,padding:"0 12px 0 16px","&:last-child":{paddingLeft:12,paddingRight:16},"& > *":{padding:0}}},paddingCheckbox:{width:48,padding:"0 0 0 4px","&:last-child":{paddingLeft:0,paddingRight:4}},paddingNone:{padding:0,"&:last-child":{padding:0}},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right",flexDirection:"row-reverse"},alignJustify:{textAlign:"justify"},stickyHeader:{position:"sticky",top:0,left:0,zIndex:2,backgroundColor:$.palette.background.default}}},TableCell=reactExports.forwardRef(function($,_e){var et=$.align,tt=et===void 0?"inherit":et,rt=$.classes,nt=$.className,it=$.component,ot=$.padding,At=$.scope,ut=$.size,ft=$.sortDirection,dt=$.variant,Et=_objectWithoutProperties$2($,["align","classes","className","component","padding","scope","size","sortDirection","variant"]),Bt=reactExports.useContext(TableContext$1),St=reactExports.useContext(Tablelvl2Context$1),Dt=St&&St.variant==="head",$t,Rt;it?(Rt=it,$t=Dt?"columnheader":"cell"):Rt=Dt?"th":"td";var wt=At;!wt&&Dt&&(wt="col");var xt=ot||(Bt&&Bt.padding?Bt.padding:"normal"),Nt=ut||(Bt&&Bt.size?Bt.size:"medium"),Ot=dt||St&&St.variant,kt=null;return ft&&(kt=ft==="asc"?"ascending":"descending"),reactExports.createElement(Rt,_extends$5({ref:_e,className:clsx$1(rt.root,rt[Ot],nt,tt!=="inherit"&&rt["align".concat(capitalize$1$1(tt))],xt!=="normal"&&rt["padding".concat(capitalize$1$1(xt))],Nt!=="medium"&&rt["size".concat(capitalize$1$1(Nt))],Ot==="head"&&Bt&&Bt.stickyHeader&&rt.stickyHeader),"aria-sort":kt,role:$t,scope:wt},Et))});TableCell.propTypes={align:PropTypes.oneOf(["center","inherit","justify","left","right"]),children:PropTypes.node,classes:PropTypes.object,className:PropTypes.string,component:PropTypes.elementType,padding:chainPropTypes(PropTypes.oneOf(["normal","checkbox","none","default"]),function(j){return j.padding==="default"?new Error('Material-UI: padding="default" was renamed to padding="normal" for consistency.'):null}),scope:PropTypes.string,size:PropTypes.oneOf(["medium","small"]),sortDirection:PropTypes.oneOf(["asc","desc",!1]),variant:PropTypes.oneOf(["body","footer","head"])};withStyles2(styles$2$1,{name:"MuiTableCell"})(TableCell);var styles$1$1={root:{width:"100%",overflowX:"auto"}},TableContainer=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.component,nt=rt===void 0?"div":rt,it=_objectWithoutProperties$2($,["classes","className","component"]);return reactExports.createElement(nt,_extends$5({ref:_e,className:clsx$1(et.root,tt)},it))});TableContainer.propTypes={children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,component:PropTypes.elementType};withStyles2(styles$1$1,{name:"MuiTableContainer"})(TableContainer);var styles18=function($){return{root:{color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,"&$hover:hover":{backgroundColor:$.palette.action.hover},"&$selected, &$selected:hover":{backgroundColor:alpha$3($.palette.secondary.main,$.palette.action.selectedOpacity)}},selected:{},hover:{},head:{},footer:{}}},defaultComponent="tr",TableRow=reactExports.forwardRef(function($,_e){var et=$.classes,tt=$.className,rt=$.component,nt=rt===void 0?defaultComponent:rt,it=$.hover,ot=it===void 0?!1:it,At=$.selected,ut=At===void 0?!1:At,ft=_objectWithoutProperties$2($,["classes","className","component","hover","selected"]),dt=reactExports.useContext(Tablelvl2Context$1);return reactExports.createElement(nt,_extends$5({ref:_e,className:clsx$1(et.root,tt,dt&&{head:et.head,footer:et.footer}[dt.variant],ot&&et.hover,ut&&et.selected),role:nt===defaultComponent?null:"row"},ft))});TableRow.propTypes={children:PropTypes.node,classes:PropTypes.object.isRequired,className:PropTypes.string,component:PropTypes.elementType,hover:PropTypes.bool,selected:PropTypes.bool};withStyles2(styles18,{name:"MuiTableRow"})(TableRow);class Subscribable{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe($){const _e={listener:$};return this.listeners.add(_e),this.onSubscribe(),()=>{this.listeners.delete(_e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}const isServer=typeof window>"u"||"Deno"in window;class FocusManager extends Subscribable{constructor(){super(),this.setup=$=>{if(!isServer&&window.addEventListener){const _e=()=>$();return window.addEventListener("visibilitychange",_e,!1),window.addEventListener("focus",_e,!1),()=>{window.removeEventListener("visibilitychange",_e),window.removeEventListener("focus",_e)}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var $;($=this.cleanup)==null||$.call(this),this.cleanup=void 0}}setEventListener($){var _e;this.setup=$,(_e=this.cleanup)==null||_e.call(this),this.cleanup=$(et=>{typeof et=="boolean"?this.setFocused(et):this.onFocus()})}setFocused($){this.focused=$,$&&this.onFocus()}onFocus(){this.listeners.forEach(({listener:$})=>{$()})}isFocused(){return typeof this.focused=="boolean"?this.focused:typeof document>"u"?!0:[void 0,"visible","prerender"].includes(document.visibilityState)}}new FocusManager;const onlineEvents=["online","offline"];class OnlineManager extends Subscribable{constructor(){super(),this.setup=$=>{if(!isServer&&window.addEventListener){const _e=()=>$();return onlineEvents.forEach(et=>{window.addEventListener(et,_e,!1)}),()=>{onlineEvents.forEach(et=>{window.removeEventListener(et,_e)})}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var $;($=this.cleanup)==null||$.call(this),this.cleanup=void 0}}setEventListener($){var _e;this.setup=$,(_e=this.cleanup)==null||_e.call(this),this.cleanup=$(et=>{typeof et=="boolean"?this.setOnline(et):this.onOnline()})}setOnline($){this.online=$,$&&this.onOnline()}onOnline(){this.listeners.forEach(({listener:$})=>{$()})}isOnline(){return typeof this.online=="boolean"?this.online:typeof navigator>"u"||typeof navigator.onLine>"u"?!0:navigator.onLine}}new OnlineManager;var shim$4={exports:{}},useSyncExternalStoreShim_development={};/** + * @license React + * use-sync-external-store-shim.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var j=React$6,$=j.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function _e(wt){{for(var xt=arguments.length,Nt=new Array(xt>1?xt-1:0),Ot=1;Ot0){if(++$>=HOT_COUNT)return arguments[0]}else $=0;return j.apply(void 0,arguments)}}function constant$4(j){return function(){return j}}var defineProperty$4=function(){try{var j=getNative$7(Object,"defineProperty");return j({},"",{}),j}catch{}}();const defineProperty$1$1=defineProperty$4;var baseSetToString=defineProperty$1$1?function(j,$){return defineProperty$1$1(j,"toString",{configurable:!0,enumerable:!1,value:constant$4($),writable:!0})}:identity$7;const baseSetToString$1=baseSetToString;var setToString=shortOut(baseSetToString$1);const setToString$1=setToString;function arrayEach$1(j,$){for(var _e=-1,et=j==null?0:j.length;++_e-1&&j%1==0&&j<$}function baseAssignValue$1(j,$,_e){$=="__proto__"&&defineProperty$1$1?defineProperty$1$1(j,$,{configurable:!0,enumerable:!0,value:_e,writable:!0}):j[$]=_e}function eq$7(j,$){return j===$||j!==j&&$!==$}var objectProto$o=Object.prototype,hasOwnProperty$j=objectProto$o.hasOwnProperty;function assignValue$1(j,$,_e){var et=j[$];(!(hasOwnProperty$j.call(j,$)&&eq$7(et,_e))||_e===void 0&&!($ in j))&&baseAssignValue$1(j,$,_e)}function copyObject$1(j,$,_e,et){var tt=!_e;_e||(_e={});for(var rt=-1,nt=$.length;++rt-1&&j%1==0&&j<=MAX_SAFE_INTEGER$4$1}function isArrayLike$2(j){return j!=null&&isLength$3(j.length)&&!isFunction$4(j)}function isIterateeCall$1(j,$,_e){if(!isObject$3$1(_e))return!1;var et=typeof $;return(et=="number"?isArrayLike$2(_e)&&isIndex$2($,_e.length):et=="string"&&$ in _e)?eq$7(_e[$],j):!1}function createAssigner(j){return baseRest(function($,_e){var et=-1,tt=_e.length,rt=tt>1?_e[tt-1]:void 0,nt=tt>2?_e[2]:void 0;for(rt=j.length>3&&typeof rt=="function"?(tt--,rt):void 0,nt&&isIterateeCall$1(_e[0],_e[1],nt)&&(rt=tt<3?void 0:rt,tt=1),$=Object($);++et-1}function listCacheSet$2(j,$){var _e=this.__data__,et=assocIndexOf$5(_e,j);return et<0?(++this.size,_e.push([j,$])):_e[et][1]=$,this}function ListCache$5(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}ListCache$5.prototype.clear=listCacheClear$2;ListCache$5.prototype.delete=listCacheDelete$2;ListCache$5.prototype.get=listCacheGet$2;ListCache$5.prototype.has=listCacheHas$2;ListCache$5.prototype.set=listCacheSet$2;var Map$5=getNative$7(root$a,"Map");const Map$6=Map$5;function mapCacheClear$2(){this.size=0,this.__data__={hash:new Hash$2,map:new(Map$6||ListCache$5),string:new Hash$2}}function isKeyable$2(j){var $=typeof j;return $=="string"||$=="number"||$=="symbol"||$=="boolean"?j!=="__proto__":j===null}function getMapData$5(j,$){var _e=j.__data__;return isKeyable$2($)?_e[typeof $=="string"?"string":"hash"]:_e.map}function mapCacheDelete$2(j){var $=getMapData$5(this,j).delete(j);return this.size-=$?1:0,$}function mapCacheGet$2(j){return getMapData$5(this,j).get(j)}function mapCacheHas$2(j){return getMapData$5(this,j).has(j)}function mapCacheSet$2(j,$){var _e=getMapData$5(this,j),et=_e.size;return _e.set(j,$),this.size+=_e.size==et?0:1,this}function MapCache$3(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}MapCache$3.prototype.clear=mapCacheClear$2;MapCache$3.prototype.delete=mapCacheDelete$2;MapCache$3.prototype.get=mapCacheGet$2;MapCache$3.prototype.has=mapCacheHas$2;MapCache$3.prototype.set=mapCacheSet$2;var FUNC_ERROR_TEXT$1="Expected a function";function memoize2(j,$){if(typeof j!="function"||$!=null&&typeof $!="function")throw new TypeError(FUNC_ERROR_TEXT$1);var _e=function(){var et=arguments,tt=$?$.apply(this,et):et[0],rt=_e.cache;if(rt.has(tt))return rt.get(tt);var nt=j.apply(this,et);return _e.cache=rt.set(tt,nt)||rt,nt};return _e.cache=new(memoize2.Cache||MapCache$3),_e}memoize2.Cache=MapCache$3;var MAX_MEMOIZE_SIZE=500;function memoizeCapped(j){var $=memoize2(j,function(et){return _e.size===MAX_MEMOIZE_SIZE&&_e.clear(),et}),_e=$.cache;return $}var rePropName$1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reEscapeChar$1=/\\(\\)?/g,stringToPath$1=memoizeCapped(function(j){var $=[];return j.charCodeAt(0)===46&&$.push(""),j.replace(rePropName$1,function(_e,et,tt,rt){$.push(tt?rt.replace(reEscapeChar$1,"$1"):et||_e)}),$});const stringToPath$1$1=stringToPath$1;function toString$2(j){return j==null?"":baseToString(j)}function castPath(j,$){return isArray$5$1(j)?j:isKey(j,$)?[j]:stringToPath$1$1(toString$2(j))}var INFINITY$1=1/0;function toKey(j){if(typeof j=="string"||isSymbol$2(j))return j;var $=j+"";return $=="0"&&1/j==-INFINITY$1?"-0":$}function baseGet(j,$){$=castPath($,j);for(var _e=0,et=$.length;j!=null&&_e0&&_e(it)?$>1?baseFlatten(it,$-1,_e,et,tt):arrayPush$2(tt,it):et||(tt[tt.length]=it)}return tt}function flatten$1(j){var $=j==null?0:j.length;return $?baseFlatten(j,1):[]}function flatRest(j){return setToString$1(overRest(j,void 0,flatten$1),j+"")}var getPrototype$2=overArg$2(Object.getPrototypeOf,Object);const getPrototype$1$1=getPrototype$2;var objectTag$6="[object Object]",funcProto$2=Function.prototype,objectProto$g=Object.prototype,funcToString$2=funcProto$2.toString,hasOwnProperty$c$1=objectProto$g.hasOwnProperty,objectCtorString=funcToString$2.call(Object);function isPlainObject$3(j){if(!isObjectLike$5(j)||baseGetTag$5(j)!=objectTag$6)return!1;var $=getPrototype$1$1(j);if($===null)return!0;var _e=hasOwnProperty$c$1.call($,"constructor")&&$.constructor;return typeof _e=="function"&&_e instanceof _e&&funcToString$2.call(_e)==objectCtorString}function stackClear$2(){this.__data__=new ListCache$5,this.size=0}function stackDelete$2(j){var $=this.__data__,_e=$.delete(j);return this.size=$.size,_e}function stackGet$2(j){return this.__data__.get(j)}function stackHas$2(j){return this.__data__.has(j)}var LARGE_ARRAY_SIZE$1=200;function stackSet$2(j,$){var _e=this.__data__;if(_e instanceof ListCache$5){var et=_e.__data__;if(!Map$6||et.lengthtt;function $(tt){}j.assertIs=$;function _e(tt){throw new Error}j.assertNever=_e,j.arrayToEnum=tt=>{const rt={};for(const nt of tt)rt[nt]=nt;return rt},j.getValidEnumValues=tt=>{const rt=j.objectKeys(tt).filter(it=>typeof tt[tt[it]]!="number"),nt={};for(const it of rt)nt[it]=tt[it];return j.objectValues(nt)},j.objectValues=tt=>j.objectKeys(tt).map(function(rt){return tt[rt]}),j.objectKeys=typeof Object.keys=="function"?tt=>Object.keys(tt):tt=>{const rt=[];for(const nt in tt)Object.prototype.hasOwnProperty.call(tt,nt)&&rt.push(nt);return rt},j.find=(tt,rt)=>{for(const nt of tt)if(rt(nt))return nt},j.isInteger=typeof Number.isInteger=="function"?tt=>Number.isInteger(tt):tt=>typeof tt=="number"&&isFinite(tt)&&Math.floor(tt)===tt;function et(tt,rt=" | "){return tt.map(nt=>typeof nt=="string"?`'${nt}'`:nt).join(rt)}j.joinValues=et,j.jsonStringifyReplacer=(tt,rt)=>typeof rt=="bigint"?rt.toString():rt})(util$5||(util$5={}));var objectUtil$1;(function(j){j.mergeShapes=($,_e)=>({...$,..._e})})(objectUtil$1||(objectUtil$1={}));const ZodParsedType$1=util$5.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType$1=j=>{switch(typeof j){case"undefined":return ZodParsedType$1.undefined;case"string":return ZodParsedType$1.string;case"number":return isNaN(j)?ZodParsedType$1.nan:ZodParsedType$1.number;case"boolean":return ZodParsedType$1.boolean;case"function":return ZodParsedType$1.function;case"bigint":return ZodParsedType$1.bigint;case"symbol":return ZodParsedType$1.symbol;case"object":return Array.isArray(j)?ZodParsedType$1.array:j===null?ZodParsedType$1.null:j.then&&typeof j.then=="function"&&j.catch&&typeof j.catch=="function"?ZodParsedType$1.promise:typeof Map<"u"&&j instanceof Map?ZodParsedType$1.map:typeof Set<"u"&&j instanceof Set?ZodParsedType$1.set:typeof Date<"u"&&j instanceof Date?ZodParsedType$1.date:ZodParsedType$1.object;default:return ZodParsedType$1.unknown}},ZodIssueCode$1=util$5.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),quotelessJson$1=j=>JSON.stringify(j,null,2).replace(/"([^"]+)":/g,"$1:");let ZodError$1=class extends Error{constructor($){super(),this.issues=[],this.addIssue=et=>{this.issues=[...this.issues,et]},this.addIssues=(et=[])=>{this.issues=[...this.issues,...et]};const _e=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,_e):this.__proto__=_e,this.name="ZodError",this.issues=$}get errors(){return this.issues}format($){const _e=$||function(rt){return rt.message},et={_errors:[]},tt=rt=>{for(const nt of rt.issues)if(nt.code==="invalid_union")nt.unionErrors.map(tt);else if(nt.code==="invalid_return_type")tt(nt.returnTypeError);else if(nt.code==="invalid_arguments")tt(nt.argumentsError);else if(nt.path.length===0)et._errors.push(_e(nt));else{let it=et,ot=0;for(;ot_e.message){const _e={},et=[];for(const tt of this.issues)tt.path.length>0?(_e[tt.path[0]]=_e[tt.path[0]]||[],_e[tt.path[0]].push($(tt))):et.push($(tt));return{formErrors:et,fieldErrors:_e}}get formErrors(){return this.flatten()}};ZodError$1.create=j=>new ZodError$1(j);const errorMap$1=(j,$)=>{let _e;switch(j.code){case ZodIssueCode$1.invalid_type:j.received===ZodParsedType$1.undefined?_e="Required":_e=`Expected ${j.expected}, received ${j.received}`;break;case ZodIssueCode$1.invalid_literal:_e=`Invalid literal value, expected ${JSON.stringify(j.expected,util$5.jsonStringifyReplacer)}`;break;case ZodIssueCode$1.unrecognized_keys:_e=`Unrecognized key(s) in object: ${util$5.joinValues(j.keys,", ")}`;break;case ZodIssueCode$1.invalid_union:_e="Invalid input";break;case ZodIssueCode$1.invalid_union_discriminator:_e=`Invalid discriminator value. Expected ${util$5.joinValues(j.options)}`;break;case ZodIssueCode$1.invalid_enum_value:_e=`Invalid enum value. Expected ${util$5.joinValues(j.options)}, received '${j.received}'`;break;case ZodIssueCode$1.invalid_arguments:_e="Invalid function arguments";break;case ZodIssueCode$1.invalid_return_type:_e="Invalid function return type";break;case ZodIssueCode$1.invalid_date:_e="Invalid date";break;case ZodIssueCode$1.invalid_string:typeof j.validation=="object"?"includes"in j.validation?(_e=`Invalid input: must include "${j.validation.includes}"`,typeof j.validation.position=="number"&&(_e=`${_e} at one or more positions greater than or equal to ${j.validation.position}`)):"startsWith"in j.validation?_e=`Invalid input: must start with "${j.validation.startsWith}"`:"endsWith"in j.validation?_e=`Invalid input: must end with "${j.validation.endsWith}"`:util$5.assertNever(j.validation):j.validation!=="regex"?_e=`Invalid ${j.validation}`:_e="Invalid";break;case ZodIssueCode$1.too_small:j.type==="array"?_e=`Array must contain ${j.exact?"exactly":j.inclusive?"at least":"more than"} ${j.minimum} element(s)`:j.type==="string"?_e=`String must contain ${j.exact?"exactly":j.inclusive?"at least":"over"} ${j.minimum} character(s)`:j.type==="number"?_e=`Number must be ${j.exact?"exactly equal to ":j.inclusive?"greater than or equal to ":"greater than "}${j.minimum}`:j.type==="date"?_e=`Date must be ${j.exact?"exactly equal to ":j.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(j.minimum))}`:_e="Invalid input";break;case ZodIssueCode$1.too_big:j.type==="array"?_e=`Array must contain ${j.exact?"exactly":j.inclusive?"at most":"less than"} ${j.maximum} element(s)`:j.type==="string"?_e=`String must contain ${j.exact?"exactly":j.inclusive?"at most":"under"} ${j.maximum} character(s)`:j.type==="number"?_e=`Number must be ${j.exact?"exactly":j.inclusive?"less than or equal to":"less than"} ${j.maximum}`:j.type==="bigint"?_e=`BigInt must be ${j.exact?"exactly":j.inclusive?"less than or equal to":"less than"} ${j.maximum}`:j.type==="date"?_e=`Date must be ${j.exact?"exactly":j.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(j.maximum))}`:_e="Invalid input";break;case ZodIssueCode$1.custom:_e="Invalid input";break;case ZodIssueCode$1.invalid_intersection_types:_e="Intersection results could not be merged";break;case ZodIssueCode$1.not_multiple_of:_e=`Number must be a multiple of ${j.multipleOf}`;break;case ZodIssueCode$1.not_finite:_e="Number must be finite";break;default:_e=$.defaultError,util$5.assertNever(j)}return{message:_e}};let overrideErrorMap$1=errorMap$1;function setErrorMap$1(j){overrideErrorMap$1=j}function getErrorMap$1(){return overrideErrorMap$1}const makeIssue$1=j=>{const{data:$,path:_e,errorMaps:et,issueData:tt}=j,rt=[..._e,...tt.path||[]],nt={...tt,path:rt};let it="";const ot=et.filter(At=>!!At).slice().reverse();for(const At of ot)it=At(nt,{data:$,defaultError:it}).message;return{...tt,path:rt,message:tt.message||it}},EMPTY_PATH$1=[];function addIssueToContext$1(j,$){const _e=makeIssue$1({issueData:$,data:j.data,path:j.path,errorMaps:[j.common.contextualErrorMap,j.schemaErrorMap,getErrorMap$1(),errorMap$1].filter(et=>!!et)});j.common.issues.push(_e)}let ParseStatus$1=class pp{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray($,_e){const et=[];for(const tt of _e){if(tt.status==="aborted")return INVALID$2;tt.status==="dirty"&&$.dirty(),et.push(tt.value)}return{status:$.value,value:et}}static async mergeObjectAsync($,_e){const et=[];for(const tt of _e)et.push({key:await tt.key,value:await tt.value});return pp.mergeObjectSync($,et)}static mergeObjectSync($,_e){const et={};for(const tt of _e){const{key:rt,value:nt}=tt;if(rt.status==="aborted"||nt.status==="aborted")return INVALID$2;rt.status==="dirty"&&$.dirty(),nt.status==="dirty"&&$.dirty(),(typeof nt.value<"u"||tt.alwaysSet)&&(et[rt.value]=nt.value)}return{status:$.value,value:et}}};const INVALID$2=Object.freeze({status:"aborted"}),DIRTY$1=j=>({status:"dirty",value:j}),OK$1=j=>({status:"valid",value:j}),isAborted$1=j=>j.status==="aborted",isDirty$1=j=>j.status==="dirty",isValid$1=j=>j.status==="valid",isAsync$1=j=>typeof Promise<"u"&&j instanceof Promise;var errorUtil$1;(function(j){j.errToObj=$=>typeof $=="string"?{message:$}:$||{},j.toString=$=>typeof $=="string"?$:$==null?void 0:$.message})(errorUtil$1||(errorUtil$1={}));let ParseInputLazyPath$1=class{constructor($,_e,et,tt){this._cachedPath=[],this.parent=$,this.data=_e,this._path=et,this._key=tt}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};const handleResult$1=(j,$)=>{if(isValid$1($))return{success:!0,data:$.value};if(!j.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const _e=new ZodError$1(j.common.issues);return this._error=_e,this._error}}};function processCreateParams$1(j){if(!j)return{};const{errorMap:$,invalid_type_error:_e,required_error:et,description:tt}=j;if($&&(_e||et))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return $?{errorMap:$,description:tt}:{errorMap:(nt,it)=>nt.code!=="invalid_type"?{message:it.defaultError}:typeof it.data>"u"?{message:et??it.defaultError}:{message:_e??it.defaultError},description:tt}}let ZodType$1=class{constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType($){return getParsedType$1($.data)}_getOrReturnCtx($,_e){return _e||{common:$.parent.common,data:$.data,parsedType:getParsedType$1($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new ParseStatus$1,ctx:{common:$.parent.common,data:$.data,parsedType:getParsedType$1($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){const _e=this._parse($);if(isAsync$1(_e))throw new Error("Synchronous parse encountered promise.");return _e}_parseAsync($){const _e=this._parse($);return Promise.resolve(_e)}parse($,_e){const et=this.safeParse($,_e);if(et.success)return et.data;throw et.error}safeParse($,_e){var et;const tt={common:{issues:[],async:(et=_e==null?void 0:_e.async)!==null&&et!==void 0?et:!1,contextualErrorMap:_e==null?void 0:_e.errorMap},path:(_e==null?void 0:_e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType$1($)},rt=this._parseSync({data:$,path:tt.path,parent:tt});return handleResult$1(tt,rt)}async parseAsync($,_e){const et=await this.safeParseAsync($,_e);if(et.success)return et.data;throw et.error}async safeParseAsync($,_e){const et={common:{issues:[],contextualErrorMap:_e==null?void 0:_e.errorMap,async:!0},path:(_e==null?void 0:_e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType$1($)},tt=this._parse({data:$,path:et.path,parent:et}),rt=await(isAsync$1(tt)?tt:Promise.resolve(tt));return handleResult$1(et,rt)}refine($,_e){const et=tt=>typeof _e=="string"||typeof _e>"u"?{message:_e}:typeof _e=="function"?_e(tt):_e;return this._refinement((tt,rt)=>{const nt=$(tt),it=()=>rt.addIssue({code:ZodIssueCode$1.custom,...et(tt)});return typeof Promise<"u"&&nt instanceof Promise?nt.then(ot=>ot?!0:(it(),!1)):nt?!0:(it(),!1)})}refinement($,_e){return this._refinement((et,tt)=>$(et)?!0:(tt.addIssue(typeof _e=="function"?_e(et,tt):_e),!1))}_refinement($){return new ZodEffects$1({schema:this,typeName:ZodFirstPartyTypeKind$1.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}optional(){return ZodOptional$1.create(this,this._def)}nullable(){return ZodNullable$1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray$1.create(this,this._def)}promise(){return ZodPromise$1.create(this,this._def)}or($){return ZodUnion$1.create([this,$],this._def)}and($){return ZodIntersection$1.create(this,$,this._def)}transform($){return new ZodEffects$1({...processCreateParams$1(this._def),schema:this,typeName:ZodFirstPartyTypeKind$1.ZodEffects,effect:{type:"transform",transform:$}})}default($){const _e=typeof $=="function"?$:()=>$;return new ZodDefault$1({...processCreateParams$1(this._def),innerType:this,defaultValue:_e,typeName:ZodFirstPartyTypeKind$1.ZodDefault})}brand(){return new ZodBranded$1({typeName:ZodFirstPartyTypeKind$1.ZodBranded,type:this,...processCreateParams$1(this._def)})}catch($){const _e=typeof $=="function"?$:()=>$;return new ZodCatch$1({...processCreateParams$1(this._def),innerType:this,catchValue:_e,typeName:ZodFirstPartyTypeKind$1.ZodCatch})}describe($){const _e=this.constructor;return new _e({...this._def,description:$})}pipe($){return ZodPipeline$1.create(this,$)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};const cuidRegex$1=/^c[^\s-]{8,}$/i,cuid2Regex$1=/^[a-z][a-z0-9]*$/,ulidRegex$1=/[0-9A-HJKMNP-TV-Z]{26}/,uuidRegex$1=/^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i,emailRegex$1=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/,emojiRegex$1=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u"),ipv4Regex$1=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,ipv6Regex$1=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,datetimeRegex$1=j=>j.precision?j.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${j.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${j.precision}}Z$`):j.precision===0?j.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):j.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function isValidIP$1(j,$){return!!(($==="v4"||!$)&&ipv4Regex$1.test(j)||($==="v6"||!$)&&ipv6Regex$1.test(j))}let ZodString$1=class Hu extends ZodType$1{constructor(){super(...arguments),this._regex=($,_e,et)=>this.refinement(tt=>$.test(tt),{validation:_e,code:ZodIssueCode$1.invalid_string,...errorUtil$1.errToObj(et)}),this.nonempty=$=>this.min(1,errorUtil$1.errToObj($)),this.trim=()=>new Hu({...this._def,checks:[...this._def.checks,{kind:"trim"}]}),this.toLowerCase=()=>new Hu({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]}),this.toUpperCase=()=>new Hu({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}_parse($){if(this._def.coerce&&($.data=String($.data)),this._getType($)!==ZodParsedType$1.string){const rt=this._getOrReturnCtx($);return addIssueToContext$1(rt,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.string,received:rt.parsedType}),INVALID$2}const et=new ParseStatus$1;let tt;for(const rt of this._def.checks)if(rt.kind==="min")$.data.lengthrt.value&&(tt=this._getOrReturnCtx($,tt),addIssueToContext$1(tt,{code:ZodIssueCode$1.too_big,maximum:rt.value,type:"string",inclusive:!0,exact:!1,message:rt.message}),et.dirty());else if(rt.kind==="length"){const nt=$.data.length>rt.value,it=$.data.length"u"?null:$==null?void 0:$.precision,offset:(_e=$==null?void 0:$.offset)!==null&&_e!==void 0?_e:!1,...errorUtil$1.errToObj($==null?void 0:$.message)})}regex($,_e){return this._addCheck({kind:"regex",regex:$,...errorUtil$1.errToObj(_e)})}includes($,_e){return this._addCheck({kind:"includes",value:$,position:_e==null?void 0:_e.position,...errorUtil$1.errToObj(_e==null?void 0:_e.message)})}startsWith($,_e){return this._addCheck({kind:"startsWith",value:$,...errorUtil$1.errToObj(_e)})}endsWith($,_e){return this._addCheck({kind:"endsWith",value:$,...errorUtil$1.errToObj(_e)})}min($,_e){return this._addCheck({kind:"min",value:$,...errorUtil$1.errToObj(_e)})}max($,_e){return this._addCheck({kind:"max",value:$,...errorUtil$1.errToObj(_e)})}length($,_e){return this._addCheck({kind:"length",value:$,...errorUtil$1.errToObj(_e)})}get isDatetime(){return!!this._def.checks.find($=>$.kind==="datetime")}get isEmail(){return!!this._def.checks.find($=>$.kind==="email")}get isURL(){return!!this._def.checks.find($=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find($=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find($=>$.kind==="uuid")}get isCUID(){return!!this._def.checks.find($=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find($=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find($=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find($=>$.kind==="ip")}get minLength(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $}get maxLength(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $}};ZodString$1.create=j=>{var $;return new ZodString$1({checks:[],typeName:ZodFirstPartyTypeKind$1.ZodString,coerce:($=j==null?void 0:j.coerce)!==null&&$!==void 0?$:!1,...processCreateParams$1(j)})};function floatSafeRemainder$1(j,$){const _e=(j.toString().split(".")[1]||"").length,et=($.toString().split(".")[1]||"").length,tt=_e>et?_e:et,rt=parseInt(j.toFixed(tt).replace(".","")),nt=parseInt($.toFixed(tt).replace(".",""));return rt%nt/Math.pow(10,tt)}let ZodNumber$1=class cp extends ZodType$1{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce&&($.data=Number($.data)),this._getType($)!==ZodParsedType$1.number){const rt=this._getOrReturnCtx($);return addIssueToContext$1(rt,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.number,received:rt.parsedType}),INVALID$2}let et;const tt=new ParseStatus$1;for(const rt of this._def.checks)rt.kind==="int"?util$5.isInteger($.data)||(et=this._getOrReturnCtx($,et),addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:"integer",received:"float",message:rt.message}),tt.dirty()):rt.kind==="min"?(rt.inclusive?$.datart.value:$.data>=rt.value)&&(et=this._getOrReturnCtx($,et),addIssueToContext$1(et,{code:ZodIssueCode$1.too_big,maximum:rt.value,type:"number",inclusive:rt.inclusive,exact:!1,message:rt.message}),tt.dirty()):rt.kind==="multipleOf"?floatSafeRemainder$1($.data,rt.value)!==0&&(et=this._getOrReturnCtx($,et),addIssueToContext$1(et,{code:ZodIssueCode$1.not_multiple_of,multipleOf:rt.value,message:rt.message}),tt.dirty()):rt.kind==="finite"?Number.isFinite($.data)||(et=this._getOrReturnCtx($,et),addIssueToContext$1(et,{code:ZodIssueCode$1.not_finite,message:rt.message}),tt.dirty()):util$5.assertNever(rt);return{status:tt.value,value:$.data}}gte($,_e){return this.setLimit("min",$,!0,errorUtil$1.toString(_e))}gt($,_e){return this.setLimit("min",$,!1,errorUtil$1.toString(_e))}lte($,_e){return this.setLimit("max",$,!0,errorUtil$1.toString(_e))}lt($,_e){return this.setLimit("max",$,!1,errorUtil$1.toString(_e))}setLimit($,_e,et,tt){return new cp({...this._def,checks:[...this._def.checks,{kind:$,value:_e,inclusive:et,message:errorUtil$1.toString(tt)}]})}_addCheck($){return new cp({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:errorUtil$1.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil$1.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil$1.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil$1.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil$1.toString($)})}multipleOf($,_e){return this._addCheck({kind:"multipleOf",value:$,message:errorUtil$1.toString(_e)})}finite($){return this._addCheck({kind:"finite",message:errorUtil$1.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil$1.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil$1.toString($)})}get minValue(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $}get maxValue(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $}get isInt(){return!!this._def.checks.find($=>$.kind==="int"||$.kind==="multipleOf"&&util$5.isInteger($.value))}get isFinite(){let $=null,_e=null;for(const et of this._def.checks){if(et.kind==="finite"||et.kind==="int"||et.kind==="multipleOf")return!0;et.kind==="min"?(_e===null||et.value>_e)&&(_e=et.value):et.kind==="max"&&($===null||et.value<$)&&($=et.value)}return Number.isFinite(_e)&&Number.isFinite($)}};ZodNumber$1.create=j=>new ZodNumber$1({checks:[],typeName:ZodFirstPartyTypeKind$1.ZodNumber,coerce:(j==null?void 0:j.coerce)||!1,...processCreateParams$1(j)});let ZodBigInt$1=class up extends ZodType$1{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce&&($.data=BigInt($.data)),this._getType($)!==ZodParsedType$1.bigint){const rt=this._getOrReturnCtx($);return addIssueToContext$1(rt,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.bigint,received:rt.parsedType}),INVALID$2}let et;const tt=new ParseStatus$1;for(const rt of this._def.checks)rt.kind==="min"?(rt.inclusive?$.datart.value:$.data>=rt.value)&&(et=this._getOrReturnCtx($,et),addIssueToContext$1(et,{code:ZodIssueCode$1.too_big,type:"bigint",maximum:rt.value,inclusive:rt.inclusive,message:rt.message}),tt.dirty()):rt.kind==="multipleOf"?$.data%rt.value!==BigInt(0)&&(et=this._getOrReturnCtx($,et),addIssueToContext$1(et,{code:ZodIssueCode$1.not_multiple_of,multipleOf:rt.value,message:rt.message}),tt.dirty()):util$5.assertNever(rt);return{status:tt.value,value:$.data}}gte($,_e){return this.setLimit("min",$,!0,errorUtil$1.toString(_e))}gt($,_e){return this.setLimit("min",$,!1,errorUtil$1.toString(_e))}lte($,_e){return this.setLimit("max",$,!0,errorUtil$1.toString(_e))}lt($,_e){return this.setLimit("max",$,!1,errorUtil$1.toString(_e))}setLimit($,_e,et,tt){return new up({...this._def,checks:[...this._def.checks,{kind:$,value:_e,inclusive:et,message:errorUtil$1.toString(tt)}]})}_addCheck($){return new up({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil$1.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil$1.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil$1.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil$1.toString($)})}multipleOf($,_e){return this._addCheck({kind:"multipleOf",value:$,message:errorUtil$1.toString(_e)})}get minValue(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $}get maxValue(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $}};ZodBigInt$1.create=j=>{var $;return new ZodBigInt$1({checks:[],typeName:ZodFirstPartyTypeKind$1.ZodBigInt,coerce:($=j==null?void 0:j.coerce)!==null&&$!==void 0?$:!1,...processCreateParams$1(j)})};let ZodBoolean$1=class extends ZodType$1{_parse($){if(this._def.coerce&&($.data=!!$.data),this._getType($)!==ZodParsedType$1.boolean){const et=this._getOrReturnCtx($);return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.boolean,received:et.parsedType}),INVALID$2}return OK$1($.data)}};ZodBoolean$1.create=j=>new ZodBoolean$1({typeName:ZodFirstPartyTypeKind$1.ZodBoolean,coerce:(j==null?void 0:j.coerce)||!1,...processCreateParams$1(j)});let ZodDate$1=class Ip extends ZodType$1{_parse($){if(this._def.coerce&&($.data=new Date($.data)),this._getType($)!==ZodParsedType$1.date){const rt=this._getOrReturnCtx($);return addIssueToContext$1(rt,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.date,received:rt.parsedType}),INVALID$2}if(isNaN($.data.getTime())){const rt=this._getOrReturnCtx($);return addIssueToContext$1(rt,{code:ZodIssueCode$1.invalid_date}),INVALID$2}const et=new ParseStatus$1;let tt;for(const rt of this._def.checks)rt.kind==="min"?$.data.getTime()rt.value&&(tt=this._getOrReturnCtx($,tt),addIssueToContext$1(tt,{code:ZodIssueCode$1.too_big,message:rt.message,inclusive:!0,exact:!1,maximum:rt.value,type:"date"}),et.dirty()):util$5.assertNever(rt);return{status:et.value,value:new Date($.data.getTime())}}_addCheck($){return new Ip({...this._def,checks:[...this._def.checks,$]})}min($,_e){return this._addCheck({kind:"min",value:$.getTime(),message:errorUtil$1.toString(_e)})}max($,_e){return this._addCheck({kind:"max",value:$.getTime(),message:errorUtil$1.toString(_e)})}get minDate(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $!=null?new Date($):null}get maxDate(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $!=null?new Date($):null}};ZodDate$1.create=j=>new ZodDate$1({checks:[],coerce:(j==null?void 0:j.coerce)||!1,typeName:ZodFirstPartyTypeKind$1.ZodDate,...processCreateParams$1(j)});let ZodSymbol$1=class extends ZodType$1{_parse($){if(this._getType($)!==ZodParsedType$1.symbol){const et=this._getOrReturnCtx($);return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.symbol,received:et.parsedType}),INVALID$2}return OK$1($.data)}};ZodSymbol$1.create=j=>new ZodSymbol$1({typeName:ZodFirstPartyTypeKind$1.ZodSymbol,...processCreateParams$1(j)});let ZodUndefined$1=class extends ZodType$1{_parse($){if(this._getType($)!==ZodParsedType$1.undefined){const et=this._getOrReturnCtx($);return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.undefined,received:et.parsedType}),INVALID$2}return OK$1($.data)}};ZodUndefined$1.create=j=>new ZodUndefined$1({typeName:ZodFirstPartyTypeKind$1.ZodUndefined,...processCreateParams$1(j)});let ZodNull$1=class extends ZodType$1{_parse($){if(this._getType($)!==ZodParsedType$1.null){const et=this._getOrReturnCtx($);return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.null,received:et.parsedType}),INVALID$2}return OK$1($.data)}};ZodNull$1.create=j=>new ZodNull$1({typeName:ZodFirstPartyTypeKind$1.ZodNull,...processCreateParams$1(j)});let ZodAny$1=class extends ZodType$1{constructor(){super(...arguments),this._any=!0}_parse($){return OK$1($.data)}};ZodAny$1.create=j=>new ZodAny$1({typeName:ZodFirstPartyTypeKind$1.ZodAny,...processCreateParams$1(j)});let ZodUnknown$1=class extends ZodType$1{constructor(){super(...arguments),this._unknown=!0}_parse($){return OK$1($.data)}};ZodUnknown$1.create=j=>new ZodUnknown$1({typeName:ZodFirstPartyTypeKind$1.ZodUnknown,...processCreateParams$1(j)});let ZodNever$1=class extends ZodType$1{_parse($){const _e=this._getOrReturnCtx($);return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.never,received:_e.parsedType}),INVALID$2}};ZodNever$1.create=j=>new ZodNever$1({typeName:ZodFirstPartyTypeKind$1.ZodNever,...processCreateParams$1(j)});let ZodVoid$1=class extends ZodType$1{_parse($){if(this._getType($)!==ZodParsedType$1.undefined){const et=this._getOrReturnCtx($);return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.void,received:et.parsedType}),INVALID$2}return OK$1($.data)}};ZodVoid$1.create=j=>new ZodVoid$1({typeName:ZodFirstPartyTypeKind$1.ZodVoid,...processCreateParams$1(j)});let ZodArray$1=class qu extends ZodType$1{_parse($){const{ctx:_e,status:et}=this._processInputParams($),tt=this._def;if(_e.parsedType!==ZodParsedType$1.array)return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.array,received:_e.parsedType}),INVALID$2;if(tt.exactLength!==null){const nt=_e.data.length>tt.exactLength.value,it=_e.data.lengthtt.maxLength.value&&(addIssueToContext$1(_e,{code:ZodIssueCode$1.too_big,maximum:tt.maxLength.value,type:"array",inclusive:!0,exact:!1,message:tt.maxLength.message}),et.dirty()),_e.common.async)return Promise.all([..._e.data].map((nt,it)=>tt.type._parseAsync(new ParseInputLazyPath$1(_e,nt,_e.path,it)))).then(nt=>ParseStatus$1.mergeArray(et,nt));const rt=[..._e.data].map((nt,it)=>tt.type._parseSync(new ParseInputLazyPath$1(_e,nt,_e.path,it)));return ParseStatus$1.mergeArray(et,rt)}get element(){return this._def.type}min($,_e){return new qu({...this._def,minLength:{value:$,message:errorUtil$1.toString(_e)}})}max($,_e){return new qu({...this._def,maxLength:{value:$,message:errorUtil$1.toString(_e)}})}length($,_e){return new qu({...this._def,exactLength:{value:$,message:errorUtil$1.toString(_e)}})}nonempty($){return this.min(1,$)}};ZodArray$1.create=(j,$)=>new ZodArray$1({type:j,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind$1.ZodArray,...processCreateParams$1($)});function deepPartialify$1(j){if(j instanceof ZodObject$1){const $={};for(const _e in j.shape){const et=j.shape[_e];$[_e]=ZodOptional$1.create(deepPartialify$1(et))}return new ZodObject$1({...j._def,shape:()=>$})}else return j instanceof ZodArray$1?new ZodArray$1({...j._def,type:deepPartialify$1(j.element)}):j instanceof ZodOptional$1?ZodOptional$1.create(deepPartialify$1(j.unwrap())):j instanceof ZodNullable$1?ZodNullable$1.create(deepPartialify$1(j.unwrap())):j instanceof ZodTuple$1?ZodTuple$1.create(j.items.map($=>deepPartialify$1($))):j}let ZodObject$1=class Ol extends ZodType$1{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const $=this._def.shape(),_e=util$5.objectKeys($);return this._cached={shape:$,keys:_e}}_parse($){if(this._getType($)!==ZodParsedType$1.object){const At=this._getOrReturnCtx($);return addIssueToContext$1(At,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.object,received:At.parsedType}),INVALID$2}const{status:et,ctx:tt}=this._processInputParams($),{shape:rt,keys:nt}=this._getCached(),it=[];if(!(this._def.catchall instanceof ZodNever$1&&this._def.unknownKeys==="strip"))for(const At in tt.data)nt.includes(At)||it.push(At);const ot=[];for(const At of nt){const ut=rt[At],ft=tt.data[At];ot.push({key:{status:"valid",value:At},value:ut._parse(new ParseInputLazyPath$1(tt,ft,tt.path,At)),alwaysSet:At in tt.data})}if(this._def.catchall instanceof ZodNever$1){const At=this._def.unknownKeys;if(At==="passthrough")for(const ut of it)ot.push({key:{status:"valid",value:ut},value:{status:"valid",value:tt.data[ut]}});else if(At==="strict")it.length>0&&(addIssueToContext$1(tt,{code:ZodIssueCode$1.unrecognized_keys,keys:it}),et.dirty());else if(At!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const At=this._def.catchall;for(const ut of it){const ft=tt.data[ut];ot.push({key:{status:"valid",value:ut},value:At._parse(new ParseInputLazyPath$1(tt,ft,tt.path,ut)),alwaysSet:ut in tt.data})}}return tt.common.async?Promise.resolve().then(async()=>{const At=[];for(const ut of ot){const ft=await ut.key;At.push({key:ft,value:await ut.value,alwaysSet:ut.alwaysSet})}return At}).then(At=>ParseStatus$1.mergeObjectSync(et,At)):ParseStatus$1.mergeObjectSync(et,ot)}get shape(){return this._def.shape()}strict($){return errorUtil$1.errToObj,new Ol({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(_e,et)=>{var tt,rt,nt,it;const ot=(nt=(rt=(tt=this._def).errorMap)===null||rt===void 0?void 0:rt.call(tt,_e,et).message)!==null&&nt!==void 0?nt:et.defaultError;return _e.code==="unrecognized_keys"?{message:(it=errorUtil$1.errToObj($).message)!==null&&it!==void 0?it:ot}:{message:ot}}}:{}})}strip(){return new Ol({...this._def,unknownKeys:"strip"})}passthrough(){return new Ol({...this._def,unknownKeys:"passthrough"})}extend($){return new Ol({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new Ol({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:ZodFirstPartyTypeKind$1.ZodObject})}setKey($,_e){return this.augment({[$]:_e})}catchall($){return new Ol({...this._def,catchall:$})}pick($){const _e={};return util$5.objectKeys($).forEach(et=>{$[et]&&this.shape[et]&&(_e[et]=this.shape[et])}),new Ol({...this._def,shape:()=>_e})}omit($){const _e={};return util$5.objectKeys(this.shape).forEach(et=>{$[et]||(_e[et]=this.shape[et])}),new Ol({...this._def,shape:()=>_e})}deepPartial(){return deepPartialify$1(this)}partial($){const _e={};return util$5.objectKeys(this.shape).forEach(et=>{const tt=this.shape[et];$&&!$[et]?_e[et]=tt:_e[et]=tt.optional()}),new Ol({...this._def,shape:()=>_e})}required($){const _e={};return util$5.objectKeys(this.shape).forEach(et=>{if($&&!$[et])_e[et]=this.shape[et];else{let rt=this.shape[et];for(;rt instanceof ZodOptional$1;)rt=rt._def.innerType;_e[et]=rt}}),new Ol({...this._def,shape:()=>_e})}keyof(){return createZodEnum$1(util$5.objectKeys(this.shape))}};ZodObject$1.create=(j,$)=>new ZodObject$1({shape:()=>j,unknownKeys:"strip",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind$1.ZodObject,...processCreateParams$1($)});ZodObject$1.strictCreate=(j,$)=>new ZodObject$1({shape:()=>j,unknownKeys:"strict",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind$1.ZodObject,...processCreateParams$1($)});ZodObject$1.lazycreate=(j,$)=>new ZodObject$1({shape:j,unknownKeys:"strip",catchall:ZodNever$1.create(),typeName:ZodFirstPartyTypeKind$1.ZodObject,...processCreateParams$1($)});let ZodUnion$1=class extends ZodType$1{_parse($){const{ctx:_e}=this._processInputParams($),et=this._def.options;function tt(rt){for(const it of rt)if(it.result.status==="valid")return it.result;for(const it of rt)if(it.result.status==="dirty")return _e.common.issues.push(...it.ctx.common.issues),it.result;const nt=rt.map(it=>new ZodError$1(it.ctx.common.issues));return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_union,unionErrors:nt}),INVALID$2}if(_e.common.async)return Promise.all(et.map(async rt=>{const nt={..._e,common:{..._e.common,issues:[]},parent:null};return{result:await rt._parseAsync({data:_e.data,path:_e.path,parent:nt}),ctx:nt}})).then(tt);{let rt;const nt=[];for(const ot of et){const At={..._e,common:{..._e.common,issues:[]},parent:null},ut=ot._parseSync({data:_e.data,path:_e.path,parent:At});if(ut.status==="valid")return ut;ut.status==="dirty"&&!rt&&(rt={result:ut,ctx:At}),At.common.issues.length&&nt.push(At.common.issues)}if(rt)return _e.common.issues.push(...rt.ctx.common.issues),rt.result;const it=nt.map(ot=>new ZodError$1(ot));return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_union,unionErrors:it}),INVALID$2}}get options(){return this._def.options}};ZodUnion$1.create=(j,$)=>new ZodUnion$1({options:j,typeName:ZodFirstPartyTypeKind$1.ZodUnion,...processCreateParams$1($)});const getDiscriminator$1=j=>j instanceof ZodLazy$1?getDiscriminator$1(j.schema):j instanceof ZodEffects$1?getDiscriminator$1(j.innerType()):j instanceof ZodLiteral$1?[j.value]:j instanceof ZodEnum$1?j.options:j instanceof ZodNativeEnum$1?Object.keys(j.enum):j instanceof ZodDefault$1?getDiscriminator$1(j._def.innerType):j instanceof ZodUndefined$1?[void 0]:j instanceof ZodNull$1?[null]:null;let ZodDiscriminatedUnion$1=class Ep extends ZodType$1{_parse($){const{ctx:_e}=this._processInputParams($);if(_e.parsedType!==ZodParsedType$1.object)return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.object,received:_e.parsedType}),INVALID$2;const et=this.discriminator,tt=_e.data[et],rt=this.optionsMap.get(tt);return rt?_e.common.async?rt._parseAsync({data:_e.data,path:_e.path,parent:_e}):rt._parseSync({data:_e.data,path:_e.path,parent:_e}):(addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[et]}),INVALID$2)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,_e,et){const tt=new Map;for(const rt of _e){const nt=getDiscriminator$1(rt.shape[$]);if(!nt)throw new Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(const it of nt){if(tt.has(it))throw new Error(`Discriminator property ${String($)} has duplicate value ${String(it)}`);tt.set(it,rt)}}return new Ep({typeName:ZodFirstPartyTypeKind$1.ZodDiscriminatedUnion,discriminator:$,options:_e,optionsMap:tt,...processCreateParams$1(et)})}};function mergeValues$1(j,$){const _e=getParsedType$1(j),et=getParsedType$1($);if(j===$)return{valid:!0,data:j};if(_e===ZodParsedType$1.object&&et===ZodParsedType$1.object){const tt=util$5.objectKeys($),rt=util$5.objectKeys(j).filter(it=>tt.indexOf(it)!==-1),nt={...j,...$};for(const it of rt){const ot=mergeValues$1(j[it],$[it]);if(!ot.valid)return{valid:!1};nt[it]=ot.data}return{valid:!0,data:nt}}else if(_e===ZodParsedType$1.array&&et===ZodParsedType$1.array){if(j.length!==$.length)return{valid:!1};const tt=[];for(let rt=0;rt{if(isAborted$1(rt)||isAborted$1(nt))return INVALID$2;const it=mergeValues$1(rt.value,nt.value);return it.valid?((isDirty$1(rt)||isDirty$1(nt))&&_e.dirty(),{status:_e.value,value:it.data}):(addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_intersection_types}),INVALID$2)};return et.common.async?Promise.all([this._def.left._parseAsync({data:et.data,path:et.path,parent:et}),this._def.right._parseAsync({data:et.data,path:et.path,parent:et})]).then(([rt,nt])=>tt(rt,nt)):tt(this._def.left._parseSync({data:et.data,path:et.path,parent:et}),this._def.right._parseSync({data:et.data,path:et.path,parent:et}))}};ZodIntersection$1.create=(j,$,_e)=>new ZodIntersection$1({left:j,right:$,typeName:ZodFirstPartyTypeKind$1.ZodIntersection,...processCreateParams$1(_e)});let ZodTuple$1=class Cp extends ZodType$1{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType$1.array)return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.array,received:et.parsedType}),INVALID$2;if(et.data.lengththis._def.items.length&&(addIssueToContext$1(et,{code:ZodIssueCode$1.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),_e.dirty());const rt=[...et.data].map((nt,it)=>{const ot=this._def.items[it]||this._def.rest;return ot?ot._parse(new ParseInputLazyPath$1(et,nt,et.path,it)):null}).filter(nt=>!!nt);return et.common.async?Promise.all(rt).then(nt=>ParseStatus$1.mergeArray(_e,nt)):ParseStatus$1.mergeArray(_e,rt)}get items(){return this._def.items}rest($){return new Cp({...this._def,rest:$})}};ZodTuple$1.create=(j,$)=>{if(!Array.isArray(j))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple$1({items:j,typeName:ZodFirstPartyTypeKind$1.ZodTuple,rest:null,...processCreateParams$1($)})};let ZodRecord$1=class gp extends ZodType$1{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType$1.object)return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.object,received:et.parsedType}),INVALID$2;const tt=[],rt=this._def.keyType,nt=this._def.valueType;for(const it in et.data)tt.push({key:rt._parse(new ParseInputLazyPath$1(et,it,et.path,it)),value:nt._parse(new ParseInputLazyPath$1(et,et.data[it],et.path,it))});return et.common.async?ParseStatus$1.mergeObjectAsync(_e,tt):ParseStatus$1.mergeObjectSync(_e,tt)}get element(){return this._def.valueType}static create($,_e,et){return _e instanceof ZodType$1?new gp({keyType:$,valueType:_e,typeName:ZodFirstPartyTypeKind$1.ZodRecord,...processCreateParams$1(et)}):new gp({keyType:ZodString$1.create(),valueType:$,typeName:ZodFirstPartyTypeKind$1.ZodRecord,...processCreateParams$1(_e)})}},ZodMap$1=class extends ZodType$1{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType$1.map)return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.map,received:et.parsedType}),INVALID$2;const tt=this._def.keyType,rt=this._def.valueType,nt=[...et.data.entries()].map(([it,ot],At)=>({key:tt._parse(new ParseInputLazyPath$1(et,it,et.path,[At,"key"])),value:rt._parse(new ParseInputLazyPath$1(et,ot,et.path,[At,"value"]))}));if(et.common.async){const it=new Map;return Promise.resolve().then(async()=>{for(const ot of nt){const At=await ot.key,ut=await ot.value;if(At.status==="aborted"||ut.status==="aborted")return INVALID$2;(At.status==="dirty"||ut.status==="dirty")&&_e.dirty(),it.set(At.value,ut.value)}return{status:_e.value,value:it}})}else{const it=new Map;for(const ot of nt){const At=ot.key,ut=ot.value;if(At.status==="aborted"||ut.status==="aborted")return INVALID$2;(At.status==="dirty"||ut.status==="dirty")&&_e.dirty(),it.set(At.value,ut.value)}return{status:_e.value,value:it}}}};ZodMap$1.create=(j,$,_e)=>new ZodMap$1({valueType:$,keyType:j,typeName:ZodFirstPartyTypeKind$1.ZodMap,...processCreateParams$1(_e)});let ZodSet$1=class fp extends ZodType$1{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType$1.set)return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.set,received:et.parsedType}),INVALID$2;const tt=this._def;tt.minSize!==null&&et.data.sizett.maxSize.value&&(addIssueToContext$1(et,{code:ZodIssueCode$1.too_big,maximum:tt.maxSize.value,type:"set",inclusive:!0,exact:!1,message:tt.maxSize.message}),_e.dirty());const rt=this._def.valueType;function nt(ot){const At=new Set;for(const ut of ot){if(ut.status==="aborted")return INVALID$2;ut.status==="dirty"&&_e.dirty(),At.add(ut.value)}return{status:_e.value,value:At}}const it=[...et.data.values()].map((ot,At)=>rt._parse(new ParseInputLazyPath$1(et,ot,et.path,At)));return et.common.async?Promise.all(it).then(ot=>nt(ot)):nt(it)}min($,_e){return new fp({...this._def,minSize:{value:$,message:errorUtil$1.toString(_e)}})}max($,_e){return new fp({...this._def,maxSize:{value:$,message:errorUtil$1.toString(_e)}})}size($,_e){return this.min($,_e).max($,_e)}nonempty($){return this.min(1,$)}};ZodSet$1.create=(j,$)=>new ZodSet$1({valueType:j,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind$1.ZodSet,...processCreateParams$1($)});let ZodFunction$1=class ju extends ZodType$1{constructor(){super(...arguments),this.validate=this.implement}_parse($){const{ctx:_e}=this._processInputParams($);if(_e.parsedType!==ZodParsedType$1.function)return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.function,received:_e.parsedType}),INVALID$2;function et(it,ot){return makeIssue$1({data:it,path:_e.path,errorMaps:[_e.common.contextualErrorMap,_e.schemaErrorMap,getErrorMap$1(),errorMap$1].filter(At=>!!At),issueData:{code:ZodIssueCode$1.invalid_arguments,argumentsError:ot}})}function tt(it,ot){return makeIssue$1({data:it,path:_e.path,errorMaps:[_e.common.contextualErrorMap,_e.schemaErrorMap,getErrorMap$1(),errorMap$1].filter(At=>!!At),issueData:{code:ZodIssueCode$1.invalid_return_type,returnTypeError:ot}})}const rt={errorMap:_e.common.contextualErrorMap},nt=_e.data;return this._def.returns instanceof ZodPromise$1?OK$1(async(...it)=>{const ot=new ZodError$1([]),At=await this._def.args.parseAsync(it,rt).catch(dt=>{throw ot.addIssue(et(it,dt)),ot}),ut=await nt(...At);return await this._def.returns._def.type.parseAsync(ut,rt).catch(dt=>{throw ot.addIssue(tt(ut,dt)),ot})}):OK$1((...it)=>{const ot=this._def.args.safeParse(it,rt);if(!ot.success)throw new ZodError$1([et(it,ot.error)]);const At=nt(...ot.data),ut=this._def.returns.safeParse(At,rt);if(!ut.success)throw new ZodError$1([tt(At,ut.error)]);return ut.data})}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new ju({...this._def,args:ZodTuple$1.create($).rest(ZodUnknown$1.create())})}returns($){return new ju({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,_e,et){return new ju({args:$||ZodTuple$1.create([]).rest(ZodUnknown$1.create()),returns:_e||ZodUnknown$1.create(),typeName:ZodFirstPartyTypeKind$1.ZodFunction,...processCreateParams$1(et)})}},ZodLazy$1=class extends ZodType$1{get schema(){return this._def.getter()}_parse($){const{ctx:_e}=this._processInputParams($);return this._def.getter()._parse({data:_e.data,path:_e.path,parent:_e})}};ZodLazy$1.create=(j,$)=>new ZodLazy$1({getter:j,typeName:ZodFirstPartyTypeKind$1.ZodLazy,...processCreateParams$1($)});let ZodLiteral$1=class extends ZodType$1{_parse($){if($.data!==this._def.value){const _e=this._getOrReturnCtx($);return addIssueToContext$1(_e,{received:_e.data,code:ZodIssueCode$1.invalid_literal,expected:this._def.value}),INVALID$2}return{status:"valid",value:$.data}}get value(){return this._def.value}};ZodLiteral$1.create=(j,$)=>new ZodLiteral$1({value:j,typeName:ZodFirstPartyTypeKind$1.ZodLiteral,...processCreateParams$1($)});function createZodEnum$1(j,$){return new ZodEnum$1({values:j,typeName:ZodFirstPartyTypeKind$1.ZodEnum,...processCreateParams$1($)})}let ZodEnum$1=class dp extends ZodType$1{_parse($){if(typeof $.data!="string"){const _e=this._getOrReturnCtx($),et=this._def.values;return addIssueToContext$1(_e,{expected:util$5.joinValues(et),received:_e.parsedType,code:ZodIssueCode$1.invalid_type}),INVALID$2}if(this._def.values.indexOf($.data)===-1){const _e=this._getOrReturnCtx($),et=this._def.values;return addIssueToContext$1(_e,{received:_e.data,code:ZodIssueCode$1.invalid_enum_value,options:et}),INVALID$2}return OK$1($.data)}get options(){return this._def.values}get enum(){const $={};for(const _e of this._def.values)$[_e]=_e;return $}get Values(){const $={};for(const _e of this._def.values)$[_e]=_e;return $}get Enum(){const $={};for(const _e of this._def.values)$[_e]=_e;return $}extract($){return dp.create($)}exclude($){return dp.create(this.options.filter(_e=>!$.includes(_e)))}};ZodEnum$1.create=createZodEnum$1;let ZodNativeEnum$1=class extends ZodType$1{_parse($){const _e=util$5.getValidEnumValues(this._def.values),et=this._getOrReturnCtx($);if(et.parsedType!==ZodParsedType$1.string&&et.parsedType!==ZodParsedType$1.number){const tt=util$5.objectValues(_e);return addIssueToContext$1(et,{expected:util$5.joinValues(tt),received:et.parsedType,code:ZodIssueCode$1.invalid_type}),INVALID$2}if(_e.indexOf($.data)===-1){const tt=util$5.objectValues(_e);return addIssueToContext$1(et,{received:et.data,code:ZodIssueCode$1.invalid_enum_value,options:tt}),INVALID$2}return OK$1($.data)}get enum(){return this._def.values}};ZodNativeEnum$1.create=(j,$)=>new ZodNativeEnum$1({values:j,typeName:ZodFirstPartyTypeKind$1.ZodNativeEnum,...processCreateParams$1($)});let ZodPromise$1=class extends ZodType$1{unwrap(){return this._def.type}_parse($){const{ctx:_e}=this._processInputParams($);if(_e.parsedType!==ZodParsedType$1.promise&&_e.common.async===!1)return addIssueToContext$1(_e,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.promise,received:_e.parsedType}),INVALID$2;const et=_e.parsedType===ZodParsedType$1.promise?_e.data:Promise.resolve(_e.data);return OK$1(et.then(tt=>this._def.type.parseAsync(tt,{path:_e.path,errorMap:_e.common.contextualErrorMap})))}};ZodPromise$1.create=(j,$)=>new ZodPromise$1({type:j,typeName:ZodFirstPartyTypeKind$1.ZodPromise,...processCreateParams$1($)});let ZodEffects$1=class extends ZodType$1{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind$1.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){const{status:_e,ctx:et}=this._processInputParams($),tt=this._def.effect||null;if(tt.type==="preprocess"){const nt=tt.transform(et.data);return et.common.async?Promise.resolve(nt).then(it=>this._def.schema._parseAsync({data:it,path:et.path,parent:et})):this._def.schema._parseSync({data:nt,path:et.path,parent:et})}const rt={addIssue:nt=>{addIssueToContext$1(et,nt),nt.fatal?_e.abort():_e.dirty()},get path(){return et.path}};if(rt.addIssue=rt.addIssue.bind(rt),tt.type==="refinement"){const nt=it=>{const ot=tt.refinement(it,rt);if(et.common.async)return Promise.resolve(ot);if(ot instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return it};if(et.common.async===!1){const it=this._def.schema._parseSync({data:et.data,path:et.path,parent:et});return it.status==="aborted"?INVALID$2:(it.status==="dirty"&&_e.dirty(),nt(it.value),{status:_e.value,value:it.value})}else return this._def.schema._parseAsync({data:et.data,path:et.path,parent:et}).then(it=>it.status==="aborted"?INVALID$2:(it.status==="dirty"&&_e.dirty(),nt(it.value).then(()=>({status:_e.value,value:it.value}))))}if(tt.type==="transform")if(et.common.async===!1){const nt=this._def.schema._parseSync({data:et.data,path:et.path,parent:et});if(!isValid$1(nt))return nt;const it=tt.transform(nt.value,rt);if(it instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:_e.value,value:it}}else return this._def.schema._parseAsync({data:et.data,path:et.path,parent:et}).then(nt=>isValid$1(nt)?Promise.resolve(tt.transform(nt.value,rt)).then(it=>({status:_e.value,value:it})):nt);util$5.assertNever(tt)}};ZodEffects$1.create=(j,$,_e)=>new ZodEffects$1({schema:j,typeName:ZodFirstPartyTypeKind$1.ZodEffects,effect:$,...processCreateParams$1(_e)});ZodEffects$1.createWithPreprocess=(j,$,_e)=>new ZodEffects$1({schema:$,effect:{type:"preprocess",transform:j},typeName:ZodFirstPartyTypeKind$1.ZodEffects,...processCreateParams$1(_e)});let ZodOptional$1=class extends ZodType$1{_parse($){return this._getType($)===ZodParsedType$1.undefined?OK$1(void 0):this._def.innerType._parse($)}unwrap(){return this._def.innerType}};ZodOptional$1.create=(j,$)=>new ZodOptional$1({innerType:j,typeName:ZodFirstPartyTypeKind$1.ZodOptional,...processCreateParams$1($)});let ZodNullable$1=class extends ZodType$1{_parse($){return this._getType($)===ZodParsedType$1.null?OK$1(null):this._def.innerType._parse($)}unwrap(){return this._def.innerType}};ZodNullable$1.create=(j,$)=>new ZodNullable$1({innerType:j,typeName:ZodFirstPartyTypeKind$1.ZodNullable,...processCreateParams$1($)});let ZodDefault$1=class extends ZodType$1{_parse($){const{ctx:_e}=this._processInputParams($);let et=_e.data;return _e.parsedType===ZodParsedType$1.undefined&&(et=this._def.defaultValue()),this._def.innerType._parse({data:et,path:_e.path,parent:_e})}removeDefault(){return this._def.innerType}};ZodDefault$1.create=(j,$)=>new ZodDefault$1({innerType:j,typeName:ZodFirstPartyTypeKind$1.ZodDefault,defaultValue:typeof $.default=="function"?$.default:()=>$.default,...processCreateParams$1($)});let ZodCatch$1=class extends ZodType$1{_parse($){const{ctx:_e}=this._processInputParams($),et={..._e,common:{..._e.common,issues:[]}},tt=this._def.innerType._parse({data:et.data,path:et.path,parent:{...et}});return isAsync$1(tt)?tt.then(rt=>({status:"valid",value:rt.status==="valid"?rt.value:this._def.catchValue({get error(){return new ZodError$1(et.common.issues)},input:et.data})})):{status:"valid",value:tt.status==="valid"?tt.value:this._def.catchValue({get error(){return new ZodError$1(et.common.issues)},input:et.data})}}removeCatch(){return this._def.innerType}};ZodCatch$1.create=(j,$)=>new ZodCatch$1({innerType:j,typeName:ZodFirstPartyTypeKind$1.ZodCatch,catchValue:typeof $.catch=="function"?$.catch:()=>$.catch,...processCreateParams$1($)});let ZodNaN$1=class extends ZodType$1{_parse($){if(this._getType($)!==ZodParsedType$1.nan){const et=this._getOrReturnCtx($);return addIssueToContext$1(et,{code:ZodIssueCode$1.invalid_type,expected:ZodParsedType$1.nan,received:et.parsedType}),INVALID$2}return{status:"valid",value:$.data}}};ZodNaN$1.create=j=>new ZodNaN$1({typeName:ZodFirstPartyTypeKind$1.ZodNaN,...processCreateParams$1(j)});const BRAND$1=Symbol("zod_brand");let ZodBranded$1=class extends ZodType$1{_parse($){const{ctx:_e}=this._processInputParams($),et=_e.data;return this._def.type._parse({data:et,path:_e.path,parent:_e})}unwrap(){return this._def.type}},ZodPipeline$1=class yp extends ZodType$1{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.common.async)return(async()=>{const rt=await this._def.in._parseAsync({data:et.data,path:et.path,parent:et});return rt.status==="aborted"?INVALID$2:rt.status==="dirty"?(_e.dirty(),DIRTY$1(rt.value)):this._def.out._parseAsync({data:rt.value,path:et.path,parent:et})})();{const tt=this._def.in._parseSync({data:et.data,path:et.path,parent:et});return tt.status==="aborted"?INVALID$2:tt.status==="dirty"?(_e.dirty(),{status:"dirty",value:tt.value}):this._def.out._parseSync({data:tt.value,path:et.path,parent:et})}}static create($,_e){return new yp({in:$,out:_e,typeName:ZodFirstPartyTypeKind$1.ZodPipeline})}};const custom$1=(j,$={},_e)=>j?ZodAny$1.create().superRefine((et,tt)=>{var rt,nt;if(!j(et)){const it=typeof $=="function"?$(et):typeof $=="string"?{message:$}:$,ot=(nt=(rt=it.fatal)!==null&&rt!==void 0?rt:_e)!==null&&nt!==void 0?nt:!0,At=typeof it=="string"?{message:it}:it;tt.addIssue({code:"custom",...At,fatal:ot})}}):ZodAny$1.create(),late$1={object:ZodObject$1.lazycreate};var ZodFirstPartyTypeKind$1;(function(j){j.ZodString="ZodString",j.ZodNumber="ZodNumber",j.ZodNaN="ZodNaN",j.ZodBigInt="ZodBigInt",j.ZodBoolean="ZodBoolean",j.ZodDate="ZodDate",j.ZodSymbol="ZodSymbol",j.ZodUndefined="ZodUndefined",j.ZodNull="ZodNull",j.ZodAny="ZodAny",j.ZodUnknown="ZodUnknown",j.ZodNever="ZodNever",j.ZodVoid="ZodVoid",j.ZodArray="ZodArray",j.ZodObject="ZodObject",j.ZodUnion="ZodUnion",j.ZodDiscriminatedUnion="ZodDiscriminatedUnion",j.ZodIntersection="ZodIntersection",j.ZodTuple="ZodTuple",j.ZodRecord="ZodRecord",j.ZodMap="ZodMap",j.ZodSet="ZodSet",j.ZodFunction="ZodFunction",j.ZodLazy="ZodLazy",j.ZodLiteral="ZodLiteral",j.ZodEnum="ZodEnum",j.ZodEffects="ZodEffects",j.ZodNativeEnum="ZodNativeEnum",j.ZodOptional="ZodOptional",j.ZodNullable="ZodNullable",j.ZodDefault="ZodDefault",j.ZodCatch="ZodCatch",j.ZodPromise="ZodPromise",j.ZodBranded="ZodBranded",j.ZodPipeline="ZodPipeline"})(ZodFirstPartyTypeKind$1||(ZodFirstPartyTypeKind$1={}));const instanceOfType$1=(j,$={message:`Input not instance of ${j.name}`})=>custom$1(_e=>_e instanceof j,$),stringType$1=ZodString$1.create,numberType$1=ZodNumber$1.create,nanType$1=ZodNaN$1.create,bigIntType$1=ZodBigInt$1.create,booleanType$1=ZodBoolean$1.create,dateType$1=ZodDate$1.create,symbolType$1=ZodSymbol$1.create,undefinedType$1=ZodUndefined$1.create,nullType$1=ZodNull$1.create,anyType$1=ZodAny$1.create,unknownType$1=ZodUnknown$1.create,neverType$1=ZodNever$1.create,voidType$1=ZodVoid$1.create,arrayType$1=ZodArray$1.create,objectType$1=ZodObject$1.create,strictObjectType$1=ZodObject$1.strictCreate,unionType$1=ZodUnion$1.create,discriminatedUnionType$1=ZodDiscriminatedUnion$1.create,intersectionType$1=ZodIntersection$1.create,tupleType$1=ZodTuple$1.create,recordType$1=ZodRecord$1.create,mapType$1=ZodMap$1.create,setType$1=ZodSet$1.create,functionType$1=ZodFunction$1.create,lazyType$1=ZodLazy$1.create,literalType$1=ZodLiteral$1.create,enumType$1=ZodEnum$1.create,nativeEnumType$1=ZodNativeEnum$1.create,promiseType$1=ZodPromise$1.create,effectsType$1=ZodEffects$1.create,optionalType$1=ZodOptional$1.create,nullableType$1=ZodNullable$1.create,preprocessType$1=ZodEffects$1.createWithPreprocess,pipelineType$1=ZodPipeline$1.create,ostring$1=()=>stringType$1().optional(),onumber$1=()=>numberType$1().optional(),oboolean$1=()=>booleanType$1().optional(),coerce$2$1={string:j=>ZodString$1.create({...j,coerce:!0}),number:j=>ZodNumber$1.create({...j,coerce:!0}),boolean:j=>ZodBoolean$1.create({...j,coerce:!0}),bigint:j=>ZodBigInt$1.create({...j,coerce:!0}),date:j=>ZodDate$1.create({...j,coerce:!0})},NEVER$1=INVALID$2;var z$2=Object.freeze({__proto__:null,defaultErrorMap:errorMap$1,setErrorMap:setErrorMap$1,getErrorMap:getErrorMap$1,makeIssue:makeIssue$1,EMPTY_PATH:EMPTY_PATH$1,addIssueToContext:addIssueToContext$1,ParseStatus:ParseStatus$1,INVALID:INVALID$2,DIRTY:DIRTY$1,OK:OK$1,isAborted:isAborted$1,isDirty:isDirty$1,isValid:isValid$1,isAsync:isAsync$1,get util(){return util$5},get objectUtil(){return objectUtil$1},ZodParsedType:ZodParsedType$1,getParsedType:getParsedType$1,ZodType:ZodType$1,ZodString:ZodString$1,ZodNumber:ZodNumber$1,ZodBigInt:ZodBigInt$1,ZodBoolean:ZodBoolean$1,ZodDate:ZodDate$1,ZodSymbol:ZodSymbol$1,ZodUndefined:ZodUndefined$1,ZodNull:ZodNull$1,ZodAny:ZodAny$1,ZodUnknown:ZodUnknown$1,ZodNever:ZodNever$1,ZodVoid:ZodVoid$1,ZodArray:ZodArray$1,ZodObject:ZodObject$1,ZodUnion:ZodUnion$1,ZodDiscriminatedUnion:ZodDiscriminatedUnion$1,ZodIntersection:ZodIntersection$1,ZodTuple:ZodTuple$1,ZodRecord:ZodRecord$1,ZodMap:ZodMap$1,ZodSet:ZodSet$1,ZodFunction:ZodFunction$1,ZodLazy:ZodLazy$1,ZodLiteral:ZodLiteral$1,ZodEnum:ZodEnum$1,ZodNativeEnum:ZodNativeEnum$1,ZodPromise:ZodPromise$1,ZodEffects:ZodEffects$1,ZodTransformer:ZodEffects$1,ZodOptional:ZodOptional$1,ZodNullable:ZodNullable$1,ZodDefault:ZodDefault$1,ZodCatch:ZodCatch$1,ZodNaN:ZodNaN$1,BRAND:BRAND$1,ZodBranded:ZodBranded$1,ZodPipeline:ZodPipeline$1,custom:custom$1,Schema:ZodType$1,ZodSchema:ZodType$1,late:late$1,get ZodFirstPartyTypeKind(){return ZodFirstPartyTypeKind$1},coerce:coerce$2$1,any:anyType$1,array:arrayType$1,bigint:bigIntType$1,boolean:booleanType$1,date:dateType$1,discriminatedUnion:discriminatedUnionType$1,effect:effectsType$1,enum:enumType$1,function:functionType$1,instanceof:instanceOfType$1,intersection:intersectionType$1,lazy:lazyType$1,literal:literalType$1,map:mapType$1,nan:nanType$1,nativeEnum:nativeEnumType$1,never:neverType$1,null:nullType$1,nullable:nullableType$1,number:numberType$1,object:objectType$1,oboolean:oboolean$1,onumber:onumber$1,optional:optionalType$1,ostring:ostring$1,pipeline:pipelineType$1,preprocess:preprocessType$1,promise:promiseType$1,record:recordType$1,set:setType$1,strictObject:strictObjectType$1,string:stringType$1,symbol:symbolType$1,transformer:effectsType$1,tuple:tupleType$1,undefined:undefinedType$1,union:unionType$1,unknown:unknownType$1,void:voidType$1,NEVER:NEVER$1,ZodIssueCode:ZodIssueCode$1,quotelessJson:quotelessJson$1,ZodError:ZodError$1});function commonjsRequire$1(j){throw new Error('Could not dynamically require "'+j+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var pluralize$1={exports:{}};(function(j,$){(function(_e,et){typeof commonjsRequire$1=="function"?j.exports=et():_e.pluralize=et()})(commonjsGlobal$1,function(){var _e=[],et=[],tt={},rt={},nt={};function it(St){return typeof St=="string"?new RegExp("^"+St+"$","i"):St}function ot(St,Dt){return St===Dt?Dt:St===St.toLowerCase()?Dt.toLowerCase():St===St.toUpperCase()?Dt.toUpperCase():St[0]===St[0].toUpperCase()?Dt.charAt(0).toUpperCase()+Dt.substr(1).toLowerCase():Dt.toLowerCase()}function At(St,Dt){return St.replace(/\$(\d{1,2})/g,function($t,Rt){return Dt[Rt]||""})}function ut(St,Dt){return St.replace(Dt[0],function($t,Rt){var wt=At(Dt[1],arguments);return ot($t===""?St[Rt-1]:$t,wt)})}function ft(St,Dt,$t){if(!St.length||tt.hasOwnProperty(St))return Dt;for(var Rt=$t.length;Rt--;){var wt=$t[Rt];if(wt[0].test(Dt))return ut(Dt,wt)}return Dt}function dt(St,Dt,$t){return function(Rt){var wt=Rt.toLowerCase();return Dt.hasOwnProperty(wt)?ot(Rt,wt):St.hasOwnProperty(wt)?ot(Rt,St[wt]):ft(wt,Rt,$t)}}function Et(St,Dt,$t,Rt){return function(wt){var xt=wt.toLowerCase();return Dt.hasOwnProperty(xt)?!0:St.hasOwnProperty(xt)?!1:ft(xt,xt,$t)===xt}}function Bt(St,Dt,$t){var Rt=Dt===1?Bt.singular(St):Bt.plural(St);return($t?Dt+" ":"")+Rt}return Bt.plural=dt(nt,rt,_e),Bt.isPlural=Et(nt,rt,_e),Bt.singular=dt(rt,nt,et),Bt.isSingular=Et(rt,nt,et),Bt.addPluralRule=function(St,Dt){_e.push([it(St),Dt])},Bt.addSingularRule=function(St,Dt){et.push([it(St),Dt])},Bt.addUncountableRule=function(St){if(typeof St=="string"){tt[St.toLowerCase()]=!0;return}Bt.addPluralRule(St,"$0"),Bt.addSingularRule(St,"$0")},Bt.addIrregularRule=function(St,Dt){Dt=Dt.toLowerCase(),St=St.toLowerCase(),nt[St]=Dt,rt[Dt]=St},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach(function(St){return Bt.addIrregularRule(St[0],St[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(St){return Bt.addPluralRule(St[0],St[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(St){return Bt.addSingularRule(St[0],St[1])}),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(Bt.addUncountableRule),Bt})})(pluralize$1);var pluralizeExports$1=pluralize$1.exports;const plur$1=getDefaultExportFromCjs$1(pluralizeExports$1);plur$1.addPluralRule("glomerulus","glomeruli");plur$1.addPluralRule("interstitium","interstitia");function fromEntries$1(j){return[...j].reduce(($,{0:_e,1:et})=>Object.assign($,{[_e]:et}),{})}function capitalize$3(j){return j?j.charAt(0).toUpperCase()+j.slice(1):""}function getNextScope$1(j){const $="ABCDEFGHIJKLMNOPQRSTUVWXYZ",_e=[0];function et(){const rt=[];_e.forEach(it=>{rt.unshift($[it])});let nt=!0;for(let it=0;it<_e.length;it++)if(++_e[it]>=$.length)_e[it]=0;else{nt=!1;break}return nt&&_e.push(0),rt.join("")}let tt;do tt=et();while(j.includes(tt));return tt}let getRandomValues$2;const rnds8$2=new Uint8Array(16);function rng$2(){if(!getRandomValues$2&&(getRandomValues$2=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues$2))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues$2(rnds8$2)}const byteToHex$2=[];for(let j=0;j<256;++j)byteToHex$2.push((j+256).toString(16).slice(1));function unsafeStringify$1(j,$=0){return(byteToHex$2[j[$+0]]+byteToHex$2[j[$+1]]+byteToHex$2[j[$+2]]+byteToHex$2[j[$+3]]+"-"+byteToHex$2[j[$+4]]+byteToHex$2[j[$+5]]+"-"+byteToHex$2[j[$+6]]+byteToHex$2[j[$+7]]+"-"+byteToHex$2[j[$+8]]+byteToHex$2[j[$+9]]+"-"+byteToHex$2[j[$+10]]+byteToHex$2[j[$+11]]+byteToHex$2[j[$+12]]+byteToHex$2[j[$+13]]+byteToHex$2[j[$+14]]+byteToHex$2[j[$+15]]).toLowerCase()}const randomUUID$1=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native$1={randomUUID:randomUUID$1};function v4$2(j,$,_e){if(native$1.randomUUID&&!$&&!j)return native$1.randomUUID();j=j||{};const et=j.random||(j.rng||rng$2)();if(et[6]=et[6]&15|64,et[8]=et[8]&63|128,$){_e=_e||0;for(let tt=0;tt<16;++tt)$[_e+tt]=et[tt];return $}return unsafeStringify$1(et)}var concaveman$1$1={exports:{}},rbush_min$1={exports:{}};(function(j,$){(function(_e,et){j.exports=et()})(commonjsGlobal$1,function(){function _e(Rt,wt,xt,Nt,Ot){(function kt(Jt,jt,Ht,Gt,Kt){for(;Gt>Ht;){if(Gt-Ht>600){var Wt=Gt-Ht+1,Vt=jt-Ht+1,ur=Math.log(Wt),Ar=.5*Math.exp(2*ur/3),hr=.5*Math.sqrt(ur*Ar*(Wt-Ar)/Wt)*(Vt-Wt/2<0?-1:1),sr=Math.max(Ht,Math.floor(jt-Vt*Ar/Wt+hr)),ar=Math.min(Gt,Math.floor(jt+(Wt-Vt)*Ar/Wt+hr));kt(Jt,jt,sr,ar,Kt)}var Yt=Jt[jt],pr=Ht,Zt=Gt;for(et(Jt,Ht,jt),Kt(Jt[Gt],Yt)>0&&et(Jt,Ht,Gt);pr0;)Zt--}Kt(Jt[Ht],Yt)===0?et(Jt,Ht,Zt):et(Jt,++Zt,Gt),Zt<=jt&&(Ht=Zt+1),jt<=Zt&&(Gt=Zt-1)}})(Rt,wt,xt||0,Nt||Rt.length-1,Ot||tt)}function et(Rt,wt,xt){var Nt=Rt[wt];Rt[wt]=Rt[xt],Rt[xt]=Nt}function tt(Rt,wt){return Rtwt?1:0}var rt=function(Rt){Rt===void 0&&(Rt=9),this._maxEntries=Math.max(4,Rt),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function nt(Rt,wt,xt){if(!xt)return wt.indexOf(Rt);for(var Nt=0;Nt=Rt.minX&&wt.maxY>=Rt.minY}function Dt(Rt){return{children:Rt,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function $t(Rt,wt,xt,Nt,Ot){for(var kt=[wt,xt];kt.length;)if(!((xt=kt.pop())-(wt=kt.pop())<=Nt)){var Jt=wt+Math.ceil((xt-wt)/Nt/2)*Nt;_e(Rt,Jt,wt,xt,Ot),kt.push(wt,Jt,Jt,xt)}}return rt.prototype.all=function(){return this._all(this.data,[])},rt.prototype.search=function(Rt){var wt=this.data,xt=[];if(!St(Rt,wt))return xt;for(var Nt=this.toBBox,Ot=[];wt;){for(var kt=0;kt=0&&Ot[wt].children.length>this._maxEntries;)this._split(Ot,wt),wt--;this._adjustParentBBoxes(Nt,Ot,wt)},rt.prototype._split=function(Rt,wt){var xt=Rt[wt],Nt=xt.children.length,Ot=this._minEntries;this._chooseSplitAxis(xt,Ot,Nt);var kt=this._chooseSplitIndex(xt,Ot,Nt),Jt=Dt(xt.children.splice(kt,xt.children.length-kt));Jt.height=xt.height,Jt.leaf=xt.leaf,it(xt,this.toBBox),it(Jt,this.toBBox),wt?Rt[wt-1].children.push(Jt):this._splitRoot(xt,Jt)},rt.prototype._splitRoot=function(Rt,wt){this.data=Dt([Rt,wt]),this.data.height=Rt.height+1,this.data.leaf=!1,it(this.data,this.toBBox)},rt.prototype._chooseSplitIndex=function(Rt,wt,xt){for(var Nt,Ot,kt,Jt,jt,Ht,Gt,Kt=1/0,Wt=1/0,Vt=wt;Vt<=xt-wt;Vt++){var ur=ot(Rt,0,Vt,this.toBBox),Ar=ot(Rt,Vt,xt,this.toBBox),hr=(Ot=ur,kt=Ar,Jt=void 0,jt=void 0,Ht=void 0,Gt=void 0,Jt=Math.max(Ot.minX,kt.minX),jt=Math.max(Ot.minY,kt.minY),Ht=Math.min(Ot.maxX,kt.maxX),Gt=Math.min(Ot.maxY,kt.maxY),Math.max(0,Ht-Jt)*Math.max(0,Gt-jt)),sr=dt(ur)+dt(Ar);hr=wt;Kt--){var Wt=Rt.children[Kt];At(Jt,Rt.leaf?Ot(Wt):Wt),jt+=Et(Jt)}return jt},rt.prototype._adjustParentBBoxes=function(Rt,wt,xt){for(var Nt=xt;Nt>=0;Nt--)At(wt[Nt],Rt)},rt.prototype._condense=function(Rt){for(var wt=Rt.length-1,xt=void 0;wt>=0;wt--)Rt[wt].children.length===0?wt>0?(xt=Rt[wt-1].children).splice(xt.indexOf(Rt[wt]),1):this.clear():it(Rt[wt],this.toBBox)},rt})})(rbush_min$1);var rbush_minExports$1=rbush_min$1.exports;let TinyQueue$1=class{constructor($=[],_e=defaultCompare){if(this.data=$,this.length=this.data.length,this.compare=_e,this.length>0)for(let et=(this.length>>1)-1;et>=0;et--)this._down(et)}push($){this.data.push($),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const $=this.data[0],_e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=_e,this._down(0)),$}peek(){return this.data[0]}_up($){const{data:_e,compare:et}=this,tt=_e[$];for(;$>0;){const rt=$-1>>1,nt=_e[rt];if(et(tt,nt)>=0)break;_e[$]=nt,$=rt}_e[$]=tt}_down($){const{data:_e,compare:et}=this,tt=this.length>>1,rt=_e[$];for(;$=0)break;_e[$]=it,$=nt}_e[$]=rt}};function defaultCompare(j,$){return j<$?-1:j>$?1:0}const tinyqueue$1=Object.freeze(Object.defineProperty({__proto__:null,default:TinyQueue$1},Symbol.toStringTag,{value:"Module"})),require$$1$6=getAugmentedNamespace$1(tinyqueue$1);var pointInPolygon$1$1={exports:{}},flat$1=function($,_e,et,tt){var rt=$[0],nt=$[1],it=!1;et===void 0&&(et=0),tt===void 0&&(tt=_e.length);for(var ot=(tt-et)/2,At=0,ut=ot-1;Atnt!=Bt>nt&&rt<(Et-ft)*(nt-dt)/(Bt-dt)+ft;St&&(it=!it)}return it},nested$2=function($,_e,et,tt){var rt=$[0],nt=$[1],it=!1;et===void 0&&(et=0),tt===void 0&&(tt=_e.length);for(var ot=tt-et,At=0,ut=ot-1;Atnt!=Bt>nt&&rt<(Et-ft)*(nt-dt)/(Bt-dt)+ft;St&&(it=!it)}return it},pointInPolygonFlat2$1=flat$1,pointInPolygonNested2$1=nested$2;pointInPolygon$1$1.exports=function($,_e,et,tt){return _e.length>0&&Array.isArray(_e[0])?pointInPolygonNested2$1($,_e,et,tt):pointInPolygonFlat2$1($,_e,et,tt)};pointInPolygon$1$1.exports.nested=pointInPolygonNested2$1;pointInPolygon$1$1.exports.flat=pointInPolygonFlat2$1;var pointInPolygonExports$1=pointInPolygon$1$1.exports,orient2d_min$1={exports:{}};(function(j,$){(function(_e,et){et($)})(commonjsGlobal$1,function(_e){const tt=33306690738754706e-32;function rt(St,Dt,$t,Rt,wt){let xt,Nt,Ot,kt,Jt=Dt[0],jt=Rt[0],Ht=0,Gt=0;jt>Jt==jt>-Jt?(xt=Jt,Jt=Dt[++Ht]):(xt=jt,jt=Rt[++Gt]);let Kt=0;if(HtJt==jt>-Jt?(Ot=xt-((Nt=Jt+xt)-Jt),Jt=Dt[++Ht]):(Ot=xt-((Nt=jt+xt)-jt),jt=Rt[++Gt]),xt=Nt,Ot!==0&&(wt[Kt++]=Ot);HtJt==jt>-Jt?(Ot=xt-((Nt=xt+Jt)-(kt=Nt-xt))+(Jt-kt),Jt=Dt[++Ht]):(Ot=xt-((Nt=xt+jt)-(kt=Nt-xt))+(jt-kt),jt=Rt[++Gt]),xt=Nt,Ot!==0&&(wt[Kt++]=Ot);for(;Ht0!=Ot>0)return kt;const Jt=Math.abs(Nt+Ot);return Math.abs(kt)>=it*Jt?kt:-function(jt,Ht,Gt,Kt,Wt,Vt,ur){let Ar,hr,sr,ar,Yt,pr,Zt,mr,vr,_r,Er,Lr,Rr,$r,xr,Fr,Nr,Xt;const cr=jt-Wt,ir=Gt-Wt,Qr=Ht-Vt,Or=Kt-Vt;Yt=(xr=(mr=cr-(Zt=(pr=134217729*cr)-(pr-cr)))*(_r=Or-(vr=(pr=134217729*Or)-(pr-Or)))-(($r=cr*Or)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=Qr-(Zt=(pr=134217729*Qr)-(pr-Qr)))*(_r=ir-(vr=(pr=134217729*ir)-(pr-ir)))-((Fr=Qr*ir)-Zt*vr-mr*vr-Zt*_r))),ut[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),ut[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,ut[2]=Lr-(Xt-Yt)+(Er-Yt),ut[3]=Xt;let Yr=function(fr,yr){let Ur=yr[0];for(let Wr=1;Wr=wr||-Yr>=wr||(Ar=jt-(cr+(Yt=jt-cr))+(Yt-Wt),sr=Gt-(ir+(Yt=Gt-ir))+(Yt-Wt),hr=Ht-(Qr+(Yt=Ht-Qr))+(Yt-Vt),ar=Kt-(Or+(Yt=Kt-Or))+(Yt-Vt),Ar===0&&hr===0&&sr===0&&ar===0)||(wr=At*ur+tt*Math.abs(Yr),(Yr+=cr*ar+Or*Ar-(Qr*sr+ir*hr))>=wr||-Yr>=wr))return Yr;Yt=(xr=(mr=Ar-(Zt=(pr=134217729*Ar)-(pr-Ar)))*(_r=Or-(vr=(pr=134217729*Or)-(pr-Or)))-(($r=Ar*Or)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=hr-(Zt=(pr=134217729*hr)-(pr-hr)))*(_r=ir-(vr=(pr=134217729*ir)-(pr-ir)))-((Fr=hr*ir)-Zt*vr-mr*vr-Zt*_r))),Bt[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),Bt[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,Bt[2]=Lr-(Xt-Yt)+(Er-Yt),Bt[3]=Xt;const rr=rt(4,ut,4,Bt,ft);Yt=(xr=(mr=cr-(Zt=(pr=134217729*cr)-(pr-cr)))*(_r=ar-(vr=(pr=134217729*ar)-(pr-ar)))-(($r=cr*ar)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=Qr-(Zt=(pr=134217729*Qr)-(pr-Qr)))*(_r=sr-(vr=(pr=134217729*sr)-(pr-sr)))-((Fr=Qr*sr)-Zt*vr-mr*vr-Zt*_r))),Bt[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),Bt[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,Bt[2]=Lr-(Xt-Yt)+(Er-Yt),Bt[3]=Xt;const er=rt(rr,ft,4,Bt,dt);Yt=(xr=(mr=Ar-(Zt=(pr=134217729*Ar)-(pr-Ar)))*(_r=ar-(vr=(pr=134217729*ar)-(pr-ar)))-(($r=Ar*ar)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=hr-(Zt=(pr=134217729*hr)-(pr-hr)))*(_r=sr-(vr=(pr=134217729*sr)-(pr-sr)))-((Fr=hr*sr)-Zt*vr-mr*vr-Zt*_r))),Bt[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),Bt[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,Bt[2]=Lr-(Xt-Yt)+(Er-Yt),Bt[3]=Xt;const lr=rt(er,dt,4,Bt,Et);return Et[lr-1]}(St,Dt,$t,Rt,wt,xt,Jt)},_e.orient2dfast=function(St,Dt,$t,Rt,wt,xt){return(Dt-xt)*($t-wt)-(St-wt)*(Rt-xt)},Object.defineProperty(_e,"__esModule",{value:!0})})})(orient2d_min$1,orient2d_min$1.exports);var orient2d_minExports$1=orient2d_min$1.exports,RBush$1=rbush_minExports$1,Queue$1=require$$1$6,pointInPolygon2$1=pointInPolygonExports$1,orient$2=orient2d_minExports$1.orient2d;Queue$1.default&&(Queue$1=Queue$1.default);concaveman$1$1.exports=concaveman$2;concaveman$1$1.exports.default=concaveman$2;function concaveman$2(j,$,_e){$=Math.max(0,$===void 0?2:$),_e=_e||0;var et=fastConvexHull$1(j),tt=new RBush$1(16);tt.toBBox=function(Rt){return{minX:Rt[0],minY:Rt[1],maxX:Rt[0],maxY:Rt[1]}},tt.compareMinX=function(Rt,wt){return Rt[0]-wt[0]},tt.compareMinY=function(Rt,wt){return Rt[1]-wt[1]},tt.load(j);for(var rt=[],nt=0,it;ntrt||it.push({node:ut,dist:ft})}for(;it.length&&!it.peek().node.children;){var dt=it.pop(),Et=dt.node,Bt=sqSegDist$1(Et,$,_e),St=sqSegDist$1(Et,et,tt);if(dt.dist=$.minX&&j[0]<=$.maxX&&j[1]>=$.minY&&j[1]<=$.maxY}function noIntersections$1(j,$,_e){for(var et=Math.min(j[0],$[0]),tt=Math.min(j[1],$[1]),rt=Math.max(j[0],$[0]),nt=Math.max(j[1],$[1]),it=_e.search({minX:et,minY:tt,maxX:rt,maxY:nt}),ot=0;ot0!=cross$2(j,$,et)>0&&cross$2(_e,et,j)>0!=cross$2(_e,et,$)>0}function updateBBox$1(j){var $=j.p,_e=j.next.p;return j.minX=Math.min($[0],_e[0]),j.minY=Math.min($[1],_e[1]),j.maxX=Math.max($[0],_e[0]),j.maxY=Math.max($[1],_e[1]),j}function fastConvexHull$1(j){for(var $=j[0],_e=j[0],et=j[0],tt=j[0],rt=0;rtet[0]&&(et=nt),nt[1]<_e[1]&&(_e=nt),nt[1]>tt[1]&&(tt=nt)}var it=[$,_e,et,tt],ot=it.slice();for(rt=0;rt1?(et=_e[0],tt=_e[1]):it>0&&(et+=rt*it,tt+=nt*it)}return rt=j[0]-et,nt=j[1]-tt,rt*rt+nt*nt}function sqSegSegDist$1(j,$,_e,et,tt,rt,nt,it){var ot=_e-j,At=et-$,ut=nt-tt,ft=it-rt,dt=j-tt,Et=$-rt,Bt=ot*ot+At*At,St=ot*ut+At*ft,Dt=ut*ut+ft*ft,$t=ot*dt+At*Et,Rt=ut*dt+ft*Et,wt=Bt*Dt-St*St,xt,Nt,Ot,kt,Jt=wt,jt=wt;wt===0?(Nt=0,Jt=1,kt=Rt,jt=Dt):(Nt=St*Rt-Dt*$t,kt=Bt*Rt-St*$t,Nt<0?(Nt=0,kt=Rt,jt=Dt):Nt>Jt&&(Nt=Jt,kt=Rt+St,jt=Dt)),kt<0?(kt=0,-$t<0?Nt=0:-$t>Bt?Nt=Jt:(Nt=-$t,Jt=Bt)):kt>jt&&(kt=jt,-$t+St<0?Nt=0:-$t+St>Bt?Nt=Jt:(Nt=-$t+St,Jt=Bt)),xt=Nt===0?0:Nt/Jt,Ot=kt===0?0:kt/jt;var Ht=(1-xt)*j+xt*_e,Gt=(1-xt)*$+xt*et,Kt=(1-Ot)*tt+Ot*nt,Wt=(1-Ot)*rt+Ot*it,Vt=Kt-Ht,ur=Wt-Gt;return Vt*Vt+ur*ur}function compareByX$1(j,$){return j[0]===$[0]?j[1]-$[1]:j[0]-$[0]}function convexHull$1(j){j.sort(compareByX$1);for(var $=[],_e=0;_e=2&&cross$2($[$.length-2],$[$.length-1],j[_e])<=0;)$.pop();$.push(j[_e])}for(var et=[],tt=j.length-1;tt>=0;tt--){for(;et.length>=2&&cross$2(et[et.length-2],et[et.length-1],j[tt])<=0;)et.pop();et.push(j[tt])}return et.pop(),$.pop(),$.concat(et)}var tinycolor$1={exports:{}};(function(j){(function($){var _e=/^\s+/,et=/\s+$/,tt=0,rt=$.round,nt=$.min,it=$.max,ot=$.random;function At(Xt,cr){if(Xt=Xt||"",cr=cr||{},Xt instanceof At)return Xt;if(!(this instanceof At))return new At(Xt,cr);var ir=ut(Xt);this._originalInput=Xt,this._r=ir.r,this._g=ir.g,this._b=ir.b,this._a=ir.a,this._roundA=rt(100*this._a)/100,this._format=cr.format||ir.format,this._gradientType=cr.gradientType,this._r<1&&(this._r=rt(this._r)),this._g<1&&(this._g=rt(this._g)),this._b<1&&(this._b=rt(this._b)),this._ok=ir.ok,this._tc_id=tt++}At.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var Xt=this.toRgb();return(Xt.r*299+Xt.g*587+Xt.b*114)/1e3},getLuminance:function(){var Xt=this.toRgb(),cr,ir,Qr,Or,Yr,wr;return cr=Xt.r/255,ir=Xt.g/255,Qr=Xt.b/255,cr<=.03928?Or=cr/12.92:Or=$.pow((cr+.055)/1.055,2.4),ir<=.03928?Yr=ir/12.92:Yr=$.pow((ir+.055)/1.055,2.4),Qr<=.03928?wr=Qr/12.92:wr=$.pow((Qr+.055)/1.055,2.4),.2126*Or+.7152*Yr+.0722*wr},setAlpha:function(Xt){return this._a=ar(Xt),this._roundA=rt(100*this._a)/100,this},toHsv:function(){var Xt=Bt(this._r,this._g,this._b);return{h:Xt.h*360,s:Xt.s,v:Xt.v,a:this._a}},toHsvString:function(){var Xt=Bt(this._r,this._g,this._b),cr=rt(Xt.h*360),ir=rt(Xt.s*100),Qr=rt(Xt.v*100);return this._a==1?"hsv("+cr+", "+ir+"%, "+Qr+"%)":"hsva("+cr+", "+ir+"%, "+Qr+"%, "+this._roundA+")"},toHsl:function(){var Xt=dt(this._r,this._g,this._b);return{h:Xt.h*360,s:Xt.s,l:Xt.l,a:this._a}},toHslString:function(){var Xt=dt(this._r,this._g,this._b),cr=rt(Xt.h*360),ir=rt(Xt.s*100),Qr=rt(Xt.l*100);return this._a==1?"hsl("+cr+", "+ir+"%, "+Qr+"%)":"hsla("+cr+", "+ir+"%, "+Qr+"%, "+this._roundA+")"},toHex:function(Xt){return Dt(this._r,this._g,this._b,Xt)},toHexString:function(Xt){return"#"+this.toHex(Xt)},toHex8:function(Xt){return $t(this._r,this._g,this._b,this._a,Xt)},toHex8String:function(Xt){return"#"+this.toHex8(Xt)},toRgb:function(){return{r:rt(this._r),g:rt(this._g),b:rt(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+rt(this._r)+", "+rt(this._g)+", "+rt(this._b)+")":"rgba("+rt(this._r)+", "+rt(this._g)+", "+rt(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:rt(Yt(this._r,255)*100)+"%",g:rt(Yt(this._g,255)*100)+"%",b:rt(Yt(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+rt(Yt(this._r,255)*100)+"%, "+rt(Yt(this._g,255)*100)+"%, "+rt(Yt(this._b,255)*100)+"%)":"rgba("+rt(Yt(this._r,255)*100)+"%, "+rt(Yt(this._g,255)*100)+"%, "+rt(Yt(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:hr[Dt(this._r,this._g,this._b,!0)]||!1},toFilter:function(Xt){var cr="#"+Rt(this._r,this._g,this._b,this._a),ir=cr,Qr=this._gradientType?"GradientType = 1, ":"";if(Xt){var Or=At(Xt);ir="#"+Rt(Or._r,Or._g,Or._b,Or._a)}return"progid:DXImageTransform.Microsoft.gradient("+Qr+"startColorstr="+cr+",endColorstr="+ir+")"},toString:function(Xt){var cr=!!Xt;Xt=Xt||this._format;var ir=!1,Qr=this._a<1&&this._a>=0,Or=!cr&&Qr&&(Xt==="hex"||Xt==="hex6"||Xt==="hex3"||Xt==="hex4"||Xt==="hex8"||Xt==="name");return Or?Xt==="name"&&this._a===0?this.toName():this.toRgbString():(Xt==="rgb"&&(ir=this.toRgbString()),Xt==="prgb"&&(ir=this.toPercentageRgbString()),(Xt==="hex"||Xt==="hex6")&&(ir=this.toHexString()),Xt==="hex3"&&(ir=this.toHexString(!0)),Xt==="hex4"&&(ir=this.toHex8String(!0)),Xt==="hex8"&&(ir=this.toHex8String()),Xt==="name"&&(ir=this.toName()),Xt==="hsl"&&(ir=this.toHslString()),Xt==="hsv"&&(ir=this.toHsvString()),ir||this.toHexString())},clone:function(){return At(this.toString())},_applyModification:function(Xt,cr){var ir=Xt.apply(null,[this].concat([].slice.call(cr)));return this._r=ir._r,this._g=ir._g,this._b=ir._b,this.setAlpha(ir._a),this},lighten:function(){return this._applyModification(Ot,arguments)},brighten:function(){return this._applyModification(kt,arguments)},darken:function(){return this._applyModification(Jt,arguments)},desaturate:function(){return this._applyModification(wt,arguments)},saturate:function(){return this._applyModification(xt,arguments)},greyscale:function(){return this._applyModification(Nt,arguments)},spin:function(){return this._applyModification(jt,arguments)},_applyCombination:function(Xt,cr){return Xt.apply(null,[this].concat([].slice.call(cr)))},analogous:function(){return this._applyCombination(Vt,arguments)},complement:function(){return this._applyCombination(Ht,arguments)},monochromatic:function(){return this._applyCombination(ur,arguments)},splitcomplement:function(){return this._applyCombination(Wt,arguments)},triad:function(){return this._applyCombination(Gt,arguments)},tetrad:function(){return this._applyCombination(Kt,arguments)}},At.fromRatio=function(Xt,cr){if(typeof Xt=="object"){var ir={};for(var Qr in Xt)Xt.hasOwnProperty(Qr)&&(Qr==="a"?ir[Qr]=Xt[Qr]:ir[Qr]=Er(Xt[Qr]));Xt=ir}return At(Xt,cr)};function ut(Xt){var cr={r:0,g:0,b:0},ir=1,Qr=null,Or=null,Yr=null,wr=!1,rr=!1;return typeof Xt=="string"&&(Xt=Fr(Xt)),typeof Xt=="object"&&(xr(Xt.r)&&xr(Xt.g)&&xr(Xt.b)?(cr=ft(Xt.r,Xt.g,Xt.b),wr=!0,rr=String(Xt.r).substr(-1)==="%"?"prgb":"rgb"):xr(Xt.h)&&xr(Xt.s)&&xr(Xt.v)?(Qr=Er(Xt.s),Or=Er(Xt.v),cr=St(Xt.h,Qr,Or),wr=!0,rr="hsv"):xr(Xt.h)&&xr(Xt.s)&&xr(Xt.l)&&(Qr=Er(Xt.s),Yr=Er(Xt.l),cr=Et(Xt.h,Qr,Yr),wr=!0,rr="hsl"),Xt.hasOwnProperty("a")&&(ir=Xt.a)),ir=ar(ir),{ok:wr,format:Xt.format||rr,r:nt(255,it(cr.r,0)),g:nt(255,it(cr.g,0)),b:nt(255,it(cr.b,0)),a:ir}}function ft(Xt,cr,ir){return{r:Yt(Xt,255)*255,g:Yt(cr,255)*255,b:Yt(ir,255)*255}}function dt(Xt,cr,ir){Xt=Yt(Xt,255),cr=Yt(cr,255),ir=Yt(ir,255);var Qr=it(Xt,cr,ir),Or=nt(Xt,cr,ir),Yr,wr,rr=(Qr+Or)/2;if(Qr==Or)Yr=wr=0;else{var er=Qr-Or;switch(wr=rr>.5?er/(2-Qr-Or):er/(Qr+Or),Qr){case Xt:Yr=(cr-ir)/er+(cr1&&(yr-=1),yr<1/6?lr+(fr-lr)*6*yr:yr<1/2?fr:yr<2/3?lr+(fr-lr)*(2/3-yr)*6:lr}if(cr===0)Qr=Or=Yr=ir;else{var rr=ir<.5?ir*(1+cr):ir+cr-ir*cr,er=2*ir-rr;Qr=wr(er,rr,Xt+1/3),Or=wr(er,rr,Xt),Yr=wr(er,rr,Xt-1/3)}return{r:Qr*255,g:Or*255,b:Yr*255}}function Bt(Xt,cr,ir){Xt=Yt(Xt,255),cr=Yt(cr,255),ir=Yt(ir,255);var Qr=it(Xt,cr,ir),Or=nt(Xt,cr,ir),Yr,wr,rr=Qr,er=Qr-Or;if(wr=Qr===0?0:er/Qr,Qr==Or)Yr=0;else{switch(Qr){case Xt:Yr=(cr-ir)/er+(cr>1)+720)%360;--cr;)Qr.h=(Qr.h+Or)%360,Yr.push(At(Qr));return Yr}function ur(Xt,cr){cr=cr||6;for(var ir=At(Xt).toHsv(),Qr=ir.h,Or=ir.s,Yr=ir.v,wr=[],rr=1/cr;cr--;)wr.push(At({h:Qr,s:Or,v:Yr})),Yr=(Yr+rr)%1;return wr}At.mix=function(Xt,cr,ir){ir=ir===0?0:ir||50;var Qr=At(Xt).toRgb(),Or=At(cr).toRgb(),Yr=ir/100,wr={r:(Or.r-Qr.r)*Yr+Qr.r,g:(Or.g-Qr.g)*Yr+Qr.g,b:(Or.b-Qr.b)*Yr+Qr.b,a:(Or.a-Qr.a)*Yr+Qr.a};return At(wr)},At.readability=function(Xt,cr){var ir=At(Xt),Qr=At(cr);return($.max(ir.getLuminance(),Qr.getLuminance())+.05)/($.min(ir.getLuminance(),Qr.getLuminance())+.05)},At.isReadable=function(Xt,cr,ir){var Qr=At.readability(Xt,cr),Or,Yr;switch(Yr=!1,Or=Nr(ir),Or.level+Or.size){case"AAsmall":case"AAAlarge":Yr=Qr>=4.5;break;case"AAlarge":Yr=Qr>=3;break;case"AAAsmall":Yr=Qr>=7;break}return Yr},At.mostReadable=function(Xt,cr,ir){var Qr=null,Or=0,Yr,wr,rr,er;ir=ir||{},wr=ir.includeFallbackColors,rr=ir.level,er=ir.size;for(var lr=0;lrOr&&(Or=Yr,Qr=At(cr[lr]));return At.isReadable(Xt,Qr,{level:rr,size:er})||!wr?Qr:(ir.includeFallbackColors=!1,At.mostReadable(Xt,["#fff","#000"],ir))};var Ar=At.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},hr=At.hexNames=sr(Ar);function sr(Xt){var cr={};for(var ir in Xt)Xt.hasOwnProperty(ir)&&(cr[Xt[ir]]=ir);return cr}function ar(Xt){return Xt=parseFloat(Xt),(isNaN(Xt)||Xt<0||Xt>1)&&(Xt=1),Xt}function Yt(Xt,cr){mr(Xt)&&(Xt="100%");var ir=vr(Xt);return Xt=nt(cr,it(0,parseFloat(Xt))),ir&&(Xt=parseInt(Xt*cr,10)/100),$.abs(Xt-cr)<1e-6?1:Xt%cr/parseFloat(cr)}function pr(Xt){return nt(1,it(0,Xt))}function Zt(Xt){return parseInt(Xt,16)}function mr(Xt){return typeof Xt=="string"&&Xt.indexOf(".")!=-1&&parseFloat(Xt)===1}function vr(Xt){return typeof Xt=="string"&&Xt.indexOf("%")!=-1}function _r(Xt){return Xt.length==1?"0"+Xt:""+Xt}function Er(Xt){return Xt<=1&&(Xt=Xt*100+"%"),Xt}function Lr(Xt){return $.round(parseFloat(Xt)*255).toString(16)}function Rr(Xt){return Zt(Xt)/255}var $r=function(){var Xt="[-\\+]?\\d+%?",cr="[-\\+]?\\d*\\.\\d+%?",ir="(?:"+cr+")|(?:"+Xt+")",Qr="[\\s|\\(]+("+ir+")[,|\\s]+("+ir+")[,|\\s]+("+ir+")\\s*\\)?",Or="[\\s|\\(]+("+ir+")[,|\\s]+("+ir+")[,|\\s]+("+ir+")[,|\\s]+("+ir+")\\s*\\)?";return{CSS_UNIT:new RegExp(ir),rgb:new RegExp("rgb"+Qr),rgba:new RegExp("rgba"+Or),hsl:new RegExp("hsl"+Qr),hsla:new RegExp("hsla"+Or),hsv:new RegExp("hsv"+Qr),hsva:new RegExp("hsva"+Or),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function xr(Xt){return!!$r.CSS_UNIT.exec(Xt)}function Fr(Xt){Xt=Xt.replace(_e,"").replace(et,"").toLowerCase();var cr=!1;if(Ar[Xt])Xt=Ar[Xt],cr=!0;else if(Xt=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var ir;return(ir=$r.rgb.exec(Xt))?{r:ir[1],g:ir[2],b:ir[3]}:(ir=$r.rgba.exec(Xt))?{r:ir[1],g:ir[2],b:ir[3],a:ir[4]}:(ir=$r.hsl.exec(Xt))?{h:ir[1],s:ir[2],l:ir[3]}:(ir=$r.hsla.exec(Xt))?{h:ir[1],s:ir[2],l:ir[3],a:ir[4]}:(ir=$r.hsv.exec(Xt))?{h:ir[1],s:ir[2],v:ir[3]}:(ir=$r.hsva.exec(Xt))?{h:ir[1],s:ir[2],v:ir[3],a:ir[4]}:(ir=$r.hex8.exec(Xt))?{r:Zt(ir[1]),g:Zt(ir[2]),b:Zt(ir[3]),a:Rr(ir[4]),format:cr?"name":"hex8"}:(ir=$r.hex6.exec(Xt))?{r:Zt(ir[1]),g:Zt(ir[2]),b:Zt(ir[3]),format:cr?"name":"hex"}:(ir=$r.hex4.exec(Xt))?{r:Zt(ir[1]+""+ir[1]),g:Zt(ir[2]+""+ir[2]),b:Zt(ir[3]+""+ir[3]),a:Rr(ir[4]+""+ir[4]),format:cr?"name":"hex8"}:(ir=$r.hex3.exec(Xt))?{r:Zt(ir[1]+""+ir[1]),g:Zt(ir[2]+""+ir[2]),b:Zt(ir[3]+""+ir[3]),format:cr?"name":"hex"}:!1}function Nr(Xt){var cr,ir;return Xt=Xt||{level:"AA",size:"small"},cr=(Xt.level||"AA").toUpperCase(),ir=(Xt.size||"small").toLowerCase(),cr!=="AA"&&cr!=="AAA"&&(cr="AA"),ir!=="small"&&ir!=="large"&&(ir="small"),{level:cr,size:ir}}j.exports?j.exports=At:window.tinycolor=At})(Math)})(tinycolor$1);var json2csv_umd$1={exports:{}};(function(j,$){(function(_e,et){et($)})(commonjsGlobal$1,function(_e){var et;function tt(){}tt.prototype=Object.create(null);function rt(){rt.init.call(this)}rt.EventEmitter=rt,rt.usingDomains=!1,rt.prototype.domain=void 0,rt.prototype._events=void 0,rt.prototype._maxListeners=void 0,rt.defaultMaxListeners=10,rt.init=function(){this.domain=null,rt.usingDomains&&et.active,(!this._events||this._events===Object.getPrototypeOf(this)._events)&&(this._events=new tt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},rt.prototype.setMaxListeners=function(pt){if(typeof pt!="number"||pt<0||isNaN(pt))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=pt,this};function nt(It){return It._maxListeners===void 0?rt.defaultMaxListeners:It._maxListeners}rt.prototype.getMaxListeners=function(){return nt(this)};function it(It,pt,yt){if(pt)It.call(yt);else for(var Lt=It.length,qt=$t(It,Lt),tr=0;tr0&&or.length>qt)){or.warned=!0;var Tr=new Error("Possible EventEmitter memory leak detected. "+or.length+" "+pt+" listeners added. Use emitter.setMaxListeners() to increase limit");Tr.name="MaxListenersExceededWarning",Tr.emitter=It,Tr.type=pt,Tr.count=or.length,Et(Tr)}return It}function Et(It){typeof console.warn=="function"?console.warn(It):console.log(It)}rt.prototype.addListener=function(pt,yt){return dt(this,pt,yt,!1)},rt.prototype.on=rt.prototype.addListener,rt.prototype.prependListener=function(pt,yt){return dt(this,pt,yt,!0)};function Bt(It,pt,yt){var Lt=!1;function qt(){It.removeListener(pt,qt),Lt||(Lt=!0,yt.apply(It,arguments))}return qt.listener=yt,qt}rt.prototype.once=function(pt,yt){if(typeof yt!="function")throw new TypeError('"listener" argument must be a function');return this.on(pt,Bt(this,pt,yt)),this},rt.prototype.prependOnceListener=function(pt,yt){if(typeof yt!="function")throw new TypeError('"listener" argument must be a function');return this.prependListener(pt,Bt(this,pt,yt)),this},rt.prototype.removeListener=function(pt,yt){var Lt,qt,tr,or,Tr;if(typeof yt!="function")throw new TypeError('"listener" argument must be a function');if(qt=this._events,!qt)return this;if(Lt=qt[pt],!Lt)return this;if(Lt===yt||Lt.listener&&Lt.listener===yt)--this._eventsCount===0?this._events=new tt:(delete qt[pt],qt.removeListener&&this.emit("removeListener",pt,Lt.listener||yt));else if(typeof Lt!="function"){for(tr=-1,or=Lt.length;or-- >0;)if(Lt[or]===yt||Lt[or].listener&&Lt[or].listener===yt){Tr=Lt[or].listener,tr=or;break}if(tr<0)return this;if(Lt.length===1){if(Lt[0]=void 0,--this._eventsCount===0)return this._events=new tt,this;delete qt[pt]}else Dt(Lt,tr);qt.removeListener&&this.emit("removeListener",pt,Tr||yt)}return this},rt.prototype.removeAllListeners=function(pt){var yt,Lt;if(Lt=this._events,!Lt)return this;if(!Lt.removeListener)return arguments.length===0?(this._events=new tt,this._eventsCount=0):Lt[pt]&&(--this._eventsCount===0?this._events=new tt:delete Lt[pt]),this;if(arguments.length===0){for(var qt=Object.keys(Lt),tr=0,or;tr0?Reflect.ownKeys(this._events):[]};function Dt(It,pt){for(var yt=pt,Lt=yt+1,qt=It.length;Lt0)throw new Error("Invalid string. Length must be a multiple of 4");tr=It[Tr-2]==="="?2:It[Tr-1]==="="?1:0,or=new Ot(Tr*3/4-tr),Lt=tr>0?Tr-4:Tr;var jr=0;for(pt=0,yt=0;pt>16&255,or[jr++]=qt>>8&255,or[jr++]=qt&255;return tr===2?(qt=Nt[It.charCodeAt(pt)]<<2|Nt[It.charCodeAt(pt+1)]>>4,or[jr++]=qt&255):tr===1&&(qt=Nt[It.charCodeAt(pt)]<<10|Nt[It.charCodeAt(pt+1)]<<4|Nt[It.charCodeAt(pt+2)]>>2,or[jr++]=qt>>8&255,or[jr++]=qt&255),or}function Ht(It){return xt[It>>18&63]+xt[It>>12&63]+xt[It>>6&63]+xt[It&63]}function Gt(It,pt,yt){for(var Lt,qt=[],tr=pt;trjr?jr:Tr+or));return Lt===1?(pt=It[yt-1],qt+=xt[pt>>2],qt+=xt[pt<<4&63],qt+="=="):Lt===2&&(pt=(It[yt-2]<<8)+It[yt-1],qt+=xt[pt>>10],qt+=xt[pt>>4&63],qt+=xt[pt<<2&63],qt+="="),tr.push(qt),tr.join("")}function Wt(It,pt,yt,Lt,qt){var tr,or,Tr=qt*8-Lt-1,jr=(1<>1,fn=-7,Bn=yt?qt-1:0,Zn=yt?-1:1,Gn=It[pt+Bn];for(Bn+=Zn,tr=Gn&(1<<-fn)-1,Gn>>=-fn,fn+=Tr;fn>0;tr=tr*256+It[pt+Bn],Bn+=Zn,fn-=8);for(or=tr&(1<<-fn)-1,tr>>=-fn,fn+=Lt;fn>0;or=or*256+It[pt+Bn],Bn+=Zn,fn-=8);if(tr===0)tr=1-An;else{if(tr===jr)return or?NaN:(Gn?-1:1)*(1/0);or=or+Math.pow(2,Lt),tr=tr-An}return(Gn?-1:1)*or*Math.pow(2,tr-Lt)}function Vt(It,pt,yt,Lt,qt,tr){var or,Tr,jr,An=tr*8-qt-1,fn=(1<>1,Zn=qt===23?Math.pow(2,-24)-Math.pow(2,-77):0,Gn=Lt?0:tr-1,Ks=Lt?1:-1,Fl=pt<0||pt===0&&1/pt<0?1:0;for(pt=Math.abs(pt),isNaN(pt)||pt===1/0?(Tr=isNaN(pt)?1:0,or=fn):(or=Math.floor(Math.log(pt)/Math.LN2),pt*(jr=Math.pow(2,-or))<1&&(or--,jr*=2),or+Bn>=1?pt+=Zn/jr:pt+=Zn*Math.pow(2,1-Bn),pt*jr>=2&&(or++,jr/=2),or+Bn>=fn?(Tr=0,or=fn):or+Bn>=1?(Tr=(pt*jr-1)*Math.pow(2,qt),or=or+Bn):(Tr=pt*Math.pow(2,Bn-1)*Math.pow(2,qt),or=0));qt>=8;It[yt+Gn]=Tr&255,Gn+=Ks,Tr/=256,qt-=8);for(or=or<0;It[yt+Gn]=or&255,Gn+=Ks,or/=256,An-=8);It[yt+Gn-Ks]|=Fl*128}var ur={}.toString,Ar=Array.isArray||function(It){return ur.call(It)=="[object Array]"},hr=50;Yt.TYPED_ARRAY_SUPPORT=wt.TYPED_ARRAY_SUPPORT!==void 0?wt.TYPED_ARRAY_SUPPORT:!0;function sr(){return Yt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function ar(It,pt){if(sr()=sr())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+sr().toString(16)+" bytes");return It|0}Yt.isBuffer=rs;function xr(It){return!!(It!=null&&It._isBuffer)}Yt.compare=function(pt,yt){if(!xr(pt)||!xr(yt))throw new TypeError("Arguments must be Buffers");if(pt===yt)return 0;for(var Lt=pt.length,qt=yt.length,tr=0,or=Math.min(Lt,qt);tr>>1;case"base64":return Co(It).length;default:if(Lt)return Ao(It).length;pt=(""+pt).toLowerCase(),Lt=!0}}Yt.byteLength=Fr;function Nr(It,pt,yt){var Lt=!1;if((pt===void 0||pt<0)&&(pt=0),pt>this.length||((yt===void 0||yt>this.length)&&(yt=this.length),yt<=0)||(yt>>>=0,pt>>>=0,yt<=pt))return"";for(It||(It="utf8");;)switch(It){case"hex":return Zr(this,pt,yt);case"utf8":case"utf-8":return fr(this,pt,yt);case"ascii":return Wr(this,pt,yt);case"latin1":case"binary":return Pr(this,pt,yt);case"base64":return lr(this,pt,yt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return rn(this,pt,yt);default:if(Lt)throw new TypeError("Unknown encoding: "+It);It=(It+"").toLowerCase(),Lt=!0}}Yt.prototype._isBuffer=!0;function Xt(It,pt,yt){var Lt=It[pt];It[pt]=It[yt],It[yt]=Lt}Yt.prototype.swap16=function(){var pt=this.length;if(pt%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var yt=0;yt0&&(pt=this.toString("hex",0,yt).match(/.{2}/g).join(" "),this.length>yt&&(pt+=" ... ")),""},Yt.prototype.compare=function(pt,yt,Lt,qt,tr){if(!xr(pt))throw new TypeError("Argument must be a Buffer");if(yt===void 0&&(yt=0),Lt===void 0&&(Lt=pt?pt.length:0),qt===void 0&&(qt=0),tr===void 0&&(tr=this.length),yt<0||Lt>pt.length||qt<0||tr>this.length)throw new RangeError("out of range index");if(qt>=tr&&yt>=Lt)return 0;if(qt>=tr)return-1;if(yt>=Lt)return 1;if(yt>>>=0,Lt>>>=0,qt>>>=0,tr>>>=0,this===pt)return 0;for(var or=tr-qt,Tr=Lt-yt,jr=Math.min(or,Tr),An=this.slice(qt,tr),fn=pt.slice(yt,Lt),Bn=0;Bn2147483647?yt=2147483647:yt<-2147483648&&(yt=-2147483648),yt=+yt,isNaN(yt)&&(yt=qt?0:It.length-1),yt<0&&(yt=It.length+yt),yt>=It.length){if(qt)return-1;yt=It.length-1}else if(yt<0)if(qt)yt=0;else return-1;if(typeof pt=="string"&&(pt=Yt.from(pt,Lt)),xr(pt))return pt.length===0?-1:ir(It,pt,yt,Lt,qt);if(typeof pt=="number")return pt=pt&255,Yt.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(It,pt,yt):Uint8Array.prototype.lastIndexOf.call(It,pt,yt):ir(It,[pt],yt,Lt,qt);throw new TypeError("val must be string, number or Buffer")}function ir(It,pt,yt,Lt,qt){var tr=1,or=It.length,Tr=pt.length;if(Lt!==void 0&&(Lt=String(Lt).toLowerCase(),Lt==="ucs2"||Lt==="ucs-2"||Lt==="utf16le"||Lt==="utf-16le")){if(It.length<2||pt.length<2)return-1;tr=2,or/=2,Tr/=2,yt/=2}function jr(Gn,Ks){return tr===1?Gn[Ks]:Gn.readUInt16BE(Ks*tr)}var An;if(qt){var fn=-1;for(An=yt;Anor&&(yt=or-Tr),An=yt;An>=0;An--){for(var Bn=!0,Zn=0;Znqt&&(Lt=qt)):Lt=qt;var tr=pt.length;if(tr%2!==0)throw new TypeError("Invalid hex string");Lt>tr/2&&(Lt=tr/2);for(var or=0;ortr)&&(Lt=tr),pt.length>0&&(Lt<0||yt<0)||yt>this.length)throw new RangeError("Attempt to write outside buffer bounds");qt||(qt="utf8");for(var or=!1;;)switch(qt){case"hex":return Qr(this,pt,yt,Lt);case"utf8":case"utf-8":return Or(this,pt,yt,Lt);case"ascii":return Yr(this,pt,yt,Lt);case"latin1":case"binary":return wr(this,pt,yt,Lt);case"base64":return rr(this,pt,yt,Lt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return er(this,pt,yt,Lt);default:if(or)throw new TypeError("Unknown encoding: "+qt);qt=(""+qt).toLowerCase(),or=!0}},Yt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function lr(It,pt,yt){return pt===0&&yt===It.length?Kt(It):Kt(It.slice(pt,yt))}function fr(It,pt,yt){yt=Math.min(It.length,yt);for(var Lt=[],qt=pt;qt239?4:tr>223?3:tr>191?2:1;if(qt+Tr<=yt){var jr,An,fn,Bn;switch(Tr){case 1:tr<128&&(or=tr);break;case 2:jr=It[qt+1],(jr&192)===128&&(Bn=(tr&31)<<6|jr&63,Bn>127&&(or=Bn));break;case 3:jr=It[qt+1],An=It[qt+2],(jr&192)===128&&(An&192)===128&&(Bn=(tr&15)<<12|(jr&63)<<6|An&63,Bn>2047&&(Bn<55296||Bn>57343)&&(or=Bn));break;case 4:jr=It[qt+1],An=It[qt+2],fn=It[qt+3],(jr&192)===128&&(An&192)===128&&(fn&192)===128&&(Bn=(tr&15)<<18|(jr&63)<<12|(An&63)<<6|fn&63,Bn>65535&&Bn<1114112&&(or=Bn))}}or===null?(or=65533,Tr=1):or>65535&&(or-=65536,Lt.push(or>>>10&1023|55296),or=56320|or&1023),Lt.push(or),qt+=Tr}return Ur(Lt)}var yr=4096;function Ur(It){var pt=It.length;if(pt<=yr)return String.fromCharCode.apply(String,It);for(var yt="",Lt=0;LtLt)&&(yt=Lt);for(var qt="",tr=pt;trLt&&(pt=Lt),yt<0?(yt+=Lt,yt<0&&(yt=0)):yt>Lt&&(yt=Lt),ytyt)throw new RangeError("Trying to access beyond buffer length")}Yt.prototype.readUIntLE=function(pt,yt,Lt){pt=pt|0,yt=yt|0,Lt||on(pt,yt,this.length);for(var qt=this[pt],tr=1,or=0;++or0&&(tr*=256);)qt+=this[pt+--yt]*tr;return qt},Yt.prototype.readUInt8=function(pt,yt){return yt||on(pt,1,this.length),this[pt]},Yt.prototype.readUInt16LE=function(pt,yt){return yt||on(pt,2,this.length),this[pt]|this[pt+1]<<8},Yt.prototype.readUInt16BE=function(pt,yt){return yt||on(pt,2,this.length),this[pt]<<8|this[pt+1]},Yt.prototype.readUInt32LE=function(pt,yt){return yt||on(pt,4,this.length),(this[pt]|this[pt+1]<<8|this[pt+2]<<16)+this[pt+3]*16777216},Yt.prototype.readUInt32BE=function(pt,yt){return yt||on(pt,4,this.length),this[pt]*16777216+(this[pt+1]<<16|this[pt+2]<<8|this[pt+3])},Yt.prototype.readIntLE=function(pt,yt,Lt){pt=pt|0,yt=yt|0,Lt||on(pt,yt,this.length);for(var qt=this[pt],tr=1,or=0;++or=tr&&(qt-=Math.pow(2,8*yt)),qt},Yt.prototype.readIntBE=function(pt,yt,Lt){pt=pt|0,yt=yt|0,Lt||on(pt,yt,this.length);for(var qt=yt,tr=1,or=this[pt+--qt];qt>0&&(tr*=256);)or+=this[pt+--qt]*tr;return tr*=128,or>=tr&&(or-=Math.pow(2,8*yt)),or},Yt.prototype.readInt8=function(pt,yt){return yt||on(pt,1,this.length),this[pt]&128?(255-this[pt]+1)*-1:this[pt]},Yt.prototype.readInt16LE=function(pt,yt){yt||on(pt,2,this.length);var Lt=this[pt]|this[pt+1]<<8;return Lt&32768?Lt|4294901760:Lt},Yt.prototype.readInt16BE=function(pt,yt){yt||on(pt,2,this.length);var Lt=this[pt+1]|this[pt]<<8;return Lt&32768?Lt|4294901760:Lt},Yt.prototype.readInt32LE=function(pt,yt){return yt||on(pt,4,this.length),this[pt]|this[pt+1]<<8|this[pt+2]<<16|this[pt+3]<<24},Yt.prototype.readInt32BE=function(pt,yt){return yt||on(pt,4,this.length),this[pt]<<24|this[pt+1]<<16|this[pt+2]<<8|this[pt+3]},Yt.prototype.readFloatLE=function(pt,yt){return yt||on(pt,4,this.length),Wt(this,pt,!0,23,4)},Yt.prototype.readFloatBE=function(pt,yt){return yt||on(pt,4,this.length),Wt(this,pt,!1,23,4)},Yt.prototype.readDoubleLE=function(pt,yt){return yt||on(pt,8,this.length),Wt(this,pt,!0,52,8)},Yt.prototype.readDoubleBE=function(pt,yt){return yt||on(pt,8,this.length),Wt(this,pt,!1,52,8)};function In(It,pt,yt,Lt,qt,tr){if(!xr(It))throw new TypeError('"buffer" argument must be a Buffer instance');if(pt>qt||ptIt.length)throw new RangeError("Index out of range")}Yt.prototype.writeUIntLE=function(pt,yt,Lt,qt){if(pt=+pt,yt=yt|0,Lt=Lt|0,!qt){var tr=Math.pow(2,8*Lt)-1;In(this,pt,yt,Lt,tr,0)}var or=1,Tr=0;for(this[yt]=pt&255;++Tr=0&&(Tr*=256);)this[yt+or]=pt/Tr&255;return yt+Lt},Yt.prototype.writeUInt8=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,1,255,0),Yt.TYPED_ARRAY_SUPPORT||(pt=Math.floor(pt)),this[yt]=pt&255,yt+1};function Sn(It,pt,yt,Lt){pt<0&&(pt=65535+pt+1);for(var qt=0,tr=Math.min(It.length-yt,2);qt>>(Lt?qt:1-qt)*8}Yt.prototype.writeUInt16LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,65535,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt&255,this[yt+1]=pt>>>8):Sn(this,pt,yt,!0),yt+2},Yt.prototype.writeUInt16BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,65535,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>8,this[yt+1]=pt&255):Sn(this,pt,yt,!1),yt+2};function un(It,pt,yt,Lt){pt<0&&(pt=4294967295+pt+1);for(var qt=0,tr=Math.min(It.length-yt,4);qt>>(Lt?qt:3-qt)*8&255}Yt.prototype.writeUInt32LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,4294967295,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt+3]=pt>>>24,this[yt+2]=pt>>>16,this[yt+1]=pt>>>8,this[yt]=pt&255):un(this,pt,yt,!0),yt+4},Yt.prototype.writeUInt32BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,4294967295,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>24,this[yt+1]=pt>>>16,this[yt+2]=pt>>>8,this[yt+3]=pt&255):un(this,pt,yt,!1),yt+4},Yt.prototype.writeIntLE=function(pt,yt,Lt,qt){if(pt=+pt,yt=yt|0,!qt){var tr=Math.pow(2,8*Lt-1);In(this,pt,yt,Lt,tr-1,-tr)}var or=0,Tr=1,jr=0;for(this[yt]=pt&255;++or>0)-jr&255;return yt+Lt},Yt.prototype.writeIntBE=function(pt,yt,Lt,qt){if(pt=+pt,yt=yt|0,!qt){var tr=Math.pow(2,8*Lt-1);In(this,pt,yt,Lt,tr-1,-tr)}var or=Lt-1,Tr=1,jr=0;for(this[yt+or]=pt&255;--or>=0&&(Tr*=256);)pt<0&&jr===0&&this[yt+or+1]!==0&&(jr=1),this[yt+or]=(pt/Tr>>0)-jr&255;return yt+Lt},Yt.prototype.writeInt8=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,1,127,-128),Yt.TYPED_ARRAY_SUPPORT||(pt=Math.floor(pt)),pt<0&&(pt=255+pt+1),this[yt]=pt&255,yt+1},Yt.prototype.writeInt16LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,32767,-32768),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt&255,this[yt+1]=pt>>>8):Sn(this,pt,yt,!0),yt+2},Yt.prototype.writeInt16BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,32767,-32768),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>8,this[yt+1]=pt&255):Sn(this,pt,yt,!1),yt+2},Yt.prototype.writeInt32LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,2147483647,-2147483648),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt&255,this[yt+1]=pt>>>8,this[yt+2]=pt>>>16,this[yt+3]=pt>>>24):un(this,pt,yt,!0),yt+4},Yt.prototype.writeInt32BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,2147483647,-2147483648),pt<0&&(pt=4294967295+pt+1),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>24,this[yt+1]=pt>>>16,this[yt+2]=pt>>>8,this[yt+3]=pt&255):un(this,pt,yt,!1),yt+4};function dn(It,pt,yt,Lt,qt,tr){if(yt+Lt>It.length)throw new RangeError("Index out of range");if(yt<0)throw new RangeError("Index out of range")}function wn(It,pt,yt,Lt,qt){return qt||dn(It,pt,yt,4),Vt(It,pt,yt,Lt,23,4),yt+4}Yt.prototype.writeFloatLE=function(pt,yt,Lt){return wn(this,pt,yt,!0,Lt)},Yt.prototype.writeFloatBE=function(pt,yt,Lt){return wn(this,pt,yt,!1,Lt)};function Nn(It,pt,yt,Lt,qt){return qt||dn(It,pt,yt,8),Vt(It,pt,yt,Lt,52,8),yt+8}Yt.prototype.writeDoubleLE=function(pt,yt,Lt){return Nn(this,pt,yt,!0,Lt)},Yt.prototype.writeDoubleBE=function(pt,yt,Lt){return Nn(this,pt,yt,!1,Lt)},Yt.prototype.copy=function(pt,yt,Lt,qt){if(Lt||(Lt=0),!qt&&qt!==0&&(qt=this.length),yt>=pt.length&&(yt=pt.length),yt||(yt=0),qt>0&&qt=this.length)throw new RangeError("sourceStart out of bounds");if(qt<0)throw new RangeError("sourceEnd out of bounds");qt>this.length&&(qt=this.length),pt.length-yt=0;--or)pt[or+yt]=this[or+Lt];else if(tr<1e3||!Yt.TYPED_ARRAY_SUPPORT)for(or=0;or>>0,Lt=Lt===void 0?this.length:Lt>>>0,pt||(pt=0);var or;if(typeof pt=="number")for(or=yt;or55295&&yt<57344){if(!qt){if(yt>56319){(pt-=3)>-1&&tr.push(239,191,189);continue}else if(or+1===Lt){(pt-=3)>-1&&tr.push(239,191,189);continue}qt=yt;continue}if(yt<56320){(pt-=3)>-1&&tr.push(239,191,189),qt=yt;continue}yt=(qt-55296<<10|yt-56320)+65536}else qt&&(pt-=3)>-1&&tr.push(239,191,189);if(qt=null,yt<128){if((pt-=1)<0)break;tr.push(yt)}else if(yt<2048){if((pt-=2)<0)break;tr.push(yt>>6|192,yt&63|128)}else if(yt<65536){if((pt-=3)<0)break;tr.push(yt>>12|224,yt>>6&63|128,yt&63|128)}else if(yt<1114112){if((pt-=4)<0)break;tr.push(yt>>18|240,yt>>12&63|128,yt>>6&63|128,yt&63|128)}else throw new Error("Invalid code point")}return tr}function go(It){for(var pt=[],yt=0;yt>8,qt=yt%256,tr.push(qt),tr.push(Lt);return tr}function Co(It){return jt(oo(It))}function Lo(It,pt,yt,Lt){for(var qt=0;qt=pt.length||qt>=It.length);++qt)pt[qt+yt]=It[qt];return qt}function Ln(It){return It!==It}function rs(It){return It!=null&&(!!It._isBuffer||Jo(It)||zo(It))}function Jo(It){return!!It.constructor&&typeof It.constructor.isBuffer=="function"&&It.constructor.isBuffer(It)}function zo(It){return typeof It.readFloatLE=="function"&&typeof It.slice=="function"&&Jo(It.slice(0,0))}function qo(){throw new Error("setTimeout has not been defined")}function Js(){throw new Error("clearTimeout has not been defined")}var yo=qo,wo=Js;typeof wt.setTimeout=="function"&&(yo=setTimeout),typeof wt.clearTimeout=="function"&&(wo=clearTimeout);function lo(It){if(yo===setTimeout)return setTimeout(It,0);if((yo===qo||!yo)&&setTimeout)return yo=setTimeout,setTimeout(It,0);try{return yo(It,0)}catch{try{return yo.call(null,It,0)}catch{return yo.call(this,It,0)}}}function nn(It){if(wo===clearTimeout)return clearTimeout(It);if((wo===Js||!wo)&&clearTimeout)return wo=clearTimeout,clearTimeout(It);try{return wo(It)}catch{try{return wo.call(null,It)}catch{return wo.call(this,It)}}}var an=[],Sr=!1,Ir,mt=-1;function gr(){!Sr||!Ir||(Sr=!1,Ir.length?an=Ir.concat(an):mt=-1,an.length&&Hr())}function Hr(){if(!Sr){var It=lo(gr);Sr=!0;for(var pt=an.length;pt;){for(Ir=an,an=[];++mt1)for(var yt=1;yt=qt)return Tr;switch(Tr){case"%s":return String(Lt[yt++]);case"%d":return Number(Lt[yt++]);case"%j":try{return JSON.stringify(Lt[yt++])}catch{return"[Circular]"}default:return Tr}}),or=Lt[yt];yt=3&&(yt.depth=arguments[2]),arguments.length>=4&&(yt.colors=arguments[3]),xs(pt)?yt.showHidden=pt:pt&&Vo(yt,pt),Xo(yt.showHidden)&&(yt.showHidden=!1),Xo(yt.depth)&&(yt.depth=2),Xo(yt.colors)&&(yt.colors=!1),Xo(yt.customInspect)&&(yt.customInspect=!0),yt.colors&&(yt.stylize=Io),$n(yt,It,yt.depth)}kn.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},kn.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function Io(It,pt){var yt=kn.styles[pt];return yt?"\x1B["+kn.colors[yt][0]+"m"+It+"\x1B["+kn.colors[yt][1]+"m":It}function To(It,pt){return It}function Fo(It){var pt={};return It.forEach(function(yt,Lt){pt[yt]=!0}),pt}function $n(It,pt,yt){if(It.customInspect&&pt&&MA(pt.inspect)&&pt.inspect!==kn&&!(pt.constructor&&pt.constructor.prototype===pt)){var Lt=pt.inspect(yt,It);return Vn(Lt)||(Lt=$n(It,Lt,yt)),Lt}var qt=zr(It,pt);if(qt)return qt;var tr=Object.keys(pt),or=Fo(tr);if(It.showHidden&&(tr=Object.getOwnPropertyNames(pt)),lA(pt)&&(tr.indexOf("message")>=0||tr.indexOf("description")>=0))return _i(pt);if(tr.length===0){if(MA(pt)){var Tr=pt.name?": "+pt.name:"";return It.stylize("[Function"+Tr+"]","special")}if(Oo(pt))return It.stylize(RegExp.prototype.toString.call(pt),"regexp");if(Un(pt))return It.stylize(Date.prototype.toString.call(pt),"date");if(lA(pt))return _i(pt)}var jr="",An=!1,fn=["{","}"];if(jA(pt)&&(An=!0,fn=["[","]"]),MA(pt)){var Bn=pt.name?": "+pt.name:"";jr=" [Function"+Bn+"]"}if(Oo(pt)&&(jr=" "+RegExp.prototype.toString.call(pt)),Un(pt)&&(jr=" "+Date.prototype.toUTCString.call(pt)),lA(pt)&&(jr=" "+_i(pt)),tr.length===0&&(!An||pt.length==0))return fn[0]+jr+fn[1];if(yt<0)return Oo(pt)?It.stylize(RegExp.prototype.toString.call(pt),"regexp"):It.stylize("[Object]","special");It.seen.push(pt);var Zn;return An?Zn=SA(It,pt,yt,or,tr):Zn=tr.map(function(Gn){return Ws(It,pt,yt,or,Gn,An)}),It.seen.pop(),no(Zn,jr,fn)}function zr(It,pt){if(Xo(pt))return It.stylize("undefined","undefined");if(Vn(pt)){var yt="'"+JSON.stringify(pt).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return It.stylize(yt,"string")}if(_l(pt))return It.stylize(""+pt,"number");if(xs(pt))return It.stylize(""+pt,"boolean");if(Mr(pt))return It.stylize("null","null")}function _i(It){return"["+Error.prototype.toString.call(It)+"]"}function SA(It,pt,yt,Lt,qt){for(var tr=[],or=0,Tr=pt.length;or-1&&(tr?Tr=Tr.split(` +`).map(function(An){return" "+An}).join(` +`).substr(2):Tr=` +`+Tr.split(` +`).map(function(An){return" "+An}).join(` +`))):Tr=It.stylize("[Circular]","special")),Xo(or)){if(tr&&qt.match(/^\d+$/))return Tr;or=JSON.stringify(""+qt),or.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(or=or.substr(1,or.length-2),or=It.stylize(or,"name")):(or=or.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),or=It.stylize(or,"string"))}return or+": "+Tr}function no(It,pt,yt){var Lt=It.reduce(function(qt,tr){return tr.indexOf(` +`)>=0,qt+tr.replace(/\u001b\[\d\d?m/g,"").length+1},0);return Lt>60?yt[0]+(pt===""?"":pt+` + `)+" "+It.join(`, + `)+" "+yt[1]:yt[0]+pt+" "+It.join(", ")+" "+yt[1]}function jA(It){return Array.isArray(It)}function xs(It){return typeof It=="boolean"}function Mr(It){return It===null}function _l(It){return typeof It=="number"}function Vn(It){return typeof It=="string"}function Xo(It){return It===void 0}function Oo(It){return eA(It)&&oA(It)==="[object RegExp]"}function eA(It){return typeof It=="object"&&It!==null}function Un(It){return eA(It)&&oA(It)==="[object Date]"}function lA(It){return eA(It)&&(oA(It)==="[object Error]"||It instanceof Error)}function MA(It){return typeof It=="function"}function oA(It){return Object.prototype.toString.call(It)}function Vo(It,pt){if(!pt||!eA(pt))return It;for(var yt=Object.keys(pt),Lt=yt.length;Lt--;)It[yt[Lt]]=pt[yt[Lt]];return It}function Cr(It,pt){return Object.prototype.hasOwnProperty.call(It,pt)}function br(){this.head=null,this.tail=null,this.length=0}br.prototype.push=function(It){var pt={data:It,next:null};this.length>0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length},br.prototype.unshift=function(It){var pt={data:It,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length},br.prototype.shift=function(){if(this.length!==0){var It=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,It}},br.prototype.clear=function(){this.head=this.tail=null,this.length=0},br.prototype.join=function(It){if(this.length===0)return"";for(var pt=this.head,yt=""+pt.data;pt=pt.next;)yt+=It+pt.data;return yt},br.prototype.concat=function(It){if(this.length===0)return Yt.alloc(0);if(this.length===1)return this.head.data;for(var pt=Yt.allocUnsafe(It>>>0),yt=this.head,Lt=0;yt;)yt.data.copy(pt,Lt),Lt+=yt.data.length,yt=yt.next;return pt};var Vr=Yt.isEncoding||function(It){switch(It&&It.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Gr(It){if(It&&!Vr(It))throw new Error("Unknown encoding: "+It)}function Cn(It){switch(this.encoding=(It||"utf8").toLowerCase().replace(/[-_]/,""),Gr(It),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=jn;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Ko;break;default:this.write=bn;return}this.charBuffer=new Yt(6),this.charReceived=0,this.charLength=0}Cn.prototype.write=function(It){for(var pt="";this.charLength;){var yt=It.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:It.length;if(It.copy(this.charBuffer,this.charReceived,0,yt),this.charReceived+=yt,this.charReceived=55296&&qt<=56319){this.charLength+=this.surrogateSize,pt="";continue}if(this.charReceived=this.charLength=0,It.length===0)return pt;break}this.detectIncompleteChar(It);var Lt=It.length;this.charLength&&(It.copy(this.charBuffer,0,It.length-this.charReceived,Lt),Lt-=this.charReceived),pt+=It.toString(this.encoding,0,Lt);var Lt=pt.length-1,qt=pt.charCodeAt(Lt);if(qt>=55296&&qt<=56319){var tr=this.surrogateSize;return this.charLength+=tr,this.charReceived+=tr,this.charBuffer.copy(this.charBuffer,tr,0,tr),It.copy(this.charBuffer,0,0,tr),pt.substring(0,Lt)}return pt},Cn.prototype.detectIncompleteChar=function(It){for(var pt=It.length>=3?3:It.length;pt>0;pt--){var yt=It[It.length-pt];if(pt==1&&yt>>5==6){this.charLength=2;break}if(pt<=2&&yt>>4==14){this.charLength=3;break}if(pt<=3&&yt>>3==30){this.charLength=4;break}}this.charReceived=pt},Cn.prototype.end=function(It){var pt="";if(It&&It.length&&(pt=this.write(It)),this.charReceived){var yt=this.charReceived,Lt=this.charBuffer,qt=this.encoding;pt+=Lt.slice(0,yt).toString(qt)}return pt};function bn(It){return It.toString(this.encoding)}function jn(It){this.charReceived=It.length%2,this.charLength=this.charReceived?2:0}function Ko(It){this.charReceived=It.length%3,this.charLength=this.charReceived?3:0}Wn.ReadableState=Go;var pn=Dn("stream");hn(Wn,rt);function Hn(It,pt,yt){if(typeof It.prependListener=="function")return It.prependListener(pt,yt);!It._events||!It._events[pt]?It.on(pt,yt):Array.isArray(It._events[pt])?It._events[pt].unshift(yt):It._events[pt]=[yt,It._events[pt]]}function Jn(It,pt){return It.listeners(pt).length}function Go(It,pt){It=It||{},this.objectMode=!!It.objectMode,pt instanceof Do&&(this.objectMode=this.objectMode||!!It.readableObjectMode);var yt=It.highWaterMark,Lt=this.objectMode?16:16*1024;this.highWaterMark=yt||yt===0?yt:Lt,this.highWaterMark=~~this.highWaterMark,this.buffer=new br,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=It.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,It.encoding&&(this.decoder=new Cn(It.encoding),this.encoding=It.encoding)}function Wn(It){if(!(this instanceof Wn))return new Wn(It);this._readableState=new Go(It,this),this.readable=!0,It&&typeof It.read=="function"&&(this._read=It.read),rt.call(this)}Wn.prototype.push=function(It,pt){var yt=this._readableState;return!yt.objectMode&&typeof It=="string"&&(pt=pt||yt.defaultEncoding,pt!==yt.encoding&&(It=Yt.from(It,pt),pt="")),Vl(this,yt,It,pt,!1)},Wn.prototype.unshift=function(It){var pt=this._readableState;return Vl(this,pt,It,"",!0)},Wn.prototype.isPaused=function(){return this._readableState.flowing===!1};function Vl(It,pt,yt,Lt,qt){var tr=Rl(pt,yt);if(tr)It.emit("error",tr);else if(yt===null)pt.reading=!1,As(It,pt);else if(pt.objectMode||yt&&yt.length>0)if(pt.ended&&!qt){var or=new Error("stream.push() after EOF");It.emit("error",or)}else if(pt.endEmitted&&qt){var Tr=new Error("stream.unshift() after end event");It.emit("error",Tr)}else{var jr;pt.decoder&&!qt&&!Lt&&(yt=pt.decoder.write(yt),jr=!pt.objectMode&&yt.length===0),qt||(pt.reading=!1),jr||(pt.flowing&&pt.length===0&&!pt.sync?(It.emit("data",yt),It.read(0)):(pt.length+=pt.objectMode?1:yt.length,qt?pt.buffer.unshift(yt):pt.buffer.push(yt),pt.needReadable&&IA(It))),No(It,pt)}else qt||(pt.reading=!1);return Gs(pt)}function Gs(It){return!It.ended&&(It.needReadable||It.length=FA?It=FA:(It--,It|=It>>>1,It|=It>>>2,It|=It>>>4,It|=It>>>8,It|=It>>>16,It++),It}function co(It,pt){return It<=0||pt.length===0&&pt.ended?0:pt.objectMode?1:It!==It?pt.flowing&&pt.length?pt.buffer.head.data.length:pt.length:(It>pt.highWaterMark&&(pt.highWaterMark=Zs(It)),It<=pt.length?It:pt.ended?pt.length:(pt.needReadable=!0,0))}Wn.prototype.read=function(It){pn("read",It),It=parseInt(It,10);var pt=this._readableState,yt=It;if(It!==0&&(pt.emittedReadable=!1),It===0&&pt.needReadable&&(pt.length>=pt.highWaterMark||pt.ended))return pn("read: emitReadable",pt.length,pt.ended),pt.length===0&&pt.ended?$o(this):IA(this),null;if(It=co(It,pt),It===0&&pt.ended)return pt.length===0&&$o(this),null;var Lt=pt.needReadable;pn("need readable",Lt),(pt.length===0||pt.length-It0?qt=ko(It,pt):qt=null,qt===null?(pt.needReadable=!0,It=0):pt.length-=It,pt.length===0&&(pt.ended||(pt.needReadable=!0),yt!==It&&pt.ended&&$o(this)),qt!==null&&this.emit("data",qt),qt};function Rl(It,pt){var yt=null;return!rs(pt)&&typeof pt!="string"&&pt!==null&&pt!==void 0&&!It.objectMode&&(yt=new TypeError("Invalid non-string/buffer chunk")),yt}function As(It,pt){if(!pt.ended){if(pt.decoder){var yt=pt.decoder.end();yt&&yt.length&&(pt.buffer.push(yt),pt.length+=pt.objectMode?1:yt.length)}pt.ended=!0,IA(It)}}function IA(It){var pt=It._readableState;pt.needReadable=!1,pt.emittedReadable||(pn("emitReadable",pt.flowing),pt.emittedReadable=!0,pt.sync?Jr(EA,It):EA(It))}function EA(It){pn("emit readable"),It.emit("readable"),tA(It)}function No(It,pt){pt.readingMore||(pt.readingMore=!0,Jr(ks,It,pt))}function ks(It,pt){for(var yt=pt.length;!pt.reading&&!pt.flowing&&!pt.ended&&pt.length1&&bA(Lt.pipes,It)!==-1)&&!An&&(pn("false write response, pause",yt._readableState.awaitDrain),yt._readableState.awaitDrain++,Bn=!0),yt.pause())}function Gn(Bl){pn("onerror",Bl),hu(),It.removeListener("error",Gn),Jn(It,"error")===0&&It.emit("error",Bl)}Hn(It,"error",Gn);function Ks(){It.removeListener("finish",Fl),hu()}It.once("close",Ks);function Fl(){pn("onfinish"),It.removeListener("close",Ks),hu()}It.once("finish",Fl);function hu(){pn("unpipe"),yt.unpipe(It)}return It.emit("pipe",yt),Lt.flowing||(pn("pipe resume"),yt.resume()),It};function Ql(It){return function(){var pt=It._readableState;pn("pipeOnDrain",pt.awaitDrain),pt.awaitDrain&&pt.awaitDrain--,pt.awaitDrain===0&&It.listeners("data").length&&(pt.flowing=!0,tA(It))}}Wn.prototype.unpipe=function(It){var pt=this._readableState;if(pt.pipesCount===0)return this;if(pt.pipesCount===1)return It&&It!==pt.pipes?this:(It||(It=pt.pipes),pt.pipes=null,pt.pipesCount=0,pt.flowing=!1,It&&It.emit("unpipe",this),this);if(!It){var yt=pt.pipes,Lt=pt.pipesCount;pt.pipes=null,pt.pipesCount=0,pt.flowing=!1;for(var qt=0;qt=pt.length?(pt.decoder?yt=pt.buffer.join(""):pt.buffer.length===1?yt=pt.buffer.head.data:yt=pt.buffer.concat(pt.length),pt.buffer.clear()):yt=$l(It,pt.buffer,pt.decoder),yt}function $l(It,pt,yt){var Lt;return Ittr.length?tr.length:It;if(or===tr.length?qt+=tr:qt+=tr.slice(0,It),It-=or,It===0){or===tr.length?(++Lt,yt.next?pt.head=yt.next:pt.head=pt.tail=null):(pt.head=yt,yt.data=tr.slice(or));break}++Lt}return pt.length-=Lt,qt}function Uo(It,pt){var yt=Yt.allocUnsafe(It),Lt=pt.head,qt=1;for(Lt.data.copy(yt),It-=Lt.data.length;Lt=Lt.next;){var tr=Lt.data,or=It>tr.length?tr.length:It;if(tr.copy(yt,yt.length-It,0,or),It-=or,It===0){or===tr.length?(++qt,Lt.next?pt.head=Lt.next:pt.head=pt.tail=null):(pt.head=Lt,Lt.data=tr.slice(or));break}++qt}return pt.length-=qt,yt}function $o(It){var pt=It._readableState;if(pt.length>0)throw new Error('"endReadable()" called on non-empty stream');pt.endEmitted||(pt.ended=!0,Jr(CA,pt,It))}function CA(It,pt){!It.endEmitted&&It.length===0&&(It.endEmitted=!0,pt.readable=!1,pt.emit("end"))}function ou(It,pt){for(var yt=0,Lt=It.length;yt-1))throw new TypeError("Unknown encoding: "+pt);return this._writableState.defaultEncoding=pt,this};function cA(It,pt,yt){return!It.objectMode&&It.decodeStrings!==!1&&typeof pt=="string"&&(pt=Yt.from(pt,yt)),pt}function Dl(It,pt,yt,Lt,qt){yt=cA(pt,yt,Lt),Yt.isBuffer(yt)&&(Lt="buffer");var tr=pt.objectMode?1:yt.length;pt.length+=tr;var or=pt.length"u"){var It=new ArrayBuffer(2),pt=new Uint8Array(It),yt=new Uint16Array(It);if(pt[0]=1,pt[1]=2,yt[0]===258)BA="BE";else if(yt[0]===513)BA="LE";else throw new Error("unable to figure out endianess")}return BA}function gA(){return typeof wt.location<"u"?wt.location.hostname:""}function Es(){return[]}function Au(){return 0}function Cs(){return Number.MAX_VALUE}function lu(){return Number.MAX_VALUE}function Hs(){return[]}function JA(){return"Browser"}function Ul(){return typeof wt.navigator<"u"?wt.navigator.appVersion:""}function Sl(){}function nA(){}function ys(){return"/tmp"}var us=ys,zA=` +`,$s={EOL:zA,tmpdir:us,tmpDir:ys,networkInterfaces:Sl,getNetworkInterfaces:nA,release:Ul,type:JA,cpus:Hs,totalmem:lu,freemem:Cs,uptime:Au,loadavg:Es,hostname:gA,endianness:Eo},Bs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof commonjsGlobal$1<"u"?commonjsGlobal$1:typeof self<"u"?self:{},RA="Expected a function",Nl="__lodash_hash_undefined__",$A=1/0,xA="[object Function]",_A="[object GeneratorFunction]",gs="[object Symbol]",iA=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ss=/^\w*$/,cu=/^\./,DA=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,VA=/[\\^$.*+?()[\]{}|]/g,as=/\\(\\)?/g,ds=/^\[object .+?Constructor\]$/,hs=typeof Bs=="object"&&Bs&&Bs.Object===Object&&Bs,zs=typeof self=="object"&&self&&self.Object===Object&&self,KA=hs||zs||Function("return this")();function WA(It,pt){return It==null?void 0:It[pt]}function PA(It){var pt=!1;if(It!=null&&typeof It.toString!="function")try{pt=!!(It+"")}catch{}return pt}var qs=Array.prototype,Wl=Function.prototype,Yo=Object.prototype,qA=KA["__core-js_shared__"],Ys=function(){var It=/[^.]+$/.exec(qA&&qA.keys&&qA.keys.IE_PROTO||"");return It?"Symbol(src)_1."+It:""}(),Zo=Wl.toString,Ls=Yo.hasOwnProperty,vA=Yo.toString,ZA=RegExp("^"+Zo.call(Ls).replace(VA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),$a=KA.Symbol,XA=qs.splice,Ns=_n(KA,"Map"),_s=_n(Object,"create"),Mo=$a?$a.prototype:void 0,Hl=Mo?Mo.toString:void 0;function Vs(It){var pt=-1,yt=It?It.length:0;for(this.clear();++pt-1}function Yl(It,pt){var yt=this.__data__,Lt=Fs(yt,It);return Lt<0?yt.push([It,pt]):yt[Lt][1]=pt,this}ho.prototype.clear=Ss,ho.prototype.delete=Tl,ho.prototype.get=Ms,ho.prototype.has=Xl,ho.prototype.set=Yl;function po(It){var pt=-1,yt=It?It.length:0;for(this.clear();++pt1?bt(It[tr]||{},or,yt):yt))}function Ft(It,pt){var yt=Array.isArray(pt)?pt:pt.split("."),Lt=Ps(yt),qt=Lt[0],tr=Lt.slice(1);return Mn(It[qt])!=="object"?It:yt.length===1?Object.keys(It).filter(function(or){return or!==qt}).reduce(function(or,Tr){return Object.assign(or,is({},Tr,It[Tr]))},{}):Object.keys(It).reduce(function(or,Tr){return os({},or,is({},Tr,Tr!==qt?It[Tr]:Ft(It[qt],tr)))},{})}function zt(It,pt){try{return It.push.apply(It,jo(pt)),It}catch{return It.concat(pt)}}function nr(It,pt){var yt=!0;return It.reduce(function(Lt,qt){return qt==null&&(qt=""),yt?(yt=!1,"".concat(qt)):"".concat(Lt).concat(pt).concat(qt)},"")}var dr={getProp:Ct,setProp:bt,unsetProp:Ft,fastJoin:nr,flattenReducer:zt},Br=dr.getProp,kr=dr.fastJoin,Kr=dr.flattenReducer,qr=function(){function It(pt){ls(this,It),this.opts=this.preprocessOpts(pt)}return Ds(It,[{key:"preprocessOpts",value:function(yt){var Lt=Object.assign({},yt);return Lt.transforms=Array.isArray(Lt.transforms)?Lt.transforms:Lt.transforms?[Lt.transforms]:[],Lt.delimiter=Lt.delimiter||",",Lt.eol=Lt.eol||$s.EOL,Lt.quote=typeof Lt.quote=="string"?Lt.quote:'"',Lt.escapedQuote=typeof Lt.escapedQuote=="string"?Lt.escapedQuote:"".concat(Lt.quote).concat(Lt.quote),Lt.header=Lt.header!==!1,Lt.includeEmptyRows=Lt.includeEmptyRows||!1,Lt.withBOM=Lt.withBOM||!1,Lt}},{key:"preprocessFieldsInfo",value:function(yt){var Lt=this;return yt.map(function(qt){if(typeof qt=="string")return{label:qt,value:qt.includes(".")||qt.includes("[")?function(jr){return ht(jr,qt,Lt.opts.defaultValue)}:function(jr){return Br(jr,qt,Lt.opts.defaultValue)}};if(Mn(qt)==="object"){var tr="default"in qt?qt.default:Lt.opts.defaultValue;if(typeof qt.value=="string")return{label:qt.label||qt.value,value:qt.value.includes(".")||qt.value.includes("[")?function(jr){return ht(jr,qt.value,tr)}:function(jr){return Br(jr,qt.value,tr)}};if(typeof qt.value=="function"){var or=qt.label||qt.value.name||"",Tr={label:or,default:tr};return{label:or,value:function(An){var fn=qt.value(An,Tr);return fn??tr}}}}throw new Error("Invalid field info option. "+JSON.stringify(qt))})}},{key:"getHeader",value:function(){var yt=this;return kr(this.opts.fields.map(function(Lt){return yt.processValue(Lt.label)}),this.opts.delimiter)}},{key:"preprocessRow",value:function(yt){return this.opts.transforms.reduce(function(Lt,qt){return Lt.map(function(tr){return qt(tr)}).reduce(Kr,[])},[yt])}},{key:"processRow",value:function(yt){var Lt=this;if(yt){var qt=this.opts.fields.map(function(tr){return Lt.processCell(yt,tr)});if(!(!this.opts.includeEmptyRows&&qt.every(function(tr){return tr===void 0})))return kr(qt,this.opts.delimiter)}}},{key:"processCell",value:function(yt,Lt){return this.processValue(Lt.value(yt))}},{key:"processValue",value:function(yt){if(yt!=null){var Lt=Mn(yt);if(Lt!=="boolean"&&Lt!=="number"&&Lt!=="string"){if(yt=JSON.stringify(yt),yt===void 0)return;yt[0]==='"'&&(yt=yt.replace(/^"(.+)"$/,"$1"))}return typeof yt=="string"&&(this.opts.excelStrings?(yt.includes(this.opts.quote)&&(yt=yt.replace(new RegExp(this.opts.quote,"g"),"".concat(this.opts.escapedQuote).concat(this.opts.escapedQuote))),yt='"=""'.concat(yt,'"""')):(yt.includes(this.opts.quote)&&(yt=yt.replace(new RegExp(this.opts.quote,"g"),this.opts.escapedQuote)),yt="".concat(this.opts.quote).concat(yt).concat(this.opts.quote))),yt}}}]),It}(),en=qr,Dr=dr.fastJoin,gn=dr.flattenReducer,mn=function(It){Kl(pt,It);function pt(yt){var Lt;return ls(this,pt),Lt=aA(this,UA(pt).call(this,yt)),Lt.opts.fields&&(Lt.opts.fields=Lt.preprocessFieldsInfo(Lt.opts.fields)),Lt}return Ds(pt,[{key:"parse",value:function(Lt){var qt=this.preprocessData(Lt);this.opts.fields||(this.opts.fields=qt.reduce(function(jr,An){return Object.keys(An).forEach(function(fn){jr.includes(fn)||jr.push(fn)}),jr},[]),this.opts.fields=this.preprocessFieldsInfo(this.opts.fields));var tr=this.opts.header?this.getHeader():"",or=this.processData(qt),Tr=(this.opts.withBOM?"\uFEFF":"")+tr+(tr&&or?this.opts.eol:"")+or;return Tr}},{key:"preprocessData",value:function(Lt){var qt=this,tr=Array.isArray(Lt)?Lt:[Lt];if(!this.opts.fields&&(tr.length===0||Mn(tr[0])!=="object"))throw new Error('Data should not be empty or the "fields" option should be included');return this.opts.transforms.length===0?tr:tr.map(function(or){return qt.preprocessRow(or)}).reduce(gn,[])}},{key:"processData",value:function(Lt){var qt=this;return Dr(Lt.map(function(tr){return qt.processRow(tr)}).filter(function(tr){return tr}),this.opts.eol)}}]),pt}(en),yn=mn,sn={},Fn=sn.LEFT_BRACE=1,Kn=sn.RIGHT_BRACE=2,so=sn.LEFT_BRACKET=3,vo=sn.RIGHT_BRACKET=4,io=sn.COLON=5,Qo=sn.COMMA=6,Ho=sn.TRUE=7,zn=sn.FALSE=8,pu=sn.NULL=9,eu=sn.STRING=10,Iu=sn.NUMBER=11,NA=sn.START=17,Eu=sn.STOP=18,Cu=sn.TRUE1=33,yu=sn.TRUE2=34,mu=sn.TRUE3=35,Bu=sn.FALSE1=49,_u=sn.FALSE2=50,vu=sn.FALSE3=51,Qu=sn.FALSE4=52,Su=sn.NULL1=65,bu=sn.NULL2=66,wu=sn.NULL3=67,Tu=sn.NUMBER1=81,gu=sn.NUMBER3=83,Os=sn.STRING1=97,Ru=sn.STRING2=98,$u=sn.STRING3=99,Yu=sn.STRING4=100,Ju=sn.STRING5=101,xu=sn.STRING6=102,yl=sn.VALUE=113,fu=sn.KEY=114,tu=sn.OBJECT=129,ru=sn.ARRAY=130,zu=92,Vu=47,Ku=8,Wu=12,Zu=10,Xu=13,_g=9,nu=64*1024;function pA(){this.tState=NA,this.value=void 0,this.string=void 0,this.stringBuffer=Yt.alloc?Yt.alloc(nu):new Yt(nu),this.stringBufferOffset=0,this.unicode=void 0,this.highSurrogate=void 0,this.key=void 0,this.mode=void 0,this.stack=[],this.state=yl,this.bytes_remaining=0,this.bytes_in_sequence=0,this.temp_buffs={2:new Yt(2),3:new Yt(3),4:new Yt(4)},this.offset=-1}pA.toknam=function(It){for(var pt=Object.keys(sn),yt=0,Lt=pt.length;yt=nu&&(this.string+=this.stringBuffer.toString("utf8"),this.stringBufferOffset=0),this.stringBuffer[this.stringBufferOffset++]=It},Rs.appendStringBuf=function(It,pt,yt){var Lt=It.length;typeof pt=="number"&&(typeof yt=="number"?yt<0?Lt=It.length-pt+yt:Lt=yt-pt:Lt=It.length-pt),Lt<0&&(Lt=0),this.stringBufferOffset+Lt>nu&&(this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0),It.copy(this.stringBuffer,this.stringBufferOffset,pt,yt),this.stringBufferOffset+=Lt},Rs.write=function(It){typeof It=="string"&&(It=new Yt(It));for(var pt,yt=0,Lt=It.length;yt=48&&pt<64)this.string=String.fromCharCode(pt),this.tState=gu;else if(!(pt===32||pt===9||pt===10||pt===13))return this.charError(It,yt)}else if(this.tState===Os)if(pt=It[yt],this.bytes_remaining>0){for(var qt=0;qt=128){if(pt<=193||pt>244)return this.onError(new Error("Invalid UTF-8 character at position "+yt+" in state "+pA.toknam(this.tState)));if(pt>=194&&pt<=223&&(this.bytes_in_sequence=2),pt>=224&&pt<=239&&(this.bytes_in_sequence=3),pt>=240&&pt<=244&&(this.bytes_in_sequence=4),this.bytes_in_sequence+yt>It.length){for(var tr=0;tr<=It.length-1-yt;tr++)this.temp_buffs[this.bytes_in_sequence][tr]=It[yt+tr];this.bytes_remaining=yt+this.bytes_in_sequence-It.length,yt=It.length-1}else this.appendStringBuf(It,yt,yt+this.bytes_in_sequence),yt=yt+this.bytes_in_sequence-1}else if(pt===34)this.tState=NA,this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0,this.onToken(eu,this.string),this.offset+=Yt.byteLength(this.string,"utf8")+1,this.string=void 0;else if(pt===92)this.tState=Ru;else if(pt>=32)this.appendStringChar(pt);else return this.charError(It,yt);else if(this.tState===Ru)if(pt=It[yt],pt===34)this.appendStringChar(pt),this.tState=Os;else if(pt===92)this.appendStringChar(zu),this.tState=Os;else if(pt===47)this.appendStringChar(Vu),this.tState=Os;else if(pt===98)this.appendStringChar(Ku),this.tState=Os;else if(pt===102)this.appendStringChar(Wu),this.tState=Os;else if(pt===110)this.appendStringChar(Zu),this.tState=Os;else if(pt===114)this.appendStringChar(Xu),this.tState=Os;else if(pt===116)this.appendStringChar(_g),this.tState=Os;else if(pt===117)this.unicode="",this.tState=$u;else return this.charError(It,yt);else if(this.tState===$u||this.tState===Yu||this.tState===Ju||this.tState===xu)if(pt=It[yt],pt>=48&&pt<64||pt>64&&pt<=70||pt>96&&pt<=102){if(this.unicode+=String.fromCharCode(pt),this.tState++===xu){var or=parseInt(this.unicode,16);this.unicode=void 0,this.highSurrogate!==void 0&&or>=56320&&or<57344?(this.appendStringBuf(new Yt(String.fromCharCode(this.highSurrogate,or))),this.highSurrogate=void 0):this.highSurrogate===void 0&&or>=55296&&or<56320?this.highSurrogate=or:(this.highSurrogate!==void 0&&(this.appendStringBuf(new Yt(String.fromCharCode(this.highSurrogate))),this.highSurrogate=void 0),this.appendStringBuf(new Yt(String.fromCharCode(or)))),this.tState=Os}}else return this.charError(It,yt);else if(this.tState===Tu||this.tState===gu)switch(pt=It[yt],pt){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 46:case 101:case 69:case 43:case 45:this.string+=String.fromCharCode(pt),this.tState=gu;break;default:this.tState=NA;var Tr=Number(this.string);if(isNaN(Tr))return this.charError(It,yt);this.string.match(/[0-9]+/)==this.string&&Tr.toString()!=this.string?this.onToken(eu,this.string):this.onToken(Iu,Tr),this.offset+=this.string.length-1,this.string=void 0,yt--;break}else if(this.tState===Cu)if(It[yt]===114)this.tState=yu;else return this.charError(It,yt);else if(this.tState===yu)if(It[yt]===117)this.tState=mu;else return this.charError(It,yt);else if(this.tState===mu)if(It[yt]===101)this.tState=NA,this.onToken(Ho,!0),this.offset+=3;else return this.charError(It,yt);else if(this.tState===Bu)if(It[yt]===97)this.tState=_u;else return this.charError(It,yt);else if(this.tState===_u)if(It[yt]===108)this.tState=vu;else return this.charError(It,yt);else if(this.tState===vu)if(It[yt]===115)this.tState=Qu;else return this.charError(It,yt);else if(this.tState===Qu)if(It[yt]===101)this.tState=NA,this.onToken(zn,!1),this.offset+=4;else return this.charError(It,yt);else if(this.tState===Su)if(It[yt]===117)this.tState=bu;else return this.charError(It,yt);else if(this.tState===bu)if(It[yt]===108)this.tState=wu;else return this.charError(It,yt);else if(this.tState===wu)if(It[yt]===108)this.tState=NA,this.onToken(pu,null),this.offset+=3;else return this.charError(It,yt)},Rs.onToken=function(It,pt){},Rs.parseError=function(It,pt){this.tState=Eu,this.onError(new Error("Unexpected "+pA.toknam(It)+(pt?"("+JSON.stringify(pt)+")":"")+" in state "+pA.toknam(this.state)))},Rs.push=function(){this.stack.push({value:this.value,key:this.key,mode:this.mode})},Rs.pop=function(){var It=this.value,pt=this.stack.pop();this.value=pt.value,this.key=pt.key,this.mode=pt.mode,this.emit(It),this.mode||(this.state=yl)},Rs.emit=function(It){this.mode&&(this.state=Qo),this.onValue(It)},Rs.onValue=function(It){},Rs.onToken=function(It,pt){if(this.state===yl)if(It===eu||It===Iu||It===Ho||It===zn||It===pu)this.value&&(this.value[this.key]=pt),this.emit(pt);else if(It===Fn)this.push(),this.value?this.value=this.value[this.key]={}:this.value={},this.key=void 0,this.state=fu,this.mode=tu;else if(It===so)this.push(),this.value?this.value=this.value[this.key]=[]:this.value=[],this.key=0,this.mode=ru,this.state=yl;else if(It===Kn)if(this.mode===tu)this.pop();else return this.parseError(It,pt);else if(It===vo)if(this.mode===ru)this.pop();else return this.parseError(It,pt);else return this.parseError(It,pt);else if(this.state===fu)if(It===eu)this.key=pt,this.state=io;else if(It===Kn)this.pop();else return this.parseError(It,pt);else if(this.state===io)if(It===io)this.state=yl;else return this.parseError(It,pt);else if(this.state===Qo)if(It===Qo)this.mode===ru?(this.key++,this.state=yl):this.mode===tu&&(this.state=fu);else if(It===vo&&this.mode===ru||It===Kn&&this.mode===tu)this.pop();else return this.parseError(It,pt);else return this.parseError(It,pt)},pA.C=sn;var iu=pA,_f=_o.Transform,_d=function(It){Kl(pt,It);function pt(yt,Lt){var qt;return ls(this,pt),qt=aA(this,UA(pt).call(this,Lt)),Object.getOwnPropertyNames(en.prototype).forEach(function(tr){return qt[tr]=en.prototype[tr]}),qt.opts=qt.preprocessOpts(yt),qt._data="",qt._hasWritten=!1,qt._readableState.objectMode?qt.initObjectModeParse():qt.opts.ndjson?qt.initNDJSONParse():qt.initJSONParser(),qt.opts.withBOM&&qt.push("\uFEFF"),qt.opts.fields&&(qt.opts.fields=qt.preprocessFieldsInfo(qt.opts.fields),qt.pushHeader()),qt}return Ds(pt,[{key:"initObjectModeParse",value:function(){var Lt=this;this.parser={write:function(tr){Lt.pushLine(tr)},getPendingData:function(){}}}},{key:"initNDJSONParse",value:function(){var Lt=this;this.parser={_data:"",write:function(tr){this._data+=tr.toString();var or=this._data.split(` +`).map(function(jr){return jr.trim()}).filter(function(jr){return jr!==""}),Tr=!1;or.forEach(function(jr,An){try{Lt.pushLine(JSON.parse(jr))}catch(fn){An===or.length-1?Tr=!0:(fn.message="Invalid JSON (".concat(jr,")"),Lt.emit("error",fn))}}),this._data=Tr?this._data.slice(this._data.lastIndexOf(` +`)):""},getPendingData:function(){return this._data}}}},{key:"initJSONParser",value:function(){var Lt=this;this.parser=new iu,this.parser.onValue=function(qt){this.stack.length===this.depthToEmit&&Lt.pushLine(qt)},this.parser._onToken=this.parser.onToken,this.parser.onToken=function(qt,tr){Lt.parser._onToken(qt,tr),this.stack.length===0&&!Lt.opts.fields&&this.mode!==iu.C.ARRAY&&this.mode!==iu.C.OBJECT&&this.onError(new Error('Data should not be empty or the "fields" option should be included')),this.stack.length===1&&(this.depthToEmit===void 0&&(this.depthToEmit=this.mode===iu.C.ARRAY?1:0),this.depthToEmit!==0&&this.stack.length===1&&(this.value=void 0))},this.parser.getPendingData=function(){return this.value},this.parser.onError=function(qt){qt.message.includes("Unexpected")&&(qt.message="Invalid JSON (".concat(qt.message,")")),Lt.emit("error",qt)}}},{key:"_transform",value:function(Lt,qt,tr){this.parser.write(Lt),tr()}},{key:"_flush",value:function(Lt){this.parser.getPendingData()&&Lt(new Error("Invalid data received from stdin",this.parser.getPendingData())),Lt()}},{key:"pushHeader",value:function(){if(this.opts.header){var Lt=this.getHeader();this.emit("header",Lt),this.push(Lt),this._hasWritten=!0}}},{key:"pushLine",value:function(Lt){var qt=this,tr=this.preprocessRow(Lt);this._hasWritten||(this.opts.fields=this.opts.fields||this.preprocessFieldsInfo(Object.keys(tr[0])),this.pushHeader()),tr.forEach(function(or){var Tr=qt.processRow(or,qt.opts);Tr!==void 0&&(qt.emit("line",Tr),qt.push(qt._hasWritten?qt.opts.eol+Tr:Tr),qt._hasWritten=!0)})}}]),pt}(_f),Du=_d,_h=_o.Transform,ep=dr.fastJoin,tp=function(){function It(pt,yt){ls(this,It),this.input=new _h(yt),this.input._read=function(){},this.transform=new Du(pt,yt),this.processor=this.input.pipe(this.transform)}return Ds(It,[{key:"fromInput",value:function(yt){if(this._input)throw new Error("Async parser already has an input.");return this._input=yt,this.input=this._input.pipe(this.processor),this}},{key:"throughTransform",value:function(yt){if(this._output)throw new Error("Can't add transforms once an output has been added.");return this.processor=this.processor.pipe(yt),this}},{key:"toOutput",value:function(yt){if(this._output)throw new Error("Async parser already has an output.");return this._output=yt,this.processor=this.processor.pipe(yt),this}},{key:"promise",value:function(){var yt=this,Lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return new Promise(function(qt,tr){if(!Lt){yt.processor.on("finish",function(){return qt()}).on("error",function(Tr){return tr(Tr)});return}var or=[];yt.processor.on("data",function(Tr){return or.push(Tr.toString())}).on("finish",function(){return qt(ep(or,""))}).on("error",function(Tr){return tr(Tr)})})}}]),It}(),Pu=tp;function rp(){var It=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},pt=It.objects,yt=pt===void 0?!0:pt,Lt=It.arrays,qt=Lt===void 0?!1:Lt,tr=It.separator,or=tr===void 0?".":tr;function Tr(jr,An,fn){return Object.keys(jr).forEach(function(Bn){var Zn=fn?"".concat(fn).concat(or).concat(Bn):Bn,Gn=jr[Bn];if(yt&&Mn(Gn)==="object"&&Gn!==null&&!Array.isArray(Gn)&&Object.prototype.toString.call(Gn.toJSON)!=="[object Function]"&&Object.keys(Gn).length){Tr(Gn,An,Zn);return}if(qt&&Array.isArray(Gn)){Tr(Gn,An,Zn);return}An[Zn]=Gn}),An}return function(jr){return Tr(jr,{})}}var np=rp,ip=dr.setProp,op=dr.unsetProp,Lu=dr.flattenReducer;function du(It,pt){return Object.keys(It).reduce(function(yt,Lt){var qt=pt?"".concat(pt,".").concat(Lt):Lt,tr=It[Lt];return Mn(tr)==="object"&&tr!==null&&!Array.isArray(tr)&&Object.prototype.toString.call(tr.toJSON)!=="[object Function]"&&Object.keys(tr).length?yt=yt.concat(du(tr,qt)):Array.isArray(tr)&&(yt.push(qt),yt=yt.concat(tr.map(function(or){return du(or,qt)}).reduce(Lu,[]).filter(function(or,Tr,jr){return jr.indexOf(or)!==Tr}))),yt},[])}function sp(){var It=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},pt=It.paths,yt=pt===void 0?void 0:pt,Lt=It.blankOut,qt=Lt===void 0?!1:Lt;function tr(or,Tr){return or.map(function(jr){var An=ht(jr,Tr);return Array.isArray(An)?An.length?An.map(function(fn,Bn){var Zn=qt&&Bn>0?{}:jr;return ip(Zn,Tr,fn)}):op(jr,Tr):jr}).reduce(Lu,[])}return yt=Array.isArray(yt)?yt:yt?[yt]:void 0,function(or){return(yt||du(or)).reduce(tr,[or])}}var ap=sp,Nu=_o.Readable,Mu=yn,Fu=Pu,Ou=Du,Gu=function(pt,yt){return new yn(yt).parse(pt)},ku=function(pt,yt,Lt){try{pt instanceof Nu||(Lt=Object.assign({},Lt,{objectMode:!0}));var qt=new Pu(yt,Lt),tr=qt.promise();return Array.isArray(pt)?(pt.forEach(function(or){return qt.input.push(or)}),qt.input.push(null)):pt instanceof Nu?qt.fromInput(pt):(qt.input.push(pt),qt.input.push(null)),tr}catch(or){return Promise.reject(or)}},Uu={flatten:np,unwind:ap},Ap={Parser:Mu,AsyncParser:Fu,Transform:Ou,parse:Gu,parseAsync:ku,transforms:Uu};_e.AsyncParser=Fu,_e.Parser=Mu,_e.Transform=Ou,_e.default=Ap,_e.parse=Gu,_e.parseAsync=ku,_e.transforms=Uu,Object.defineProperty(_e,"__esModule",{value:!0})})})(json2csv_umd$1,json2csv_umd$1.exports);const schemeRdBu$1=[[103,0,31],[178,24,43],[214,96,77],[244,165,130],[253,219,199],[247,247,247],[209,229,240],[146,197,222],[67,147,195],[33,102,172],[5,48,97]],schemePlasma$1=[[13,8,135],[16,7,136],[19,7,137],[22,7,138],[25,6,140],[27,6,141],[29,6,142],[32,6,143],[34,6,144],[36,6,145],[38,5,145],[40,5,146],[42,5,147],[44,5,148],[46,5,149],[47,5,150],[49,5,151],[51,5,151],[53,4,152],[55,4,153],[56,4,154],[58,4,154],[60,4,155],[62,4,156],[63,4,156],[65,4,157],[67,3,158],[68,3,158],[70,3,159],[72,3,159],[73,3,160],[75,3,161],[76,2,161],[78,2,162],[80,2,162],[81,2,163],[83,2,163],[85,2,164],[86,1,164],[88,1,164],[89,1,165],[91,1,165],[92,1,166],[94,1,166],[96,1,166],[97,0,167],[99,0,167],[100,0,167],[102,0,167],[103,0,168],[105,0,168],[106,0,168],[108,0,168],[110,0,168],[111,0,168],[113,0,168],[114,1,168],[116,1,168],[117,1,168],[119,1,168],[120,1,168],[122,2,168],[123,2,168],[125,3,168],[126,3,168],[128,4,168],[129,4,167],[131,5,167],[132,5,167],[134,6,166],[135,7,166],[136,8,166],[138,9,165],[139,10,165],[141,11,165],[142,12,164],[143,13,164],[145,14,163],[146,15,163],[148,16,162],[149,17,161],[150,19,161],[152,20,160],[153,21,159],[154,22,159],[156,23,158],[157,24,157],[158,25,157],[160,26,156],[161,27,155],[162,29,154],[163,30,154],[165,31,153],[166,32,152],[167,33,151],[168,34,150],[170,35,149],[171,36,148],[172,38,148],[173,39,147],[174,40,146],[176,41,145],[177,42,144],[178,43,143],[179,44,142],[180,46,141],[181,47,140],[182,48,139],[183,49,138],[184,50,137],[186,51,136],[187,52,136],[188,53,135],[189,55,134],[190,56,133],[191,57,132],[192,58,131],[193,59,130],[194,60,129],[195,61,128],[196,62,127],[197,64,126],[198,65,125],[199,66,124],[200,67,123],[201,68,122],[202,69,122],[203,70,121],[204,71,120],[204,73,119],[205,74,118],[206,75,117],[207,76,116],[208,77,115],[209,78,114],[210,79,113],[211,81,113],[212,82,112],[213,83,111],[213,84,110],[214,85,109],[215,86,108],[216,87,107],[217,88,106],[218,90,106],[218,91,105],[219,92,104],[220,93,103],[221,94,102],[222,95,101],[222,97,100],[223,98,99],[224,99,99],[225,100,98],[226,101,97],[226,102,96],[227,104,95],[228,105,94],[229,106,93],[229,107,93],[230,108,92],[231,110,91],[231,111,90],[232,112,89],[233,113,88],[233,114,87],[234,116,87],[235,117,86],[235,118,85],[236,119,84],[237,121,83],[237,122,82],[238,123,81],[239,124,81],[239,126,80],[240,127,79],[240,128,78],[241,129,77],[241,131,76],[242,132,75],[243,133,75],[243,135,74],[244,136,73],[244,137,72],[245,139,71],[245,140,70],[246,141,69],[246,143,68],[247,144,68],[247,145,67],[247,147,66],[248,148,65],[248,149,64],[249,151,63],[249,152,62],[249,154,62],[250,155,61],[250,156,60],[250,158,59],[251,159,58],[251,161,57],[251,162,56],[252,163,56],[252,165,55],[252,166,54],[252,168,53],[252,169,52],[253,171,51],[253,172,51],[253,174,50],[253,175,49],[253,177,48],[253,178,47],[253,180,47],[253,181,46],[254,183,45],[254,184,44],[254,186,44],[254,187,43],[254,189,42],[254,190,42],[254,192,41],[253,194,41],[253,195,40],[253,197,39],[253,198,39],[253,200,39],[253,202,38],[253,203,38],[252,205,37],[252,206,37],[252,208,37],[252,210,37],[251,211,36],[251,213,36],[251,215,36],[250,216,36],[250,218,36],[249,220,36],[249,221,37],[248,223,37],[248,225,37],[247,226,37],[247,228,37],[246,230,38],[246,232,38],[245,233,38],[245,235,39],[244,237,39],[243,238,39],[243,240,39],[242,242,39],[241,244,38],[241,245,37],[240,247,36],[240,249,33]];function rgbSpline$1(j){return $=>{const _e=$.length,et=new Array(_e),tt=new Array(_e),rt=new Array(_e);let nt,it;for(nt=0;nt<_e;++nt)it=[$[nt][0],$[nt][1],$[nt][2]],et[nt]=it[0]||0,tt[nt]=it[1]||0,rt[nt]=it[2]||0;const ot=j(et),At=j(tt),ut=j(rt);return ft=>[ot(ft),At(ft),ut(ft)]}}function basis$1(j){function $(et,tt,rt,nt,it){const ot=et*et,At=ot*et;return((1-3*et+3*ot-At)*tt+(4-6*ot+3*At)*rt+(1+3*et+3*ot-3*At)*nt+At*it)/6}const _e=j.length-1;return et=>{const tt=et<=0?et=0:et>=1?(et=1,_e-1):Math.floor(et*_e),rt=j[tt],nt=j[tt+1],it=tt>0?j[tt-1]:2*rt-nt,ot=tt<_e-1?j[tt+2]:2*nt-rt;return $((et-tt/_e)*_e,it,rt,nt,ot)}}const interpolateRgbBasis$1=rgbSpline$1(basis$1);function interpolateSequentialMulti$1(j){const $=j.length;return _e=>j[Math.max(0,Math.min($-1,Math.floor(_e*$)))]}interpolateRgbBasis$1(schemeRdBu$1);interpolateSequentialMulti$1(schemePlasma$1);const coordinationTypeName$1=z$2.string(),coordinationScopeName$1=z$2.string(),stringOrStringArray$1=z$2.union([z$2.string(),z$2.array(z$2.string())]),oneOrMoreCoordinationScopeNames$1=stringOrStringArray$1,componentCoordinationScopes$1=z$2.record(coordinationTypeName$1,oneOrMoreCoordinationScopeNames$1),componentCoordinationScopesBy$1=z$2.record(coordinationTypeName$1,z$2.record(coordinationTypeName$1,z$2.record(coordinationScopeName$1,oneOrMoreCoordinationScopeNames$1))),rgbArray$1=z$2.array(z$2.number()).length(3),treeNodeBase$1=z$2.object({name:z$2.string(),color:rgbArray$1.optional()}),treeNodeLeaf$1=treeNodeBase$1.extend({set:z$2.array(z$2.string())}),treeNodeNonLeaf$1=treeNodeBase$1.extend({children:z$2.lazy(()=>z$2.array(z$2.union([treeNodeNonLeaf$1,treeNodeLeaf$1])))}),cellSets2$1=z$2.object({version:z$2.literal("0.1.2"),tree:z$2.array(treeNodeNonLeaf$1)}),treeNodeLeafProbabilistic$1=treeNodeBase$1.extend({set:z$2.array(z$2.tuple([z$2.string(),z$2.number().nullable()]))}),treeNodeNonLeafProbabilistic$1=treeNodeBase$1.extend({children:z$2.lazy(()=>z$2.array(z$2.union([treeNodeNonLeafProbabilistic$1,treeNodeLeafProbabilistic$1])))}),cellSets3$1=z$2.object({version:z$2.literal("0.1.3"),tree:z$2.array(treeNodeNonLeafProbabilistic$1)});function nodeTransform$1(j,$,_e,et,tt=null){let rt;return tt?rt=[...tt]:rt=[j.name],$(j,rt)?(et.push(rt),_e(j,rt)):"children"in j?{...j,children:j.children.map(nt=>nodeTransform$1(nt,$,_e,et,rt.concat([nt.name])))}:j}z$2.union([cellSets3$1,cellSets2$1]).transform(j=>j.version==="0.1.3"?j:{...j,version:"0.1.3",tree:j.tree.map($=>nodeTransform$1($,_e=>!("children"in _e)&&Array.isArray(_e.set),_e=>({..._e,set:_e.set.map(et=>[et,null])}),[]))});z$2.array(z$2.object({groupName:z$2.string(),setName:z$2.string(),setColor:rgbArray$1.optional(),obsId:z$2.string(),predictionScore:z$2.number().nullable().optional()}));z$2.array(z$2.string());const requestInit$1=z$2.object({method:z$2.string().optional(),headers:z$2.record(z$2.any()).optional(),body:z$2.string().optional(),mode:z$2.string().optional(),credentials:z$2.string().optional(),cache:z$2.string().optional(),redirect:z$2.string().optional(),referrer:z$2.string().optional(),integrity:z$2.string().optional()}),nameSchema$1=z$2.string(),publicFlagSchema$1=z$2.boolean().optional(),descriptionSchema$1=z$2.string().optional(),configSchema0_1_0$1=z$2.object({version:z$2.literal("0.1.0"),name:nameSchema$1,public:publicFlagSchema$1,description:descriptionSchema$1,layers:z$2.array(z$2.object({name:z$2.string(),type:z$2.string(),fileType:z$2.string(),url:z$2.string()})),staticLayout:z$2.array(z$2.object({component:z$2.string(),props:z$2.record(z$2.any()).optional(),x:z$2.number().int(),y:z$2.number().int(),w:z$2.number().int().optional(),h:z$2.number().int().optional()}))}),fileOptionsSchema$1=z$2.any(),coordinationSpaceSchema$1=z$2.object({}).catchall(z$2.record(coordinationScopeName$1,z$2.any())),initStrategySchema$1=z$2.enum(["none","auto"]),layoutSchema1_0_0$1=z$2.array(z$2.object({component:z$2.string(),props:z$2.record(z$2.any()).optional(),x:z$2.number().int(),y:z$2.number().int(),w:z$2.number().int().optional(),h:z$2.number().int().optional(),coordinationScopes:z$2.record(z$2.string()).optional()})),datasetsSchema1_0_0$1=z$2.array(z$2.object({uid:z$2.string(),name:z$2.string().optional(),description:z$2.string().optional(),files:z$2.array(z$2.object({name:z$2.string().optional(),fileType:z$2.string(),url:z$2.string().optional(),options:fileOptionsSchema$1.optional(),requestInit:requestInit$1.optional()}))})),configSchema1_0_0$1=z$2.object({version:z$2.literal("1.0.0"),name:nameSchema$1,public:publicFlagSchema$1,description:descriptionSchema$1,datasets:datasetsSchema1_0_0$1,coordinationSpace:coordinationSpaceSchema$1.optional(),layout:layoutSchema1_0_0$1,initStrategy:initStrategySchema$1}),configSchema1_0_1$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.1")}),configSchema1_0_2$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.2")}),configSchema1_0_3$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.3")}),configSchema1_0_4$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.4")}),configSchema1_0_5$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.5")}),configSchema1_0_6$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.6")}),configSchema1_0_7$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.7")}),polyphonyStyleCoordinationScopes$1=z$2.record(z$2.union([z$2.string(),z$2.array(z$2.string()),z$2.record(z$2.string())])),layoutSchema1_0_8$1=z$2.array(z$2.object({component:z$2.string(),props:z$2.record(z$2.any()).optional(),x:z$2.number().int(),y:z$2.number().int(),w:z$2.number().int().optional(),h:z$2.number().int().optional(),coordinationScopes:polyphonyStyleCoordinationScopes$1.optional()})),configSchema1_0_8$1=configSchema1_0_0$1.extend({version:z$2.literal("1.0.8"),layout:layoutSchema1_0_8$1}),configSchema1_0_9$1=configSchema1_0_8$1.extend({version:z$2.literal("1.0.9")}),layoutSchema1_0_10$1=z$2.array(z$2.object({uid:z$2.string().optional(),component:z$2.string(),props:z$2.record(z$2.any()).optional(),x:z$2.number().int(),y:z$2.number().int(),w:z$2.number().int().optional(),h:z$2.number().int().optional(),coordinationScopes:polyphonyStyleCoordinationScopes$1.optional()})),configSchema1_0_10$1=configSchema1_0_8$1.extend({version:z$2.literal("1.0.10"),layout:layoutSchema1_0_10$1}),configSchema1_0_11$1=configSchema1_0_10$1.extend({version:z$2.literal("1.0.11")}),configSchema1_0_12$1=configSchema1_0_10$1.extend({version:z$2.literal("1.0.12")}),latestFileDefSchema$1=z$2.object({name:z$2.string().optional(),fileType:z$2.string(),url:z$2.string().optional(),options:fileOptionsSchema$1.optional(),requestInit:requestInit$1.optional(),coordinationValues:z$2.record(z$2.string()).optional()}),datasetsSchema1_0_13$1=z$2.array(z$2.object({uid:z$2.string(),name:z$2.string().optional(),description:z$2.string().optional(),files:z$2.array(latestFileDefSchema$1)})),configSchema1_0_13$1=configSchema1_0_10$1.extend({version:z$2.literal("1.0.13"),datasets:datasetsSchema1_0_13$1}),configSchema1_0_14$1=configSchema1_0_13$1.extend({version:z$2.literal("1.0.14")}),configSchema1_0_15$1=configSchema1_0_13$1.extend({version:z$2.literal("1.0.15")}),configSchema1_0_16$1=configSchema1_0_13$1.extend({version:z$2.literal("1.0.16"),uid:z$2.string().optional(),layout:z$2.array(z$2.object({uid:z$2.string().optional(),component:z$2.string(),props:z$2.record(z$2.any()).optional(),x:z$2.number().int(),y:z$2.number().int(),w:z$2.number().int().optional(),h:z$2.number().int().optional(),coordinationScopes:componentCoordinationScopes$1.optional(),coordinationScopesBy:componentCoordinationScopesBy$1.optional()}))});configSchema1_0_0$1.shape.coordinationSpace.unwrap();configSchema1_0_0$1.shape.layout.element.shape.coordinationScopes.unwrap();function upgradeReplaceViewProp$1(j,$,_e){const et=Object.keys(_e[`${j}Zoom`]),tt=Object.keys(_e[`${j}TargetX`]),rt=Object.keys(_e[`${j}TargetY`]),nt=getNextScope$1(et),it=getNextScope$1(tt),ot=getNextScope$1(rt),{zoom:At,target:[ut,ft]}=$;return _e[`${j}Zoom`][nt]=At,_e[`${j}TargetX`][it]=ut,_e[`${j}TargetY`][ot]=ft,{[`${j}Zoom`]:nt,[`${j}TargetX`]:it,[`${j}TargetY`]:ot}}function upgradeFrom0_1_0$1(j,$=null){const _e={embeddingType:{},embeddingZoom:{},embeddingTargetX:{},embeddingTargetY:{},spatialZoom:{},spatialTargetX:{},spatialTargetY:{}},et=[];j.staticLayout.forEach(it=>{var ot,At,ut;let ft={...it,coordinationScopes:{}};if(it.component==="scatterplot"&&((ot=it.props)!=null&&ot.mapping&&typeof it.props.mapping=="string"&&(_e.embeddingType[it.props.mapping]=it.props.mapping,ft={...ft,coordinationScopes:{...ft.coordinationScopes,embeddingType:it.props.mapping}}),(At=it.props)!=null&&At.view)){const dt=upgradeReplaceViewProp$1("embedding",it.props.view,_e);ft={...ft,coordinationScopes:{...ft.coordinationScopes,...dt}}}if(it.component==="spatial"&&(ut=it==null?void 0:it.props)!=null&&ut.view){const dt=upgradeReplaceViewProp$1("spatial",it.props.view,_e);ft={...ft,coordinationScopes:{...ft.coordinationScopes,...dt}}}et.push(ft)});const tt=et.find(it=>it.component==="layerController"),rt=et.find(it=>it.component==="spatial");tt&&rt&&"coordinationScopes"in rt&&(tt.coordinationScopes=rt.coordinationScopes);const nt=$||v4$2();return{version:"1.0.0",name:j.name,description:j.description,public:j.public,datasets:[{uid:nt,name:nt,files:j.layers.map(it=>({fileType:it.fileType,url:it.url}))}],initStrategy:"auto",coordinationSpace:_e,layout:et}}function upgradeFrom1_0_0$1(j){const $=cloneDeep$1(j),{coordinationSpace:_e}=$;function et(rt,nt){const it=rt==="raster";nt[`spatial${capitalize$3(rt)}Layer${it?"s":""}`]={},Object.entries(nt.spatialLayers).forEach(([ot,At])=>{if(Array.isArray(At)&&At.find(ut=>ut.type===rt)){const ut=At.filter(ft=>ft.type===rt).map(ft=>{const dt={...ft};return delete dt.type,dt});nt[`spatial${capitalize$3(rt)}Layer${it?"s":""}`][ot]=it?ut:ut[0]}else nt[`spatial${capitalize$3(rt)}Layer${it?"s":""}`][ot]=null})}_e&&"spatialLayers"in _e&&(et("raster",_e),et("cells",_e),et("molecules",_e),et("neighborhoods",_e),delete _e.spatialLayers);const tt=$.layout.map(rt=>{const nt={...rt};function it(ot,At){const ut=ot==="raster";(["spatial","layerController"].includes(nt.component)||nt.component==="description"&&ut)&&(At[`spatial${capitalize$3(ot)}Layer${ut?"s":""}`]=At.spatialLayers)}return nt.coordinationScopes&&nt.coordinationScopes.spatialLayers&&(it("raster",nt.coordinationScopes),it("cells",nt.coordinationScopes),it("molecules",nt.coordinationScopes),it("neighborhoods",nt.coordinationScopes),delete nt.coordinationScopes.spatialLayers),nt});return{...$,coordinationSpace:_e,layout:tt,version:"1.0.1"}}function upgradeFrom1_0_1$1(j){var $;const _e=j.layout.map(tt=>{const rt={...tt};return rt.component==="layerController"&&(rt.props={...rt.props,globalDisable3d:!0}),rt}),et=cloneDeep$1(j);return Object.keys((($=et==null?void 0:et.coordinationSpace)==null?void 0:$.spatialRasterLayers)||{}).forEach(tt=>{var rt,nt;(nt=(rt=et.coordinationSpace)==null?void 0:rt.spatialRasterLayers)!=null&&nt[tt]&&et.coordinationSpace.spatialRasterLayers[tt].forEach((it,ot)=>{et.coordinationSpace&&(et.coordinationSpace.spatialRasterLayers[tt][ot].type=["bitmask","raster"].includes(it.type)?it.type:"raster")})}),{...et,layout:_e,version:"1.0.2"}}function upgradeFrom1_0_2$1(j){const $=j.layout.map(et=>{const tt={...et};return tt.component==="layerController"&&(tt.props={...tt.props,disableChannelsIfRgbDetected:!0}),tt});return{...cloneDeep$1(j),layout:$,version:"1.0.3"}}function upgradeFrom1_0_3$1(j){return{...cloneDeep$1(j),version:"1.0.4"}}function upgradeFrom1_0_4$1(j){return{...cloneDeep$1(j),version:"1.0.5"}}function upgradeFrom1_0_5$1(j){return{...cloneDeep$1(j),version:"1.0.6"}}function upgradeFrom1_0_6$1(j){return{...cloneDeep$1(j),version:"1.0.7"}}function upgradeFrom1_0_7$1(j){return{...cloneDeep$1(j),version:"1.0.8"}}function upgradeFrom1_0_8$1(j){return{...cloneDeep$1(j),version:"1.0.9"}}function upgradeFrom1_0_9$1(j){return{...cloneDeep$1(j),version:"1.0.10"}}function upgradeFrom1_0_10$1(j){const $={...j.coordinationSpace},_e={spatialRasterLayers:"spatialImageLayer",spatialCellsLayer:"spatialSegmentationLayer",spatialMoleculesLayer:"spatialPointLayer",spatialNeighborhoodsLayer:"spatialNeighborhoodLayer",cellFilter:"obsFilter",cellHighlight:"obsHighlight",cellSelection:"obsSelection",cellSetSelection:"obsSetSelection",cellSetHighlight:"obsSetHighlight",cellSetColor:"obsSetColor",geneFilter:"featureFilter",geneHighlight:"featureHighlight",geneSelection:"featureSelection",geneExpressionColormap:"featureValueColormap",geneExpressionColormapRange:"featureValueColormapRange",cellColorEncoding:"obsColorEncoding",additionalCellSets:"additionalObsSets",embeddingCellSetPolygonsVisible:"embeddingObsSetPolygonsVisible",embeddingCellSetLabelsVisible:"embeddingObsSetLabelsVisible",embeddingCellSetLabelSize:"embeddingObsSetLabelSize",embeddingCellRadius:"embeddingObsRadius",embeddingCellRadiusMode:"embeddingObsRadiusMode",embeddingCellOpacity:"embeddingObsOpacity",embeddingCellOpacityMode:"embeddingObsOpacityMode"};Object.entries(_e).forEach(([tt,rt])=>{$[tt]&&($[rt]=$[tt],delete $[tt])});const et=j.layout.map(tt=>{const rt={...tt},{coordinationScopes:nt={}}=rt;return Object.entries(_e).forEach(([it,ot])=>{nt[it]&&(nt[ot]=nt[it],delete nt[it])}),{...rt,coordinationScopes:nt}});return{...j,coordinationSpace:$,layout:et,version:"1.0.11"}}function upgradeFrom1_0_11$1(j){const $=cloneDeep$1(j),{datasets:_e,coordinationSpace:et}=$;if(et!=null&&et.embeddingType){const tt=Object.values(et.embeddingType);_e.forEach((rt,nt)=>{const{files:it}=rt;it.forEach((ot,At)=>{const{fileType:ut}=ot;ut==="cells.json"&&(_e[nt].files[At].options={embeddingTypes:tt})})})}return{...$,datasets:_e,version:"1.0.12"}}function upgradeFrom1_0_12$1(j){const $=cloneDeep$1(j),{datasets:_e,coordinationSpace:et,layout:tt}=$,rt=et||{},nt={};_e.forEach(At=>{const{files:ut,uid:ft}=At;ut.forEach(dt=>{const{fileType:Et,options:Bt}=dt;if(Et==="anndata-cells.zarr"&&Bt&&"factors"in Bt&&Array.isArray(Bt.factors)){const St=[];Bt.factors.forEach(Dt=>{const $t=getNextScope$1(Object.keys((et==null?void 0:et.obsLabelsType)||{}));rt.obsLabelsType={...rt.obsLabelsType,[$t]:Dt.split("/").at(-1)},St.push($t)}),nt[ft]=St}})});function it(At){var ut,ft;return(ut=At.coordinationScopes)!=null&&ut.dataset&&typeof((ft=At.coordinationScopes)==null?void 0:ft.dataset)=="string"?rt.dataset[At.coordinationScopes.dataset]:_e.length>0?_e[0].uid:null}const ot=tt.map(At=>{const ut=it(At);if(typeof ut=="string"){const ft=nt[ut];if(ft)return{...At,coordinationScopes:{...At.coordinationScopes,obsLabelsType:ft}}}return At});return{...$,coordinationSpace:rt,layout:ot,version:"1.0.13"}}function upgradeFrom1_0_13$1(j){return{...cloneDeep$1(j),version:"1.0.14"}}function upgradeFrom1_0_14$1(j){const $=cloneDeep$1(j),{layout:_e}=$,et={genes:"featureList",cellSets:"obsSets",cellSetSizes:"obsSetSizes",cellSetExpression:"obsSetFeatureValueDistribution",expressionHistogram:"featureValueHistogram"},tt=_e.map(nt=>et[nt.component]?{...nt,component:et[nt.component]}:nt),rt={variablesLabelOverride:"featureType",observationsLabelOverride:"obsType"};return tt.forEach(nt=>{Object.entries(rt).forEach(([it,ot])=>{var At;(At=nt.props)!=null&&At[it]&&console.warn(`Warning: the '${it}' prop on the ${nt.component} view is deprecated. Please use the '${ot}' coordination type instead.`)})}),{...$,version:"1.0.15",layout:tt}}function upgradeFrom1_0_15$1(j){const $=cloneDeep$1(j),{layout:_e}=$,et=_e.map(tt=>{const{coordinationScopes:rt}=tt,nt={};if(rt!=null&&rt.dataset&&Array.isArray(rt.dataset)){const it={dataset:{}};return Object.entries(rt).forEach(([ot,At])=>{!Array.isArray(At)&&typeof At=="object"?(ot==="dataset"&&console.error("Expected coordinationScopes.dataset value to be either string or string[], but got object."),it.dataset[ot]=At):(Array.isArray(At)||typeof At=="string")&&(nt[ot]=At)}),{...tt,coordinationScopes:nt,coordinationScopesBy:it}}return rt&&Object.entries(rt).forEach(([it,ot])=>{(Array.isArray(ot)||typeof ot=="string")&&(nt[it]=ot)}),{...tt,coordinationScopes:nt}});return{...$,layout:et,version:"1.0.16"}}const latestConfigSchema$1=configSchema1_0_16$1,SCHEMA_HANDLERS$1=[[configSchema0_1_0$1,upgradeFrom0_1_0$1],[configSchema1_0_0$1,upgradeFrom1_0_0$1],[configSchema1_0_1$1,upgradeFrom1_0_1$1],[configSchema1_0_2$1,upgradeFrom1_0_2$1],[configSchema1_0_3$1,upgradeFrom1_0_3$1],[configSchema1_0_4$1,upgradeFrom1_0_4$1],[configSchema1_0_5$1,upgradeFrom1_0_5$1],[configSchema1_0_6$1,upgradeFrom1_0_6$1],[configSchema1_0_7$1,upgradeFrom1_0_7$1],[configSchema1_0_8$1,upgradeFrom1_0_8$1],[configSchema1_0_9$1,upgradeFrom1_0_9$1],[configSchema1_0_10$1,upgradeFrom1_0_10$1],[configSchema1_0_11$1,upgradeFrom1_0_11$1],[configSchema1_0_12$1,upgradeFrom1_0_12$1],[configSchema1_0_13$1,upgradeFrom1_0_13$1],[configSchema1_0_14$1,upgradeFrom1_0_14$1],[configSchema1_0_15$1,upgradeFrom1_0_15$1]];var re$3$1={exports:{}};const SEMVER_SPEC_VERSION$1="2.0.0",MAX_LENGTH$2$1=256,MAX_SAFE_INTEGER$3$1=Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH$1=16;var constants$1$2={SEMVER_SPEC_VERSION:SEMVER_SPEC_VERSION$1,MAX_LENGTH:MAX_LENGTH$2$1,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER$3$1,MAX_SAFE_COMPONENT_LENGTH:MAX_SAFE_COMPONENT_LENGTH$1};const debug$1$1=typeof process=="object"&&define_process_env_default$1&&define_process_env_default$1.NODE_DEBUG&&/\bsemver\b/i.test(define_process_env_default$1.NODE_DEBUG)?(...j)=>console.error("SEMVER",...j):()=>{};var debug_1$1=debug$1$1;(function(j,$){const{MAX_SAFE_COMPONENT_LENGTH:_e}=constants$1$2,et=debug_1$1;$=j.exports={};const tt=$.re=[],rt=$.src=[],nt=$.t={};let it=0;const ot=(At,ut,ft)=>{const dt=it++;et(At,dt,ut),nt[At]=dt,rt[dt]=ut,tt[dt]=new RegExp(ut,ft?"g":void 0)};ot("NUMERICIDENTIFIER","0|[1-9]\\d*"),ot("NUMERICIDENTIFIERLOOSE","[0-9]+"),ot("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),ot("MAINVERSION",`(${rt[nt.NUMERICIDENTIFIER]})\\.(${rt[nt.NUMERICIDENTIFIER]})\\.(${rt[nt.NUMERICIDENTIFIER]})`),ot("MAINVERSIONLOOSE",`(${rt[nt.NUMERICIDENTIFIERLOOSE]})\\.(${rt[nt.NUMERICIDENTIFIERLOOSE]})\\.(${rt[nt.NUMERICIDENTIFIERLOOSE]})`),ot("PRERELEASEIDENTIFIER",`(?:${rt[nt.NUMERICIDENTIFIER]}|${rt[nt.NONNUMERICIDENTIFIER]})`),ot("PRERELEASEIDENTIFIERLOOSE",`(?:${rt[nt.NUMERICIDENTIFIERLOOSE]}|${rt[nt.NONNUMERICIDENTIFIER]})`),ot("PRERELEASE",`(?:-(${rt[nt.PRERELEASEIDENTIFIER]}(?:\\.${rt[nt.PRERELEASEIDENTIFIER]})*))`),ot("PRERELEASELOOSE",`(?:-?(${rt[nt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${rt[nt.PRERELEASEIDENTIFIERLOOSE]})*))`),ot("BUILDIDENTIFIER","[0-9A-Za-z-]+"),ot("BUILD",`(?:\\+(${rt[nt.BUILDIDENTIFIER]}(?:\\.${rt[nt.BUILDIDENTIFIER]})*))`),ot("FULLPLAIN",`v?${rt[nt.MAINVERSION]}${rt[nt.PRERELEASE]}?${rt[nt.BUILD]}?`),ot("FULL",`^${rt[nt.FULLPLAIN]}$`),ot("LOOSEPLAIN",`[v=\\s]*${rt[nt.MAINVERSIONLOOSE]}${rt[nt.PRERELEASELOOSE]}?${rt[nt.BUILD]}?`),ot("LOOSE",`^${rt[nt.LOOSEPLAIN]}$`),ot("GTLT","((?:<|>)?=?)"),ot("XRANGEIDENTIFIERLOOSE",`${rt[nt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),ot("XRANGEIDENTIFIER",`${rt[nt.NUMERICIDENTIFIER]}|x|X|\\*`),ot("XRANGEPLAIN",`[v=\\s]*(${rt[nt.XRANGEIDENTIFIER]})(?:\\.(${rt[nt.XRANGEIDENTIFIER]})(?:\\.(${rt[nt.XRANGEIDENTIFIER]})(?:${rt[nt.PRERELEASE]})?${rt[nt.BUILD]}?)?)?`),ot("XRANGEPLAINLOOSE",`[v=\\s]*(${rt[nt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[nt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[nt.XRANGEIDENTIFIERLOOSE]})(?:${rt[nt.PRERELEASELOOSE]})?${rt[nt.BUILD]}?)?)?`),ot("XRANGE",`^${rt[nt.GTLT]}\\s*${rt[nt.XRANGEPLAIN]}$`),ot("XRANGELOOSE",`^${rt[nt.GTLT]}\\s*${rt[nt.XRANGEPLAINLOOSE]}$`),ot("COERCE",`(^|[^\\d])(\\d{1,${_e}})(?:\\.(\\d{1,${_e}}))?(?:\\.(\\d{1,${_e}}))?(?:$|[^\\d])`),ot("COERCERTL",rt[nt.COERCE],!0),ot("LONETILDE","(?:~>?)"),ot("TILDETRIM",`(\\s*)${rt[nt.LONETILDE]}\\s+`,!0),$.tildeTrimReplace="$1~",ot("TILDE",`^${rt[nt.LONETILDE]}${rt[nt.XRANGEPLAIN]}$`),ot("TILDELOOSE",`^${rt[nt.LONETILDE]}${rt[nt.XRANGEPLAINLOOSE]}$`),ot("LONECARET","(?:\\^)"),ot("CARETTRIM",`(\\s*)${rt[nt.LONECARET]}\\s+`,!0),$.caretTrimReplace="$1^",ot("CARET",`^${rt[nt.LONECARET]}${rt[nt.XRANGEPLAIN]}$`),ot("CARETLOOSE",`^${rt[nt.LONECARET]}${rt[nt.XRANGEPLAINLOOSE]}$`),ot("COMPARATORLOOSE",`^${rt[nt.GTLT]}\\s*(${rt[nt.LOOSEPLAIN]})$|^$`),ot("COMPARATOR",`^${rt[nt.GTLT]}\\s*(${rt[nt.FULLPLAIN]})$|^$`),ot("COMPARATORTRIM",`(\\s*)${rt[nt.GTLT]}\\s*(${rt[nt.LOOSEPLAIN]}|${rt[nt.XRANGEPLAIN]})`,!0),$.comparatorTrimReplace="$1$2$3",ot("HYPHENRANGE",`^\\s*(${rt[nt.XRANGEPLAIN]})\\s+-\\s+(${rt[nt.XRANGEPLAIN]})\\s*$`),ot("HYPHENRANGELOOSE",`^\\s*(${rt[nt.XRANGEPLAINLOOSE]})\\s+-\\s+(${rt[nt.XRANGEPLAINLOOSE]})\\s*$`),ot("STAR","(<|>)?=?\\s*\\*"),ot("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),ot("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(re$3$1,re$3$1.exports);var reExports$1=re$3$1.exports;const opts$1=["includePrerelease","loose","rtl"],parseOptions$2$1=j=>j?typeof j!="object"?{loose:!0}:opts$1.filter($=>j[$]).reduce(($,_e)=>($[_e]=!0,$),{}):{};var parseOptions_1$1=parseOptions$2$1;const numeric$1=/^[0-9]+$/,compareIdentifiers$1$1=(j,$)=>{const _e=numeric$1.test(j),et=numeric$1.test($);return _e&&et&&(j=+j,$=+$),j===$?0:_e&&!et?-1:et&&!_e?1:j<$?-1:1},rcompareIdentifiers$1=(j,$)=>compareIdentifiers$1$1($,j);var identifiers$1$1={compareIdentifiers:compareIdentifiers$1$1,rcompareIdentifiers:rcompareIdentifiers$1};const debug$3=debug_1$1,{MAX_LENGTH:MAX_LENGTH$1$1,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER$2$1}=constants$1$2,{re:re$2$1,t:t$2$1}=reExports$1,parseOptions$1$1=parseOptions_1$1,{compareIdentifiers:compareIdentifiers$2}=identifiers$1$1;let SemVer$d$1=class Jl{constructor($,_e){if(_e=parseOptions$1$1(_e),$ instanceof Jl){if($.loose===!!_e.loose&&$.includePrerelease===!!_e.includePrerelease)return $;$=$.version}else if(typeof $!="string")throw new TypeError(`Invalid Version: ${$}`);if($.length>MAX_LENGTH$1$1)throw new TypeError(`version is longer than ${MAX_LENGTH$1$1} characters`);debug$3("SemVer",$,_e),this.options=_e,this.loose=!!_e.loose,this.includePrerelease=!!_e.includePrerelease;const et=$.trim().match(_e.loose?re$2$1[t$2$1.LOOSE]:re$2$1[t$2$1.FULL]);if(!et)throw new TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+et[1],this.minor=+et[2],this.patch=+et[3],this.major>MAX_SAFE_INTEGER$2$1||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MAX_SAFE_INTEGER$2$1||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MAX_SAFE_INTEGER$2$1||this.patch<0)throw new TypeError("Invalid patch version");et[4]?this.prerelease=et[4].split(".").map(tt=>{if(/^[0-9]+$/.test(tt)){const rt=+tt;if(rt>=0&&rt=0;)typeof this.prerelease[et]=="number"&&(this.prerelease[et]++,et=-2);et===-1&&this.prerelease.push(0)}_e&&(compareIdentifiers$2(this.prerelease[0],_e)===0?isNaN(this.prerelease[1])&&(this.prerelease=[_e,0]):this.prerelease=[_e,0]);break;default:throw new Error(`invalid increment argument: ${$}`)}return this.format(),this.raw=this.version,this}};var semver$1=SemVer$d$1;const{MAX_LENGTH:MAX_LENGTH$3}=constants$1$2,{re:re$1$1,t:t$1$2}=reExports$1,SemVer$c$1=semver$1,parseOptions$3=parseOptions_1$1,parse$6$1=(j,$)=>{if($=parseOptions$3($),j instanceof SemVer$c$1)return j;if(typeof j!="string"||j.length>MAX_LENGTH$3||!($.loose?re$1$1[t$1$2.LOOSE]:re$1$1[t$1$2.FULL]).test(j))return null;try{return new SemVer$c$1(j,$)}catch{return null}};var parse_1$1=parse$6$1;const parse$5$1=parse_1$1,valid$2$1=(j,$)=>{const _e=parse$5$1(j,$);return _e?_e.version:null};var valid_1$1=valid$2$1;const parse$4$1=parse_1$1,clean$1$1=(j,$)=>{const _e=parse$4$1(j.trim().replace(/^[=v]+/,""),$);return _e?_e.version:null};var clean_1$1=clean$1$1;const SemVer$b$1=semver$1,inc$1$1=(j,$,_e,et)=>{typeof _e=="string"&&(et=_e,_e=void 0);try{return new SemVer$b$1(j instanceof SemVer$b$1?j.version:j,_e).inc($,et).version}catch{return null}};var inc_1$1=inc$1$1;const SemVer$a$1=semver$1,compare$b$1=(j,$,_e)=>new SemVer$a$1(j,_e).compare(new SemVer$a$1($,_e));var compare_1$1=compare$b$1;const compare$a$1=compare_1$1,eq$6=(j,$,_e)=>compare$a$1(j,$,_e)===0;var eq_1$1=eq$6;const parse$3$1=parse_1$1,eq$5=eq_1$1,diff$1$1=(j,$)=>{if(eq$5(j,$))return null;{const _e=parse$3$1(j),et=parse$3$1($),tt=_e.prerelease.length||et.prerelease.length,rt=tt?"pre":"",nt=tt?"prerelease":"";for(const it in _e)if((it==="major"||it==="minor"||it==="patch")&&_e[it]!==et[it])return rt+it;return nt}};var diff_1$1=diff$1$1;const SemVer$9$1=semver$1,major$1$1=(j,$)=>new SemVer$9$1(j,$).major;var major_1$1=major$1$1;const SemVer$8$1=semver$1,minor$1$1=(j,$)=>new SemVer$8$1(j,$).minor;var minor_1$1=minor$1$1;const SemVer$7$1=semver$1,patch$1$1=(j,$)=>new SemVer$7$1(j,$).patch;var patch_1$1=patch$1$1;const parse$2$1=parse_1$1,prerelease$1$1=(j,$)=>{const _e=parse$2$1(j,$);return _e&&_e.prerelease.length?_e.prerelease:null};var prerelease_1$1=prerelease$1$1;const compare$9$1=compare_1$1,rcompare$1$1=(j,$,_e)=>compare$9$1($,j,_e);var rcompare_1$1=rcompare$1$1;const compare$8$1=compare_1$1,compareLoose$1$1=(j,$)=>compare$8$1(j,$,!0);var compareLoose_1$1=compareLoose$1$1;const SemVer$6$1=semver$1,compareBuild$3$1=(j,$,_e)=>{const et=new SemVer$6$1(j,_e),tt=new SemVer$6$1($,_e);return et.compare(tt)||et.compareBuild(tt)};var compareBuild_1$1=compareBuild$3$1;const compareBuild$2$1=compareBuild_1$1,sort$1$1=(j,$)=>j.sort((_e,et)=>compareBuild$2$1(_e,et,$));var sort_1$1=sort$1$1;const compareBuild$1$1=compareBuild_1$1,rsort$1$1=(j,$)=>j.sort((_e,et)=>compareBuild$1$1(et,_e,$));var rsort_1$1=rsort$1$1;const compare$7$1=compare_1$1,gt$4$1=(j,$,_e)=>compare$7$1(j,$,_e)>0;var gt_1$1=gt$4$1;const compare$6$1=compare_1$1,lt$3$1=(j,$,_e)=>compare$6$1(j,$,_e)<0;var lt_1$1=lt$3$1;const compare$5$1=compare_1$1,neq$2$1=(j,$,_e)=>compare$5$1(j,$,_e)!==0;var neq_1$1=neq$2$1;const compare$4$1=compare_1$1,gte$3$1=(j,$,_e)=>compare$4$1(j,$,_e)>=0;var gte_1$1=gte$3$1;const compare$3$1=compare_1$1,lte$3$1=(j,$,_e)=>compare$3$1(j,$,_e)<=0;var lte_1$1=lte$3$1;const eq$4$1=eq_1$1,neq$1$1=neq_1$1,gt$3$1=gt_1$1,gte$2$1=gte_1$1,lt$2$1=lt_1$1,lte$2$1=lte_1$1,cmp$1$1=(j,$,_e,et)=>{switch($){case"===":return typeof j=="object"&&(j=j.version),typeof _e=="object"&&(_e=_e.version),j===_e;case"!==":return typeof j=="object"&&(j=j.version),typeof _e=="object"&&(_e=_e.version),j!==_e;case"":case"=":case"==":return eq$4$1(j,_e,et);case"!=":return neq$1$1(j,_e,et);case">":return gt$3$1(j,_e,et);case">=":return gte$2$1(j,_e,et);case"<":return lt$2$1(j,_e,et);case"<=":return lte$2$1(j,_e,et);default:throw new TypeError(`Invalid operator: ${$}`)}};var cmp_1$1=cmp$1$1;const SemVer$5$1=semver$1,parse$1$1=parse_1$1,{re:re$5,t:t$4}=reExports$1,coerce$1$1=(j,$)=>{if(j instanceof SemVer$5$1)return j;if(typeof j=="number"&&(j=String(j)),typeof j!="string")return null;$=$||{};let _e=null;if(!$.rtl)_e=j.match(re$5[t$4.COERCE]);else{let et;for(;(et=re$5[t$4.COERCERTL].exec(j))&&(!_e||_e.index+_e[0].length!==j.length);)(!_e||et.index+et[0].length!==_e.index+_e[0].length)&&(_e=et),re$5[t$4.COERCERTL].lastIndex=et.index+et[1].length+et[2].length;re$5[t$4.COERCERTL].lastIndex=-1}return _e===null?null:parse$1$1(`${_e[2]}.${_e[3]||"0"}.${_e[4]||"0"}`,$)};var coerce_1$1=coerce$1$1,iterator$1,hasRequiredIterator$1;function requireIterator$1(){return hasRequiredIterator$1||(hasRequiredIterator$1=1,iterator$1=function(j){j.prototype[Symbol.iterator]=function*(){for(let $=this.head;$;$=$.next)yield $.value}}),iterator$1}var yallist$1=Yallist$1$1;Yallist$1$1.Node=Node$1$1;Yallist$1$1.create=Yallist$1$1;function Yallist$1$1(j){var $=this;if($ instanceof Yallist$1$1||($=new Yallist$1$1),$.tail=null,$.head=null,$.length=0,j&&typeof j.forEach=="function")j.forEach(function(tt){$.push(tt)});else if(arguments.length>0)for(var _e=0,et=arguments.length;_e1)_e=$;else if(this.head)et=this.head.next,_e=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var tt=0;et!==null;tt++)_e=j(_e,et.value,tt),et=et.next;return _e};Yallist$1$1.prototype.reduceReverse=function(j,$){var _e,et=this.tail;if(arguments.length>1)_e=$;else if(this.tail)et=this.tail.prev,_e=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var tt=this.length-1;et!==null;tt--)_e=j(_e,et.value,tt),et=et.prev;return _e};Yallist$1$1.prototype.toArray=function(){for(var j=new Array(this.length),$=0,_e=this.head;_e!==null;$++)j[$]=_e.value,_e=_e.next;return j};Yallist$1$1.prototype.toArrayReverse=function(){for(var j=new Array(this.length),$=0,_e=this.tail;_e!==null;$++)j[$]=_e.value,_e=_e.prev;return j};Yallist$1$1.prototype.slice=function(j,$){$=$||this.length,$<0&&($+=this.length),j=j||0,j<0&&(j+=this.length);var _e=new Yallist$1$1;if($this.length&&($=this.length);for(var et=0,tt=this.head;tt!==null&&etthis.length&&($=this.length);for(var et=this.length,tt=this.tail;tt!==null&&et>$;et--)tt=tt.prev;for(;tt!==null&&et>j;et--,tt=tt.prev)_e.push(tt.value);return _e};Yallist$1$1.prototype.splice=function(j,$,..._e){j>this.length&&(j=this.length-1),j<0&&(j=this.length+j);for(var et=0,tt=this.head;tt!==null&&et1;class LRUCache{constructor($){if(typeof $=="number"&&($={max:$}),$||($={}),$.max&&(typeof $.max!="number"||$.max<0))throw new TypeError("max must be a non-negative number");this[MAX$1]=$.max||1/0;const _e=$.length||naiveLength$1;if(this[LENGTH_CALCULATOR$1]=typeof _e!="function"?naiveLength$1:_e,this[ALLOW_STALE$1]=$.stale||!1,$.maxAge&&typeof $.maxAge!="number")throw new TypeError("maxAge must be a number");this[MAX_AGE$1]=$.maxAge||0,this[DISPOSE$1]=$.dispose,this[NO_DISPOSE_ON_SET$1]=$.noDisposeOnSet||!1,this[UPDATE_AGE_ON_GET$1]=$.updateAgeOnGet||!1,this.reset()}set max($){if(typeof $!="number"||$<0)throw new TypeError("max must be a non-negative number");this[MAX$1]=$||1/0,trim$2(this)}get max(){return this[MAX$1]}set allowStale($){this[ALLOW_STALE$1]=!!$}get allowStale(){return this[ALLOW_STALE$1]}set maxAge($){if(typeof $!="number")throw new TypeError("maxAge must be a non-negative number");this[MAX_AGE$1]=$,trim$2(this)}get maxAge(){return this[MAX_AGE$1]}set lengthCalculator($){typeof $!="function"&&($=naiveLength$1),$!==this[LENGTH_CALCULATOR$1]&&(this[LENGTH_CALCULATOR$1]=$,this[LENGTH$2]=0,this[LRU_LIST$1].forEach(_e=>{_e.length=this[LENGTH_CALCULATOR$1](_e.value,_e.key),this[LENGTH$2]+=_e.length})),trim$2(this)}get lengthCalculator(){return this[LENGTH_CALCULATOR$1]}get length(){return this[LENGTH$2]}get itemCount(){return this[LRU_LIST$1].length}rforEach($,_e){_e=_e||this;for(let et=this[LRU_LIST$1].tail;et!==null;){const tt=et.prev;forEachStep$1(this,$,et,_e),et=tt}}forEach($,_e){_e=_e||this;for(let et=this[LRU_LIST$1].head;et!==null;){const tt=et.next;forEachStep$1(this,$,et,_e),et=tt}}keys(){return this[LRU_LIST$1].toArray().map($=>$.key)}values(){return this[LRU_LIST$1].toArray().map($=>$.value)}reset(){this[DISPOSE$1]&&this[LRU_LIST$1]&&this[LRU_LIST$1].length&&this[LRU_LIST$1].forEach($=>this[DISPOSE$1]($.key,$.value)),this[CACHE$1]=new Map,this[LRU_LIST$1]=new Yallist$2,this[LENGTH$2]=0}dump(){return this[LRU_LIST$1].map($=>isStale$1(this,$)?!1:{k:$.key,v:$.value,e:$.now+($.maxAge||0)}).toArray().filter($=>$)}dumpLru(){return this[LRU_LIST$1]}set($,_e,et){if(et=et||this[MAX_AGE$1],et&&typeof et!="number")throw new TypeError("maxAge must be a number");const tt=et?Date.now():0,rt=this[LENGTH_CALCULATOR$1](_e,$);if(this[CACHE$1].has($)){if(rt>this[MAX$1])return del$1(this,this[CACHE$1].get($)),!1;const ot=this[CACHE$1].get($).value;return this[DISPOSE$1]&&(this[NO_DISPOSE_ON_SET$1]||this[DISPOSE$1]($,ot.value)),ot.now=tt,ot.maxAge=et,ot.value=_e,this[LENGTH$2]+=rt-ot.length,ot.length=rt,this.get($),trim$2(this),!0}const nt=new Entry$1($,_e,rt,tt,et);return nt.length>this[MAX$1]?(this[DISPOSE$1]&&this[DISPOSE$1]($,_e),!1):(this[LENGTH$2]+=nt.length,this[LRU_LIST$1].unshift(nt),this[CACHE$1].set($,this[LRU_LIST$1].head),trim$2(this),!0)}has($){if(!this[CACHE$1].has($))return!1;const _e=this[CACHE$1].get($).value;return!isStale$1(this,_e)}get($){return get2(this,$,!0)}peek($){return get2(this,$,!1)}pop(){const $=this[LRU_LIST$1].tail;return $?(del$1(this,$),$.value):null}del($){del$1(this,this[CACHE$1].get($))}load($){this.reset();const _e=Date.now();for(let et=$.length-1;et>=0;et--){const tt=$[et],rt=tt.e||0;if(rt===0)this.set(tt.k,tt.v);else{const nt=rt-_e;nt>0&&this.set(tt.k,tt.v,nt)}}}prune(){this[CACHE$1].forEach(($,_e)=>get2(this,_e,!1))}}const get2=(j,$,_e)=>{const et=j[CACHE$1].get($);if(et){const tt=et.value;if(isStale$1(j,tt)){if(del$1(j,et),!j[ALLOW_STALE$1])return}else _e&&(j[UPDATE_AGE_ON_GET$1]&&(et.value.now=Date.now()),j[LRU_LIST$1].unshiftNode(et));return tt.value}},isStale$1=(j,$)=>{if(!$||!$.maxAge&&!j[MAX_AGE$1])return!1;const _e=Date.now()-$.now;return $.maxAge?_e>$.maxAge:j[MAX_AGE$1]&&_e>j[MAX_AGE$1]},trim$2=j=>{if(j[LENGTH$2]>j[MAX$1])for(let $=j[LRU_LIST$1].tail;j[LENGTH$2]>j[MAX$1]&&$!==null;){const _e=$.prev;del$1(j,$),$=_e}},del$1=(j,$)=>{if($){const _e=$.value;j[DISPOSE$1]&&j[DISPOSE$1](_e.key,_e.value),j[LENGTH$2]-=_e.length,j[CACHE$1].delete(_e.key),j[LRU_LIST$1].removeNode($)}};let Entry$1=class{constructor($,_e,et,tt,rt){this.key=$,this.value=_e,this.length=et,this.now=tt,this.maxAge=rt||0}};const forEachStep$1=(j,$,_e,et)=>{let tt=_e.value;isStale$1(j,tt)&&(del$1(j,_e),j[ALLOW_STALE$1]||(tt=void 0)),tt&&$.call(et,tt.value,tt.key,j)};var lruCache$1=LRUCache,range$7,hasRequiredRange$1;function requireRange$1(){if(hasRequiredRange$1)return range$7;hasRequiredRange$1=1;class j{constructor(Kt,Wt){if(Wt=et(Wt),Kt instanceof j)return Kt.loose===!!Wt.loose&&Kt.includePrerelease===!!Wt.includePrerelease?Kt:new j(Kt.raw,Wt);if(Kt instanceof tt)return this.raw=Kt.value,this.set=[[Kt]],this.format(),this;if(this.options=Wt,this.loose=!!Wt.loose,this.includePrerelease=!!Wt.includePrerelease,this.raw=Kt,this.set=Kt.split("||").map(Vt=>this.parseRange(Vt.trim())).filter(Vt=>Vt.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${Kt}`);if(this.set.length>1){const Vt=this.set[0];if(this.set=this.set.filter(ur=>!dt(ur[0])),this.set.length===0)this.set=[Vt];else if(this.set.length>1){for(const ur of this.set)if(ur.length===1&&Et(ur[0])){this.set=[ur];break}}}this.format()}format(){return this.range=this.set.map(Kt=>Kt.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(Kt){Kt=Kt.trim();const Vt=`parseRange:${Object.keys(this.options).join(",")}:${Kt}`,ur=_e.get(Vt);if(ur)return ur;const Ar=this.options.loose,hr=Ar?it[ot.HYPHENRANGELOOSE]:it[ot.HYPHENRANGE];Kt=Kt.replace(hr,jt(this.options.includePrerelease)),rt("hyphen replace",Kt),Kt=Kt.replace(it[ot.COMPARATORTRIM],At),rt("comparator trim",Kt),Kt=Kt.replace(it[ot.TILDETRIM],ut),Kt=Kt.replace(it[ot.CARETTRIM],ft),Kt=Kt.split(/\s+/).join(" ");let sr=Kt.split(" ").map(Zt=>St(Zt,this.options)).join(" ").split(/\s+/).map(Zt=>Jt(Zt,this.options));Ar&&(sr=sr.filter(Zt=>(rt("loose invalid filter",Zt,this.options),!!Zt.match(it[ot.COMPARATORLOOSE])))),rt("range list",sr);const ar=new Map,Yt=sr.map(Zt=>new tt(Zt,this.options));for(const Zt of Yt){if(dt(Zt))return[Zt];ar.set(Zt.value,Zt)}ar.size>1&&ar.has("")&&ar.delete("");const pr=[...ar.values()];return _e.set(Vt,pr),pr}intersects(Kt,Wt){if(!(Kt instanceof j))throw new TypeError("a Range is required");return this.set.some(Vt=>Bt(Vt,Wt)&&Kt.set.some(ur=>Bt(ur,Wt)&&Vt.every(Ar=>ur.every(hr=>Ar.intersects(hr,Wt)))))}test(Kt){if(!Kt)return!1;if(typeof Kt=="string")try{Kt=new nt(Kt,this.options)}catch{return!1}for(let Wt=0;WtGt.value==="<0.0.0-0",Et=Gt=>Gt.value==="",Bt=(Gt,Kt)=>{let Wt=!0;const Vt=Gt.slice();let ur=Vt.pop();for(;Wt&&Vt.length;)Wt=Vt.every(Ar=>ur.intersects(Ar,Kt)),ur=Vt.pop();return Wt},St=(Gt,Kt)=>(rt("comp",Gt,Kt),Gt=wt(Gt,Kt),rt("caret",Gt),Gt=$t(Gt,Kt),rt("tildes",Gt),Gt=Nt(Gt,Kt),rt("xrange",Gt),Gt=kt(Gt,Kt),rt("stars",Gt),Gt),Dt=Gt=>!Gt||Gt.toLowerCase()==="x"||Gt==="*",$t=(Gt,Kt)=>Gt.trim().split(/\s+/).map(Wt=>Rt(Wt,Kt)).join(" "),Rt=(Gt,Kt)=>{const Wt=Kt.loose?it[ot.TILDELOOSE]:it[ot.TILDE];return Gt.replace(Wt,(Vt,ur,Ar,hr,sr)=>{rt("tilde",Gt,Vt,ur,Ar,hr,sr);let ar;return Dt(ur)?ar="":Dt(Ar)?ar=`>=${ur}.0.0 <${+ur+1}.0.0-0`:Dt(hr)?ar=`>=${ur}.${Ar}.0 <${ur}.${+Ar+1}.0-0`:sr?(rt("replaceTilde pr",sr),ar=`>=${ur}.${Ar}.${hr}-${sr} <${ur}.${+Ar+1}.0-0`):ar=`>=${ur}.${Ar}.${hr} <${ur}.${+Ar+1}.0-0`,rt("tilde return",ar),ar})},wt=(Gt,Kt)=>Gt.trim().split(/\s+/).map(Wt=>xt(Wt,Kt)).join(" "),xt=(Gt,Kt)=>{rt("caret",Gt,Kt);const Wt=Kt.loose?it[ot.CARETLOOSE]:it[ot.CARET],Vt=Kt.includePrerelease?"-0":"";return Gt.replace(Wt,(ur,Ar,hr,sr,ar)=>{rt("caret",Gt,ur,Ar,hr,sr,ar);let Yt;return Dt(Ar)?Yt="":Dt(hr)?Yt=`>=${Ar}.0.0${Vt} <${+Ar+1}.0.0-0`:Dt(sr)?Ar==="0"?Yt=`>=${Ar}.${hr}.0${Vt} <${Ar}.${+hr+1}.0-0`:Yt=`>=${Ar}.${hr}.0${Vt} <${+Ar+1}.0.0-0`:ar?(rt("replaceCaret pr",ar),Ar==="0"?hr==="0"?Yt=`>=${Ar}.${hr}.${sr}-${ar} <${Ar}.${hr}.${+sr+1}-0`:Yt=`>=${Ar}.${hr}.${sr}-${ar} <${Ar}.${+hr+1}.0-0`:Yt=`>=${Ar}.${hr}.${sr}-${ar} <${+Ar+1}.0.0-0`):(rt("no pr"),Ar==="0"?hr==="0"?Yt=`>=${Ar}.${hr}.${sr}${Vt} <${Ar}.${hr}.${+sr+1}-0`:Yt=`>=${Ar}.${hr}.${sr}${Vt} <${Ar}.${+hr+1}.0-0`:Yt=`>=${Ar}.${hr}.${sr} <${+Ar+1}.0.0-0`),rt("caret return",Yt),Yt})},Nt=(Gt,Kt)=>(rt("replaceXRanges",Gt,Kt),Gt.split(/\s+/).map(Wt=>Ot(Wt,Kt)).join(" ")),Ot=(Gt,Kt)=>{Gt=Gt.trim();const Wt=Kt.loose?it[ot.XRANGELOOSE]:it[ot.XRANGE];return Gt.replace(Wt,(Vt,ur,Ar,hr,sr,ar)=>{rt("xRange",Gt,Vt,ur,Ar,hr,sr,ar);const Yt=Dt(Ar),pr=Yt||Dt(hr),Zt=pr||Dt(sr),mr=Zt;return ur==="="&&mr&&(ur=""),ar=Kt.includePrerelease?"-0":"",Yt?ur===">"||ur==="<"?Vt="<0.0.0-0":Vt="*":ur&&mr?(pr&&(hr=0),sr=0,ur===">"?(ur=">=",pr?(Ar=+Ar+1,hr=0,sr=0):(hr=+hr+1,sr=0)):ur==="<="&&(ur="<",pr?Ar=+Ar+1:hr=+hr+1),ur==="<"&&(ar="-0"),Vt=`${ur+Ar}.${hr}.${sr}${ar}`):pr?Vt=`>=${Ar}.0.0${ar} <${+Ar+1}.0.0-0`:Zt&&(Vt=`>=${Ar}.${hr}.0${ar} <${Ar}.${+hr+1}.0-0`),rt("xRange return",Vt),Vt})},kt=(Gt,Kt)=>(rt("replaceStars",Gt,Kt),Gt.trim().replace(it[ot.STAR],"")),Jt=(Gt,Kt)=>(rt("replaceGTE0",Gt,Kt),Gt.trim().replace(it[Kt.includePrerelease?ot.GTE0PRE:ot.GTE0],"")),jt=Gt=>(Kt,Wt,Vt,ur,Ar,hr,sr,ar,Yt,pr,Zt,mr,vr)=>(Dt(Vt)?Wt="":Dt(ur)?Wt=`>=${Vt}.0.0${Gt?"-0":""}`:Dt(Ar)?Wt=`>=${Vt}.${ur}.0${Gt?"-0":""}`:hr?Wt=`>=${Wt}`:Wt=`>=${Wt}${Gt?"-0":""}`,Dt(Yt)?ar="":Dt(pr)?ar=`<${+Yt+1}.0.0-0`:Dt(Zt)?ar=`<${Yt}.${+pr+1}.0-0`:mr?ar=`<=${Yt}.${pr}.${Zt}-${mr}`:Gt?ar=`<${Yt}.${pr}.${+Zt+1}-0`:ar=`<=${ar}`,`${Wt} ${ar}`.trim()),Ht=(Gt,Kt,Wt)=>{for(let Vt=0;Vt0){const ur=Gt[Vt].semver;if(ur.major===Kt.major&&ur.minor===Kt.minor&&ur.patch===Kt.patch)return!0}return!1}return!0};return range$7}var comparator$1,hasRequiredComparator$1;function requireComparator$1(){if(hasRequiredComparator$1)return comparator$1;hasRequiredComparator$1=1;const j=Symbol("SemVer ANY");class ${static get ANY(){return j}constructor(ut,ft){if(ft=_e(ft),ut instanceof $){if(ut.loose===!!ft.loose)return ut;ut=ut.value}nt("comparator",ut,ft),this.options=ft,this.loose=!!ft.loose,this.parse(ut),this.semver===j?this.value="":this.value=this.operator+this.semver.version,nt("comp",this)}parse(ut){const ft=this.options.loose?et[tt.COMPARATORLOOSE]:et[tt.COMPARATOR],dt=ut.match(ft);if(!dt)throw new TypeError(`Invalid comparator: ${ut}`);this.operator=dt[1]!==void 0?dt[1]:"",this.operator==="="&&(this.operator=""),dt[2]?this.semver=new it(dt[2],this.options.loose):this.semver=j}toString(){return this.value}test(ut){if(nt("Comparator.test",ut,this.options.loose),this.semver===j||ut===j)return!0;if(typeof ut=="string")try{ut=new it(ut,this.options)}catch{return!1}return rt(ut,this.operator,this.semver,this.options)}intersects(ut,ft){if(!(ut instanceof $))throw new TypeError("a Comparator is required");if((!ft||typeof ft!="object")&&(ft={loose:!!ft,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new ot(ut.value,ft).test(this.value);if(ut.operator==="")return ut.value===""?!0:new ot(this.value,ft).test(ut.semver);const dt=(this.operator===">="||this.operator===">")&&(ut.operator===">="||ut.operator===">"),Et=(this.operator==="<="||this.operator==="<")&&(ut.operator==="<="||ut.operator==="<"),Bt=this.semver.version===ut.semver.version,St=(this.operator===">="||this.operator==="<=")&&(ut.operator===">="||ut.operator==="<="),Dt=rt(this.semver,"<",ut.semver,ft)&&(this.operator===">="||this.operator===">")&&(ut.operator==="<="||ut.operator==="<"),$t=rt(this.semver,">",ut.semver,ft)&&(this.operator==="<="||this.operator==="<")&&(ut.operator===">="||ut.operator===">");return dt||Et||Bt&&St||Dt||$t}}comparator$1=$;const _e=parseOptions_1$1,{re:et,t:tt}=reExports$1,rt=cmp_1$1,nt=debug_1$1,it=semver$1,ot=requireRange$1();return comparator$1}const Range$9$1=requireRange$1(),satisfies$4$1=(j,$,_e)=>{try{$=new Range$9$1($,_e)}catch{return!1}return $.test(j)};var satisfies_1$1=satisfies$4$1;const Range$8$1=requireRange$1(),toComparators$1$1=(j,$)=>new Range$8$1(j,$).set.map(_e=>_e.map(et=>et.value).join(" ").trim().split(" "));var toComparators_1$1=toComparators$1$1;const SemVer$4$1=semver$1,Range$7$1=requireRange$1(),maxSatisfying$1$1=(j,$,_e)=>{let et=null,tt=null,rt=null;try{rt=new Range$7$1($,_e)}catch{return null}return j.forEach(nt=>{rt.test(nt)&&(!et||tt.compare(nt)===-1)&&(et=nt,tt=new SemVer$4$1(et,_e))}),et};var maxSatisfying_1$1=maxSatisfying$1$1;const SemVer$3$1=semver$1,Range$6$1=requireRange$1(),minSatisfying$1$1=(j,$,_e)=>{let et=null,tt=null,rt=null;try{rt=new Range$6$1($,_e)}catch{return null}return j.forEach(nt=>{rt.test(nt)&&(!et||tt.compare(nt)===1)&&(et=nt,tt=new SemVer$3$1(et,_e))}),et};var minSatisfying_1$1=minSatisfying$1$1;const SemVer$2$1=semver$1,Range$5$1=requireRange$1(),gt$2$1=gt_1$1,minVersion$1$1=(j,$)=>{j=new Range$5$1(j,$);let _e=new SemVer$2$1("0.0.0");if(j.test(_e)||(_e=new SemVer$2$1("0.0.0-0"),j.test(_e)))return _e;_e=null;for(let et=0;et{const it=new SemVer$2$1(nt.semver.version);switch(nt.operator){case">":it.prerelease.length===0?it.patch++:it.prerelease.push(0),it.raw=it.format();case"":case">=":(!rt||gt$2$1(it,rt))&&(rt=it);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${nt.operator}`)}}),rt&&(!_e||gt$2$1(_e,rt))&&(_e=rt)}return _e&&j.test(_e)?_e:null};var minVersion_1$1=minVersion$1$1;const Range$4$1=requireRange$1(),validRange$1$1=(j,$)=>{try{return new Range$4$1(j,$).range||"*"}catch{return null}};var valid$1$1=validRange$1$1;const SemVer$1$1=semver$1,Comparator$2$1=requireComparator$1(),{ANY:ANY$1$1}=Comparator$2$1,Range$3$1=requireRange$1(),satisfies$3$1=satisfies_1$1,gt$1$1=gt_1$1,lt$1$1=lt_1$1,lte$1$1=lte_1$1,gte$1$1=gte_1$1,outside$3$1=(j,$,_e,et)=>{j=new SemVer$1$1(j,et),$=new Range$3$1($,et);let tt,rt,nt,it,ot;switch(_e){case">":tt=gt$1$1,rt=lte$1$1,nt=lt$1$1,it=">",ot=">=";break;case"<":tt=lt$1$1,rt=gte$1$1,nt=gt$1$1,it="<",ot="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(satisfies$3$1(j,$,et))return!1;for(let At=0;At<$.set.length;++At){const ut=$.set[At];let ft=null,dt=null;if(ut.forEach(Et=>{Et.semver===ANY$1$1&&(Et=new Comparator$2$1(">=0.0.0")),ft=ft||Et,dt=dt||Et,tt(Et.semver,ft.semver,et)?ft=Et:nt(Et.semver,dt.semver,et)&&(dt=Et)}),ft.operator===it||ft.operator===ot||(!dt.operator||dt.operator===it)&&rt(j,dt.semver))return!1;if(dt.operator===ot&&nt(j,dt.semver))return!1}return!0};var outside_1$1=outside$3$1;const outside$2$1=outside_1$1,gtr$1$1=(j,$,_e)=>outside$2$1(j,$,">",_e);var gtr_1$1=gtr$1$1;const outside$1$1=outside_1$1,ltr$1$1=(j,$,_e)=>outside$1$1(j,$,"<",_e);var ltr_1$1=ltr$1$1;const Range$2$1=requireRange$1(),intersects$1$1=(j,$,_e)=>(j=new Range$2$1(j,_e),$=new Range$2$1($,_e),j.intersects($));var intersects_1$1=intersects$1$1;const satisfies$2$1=satisfies_1$1,compare$2$1=compare_1$1;var simplify$1=(j,$,_e)=>{const et=[];let tt=null,rt=null;const nt=j.sort((ut,ft)=>compare$2$1(ut,ft,_e));for(const ut of nt)satisfies$2$1(ut,$,_e)?(rt=ut,tt||(tt=ut)):(rt&&et.push([tt,rt]),rt=null,tt=null);tt&&et.push([tt,null]);const it=[];for(const[ut,ft]of et)ut===ft?it.push(ut):!ft&&ut===nt[0]?it.push("*"):ft?ut===nt[0]?it.push(`<=${ft}`):it.push(`${ut} - ${ft}`):it.push(`>=${ut}`);const ot=it.join(" || "),At=typeof $.raw=="string"?$.raw:String($);return ot.length{if(j===$)return!0;j=new Range$1$1(j,_e),$=new Range$1$1($,_e);let et=!1;e:for(const tt of j.set){for(const rt of $.set){const nt=simpleSubset$1(tt,rt,_e);if(et=et||nt!==null,nt)continue e}if(et)return!1}return!0},simpleSubset$1=(j,$,_e)=>{if(j===$)return!0;if(j.length===1&&j[0].semver===ANY$2){if($.length===1&&$[0].semver===ANY$2)return!0;_e.includePrerelease?j=[new Comparator$1$1(">=0.0.0-0")]:j=[new Comparator$1$1(">=0.0.0")]}if($.length===1&&$[0].semver===ANY$2){if(_e.includePrerelease)return!0;$=[new Comparator$1$1(">=0.0.0")]}const et=new Set;let tt,rt;for(const Et of j)Et.operator===">"||Et.operator===">="?tt=higherGT$1(tt,Et,_e):Et.operator==="<"||Et.operator==="<="?rt=lowerLT$1(rt,Et,_e):et.add(Et.semver);if(et.size>1)return null;let nt;if(tt&&rt){if(nt=compare$1$1(tt.semver,rt.semver,_e),nt>0)return null;if(nt===0&&(tt.operator!==">="||rt.operator!=="<="))return null}for(const Et of et){if(tt&&!satisfies$1$1(Et,String(tt),_e)||rt&&!satisfies$1$1(Et,String(rt),_e))return null;for(const Bt of $)if(!satisfies$1$1(Et,String(Bt),_e))return!1;return!0}let it,ot,At,ut,ft=rt&&!_e.includePrerelease&&rt.semver.prerelease.length?rt.semver:!1,dt=tt&&!_e.includePrerelease&&tt.semver.prerelease.length?tt.semver:!1;ft&&ft.prerelease.length===1&&rt.operator==="<"&&ft.prerelease[0]===0&&(ft=!1);for(const Et of $){if(ut=ut||Et.operator===">"||Et.operator===">=",At=At||Et.operator==="<"||Et.operator==="<=",tt){if(dt&&Et.semver.prerelease&&Et.semver.prerelease.length&&Et.semver.major===dt.major&&Et.semver.minor===dt.minor&&Et.semver.patch===dt.patch&&(dt=!1),Et.operator===">"||Et.operator===">="){if(it=higherGT$1(tt,Et,_e),it===Et&&it!==tt)return!1}else if(tt.operator===">="&&!satisfies$1$1(tt.semver,String(Et),_e))return!1}if(rt){if(ft&&Et.semver.prerelease&&Et.semver.prerelease.length&&Et.semver.major===ft.major&&Et.semver.minor===ft.minor&&Et.semver.patch===ft.patch&&(ft=!1),Et.operator==="<"||Et.operator==="<="){if(ot=lowerLT$1(rt,Et,_e),ot===Et&&ot!==rt)return!1}else if(rt.operator==="<="&&!satisfies$1$1(rt.semver,String(Et),_e))return!1}if(!Et.operator&&(rt||tt)&&nt!==0)return!1}return!(tt&&At&&!rt&&nt!==0||rt&&ut&&!tt&&nt!==0||dt||ft)},higherGT$1=(j,$,_e)=>{if(!j)return $;const et=compare$1$1(j.semver,$.semver,_e);return et>0?j:et<0||$.operator===">"&&j.operator===">="?$:j},lowerLT$1=(j,$,_e)=>{if(!j)return $;const et=compare$1$1(j.semver,$.semver,_e);return et<0?j:et>0||$.operator==="<"&&j.operator==="<="?$:j};var subset_1$1=subset$1$1;const internalRe$1=reExports$1,constants$5=constants$1$2,SemVer2$1=semver$1,identifiers$2=identifiers$1$1,parse$c=parse_1$1,valid$3=valid_1$1,clean$2=clean_1$1,inc$2=inc_1$1,diff$2=diff_1$1,major$2=major_1$1,minor$2=minor_1$1,patch$2=patch_1$1,prerelease$2=prerelease_1$1,compare$c=compare_1$1,rcompare$2=rcompare_1$1,compareLoose$2=compareLoose_1$1,compareBuild$4=compareBuild_1$1,sort$2=sort_1$1,rsort$2=rsort_1$1,gt$5=gt_1$1,lt$4=lt_1$1,eq$3$1=eq_1$1,neq$3=neq_1$1,gte$4=gte_1$1,lte$4=lte_1$1,cmp$2=cmp_1$1,coerce$3=coerce_1$1,Comparator$3=requireComparator$1(),Range$a=requireRange$1(),satisfies$5=satisfies_1$1,toComparators$2=toComparators_1$1,maxSatisfying$2=maxSatisfying_1$1,minSatisfying$2=minSatisfying_1$1,minVersion$2=minVersion_1$1,validRange$2=valid$1$1,outside$4=outside_1$1,gtr$2=gtr_1$1,ltr$2=ltr_1$1,intersects$7=intersects_1$1,simplifyRange$1=simplify$1,subset$2=subset_1$1;internalRe$1.re,internalRe$1.src,internalRe$1.t,constants$5.SEMVER_SPEC_VERSION,identifiers$2.compareIdentifiers,identifiers$2.rcompareIdentifiers;const ViewType$1$1={DESCRIPTION:"description",STATUS:"status",SCATTERPLOT:"scatterplot",SPATIAL:"spatial",SPATIAL_BETA:"spatialBeta",HEATMAP:"heatmap",LAYER_CONTROLLER:"layerController",LAYER_CONTROLLER_BETA:"layerControllerBeta",GENOMIC_PROFILES:"genomicProfiles",GATING:"gating",FEATURE_LIST:"featureList",OBS_SETS:"obsSets",OBS_SET_SIZES:"obsSetSizes",OBS_SET_FEATURE_VALUE_DISTRIBUTION:"obsSetFeatureValueDistribution",FEATURE_VALUE_HISTOGRAM:"featureValueHistogram"},DataType$1$1={OBS_LABELS:"obsLabels",OBS_EMBEDDING:"obsEmbedding",OBS_FEATURE_MATRIX:"obsFeatureMatrix",OBS_SETS:"obsSets",FEATURE_LABELS:"featureLabels",IMAGE:"image",OBS_SEGMENTATIONS:"obsSegmentations",NEIGHBORHOODS:"neighborhoods",GENOMIC_PROFILES:"genomic-profiles",OBS_SPOTS:"obsSpots",OBS_POINTS:"obsPoints",OBS_LOCATIONS:"obsLocations"},FileType$1$1={ANNDATA_ZARR:"anndata.zarr",SPATIALDATA_ZARR:"spatialdata.zarr",OBS_EMBEDDING_CSV:"obsEmbedding.csv",OBS_SPOTS_CSV:"obsSpots.csv",OBS_POINTS_CSV:"obsPoints.csv",OBS_LOCATIONS_CSV:"obsLocations.csv",OBS_LABELS_CSV:"obsLabels.csv",FEATURE_LABELS_CSV:"featureLabels.csv",OBS_FEATURE_MATRIX_CSV:"obsFeatureMatrix.csv",OBS_SEGMENTATIONS_JSON:"obsSegmentations.json",OBS_SETS_CSV:"obsSets.csv",OBS_SETS_JSON:"obsSets.json",IMAGE_OME_ZARR:"image.ome-zarr",OBS_FEATURE_MATRIX_ANNDATA_ZARR:"obsFeatureMatrix.anndata.zarr",OBS_SETS_ANNDATA_ZARR:"obsSets.anndata.zarr",OBS_EMBEDDING_ANNDATA_ZARR:"obsEmbedding.anndata.zarr",OBS_SPOTS_ANNDATA_ZARR:"obsSpots.anndata.zarr",OBS_POINTS_ANNDATA_ZARR:"obsPoints.anndata.zarr",OBS_LOCATIONS_ANNDATA_ZARR:"obsLocations.anndata.zarr",OBS_SEGMENTATIONS_ANNDATA_ZARR:"obsSegmentations.anndata.zarr",OBS_LABELS_ANNDATA_ZARR:"obsLabels.anndata.zarr",FEATURE_LABELS_ANNDATA_ZARR:"featureLabels.anndata.zarr",IMAGE_SPATIALDATA_ZARR:"image.spatialdata.zarr",LABELS_SPATIALDATA_ZARR:"labels.spatialdata.zarr",SHAPES_SPATIALDATA_ZARR:"shapes.spatialdata.zarr",OBS_FEATURE_MATRIX_SPATIALDATA_ZARR:"obsFeatureMatrix.spatialdata.zarr",OBS_SETS_SPATIALDATA_ZARR:"obsSets.spatialdata.zarr",OBS_SPOTS_SPATIALDATA_ZARR:"obsSpots.spatialdata.zarr",OBS_FEATURE_MATRIX_MUDATA_ZARR:"obsFeatureMatrix.mudata.zarr",OBS_SETS_MUDATA_ZARR:"obsSets.mudata.zarr",OBS_EMBEDDING_MUDATA_ZARR:"obsEmbedding.mudata.zarr",OBS_SPOTS_MUDATA_ZARR:"obsSpots.mudata.zarr",OBS_POINTS_MUDATA_ZARR:"obsPoints.mudata.zarr",OBS_LOCATIONS_MUDATA_ZARR:"obsLocations.mudata.zarr",OBS_SEGMENTATIONS_MUDATA_ZARR:"obsSegmentations.mudata.zarr",OBS_LABELS_MUDATA_ZARR:"obsLabels.mudata.zarr",FEATURE_LABELS_MUDATA_ZARR:"featureLabels.mudata.zarr",GENOMIC_PROFILES_ZARR:"genomic-profiles.zarr",NEIGHBORHOODS_JSON:"neighborhoods.json",IMAGE_OME_TIFF:"image.ome-tiff",OBS_SEGMENTATIONS_OME_TIFF:"obsSegmentations.ome-tiff",OBS_EMBEDDING_CELLS_JSON:"obsEmbedding.cells.json",OBS_SEGMENTATIONS_CELLS_JSON:"obsSegmentations.cells.json",OBS_LOCATIONS_CELLS_JSON:"obsLocations.cells.json",OBS_LABELS_CELLS_JSON:"obsLabels.cells.json",OBS_SETS_CELL_SETS_JSON:"obsSets.cell-sets.json",OBS_FEATURE_MATRIX_GENES_JSON:"obsFeatureMatrix.genes.json",OBS_FEATURE_MATRIX_CLUSTERS_JSON:"obsFeatureMatrix.clusters.json",OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR:"obsFeatureMatrix.expression-matrix.zarr",IMAGE_RASTER_JSON:"image.raster.json",OBS_SEGMENTATIONS_RASTER_JSON:"obsSegmentations.raster.json",OBS_LOCATIONS_MOLECULES_JSON:"obsLocations.molecules.json",OBS_LABELS_MOLECULES_JSON:"obsLabels.molecules.json",CELLS_JSON:"cells.json",CELL_SETS_JSON:"cell-sets.json",ANNDATA_CELL_SETS_ZARR:"anndata-cell-sets.zarr",ANNDATA_CELLS_ZARR:"anndata-cells.zarr",EXPRESSION_MATRIX_ZARR:"expression-matrix.zarr",MOLECULES_JSON:"molecules.json",RASTER_JSON:"raster.json",RASTER_OME_ZARR:"raster.ome-zarr",CLUSTERS_JSON:"clusters.json",GENES_JSON:"genes.json",ANNDATA_EXPRESSION_MATRIX_ZARR:"anndata-expression-matrix.zarr"},CoordinationType$1$1={META_COORDINATION_SCOPES:"metaCoordinationScopes",META_COORDINATION_SCOPES_BY:"metaCoordinationScopesBy",DATASET:"dataset",OBS_TYPE:"obsType",FEATURE_TYPE:"featureType",FEATURE_VALUE_TYPE:"featureValueType",OBS_LABELS_TYPE:"obsLabelsType",EMBEDDING_TYPE:"embeddingType",EMBEDDING_ZOOM:"embeddingZoom",EMBEDDING_ROTATION:"embeddingRotation",EMBEDDING_TARGET_X:"embeddingTargetX",EMBEDDING_TARGET_Y:"embeddingTargetY",EMBEDDING_TARGET_Z:"embeddingTargetZ",EMBEDDING_OBS_SET_POLYGONS_VISIBLE:"embeddingObsSetPolygonsVisible",EMBEDDING_OBS_SET_LABELS_VISIBLE:"embeddingObsSetLabelsVisible",EMBEDDING_OBS_SET_LABEL_SIZE:"embeddingObsSetLabelSize",EMBEDDING_OBS_RADIUS:"embeddingObsRadius",EMBEDDING_OBS_RADIUS_MODE:"embeddingObsRadiusMode",EMBEDDING_OBS_OPACITY:"embeddingObsOpacity",EMBEDDING_OBS_OPACITY_MODE:"embeddingObsOpacityMode",SPATIAL_ZOOM:"spatialZoom",SPATIAL_ROTATION:"spatialRotation",SPATIAL_TARGET_X:"spatialTargetX",SPATIAL_TARGET_Y:"spatialTargetY",SPATIAL_TARGET_Z:"spatialTargetZ",SPATIAL_TARGET_T:"spatialTargetT",SPATIAL_ROTATION_X:"spatialRotationX",SPATIAL_ROTATION_Y:"spatialRotationY",SPATIAL_ROTATION_Z:"spatialRotationZ",SPATIAL_ROTATION_ORBIT:"spatialRotationOrbit",SPATIAL_ORBIT_AXIS:"spatialOrbitAxis",SPATIAL_AXIS_FIXED:"spatialAxisFixed",HEATMAP_ZOOM_X:"heatmapZoomX",HEATMAP_ZOOM_Y:"heatmapZoomY",HEATMAP_TARGET_X:"heatmapTargetX",HEATMAP_TARGET_Y:"heatmapTargetY",OBS_FILTER:"obsFilter",OBS_HIGHLIGHT:"obsHighlight",OBS_SET_SELECTION:"obsSetSelection",OBS_SET_HIGHLIGHT:"obsSetHighlight",OBS_SET_EXPANSION:"obsSetExpansion",OBS_SET_COLOR:"obsSetColor",FEATURE_FILTER:"featureFilter",FEATURE_HIGHLIGHT:"featureHighlight",FEATURE_SELECTION:"featureSelection",FEATURE_VALUE_COLORMAP:"featureValueColormap",FEATURE_VALUE_TRANSFORM:"featureValueTransform",FEATURE_VALUE_COLORMAP_RANGE:"featureValueColormapRange",OBS_COLOR_ENCODING:"obsColorEncoding",SPATIAL_IMAGE_LAYER:"spatialImageLayer",SPATIAL_SEGMENTATION_LAYER:"spatialSegmentationLayer",SPATIAL_POINT_LAYER:"spatialPointLayer",SPATIAL_NEIGHBORHOOD_LAYER:"spatialNeighborhoodLayer",GENOMIC_ZOOM_X:"genomicZoomX",GENOMIC_ZOOM_Y:"genomicZoomY",GENOMIC_TARGET_X:"genomicTargetX",GENOMIC_TARGET_Y:"genomicTargetY",ADDITIONAL_OBS_SETS:"additionalObsSets",MOLECULE_HIGHLIGHT:"moleculeHighlight",GATING_FEATURE_SELECTION_X:"gatingFeatureSelectionX",GATING_FEATURE_SELECTION_Y:"gatingFeatureSelectionY",FEATURE_VALUE_TRANSFORM_COEFFICIENT:"featureValueTransformCoefficient",TOOLTIPS_VISIBLE:"tooltipsVisible",FILE_UID:"fileUid",IMAGE_LAYER:"imageLayer",IMAGE_CHANNEL:"imageChannel",SEGMENTATION_LAYER:"segmentationLayer",SEGMENTATION_CHANNEL:"segmentationChannel",SPATIAL_TARGET_C:"spatialTargetC",SPATIAL_LAYER_VISIBLE:"spatialLayerVisible",SPATIAL_LAYER_OPACITY:"spatialLayerOpacity",SPATIAL_LAYER_COLORMAP:"spatialLayerColormap",SPATIAL_LAYER_TRANSPARENT_COLOR:"spatialLayerTransparentColor",SPATIAL_LAYER_MODEL_MATRIX:"spatialLayerModelMatrix",SPATIAL_SEGMENTATION_FILLED:"spatialSegmentationFilled",SPATIAL_SEGMENTATION_STROKE_WIDTH:"spatialSegmentationStrokeWidth",SPATIAL_CHANNEL_COLOR:"spatialChannelColor",SPATIAL_CHANNEL_VISIBLE:"spatialChannelVisible",SPATIAL_CHANNEL_OPACITY:"spatialChannelOpacity",SPATIAL_CHANNEL_WINDOW:"spatialChannelWindow",PHOTOMETRIC_INTERPRETATION:"photometricInterpretation",SPATIAL_RENDERING_MODE:"spatialRenderingMode",VOLUMETRIC_RENDERING_ALGORITHM:"volumetricRenderingAlgorithm",SPATIAL_TARGET_RESOLUTION:"spatialTargetResolution",SPATIAL_SLICE_X:"spatialSliceX",SPATIAL_SLICE_Y:"spatialSliceY",SPATIAL_SLICE_Z:"spatialSliceZ",SPOT_LAYER:"spotLayer",POINT_LAYER:"pointLayer",SPATIAL_SPOT_RADIUS:"spatialSpotRadius",SPATIAL_SPOT_FILLED:"spatialSpotFilled",SPATIAL_SPOT_STROKE_WIDTH:"spatialSpotStrokeWidth",SPATIAL_LAYER_COLOR:"spatialLayerColor",PIXEL_HIGHLIGHT:"pixelHighlight",TOOLTIP_CROSSHAIRS_VISIBLE:"tooltipCrosshairsVisible",LEGEND_VISIBLE:"legendVisible",SPATIAL_CHANNEL_LABELS_VISIBLE:"spatialChannelLabelsVisible",SPATIAL_CHANNEL_LABELS_ORIENTATION:"spatialChannelLabelsOrientation",SPATIAL_CHANNEL_LABEL_SIZE:"spatialChannelLabelSize"},ViewType$2={GENES:["genes","This view type was renamed to featureList in schema version 1.0.15."],CELL_SETS:["cellSets","This view type was renamed to obsSets in schema version 1.0.15."],CELL_SET_SIZES:["cellSetSizes","This view type was renamed to obsSetSizes in schema version 1.0.15."],CELL_SET_EXPRESSION:["cellSetExpression","This view type was renamed to obsSetFeatureValueDistribution in schema version 1.0.15."],EXPRESSION_HISTOGRAM:["expressionHistogram","This view type was renamed to featureValueHistogram in schema version 1.0.15."]},DataType$3={CELLS:["cells","This data type was removed. Associated file types were re-implemented as joint file types. See obsEmbedding instead."],CELL_SETS:["cell-sets","This data type was removed. Associated file types were re-implemented as joint file types. See obsSets instead."],EXPRESSION_MATRIX:["expression-matrix","This data type was removed. Associated file types were re-implemented as joint file types. See obsFeatureMatrix instead."],MOLECULES:["molecules","This data type was removed. Associated file types were re-implemented as joint file types. See obsLocations instead."],RASTER:["raster","This data type was removed. Associated file types were re-implemented as joint file types. See image and obsSegmentations instead."]},FileType$2={};function makeChangeMessage$1(j,$){return[`This coordination type was changed to ${j} in view config schema version ${$}`,$,j]}const CoordinationType$2={SPATIAL_LAYERS:["spatialLayers","This coordination type was split into multiple coordination types in view config schema version 1.0.1","1.0.1","multiple"],SPATIAL_RASTER_LAYERS:["spatialRasterLayers",...makeChangeMessage$1("spatialImageLayer","1.0.11")],SPATIAL_CELLS_LAYER:["spatialCellsLayer",...makeChangeMessage$1("spatialSegmentationLayer","1.0.11")],SPATIAL_MOLECULES_LAYER:["spatialMoleculesLayer",...makeChangeMessage$1("spatialPointLayer","1.0.11")],SPATIAL_NEIGHBORHOODS_LAYER:["spatialNeighborhoodsLayer",...makeChangeMessage$1("spatialNeighborhoodLayer","1.0.11")],EMBEDDING_CELL_SET_POLYGONS_VISIBLE:["embeddingCellSetPolygonsVisible",...makeChangeMessage$1("embeddingObsSetPolygonsVisible","1.0.11")],EMBEDDING_CELL_SET_LABELS_VISIBLE:["embeddingCellSetLabelsVisible",...makeChangeMessage$1("embeddingObsSetLabelsVisible","1.0.11")],EMBEDDING_CELL_SET_LABEL_SIZE:["embeddingCellSetLabelSize",...makeChangeMessage$1("embeddingObsSetLabelSize","1.0.11")],EMBEDDING_CELL_RADIUS:["embeddingCellRadius",...makeChangeMessage$1("embeddingObsRadius","1.0.11")],EMBEDDING_CELL_RADIUS_MODE:["embeddingCellRadiusMode",...makeChangeMessage$1("embeddingObsRadiusMode","1.0.11")],EMBEDDING_CELL_OPACITY:["embeddingCellOpacity",...makeChangeMessage$1("embeddingObsOpacity","1.0.11")],EMBEDDING_CELL_OPACITY_MODE:["embeddingCellOpacityMode",...makeChangeMessage$1("embeddingObsOpacityMode","1.0.11")],CELL_FILTER:["cellFilter",...makeChangeMessage$1("obsFilter","1.0.11")],CELL_HIGHLIGHT:["cellHighlight",...makeChangeMessage$1("obsHighlight","1.0.11")],CELL_SET_SELECTION:["cellSetSelection",...makeChangeMessage$1("obsSetSelection","1.0.11")],CELL_SET_HIGHLIGHT:["cellSetHighlight",...makeChangeMessage$1("obsSetHighlight","1.0.11")],CELL_SET_COLOR:["cellSetColor",...makeChangeMessage$1("obsSetColor","1.0.11")],CELL_COLOR_ENCODING:["cellColorEncoding",...makeChangeMessage$1("obsColorEncoding","1.0.11")],ADDITIONAL_CELL_SETS:["additionalCellSets",...makeChangeMessage$1("additionalObsSets","1.0.11")],GENE_FILTER:["geneFilter",...makeChangeMessage$1("featureFilter","1.0.11")],GENE_HIGHLIGHT:["geneHighlight",...makeChangeMessage$1("featureHighlight","1.0.11")],GENE_SELECTION:["geneSelection",...makeChangeMessage$1("featureSelection","1.0.11")],GENE_EXPRESSION_COLORMAP:["geneExpressionColormap",...makeChangeMessage$1("featureValueColormap","1.0.11")],GENE_EXPRESSION_TRANSFORM:["geneExpressionTransform",...makeChangeMessage$1("featureValueTransform","1.0.11")],GENE_EXPRESSION_COLORMAP_RANGE:["geneExpressionColormapRange",...makeChangeMessage$1("featureValueColormapRange","1.0.11")]};function makeConstantWithDeprecationMessage$1(j,$){const _e={get(tt,rt){return Object.keys($).includes(rt)?(console.warn(`Notice about the constant mapping ${rt}: '${$[rt][0]}': +${$[rt][1]}`),$[rt]):tt[rt]}};return new Proxy(j,_e)}makeConstantWithDeprecationMessage$1(ViewType$1$1,ViewType$2);makeConstantWithDeprecationMessage$1(DataType$1$1,DataType$3);makeConstantWithDeprecationMessage$1(FileType$1$1,FileType$2);makeConstantWithDeprecationMessage$1(CoordinationType$1$1,CoordinationType$2);function configSchemaToVersion$1(j){return j.shape.version._def.value}({...fromEntries$1(SCHEMA_HANDLERS$1.map(([j])=>[configSchemaToVersion$1(j),j])),[latestConfigSchema$1.shape.version._def.value]:0});const image$1=z$2.object({name:z$2.string(),url:z$2.string(),type:z$2.string(),metadata:z$2.object({dimensions:z$2.array(z$2.object({field:z$2.string(),type:z$2.enum(["quantitative","nominal","ordinal","temporal"]),values:z$2.array(z$2.string()).nullable()})).optional(),isPyramid:z$2.boolean().optional(),transform:z$2.union([z$2.object({scale:z$2.number(),translate:z$2.object({y:z$2.number(),x:z$2.number()})}),z$2.object({matrix:z$2.array(z$2.number()).length(16)})]).optional(),isBitmask:z$2.boolean().optional(),omeTiffOffsetsUrl:z$2.string().optional()}).optional(),requestInit:requestInit$1.optional()});z$2.object({schemaVersion:z$2.literal("0.0.2"),usePhysicalSizeScaling:z$2.boolean().optional(),renderLayers:z$2.array(z$2.string()).optional(),images:z$2.array(image$1)});const annDataObs$1=z$2.object({path:z$2.string()}),annDataObsm$1=z$2.object({path:z$2.string(),dims:z$2.array(z$2.number()).optional()}),annDataConvenienceObsLabelsItem$1=z$2.object({path:z$2.string(),obsLabelsType:z$2.string()}),annDataConvenienceFeatureLabelsItem$1=z$2.object({path:z$2.string(),featureLabelsType:z$2.string()}),annDataConvenienceObsEmbeddingItem$1=z$2.object({path:z$2.string(),dims:z$2.array(z$2.number()).optional(),embeddingType:z$2.string()}),annDataObsLabels$1=annDataObs$1,annDataFeatureLabels$1=annDataObs$1,annDataObsFeatureMatrix$1=z$2.object({path:z$2.string(),featureFilterPath:z$2.string().optional().describe("If the feature index should be filtered, put a boolean column here (analogous to the previous geneFilter option). e.g., var/in_obsm_X_small_matrix"),initialFeatureFilterPath:z$2.string().optional().describe("If only a subset of the matrix should be loaded initially, put a boolean column along the feature axis here (analogous to the previous matrixGeneFilter option). e.g., var/highly_variable")}),annDataObsSets$1=z$2.array(z$2.object({name:z$2.string().describe("The display name for the set, like 'Cell Type' or 'Louvain.'"),path:z$2.union([z$2.string().describe("The location in the AnnData store for the set, like 'obs/louvain' or 'obs/celltype.'"),z$2.array(z$2.string()).describe("An array of locations in the AnnData store for a hierarchy of set names, from coarse to fine levels.")]),scorePath:z$2.string().optional().describe("The location in the AnnData store for the set confidence scores, like 'obs/celltype_prediction_score.'")})),annDataObsSpots$1=annDataObsm$1,annDataObsPoints$1=annDataObsm$1,annDataObsLocations$1=annDataObsm$1,annDataObsEmbedding$1=annDataObsm$1,annDataObsSegmentations$1=annDataObs$1,omeCoordinateTransformations$1=z$2.array(z$2.union([z$2.object({type:z$2.literal("identity")}),z$2.object({type:z$2.literal("translation"),translation:z$2.array(z$2.number())}),z$2.object({type:z$2.literal("scale"),scale:z$2.array(z$2.number())})]));z$2.object({offsetsUrl:z$2.string().optional(),coordinateTransformations:omeCoordinateTransformations$1.optional()});const imageOmeZarrSchema$1=z$2.object({coordinateTransformations:omeCoordinateTransformations$1.optional()});imageOmeZarrSchema$1.extend({path:z$2.string()});z$2.object({path:z$2.string()});z$2.object({path:z$2.string()});z$2.object({path:z$2.string(),tablePath:z$2.string().optional().describe("The path to a table which annotates the spots. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected.")});annDataObsFeatureMatrix$1.extend({region:z$2.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional()});z$2.object({region:z$2.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),tablePath:z$2.string().optional().describe("The path to a table which contains the index for the set values."),obsSets:annDataObsSets$1});z$2.object({obsIndex:z$2.string(),obsEmbedding:z$2.array(z$2.string()).length(2)});z$2.object({obsIndex:z$2.string(),obsSpots:z$2.array(z$2.string()).length(2)});z$2.object({obsIndex:z$2.string(),obsPoints:z$2.array(z$2.string()).length(3)});z$2.object({obsIndex:z$2.string(),obsLocations:z$2.array(z$2.string()).length(2)});z$2.object({obsIndex:z$2.string(),obsLabels:z$2.string()});z$2.object({featureIndex:z$2.string(),featureLabels:z$2.string()});z$2.object({obsIndex:z$2.string(),obsSets:z$2.array(z$2.object({name:z$2.string(),column:z$2.union([z$2.string(),z$2.array(z$2.string())]),scoreColumn:z$2.string().optional()}))});z$2.object({obsLabels:z$2.union([annDataObsLabels$1,z$2.array(annDataConvenienceObsLabelsItem$1)]),featureLabels:z$2.union([annDataFeatureLabels$1,z$2.array(annDataConvenienceFeatureLabelsItem$1)]),obsFeatureMatrix:annDataObsFeatureMatrix$1,obsSets:annDataObsSets$1,obsSpots:annDataObsSpots$1,obsPoints:annDataObsPoints$1,obsLocations:annDataObsLocations$1,obsSegmentations:annDataObsSegmentations$1,obsEmbedding:z$2.union([annDataObsEmbedding$1,z$2.array(annDataConvenienceObsEmbeddingItem$1)])}).partial();z$2.object({obsLabelsTypes:z$2.array(z$2.string()).optional(),embeddingTypes:z$2.array(z$2.string()).optional()}).optional();z$2.object({xy:z$2.string().optional(),poly:z$2.string().optional(),factors:z$2.array(z$2.string()).optional(),mappings:z$2.record(z$2.object({key:z$2.string(),dims:z$2.array(z$2.number()).length(2)})).optional()});z$2.array(z$2.object({groupName:z$2.string(),setName:z$2.union([z$2.string(),z$2.array(z$2.string())]),scoreName:z$2.string().optional()}));z$2.object({matrix:z$2.string(),geneFilter:z$2.string().optional(),matrixGeneFilter:z$2.string().optional(),geneAlias:z$2.string().optional()});z$2.array(z$2.object({channels:z$2.array(z$2.object({color:z$2.array(z$2.number()).describe("The color to use when rendering this channel under the null colormap.").optional(),selection:z$2.record(z$2.any()).describe("Determines the channel selection, e.g. some Z and time slice."),slider:z$2.array(z$2.number()).describe("Determines the range for color mapping.").optional(),visible:z$2.boolean().describe("Determines whether this channel of the layer will be rendered in the spatial component.").optional()}).strict()),colormap:z$2.string().nullable(),transparentColor:z$2.array(z$2.number().describe("One of R G or B (0 - 255).")).length(3).describe("Determines the color to be set to opacity 0").nullable().optional(),index:z$2.number().describe("The index of the layer among the array of layers available in the image file."),opacity:z$2.number(),modelMatrix:z$2.array(z$2.number()).length(16).describe("transformation matrix for this layer").optional(),domainType:z$2.enum(["Full","Min/Max"]).describe("Determines the extent of the channel slider input element in the layer controller.").optional(),resolution:z$2.number().describe("Resolution of 3D volumetric rendering").optional(),xSlice:z$2.array(z$2.any()).length(2).describe("Slice bounds").nullable().optional(),renderingMode:z$2.string().describe("Rendering mode of 3D volumetric rendering").optional(),ySlice:z$2.array(z$2.any()).length(2).describe("Slice bounds").nullable().optional(),zSlice:z$2.array(z$2.any()).length(2).describe("Slice bounds").nullable().optional(),type:z$2.enum(["raster","bitmask"]).optional(),use3d:z$2.boolean().optional(),visible:z$2.boolean().describe("Determines whether this entire layer will be rendered in the spatial component.").optional()}).strict().describe("The properties of this object are the rendering settings for the raster layer."));z$2.object({visible:z$2.boolean(),stroked:z$2.boolean(),radius:z$2.number(),opacity:z$2.number()});z$2.object({visible:z$2.boolean()});z$2.object({visible:z$2.boolean(),radius:z$2.number(),opacity:z$2.number()});const{grey:grey$3}=colors,globalColors={white:"#FFFFFF",grayLight:"#D3D3D3",grayMid:"#808080",grayDark:"#555555",black:"#000000",grayDarkL5:"rgb(98, 98, 98)",grayDarkD15:"rgb(47, 47, 47)",grayMidL10:"rgb(154, 154, 154)",grayLightL10:"rgb(237, 237, 237)"},sharedThemeOptions={typography:{pxToRem:j=>`${j}px`,display4:{fontSize:"112px"},display3:{fontSize:"56px"},display2:{fontSize:"45px"},display1:{fontSize:"34px"},headline:{fontSize:"24px"},title:{fontSize:"21px"},subheading:{fontSize:"16px"},body2:{fontSize:"14px"},body1:{fontSize:"14px"},caption:{fontSize:"12px"}},props:{MuiButtonBase:{disableRipple:!0}}};createTheme$3({palette:{type:"dark",primary:grey$3,secondary:grey$3,primaryBackground:"#222222",primaryBackgroundHighlight:"#000000",primaryBackgroundInput:"#D3D3D3",primaryBackgroundDim:"#333333",primaryBackgroundLight:"#757575",primaryForeground:"#D3D3D3",primaryForegroundL5:"rgb(224, 224, 224)",primaryForegroundL10:"rgb(237, 237, 237)",primaryForegroundD15:"rgb(173, 173, 173)",primaryForegroundDim:"#000000",primaryForegroundActive:"#9bb7d6",secondaryBackground:"#000000",secondaryBackgroundDim:"#444444",secondaryForeground:"#D3D3D3",gridLayoutBackground:"#333333",cardBorder:"rgba(0, 0, 0, 0.125)",tooltipText:"#FFFFFF",...globalColors},...sharedThemeOptions}),createTheme$3({palette:{type:"light",primary:grey$3,secondary:grey$3,primaryBackground:"#F1F1F1",primaryBackgroundHighlight:"#FFFFFF",primaryBackgroundInput:"#FFFFFF",primaryBackgroundDim:"#8A8A8A",primaryBackgroundLight:"#e0e0e0",primaryForeground:"#333333",primaryForegroundL5:"rgb(64, 64, 64)",primaryForegroundL10:"rgb(77, 77, 77)",primaryForegroundD15:"rgb(13, 13, 13)",primaryForegroundDim:"#808080",primaryForegroundActive:"#0074D9",secondaryBackground:"#F1F1F1",secondaryBackgroundDim:"#C0C0C0",secondaryForeground:"#222222",gridLayoutBackground:"#FFFFFF",cardBorder:"rgba(241, 241, 241, 0.125)",tooltipText:"rgba(0, 0, 0, 0.87)",...globalColors},...sharedThemeOptions});function createStore(j){let $;const _e=new Set,et=(At,ut)=>{const ft=typeof At=="function"?At($):At;if(ft!==$){const dt=$;$=ut?ft:Object.assign({},$,ft),_e.forEach(Et=>Et($,dt))}},tt=()=>$,rt=(At,ut=tt,ft=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let dt=ut($);function Et(){const Bt=ut($);if(!ft(dt,Bt)){const St=dt;At(dt=Bt,St)}}return _e.add(Et),()=>_e.delete(Et)},ot={setState:et,getState:tt,subscribe:(At,ut,ft)=>ut||ft?rt(At,ut,ft):(_e.add(At),()=>_e.delete(At)),destroy:()=>_e.clear()};return $=j(et,tt,ot),ot}const isSSR=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),useIsomorphicLayoutEffect=isSSR?reactExports.useEffect:reactExports.useLayoutEffect;function create2(j){const $=typeof j=="function"?createStore(j):j,_e=(et=$.getState,tt=Object.is)=>{const[,rt]=reactExports.useReducer(Dt=>Dt+1,0),nt=$.getState(),it=reactExports.useRef(nt),ot=reactExports.useRef(et),At=reactExports.useRef(tt),ut=reactExports.useRef(!1),ft=reactExports.useRef();ft.current===void 0&&(ft.current=et(nt));let dt,Et=!1;(it.current!==nt||ot.current!==et||At.current!==tt||ut.current)&&(dt=et(nt),Et=!tt(ft.current,dt)),useIsomorphicLayoutEffect(()=>{Et&&(ft.current=dt),it.current=nt,ot.current=et,At.current=tt,ut.current=!1});const Bt=reactExports.useRef(nt);useIsomorphicLayoutEffect(()=>{const Dt=()=>{try{const Rt=$.getState(),wt=ot.current(Rt);At.current(ft.current,wt)||(it.current=Rt,ft.current=wt,rt())}catch{ut.current=!0,rt()}},$t=$.subscribe(Dt);return $.getState()!==Bt.current&&Dt(),$t},[]);const St=Et?dt:ft.current;return reactExports.useDebugValue(St),St};return Object.assign(_e,$),_e[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const et=[_e,$];return{next(){const tt=et.length<=0;return{value:et.shift(),done:tt}}}},_e}function createContext(){const j=reactExports.createContext(void 0);return{Provider:({initialStore:tt,createStore:rt,children:nt})=>{const it=reactExports.useRef();return it.current||(tt&&(console.warn("Provider initialStore is deprecated and will be removed in the next version."),rt||(rt=()=>tt)),it.current=rt()),reactExports.createElement(j.Provider,{value:it.current},nt)},useStore:(tt,rt=Object.is)=>{const nt=reactExports.useContext(j);if(!nt)throw new Error("Seems like you have not used zustand provider as an ancestor.");return nt(tt,rt)},useStoreApi:()=>{const tt=reactExports.useContext(j);if(!tt)throw new Error("Seems like you have not used zustand provider as an ancestor.");return reactExports.useMemo(()=>({getState:tt.getState,setState:tt.setState,subscribe:tt.subscribe,destroy:tt.destroy}),[tt])}}}createContext();createContext();create2(j=>({componentHover:null,setComponentHover:$=>j({componentHover:$})}));create2(j=>({warning:null,setWarning:$=>j({warning:$})}));create2(j=>({viewInfo:{},setComponentViewInfo:($,_e)=>j(et=>({viewInfo:{...et.viewInfo,[$]:_e}}))}));create2(j=>({resizeCount:{},incrementResizeCount:()=>j($=>({resizeCount:$.resizeCount+1}))}));var reactGridLayoutWithLodash={exports:{}},ReactGridLayout$1={};function listCacheClear$1(){this.__data__=[],this.size=0}var _listCacheClear=listCacheClear$1;function eq$2$1(j,$){return j===$||j!==j&&$!==$}var eq_1$2=eq$2$1,eq$1$1=eq_1$2;function assocIndexOf$4(j,$){for(var _e=j.length;_e--;)if(eq$1$1(j[_e][0],$))return _e;return-1}var _assocIndexOf=assocIndexOf$4,assocIndexOf$3=_assocIndexOf,arrayProto$2=Array.prototype,splice$2=arrayProto$2.splice;function listCacheDelete$1(j){var $=this.__data__,_e=assocIndexOf$3($,j);if(_e<0)return!1;var et=$.length-1;return _e==et?$.pop():splice$2.call($,_e,1),--this.size,!0}var _listCacheDelete=listCacheDelete$1,assocIndexOf$2=_assocIndexOf;function listCacheGet$1(j){var $=this.__data__,_e=assocIndexOf$2($,j);return _e<0?void 0:$[_e][1]}var _listCacheGet=listCacheGet$1,assocIndexOf$1=_assocIndexOf;function listCacheHas$1(j){return assocIndexOf$1(this.__data__,j)>-1}var _listCacheHas=listCacheHas$1,assocIndexOf$6=_assocIndexOf;function listCacheSet$1(j,$){var _e=this.__data__,et=assocIndexOf$6(_e,j);return et<0?(++this.size,_e.push([j,$])):_e[et][1]=$,this}var _listCacheSet=listCacheSet$1,listCacheClear$3=_listCacheClear,listCacheDelete$3=_listCacheDelete,listCacheGet$3=_listCacheGet,listCacheHas$3=_listCacheHas,listCacheSet$3=_listCacheSet;function ListCache$4(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}ListCache$4.prototype.clear=listCacheClear$3;ListCache$4.prototype.delete=listCacheDelete$3;ListCache$4.prototype.get=listCacheGet$3;ListCache$4.prototype.has=listCacheHas$3;ListCache$4.prototype.set=listCacheSet$3;var _ListCache=ListCache$4,ListCache$3=_ListCache;function stackClear$1(){this.__data__=new ListCache$3,this.size=0}var _stackClear=stackClear$1;function stackDelete$1(j){var $=this.__data__,_e=$.delete(j);return this.size=$.size,_e}var _stackDelete=stackDelete$1;function stackGet$1(j){return this.__data__.get(j)}var _stackGet=stackGet$1;function stackHas$1(j){return this.__data__.has(j)}var _stackHas=stackHas$1,freeGlobal$1$1=typeof commonjsGlobal$1=="object"&&commonjsGlobal$1&&commonjsGlobal$1.Object===Object&&commonjsGlobal$1,_freeGlobal=freeGlobal$1$1,freeGlobal$4=_freeGlobal,freeSelf$2=typeof self=="object"&&self&&self.Object===Object&&self,root$8=freeGlobal$4||freeSelf$2||Function("return this")(),_root=root$8,root$7=_root,Symbol$4=root$7.Symbol,_Symbol=Symbol$4,Symbol$3=_Symbol,objectProto$b$1=Object.prototype,hasOwnProperty$8$1=objectProto$b$1.hasOwnProperty,nativeObjectToString$1$1=objectProto$b$1.toString,symToStringTag$1$1=Symbol$3?Symbol$3.toStringTag:void 0;function getRawTag$1(j){var $=hasOwnProperty$8$1.call(j,symToStringTag$1$1),_e=j[symToStringTag$1$1];try{j[symToStringTag$1$1]=void 0;var et=!0}catch{}var tt=nativeObjectToString$1$1.call(j);return et&&($?j[symToStringTag$1$1]=_e:delete j[symToStringTag$1$1]),tt}var _getRawTag=getRawTag$1,objectProto$a$1=Object.prototype,nativeObjectToString$4=objectProto$a$1.toString;function objectToString$1$1(j){return nativeObjectToString$4.call(j)}var _objectToString=objectToString$1$1,Symbol$2$1=_Symbol,getRawTag$3=_getRawTag,objectToString$3=_objectToString,nullTag$2="[object Null]",undefinedTag$2="[object Undefined]",symToStringTag$4=Symbol$2$1?Symbol$2$1.toStringTag:void 0;function baseGetTag$4(j){return j==null?j===void 0?undefinedTag$2:nullTag$2:symToStringTag$4&&symToStringTag$4 in Object(j)?getRawTag$3(j):objectToString$3(j)}var _baseGetTag=baseGetTag$4;function isObject$2$1(j){var $=typeof j;return j!=null&&($=="object"||$=="function")}var isObject_1=isObject$2$1,baseGetTag$3=_baseGetTag,isObject$1$1=isObject_1,asyncTag$2="[object AsyncFunction]",funcTag$1$1="[object Function]",genTag$3="[object GeneratorFunction]",proxyTag$2="[object Proxy]";function isFunction$3$1(j){if(!isObject$1$1(j))return!1;var $=baseGetTag$3(j);return $==funcTag$1$1||$==genTag$3||$==asyncTag$2||$==proxyTag$2}var isFunction_1=isFunction$3$1,root$6=_root,coreJsData$1$1=root$6["__core-js_shared__"],_coreJsData=coreJsData$1$1,coreJsData$4=_coreJsData,maskSrcKey$2=function(){var j=/[^.]+$/.exec(coreJsData$4&&coreJsData$4.keys&&coreJsData$4.keys.IE_PROTO||"");return j?"Symbol(src)_1."+j:""}();function isMasked$1(j){return!!maskSrcKey$2&&maskSrcKey$2 in j}var _isMasked=isMasked$1,funcProto$1$1=Function.prototype,funcToString$1$1=funcProto$1$1.toString;function toSource$2(j){if(j!=null){try{return funcToString$1$1.call(j)}catch{}try{return j+""}catch{}}return""}var _toSource=toSource$2,isFunction$2=isFunction_1,isMasked$3=_isMasked,isObject$4=isObject_1,toSource$1=_toSource,reRegExpChar$2=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor$2=/^\[object .+?Constructor\]$/,funcProto$5=Function.prototype,objectProto$9$1=Object.prototype,funcToString$5=funcProto$5.toString,hasOwnProperty$7$1=objectProto$9$1.hasOwnProperty,reIsNative$2=RegExp("^"+funcToString$5.call(hasOwnProperty$7$1).replace(reRegExpChar$2,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function baseIsNative$1(j){if(!isObject$4(j)||isMasked$3(j))return!1;var $=isFunction$2(j)?reIsNative$2:reIsHostCtor$2;return $.test(toSource$1(j))}var _baseIsNative=baseIsNative$1;function getValue$1$1(j,$){return j==null?void 0:j[$]}var _getValue=getValue$1$1,baseIsNative$3=_baseIsNative,getValue$4=_getValue;function getNative$6(j,$){var _e=getValue$4(j,$);return baseIsNative$3(_e)?_e:void 0}var _getNative=getNative$6,getNative$5=_getNative,root$5=_root,Map$4=getNative$5(root$5,"Map"),_Map=Map$4,getNative$4=_getNative,nativeCreate$4=getNative$4(Object,"create"),_nativeCreate=nativeCreate$4,nativeCreate$3=_nativeCreate;function hashClear$1(){this.__data__=nativeCreate$3?nativeCreate$3(null):{},this.size=0}var _hashClear=hashClear$1;function hashDelete$1(j){var $=this.has(j)&&delete this.__data__[j];return this.size-=$?1:0,$}var _hashDelete=hashDelete$1,nativeCreate$2=_nativeCreate,HASH_UNDEFINED$2$1="__lodash_hash_undefined__",objectProto$8$1=Object.prototype,hasOwnProperty$6$1=objectProto$8$1.hasOwnProperty;function hashGet$1(j){var $=this.__data__;if(nativeCreate$2){var _e=$[j];return _e===HASH_UNDEFINED$2$1?void 0:_e}return hasOwnProperty$6$1.call($,j)?$[j]:void 0}var _hashGet=hashGet$1,nativeCreate$1$1=_nativeCreate,objectProto$7$1=Object.prototype,hasOwnProperty$5$1=objectProto$7$1.hasOwnProperty;function hashHas$1(j){var $=this.__data__;return nativeCreate$1$1?$[j]!==void 0:hasOwnProperty$5$1.call($,j)}var _hashHas=hashHas$1,nativeCreate$7=_nativeCreate,HASH_UNDEFINED$1$1="__lodash_hash_undefined__";function hashSet$1(j,$){var _e=this.__data__;return this.size+=this.has(j)?0:1,_e[j]=nativeCreate$7&&$===void 0?HASH_UNDEFINED$1$1:$,this}var _hashSet=hashSet$1,hashClear$3=_hashClear,hashDelete$3=_hashDelete,hashGet$3=_hashGet,hashHas$3=_hashHas,hashSet$3=_hashSet;function Hash$1(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}Hash$1.prototype.clear=hashClear$3;Hash$1.prototype.delete=hashDelete$3;Hash$1.prototype.get=hashGet$3;Hash$1.prototype.has=hashHas$3;Hash$1.prototype.set=hashSet$3;var _Hash=Hash$1,Hash$3=_Hash,ListCache$2=_ListCache,Map$3=_Map;function mapCacheClear$1(){this.size=0,this.__data__={hash:new Hash$3,map:new(Map$3||ListCache$2),string:new Hash$3}}var _mapCacheClear=mapCacheClear$1;function isKeyable$1(j){var $=typeof j;return $=="string"||$=="number"||$=="symbol"||$=="boolean"?j!=="__proto__":j===null}var _isKeyable=isKeyable$1,isKeyable$3=_isKeyable;function getMapData$4(j,$){var _e=j.__data__;return isKeyable$3($)?_e[typeof $=="string"?"string":"hash"]:_e.map}var _getMapData=getMapData$4,getMapData$3=_getMapData;function mapCacheDelete$1(j){var $=getMapData$3(this,j).delete(j);return this.size-=$?1:0,$}var _mapCacheDelete=mapCacheDelete$1,getMapData$2=_getMapData;function mapCacheGet$1(j){return getMapData$2(this,j).get(j)}var _mapCacheGet=mapCacheGet$1,getMapData$1=_getMapData;function mapCacheHas$1(j){return getMapData$1(this,j).has(j)}var _mapCacheHas=mapCacheHas$1,getMapData$6=_getMapData;function mapCacheSet$1(j,$){var _e=getMapData$6(this,j),et=_e.size;return _e.set(j,$),this.size+=_e.size==et?0:1,this}var _mapCacheSet=mapCacheSet$1,mapCacheClear$3=_mapCacheClear,mapCacheDelete$3=_mapCacheDelete,mapCacheGet$3=_mapCacheGet,mapCacheHas$3=_mapCacheHas,mapCacheSet$3=_mapCacheSet;function MapCache$2(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}MapCache$2.prototype.clear=mapCacheClear$3;MapCache$2.prototype.delete=mapCacheDelete$3;MapCache$2.prototype.get=mapCacheGet$3;MapCache$2.prototype.has=mapCacheHas$3;MapCache$2.prototype.set=mapCacheSet$3;var _MapCache=MapCache$2,ListCache$1=_ListCache,Map$2$1=_Map,MapCache$1=_MapCache,LARGE_ARRAY_SIZE$2=200;function stackSet$1(j,$){var _e=this.__data__;if(_e instanceof ListCache$1){var et=_e.__data__;if(!Map$2$1||et.lengthit))return!1;var At=rt.get(j),ut=rt.get($);if(At&&ut)return At==$&&ut==j;var ft=-1,dt=!0,Et=_e&COMPARE_UNORDERED_FLAG$1$1?new SetCache$2:void 0;for(rt.set(j,$),rt.set($,j);++ft-1&&j%1==0&&j<$}var _isIndex=isIndex$1$1,MAX_SAFE_INTEGER$6=9007199254740991;function isLength$2(j){return typeof j=="number"&&j>-1&&j%1==0&&j<=MAX_SAFE_INTEGER$6}var isLength_1=isLength$2,baseGetTag$1=_baseGetTag,isLength$1=isLength_1,isObjectLike$1$1=isObjectLike_1,argsTag$1$1="[object Arguments]",arrayTag$1$1="[object Array]",boolTag$6="[object Boolean]",dateTag$6="[object Date]",errorTag$5="[object Error]",funcTag$5="[object Function]",mapTag$1$1="[object Map]",numberTag$6="[object Number]",objectTag$2$1="[object Object]",regexpTag$6="[object RegExp]",setTag$1$1="[object Set]",stringTag$6="[object String]",weakMapTag$1$1="[object WeakMap]",arrayBufferTag$6="[object ArrayBuffer]",dataViewTag$1$1="[object DataView]",float32Tag$4="[object Float32Array]",float64Tag$4="[object Float64Array]",int8Tag$4="[object Int8Array]",int16Tag$4="[object Int16Array]",int32Tag$4="[object Int32Array]",uint8Tag$4="[object Uint8Array]",uint8ClampedTag$4="[object Uint8ClampedArray]",uint16Tag$4="[object Uint16Array]",uint32Tag$4="[object Uint32Array]",typedArrayTags$2={};typedArrayTags$2[float32Tag$4]=typedArrayTags$2[float64Tag$4]=typedArrayTags$2[int8Tag$4]=typedArrayTags$2[int16Tag$4]=typedArrayTags$2[int32Tag$4]=typedArrayTags$2[uint8Tag$4]=typedArrayTags$2[uint8ClampedTag$4]=typedArrayTags$2[uint16Tag$4]=typedArrayTags$2[uint32Tag$4]=!0;typedArrayTags$2[argsTag$1$1]=typedArrayTags$2[arrayTag$1$1]=typedArrayTags$2[arrayBufferTag$6]=typedArrayTags$2[boolTag$6]=typedArrayTags$2[dataViewTag$1$1]=typedArrayTags$2[dateTag$6]=typedArrayTags$2[errorTag$5]=typedArrayTags$2[funcTag$5]=typedArrayTags$2[mapTag$1$1]=typedArrayTags$2[numberTag$6]=typedArrayTags$2[objectTag$2$1]=typedArrayTags$2[regexpTag$6]=typedArrayTags$2[setTag$1$1]=typedArrayTags$2[stringTag$6]=typedArrayTags$2[weakMapTag$1$1]=!1;function baseIsTypedArray$1(j){return isObjectLike$1$1(j)&&isLength$1(j.length)&&!!typedArrayTags$2[baseGetTag$1(j)]}var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$1(j){return function($){return j($)}}var _baseUnary=baseUnary$1,_nodeUtil={exports:{}};_nodeUtil.exports;(function(j,$){var _e=_freeGlobal,et=$&&!$.nodeType&&$,tt=et&&!0&&j&&!j.nodeType&&j,rt=tt&&tt.exports===et,nt=rt&&_e.process,it=function(){try{var ot=tt&&tt.require&&tt.require("util").types;return ot||nt&&nt.binding&&nt.binding("util")}catch{}}();j.exports=it})(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray$3=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$3=_nodeUtilExports,nodeIsTypedArray$2=nodeUtil$3&&nodeUtil$3.isTypedArray,isTypedArray$2=nodeIsTypedArray$2?baseUnary$3(nodeIsTypedArray$2):baseIsTypedArray$3,isTypedArray_1=isTypedArray$2,baseTimes$3=_baseTimes,isArguments=isArguments_1,isArray$1$1=isArray_1,isBuffer$1$1=isBufferExports,isIndex=_isIndex,isTypedArray$1$1=isTypedArray_1,objectProto$4$1=Object.prototype,hasOwnProperty$3$1=objectProto$4$1.hasOwnProperty;function arrayLikeKeys$1(j,$){var _e=isArray$1$1(j),et=!_e&&isArguments(j),tt=!_e&&!et&&isBuffer$1$1(j),rt=!_e&&!et&&!tt&&isTypedArray$1$1(j),nt=_e||et||tt||rt,it=nt?baseTimes$3(j.length,String):[],ot=it.length;for(var At in j)($||hasOwnProperty$3$1.call(j,At))&&!(nt&&(At=="length"||tt&&(At=="offset"||At=="parent")||rt&&(At=="buffer"||At=="byteLength"||At=="byteOffset")||isIndex(At,ot)))&&it.push(At);return it}var _arrayLikeKeys=arrayLikeKeys$1,objectProto$3$1=Object.prototype;function isPrototype$1(j){var $=j&&j.constructor,_e=typeof $=="function"&&$.prototype||objectProto$3$1;return j===_e}var _isPrototype=isPrototype$1;function overArg$1(j,$){return function(_e){return j($(_e))}}var _overArg=overArg$1,overArg$3=_overArg,nativeKeys$1$1=overArg$3(Object.keys,Object),_nativeKeys=nativeKeys$1$1,isPrototype$3=_isPrototype,nativeKeys$4=_nativeKeys,objectProto$2$1=Object.prototype,hasOwnProperty$2=objectProto$2$1.hasOwnProperty;function baseKeys$1(j){if(!isPrototype$3(j))return nativeKeys$4(j);var $=[];for(var _e in Object(j))hasOwnProperty$2.call(j,_e)&&_e!="constructor"&&$.push(_e);return $}var _baseKeys=baseKeys$1,isFunction$1$1=isFunction_1,isLength$4=isLength_1;function isArrayLike$1(j){return j!=null&&isLength$4(j.length)&&!isFunction$1$1(j)}var isArrayLike_1=isArrayLike$1,arrayLikeKeys$3=_arrayLikeKeys,baseKeys$3=_baseKeys,isArrayLike$3=isArrayLike_1;function keys$1$1(j){return isArrayLike$3(j)?arrayLikeKeys$3(j):baseKeys$3(j)}var keys_1=keys$1$1,baseGetAllKeys$3=_baseGetAllKeys,getSymbols$4=_getSymbols,keys=keys_1;function getAllKeys$1(j){return baseGetAllKeys$3(j,keys,getSymbols$4)}var _getAllKeys=getAllKeys$1,getAllKeys$3=_getAllKeys,COMPARE_PARTIAL_FLAG$1$1=1,objectProto$1$1=Object.prototype,hasOwnProperty$1$1=objectProto$1$1.hasOwnProperty;function equalObjects$1(j,$,_e,et,tt,rt){var nt=_e&COMPARE_PARTIAL_FLAG$1$1,it=getAllKeys$3(j),ot=it.length,At=getAllKeys$3($),ut=At.length;if(ot!=ut&&!nt)return!1;for(var ft=ot;ft--;){var dt=it[ft];if(!(nt?dt in $:hasOwnProperty$1$1.call($,dt)))return!1}var Et=rt.get(j),Bt=rt.get($);if(Et&&Bt)return Et==$&&Bt==j;var St=!0;rt.set(j,$),rt.set($,j);for(var Dt=nt;++ft$&&($=_e);return $}function cloneLayout(j){for(var $=Array(j.length),_e=0,et=j.length;_e=$.x+$.w||j.y+j.h<=$.y||j.y>=$.y+$.h)}function compact$1(j,$,_e){for(var et=getStatics(j),tt=sortLayoutItems(j,$),rt=Array(j.length),nt=0,it=tt.length;nt$.y+$.h)break;collides($,it)&&resolveCompactionCollision(j,it,_e+$[tt],et)}}$[et]=_e}function compactItem(j,$,_e,et,tt){var rt=_e==="vertical",nt=_e==="horizontal";if(rt)for($.y=Math.min(bottom$2(j),$.y);$.y>0&&!getFirstCollision(j,$);)$.y--;else if(nt)for(;$.x>0&&!getFirstCollision(j,$);)$.x--;for(var it;it=getFirstCollision(j,$);)nt?resolveCompactionCollision(tt,$,it.x+it.w,"x"):resolveCompactionCollision(tt,$,it.y+it.h,"y"),nt&&$.x+$.w>et&&($.x=et-$.w,$.y++);return $.y=Math.max($.y,0),$.x=Math.max($.x,0),$}function correctBounds(j,$){for(var _e=getStatics(j),et=0,tt=j.length;et$.cols&&(rt.x=$.cols-rt.w),rt.x<0&&(rt.x=0,rt.w=$.cols),!rt.static)_e.push(rt);else for(;getFirstCollision(_e,rt);)rt.y++}return j}function getLayoutItem(j,$){for(var _e=0,et=j.length;_e=et:nt==="horizontal"&&typeof _e=="number"?At>=_e:!1;dt&&(ft=ft.reverse());var Et=getAllCollisions(ft,$),Bt=Et.length>0;if(Bt&&ot)return cloneLayout(j);if(Bt&&rt)return"Collision prevented on ".concat($.i,", reverting."),$.x=At,$.y=ut,$.moved=!1,j;for(var St=0,Dt=Et.length;St_e.y||$.y===_e.y&&$.x>_e.x?1:$.y===_e.y&&$.x===_e.x?0:-1})}function sortLayoutItemsByColRow(j){return j.slice(0).sort(function($,_e){return $.x>_e.x||$.x===_e.x&&$.y>_e.y?1:-1})}function synchronizeLayoutWithChildren(j,$,_e,et,tt){j=j||[];var rt=[];_react$3.default.Children.forEach($,function(it){if((it==null?void 0:it.key)!=null){var ot=getLayoutItem(j,String(it.key));if(ot)rt.push(cloneLayoutItem(ot));else{it.props._grid&&console.warn("`_grid` properties on children have been deprecated as of React 15.2. Please use `data-grid` or add your properties directly to the `layout`.");var At=it.props["data-grid"]||it.props._grid;At?(validateLayout([At],"ReactGridLayout.children"),rt.push(cloneLayoutItem(_objectSpread$7(_objectSpread$7({},At),{},{i:it.key})))):rt.push(cloneLayoutItem({w:1,h:1,x:0,y:bottom$2(rt),i:String(it.key)}))}}});var nt=correctBounds(rt,{cols:_e});return tt?nt:compact$1(nt,et,_e)}function validateLayout(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Layout",_e=["x","y","w","h"];if(!Array.isArray(j))throw new Error($+" must be an array!");for(var et=0,tt=j.length;et0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";var et=(j=window.document)===null||j===void 0||($=j.documentElement)===null||$===void 0?void 0:$.style;if(!et||_e in et)return"";for(var tt=0;tt: Unmounted during event!");return $}var DraggableCore$2={},log$1$1={};Object.defineProperty(log$1$1,"__esModule",{value:!0});log$1$1.default=log$6;function log$6(){}function _typeof$4$1(j){"@babel/helpers - typeof";return _typeof$4$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$4$1(j)}Object.defineProperty(DraggableCore$2,"__esModule",{value:!0});DraggableCore$2.default=void 0;var React$5=_interopRequireWildcard$5(React$6),_propTypes$7=_interopRequireDefault$8$1(propTypesExports),_reactDom=_interopRequireDefault$8$1(ReactDOM),_domFns=domFns,_positionFns=positionFns,_shims=shims,_log=_interopRequireDefault$8$1(log$1$1);function _interopRequireDefault$8$1(j){return j&&j.__esModule?j:{default:j}}function _getRequireWildcardCache$5(j){if(typeof WeakMap!="function")return null;var $=new WeakMap,_e=new WeakMap;return(_getRequireWildcardCache$5=function(tt){return tt?_e:$})(j)}function _interopRequireWildcard$5(j,$){if(!$&&j&&j.__esModule)return j;if(j===null||_typeof$4$1(j)!=="object"&&typeof j!="function")return{default:j};var _e=_getRequireWildcardCache$5($);if(_e&&_e.has(j))return _e.get(j);var et={},tt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var rt in j)if(rt!=="default"&&Object.prototype.hasOwnProperty.call(j,rt)){var nt=tt?Object.getOwnPropertyDescriptor(j,rt):null;nt&&(nt.get||nt.set)?Object.defineProperty(et,rt,nt):et[rt]=j[rt]}return et.default=j,_e&&_e.set(j,et),et}function _slicedToArray$1$1(j,$){return _arrayWithHoles$1$1(j)||_iterableToArrayLimit$1$1(j,$)||_unsupportedIterableToArray$1$1(j,$)||_nonIterableRest$1$1()}function _nonIterableRest$1$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1$1(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$1$1(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(j);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$1$1(j,$)}}function _arrayLikeToArray$1$1(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _iterableToArrayLimit$1$1(j,$){var _e=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(_e!=null){var et=[],tt=!0,rt=!1,nt,it;try{for(_e=_e.call(j);!(tt=(nt=_e.next()).done)&&(et.push(nt.value),!($&&et.length===$));tt=!0);}catch(ot){rt=!0,it=ot}finally{try{!tt&&_e.return!=null&&_e.return()}finally{if(rt)throw it}}return et}}function _arrayWithHoles$1$1(j){if(Array.isArray(j))return j}function _classCallCheck$4$1(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$4$1(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$4$1(j,$,_e){return $&&_defineProperties$4$1(j.prototype,$),_e&&_defineProperties$4$1(j,_e),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$4$1(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),$&&_setPrototypeOf$6$1(j,$)}function _setPrototypeOf$6$1(j,$){return _setPrototypeOf$6$1=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$6$1(j,$)}function _createSuper$4$1(j){var $=_isNativeReflectConstruct$4$1();return function(){var et=_getPrototypeOf$4$1(j),tt;if($){var rt=_getPrototypeOf$4$1(this).constructor;tt=Reflect.construct(et,arguments,rt)}else tt=et.apply(this,arguments);return _possibleConstructorReturn$4$1(this,tt)}}function _possibleConstructorReturn$4$1(j,$){if($&&(_typeof$4$1($)==="object"||typeof $=="function"))return $;if($!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$4$1(j)}function _assertThisInitialized$4$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$4$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4$1(j){return _getPrototypeOf$4$1=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$4$1(j)}function _defineProperty$7$1(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var eventsFor={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},dragEventFor=eventsFor.mouse,DraggableCore$1=function(j){_inherits$4$1(_e,j);var $=_createSuper$4$1(_e);function _e(){var et;_classCallCheck$4$1(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt not mounted on DragStart!");var At=ot.ownerDocument;if(!(et.props.disabled||!(it.target instanceof At.defaultView.Node)||et.props.handle&&!(0,_domFns.matchesSelectorAndParentsTo)(it.target,et.props.handle,ot)||et.props.cancel&&(0,_domFns.matchesSelectorAndParentsTo)(it.target,et.props.cancel,ot))){it.type==="touchstart"&&it.preventDefault();var ut=(0,_domFns.getTouchIdentifier)(it);et.setState({touchIdentifier:ut});var ft=(0,_positionFns.getControlPosition)(it,ut,_assertThisInitialized$4$1(et));if(ft!=null){var dt=ft.x,Et=ft.y,Bt=(0,_positionFns.createCoreData)(_assertThisInitialized$4$1(et),dt,Et);(0,_log.default)("DraggableCore: handleDragStart: %j",Bt),(0,_log.default)("calling",et.props.onStart);var St=et.props.onStart(it,Bt);St===!1||et.mounted===!1||(et.props.enableUserSelectHack&&(0,_domFns.addUserSelectStyles)(At),et.setState({dragging:!0,lastX:dt,lastY:Et}),(0,_domFns.addEvent)(At,dragEventFor.move,et.handleDrag),(0,_domFns.addEvent)(At,dragEventFor.stop,et.handleDragStop))}}}),_defineProperty$7$1(_assertThisInitialized$4$1(et),"handleDrag",function(it){var ot=(0,_positionFns.getControlPosition)(it,et.state.touchIdentifier,_assertThisInitialized$4$1(et));if(ot!=null){var At=ot.x,ut=ot.y;if(Array.isArray(et.props.grid)){var ft=At-et.state.lastX,dt=ut-et.state.lastY,Et=(0,_positionFns.snapToGrid)(et.props.grid,ft,dt),Bt=_slicedToArray$1$1(Et,2);if(ft=Bt[0],dt=Bt[1],!ft&&!dt)return;At=et.state.lastX+ft,ut=et.state.lastY+dt}var St=(0,_positionFns.createCoreData)(_assertThisInitialized$4$1(et),At,ut);(0,_log.default)("DraggableCore: handleDrag: %j",St);var Dt=et.props.onDrag(it,St);if(Dt===!1||et.mounted===!1){try{et.handleDragStop(new MouseEvent("mouseup"))}catch{var $t=document.createEvent("MouseEvents");$t.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),et.handleDragStop($t)}return}et.setState({lastX:At,lastY:ut})}}),_defineProperty$7$1(_assertThisInitialized$4$1(et),"handleDragStop",function(it){if(et.state.dragging){var ot=(0,_positionFns.getControlPosition)(it,et.state.touchIdentifier,_assertThisInitialized$4$1(et));if(ot!=null){var At=ot.x,ut=ot.y;if(Array.isArray(et.props.grid)){var ft=At-et.state.lastX||0,dt=ut-et.state.lastY||0,Et=(0,_positionFns.snapToGrid)(et.props.grid,ft,dt),Bt=_slicedToArray$1$1(Et,2);ft=Bt[0],dt=Bt[1],At=et.state.lastX+ft,ut=et.state.lastY+dt}var St=(0,_positionFns.createCoreData)(_assertThisInitialized$4$1(et),At,ut),Dt=et.props.onStop(it,St);if(Dt===!1||et.mounted===!1)return!1;var $t=et.findDOMNode();$t&&et.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)($t.ownerDocument),(0,_log.default)("DraggableCore: handleDragStop: %j",St),et.setState({dragging:!1,lastX:NaN,lastY:NaN}),$t&&((0,_log.default)("DraggableCore: Removing handlers"),(0,_domFns.removeEvent)($t.ownerDocument,dragEventFor.move,et.handleDrag),(0,_domFns.removeEvent)($t.ownerDocument,dragEventFor.stop,et.handleDragStop))}}}),_defineProperty$7$1(_assertThisInitialized$4$1(et),"onMouseDown",function(it){return dragEventFor=eventsFor.mouse,et.handleDragStart(it)}),_defineProperty$7$1(_assertThisInitialized$4$1(et),"onMouseUp",function(it){return dragEventFor=eventsFor.mouse,et.handleDragStop(it)}),_defineProperty$7$1(_assertThisInitialized$4$1(et),"onTouchStart",function(it){return dragEventFor=eventsFor.touch,et.handleDragStart(it)}),_defineProperty$7$1(_assertThisInitialized$4$1(et),"onTouchEnd",function(it){return dragEventFor=eventsFor.touch,et.handleDragStop(it)}),et}return _createClass$4$1(_e,[{key:"componentDidMount",value:function(){this.mounted=!0;var tt=this.findDOMNode();tt&&(0,_domFns.addEvent)(tt,eventsFor.touch.start,this.onTouchStart,{passive:!1})}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var tt=this.findDOMNode();if(tt){var rt=tt.ownerDocument;(0,_domFns.removeEvent)(rt,eventsFor.mouse.move,this.handleDrag),(0,_domFns.removeEvent)(rt,eventsFor.touch.move,this.handleDrag),(0,_domFns.removeEvent)(rt,eventsFor.mouse.stop,this.handleDragStop),(0,_domFns.removeEvent)(rt,eventsFor.touch.stop,this.handleDragStop),(0,_domFns.removeEvent)(tt,eventsFor.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,_domFns.removeUserSelectStyles)(rt)}}},{key:"findDOMNode",value:function(){var tt,rt,nt;return(tt=this.props)!==null&&tt!==void 0&&tt.nodeRef?(rt=this.props)===null||rt===void 0||(nt=rt.nodeRef)===null||nt===void 0?void 0:nt.current:_reactDom.default.findDOMNode(this)}},{key:"render",value:function(){return React$5.cloneElement(React$5.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}]),_e}(React$5.Component);DraggableCore$2.default=DraggableCore$1;_defineProperty$7$1(DraggableCore$1,"displayName","DraggableCore");_defineProperty$7$1(DraggableCore$1,"propTypes",{allowAnyClick:_propTypes$7.default.bool,disabled:_propTypes$7.default.bool,enableUserSelectHack:_propTypes$7.default.bool,offsetParent:function($,_e){if($[_e]&&$[_e].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:_propTypes$7.default.arrayOf(_propTypes$7.default.number),handle:_propTypes$7.default.string,cancel:_propTypes$7.default.string,nodeRef:_propTypes$7.default.object,onStart:_propTypes$7.default.func,onDrag:_propTypes$7.default.func,onStop:_propTypes$7.default.func,onMouseDown:_propTypes$7.default.func,scale:_propTypes$7.default.number,className:_shims.dontSetMe,style:_shims.dontSetMe,transform:_shims.dontSetMe});_defineProperty$7$1(DraggableCore$1,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1});(function(j){function $(Zt){"@babel/helpers - typeof";return $=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(mr){return typeof mr}:function(mr){return mr&&typeof Symbol=="function"&&mr.constructor===Symbol&&mr!==Symbol.prototype?"symbol":typeof mr},$(Zt)}Object.defineProperty(j,"__esModule",{value:!0}),Object.defineProperty(j,"DraggableCore",{enumerable:!0,get:function(){return At.default}}),j.default=void 0;var _e=Bt(React$6),et=dt(propTypesExports),tt=dt(ReactDOM),rt=dt(require$$2$6),nt=domFns,it=positionFns,ot=shims,At=dt(DraggableCore$2),ut=dt(log$1$1),ft=["axis","bounds","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","position","positionOffset","scale"];function dt(Zt){return Zt&&Zt.__esModule?Zt:{default:Zt}}function Et(Zt){if(typeof WeakMap!="function")return null;var mr=new WeakMap,vr=new WeakMap;return(Et=function(Er){return Er?vr:mr})(Zt)}function Bt(Zt,mr){if(!mr&&Zt&&Zt.__esModule)return Zt;if(Zt===null||$(Zt)!=="object"&&typeof Zt!="function")return{default:Zt};var vr=Et(mr);if(vr&&vr.has(Zt))return vr.get(Zt);var _r={},Er=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Lr in Zt)if(Lr!=="default"&&Object.prototype.hasOwnProperty.call(Zt,Lr)){var Rr=Er?Object.getOwnPropertyDescriptor(Zt,Lr):null;Rr&&(Rr.get||Rr.set)?Object.defineProperty(_r,Lr,Rr):_r[Lr]=Zt[Lr]}return _r.default=Zt,vr&&vr.set(Zt,_r),_r}function St(){return St=Object.assign||function(Zt){for(var mr=1;mr=0)&&Object.prototype.propertyIsEnumerable.call(Zt,_r)&&(vr[_r]=Zt[_r])}return vr}function $t(Zt,mr){if(Zt==null)return{};var vr={},_r=Object.keys(Zt),Er,Lr;for(Lr=0;Lr<_r.length;Lr++)Er=_r[Lr],!(mr.indexOf(Er)>=0)&&(vr[Er]=Zt[Er]);return vr}function Rt(Zt,mr){var vr=Object.keys(Zt);if(Object.getOwnPropertySymbols){var _r=Object.getOwnPropertySymbols(Zt);mr&&(_r=_r.filter(function(Er){return Object.getOwnPropertyDescriptor(Zt,Er).enumerable})),vr.push.apply(vr,_r)}return vr}function wt(Zt){for(var mr=1;mrZt.length)&&(mr=Zt.length);for(var vr=0,_r=new Array(mr);vr"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ar(Zt){return ar=Object.setPrototypeOf?Object.getPrototypeOf:function(vr){return vr.__proto__||Object.getPrototypeOf(vr)},ar(Zt)}function Yt(Zt,mr,vr){return mr in Zt?Object.defineProperty(Zt,mr,{value:vr,enumerable:!0,configurable:!0,writable:!0}):Zt[mr]=vr,Zt}var pr=function(Zt){Wt(vr,Zt);var mr=ur(vr);function vr(_r){var Er;return Ht(this,vr),Er=mr.call(this,_r),Yt(hr(Er),"onDragStart",function(Lr,Rr){(0,ut.default)("Draggable: onDragStart: %j",Rr);var $r=Er.props.onStart(Lr,(0,it.createDraggableData)(hr(Er),Rr));if($r===!1)return!1;Er.setState({dragging:!0,dragged:!0})}),Yt(hr(Er),"onDrag",function(Lr,Rr){if(!Er.state.dragging)return!1;(0,ut.default)("Draggable: onDrag: %j",Rr);var $r=(0,it.createDraggableData)(hr(Er),Rr),xr={x:$r.x,y:$r.y};if(Er.props.bounds){var Fr=xr.x,Nr=xr.y;xr.x+=Er.state.slackX,xr.y+=Er.state.slackY;var Xt=(0,it.getBoundPosition)(hr(Er),xr.x,xr.y),cr=xt(Xt,2),ir=cr[0],Qr=cr[1];xr.x=ir,xr.y=Qr,xr.slackX=Er.state.slackX+(Fr-xr.x),xr.slackY=Er.state.slackY+(Nr-xr.y),$r.x=xr.x,$r.y=xr.y,$r.deltaX=xr.x-Er.state.x,$r.deltaY=xr.y-Er.state.y}var Or=Er.props.onDrag(Lr,$r);if(Or===!1)return!1;Er.setState(xr)}),Yt(hr(Er),"onDragStop",function(Lr,Rr){if(!Er.state.dragging)return!1;var $r=Er.props.onStop(Lr,(0,it.createDraggableData)(hr(Er),Rr));if($r===!1)return!1;(0,ut.default)("Draggable: onDragStop: %j",Rr);var xr={dragging:!1,slackX:0,slackY:0},Fr=!!Er.props.position;if(Fr){var Nr=Er.props.position,Xt=Nr.x,cr=Nr.y;xr.x=Xt,xr.y=cr}Er.setState(xr)}),Er.state={dragging:!1,dragged:!1,x:_r.position?_r.position.x:_r.defaultPosition.x,y:_r.position?_r.position.y:_r.defaultPosition.y,prevPropsPosition:wt({},_r.position),slackX:0,slackY:0,isElementSVG:!1},_r.position&&!(_r.onDrag||_r.onStop)&&console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),Er}return Kt(vr,[{key:"componentDidMount",value:function(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"findDOMNode",value:function(){var Er,Lr,Rr;return(Er=(Lr=this.props)===null||Lr===void 0||(Rr=Lr.nodeRef)===null||Rr===void 0?void 0:Rr.current)!==null&&Er!==void 0?Er:tt.default.findDOMNode(this)}},{key:"render",value:function(){var Er,Lr=this.props;Lr.axis,Lr.bounds;var Rr=Lr.children,$r=Lr.defaultPosition,xr=Lr.defaultClassName,Fr=Lr.defaultClassNameDragging,Nr=Lr.defaultClassNameDragged,Xt=Lr.position,cr=Lr.positionOffset;Lr.scale;var ir=Dt(Lr,ft),Qr={},Or=null,Yr=!!Xt,wr=!Yr||this.state.dragging,rr=Xt||$r,er={x:(0,it.canDragX)(this)&&wr?this.state.x:rr.x,y:(0,it.canDragY)(this)&&wr?this.state.y:rr.y};this.state.isElementSVG?Or=(0,nt.createSVGTransform)(er,cr):Qr=(0,nt.createCSSTransform)(er,cr);var lr=(0,rt.default)(Rr.props.className||"",xr,(Er={},Yt(Er,Fr,this.state.dragging),Yt(Er,Nr,this.state.dragged),Er));return _e.createElement(At.default,St({},ir,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),_e.cloneElement(_e.Children.only(Rr),{className:lr,style:wt(wt({},Rr.props.style),Qr),transform:Or}))}}],[{key:"getDerivedStateFromProps",value:function(Er,Lr){var Rr=Er.position,$r=Lr.prevPropsPosition;return Rr&&(!$r||Rr.x!==$r.x||Rr.y!==$r.y)?((0,ut.default)("Draggable: getDerivedStateFromProps %j",{position:Rr,prevPropsPosition:$r}),{x:Rr.x,y:Rr.y,prevPropsPosition:wt({},Rr)}):null}}]),vr}(_e.Component);j.default=pr,Yt(pr,"displayName","Draggable"),Yt(pr,"propTypes",wt(wt({},At.default.propTypes),{},{axis:et.default.oneOf(["both","x","y","none"]),bounds:et.default.oneOfType([et.default.shape({left:et.default.number,right:et.default.number,top:et.default.number,bottom:et.default.number}),et.default.string,et.default.oneOf([!1])]),defaultClassName:et.default.string,defaultClassNameDragging:et.default.string,defaultClassNameDragged:et.default.string,defaultPosition:et.default.shape({x:et.default.number,y:et.default.number}),positionOffset:et.default.shape({x:et.default.oneOfType([et.default.number,et.default.string]),y:et.default.oneOfType([et.default.number,et.default.string])}),position:et.default.shape({x:et.default.number,y:et.default.number}),className:ot.dontSetMe,style:ot.dontSetMe,transform:ot.dontSetMe})),Yt(pr,"defaultProps",wt(wt({},At.default.defaultProps),{},{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1}))})(Draggable$1);var _require=Draggable$1,Draggable=_require.default,DraggableCore=_require.DraggableCore;cjs.exports=Draggable;cjs.exports.default=Draggable;cjs.exports.DraggableCore=DraggableCore;var cjsExports=cjs.exports,reactResizable={exports:{}},Resizable$1={},utils$3={};utils$3.__esModule=!0;utils$3.cloneElement=cloneElement;var _react$2=_interopRequireDefault$7$1(React$6);function _interopRequireDefault$7$1(j){return j&&j.__esModule?j:{default:j}}function ownKeys$5(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread$5(j){for(var $=1;$=0)&&(_e[tt]=j[tt]);return _e}function ownKeys$4(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread$4(j){for(var $=1;$Math.abs(dt*ut)?rt=tt/ut:tt=rt*ut}var Et=tt,Bt=rt,St=this.slack||[0,0],Dt=St[0],$t=St[1];return tt+=Dt,rt+=$t,it&&(tt=Math.max(it[0],tt),rt=Math.max(it[1],rt)),ot&&(tt=Math.min(ot[0],tt),rt=Math.min(ot[1],rt)),this.slack=[Dt+(Et-tt),$t+(Bt-rt)],[tt,rt]},_e.resizeHandler=function(tt,rt){var nt=this;return function(it,ot){var At=ot.node,ut=ot.deltaX,ft=ot.deltaY;tt==="onResizeStart"&&nt.resetData();var dt=(nt.props.axis==="both"||nt.props.axis==="x")&&rt!=="n"&&rt!=="s",Et=(nt.props.axis==="both"||nt.props.axis==="y")&&rt!=="e"&&rt!=="w";if(!(!dt&&!Et)){var Bt=rt[0],St=rt[rt.length-1],Dt=At.getBoundingClientRect();if(nt.lastHandleRect!=null){if(St==="w"){var $t=Dt.left-nt.lastHandleRect.left;ut+=$t}if(Bt==="n"){var Rt=Dt.top-nt.lastHandleRect.top;ft+=Rt}}nt.lastHandleRect=Dt,St==="w"&&(ut=-ut),Bt==="n"&&(ft=-ft);var wt=nt.props.width+(dt?ut/nt.props.transformScale:0),xt=nt.props.height+(Et?ft/nt.props.transformScale:0),Nt=nt.runConstraints(wt,xt);wt=Nt[0],xt=Nt[1];var Ot=wt!==nt.props.width||xt!==nt.props.height,kt=typeof nt.props[tt]=="function"?nt.props[tt]:null,Jt=tt==="onResize"&&!Ot;kt&&!Jt&&(it.persist==null||it.persist(),kt(it,{node:At,size:{width:wt,height:xt},handle:rt})),tt==="onResizeStop"&&nt.resetData()}}},_e.renderResizeHandle=function(tt,rt){var nt=this.props.handle;if(!nt)return React$4.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+tt,ref:rt});if(typeof nt=="function")return nt(tt,rt);var it=typeof nt.type=="string",ot=_objectSpread$4({ref:rt},it?{}:{handleAxis:tt});return React$4.cloneElement(nt,ot)},_e.render=function(){var tt=this,rt=this.props,nt=rt.children,it=rt.className,ot=rt.draggableOpts;rt.width,rt.height,rt.handle,rt.handleSize,rt.lockAspectRatio,rt.axis,rt.minConstraints,rt.maxConstraints,rt.onResize,rt.onResizeStop,rt.onResizeStart;var At=rt.resizeHandles;rt.transformScale;var ut=_objectWithoutPropertiesLoose$3(rt,_excluded$3$1);return(0,_utils$4$1.cloneElement)(nt,_objectSpread$4(_objectSpread$4({},ut),{},{className:(it?it+" ":"")+"react-resizable",children:[].concat(nt.props.children,At.map(function(ft){var dt,Et=(dt=tt.handleRefs[ft])!=null?dt:tt.handleRefs[ft]=React$4.createRef();return React$4.createElement(_reactDraggable$1.DraggableCore,_extends$3({},ot,{nodeRef:Et,key:"resizableHandle-"+ft,onStop:tt.resizeHandler("onResizeStop",ft),onStart:tt.resizeHandler("onResizeStart",ft),onDrag:tt.resizeHandler("onResize",ft)}),tt.renderResizeHandle(ft,Et))}))}))},$}(React$4.Component);Resizable$1.default=Resizable;Resizable.propTypes=_propTypes$5.resizableProps;Resizable.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1};var ResizableBox$1={};ResizableBox$1.__esModule=!0;ResizableBox$1.default=void 0;var React$3=_interopRequireWildcard$3(React$6),_propTypes$4=_interopRequireDefault$5$1(propTypesExports),_Resizable=_interopRequireDefault$5$1(Resizable$1),_propTypes2=propTypes,_excluded$2$1=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function _interopRequireDefault$5$1(j){return j&&j.__esModule?j:{default:j}}function _getRequireWildcardCache$3(j){if(typeof WeakMap!="function")return null;var $=new WeakMap,_e=new WeakMap;return(_getRequireWildcardCache$3=function(tt){return tt?_e:$})(j)}function _interopRequireWildcard$3(j,$){if(!$&&j&&j.__esModule)return j;if(j===null||typeof j!="object"&&typeof j!="function")return{default:j};var _e=_getRequireWildcardCache$3($);if(_e&&_e.has(j))return _e.get(j);var et={},tt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var rt in j)if(rt!=="default"&&Object.prototype.hasOwnProperty.call(j,rt)){var nt=tt?Object.getOwnPropertyDescriptor(j,rt):null;nt&&(nt.get||nt.set)?Object.defineProperty(et,rt,nt):et[rt]=j[rt]}return et.default=j,_e&&_e.set(j,et),et}function _extends$2$1(){return _extends$2$1=Object.assign||function(j){for(var $=1;$=0)&&(_e[tt]=j[tt]);return _e}function _inheritsLoose$4(j,$){j.prototype=Object.create($.prototype),j.prototype.constructor=j,_setPrototypeOf$4$1(j,$)}function _setPrototypeOf$4$1(j,$){return _setPrototypeOf$4$1=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$4$1(j,$)}var ResizableBox=function(j){_inheritsLoose$4($,j);function $(){for(var et,tt=arguments.length,rt=new Array(tt),nt=0;nt is deprecated and will be removed soon. Use `compactType`: "horizontal" | "vertical" | null.')},compactType:_propTypes$3.default.oneOf(["vertical","horizontal"]),layout:function($){var _e=$.layout;_e!==void 0&&utils$1$1.validateLayout(_e,"layout")},margin:_propTypes$3.default.arrayOf(_propTypes$3.default.number),containerPadding:_propTypes$3.default.arrayOf(_propTypes$3.default.number),rowHeight:_propTypes$3.default.number,maxRows:_propTypes$3.default.number,isBounded:_propTypes$3.default.bool,isDraggable:_propTypes$3.default.bool,isResizable:_propTypes$3.default.bool,allowOverlap:_propTypes$3.default.bool,preventCollision:_propTypes$3.default.bool,useCSSTransforms:_propTypes$3.default.bool,transformScale:_propTypes$3.default.number,isDroppable:_propTypes$3.default.bool,resizeHandles:resizeHandleAxesType,resizeHandle:resizeHandleType,onLayoutChange:_propTypes$3.default.func,onDragStart:_propTypes$3.default.func,onDrag:_propTypes$3.default.func,onDragStop:_propTypes$3.default.func,onResizeStart:_propTypes$3.default.func,onResize:_propTypes$3.default.func,onResizeStop:_propTypes$3.default.func,onDrop:_propTypes$3.default.func,droppingItem:_propTypes$3.default.shape({i:_propTypes$3.default.string.isRequired,w:_propTypes$3.default.number.isRequired,h:_propTypes$3.default.number.isRequired}),children:function($,_e){var et=$[_e],tt={};_react$1.default.Children.forEach(et,function(rt){if((rt==null?void 0:rt.key)!=null){if(tt[rt.key])throw new Error('Duplicate child key "'+rt.key+'" found! This will cause problems in ReactGridLayout.');tt[rt.key]=!0}})},innerRef:_propTypes$3.default.any};ReactGridLayoutPropTypes.default=_default$2;function _typeof$3$1(j){"@babel/helpers - typeof";return _typeof$3$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$3$1(j)}Object.defineProperty(GridItem$1,"__esModule",{value:!0});GridItem$1.default=void 0;var _react=_interopRequireDefault$3$1(React$6),_propTypes$2=_interopRequireDefault$3$1(propTypesExports),_reactDraggable=cjsExports,_reactResizable=reactResizableExports,_utils$3$1=utils$1$1,_calculateUtils$1=calculateUtils,_ReactGridLayoutPropTypes$1=ReactGridLayoutPropTypes,_clsx$2=_interopRequireDefault$3$1(require$$2$6);function _interopRequireDefault$3$1(j){return j&&j.__esModule?j:{default:j}}function ownKeys$2$1(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread$2$1(j){for(var $=1;$"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3$1(j){return _getPrototypeOf$3$1=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$3$1(j)}function _defineProperty$3$1(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var GridItem=function(j){_inherits$3$1(_e,j);var $=_createSuper$3$1(_e);function _e(){var et;_classCallCheck$3$1(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt0&&arguments[0]!==void 0?arguments[0]:this.props;return{cols:tt.cols,containerPadding:tt.containerPadding,containerWidth:tt.containerWidth,margin:tt.margin,maxRows:tt.maxRows,rowHeight:tt.rowHeight}}},{key:"createStyle",value:function(tt){var rt=this.props,nt=rt.usePercentages,it=rt.containerWidth,ot=rt.useCSSTransforms,At;return ot?At=(0,_utils$3$1.setTransform)(tt):(At=(0,_utils$3$1.setTopLeft)(tt),nt&&(At.left=(0,_utils$3$1.perc)(tt.left/it),At.width=(0,_utils$3$1.perc)(tt.width/it))),At}},{key:"mixinDraggable",value:function(tt,rt){return _react.default.createElement(_reactDraggable.DraggableCore,{disabled:!rt,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},tt)}},{key:"mixinResizable",value:function(tt,rt,nt){var it=this.props,ot=it.cols,At=it.x,ut=it.minW,ft=it.minH,dt=it.maxW,Et=it.maxH,Bt=it.transformScale,St=it.resizeHandles,Dt=it.resizeHandle,$t=this.getPositionParams(),Rt=(0,_calculateUtils$1.calcGridItemPosition)($t,0,0,ot-At,0).width,wt=(0,_calculateUtils$1.calcGridItemPosition)($t,0,0,ut,ft),xt=(0,_calculateUtils$1.calcGridItemPosition)($t,0,0,dt,Et),Nt=[wt.width,wt.height],Ot=[Math.min(xt.width,Rt),Math.min(xt.height,1/0)];return _react.default.createElement(_reactResizable.Resizable,{draggableOpts:{disabled:!nt},className:nt?void 0:"react-resizable-hide",width:rt.width,height:rt.height,minConstraints:Nt,maxConstraints:Ot,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:Bt,resizeHandles:St,handle:Dt},tt)}},{key:"onResizeHandler",value:function(tt,rt,nt){var it=rt.node,ot=rt.size,At=this.props[nt];if(At){var ut=this.props,ft=ut.cols,dt=ut.x,Et=ut.y,Bt=ut.i,St=ut.maxH,Dt=ut.minH,$t=this.props,Rt=$t.minW,wt=$t.maxW,xt=(0,_calculateUtils$1.calcWH)(this.getPositionParams(),ot.width,ot.height,dt,Et),Nt=xt.w,Ot=xt.h;Rt=Math.max(Rt,1),wt=Math.min(wt,ft-dt),Nt=(0,_calculateUtils$1.clamp)(Nt,Rt,wt),Ot=(0,_calculateUtils$1.clamp)(Ot,Dt,St),this.setState({resizing:nt==="onResizeStop"?null:ot}),At.call(this,Bt,Nt,Ot,{e:tt,node:it,size:ot})}}},{key:"render",value:function(){var tt=this.props,rt=tt.x,nt=tt.y,it=tt.w,ot=tt.h,At=tt.isDraggable,ut=tt.isResizable,ft=tt.droppingPosition,dt=tt.useCSSTransforms,Et=(0,_calculateUtils$1.calcGridItemPosition)(this.getPositionParams(),rt,nt,it,ot,this.state),Bt=_react.default.Children.only(this.props.children),St=_react.default.cloneElement(Bt,{ref:this.elementRef,className:(0,_clsx$2.default)("react-grid-item",Bt.props.className,this.props.className,{static:this.props.static,resizing:!!this.state.resizing,"react-draggable":At,"react-draggable-dragging":!!this.state.dragging,dropping:!!ft,cssTransforms:dt}),style:_objectSpread$2$1(_objectSpread$2$1(_objectSpread$2$1({},this.props.style),Bt.props.style),this.createStyle(Et))});return St=this.mixinResizable(St,Et,ut),St=this.mixinDraggable(St,At),St}}]),_e}(_react.default.Component);GridItem$1.default=GridItem;_defineProperty$3$1(GridItem,"propTypes",{children:_propTypes$2.default.element,cols:_propTypes$2.default.number.isRequired,containerWidth:_propTypes$2.default.number.isRequired,rowHeight:_propTypes$2.default.number.isRequired,margin:_propTypes$2.default.array.isRequired,maxRows:_propTypes$2.default.number.isRequired,containerPadding:_propTypes$2.default.array.isRequired,x:_propTypes$2.default.number.isRequired,y:_propTypes$2.default.number.isRequired,w:_propTypes$2.default.number.isRequired,h:_propTypes$2.default.number.isRequired,minW:function($,_e){var et=$[_e];if(typeof et!="number")return new Error("minWidth not Number");if(et>$.w||et>$.maxW)return new Error("minWidth larger than item width/maxWidth")},maxW:function($,_e){var et=$[_e];if(typeof et!="number")return new Error("maxWidth not Number");if(et<$.w||et<$.minW)return new Error("maxWidth smaller than item width/minWidth")},minH:function($,_e){var et=$[_e];if(typeof et!="number")return new Error("minHeight not Number");if(et>$.h||et>$.maxH)return new Error("minHeight larger than item height/maxHeight")},maxH:function($,_e){var et=$[_e];if(typeof et!="number")return new Error("maxHeight not Number");if(et<$.h||et<$.minH)return new Error("maxHeight smaller than item height/minHeight")},i:_propTypes$2.default.string.isRequired,resizeHandles:_ReactGridLayoutPropTypes$1.resizeHandleAxesType,resizeHandle:_ReactGridLayoutPropTypes$1.resizeHandleType,onDragStop:_propTypes$2.default.func,onDragStart:_propTypes$2.default.func,onDrag:_propTypes$2.default.func,onResizeStop:_propTypes$2.default.func,onResizeStart:_propTypes$2.default.func,onResize:_propTypes$2.default.func,isDraggable:_propTypes$2.default.bool.isRequired,isResizable:_propTypes$2.default.bool.isRequired,isBounded:_propTypes$2.default.bool.isRequired,static:_propTypes$2.default.bool,useCSSTransforms:_propTypes$2.default.bool.isRequired,transformScale:_propTypes$2.default.number,className:_propTypes$2.default.string,handle:_propTypes$2.default.string,cancel:_propTypes$2.default.string,droppingPosition:_propTypes$2.default.shape({e:_propTypes$2.default.object.isRequired,left:_propTypes$2.default.number.isRequired,top:_propTypes$2.default.number.isRequired})});_defineProperty$3$1(GridItem,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1});function _typeof$2$1(j){"@babel/helpers - typeof";return _typeof$2$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$2$1(j)}Object.defineProperty(ReactGridLayout$1,"__esModule",{value:!0});ReactGridLayout$1.default=void 0;var React$2=_interopRequireWildcard$2(React$6),_isEqual$1=_interopRequireDefault$2$1(isEqual_1),_clsx$1=_interopRequireDefault$2$1(require$$2$6),_utils$2$1=utils$1$1,_calculateUtils=calculateUtils,_GridItem=_interopRequireDefault$2$1(GridItem$1),_ReactGridLayoutPropTypes=_interopRequireDefault$2$1(ReactGridLayoutPropTypes);function _interopRequireDefault$2$1(j){return j&&j.__esModule?j:{default:j}}function _getRequireWildcardCache$2(j){if(typeof WeakMap!="function")return null;var $=new WeakMap,_e=new WeakMap;return(_getRequireWildcardCache$2=function(tt){return tt?_e:$})(j)}function _interopRequireWildcard$2(j,$){if(!$&&j&&j.__esModule)return j;if(j===null||_typeof$2$1(j)!=="object"&&typeof j!="function")return{default:j};var _e=_getRequireWildcardCache$2($);if(_e&&_e.has(j))return _e.get(j);var et={},tt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var rt in j)if(rt!=="default"&&Object.prototype.hasOwnProperty.call(j,rt)){var nt=tt?Object.getOwnPropertyDescriptor(j,rt):null;nt&&(nt.get||nt.set)?Object.defineProperty(et,rt,nt):et[rt]=j[rt]}return et.default=j,_e&&_e.set(j,et),et}function _toConsumableArray$i(j){return _arrayWithoutHoles$i(j)||_iterableToArray$i(j)||_unsupportedIterableToArray$j(j)||_nonIterableSpread$i()}function _nonIterableSpread$i(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArray$i(j){if(typeof Symbol<"u"&&j[Symbol.iterator]!=null||j["@@iterator"]!=null)return Array.from(j)}function _arrayWithoutHoles$i(j){if(Array.isArray(j))return _arrayLikeToArray$j(j)}function ownKeys$1$1(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread$1$1(j){for(var $=1;$j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _iterableToArrayLimit$6(j,$){var _e=j==null?null:typeof Symbol<"u"&&j[Symbol.iterator]||j["@@iterator"];if(_e!=null){var et=[],tt=!0,rt=!1,nt,it;try{for(_e=_e.call(j);!(tt=(nt=_e.next()).done)&&(et.push(nt.value),!($&&et.length===$));tt=!0);}catch(ot){rt=!0,it=ot}finally{try{!tt&&_e.return!=null&&_e.return()}finally{if(rt)throw it}}return et}}function _arrayWithHoles$6(j){if(Array.isArray(j))return j}function _classCallCheck$2$1(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2$1(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$2$1(j,$,_e){return $&&_defineProperties$2$1(j.prototype,$),_e&&_defineProperties$2$1(j,_e),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$2$1(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),$&&_setPrototypeOf$2$1(j,$)}function _setPrototypeOf$2$1(j,$){return _setPrototypeOf$2$1=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$2$1(j,$)}function _createSuper$2$1(j){var $=_isNativeReflectConstruct$2$1();return function(){var et=_getPrototypeOf$2$1(j),tt;if($){var rt=_getPrototypeOf$2$1(this).constructor;tt=Reflect.construct(et,arguments,rt)}else tt=et.apply(this,arguments);return _possibleConstructorReturn$2$1(this,tt)}}function _possibleConstructorReturn$2$1(j,$){if($&&(_typeof$2$1($)==="object"||typeof $=="function"))return $;if($!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$2$1(j)}function _assertThisInitialized$2$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$2$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2$1(j){return _getPrototypeOf$2$1=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$2$1(j)}function _defineProperty$2$1(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var layoutClassName$1="react-grid-layout",isFirefox=!1;try{isFirefox=/firefox/i.test(navigator.userAgent)}catch{}var ReactGridLayout=function(j){_inherits$2$1(_e,j);var $=_createSuper$2$1(_e);function _e(){var et;_classCallCheck$2$1(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt0,Ht){var Kt=1/0,Wt=1/0;Gt.forEach(function(Vt){Vt.x>jt.x&&(Kt=Math.min(Kt,Vt.x)),Vt.y>jt.y&&(Wt=Math.min(Wt,Vt.y))}),Number.isFinite(Kt)&&(jt.w=Kt-jt.x),Number.isFinite(Wt)&&(jt.h=Wt-jt.y)}}return Ht||(jt.w=ot,jt.h=At),jt}),Nt=_slicedToArray$6(xt,2),Ot=Nt[0],kt=Nt[1];if(kt){var Jt={w:kt.w,h:kt.h,x:kt.x,y:kt.y,static:!0,i:it};et.props.onResize(Ot,St,kt,Jt,ft,dt),et.setState({layout:wt?Ot:(0,_utils$2$1.compact)(Ot,(0,_utils$2$1.compactType)(et.props),$t),activeDrag:Jt})}}),_defineProperty$2$1(_assertThisInitialized$2$1(et),"onResizeStop",function(it,ot,At,ut){var ft=ut.e,dt=ut.node,Et=et.state,Bt=Et.layout,St=Et.oldResizeItem,Dt=et.props,$t=Dt.cols,Rt=Dt.allowOverlap,wt=(0,_utils$2$1.getLayoutItem)(Bt,it);et.props.onResizeStop(Bt,St,wt,null,ft,dt);var xt=Rt?Bt:(0,_utils$2$1.compact)(Bt,(0,_utils$2$1.compactType)(et.props),$t),Nt=et.state.oldLayout;et.setState({activeDrag:null,layout:xt,oldResizeItem:null,oldLayout:null}),et.onLayoutMaybeChanged(xt,Nt)}),_defineProperty$2$1(_assertThisInitialized$2$1(et),"onDragOver",function(it){var ot;if(it.preventDefault(),it.stopPropagation(),isFirefox&&!((ot=it.nativeEvent.target)!==null&&ot!==void 0&&ot.classList.contains(layoutClassName$1)))return!1;var At=et.props,ut=At.droppingItem,ft=At.onDropDragOver,dt=At.margin,Et=At.cols,Bt=At.rowHeight,St=At.maxRows,Dt=At.width,$t=At.containerPadding,Rt=At.transformScale,wt=ft==null?void 0:ft(it);if(wt===!1)return et.state.droppingDOMNode&&et.removeDroppingPlaceholder(),!1;var xt=_objectSpread$1$1(_objectSpread$1$1({},ut),wt),Nt=et.state.layout,Ot=it.nativeEvent,kt=Ot.layerX,Jt=Ot.layerY,jt={left:kt/Rt,top:Jt/Rt,e:it};if(et.state.droppingDOMNode){if(et.state.droppingPosition){var Kt=et.state.droppingPosition,Wt=Kt.left,Vt=Kt.top,ur=Wt!=kt||Vt!=Jt;ur&&et.setState({droppingPosition:jt})}}else{var Ht={cols:Et,margin:dt,maxRows:St,rowHeight:Bt,containerWidth:Dt,containerPadding:$t||dt},Gt=(0,_calculateUtils.calcXY)(Ht,Jt,kt,xt.w,xt.h);et.setState({droppingDOMNode:React$2.createElement("div",{key:xt.i}),droppingPosition:jt,layout:[].concat(_toConsumableArray$i(Nt),[_objectSpread$1$1(_objectSpread$1$1({},xt),{},{x:Gt.x,y:Gt.y,static:!1,isDraggable:!0})])})}}),_defineProperty$2$1(_assertThisInitialized$2$1(et),"removeDroppingPlaceholder",function(){var it=et.props,ot=it.droppingItem,At=it.cols,ut=et.state.layout,ft=(0,_utils$2$1.compact)(ut.filter(function(dt){return dt.i!==ot.i}),(0,_utils$2$1.compactType)(et.props),At);et.setState({layout:ft,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})}),_defineProperty$2$1(_assertThisInitialized$2$1(et),"onDragLeave",function(it){it.preventDefault(),it.stopPropagation(),et.dragEnterCounter--,et.dragEnterCounter===0&&et.removeDroppingPlaceholder()}),_defineProperty$2$1(_assertThisInitialized$2$1(et),"onDragEnter",function(it){it.preventDefault(),it.stopPropagation(),et.dragEnterCounter++}),_defineProperty$2$1(_assertThisInitialized$2$1(et),"onDrop",function(it){it.preventDefault(),it.stopPropagation();var ot=et.props.droppingItem,At=et.state.layout,ut=At.find(function(ft){return ft.i===ot.i});et.dragEnterCounter=0,et.removeDroppingPlaceholder(),et.props.onDrop(At,ut,it)}),et}return _createClass$2$1(_e,[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(tt,rt){return this.props.children!==tt.children||!(0,_utils$2$1.fastRGLPropsEqual)(this.props,tt,_isEqual$1.default)||this.state.activeDrag!==rt.activeDrag||this.state.mounted!==rt.mounted||this.state.droppingPosition!==rt.droppingPosition}},{key:"componentDidUpdate",value:function(tt,rt){if(!this.state.activeDrag){var nt=this.state.layout,it=rt.layout;this.onLayoutMaybeChanged(nt,it)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var tt=(0,_utils$2$1.bottom)(this.state.layout),rt=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return tt*this.props.rowHeight+(tt-1)*this.props.margin[1]+rt*2+"px"}}},{key:"onLayoutMaybeChanged",value:function(tt,rt){rt||(rt=this.state.layout),(0,_isEqual$1.default)(rt,tt)||this.props.onLayoutChange(tt)}},{key:"placeholder",value:function(){var tt=this.state.activeDrag;if(!tt)return null;var rt=this.props,nt=rt.width,it=rt.cols,ot=rt.margin,At=rt.containerPadding,ut=rt.rowHeight,ft=rt.maxRows,dt=rt.useCSSTransforms,Et=rt.transformScale;return React$2.createElement(_GridItem.default,{w:tt.w,h:tt.h,x:tt.x,y:tt.y,i:tt.i,className:"react-grid-placeholder",containerWidth:nt,cols:it,margin:ot,containerPadding:At||ot,maxRows:ft,rowHeight:ut,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:dt,transformScale:Et},React$2.createElement("div",null))}},{key:"processGridItem",value:function(tt,rt){if(!(!tt||!tt.key)){var nt=(0,_utils$2$1.getLayoutItem)(this.state.layout,String(tt.key));if(!nt)return null;var it=this.props,ot=it.width,At=it.cols,ut=it.margin,ft=it.containerPadding,dt=it.rowHeight,Et=it.maxRows,Bt=it.isDraggable,St=it.isResizable,Dt=it.isBounded,$t=it.useCSSTransforms,Rt=it.transformScale,wt=it.draggableCancel,xt=it.draggableHandle,Nt=it.resizeHandles,Ot=it.resizeHandle,kt=this.state,Jt=kt.mounted,jt=kt.droppingPosition,Ht=typeof nt.isDraggable=="boolean"?nt.isDraggable:!nt.static&&Bt,Gt=typeof nt.isResizable=="boolean"?nt.isResizable:!nt.static&&St,Kt=nt.resizeHandles||Nt,Wt=Ht&&Dt&&nt.isBounded!==!1;return React$2.createElement(_GridItem.default,{containerWidth:ot,cols:At,margin:ut,containerPadding:ft||ut,maxRows:Et,rowHeight:dt,cancel:wt,handle:xt,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:Ht,isResizable:Gt,isBounded:Wt,useCSSTransforms:$t&&Jt,usePercentages:!Jt,transformScale:Rt,w:nt.w,h:nt.h,x:nt.x,y:nt.y,i:nt.i,minH:nt.minH,minW:nt.minW,maxH:nt.maxH,maxW:nt.maxW,static:nt.static,droppingPosition:rt?jt:void 0,resizeHandles:Kt,resizeHandle:Ot},tt)}}},{key:"render",value:function(){var tt=this,rt=this.props,nt=rt.className,it=rt.style,ot=rt.isDroppable,At=rt.innerRef,ut=(0,_clsx$1.default)(layoutClassName$1,nt),ft=_objectSpread$1$1({height:this.containerHeight()},it);return React$2.createElement("div",{ref:At,className:ut,style:ft,onDrop:ot?this.onDrop:_utils$2$1.noop,onDragLeave:ot?this.onDragLeave:_utils$2$1.noop,onDragEnter:ot?this.onDragEnter:_utils$2$1.noop,onDragOver:ot?this.onDragOver:_utils$2$1.noop},React$2.Children.map(this.props.children,function(dt){return tt.processGridItem(dt)}),ot&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}],[{key:"getDerivedStateFromProps",value:function(tt,rt){var nt;if(rt.activeDrag)return null;if(!(0,_isEqual$1.default)(tt.layout,rt.propsLayout)||tt.compactType!==rt.compactType?nt=tt.layout:(0,_utils$2$1.childrenEqual)(tt.children,rt.children)||(nt=rt.layout),nt){var it=(0,_utils$2$1.synchronizeLayoutWithChildren)(nt,tt.children,tt.cols,(0,_utils$2$1.compactType)(tt),tt.allowOverlap);return{layout:it,compactType:tt.compactType,children:tt.children,propsLayout:tt.layout}}return null}}]),_e}(React$2.Component);ReactGridLayout$1.default=ReactGridLayout;_defineProperty$2$1(ReactGridLayout,"displayName","ReactGridLayout");_defineProperty$2$1(ReactGridLayout,"propTypes",_ReactGridLayoutPropTypes.default);_defineProperty$2$1(ReactGridLayout,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:_utils$2$1.noop,onDragStart:_utils$2$1.noop,onDrag:_utils$2$1.noop,onDragStop:_utils$2$1.noop,onResizeStart:_utils$2$1.noop,onResize:_utils$2$1.noop,onResizeStop:_utils$2$1.noop,onDrop:_utils$2$1.noop,onDropDragOver:_utils$2$1.noop});var ResponsiveReactGridLayout$1={},responsiveUtils={};Object.defineProperty(responsiveUtils,"__esModule",{value:!0});responsiveUtils.findOrGenerateResponsiveLayout=findOrGenerateResponsiveLayout;responsiveUtils.getBreakpointFromWidth=getBreakpointFromWidth;responsiveUtils.getColsFromBreakpoint=getColsFromBreakpoint;responsiveUtils.sortBreakpoints=sortBreakpoints;var _utils$1$1=utils$1$1;function getBreakpointFromWidth(j,$){for(var _e=sortBreakpoints(j),et=_e[0],tt=1,rt=_e.length;ttj[nt]&&(et=nt)}return et}function getColsFromBreakpoint(j,$){if(!$[j])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+j+" is missing!");return $[j]}function findOrGenerateResponsiveLayout(j,$,_e,et,tt,rt){if(j[_e])return(0,_utils$1$1.cloneLayout)(j[_e]);for(var nt=j[et],it=sortBreakpoints($),ot=it.slice(it.indexOf(_e)),At=0,ut=ot.length;At=0)&&Object.prototype.propertyIsEnumerable.call(j,et)&&(_e[et]=j[et])}return _e}function _objectWithoutPropertiesLoose$1(j,$){if(j==null)return{};var _e={},et=Object.keys(j),tt,rt;for(rt=0;rt=0)&&(_e[tt]=j[tt]);return _e}function ownKeys$8(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread$8(j){for(var $=1;$"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1$1(j){return _getPrototypeOf$1$1=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$1$1(j)}function _defineProperty$1$1(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var type=function($){return Object.prototype.toString.call($)};function getIndentationValue(j,$){return j==null?null:Array.isArray(j)?j:j[$]}var ResponsiveReactGridLayout=function(j){_inherits$1$1(_e,j);var $=_createSuper$1$1(_e);function _e(){var et;_classCallCheck$1$1(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt=0)&&Object.prototype.propertyIsEnumerable.call(j,et)&&(_e[et]=j[et])}return _e}function _objectWithoutPropertiesLoose$6(j,$){if(j==null)return{};var _e={},et=Object.keys(j),tt,rt;for(rt=0;rt=0)&&(_e[tt]=j[tt]);return _e}function _classCallCheck$x(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$w(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$w(j,$,_e){return $&&_defineProperties$w(j.prototype,$),_e&&_defineProperties$w(j,_e),Object.defineProperty(j,"prototype",{writable:!1}),j}function _inherits$v(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),Object.defineProperty(j,"prototype",{writable:!1}),$&&_setPrototypeOf$w(j,$)}function _setPrototypeOf$w(j,$){return _setPrototypeOf$w=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$w(j,$)}function _createSuper$v(j){var $=_isNativeReflectConstruct$v();return function(){var et=_getPrototypeOf$v(j),tt;if($){var rt=_getPrototypeOf$v(this).constructor;tt=Reflect.construct(et,arguments,rt)}else tt=et.apply(this,arguments);return _possibleConstructorReturn$v(this,tt)}}function _possibleConstructorReturn$v(j,$){if($&&(_typeof$w($)==="object"||typeof $=="function"))return $;if($!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$w(j)}function _assertThisInitialized$w(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$v(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$v(j){return _getPrototypeOf$v=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$v(j)}function _defineProperty$g(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var layoutClassName="react-grid-layout";function WidthProvideRGL(j){var $;return $=function(_e){_inherits$v(tt,_e);var et=_createSuper$v(tt);function tt(){var rt;_classCallCheck$x(this,tt);for(var nt=arguments.length,it=new Array(nt),ot=0;ot({vitessceContainer:{position:"relative",margin:"0",textAlign:"left",backgroundColor:j.palette.gridLayoutBackground,"& div":{fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"',fontSize:"16px",fontWeight:"400",lineHeight:"1.5",textAlign:"left"},"& p":{marginTop:"0",marginBottom:"16px"},"& *, ::after, ::before":{boxSizing:"border-box"},"@global .react-grid-layout":{transition:"height 200ms ease",height:"auto",position:"absolute",width:"100%"},"@global .react-grid-item":{transition:"all 200ms ease",transitionProperty:"left, top",flexDirection:"column!important",display:"flex!important",paddingRight:"10px"},"@global .react-grid-item img":{pointerEvents:"none",userSelect:"none"},"@global .react-grid-item.cssTransforms":{transitionProperty:"transform"},"@global .react-grid-item.resizing":{zIndex:"1",willChange:"width, height"},"@global .react-grid-item.react-draggable-dragging":{transition:"none",zIndex:"3",willChange:"transform"},"@global .react-grid-item.dropping":{visibility:"hidden"},"@global .react-grid-item.react-grid-placeholder":{background:"red",opacity:"0.2",transitionDuration:"100ms",zIndex:"2",userSelect:"none"},"@global .react-grid-item > .react-resizable-handle":{position:"absolute",width:"20px",height:"20px"},"@global .react-grid-item > .react-resizable-handle::after":{content:'""',position:"absolute",right:"3px",bottom:"3px",width:"5px",height:"5px",borderRight:"2px solid rgba(0, 0, 0, 0.4)",borderBottom:"2px solid rgba(0, 0, 0, 0.4)"},"@global .react-resizable-hide > .react-resizable-handle":{display:"none"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-sw":{bottom:"0",left:"0",cursor:"sw-resize",transform:"rotate(90deg)"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-se":{bottom:"0",right:"0",cursor:"se-resize"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-nw":{top:"0",left:"0",cursor:"nw-resize",transform:"rotate(180deg)"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-ne":{top:"0",right:"0",cursor:"ne-resize",transform:"rotate(270deg)"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-w":{top:"50%",marginTop:"-10px",cursor:"ew-resize",left:"0",transform:"rotate(135deg)"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-e":{top:"50%",marginTop:"-10px",cursor:"ew-resize",right:"0",transform:"rotate(315deg)"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-n":{left:"50%",marginLeft:"-10px",cursor:"ns-resize",top:"0",transform:"rotate(225deg)"},"@global .react-grid-item > .react-resizable-handle.react-resizable-handle-s":{left:"50%",marginLeft:"-10px",cursor:"ns-resize",bottom:"0",transform:"rotate(45deg)"},"@global .react-resizable":{position:"relative"},"@global .react-resizable-handle":{position:"absolute",width:"20px",height:"20px",backgroundRepeat:"no-repeat",backgroundOrigin:"content-box",boxSizing:"border-box",backgroundImage:"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+')",backgroundPosition:"bottom right",padding:"0 3px 3px 0"},"@global .react-resizable-handle-sw":{bottom:"0",left:"0",cursor:"sw-resize",transform:"rotate(90deg)"},"@global .react-resizable-handle-se":{bottom:"0",right:"0",cursor:"se-resize"},"@global .react-resizable-handle-nw":{top:"0",left:"0",cursor:"nw-resize",transform:"rotate(180deg)"},"@global .react-resizable-handle-ne":{top:"0",right:"0",cursor:"ne-resize",transform:"rotate(270deg)"},"@global .react-resizable-handle-w":{top:"50%",marginTop:"-10px",cursor:"ew-resize",left:"0",transform:"rotate(135deg)"},"@global .react-resizable-handle-e":{top:"50%",marginTop:"-10px",cursor:"ew-resize",right:"0",transform:"rotate(315deg)"},"@global .react-resizable-handle-n":{left:"50%",marginLeft:"-10px",cursor:"ns-resize",top:"0",transform:"rotate(225deg)"},"@global .react-resizable-handle-s":{left:"50%",marginLeft:"-10px",cursor:"ns-resize",bottom:"0",transform:"rotate(45deg)"},"@global .react-draggable-transparent-selection .react-grid-item":{userSelect:"none !important"}}}));makeStyles(j=>({title:{color:j.palette.primaryForeground,overflowX:"hidden",display:"flex",flexDirection:"row",flexShrink:"0"},titleLeft:{flexShrink:"1",textOverflow:"ellipsis",whiteSpace:"nowrap"},titleInfo:{width:"100%",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",fontSize:"80% !important",opacity:".8",padding:"0 4px",justifyContent:"center",lineHeight:"25px !important",flexShrink:"1",textAlign:"right !important"},titleButtons:{display:"flex",flexDirection:"row",flexGrow:"1",flexShrink:"0",justifyContent:"right","& div":{display:"inline-block"}},card:{border:`1px solid ${j.palette.cardBorder}`,flex:"1 1 auto",minHeight:"1px",padding:"12px",marginTop:"8px",marginBottom:"8px",position:"relative",display:"flex",flexDirection:"column",minWidth:"0",wordWrap:"break-word",backgroundClip:"border-box",borderRadius:"4px"},noScrollCard:{backgroundColor:j.palette.secondaryBackground,color:j.palette.secondaryForeground},scrollCard:{backgroundColor:j.palette.primaryBackground,color:j.palette.primaryForeground,"& a":{color:j.palette.primaryForegroundActive},overflowY:"auto"},spatialCard:{backgroundColor:j.palette.black,color:j.palette.white,"& a":{color:j.palette.white}}}));makeStyles(j=>({warningLayout:{backgroundColor:j.palette.gridLayoutBackground,position:"absolute",width:"100%",height:"100vh"},containerFluid:{width:"100%",padding:"15px",marginRight:"auto",marginLeft:"auto",boxSizing:"border-box",display:"flex"},row:{flexGrow:"1"},warningCard:{border:`1px solid ${j.palette.cardBorder}`,flex:"1 1 auto",minHeight:"1px",padding:"12px",marginTop:"8px",marginBottom:"8px",position:"relative",display:"flex",flexDirection:"column",minWidth:"0",wordWrap:"break-word",backgroundClip:"border-box",borderRadius:"4px",backgroundColor:j.palette.primaryBackground,color:j.palette.primaryForeground}}));createSvgIcon$1(reactExports.createElement("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");createSvgIcon$1(reactExports.createElement("path",{d:"M7 14l5-5 5 5z"}),"ArrowDropUp");createSvgIcon$1(reactExports.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");createSvgIcon$1(reactExports.createElement("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"}),"CloudDownload");createSvgIcon$1(reactExports.createElement("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}),"Settings");makeStyles(()=>({loadingIndicatorBackdrop:{position:"absolute",top:"0",left:"0",zIndex:"1040",width:"100%",height:"100%",borderRadius:"4px",backgroundColor:"rgba(0, 0, 0, 0.5)"},loadingIndicatorContainer:{display:"grid",placeItems:"center",position:"absolute",width:"100%",height:"100%"},visuallyHidden:{position:"absolute",height:"1px",width:"1px",overflow:"hidden",clip:"rect(1px, 1px, 1px, 1px)",whiteSpace:"nowrap"}}));makeStyles(()=>({paper:{maxHeight:200,overflow:"auto"},container:{position:"relative",left:0,top:0}}));makeStyles(j=>({iconButton:{border:"none",marginLeft:0,background:"none",color:j.palette.primaryForeground,paddingLeft:"0.25em",paddingRight:"0.25em",borderRadius:"2px","&:hover":{backgroundColor:j.palette.primaryBackgroundLight},"&:first-child":{marginLeft:"0.25em"},"&:last-child":{marginRight:"0.25em"},"& svg":{width:"0.7em",height:"0.7em",verticalAlign:"middle",overflow:"visible"}},downloadLink:{color:j.palette.primaryForeground}}));class AbstractLoaderError{constructor($){this.message=$}warnInConsole(){throw new Error("The warnInConsole() method has not been implemented.")}}class AbstractLoader{constructor({type:$,fileType:_e,url:et,requestInit:tt,options:rt,coordinationValues:nt}){this.fileType=_e,this.type=$,this.url=et,this.requestInit=tt,this.options=rt,this.coordinationValues=nt}load(){return Promise.resolve(!0)}}class AbstractTwoStepLoader extends AbstractLoader{constructor($,_e){super(_e),this.dataSource=$}}class LoaderResult{constructor($,_e,et=null){this.data=$,this.url=_e,this.coordinationValues=et}}const $b5e257d569688ac6$var$defaultContext={prefix:String(Math.round(Math.random()*1e10)),current:0},$b5e257d569688ac6$var$SSRContext=React$6.createContext($b5e257d569688ac6$var$defaultContext),$b5e257d569688ac6$var$IsSSRContext=React$6.createContext(!1);let $b5e257d569688ac6$var$canUseDOM=!!(typeof window<"u"&&window.document&&window.document.createElement),$b5e257d569688ac6$var$componentIds=new WeakMap;function $b5e257d569688ac6$var$useCounter(j=!1){let $=reactExports.useContext($b5e257d569688ac6$var$SSRContext),_e=reactExports.useRef(null);if(_e.current===null&&!j){var et,tt;let rt=(et=React$6.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||et===void 0||(tt=et.ReactCurrentOwner)===null||tt===void 0?void 0:tt.current;if(rt){let nt=$b5e257d569688ac6$var$componentIds.get(rt);nt==null?$b5e257d569688ac6$var$componentIds.set(rt,{id:$.current,state:rt.memoizedState}):rt.memoizedState!==nt.state&&($.current=nt.id,$b5e257d569688ac6$var$componentIds.delete(rt))}_e.current=++$.current}return _e.current}function $b5e257d569688ac6$var$useLegacySSRSafeId(j){let $=reactExports.useContext($b5e257d569688ac6$var$SSRContext);$===$b5e257d569688ac6$var$defaultContext&&!$b5e257d569688ac6$var$canUseDOM&&console.warn("When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.");let _e=$b5e257d569688ac6$var$useCounter(!!j),et=`react-aria${$.prefix}`;return j||`${et}-${_e}`}function $b5e257d569688ac6$var$useModernSSRSafeId(j){let $=React$6.useId(),[_e]=reactExports.useState($b5e257d569688ac6$export$535bd6ca7f90a273()),et=_e?"react-aria":`react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;return j||`${et}-${$}`}React$6.useId;function $b5e257d569688ac6$var$getSnapshot(){return!1}function $b5e257d569688ac6$var$getServerSnapshot(){return!0}function $b5e257d569688ac6$var$subscribe(j){return()=>{}}function $b5e257d569688ac6$export$535bd6ca7f90a273(){return typeof React$6.useSyncExternalStore=="function"?React$6.useSyncExternalStore($b5e257d569688ac6$var$subscribe,$b5e257d569688ac6$var$getSnapshot,$b5e257d569688ac6$var$getServerSnapshot):reactExports.useContext($b5e257d569688ac6$var$IsSSRContext)}typeof document<"u"&&React$6.useLayoutEffect;let $bbed8b41f857bcc0$var$transitionsByElement=new Map,$bbed8b41f857bcc0$var$transitionCallbacks=new Set;function $bbed8b41f857bcc0$var$setupGlobalEvents(){if(typeof window>"u")return;let j=_e=>{let et=$bbed8b41f857bcc0$var$transitionsByElement.get(_e.target);et||(et=new Set,$bbed8b41f857bcc0$var$transitionsByElement.set(_e.target,et),_e.target.addEventListener("transitioncancel",$)),et.add(_e.propertyName)},$=_e=>{let et=$bbed8b41f857bcc0$var$transitionsByElement.get(_e.target);if(et&&(et.delete(_e.propertyName),et.size===0&&(_e.target.removeEventListener("transitioncancel",$),$bbed8b41f857bcc0$var$transitionsByElement.delete(_e.target)),$bbed8b41f857bcc0$var$transitionsByElement.size===0)){for(let tt of $bbed8b41f857bcc0$var$transitionCallbacks)tt();$bbed8b41f857bcc0$var$transitionCallbacks.clear()}};document.body.addEventListener("transitionrun",j),document.body.addEventListener("transitionend",$)}typeof document<"u"&&(document.readyState!=="loading"?$bbed8b41f857bcc0$var$setupGlobalEvents():document.addEventListener("DOMContentLoaded",$bbed8b41f857bcc0$var$setupGlobalEvents));makeStyles(j=>({box:{boxSizing:"border-box"},checkbox:{padding:"3px",color:j.palette.primaryForeground,"&:checked":{color:j.palette.primaryForeground},"& input":{height:"100%"}},slider:{color:j.palette.primaryForeground,minWidth:"60px",padding:"10px 0 10px 0"},sliderValueLabel:{"& span":{"& span":{color:j.palette.primaryBackground}}},tableContainer:{overflow:"hidden",overflowX:"hidden !important"},labelCell:{padding:"2px 8px 2px 16px"},inputCell:{padding:"2px 16px 2px 8px",overflow:"visible"},select:{"& select":{fontSize:"14px"}},optionSelectRoot:{padding:0,height:"auto"}}));var define_process_env_default={},__defProp=Object.defineProperty,__defNormalProp=(j,$,_e)=>$ in j?__defProp(j,$,{enumerable:!0,configurable:!0,writable:!0,value:_e}):j[$]=_e,__publicField=(j,$,_e)=>(__defNormalProp(j,typeof $!="symbol"?$+"":$,_e),_e),__accessCheck=(j,$,_e)=>{if(!$.has(j))throw TypeError("Cannot "+_e)},__privateGet=(j,$,_e)=>(__accessCheck(j,$,"read from private field"),_e?_e.call(j):$.get(j)),__privateAdd=(j,$,_e)=>{if($.has(j))throw TypeError("Cannot add the same private member more than once");$ instanceof WeakSet?$.add(j):$.set(j,_e)},__privateSet=(j,$,_e,et)=>(__accessCheck(j,$,"write to private field"),et?et.call(j,_e):$.set(j,_e),_e),__privateMethod=(j,$,_e)=>(__accessCheck(j,$,"access private method"),_e),_bytes,_encoder,_encode_buffer,_strides,_TypedArray,_BYTES_PER_ELEMENT,_shape,_endian,_shape2,_strides2,_metadata,_metadata2,_a2,_b,_overrides,_use_suffix_request,_merge_init,merge_init_fn;function _mergeNamespaces$1(j,$){for(var _e=0;_e<$.length;_e++){const et=$[_e];if(typeof et!="string"&&!Array.isArray(et)){for(const tt in et)if(tt!=="default"&&!(tt in j)){const rt=Object.getOwnPropertyDescriptor(et,tt);rt&&Object.defineProperty(j,tt,rt.get?rt:{enumerable:!0,get:()=>et[tt]})}}}return Object.freeze(Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}))}class NodeNotFoundError extends Error{constructor($){super($),this.name="NodeNotFoundError"}}class KeyError extends Error{constructor($){super($),this.name="KeyError"}}class BoolArray{constructor($,_e,et){__privateAdd(this,_bytes,void 0),typeof $=="number"?__privateSet(this,_bytes,new Uint8Array($)):$ instanceof ArrayBuffer?__privateSet(this,_bytes,new Uint8Array($,_e,et)):__privateSet(this,_bytes,new Uint8Array(Array.from($,tt=>tt?1:0)))}get BYTES_PER_ELEMENT(){return 1}get byteOffset(){return __privateGet(this,_bytes).byteOffset}get byteLength(){return __privateGet(this,_bytes).byteLength}get buffer(){return __privateGet(this,_bytes).buffer}get length(){return __privateGet(this,_bytes).length}get($){let _e=__privateGet(this,_bytes)[$];return typeof _e=="number"?_e!==0:_e}set($,_e){__privateGet(this,_bytes)[$]=_e?1:0}fill($){__privateGet(this,_bytes).fill($?1:0)}*[Symbol.iterator](){for(let $=0;$=0;et--)_e[et]=tt,tt*=j[et];return _e}function col_major_stride(j){const $=j.length,_e=globalThis.Array($);for(let et=0,tt=1;et<$;et++)_e[et]=tt,tt*=j[et];return _e}function create_chunk_key_encoder({name:j,configuration:$}){if(j==="default")return _e=>["c",..._e].join($.separator);if(j==="v2")return _e=>_e.join($.separator)||"0";throw new Error(`Unknown chunk key encoding: ${j}`)}function get_array_order(j){var $;const _e=j.find(et=>et.name==="transpose");return(($=_e==null?void 0:_e.configuration)==null?void 0:$.order)==="F"?"F":"C"}const endian_regex=/^([<|>])(.*)$/;function coerce_dtype(j){if(j==="|O")return{data_type:"v2:object"};let $=j.match(endian_regex);if(!$)throw new Error(`Invalid dtype: ${j}`);let[,_e,et]=$,tt={b1:"bool",i1:"int8",u1:"uint8",i2:"int16",u2:"uint16",i4:"int32",u4:"uint32",i8:"int64",u8:"uint64",f4:"float32",f8:"float64"}[et]??(et.startsWith("S")||et.startsWith("U")?`v2:${et}`:void 0);if(!tt)throw new Error(`Unsupported or unknown dtype: ${j}`);return _e==="|"?{data_type:tt}:{data_type:tt,endian:_e==="<"?"little":"big"}}function v2_to_v3_array_metadata(j,$={}){let _e=[],et=coerce_dtype(j.dtype);j.order==="F"&&_e.push({name:"transpose",configuration:{order:"F"}}),"endian"in et&&et.endian==="big"&&_e.push({name:"bytes",configuration:{endian:"big"}});for(let{id:tt,...rt}of j.filters??[])_e.push({name:tt,configuration:rt});if(j.compressor){let{id:tt,...rt}=j.compressor;_e.push({name:tt,configuration:rt})}return{zarr_format:3,node_type:"array",shape:j.shape,data_type:et.data_type,chunk_grid:{name:"regular",configuration:{chunk_shape:j.chunks}},chunk_key_encoding:{name:"v2",configuration:{separator:j.dimension_separator??"."}},codecs:_e,fill_value:j.fill_value,attributes:$}}function v2_to_v3_group_metadata(j,$={}){return{zarr_format:3,node_type:"group",attributes:$}}function is_dtype(j,$){if($!=="number"&&$!=="bigint"&&$!=="boolean"&&$!=="object"&&$!=="string")return j===$;let _e=j==="bool";if($==="boolean")return _e;let et=j.startsWith("v2:U")||j.startsWith("v2:S");if($==="string")return et;let tt=j==="int64"||j==="uint64";if($==="bigint")return tt;let rt=j==="v2:object";return $==="object"?rt:!et&&!tt&&!_e&&!rt}function is_sharding_codec(j){return(j==null?void 0:j.name)==="sharding_indexed"}function ensure_correct_scalar(j){return(j.data_type==="uint64"||j.data_type==="int64")&&j.fill_value!=null?BigInt(j.fill_value):j.fill_value}function proxy(j){return j instanceof BoolArray||j instanceof ByteStringArray||j instanceof UnicodeStringArray?new Proxy(j,{get($,_e){return $.get(Number(_e))},set($,_e,et){return $.set(Number(_e),et),!0}}):j}function empty_like(j,$){let _e;return j.data instanceof ByteStringArray||j.data instanceof UnicodeStringArray?_e=new j.constructor(j.data.length,j.data.chars):_e=new j.constructor(j.data.length),{data:_e,shape:j.shape,stride:get_strides(j.shape,$)}}function convert_array_order(j,$){let _e=empty_like(j,$),et=j.shape.length,tt=j.data.length,rt=Array(et).fill(0),nt=proxy(j.data),it=proxy(_e.data);for(let ot=0;ot_e===$[et])?"C":"F"}class TransposeCodec{constructor($){__publicField(this,"configuration"),__publicField(this,"kind","array_to_array"),this.configuration=$}static fromConfig($){return new TransposeCodec($)}encode($){return get_order($)===this.configuration.order?$:convert_array_order($,this.configuration.order)}decode($){return $}}const LITTLE_ENDIAN_OS=system_is_little_endian();function system_is_little_endian(){const j=new Uint32Array([305419896]);return new Uint8Array(j.buffer,j.byteOffset,j.byteLength)[0]!==18}function bytes_per_element(j){return"BYTES_PER_ELEMENT"in j?j.BYTES_PER_ELEMENT:4}const _BytesCodec=class{constructor(j,$){__publicField(this,"kind","array_to_bytes"),__privateAdd(this,_strides,void 0),__privateAdd(this,_TypedArray,void 0),__privateAdd(this,_BYTES_PER_ELEMENT,void 0),__privateAdd(this,_shape,void 0),__privateAdd(this,_endian,void 0),__privateSet(this,_endian,j.endian),__privateSet(this,_TypedArray,get_ctr($.data_type)),__privateSet(this,_shape,$.shape),__privateSet(this,_strides,get_strides($.shape,get_array_order($.codecs)));const _e=new(__privateGet(this,_TypedArray))(0);__privateSet(this,_BYTES_PER_ELEMENT,_e.BYTES_PER_ELEMENT)}static fromConfig(j,$){return new _BytesCodec(j,$)}encode(j){let $=new Uint8Array(j.data.buffer);return LITTLE_ENDIAN_OS&&__privateGet(this,_endian)==="big"&&byteswap_inplace($,bytes_per_element(__privateGet(this,_TypedArray))),$}decode(j){return LITTLE_ENDIAN_OS&&__privateGet(this,_endian)==="big"&&byteswap_inplace(j,bytes_per_element(__privateGet(this,_TypedArray))),{data:new(__privateGet(this,_TypedArray))(j.buffer,j.byteOffset,j.byteLength/__privateGet(this,_BYTES_PER_ELEMENT)),shape:__privateGet(this,_shape),stride:__privateGet(this,_strides)}}};let BytesCodec=_BytesCodec;_strides=new WeakMap;_TypedArray=new WeakMap;_BYTES_PER_ELEMENT=new WeakMap;_shape=new WeakMap;_endian=new WeakMap;class Crc32cCodec{constructor(){__publicField(this,"kind","bytes_to_bytes")}static fromConfig(){return new Crc32cCodec}encode($){throw new Error("Not implemented")}decode($){return new Uint8Array($.buffer,$.byteOffset,$.byteLength-4)}}const _VLenUTF8=class{constructor(j){__publicField(this,"kind","array_to_bytes"),__privateAdd(this,_shape2,void 0),__privateAdd(this,_strides2,void 0),__privateSet(this,_shape2,j),__privateSet(this,_strides2,get_strides(j,"C"))}static fromConfig(j,$){return new _VLenUTF8($.shape)}encode(j){throw new Error("Method not implemented.")}decode(j){let $=new TextDecoder,_e=new DataView(j.buffer),et=Array(_e.getUint32(0,!0)),tt=4;for(let rt=0;rt__vitePreload(()=>import("./blosc-0acfcf7e-snUT6D4i.js"),__vite__mapDeps([])).then(j=>j.default)).set("gzip",()=>__vitePreload(()=>import("./gzip-dd5ab7c8-wU2g_iAo.js"),__vite__mapDeps([0,1])).then(j=>j.default)).set("lz4",()=>__vitePreload(()=>import("./lz4-abb4416a-LNQAkPQb.js"),__vite__mapDeps([])).then(j=>j.default)).set("zlib",()=>__vitePreload(()=>import("./zlib-cd823c38-UG7B4fyc.js"),__vite__mapDeps([2,1])).then(j=>j.default)).set("zstd",()=>__vitePreload(()=>import("./zstd-4072ca78-EVHwT9c-.js"),__vite__mapDeps([])).then(j=>j.default)).set("transpose",()=>TransposeCodec).set("bytes",()=>BytesCodec).set("crc32c",()=>Crc32cCodec).set("vlen-utf8",()=>VLenUTF8)}const registry$2=create_default_registry();function create_codec_pipeline(j){let $;return{async encode(_e){$||($=await load_codecs(j));for(const tt of $.array_to_array)_e=await tt.encode(_e);let et=await $.array_to_bytes.encode(_e);for(const tt of $.bytes_to_bytes)et=await tt.encode(et);return et},async decode(_e){$||($=await load_codecs(j));for(let tt=$.bytes_to_bytes.length-1;tt>=0;tt--)_e=await $.bytes_to_bytes[tt].decode(_e);let et=await $.array_to_bytes.decode(_e);for(let tt=$.array_to_array.length-1;tt>=0;tt--)et=await $.array_to_array[tt].decode(et);return et}}}async function load_codecs(j){let $=j.codecs.map(async rt=>{var nt;let it=await((nt=registry$2.get(rt.name))==null?void 0:nt());if(!it)throw new Error(`Unknown codec: ${rt.name}`);return{Codec:it,meta:rt}}),_e=[],et,tt=[];for await(let{Codec:rt,meta:nt}of $){let it=rt.fromConfig(nt.configuration,j);switch(it.kind){case"array_to_array":_e.push(it);break;case"array_to_bytes":et=it;break;default:tt.push(it)}}if(!et){if(!is_typed_array_like_meta(j))throw new Error(`Cannot encode ${j.data_type} to bytes without a codec`);et=BytesCodec.fromConfig({endian:"little"},j)}return{array_to_array:_e,array_to_bytes:et,bytes_to_bytes:tt}}function is_typed_array_like_meta(j){return j.data_type!=="v2:object"}const MAX_BIG_UINT=18446744073709551615n;function create_sharded_chunk_getter(j,$,_e,et){if(j.store.getRange===void 0)throw new Error("Store does not support range requests");let tt=j.store.getRange.bind(j.store),rt=$.map((ot,At)=>ot/et.chunk_shape[At]),nt=create_codec_pipeline({data_type:"uint64",shape:[...rt,2],codecs:et.index_codecs}),it={};return async ot=>{let At=ot.map((Rt,wt)=>Math.floor(Rt/rt[wt])),ut=j.resolve(_e(At)).path,ft;if(ut in it)ft=it[ut];else{let Rt=4,wt=16*rt.reduce((Nt,Ot)=>Nt*Ot,1),xt=await tt(ut,{suffixLength:wt+Rt});ft=it[ut]=xt?await nt.decode(xt):null}if(ft===null)return;let{data:dt,shape:Et,stride:Bt}=ft,St=ot.map((Rt,wt)=>Rt%Et[wt]).reduce((Rt,wt,xt)=>Rt+wt*Bt[xt],0),Dt=dt[St],$t=dt[St+1];if(!(Dt===MAX_BIG_UINT&&$t===MAX_BIG_UINT))return tt(ut,{offset:Number(Dt),length:Number($t)})}}class Location{constructor($,_e="/"){__publicField(this,"store"),__publicField(this,"path"),this.store=$,this.path=_e}resolve($){let _e=new URL(`file://${this.path.endsWith("/")?this.path:`${this.path}/`}`);return new Location(this.store,new URL($,_e).pathname)}}function root$3(j){return new Location(j??new Map)}class Group extends Location{constructor($,_e,et){super($,_e),__publicField(this,"kind","group"),__privateAdd(this,_metadata,void 0),__privateSet(this,_metadata,et)}get attrs(){return __privateGet(this,_metadata).attributes}}_metadata=new WeakMap;const CONTEXT_MARKER=Symbol("zarrita.context");function get_context(j){return j[CONTEXT_MARKER]}function create_context(j,$){let{configuration:_e}=$.codecs.find(is_sharding_codec)??{},et={encode_chunk_key:create_chunk_key_encoder($.chunk_key_encoding),TypedArray:get_ctr($.data_type),fill_value:$.fill_value};if(_e){let rt=get_array_order(_e.codecs);return{...et,kind:"sharded",chunk_shape:_e.chunk_shape,codec:create_codec_pipeline({data_type:$.data_type,shape:_e.chunk_shape,codecs:_e.codecs}),get_strides(nt,it){return get_strides(nt,it??rt)},get_chunk_bytes:create_sharded_chunk_getter(j,$.chunk_grid.configuration.chunk_shape,et.encode_chunk_key,_e)}}let tt=get_array_order($.codecs);return{...et,kind:"regular",chunk_shape:$.chunk_grid.configuration.chunk_shape,codec:create_codec_pipeline({data_type:$.data_type,shape:$.chunk_grid.configuration.chunk_shape,codecs:$.codecs}),get_strides(rt,nt){return get_strides(rt,nt??tt)},async get_chunk_bytes(rt,nt){let it=et.encode_chunk_key(rt),ot=j.resolve(it).path;return j.store.get(ot,nt)}}}let Array$1=(_b=class extends Location{constructor(j,$,_e){super(j,$),__publicField(this,"kind","array"),__privateAdd(this,_metadata2,void 0),__publicField(this,_a2),__privateSet(this,_metadata2,{..._e,fill_value:ensure_correct_scalar(_e)}),this[CONTEXT_MARKER]=create_context(this,_e)}get attrs(){return __privateGet(this,_metadata2).attributes}get shape(){return __privateGet(this,_metadata2).shape}get chunks(){return this[CONTEXT_MARKER].chunk_shape}get dtype(){return __privateGet(this,_metadata2).data_type}async getChunk(j,$){let _e=this[CONTEXT_MARKER],et=await _e.get_chunk_bytes(j,$);if(!et){let tt=_e.chunk_shape.reduce((nt,it)=>nt*it,1),rt=new _e.TypedArray(tt);return rt.fill(_e.fill_value),{data:rt,shape:_e.chunk_shape,stride:_e.get_strides(_e.chunk_shape)}}return _e.codec.decode(et)}is(j){return is_dtype(this.dtype,j)}},_a2=CONTEXT_MARKER,_metadata2=new WeakMap,_b);function create_version_counter(){let j=new WeakMap;function $(_e){let et=j.get(_e)??{v2:0,v3:0};return j.set(_e,et),et}return{increment(_e,et){$(_e)[et]+=1},version_max(_e){let et=$(_e);return et.v3>et.v2?"v3":"v2"}}}let VERSION_COUNTER=create_version_counter();async function load_attrs(j){let $=await j.store.get(j.resolve(".zattrs").path);return $?json_decode_object($):{}}async function open_v2(j,$={}){let _e="store"in j?j:new Location(j),et={};return($.attrs??!0)&&(et=await load_attrs(_e)),$.kind==="array"?open_array_v2(_e,et):$.kind==="group"?open_group_v2(_e,et):open_array_v2(_e,et).catch(tt=>{if(tt instanceof NodeNotFoundError)return open_group_v2(_e,et);throw tt})}async function open_array_v2(j,$){let{path:_e}=j.resolve(".zarray"),et=await j.store.get(_e);if(!et)throw new NodeNotFoundError(_e);return VERSION_COUNTER.increment(j.store,"v2"),new Array$1(j.store,j.path,v2_to_v3_array_metadata(json_decode_object(et),$))}async function open_group_v2(j,$){let{path:_e}=j.resolve(".zgroup"),et=await j.store.get(_e);if(!et)throw new NodeNotFoundError(_e);return VERSION_COUNTER.increment(j.store,"v2"),new Group(j.store,j.path,v2_to_v3_group_metadata(json_decode_object(et),$))}async function _open_v3(j){let{store:$,path:_e}=j.resolve("zarr.json"),et=await j.store.get(_e);if(!et)throw new NodeNotFoundError(_e);let tt=json_decode_object(et);return tt.node_type==="array"&&(tt.data_type==="uint64"||tt.data_type==="int64")&&tt.fill_value!=null&&(tt.fill_value=BigInt(tt.fill_value)),tt.node_type==="array"?new Array$1($,j.path,tt):new Group($,j.path,tt)}async function open_v3(j,$={}){let _e="store"in j?j:new Location(j),et=await _open_v3(_e);if(VERSION_COUNTER.increment(_e.store,"v3"),$.kind===void 0||$.kind==="array"&&et instanceof Array$1||$.kind==="group"&&et instanceof Group)return et;let tt=et instanceof Array$1?"array":"group";throw new Error(`Expected node of kind ${$.kind}, found ${tt}.`)}async function open(j,$={}){const _e="store"in j?j.store:j,et=VERSION_COUNTER.version_max(_e);let tt=et==="v2"?open.v2:open.v3,rt=et==="v2"?open.v3:open.v2;return tt(j,$).catch(nt=>{if(nt instanceof NodeNotFoundError)return rt(j,$);throw nt})}open.v2=open_v2;open.v3=open_v3;function*range$6(j,$,_e=1){$===void 0&&($=j,j=0);for(let et=j;et<$;et+=_e)yield et}function*product$1(...j){if(j.length===0)return;const $=j.map(et=>et[Symbol.iterator]()),_e=$.map(et=>et.next());if(_e.some(et=>et.done))throw new Error("Input contains an empty iterator.");for(let et=0;;){if(_e[et].done){if($[et]=j[et][Symbol.iterator](),_e[et]=$[et].next(),++et>=$.length)return}else yield _e.map(({value:tt})=>tt),et=0;_e[et]=$[et].next()}}function slice_indices(j,$,_e,et){if(_e===0)throw new Error("slice step cannot be zero");_e=_e??1;const tt=_e<0,[rt,nt]=tt?[-1,et-1]:[0,et];return j===null?j=tt?nt:rt:j<0?(j+=et,jnt&&(j=nt),$===null?$=tt?rt:nt:$<0?($+=et,$nt&&($=nt),[j,$,_e]}function slice$3(j,$,_e=null){return $===void 0&&($=j,j=null),{start:j,stop:$,step:_e,indices(et){return slice_indices(this.start,this.stop,this.step,et)}}}function create_queue(){const j=[];return{add:$=>j.push($()),onIdle:()=>Promise.all(j)}}let IndexError$1=class extends Error{constructor($){super($),this.name="IndexError"}};function err_too_many_indices(j,$){throw new IndexError$1(`too many indicies for array; expected ${$.length}, got ${j.length}`)}function err_boundscheck(j){throw new IndexError$1(`index out of bounds for dimension with length ${j}`)}function err_negative_step(){throw new IndexError$1("only slices with step >= 1 are supported")}function check_selection_length(j,$){j.length>$.length&&err_too_many_indices(j,$)}function normalize_integer_selection(j,$){return j=Math.trunc(j),j<0&&(j=$+j),(j>=$||j<0)&&err_boundscheck($),j}class IntDimIndexer{constructor({dim_sel:$,dim_len:_e,dim_chunk_len:et}){__publicField(this,"dim_sel"),__publicField(this,"dim_len"),__publicField(this,"dim_chunk_len"),__publicField(this,"nitems"),$=normalize_integer_selection($,_e),this.dim_sel=$,this.dim_len=_e,this.dim_chunk_len=et,this.nitems=1}*[Symbol.iterator](){const $=Math.floor(this.dim_sel/this.dim_chunk_len),_e=$*this.dim_chunk_len,et=this.dim_sel-_e;yield{dim_chunk_ix:$,dim_chunk_sel:et}}}class SliceDimIndexer{constructor({dim_sel:$,dim_len:_e,dim_chunk_len:et}){__publicField(this,"start"),__publicField(this,"stop"),__publicField(this,"step"),__publicField(this,"dim_len"),__publicField(this,"dim_chunk_len"),__publicField(this,"nitems"),__publicField(this,"nchunks");const[tt,rt,nt]=$.indices(_e);this.start=tt,this.stop=rt,this.step=nt,this.step<1&&err_negative_step(),this.dim_len=_e,this.dim_chunk_len=et,this.nitems=Math.max(0,Math.ceil((this.stop-this.start)/this.step)),this.nchunks=Math.ceil(this.dim_len/this.dim_chunk_len)}*[Symbol.iterator](){const $=Math.floor(this.start/this.dim_chunk_len),_e=Math.ceil(this.stop/this.dim_chunk_len);for(const et of range$6($,_e)){const tt=et*this.dim_chunk_len,rt=Math.min(this.dim_len,(et+1)*this.dim_chunk_len),nt=rt-tt;let it=0,ot=0;if(this.startrt?nt:this.stop-tt,ut=[ot,At,this.step],ft=Math.ceil((At-ot)/this.step),dt=[it,it+ft,1];yield{dim_chunk_ix:et,dim_chunk_sel:ut,dim_out_sel:dt}}}}function normalize_selection(j,$){let _e=[];return j===null?_e=$.map(et=>slice$3(null)):Array.isArray(j)&&(_e=j.map(et=>et??slice$3(null))),check_selection_length(_e,$),_e}class BasicIndexer{constructor({selection:$,shape:_e,chunk_shape:et}){__publicField(this,"dim_indexers"),__publicField(this,"shape"),this.dim_indexers=normalize_selection($,_e).map((tt,rt)=>new(typeof tt=="number"?IntDimIndexer:SliceDimIndexer)({dim_sel:tt,dim_len:_e[rt],dim_chunk_len:et[rt]})),this.shape=this.dim_indexers.filter(tt=>tt instanceof SliceDimIndexer).map(tt=>tt.nitems)}*[Symbol.iterator](){for(const $ of product$1(...this.dim_indexers)){const _e=$.map(tt=>tt.dim_chunk_ix),et=$.map(tt=>"dim_out_sel"in tt?{from:tt.dim_chunk_sel,to:tt.dim_out_sel}:{from:tt.dim_chunk_sel,to:null});yield{chunk_coords:_e,mapping:et}}}}function unwrap(j,$){return"get"in j?j.get($):j[$]}async function get$2(j,$,_e,et){var tt;const rt=get_context(j),nt=new BasicIndexer({selection:$,shape:j.shape,chunk_shape:j.chunks}),it=et.prepare(new rt.TypedArray(nt.shape.reduce((At,ut)=>At*ut,1)),nt.shape,rt.get_strides(nt.shape,_e.order)),ot=((tt=_e.create_queue)==null?void 0:tt.call(_e))??create_queue();for(const{chunk_coords:At,mapping:ut}of nt)ot.add(()=>j.getChunk(At,_e.opts).then(({data:ft,shape:dt,stride:Et})=>{const Bt=et.prepare(ft,dt,Et);et.set_from_chunk(it,Bt,ut)}).catch(ft=>{if(!(ft instanceof KeyError))throw ft;rt.fill_value&&et.set_scalar(it,ut.map(dt=>dt.to).filter(dt=>dt!==null),rt.fill_value)}));return await ot.onIdle(),nt.shape.length===0?unwrap(it.data,0):it}function object_array_view(j,$=0,_e){let et=_e??j.length-$;return{length:et,subarray(tt,rt=et){return object_array_view(j,$+tt,rt-tt)},set(tt,rt=0){for(let nt=0;nt{const tt=rt=>{if(!this.promises.has(rt)){const nt=this._loadColumn(rt).catch(it=>{throw this.promises.delete(rt),it});this.promises.set(rt,nt)}return this.promises.get(rt)};return et?Array.isArray(et)?Promise.resolve(Promise.all(et.map(tt))):tt(et):Promise.resolve(void 0)});return Promise.all(_e)}async _loadColumn($){const{storeRoot:_e}=this,et=dirname$1($),{categories:tt,"encoding-type":rt}=await this.getJson(`${$}/.zattrs`);let nt,it;if(tt){const{dtype:dt}=await open(_e.resolve(`/${et}/${tt}`));dt==="v2:object"&&(nt=await this.getFlatArrDecompressed(`/${et}/${tt}`))}else if(rt==="categorical"){const{dtype:dt}=await open(_e.resolve(`/${$}/categories`));dt==="v2:object"&&(nt=await this.getFlatArrDecompressed(`/${$}/categories`)),it=`/${$}/codes`}else{const{dtype:dt}=await open(_e.resolve(`/${$}`));if(dt==="v2:object")return this.getFlatArrDecompressed($)}const ot=await open(_e.resolve(it||$),{kind:"array"}),At=await get$1$1(ot,[null]),{data:ut}=At;return Array.from(ut).map(dt=>nt?nt[dt]:String(dt))}loadNumeric($){const{storeRoot:_e}=this;return open(_e.resolve($),{kind:"array"}).then(et=>get$1$1(et))}loadNumericForDims($,_e){const{storeRoot:et}=this,tt=open(et.resolve($),{kind:"array"});return Promise.all(_e.map(rt=>tt.then(nt=>get$1$1(nt,[null,rt])))).then(rt=>({data:rt.map(nt=>nt.data),shape:[_e.length,rt[0].shape[0]]}))}async getFlatArrDecompressed($){var _e;const{storeRoot:et}=this,tt=await open(et.resolve($),{kind:"array"}),rt=await get$1$1(tt);return(_e=rt.data)!=null&&_e[Symbol.iterator]?Array.from(rt.data):rt.data}loadObsIndex(){return this.obsIndex?this.obsIndex:(this.obsIndex=this.getJson("obs/.zattrs").then(({_index:$})=>this.getFlatArrDecompressed(`/obs/${$}`)),this.obsIndex)}loadVarIndex(){return this.varIndex?this.varIndex:(this.varIndex=this.getJson("var/.zattrs").then(({_index:$})=>this.getFlatArrDecompressed(`/var/${$}`)),this.varIndex)}async loadVarAlias($){if(this.varAlias)return this.varAlias;[this.varAlias]=await this.loadVarColumns([$]);const _e=await this.loadVarIndex();return this.varAlias=this.varAlias.map((et,tt)=>et?et.concat(` (${_e[tt]})`):_e[tt]),this.varAlias}async _loadAttrs($){return this.getJson(`${$}/.zattrs`)}async _loadString($){const{storeRoot:_e}=this,{"encoding-type":et,"encoding-version":tt}=await this._loadAttrs($);if(et==="string"&&tt==="0.2.0"){const rt=await open(_e.resolve($),{kind:"array"}),{data:nt}=await rt.getChunk([]);return nt.get(0)}throw new Error(`Unsupported encoding type ${et} and version ${tt} in AnnDataSource._loadString`)}async _loadStringArray($){const{"encoding-type":_e,"encoding-version":et}=await this._loadAttrs($);if(_e==="string-array"&&et==="0.2.0")return this.getFlatArrDecompressed($);throw new Error(`Unsupported encoding type ${_e} and version ${et} in AnnDataSource._loadStringArray`)}async _loadElement($){const{"encoding-type":_e}=await this._loadAttrs($);return _e==="string"?this._loadString($):_e==="string-array"?this._loadStringArray($):null}async _loadDict($,_e){const{"encoding-type":et,"encoding-version":tt}=await this._loadAttrs($);if(et==="dict"&&tt==="0.1.0"){const rt={};return await Promise.all(_e.map(async nt=>{const it=await this._loadElement(`${$}/${nt}`);rt[nt]=it})),rt}throw new Error(`Unsupported encoding type ${et} and version ${tt} in AnnDataSource._loadDict`)}}var freeGlobal$1=typeof global=="object"&&global&&global.Object===Object&&global;const freeGlobal$2=freeGlobal$1;var freeSelf$1=typeof self=="object"&&self&&self.Object===Object&&self,root$1=freeGlobal$2||freeSelf$1||Function("return this")();const root$2=root$1;var Symbol$1=root$2.Symbol;const Symbol$2=Symbol$1;var objectProto$f=Object.prototype,hasOwnProperty$e=objectProto$f.hasOwnProperty,nativeObjectToString$1=objectProto$f.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag(j){var $=hasOwnProperty$e.call(j,symToStringTag$1),_e=j[symToStringTag$1];try{j[symToStringTag$1]=void 0;var et=!0}catch{}var tt=nativeObjectToString$1.call(j);return et&&($?j[symToStringTag$1]=_e:delete j[symToStringTag$1]),tt}var objectProto$e=Object.prototype,nativeObjectToString=objectProto$e.toString;function objectToString$1(j){return nativeObjectToString.call(j)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$2?Symbol$2.toStringTag:void 0;function baseGetTag(j){return j==null?j===void 0?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(j)?getRawTag(j):objectToString$1(j)}function isObjectLike$1(j){return j!=null&&typeof j=="object"}var symbolTag$4="[object Symbol]";function isSymbol$1(j){return typeof j=="symbol"||isObjectLike$1(j)&&baseGetTag(j)==symbolTag$4}var isArray$4=Array.isArray;const isArray$5=isArray$4;var reWhitespace=/\s/;function trimmedEndIndex(j){for(var $=j.length;$--&&reWhitespace.test(j.charAt($)););return $}var reTrimStart=/^\s+/;function baseTrim(j){return j&&j.slice(0,trimmedEndIndex(j)+1).replace(reTrimStart,"")}function isObject$5(j){var $=typeof j;return j!=null&&($=="object"||$=="function")}var NAN$1=NaN,reIsBadHex$1=/^[-+]0x[0-9a-f]+$/i,reIsBinary$1=/^0b[01]+$/i,reIsOctal$1=/^0o[0-7]+$/i,freeParseInt$1=parseInt;function toNumber$3(j){if(typeof j=="number")return j;if(isSymbol$1(j))return NAN$1;if(isObject$5(j)){var $=typeof j.valueOf=="function"?j.valueOf():j;j=isObject$5($)?$+"":$}if(typeof j!="string")return j===0?j:+j;j=baseTrim(j);var _e=reIsBinary$1.test(j);return _e||reIsOctal$1.test(j)?freeParseInt$1(j.slice(2),_e?2:8):reIsBadHex$1.test(j)?NAN$1:+j}var INFINITY=1/0,MAX_INTEGER=17976931348623157e292;function toFinite(j){if(!j)return j===0?j:0;if(j=toNumber$3(j),j===INFINITY||j===-INFINITY){var $=j<0?-1:1;return $*MAX_INTEGER}return j===j?j:0}var asyncTag="[object AsyncFunction]",funcTag$2="[object Function]",genTag$1="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction$3(j){if(!isObject$5(j))return!1;var $=baseGetTag(j);return $==funcTag$2||$==genTag$1||$==asyncTag||$==proxyTag}var coreJsData=root$2["__core-js_shared__"];const coreJsData$1=coreJsData;var maskSrcKey=function(){var j=/[^.]+$/.exec(coreJsData$1&&coreJsData$1.keys&&coreJsData$1.keys.IE_PROTO||"");return j?"Symbol(src)_1."+j:""}();function isMasked(j){return!!maskSrcKey&&maskSrcKey in j}var funcProto$1=Function.prototype,funcToString$1=funcProto$1.toString;function toSource(j){if(j!=null){try{return funcToString$1.call(j)}catch{}try{return j+""}catch{}}return""}var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor=/^\[object .+?Constructor\]$/,funcProto=Function.prototype,objectProto$d=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$d=objectProto$d.hasOwnProperty,reIsNative=RegExp("^"+funcToString.call(hasOwnProperty$d).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function baseIsNative(j){if(!isObject$5(j)||isMasked(j))return!1;var $=isFunction$3(j)?reIsNative:reIsHostCtor;return $.test(toSource(j))}function getValue$1(j,$){return j==null?void 0:j[$]}function getNative(j,$){var _e=getValue$1(j,$);return baseIsNative(_e)?_e:void 0}var WeakMap$1=getNative(root$2,"WeakMap");const WeakMap$2=WeakMap$1;var objectCreate=Object.create,baseCreate=function(){function j(){}return function($){if(!isObject$5($))return{};if(objectCreate)return objectCreate($);j.prototype=$;var _e=new j;return j.prototype=void 0,_e}}();const baseCreate$1=baseCreate;function copyArray(j,$){var _e=-1,et=j.length;for($||($=Array(et));++_e-1&&j%1==0&&j<$}function baseAssignValue(j,$,_e){$=="__proto__"&&defineProperty$3?defineProperty$3(j,$,{configurable:!0,enumerable:!0,value:_e,writable:!0}):j[$]=_e}function eq$4(j,$){return j===$||j!==j&&$!==$}var objectProto$c=Object.prototype,hasOwnProperty$c=objectProto$c.hasOwnProperty;function assignValue(j,$,_e){var et=j[$];(!(hasOwnProperty$c.call(j,$)&&eq$4(et,_e))||_e===void 0&&!($ in j))&&baseAssignValue(j,$,_e)}function copyObject(j,$,_e,et){var tt=!_e;_e||(_e={});for(var rt=-1,nt=$.length;++rt-1&&j%1==0&&j<=MAX_SAFE_INTEGER$3}function isArrayLike(j){return j!=null&&isLength(j.length)&&!isFunction$3(j)}function isIterateeCall(j,$,_e){if(!isObject$5(_e))return!1;var et=typeof $;return(et=="number"?isArrayLike(_e)&&isIndex$1($,_e.length):et=="string"&&$ in _e)?eq$4(_e[$],j):!1}var objectProto$b=Object.prototype;function isPrototype(j){var $=j&&j.constructor,_e=typeof $=="function"&&$.prototype||objectProto$b;return j===_e}function baseTimes(j,$){for(var _e=-1,et=Array(j);++_e-1}function listCacheSet(j,$){var _e=this.__data__,et=assocIndexOf(_e,j);return et<0?(++this.size,_e.push([j,$])):_e[et][1]=$,this}function ListCache(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}ListCache.prototype.clear=listCacheClear;ListCache.prototype.delete=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;var Map$1=getNative(root$2,"Map");const Map$2=Map$1;function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map$2||ListCache),string:new Hash}}function isKeyable(j){var $=typeof j;return $=="string"||$=="number"||$=="symbol"||$=="boolean"?j!=="__proto__":j===null}function getMapData(j,$){var _e=j.__data__;return isKeyable($)?_e[typeof $=="string"?"string":"hash"]:_e.map}function mapCacheDelete(j){var $=getMapData(this,j).delete(j);return this.size-=$?1:0,$}function mapCacheGet(j){return getMapData(this,j).get(j)}function mapCacheHas(j){return getMapData(this,j).has(j)}function mapCacheSet(j,$){var _e=getMapData(this,j),et=_e.size;return _e.set(j,$),this.size+=_e.size==et?0:1,this}function MapCache(j){var $=-1,_e=j==null?0:j.length;for(this.clear();++$<_e;){var et=j[$];this.set(et[0],et[1])}}MapCache.prototype.clear=mapCacheClear;MapCache.prototype.delete=mapCacheDelete;MapCache.prototype.get=mapCacheGet;MapCache.prototype.has=mapCacheHas;MapCache.prototype.set=mapCacheSet;function arrayPush(j,$){for(var _e=-1,et=$.length,tt=j.length;++_eit))return!1;var At=rt.get(j),ut=rt.get($);if(At&&ut)return At==$&&ut==j;var ft=-1,dt=!0,Et=_e&COMPARE_UNORDERED_FLAG$1?new SetCache:void 0;for(rt.set(j,$),rt.set($,j);++ft_e*DEGREES_TO_RADIANS$7,$)}function degrees$1(j,$){return map$1(j,_e=>_e*RADIANS_TO_DEGREES$2,$)}function sin$2(j,$){return map$1(j,_e=>Math.sin(_e),$)}function cos$2(j,$){return map$1(j,_e=>Math.cos(_e),$)}function tan$2(j,$){return map$1(j,_e=>Math.tan(_e),$)}function asin$2(j,$){return map$1(j,_e=>Math.asin(_e),$)}function acos$2(j,$){return map$1(j,_e=>Math.acos(_e),$)}function atan$2(j,$){return map$1(j,_e=>Math.atan(_e),$)}function clamp$2(j,$,_e){return map$1(j,et=>Math.max($,Math.min(_e,et)))}function lerp$5(j,$,_e){return isArray$3(j)?j.map((et,tt)=>lerp$5(et,$[tt],_e)):_e*$+(1-_e)*j}function equals$3(j,$,_e){const et=config$2.EPSILON;_e&&(config$2.EPSILON=_e);try{if(j===$)return!0;if(isArray$3(j)&&isArray$3($)){if(j.length!==$.length)return!1;for(let tt=0;tt0?", ":"")+formatValue$1(this[et],$);return"".concat($.printTypes?this.constructor.name:"","[").concat(_e,"]")}equals($){if(!$||this.length!==$.length)return!1;for(let _e=0;_e=0&&$=0&&$0&&(rt=1/Math.sqrt(rt)),j[0]=$[0]*rt,j[1]=$[1]*rt,j[2]=$[2]*rt,j}function dot$4(j,$){return j[0]*$[0]+j[1]*$[1]+j[2]*$[2]}function cross$1(j,$,_e){var et=$[0],tt=$[1],rt=$[2],nt=_e[0],it=_e[1],ot=_e[2];return j[0]=tt*ot-rt*it,j[1]=rt*nt-et*ot,j[2]=et*it-tt*nt,j}function lerp$3(j,$,_e,et){var tt=$[0],rt=$[1],nt=$[2];return j[0]=tt+et*(_e[0]-tt),j[1]=rt+et*(_e[1]-rt),j[2]=nt+et*(_e[2]-nt),j}function transformMat4$1(j,$,_e){var et=$[0],tt=$[1],rt=$[2],nt=_e[3]*et+_e[7]*tt+_e[11]*rt+_e[15];return nt=nt||1,j[0]=(_e[0]*et+_e[4]*tt+_e[8]*rt+_e[12])/nt,j[1]=(_e[1]*et+_e[5]*tt+_e[9]*rt+_e[13])/nt,j[2]=(_e[2]*et+_e[6]*tt+_e[10]*rt+_e[14])/nt,j}function transformMat3(j,$,_e){var et=$[0],tt=$[1],rt=$[2];return j[0]=et*_e[0]+tt*_e[3]+rt*_e[6],j[1]=et*_e[1]+tt*_e[4]+rt*_e[7],j[2]=et*_e[2]+tt*_e[5]+rt*_e[8],j}function transformQuat$1(j,$,_e){var et=_e[0],tt=_e[1],rt=_e[2],nt=_e[3],it=$[0],ot=$[1],At=$[2],ut=tt*At-rt*ot,ft=rt*it-et*At,dt=et*ot-tt*it,Et=tt*dt-rt*ft,Bt=rt*ut-et*dt,St=et*ft-tt*ut,Dt=nt*2;return ut*=Dt,ft*=Dt,dt*=Dt,Et*=2,Bt*=2,St*=2,j[0]=it+ut+Et,j[1]=ot+ft+Bt,j[2]=At+dt+St,j}function rotateX$2(j,$,_e,et){var tt=[],rt=[];return tt[0]=$[0]-_e[0],tt[1]=$[1]-_e[1],tt[2]=$[2]-_e[2],rt[0]=tt[0],rt[1]=tt[1]*Math.cos(et)-tt[2]*Math.sin(et),rt[2]=tt[1]*Math.sin(et)+tt[2]*Math.cos(et),j[0]=rt[0]+_e[0],j[1]=rt[1]+_e[1],j[2]=rt[2]+_e[2],j}function rotateY$2(j,$,_e,et){var tt=[],rt=[];return tt[0]=$[0]-_e[0],tt[1]=$[1]-_e[1],tt[2]=$[2]-_e[2],rt[0]=tt[2]*Math.sin(et)+tt[0]*Math.cos(et),rt[1]=tt[1],rt[2]=tt[2]*Math.cos(et)-tt[0]*Math.sin(et),j[0]=rt[0]+_e[0],j[1]=rt[1]+_e[1],j[2]=rt[2]+_e[2],j}function rotateZ$2(j,$,_e,et){var tt=[],rt=[];return tt[0]=$[0]-_e[0],tt[1]=$[1]-_e[1],tt[2]=$[2]-_e[2],rt[0]=tt[0]*Math.cos(et)-tt[1]*Math.sin(et),rt[1]=tt[0]*Math.sin(et)+tt[1]*Math.cos(et),rt[2]=tt[2],j[0]=rt[0]+_e[0],j[1]=rt[1]+_e[1],j[2]=rt[2]+_e[2],j}function angle$1(j,$){var _e=j[0],et=j[1],tt=j[2],rt=$[0],nt=$[1],it=$[2],ot=Math.sqrt(_e*_e+et*et+tt*tt),At=Math.sqrt(rt*rt+nt*nt+it*it),ut=ot*At,ft=ut&&dot$4(j,$)/ut;return Math.acos(Math.min(Math.max(ft,-1),1))}var sub$1=subtract$1,mul$1=multiply$4,len=length$4,sqrLen=squaredLength$2;(function(){var j=create$3();return function($,_e,et,tt,rt,nt){var it,ot;for(_e||(_e=3),et||(et=0),tt?ot=Math.min(tt*_e+et,$.length):ot=$.length,it=et;it0?this.copy([$,..._e]):this.identity()}copy($){return this[0]=$[0],this[1]=$[1],this[2]=$[2],this[3]=$[3],this[4]=$[4],this[5]=$[5],this[6]=$[6],this[7]=$[7],this[8]=$[8],this.check()}identity(){return this.copy(IDENTITY_MATRIX$3)}fromObject($){return this.check()}fromQuaternion($){return fromQuat$1(this,$),this.check()}set($,_e,et,tt,rt,nt,it,ot,At){return this[0]=$,this[1]=_e,this[2]=et,this[3]=tt,this[4]=rt,this[5]=nt,this[6]=it,this[7]=ot,this[8]=At,this.check()}setRowMajor($,_e,et,tt,rt,nt,it,ot,At){return this[0]=$,this[1]=tt,this[2]=it,this[3]=_e,this[4]=rt,this[5]=ot,this[6]=et,this[7]=nt,this[8]=At,this.check()}determinant(){return determinant$1(this)}transpose(){return transpose$1(this,this),this.check()}invert(){return invert$2(this,this),this.check()}multiplyLeft($){return multiply$3(this,$,this),this.check()}multiplyRight($){return multiply$3(this,this,$),this.check()}rotate($){return rotate$1(this,this,$),this.check()}scale($){return Array.isArray($)?scale$4(this,this,$):scale$4(this,this,[$,$]),this.check()}translate($){return translate$1(this,this,$),this.check()}transform($,_e){let et;switch($.length){case 2:et=transformMat3$1(_e||[-0,-0],$,this);break;case 3:et=transformMat3(_e||[-0,-0,-0],$,this);break;case 4:et=vec4_transformMat3(_e||[-0,-0,-0,-0],$,this);break;default:throw new Error("Illegal vector")}return checkVector(et,$.length),et}transformVector($,_e){return this.transform($,_e)}transformVector2($,_e){return this.transform($,_e)}transformVector3($,_e){return this.transform($,_e)}}let ZERO_MATRIX3,IDENTITY_MATRIX3;function getZeroMatrix$1(){return ZERO_MATRIX3||(ZERO_MATRIX3=new Matrix3([0,0,0,0,0,0,0,0,0]),Object.freeze(ZERO_MATRIX3)),ZERO_MATRIX3}function getIdentityMatrix$1(){return IDENTITY_MATRIX3||(IDENTITY_MATRIX3=new Matrix3,Object.freeze(IDENTITY_MATRIX3)),IDENTITY_MATRIX3}function identity$5(j){return j[0]=1,j[1]=0,j[2]=0,j[3]=0,j[4]=0,j[5]=1,j[6]=0,j[7]=0,j[8]=0,j[9]=0,j[10]=1,j[11]=0,j[12]=0,j[13]=0,j[14]=0,j[15]=1,j}function transpose(j,$){if(j===$){var _e=$[1],et=$[2],tt=$[3],rt=$[6],nt=$[7],it=$[11];j[1]=$[4],j[2]=$[8],j[3]=$[12],j[4]=_e,j[6]=$[9],j[7]=$[13],j[8]=et,j[9]=rt,j[11]=$[14],j[12]=tt,j[13]=nt,j[14]=it}else j[0]=$[0],j[1]=$[4],j[2]=$[8],j[3]=$[12],j[4]=$[1],j[5]=$[5],j[6]=$[9],j[7]=$[13],j[8]=$[2],j[9]=$[6],j[10]=$[10],j[11]=$[14],j[12]=$[3],j[13]=$[7],j[14]=$[11],j[15]=$[15];return j}function invert$1(j,$){var _e=$[0],et=$[1],tt=$[2],rt=$[3],nt=$[4],it=$[5],ot=$[6],At=$[7],ut=$[8],ft=$[9],dt=$[10],Et=$[11],Bt=$[12],St=$[13],Dt=$[14],$t=$[15],Rt=_e*it-et*nt,wt=_e*ot-tt*nt,xt=_e*At-rt*nt,Nt=et*ot-tt*it,Ot=et*At-rt*it,kt=tt*At-rt*ot,Jt=ut*St-ft*Bt,jt=ut*Dt-dt*Bt,Ht=ut*$t-Et*Bt,Gt=ft*Dt-dt*St,Kt=ft*$t-Et*St,Wt=dt*$t-Et*Dt,Vt=Rt*Wt-wt*Kt+xt*Gt+Nt*Ht-Ot*jt+kt*Jt;return Vt?(Vt=1/Vt,j[0]=(it*Wt-ot*Kt+At*Gt)*Vt,j[1]=(tt*Kt-et*Wt-rt*Gt)*Vt,j[2]=(St*kt-Dt*Ot+$t*Nt)*Vt,j[3]=(dt*Ot-ft*kt-Et*Nt)*Vt,j[4]=(ot*Ht-nt*Wt-At*jt)*Vt,j[5]=(_e*Wt-tt*Ht+rt*jt)*Vt,j[6]=(Dt*xt-Bt*kt-$t*wt)*Vt,j[7]=(ut*kt-dt*xt+Et*wt)*Vt,j[8]=(nt*Kt-it*Ht+At*Jt)*Vt,j[9]=(et*Ht-_e*Kt-rt*Jt)*Vt,j[10]=(Bt*Ot-St*xt+$t*Rt)*Vt,j[11]=(ft*xt-ut*Ot-Et*Rt)*Vt,j[12]=(it*jt-nt*Gt-ot*Jt)*Vt,j[13]=(_e*Gt-et*jt+tt*Jt)*Vt,j[14]=(St*wt-Bt*Nt-Dt*Rt)*Vt,j[15]=(ut*Nt-ft*wt+dt*Rt)*Vt,j):null}function determinant(j){var $=j[0],_e=j[1],et=j[2],tt=j[3],rt=j[4],nt=j[5],it=j[6],ot=j[7],At=j[8],ut=j[9],ft=j[10],dt=j[11],Et=j[12],Bt=j[13],St=j[14],Dt=j[15],$t=$*nt-_e*rt,Rt=$*it-et*rt,wt=$*ot-tt*rt,xt=_e*it-et*nt,Nt=_e*ot-tt*nt,Ot=et*ot-tt*it,kt=At*Bt-ut*Et,Jt=At*St-ft*Et,jt=At*Dt-dt*Et,Ht=ut*St-ft*Bt,Gt=ut*Dt-dt*Bt,Kt=ft*Dt-dt*St;return $t*Kt-Rt*Gt+wt*Ht+xt*jt-Nt*Jt+Ot*kt}function multiply$2(j,$,_e){var et=$[0],tt=$[1],rt=$[2],nt=$[3],it=$[4],ot=$[5],At=$[6],ut=$[7],ft=$[8],dt=$[9],Et=$[10],Bt=$[11],St=$[12],Dt=$[13],$t=$[14],Rt=$[15],wt=_e[0],xt=_e[1],Nt=_e[2],Ot=_e[3];return j[0]=wt*et+xt*it+Nt*ft+Ot*St,j[1]=wt*tt+xt*ot+Nt*dt+Ot*Dt,j[2]=wt*rt+xt*At+Nt*Et+Ot*$t,j[3]=wt*nt+xt*ut+Nt*Bt+Ot*Rt,wt=_e[4],xt=_e[5],Nt=_e[6],Ot=_e[7],j[4]=wt*et+xt*it+Nt*ft+Ot*St,j[5]=wt*tt+xt*ot+Nt*dt+Ot*Dt,j[6]=wt*rt+xt*At+Nt*Et+Ot*$t,j[7]=wt*nt+xt*ut+Nt*Bt+Ot*Rt,wt=_e[8],xt=_e[9],Nt=_e[10],Ot=_e[11],j[8]=wt*et+xt*it+Nt*ft+Ot*St,j[9]=wt*tt+xt*ot+Nt*dt+Ot*Dt,j[10]=wt*rt+xt*At+Nt*Et+Ot*$t,j[11]=wt*nt+xt*ut+Nt*Bt+Ot*Rt,wt=_e[12],xt=_e[13],Nt=_e[14],Ot=_e[15],j[12]=wt*et+xt*it+Nt*ft+Ot*St,j[13]=wt*tt+xt*ot+Nt*dt+Ot*Dt,j[14]=wt*rt+xt*At+Nt*Et+Ot*$t,j[15]=wt*nt+xt*ut+Nt*Bt+Ot*Rt,j}function translate(j,$,_e){var et=_e[0],tt=_e[1],rt=_e[2],nt,it,ot,At,ut,ft,dt,Et,Bt,St,Dt,$t;return $===j?(j[12]=$[0]*et+$[4]*tt+$[8]*rt+$[12],j[13]=$[1]*et+$[5]*tt+$[9]*rt+$[13],j[14]=$[2]*et+$[6]*tt+$[10]*rt+$[14],j[15]=$[3]*et+$[7]*tt+$[11]*rt+$[15]):(nt=$[0],it=$[1],ot=$[2],At=$[3],ut=$[4],ft=$[5],dt=$[6],Et=$[7],Bt=$[8],St=$[9],Dt=$[10],$t=$[11],j[0]=nt,j[1]=it,j[2]=ot,j[3]=At,j[4]=ut,j[5]=ft,j[6]=dt,j[7]=Et,j[8]=Bt,j[9]=St,j[10]=Dt,j[11]=$t,j[12]=nt*et+ut*tt+Bt*rt+$[12],j[13]=it*et+ft*tt+St*rt+$[13],j[14]=ot*et+dt*tt+Dt*rt+$[14],j[15]=At*et+Et*tt+$t*rt+$[15]),j}function scale$3(j,$,_e){var et=_e[0],tt=_e[1],rt=_e[2];return j[0]=$[0]*et,j[1]=$[1]*et,j[2]=$[2]*et,j[3]=$[3]*et,j[4]=$[4]*tt,j[5]=$[5]*tt,j[6]=$[6]*tt,j[7]=$[7]*tt,j[8]=$[8]*rt,j[9]=$[9]*rt,j[10]=$[10]*rt,j[11]=$[11]*rt,j[12]=$[12],j[13]=$[13],j[14]=$[14],j[15]=$[15],j}function rotate(j,$,_e,et){var tt=et[0],rt=et[1],nt=et[2],it=Math.hypot(tt,rt,nt),ot,At,ut,ft,dt,Et,Bt,St,Dt,$t,Rt,wt,xt,Nt,Ot,kt,Jt,jt,Ht,Gt,Kt,Wt,Vt,ur;return it0&&(nt=1/Math.sqrt(nt)),j[0]=_e*nt,j[1]=et*nt,j[2]=tt*nt,j[3]=rt*nt,j}function dot$3(j,$){return j[0]*$[0]+j[1]*$[1]+j[2]*$[2]+j[3]*$[3]}function lerp$2(j,$,_e,et){var tt=$[0],rt=$[1],nt=$[2],it=$[3];return j[0]=tt+et*(_e[0]-tt),j[1]=rt+et*(_e[1]-rt),j[2]=nt+et*(_e[2]-nt),j[3]=it+et*(_e[3]-it),j}function transformMat4(j,$,_e){var et=$[0],tt=$[1],rt=$[2],nt=$[3];return j[0]=_e[0]*et+_e[4]*tt+_e[8]*rt+_e[12]*nt,j[1]=_e[1]*et+_e[5]*tt+_e[9]*rt+_e[13]*nt,j[2]=_e[2]*et+_e[6]*tt+_e[10]*rt+_e[14]*nt,j[3]=_e[3]*et+_e[7]*tt+_e[11]*rt+_e[15]*nt,j}function transformQuat(j,$,_e){var et=$[0],tt=$[1],rt=$[2],nt=_e[0],it=_e[1],ot=_e[2],At=_e[3],ut=At*et+it*rt-ot*tt,ft=At*tt+ot*et-nt*rt,dt=At*rt+nt*tt-it*et,Et=-nt*et-it*tt-ot*rt;return j[0]=ut*At+Et*-nt+ft*-ot-dt*-it,j[1]=ft*At+Et*-it+dt*-nt-ut*-ot,j[2]=dt*At+Et*-ot+ut*-it-ft*-nt,j[3]=$[3],j}(function(){var j=create$1();return function($,_e,et,tt,rt,nt){var it,ot;for(_e||(_e=4),et||(et=0),tt?ot=Math.min(tt*_e+et,$.length):ot=$.length,it=et;itMath.PI*2)throw Error("expected radians")}function computeInfinitePerspectiveOffCenter(j,$,_e,et,tt,rt){const nt=2*rt/(_e-$),it=2*rt/(tt-et),ot=(_e+$)/(_e-$),At=(tt+et)/(tt-et),ut=-1,ft=-1,dt=-2*rt;return j[0]=nt,j[1]=0,j[2]=0,j[3]=0,j[4]=0,j[5]=it,j[6]=0,j[7]=0,j[8]=ot,j[9]=At,j[10]=ut,j[11]=ft,j[12]=0,j[13]=0,j[14]=dt,j[15]=0,j}function create$5(){var j=new ARRAY_TYPE(4);return ARRAY_TYPE!=Float32Array&&(j[0]=0,j[1]=0,j[2]=0),j[3]=1,j}function identity$4(j){return j[0]=0,j[1]=0,j[2]=0,j[3]=1,j}function setAxisAngle(j,$,_e){_e=_e*.5;var et=Math.sin(_e);return j[0]=et*$[0],j[1]=et*$[1],j[2]=et*$[2],j[3]=Math.cos(_e),j}function multiply$1(j,$,_e){var et=$[0],tt=$[1],rt=$[2],nt=$[3],it=_e[0],ot=_e[1],At=_e[2],ut=_e[3];return j[0]=et*ut+nt*it+tt*At-rt*ot,j[1]=tt*ut+nt*ot+rt*it-et*At,j[2]=rt*ut+nt*At+et*ot-tt*it,j[3]=nt*ut-et*it-tt*ot-rt*At,j}function rotateX(j,$,_e){_e*=.5;var et=$[0],tt=$[1],rt=$[2],nt=$[3],it=Math.sin(_e),ot=Math.cos(_e);return j[0]=et*ot+nt*it,j[1]=tt*ot+rt*it,j[2]=rt*ot-tt*it,j[3]=nt*ot-et*it,j}function rotateY(j,$,_e){_e*=.5;var et=$[0],tt=$[1],rt=$[2],nt=$[3],it=Math.sin(_e),ot=Math.cos(_e);return j[0]=et*ot-rt*it,j[1]=tt*ot+nt*it,j[2]=rt*ot+et*it,j[3]=nt*ot-tt*it,j}function rotateZ(j,$,_e){_e*=.5;var et=$[0],tt=$[1],rt=$[2],nt=$[3],it=Math.sin(_e),ot=Math.cos(_e);return j[0]=et*ot+tt*it,j[1]=tt*ot-et*it,j[2]=rt*ot+nt*it,j[3]=nt*ot-rt*it,j}function calculateW(j,$){var _e=$[0],et=$[1],tt=$[2];return j[0]=_e,j[1]=et,j[2]=tt,j[3]=Math.sqrt(Math.abs(1-_e*_e-et*et-tt*tt)),j}function slerp(j,$,_e,et){var tt=$[0],rt=$[1],nt=$[2],it=$[3],ot=_e[0],At=_e[1],ut=_e[2],ft=_e[3],dt,Et,Bt,St,Dt;return Et=tt*ot+rt*At+nt*ut+it*ft,Et<0&&(Et=-Et,ot=-ot,At=-At,ut=-ut,ft=-ft),1-Et>EPSILON$3?(dt=Math.acos(Et),Bt=Math.sin(dt),St=Math.sin((1-et)*dt)/Bt,Dt=Math.sin(et*dt)/Bt):(St=1-et,Dt=et),j[0]=St*tt+Dt*ot,j[1]=St*rt+Dt*At,j[2]=St*nt+Dt*ut,j[3]=St*it+Dt*ft,j}function invert(j,$){var _e=$[0],et=$[1],tt=$[2],rt=$[3],nt=_e*_e+et*et+tt*tt+rt*rt,it=nt?1/nt:0;return j[0]=-_e*it,j[1]=-et*it,j[2]=-tt*it,j[3]=rt*it,j}function conjugate(j,$){return j[0]=-$[0],j[1]=-$[1],j[2]=-$[2],j[3]=$[3],j}function fromMat3(j,$){var _e=$[0]+$[4]+$[8],et;if(_e>0)et=Math.sqrt(_e+1),j[3]=.5*et,et=.5/et,j[0]=($[5]-$[7])*et,j[1]=($[6]-$[2])*et,j[2]=($[1]-$[3])*et;else{var tt=0;$[4]>$[0]&&(tt=1),$[8]>$[tt*3+tt]&&(tt=2);var rt=(tt+1)%3,nt=(tt+2)%3;et=Math.sqrt($[tt*3+tt]-$[rt*3+rt]-$[nt*3+nt]+1),j[tt]=.5*et,et=.5/et,j[3]=($[rt*3+nt]-$[nt*3+rt])*et,j[rt]=($[rt*3+tt]+$[tt*3+rt])*et,j[nt]=($[nt*3+tt]+$[tt*3+nt])*et}return j}var add$3=add$4,scale$1=scale$2,dot$2=dot$3,lerp$1=lerp$2,length$2=length$3,squaredLength=squaredLength$1,normalize$2=normalize$3,rotationTo=function(){var j=create$3(),$=fromValues(1,0,0),_e=fromValues(0,1,0);return function(et,tt,rt){var nt=dot$4(tt,rt);return nt<-.999999?(cross$1(j,$,tt),len(j)<1e-6&&cross$1(j,_e,tt),normalize$4(j,j),setAxisAngle(et,j,Math.PI),et):nt>.999999?(et[0]=0,et[1]=0,et[2]=0,et[3]=1,et):(cross$1(j,tt,rt),et[0]=j[0],et[1]=j[1],et[2]=j[2],et[3]=1+nt,normalize$2(et,et))}}();(function(){var j=create$5(),$=create$5();return function(_e,et,tt,rt,nt,it){return slerp(j,et,nt,it),slerp($,tt,rt,it),slerp(_e,j,$,2*it*(1-it)),_e}})();(function(){var j=create$2();return function($,_e,et,tt){return j[0]=et[0],j[3]=et[1],j[6]=et[2],j[1]=tt[0],j[4]=tt[1],j[7]=tt[2],j[2]=-_e[0],j[5]=-_e[1],j[8]=-_e[2],normalize$2($,fromMat3($,j))}})();const IDENTITY_QUATERNION=[0,0,0,1];class Quaternion extends MathArray{constructor($=0,_e=0,et=0,tt=1){super(-0,-0,-0,-0),Array.isArray($)&&arguments.length===1?this.copy($):this.set($,_e,et,tt)}copy($){return this[0]=$[0],this[1]=$[1],this[2]=$[2],this[3]=$[3],this.check()}set($,_e,et,tt){return this[0]=$,this[1]=_e,this[2]=et,this[3]=tt,this.check()}fromObject($){return this[0]=$.x,this[1]=$.y,this[2]=$.z,this[3]=$.w,this.check()}fromMatrix3($){return fromMat3(this,$),this.check()}fromAxisRotation($,_e){return setAxisAngle(this,$,_e),this.check()}identity(){return identity$4(this),this.check()}setAxisAngle($,_e){return this.fromAxisRotation($,_e)}get ELEMENTS(){return 4}get x(){return this[0]}set x($){this[0]=checkNumber($)}get y(){return this[1]}set y($){this[1]=checkNumber($)}get z(){return this[2]}set z($){this[2]=checkNumber($)}get w(){return this[3]}set w($){this[3]=checkNumber($)}len(){return length$2(this)}lengthSquared(){return squaredLength(this)}dot($){return dot$2(this,$)}rotationTo($,_e){return rotationTo(this,$,_e),this.check()}add($){return add$3(this,this,$),this.check()}calculateW(){return calculateW(this,this),this.check()}conjugate(){return conjugate(this,this),this.check()}invert(){return invert(this,this),this.check()}lerp($,_e,et){return et===void 0?this.lerp(this,$,_e):(lerp$1(this,$,_e,et),this.check())}multiplyRight($){return multiply$1(this,this,$),this.check()}multiplyLeft($){return multiply$1(this,$,this),this.check()}normalize(){const $=this.len(),_e=$>0?1/$:0;return this[0]=this[0]*_e,this[1]=this[1]*_e,this[2]=this[2]*_e,this[3]=this[3]*_e,$===0&&(this[3]=1),this.check()}rotateX($){return rotateX(this,this,$),this.check()}rotateY($){return rotateY(this,this,$),this.check()}rotateZ($){return rotateZ(this,this,$),this.check()}scale($){return scale$1(this,this,$),this.check()}slerp($,_e,et){let tt,rt,nt;switch(arguments.length){case 1:({start:tt=IDENTITY_QUATERNION,target:rt,ratio:nt}=$);break;case 2:tt=this,rt=$,nt=_e;break;default:tt=$,rt=_e,nt=et}return slerp(this,tt,rt,nt),this.check()}transformVector4($,_e=new Vector4){return transformQuat(_e,$,this),checkVector(_e,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle($,_e){return this.setAxisAngle($,_e)}premultiply($){return this.multiplyLeft($)}multiply($){return this.multiplyRight($)}}function _defineProperty$f(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}const EPSILON$2=1e-6,EARTH_RADIUS_METERS=6371e3;class SphericalCoordinates{constructor({phi:$=0,theta:_e=0,radius:et=1,bearing:tt,pitch:rt,altitude:nt,radiusScale:it=EARTH_RADIUS_METERS}={}){_defineProperty$f(this,"phi",void 0),_defineProperty$f(this,"theta",void 0),_defineProperty$f(this,"radius",void 0),_defineProperty$f(this,"radiusScale",void 0),this.phi=$,this.theta=_e,this.radius=et||nt||1,this.radiusScale=it||1,tt!==void 0&&(this.bearing=tt),rt!==void 0&&(this.pitch=rt),this.check()}toString(){return this.formatString(config$2)}formatString({printTypes:$=!1}){const _e=formatValue$1;return"".concat($?"Spherical":"","[rho:").concat(_e(this.radius),",theta:").concat(_e(this.theta),",phi:").concat(_e(this.phi),"]")}equals($){return equals$3(this.radius,$.radius)&&equals$3(this.theta,$.theta)&&equals$3(this.phi,$.phi)}exactEquals($){return this.radius===$.radius&&this.theta===$.theta&&this.phi===$.phi}get bearing(){return 180-degrees$1(this.phi)}set bearing($){this.phi=Math.PI-radians$1($)}get pitch(){return degrees$1(this.theta)}set pitch($){this.theta=radians$1($)}get longitude(){return degrees$1(this.phi)}get latitude(){return degrees$1(this.theta)}get lng(){return degrees$1(this.phi)}get lat(){return degrees$1(this.theta)}get z(){return(this.radius-1)*this.radiusScale}set($,_e,et){return this.radius=$,this.phi=_e,this.theta=et,this.check()}clone(){return new SphericalCoordinates().copy(this)}copy($){return this.radius=$.radius,this.phi=$.phi,this.theta=$.theta,this.check()}fromLngLatZ([$,_e,et]){return this.radius=1+et/this.radiusScale,this.phi=radians$1(_e),this.theta=radians$1($),this.check()}fromVector3($){return this.radius=length$4($),this.radius>0&&(this.theta=Math.atan2($[0],$[1]),this.phi=Math.acos(clamp$2($[2]/this.radius,-1,1))),this.check()}toVector3(){return new Vector3(0,0,this.radius).rotateX({radians:this.theta}).rotateZ({radians:this.phi})}makeSafe(){return this.phi=Math.max(EPSILON$2,Math.min(Math.PI-EPSILON$2,this.phi)),this}check(){if(!Number.isFinite(this.phi)||!Number.isFinite(this.theta)||!(this.radius>0))throw new Error("SphericalCoordinates: some fields set to invalid numbers");return this}}const ERR_UNKNOWN_ORDER="Unknown Euler angle order",ALMOST_ONE=.99999;var RotationOrder;(function(j){j[j.ZYX=0]="ZYX",j[j.YXZ=1]="YXZ",j[j.XZY=2]="XZY",j[j.ZXY=3]="ZXY",j[j.YZX=4]="YZX",j[j.XYZ=5]="XYZ"})(RotationOrder||(RotationOrder={}));class Euler extends MathArray{static get ZYX(){return RotationOrder.ZYX}static get YXZ(){return RotationOrder.YXZ}static get XZY(){return RotationOrder.XZY}static get ZXY(){return RotationOrder.ZXY}static get YZX(){return RotationOrder.YZX}static get XYZ(){return RotationOrder.XYZ}static get RollPitchYaw(){return RotationOrder.ZYX}static get DefaultOrder(){return RotationOrder.ZYX}static get RotationOrders(){return RotationOrder}static rotationOrder($){return RotationOrder[$]}get ELEMENTS(){return 4}constructor($=0,_e=0,et=0,tt=Euler.DefaultOrder){super(-0,-0,-0,-0),arguments.length>0&&Array.isArray(arguments[0])?this.fromVector3(...arguments):this.set($,_e,et,tt)}fromQuaternion($){const[_e,et,tt,rt]=$,nt=et*et,it=-2*(nt+tt*tt)+1,ot=2*(_e*et+rt*tt);let At=-2*(_e*tt-rt*et);const ut=2*(et*tt+rt*_e),ft=-2*(_e*_e+nt)+1;At=At>1?1:At,At=At<-1?-1:At;const dt=Math.atan2(ut,ft),Et=Math.asin(At),Bt=Math.atan2(ot,it);return this.set(dt,Et,Bt,Euler.RollPitchYaw)}fromObject($){throw new Error("not implemented")}copy($){return this[0]=$[0],this[1]=$[1],this[2]=$[2],this[3]=Number.isFinite($[3])||this.order,this.check()}set($=0,_e=0,et=0,tt){return this[0]=$,this[1]=_e,this[2]=et,this[3]=Number.isFinite(tt)?tt:this[3],this.check()}validate(){return validateOrder(this[3])&&Number.isFinite(this[0])&&Number.isFinite(this[1])&&Number.isFinite(this[2])}toArray($=[],_e=0){return $[_e]=this[0],$[_e+1]=this[1],$[_e+2]=this[2],$}toArray4($=[],_e=0){return $[_e]=this[0],$[_e+1]=this[1],$[_e+2]=this[2],$[_e+3]=this[3],$}toVector3($=[-0,-0,-0]){return $[0]=this[0],$[1]=this[1],$[2]=this[2],$}get x(){return this[0]}set x($){this[0]=checkNumber($)}get y(){return this[1]}set y($){this[1]=checkNumber($)}get z(){return this[2]}set z($){this[2]=checkNumber($)}get alpha(){return this[0]}set alpha($){this[0]=checkNumber($)}get beta(){return this[1]}set beta($){this[1]=checkNumber($)}get gamma(){return this[2]}set gamma($){this[2]=checkNumber($)}get phi(){return this[0]}set phi($){this[0]=checkNumber($)}get theta(){return this[1]}set theta($){this[1]=checkNumber($)}get psi(){return this[2]}set psi($){this[2]=checkNumber($)}get roll(){return this[0]}set roll($){this[0]=checkNumber($)}get pitch(){return this[1]}set pitch($){this[1]=checkNumber($)}get yaw(){return this[2]}set yaw($){this[2]=checkNumber($)}get order(){return this[3]}set order($){this[3]=checkOrder($)}fromVector3($,_e){return this.set($[0],$[1],$[2],Number.isFinite(_e)?_e:this[3])}fromArray($,_e=0){return this[0]=$[0+_e],this[1]=$[1+_e],this[2]=$[2+_e],$[3]!==void 0&&(this[3]=$[3]),this.check()}fromRollPitchYaw($,_e,et){return this.set($,_e,et,RotationOrder.ZYX)}fromRotationMatrix($,_e=Euler.DefaultOrder){return this._fromRotationMatrix($,_e),this.check()}getRotationMatrix($){return this._getRotationMatrix($)}getQuaternion(){const $=new Quaternion;switch(this[4]){case RotationOrder.XYZ:return $.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);case RotationOrder.YXZ:return $.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);case RotationOrder.ZXY:return $.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);case RotationOrder.ZYX:return $.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);case RotationOrder.YZX:return $.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);case RotationOrder.XZY:return $.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);default:throw new Error(ERR_UNKNOWN_ORDER)}}_fromRotationMatrix($,_e=Euler.DefaultOrder){const et=$[0],tt=$[4],rt=$[8],nt=$[1],it=$[5],ot=$[9],At=$[2],ut=$[6],ft=$[10];switch(_e=_e||this[3],_e){case Euler.XYZ:this[1]=Math.asin(clamp$2(rt,-1,1)),Math.abs(rt)=0&&j<6}function checkOrder(j){if(j<0&&j>=6)throw new Error(ERR_UNKNOWN_ORDER);return j}class Pose{constructor({x:$=0,y:_e=0,z:et=0,roll:tt=0,pitch:rt=0,yaw:nt=0,position:it,orientation:ot}={}){_defineProperty$f(this,"position",void 0),_defineProperty$f(this,"orientation",void 0),Array.isArray(it)&&it.length===3?this.position=new Vector3(it):this.position=new Vector3($,_e,et),Array.isArray(ot)&&ot.length===4?this.orientation=new Euler(ot,ot[3]):this.orientation=new Euler(tt,rt,nt,Euler.RollPitchYaw)}get x(){return this.position.x}set x($){this.position.x=$}get y(){return this.position.y}set y($){this.position.y=$}get z(){return this.position.z}set z($){this.position.z=$}get roll(){return this.orientation.roll}set roll($){this.orientation.roll=$}get pitch(){return this.orientation.pitch}set pitch($){this.orientation.pitch=$}get yaw(){return this.orientation.yaw}set yaw($){this.orientation.yaw=$}getPosition(){return this.position}getOrientation(){return this.orientation}equals($){return $?this.position.equals($.position)&&this.orientation.equals($.orientation):!1}exactEquals($){return $?this.position.exactEquals($.position)&&this.orientation.exactEquals($.orientation):!1}getTransformationMatrix(){const $=Math.sin(this.roll),_e=Math.sin(this.pitch),et=Math.sin(this.yaw),tt=Math.cos(this.roll),rt=Math.cos(this.pitch),nt=Math.cos(this.yaw);return new Matrix4().setRowMajor(nt*rt,-et*tt+nt*_e*$,et*$+nt*_e*tt,this.x,et*rt,nt*tt+et*_e*$,-nt*$+et*_e*tt,this.y,-_e,rt*$,rt*tt,this.z,0,0,0,1)}getTransformationMatrixFromPose($){return new Matrix4().multiplyRight(this.getTransformationMatrix()).multiplyRight($.getTransformationMatrix().invert())}getTransformationMatrixToPose($){return new Matrix4().multiplyRight($.getTransformationMatrix()).multiplyRight(this.getTransformationMatrix().invert())}}const _MathUtils={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,PI_OVER_TWO:Math.PI/2,PI_OVER_FOUR:Math.PI/4,PI_OVER_SIX:Math.PI/6,TWO_PI:Math.PI*2},esm$6=Object.freeze(Object.defineProperty({__proto__:null,Euler,Matrix3,Matrix4,Pose,Quaternion,SphericalCoordinates,Vector2,Vector3,Vector4,_Euler:Euler,_MathUtils,_Pose:Pose,_SphericalCoordinates:SphericalCoordinates,acos:acos$2,asin:asin$2,assert:assert$c,atan:atan$2,clamp:clamp$2,clone:clone$8,config:config$2,configure,cos:cos$2,degrees:degrees$1,equals:equals$3,exactEquals,formatValue:formatValue$1,isArray:isArray$3,lerp:lerp$5,radians:radians$1,sin:sin$2,tan:tan$2,toDegrees,toRadians,withEpsilon},Symbol.toStringTag,{value:"Module"}));function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(j){for(var $=1;$3?rr.slice(3):"any":rr,yr=fr.split("|").map(Er).filter(Lr).filter(_r),Ur=hr(er,yr),Wr=yr.map(function(Zr){var rn=ft(Zr);return{name:Zr,typeIndex:dt(rn),test:rn.test,conversion:null,conversionIndex:-1}}),Pr=Ur.map(function(Zr){var rn=ft(Zr.from);return{name:Zr.from,typeIndex:dt(rn),test:rn.test,conversion:Zr,conversionIndex:er.indexOf(Zr)}});return{types:Wr.concat(Pr),restParam:lr}}function Rt(rr,er,lr){var fr=[];return rr.trim()!==""&&(fr=rr.split(",").map(Er).map(function(yr,Ur,Wr){var Pr=$t(yr,lr);if(Pr.restParam&&Ur!==Wr.length-1)throw new SyntaxError('Unexpected rest parameter "'+yr+'": only allowed for the last parameter');return Pr})),fr.some($r)?null:{params:fr,fn:er}}function wt(rr){var er=Fr(rr);return er?er.restParam:!1}function xt(rr){return rr.types.some(function(er){return er.conversion!=null})}function Nt(rr){if(!rr||rr.types.length===0)return _e;if(rr.types.length===1)return ft(rr.types[0].name).test;if(rr.types.length===2){var er=ft(rr.types[0].name).test,lr=ft(rr.types[1].name).test;return function(Ur){return er(Ur)||lr(Ur)}}else{var fr=rr.types.map(function(yr){return ft(yr.name).test});return function(Ur){for(var Wr=0;Wr=yr+1}}else return rr.length===0?function(Zr){return Zr.length===0}:rr.length===1?(lr=Nt(rr[0]),function(Zr){return lr(Zr[0])&&Zr.length===1}):rr.length===2?(lr=Nt(rr[0]),fr=Nt(rr[1]),function(Zr){return lr(Zr[0])&&fr(Zr[1])&&Zr.length===2}):(er=rr.map(Nt),function(Zr){for(var rn=0;rn0){var rn=Et(er[Pr]);return fr=new TypeError("Unexpected type of argument in function "+Ur+" (expected: "+yr.join(" or ")+", actual: "+rn+", index: "+Pr+")"),fr.data={category:"wrongType",fn:Ur,index:Pr,actual:rn,expected:yr},fr}}else Wr=Zr}var on=Wr.map(function(Sn){return wt(Sn.params)?1/0:Sn.params.length});if(er.lengthIn?(fr=new TypeError("Too many arguments in function "+Ur+" (expected: "+In+", actual: "+er.length+")"),fr.data={category:"tooManyArgs",fn:Ur,index:er.length,expectedLength:In},fr):(fr=new TypeError('Arguments of type "'+er.join(", ")+'" do not match any of the defined signatures of function '+Ur+"."),fr.data={category:"mismatch",actual:er.map(Et)},fr)}function Wt(rr){for(var er=999,lr=0;lr=Wr:rn?Wr>=Pr:Wr===Pr}function mr(rr,er){if(Object.keys(er).length===0)throw new SyntaxError("No signatures provided");var lr=[];Object.keys(er).map(function(Hr){return Rt(Hr,er[Hr],ut.conversions)}).filter(Rr).forEach(function(Hr){var Jr=ir(lr,function(tn){return Zt(tn,Hr)});if(Jr)throw new TypeError('Conflicting signatures "'+Dt(Jr.params)+'" and "'+Dt(Hr.params)+'".');lr.push(Hr)});var fr=Or(lr,function(Hr){var Jr=Hr?pr(Hr.params,!1):[];return Jr.map(function(tn){return{params:tn,fn:Hr.fn}})}).filter(Rr);fr.sort(Ar);var yr=fr[0]&&fr[0].params.length<=2&&!wt(fr[0].params),Ur=fr[1]&&fr[1].params.length<=2&&!wt(fr[1].params),Wr=fr[2]&&fr[2].params.length<=2&&!wt(fr[2].params),Pr=fr[3]&&fr[3].params.length<=2&&!wt(fr[3].params),Zr=fr[4]&&fr[4].params.length<=2&&!wt(fr[4].params),rn=fr[5]&&fr[5].params.length<=2&&!wt(fr[5].params),on=yr&&Ur&&Wr&&Pr&&Zr&&rn,In=fr.map(function(Hr){return Ot(Hr.params)}),Sn=yr?Nt(fr[0].params[0]):et,un=Ur?Nt(fr[1].params[0]):et,dn=Wr?Nt(fr[2].params[0]):et,wn=Pr?Nt(fr[3].params[0]):et,Nn=Zr?Nt(fr[4].params[0]):et,Tn=rn?Nt(fr[5].params[0]):et,oo=yr?Nt(fr[0].params[1]):et,ao=Ur?Nt(fr[1].params[1]):et,qn=Wr?Nt(fr[2].params[1]):et,Ao=Pr?Nt(fr[3].params[1]):et,go=Zr?Nt(fr[4].params[1]):et,Xr=rn?Nt(fr[5].params[1]):et,Co=fr.map(function(Hr){return sr(Hr.params,Hr.fn)}),Lo=yr?Co[0]:tt,Ln=Ur?Co[1]:tt,rs=Wr?Co[2]:tt,Jo=Pr?Co[3]:tt,zo=Zr?Co[4]:tt,qo=rn?Co[5]:tt,Js=yr?fr[0].params.length:-1,yo=Ur?fr[1].params.length:-1,wo=Wr?fr[2].params.length:-1,lo=Pr?fr[3].params.length:-1,nn=Zr?fr[4].params.length:-1,an=rn?fr[5].params.length:-1,Sr=on?6:0,Ir=fr.length,mt=function(){for(var Jr=Sr;Jr=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}IndexError2.prototype=new RangeError;IndexError2.prototype.constructor=RangeError;IndexError2.prototype.name="IndexError";IndexError2.prototype.isIndexError=!0;function factory(j,$,_e,et){function tt(rt){var nt=pickShallow(rt,$.map(stripOptionalNotation));return assertDependencies(j,$,rt),_e(nt)}return tt.isFactory=!0,tt.fn=j,tt.dependencies=$.slice().sort(),et&&(tt.meta=et),tt}function assertDependencies(j,$,_e){var et=$.filter(rt=>!isOptionalDependency(rt)).every(rt=>_e[rt]!==void 0);if(!et){var tt=$.filter(rt=>_e[rt]===void 0);throw new Error('Cannot create function "'.concat(j,'", ')+"some dependencies are missing: ".concat(tt.map(rt=>'"'.concat(rt,'"')).join(", "),"."))}}function isOptionalDependency(j){return j&&j[0]==="?"}function stripOptionalNotation(j){return j&&j[0]==="?"?j.slice(1):j}/*! + * decimal.js v10.4.2 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2022 Michael Mclaughlin + * MIT Licence + */var EXP_LIMIT=9e15,MAX_DIGITS=1e9,NUMERALS="0123456789abcdef",LN10="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",PI$1="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",DEFAULTS={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-EXP_LIMIT,maxE:EXP_LIMIT,crypto:!1},inexact,quadrant,external=!0,decimalError="[DecimalError] ",invalidArgument=decimalError+"Invalid argument: ",precisionLimitExceeded=decimalError+"Precision limit exceeded",cryptoUnavailable=decimalError+"crypto unavailable",tag="[object Decimal]",mathfloor=Math.floor,mathpow=Math.pow,isBinary=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,isHex=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,isOctal=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,isDecimal=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,BASE=1e7,LOG_BASE=7,MAX_SAFE_INTEGER$2=9007199254740991,LN10_PRECISION=LN10.length-1,PI_PRECISION=PI$1.length-1,P={toStringTag:tag};P.absoluteValue=P.abs=function(){var j=new this.constructor(this);return j.s<0&&(j.s=1),finalise(j)};P.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)};P.clampedTo=P.clamp=function(j,$){var _e,et=this,tt=et.constructor;if(j=new tt(j),$=new tt($),!j.s||!$.s)return new tt(NaN);if(j.gt($))throw Error(invalidArgument+$);return _e=et.cmp(j),_e<0?j:et.cmp($)>0?$:new tt(et)};P.comparedTo=P.cmp=function(j){var $,_e,et,tt,rt=this,nt=rt.d,it=(j=new rt.constructor(j)).d,ot=rt.s,At=j.s;if(!nt||!it)return!ot||!At?NaN:ot!==At?ot:nt===it?0:!nt^ot<0?1:-1;if(!nt[0]||!it[0])return nt[0]?ot:it[0]?-At:0;if(ot!==At)return ot;if(rt.e!==j.e)return rt.e>j.e^ot<0?1:-1;for(et=nt.length,tt=it.length,$=0,_e=etit[$]^ot<0?1:-1;return et===tt?0:et>tt^ot<0?1:-1};P.cosine=P.cos=function(){var j,$,_e=this,et=_e.constructor;return _e.d?_e.d[0]?(j=et.precision,$=et.rounding,et.precision=j+Math.max(_e.e,_e.sd())+LOG_BASE,et.rounding=1,_e=cosine(et,toLessThanHalfPi(et,_e)),et.precision=j,et.rounding=$,finalise(quadrant==2||quadrant==3?_e.neg():_e,j,$,!0)):new et(1):new et(NaN)};P.cubeRoot=P.cbrt=function(){var j,$,_e,et,tt,rt,nt,it,ot,At,ut=this,ft=ut.constructor;if(!ut.isFinite()||ut.isZero())return new ft(ut);for(external=!1,rt=ut.s*mathpow(ut.s*ut,1/3),!rt||Math.abs(rt)==1/0?(_e=digitsToString(ut.d),j=ut.e,(rt=(j-_e.length+1)%3)&&(_e+=rt==1||rt==-2?"0":"00"),rt=mathpow(_e,1/3),j=mathfloor((j+1)/3)-(j%3==(j<0?-1:2)),rt==1/0?_e="5e"+j:(_e=rt.toExponential(),_e=_e.slice(0,_e.indexOf("e")+1)+j),et=new ft(_e),et.s=ut.s):et=new ft(rt.toString()),nt=(j=ft.precision)+3;;)if(it=et,ot=it.times(it).times(it),At=ot.plus(ut),et=divide$1(At.plus(ut).times(it),At.plus(ot),nt+2,1),digitsToString(it.d).slice(0,nt)===(_e=digitsToString(et.d)).slice(0,nt))if(_e=_e.slice(nt-3,nt+1),_e=="9999"||!tt&&_e=="4999"){if(!tt&&(finalise(it,j+1,0),it.times(it).times(it).eq(ut))){et=it;break}nt+=4,tt=1}else{(!+_e||!+_e.slice(1)&&_e.charAt(0)=="5")&&(finalise(et,j+1,1),$=!et.times(et).times(et).eq(ut));break}return external=!0,finalise(et,j,ft.rounding,$)};P.decimalPlaces=P.dp=function(){var j,$=this.d,_e=NaN;if($){if(j=$.length-1,_e=(j-mathfloor(this.e/LOG_BASE))*LOG_BASE,j=$[j],j)for(;j%10==0;j/=10)_e--;_e<0&&(_e=0)}return _e};P.dividedBy=P.div=function(j){return divide$1(this,new this.constructor(j))};P.dividedToIntegerBy=P.divToInt=function(j){var $=this,_e=$.constructor;return finalise(divide$1($,new _e(j),0,1,1),_e.precision,_e.rounding)};P.equals=P.eq=function(j){return this.cmp(j)===0};P.floor=function(){return finalise(new this.constructor(this),this.e+1,3)};P.greaterThan=P.gt=function(j){return this.cmp(j)>0};P.greaterThanOrEqualTo=P.gte=function(j){var $=this.cmp(j);return $==1||$===0};P.hyperbolicCosine=P.cosh=function(){var j,$,_e,et,tt,rt=this,nt=rt.constructor,it=new nt(1);if(!rt.isFinite())return new nt(rt.s?1/0:NaN);if(rt.isZero())return it;_e=nt.precision,et=nt.rounding,nt.precision=_e+Math.max(rt.e,rt.sd())+4,nt.rounding=1,tt=rt.d.length,tt<32?(j=Math.ceil(tt/3),$=(1/tinyPow(4,j)).toString()):(j=16,$="2.3283064365386962890625e-10"),rt=taylorSeries(nt,1,rt.times($),new nt(1),!0);for(var ot,At=j,ut=new nt(8);At--;)ot=rt.times(rt),rt=it.minus(ot.times(ut.minus(ot.times(ut))));return finalise(rt,nt.precision=_e,nt.rounding=et,!0)};P.hyperbolicSine=P.sinh=function(){var j,$,_e,et,tt=this,rt=tt.constructor;if(!tt.isFinite()||tt.isZero())return new rt(tt);if($=rt.precision,_e=rt.rounding,rt.precision=$+Math.max(tt.e,tt.sd())+4,rt.rounding=1,et=tt.d.length,et<3)tt=taylorSeries(rt,2,tt,tt,!0);else{j=1.4*Math.sqrt(et),j=j>16?16:j|0,tt=tt.times(1/tinyPow(5,j)),tt=taylorSeries(rt,2,tt,tt,!0);for(var nt,it=new rt(5),ot=new rt(16),At=new rt(20);j--;)nt=tt.times(tt),tt=tt.times(it.plus(nt.times(ot.times(nt).plus(At))))}return rt.precision=$,rt.rounding=_e,finalise(tt,$,_e,!0)};P.hyperbolicTangent=P.tanh=function(){var j,$,_e=this,et=_e.constructor;return _e.isFinite()?_e.isZero()?new et(_e):(j=et.precision,$=et.rounding,et.precision=j+7,et.rounding=1,divide$1(_e.sinh(),_e.cosh(),et.precision=j,et.rounding=$)):new et(_e.s)};P.inverseCosine=P.acos=function(){var j,$=this,_e=$.constructor,et=$.abs().cmp(1),tt=_e.precision,rt=_e.rounding;return et!==-1?et===0?$.isNeg()?getPi(_e,tt,rt):new _e(0):new _e(NaN):$.isZero()?getPi(_e,tt+4,rt).times(.5):(_e.precision=tt+6,_e.rounding=1,$=$.asin(),j=getPi(_e,tt+4,rt).times(.5),_e.precision=tt,_e.rounding=rt,j.minus($))};P.inverseHyperbolicCosine=P.acosh=function(){var j,$,_e=this,et=_e.constructor;return _e.lte(1)?new et(_e.eq(1)?0:NaN):_e.isFinite()?(j=et.precision,$=et.rounding,et.precision=j+Math.max(Math.abs(_e.e),_e.sd())+4,et.rounding=1,external=!1,_e=_e.times(_e).minus(1).sqrt().plus(_e),external=!0,et.precision=j,et.rounding=$,_e.ln()):new et(_e)};P.inverseHyperbolicSine=P.asinh=function(){var j,$,_e=this,et=_e.constructor;return!_e.isFinite()||_e.isZero()?new et(_e):(j=et.precision,$=et.rounding,et.precision=j+2*Math.max(Math.abs(_e.e),_e.sd())+6,et.rounding=1,external=!1,_e=_e.times(_e).plus(1).sqrt().plus(_e),external=!0,et.precision=j,et.rounding=$,_e.ln())};P.inverseHyperbolicTangent=P.atanh=function(){var j,$,_e,et,tt=this,rt=tt.constructor;return tt.isFinite()?tt.e>=0?new rt(tt.abs().eq(1)?tt.s/0:tt.isZero()?tt:NaN):(j=rt.precision,$=rt.rounding,et=tt.sd(),Math.max(et,j)<2*-tt.e-1?finalise(new rt(tt),j,$,!0):(rt.precision=_e=et-tt.e,tt=divide$1(tt.plus(1),new rt(1).minus(tt),_e+j,1),rt.precision=j+4,rt.rounding=1,tt=tt.ln(),rt.precision=j,rt.rounding=$,tt.times(.5))):new rt(NaN)};P.inverseSine=P.asin=function(){var j,$,_e,et,tt=this,rt=tt.constructor;return tt.isZero()?new rt(tt):($=tt.abs().cmp(1),_e=rt.precision,et=rt.rounding,$!==-1?$===0?(j=getPi(rt,_e+4,et).times(.5),j.s=tt.s,j):new rt(NaN):(rt.precision=_e+6,rt.rounding=1,tt=tt.div(new rt(1).minus(tt.times(tt)).sqrt().plus(1)).atan(),rt.precision=_e,rt.rounding=et,tt.times(2)))};P.inverseTangent=P.atan=function(){var j,$,_e,et,tt,rt,nt,it,ot,At=this,ut=At.constructor,ft=ut.precision,dt=ut.rounding;if(At.isFinite()){if(At.isZero())return new ut(At);if(At.abs().eq(1)&&ft+4<=PI_PRECISION)return nt=getPi(ut,ft+4,dt).times(.25),nt.s=At.s,nt}else{if(!At.s)return new ut(NaN);if(ft+4<=PI_PRECISION)return nt=getPi(ut,ft+4,dt).times(.5),nt.s=At.s,nt}for(ut.precision=it=ft+10,ut.rounding=1,_e=Math.min(28,it/LOG_BASE+2|0),j=_e;j;--j)At=At.div(At.times(At).plus(1).sqrt().plus(1));for(external=!1,$=Math.ceil(it/LOG_BASE),et=1,ot=At.times(At),nt=new ut(At),tt=At;j!==-1;)if(tt=tt.times(ot),rt=nt.minus(tt.div(et+=2)),tt=tt.times(ot),nt=rt.plus(tt.div(et+=2)),nt.d[$]!==void 0)for(j=$;nt.d[j]===rt.d[j]&&j--;);return _e&&(nt=nt.times(2<<_e-1)),external=!0,finalise(nt,ut.precision=ft,ut.rounding=dt,!0)};P.isFinite=function(){return!!this.d};P.isInteger=P.isInt=function(){return!!this.d&&mathfloor(this.e/LOG_BASE)>this.d.length-2};P.isNaN=function(){return!this.s};P.isNegative=P.isNeg=function(){return this.s<0};P.isPositive=P.isPos=function(){return this.s>0};P.isZero=function(){return!!this.d&&this.d[0]===0};P.lessThan=P.lt=function(j){return this.cmp(j)<0};P.lessThanOrEqualTo=P.lte=function(j){return this.cmp(j)<1};P.logarithm=P.log=function(j){var $,_e,et,tt,rt,nt,it,ot,At=this,ut=At.constructor,ft=ut.precision,dt=ut.rounding,Et=5;if(j==null)j=new ut(10),$=!0;else{if(j=new ut(j),_e=j.d,j.s<0||!_e||!_e[0]||j.eq(1))return new ut(NaN);$=j.eq(10)}if(_e=At.d,At.s<0||!_e||!_e[0]||At.eq(1))return new ut(_e&&!_e[0]?-1/0:At.s!=1?NaN:_e?0:1/0);if($)if(_e.length>1)rt=!0;else{for(tt=_e[0];tt%10===0;)tt/=10;rt=tt!==1}if(external=!1,it=ft+Et,nt=naturalLogarithm(At,it),et=$?getLn10(ut,it+10):naturalLogarithm(j,it),ot=divide$1(nt,et,it,1),checkRoundingDigits(ot.d,tt=ft,dt))do if(it+=10,nt=naturalLogarithm(At,it),et=$?getLn10(ut,it+10):naturalLogarithm(j,it),ot=divide$1(nt,et,it,1),!rt){+digitsToString(ot.d).slice(tt+1,tt+15)+1==1e14&&(ot=finalise(ot,ft+1,0));break}while(checkRoundingDigits(ot.d,tt+=10,dt));return external=!0,finalise(ot,ft,dt)};P.minus=P.sub=function(j){var $,_e,et,tt,rt,nt,it,ot,At,ut,ft,dt,Et=this,Bt=Et.constructor;if(j=new Bt(j),!Et.d||!j.d)return!Et.s||!j.s?j=new Bt(NaN):Et.d?j.s=-j.s:j=new Bt(j.d||Et.s!==j.s?Et:NaN),j;if(Et.s!=j.s)return j.s=-j.s,Et.plus(j);if(At=Et.d,dt=j.d,it=Bt.precision,ot=Bt.rounding,!At[0]||!dt[0]){if(dt[0])j.s=-j.s;else if(At[0])j=new Bt(Et);else return new Bt(ot===3?-0:0);return external?finalise(j,it,ot):j}if(_e=mathfloor(j.e/LOG_BASE),ut=mathfloor(Et.e/LOG_BASE),At=At.slice(),rt=ut-_e,rt){for(ft=rt<0,ft?($=At,rt=-rt,nt=dt.length):($=dt,_e=ut,nt=At.length),et=Math.max(Math.ceil(it/LOG_BASE),nt)+2,rt>et&&(rt=et,$.length=1),$.reverse(),et=rt;et--;)$.push(0);$.reverse()}else{for(et=At.length,nt=dt.length,ft=et0;--et)At[nt++]=0;for(et=dt.length;et>rt;){if(At[--et]nt?rt+1:nt+1,tt>nt&&(tt=nt,_e.length=1),_e.reverse();tt--;)_e.push(0);_e.reverse()}for(nt=At.length,tt=ut.length,nt-tt<0&&(tt=nt,_e=ut,ut=At,At=_e),$=0;tt;)$=(At[--tt]=At[tt]+ut[tt]+$)/BASE|0,At[tt]%=BASE;for($&&(At.unshift($),++et),nt=At.length;At[--nt]==0;)At.pop();return j.d=At,j.e=getBase10Exponent(At,et),external?finalise(j,it,ot):j};P.precision=P.sd=function(j){var $,_e=this;if(j!==void 0&&j!==!!j&&j!==1&&j!==0)throw Error(invalidArgument+j);return _e.d?($=getPrecision(_e.d),j&&_e.e+1>$&&($=_e.e+1)):$=NaN,$};P.round=function(){var j=this,$=j.constructor;return finalise(new $(j),j.e+1,$.rounding)};P.sine=P.sin=function(){var j,$,_e=this,et=_e.constructor;return _e.isFinite()?_e.isZero()?new et(_e):(j=et.precision,$=et.rounding,et.precision=j+Math.max(_e.e,_e.sd())+LOG_BASE,et.rounding=1,_e=sine(et,toLessThanHalfPi(et,_e)),et.precision=j,et.rounding=$,finalise(quadrant>2?_e.neg():_e,j,$,!0)):new et(NaN)};P.squareRoot=P.sqrt=function(){var j,$,_e,et,tt,rt,nt=this,it=nt.d,ot=nt.e,At=nt.s,ut=nt.constructor;if(At!==1||!it||!it[0])return new ut(!At||At<0&&(!it||it[0])?NaN:it?nt:1/0);for(external=!1,At=Math.sqrt(+nt),At==0||At==1/0?($=digitsToString(it),($.length+ot)%2==0&&($+="0"),At=Math.sqrt($),ot=mathfloor((ot+1)/2)-(ot<0||ot%2),At==1/0?$="5e"+ot:($=At.toExponential(),$=$.slice(0,$.indexOf("e")+1)+ot),et=new ut($)):et=new ut(At.toString()),_e=(ot=ut.precision)+3;;)if(rt=et,et=rt.plus(divide$1(nt,rt,_e+2,1)).times(.5),digitsToString(rt.d).slice(0,_e)===($=digitsToString(et.d)).slice(0,_e))if($=$.slice(_e-3,_e+1),$=="9999"||!tt&&$=="4999"){if(!tt&&(finalise(rt,ot+1,0),rt.times(rt).eq(nt))){et=rt;break}_e+=4,tt=1}else{(!+$||!+$.slice(1)&&$.charAt(0)=="5")&&(finalise(et,ot+1,1),j=!et.times(et).eq(nt));break}return external=!0,finalise(et,ot,ut.rounding,j)};P.tangent=P.tan=function(){var j,$,_e=this,et=_e.constructor;return _e.isFinite()?_e.isZero()?new et(_e):(j=et.precision,$=et.rounding,et.precision=j+10,et.rounding=1,_e=_e.sin(),_e.s=1,_e=divide$1(_e,new et(1).minus(_e.times(_e)).sqrt(),j+10,0),et.precision=j,et.rounding=$,finalise(quadrant==2||quadrant==4?_e.neg():_e,j,$,!0)):new et(NaN)};P.times=P.mul=function(j){var $,_e,et,tt,rt,nt,it,ot,At,ut=this,ft=ut.constructor,dt=ut.d,Et=(j=new ft(j)).d;if(j.s*=ut.s,!dt||!dt[0]||!Et||!Et[0])return new ft(!j.s||dt&&!dt[0]&&!Et||Et&&!Et[0]&&!dt?NaN:!dt||!Et?j.s/0:j.s*0);for(_e=mathfloor(ut.e/LOG_BASE)+mathfloor(j.e/LOG_BASE),ot=dt.length,At=Et.length,ot=0;){for($=0,tt=ot+et;tt>et;)it=rt[tt]+Et[et]*dt[tt-et-1]+$,rt[tt--]=it%BASE|0,$=it/BASE|0;rt[tt]=(rt[tt]+$)%BASE|0}for(;!rt[--nt];)rt.pop();return $?++_e:rt.shift(),j.d=rt,j.e=getBase10Exponent(rt,_e),external?finalise(j,ft.precision,ft.rounding):j};P.toBinary=function(j,$){return toStringBinary(this,2,j,$)};P.toDecimalPlaces=P.toDP=function(j,$){var _e=this,et=_e.constructor;return _e=new et(_e),j===void 0?_e:(checkInt32(j,0,MAX_DIGITS),$===void 0?$=et.rounding:checkInt32($,0,8),finalise(_e,j+_e.e+1,$))};P.toExponential=function(j,$){var _e,et=this,tt=et.constructor;return j===void 0?_e=finiteToString(et,!0):(checkInt32(j,0,MAX_DIGITS),$===void 0?$=tt.rounding:checkInt32($,0,8),et=finalise(new tt(et),j+1,$),_e=finiteToString(et,!0,j+1)),et.isNeg()&&!et.isZero()?"-"+_e:_e};P.toFixed=function(j,$){var _e,et,tt=this,rt=tt.constructor;return j===void 0?_e=finiteToString(tt):(checkInt32(j,0,MAX_DIGITS),$===void 0?$=rt.rounding:checkInt32($,0,8),et=finalise(new rt(tt),j+tt.e+1,$),_e=finiteToString(et,!1,j+et.e+1)),tt.isNeg()&&!tt.isZero()?"-"+_e:_e};P.toFraction=function(j){var $,_e,et,tt,rt,nt,it,ot,At,ut,ft,dt,Et=this,Bt=Et.d,St=Et.constructor;if(!Bt)return new St(Et);if(At=_e=new St(1),et=ot=new St(0),$=new St(et),rt=$.e=getPrecision(Bt)-Et.e-1,nt=rt%LOG_BASE,$.d[0]=mathpow(10,nt<0?LOG_BASE+nt:nt),j==null)j=rt>0?$:At;else{if(it=new St(j),!it.isInt()||it.lt(At))throw Error(invalidArgument+it);j=it.gt($)?rt>0?$:At:it}for(external=!1,it=new St(digitsToString(Bt)),ut=St.precision,St.precision=rt=Bt.length*LOG_BASE*2;ft=divide$1(it,$,0,1,1),tt=_e.plus(ft.times(et)),tt.cmp(j)!=1;)_e=et,et=tt,tt=At,At=ot.plus(ft.times(tt)),ot=tt,tt=$,$=it.minus(ft.times(tt)),it=tt;return tt=divide$1(j.minus(_e),et,0,1,1),ot=ot.plus(tt.times(At)),_e=_e.plus(tt.times(et)),ot.s=At.s=Et.s,dt=divide$1(At,et,rt,1).minus(Et).abs().cmp(divide$1(ot,_e,rt,1).minus(Et).abs())<1?[At,et]:[ot,_e],St.precision=ut,external=!0,dt};P.toHexadecimal=P.toHex=function(j,$){return toStringBinary(this,16,j,$)};P.toNearest=function(j,$){var _e=this,et=_e.constructor;if(_e=new et(_e),j==null){if(!_e.d)return _e;j=new et(1),$=et.rounding}else{if(j=new et(j),$===void 0?$=et.rounding:checkInt32($,0,8),!_e.d)return j.s?_e:j;if(!j.d)return j.s&&(j.s=_e.s),j}return j.d[0]?(external=!1,_e=divide$1(_e,j,0,$,1).times(j),external=!0,finalise(_e)):(j.s=_e.s,_e=j),_e};P.toNumber=function(){return+this};P.toOctal=function(j,$){return toStringBinary(this,8,j,$)};P.toPower=P.pow=function(j){var $,_e,et,tt,rt,nt,it=this,ot=it.constructor,At=+(j=new ot(j));if(!it.d||!j.d||!it.d[0]||!j.d[0])return new ot(mathpow(+it,At));if(it=new ot(it),it.eq(1))return it;if(et=ot.precision,rt=ot.rounding,j.eq(1))return finalise(it,et,rt);if($=mathfloor(j.e/LOG_BASE),$>=j.d.length-1&&(_e=At<0?-At:At)<=MAX_SAFE_INTEGER$2)return tt=intPow(ot,it,_e,et),j.s<0?new ot(1).div(tt):finalise(tt,et,rt);if(nt=it.s,nt<0){if($ot.maxE+1||$0?nt/0:0):(external=!1,ot.rounding=it.s=1,_e=Math.min(12,($+"").length),tt=naturalExponential(j.times(naturalLogarithm(it,et+_e)),et),tt.d&&(tt=finalise(tt,et+5,1),checkRoundingDigits(tt.d,et,rt)&&($=et+10,tt=finalise(naturalExponential(j.times(naturalLogarithm(it,$+_e)),$),$+5,1),+digitsToString(tt.d).slice(et+1,et+15)+1==1e14&&(tt=finalise(tt,et+1,0)))),tt.s=nt,external=!0,ot.rounding=rt,finalise(tt,et,rt))};P.toPrecision=function(j,$){var _e,et=this,tt=et.constructor;return j===void 0?_e=finiteToString(et,et.e<=tt.toExpNeg||et.e>=tt.toExpPos):(checkInt32(j,1,MAX_DIGITS),$===void 0?$=tt.rounding:checkInt32($,0,8),et=finalise(new tt(et),j,$),_e=finiteToString(et,j<=et.e||et.e<=tt.toExpNeg,j)),et.isNeg()&&!et.isZero()?"-"+_e:_e};P.toSignificantDigits=P.toSD=function(j,$){var _e=this,et=_e.constructor;return j===void 0?(j=et.precision,$=et.rounding):(checkInt32(j,1,MAX_DIGITS),$===void 0?$=et.rounding:checkInt32($,0,8)),finalise(new et(_e),j,$)};P.toString=function(){var j=this,$=j.constructor,_e=finiteToString(j,j.e<=$.toExpNeg||j.e>=$.toExpPos);return j.isNeg()&&!j.isZero()?"-"+_e:_e};P.truncated=P.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)};P.valueOf=P.toJSON=function(){var j=this,$=j.constructor,_e=finiteToString(j,j.e<=$.toExpNeg||j.e>=$.toExpPos);return j.isNeg()?"-"+_e:_e};function digitsToString(j){var $,_e,et,tt=j.length-1,rt="",nt=j[0];if(tt>0){for(rt+=nt,$=1;$_e)throw Error(invalidArgument+j)}function checkRoundingDigits(j,$,_e,et){var tt,rt,nt,it;for(rt=j[0];rt>=10;rt/=10)--$;return--$<0?($+=LOG_BASE,tt=0):(tt=Math.ceil(($+1)/LOG_BASE),$%=LOG_BASE),rt=mathpow(10,LOG_BASE-$),it=j[tt]%rt|0,et==null?$<3?($==0?it=it/100|0:$==1&&(it=it/10|0),nt=_e<4&&it==99999||_e>3&&it==49999||it==5e4||it==0):nt=(_e<4&&it+1==rt||_e>3&&it+1==rt/2)&&(j[tt+1]/rt/100|0)==mathpow(10,$-2)-1||(it==rt/2||it==0)&&(j[tt+1]/rt/100|0)==0:$<4?($==0?it=it/1e3|0:$==1?it=it/100|0:$==2&&(it=it/10|0),nt=(et||_e<4)&&it==9999||!et&&_e>3&&it==4999):nt=((et||_e<4)&&it+1==rt||!et&&_e>3&&it+1==rt/2)&&(j[tt+1]/rt/1e3|0)==mathpow(10,$-3)-1,nt}function convertBase(j,$,_e){for(var et,tt=[0],rt,nt=0,it=j.length;nt_e-1&&(tt[et+1]===void 0&&(tt[et+1]=0),tt[et+1]+=tt[et]/_e|0,tt[et]%=_e)}return tt.reverse()}function cosine(j,$){var _e,et,tt;if($.isZero())return $;et=$.d.length,et<32?(_e=Math.ceil(et/3),tt=(1/tinyPow(4,_e)).toString()):(_e=16,tt="2.3283064365386962890625e-10"),j.precision+=_e,$=taylorSeries(j,1,$.times(tt),new j(1));for(var rt=_e;rt--;){var nt=$.times($);$=nt.times(nt).minus(nt).times(8).plus(1)}return j.precision-=_e,$}var divide$1=function(){function j(et,tt,rt){var nt,it=0,ot=et.length;for(et=et.slice();ot--;)nt=et[ot]*tt+it,et[ot]=nt%rt|0,it=nt/rt|0;return it&&et.unshift(it),et}function $(et,tt,rt,nt){var it,ot;if(rt!=nt)ot=rt>nt?1:-1;else for(it=ot=0;ittt[it]?1:-1;break}return ot}function _e(et,tt,rt,nt){for(var it=0;rt--;)et[rt]-=it,it=et[rt]1;)et.shift()}return function(et,tt,rt,nt,it,ot){var At,ut,ft,dt,Et,Bt,St,Dt,$t,Rt,wt,xt,Nt,Ot,kt,Jt,jt,Ht,Gt,Kt,Wt=et.constructor,Vt=et.s==tt.s?1:-1,ur=et.d,Ar=tt.d;if(!ur||!ur[0]||!Ar||!Ar[0])return new Wt(!et.s||!tt.s||(ur?Ar&&ur[0]==Ar[0]:!Ar)?NaN:ur&&ur[0]==0||!Ar?Vt*0:Vt/0);for(ot?(Et=1,ut=et.e-tt.e):(ot=BASE,Et=LOG_BASE,ut=mathfloor(et.e/Et)-mathfloor(tt.e/Et)),Gt=Ar.length,jt=ur.length,$t=new Wt(Vt),Rt=$t.d=[],ft=0;Ar[ft]==(ur[ft]||0);ft++);if(Ar[ft]>(ur[ft]||0)&&ut--,rt==null?(Ot=rt=Wt.precision,nt=Wt.rounding):it?Ot=rt+(et.e-tt.e)+1:Ot=rt,Ot<0)Rt.push(1),Bt=!0;else{if(Ot=Ot/Et+2|0,ft=0,Gt==1){for(dt=0,Ar=Ar[0],Ot++;(ft1&&(Ar=j(Ar,dt,ot),ur=j(ur,dt,ot),Gt=Ar.length,jt=ur.length),Jt=Gt,wt=ur.slice(0,Gt),xt=wt.length;xt=ot/2&&++Ht;do dt=0,At=$(Ar,wt,Gt,xt),At<0?(Nt=wt[0],Gt!=xt&&(Nt=Nt*ot+(wt[1]||0)),dt=Nt/Ht|0,dt>1?(dt>=ot&&(dt=ot-1),St=j(Ar,dt,ot),Dt=St.length,xt=wt.length,At=$(St,wt,Dt,xt),At==1&&(dt--,_e(St,Gt=10;dt/=10)ft++;$t.e=ft+ut*Et-1,finalise($t,it?rt+$t.e+1:rt,nt,Bt)}return $t}}();function finalise(j,$,_e,et){var tt,rt,nt,it,ot,At,ut,ft,dt,Et=j.constructor;e:if($!=null){if(ft=j.d,!ft)return j;for(tt=1,it=ft[0];it>=10;it/=10)tt++;if(rt=$-tt,rt<0)rt+=LOG_BASE,nt=$,ut=ft[dt=0],ot=ut/mathpow(10,tt-nt-1)%10|0;else if(dt=Math.ceil((rt+1)/LOG_BASE),it=ft.length,dt>=it)if(et){for(;it++<=dt;)ft.push(0);ut=ot=0,tt=1,rt%=LOG_BASE,nt=rt-LOG_BASE+1}else break e;else{for(ut=it=ft[dt],tt=1;it>=10;it/=10)tt++;rt%=LOG_BASE,nt=rt-LOG_BASE+tt,ot=nt<0?0:ut/mathpow(10,tt-nt-1)%10|0}if(et=et||$<0||ft[dt+1]!==void 0||(nt<0?ut:ut%mathpow(10,tt-nt-1)),At=_e<4?(ot||et)&&(_e==0||_e==(j.s<0?3:2)):ot>5||ot==5&&(_e==4||et||_e==6&&(rt>0?nt>0?ut/mathpow(10,tt-nt):0:ft[dt-1])%10&1||_e==(j.s<0?8:7)),$<1||!ft[0])return ft.length=0,At?($-=j.e+1,ft[0]=mathpow(10,(LOG_BASE-$%LOG_BASE)%LOG_BASE),j.e=-$||0):ft[0]=j.e=0,j;if(rt==0?(ft.length=dt,it=1,dt--):(ft.length=dt+1,it=mathpow(10,LOG_BASE-rt),ft[dt]=nt>0?(ut/mathpow(10,tt-nt)%mathpow(10,nt)|0)*it:0),At)for(;;)if(dt==0){for(rt=1,nt=ft[0];nt>=10;nt/=10)rt++;for(nt=ft[0]+=it,it=1;nt>=10;nt/=10)it++;rt!=it&&(j.e++,ft[0]==BASE&&(ft[0]=1));break}else{if(ft[dt]+=it,ft[dt]!=BASE)break;ft[dt--]=0,it=1}for(rt=ft.length;ft[--rt]===0;)ft.pop()}return external&&(j.e>Et.maxE?(j.d=null,j.e=NaN):j.e0?rt=rt.charAt(0)+"."+rt.slice(1)+getZeroString(et):nt>1&&(rt=rt.charAt(0)+"."+rt.slice(1)),rt=rt+(j.e<0?"e":"e+")+j.e):tt<0?(rt="0."+getZeroString(-tt-1)+rt,_e&&(et=_e-nt)>0&&(rt+=getZeroString(et))):tt>=nt?(rt+=getZeroString(tt+1-nt),_e&&(et=_e-tt-1)>0&&(rt=rt+"."+getZeroString(et))):((et=tt+1)0&&(tt+1===nt&&(rt+="."),rt+=getZeroString(et))),rt}function getBase10Exponent(j,$){var _e=j[0];for($*=LOG_BASE;_e>=10;_e/=10)$++;return $}function getLn10(j,$,_e){if($>LN10_PRECISION)throw external=!0,_e&&(j.precision=_e),Error(precisionLimitExceeded);return finalise(new j(LN10),$,1,!0)}function getPi(j,$,_e){if($>PI_PRECISION)throw Error(precisionLimitExceeded);return finalise(new j(PI$1),$,_e,!0)}function getPrecision(j){var $=j.length-1,_e=$*LOG_BASE+1;if($=j[$],$){for(;$%10==0;$/=10)_e--;for($=j[0];$>=10;$/=10)_e++}return _e}function getZeroString(j){for(var $="";j--;)$+="0";return $}function intPow(j,$,_e,et){var tt,rt=new j(1),nt=Math.ceil(et/LOG_BASE+4);for(external=!1;;){if(_e%2&&(rt=rt.times($),truncate(rt.d,nt)&&(tt=!0)),_e=mathfloor(_e/2),_e===0){_e=rt.d.length-1,tt&&rt.d[_e]===0&&++rt.d[_e];break}$=$.times($),truncate($.d,nt)}return external=!0,rt}function isOdd(j){return j.d[j.d.length-1]&1}function maxOrMin(j,$,_e){for(var et,tt=new j($[0]),rt=0;++rt<$.length;)if(et=new j($[rt]),et.s)tt[_e](et)&&(tt=et);else{tt=et;break}return tt}function naturalExponential(j,$){var _e,et,tt,rt,nt,it,ot,At=0,ut=0,ft=0,dt=j.constructor,Et=dt.rounding,Bt=dt.precision;if(!j.d||!j.d[0]||j.e>17)return new dt(j.d?j.d[0]?j.s<0?0:1/0:1:j.s?j.s<0?0:j:NaN);for($==null?(external=!1,ot=Bt):ot=$,it=new dt(.03125);j.e>-2;)j=j.times(it),ft+=5;for(et=Math.log(mathpow(2,ft))/Math.LN10*2+5|0,ot+=et,_e=rt=nt=new dt(1),dt.precision=ot;;){if(rt=finalise(rt.times(j),ot,1),_e=_e.times(++ut),it=nt.plus(divide$1(rt,_e,ot,1)),digitsToString(it.d).slice(0,ot)===digitsToString(nt.d).slice(0,ot)){for(tt=ft;tt--;)nt=finalise(nt.times(nt),ot,1);if($==null)if(At<3&&checkRoundingDigits(nt.d,ot-et,Et,At))dt.precision=ot+=10,_e=rt=it=new dt(1),ut=0,At++;else return finalise(nt,dt.precision=Bt,Et,external=!0);else return dt.precision=Bt,nt}nt=it}}function naturalLogarithm(j,$){var _e,et,tt,rt,nt,it,ot,At,ut,ft,dt,Et=1,Bt=10,St=j,Dt=St.d,$t=St.constructor,Rt=$t.rounding,wt=$t.precision;if(St.s<0||!Dt||!Dt[0]||!St.e&&Dt[0]==1&&Dt.length==1)return new $t(Dt&&!Dt[0]?-1/0:St.s!=1?NaN:Dt?0:St);if($==null?(external=!1,ut=wt):ut=$,$t.precision=ut+=Bt,_e=digitsToString(Dt),et=_e.charAt(0),Math.abs(rt=St.e)<15e14){for(;et<7&&et!=1||et==1&&_e.charAt(1)>3;)St=St.times(j),_e=digitsToString(St.d),et=_e.charAt(0),Et++;rt=St.e,et>1?(St=new $t("0."+_e),rt++):St=new $t(et+"."+_e.slice(1))}else return At=getLn10($t,ut+2,wt).times(rt+""),St=naturalLogarithm(new $t(et+"."+_e.slice(1)),ut-Bt).plus(At),$t.precision=wt,$==null?finalise(St,wt,Rt,external=!0):St;for(ft=St,ot=nt=St=divide$1(St.minus(1),St.plus(1),ut,1),dt=finalise(St.times(St),ut,1),tt=3;;){if(nt=finalise(nt.times(dt),ut,1),At=ot.plus(divide$1(nt,new $t(tt),ut,1)),digitsToString(At.d).slice(0,ut)===digitsToString(ot.d).slice(0,ut))if(ot=ot.times(2),rt!==0&&(ot=ot.plus(getLn10($t,ut+2,wt).times(rt+""))),ot=divide$1(ot,new $t(Et),ut,1),$==null)if(checkRoundingDigits(ot.d,ut-Bt,Rt,it))$t.precision=ut+=Bt,At=nt=St=divide$1(ft.minus(1),ft.plus(1),ut,1),dt=finalise(St.times(St),ut,1),tt=it=1;else return finalise(ot,$t.precision=wt,Rt,external=!0);else return $t.precision=wt,ot;ot=At,tt+=2}}function nonFiniteToString(j){return String(j.s*j.s/0)}function parseDecimal(j,$){var _e,et,tt;for((_e=$.indexOf("."))>-1&&($=$.replace(".","")),(et=$.search(/e/i))>0?(_e<0&&(_e=et),_e+=+$.slice(et+1),$=$.substring(0,et)):_e<0&&(_e=$.length),et=0;$.charCodeAt(et)===48;et++);for(tt=$.length;$.charCodeAt(tt-1)===48;--tt);if($=$.slice(et,tt),$){if(tt-=et,j.e=_e=_e-et-1,j.d=[],et=(_e+1)%LOG_BASE,_e<0&&(et+=LOG_BASE),etj.constructor.maxE?(j.d=null,j.e=NaN):j.e-1){if($=$.replace(/(\d)_(?=\d)/g,"$1"),isDecimal.test($))return parseDecimal(j,$)}else if($==="Infinity"||$==="NaN")return+$||(j.s=NaN),j.e=NaN,j.d=null,j;if(isHex.test($))_e=16,$=$.toLowerCase();else if(isBinary.test($))_e=2;else if(isOctal.test($))_e=8;else throw Error(invalidArgument+$);for(rt=$.search(/p/i),rt>0?(ot=+$.slice(rt+1),$=$.substring(2,rt)):$=$.slice(2),rt=$.indexOf("."),nt=rt>=0,et=j.constructor,nt&&($=$.replace(".",""),it=$.length,rt=it-rt,tt=intPow(et,new et(_e),rt,rt*2)),At=convertBase($,_e,BASE),ut=At.length-1,rt=ut;At[rt]===0;--rt)At.pop();return rt<0?new et(j.s*0):(j.e=getBase10Exponent(At,ut),j.d=At,external=!1,nt&&(j=divide$1(j,tt,it*4)),ot&&(j=j.times(Math.abs(ot)<54?mathpow(2,ot):Decimal.pow(2,ot))),external=!0,j)}function sine(j,$){var _e,et=$.d.length;if(et<3)return $.isZero()?$:taylorSeries(j,2,$,$);_e=1.4*Math.sqrt(et),_e=_e>16?16:_e|0,$=$.times(1/tinyPow(5,_e)),$=taylorSeries(j,2,$,$);for(var tt,rt=new j(5),nt=new j(16),it=new j(20);_e--;)tt=$.times($),$=$.times(rt.plus(tt.times(nt.times(tt).minus(it))));return $}function taylorSeries(j,$,_e,et,tt){var rt,nt,it,ot,At=j.precision,ut=Math.ceil(At/LOG_BASE);for(external=!1,ot=_e.times(_e),it=new j(et);;){if(nt=divide$1(it.times(ot),new j($++*$++),At,1),it=tt?et.plus(nt):et.minus(nt),et=divide$1(nt.times(ot),new j($++*$++),At,1),nt=it.plus(et),nt.d[ut]!==void 0){for(rt=ut;nt.d[rt]===it.d[rt]&&rt--;);if(rt==-1)break}rt=it,it=et,et=nt,nt=rt}return external=!0,nt.d.length=ut+1,nt}function tinyPow(j,$){for(var _e=j;--$;)_e*=j;return _e}function toLessThanHalfPi(j,$){var _e,et=$.s<0,tt=getPi(j,j.precision,1),rt=tt.times(.5);if($=$.abs(),$.lte(rt))return quadrant=et?4:1,$;if(_e=$.divToInt(tt),_e.isZero())quadrant=et?3:2;else{if($=$.minus(_e.times(tt)),$.lte(rt))return quadrant=isOdd(_e)?et?2:3:et?4:1,$;quadrant=isOdd(_e)?et?1:4:et?3:2}return $.minus(tt).abs()}function toStringBinary(j,$,_e,et){var tt,rt,nt,it,ot,At,ut,ft,dt,Et=j.constructor,Bt=_e!==void 0;if(Bt?(checkInt32(_e,1,MAX_DIGITS),et===void 0?et=Et.rounding:checkInt32(et,0,8)):(_e=Et.precision,et=Et.rounding),!j.isFinite())ut=nonFiniteToString(j);else{for(ut=finiteToString(j),nt=ut.indexOf("."),Bt?(tt=2,$==16?_e=_e*4-3:$==8&&(_e=_e*3-2)):tt=$,nt>=0&&(ut=ut.replace(".",""),dt=new Et(1),dt.e=ut.length-nt,dt.d=convertBase(finiteToString(dt),10,tt),dt.e=dt.d.length),ft=convertBase(ut,10,tt),rt=ot=ft.length;ft[--ot]==0;)ft.pop();if(!ft[0])ut=Bt?"0p+0":"0";else{if(nt<0?rt--:(j=new Et(j),j.d=ft,j.e=rt,j=divide$1(j,dt,_e,et,0,tt),ft=j.d,rt=j.e,At=inexact),nt=ft[_e],it=tt/2,At=At||ft[_e+1]!==void 0,At=et<4?(nt!==void 0||At)&&(et===0||et===(j.s<0?3:2)):nt>it||nt===it&&(et===4||At||et===6&&ft[_e-1]&1||et===(j.s<0?8:7)),ft.length=_e,At)for(;++ft[--_e]>tt-1;)ft[_e]=0,_e||(++rt,ft.unshift(1));for(ot=ft.length;!ft[ot-1];--ot);for(nt=0,ut="";nt1)if($==16||$==8){for(nt=$==16?4:3,--ot;ot%nt;ot++)ut+="0";for(ft=convertBase(ut,tt,$),ot=ft.length;!ft[ot-1];--ot);for(nt=1,ut="1.";ntot)for(rt-=ot;rt--;)ut+="0";else rt$)return j.length=$,!0}function abs$2(j){return new this(j).abs()}function acos$1(j){return new this(j).acos()}function acosh(j){return new this(j).acosh()}function add$2(j,$){return new this(j).plus($)}function asin$1(j){return new this(j).asin()}function asinh(j){return new this(j).asinh()}function atan$1(j){return new this(j).atan()}function atanh(j){return new this(j).atanh()}function atan2$1(j,$){j=new this(j),$=new this($);var _e,et=this.precision,tt=this.rounding,rt=et+4;return!j.s||!$.s?_e=new this(NaN):!j.d&&!$.d?(_e=getPi(this,rt,1).times($.s>0?.25:.75),_e.s=j.s):!$.d||j.isZero()?(_e=$.s<0?getPi(this,et,tt):new this(0),_e.s=j.s):!j.d||$.isZero()?(_e=getPi(this,rt,1).times(.5),_e.s=j.s):$.s<0?(this.precision=rt,this.rounding=1,_e=this.atan(divide$1(j,$,rt,1)),$=getPi(this,rt,1),this.precision=et,this.rounding=tt,_e=j.s<0?_e.minus($):_e.plus($)):_e=this.atan(divide$1(j,$,rt,1)),_e}function cbrt(j){return new this(j).cbrt()}function ceil$2(j){return finalise(j=new this(j),j.e+1,2)}function clamp$1$1(j,$,_e){return new this(j).clamp($,_e)}function config2(j){if(!j||typeof j!="object")throw Error(decimalError+"Object expected");var $,_e,et,tt=j.defaults===!0,rt=["precision",1,MAX_DIGITS,"rounding",0,8,"toExpNeg",-EXP_LIMIT,0,"toExpPos",0,EXP_LIMIT,"maxE",0,EXP_LIMIT,"minE",-EXP_LIMIT,0,"modulo",0,9];for($=0;$=rt[$+1]&&et<=rt[$+2])this[_e]=et;else throw Error(invalidArgument+_e+": "+et);if(_e="crypto",tt&&(this[_e]=DEFAULTS[_e]),(et=j[_e])!==void 0)if(et===!0||et===!1||et===0||et===1)if(et)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[_e]=!0;else throw Error(cryptoUnavailable);else this[_e]=!1;else throw Error(invalidArgument+_e+": "+et);return this}function cos$1(j){return new this(j).cos()}function cosh(j){return new this(j).cosh()}function clone$6(j){var $,_e,et;function tt(rt){var nt,it,ot,At=this;if(!(At instanceof tt))return new tt(rt);if(At.constructor=tt,isDecimalInstance(rt)){At.s=rt.s,external?!rt.d||rt.e>tt.maxE?(At.e=NaN,At.d=null):rt.e=10;it/=10)nt++;external?nt>tt.maxE?(At.e=NaN,At.d=null):nt=429e7?$[rt]=crypto.getRandomValues(new Uint32Array(1))[0]:it[rt++]=tt%1e7;else if(crypto.randomBytes){for($=crypto.randomBytes(et*=4);rt=214e7?crypto.randomBytes(4).copy($,rt):(it.push(tt%1e7),rt+=4);rt=et/4}else throw Error(cryptoUnavailable);else for(;rt=10;tt/=10)et++;etft||ft>dt)return Math.cos(ft)-1;var Et=ft*ft;return Et*(Et*(Et*(Et*(Et*(Et*(Et*(Et/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},nt=function(ft,dt){var Et=Math.abs(ft),Bt=Math.abs(dt);return Et<3e3&&Bt<3e3?Math.sqrt(Et*Et+Bt*Bt):(Et0&&it();break;case"number":Et.im=0,Et.re=ft;break;default:it()}return isNaN(Et.re)||isNaN(Et.im),Et};function ut(ft,dt){if(!(this instanceof ut))return new ut(ft,dt);var Et=At(ft,dt);this.re=Et.re,this.im=Et.im}ut.prototype={re:0,im:0,sign:function(){var ft=this.abs();return new ut(this.re/ft,this.im/ft)},add:function(ft,dt){var Et=new ut(ft,dt);return this.isInfinite()&&Et.isInfinite()?ut.NAN:this.isInfinite()||Et.isInfinite()?ut.INFINITY:new ut(this.re+Et.re,this.im+Et.im)},sub:function(ft,dt){var Et=new ut(ft,dt);return this.isInfinite()&&Et.isInfinite()?ut.NAN:this.isInfinite()||Et.isInfinite()?ut.INFINITY:new ut(this.re-Et.re,this.im-Et.im)},mul:function(ft,dt){var Et=new ut(ft,dt);return this.isInfinite()&&Et.isZero()||this.isZero()&&Et.isInfinite()?ut.NAN:this.isInfinite()||Et.isInfinite()?ut.INFINITY:Et.im===0&&this.im===0?new ut(this.re*Et.re,0):new ut(this.re*Et.re-this.im*Et.im,this.re*Et.im+this.im*Et.re)},div:function(ft,dt){var Et=new ut(ft,dt);if(this.isZero()&&Et.isZero()||this.isInfinite()&&Et.isInfinite())return ut.NAN;if(this.isInfinite()||Et.isZero())return ut.INFINITY;if(this.isZero()||Et.isInfinite())return ut.ZERO;ft=this.re,dt=this.im;var Bt=Et.re,St=Et.im,Dt,$t;return St===0?new ut(ft/Bt,dt/Bt):Math.abs(Bt)0)return new ut(Math.pow(ft,Et.re),0);if(ft===0)switch((Et.re%4+4)%4){case 0:return new ut(Math.pow(dt,Et.re),0);case 1:return new ut(0,Math.pow(dt,Et.re));case 2:return new ut(-Math.pow(dt,Et.re),0);case 3:return new ut(0,-Math.pow(dt,Et.re))}}if(ft===0&&dt===0&&Et.re>0&&Et.im>=0)return ut.ZERO;var Bt=Math.atan2(dt,ft),St=ot(ft,dt);return ft=Math.exp(Et.re*St-Et.im*Bt),dt=Et.im*St+Et.re*Bt,new ut(ft*Math.cos(dt),ft*Math.sin(dt))},sqrt:function(){var ft=this.re,dt=this.im,Et=this.abs(),Bt,St;if(ft>=0){if(dt===0)return new ut(Math.sqrt(ft),0);Bt=.5*Math.sqrt(2*(Et+ft))}else Bt=Math.abs(dt)/Math.sqrt(2*(Et-ft));return ft<=0?St=.5*Math.sqrt(2*(Et-ft)):St=Math.abs(dt)/Math.sqrt(2*(Et+ft)),new ut(Bt,dt<0?-St:St)},exp:function(){var ft=Math.exp(this.re);return this.im,new ut(ft*Math.cos(this.im),ft*Math.sin(this.im))},expm1:function(){var ft=this.re,dt=this.im;return new ut(Math.expm1(ft)*Math.cos(dt)+rt(dt),Math.exp(ft)*Math.sin(dt))},log:function(){var ft=this.re,dt=this.im;return new ut(ot(ft,dt),Math.atan2(dt,ft))},abs:function(){return nt(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var ft=this.re,dt=this.im;return new ut(Math.sin(ft)*et(dt),Math.cos(ft)*tt(dt))},cos:function(){var ft=this.re,dt=this.im;return new ut(Math.cos(ft)*et(dt),-Math.sin(ft)*tt(dt))},tan:function(){var ft=2*this.re,dt=2*this.im,Et=Math.cos(ft)+et(dt);return new ut(Math.sin(ft)/Et,tt(dt)/Et)},cot:function(){var ft=2*this.re,dt=2*this.im,Et=Math.cos(ft)-et(dt);return new ut(-Math.sin(ft)/Et,tt(dt)/Et)},sec:function(){var ft=this.re,dt=this.im,Et=.5*et(2*dt)+.5*Math.cos(2*ft);return new ut(Math.cos(ft)*et(dt)/Et,Math.sin(ft)*tt(dt)/Et)},csc:function(){var ft=this.re,dt=this.im,Et=.5*et(2*dt)-.5*Math.cos(2*ft);return new ut(Math.sin(ft)*et(dt)/Et,-Math.cos(ft)*tt(dt)/Et)},asin:function(){var ft=this.re,dt=this.im,Et=new ut(dt*dt-ft*ft+1,-2*ft*dt).sqrt(),Bt=new ut(Et.re-dt,Et.im+ft).log();return new ut(Bt.im,-Bt.re)},acos:function(){var ft=this.re,dt=this.im,Et=new ut(dt*dt-ft*ft+1,-2*ft*dt).sqrt(),Bt=new ut(Et.re-dt,Et.im+ft).log();return new ut(Math.PI/2-Bt.im,Bt.re)},atan:function(){var ft=this.re,dt=this.im;if(ft===0){if(dt===1)return new ut(0,1/0);if(dt===-1)return new ut(0,-1/0)}var Et=ft*ft+(1-dt)*(1-dt),Bt=new ut((1-dt*dt-ft*ft)/Et,-2*ft/Et).log();return new ut(-.5*Bt.im,.5*Bt.re)},acot:function(){var ft=this.re,dt=this.im;if(dt===0)return new ut(Math.atan2(1,ft),0);var Et=ft*ft+dt*dt;return Et!==0?new ut(ft/Et,-dt/Et).atan():new ut(ft!==0?ft/0:0,dt!==0?-dt/0:0).atan()},asec:function(){var ft=this.re,dt=this.im;if(ft===0&&dt===0)return new ut(0,1/0);var Et=ft*ft+dt*dt;return Et!==0?new ut(ft/Et,-dt/Et).acos():new ut(ft!==0?ft/0:0,dt!==0?-dt/0:0).acos()},acsc:function(){var ft=this.re,dt=this.im;if(ft===0&&dt===0)return new ut(Math.PI/2,1/0);var Et=ft*ft+dt*dt;return Et!==0?new ut(ft/Et,-dt/Et).asin():new ut(ft!==0?ft/0:0,dt!==0?-dt/0:0).asin()},sinh:function(){var ft=this.re,dt=this.im;return new ut(tt(ft)*Math.cos(dt),et(ft)*Math.sin(dt))},cosh:function(){var ft=this.re,dt=this.im;return new ut(et(ft)*Math.cos(dt),tt(ft)*Math.sin(dt))},tanh:function(){var ft=2*this.re,dt=2*this.im,Et=et(ft)+Math.cos(dt);return new ut(tt(ft)/Et,Math.sin(dt)/Et)},coth:function(){var ft=2*this.re,dt=2*this.im,Et=et(ft)-Math.cos(dt);return new ut(tt(ft)/Et,-Math.sin(dt)/Et)},csch:function(){var ft=this.re,dt=this.im,Et=Math.cos(2*dt)-et(2*ft);return new ut(-2*tt(ft)*Math.cos(dt)/Et,2*et(ft)*Math.sin(dt)/Et)},sech:function(){var ft=this.re,dt=this.im,Et=Math.cos(2*dt)+et(2*ft);return new ut(2*et(ft)*Math.cos(dt)/Et,-2*tt(ft)*Math.sin(dt)/Et)},asinh:function(){var ft=this.im;this.im=-this.re,this.re=ft;var dt=this.asin();return this.re=-this.im,this.im=ft,ft=dt.re,dt.re=-dt.im,dt.im=ft,dt},acosh:function(){var ft=this.acos();if(ft.im<=0){var dt=ft.re;ft.re=-ft.im,ft.im=dt}else{var dt=ft.im;ft.im=-ft.re,ft.re=dt}return ft},atanh:function(){var ft=this.re,dt=this.im,Et=ft>1&&dt===0,Bt=1-ft,St=1+ft,Dt=Bt*Bt+dt*dt,$t=Dt!==0?new ut((St*Bt-dt*dt)/Dt,(dt*Bt+St*dt)/Dt):new ut(ft!==-1?ft/0:0,dt!==0?dt/0:0),Rt=$t.re;return $t.re=ot($t.re,$t.im)/2,$t.im=Math.atan2($t.im,Rt)/2,Et&&($t.im=-$t.im),$t},acoth:function(){var ft=this.re,dt=this.im;if(ft===0&&dt===0)return new ut(0,Math.PI/2);var Et=ft*ft+dt*dt;return Et!==0?new ut(ft/Et,-dt/Et).atanh():new ut(ft!==0?ft/0:0,dt!==0?-dt/0:0).atanh()},acsch:function(){var ft=this.re,dt=this.im;if(dt===0)return new ut(ft!==0?Math.log(ft+Math.sqrt(ft*ft+1)):1/0,0);var Et=ft*ft+dt*dt;return Et!==0?new ut(ft/Et,-dt/Et).asinh():new ut(ft!==0?ft/0:0,dt!==0?-dt/0:0).asinh()},asech:function(){var ft=this.re,dt=this.im;if(this.isZero())return ut.INFINITY;var Et=ft*ft+dt*dt;return Et!==0?new ut(ft/Et,-dt/Et).acosh():new ut(ft!==0?ft/0:0,dt!==0?-dt/0:0).acosh()},inverse:function(){if(this.isZero())return ut.INFINITY;if(this.isInfinite())return ut.ZERO;var ft=this.re,dt=this.im,Et=ft*ft+dt*dt;return new ut(ft/Et,-dt/Et)},conjugate:function(){return new ut(this.re,-this.im)},neg:function(){return new ut(-this.re,-this.im)},ceil:function(ft){return ft=Math.pow(10,ft||0),new ut(Math.ceil(this.re*ft)/ft,Math.ceil(this.im*ft)/ft)},floor:function(ft){return ft=Math.pow(10,ft||0),new ut(Math.floor(this.re*ft)/ft,Math.floor(this.im*ft)/ft)},round:function(ft){return ft=Math.pow(10,ft||0),new ut(Math.round(this.re*ft)/ft,Math.round(this.im*ft)/ft)},equals:function(ft,dt){var Et=new ut(ft,dt);return Math.abs(Et.re-this.re)<=ut.EPSILON&&Math.abs(Et.im-this.im)<=ut.EPSILON},clone:function(){return new ut(this.re,this.im)},toString:function(){var ft=this.re,dt=this.im,Et="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(ft)1&&(St[Dt]=(St[Dt]||0)+1):St[Bt]=(St[Bt]||0)+1,St}var ot=function(Bt,St){var Dt=0,$t=1,Rt=1,wt=0,xt=0,Nt=0,Ot=1,kt=1,Jt=0,jt=1,Ht=1,Gt=1,Kt=1e7,Wt;if(Bt!=null)if(St!==void 0){if(Dt=Bt,$t=St,Rt=Dt*$t,Dt%1!==0||$t%1!==0)throw Et.NonIntegerParameter}else switch(typeof Bt){case"object":{if("d"in Bt&&"n"in Bt)Dt=Bt.n,$t=Bt.d,"s"in Bt&&(Dt*=Bt.s);else if(0 in Bt)Dt=Bt[0],1 in Bt&&($t=Bt[1]);else throw Et.InvalidParameter;Rt=Dt*$t;break}case"number":{if(Bt<0&&(Rt=Bt,Bt=-Bt),Bt%1===0)Dt=Bt;else if(Bt>0){for(Bt>=1&&(kt=Math.pow(10,Math.floor(1+Math.log(Bt)/Math.LN10)),Bt/=kt);jt<=Kt&&Gt<=Kt;)if(Wt=(Jt+Ht)/(jt+Gt),Bt===Wt){jt+Gt<=Kt?(Dt=Jt+Ht,$t=jt+Gt):Gt>jt?(Dt=Ht,$t=Gt):(Dt=Jt,$t=jt);break}else Bt>Wt?(Jt+=Ht,jt+=Gt):(Ht+=Jt,Gt+=jt),jt>Kt?(Dt=Ht,$t=Gt):(Dt=Jt,$t=jt);Dt*=kt}else(isNaN(Bt)||isNaN(St))&&($t=Dt=NaN);break}case"string":{if(jt=Bt.match(/\d+|./g),jt===null)throw Et.InvalidParameter;if(jt[Jt]==="-"?(Rt=-1,Jt++):jt[Jt]==="+"&&Jt++,jt.length===Jt+1?xt=rt(jt[Jt++],Rt):jt[Jt+1]==="."||jt[Jt]==="."?(jt[Jt]!=="."&&(wt=rt(jt[Jt++],Rt)),Jt++,(Jt+1===jt.length||jt[Jt+1]==="("&&jt[Jt+3]===")"||jt[Jt+1]==="'"&&jt[Jt+3]==="'")&&(xt=rt(jt[Jt],Rt),Ot=Math.pow(10,jt[Jt].length),Jt++),(jt[Jt]==="("&&jt[Jt+2]===")"||jt[Jt]==="'"&&jt[Jt+2]==="'")&&(Nt=rt(jt[Jt+1],Rt),kt=Math.pow(10,jt[Jt+1].length)-1,Jt+=3)):jt[Jt+1]==="/"||jt[Jt+1]===":"?(xt=rt(jt[Jt],Rt),Ot=rt(jt[Jt+2],1),Jt+=3):jt[Jt+3]==="/"&&jt[Jt+1]===" "&&(wt=rt(jt[Jt],Rt),xt=rt(jt[Jt+2],Rt),Ot=rt(jt[Jt+4],1),Jt+=5),jt.length<=Jt){$t=Ot*kt,Rt=Dt=Nt+$t*wt+kt*xt;break}}default:throw Et.InvalidParameter}if($t===0)throw Et.DivisionByZero;tt.s=Rt<0?-1:1,tt.n=Math.abs(Dt),tt.d=Math.abs($t)};function At(Bt,St,Dt){for(var $t=1;St>0;Bt=Bt*Bt%Dt,St>>=1)St&1&&($t=$t*Bt%Dt);return $t}function ut(Bt,St){for(;St%2===0;St/=2);for(;St%5===0;St/=5);if(St===1)return 0;for(var Dt=10%St,$t=1;Dt!==1;$t++)if(Dt=Dt*10%St,$t>et)return 0;return $t}function ft(Bt,St,Dt){for(var $t=1,Rt=At(10,Dt,St),wt=0;wt<300;wt++){if($t===Rt)return wt;$t=$t*10%St,Rt=Rt*10%St}return 0}function dt(Bt,St){if(!Bt)return St;if(!St)return Bt;for(;;){if(Bt%=St,!Bt)return St;if(St%=Bt,!St)return Bt}}function Et(Bt,St){if(ot(Bt,St),this instanceof Et)Bt=dt(tt.d,tt.n),this.s=tt.s,this.n=tt.n/Bt,this.d=tt.d/Bt;else return nt(tt.s*tt.n,tt.d)}Et.DivisionByZero=new Error("Division by Zero"),Et.InvalidParameter=new Error("Invalid argument"),Et.NonIntegerParameter=new Error("Parameters must be integer"),Et.prototype={s:1,n:0,d:1,abs:function(){return nt(this.n,this.d)},neg:function(){return nt(-this.s*this.n,this.d)},add:function(Bt,St){return ot(Bt,St),nt(this.s*this.n*tt.d+tt.s*this.d*tt.n,this.d*tt.d)},sub:function(Bt,St){return ot(Bt,St),nt(this.s*this.n*tt.d-tt.s*this.d*tt.n,this.d*tt.d)},mul:function(Bt,St){return ot(Bt,St),nt(this.s*tt.s*this.n*tt.n,this.d*tt.d)},div:function(Bt,St){return ot(Bt,St),nt(this.s*tt.s*this.n*tt.d,this.d*tt.n)},clone:function(){return nt(this.s*this.n,this.d)},mod:function(Bt,St){if(isNaN(this.n)||isNaN(this.d))return new Et(NaN);if(Bt===void 0)return nt(this.s*this.n%this.d,1);if(ot(Bt,St),tt.n===0&&this.d===0)throw Et.DivisionByZero;return nt(this.s*(tt.d*this.n)%(tt.n*this.d),tt.d*this.d)},gcd:function(Bt,St){return ot(Bt,St),nt(dt(tt.n,this.n)*dt(tt.d,this.d),tt.d*this.d)},lcm:function(Bt,St){return ot(Bt,St),tt.n===0&&this.n===0?nt(0,1):nt(tt.n*this.n,dt(tt.n,this.n)*dt(tt.d,this.d))},ceil:function(Bt){return Bt=Math.pow(10,Bt||0),isNaN(this.n)||isNaN(this.d)?new Et(NaN):nt(Math.ceil(Bt*this.s*this.n/this.d),Bt)},floor:function(Bt){return Bt=Math.pow(10,Bt||0),isNaN(this.n)||isNaN(this.d)?new Et(NaN):nt(Math.floor(Bt*this.s*this.n/this.d),Bt)},round:function(Bt){return Bt=Math.pow(10,Bt||0),isNaN(this.n)||isNaN(this.d)?new Et(NaN):nt(Math.round(Bt*this.s*this.n/this.d),Bt)},inverse:function(){return nt(this.s*this.d,this.n)},pow:function(Bt,St){if(ot(Bt,St),tt.d===1)return tt.s<0?nt(Math.pow(this.s*this.d,tt.n),Math.pow(this.n,tt.n)):nt(Math.pow(this.s*this.n,tt.n),Math.pow(this.d,tt.n));if(this.s<0)return null;var Dt=it(this.n),$t=it(this.d),Rt=1,wt=1;for(var xt in Dt)if(xt!=="1"){if(xt==="0"){Rt=0;break}if(Dt[xt]*=tt.n,Dt[xt]%tt.d===0)Dt[xt]/=tt.d;else return null;Rt*=Math.pow(xt,Dt[xt])}for(var xt in $t)if(xt!=="1"){if($t[xt]*=tt.n,$t[xt]%tt.d===0)$t[xt]/=tt.d;else return null;wt*=Math.pow(xt,$t[xt])}return tt.s<0?nt(wt,Rt):nt(Rt,wt)},equals:function(Bt,St){return ot(Bt,St),this.s*this.n*tt.d===tt.s*tt.n*this.d},compare:function(Bt,St){ot(Bt,St);var Dt=this.s*this.n*tt.d-tt.s*tt.n*this.d;return(0=0;wt--)Rt=Rt.inverse().add(Dt[wt]);if(Rt.sub(St).abs().valueOf()0&&(Dt+=St,Dt+=" ",$t%=Rt),Dt+=$t,Dt+="/",Dt+=Rt),Dt},toLatex:function(Bt){var St,Dt="",$t=this.n,Rt=this.d;return this.s<0&&(Dt+="-"),Rt===1?Dt+=$t:(Bt&&(St=Math.floor($t/Rt))>0&&(Dt+=St,$t%=Rt),Dt+="\\frac{",Dt+=$t,Dt+="}{",Dt+=Rt,Dt+="}"),Dt},toContinued:function(){var Bt,St=this.n,Dt=this.d,$t=[];if(isNaN(St)||isNaN(Dt))return $t;do $t.push(Math.floor(St/Dt)),Bt=St%Dt,St=Dt,Dt=Bt;while(St!==1);return $t},toString:function(Bt){var St=this.n,Dt=this.d;if(isNaN(St)||isNaN(Dt))return"NaN";Bt=Bt||15;var $t=ut(St,Dt),Rt=ft(St,Dt,$t),wt=this.s<0?"-":"";if(wt+=St/Dt|0,St%=Dt,St*=10,St&&(wt+="."),$t){for(var xt=Rt;xt--;)wt+=St/Dt|0,St%=Dt,St*=10;wt+="(";for(var xt=$t;xt--;)wt+=St/Dt|0,St%=Dt,St*=10;wt+=")"}else for(var xt=Bt;St&&xt--;)wt+=St/Dt|0,St%=Dt,St*=10;return wt}},Object.defineProperty(Et,"__esModule",{value:!0}),Et.default=Et,Et.Fraction=Et,j.exports=Et})()})(fraction$1);var name$Q="equalScalar";factory(name$Q,["typed","config"],j=>{var{typed:$,config:_e}=j;return $(name$Q,{"number, number":function(tt,rt){return nearlyEqual$1(tt,rt,_e.epsilon)}})});var name$i="equal";factory(name$i,["typed","equalScalar"],j=>{var{typed:$,equalScalar:_e}=j;return $(name$i,{"any, any":function(tt,rt){return tt===null?rt===null:rt===null?tt===null:tt===void 0?rt===void 0:rt===void 0?tt===void 0:_e(tt,rt)}})});const fs$q={},node$1=Object.freeze(Object.defineProperty({__proto__:null,default:fs$q},Symbol.toStringTag,{value:"Module"})),require$$0$6=getAugmentedNamespace(node$1);function commonjsRequire(j){throw new Error('Could not dynamically require "'+j+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var pluralize={exports:{}};(function(j,$){(function(_e,et){typeof commonjsRequire=="function"?j.exports=et():_e.pluralize=et()})(commonjsGlobal,function(){var _e=[],et=[],tt={},rt={},nt={};function it(St){return typeof St=="string"?new RegExp("^"+St+"$","i"):St}function ot(St,Dt){return St===Dt?Dt:St===St.toLowerCase()?Dt.toLowerCase():St===St.toUpperCase()?Dt.toUpperCase():St[0]===St[0].toUpperCase()?Dt.charAt(0).toUpperCase()+Dt.substr(1).toLowerCase():Dt.toLowerCase()}function At(St,Dt){return St.replace(/\$(\d{1,2})/g,function($t,Rt){return Dt[Rt]||""})}function ut(St,Dt){return St.replace(Dt[0],function($t,Rt){var wt=At(Dt[1],arguments);return ot($t===""?St[Rt-1]:$t,wt)})}function ft(St,Dt,$t){if(!St.length||tt.hasOwnProperty(St))return Dt;for(var Rt=$t.length;Rt--;){var wt=$t[Rt];if(wt[0].test(Dt))return ut(Dt,wt)}return Dt}function dt(St,Dt,$t){return function(Rt){var wt=Rt.toLowerCase();return Dt.hasOwnProperty(wt)?ot(Rt,wt):St.hasOwnProperty(wt)?ot(Rt,St[wt]):ft(wt,Rt,$t)}}function Et(St,Dt,$t,Rt){return function(wt){var xt=wt.toLowerCase();return Dt.hasOwnProperty(xt)?!0:St.hasOwnProperty(xt)?!1:ft(xt,xt,$t)===xt}}function Bt(St,Dt,$t){var Rt=Dt===1?Bt.singular(St):Bt.plural(St);return($t?Dt+" ":"")+Rt}return Bt.plural=dt(nt,rt,_e),Bt.isPlural=Et(nt,rt,_e),Bt.singular=dt(rt,nt,et),Bt.isSingular=Et(rt,nt,et),Bt.addPluralRule=function(St,Dt){_e.push([it(St),Dt])},Bt.addSingularRule=function(St,Dt){et.push([it(St),Dt])},Bt.addUncountableRule=function(St){if(typeof St=="string"){tt[St.toLowerCase()]=!0;return}Bt.addPluralRule(St,"$0"),Bt.addSingularRule(St,"$0")},Bt.addIrregularRule=function(St,Dt){Dt=Dt.toLowerCase(),St=St.toLowerCase(),nt[St]=Dt,rt[Dt]=St},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach(function(St){return Bt.addIrregularRule(St[0],St[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(St){return Bt.addPluralRule(St[0],St[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(St){return Bt.addSingularRule(St[0],St[1])}),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(Bt.addUncountableRule),Bt})})(pluralize);var pluralizeExports=pluralize.exports;const plur=getDefaultExportFromCjs(pluralizeExports);plur.addPluralRule("glomerulus","glomeruli");plur.addPluralRule("interstitium","interstitia");function fromEntries(j){return[...j].reduce(($,{0:_e,1:et})=>Object.assign($,{[_e]:et}),{})}function capitalize$2(j){return j?j.charAt(0).toUpperCase()+j.slice(1):""}function getNextScope(j){const $="ABCDEFGHIJKLMNOPQRSTUVWXYZ",_e=[0];function et(){const rt=[];_e.forEach(it=>{rt.unshift($[it])});let nt=!0;for(let it=0;it<_e.length;it++)if(++_e[it]>=$.length)_e[it]=0;else{nt=!1;break}return nt&&_e.push(0),rt.join("")}let tt;do tt=et();while(j.includes(tt));return tt}const PALETTE=[[68,119,170],[136,204,238],[68,170,153],[17,119,51],[153,153,51],[221,204,119],[204,102,119],[136,34,85],[170,68,153]];let getRandomValues$1;const rnds8$1=new Uint8Array(16);function rng$1(){if(!getRandomValues$1&&(getRandomValues$1=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues$1))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues$1(rnds8$1)}const byteToHex$1=[];for(let j=0;j<256;++j)byteToHex$1.push((j+256).toString(16).slice(1));function unsafeStringify(j,$=0){return(byteToHex$1[j[$+0]]+byteToHex$1[j[$+1]]+byteToHex$1[j[$+2]]+byteToHex$1[j[$+3]]+"-"+byteToHex$1[j[$+4]]+byteToHex$1[j[$+5]]+"-"+byteToHex$1[j[$+6]]+byteToHex$1[j[$+7]]+"-"+byteToHex$1[j[$+8]]+byteToHex$1[j[$+9]]+"-"+byteToHex$1[j[$+10]]+byteToHex$1[j[$+11]]+byteToHex$1[j[$+12]]+byteToHex$1[j[$+13]]+byteToHex$1[j[$+14]]+byteToHex$1[j[$+15]]).toLowerCase()}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function v4$1(j,$,_e){if(native.randomUUID&&!$&&!j)return native.randomUUID();j=j||{};const et=j.random||(j.rng||rng$1)();if(et[6]=et[6]&15|64,et[8]=et[8]&63|128,$){_e=_e||0;for(let tt=0;tt<16;++tt)$[_e+tt]=et[tt];return $}return unsafeStringify(et)}var earthRadius=63710088e-1,factors={centimeters:earthRadius*100,centimetres:earthRadius*100,degrees:earthRadius/111325,feet:earthRadius*3.28084,inches:earthRadius*39.37,kilometers:earthRadius/1e3,kilometres:earthRadius/1e3,meters:earthRadius,metres:earthRadius,miles:earthRadius/1609.344,millimeters:earthRadius*1e3,millimetres:earthRadius*1e3,nauticalmiles:earthRadius/1852,radians:1,yards:earthRadius*1.0936},unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/earthRadius,yards:1.0936133},areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function feature$1(j,$,_e){_e===void 0&&(_e={});var et={type:"Feature"};return(_e.id===0||_e.id)&&(et.id=_e.id),_e.bbox&&(et.bbox=_e.bbox),et.properties=$||{},et.geometry=j,et}function geometry$1(j,$,_e){switch(j){case"Point":return point($).geometry;case"LineString":return lineString($).geometry;case"Polygon":return polygon($).geometry;case"MultiPoint":return multiPoint($).geometry;case"MultiLineString":return multiLineString($).geometry;case"MultiPolygon":return multiPolygon($).geometry;default:throw new Error(j+" is invalid")}}function point(j,$,_e){if(_e===void 0&&(_e={}),!j)throw new Error("coordinates is required");if(!Array.isArray(j))throw new Error("coordinates must be an Array");if(j.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!isNumber(j[0])||!isNumber(j[1]))throw new Error("coordinates must contain numbers");var et={type:"Point",coordinates:j};return feature$1(et,$,_e)}function points(j,$,_e){return _e===void 0&&(_e={}),featureCollection$1(j.map(function(et){return point(et,$)}),_e)}function polygon(j,$,_e){_e===void 0&&(_e={});for(var et=0,tt=j;et=0))throw new Error("precision must be a positive number");var _e=Math.pow(10,$||0);return Math.round(j*_e)/_e}function radiansToLength(j,$){$===void 0&&($="kilometers");var _e=factors[$];if(!_e)throw new Error($+" units is invalid");return j*_e}function lengthToRadians(j,$){$===void 0&&($="kilometers");var _e=factors[$];if(!_e)throw new Error($+" units is invalid");return j/_e}function lengthToDegrees(j,$){return radiansToDegrees(lengthToRadians(j,$))}function bearingToAzimuth(j){var $=j%360;return $<0&&($+=360),$}function radiansToDegrees(j){var $=j%(2*Math.PI);return $*180/Math.PI}function degreesToRadians(j){var $=j%360;return $*Math.PI/180}function convertLength(j,$,_e){if($===void 0&&($="kilometers"),_e===void 0&&(_e="kilometers"),!(j>=0))throw new Error("length must be a positive number");return radiansToLength(lengthToRadians(j,$),_e)}function convertArea(j,$,_e){if($===void 0&&($="meters"),_e===void 0&&(_e="kilometers"),!(j>=0))throw new Error("area must be a positive number");var et=areaFactors[$];if(!et)throw new Error("invalid original units");var tt=areaFactors[_e];if(!tt)throw new Error("invalid final units");return j/et*tt}function isNumber(j){return!isNaN(j)&&j!==null&&!Array.isArray(j)}function isObject$3(j){return!!j&&j.constructor===Object}function validateBBox(j){if(!j)throw new Error("bbox is required");if(!Array.isArray(j))throw new Error("bbox must be an Array");if(j.length!==4&&j.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");j.forEach(function($){if(!isNumber($))throw new Error("bbox must only contain numbers")})}function validateId(j){if(!j)throw new Error("id is required");if(["string","number"].indexOf(typeof j)===-1)throw new Error("id must be a number or a string")}const es$7=Object.freeze(Object.defineProperty({__proto__:null,areaFactors,bearingToAzimuth,convertArea,convertLength,degreesToRadians,earthRadius,factors,feature:feature$1,featureCollection:featureCollection$1,geometry:geometry$1,geometryCollection,isNumber,isObject:isObject$3,lengthToDegrees,lengthToRadians,lineString,lineStrings,multiLineString,multiPoint,multiPolygon,point,points,polygon,polygons,radiansToDegrees,radiansToLength,round:round$1,unitsFactors,validateBBox,validateId},Symbol.toStringTag,{value:"Module"}));function coordEach$1(j,$,_e){if(j!==null)for(var et,tt,rt,nt,it,ot,At,ut=0,ft=0,dt,Et=j.type,Bt=Et==="FeatureCollection",St=Et==="Feature",Dt=Bt?j.features.length:1,$t=0;$tot||Bt>At||St>ut){it=ft,ot=et,At=Bt,ut=St,rt=0;return}var Dt=lineString([it,ft],_e.properties);if($(Dt,et,tt,St,rt)===!1)return!1;rt++,it=ft})===!1)return!1}}})}function segmentReduce$1(j,$,_e){var et=_e,tt=!1;return segmentEach$1(j,function(rt,nt,it,ot,At){tt===!1&&_e===void 0?et=rt:et=$(et,rt,nt,it,ot,At),tt=!0}),et}function lineEach$1(j,$){if(!j)throw new Error("geojson is required");flattenEach$1(j,function(_e,et,tt){if(_e.geometry!==null){var rt=_e.geometry.type,nt=_e.geometry.coordinates;switch(rt){case"LineString":if($(_e,et,tt,0,0)===!1)return!1;break;case"Polygon":for(var it=0;itHt;){if(Gt-Ht>600){var Wt=Gt-Ht+1,Vt=jt-Ht+1,ur=Math.log(Wt),Ar=.5*Math.exp(2*ur/3),hr=.5*Math.sqrt(ur*Ar*(Wt-Ar)/Wt)*(Vt-Wt/2<0?-1:1),sr=Math.max(Ht,Math.floor(jt-Vt*Ar/Wt+hr)),ar=Math.min(Gt,Math.floor(jt+(Wt-Vt)*Ar/Wt+hr));kt(Jt,jt,sr,ar,Kt)}var Yt=Jt[jt],pr=Ht,Zt=Gt;for(et(Jt,Ht,jt),Kt(Jt[Gt],Yt)>0&&et(Jt,Ht,Gt);pr0;)Zt--}Kt(Jt[Ht],Yt)===0?et(Jt,Ht,Zt):et(Jt,++Zt,Gt),Zt<=jt&&(Ht=Zt+1),jt<=Zt&&(Gt=Zt-1)}})(Rt,wt,xt||0,Nt||Rt.length-1,Ot||tt)}function et(Rt,wt,xt){var Nt=Rt[wt];Rt[wt]=Rt[xt],Rt[xt]=Nt}function tt(Rt,wt){return Rtwt?1:0}var rt=function(Rt){Rt===void 0&&(Rt=9),this._maxEntries=Math.max(4,Rt),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function nt(Rt,wt,xt){if(!xt)return wt.indexOf(Rt);for(var Nt=0;Nt=Rt.minX&&wt.maxY>=Rt.minY}function Dt(Rt){return{children:Rt,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function $t(Rt,wt,xt,Nt,Ot){for(var kt=[wt,xt];kt.length;)if(!((xt=kt.pop())-(wt=kt.pop())<=Nt)){var Jt=wt+Math.ceil((xt-wt)/Nt/2)*Nt;_e(Rt,Jt,wt,xt,Ot),kt.push(wt,Jt,Jt,xt)}}return rt.prototype.all=function(){return this._all(this.data,[])},rt.prototype.search=function(Rt){var wt=this.data,xt=[];if(!St(Rt,wt))return xt;for(var Nt=this.toBBox,Ot=[];wt;){for(var kt=0;kt=0&&Ot[wt].children.length>this._maxEntries;)this._split(Ot,wt),wt--;this._adjustParentBBoxes(Nt,Ot,wt)},rt.prototype._split=function(Rt,wt){var xt=Rt[wt],Nt=xt.children.length,Ot=this._minEntries;this._chooseSplitAxis(xt,Ot,Nt);var kt=this._chooseSplitIndex(xt,Ot,Nt),Jt=Dt(xt.children.splice(kt,xt.children.length-kt));Jt.height=xt.height,Jt.leaf=xt.leaf,it(xt,this.toBBox),it(Jt,this.toBBox),wt?Rt[wt-1].children.push(Jt):this._splitRoot(xt,Jt)},rt.prototype._splitRoot=function(Rt,wt){this.data=Dt([Rt,wt]),this.data.height=Rt.height+1,this.data.leaf=!1,it(this.data,this.toBBox)},rt.prototype._chooseSplitIndex=function(Rt,wt,xt){for(var Nt,Ot,kt,Jt,jt,Ht,Gt,Kt=1/0,Wt=1/0,Vt=wt;Vt<=xt-wt;Vt++){var ur=ot(Rt,0,Vt,this.toBBox),Ar=ot(Rt,Vt,xt,this.toBBox),hr=(Ot=ur,kt=Ar,Jt=void 0,jt=void 0,Ht=void 0,Gt=void 0,Jt=Math.max(Ot.minX,kt.minX),jt=Math.max(Ot.minY,kt.minY),Ht=Math.min(Ot.maxX,kt.maxX),Gt=Math.min(Ot.maxY,kt.maxY),Math.max(0,Ht-Jt)*Math.max(0,Gt-jt)),sr=dt(ur)+dt(Ar);hr=wt;Kt--){var Wt=Rt.children[Kt];At(Jt,Rt.leaf?Ot(Wt):Wt),jt+=Et(Jt)}return jt},rt.prototype._adjustParentBBoxes=function(Rt,wt,xt){for(var Nt=xt;Nt>=0;Nt--)At(wt[Nt],Rt)},rt.prototype._condense=function(Rt){for(var wt=Rt.length-1,xt=void 0;wt>=0;wt--)Rt[wt].children.length===0?wt>0?(xt=Rt[wt-1].children).splice(xt.indexOf(Rt[wt]),1):this.clear():it(Rt[wt],this.toBBox)},rt})})(rbush_min);var rbush_minExports=rbush_min.exports;class TinyQueue{constructor($=[],_e=defaultCompare$1){if(this.data=$,this.length=this.data.length,this.compare=_e,this.length>0)for(let et=(this.length>>1)-1;et>=0;et--)this._down(et)}push($){this.data.push($),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const $=this.data[0],_e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=_e,this._down(0)),$}peek(){return this.data[0]}_up($){const{data:_e,compare:et}=this,tt=_e[$];for(;$>0;){const rt=$-1>>1,nt=_e[rt];if(et(tt,nt)>=0)break;_e[$]=nt,$=rt}_e[$]=tt}_down($){const{data:_e,compare:et}=this,tt=this.length>>1,rt=_e[$];for(;$=0)break;_e[$]=it,$=nt}_e[$]=rt}}function defaultCompare$1(j,$){return j<$?-1:j>$?1:0}const tinyqueue=Object.freeze(Object.defineProperty({__proto__:null,default:TinyQueue},Symbol.toStringTag,{value:"Module"})),require$$1$4=getAugmentedNamespace(tinyqueue);var pointInPolygon$1={exports:{}},flat=function($,_e,et,tt){var rt=$[0],nt=$[1],it=!1;et===void 0&&(et=0),tt===void 0&&(tt=_e.length);for(var ot=(tt-et)/2,At=0,ut=ot-1;Atnt!=Bt>nt&&rt<(Et-ft)*(nt-dt)/(Bt-dt)+ft;St&&(it=!it)}return it},nested=function($,_e,et,tt){var rt=$[0],nt=$[1],it=!1;et===void 0&&(et=0),tt===void 0&&(tt=_e.length);for(var ot=tt-et,At=0,ut=ot-1;Atnt!=Bt>nt&&rt<(Et-ft)*(nt-dt)/(Bt-dt)+ft;St&&(it=!it)}return it},pointInPolygonFlat2=flat,pointInPolygonNested2=nested;pointInPolygon$1.exports=function($,_e,et,tt){return _e.length>0&&Array.isArray(_e[0])?pointInPolygonNested2($,_e,et,tt):pointInPolygonFlat2($,_e,et,tt)};pointInPolygon$1.exports.nested=pointInPolygonNested2;pointInPolygon$1.exports.flat=pointInPolygonFlat2;var pointInPolygonExports=pointInPolygon$1.exports,orient2d_min={exports:{}};(function(j,$){(function(_e,et){et($)})(commonjsGlobal,function(_e){const tt=33306690738754706e-32;function rt(St,Dt,$t,Rt,wt){let xt,Nt,Ot,kt,Jt=Dt[0],jt=Rt[0],Ht=0,Gt=0;jt>Jt==jt>-Jt?(xt=Jt,Jt=Dt[++Ht]):(xt=jt,jt=Rt[++Gt]);let Kt=0;if(HtJt==jt>-Jt?(Ot=xt-((Nt=Jt+xt)-Jt),Jt=Dt[++Ht]):(Ot=xt-((Nt=jt+xt)-jt),jt=Rt[++Gt]),xt=Nt,Ot!==0&&(wt[Kt++]=Ot);HtJt==jt>-Jt?(Ot=xt-((Nt=xt+Jt)-(kt=Nt-xt))+(Jt-kt),Jt=Dt[++Ht]):(Ot=xt-((Nt=xt+jt)-(kt=Nt-xt))+(jt-kt),jt=Rt[++Gt]),xt=Nt,Ot!==0&&(wt[Kt++]=Ot);for(;Ht0!=Ot>0)return kt;const Jt=Math.abs(Nt+Ot);return Math.abs(kt)>=it*Jt?kt:-function(jt,Ht,Gt,Kt,Wt,Vt,ur){let Ar,hr,sr,ar,Yt,pr,Zt,mr,vr,_r,Er,Lr,Rr,$r,xr,Fr,Nr,Xt;const cr=jt-Wt,ir=Gt-Wt,Qr=Ht-Vt,Or=Kt-Vt;Yt=(xr=(mr=cr-(Zt=(pr=134217729*cr)-(pr-cr)))*(_r=Or-(vr=(pr=134217729*Or)-(pr-Or)))-(($r=cr*Or)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=Qr-(Zt=(pr=134217729*Qr)-(pr-Qr)))*(_r=ir-(vr=(pr=134217729*ir)-(pr-ir)))-((Fr=Qr*ir)-Zt*vr-mr*vr-Zt*_r))),ut[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),ut[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,ut[2]=Lr-(Xt-Yt)+(Er-Yt),ut[3]=Xt;let Yr=function(fr,yr){let Ur=yr[0];for(let Wr=1;Wr=wr||-Yr>=wr||(Ar=jt-(cr+(Yt=jt-cr))+(Yt-Wt),sr=Gt-(ir+(Yt=Gt-ir))+(Yt-Wt),hr=Ht-(Qr+(Yt=Ht-Qr))+(Yt-Vt),ar=Kt-(Or+(Yt=Kt-Or))+(Yt-Vt),Ar===0&&hr===0&&sr===0&&ar===0)||(wr=At*ur+tt*Math.abs(Yr),(Yr+=cr*ar+Or*Ar-(Qr*sr+ir*hr))>=wr||-Yr>=wr))return Yr;Yt=(xr=(mr=Ar-(Zt=(pr=134217729*Ar)-(pr-Ar)))*(_r=Or-(vr=(pr=134217729*Or)-(pr-Or)))-(($r=Ar*Or)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=hr-(Zt=(pr=134217729*hr)-(pr-hr)))*(_r=ir-(vr=(pr=134217729*ir)-(pr-ir)))-((Fr=hr*ir)-Zt*vr-mr*vr-Zt*_r))),Bt[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),Bt[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,Bt[2]=Lr-(Xt-Yt)+(Er-Yt),Bt[3]=Xt;const rr=rt(4,ut,4,Bt,ft);Yt=(xr=(mr=cr-(Zt=(pr=134217729*cr)-(pr-cr)))*(_r=ar-(vr=(pr=134217729*ar)-(pr-ar)))-(($r=cr*ar)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=Qr-(Zt=(pr=134217729*Qr)-(pr-Qr)))*(_r=sr-(vr=(pr=134217729*sr)-(pr-sr)))-((Fr=Qr*sr)-Zt*vr-mr*vr-Zt*_r))),Bt[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),Bt[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,Bt[2]=Lr-(Xt-Yt)+(Er-Yt),Bt[3]=Xt;const er=rt(rr,ft,4,Bt,dt);Yt=(xr=(mr=Ar-(Zt=(pr=134217729*Ar)-(pr-Ar)))*(_r=ar-(vr=(pr=134217729*ar)-(pr-ar)))-(($r=Ar*ar)-Zt*vr-mr*vr-Zt*_r))-(Er=xr-(Nr=(mr=hr-(Zt=(pr=134217729*hr)-(pr-hr)))*(_r=sr-(vr=(pr=134217729*sr)-(pr-sr)))-((Fr=hr*sr)-Zt*vr-mr*vr-Zt*_r))),Bt[0]=xr-(Er+Yt)+(Yt-Nr),Yt=(Rr=$r-((Lr=$r+Er)-(Yt=Lr-$r))+(Er-Yt))-(Er=Rr-Fr),Bt[1]=Rr-(Er+Yt)+(Yt-Fr),Yt=(Xt=Lr+Er)-Lr,Bt[2]=Lr-(Xt-Yt)+(Er-Yt),Bt[3]=Xt;const lr=rt(er,dt,4,Bt,Et);return Et[lr-1]}(St,Dt,$t,Rt,wt,xt,Jt)},_e.orient2dfast=function(St,Dt,$t,Rt,wt,xt){return(Dt-xt)*($t-wt)-(St-wt)*(Rt-xt)},Object.defineProperty(_e,"__esModule",{value:!0})})})(orient2d_min,orient2d_min.exports);var orient2d_minExports=orient2d_min.exports,RBush=rbush_minExports,Queue=require$$1$4,pointInPolygon2=pointInPolygonExports,orient$1=orient2d_minExports.orient2d;Queue.default&&(Queue=Queue.default);concaveman$1.exports=concaveman;concaveman$1.exports.default=concaveman;function concaveman(j,$,_e){$=Math.max(0,$===void 0?2:$),_e=_e||0;var et=fastConvexHull(j),tt=new RBush(16);tt.toBBox=function(Rt){return{minX:Rt[0],minY:Rt[1],maxX:Rt[0],maxY:Rt[1]}},tt.compareMinX=function(Rt,wt){return Rt[0]-wt[0]},tt.compareMinY=function(Rt,wt){return Rt[1]-wt[1]},tt.load(j);for(var rt=[],nt=0,it;ntrt||it.push({node:ut,dist:ft})}for(;it.length&&!it.peek().node.children;){var dt=it.pop(),Et=dt.node,Bt=sqSegDist(Et,$,_e),St=sqSegDist(Et,et,tt);if(dt.dist=$.minX&&j[0]<=$.maxX&&j[1]>=$.minY&&j[1]<=$.maxY}function noIntersections(j,$,_e){for(var et=Math.min(j[0],$[0]),tt=Math.min(j[1],$[1]),rt=Math.max(j[0],$[0]),nt=Math.max(j[1],$[1]),it=_e.search({minX:et,minY:tt,maxX:rt,maxY:nt}),ot=0;ot0!=cross(j,$,et)>0&&cross(_e,et,j)>0!=cross(_e,et,$)>0}function updateBBox(j){var $=j.p,_e=j.next.p;return j.minX=Math.min($[0],_e[0]),j.minY=Math.min($[1],_e[1]),j.maxX=Math.max($[0],_e[0]),j.maxY=Math.max($[1],_e[1]),j}function fastConvexHull(j){for(var $=j[0],_e=j[0],et=j[0],tt=j[0],rt=0;rtet[0]&&(et=nt),nt[1]<_e[1]&&(_e=nt),nt[1]>tt[1]&&(tt=nt)}var it=[$,_e,et,tt],ot=it.slice();for(rt=0;rt1?(et=_e[0],tt=_e[1]):it>0&&(et+=rt*it,tt+=nt*it)}return rt=j[0]-et,nt=j[1]-tt,rt*rt+nt*nt}function sqSegSegDist(j,$,_e,et,tt,rt,nt,it){var ot=_e-j,At=et-$,ut=nt-tt,ft=it-rt,dt=j-tt,Et=$-rt,Bt=ot*ot+At*At,St=ot*ut+At*ft,Dt=ut*ut+ft*ft,$t=ot*dt+At*Et,Rt=ut*dt+ft*Et,wt=Bt*Dt-St*St,xt,Nt,Ot,kt,Jt=wt,jt=wt;wt===0?(Nt=0,Jt=1,kt=Rt,jt=Dt):(Nt=St*Rt-Dt*$t,kt=Bt*Rt-St*$t,Nt<0?(Nt=0,kt=Rt,jt=Dt):Nt>Jt&&(Nt=Jt,kt=Rt+St,jt=Dt)),kt<0?(kt=0,-$t<0?Nt=0:-$t>Bt?Nt=Jt:(Nt=-$t,Jt=Bt)):kt>jt&&(kt=jt,-$t+St<0?Nt=0:-$t+St>Bt?Nt=Jt:(Nt=-$t+St,Jt=Bt)),xt=Nt===0?0:Nt/Jt,Ot=kt===0?0:kt/jt;var Ht=(1-xt)*j+xt*_e,Gt=(1-xt)*$+xt*et,Kt=(1-Ot)*tt+Ot*nt,Wt=(1-Ot)*rt+Ot*it,Vt=Kt-Ht,ur=Wt-Gt;return Vt*Vt+ur*ur}function compareByX(j,$){return j[0]===$[0]?j[1]-$[1]:j[0]-$[0]}function convexHull(j){j.sort(compareByX);for(var $=[],_e=0;_e=2&&cross($[$.length-2],$[$.length-1],j[_e])<=0;)$.pop();$.push(j[_e])}for(var et=[],tt=j.length-1;tt>=0;tt--){for(;et.length>=2&&cross(et[et.length-2],et[et.length-1],j[tt])<=0;)et.pop();et.push(j[tt])}return et.pop(),$.pop(),$.concat(et)}var util$4;(function(j){j.assertEqual=tt=>tt;function $(tt){}j.assertIs=$;function _e(tt){throw new Error}j.assertNever=_e,j.arrayToEnum=tt=>{const rt={};for(const nt of tt)rt[nt]=nt;return rt},j.getValidEnumValues=tt=>{const rt=j.objectKeys(tt).filter(it=>typeof tt[tt[it]]!="number"),nt={};for(const it of rt)nt[it]=tt[it];return j.objectValues(nt)},j.objectValues=tt=>j.objectKeys(tt).map(function(rt){return tt[rt]}),j.objectKeys=typeof Object.keys=="function"?tt=>Object.keys(tt):tt=>{const rt=[];for(const nt in tt)Object.prototype.hasOwnProperty.call(tt,nt)&&rt.push(nt);return rt},j.find=(tt,rt)=>{for(const nt of tt)if(rt(nt))return nt},j.isInteger=typeof Number.isInteger=="function"?tt=>Number.isInteger(tt):tt=>typeof tt=="number"&&isFinite(tt)&&Math.floor(tt)===tt;function et(tt,rt=" | "){return tt.map(nt=>typeof nt=="string"?`'${nt}'`:nt).join(rt)}j.joinValues=et,j.jsonStringifyReplacer=(tt,rt)=>typeof rt=="bigint"?rt.toString():rt})(util$4||(util$4={}));var objectUtil;(function(j){j.mergeShapes=($,_e)=>({...$,..._e})})(objectUtil||(objectUtil={}));const ZodParsedType=util$4.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),getParsedType=j=>{switch(typeof j){case"undefined":return ZodParsedType.undefined;case"string":return ZodParsedType.string;case"number":return isNaN(j)?ZodParsedType.nan:ZodParsedType.number;case"boolean":return ZodParsedType.boolean;case"function":return ZodParsedType.function;case"bigint":return ZodParsedType.bigint;case"symbol":return ZodParsedType.symbol;case"object":return Array.isArray(j)?ZodParsedType.array:j===null?ZodParsedType.null:j.then&&typeof j.then=="function"&&j.catch&&typeof j.catch=="function"?ZodParsedType.promise:typeof Map<"u"&&j instanceof Map?ZodParsedType.map:typeof Set<"u"&&j instanceof Set?ZodParsedType.set:typeof Date<"u"&&j instanceof Date?ZodParsedType.date:ZodParsedType.object;default:return ZodParsedType.unknown}},ZodIssueCode=util$4.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),quotelessJson=j=>JSON.stringify(j,null,2).replace(/"([^"]+)":/g,"$1:");class ZodError extends Error{constructor($){super(),this.issues=[],this.addIssue=et=>{this.issues=[...this.issues,et]},this.addIssues=(et=[])=>{this.issues=[...this.issues,...et]};const _e=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,_e):this.__proto__=_e,this.name="ZodError",this.issues=$}get errors(){return this.issues}format($){const _e=$||function(rt){return rt.message},et={_errors:[]},tt=rt=>{for(const nt of rt.issues)if(nt.code==="invalid_union")nt.unionErrors.map(tt);else if(nt.code==="invalid_return_type")tt(nt.returnTypeError);else if(nt.code==="invalid_arguments")tt(nt.argumentsError);else if(nt.path.length===0)et._errors.push(_e(nt));else{let it=et,ot=0;for(;ot_e.message){const _e={},et=[];for(const tt of this.issues)tt.path.length>0?(_e[tt.path[0]]=_e[tt.path[0]]||[],_e[tt.path[0]].push($(tt))):et.push($(tt));return{formErrors:et,fieldErrors:_e}}get formErrors(){return this.flatten()}}ZodError.create=j=>new ZodError(j);const errorMap=(j,$)=>{let _e;switch(j.code){case ZodIssueCode.invalid_type:j.received===ZodParsedType.undefined?_e="Required":_e=`Expected ${j.expected}, received ${j.received}`;break;case ZodIssueCode.invalid_literal:_e=`Invalid literal value, expected ${JSON.stringify(j.expected,util$4.jsonStringifyReplacer)}`;break;case ZodIssueCode.unrecognized_keys:_e=`Unrecognized key(s) in object: ${util$4.joinValues(j.keys,", ")}`;break;case ZodIssueCode.invalid_union:_e="Invalid input";break;case ZodIssueCode.invalid_union_discriminator:_e=`Invalid discriminator value. Expected ${util$4.joinValues(j.options)}`;break;case ZodIssueCode.invalid_enum_value:_e=`Invalid enum value. Expected ${util$4.joinValues(j.options)}, received '${j.received}'`;break;case ZodIssueCode.invalid_arguments:_e="Invalid function arguments";break;case ZodIssueCode.invalid_return_type:_e="Invalid function return type";break;case ZodIssueCode.invalid_date:_e="Invalid date";break;case ZodIssueCode.invalid_string:typeof j.validation=="object"?"includes"in j.validation?(_e=`Invalid input: must include "${j.validation.includes}"`,typeof j.validation.position=="number"&&(_e=`${_e} at one or more positions greater than or equal to ${j.validation.position}`)):"startsWith"in j.validation?_e=`Invalid input: must start with "${j.validation.startsWith}"`:"endsWith"in j.validation?_e=`Invalid input: must end with "${j.validation.endsWith}"`:util$4.assertNever(j.validation):j.validation!=="regex"?_e=`Invalid ${j.validation}`:_e="Invalid";break;case ZodIssueCode.too_small:j.type==="array"?_e=`Array must contain ${j.exact?"exactly":j.inclusive?"at least":"more than"} ${j.minimum} element(s)`:j.type==="string"?_e=`String must contain ${j.exact?"exactly":j.inclusive?"at least":"over"} ${j.minimum} character(s)`:j.type==="number"?_e=`Number must be ${j.exact?"exactly equal to ":j.inclusive?"greater than or equal to ":"greater than "}${j.minimum}`:j.type==="date"?_e=`Date must be ${j.exact?"exactly equal to ":j.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(j.minimum))}`:_e="Invalid input";break;case ZodIssueCode.too_big:j.type==="array"?_e=`Array must contain ${j.exact?"exactly":j.inclusive?"at most":"less than"} ${j.maximum} element(s)`:j.type==="string"?_e=`String must contain ${j.exact?"exactly":j.inclusive?"at most":"under"} ${j.maximum} character(s)`:j.type==="number"?_e=`Number must be ${j.exact?"exactly":j.inclusive?"less than or equal to":"less than"} ${j.maximum}`:j.type==="bigint"?_e=`BigInt must be ${j.exact?"exactly":j.inclusive?"less than or equal to":"less than"} ${j.maximum}`:j.type==="date"?_e=`Date must be ${j.exact?"exactly":j.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(j.maximum))}`:_e="Invalid input";break;case ZodIssueCode.custom:_e="Invalid input";break;case ZodIssueCode.invalid_intersection_types:_e="Intersection results could not be merged";break;case ZodIssueCode.not_multiple_of:_e=`Number must be a multiple of ${j.multipleOf}`;break;case ZodIssueCode.not_finite:_e="Number must be finite";break;default:_e=$.defaultError,util$4.assertNever(j)}return{message:_e}};let overrideErrorMap=errorMap;function setErrorMap(j){overrideErrorMap=j}function getErrorMap(){return overrideErrorMap}const makeIssue=j=>{const{data:$,path:_e,errorMaps:et,issueData:tt}=j,rt=[..._e,...tt.path||[]],nt={...tt,path:rt};let it="";const ot=et.filter(At=>!!At).slice().reverse();for(const At of ot)it=At(nt,{data:$,defaultError:it}).message;return{...tt,path:rt,message:tt.message||it}},EMPTY_PATH=[];function addIssueToContext(j,$){const _e=makeIssue({issueData:$,data:j.data,path:j.path,errorMaps:[j.common.contextualErrorMap,j.schemaErrorMap,getErrorMap(),errorMap].filter(et=>!!et)});j.common.issues.push(_e)}class ParseStatus{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray($,_e){const et=[];for(const tt of _e){if(tt.status==="aborted")return INVALID$1;tt.status==="dirty"&&$.dirty(),et.push(tt.value)}return{status:$.value,value:et}}static async mergeObjectAsync($,_e){const et=[];for(const tt of _e)et.push({key:await tt.key,value:await tt.value});return ParseStatus.mergeObjectSync($,et)}static mergeObjectSync($,_e){const et={};for(const tt of _e){const{key:rt,value:nt}=tt;if(rt.status==="aborted"||nt.status==="aborted")return INVALID$1;rt.status==="dirty"&&$.dirty(),nt.status==="dirty"&&$.dirty(),(typeof nt.value<"u"||tt.alwaysSet)&&(et[rt.value]=nt.value)}return{status:$.value,value:et}}}const INVALID$1=Object.freeze({status:"aborted"}),DIRTY=j=>({status:"dirty",value:j}),OK=j=>({status:"valid",value:j}),isAborted=j=>j.status==="aborted",isDirty=j=>j.status==="dirty",isValid=j=>j.status==="valid",isAsync=j=>typeof Promise<"u"&&j instanceof Promise;var errorUtil;(function(j){j.errToObj=$=>typeof $=="string"?{message:$}:$||{},j.toString=$=>typeof $=="string"?$:$==null?void 0:$.message})(errorUtil||(errorUtil={}));class ParseInputLazyPath{constructor($,_e,et,tt){this._cachedPath=[],this.parent=$,this.data=_e,this._path=et,this._key=tt}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const handleResult=(j,$)=>{if(isValid($))return{success:!0,data:$.value};if(!j.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const _e=new ZodError(j.common.issues);return this._error=_e,this._error}}};function processCreateParams(j){if(!j)return{};const{errorMap:$,invalid_type_error:_e,required_error:et,description:tt}=j;if($&&(_e||et))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return $?{errorMap:$,description:tt}:{errorMap:(nt,it)=>nt.code!=="invalid_type"?{message:it.defaultError}:typeof it.data>"u"?{message:et??it.defaultError}:{message:_e??it.defaultError},description:tt}}class ZodType{constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType($){return getParsedType($.data)}_getOrReturnCtx($,_e){return _e||{common:$.parent.common,data:$.data,parsedType:getParsedType($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new ParseStatus,ctx:{common:$.parent.common,data:$.data,parsedType:getParsedType($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){const _e=this._parse($);if(isAsync(_e))throw new Error("Synchronous parse encountered promise.");return _e}_parseAsync($){const _e=this._parse($);return Promise.resolve(_e)}parse($,_e){const et=this.safeParse($,_e);if(et.success)return et.data;throw et.error}safeParse($,_e){var et;const tt={common:{issues:[],async:(et=_e==null?void 0:_e.async)!==null&&et!==void 0?et:!1,contextualErrorMap:_e==null?void 0:_e.errorMap},path:(_e==null?void 0:_e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType($)},rt=this._parseSync({data:$,path:tt.path,parent:tt});return handleResult(tt,rt)}async parseAsync($,_e){const et=await this.safeParseAsync($,_e);if(et.success)return et.data;throw et.error}async safeParseAsync($,_e){const et={common:{issues:[],contextualErrorMap:_e==null?void 0:_e.errorMap,async:!0},path:(_e==null?void 0:_e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:getParsedType($)},tt=this._parse({data:$,path:et.path,parent:et}),rt=await(isAsync(tt)?tt:Promise.resolve(tt));return handleResult(et,rt)}refine($,_e){const et=tt=>typeof _e=="string"||typeof _e>"u"?{message:_e}:typeof _e=="function"?_e(tt):_e;return this._refinement((tt,rt)=>{const nt=$(tt),it=()=>rt.addIssue({code:ZodIssueCode.custom,...et(tt)});return typeof Promise<"u"&&nt instanceof Promise?nt.then(ot=>ot?!0:(it(),!1)):nt?!0:(it(),!1)})}refinement($,_e){return this._refinement((et,tt)=>$(et)?!0:(tt.addIssue(typeof _e=="function"?_e(et,tt):_e),!1))}_refinement($){return new ZodEffects({schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this,this._def)}promise(){return ZodPromise.create(this,this._def)}or($){return ZodUnion.create([this,$],this._def)}and($){return ZodIntersection.create(this,$,this._def)}transform($){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:{type:"transform",transform:$}})}default($){const _e=typeof $=="function"?$:()=>$;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:_e,typeName:ZodFirstPartyTypeKind.ZodDefault})}brand(){return new ZodBranded({typeName:ZodFirstPartyTypeKind.ZodBranded,type:this,...processCreateParams(this._def)})}catch($){const _e=typeof $=="function"?$:()=>$;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:_e,typeName:ZodFirstPartyTypeKind.ZodCatch})}describe($){const _e=this.constructor;return new _e({...this._def,description:$})}pipe($){return ZodPipeline.create(this,$)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const cuidRegex=/^c[^\s-]{8,}$/i,cuid2Regex=/^[a-z][a-z0-9]*$/,ulidRegex=/[0-9A-HJKMNP-TV-Z]{26}/,uuidRegex=/^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i,emailRegex=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/,emojiRegex=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u"),ipv4Regex=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,ipv6Regex=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,datetimeRegex=j=>j.precision?j.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${j.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${j.precision}}Z$`):j.precision===0?j.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):j.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function isValidIP(j,$){return!!(($==="v4"||!$)&&ipv4Regex.test(j)||($==="v6"||!$)&&ipv6Regex.test(j))}class ZodString extends ZodType{constructor(){super(...arguments),this._regex=($,_e,et)=>this.refinement(tt=>$.test(tt),{validation:_e,code:ZodIssueCode.invalid_string,...errorUtil.errToObj(et)}),this.nonempty=$=>this.min(1,errorUtil.errToObj($)),this.trim=()=>new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]}),this.toLowerCase=()=>new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]}),this.toUpperCase=()=>new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}_parse($){if(this._def.coerce&&($.data=String($.data)),this._getType($)!==ZodParsedType.string){const rt=this._getOrReturnCtx($);return addIssueToContext(rt,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.string,received:rt.parsedType}),INVALID$1}const et=new ParseStatus;let tt;for(const rt of this._def.checks)if(rt.kind==="min")$.data.lengthrt.value&&(tt=this._getOrReturnCtx($,tt),addIssueToContext(tt,{code:ZodIssueCode.too_big,maximum:rt.value,type:"string",inclusive:!0,exact:!1,message:rt.message}),et.dirty());else if(rt.kind==="length"){const nt=$.data.length>rt.value,it=$.data.length"u"?null:$==null?void 0:$.precision,offset:(_e=$==null?void 0:$.offset)!==null&&_e!==void 0?_e:!1,...errorUtil.errToObj($==null?void 0:$.message)})}regex($,_e){return this._addCheck({kind:"regex",regex:$,...errorUtil.errToObj(_e)})}includes($,_e){return this._addCheck({kind:"includes",value:$,position:_e==null?void 0:_e.position,...errorUtil.errToObj(_e==null?void 0:_e.message)})}startsWith($,_e){return this._addCheck({kind:"startsWith",value:$,...errorUtil.errToObj(_e)})}endsWith($,_e){return this._addCheck({kind:"endsWith",value:$,...errorUtil.errToObj(_e)})}min($,_e){return this._addCheck({kind:"min",value:$,...errorUtil.errToObj(_e)})}max($,_e){return this._addCheck({kind:"max",value:$,...errorUtil.errToObj(_e)})}length($,_e){return this._addCheck({kind:"length",value:$,...errorUtil.errToObj(_e)})}get isDatetime(){return!!this._def.checks.find($=>$.kind==="datetime")}get isEmail(){return!!this._def.checks.find($=>$.kind==="email")}get isURL(){return!!this._def.checks.find($=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find($=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find($=>$.kind==="uuid")}get isCUID(){return!!this._def.checks.find($=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find($=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find($=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find($=>$.kind==="ip")}get minLength(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $}get maxLength(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $}}ZodString.create=j=>{var $;return new ZodString({checks:[],typeName:ZodFirstPartyTypeKind.ZodString,coerce:($=j==null?void 0:j.coerce)!==null&&$!==void 0?$:!1,...processCreateParams(j)})};function floatSafeRemainder(j,$){const _e=(j.toString().split(".")[1]||"").length,et=($.toString().split(".")[1]||"").length,tt=_e>et?_e:et,rt=parseInt(j.toFixed(tt).replace(".","")),nt=parseInt($.toFixed(tt).replace(".",""));return rt%nt/Math.pow(10,tt)}class ZodNumber extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce&&($.data=Number($.data)),this._getType($)!==ZodParsedType.number){const rt=this._getOrReturnCtx($);return addIssueToContext(rt,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.number,received:rt.parsedType}),INVALID$1}let et;const tt=new ParseStatus;for(const rt of this._def.checks)rt.kind==="int"?util$4.isInteger($.data)||(et=this._getOrReturnCtx($,et),addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:"integer",received:"float",message:rt.message}),tt.dirty()):rt.kind==="min"?(rt.inclusive?$.datart.value:$.data>=rt.value)&&(et=this._getOrReturnCtx($,et),addIssueToContext(et,{code:ZodIssueCode.too_big,maximum:rt.value,type:"number",inclusive:rt.inclusive,exact:!1,message:rt.message}),tt.dirty()):rt.kind==="multipleOf"?floatSafeRemainder($.data,rt.value)!==0&&(et=this._getOrReturnCtx($,et),addIssueToContext(et,{code:ZodIssueCode.not_multiple_of,multipleOf:rt.value,message:rt.message}),tt.dirty()):rt.kind==="finite"?Number.isFinite($.data)||(et=this._getOrReturnCtx($,et),addIssueToContext(et,{code:ZodIssueCode.not_finite,message:rt.message}),tt.dirty()):util$4.assertNever(rt);return{status:tt.value,value:$.data}}gte($,_e){return this.setLimit("min",$,!0,errorUtil.toString(_e))}gt($,_e){return this.setLimit("min",$,!1,errorUtil.toString(_e))}lte($,_e){return this.setLimit("max",$,!0,errorUtil.toString(_e))}lt($,_e){return this.setLimit("max",$,!1,errorUtil.toString(_e))}setLimit($,_e,et,tt){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:$,value:_e,inclusive:et,message:errorUtil.toString(tt)}]})}_addCheck($){return new ZodNumber({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:errorUtil.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:errorUtil.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:errorUtil.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:errorUtil.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:errorUtil.toString($)})}multipleOf($,_e){return this._addCheck({kind:"multipleOf",value:$,message:errorUtil.toString(_e)})}finite($){return this._addCheck({kind:"finite",message:errorUtil.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:errorUtil.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:errorUtil.toString($)})}get minValue(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $}get maxValue(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $}get isInt(){return!!this._def.checks.find($=>$.kind==="int"||$.kind==="multipleOf"&&util$4.isInteger($.value))}get isFinite(){let $=null,_e=null;for(const et of this._def.checks){if(et.kind==="finite"||et.kind==="int"||et.kind==="multipleOf")return!0;et.kind==="min"?(_e===null||et.value>_e)&&(_e=et.value):et.kind==="max"&&($===null||et.value<$)&&($=et.value)}return Number.isFinite(_e)&&Number.isFinite($)}}ZodNumber.create=j=>new ZodNumber({checks:[],typeName:ZodFirstPartyTypeKind.ZodNumber,coerce:(j==null?void 0:j.coerce)||!1,...processCreateParams(j)});class ZodBigInt extends ZodType{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce&&($.data=BigInt($.data)),this._getType($)!==ZodParsedType.bigint){const rt=this._getOrReturnCtx($);return addIssueToContext(rt,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.bigint,received:rt.parsedType}),INVALID$1}let et;const tt=new ParseStatus;for(const rt of this._def.checks)rt.kind==="min"?(rt.inclusive?$.datart.value:$.data>=rt.value)&&(et=this._getOrReturnCtx($,et),addIssueToContext(et,{code:ZodIssueCode.too_big,type:"bigint",maximum:rt.value,inclusive:rt.inclusive,message:rt.message}),tt.dirty()):rt.kind==="multipleOf"?$.data%rt.value!==BigInt(0)&&(et=this._getOrReturnCtx($,et),addIssueToContext(et,{code:ZodIssueCode.not_multiple_of,multipleOf:rt.value,message:rt.message}),tt.dirty()):util$4.assertNever(rt);return{status:tt.value,value:$.data}}gte($,_e){return this.setLimit("min",$,!0,errorUtil.toString(_e))}gt($,_e){return this.setLimit("min",$,!1,errorUtil.toString(_e))}lte($,_e){return this.setLimit("max",$,!0,errorUtil.toString(_e))}lt($,_e){return this.setLimit("max",$,!1,errorUtil.toString(_e))}setLimit($,_e,et,tt){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:$,value:_e,inclusive:et,message:errorUtil.toString(tt)}]})}_addCheck($){return new ZodBigInt({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:errorUtil.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:errorUtil.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:errorUtil.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:errorUtil.toString($)})}multipleOf($,_e){return this._addCheck({kind:"multipleOf",value:$,message:errorUtil.toString(_e)})}get minValue(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $}get maxValue(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $}}ZodBigInt.create=j=>{var $;return new ZodBigInt({checks:[],typeName:ZodFirstPartyTypeKind.ZodBigInt,coerce:($=j==null?void 0:j.coerce)!==null&&$!==void 0?$:!1,...processCreateParams(j)})};class ZodBoolean extends ZodType{_parse($){if(this._def.coerce&&($.data=!!$.data),this._getType($)!==ZodParsedType.boolean){const et=this._getOrReturnCtx($);return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.boolean,received:et.parsedType}),INVALID$1}return OK($.data)}}ZodBoolean.create=j=>new ZodBoolean({typeName:ZodFirstPartyTypeKind.ZodBoolean,coerce:(j==null?void 0:j.coerce)||!1,...processCreateParams(j)});class ZodDate extends ZodType{_parse($){if(this._def.coerce&&($.data=new Date($.data)),this._getType($)!==ZodParsedType.date){const rt=this._getOrReturnCtx($);return addIssueToContext(rt,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.date,received:rt.parsedType}),INVALID$1}if(isNaN($.data.getTime())){const rt=this._getOrReturnCtx($);return addIssueToContext(rt,{code:ZodIssueCode.invalid_date}),INVALID$1}const et=new ParseStatus;let tt;for(const rt of this._def.checks)rt.kind==="min"?$.data.getTime()rt.value&&(tt=this._getOrReturnCtx($,tt),addIssueToContext(tt,{code:ZodIssueCode.too_big,message:rt.message,inclusive:!0,exact:!1,maximum:rt.value,type:"date"}),et.dirty()):util$4.assertNever(rt);return{status:et.value,value:new Date($.data.getTime())}}_addCheck($){return new ZodDate({...this._def,checks:[...this._def.checks,$]})}min($,_e){return this._addCheck({kind:"min",value:$.getTime(),message:errorUtil.toString(_e)})}max($,_e){return this._addCheck({kind:"max",value:$.getTime(),message:errorUtil.toString(_e)})}get minDate(){let $=null;for(const _e of this._def.checks)_e.kind==="min"&&($===null||_e.value>$)&&($=_e.value);return $!=null?new Date($):null}get maxDate(){let $=null;for(const _e of this._def.checks)_e.kind==="max"&&($===null||_e.value<$)&&($=_e.value);return $!=null?new Date($):null}}ZodDate.create=j=>new ZodDate({checks:[],coerce:(j==null?void 0:j.coerce)||!1,typeName:ZodFirstPartyTypeKind.ZodDate,...processCreateParams(j)});class ZodSymbol extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.symbol){const et=this._getOrReturnCtx($);return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.symbol,received:et.parsedType}),INVALID$1}return OK($.data)}}ZodSymbol.create=j=>new ZodSymbol({typeName:ZodFirstPartyTypeKind.ZodSymbol,...processCreateParams(j)});class ZodUndefined extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.undefined){const et=this._getOrReturnCtx($);return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.undefined,received:et.parsedType}),INVALID$1}return OK($.data)}}ZodUndefined.create=j=>new ZodUndefined({typeName:ZodFirstPartyTypeKind.ZodUndefined,...processCreateParams(j)});class ZodNull extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.null){const et=this._getOrReturnCtx($);return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.null,received:et.parsedType}),INVALID$1}return OK($.data)}}ZodNull.create=j=>new ZodNull({typeName:ZodFirstPartyTypeKind.ZodNull,...processCreateParams(j)});class ZodAny extends ZodType{constructor(){super(...arguments),this._any=!0}_parse($){return OK($.data)}}ZodAny.create=j=>new ZodAny({typeName:ZodFirstPartyTypeKind.ZodAny,...processCreateParams(j)});class ZodUnknown extends ZodType{constructor(){super(...arguments),this._unknown=!0}_parse($){return OK($.data)}}ZodUnknown.create=j=>new ZodUnknown({typeName:ZodFirstPartyTypeKind.ZodUnknown,...processCreateParams(j)});class ZodNever extends ZodType{_parse($){const _e=this._getOrReturnCtx($);return addIssueToContext(_e,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.never,received:_e.parsedType}),INVALID$1}}ZodNever.create=j=>new ZodNever({typeName:ZodFirstPartyTypeKind.ZodNever,...processCreateParams(j)});class ZodVoid extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.undefined){const et=this._getOrReturnCtx($);return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.void,received:et.parsedType}),INVALID$1}return OK($.data)}}ZodVoid.create=j=>new ZodVoid({typeName:ZodFirstPartyTypeKind.ZodVoid,...processCreateParams(j)});class ZodArray extends ZodType{_parse($){const{ctx:_e,status:et}=this._processInputParams($),tt=this._def;if(_e.parsedType!==ZodParsedType.array)return addIssueToContext(_e,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:_e.parsedType}),INVALID$1;if(tt.exactLength!==null){const nt=_e.data.length>tt.exactLength.value,it=_e.data.lengthtt.maxLength.value&&(addIssueToContext(_e,{code:ZodIssueCode.too_big,maximum:tt.maxLength.value,type:"array",inclusive:!0,exact:!1,message:tt.maxLength.message}),et.dirty()),_e.common.async)return Promise.all([..._e.data].map((nt,it)=>tt.type._parseAsync(new ParseInputLazyPath(_e,nt,_e.path,it)))).then(nt=>ParseStatus.mergeArray(et,nt));const rt=[..._e.data].map((nt,it)=>tt.type._parseSync(new ParseInputLazyPath(_e,nt,_e.path,it)));return ParseStatus.mergeArray(et,rt)}get element(){return this._def.type}min($,_e){return new ZodArray({...this._def,minLength:{value:$,message:errorUtil.toString(_e)}})}max($,_e){return new ZodArray({...this._def,maxLength:{value:$,message:errorUtil.toString(_e)}})}length($,_e){return new ZodArray({...this._def,exactLength:{value:$,message:errorUtil.toString(_e)}})}nonempty($){return this.min(1,$)}}ZodArray.create=(j,$)=>new ZodArray({type:j,minLength:null,maxLength:null,exactLength:null,typeName:ZodFirstPartyTypeKind.ZodArray,...processCreateParams($)});function deepPartialify(j){if(j instanceof ZodObject){const $={};for(const _e in j.shape){const et=j.shape[_e];$[_e]=ZodOptional.create(deepPartialify(et))}return new ZodObject({...j._def,shape:()=>$})}else return j instanceof ZodArray?new ZodArray({...j._def,type:deepPartialify(j.element)}):j instanceof ZodOptional?ZodOptional.create(deepPartialify(j.unwrap())):j instanceof ZodNullable?ZodNullable.create(deepPartialify(j.unwrap())):j instanceof ZodTuple?ZodTuple.create(j.items.map($=>deepPartialify($))):j}class ZodObject extends ZodType{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const $=this._def.shape(),_e=util$4.objectKeys($);return this._cached={shape:$,keys:_e}}_parse($){if(this._getType($)!==ZodParsedType.object){const At=this._getOrReturnCtx($);return addIssueToContext(At,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:At.parsedType}),INVALID$1}const{status:et,ctx:tt}=this._processInputParams($),{shape:rt,keys:nt}=this._getCached(),it=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip"))for(const At in tt.data)nt.includes(At)||it.push(At);const ot=[];for(const At of nt){const ut=rt[At],ft=tt.data[At];ot.push({key:{status:"valid",value:At},value:ut._parse(new ParseInputLazyPath(tt,ft,tt.path,At)),alwaysSet:At in tt.data})}if(this._def.catchall instanceof ZodNever){const At=this._def.unknownKeys;if(At==="passthrough")for(const ut of it)ot.push({key:{status:"valid",value:ut},value:{status:"valid",value:tt.data[ut]}});else if(At==="strict")it.length>0&&(addIssueToContext(tt,{code:ZodIssueCode.unrecognized_keys,keys:it}),et.dirty());else if(At!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const At=this._def.catchall;for(const ut of it){const ft=tt.data[ut];ot.push({key:{status:"valid",value:ut},value:At._parse(new ParseInputLazyPath(tt,ft,tt.path,ut)),alwaysSet:ut in tt.data})}}return tt.common.async?Promise.resolve().then(async()=>{const At=[];for(const ut of ot){const ft=await ut.key;At.push({key:ft,value:await ut.value,alwaysSet:ut.alwaysSet})}return At}).then(At=>ParseStatus.mergeObjectSync(et,At)):ParseStatus.mergeObjectSync(et,ot)}get shape(){return this._def.shape()}strict($){return errorUtil.errToObj,new ZodObject({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(_e,et)=>{var tt,rt,nt,it;const ot=(nt=(rt=(tt=this._def).errorMap)===null||rt===void 0?void 0:rt.call(tt,_e,et).message)!==null&&nt!==void 0?nt:et.defaultError;return _e.code==="unrecognized_keys"?{message:(it=errorUtil.errToObj($).message)!==null&&it!==void 0?it:ot}:{message:ot}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend($){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new ZodObject({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:ZodFirstPartyTypeKind.ZodObject})}setKey($,_e){return this.augment({[$]:_e})}catchall($){return new ZodObject({...this._def,catchall:$})}pick($){const _e={};return util$4.objectKeys($).forEach(et=>{$[et]&&this.shape[et]&&(_e[et]=this.shape[et])}),new ZodObject({...this._def,shape:()=>_e})}omit($){const _e={};return util$4.objectKeys(this.shape).forEach(et=>{$[et]||(_e[et]=this.shape[et])}),new ZodObject({...this._def,shape:()=>_e})}deepPartial(){return deepPartialify(this)}partial($){const _e={};return util$4.objectKeys(this.shape).forEach(et=>{const tt=this.shape[et];$&&!$[et]?_e[et]=tt:_e[et]=tt.optional()}),new ZodObject({...this._def,shape:()=>_e})}required($){const _e={};return util$4.objectKeys(this.shape).forEach(et=>{if($&&!$[et])_e[et]=this.shape[et];else{let rt=this.shape[et];for(;rt instanceof ZodOptional;)rt=rt._def.innerType;_e[et]=rt}}),new ZodObject({...this._def,shape:()=>_e})}keyof(){return createZodEnum(util$4.objectKeys(this.shape))}}ZodObject.create=(j,$)=>new ZodObject({shape:()=>j,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams($)});ZodObject.strictCreate=(j,$)=>new ZodObject({shape:()=>j,unknownKeys:"strict",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams($)});ZodObject.lazycreate=(j,$)=>new ZodObject({shape:j,unknownKeys:"strip",catchall:ZodNever.create(),typeName:ZodFirstPartyTypeKind.ZodObject,...processCreateParams($)});class ZodUnion extends ZodType{_parse($){const{ctx:_e}=this._processInputParams($),et=this._def.options;function tt(rt){for(const it of rt)if(it.result.status==="valid")return it.result;for(const it of rt)if(it.result.status==="dirty")return _e.common.issues.push(...it.ctx.common.issues),it.result;const nt=rt.map(it=>new ZodError(it.ctx.common.issues));return addIssueToContext(_e,{code:ZodIssueCode.invalid_union,unionErrors:nt}),INVALID$1}if(_e.common.async)return Promise.all(et.map(async rt=>{const nt={..._e,common:{..._e.common,issues:[]},parent:null};return{result:await rt._parseAsync({data:_e.data,path:_e.path,parent:nt}),ctx:nt}})).then(tt);{let rt;const nt=[];for(const ot of et){const At={..._e,common:{..._e.common,issues:[]},parent:null},ut=ot._parseSync({data:_e.data,path:_e.path,parent:At});if(ut.status==="valid")return ut;ut.status==="dirty"&&!rt&&(rt={result:ut,ctx:At}),At.common.issues.length&&nt.push(At.common.issues)}if(rt)return _e.common.issues.push(...rt.ctx.common.issues),rt.result;const it=nt.map(ot=>new ZodError(ot));return addIssueToContext(_e,{code:ZodIssueCode.invalid_union,unionErrors:it}),INVALID$1}}get options(){return this._def.options}}ZodUnion.create=(j,$)=>new ZodUnion({options:j,typeName:ZodFirstPartyTypeKind.ZodUnion,...processCreateParams($)});const getDiscriminator=j=>j instanceof ZodLazy?getDiscriminator(j.schema):j instanceof ZodEffects?getDiscriminator(j.innerType()):j instanceof ZodLiteral?[j.value]:j instanceof ZodEnum?j.options:j instanceof ZodNativeEnum?Object.keys(j.enum):j instanceof ZodDefault?getDiscriminator(j._def.innerType):j instanceof ZodUndefined?[void 0]:j instanceof ZodNull?[null]:null;class ZodDiscriminatedUnion extends ZodType{_parse($){const{ctx:_e}=this._processInputParams($);if(_e.parsedType!==ZodParsedType.object)return addIssueToContext(_e,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:_e.parsedType}),INVALID$1;const et=this.discriminator,tt=_e.data[et],rt=this.optionsMap.get(tt);return rt?_e.common.async?rt._parseAsync({data:_e.data,path:_e.path,parent:_e}):rt._parseSync({data:_e.data,path:_e.path,parent:_e}):(addIssueToContext(_e,{code:ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[et]}),INVALID$1)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,_e,et){const tt=new Map;for(const rt of _e){const nt=getDiscriminator(rt.shape[$]);if(!nt)throw new Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(const it of nt){if(tt.has(it))throw new Error(`Discriminator property ${String($)} has duplicate value ${String(it)}`);tt.set(it,rt)}}return new ZodDiscriminatedUnion({typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion,discriminator:$,options:_e,optionsMap:tt,...processCreateParams(et)})}}function mergeValues(j,$){const _e=getParsedType(j),et=getParsedType($);if(j===$)return{valid:!0,data:j};if(_e===ZodParsedType.object&&et===ZodParsedType.object){const tt=util$4.objectKeys($),rt=util$4.objectKeys(j).filter(it=>tt.indexOf(it)!==-1),nt={...j,...$};for(const it of rt){const ot=mergeValues(j[it],$[it]);if(!ot.valid)return{valid:!1};nt[it]=ot.data}return{valid:!0,data:nt}}else if(_e===ZodParsedType.array&&et===ZodParsedType.array){if(j.length!==$.length)return{valid:!1};const tt=[];for(let rt=0;rt{if(isAborted(rt)||isAborted(nt))return INVALID$1;const it=mergeValues(rt.value,nt.value);return it.valid?((isDirty(rt)||isDirty(nt))&&_e.dirty(),{status:_e.value,value:it.data}):(addIssueToContext(et,{code:ZodIssueCode.invalid_intersection_types}),INVALID$1)};return et.common.async?Promise.all([this._def.left._parseAsync({data:et.data,path:et.path,parent:et}),this._def.right._parseAsync({data:et.data,path:et.path,parent:et})]).then(([rt,nt])=>tt(rt,nt)):tt(this._def.left._parseSync({data:et.data,path:et.path,parent:et}),this._def.right._parseSync({data:et.data,path:et.path,parent:et}))}}ZodIntersection.create=(j,$,_e)=>new ZodIntersection({left:j,right:$,typeName:ZodFirstPartyTypeKind.ZodIntersection,...processCreateParams(_e)});class ZodTuple extends ZodType{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType.array)return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.array,received:et.parsedType}),INVALID$1;if(et.data.lengththis._def.items.length&&(addIssueToContext(et,{code:ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),_e.dirty());const rt=[...et.data].map((nt,it)=>{const ot=this._def.items[it]||this._def.rest;return ot?ot._parse(new ParseInputLazyPath(et,nt,et.path,it)):null}).filter(nt=>!!nt);return et.common.async?Promise.all(rt).then(nt=>ParseStatus.mergeArray(_e,nt)):ParseStatus.mergeArray(_e,rt)}get items(){return this._def.items}rest($){return new ZodTuple({...this._def,rest:$})}}ZodTuple.create=(j,$)=>{if(!Array.isArray(j))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ZodTuple({items:j,typeName:ZodFirstPartyTypeKind.ZodTuple,rest:null,...processCreateParams($)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType.object)return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.object,received:et.parsedType}),INVALID$1;const tt=[],rt=this._def.keyType,nt=this._def.valueType;for(const it in et.data)tt.push({key:rt._parse(new ParseInputLazyPath(et,it,et.path,it)),value:nt._parse(new ParseInputLazyPath(et,et.data[it],et.path,it))});return et.common.async?ParseStatus.mergeObjectAsync(_e,tt):ParseStatus.mergeObjectSync(_e,tt)}get element(){return this._def.valueType}static create($,_e,et){return _e instanceof ZodType?new ZodRecord({keyType:$,valueType:_e,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(et)}):new ZodRecord({keyType:ZodString.create(),valueType:$,typeName:ZodFirstPartyTypeKind.ZodRecord,...processCreateParams(_e)})}}class ZodMap extends ZodType{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType.map)return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.map,received:et.parsedType}),INVALID$1;const tt=this._def.keyType,rt=this._def.valueType,nt=[...et.data.entries()].map(([it,ot],At)=>({key:tt._parse(new ParseInputLazyPath(et,it,et.path,[At,"key"])),value:rt._parse(new ParseInputLazyPath(et,ot,et.path,[At,"value"]))}));if(et.common.async){const it=new Map;return Promise.resolve().then(async()=>{for(const ot of nt){const At=await ot.key,ut=await ot.value;if(At.status==="aborted"||ut.status==="aborted")return INVALID$1;(At.status==="dirty"||ut.status==="dirty")&&_e.dirty(),it.set(At.value,ut.value)}return{status:_e.value,value:it}})}else{const it=new Map;for(const ot of nt){const At=ot.key,ut=ot.value;if(At.status==="aborted"||ut.status==="aborted")return INVALID$1;(At.status==="dirty"||ut.status==="dirty")&&_e.dirty(),it.set(At.value,ut.value)}return{status:_e.value,value:it}}}}ZodMap.create=(j,$,_e)=>new ZodMap({valueType:$,keyType:j,typeName:ZodFirstPartyTypeKind.ZodMap,...processCreateParams(_e)});class ZodSet extends ZodType{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.parsedType!==ZodParsedType.set)return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.set,received:et.parsedType}),INVALID$1;const tt=this._def;tt.minSize!==null&&et.data.sizett.maxSize.value&&(addIssueToContext(et,{code:ZodIssueCode.too_big,maximum:tt.maxSize.value,type:"set",inclusive:!0,exact:!1,message:tt.maxSize.message}),_e.dirty());const rt=this._def.valueType;function nt(ot){const At=new Set;for(const ut of ot){if(ut.status==="aborted")return INVALID$1;ut.status==="dirty"&&_e.dirty(),At.add(ut.value)}return{status:_e.value,value:At}}const it=[...et.data.values()].map((ot,At)=>rt._parse(new ParseInputLazyPath(et,ot,et.path,At)));return et.common.async?Promise.all(it).then(ot=>nt(ot)):nt(it)}min($,_e){return new ZodSet({...this._def,minSize:{value:$,message:errorUtil.toString(_e)}})}max($,_e){return new ZodSet({...this._def,maxSize:{value:$,message:errorUtil.toString(_e)}})}size($,_e){return this.min($,_e).max($,_e)}nonempty($){return this.min(1,$)}}ZodSet.create=(j,$)=>new ZodSet({valueType:j,minSize:null,maxSize:null,typeName:ZodFirstPartyTypeKind.ZodSet,...processCreateParams($)});class ZodFunction extends ZodType{constructor(){super(...arguments),this.validate=this.implement}_parse($){const{ctx:_e}=this._processInputParams($);if(_e.parsedType!==ZodParsedType.function)return addIssueToContext(_e,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.function,received:_e.parsedType}),INVALID$1;function et(it,ot){return makeIssue({data:it,path:_e.path,errorMaps:[_e.common.contextualErrorMap,_e.schemaErrorMap,getErrorMap(),errorMap].filter(At=>!!At),issueData:{code:ZodIssueCode.invalid_arguments,argumentsError:ot}})}function tt(it,ot){return makeIssue({data:it,path:_e.path,errorMaps:[_e.common.contextualErrorMap,_e.schemaErrorMap,getErrorMap(),errorMap].filter(At=>!!At),issueData:{code:ZodIssueCode.invalid_return_type,returnTypeError:ot}})}const rt={errorMap:_e.common.contextualErrorMap},nt=_e.data;return this._def.returns instanceof ZodPromise?OK(async(...it)=>{const ot=new ZodError([]),At=await this._def.args.parseAsync(it,rt).catch(dt=>{throw ot.addIssue(et(it,dt)),ot}),ut=await nt(...At);return await this._def.returns._def.type.parseAsync(ut,rt).catch(dt=>{throw ot.addIssue(tt(ut,dt)),ot})}):OK((...it)=>{const ot=this._def.args.safeParse(it,rt);if(!ot.success)throw new ZodError([et(it,ot.error)]);const At=nt(...ot.data),ut=this._def.returns.safeParse(At,rt);if(!ut.success)throw new ZodError([tt(At,ut.error)]);return ut.data})}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new ZodFunction({...this._def,args:ZodTuple.create($).rest(ZodUnknown.create())})}returns($){return new ZodFunction({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,_e,et){return new ZodFunction({args:$||ZodTuple.create([]).rest(ZodUnknown.create()),returns:_e||ZodUnknown.create(),typeName:ZodFirstPartyTypeKind.ZodFunction,...processCreateParams(et)})}}class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse($){const{ctx:_e}=this._processInputParams($);return this._def.getter()._parse({data:_e.data,path:_e.path,parent:_e})}}ZodLazy.create=(j,$)=>new ZodLazy({getter:j,typeName:ZodFirstPartyTypeKind.ZodLazy,...processCreateParams($)});class ZodLiteral extends ZodType{_parse($){if($.data!==this._def.value){const _e=this._getOrReturnCtx($);return addIssueToContext(_e,{received:_e.data,code:ZodIssueCode.invalid_literal,expected:this._def.value}),INVALID$1}return{status:"valid",value:$.data}}get value(){return this._def.value}}ZodLiteral.create=(j,$)=>new ZodLiteral({value:j,typeName:ZodFirstPartyTypeKind.ZodLiteral,...processCreateParams($)});function createZodEnum(j,$){return new ZodEnum({values:j,typeName:ZodFirstPartyTypeKind.ZodEnum,...processCreateParams($)})}class ZodEnum extends ZodType{_parse($){if(typeof $.data!="string"){const _e=this._getOrReturnCtx($),et=this._def.values;return addIssueToContext(_e,{expected:util$4.joinValues(et),received:_e.parsedType,code:ZodIssueCode.invalid_type}),INVALID$1}if(this._def.values.indexOf($.data)===-1){const _e=this._getOrReturnCtx($),et=this._def.values;return addIssueToContext(_e,{received:_e.data,code:ZodIssueCode.invalid_enum_value,options:et}),INVALID$1}return OK($.data)}get options(){return this._def.values}get enum(){const $={};for(const _e of this._def.values)$[_e]=_e;return $}get Values(){const $={};for(const _e of this._def.values)$[_e]=_e;return $}get Enum(){const $={};for(const _e of this._def.values)$[_e]=_e;return $}extract($){return ZodEnum.create($)}exclude($){return ZodEnum.create(this.options.filter(_e=>!$.includes(_e)))}}ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{_parse($){const _e=util$4.getValidEnumValues(this._def.values),et=this._getOrReturnCtx($);if(et.parsedType!==ZodParsedType.string&&et.parsedType!==ZodParsedType.number){const tt=util$4.objectValues(_e);return addIssueToContext(et,{expected:util$4.joinValues(tt),received:et.parsedType,code:ZodIssueCode.invalid_type}),INVALID$1}if(_e.indexOf($.data)===-1){const tt=util$4.objectValues(_e);return addIssueToContext(et,{received:et.data,code:ZodIssueCode.invalid_enum_value,options:tt}),INVALID$1}return OK($.data)}get enum(){return this._def.values}}ZodNativeEnum.create=(j,$)=>new ZodNativeEnum({values:j,typeName:ZodFirstPartyTypeKind.ZodNativeEnum,...processCreateParams($)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse($){const{ctx:_e}=this._processInputParams($);if(_e.parsedType!==ZodParsedType.promise&&_e.common.async===!1)return addIssueToContext(_e,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.promise,received:_e.parsedType}),INVALID$1;const et=_e.parsedType===ZodParsedType.promise?_e.data:Promise.resolve(_e.data);return OK(et.then(tt=>this._def.type.parseAsync(tt,{path:_e.path,errorMap:_e.common.contextualErrorMap})))}}ZodPromise.create=(j,$)=>new ZodPromise({type:j,typeName:ZodFirstPartyTypeKind.ZodPromise,...processCreateParams($)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ZodFirstPartyTypeKind.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){const{status:_e,ctx:et}=this._processInputParams($),tt=this._def.effect||null;if(tt.type==="preprocess"){const nt=tt.transform(et.data);return et.common.async?Promise.resolve(nt).then(it=>this._def.schema._parseAsync({data:it,path:et.path,parent:et})):this._def.schema._parseSync({data:nt,path:et.path,parent:et})}const rt={addIssue:nt=>{addIssueToContext(et,nt),nt.fatal?_e.abort():_e.dirty()},get path(){return et.path}};if(rt.addIssue=rt.addIssue.bind(rt),tt.type==="refinement"){const nt=it=>{const ot=tt.refinement(it,rt);if(et.common.async)return Promise.resolve(ot);if(ot instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return it};if(et.common.async===!1){const it=this._def.schema._parseSync({data:et.data,path:et.path,parent:et});return it.status==="aborted"?INVALID$1:(it.status==="dirty"&&_e.dirty(),nt(it.value),{status:_e.value,value:it.value})}else return this._def.schema._parseAsync({data:et.data,path:et.path,parent:et}).then(it=>it.status==="aborted"?INVALID$1:(it.status==="dirty"&&_e.dirty(),nt(it.value).then(()=>({status:_e.value,value:it.value}))))}if(tt.type==="transform")if(et.common.async===!1){const nt=this._def.schema._parseSync({data:et.data,path:et.path,parent:et});if(!isValid(nt))return nt;const it=tt.transform(nt.value,rt);if(it instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:_e.value,value:it}}else return this._def.schema._parseAsync({data:et.data,path:et.path,parent:et}).then(nt=>isValid(nt)?Promise.resolve(tt.transform(nt.value,rt)).then(it=>({status:_e.value,value:it})):nt);util$4.assertNever(tt)}}ZodEffects.create=(j,$,_e)=>new ZodEffects({schema:j,typeName:ZodFirstPartyTypeKind.ZodEffects,effect:$,...processCreateParams(_e)});ZodEffects.createWithPreprocess=(j,$,_e)=>new ZodEffects({schema:$,effect:{type:"preprocess",transform:j},typeName:ZodFirstPartyTypeKind.ZodEffects,...processCreateParams(_e)});class ZodOptional extends ZodType{_parse($){return this._getType($)===ZodParsedType.undefined?OK(void 0):this._def.innerType._parse($)}unwrap(){return this._def.innerType}}ZodOptional.create=(j,$)=>new ZodOptional({innerType:j,typeName:ZodFirstPartyTypeKind.ZodOptional,...processCreateParams($)});class ZodNullable extends ZodType{_parse($){return this._getType($)===ZodParsedType.null?OK(null):this._def.innerType._parse($)}unwrap(){return this._def.innerType}}ZodNullable.create=(j,$)=>new ZodNullable({innerType:j,typeName:ZodFirstPartyTypeKind.ZodNullable,...processCreateParams($)});class ZodDefault extends ZodType{_parse($){const{ctx:_e}=this._processInputParams($);let et=_e.data;return _e.parsedType===ZodParsedType.undefined&&(et=this._def.defaultValue()),this._def.innerType._parse({data:et,path:_e.path,parent:_e})}removeDefault(){return this._def.innerType}}ZodDefault.create=(j,$)=>new ZodDefault({innerType:j,typeName:ZodFirstPartyTypeKind.ZodDefault,defaultValue:typeof $.default=="function"?$.default:()=>$.default,...processCreateParams($)});class ZodCatch extends ZodType{_parse($){const{ctx:_e}=this._processInputParams($),et={..._e,common:{..._e.common,issues:[]}},tt=this._def.innerType._parse({data:et.data,path:et.path,parent:{...et}});return isAsync(tt)?tt.then(rt=>({status:"valid",value:rt.status==="valid"?rt.value:this._def.catchValue({get error(){return new ZodError(et.common.issues)},input:et.data})})):{status:"valid",value:tt.status==="valid"?tt.value:this._def.catchValue({get error(){return new ZodError(et.common.issues)},input:et.data})}}removeCatch(){return this._def.innerType}}ZodCatch.create=(j,$)=>new ZodCatch({innerType:j,typeName:ZodFirstPartyTypeKind.ZodCatch,catchValue:typeof $.catch=="function"?$.catch:()=>$.catch,...processCreateParams($)});class ZodNaN extends ZodType{_parse($){if(this._getType($)!==ZodParsedType.nan){const et=this._getOrReturnCtx($);return addIssueToContext(et,{code:ZodIssueCode.invalid_type,expected:ZodParsedType.nan,received:et.parsedType}),INVALID$1}return{status:"valid",value:$.data}}}ZodNaN.create=j=>new ZodNaN({typeName:ZodFirstPartyTypeKind.ZodNaN,...processCreateParams(j)});const BRAND=Symbol("zod_brand");class ZodBranded extends ZodType{_parse($){const{ctx:_e}=this._processInputParams($),et=_e.data;return this._def.type._parse({data:et,path:_e.path,parent:_e})}unwrap(){return this._def.type}}class ZodPipeline extends ZodType{_parse($){const{status:_e,ctx:et}=this._processInputParams($);if(et.common.async)return(async()=>{const rt=await this._def.in._parseAsync({data:et.data,path:et.path,parent:et});return rt.status==="aborted"?INVALID$1:rt.status==="dirty"?(_e.dirty(),DIRTY(rt.value)):this._def.out._parseAsync({data:rt.value,path:et.path,parent:et})})();{const tt=this._def.in._parseSync({data:et.data,path:et.path,parent:et});return tt.status==="aborted"?INVALID$1:tt.status==="dirty"?(_e.dirty(),{status:"dirty",value:tt.value}):this._def.out._parseSync({data:tt.value,path:et.path,parent:et})}}static create($,_e){return new ZodPipeline({in:$,out:_e,typeName:ZodFirstPartyTypeKind.ZodPipeline})}}const custom=(j,$={},_e)=>j?ZodAny.create().superRefine((et,tt)=>{var rt,nt;if(!j(et)){const it=typeof $=="function"?$(et):typeof $=="string"?{message:$}:$,ot=(nt=(rt=it.fatal)!==null&&rt!==void 0?rt:_e)!==null&&nt!==void 0?nt:!0,At=typeof it=="string"?{message:it}:it;tt.addIssue({code:"custom",...At,fatal:ot})}}):ZodAny.create(),late={object:ZodObject.lazycreate};var ZodFirstPartyTypeKind;(function(j){j.ZodString="ZodString",j.ZodNumber="ZodNumber",j.ZodNaN="ZodNaN",j.ZodBigInt="ZodBigInt",j.ZodBoolean="ZodBoolean",j.ZodDate="ZodDate",j.ZodSymbol="ZodSymbol",j.ZodUndefined="ZodUndefined",j.ZodNull="ZodNull",j.ZodAny="ZodAny",j.ZodUnknown="ZodUnknown",j.ZodNever="ZodNever",j.ZodVoid="ZodVoid",j.ZodArray="ZodArray",j.ZodObject="ZodObject",j.ZodUnion="ZodUnion",j.ZodDiscriminatedUnion="ZodDiscriminatedUnion",j.ZodIntersection="ZodIntersection",j.ZodTuple="ZodTuple",j.ZodRecord="ZodRecord",j.ZodMap="ZodMap",j.ZodSet="ZodSet",j.ZodFunction="ZodFunction",j.ZodLazy="ZodLazy",j.ZodLiteral="ZodLiteral",j.ZodEnum="ZodEnum",j.ZodEffects="ZodEffects",j.ZodNativeEnum="ZodNativeEnum",j.ZodOptional="ZodOptional",j.ZodNullable="ZodNullable",j.ZodDefault="ZodDefault",j.ZodCatch="ZodCatch",j.ZodPromise="ZodPromise",j.ZodBranded="ZodBranded",j.ZodPipeline="ZodPipeline"})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));const instanceOfType=(j,$={message:`Input not instance of ${j.name}`})=>custom(_e=>_e instanceof j,$),stringType=ZodString.create,numberType=ZodNumber.create,nanType=ZodNaN.create,bigIntType=ZodBigInt.create,booleanType=ZodBoolean.create,dateType=ZodDate.create,symbolType=ZodSymbol.create,undefinedType=ZodUndefined.create,nullType=ZodNull.create,anyType=ZodAny.create,unknownType=ZodUnknown.create,neverType=ZodNever.create,voidType=ZodVoid.create,arrayType=ZodArray.create,objectType=ZodObject.create,strictObjectType=ZodObject.strictCreate,unionType=ZodUnion.create,discriminatedUnionType=ZodDiscriminatedUnion.create,intersectionType=ZodIntersection.create,tupleType=ZodTuple.create,recordType=ZodRecord.create,mapType=ZodMap.create,setType=ZodSet.create,functionType=ZodFunction.create,lazyType=ZodLazy.create,literalType=ZodLiteral.create,enumType=ZodEnum.create,nativeEnumType=ZodNativeEnum.create,promiseType=ZodPromise.create,effectsType=ZodEffects.create,optionalType=ZodOptional.create,nullableType=ZodNullable.create,preprocessType=ZodEffects.createWithPreprocess,pipelineType=ZodPipeline.create,ostring=()=>stringType().optional(),onumber=()=>numberType().optional(),oboolean=()=>booleanType().optional(),coerce$2={string:j=>ZodString.create({...j,coerce:!0}),number:j=>ZodNumber.create({...j,coerce:!0}),boolean:j=>ZodBoolean.create({...j,coerce:!0}),bigint:j=>ZodBigInt.create({...j,coerce:!0}),date:j=>ZodDate.create({...j,coerce:!0})},NEVER=INVALID$1;var z$1=Object.freeze({__proto__:null,defaultErrorMap:errorMap,setErrorMap,getErrorMap,makeIssue,EMPTY_PATH,addIssueToContext,ParseStatus,INVALID:INVALID$1,DIRTY,OK,isAborted,isDirty,isValid,isAsync,get util(){return util$4},get objectUtil(){return objectUtil},ZodParsedType,getParsedType,ZodType,ZodString,ZodNumber,ZodBigInt,ZodBoolean,ZodDate,ZodSymbol,ZodUndefined,ZodNull,ZodAny,ZodUnknown,ZodNever,ZodVoid,ZodArray,ZodObject,ZodUnion,ZodDiscriminatedUnion,ZodIntersection,ZodTuple,ZodRecord,ZodMap,ZodSet,ZodFunction,ZodLazy,ZodLiteral,ZodEnum,ZodNativeEnum,ZodPromise,ZodEffects,ZodTransformer:ZodEffects,ZodOptional,ZodNullable,ZodDefault,ZodCatch,ZodNaN,BRAND,ZodBranded,ZodPipeline,custom,Schema:ZodType,ZodSchema:ZodType,late,get ZodFirstPartyTypeKind(){return ZodFirstPartyTypeKind},coerce:coerce$2,any:anyType,array:arrayType,bigint:bigIntType,boolean:booleanType,date:dateType,discriminatedUnion:discriminatedUnionType,effect:effectsType,enum:enumType,function:functionType,instanceof:instanceOfType,intersection:intersectionType,lazy:lazyType,literal:literalType,map:mapType,nan:nanType,nativeEnum:nativeEnumType,never:neverType,null:nullType,nullable:nullableType,number:numberType,object:objectType,oboolean,onumber,optional:optionalType,ostring,pipeline:pipelineType,preprocess:preprocessType,promise:promiseType,record:recordType,set:setType,strictObject:strictObjectType,string:stringType,symbol:symbolType,transformer:effectsType,tuple:tupleType,undefined:undefinedType,union:unionType,unknown:unknownType,void:voidType,NEVER,ZodIssueCode,quotelessJson,ZodError});const coordinationTypeName=z$1.string(),coordinationScopeName=z$1.string(),stringOrStringArray=z$1.union([z$1.string(),z$1.array(z$1.string())]),oneOrMoreCoordinationScopeNames=stringOrStringArray,componentCoordinationScopes=z$1.record(coordinationTypeName,oneOrMoreCoordinationScopeNames),componentCoordinationScopesBy=z$1.record(coordinationTypeName,z$1.record(coordinationTypeName,z$1.record(coordinationScopeName,oneOrMoreCoordinationScopeNames))),rgbArray=z$1.array(z$1.number()).length(3),treeNodeBase=z$1.object({name:z$1.string(),color:rgbArray.optional()}),treeNodeLeaf=treeNodeBase.extend({set:z$1.array(z$1.string())}),treeNodeNonLeaf=treeNodeBase.extend({children:z$1.lazy(()=>z$1.array(z$1.union([treeNodeNonLeaf,treeNodeLeaf])))}),cellSets2=z$1.object({version:z$1.literal("0.1.2"),tree:z$1.array(treeNodeNonLeaf)}),treeNodeLeafProbabilistic=treeNodeBase.extend({set:z$1.array(z$1.tuple([z$1.string(),z$1.number().nullable()]))}),treeNodeNonLeafProbabilistic=treeNodeBase.extend({children:z$1.lazy(()=>z$1.array(z$1.union([treeNodeNonLeafProbabilistic,treeNodeLeafProbabilistic])))}),cellSets3=z$1.object({version:z$1.literal("0.1.3"),tree:z$1.array(treeNodeNonLeafProbabilistic)});function nodeTransform(j,$,_e,et,tt=null){let rt;return tt?rt=[...tt]:rt=[j.name],$(j,rt)?(et.push(rt),_e(j,rt)):"children"in j?{...j,children:j.children.map(nt=>nodeTransform(nt,$,_e,et,rt.concat([nt.name])))}:j}const obsSetsSchema=z$1.union([cellSets3,cellSets2]).transform(j=>j.version==="0.1.3"?j:{...j,version:"0.1.3",tree:j.tree.map($=>nodeTransform($,_e=>!("children"in _e)&&Array.isArray(_e.set),_e=>({..._e,set:_e.set.map(et=>[et,null])}),[]))});z$1.array(z$1.object({groupName:z$1.string(),setName:z$1.string(),setColor:rgbArray.optional(),obsId:z$1.string(),predictionScore:z$1.number().nullable().optional()}));z$1.array(z$1.string());const requestInit=z$1.object({method:z$1.string().optional(),headers:z$1.record(z$1.any()).optional(),body:z$1.string().optional(),mode:z$1.string().optional(),credentials:z$1.string().optional(),cache:z$1.string().optional(),redirect:z$1.string().optional(),referrer:z$1.string().optional(),integrity:z$1.string().optional()}),nameSchema=z$1.string(),publicFlagSchema=z$1.boolean().optional(),descriptionSchema=z$1.string().optional(),configSchema0_1_0=z$1.object({version:z$1.literal("0.1.0"),name:nameSchema,public:publicFlagSchema,description:descriptionSchema,layers:z$1.array(z$1.object({name:z$1.string(),type:z$1.string(),fileType:z$1.string(),url:z$1.string()})),staticLayout:z$1.array(z$1.object({component:z$1.string(),props:z$1.record(z$1.any()).optional(),x:z$1.number().int(),y:z$1.number().int(),w:z$1.number().int().optional(),h:z$1.number().int().optional()}))}),fileOptionsSchema=z$1.any(),coordinationSpaceSchema=z$1.object({}).catchall(z$1.record(coordinationScopeName,z$1.any())),initStrategySchema=z$1.enum(["none","auto"]),layoutSchema1_0_0=z$1.array(z$1.object({component:z$1.string(),props:z$1.record(z$1.any()).optional(),x:z$1.number().int(),y:z$1.number().int(),w:z$1.number().int().optional(),h:z$1.number().int().optional(),coordinationScopes:z$1.record(z$1.string()).optional()})),datasetsSchema1_0_0=z$1.array(z$1.object({uid:z$1.string(),name:z$1.string().optional(),description:z$1.string().optional(),files:z$1.array(z$1.object({name:z$1.string().optional(),fileType:z$1.string(),url:z$1.string().optional(),options:fileOptionsSchema.optional(),requestInit:requestInit.optional()}))})),configSchema1_0_0=z$1.object({version:z$1.literal("1.0.0"),name:nameSchema,public:publicFlagSchema,description:descriptionSchema,datasets:datasetsSchema1_0_0,coordinationSpace:coordinationSpaceSchema.optional(),layout:layoutSchema1_0_0,initStrategy:initStrategySchema}),configSchema1_0_1=configSchema1_0_0.extend({version:z$1.literal("1.0.1")}),configSchema1_0_2=configSchema1_0_0.extend({version:z$1.literal("1.0.2")}),configSchema1_0_3=configSchema1_0_0.extend({version:z$1.literal("1.0.3")}),configSchema1_0_4=configSchema1_0_0.extend({version:z$1.literal("1.0.4")}),configSchema1_0_5=configSchema1_0_0.extend({version:z$1.literal("1.0.5")}),configSchema1_0_6=configSchema1_0_0.extend({version:z$1.literal("1.0.6")}),configSchema1_0_7=configSchema1_0_0.extend({version:z$1.literal("1.0.7")}),polyphonyStyleCoordinationScopes=z$1.record(z$1.union([z$1.string(),z$1.array(z$1.string()),z$1.record(z$1.string())])),layoutSchema1_0_8=z$1.array(z$1.object({component:z$1.string(),props:z$1.record(z$1.any()).optional(),x:z$1.number().int(),y:z$1.number().int(),w:z$1.number().int().optional(),h:z$1.number().int().optional(),coordinationScopes:polyphonyStyleCoordinationScopes.optional()})),configSchema1_0_8=configSchema1_0_0.extend({version:z$1.literal("1.0.8"),layout:layoutSchema1_0_8}),configSchema1_0_9=configSchema1_0_8.extend({version:z$1.literal("1.0.9")}),layoutSchema1_0_10=z$1.array(z$1.object({uid:z$1.string().optional(),component:z$1.string(),props:z$1.record(z$1.any()).optional(),x:z$1.number().int(),y:z$1.number().int(),w:z$1.number().int().optional(),h:z$1.number().int().optional(),coordinationScopes:polyphonyStyleCoordinationScopes.optional()})),configSchema1_0_10=configSchema1_0_8.extend({version:z$1.literal("1.0.10"),layout:layoutSchema1_0_10}),configSchema1_0_11=configSchema1_0_10.extend({version:z$1.literal("1.0.11")}),configSchema1_0_12=configSchema1_0_10.extend({version:z$1.literal("1.0.12")}),latestFileDefSchema=z$1.object({name:z$1.string().optional(),fileType:z$1.string(),url:z$1.string().optional(),options:fileOptionsSchema.optional(),requestInit:requestInit.optional(),coordinationValues:z$1.record(z$1.string()).optional()}),datasetsSchema1_0_13=z$1.array(z$1.object({uid:z$1.string(),name:z$1.string().optional(),description:z$1.string().optional(),files:z$1.array(latestFileDefSchema)})),configSchema1_0_13=configSchema1_0_10.extend({version:z$1.literal("1.0.13"),datasets:datasetsSchema1_0_13}),configSchema1_0_14=configSchema1_0_13.extend({version:z$1.literal("1.0.14")}),configSchema1_0_15=configSchema1_0_13.extend({version:z$1.literal("1.0.15")}),configSchema1_0_16=configSchema1_0_13.extend({version:z$1.literal("1.0.16"),uid:z$1.string().optional(),layout:z$1.array(z$1.object({uid:z$1.string().optional(),component:z$1.string(),props:z$1.record(z$1.any()).optional(),x:z$1.number().int(),y:z$1.number().int(),w:z$1.number().int().optional(),h:z$1.number().int().optional(),coordinationScopes:componentCoordinationScopes.optional(),coordinationScopesBy:componentCoordinationScopesBy.optional()}))});configSchema1_0_0.shape.coordinationSpace.unwrap();configSchema1_0_0.shape.layout.element.shape.coordinationScopes.unwrap();function upgradeReplaceViewProp(j,$,_e){const et=Object.keys(_e[`${j}Zoom`]),tt=Object.keys(_e[`${j}TargetX`]),rt=Object.keys(_e[`${j}TargetY`]),nt=getNextScope(et),it=getNextScope(tt),ot=getNextScope(rt),{zoom:At,target:[ut,ft]}=$;return _e[`${j}Zoom`][nt]=At,_e[`${j}TargetX`][it]=ut,_e[`${j}TargetY`][ot]=ft,{[`${j}Zoom`]:nt,[`${j}TargetX`]:it,[`${j}TargetY`]:ot}}function upgradeFrom0_1_0(j,$=null){const _e={embeddingType:{},embeddingZoom:{},embeddingTargetX:{},embeddingTargetY:{},spatialZoom:{},spatialTargetX:{},spatialTargetY:{}},et=[];j.staticLayout.forEach(it=>{var ot,At,ut;let ft={...it,coordinationScopes:{}};if(it.component==="scatterplot"&&((ot=it.props)!=null&&ot.mapping&&typeof it.props.mapping=="string"&&(_e.embeddingType[it.props.mapping]=it.props.mapping,ft={...ft,coordinationScopes:{...ft.coordinationScopes,embeddingType:it.props.mapping}}),(At=it.props)!=null&&At.view)){const dt=upgradeReplaceViewProp("embedding",it.props.view,_e);ft={...ft,coordinationScopes:{...ft.coordinationScopes,...dt}}}if(it.component==="spatial"&&(ut=it==null?void 0:it.props)!=null&&ut.view){const dt=upgradeReplaceViewProp("spatial",it.props.view,_e);ft={...ft,coordinationScopes:{...ft.coordinationScopes,...dt}}}et.push(ft)});const tt=et.find(it=>it.component==="layerController"),rt=et.find(it=>it.component==="spatial");tt&&rt&&"coordinationScopes"in rt&&(tt.coordinationScopes=rt.coordinationScopes);const nt=$||v4$1();return{version:"1.0.0",name:j.name,description:j.description,public:j.public,datasets:[{uid:nt,name:nt,files:j.layers.map(it=>({fileType:it.fileType,url:it.url}))}],initStrategy:"auto",coordinationSpace:_e,layout:et}}function upgradeFrom1_0_0(j){const $=cloneDeep(j),{coordinationSpace:_e}=$;function et(rt,nt){const it=rt==="raster";nt[`spatial${capitalize$2(rt)}Layer${it?"s":""}`]={},Object.entries(nt.spatialLayers).forEach(([ot,At])=>{if(Array.isArray(At)&&At.find(ut=>ut.type===rt)){const ut=At.filter(ft=>ft.type===rt).map(ft=>{const dt={...ft};return delete dt.type,dt});nt[`spatial${capitalize$2(rt)}Layer${it?"s":""}`][ot]=it?ut:ut[0]}else nt[`spatial${capitalize$2(rt)}Layer${it?"s":""}`][ot]=null})}_e&&"spatialLayers"in _e&&(et("raster",_e),et("cells",_e),et("molecules",_e),et("neighborhoods",_e),delete _e.spatialLayers);const tt=$.layout.map(rt=>{const nt={...rt};function it(ot,At){const ut=ot==="raster";(["spatial","layerController"].includes(nt.component)||nt.component==="description"&&ut)&&(At[`spatial${capitalize$2(ot)}Layer${ut?"s":""}`]=At.spatialLayers)}return nt.coordinationScopes&&nt.coordinationScopes.spatialLayers&&(it("raster",nt.coordinationScopes),it("cells",nt.coordinationScopes),it("molecules",nt.coordinationScopes),it("neighborhoods",nt.coordinationScopes),delete nt.coordinationScopes.spatialLayers),nt});return{...$,coordinationSpace:_e,layout:tt,version:"1.0.1"}}function upgradeFrom1_0_1(j){var $;const _e=j.layout.map(tt=>{const rt={...tt};return rt.component==="layerController"&&(rt.props={...rt.props,globalDisable3d:!0}),rt}),et=cloneDeep(j);return Object.keys((($=et==null?void 0:et.coordinationSpace)==null?void 0:$.spatialRasterLayers)||{}).forEach(tt=>{var rt,nt;(nt=(rt=et.coordinationSpace)==null?void 0:rt.spatialRasterLayers)!=null&&nt[tt]&&et.coordinationSpace.spatialRasterLayers[tt].forEach((it,ot)=>{et.coordinationSpace&&(et.coordinationSpace.spatialRasterLayers[tt][ot].type=["bitmask","raster"].includes(it.type)?it.type:"raster")})}),{...et,layout:_e,version:"1.0.2"}}function upgradeFrom1_0_2(j){const $=j.layout.map(et=>{const tt={...et};return tt.component==="layerController"&&(tt.props={...tt.props,disableChannelsIfRgbDetected:!0}),tt});return{...cloneDeep(j),layout:$,version:"1.0.3"}}function upgradeFrom1_0_3(j){return{...cloneDeep(j),version:"1.0.4"}}function upgradeFrom1_0_4(j){return{...cloneDeep(j),version:"1.0.5"}}function upgradeFrom1_0_5(j){return{...cloneDeep(j),version:"1.0.6"}}function upgradeFrom1_0_6(j){return{...cloneDeep(j),version:"1.0.7"}}function upgradeFrom1_0_7(j){return{...cloneDeep(j),version:"1.0.8"}}function upgradeFrom1_0_8(j){return{...cloneDeep(j),version:"1.0.9"}}function upgradeFrom1_0_9(j){return{...cloneDeep(j),version:"1.0.10"}}function upgradeFrom1_0_10(j){const $={...j.coordinationSpace},_e={spatialRasterLayers:"spatialImageLayer",spatialCellsLayer:"spatialSegmentationLayer",spatialMoleculesLayer:"spatialPointLayer",spatialNeighborhoodsLayer:"spatialNeighborhoodLayer",cellFilter:"obsFilter",cellHighlight:"obsHighlight",cellSelection:"obsSelection",cellSetSelection:"obsSetSelection",cellSetHighlight:"obsSetHighlight",cellSetColor:"obsSetColor",geneFilter:"featureFilter",geneHighlight:"featureHighlight",geneSelection:"featureSelection",geneExpressionColormap:"featureValueColormap",geneExpressionColormapRange:"featureValueColormapRange",cellColorEncoding:"obsColorEncoding",additionalCellSets:"additionalObsSets",embeddingCellSetPolygonsVisible:"embeddingObsSetPolygonsVisible",embeddingCellSetLabelsVisible:"embeddingObsSetLabelsVisible",embeddingCellSetLabelSize:"embeddingObsSetLabelSize",embeddingCellRadius:"embeddingObsRadius",embeddingCellRadiusMode:"embeddingObsRadiusMode",embeddingCellOpacity:"embeddingObsOpacity",embeddingCellOpacityMode:"embeddingObsOpacityMode"};Object.entries(_e).forEach(([tt,rt])=>{$[tt]&&($[rt]=$[tt],delete $[tt])});const et=j.layout.map(tt=>{const rt={...tt},{coordinationScopes:nt={}}=rt;return Object.entries(_e).forEach(([it,ot])=>{nt[it]&&(nt[ot]=nt[it],delete nt[it])}),{...rt,coordinationScopes:nt}});return{...j,coordinationSpace:$,layout:et,version:"1.0.11"}}function upgradeFrom1_0_11(j){const $=cloneDeep(j),{datasets:_e,coordinationSpace:et}=$;if(et!=null&&et.embeddingType){const tt=Object.values(et.embeddingType);_e.forEach((rt,nt)=>{const{files:it}=rt;it.forEach((ot,At)=>{const{fileType:ut}=ot;ut==="cells.json"&&(_e[nt].files[At].options={embeddingTypes:tt})})})}return{...$,datasets:_e,version:"1.0.12"}}function upgradeFrom1_0_12(j){const $=cloneDeep(j),{datasets:_e,coordinationSpace:et,layout:tt}=$,rt=et||{},nt={};_e.forEach(At=>{const{files:ut,uid:ft}=At;ut.forEach(dt=>{const{fileType:Et,options:Bt}=dt;if(Et==="anndata-cells.zarr"&&Bt&&"factors"in Bt&&Array.isArray(Bt.factors)){const St=[];Bt.factors.forEach(Dt=>{const $t=getNextScope(Object.keys((et==null?void 0:et.obsLabelsType)||{}));rt.obsLabelsType={...rt.obsLabelsType,[$t]:Dt.split("/").at(-1)},St.push($t)}),nt[ft]=St}})});function it(At){var ut,ft;return(ut=At.coordinationScopes)!=null&&ut.dataset&&typeof((ft=At.coordinationScopes)==null?void 0:ft.dataset)=="string"?rt.dataset[At.coordinationScopes.dataset]:_e.length>0?_e[0].uid:null}const ot=tt.map(At=>{const ut=it(At);if(typeof ut=="string"){const ft=nt[ut];if(ft)return{...At,coordinationScopes:{...At.coordinationScopes,obsLabelsType:ft}}}return At});return{...$,coordinationSpace:rt,layout:ot,version:"1.0.13"}}function upgradeFrom1_0_13(j){return{...cloneDeep(j),version:"1.0.14"}}function upgradeFrom1_0_14(j){const $=cloneDeep(j),{layout:_e}=$,et={genes:"featureList",cellSets:"obsSets",cellSetSizes:"obsSetSizes",cellSetExpression:"obsSetFeatureValueDistribution",expressionHistogram:"featureValueHistogram"},tt=_e.map(nt=>et[nt.component]?{...nt,component:et[nt.component]}:nt),rt={variablesLabelOverride:"featureType",observationsLabelOverride:"obsType"};return tt.forEach(nt=>{Object.entries(rt).forEach(([it,ot])=>{var At;(At=nt.props)!=null&&At[it]&&console.warn(`Warning: the '${it}' prop on the ${nt.component} view is deprecated. Please use the '${ot}' coordination type instead.`)})}),{...$,version:"1.0.15",layout:tt}}function upgradeFrom1_0_15(j){const $=cloneDeep(j),{layout:_e}=$,et=_e.map(tt=>{const{coordinationScopes:rt}=tt,nt={};if(rt!=null&&rt.dataset&&Array.isArray(rt.dataset)){const it={dataset:{}};return Object.entries(rt).forEach(([ot,At])=>{!Array.isArray(At)&&typeof At=="object"?(ot==="dataset"&&console.error("Expected coordinationScopes.dataset value to be either string or string[], but got object."),it.dataset[ot]=At):(Array.isArray(At)||typeof At=="string")&&(nt[ot]=At)}),{...tt,coordinationScopes:nt,coordinationScopesBy:it}}return rt&&Object.entries(rt).forEach(([it,ot])=>{(Array.isArray(ot)||typeof ot=="string")&&(nt[it]=ot)}),{...tt,coordinationScopes:nt}});return{...$,layout:et,version:"1.0.16"}}const latestConfigSchema=configSchema1_0_16,SCHEMA_HANDLERS=[[configSchema0_1_0,upgradeFrom0_1_0],[configSchema1_0_0,upgradeFrom1_0_0],[configSchema1_0_1,upgradeFrom1_0_1],[configSchema1_0_2,upgradeFrom1_0_2],[configSchema1_0_3,upgradeFrom1_0_3],[configSchema1_0_4,upgradeFrom1_0_4],[configSchema1_0_5,upgradeFrom1_0_5],[configSchema1_0_6,upgradeFrom1_0_6],[configSchema1_0_7,upgradeFrom1_0_7],[configSchema1_0_8,upgradeFrom1_0_8],[configSchema1_0_9,upgradeFrom1_0_9],[configSchema1_0_10,upgradeFrom1_0_10],[configSchema1_0_11,upgradeFrom1_0_11],[configSchema1_0_12,upgradeFrom1_0_12],[configSchema1_0_13,upgradeFrom1_0_13],[configSchema1_0_14,upgradeFrom1_0_14],[configSchema1_0_15,upgradeFrom1_0_15]];var re$3={exports:{}};const SEMVER_SPEC_VERSION="2.0.0",MAX_LENGTH$2=256,MAX_SAFE_INTEGER$1=Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH=16;var constants$4={SEMVER_SPEC_VERSION,MAX_LENGTH:MAX_LENGTH$2,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER$1,MAX_SAFE_COMPONENT_LENGTH};const debug$2=typeof process=="object"&&define_process_env_default&&define_process_env_default.NODE_DEBUG&&/\bsemver\b/i.test(define_process_env_default.NODE_DEBUG)?(...j)=>console.error("SEMVER",...j):()=>{};var debug_1=debug$2;(function(j,$){const{MAX_SAFE_COMPONENT_LENGTH:_e}=constants$4,et=debug_1;$=j.exports={};const tt=$.re=[],rt=$.src=[],nt=$.t={};let it=0;const ot=(At,ut,ft)=>{const dt=it++;et(At,dt,ut),nt[At]=dt,rt[dt]=ut,tt[dt]=new RegExp(ut,ft?"g":void 0)};ot("NUMERICIDENTIFIER","0|[1-9]\\d*"),ot("NUMERICIDENTIFIERLOOSE","[0-9]+"),ot("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),ot("MAINVERSION",`(${rt[nt.NUMERICIDENTIFIER]})\\.(${rt[nt.NUMERICIDENTIFIER]})\\.(${rt[nt.NUMERICIDENTIFIER]})`),ot("MAINVERSIONLOOSE",`(${rt[nt.NUMERICIDENTIFIERLOOSE]})\\.(${rt[nt.NUMERICIDENTIFIERLOOSE]})\\.(${rt[nt.NUMERICIDENTIFIERLOOSE]})`),ot("PRERELEASEIDENTIFIER",`(?:${rt[nt.NUMERICIDENTIFIER]}|${rt[nt.NONNUMERICIDENTIFIER]})`),ot("PRERELEASEIDENTIFIERLOOSE",`(?:${rt[nt.NUMERICIDENTIFIERLOOSE]}|${rt[nt.NONNUMERICIDENTIFIER]})`),ot("PRERELEASE",`(?:-(${rt[nt.PRERELEASEIDENTIFIER]}(?:\\.${rt[nt.PRERELEASEIDENTIFIER]})*))`),ot("PRERELEASELOOSE",`(?:-?(${rt[nt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${rt[nt.PRERELEASEIDENTIFIERLOOSE]})*))`),ot("BUILDIDENTIFIER","[0-9A-Za-z-]+"),ot("BUILD",`(?:\\+(${rt[nt.BUILDIDENTIFIER]}(?:\\.${rt[nt.BUILDIDENTIFIER]})*))`),ot("FULLPLAIN",`v?${rt[nt.MAINVERSION]}${rt[nt.PRERELEASE]}?${rt[nt.BUILD]}?`),ot("FULL",`^${rt[nt.FULLPLAIN]}$`),ot("LOOSEPLAIN",`[v=\\s]*${rt[nt.MAINVERSIONLOOSE]}${rt[nt.PRERELEASELOOSE]}?${rt[nt.BUILD]}?`),ot("LOOSE",`^${rt[nt.LOOSEPLAIN]}$`),ot("GTLT","((?:<|>)?=?)"),ot("XRANGEIDENTIFIERLOOSE",`${rt[nt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),ot("XRANGEIDENTIFIER",`${rt[nt.NUMERICIDENTIFIER]}|x|X|\\*`),ot("XRANGEPLAIN",`[v=\\s]*(${rt[nt.XRANGEIDENTIFIER]})(?:\\.(${rt[nt.XRANGEIDENTIFIER]})(?:\\.(${rt[nt.XRANGEIDENTIFIER]})(?:${rt[nt.PRERELEASE]})?${rt[nt.BUILD]}?)?)?`),ot("XRANGEPLAINLOOSE",`[v=\\s]*(${rt[nt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[nt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[nt.XRANGEIDENTIFIERLOOSE]})(?:${rt[nt.PRERELEASELOOSE]})?${rt[nt.BUILD]}?)?)?`),ot("XRANGE",`^${rt[nt.GTLT]}\\s*${rt[nt.XRANGEPLAIN]}$`),ot("XRANGELOOSE",`^${rt[nt.GTLT]}\\s*${rt[nt.XRANGEPLAINLOOSE]}$`),ot("COERCE",`(^|[^\\d])(\\d{1,${_e}})(?:\\.(\\d{1,${_e}}))?(?:\\.(\\d{1,${_e}}))?(?:$|[^\\d])`),ot("COERCERTL",rt[nt.COERCE],!0),ot("LONETILDE","(?:~>?)"),ot("TILDETRIM",`(\\s*)${rt[nt.LONETILDE]}\\s+`,!0),$.tildeTrimReplace="$1~",ot("TILDE",`^${rt[nt.LONETILDE]}${rt[nt.XRANGEPLAIN]}$`),ot("TILDELOOSE",`^${rt[nt.LONETILDE]}${rt[nt.XRANGEPLAINLOOSE]}$`),ot("LONECARET","(?:\\^)"),ot("CARETTRIM",`(\\s*)${rt[nt.LONECARET]}\\s+`,!0),$.caretTrimReplace="$1^",ot("CARET",`^${rt[nt.LONECARET]}${rt[nt.XRANGEPLAIN]}$`),ot("CARETLOOSE",`^${rt[nt.LONECARET]}${rt[nt.XRANGEPLAINLOOSE]}$`),ot("COMPARATORLOOSE",`^${rt[nt.GTLT]}\\s*(${rt[nt.LOOSEPLAIN]})$|^$`),ot("COMPARATOR",`^${rt[nt.GTLT]}\\s*(${rt[nt.FULLPLAIN]})$|^$`),ot("COMPARATORTRIM",`(\\s*)${rt[nt.GTLT]}\\s*(${rt[nt.LOOSEPLAIN]}|${rt[nt.XRANGEPLAIN]})`,!0),$.comparatorTrimReplace="$1$2$3",ot("HYPHENRANGE",`^\\s*(${rt[nt.XRANGEPLAIN]})\\s+-\\s+(${rt[nt.XRANGEPLAIN]})\\s*$`),ot("HYPHENRANGELOOSE",`^\\s*(${rt[nt.XRANGEPLAINLOOSE]})\\s+-\\s+(${rt[nt.XRANGEPLAINLOOSE]})\\s*$`),ot("STAR","(<|>)?=?\\s*\\*"),ot("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),ot("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(re$3,re$3.exports);var reExports=re$3.exports;const opts=["includePrerelease","loose","rtl"],parseOptions$2=j=>j?typeof j!="object"?{loose:!0}:opts.filter($=>j[$]).reduce(($,_e)=>($[_e]=!0,$),{}):{};var parseOptions_1=parseOptions$2;const numeric=/^[0-9]+$/,compareIdentifiers$1=(j,$)=>{const _e=numeric.test(j),et=numeric.test($);return _e&&et&&(j=+j,$=+$),j===$?0:_e&&!et?-1:et&&!_e?1:j<$?-1:1},rcompareIdentifiers=(j,$)=>compareIdentifiers$1($,j);var identifiers$1={compareIdentifiers:compareIdentifiers$1,rcompareIdentifiers};const debug$1=debug_1,{MAX_LENGTH:MAX_LENGTH$1,MAX_SAFE_INTEGER}=constants$4,{re:re$2,t:t$2}=reExports,parseOptions$1=parseOptions_1,{compareIdentifiers}=identifiers$1;let SemVer$d=class zl{constructor($,_e){if(_e=parseOptions$1(_e),$ instanceof zl){if($.loose===!!_e.loose&&$.includePrerelease===!!_e.includePrerelease)return $;$=$.version}else if(typeof $!="string")throw new TypeError(`Invalid Version: ${$}`);if($.length>MAX_LENGTH$1)throw new TypeError(`version is longer than ${MAX_LENGTH$1} characters`);debug$1("SemVer",$,_e),this.options=_e,this.loose=!!_e.loose,this.includePrerelease=!!_e.includePrerelease;const et=$.trim().match(_e.loose?re$2[t$2.LOOSE]:re$2[t$2.FULL]);if(!et)throw new TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+et[1],this.minor=+et[2],this.patch=+et[3],this.major>MAX_SAFE_INTEGER||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MAX_SAFE_INTEGER||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MAX_SAFE_INTEGER||this.patch<0)throw new TypeError("Invalid patch version");et[4]?this.prerelease=et[4].split(".").map(tt=>{if(/^[0-9]+$/.test(tt)){const rt=+tt;if(rt>=0&&rt=0;)typeof this.prerelease[et]=="number"&&(this.prerelease[et]++,et=-2);et===-1&&this.prerelease.push(0)}_e&&(compareIdentifiers(this.prerelease[0],_e)===0?isNaN(this.prerelease[1])&&(this.prerelease=[_e,0]):this.prerelease=[_e,0]);break;default:throw new Error(`invalid increment argument: ${$}`)}return this.format(),this.raw=this.version,this}};var semver=SemVer$d;const{MAX_LENGTH}=constants$4,{re:re$1,t:t$1$1}=reExports,SemVer$c=semver,parseOptions=parseOptions_1,parse$a=(j,$)=>{if($=parseOptions($),j instanceof SemVer$c)return j;if(typeof j!="string"||j.length>MAX_LENGTH||!($.loose?re$1[t$1$1.LOOSE]:re$1[t$1$1.FULL]).test(j))return null;try{return new SemVer$c(j,$)}catch{return null}};var parse_1=parse$a;const parse$9=parse_1,valid$2=(j,$)=>{const _e=parse$9(j,$);return _e?_e.version:null};var valid_1=valid$2;const parse$8=parse_1,clean$1=(j,$)=>{const _e=parse$8(j.trim().replace(/^[=v]+/,""),$);return _e?_e.version:null};var clean_1=clean$1;const SemVer$b=semver,inc$1=(j,$,_e,et)=>{typeof _e=="string"&&(et=_e,_e=void 0);try{return new SemVer$b(j instanceof SemVer$b?j.version:j,_e).inc($,et).version}catch{return null}};var inc_1=inc$1;const SemVer$a=semver,compare$b=(j,$,_e)=>new SemVer$a(j,_e).compare(new SemVer$a($,_e));var compare_1=compare$b;const compare$a=compare_1,eq$3=(j,$,_e)=>compare$a(j,$,_e)===0;var eq_1=eq$3;const parse$7=parse_1,eq$2=eq_1,diff$1=(j,$)=>{if(eq$2(j,$))return null;{const _e=parse$7(j),et=parse$7($),tt=_e.prerelease.length||et.prerelease.length,rt=tt?"pre":"",nt=tt?"prerelease":"";for(const it in _e)if((it==="major"||it==="minor"||it==="patch")&&_e[it]!==et[it])return rt+it;return nt}};var diff_1=diff$1;const SemVer$9=semver,major$1=(j,$)=>new SemVer$9(j,$).major;var major_1=major$1;const SemVer$8=semver,minor$1=(j,$)=>new SemVer$8(j,$).minor;var minor_1=minor$1;const SemVer$7=semver,patch$1=(j,$)=>new SemVer$7(j,$).patch;var patch_1=patch$1;const parse$6=parse_1,prerelease$1=(j,$)=>{const _e=parse$6(j,$);return _e&&_e.prerelease.length?_e.prerelease:null};var prerelease_1=prerelease$1;const compare$9=compare_1,rcompare$1=(j,$,_e)=>compare$9($,j,_e);var rcompare_1=rcompare$1;const compare$8=compare_1,compareLoose$1=(j,$)=>compare$8(j,$,!0);var compareLoose_1=compareLoose$1;const SemVer$6=semver,compareBuild$3=(j,$,_e)=>{const et=new SemVer$6(j,_e),tt=new SemVer$6($,_e);return et.compare(tt)||et.compareBuild(tt)};var compareBuild_1=compareBuild$3;const compareBuild$2=compareBuild_1,sort$1=(j,$)=>j.sort((_e,et)=>compareBuild$2(_e,et,$));var sort_1=sort$1;const compareBuild$1=compareBuild_1,rsort$1=(j,$)=>j.sort((_e,et)=>compareBuild$1(et,_e,$));var rsort_1=rsort$1;const compare$7=compare_1,gt$4=(j,$,_e)=>compare$7(j,$,_e)>0;var gt_1=gt$4;const compare$6=compare_1,lt$3=(j,$,_e)=>compare$6(j,$,_e)<0;var lt_1=lt$3;const compare$5=compare_1,neq$2=(j,$,_e)=>compare$5(j,$,_e)!==0;var neq_1=neq$2;const compare$4=compare_1,gte$3=(j,$,_e)=>compare$4(j,$,_e)>=0;var gte_1=gte$3;const compare$3=compare_1,lte$3=(j,$,_e)=>compare$3(j,$,_e)<=0;var lte_1=lte$3;const eq$1=eq_1,neq$1=neq_1,gt$3=gt_1,gte$2=gte_1,lt$2=lt_1,lte$2=lte_1,cmp$1=(j,$,_e,et)=>{switch($){case"===":return typeof j=="object"&&(j=j.version),typeof _e=="object"&&(_e=_e.version),j===_e;case"!==":return typeof j=="object"&&(j=j.version),typeof _e=="object"&&(_e=_e.version),j!==_e;case"":case"=":case"==":return eq$1(j,_e,et);case"!=":return neq$1(j,_e,et);case">":return gt$3(j,_e,et);case">=":return gte$2(j,_e,et);case"<":return lt$2(j,_e,et);case"<=":return lte$2(j,_e,et);default:throw new TypeError(`Invalid operator: ${$}`)}};var cmp_1=cmp$1;const SemVer$5=semver,parse$5=parse_1,{re:re$4,t:t$3}=reExports,coerce$1=(j,$)=>{if(j instanceof SemVer$5)return j;if(typeof j=="number"&&(j=String(j)),typeof j!="string")return null;$=$||{};let _e=null;if(!$.rtl)_e=j.match(re$4[t$3.COERCE]);else{let et;for(;(et=re$4[t$3.COERCERTL].exec(j))&&(!_e||_e.index+_e[0].length!==j.length);)(!_e||et.index+et[0].length!==_e.index+_e[0].length)&&(_e=et),re$4[t$3.COERCERTL].lastIndex=et.index+et[1].length+et[2].length;re$4[t$3.COERCERTL].lastIndex=-1}return _e===null?null:parse$5(`${_e[2]}.${_e[3]||"0"}.${_e[4]||"0"}`,$)};var coerce_1=coerce$1,iterator,hasRequiredIterator;function requireIterator(){return hasRequiredIterator||(hasRequiredIterator=1,iterator=function(j){j.prototype[Symbol.iterator]=function*(){for(let $=this.head;$;$=$.next)yield $.value}}),iterator}var yallist=Yallist$1;Yallist$1.Node=Node$2;Yallist$1.create=Yallist$1;function Yallist$1(j){var $=this;if($ instanceof Yallist$1||($=new Yallist$1),$.tail=null,$.head=null,$.length=0,j&&typeof j.forEach=="function")j.forEach(function(tt){$.push(tt)});else if(arguments.length>0)for(var _e=0,et=arguments.length;_e1)_e=$;else if(this.head)et=this.head.next,_e=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var tt=0;et!==null;tt++)_e=j(_e,et.value,tt),et=et.next;return _e};Yallist$1.prototype.reduceReverse=function(j,$){var _e,et=this.tail;if(arguments.length>1)_e=$;else if(this.tail)et=this.tail.prev,_e=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var tt=this.length-1;et!==null;tt--)_e=j(_e,et.value,tt),et=et.prev;return _e};Yallist$1.prototype.toArray=function(){for(var j=new Array(this.length),$=0,_e=this.head;_e!==null;$++)j[$]=_e.value,_e=_e.next;return j};Yallist$1.prototype.toArrayReverse=function(){for(var j=new Array(this.length),$=0,_e=this.tail;_e!==null;$++)j[$]=_e.value,_e=_e.prev;return j};Yallist$1.prototype.slice=function(j,$){$=$||this.length,$<0&&($+=this.length),j=j||0,j<0&&(j+=this.length);var _e=new Yallist$1;if($this.length&&($=this.length);for(var et=0,tt=this.head;tt!==null&&etthis.length&&($=this.length);for(var et=this.length,tt=this.tail;tt!==null&&et>$;et--)tt=tt.prev;for(;tt!==null&&et>j;et--,tt=tt.prev)_e.push(tt.value);return _e};Yallist$1.prototype.splice=function(j,$,..._e){j>this.length&&(j=this.length-1),j<0&&(j=this.length+j);for(var et=0,tt=this.head;tt!==null&&et1;let LRUCache$1=class{constructor($){if(typeof $=="number"&&($={max:$}),$||($={}),$.max&&(typeof $.max!="number"||$.max<0))throw new TypeError("max must be a non-negative number");this[MAX]=$.max||1/0;const _e=$.length||naiveLength;if(this[LENGTH_CALCULATOR]=typeof _e!="function"?naiveLength:_e,this[ALLOW_STALE]=$.stale||!1,$.maxAge&&typeof $.maxAge!="number")throw new TypeError("maxAge must be a number");this[MAX_AGE]=$.maxAge||0,this[DISPOSE]=$.dispose,this[NO_DISPOSE_ON_SET]=$.noDisposeOnSet||!1,this[UPDATE_AGE_ON_GET]=$.updateAgeOnGet||!1,this.reset()}set max($){if(typeof $!="number"||$<0)throw new TypeError("max must be a non-negative number");this[MAX]=$||1/0,trim$1(this)}get max(){return this[MAX]}set allowStale($){this[ALLOW_STALE]=!!$}get allowStale(){return this[ALLOW_STALE]}set maxAge($){if(typeof $!="number")throw new TypeError("maxAge must be a non-negative number");this[MAX_AGE]=$,trim$1(this)}get maxAge(){return this[MAX_AGE]}set lengthCalculator($){typeof $!="function"&&($=naiveLength),$!==this[LENGTH_CALCULATOR]&&(this[LENGTH_CALCULATOR]=$,this[LENGTH$1]=0,this[LRU_LIST].forEach(_e=>{_e.length=this[LENGTH_CALCULATOR](_e.value,_e.key),this[LENGTH$1]+=_e.length})),trim$1(this)}get lengthCalculator(){return this[LENGTH_CALCULATOR]}get length(){return this[LENGTH$1]}get itemCount(){return this[LRU_LIST].length}rforEach($,_e){_e=_e||this;for(let et=this[LRU_LIST].tail;et!==null;){const tt=et.prev;forEachStep(this,$,et,_e),et=tt}}forEach($,_e){_e=_e||this;for(let et=this[LRU_LIST].head;et!==null;){const tt=et.next;forEachStep(this,$,et,_e),et=tt}}keys(){return this[LRU_LIST].toArray().map($=>$.key)}values(){return this[LRU_LIST].toArray().map($=>$.value)}reset(){this[DISPOSE]&&this[LRU_LIST]&&this[LRU_LIST].length&&this[LRU_LIST].forEach($=>this[DISPOSE]($.key,$.value)),this[CACHE]=new Map,this[LRU_LIST]=new Yallist,this[LENGTH$1]=0}dump(){return this[LRU_LIST].map($=>isStale(this,$)?!1:{k:$.key,v:$.value,e:$.now+($.maxAge||0)}).toArray().filter($=>$)}dumpLru(){return this[LRU_LIST]}set($,_e,et){if(et=et||this[MAX_AGE],et&&typeof et!="number")throw new TypeError("maxAge must be a number");const tt=et?Date.now():0,rt=this[LENGTH_CALCULATOR](_e,$);if(this[CACHE].has($)){if(rt>this[MAX])return del(this,this[CACHE].get($)),!1;const ot=this[CACHE].get($).value;return this[DISPOSE]&&(this[NO_DISPOSE_ON_SET]||this[DISPOSE]($,ot.value)),ot.now=tt,ot.maxAge=et,ot.value=_e,this[LENGTH$1]+=rt-ot.length,ot.length=rt,this.get($),trim$1(this),!0}const nt=new Entry($,_e,rt,tt,et);return nt.length>this[MAX]?(this[DISPOSE]&&this[DISPOSE]($,_e),!1):(this[LENGTH$1]+=nt.length,this[LRU_LIST].unshift(nt),this[CACHE].set($,this[LRU_LIST].head),trim$1(this),!0)}has($){if(!this[CACHE].has($))return!1;const _e=this[CACHE].get($).value;return!isStale(this,_e)}get($){return get$3(this,$,!0)}peek($){return get$3(this,$,!1)}pop(){const $=this[LRU_LIST].tail;return $?(del(this,$),$.value):null}del($){del(this,this[CACHE].get($))}load($){this.reset();const _e=Date.now();for(let et=$.length-1;et>=0;et--){const tt=$[et],rt=tt.e||0;if(rt===0)this.set(tt.k,tt.v);else{const nt=rt-_e;nt>0&&this.set(tt.k,tt.v,nt)}}}prune(){this[CACHE].forEach(($,_e)=>get$3(this,_e,!1))}};const get$3=(j,$,_e)=>{const et=j[CACHE].get($);if(et){const tt=et.value;if(isStale(j,tt)){if(del(j,et),!j[ALLOW_STALE])return}else _e&&(j[UPDATE_AGE_ON_GET]&&(et.value.now=Date.now()),j[LRU_LIST].unshiftNode(et));return tt.value}},isStale=(j,$)=>{if(!$||!$.maxAge&&!j[MAX_AGE])return!1;const _e=Date.now()-$.now;return $.maxAge?_e>$.maxAge:j[MAX_AGE]&&_e>j[MAX_AGE]},trim$1=j=>{if(j[LENGTH$1]>j[MAX])for(let $=j[LRU_LIST].tail;j[LENGTH$1]>j[MAX]&&$!==null;){const _e=$.prev;del(j,$),$=_e}},del=(j,$)=>{if($){const _e=$.value;j[DISPOSE]&&j[DISPOSE](_e.key,_e.value),j[LENGTH$1]-=_e.length,j[CACHE].delete(_e.key),j[LRU_LIST].removeNode($)}};class Entry{constructor($,_e,et,tt,rt){this.key=$,this.value=_e,this.length=et,this.now=tt,this.maxAge=rt||0}}const forEachStep=(j,$,_e,et)=>{let tt=_e.value;isStale(j,tt)&&(del(j,_e),j[ALLOW_STALE]||(tt=void 0)),tt&&$.call(et,tt.value,tt.key,j)};var lruCache=LRUCache$1,range$3,hasRequiredRange;function requireRange(){if(hasRequiredRange)return range$3;hasRequiredRange=1;class j{constructor(Kt,Wt){if(Wt=et(Wt),Kt instanceof j)return Kt.loose===!!Wt.loose&&Kt.includePrerelease===!!Wt.includePrerelease?Kt:new j(Kt.raw,Wt);if(Kt instanceof tt)return this.raw=Kt.value,this.set=[[Kt]],this.format(),this;if(this.options=Wt,this.loose=!!Wt.loose,this.includePrerelease=!!Wt.includePrerelease,this.raw=Kt,this.set=Kt.split("||").map(Vt=>this.parseRange(Vt.trim())).filter(Vt=>Vt.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${Kt}`);if(this.set.length>1){const Vt=this.set[0];if(this.set=this.set.filter(ur=>!dt(ur[0])),this.set.length===0)this.set=[Vt];else if(this.set.length>1){for(const ur of this.set)if(ur.length===1&&Et(ur[0])){this.set=[ur];break}}}this.format()}format(){return this.range=this.set.map(Kt=>Kt.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(Kt){Kt=Kt.trim();const Vt=`parseRange:${Object.keys(this.options).join(",")}:${Kt}`,ur=_e.get(Vt);if(ur)return ur;const Ar=this.options.loose,hr=Ar?it[ot.HYPHENRANGELOOSE]:it[ot.HYPHENRANGE];Kt=Kt.replace(hr,jt(this.options.includePrerelease)),rt("hyphen replace",Kt),Kt=Kt.replace(it[ot.COMPARATORTRIM],At),rt("comparator trim",Kt),Kt=Kt.replace(it[ot.TILDETRIM],ut),Kt=Kt.replace(it[ot.CARETTRIM],ft),Kt=Kt.split(/\s+/).join(" ");let sr=Kt.split(" ").map(Zt=>St(Zt,this.options)).join(" ").split(/\s+/).map(Zt=>Jt(Zt,this.options));Ar&&(sr=sr.filter(Zt=>(rt("loose invalid filter",Zt,this.options),!!Zt.match(it[ot.COMPARATORLOOSE])))),rt("range list",sr);const ar=new Map,Yt=sr.map(Zt=>new tt(Zt,this.options));for(const Zt of Yt){if(dt(Zt))return[Zt];ar.set(Zt.value,Zt)}ar.size>1&&ar.has("")&&ar.delete("");const pr=[...ar.values()];return _e.set(Vt,pr),pr}intersects(Kt,Wt){if(!(Kt instanceof j))throw new TypeError("a Range is required");return this.set.some(Vt=>Bt(Vt,Wt)&&Kt.set.some(ur=>Bt(ur,Wt)&&Vt.every(Ar=>ur.every(hr=>Ar.intersects(hr,Wt)))))}test(Kt){if(!Kt)return!1;if(typeof Kt=="string")try{Kt=new nt(Kt,this.options)}catch{return!1}for(let Wt=0;WtGt.value==="<0.0.0-0",Et=Gt=>Gt.value==="",Bt=(Gt,Kt)=>{let Wt=!0;const Vt=Gt.slice();let ur=Vt.pop();for(;Wt&&Vt.length;)Wt=Vt.every(Ar=>ur.intersects(Ar,Kt)),ur=Vt.pop();return Wt},St=(Gt,Kt)=>(rt("comp",Gt,Kt),Gt=wt(Gt,Kt),rt("caret",Gt),Gt=$t(Gt,Kt),rt("tildes",Gt),Gt=Nt(Gt,Kt),rt("xrange",Gt),Gt=kt(Gt,Kt),rt("stars",Gt),Gt),Dt=Gt=>!Gt||Gt.toLowerCase()==="x"||Gt==="*",$t=(Gt,Kt)=>Gt.trim().split(/\s+/).map(Wt=>Rt(Wt,Kt)).join(" "),Rt=(Gt,Kt)=>{const Wt=Kt.loose?it[ot.TILDELOOSE]:it[ot.TILDE];return Gt.replace(Wt,(Vt,ur,Ar,hr,sr)=>{rt("tilde",Gt,Vt,ur,Ar,hr,sr);let ar;return Dt(ur)?ar="":Dt(Ar)?ar=`>=${ur}.0.0 <${+ur+1}.0.0-0`:Dt(hr)?ar=`>=${ur}.${Ar}.0 <${ur}.${+Ar+1}.0-0`:sr?(rt("replaceTilde pr",sr),ar=`>=${ur}.${Ar}.${hr}-${sr} <${ur}.${+Ar+1}.0-0`):ar=`>=${ur}.${Ar}.${hr} <${ur}.${+Ar+1}.0-0`,rt("tilde return",ar),ar})},wt=(Gt,Kt)=>Gt.trim().split(/\s+/).map(Wt=>xt(Wt,Kt)).join(" "),xt=(Gt,Kt)=>{rt("caret",Gt,Kt);const Wt=Kt.loose?it[ot.CARETLOOSE]:it[ot.CARET],Vt=Kt.includePrerelease?"-0":"";return Gt.replace(Wt,(ur,Ar,hr,sr,ar)=>{rt("caret",Gt,ur,Ar,hr,sr,ar);let Yt;return Dt(Ar)?Yt="":Dt(hr)?Yt=`>=${Ar}.0.0${Vt} <${+Ar+1}.0.0-0`:Dt(sr)?Ar==="0"?Yt=`>=${Ar}.${hr}.0${Vt} <${Ar}.${+hr+1}.0-0`:Yt=`>=${Ar}.${hr}.0${Vt} <${+Ar+1}.0.0-0`:ar?(rt("replaceCaret pr",ar),Ar==="0"?hr==="0"?Yt=`>=${Ar}.${hr}.${sr}-${ar} <${Ar}.${hr}.${+sr+1}-0`:Yt=`>=${Ar}.${hr}.${sr}-${ar} <${Ar}.${+hr+1}.0-0`:Yt=`>=${Ar}.${hr}.${sr}-${ar} <${+Ar+1}.0.0-0`):(rt("no pr"),Ar==="0"?hr==="0"?Yt=`>=${Ar}.${hr}.${sr}${Vt} <${Ar}.${hr}.${+sr+1}-0`:Yt=`>=${Ar}.${hr}.${sr}${Vt} <${Ar}.${+hr+1}.0-0`:Yt=`>=${Ar}.${hr}.${sr} <${+Ar+1}.0.0-0`),rt("caret return",Yt),Yt})},Nt=(Gt,Kt)=>(rt("replaceXRanges",Gt,Kt),Gt.split(/\s+/).map(Wt=>Ot(Wt,Kt)).join(" ")),Ot=(Gt,Kt)=>{Gt=Gt.trim();const Wt=Kt.loose?it[ot.XRANGELOOSE]:it[ot.XRANGE];return Gt.replace(Wt,(Vt,ur,Ar,hr,sr,ar)=>{rt("xRange",Gt,Vt,ur,Ar,hr,sr,ar);const Yt=Dt(Ar),pr=Yt||Dt(hr),Zt=pr||Dt(sr),mr=Zt;return ur==="="&&mr&&(ur=""),ar=Kt.includePrerelease?"-0":"",Yt?ur===">"||ur==="<"?Vt="<0.0.0-0":Vt="*":ur&&mr?(pr&&(hr=0),sr=0,ur===">"?(ur=">=",pr?(Ar=+Ar+1,hr=0,sr=0):(hr=+hr+1,sr=0)):ur==="<="&&(ur="<",pr?Ar=+Ar+1:hr=+hr+1),ur==="<"&&(ar="-0"),Vt=`${ur+Ar}.${hr}.${sr}${ar}`):pr?Vt=`>=${Ar}.0.0${ar} <${+Ar+1}.0.0-0`:Zt&&(Vt=`>=${Ar}.${hr}.0${ar} <${Ar}.${+hr+1}.0-0`),rt("xRange return",Vt),Vt})},kt=(Gt,Kt)=>(rt("replaceStars",Gt,Kt),Gt.trim().replace(it[ot.STAR],"")),Jt=(Gt,Kt)=>(rt("replaceGTE0",Gt,Kt),Gt.trim().replace(it[Kt.includePrerelease?ot.GTE0PRE:ot.GTE0],"")),jt=Gt=>(Kt,Wt,Vt,ur,Ar,hr,sr,ar,Yt,pr,Zt,mr,vr)=>(Dt(Vt)?Wt="":Dt(ur)?Wt=`>=${Vt}.0.0${Gt?"-0":""}`:Dt(Ar)?Wt=`>=${Vt}.${ur}.0${Gt?"-0":""}`:hr?Wt=`>=${Wt}`:Wt=`>=${Wt}${Gt?"-0":""}`,Dt(Yt)?ar="":Dt(pr)?ar=`<${+Yt+1}.0.0-0`:Dt(Zt)?ar=`<${Yt}.${+pr+1}.0-0`:mr?ar=`<=${Yt}.${pr}.${Zt}-${mr}`:Gt?ar=`<${Yt}.${pr}.${+Zt+1}-0`:ar=`<=${ar}`,`${Wt} ${ar}`.trim()),Ht=(Gt,Kt,Wt)=>{for(let Vt=0;Vt0){const ur=Gt[Vt].semver;if(ur.major===Kt.major&&ur.minor===Kt.minor&&ur.patch===Kt.patch)return!0}return!1}return!0};return range$3}var comparator,hasRequiredComparator;function requireComparator(){if(hasRequiredComparator)return comparator;hasRequiredComparator=1;const j=Symbol("SemVer ANY");class ${static get ANY(){return j}constructor(ut,ft){if(ft=_e(ft),ut instanceof $){if(ut.loose===!!ft.loose)return ut;ut=ut.value}nt("comparator",ut,ft),this.options=ft,this.loose=!!ft.loose,this.parse(ut),this.semver===j?this.value="":this.value=this.operator+this.semver.version,nt("comp",this)}parse(ut){const ft=this.options.loose?et[tt.COMPARATORLOOSE]:et[tt.COMPARATOR],dt=ut.match(ft);if(!dt)throw new TypeError(`Invalid comparator: ${ut}`);this.operator=dt[1]!==void 0?dt[1]:"",this.operator==="="&&(this.operator=""),dt[2]?this.semver=new it(dt[2],this.options.loose):this.semver=j}toString(){return this.value}test(ut){if(nt("Comparator.test",ut,this.options.loose),this.semver===j||ut===j)return!0;if(typeof ut=="string")try{ut=new it(ut,this.options)}catch{return!1}return rt(ut,this.operator,this.semver,this.options)}intersects(ut,ft){if(!(ut instanceof $))throw new TypeError("a Comparator is required");if((!ft||typeof ft!="object")&&(ft={loose:!!ft,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new ot(ut.value,ft).test(this.value);if(ut.operator==="")return ut.value===""?!0:new ot(this.value,ft).test(ut.semver);const dt=(this.operator===">="||this.operator===">")&&(ut.operator===">="||ut.operator===">"),Et=(this.operator==="<="||this.operator==="<")&&(ut.operator==="<="||ut.operator==="<"),Bt=this.semver.version===ut.semver.version,St=(this.operator===">="||this.operator==="<=")&&(ut.operator===">="||ut.operator==="<="),Dt=rt(this.semver,"<",ut.semver,ft)&&(this.operator===">="||this.operator===">")&&(ut.operator==="<="||ut.operator==="<"),$t=rt(this.semver,">",ut.semver,ft)&&(this.operator==="<="||this.operator==="<")&&(ut.operator===">="||ut.operator===">");return dt||Et||Bt&&St||Dt||$t}}comparator=$;const _e=parseOptions_1,{re:et,t:tt}=reExports,rt=cmp_1,nt=debug_1,it=semver,ot=requireRange();return comparator}const Range$9=requireRange(),satisfies$4=(j,$,_e)=>{try{$=new Range$9($,_e)}catch{return!1}return $.test(j)};var satisfies_1=satisfies$4;const Range$8=requireRange(),toComparators$1=(j,$)=>new Range$8(j,$).set.map(_e=>_e.map(et=>et.value).join(" ").trim().split(" "));var toComparators_1=toComparators$1;const SemVer$4=semver,Range$7=requireRange(),maxSatisfying$1=(j,$,_e)=>{let et=null,tt=null,rt=null;try{rt=new Range$7($,_e)}catch{return null}return j.forEach(nt=>{rt.test(nt)&&(!et||tt.compare(nt)===-1)&&(et=nt,tt=new SemVer$4(et,_e))}),et};var maxSatisfying_1=maxSatisfying$1;const SemVer$3=semver,Range$6=requireRange(),minSatisfying$1=(j,$,_e)=>{let et=null,tt=null,rt=null;try{rt=new Range$6($,_e)}catch{return null}return j.forEach(nt=>{rt.test(nt)&&(!et||tt.compare(nt)===1)&&(et=nt,tt=new SemVer$3(et,_e))}),et};var minSatisfying_1=minSatisfying$1;const SemVer$2=semver,Range$5=requireRange(),gt$2=gt_1,minVersion$1=(j,$)=>{j=new Range$5(j,$);let _e=new SemVer$2("0.0.0");if(j.test(_e)||(_e=new SemVer$2("0.0.0-0"),j.test(_e)))return _e;_e=null;for(let et=0;et{const it=new SemVer$2(nt.semver.version);switch(nt.operator){case">":it.prerelease.length===0?it.patch++:it.prerelease.push(0),it.raw=it.format();case"":case">=":(!rt||gt$2(it,rt))&&(rt=it);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${nt.operator}`)}}),rt&&(!_e||gt$2(_e,rt))&&(_e=rt)}return _e&&j.test(_e)?_e:null};var minVersion_1=minVersion$1;const Range$4=requireRange(),validRange$1=(j,$)=>{try{return new Range$4(j,$).range||"*"}catch{return null}};var valid$1=validRange$1;const SemVer$1=semver,Comparator$2=requireComparator(),{ANY:ANY$1}=Comparator$2,Range$3=requireRange(),satisfies$3=satisfies_1,gt$1=gt_1,lt$1=lt_1,lte$1=lte_1,gte$1=gte_1,outside$3=(j,$,_e,et)=>{j=new SemVer$1(j,et),$=new Range$3($,et);let tt,rt,nt,it,ot;switch(_e){case">":tt=gt$1,rt=lte$1,nt=lt$1,it=">",ot=">=";break;case"<":tt=lt$1,rt=gte$1,nt=gt$1,it="<",ot="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(satisfies$3(j,$,et))return!1;for(let At=0;At<$.set.length;++At){const ut=$.set[At];let ft=null,dt=null;if(ut.forEach(Et=>{Et.semver===ANY$1&&(Et=new Comparator$2(">=0.0.0")),ft=ft||Et,dt=dt||Et,tt(Et.semver,ft.semver,et)?ft=Et:nt(Et.semver,dt.semver,et)&&(dt=Et)}),ft.operator===it||ft.operator===ot||(!dt.operator||dt.operator===it)&&rt(j,dt.semver))return!1;if(dt.operator===ot&&nt(j,dt.semver))return!1}return!0};var outside_1=outside$3;const outside$2=outside_1,gtr$1=(j,$,_e)=>outside$2(j,$,">",_e);var gtr_1=gtr$1;const outside$1=outside_1,ltr$1=(j,$,_e)=>outside$1(j,$,"<",_e);var ltr_1=ltr$1;const Range$2=requireRange(),intersects$5=(j,$,_e)=>(j=new Range$2(j,_e),$=new Range$2($,_e),j.intersects($));var intersects_1=intersects$5;const satisfies$2=satisfies_1,compare$2=compare_1;var simplify=(j,$,_e)=>{const et=[];let tt=null,rt=null;const nt=j.sort((ut,ft)=>compare$2(ut,ft,_e));for(const ut of nt)satisfies$2(ut,$,_e)?(rt=ut,tt||(tt=ut)):(rt&&et.push([tt,rt]),rt=null,tt=null);tt&&et.push([tt,null]);const it=[];for(const[ut,ft]of et)ut===ft?it.push(ut):!ft&&ut===nt[0]?it.push("*"):ft?ut===nt[0]?it.push(`<=${ft}`):it.push(`${ut} - ${ft}`):it.push(`>=${ut}`);const ot=it.join(" || "),At=typeof $.raw=="string"?$.raw:String($);return ot.length{if(j===$)return!0;j=new Range$1(j,_e),$=new Range$1($,_e);let et=!1;e:for(const tt of j.set){for(const rt of $.set){const nt=simpleSubset(tt,rt,_e);if(et=et||nt!==null,nt)continue e}if(et)return!1}return!0},simpleSubset=(j,$,_e)=>{if(j===$)return!0;if(j.length===1&&j[0].semver===ANY){if($.length===1&&$[0].semver===ANY)return!0;_e.includePrerelease?j=[new Comparator$1(">=0.0.0-0")]:j=[new Comparator$1(">=0.0.0")]}if($.length===1&&$[0].semver===ANY){if(_e.includePrerelease)return!0;$=[new Comparator$1(">=0.0.0")]}const et=new Set;let tt,rt;for(const Et of j)Et.operator===">"||Et.operator===">="?tt=higherGT(tt,Et,_e):Et.operator==="<"||Et.operator==="<="?rt=lowerLT(rt,Et,_e):et.add(Et.semver);if(et.size>1)return null;let nt;if(tt&&rt){if(nt=compare$1(tt.semver,rt.semver,_e),nt>0)return null;if(nt===0&&(tt.operator!==">="||rt.operator!=="<="))return null}for(const Et of et){if(tt&&!satisfies$1(Et,String(tt),_e)||rt&&!satisfies$1(Et,String(rt),_e))return null;for(const Bt of $)if(!satisfies$1(Et,String(Bt),_e))return!1;return!0}let it,ot,At,ut,ft=rt&&!_e.includePrerelease&&rt.semver.prerelease.length?rt.semver:!1,dt=tt&&!_e.includePrerelease&&tt.semver.prerelease.length?tt.semver:!1;ft&&ft.prerelease.length===1&&rt.operator==="<"&&ft.prerelease[0]===0&&(ft=!1);for(const Et of $){if(ut=ut||Et.operator===">"||Et.operator===">=",At=At||Et.operator==="<"||Et.operator==="<=",tt){if(dt&&Et.semver.prerelease&&Et.semver.prerelease.length&&Et.semver.major===dt.major&&Et.semver.minor===dt.minor&&Et.semver.patch===dt.patch&&(dt=!1),Et.operator===">"||Et.operator===">="){if(it=higherGT(tt,Et,_e),it===Et&&it!==tt)return!1}else if(tt.operator===">="&&!satisfies$1(tt.semver,String(Et),_e))return!1}if(rt){if(ft&&Et.semver.prerelease&&Et.semver.prerelease.length&&Et.semver.major===ft.major&&Et.semver.minor===ft.minor&&Et.semver.patch===ft.patch&&(ft=!1),Et.operator==="<"||Et.operator==="<="){if(ot=lowerLT(rt,Et,_e),ot===Et&&ot!==rt)return!1}else if(rt.operator==="<="&&!satisfies$1(rt.semver,String(Et),_e))return!1}if(!Et.operator&&(rt||tt)&&nt!==0)return!1}return!(tt&&At&&!rt&&nt!==0||rt&&ut&&!tt&&nt!==0||dt||ft)},higherGT=(j,$,_e)=>{if(!j)return $;const et=compare$1(j.semver,$.semver,_e);return et>0?j:et<0||$.operator===">"&&j.operator===">="?$:j},lowerLT=(j,$,_e)=>{if(!j)return $;const et=compare$1(j.semver,$.semver,_e);return et<0?j:et>0||$.operator==="<"&&j.operator==="<="?$:j};var subset_1=subset$1;const internalRe=reExports,constants$3=constants$4,SemVer2=semver,identifiers=identifiers$1,parse$4=parse_1,valid=valid_1,clean=clean_1,inc=inc_1,diff=diff_1,major=major_1,minor=minor_1,patch=patch_1,prerelease=prerelease_1,compare=compare_1,rcompare=rcompare_1,compareLoose=compareLoose_1,compareBuild=compareBuild_1,sort=sort_1,rsort=rsort_1,gt=gt_1,lt=lt_1,eq=eq_1,neq=neq_1,gte=gte_1,lte=lte_1,cmp=cmp_1,coerce=coerce_1,Comparator=requireComparator(),Range=requireRange(),satisfies=satisfies_1,toComparators=toComparators_1,maxSatisfying=maxSatisfying_1,minSatisfying=minSatisfying_1,minVersion=minVersion_1,validRange=valid$1,outside=outside_1,gtr=gtr_1,ltr=ltr_1,intersects$4=intersects_1,simplifyRange=simplify,subset=subset_1;internalRe.re,internalRe.src,internalRe.t,constants$3.SEMVER_SPEC_VERSION,identifiers.compareIdentifiers,identifiers.rcompareIdentifiers;const ViewType$1={DESCRIPTION:"description",STATUS:"status",SCATTERPLOT:"scatterplot",SPATIAL:"spatial",SPATIAL_BETA:"spatialBeta",HEATMAP:"heatmap",LAYER_CONTROLLER:"layerController",LAYER_CONTROLLER_BETA:"layerControllerBeta",GENOMIC_PROFILES:"genomicProfiles",GATING:"gating",FEATURE_LIST:"featureList",OBS_SETS:"obsSets",OBS_SET_SIZES:"obsSetSizes",OBS_SET_FEATURE_VALUE_DISTRIBUTION:"obsSetFeatureValueDistribution",FEATURE_VALUE_HISTOGRAM:"featureValueHistogram"},DataType$2={OBS_LABELS:"obsLabels",OBS_EMBEDDING:"obsEmbedding",OBS_FEATURE_MATRIX:"obsFeatureMatrix",OBS_SETS:"obsSets",FEATURE_LABELS:"featureLabels",IMAGE:"image",OBS_SEGMENTATIONS:"obsSegmentations",NEIGHBORHOODS:"neighborhoods",GENOMIC_PROFILES:"genomic-profiles",OBS_SPOTS:"obsSpots",OBS_POINTS:"obsPoints",OBS_LOCATIONS:"obsLocations"},FileType$1={ANNDATA_ZARR:"anndata.zarr",SPATIALDATA_ZARR:"spatialdata.zarr",OBS_EMBEDDING_CSV:"obsEmbedding.csv",OBS_SPOTS_CSV:"obsSpots.csv",OBS_POINTS_CSV:"obsPoints.csv",OBS_LOCATIONS_CSV:"obsLocations.csv",OBS_LABELS_CSV:"obsLabels.csv",FEATURE_LABELS_CSV:"featureLabels.csv",OBS_FEATURE_MATRIX_CSV:"obsFeatureMatrix.csv",OBS_SEGMENTATIONS_JSON:"obsSegmentations.json",OBS_SETS_CSV:"obsSets.csv",OBS_SETS_JSON:"obsSets.json",IMAGE_OME_ZARR:"image.ome-zarr",OBS_FEATURE_MATRIX_ANNDATA_ZARR:"obsFeatureMatrix.anndata.zarr",OBS_SETS_ANNDATA_ZARR:"obsSets.anndata.zarr",OBS_EMBEDDING_ANNDATA_ZARR:"obsEmbedding.anndata.zarr",OBS_SPOTS_ANNDATA_ZARR:"obsSpots.anndata.zarr",OBS_POINTS_ANNDATA_ZARR:"obsPoints.anndata.zarr",OBS_LOCATIONS_ANNDATA_ZARR:"obsLocations.anndata.zarr",OBS_SEGMENTATIONS_ANNDATA_ZARR:"obsSegmentations.anndata.zarr",OBS_LABELS_ANNDATA_ZARR:"obsLabels.anndata.zarr",FEATURE_LABELS_ANNDATA_ZARR:"featureLabels.anndata.zarr",IMAGE_SPATIALDATA_ZARR:"image.spatialdata.zarr",LABELS_SPATIALDATA_ZARR:"labels.spatialdata.zarr",SHAPES_SPATIALDATA_ZARR:"shapes.spatialdata.zarr",OBS_FEATURE_MATRIX_SPATIALDATA_ZARR:"obsFeatureMatrix.spatialdata.zarr",OBS_SETS_SPATIALDATA_ZARR:"obsSets.spatialdata.zarr",OBS_SPOTS_SPATIALDATA_ZARR:"obsSpots.spatialdata.zarr",OBS_FEATURE_MATRIX_MUDATA_ZARR:"obsFeatureMatrix.mudata.zarr",OBS_SETS_MUDATA_ZARR:"obsSets.mudata.zarr",OBS_EMBEDDING_MUDATA_ZARR:"obsEmbedding.mudata.zarr",OBS_SPOTS_MUDATA_ZARR:"obsSpots.mudata.zarr",OBS_POINTS_MUDATA_ZARR:"obsPoints.mudata.zarr",OBS_LOCATIONS_MUDATA_ZARR:"obsLocations.mudata.zarr",OBS_SEGMENTATIONS_MUDATA_ZARR:"obsSegmentations.mudata.zarr",OBS_LABELS_MUDATA_ZARR:"obsLabels.mudata.zarr",FEATURE_LABELS_MUDATA_ZARR:"featureLabels.mudata.zarr",GENOMIC_PROFILES_ZARR:"genomic-profiles.zarr",NEIGHBORHOODS_JSON:"neighborhoods.json",IMAGE_OME_TIFF:"image.ome-tiff",OBS_SEGMENTATIONS_OME_TIFF:"obsSegmentations.ome-tiff",OBS_EMBEDDING_CELLS_JSON:"obsEmbedding.cells.json",OBS_SEGMENTATIONS_CELLS_JSON:"obsSegmentations.cells.json",OBS_LOCATIONS_CELLS_JSON:"obsLocations.cells.json",OBS_LABELS_CELLS_JSON:"obsLabels.cells.json",OBS_SETS_CELL_SETS_JSON:"obsSets.cell-sets.json",OBS_FEATURE_MATRIX_GENES_JSON:"obsFeatureMatrix.genes.json",OBS_FEATURE_MATRIX_CLUSTERS_JSON:"obsFeatureMatrix.clusters.json",OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR:"obsFeatureMatrix.expression-matrix.zarr",IMAGE_RASTER_JSON:"image.raster.json",OBS_SEGMENTATIONS_RASTER_JSON:"obsSegmentations.raster.json",OBS_LOCATIONS_MOLECULES_JSON:"obsLocations.molecules.json",OBS_LABELS_MOLECULES_JSON:"obsLabels.molecules.json",CELLS_JSON:"cells.json",CELL_SETS_JSON:"cell-sets.json",ANNDATA_CELL_SETS_ZARR:"anndata-cell-sets.zarr",ANNDATA_CELLS_ZARR:"anndata-cells.zarr",EXPRESSION_MATRIX_ZARR:"expression-matrix.zarr",MOLECULES_JSON:"molecules.json",RASTER_JSON:"raster.json",RASTER_OME_ZARR:"raster.ome-zarr",CLUSTERS_JSON:"clusters.json",GENES_JSON:"genes.json",ANNDATA_EXPRESSION_MATRIX_ZARR:"anndata-expression-matrix.zarr"},CoordinationType$1={META_COORDINATION_SCOPES:"metaCoordinationScopes",META_COORDINATION_SCOPES_BY:"metaCoordinationScopesBy",DATASET:"dataset",OBS_TYPE:"obsType",FEATURE_TYPE:"featureType",FEATURE_VALUE_TYPE:"featureValueType",OBS_LABELS_TYPE:"obsLabelsType",EMBEDDING_TYPE:"embeddingType",EMBEDDING_ZOOM:"embeddingZoom",EMBEDDING_ROTATION:"embeddingRotation",EMBEDDING_TARGET_X:"embeddingTargetX",EMBEDDING_TARGET_Y:"embeddingTargetY",EMBEDDING_TARGET_Z:"embeddingTargetZ",EMBEDDING_OBS_SET_POLYGONS_VISIBLE:"embeddingObsSetPolygonsVisible",EMBEDDING_OBS_SET_LABELS_VISIBLE:"embeddingObsSetLabelsVisible",EMBEDDING_OBS_SET_LABEL_SIZE:"embeddingObsSetLabelSize",EMBEDDING_OBS_RADIUS:"embeddingObsRadius",EMBEDDING_OBS_RADIUS_MODE:"embeddingObsRadiusMode",EMBEDDING_OBS_OPACITY:"embeddingObsOpacity",EMBEDDING_OBS_OPACITY_MODE:"embeddingObsOpacityMode",SPATIAL_ZOOM:"spatialZoom",SPATIAL_ROTATION:"spatialRotation",SPATIAL_TARGET_X:"spatialTargetX",SPATIAL_TARGET_Y:"spatialTargetY",SPATIAL_TARGET_Z:"spatialTargetZ",SPATIAL_TARGET_T:"spatialTargetT",SPATIAL_ROTATION_X:"spatialRotationX",SPATIAL_ROTATION_Y:"spatialRotationY",SPATIAL_ROTATION_Z:"spatialRotationZ",SPATIAL_ROTATION_ORBIT:"spatialRotationOrbit",SPATIAL_ORBIT_AXIS:"spatialOrbitAxis",SPATIAL_AXIS_FIXED:"spatialAxisFixed",HEATMAP_ZOOM_X:"heatmapZoomX",HEATMAP_ZOOM_Y:"heatmapZoomY",HEATMAP_TARGET_X:"heatmapTargetX",HEATMAP_TARGET_Y:"heatmapTargetY",OBS_FILTER:"obsFilter",OBS_HIGHLIGHT:"obsHighlight",OBS_SET_SELECTION:"obsSetSelection",OBS_SET_HIGHLIGHT:"obsSetHighlight",OBS_SET_EXPANSION:"obsSetExpansion",OBS_SET_COLOR:"obsSetColor",FEATURE_FILTER:"featureFilter",FEATURE_HIGHLIGHT:"featureHighlight",FEATURE_SELECTION:"featureSelection",FEATURE_VALUE_COLORMAP:"featureValueColormap",FEATURE_VALUE_TRANSFORM:"featureValueTransform",FEATURE_VALUE_COLORMAP_RANGE:"featureValueColormapRange",OBS_COLOR_ENCODING:"obsColorEncoding",SPATIAL_IMAGE_LAYER:"spatialImageLayer",SPATIAL_SEGMENTATION_LAYER:"spatialSegmentationLayer",SPATIAL_POINT_LAYER:"spatialPointLayer",SPATIAL_NEIGHBORHOOD_LAYER:"spatialNeighborhoodLayer",GENOMIC_ZOOM_X:"genomicZoomX",GENOMIC_ZOOM_Y:"genomicZoomY",GENOMIC_TARGET_X:"genomicTargetX",GENOMIC_TARGET_Y:"genomicTargetY",ADDITIONAL_OBS_SETS:"additionalObsSets",MOLECULE_HIGHLIGHT:"moleculeHighlight",GATING_FEATURE_SELECTION_X:"gatingFeatureSelectionX",GATING_FEATURE_SELECTION_Y:"gatingFeatureSelectionY",FEATURE_VALUE_TRANSFORM_COEFFICIENT:"featureValueTransformCoefficient",TOOLTIPS_VISIBLE:"tooltipsVisible",FILE_UID:"fileUid",IMAGE_LAYER:"imageLayer",IMAGE_CHANNEL:"imageChannel",SEGMENTATION_LAYER:"segmentationLayer",SEGMENTATION_CHANNEL:"segmentationChannel",SPATIAL_TARGET_C:"spatialTargetC",SPATIAL_LAYER_VISIBLE:"spatialLayerVisible",SPATIAL_LAYER_OPACITY:"spatialLayerOpacity",SPATIAL_LAYER_COLORMAP:"spatialLayerColormap",SPATIAL_LAYER_TRANSPARENT_COLOR:"spatialLayerTransparentColor",SPATIAL_LAYER_MODEL_MATRIX:"spatialLayerModelMatrix",SPATIAL_SEGMENTATION_FILLED:"spatialSegmentationFilled",SPATIAL_SEGMENTATION_STROKE_WIDTH:"spatialSegmentationStrokeWidth",SPATIAL_CHANNEL_COLOR:"spatialChannelColor",SPATIAL_CHANNEL_VISIBLE:"spatialChannelVisible",SPATIAL_CHANNEL_OPACITY:"spatialChannelOpacity",SPATIAL_CHANNEL_WINDOW:"spatialChannelWindow",PHOTOMETRIC_INTERPRETATION:"photometricInterpretation",SPATIAL_RENDERING_MODE:"spatialRenderingMode",VOLUMETRIC_RENDERING_ALGORITHM:"volumetricRenderingAlgorithm",SPATIAL_TARGET_RESOLUTION:"spatialTargetResolution",SPATIAL_SLICE_X:"spatialSliceX",SPATIAL_SLICE_Y:"spatialSliceY",SPATIAL_SLICE_Z:"spatialSliceZ",SPOT_LAYER:"spotLayer",POINT_LAYER:"pointLayer",SPATIAL_SPOT_RADIUS:"spatialSpotRadius",SPATIAL_SPOT_FILLED:"spatialSpotFilled",SPATIAL_SPOT_STROKE_WIDTH:"spatialSpotStrokeWidth",SPATIAL_LAYER_COLOR:"spatialLayerColor",PIXEL_HIGHLIGHT:"pixelHighlight",TOOLTIP_CROSSHAIRS_VISIBLE:"tooltipCrosshairsVisible",LEGEND_VISIBLE:"legendVisible",SPATIAL_CHANNEL_LABELS_VISIBLE:"spatialChannelLabelsVisible",SPATIAL_CHANNEL_LABELS_ORIENTATION:"spatialChannelLabelsOrientation",SPATIAL_CHANNEL_LABEL_SIZE:"spatialChannelLabelSize"},ViewType={GENES:["genes","This view type was renamed to featureList in schema version 1.0.15."],CELL_SETS:["cellSets","This view type was renamed to obsSets in schema version 1.0.15."],CELL_SET_SIZES:["cellSetSizes","This view type was renamed to obsSetSizes in schema version 1.0.15."],CELL_SET_EXPRESSION:["cellSetExpression","This view type was renamed to obsSetFeatureValueDistribution in schema version 1.0.15."],EXPRESSION_HISTOGRAM:["expressionHistogram","This view type was renamed to featureValueHistogram in schema version 1.0.15."]},DataType$1={CELLS:["cells","This data type was removed. Associated file types were re-implemented as joint file types. See obsEmbedding instead."],CELL_SETS:["cell-sets","This data type was removed. Associated file types were re-implemented as joint file types. See obsSets instead."],EXPRESSION_MATRIX:["expression-matrix","This data type was removed. Associated file types were re-implemented as joint file types. See obsFeatureMatrix instead."],MOLECULES:["molecules","This data type was removed. Associated file types were re-implemented as joint file types. See obsLocations instead."],RASTER:["raster","This data type was removed. Associated file types were re-implemented as joint file types. See image and obsSegmentations instead."]},FileType={};function makeChangeMessage(j,$){return[`This coordination type was changed to ${j} in view config schema version ${$}`,$,j]}const CoordinationType={SPATIAL_LAYERS:["spatialLayers","This coordination type was split into multiple coordination types in view config schema version 1.0.1","1.0.1","multiple"],SPATIAL_RASTER_LAYERS:["spatialRasterLayers",...makeChangeMessage("spatialImageLayer","1.0.11")],SPATIAL_CELLS_LAYER:["spatialCellsLayer",...makeChangeMessage("spatialSegmentationLayer","1.0.11")],SPATIAL_MOLECULES_LAYER:["spatialMoleculesLayer",...makeChangeMessage("spatialPointLayer","1.0.11")],SPATIAL_NEIGHBORHOODS_LAYER:["spatialNeighborhoodsLayer",...makeChangeMessage("spatialNeighborhoodLayer","1.0.11")],EMBEDDING_CELL_SET_POLYGONS_VISIBLE:["embeddingCellSetPolygonsVisible",...makeChangeMessage("embeddingObsSetPolygonsVisible","1.0.11")],EMBEDDING_CELL_SET_LABELS_VISIBLE:["embeddingCellSetLabelsVisible",...makeChangeMessage("embeddingObsSetLabelsVisible","1.0.11")],EMBEDDING_CELL_SET_LABEL_SIZE:["embeddingCellSetLabelSize",...makeChangeMessage("embeddingObsSetLabelSize","1.0.11")],EMBEDDING_CELL_RADIUS:["embeddingCellRadius",...makeChangeMessage("embeddingObsRadius","1.0.11")],EMBEDDING_CELL_RADIUS_MODE:["embeddingCellRadiusMode",...makeChangeMessage("embeddingObsRadiusMode","1.0.11")],EMBEDDING_CELL_OPACITY:["embeddingCellOpacity",...makeChangeMessage("embeddingObsOpacity","1.0.11")],EMBEDDING_CELL_OPACITY_MODE:["embeddingCellOpacityMode",...makeChangeMessage("embeddingObsOpacityMode","1.0.11")],CELL_FILTER:["cellFilter",...makeChangeMessage("obsFilter","1.0.11")],CELL_HIGHLIGHT:["cellHighlight",...makeChangeMessage("obsHighlight","1.0.11")],CELL_SET_SELECTION:["cellSetSelection",...makeChangeMessage("obsSetSelection","1.0.11")],CELL_SET_HIGHLIGHT:["cellSetHighlight",...makeChangeMessage("obsSetHighlight","1.0.11")],CELL_SET_COLOR:["cellSetColor",...makeChangeMessage("obsSetColor","1.0.11")],CELL_COLOR_ENCODING:["cellColorEncoding",...makeChangeMessage("obsColorEncoding","1.0.11")],ADDITIONAL_CELL_SETS:["additionalCellSets",...makeChangeMessage("additionalObsSets","1.0.11")],GENE_FILTER:["geneFilter",...makeChangeMessage("featureFilter","1.0.11")],GENE_HIGHLIGHT:["geneHighlight",...makeChangeMessage("featureHighlight","1.0.11")],GENE_SELECTION:["geneSelection",...makeChangeMessage("featureSelection","1.0.11")],GENE_EXPRESSION_COLORMAP:["geneExpressionColormap",...makeChangeMessage("featureValueColormap","1.0.11")],GENE_EXPRESSION_TRANSFORM:["geneExpressionTransform",...makeChangeMessage("featureValueTransform","1.0.11")],GENE_EXPRESSION_COLORMAP_RANGE:["geneExpressionColormapRange",...makeChangeMessage("featureValueColormapRange","1.0.11")]};function makeConstantWithDeprecationMessage(j,$){const _e={get(tt,rt){return Object.keys($).includes(rt)?(console.warn(`Notice about the constant mapping ${rt}: '${$[rt][0]}': +${$[rt][1]}`),$[rt]):tt[rt]}};return new Proxy(j,_e)}makeConstantWithDeprecationMessage(ViewType$1,ViewType);makeConstantWithDeprecationMessage(DataType$2,DataType$1);makeConstantWithDeprecationMessage(FileType$1,FileType);makeConstantWithDeprecationMessage(CoordinationType$1,CoordinationType);function configSchemaToVersion(j){return j.shape.version._def.value}({...fromEntries(SCHEMA_HANDLERS.map(([j])=>[configSchemaToVersion(j),j])),[latestConfigSchema.shape.version._def.value]:0});const image=z$1.object({name:z$1.string(),url:z$1.string(),type:z$1.string(),metadata:z$1.object({dimensions:z$1.array(z$1.object({field:z$1.string(),type:z$1.enum(["quantitative","nominal","ordinal","temporal"]),values:z$1.array(z$1.string()).nullable()})).optional(),isPyramid:z$1.boolean().optional(),transform:z$1.union([z$1.object({scale:z$1.number(),translate:z$1.object({y:z$1.number(),x:z$1.number()})}),z$1.object({matrix:z$1.array(z$1.number()).length(16)})]).optional(),isBitmask:z$1.boolean().optional(),omeTiffOffsetsUrl:z$1.string().optional()}).optional(),requestInit:requestInit.optional()});z$1.object({schemaVersion:z$1.literal("0.0.2"),usePhysicalSizeScaling:z$1.boolean().optional(),renderLayers:z$1.array(z$1.string()).optional(),images:z$1.array(image)});const annDataObs=z$1.object({path:z$1.string()}),annDataObsm=z$1.object({path:z$1.string(),dims:z$1.array(z$1.number()).optional()}),annDataConvenienceObsLabelsItem=z$1.object({path:z$1.string(),obsLabelsType:z$1.string()}),annDataConvenienceFeatureLabelsItem=z$1.object({path:z$1.string(),featureLabelsType:z$1.string()}),annDataConvenienceObsEmbeddingItem=z$1.object({path:z$1.string(),dims:z$1.array(z$1.number()).optional(),embeddingType:z$1.string()}),annDataObsLabels=annDataObs,annDataFeatureLabels=annDataObs,annDataObsFeatureMatrix=z$1.object({path:z$1.string(),featureFilterPath:z$1.string().optional().describe("If the feature index should be filtered, put a boolean column here (analogous to the previous geneFilter option). e.g., var/in_obsm_X_small_matrix"),initialFeatureFilterPath:z$1.string().optional().describe("If only a subset of the matrix should be loaded initially, put a boolean column along the feature axis here (analogous to the previous matrixGeneFilter option). e.g., var/highly_variable")}),annDataObsSets=z$1.array(z$1.object({name:z$1.string().describe("The display name for the set, like 'Cell Type' or 'Louvain.'"),path:z$1.union([z$1.string().describe("The location in the AnnData store for the set, like 'obs/louvain' or 'obs/celltype.'"),z$1.array(z$1.string()).describe("An array of locations in the AnnData store for a hierarchy of set names, from coarse to fine levels.")]),scorePath:z$1.string().optional().describe("The location in the AnnData store for the set confidence scores, like 'obs/celltype_prediction_score.'")})),annDataObsSpots=annDataObsm,annDataObsPoints=annDataObsm,annDataObsLocations=annDataObsm,annDataObsEmbedding=annDataObsm,annDataObsSegmentations=annDataObs,omeCoordinateTransformations=z$1.array(z$1.union([z$1.object({type:z$1.literal("identity")}),z$1.object({type:z$1.literal("translation"),translation:z$1.array(z$1.number())}),z$1.object({type:z$1.literal("scale"),scale:z$1.array(z$1.number())})]));z$1.object({offsetsUrl:z$1.string().optional(),coordinateTransformations:omeCoordinateTransformations.optional()});const imageOmeZarrSchema=z$1.object({coordinateTransformations:omeCoordinateTransformations.optional()});imageOmeZarrSchema.extend({path:z$1.string()});z$1.object({path:z$1.string()});z$1.object({path:z$1.string()});z$1.object({path:z$1.string(),tablePath:z$1.string().optional().describe("The path to a table which annotates the spots. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected.")});annDataObsFeatureMatrix.extend({region:z$1.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional()});z$1.object({region:z$1.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),tablePath:z$1.string().optional().describe("The path to a table which contains the index for the set values."),obsSets:annDataObsSets});z$1.object({obsIndex:z$1.string(),obsEmbedding:z$1.array(z$1.string()).length(2)});z$1.object({obsIndex:z$1.string(),obsSpots:z$1.array(z$1.string()).length(2)});z$1.object({obsIndex:z$1.string(),obsPoints:z$1.array(z$1.string()).length(3)});z$1.object({obsIndex:z$1.string(),obsLocations:z$1.array(z$1.string()).length(2)});z$1.object({obsIndex:z$1.string(),obsLabels:z$1.string()});z$1.object({featureIndex:z$1.string(),featureLabels:z$1.string()});z$1.object({obsIndex:z$1.string(),obsSets:z$1.array(z$1.object({name:z$1.string(),column:z$1.union([z$1.string(),z$1.array(z$1.string())]),scoreColumn:z$1.string().optional()}))});z$1.object({obsLabels:z$1.union([annDataObsLabels,z$1.array(annDataConvenienceObsLabelsItem)]),featureLabels:z$1.union([annDataFeatureLabels,z$1.array(annDataConvenienceFeatureLabelsItem)]),obsFeatureMatrix:annDataObsFeatureMatrix,obsSets:annDataObsSets,obsSpots:annDataObsSpots,obsPoints:annDataObsPoints,obsLocations:annDataObsLocations,obsSegmentations:annDataObsSegmentations,obsEmbedding:z$1.union([annDataObsEmbedding,z$1.array(annDataConvenienceObsEmbeddingItem)])}).partial();z$1.object({obsLabelsTypes:z$1.array(z$1.string()).optional(),embeddingTypes:z$1.array(z$1.string()).optional()}).optional();z$1.object({xy:z$1.string().optional(),poly:z$1.string().optional(),factors:z$1.array(z$1.string()).optional(),mappings:z$1.record(z$1.object({key:z$1.string(),dims:z$1.array(z$1.number()).length(2)})).optional()});z$1.array(z$1.object({groupName:z$1.string(),setName:z$1.union([z$1.string(),z$1.array(z$1.string())]),scoreName:z$1.string().optional()}));z$1.object({matrix:z$1.string(),geneFilter:z$1.string().optional(),matrixGeneFilter:z$1.string().optional(),geneAlias:z$1.string().optional()});z$1.array(z$1.object({channels:z$1.array(z$1.object({color:z$1.array(z$1.number()).describe("The color to use when rendering this channel under the null colormap.").optional(),selection:z$1.record(z$1.any()).describe("Determines the channel selection, e.g. some Z and time slice."),slider:z$1.array(z$1.number()).describe("Determines the range for color mapping.").optional(),visible:z$1.boolean().describe("Determines whether this channel of the layer will be rendered in the spatial component.").optional()}).strict()),colormap:z$1.string().nullable(),transparentColor:z$1.array(z$1.number().describe("One of R G or B (0 - 255).")).length(3).describe("Determines the color to be set to opacity 0").nullable().optional(),index:z$1.number().describe("The index of the layer among the array of layers available in the image file."),opacity:z$1.number(),modelMatrix:z$1.array(z$1.number()).length(16).describe("transformation matrix for this layer").optional(),domainType:z$1.enum(["Full","Min/Max"]).describe("Determines the extent of the channel slider input element in the layer controller.").optional(),resolution:z$1.number().describe("Resolution of 3D volumetric rendering").optional(),xSlice:z$1.array(z$1.any()).length(2).describe("Slice bounds").nullable().optional(),renderingMode:z$1.string().describe("Rendering mode of 3D volumetric rendering").optional(),ySlice:z$1.array(z$1.any()).length(2).describe("Slice bounds").nullable().optional(),zSlice:z$1.array(z$1.any()).length(2).describe("Slice bounds").nullable().optional(),type:z$1.enum(["raster","bitmask"]).optional(),use3d:z$1.boolean().optional(),visible:z$1.boolean().describe("Determines whether this entire layer will be rendered in the spatial component.").optional()}).strict().describe("The properties of this object are the rendering settings for the raster layer."));z$1.object({visible:z$1.boolean(),stroked:z$1.boolean(),radius:z$1.number(),opacity:z$1.number()});z$1.object({visible:z$1.boolean()});z$1.object({visible:z$1.boolean(),radius:z$1.number(),opacity:z$1.number()});const SETS_DATATYPE_OBS="obs",HIERARCHICAL_SCHEMAS={latestVersion:"0.1.3",schema:obsSetsSchema};var tinycolor={exports:{}};(function(j){(function($){var _e=/^\s+/,et=/\s+$/,tt=0,rt=$.round,nt=$.min,it=$.max,ot=$.random;function At(Xt,cr){if(Xt=Xt||"",cr=cr||{},Xt instanceof At)return Xt;if(!(this instanceof At))return new At(Xt,cr);var ir=ut(Xt);this._originalInput=Xt,this._r=ir.r,this._g=ir.g,this._b=ir.b,this._a=ir.a,this._roundA=rt(100*this._a)/100,this._format=cr.format||ir.format,this._gradientType=cr.gradientType,this._r<1&&(this._r=rt(this._r)),this._g<1&&(this._g=rt(this._g)),this._b<1&&(this._b=rt(this._b)),this._ok=ir.ok,this._tc_id=tt++}At.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var Xt=this.toRgb();return(Xt.r*299+Xt.g*587+Xt.b*114)/1e3},getLuminance:function(){var Xt=this.toRgb(),cr,ir,Qr,Or,Yr,wr;return cr=Xt.r/255,ir=Xt.g/255,Qr=Xt.b/255,cr<=.03928?Or=cr/12.92:Or=$.pow((cr+.055)/1.055,2.4),ir<=.03928?Yr=ir/12.92:Yr=$.pow((ir+.055)/1.055,2.4),Qr<=.03928?wr=Qr/12.92:wr=$.pow((Qr+.055)/1.055,2.4),.2126*Or+.7152*Yr+.0722*wr},setAlpha:function(Xt){return this._a=ar(Xt),this._roundA=rt(100*this._a)/100,this},toHsv:function(){var Xt=Bt(this._r,this._g,this._b);return{h:Xt.h*360,s:Xt.s,v:Xt.v,a:this._a}},toHsvString:function(){var Xt=Bt(this._r,this._g,this._b),cr=rt(Xt.h*360),ir=rt(Xt.s*100),Qr=rt(Xt.v*100);return this._a==1?"hsv("+cr+", "+ir+"%, "+Qr+"%)":"hsva("+cr+", "+ir+"%, "+Qr+"%, "+this._roundA+")"},toHsl:function(){var Xt=dt(this._r,this._g,this._b);return{h:Xt.h*360,s:Xt.s,l:Xt.l,a:this._a}},toHslString:function(){var Xt=dt(this._r,this._g,this._b),cr=rt(Xt.h*360),ir=rt(Xt.s*100),Qr=rt(Xt.l*100);return this._a==1?"hsl("+cr+", "+ir+"%, "+Qr+"%)":"hsla("+cr+", "+ir+"%, "+Qr+"%, "+this._roundA+")"},toHex:function(Xt){return Dt(this._r,this._g,this._b,Xt)},toHexString:function(Xt){return"#"+this.toHex(Xt)},toHex8:function(Xt){return $t(this._r,this._g,this._b,this._a,Xt)},toHex8String:function(Xt){return"#"+this.toHex8(Xt)},toRgb:function(){return{r:rt(this._r),g:rt(this._g),b:rt(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+rt(this._r)+", "+rt(this._g)+", "+rt(this._b)+")":"rgba("+rt(this._r)+", "+rt(this._g)+", "+rt(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:rt(Yt(this._r,255)*100)+"%",g:rt(Yt(this._g,255)*100)+"%",b:rt(Yt(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+rt(Yt(this._r,255)*100)+"%, "+rt(Yt(this._g,255)*100)+"%, "+rt(Yt(this._b,255)*100)+"%)":"rgba("+rt(Yt(this._r,255)*100)+"%, "+rt(Yt(this._g,255)*100)+"%, "+rt(Yt(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:hr[Dt(this._r,this._g,this._b,!0)]||!1},toFilter:function(Xt){var cr="#"+Rt(this._r,this._g,this._b,this._a),ir=cr,Qr=this._gradientType?"GradientType = 1, ":"";if(Xt){var Or=At(Xt);ir="#"+Rt(Or._r,Or._g,Or._b,Or._a)}return"progid:DXImageTransform.Microsoft.gradient("+Qr+"startColorstr="+cr+",endColorstr="+ir+")"},toString:function(Xt){var cr=!!Xt;Xt=Xt||this._format;var ir=!1,Qr=this._a<1&&this._a>=0,Or=!cr&&Qr&&(Xt==="hex"||Xt==="hex6"||Xt==="hex3"||Xt==="hex4"||Xt==="hex8"||Xt==="name");return Or?Xt==="name"&&this._a===0?this.toName():this.toRgbString():(Xt==="rgb"&&(ir=this.toRgbString()),Xt==="prgb"&&(ir=this.toPercentageRgbString()),(Xt==="hex"||Xt==="hex6")&&(ir=this.toHexString()),Xt==="hex3"&&(ir=this.toHexString(!0)),Xt==="hex4"&&(ir=this.toHex8String(!0)),Xt==="hex8"&&(ir=this.toHex8String()),Xt==="name"&&(ir=this.toName()),Xt==="hsl"&&(ir=this.toHslString()),Xt==="hsv"&&(ir=this.toHsvString()),ir||this.toHexString())},clone:function(){return At(this.toString())},_applyModification:function(Xt,cr){var ir=Xt.apply(null,[this].concat([].slice.call(cr)));return this._r=ir._r,this._g=ir._g,this._b=ir._b,this.setAlpha(ir._a),this},lighten:function(){return this._applyModification(Ot,arguments)},brighten:function(){return this._applyModification(kt,arguments)},darken:function(){return this._applyModification(Jt,arguments)},desaturate:function(){return this._applyModification(wt,arguments)},saturate:function(){return this._applyModification(xt,arguments)},greyscale:function(){return this._applyModification(Nt,arguments)},spin:function(){return this._applyModification(jt,arguments)},_applyCombination:function(Xt,cr){return Xt.apply(null,[this].concat([].slice.call(cr)))},analogous:function(){return this._applyCombination(Vt,arguments)},complement:function(){return this._applyCombination(Ht,arguments)},monochromatic:function(){return this._applyCombination(ur,arguments)},splitcomplement:function(){return this._applyCombination(Wt,arguments)},triad:function(){return this._applyCombination(Gt,arguments)},tetrad:function(){return this._applyCombination(Kt,arguments)}},At.fromRatio=function(Xt,cr){if(typeof Xt=="object"){var ir={};for(var Qr in Xt)Xt.hasOwnProperty(Qr)&&(Qr==="a"?ir[Qr]=Xt[Qr]:ir[Qr]=Er(Xt[Qr]));Xt=ir}return At(Xt,cr)};function ut(Xt){var cr={r:0,g:0,b:0},ir=1,Qr=null,Or=null,Yr=null,wr=!1,rr=!1;return typeof Xt=="string"&&(Xt=Fr(Xt)),typeof Xt=="object"&&(xr(Xt.r)&&xr(Xt.g)&&xr(Xt.b)?(cr=ft(Xt.r,Xt.g,Xt.b),wr=!0,rr=String(Xt.r).substr(-1)==="%"?"prgb":"rgb"):xr(Xt.h)&&xr(Xt.s)&&xr(Xt.v)?(Qr=Er(Xt.s),Or=Er(Xt.v),cr=St(Xt.h,Qr,Or),wr=!0,rr="hsv"):xr(Xt.h)&&xr(Xt.s)&&xr(Xt.l)&&(Qr=Er(Xt.s),Yr=Er(Xt.l),cr=Et(Xt.h,Qr,Yr),wr=!0,rr="hsl"),Xt.hasOwnProperty("a")&&(ir=Xt.a)),ir=ar(ir),{ok:wr,format:Xt.format||rr,r:nt(255,it(cr.r,0)),g:nt(255,it(cr.g,0)),b:nt(255,it(cr.b,0)),a:ir}}function ft(Xt,cr,ir){return{r:Yt(Xt,255)*255,g:Yt(cr,255)*255,b:Yt(ir,255)*255}}function dt(Xt,cr,ir){Xt=Yt(Xt,255),cr=Yt(cr,255),ir=Yt(ir,255);var Qr=it(Xt,cr,ir),Or=nt(Xt,cr,ir),Yr,wr,rr=(Qr+Or)/2;if(Qr==Or)Yr=wr=0;else{var er=Qr-Or;switch(wr=rr>.5?er/(2-Qr-Or):er/(Qr+Or),Qr){case Xt:Yr=(cr-ir)/er+(cr1&&(yr-=1),yr<1/6?lr+(fr-lr)*6*yr:yr<1/2?fr:yr<2/3?lr+(fr-lr)*(2/3-yr)*6:lr}if(cr===0)Qr=Or=Yr=ir;else{var rr=ir<.5?ir*(1+cr):ir+cr-ir*cr,er=2*ir-rr;Qr=wr(er,rr,Xt+1/3),Or=wr(er,rr,Xt),Yr=wr(er,rr,Xt-1/3)}return{r:Qr*255,g:Or*255,b:Yr*255}}function Bt(Xt,cr,ir){Xt=Yt(Xt,255),cr=Yt(cr,255),ir=Yt(ir,255);var Qr=it(Xt,cr,ir),Or=nt(Xt,cr,ir),Yr,wr,rr=Qr,er=Qr-Or;if(wr=Qr===0?0:er/Qr,Qr==Or)Yr=0;else{switch(Qr){case Xt:Yr=(cr-ir)/er+(cr>1)+720)%360;--cr;)Qr.h=(Qr.h+Or)%360,Yr.push(At(Qr));return Yr}function ur(Xt,cr){cr=cr||6;for(var ir=At(Xt).toHsv(),Qr=ir.h,Or=ir.s,Yr=ir.v,wr=[],rr=1/cr;cr--;)wr.push(At({h:Qr,s:Or,v:Yr})),Yr=(Yr+rr)%1;return wr}At.mix=function(Xt,cr,ir){ir=ir===0?0:ir||50;var Qr=At(Xt).toRgb(),Or=At(cr).toRgb(),Yr=ir/100,wr={r:(Or.r-Qr.r)*Yr+Qr.r,g:(Or.g-Qr.g)*Yr+Qr.g,b:(Or.b-Qr.b)*Yr+Qr.b,a:(Or.a-Qr.a)*Yr+Qr.a};return At(wr)},At.readability=function(Xt,cr){var ir=At(Xt),Qr=At(cr);return($.max(ir.getLuminance(),Qr.getLuminance())+.05)/($.min(ir.getLuminance(),Qr.getLuminance())+.05)},At.isReadable=function(Xt,cr,ir){var Qr=At.readability(Xt,cr),Or,Yr;switch(Yr=!1,Or=Nr(ir),Or.level+Or.size){case"AAsmall":case"AAAlarge":Yr=Qr>=4.5;break;case"AAlarge":Yr=Qr>=3;break;case"AAAsmall":Yr=Qr>=7;break}return Yr},At.mostReadable=function(Xt,cr,ir){var Qr=null,Or=0,Yr,wr,rr,er;ir=ir||{},wr=ir.includeFallbackColors,rr=ir.level,er=ir.size;for(var lr=0;lrOr&&(Or=Yr,Qr=At(cr[lr]));return At.isReadable(Xt,Qr,{level:rr,size:er})||!wr?Qr:(ir.includeFallbackColors=!1,At.mostReadable(Xt,["#fff","#000"],ir))};var Ar=At.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},hr=At.hexNames=sr(Ar);function sr(Xt){var cr={};for(var ir in Xt)Xt.hasOwnProperty(ir)&&(cr[Xt[ir]]=ir);return cr}function ar(Xt){return Xt=parseFloat(Xt),(isNaN(Xt)||Xt<0||Xt>1)&&(Xt=1),Xt}function Yt(Xt,cr){mr(Xt)&&(Xt="100%");var ir=vr(Xt);return Xt=nt(cr,it(0,parseFloat(Xt))),ir&&(Xt=parseInt(Xt*cr,10)/100),$.abs(Xt-cr)<1e-6?1:Xt%cr/parseFloat(cr)}function pr(Xt){return nt(1,it(0,Xt))}function Zt(Xt){return parseInt(Xt,16)}function mr(Xt){return typeof Xt=="string"&&Xt.indexOf(".")!=-1&&parseFloat(Xt)===1}function vr(Xt){return typeof Xt=="string"&&Xt.indexOf("%")!=-1}function _r(Xt){return Xt.length==1?"0"+Xt:""+Xt}function Er(Xt){return Xt<=1&&(Xt=Xt*100+"%"),Xt}function Lr(Xt){return $.round(parseFloat(Xt)*255).toString(16)}function Rr(Xt){return Zt(Xt)/255}var $r=function(){var Xt="[-\\+]?\\d+%?",cr="[-\\+]?\\d*\\.\\d+%?",ir="(?:"+cr+")|(?:"+Xt+")",Qr="[\\s|\\(]+("+ir+")[,|\\s]+("+ir+")[,|\\s]+("+ir+")\\s*\\)?",Or="[\\s|\\(]+("+ir+")[,|\\s]+("+ir+")[,|\\s]+("+ir+")[,|\\s]+("+ir+")\\s*\\)?";return{CSS_UNIT:new RegExp(ir),rgb:new RegExp("rgb"+Qr),rgba:new RegExp("rgba"+Or),hsl:new RegExp("hsl"+Qr),hsla:new RegExp("hsla"+Or),hsv:new RegExp("hsv"+Qr),hsva:new RegExp("hsva"+Or),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function xr(Xt){return!!$r.CSS_UNIT.exec(Xt)}function Fr(Xt){Xt=Xt.replace(_e,"").replace(et,"").toLowerCase();var cr=!1;if(Ar[Xt])Xt=Ar[Xt],cr=!0;else if(Xt=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var ir;return(ir=$r.rgb.exec(Xt))?{r:ir[1],g:ir[2],b:ir[3]}:(ir=$r.rgba.exec(Xt))?{r:ir[1],g:ir[2],b:ir[3],a:ir[4]}:(ir=$r.hsl.exec(Xt))?{h:ir[1],s:ir[2],l:ir[3]}:(ir=$r.hsla.exec(Xt))?{h:ir[1],s:ir[2],l:ir[3],a:ir[4]}:(ir=$r.hsv.exec(Xt))?{h:ir[1],s:ir[2],v:ir[3]}:(ir=$r.hsva.exec(Xt))?{h:ir[1],s:ir[2],v:ir[3],a:ir[4]}:(ir=$r.hex8.exec(Xt))?{r:Zt(ir[1]),g:Zt(ir[2]),b:Zt(ir[3]),a:Rr(ir[4]),format:cr?"name":"hex8"}:(ir=$r.hex6.exec(Xt))?{r:Zt(ir[1]),g:Zt(ir[2]),b:Zt(ir[3]),format:cr?"name":"hex"}:(ir=$r.hex4.exec(Xt))?{r:Zt(ir[1]+""+ir[1]),g:Zt(ir[2]+""+ir[2]),b:Zt(ir[3]+""+ir[3]),a:Rr(ir[4]+""+ir[4]),format:cr?"name":"hex8"}:(ir=$r.hex3.exec(Xt))?{r:Zt(ir[1]+""+ir[1]),g:Zt(ir[2]+""+ir[2]),b:Zt(ir[3]+""+ir[3]),format:cr?"name":"hex"}:!1}function Nr(Xt){var cr,ir;return Xt=Xt||{level:"AA",size:"small"},cr=(Xt.level||"AA").toUpperCase(),ir=(Xt.size||"small").toLowerCase(),cr!=="AA"&&cr!=="AAA"&&(cr="AA"),ir!=="small"&&ir!=="large"&&(ir="small"),{level:cr,size:ir}}j.exports?j.exports=At:window.tinycolor=At})(Math)})(tinycolor);function nodeToSet(j){return j?j.children?j.children.flatMap($=>nodeToSet($)):j.set||[]:[]}function nodeToHeight(j,$=0){if(!j.children)return $;const _e=$+1,et=j.children.map(tt=>nodeToHeight(tt,_e));return Math.max(...et,_e)}function nodeFindNodeByNamePath(j,$,_e){const et=$[_e];if(j.name===et){if(_e===$.length-1)return j;if(j.children){const tt=j.children.map(rt=>nodeFindNodeByNamePath(rt,$,_e+1)).filter(Boolean);if(tt.length===1)return tt[0]}}return null}function treeFindNodeByNamePath(j,$){const _e=j.tree.map(et=>nodeFindNodeByNamePath(et,$,0)).filter(Boolean);return _e.length===1?_e[0]:null}function nodeAppendChild(j,$){return{...j,children:[...j.children,$]}}function nodeToLevelDescendantNamePaths(j,$,_e,et=!1){return j.children?$===0?[[..._e,j.name]]:j.children.flatMap(tt=>nodeToLevelDescendantNamePaths(tt,$-1,[..._e,j.name],et)).filter(Boolean):et?[[..._e,j.name]]:null}function treeInitialize(j){return{version:HIERARCHICAL_SCHEMAS.latestVersion,datatype:j,tree:[]}}function initializeCellSetColor(j,$){const _e=[...$||[]],et=j.tree.map(rt=>Array.from({length:nodeToHeight(rt)+1}).fill(0));function tt(rt,nt,it,ot){const At=et[ot][it],ut=[...nt,rt.name];if(!_e.find(dt=>isEqual$1(dt.path,ut))){const dt=rt.color?rt.color:PALETTE[At%PALETTE.length];_e.push({path:ut,color:dt})}et[ot][it]+=1,rt.children&&rt.children.forEach(dt=>tt(dt,ut,it+1,ot))}return j.tree.forEach((rt,nt)=>tt(rt,[],0,nt)),_e}function treeToMembershipMap(j){const $=new Map;return j&&j.tree.forEach(_e=>{const et=nodeToHeight(_e);range$5(et).forEach(tt=>{const rt=tt+1;nodeToLevelDescendantNamePaths(_e,rt,[],!0).forEach(it=>{const ot=treeFindNodeByNamePath(j,it);ot&&!ot.children&&nodeToSet(ot).forEach(([ut])=>{$.has(ut)?$.get(ut).push(it):$.set(ut,[it])})})})}),$}var json2csv_umd={exports:{}};(function(j,$){(function(_e,et){et($)})(commonjsGlobal,function(_e){var et;function tt(){}tt.prototype=Object.create(null);function rt(){rt.init.call(this)}rt.EventEmitter=rt,rt.usingDomains=!1,rt.prototype.domain=void 0,rt.prototype._events=void 0,rt.prototype._maxListeners=void 0,rt.defaultMaxListeners=10,rt.init=function(){this.domain=null,rt.usingDomains&&et.active,(!this._events||this._events===Object.getPrototypeOf(this)._events)&&(this._events=new tt,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},rt.prototype.setMaxListeners=function(pt){if(typeof pt!="number"||pt<0||isNaN(pt))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=pt,this};function nt(It){return It._maxListeners===void 0?rt.defaultMaxListeners:It._maxListeners}rt.prototype.getMaxListeners=function(){return nt(this)};function it(It,pt,yt){if(pt)It.call(yt);else for(var Lt=It.length,qt=$t(It,Lt),tr=0;tr0&&or.length>qt)){or.warned=!0;var Tr=new Error("Possible EventEmitter memory leak detected. "+or.length+" "+pt+" listeners added. Use emitter.setMaxListeners() to increase limit");Tr.name="MaxListenersExceededWarning",Tr.emitter=It,Tr.type=pt,Tr.count=or.length,Et(Tr)}return It}function Et(It){typeof console.warn=="function"?console.warn(It):console.log(It)}rt.prototype.addListener=function(pt,yt){return dt(this,pt,yt,!1)},rt.prototype.on=rt.prototype.addListener,rt.prototype.prependListener=function(pt,yt){return dt(this,pt,yt,!0)};function Bt(It,pt,yt){var Lt=!1;function qt(){It.removeListener(pt,qt),Lt||(Lt=!0,yt.apply(It,arguments))}return qt.listener=yt,qt}rt.prototype.once=function(pt,yt){if(typeof yt!="function")throw new TypeError('"listener" argument must be a function');return this.on(pt,Bt(this,pt,yt)),this},rt.prototype.prependOnceListener=function(pt,yt){if(typeof yt!="function")throw new TypeError('"listener" argument must be a function');return this.prependListener(pt,Bt(this,pt,yt)),this},rt.prototype.removeListener=function(pt,yt){var Lt,qt,tr,or,Tr;if(typeof yt!="function")throw new TypeError('"listener" argument must be a function');if(qt=this._events,!qt)return this;if(Lt=qt[pt],!Lt)return this;if(Lt===yt||Lt.listener&&Lt.listener===yt)--this._eventsCount===0?this._events=new tt:(delete qt[pt],qt.removeListener&&this.emit("removeListener",pt,Lt.listener||yt));else if(typeof Lt!="function"){for(tr=-1,or=Lt.length;or-- >0;)if(Lt[or]===yt||Lt[or].listener&&Lt[or].listener===yt){Tr=Lt[or].listener,tr=or;break}if(tr<0)return this;if(Lt.length===1){if(Lt[0]=void 0,--this._eventsCount===0)return this._events=new tt,this;delete qt[pt]}else Dt(Lt,tr);qt.removeListener&&this.emit("removeListener",pt,Tr||yt)}return this},rt.prototype.removeAllListeners=function(pt){var yt,Lt;if(Lt=this._events,!Lt)return this;if(!Lt.removeListener)return arguments.length===0?(this._events=new tt,this._eventsCount=0):Lt[pt]&&(--this._eventsCount===0?this._events=new tt:delete Lt[pt]),this;if(arguments.length===0){for(var qt=Object.keys(Lt),tr=0,or;tr0?Reflect.ownKeys(this._events):[]};function Dt(It,pt){for(var yt=pt,Lt=yt+1,qt=It.length;Lt0)throw new Error("Invalid string. Length must be a multiple of 4");tr=It[Tr-2]==="="?2:It[Tr-1]==="="?1:0,or=new Ot(Tr*3/4-tr),Lt=tr>0?Tr-4:Tr;var jr=0;for(pt=0,yt=0;pt>16&255,or[jr++]=qt>>8&255,or[jr++]=qt&255;return tr===2?(qt=Nt[It.charCodeAt(pt)]<<2|Nt[It.charCodeAt(pt+1)]>>4,or[jr++]=qt&255):tr===1&&(qt=Nt[It.charCodeAt(pt)]<<10|Nt[It.charCodeAt(pt+1)]<<4|Nt[It.charCodeAt(pt+2)]>>2,or[jr++]=qt>>8&255,or[jr++]=qt&255),or}function Ht(It){return xt[It>>18&63]+xt[It>>12&63]+xt[It>>6&63]+xt[It&63]}function Gt(It,pt,yt){for(var Lt,qt=[],tr=pt;trjr?jr:Tr+or));return Lt===1?(pt=It[yt-1],qt+=xt[pt>>2],qt+=xt[pt<<4&63],qt+="=="):Lt===2&&(pt=(It[yt-2]<<8)+It[yt-1],qt+=xt[pt>>10],qt+=xt[pt>>4&63],qt+=xt[pt<<2&63],qt+="="),tr.push(qt),tr.join("")}function Wt(It,pt,yt,Lt,qt){var tr,or,Tr=qt*8-Lt-1,jr=(1<>1,fn=-7,Bn=yt?qt-1:0,Zn=yt?-1:1,Gn=It[pt+Bn];for(Bn+=Zn,tr=Gn&(1<<-fn)-1,Gn>>=-fn,fn+=Tr;fn>0;tr=tr*256+It[pt+Bn],Bn+=Zn,fn-=8);for(or=tr&(1<<-fn)-1,tr>>=-fn,fn+=Lt;fn>0;or=or*256+It[pt+Bn],Bn+=Zn,fn-=8);if(tr===0)tr=1-An;else{if(tr===jr)return or?NaN:(Gn?-1:1)*(1/0);or=or+Math.pow(2,Lt),tr=tr-An}return(Gn?-1:1)*or*Math.pow(2,tr-Lt)}function Vt(It,pt,yt,Lt,qt,tr){var or,Tr,jr,An=tr*8-qt-1,fn=(1<>1,Zn=qt===23?Math.pow(2,-24)-Math.pow(2,-77):0,Gn=Lt?0:tr-1,Ks=Lt?1:-1,Fl=pt<0||pt===0&&1/pt<0?1:0;for(pt=Math.abs(pt),isNaN(pt)||pt===1/0?(Tr=isNaN(pt)?1:0,or=fn):(or=Math.floor(Math.log(pt)/Math.LN2),pt*(jr=Math.pow(2,-or))<1&&(or--,jr*=2),or+Bn>=1?pt+=Zn/jr:pt+=Zn*Math.pow(2,1-Bn),pt*jr>=2&&(or++,jr/=2),or+Bn>=fn?(Tr=0,or=fn):or+Bn>=1?(Tr=(pt*jr-1)*Math.pow(2,qt),or=or+Bn):(Tr=pt*Math.pow(2,Bn-1)*Math.pow(2,qt),or=0));qt>=8;It[yt+Gn]=Tr&255,Gn+=Ks,Tr/=256,qt-=8);for(or=or<0;It[yt+Gn]=or&255,Gn+=Ks,or/=256,An-=8);It[yt+Gn-Ks]|=Fl*128}var ur={}.toString,Ar=Array.isArray||function(It){return ur.call(It)=="[object Array]"},hr=50;Yt.TYPED_ARRAY_SUPPORT=wt.TYPED_ARRAY_SUPPORT!==void 0?wt.TYPED_ARRAY_SUPPORT:!0;function sr(){return Yt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function ar(It,pt){if(sr()=sr())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+sr().toString(16)+" bytes");return It|0}Yt.isBuffer=rs;function xr(It){return!!(It!=null&&It._isBuffer)}Yt.compare=function(pt,yt){if(!xr(pt)||!xr(yt))throw new TypeError("Arguments must be Buffers");if(pt===yt)return 0;for(var Lt=pt.length,qt=yt.length,tr=0,or=Math.min(Lt,qt);tr>>1;case"base64":return Co(It).length;default:if(Lt)return Ao(It).length;pt=(""+pt).toLowerCase(),Lt=!0}}Yt.byteLength=Fr;function Nr(It,pt,yt){var Lt=!1;if((pt===void 0||pt<0)&&(pt=0),pt>this.length||((yt===void 0||yt>this.length)&&(yt=this.length),yt<=0)||(yt>>>=0,pt>>>=0,yt<=pt))return"";for(It||(It="utf8");;)switch(It){case"hex":return Zr(this,pt,yt);case"utf8":case"utf-8":return fr(this,pt,yt);case"ascii":return Wr(this,pt,yt);case"latin1":case"binary":return Pr(this,pt,yt);case"base64":return lr(this,pt,yt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return rn(this,pt,yt);default:if(Lt)throw new TypeError("Unknown encoding: "+It);It=(It+"").toLowerCase(),Lt=!0}}Yt.prototype._isBuffer=!0;function Xt(It,pt,yt){var Lt=It[pt];It[pt]=It[yt],It[yt]=Lt}Yt.prototype.swap16=function(){var pt=this.length;if(pt%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var yt=0;yt0&&(pt=this.toString("hex",0,yt).match(/.{2}/g).join(" "),this.length>yt&&(pt+=" ... ")),""},Yt.prototype.compare=function(pt,yt,Lt,qt,tr){if(!xr(pt))throw new TypeError("Argument must be a Buffer");if(yt===void 0&&(yt=0),Lt===void 0&&(Lt=pt?pt.length:0),qt===void 0&&(qt=0),tr===void 0&&(tr=this.length),yt<0||Lt>pt.length||qt<0||tr>this.length)throw new RangeError("out of range index");if(qt>=tr&&yt>=Lt)return 0;if(qt>=tr)return-1;if(yt>=Lt)return 1;if(yt>>>=0,Lt>>>=0,qt>>>=0,tr>>>=0,this===pt)return 0;for(var or=tr-qt,Tr=Lt-yt,jr=Math.min(or,Tr),An=this.slice(qt,tr),fn=pt.slice(yt,Lt),Bn=0;Bn2147483647?yt=2147483647:yt<-2147483648&&(yt=-2147483648),yt=+yt,isNaN(yt)&&(yt=qt?0:It.length-1),yt<0&&(yt=It.length+yt),yt>=It.length){if(qt)return-1;yt=It.length-1}else if(yt<0)if(qt)yt=0;else return-1;if(typeof pt=="string"&&(pt=Yt.from(pt,Lt)),xr(pt))return pt.length===0?-1:ir(It,pt,yt,Lt,qt);if(typeof pt=="number")return pt=pt&255,Yt.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?qt?Uint8Array.prototype.indexOf.call(It,pt,yt):Uint8Array.prototype.lastIndexOf.call(It,pt,yt):ir(It,[pt],yt,Lt,qt);throw new TypeError("val must be string, number or Buffer")}function ir(It,pt,yt,Lt,qt){var tr=1,or=It.length,Tr=pt.length;if(Lt!==void 0&&(Lt=String(Lt).toLowerCase(),Lt==="ucs2"||Lt==="ucs-2"||Lt==="utf16le"||Lt==="utf-16le")){if(It.length<2||pt.length<2)return-1;tr=2,or/=2,Tr/=2,yt/=2}function jr(Gn,Ks){return tr===1?Gn[Ks]:Gn.readUInt16BE(Ks*tr)}var An;if(qt){var fn=-1;for(An=yt;Anor&&(yt=or-Tr),An=yt;An>=0;An--){for(var Bn=!0,Zn=0;Znqt&&(Lt=qt)):Lt=qt;var tr=pt.length;if(tr%2!==0)throw new TypeError("Invalid hex string");Lt>tr/2&&(Lt=tr/2);for(var or=0;ortr)&&(Lt=tr),pt.length>0&&(Lt<0||yt<0)||yt>this.length)throw new RangeError("Attempt to write outside buffer bounds");qt||(qt="utf8");for(var or=!1;;)switch(qt){case"hex":return Qr(this,pt,yt,Lt);case"utf8":case"utf-8":return Or(this,pt,yt,Lt);case"ascii":return Yr(this,pt,yt,Lt);case"latin1":case"binary":return wr(this,pt,yt,Lt);case"base64":return rr(this,pt,yt,Lt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return er(this,pt,yt,Lt);default:if(or)throw new TypeError("Unknown encoding: "+qt);qt=(""+qt).toLowerCase(),or=!0}},Yt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function lr(It,pt,yt){return pt===0&&yt===It.length?Kt(It):Kt(It.slice(pt,yt))}function fr(It,pt,yt){yt=Math.min(It.length,yt);for(var Lt=[],qt=pt;qt239?4:tr>223?3:tr>191?2:1;if(qt+Tr<=yt){var jr,An,fn,Bn;switch(Tr){case 1:tr<128&&(or=tr);break;case 2:jr=It[qt+1],(jr&192)===128&&(Bn=(tr&31)<<6|jr&63,Bn>127&&(or=Bn));break;case 3:jr=It[qt+1],An=It[qt+2],(jr&192)===128&&(An&192)===128&&(Bn=(tr&15)<<12|(jr&63)<<6|An&63,Bn>2047&&(Bn<55296||Bn>57343)&&(or=Bn));break;case 4:jr=It[qt+1],An=It[qt+2],fn=It[qt+3],(jr&192)===128&&(An&192)===128&&(fn&192)===128&&(Bn=(tr&15)<<18|(jr&63)<<12|(An&63)<<6|fn&63,Bn>65535&&Bn<1114112&&(or=Bn))}}or===null?(or=65533,Tr=1):or>65535&&(or-=65536,Lt.push(or>>>10&1023|55296),or=56320|or&1023),Lt.push(or),qt+=Tr}return Ur(Lt)}var yr=4096;function Ur(It){var pt=It.length;if(pt<=yr)return String.fromCharCode.apply(String,It);for(var yt="",Lt=0;LtLt)&&(yt=Lt);for(var qt="",tr=pt;trLt&&(pt=Lt),yt<0?(yt+=Lt,yt<0&&(yt=0)):yt>Lt&&(yt=Lt),ytyt)throw new RangeError("Trying to access beyond buffer length")}Yt.prototype.readUIntLE=function(pt,yt,Lt){pt=pt|0,yt=yt|0,Lt||on(pt,yt,this.length);for(var qt=this[pt],tr=1,or=0;++or0&&(tr*=256);)qt+=this[pt+--yt]*tr;return qt},Yt.prototype.readUInt8=function(pt,yt){return yt||on(pt,1,this.length),this[pt]},Yt.prototype.readUInt16LE=function(pt,yt){return yt||on(pt,2,this.length),this[pt]|this[pt+1]<<8},Yt.prototype.readUInt16BE=function(pt,yt){return yt||on(pt,2,this.length),this[pt]<<8|this[pt+1]},Yt.prototype.readUInt32LE=function(pt,yt){return yt||on(pt,4,this.length),(this[pt]|this[pt+1]<<8|this[pt+2]<<16)+this[pt+3]*16777216},Yt.prototype.readUInt32BE=function(pt,yt){return yt||on(pt,4,this.length),this[pt]*16777216+(this[pt+1]<<16|this[pt+2]<<8|this[pt+3])},Yt.prototype.readIntLE=function(pt,yt,Lt){pt=pt|0,yt=yt|0,Lt||on(pt,yt,this.length);for(var qt=this[pt],tr=1,or=0;++or=tr&&(qt-=Math.pow(2,8*yt)),qt},Yt.prototype.readIntBE=function(pt,yt,Lt){pt=pt|0,yt=yt|0,Lt||on(pt,yt,this.length);for(var qt=yt,tr=1,or=this[pt+--qt];qt>0&&(tr*=256);)or+=this[pt+--qt]*tr;return tr*=128,or>=tr&&(or-=Math.pow(2,8*yt)),or},Yt.prototype.readInt8=function(pt,yt){return yt||on(pt,1,this.length),this[pt]&128?(255-this[pt]+1)*-1:this[pt]},Yt.prototype.readInt16LE=function(pt,yt){yt||on(pt,2,this.length);var Lt=this[pt]|this[pt+1]<<8;return Lt&32768?Lt|4294901760:Lt},Yt.prototype.readInt16BE=function(pt,yt){yt||on(pt,2,this.length);var Lt=this[pt+1]|this[pt]<<8;return Lt&32768?Lt|4294901760:Lt},Yt.prototype.readInt32LE=function(pt,yt){return yt||on(pt,4,this.length),this[pt]|this[pt+1]<<8|this[pt+2]<<16|this[pt+3]<<24},Yt.prototype.readInt32BE=function(pt,yt){return yt||on(pt,4,this.length),this[pt]<<24|this[pt+1]<<16|this[pt+2]<<8|this[pt+3]},Yt.prototype.readFloatLE=function(pt,yt){return yt||on(pt,4,this.length),Wt(this,pt,!0,23,4)},Yt.prototype.readFloatBE=function(pt,yt){return yt||on(pt,4,this.length),Wt(this,pt,!1,23,4)},Yt.prototype.readDoubleLE=function(pt,yt){return yt||on(pt,8,this.length),Wt(this,pt,!0,52,8)},Yt.prototype.readDoubleBE=function(pt,yt){return yt||on(pt,8,this.length),Wt(this,pt,!1,52,8)};function In(It,pt,yt,Lt,qt,tr){if(!xr(It))throw new TypeError('"buffer" argument must be a Buffer instance');if(pt>qt||ptIt.length)throw new RangeError("Index out of range")}Yt.prototype.writeUIntLE=function(pt,yt,Lt,qt){if(pt=+pt,yt=yt|0,Lt=Lt|0,!qt){var tr=Math.pow(2,8*Lt)-1;In(this,pt,yt,Lt,tr,0)}var or=1,Tr=0;for(this[yt]=pt&255;++Tr=0&&(Tr*=256);)this[yt+or]=pt/Tr&255;return yt+Lt},Yt.prototype.writeUInt8=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,1,255,0),Yt.TYPED_ARRAY_SUPPORT||(pt=Math.floor(pt)),this[yt]=pt&255,yt+1};function Sn(It,pt,yt,Lt){pt<0&&(pt=65535+pt+1);for(var qt=0,tr=Math.min(It.length-yt,2);qt>>(Lt?qt:1-qt)*8}Yt.prototype.writeUInt16LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,65535,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt&255,this[yt+1]=pt>>>8):Sn(this,pt,yt,!0),yt+2},Yt.prototype.writeUInt16BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,65535,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>8,this[yt+1]=pt&255):Sn(this,pt,yt,!1),yt+2};function un(It,pt,yt,Lt){pt<0&&(pt=4294967295+pt+1);for(var qt=0,tr=Math.min(It.length-yt,4);qt>>(Lt?qt:3-qt)*8&255}Yt.prototype.writeUInt32LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,4294967295,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt+3]=pt>>>24,this[yt+2]=pt>>>16,this[yt+1]=pt>>>8,this[yt]=pt&255):un(this,pt,yt,!0),yt+4},Yt.prototype.writeUInt32BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,4294967295,0),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>24,this[yt+1]=pt>>>16,this[yt+2]=pt>>>8,this[yt+3]=pt&255):un(this,pt,yt,!1),yt+4},Yt.prototype.writeIntLE=function(pt,yt,Lt,qt){if(pt=+pt,yt=yt|0,!qt){var tr=Math.pow(2,8*Lt-1);In(this,pt,yt,Lt,tr-1,-tr)}var or=0,Tr=1,jr=0;for(this[yt]=pt&255;++or>0)-jr&255;return yt+Lt},Yt.prototype.writeIntBE=function(pt,yt,Lt,qt){if(pt=+pt,yt=yt|0,!qt){var tr=Math.pow(2,8*Lt-1);In(this,pt,yt,Lt,tr-1,-tr)}var or=Lt-1,Tr=1,jr=0;for(this[yt+or]=pt&255;--or>=0&&(Tr*=256);)pt<0&&jr===0&&this[yt+or+1]!==0&&(jr=1),this[yt+or]=(pt/Tr>>0)-jr&255;return yt+Lt},Yt.prototype.writeInt8=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,1,127,-128),Yt.TYPED_ARRAY_SUPPORT||(pt=Math.floor(pt)),pt<0&&(pt=255+pt+1),this[yt]=pt&255,yt+1},Yt.prototype.writeInt16LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,32767,-32768),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt&255,this[yt+1]=pt>>>8):Sn(this,pt,yt,!0),yt+2},Yt.prototype.writeInt16BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,2,32767,-32768),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>8,this[yt+1]=pt&255):Sn(this,pt,yt,!1),yt+2},Yt.prototype.writeInt32LE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,2147483647,-2147483648),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt&255,this[yt+1]=pt>>>8,this[yt+2]=pt>>>16,this[yt+3]=pt>>>24):un(this,pt,yt,!0),yt+4},Yt.prototype.writeInt32BE=function(pt,yt,Lt){return pt=+pt,yt=yt|0,Lt||In(this,pt,yt,4,2147483647,-2147483648),pt<0&&(pt=4294967295+pt+1),Yt.TYPED_ARRAY_SUPPORT?(this[yt]=pt>>>24,this[yt+1]=pt>>>16,this[yt+2]=pt>>>8,this[yt+3]=pt&255):un(this,pt,yt,!1),yt+4};function dn(It,pt,yt,Lt,qt,tr){if(yt+Lt>It.length)throw new RangeError("Index out of range");if(yt<0)throw new RangeError("Index out of range")}function wn(It,pt,yt,Lt,qt){return qt||dn(It,pt,yt,4),Vt(It,pt,yt,Lt,23,4),yt+4}Yt.prototype.writeFloatLE=function(pt,yt,Lt){return wn(this,pt,yt,!0,Lt)},Yt.prototype.writeFloatBE=function(pt,yt,Lt){return wn(this,pt,yt,!1,Lt)};function Nn(It,pt,yt,Lt,qt){return qt||dn(It,pt,yt,8),Vt(It,pt,yt,Lt,52,8),yt+8}Yt.prototype.writeDoubleLE=function(pt,yt,Lt){return Nn(this,pt,yt,!0,Lt)},Yt.prototype.writeDoubleBE=function(pt,yt,Lt){return Nn(this,pt,yt,!1,Lt)},Yt.prototype.copy=function(pt,yt,Lt,qt){if(Lt||(Lt=0),!qt&&qt!==0&&(qt=this.length),yt>=pt.length&&(yt=pt.length),yt||(yt=0),qt>0&&qt=this.length)throw new RangeError("sourceStart out of bounds");if(qt<0)throw new RangeError("sourceEnd out of bounds");qt>this.length&&(qt=this.length),pt.length-yt=0;--or)pt[or+yt]=this[or+Lt];else if(tr<1e3||!Yt.TYPED_ARRAY_SUPPORT)for(or=0;or>>0,Lt=Lt===void 0?this.length:Lt>>>0,pt||(pt=0);var or;if(typeof pt=="number")for(or=yt;or55295&&yt<57344){if(!qt){if(yt>56319){(pt-=3)>-1&&tr.push(239,191,189);continue}else if(or+1===Lt){(pt-=3)>-1&&tr.push(239,191,189);continue}qt=yt;continue}if(yt<56320){(pt-=3)>-1&&tr.push(239,191,189),qt=yt;continue}yt=(qt-55296<<10|yt-56320)+65536}else qt&&(pt-=3)>-1&&tr.push(239,191,189);if(qt=null,yt<128){if((pt-=1)<0)break;tr.push(yt)}else if(yt<2048){if((pt-=2)<0)break;tr.push(yt>>6|192,yt&63|128)}else if(yt<65536){if((pt-=3)<0)break;tr.push(yt>>12|224,yt>>6&63|128,yt&63|128)}else if(yt<1114112){if((pt-=4)<0)break;tr.push(yt>>18|240,yt>>12&63|128,yt>>6&63|128,yt&63|128)}else throw new Error("Invalid code point")}return tr}function go(It){for(var pt=[],yt=0;yt>8,qt=yt%256,tr.push(qt),tr.push(Lt);return tr}function Co(It){return jt(oo(It))}function Lo(It,pt,yt,Lt){for(var qt=0;qt=pt.length||qt>=It.length);++qt)pt[qt+yt]=It[qt];return qt}function Ln(It){return It!==It}function rs(It){return It!=null&&(!!It._isBuffer||Jo(It)||zo(It))}function Jo(It){return!!It.constructor&&typeof It.constructor.isBuffer=="function"&&It.constructor.isBuffer(It)}function zo(It){return typeof It.readFloatLE=="function"&&typeof It.slice=="function"&&Jo(It.slice(0,0))}function qo(){throw new Error("setTimeout has not been defined")}function Js(){throw new Error("clearTimeout has not been defined")}var yo=qo,wo=Js;typeof wt.setTimeout=="function"&&(yo=setTimeout),typeof wt.clearTimeout=="function"&&(wo=clearTimeout);function lo(It){if(yo===setTimeout)return setTimeout(It,0);if((yo===qo||!yo)&&setTimeout)return yo=setTimeout,setTimeout(It,0);try{return yo(It,0)}catch{try{return yo.call(null,It,0)}catch{return yo.call(this,It,0)}}}function nn(It){if(wo===clearTimeout)return clearTimeout(It);if((wo===Js||!wo)&&clearTimeout)return wo=clearTimeout,clearTimeout(It);try{return wo(It)}catch{try{return wo.call(null,It)}catch{return wo.call(this,It)}}}var an=[],Sr=!1,Ir,mt=-1;function gr(){!Sr||!Ir||(Sr=!1,Ir.length?an=Ir.concat(an):mt=-1,an.length&&Hr())}function Hr(){if(!Sr){var It=lo(gr);Sr=!0;for(var pt=an.length;pt;){for(Ir=an,an=[];++mt1)for(var yt=1;yt=qt)return Tr;switch(Tr){case"%s":return String(Lt[yt++]);case"%d":return Number(Lt[yt++]);case"%j":try{return JSON.stringify(Lt[yt++])}catch{return"[Circular]"}default:return Tr}}),or=Lt[yt];yt=3&&(yt.depth=arguments[2]),arguments.length>=4&&(yt.colors=arguments[3]),xs(pt)?yt.showHidden=pt:pt&&Vo(yt,pt),Xo(yt.showHidden)&&(yt.showHidden=!1),Xo(yt.depth)&&(yt.depth=2),Xo(yt.colors)&&(yt.colors=!1),Xo(yt.customInspect)&&(yt.customInspect=!0),yt.colors&&(yt.stylize=Io),$n(yt,It,yt.depth)}kn.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},kn.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function Io(It,pt){var yt=kn.styles[pt];return yt?"\x1B["+kn.colors[yt][0]+"m"+It+"\x1B["+kn.colors[yt][1]+"m":It}function To(It,pt){return It}function Fo(It){var pt={};return It.forEach(function(yt,Lt){pt[yt]=!0}),pt}function $n(It,pt,yt){if(It.customInspect&&pt&&MA(pt.inspect)&&pt.inspect!==kn&&!(pt.constructor&&pt.constructor.prototype===pt)){var Lt=pt.inspect(yt,It);return Vn(Lt)||(Lt=$n(It,Lt,yt)),Lt}var qt=zr(It,pt);if(qt)return qt;var tr=Object.keys(pt),or=Fo(tr);if(It.showHidden&&(tr=Object.getOwnPropertyNames(pt)),lA(pt)&&(tr.indexOf("message")>=0||tr.indexOf("description")>=0))return _i(pt);if(tr.length===0){if(MA(pt)){var Tr=pt.name?": "+pt.name:"";return It.stylize("[Function"+Tr+"]","special")}if(Oo(pt))return It.stylize(RegExp.prototype.toString.call(pt),"regexp");if(Un(pt))return It.stylize(Date.prototype.toString.call(pt),"date");if(lA(pt))return _i(pt)}var jr="",An=!1,fn=["{","}"];if(jA(pt)&&(An=!0,fn=["[","]"]),MA(pt)){var Bn=pt.name?": "+pt.name:"";jr=" [Function"+Bn+"]"}if(Oo(pt)&&(jr=" "+RegExp.prototype.toString.call(pt)),Un(pt)&&(jr=" "+Date.prototype.toUTCString.call(pt)),lA(pt)&&(jr=" "+_i(pt)),tr.length===0&&(!An||pt.length==0))return fn[0]+jr+fn[1];if(yt<0)return Oo(pt)?It.stylize(RegExp.prototype.toString.call(pt),"regexp"):It.stylize("[Object]","special");It.seen.push(pt);var Zn;return An?Zn=SA(It,pt,yt,or,tr):Zn=tr.map(function(Gn){return Ws(It,pt,yt,or,Gn,An)}),It.seen.pop(),no(Zn,jr,fn)}function zr(It,pt){if(Xo(pt))return It.stylize("undefined","undefined");if(Vn(pt)){var yt="'"+JSON.stringify(pt).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return It.stylize(yt,"string")}if(_l(pt))return It.stylize(""+pt,"number");if(xs(pt))return It.stylize(""+pt,"boolean");if(Mr(pt))return It.stylize("null","null")}function _i(It){return"["+Error.prototype.toString.call(It)+"]"}function SA(It,pt,yt,Lt,qt){for(var tr=[],or=0,Tr=pt.length;or-1&&(tr?Tr=Tr.split(` +`).map(function(An){return" "+An}).join(` +`).substr(2):Tr=` +`+Tr.split(` +`).map(function(An){return" "+An}).join(` +`))):Tr=It.stylize("[Circular]","special")),Xo(or)){if(tr&&qt.match(/^\d+$/))return Tr;or=JSON.stringify(""+qt),or.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(or=or.substr(1,or.length-2),or=It.stylize(or,"name")):(or=or.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),or=It.stylize(or,"string"))}return or+": "+Tr}function no(It,pt,yt){var Lt=It.reduce(function(qt,tr){return tr.indexOf(` +`)>=0,qt+tr.replace(/\u001b\[\d\d?m/g,"").length+1},0);return Lt>60?yt[0]+(pt===""?"":pt+` + `)+" "+It.join(`, + `)+" "+yt[1]:yt[0]+pt+" "+It.join(", ")+" "+yt[1]}function jA(It){return Array.isArray(It)}function xs(It){return typeof It=="boolean"}function Mr(It){return It===null}function _l(It){return typeof It=="number"}function Vn(It){return typeof It=="string"}function Xo(It){return It===void 0}function Oo(It){return eA(It)&&oA(It)==="[object RegExp]"}function eA(It){return typeof It=="object"&&It!==null}function Un(It){return eA(It)&&oA(It)==="[object Date]"}function lA(It){return eA(It)&&(oA(It)==="[object Error]"||It instanceof Error)}function MA(It){return typeof It=="function"}function oA(It){return Object.prototype.toString.call(It)}function Vo(It,pt){if(!pt||!eA(pt))return It;for(var yt=Object.keys(pt),Lt=yt.length;Lt--;)It[yt[Lt]]=pt[yt[Lt]];return It}function Cr(It,pt){return Object.prototype.hasOwnProperty.call(It,pt)}function br(){this.head=null,this.tail=null,this.length=0}br.prototype.push=function(It){var pt={data:It,next:null};this.length>0?this.tail.next=pt:this.head=pt,this.tail=pt,++this.length},br.prototype.unshift=function(It){var pt={data:It,next:this.head};this.length===0&&(this.tail=pt),this.head=pt,++this.length},br.prototype.shift=function(){if(this.length!==0){var It=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,It}},br.prototype.clear=function(){this.head=this.tail=null,this.length=0},br.prototype.join=function(It){if(this.length===0)return"";for(var pt=this.head,yt=""+pt.data;pt=pt.next;)yt+=It+pt.data;return yt},br.prototype.concat=function(It){if(this.length===0)return Yt.alloc(0);if(this.length===1)return this.head.data;for(var pt=Yt.allocUnsafe(It>>>0),yt=this.head,Lt=0;yt;)yt.data.copy(pt,Lt),Lt+=yt.data.length,yt=yt.next;return pt};var Vr=Yt.isEncoding||function(It){switch(It&&It.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Gr(It){if(It&&!Vr(It))throw new Error("Unknown encoding: "+It)}function Cn(It){switch(this.encoding=(It||"utf8").toLowerCase().replace(/[-_]/,""),Gr(It),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=jn;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Ko;break;default:this.write=bn;return}this.charBuffer=new Yt(6),this.charReceived=0,this.charLength=0}Cn.prototype.write=function(It){for(var pt="";this.charLength;){var yt=It.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:It.length;if(It.copy(this.charBuffer,this.charReceived,0,yt),this.charReceived+=yt,this.charReceived=55296&&qt<=56319){this.charLength+=this.surrogateSize,pt="";continue}if(this.charReceived=this.charLength=0,It.length===0)return pt;break}this.detectIncompleteChar(It);var Lt=It.length;this.charLength&&(It.copy(this.charBuffer,0,It.length-this.charReceived,Lt),Lt-=this.charReceived),pt+=It.toString(this.encoding,0,Lt);var Lt=pt.length-1,qt=pt.charCodeAt(Lt);if(qt>=55296&&qt<=56319){var tr=this.surrogateSize;return this.charLength+=tr,this.charReceived+=tr,this.charBuffer.copy(this.charBuffer,tr,0,tr),It.copy(this.charBuffer,0,0,tr),pt.substring(0,Lt)}return pt},Cn.prototype.detectIncompleteChar=function(It){for(var pt=It.length>=3?3:It.length;pt>0;pt--){var yt=It[It.length-pt];if(pt==1&&yt>>5==6){this.charLength=2;break}if(pt<=2&&yt>>4==14){this.charLength=3;break}if(pt<=3&&yt>>3==30){this.charLength=4;break}}this.charReceived=pt},Cn.prototype.end=function(It){var pt="";if(It&&It.length&&(pt=this.write(It)),this.charReceived){var yt=this.charReceived,Lt=this.charBuffer,qt=this.encoding;pt+=Lt.slice(0,yt).toString(qt)}return pt};function bn(It){return It.toString(this.encoding)}function jn(It){this.charReceived=It.length%2,this.charLength=this.charReceived?2:0}function Ko(It){this.charReceived=It.length%3,this.charLength=this.charReceived?3:0}Wn.ReadableState=Go;var pn=Dn("stream");hn(Wn,rt);function Hn(It,pt,yt){if(typeof It.prependListener=="function")return It.prependListener(pt,yt);!It._events||!It._events[pt]?It.on(pt,yt):Array.isArray(It._events[pt])?It._events[pt].unshift(yt):It._events[pt]=[yt,It._events[pt]]}function Jn(It,pt){return It.listeners(pt).length}function Go(It,pt){It=It||{},this.objectMode=!!It.objectMode,pt instanceof Do&&(this.objectMode=this.objectMode||!!It.readableObjectMode);var yt=It.highWaterMark,Lt=this.objectMode?16:16*1024;this.highWaterMark=yt||yt===0?yt:Lt,this.highWaterMark=~~this.highWaterMark,this.buffer=new br,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=It.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,It.encoding&&(this.decoder=new Cn(It.encoding),this.encoding=It.encoding)}function Wn(It){if(!(this instanceof Wn))return new Wn(It);this._readableState=new Go(It,this),this.readable=!0,It&&typeof It.read=="function"&&(this._read=It.read),rt.call(this)}Wn.prototype.push=function(It,pt){var yt=this._readableState;return!yt.objectMode&&typeof It=="string"&&(pt=pt||yt.defaultEncoding,pt!==yt.encoding&&(It=Yt.from(It,pt),pt="")),Vl(this,yt,It,pt,!1)},Wn.prototype.unshift=function(It){var pt=this._readableState;return Vl(this,pt,It,"",!0)},Wn.prototype.isPaused=function(){return this._readableState.flowing===!1};function Vl(It,pt,yt,Lt,qt){var tr=Rl(pt,yt);if(tr)It.emit("error",tr);else if(yt===null)pt.reading=!1,As(It,pt);else if(pt.objectMode||yt&&yt.length>0)if(pt.ended&&!qt){var or=new Error("stream.push() after EOF");It.emit("error",or)}else if(pt.endEmitted&&qt){var Tr=new Error("stream.unshift() after end event");It.emit("error",Tr)}else{var jr;pt.decoder&&!qt&&!Lt&&(yt=pt.decoder.write(yt),jr=!pt.objectMode&&yt.length===0),qt||(pt.reading=!1),jr||(pt.flowing&&pt.length===0&&!pt.sync?(It.emit("data",yt),It.read(0)):(pt.length+=pt.objectMode?1:yt.length,qt?pt.buffer.unshift(yt):pt.buffer.push(yt),pt.needReadable&&IA(It))),No(It,pt)}else qt||(pt.reading=!1);return Gs(pt)}function Gs(It){return!It.ended&&(It.needReadable||It.length=FA?It=FA:(It--,It|=It>>>1,It|=It>>>2,It|=It>>>4,It|=It>>>8,It|=It>>>16,It++),It}function co(It,pt){return It<=0||pt.length===0&&pt.ended?0:pt.objectMode?1:It!==It?pt.flowing&&pt.length?pt.buffer.head.data.length:pt.length:(It>pt.highWaterMark&&(pt.highWaterMark=Zs(It)),It<=pt.length?It:pt.ended?pt.length:(pt.needReadable=!0,0))}Wn.prototype.read=function(It){pn("read",It),It=parseInt(It,10);var pt=this._readableState,yt=It;if(It!==0&&(pt.emittedReadable=!1),It===0&&pt.needReadable&&(pt.length>=pt.highWaterMark||pt.ended))return pn("read: emitReadable",pt.length,pt.ended),pt.length===0&&pt.ended?$o(this):IA(this),null;if(It=co(It,pt),It===0&&pt.ended)return pt.length===0&&$o(this),null;var Lt=pt.needReadable;pn("need readable",Lt),(pt.length===0||pt.length-It0?qt=ko(It,pt):qt=null,qt===null?(pt.needReadable=!0,It=0):pt.length-=It,pt.length===0&&(pt.ended||(pt.needReadable=!0),yt!==It&&pt.ended&&$o(this)),qt!==null&&this.emit("data",qt),qt};function Rl(It,pt){var yt=null;return!rs(pt)&&typeof pt!="string"&&pt!==null&&pt!==void 0&&!It.objectMode&&(yt=new TypeError("Invalid non-string/buffer chunk")),yt}function As(It,pt){if(!pt.ended){if(pt.decoder){var yt=pt.decoder.end();yt&&yt.length&&(pt.buffer.push(yt),pt.length+=pt.objectMode?1:yt.length)}pt.ended=!0,IA(It)}}function IA(It){var pt=It._readableState;pt.needReadable=!1,pt.emittedReadable||(pn("emitReadable",pt.flowing),pt.emittedReadable=!0,pt.sync?Jr(EA,It):EA(It))}function EA(It){pn("emit readable"),It.emit("readable"),tA(It)}function No(It,pt){pt.readingMore||(pt.readingMore=!0,Jr(ks,It,pt))}function ks(It,pt){for(var yt=pt.length;!pt.reading&&!pt.flowing&&!pt.ended&&pt.length1&&bA(Lt.pipes,It)!==-1)&&!An&&(pn("false write response, pause",yt._readableState.awaitDrain),yt._readableState.awaitDrain++,Bn=!0),yt.pause())}function Gn(Bl){pn("onerror",Bl),hu(),It.removeListener("error",Gn),Jn(It,"error")===0&&It.emit("error",Bl)}Hn(It,"error",Gn);function Ks(){It.removeListener("finish",Fl),hu()}It.once("close",Ks);function Fl(){pn("onfinish"),It.removeListener("close",Ks),hu()}It.once("finish",Fl);function hu(){pn("unpipe"),yt.unpipe(It)}return It.emit("pipe",yt),Lt.flowing||(pn("pipe resume"),yt.resume()),It};function Ql(It){return function(){var pt=It._readableState;pn("pipeOnDrain",pt.awaitDrain),pt.awaitDrain&&pt.awaitDrain--,pt.awaitDrain===0&&It.listeners("data").length&&(pt.flowing=!0,tA(It))}}Wn.prototype.unpipe=function(It){var pt=this._readableState;if(pt.pipesCount===0)return this;if(pt.pipesCount===1)return It&&It!==pt.pipes?this:(It||(It=pt.pipes),pt.pipes=null,pt.pipesCount=0,pt.flowing=!1,It&&It.emit("unpipe",this),this);if(!It){var yt=pt.pipes,Lt=pt.pipesCount;pt.pipes=null,pt.pipesCount=0,pt.flowing=!1;for(var qt=0;qt=pt.length?(pt.decoder?yt=pt.buffer.join(""):pt.buffer.length===1?yt=pt.buffer.head.data:yt=pt.buffer.concat(pt.length),pt.buffer.clear()):yt=$l(It,pt.buffer,pt.decoder),yt}function $l(It,pt,yt){var Lt;return Ittr.length?tr.length:It;if(or===tr.length?qt+=tr:qt+=tr.slice(0,It),It-=or,It===0){or===tr.length?(++Lt,yt.next?pt.head=yt.next:pt.head=pt.tail=null):(pt.head=yt,yt.data=tr.slice(or));break}++Lt}return pt.length-=Lt,qt}function Uo(It,pt){var yt=Yt.allocUnsafe(It),Lt=pt.head,qt=1;for(Lt.data.copy(yt),It-=Lt.data.length;Lt=Lt.next;){var tr=Lt.data,or=It>tr.length?tr.length:It;if(tr.copy(yt,yt.length-It,0,or),It-=or,It===0){or===tr.length?(++qt,Lt.next?pt.head=Lt.next:pt.head=pt.tail=null):(pt.head=Lt,Lt.data=tr.slice(or));break}++qt}return pt.length-=qt,yt}function $o(It){var pt=It._readableState;if(pt.length>0)throw new Error('"endReadable()" called on non-empty stream');pt.endEmitted||(pt.ended=!0,Jr(CA,pt,It))}function CA(It,pt){!It.endEmitted&&It.length===0&&(It.endEmitted=!0,pt.readable=!1,pt.emit("end"))}function ou(It,pt){for(var yt=0,Lt=It.length;yt-1))throw new TypeError("Unknown encoding: "+pt);return this._writableState.defaultEncoding=pt,this};function cA(It,pt,yt){return!It.objectMode&&It.decodeStrings!==!1&&typeof pt=="string"&&(pt=Yt.from(pt,yt)),pt}function Dl(It,pt,yt,Lt,qt){yt=cA(pt,yt,Lt),Yt.isBuffer(yt)&&(Lt="buffer");var tr=pt.objectMode?1:yt.length;pt.length+=tr;var or=pt.length"u"){var It=new ArrayBuffer(2),pt=new Uint8Array(It),yt=new Uint16Array(It);if(pt[0]=1,pt[1]=2,yt[0]===258)BA="BE";else if(yt[0]===513)BA="LE";else throw new Error("unable to figure out endianess")}return BA}function gA(){return typeof wt.location<"u"?wt.location.hostname:""}function Es(){return[]}function Au(){return 0}function Cs(){return Number.MAX_VALUE}function lu(){return Number.MAX_VALUE}function Hs(){return[]}function JA(){return"Browser"}function Ul(){return typeof wt.navigator<"u"?wt.navigator.appVersion:""}function Sl(){}function nA(){}function ys(){return"/tmp"}var us=ys,zA=` +`,$s={EOL:zA,tmpdir:us,tmpDir:ys,networkInterfaces:Sl,getNetworkInterfaces:nA,release:Ul,type:JA,cpus:Hs,totalmem:lu,freemem:Cs,uptime:Au,loadavg:Es,hostname:gA,endianness:Eo},Bs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof commonjsGlobal<"u"?commonjsGlobal:typeof self<"u"?self:{},RA="Expected a function",Nl="__lodash_hash_undefined__",$A=1/0,xA="[object Function]",_A="[object GeneratorFunction]",gs="[object Symbol]",iA=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ss=/^\w*$/,cu=/^\./,DA=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,VA=/[\\^$.*+?()[\]{}|]/g,as=/\\(\\)?/g,ds=/^\[object .+?Constructor\]$/,hs=typeof Bs=="object"&&Bs&&Bs.Object===Object&&Bs,zs=typeof self=="object"&&self&&self.Object===Object&&self,KA=hs||zs||Function("return this")();function WA(It,pt){return It==null?void 0:It[pt]}function PA(It){var pt=!1;if(It!=null&&typeof It.toString!="function")try{pt=!!(It+"")}catch{}return pt}var qs=Array.prototype,Wl=Function.prototype,Yo=Object.prototype,qA=KA["__core-js_shared__"],Ys=function(){var It=/[^.]+$/.exec(qA&&qA.keys&&qA.keys.IE_PROTO||"");return It?"Symbol(src)_1."+It:""}(),Zo=Wl.toString,Ls=Yo.hasOwnProperty,vA=Yo.toString,ZA=RegExp("^"+Zo.call(Ls).replace(VA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),$a=KA.Symbol,XA=qs.splice,Ns=_n(KA,"Map"),_s=_n(Object,"create"),Mo=$a?$a.prototype:void 0,Hl=Mo?Mo.toString:void 0;function Vs(It){var pt=-1,yt=It?It.length:0;for(this.clear();++pt-1}function Yl(It,pt){var yt=this.__data__,Lt=Fs(yt,It);return Lt<0?yt.push([It,pt]):yt[Lt][1]=pt,this}ho.prototype.clear=Ss,ho.prototype.delete=Tl,ho.prototype.get=Ms,ho.prototype.has=Xl,ho.prototype.set=Yl;function po(It){var pt=-1,yt=It?It.length:0;for(this.clear();++pt1?bt(It[tr]||{},or,yt):yt))}function Ft(It,pt){var yt=Array.isArray(pt)?pt:pt.split("."),Lt=Ps(yt),qt=Lt[0],tr=Lt.slice(1);return Mn(It[qt])!=="object"?It:yt.length===1?Object.keys(It).filter(function(or){return or!==qt}).reduce(function(or,Tr){return Object.assign(or,is({},Tr,It[Tr]))},{}):Object.keys(It).reduce(function(or,Tr){return os({},or,is({},Tr,Tr!==qt?It[Tr]:Ft(It[qt],tr)))},{})}function zt(It,pt){try{return It.push.apply(It,jo(pt)),It}catch{return It.concat(pt)}}function nr(It,pt){var yt=!0;return It.reduce(function(Lt,qt){return qt==null&&(qt=""),yt?(yt=!1,"".concat(qt)):"".concat(Lt).concat(pt).concat(qt)},"")}var dr={getProp:Ct,setProp:bt,unsetProp:Ft,fastJoin:nr,flattenReducer:zt},Br=dr.getProp,kr=dr.fastJoin,Kr=dr.flattenReducer,qr=function(){function It(pt){ls(this,It),this.opts=this.preprocessOpts(pt)}return Ds(It,[{key:"preprocessOpts",value:function(yt){var Lt=Object.assign({},yt);return Lt.transforms=Array.isArray(Lt.transforms)?Lt.transforms:Lt.transforms?[Lt.transforms]:[],Lt.delimiter=Lt.delimiter||",",Lt.eol=Lt.eol||$s.EOL,Lt.quote=typeof Lt.quote=="string"?Lt.quote:'"',Lt.escapedQuote=typeof Lt.escapedQuote=="string"?Lt.escapedQuote:"".concat(Lt.quote).concat(Lt.quote),Lt.header=Lt.header!==!1,Lt.includeEmptyRows=Lt.includeEmptyRows||!1,Lt.withBOM=Lt.withBOM||!1,Lt}},{key:"preprocessFieldsInfo",value:function(yt){var Lt=this;return yt.map(function(qt){if(typeof qt=="string")return{label:qt,value:qt.includes(".")||qt.includes("[")?function(jr){return ht(jr,qt,Lt.opts.defaultValue)}:function(jr){return Br(jr,qt,Lt.opts.defaultValue)}};if(Mn(qt)==="object"){var tr="default"in qt?qt.default:Lt.opts.defaultValue;if(typeof qt.value=="string")return{label:qt.label||qt.value,value:qt.value.includes(".")||qt.value.includes("[")?function(jr){return ht(jr,qt.value,tr)}:function(jr){return Br(jr,qt.value,tr)}};if(typeof qt.value=="function"){var or=qt.label||qt.value.name||"",Tr={label:or,default:tr};return{label:or,value:function(An){var fn=qt.value(An,Tr);return fn??tr}}}}throw new Error("Invalid field info option. "+JSON.stringify(qt))})}},{key:"getHeader",value:function(){var yt=this;return kr(this.opts.fields.map(function(Lt){return yt.processValue(Lt.label)}),this.opts.delimiter)}},{key:"preprocessRow",value:function(yt){return this.opts.transforms.reduce(function(Lt,qt){return Lt.map(function(tr){return qt(tr)}).reduce(Kr,[])},[yt])}},{key:"processRow",value:function(yt){var Lt=this;if(yt){var qt=this.opts.fields.map(function(tr){return Lt.processCell(yt,tr)});if(!(!this.opts.includeEmptyRows&&qt.every(function(tr){return tr===void 0})))return kr(qt,this.opts.delimiter)}}},{key:"processCell",value:function(yt,Lt){return this.processValue(Lt.value(yt))}},{key:"processValue",value:function(yt){if(yt!=null){var Lt=Mn(yt);if(Lt!=="boolean"&&Lt!=="number"&&Lt!=="string"){if(yt=JSON.stringify(yt),yt===void 0)return;yt[0]==='"'&&(yt=yt.replace(/^"(.+)"$/,"$1"))}return typeof yt=="string"&&(this.opts.excelStrings?(yt.includes(this.opts.quote)&&(yt=yt.replace(new RegExp(this.opts.quote,"g"),"".concat(this.opts.escapedQuote).concat(this.opts.escapedQuote))),yt='"=""'.concat(yt,'"""')):(yt.includes(this.opts.quote)&&(yt=yt.replace(new RegExp(this.opts.quote,"g"),this.opts.escapedQuote)),yt="".concat(this.opts.quote).concat(yt).concat(this.opts.quote))),yt}}}]),It}(),en=qr,Dr=dr.fastJoin,gn=dr.flattenReducer,mn=function(It){Kl(pt,It);function pt(yt){var Lt;return ls(this,pt),Lt=aA(this,UA(pt).call(this,yt)),Lt.opts.fields&&(Lt.opts.fields=Lt.preprocessFieldsInfo(Lt.opts.fields)),Lt}return Ds(pt,[{key:"parse",value:function(Lt){var qt=this.preprocessData(Lt);this.opts.fields||(this.opts.fields=qt.reduce(function(jr,An){return Object.keys(An).forEach(function(fn){jr.includes(fn)||jr.push(fn)}),jr},[]),this.opts.fields=this.preprocessFieldsInfo(this.opts.fields));var tr=this.opts.header?this.getHeader():"",or=this.processData(qt),Tr=(this.opts.withBOM?"\uFEFF":"")+tr+(tr&&or?this.opts.eol:"")+or;return Tr}},{key:"preprocessData",value:function(Lt){var qt=this,tr=Array.isArray(Lt)?Lt:[Lt];if(!this.opts.fields&&(tr.length===0||Mn(tr[0])!=="object"))throw new Error('Data should not be empty or the "fields" option should be included');return this.opts.transforms.length===0?tr:tr.map(function(or){return qt.preprocessRow(or)}).reduce(gn,[])}},{key:"processData",value:function(Lt){var qt=this;return Dr(Lt.map(function(tr){return qt.processRow(tr)}).filter(function(tr){return tr}),this.opts.eol)}}]),pt}(en),yn=mn,sn={},Fn=sn.LEFT_BRACE=1,Kn=sn.RIGHT_BRACE=2,so=sn.LEFT_BRACKET=3,vo=sn.RIGHT_BRACKET=4,io=sn.COLON=5,Qo=sn.COMMA=6,Ho=sn.TRUE=7,zn=sn.FALSE=8,pu=sn.NULL=9,eu=sn.STRING=10,Iu=sn.NUMBER=11,NA=sn.START=17,Eu=sn.STOP=18,Cu=sn.TRUE1=33,yu=sn.TRUE2=34,mu=sn.TRUE3=35,Bu=sn.FALSE1=49,_u=sn.FALSE2=50,vu=sn.FALSE3=51,Qu=sn.FALSE4=52,Su=sn.NULL1=65,bu=sn.NULL2=66,wu=sn.NULL3=67,Tu=sn.NUMBER1=81,gu=sn.NUMBER3=83,Os=sn.STRING1=97,Ru=sn.STRING2=98,$u=sn.STRING3=99,Yu=sn.STRING4=100,Ju=sn.STRING5=101,xu=sn.STRING6=102,yl=sn.VALUE=113,fu=sn.KEY=114,tu=sn.OBJECT=129,ru=sn.ARRAY=130,zu=92,Vu=47,Ku=8,Wu=12,Zu=10,Xu=13,_g=9,nu=64*1024;function pA(){this.tState=NA,this.value=void 0,this.string=void 0,this.stringBuffer=Yt.alloc?Yt.alloc(nu):new Yt(nu),this.stringBufferOffset=0,this.unicode=void 0,this.highSurrogate=void 0,this.key=void 0,this.mode=void 0,this.stack=[],this.state=yl,this.bytes_remaining=0,this.bytes_in_sequence=0,this.temp_buffs={2:new Yt(2),3:new Yt(3),4:new Yt(4)},this.offset=-1}pA.toknam=function(It){for(var pt=Object.keys(sn),yt=0,Lt=pt.length;yt=nu&&(this.string+=this.stringBuffer.toString("utf8"),this.stringBufferOffset=0),this.stringBuffer[this.stringBufferOffset++]=It},Rs.appendStringBuf=function(It,pt,yt){var Lt=It.length;typeof pt=="number"&&(typeof yt=="number"?yt<0?Lt=It.length-pt+yt:Lt=yt-pt:Lt=It.length-pt),Lt<0&&(Lt=0),this.stringBufferOffset+Lt>nu&&(this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0),It.copy(this.stringBuffer,this.stringBufferOffset,pt,yt),this.stringBufferOffset+=Lt},Rs.write=function(It){typeof It=="string"&&(It=new Yt(It));for(var pt,yt=0,Lt=It.length;yt=48&&pt<64)this.string=String.fromCharCode(pt),this.tState=gu;else if(!(pt===32||pt===9||pt===10||pt===13))return this.charError(It,yt)}else if(this.tState===Os)if(pt=It[yt],this.bytes_remaining>0){for(var qt=0;qt=128){if(pt<=193||pt>244)return this.onError(new Error("Invalid UTF-8 character at position "+yt+" in state "+pA.toknam(this.tState)));if(pt>=194&&pt<=223&&(this.bytes_in_sequence=2),pt>=224&&pt<=239&&(this.bytes_in_sequence=3),pt>=240&&pt<=244&&(this.bytes_in_sequence=4),this.bytes_in_sequence+yt>It.length){for(var tr=0;tr<=It.length-1-yt;tr++)this.temp_buffs[this.bytes_in_sequence][tr]=It[yt+tr];this.bytes_remaining=yt+this.bytes_in_sequence-It.length,yt=It.length-1}else this.appendStringBuf(It,yt,yt+this.bytes_in_sequence),yt=yt+this.bytes_in_sequence-1}else if(pt===34)this.tState=NA,this.string+=this.stringBuffer.toString("utf8",0,this.stringBufferOffset),this.stringBufferOffset=0,this.onToken(eu,this.string),this.offset+=Yt.byteLength(this.string,"utf8")+1,this.string=void 0;else if(pt===92)this.tState=Ru;else if(pt>=32)this.appendStringChar(pt);else return this.charError(It,yt);else if(this.tState===Ru)if(pt=It[yt],pt===34)this.appendStringChar(pt),this.tState=Os;else if(pt===92)this.appendStringChar(zu),this.tState=Os;else if(pt===47)this.appendStringChar(Vu),this.tState=Os;else if(pt===98)this.appendStringChar(Ku),this.tState=Os;else if(pt===102)this.appendStringChar(Wu),this.tState=Os;else if(pt===110)this.appendStringChar(Zu),this.tState=Os;else if(pt===114)this.appendStringChar(Xu),this.tState=Os;else if(pt===116)this.appendStringChar(_g),this.tState=Os;else if(pt===117)this.unicode="",this.tState=$u;else return this.charError(It,yt);else if(this.tState===$u||this.tState===Yu||this.tState===Ju||this.tState===xu)if(pt=It[yt],pt>=48&&pt<64||pt>64&&pt<=70||pt>96&&pt<=102){if(this.unicode+=String.fromCharCode(pt),this.tState++===xu){var or=parseInt(this.unicode,16);this.unicode=void 0,this.highSurrogate!==void 0&&or>=56320&&or<57344?(this.appendStringBuf(new Yt(String.fromCharCode(this.highSurrogate,or))),this.highSurrogate=void 0):this.highSurrogate===void 0&&or>=55296&&or<56320?this.highSurrogate=or:(this.highSurrogate!==void 0&&(this.appendStringBuf(new Yt(String.fromCharCode(this.highSurrogate))),this.highSurrogate=void 0),this.appendStringBuf(new Yt(String.fromCharCode(or)))),this.tState=Os}}else return this.charError(It,yt);else if(this.tState===Tu||this.tState===gu)switch(pt=It[yt],pt){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 46:case 101:case 69:case 43:case 45:this.string+=String.fromCharCode(pt),this.tState=gu;break;default:this.tState=NA;var Tr=Number(this.string);if(isNaN(Tr))return this.charError(It,yt);this.string.match(/[0-9]+/)==this.string&&Tr.toString()!=this.string?this.onToken(eu,this.string):this.onToken(Iu,Tr),this.offset+=this.string.length-1,this.string=void 0,yt--;break}else if(this.tState===Cu)if(It[yt]===114)this.tState=yu;else return this.charError(It,yt);else if(this.tState===yu)if(It[yt]===117)this.tState=mu;else return this.charError(It,yt);else if(this.tState===mu)if(It[yt]===101)this.tState=NA,this.onToken(Ho,!0),this.offset+=3;else return this.charError(It,yt);else if(this.tState===Bu)if(It[yt]===97)this.tState=_u;else return this.charError(It,yt);else if(this.tState===_u)if(It[yt]===108)this.tState=vu;else return this.charError(It,yt);else if(this.tState===vu)if(It[yt]===115)this.tState=Qu;else return this.charError(It,yt);else if(this.tState===Qu)if(It[yt]===101)this.tState=NA,this.onToken(zn,!1),this.offset+=4;else return this.charError(It,yt);else if(this.tState===Su)if(It[yt]===117)this.tState=bu;else return this.charError(It,yt);else if(this.tState===bu)if(It[yt]===108)this.tState=wu;else return this.charError(It,yt);else if(this.tState===wu)if(It[yt]===108)this.tState=NA,this.onToken(pu,null),this.offset+=3;else return this.charError(It,yt)},Rs.onToken=function(It,pt){},Rs.parseError=function(It,pt){this.tState=Eu,this.onError(new Error("Unexpected "+pA.toknam(It)+(pt?"("+JSON.stringify(pt)+")":"")+" in state "+pA.toknam(this.state)))},Rs.push=function(){this.stack.push({value:this.value,key:this.key,mode:this.mode})},Rs.pop=function(){var It=this.value,pt=this.stack.pop();this.value=pt.value,this.key=pt.key,this.mode=pt.mode,this.emit(It),this.mode||(this.state=yl)},Rs.emit=function(It){this.mode&&(this.state=Qo),this.onValue(It)},Rs.onValue=function(It){},Rs.onToken=function(It,pt){if(this.state===yl)if(It===eu||It===Iu||It===Ho||It===zn||It===pu)this.value&&(this.value[this.key]=pt),this.emit(pt);else if(It===Fn)this.push(),this.value?this.value=this.value[this.key]={}:this.value={},this.key=void 0,this.state=fu,this.mode=tu;else if(It===so)this.push(),this.value?this.value=this.value[this.key]=[]:this.value=[],this.key=0,this.mode=ru,this.state=yl;else if(It===Kn)if(this.mode===tu)this.pop();else return this.parseError(It,pt);else if(It===vo)if(this.mode===ru)this.pop();else return this.parseError(It,pt);else return this.parseError(It,pt);else if(this.state===fu)if(It===eu)this.key=pt,this.state=io;else if(It===Kn)this.pop();else return this.parseError(It,pt);else if(this.state===io)if(It===io)this.state=yl;else return this.parseError(It,pt);else if(this.state===Qo)if(It===Qo)this.mode===ru?(this.key++,this.state=yl):this.mode===tu&&(this.state=fu);else if(It===vo&&this.mode===ru||It===Kn&&this.mode===tu)this.pop();else return this.parseError(It,pt);else return this.parseError(It,pt)},pA.C=sn;var iu=pA,_f=_o.Transform,_d=function(It){Kl(pt,It);function pt(yt,Lt){var qt;return ls(this,pt),qt=aA(this,UA(pt).call(this,Lt)),Object.getOwnPropertyNames(en.prototype).forEach(function(tr){return qt[tr]=en.prototype[tr]}),qt.opts=qt.preprocessOpts(yt),qt._data="",qt._hasWritten=!1,qt._readableState.objectMode?qt.initObjectModeParse():qt.opts.ndjson?qt.initNDJSONParse():qt.initJSONParser(),qt.opts.withBOM&&qt.push("\uFEFF"),qt.opts.fields&&(qt.opts.fields=qt.preprocessFieldsInfo(qt.opts.fields),qt.pushHeader()),qt}return Ds(pt,[{key:"initObjectModeParse",value:function(){var Lt=this;this.parser={write:function(tr){Lt.pushLine(tr)},getPendingData:function(){}}}},{key:"initNDJSONParse",value:function(){var Lt=this;this.parser={_data:"",write:function(tr){this._data+=tr.toString();var or=this._data.split(` +`).map(function(jr){return jr.trim()}).filter(function(jr){return jr!==""}),Tr=!1;or.forEach(function(jr,An){try{Lt.pushLine(JSON.parse(jr))}catch(fn){An===or.length-1?Tr=!0:(fn.message="Invalid JSON (".concat(jr,")"),Lt.emit("error",fn))}}),this._data=Tr?this._data.slice(this._data.lastIndexOf(` +`)):""},getPendingData:function(){return this._data}}}},{key:"initJSONParser",value:function(){var Lt=this;this.parser=new iu,this.parser.onValue=function(qt){this.stack.length===this.depthToEmit&&Lt.pushLine(qt)},this.parser._onToken=this.parser.onToken,this.parser.onToken=function(qt,tr){Lt.parser._onToken(qt,tr),this.stack.length===0&&!Lt.opts.fields&&this.mode!==iu.C.ARRAY&&this.mode!==iu.C.OBJECT&&this.onError(new Error('Data should not be empty or the "fields" option should be included')),this.stack.length===1&&(this.depthToEmit===void 0&&(this.depthToEmit=this.mode===iu.C.ARRAY?1:0),this.depthToEmit!==0&&this.stack.length===1&&(this.value=void 0))},this.parser.getPendingData=function(){return this.value},this.parser.onError=function(qt){qt.message.includes("Unexpected")&&(qt.message="Invalid JSON (".concat(qt.message,")")),Lt.emit("error",qt)}}},{key:"_transform",value:function(Lt,qt,tr){this.parser.write(Lt),tr()}},{key:"_flush",value:function(Lt){this.parser.getPendingData()&&Lt(new Error("Invalid data received from stdin",this.parser.getPendingData())),Lt()}},{key:"pushHeader",value:function(){if(this.opts.header){var Lt=this.getHeader();this.emit("header",Lt),this.push(Lt),this._hasWritten=!0}}},{key:"pushLine",value:function(Lt){var qt=this,tr=this.preprocessRow(Lt);this._hasWritten||(this.opts.fields=this.opts.fields||this.preprocessFieldsInfo(Object.keys(tr[0])),this.pushHeader()),tr.forEach(function(or){var Tr=qt.processRow(or,qt.opts);Tr!==void 0&&(qt.emit("line",Tr),qt.push(qt._hasWritten?qt.opts.eol+Tr:Tr),qt._hasWritten=!0)})}}]),pt}(_f),Du=_d,_h=_o.Transform,ep=dr.fastJoin,tp=function(){function It(pt,yt){ls(this,It),this.input=new _h(yt),this.input._read=function(){},this.transform=new Du(pt,yt),this.processor=this.input.pipe(this.transform)}return Ds(It,[{key:"fromInput",value:function(yt){if(this._input)throw new Error("Async parser already has an input.");return this._input=yt,this.input=this._input.pipe(this.processor),this}},{key:"throughTransform",value:function(yt){if(this._output)throw new Error("Can't add transforms once an output has been added.");return this.processor=this.processor.pipe(yt),this}},{key:"toOutput",value:function(yt){if(this._output)throw new Error("Async parser already has an output.");return this._output=yt,this.processor=this.processor.pipe(yt),this}},{key:"promise",value:function(){var yt=this,Lt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return new Promise(function(qt,tr){if(!Lt){yt.processor.on("finish",function(){return qt()}).on("error",function(Tr){return tr(Tr)});return}var or=[];yt.processor.on("data",function(Tr){return or.push(Tr.toString())}).on("finish",function(){return qt(ep(or,""))}).on("error",function(Tr){return tr(Tr)})})}}]),It}(),Pu=tp;function rp(){var It=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},pt=It.objects,yt=pt===void 0?!0:pt,Lt=It.arrays,qt=Lt===void 0?!1:Lt,tr=It.separator,or=tr===void 0?".":tr;function Tr(jr,An,fn){return Object.keys(jr).forEach(function(Bn){var Zn=fn?"".concat(fn).concat(or).concat(Bn):Bn,Gn=jr[Bn];if(yt&&Mn(Gn)==="object"&&Gn!==null&&!Array.isArray(Gn)&&Object.prototype.toString.call(Gn.toJSON)!=="[object Function]"&&Object.keys(Gn).length){Tr(Gn,An,Zn);return}if(qt&&Array.isArray(Gn)){Tr(Gn,An,Zn);return}An[Zn]=Gn}),An}return function(jr){return Tr(jr,{})}}var np=rp,ip=dr.setProp,op=dr.unsetProp,Lu=dr.flattenReducer;function du(It,pt){return Object.keys(It).reduce(function(yt,Lt){var qt=pt?"".concat(pt,".").concat(Lt):Lt,tr=It[Lt];return Mn(tr)==="object"&&tr!==null&&!Array.isArray(tr)&&Object.prototype.toString.call(tr.toJSON)!=="[object Function]"&&Object.keys(tr).length?yt=yt.concat(du(tr,qt)):Array.isArray(tr)&&(yt.push(qt),yt=yt.concat(tr.map(function(or){return du(or,qt)}).reduce(Lu,[]).filter(function(or,Tr,jr){return jr.indexOf(or)!==Tr}))),yt},[])}function sp(){var It=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},pt=It.paths,yt=pt===void 0?void 0:pt,Lt=It.blankOut,qt=Lt===void 0?!1:Lt;function tr(or,Tr){return or.map(function(jr){var An=ht(jr,Tr);return Array.isArray(An)?An.length?An.map(function(fn,Bn){var Zn=qt&&Bn>0?{}:jr;return ip(Zn,Tr,fn)}):op(jr,Tr):jr}).reduce(Lu,[])}return yt=Array.isArray(yt)?yt:yt?[yt]:void 0,function(or){return(yt||du(or)).reduce(tr,[or])}}var ap=sp,Nu=_o.Readable,Mu=yn,Fu=Pu,Ou=Du,Gu=function(pt,yt){return new yn(yt).parse(pt)},ku=function(pt,yt,Lt){try{pt instanceof Nu||(Lt=Object.assign({},Lt,{objectMode:!0}));var qt=new Pu(yt,Lt),tr=qt.promise();return Array.isArray(pt)?(pt.forEach(function(or){return qt.input.push(or)}),qt.input.push(null)):pt instanceof Nu?qt.fromInput(pt):(qt.input.push(pt),qt.input.push(null)),tr}catch(or){return Promise.reject(or)}},Uu={flatten:np,unwind:ap},Ap={Parser:Mu,AsyncParser:Fu,Transform:Ou,parse:Gu,parseAsync:ku,transforms:Uu};_e.AsyncParser=Fu,_e.Parser=Mu,_e.Transform=Ou,_e.default=Ap,_e.parse=Gu,_e.parseAsync=ku,_e.transforms=Uu,Object.defineProperty(_e,"__esModule",{value:!0})})})(json2csv_umd,json2csv_umd.exports);class InternMap extends Map{constructor($,_e=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:_e}}),$!=null)for(const[et,tt]of $)this.set(et,tt)}get($){return super.get(intern_get(this,$))}has($){return super.has(intern_get(this,$))}set($,_e){return super.set(intern_set(this,$),_e)}delete($){return super.delete(intern_delete(this,$))}}function intern_get({_intern:j,_key:$},_e){const et=$(_e);return j.has(et)?j.get(et):_e}function intern_set({_intern:j,_key:$},_e){const et=$(_e);return j.has(et)?j.get(et):(j.set(et,_e),_e)}function intern_delete({_intern:j,_key:$},_e){const et=$(_e);return j.has(et)&&(_e=j.get(et),j.delete(et)),_e}function keyof(j){return j!==null&&typeof j=="object"?j.valueOf():j}function dataToCellSetsTree(j,$){const[_e,et,tt]=j,rt=treeInitialize(SETS_DATATYPE_OBS);return et.forEach((nt,it)=>{const{name:ot}=$[it];let At={name:ot,children:[]};if(nt.length>0&&Array.isArray(nt[0])){const ut=new InternMap([],JSON.stringify);_e[it].forEach((St,Dt)=>{const $t=nt.map(Rt=>Rt[Dt]);ut.has($t)?ut.get($t).push([St,null]):ut.set($t,[[St,null]])});const ft=Array.from(ut.keys()),dt=St=>Array.from(new Set(St.map($t=>$t[0]))).sort(($t,Rt)=>$t.localeCompare(Rt)),Et=(St,Dt,$t)=>{const Rt=$t.length===0,wt={name:Dt};if(Rt)wt.set=ut.get([...St,Dt]);else if($t.length===1&&Dt===$t[0][$t[0].length-1])wt.set=ut.get([...St,Dt,...$t[0]]);else{const Nt=dt($t);wt.children=Nt.map(Ot=>Et([...St,Dt],Ot,$t.filter(kt=>kt[0]===Ot).map(kt=>kt.slice(1)).filter(kt=>kt.length>0)))}return wt},Bt=dt(ft).map(St=>Et([],St,ft.filter(Dt=>Dt[0]===St).map(Dt=>Dt.slice(1))));At.children=Bt}else{const ut=Array.from(new Set(nt)).sort(),ft={};ut.forEach(dt=>ft[dt]={name:dt,set:[]}),tt[it]?nt.forEach((dt,Et)=>ft[dt].set.push([_e[it][Et],tt[it][Et]])):nt.forEach((dt,Et)=>ft[dt].set.push([_e[it][Et],null])),Object.values(ft).forEach(dt=>At=nodeAppendChild(At,dt))}rt.tree.push(At)}),rt}const schemeRdBu=[[103,0,31],[178,24,43],[214,96,77],[244,165,130],[253,219,199],[247,247,247],[209,229,240],[146,197,222],[67,147,195],[33,102,172],[5,48,97]],schemePlasma=[[13,8,135],[16,7,136],[19,7,137],[22,7,138],[25,6,140],[27,6,141],[29,6,142],[32,6,143],[34,6,144],[36,6,145],[38,5,145],[40,5,146],[42,5,147],[44,5,148],[46,5,149],[47,5,150],[49,5,151],[51,5,151],[53,4,152],[55,4,153],[56,4,154],[58,4,154],[60,4,155],[62,4,156],[63,4,156],[65,4,157],[67,3,158],[68,3,158],[70,3,159],[72,3,159],[73,3,160],[75,3,161],[76,2,161],[78,2,162],[80,2,162],[81,2,163],[83,2,163],[85,2,164],[86,1,164],[88,1,164],[89,1,165],[91,1,165],[92,1,166],[94,1,166],[96,1,166],[97,0,167],[99,0,167],[100,0,167],[102,0,167],[103,0,168],[105,0,168],[106,0,168],[108,0,168],[110,0,168],[111,0,168],[113,0,168],[114,1,168],[116,1,168],[117,1,168],[119,1,168],[120,1,168],[122,2,168],[123,2,168],[125,3,168],[126,3,168],[128,4,168],[129,4,167],[131,5,167],[132,5,167],[134,6,166],[135,7,166],[136,8,166],[138,9,165],[139,10,165],[141,11,165],[142,12,164],[143,13,164],[145,14,163],[146,15,163],[148,16,162],[149,17,161],[150,19,161],[152,20,160],[153,21,159],[154,22,159],[156,23,158],[157,24,157],[158,25,157],[160,26,156],[161,27,155],[162,29,154],[163,30,154],[165,31,153],[166,32,152],[167,33,151],[168,34,150],[170,35,149],[171,36,148],[172,38,148],[173,39,147],[174,40,146],[176,41,145],[177,42,144],[178,43,143],[179,44,142],[180,46,141],[181,47,140],[182,48,139],[183,49,138],[184,50,137],[186,51,136],[187,52,136],[188,53,135],[189,55,134],[190,56,133],[191,57,132],[192,58,131],[193,59,130],[194,60,129],[195,61,128],[196,62,127],[197,64,126],[198,65,125],[199,66,124],[200,67,123],[201,68,122],[202,69,122],[203,70,121],[204,71,120],[204,73,119],[205,74,118],[206,75,117],[207,76,116],[208,77,115],[209,78,114],[210,79,113],[211,81,113],[212,82,112],[213,83,111],[213,84,110],[214,85,109],[215,86,108],[216,87,107],[217,88,106],[218,90,106],[218,91,105],[219,92,104],[220,93,103],[221,94,102],[222,95,101],[222,97,100],[223,98,99],[224,99,99],[225,100,98],[226,101,97],[226,102,96],[227,104,95],[228,105,94],[229,106,93],[229,107,93],[230,108,92],[231,110,91],[231,111,90],[232,112,89],[233,113,88],[233,114,87],[234,116,87],[235,117,86],[235,118,85],[236,119,84],[237,121,83],[237,122,82],[238,123,81],[239,124,81],[239,126,80],[240,127,79],[240,128,78],[241,129,77],[241,131,76],[242,132,75],[243,133,75],[243,135,74],[244,136,73],[244,137,72],[245,139,71],[245,140,70],[246,141,69],[246,143,68],[247,144,68],[247,145,67],[247,147,66],[248,148,65],[248,149,64],[249,151,63],[249,152,62],[249,154,62],[250,155,61],[250,156,60],[250,158,59],[251,159,58],[251,161,57],[251,162,56],[252,163,56],[252,165,55],[252,166,54],[252,168,53],[252,169,52],[253,171,51],[253,172,51],[253,174,50],[253,175,49],[253,177,48],[253,178,47],[253,180,47],[253,181,46],[254,183,45],[254,184,44],[254,186,44],[254,187,43],[254,189,42],[254,190,42],[254,192,41],[253,194,41],[253,195,40],[253,197,39],[253,198,39],[253,200,39],[253,202,38],[253,203,38],[252,205,37],[252,206,37],[252,208,37],[252,210,37],[251,211,36],[251,213,36],[251,215,36],[250,216,36],[250,218,36],[249,220,36],[249,221,37],[248,223,37],[248,225,37],[247,226,37],[247,228,37],[246,230,38],[246,232,38],[245,233,38],[245,235,39],[244,237,39],[243,238,39],[243,240,39],[242,242,39],[241,244,38],[241,245,37],[240,247,36],[240,249,33]];function rgbSpline(j){return $=>{const _e=$.length,et=new Array(_e),tt=new Array(_e),rt=new Array(_e);let nt,it;for(nt=0;nt<_e;++nt)it=[$[nt][0],$[nt][1],$[nt][2]],et[nt]=it[0]||0,tt[nt]=it[1]||0,rt[nt]=it[2]||0;const ot=j(et),At=j(tt),ut=j(rt);return ft=>[ot(ft),At(ft),ut(ft)]}}function basis(j){function $(et,tt,rt,nt,it){const ot=et*et,At=ot*et;return((1-3*et+3*ot-At)*tt+(4-6*ot+3*At)*rt+(1+3*et+3*ot-3*At)*nt+At*it)/6}const _e=j.length-1;return et=>{const tt=et<=0?et=0:et>=1?(et=1,_e-1):Math.floor(et*_e),rt=j[tt],nt=j[tt+1],it=tt>0?j[tt-1]:2*rt-nt,ot=tt<_e-1?j[tt+2]:2*nt-rt;return $((et-tt/_e)*_e,it,rt,nt,ot)}}const interpolateRgbBasis=rgbSpline(basis);function interpolateSequentialMulti(j){const $=j.length;return _e=>j[Math.max(0,Math.min($-1,Math.floor(_e*$)))]}interpolateRgbBasis(schemeRdBu);interpolateSequentialMulti(schemePlasma);function assert$b(j,$){if(!j)throw new Error($||"loader assertion failed.")}const isBrowser$3=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),matches$1=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);matches$1&&parseFloat(matches$1[1]);const VERSION$b="3.2.10";function assert$a(j,$){if(!j)throw new Error($||"loaders.gl assertion failed.")}const globals$1={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},global_=globals$1.global||globals$1.self||globals$1.window||{},isBrowser$2=typeof process!="object"||String(process)!=="[object process]"||process.browser,isWorker=typeof importScripts=="function",isMobile=typeof window<"u"&&typeof window.orientation<"u",matches=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);matches&&parseFloat(matches[1]);function _typeof$v(j){"@babel/helpers - typeof";return _typeof$v=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $},_typeof$v(j)}function _toPrimitive(j,$){if(_typeof$v(j)!=="object"||j===null)return j;var _e=j[Symbol.toPrimitive];if(_e!==void 0){var et=_e.call(j,$||"default");if(_typeof$v(et)!=="object")return et;throw new TypeError("@@toPrimitive must return a primitive value.")}return($==="string"?String:Number)(j)}function _toPropertyKey(j){var $=_toPrimitive(j,"string");return _typeof$v($)==="symbol"?$:String($)}function _defineProperty$e(j,$,_e){return $=_toPropertyKey($),$ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}class WorkerJob{constructor($,_e){_defineProperty$e(this,"name",void 0),_defineProperty$e(this,"workerThread",void 0),_defineProperty$e(this,"isRunning",!0),_defineProperty$e(this,"result",void 0),_defineProperty$e(this,"_resolve",()=>{}),_defineProperty$e(this,"_reject",()=>{}),this.name=$,this.workerThread=_e,this.result=new Promise((et,tt)=>{this._resolve=et,this._reject=tt})}postMessage($,_e){this.workerThread.postMessage({source:"loaders.gl",type:$,payload:_e})}done($){assert$a(this.isRunning),this.isRunning=!1,this._resolve($)}error($){assert$a(this.isRunning),this.isRunning=!1,this._reject($)}}let Worker$1=class{};const workerURLCache=new Map;function getLoadableWorkerURL(j){assert$a(j.source&&!j.url||!j.source&&j.url);let $=workerURLCache.get(j.source||j.url);return $||(j.url&&($=getLoadableWorkerURLFromURL(j.url),workerURLCache.set(j.url,$)),j.source&&($=getLoadableWorkerURLFromSource(j.source),workerURLCache.set(j.source,$))),assert$a($),$}function getLoadableWorkerURLFromURL(j){if(!j.startsWith("http"))return j;const $=buildScriptSource(j);return getLoadableWorkerURLFromSource($)}function getLoadableWorkerURLFromSource(j){const $=new Blob([j],{type:"application/javascript"});return URL.createObjectURL($)}function buildScriptSource(j){return`try { + importScripts('`.concat(j,`'); +} catch (error) { + console.error(error); + throw error; +}`)}function getTransferList(j,$=!0,_e){const et=_e||new Set;if(j){if(isTransferable(j))et.add(j);else if(isTransferable(j.buffer))et.add(j.buffer);else if(!ArrayBuffer.isView(j)){if($&&typeof j=="object")for(const tt in j)getTransferList(j[tt],$,et)}}return _e===void 0?Array.from(et):[]}function isTransferable(j){return j?j instanceof ArrayBuffer||typeof MessagePort<"u"&&j instanceof MessagePort||typeof ImageBitmap<"u"&&j instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&j instanceof OffscreenCanvas:!1}const NOOP$1=()=>{};class WorkerThread{static isSupported(){return typeof Worker<"u"&&isBrowser$2||typeof Worker$1<"u"&&!isBrowser$2}constructor($){_defineProperty$e(this,"name",void 0),_defineProperty$e(this,"source",void 0),_defineProperty$e(this,"url",void 0),_defineProperty$e(this,"terminated",!1),_defineProperty$e(this,"worker",void 0),_defineProperty$e(this,"onMessage",void 0),_defineProperty$e(this,"onError",void 0),_defineProperty$e(this,"_loadableURL","");const{name:_e,source:et,url:tt}=$;assert$a(et||tt),this.name=_e,this.source=et,this.url=tt,this.onMessage=NOOP$1,this.onError=rt=>console.log(rt),this.worker=isBrowser$2?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=NOOP$1,this.onError=NOOP$1,this.worker.terminate(),this.terminated=!0}get isRunning(){return!!this.onMessage}postMessage($,_e){_e=_e||getTransferList($),this.worker.postMessage($,_e)}_getErrorFromErrorEvent($){let _e="Failed to load ";return _e+="worker ".concat(this.name," from ").concat(this.url,". "),$.message&&(_e+="".concat($.message," in ")),$.lineno&&(_e+=":".concat($.lineno,":").concat($.colno)),new Error(_e)}_createBrowserWorker(){this._loadableURL=getLoadableWorkerURL({source:this.source,url:this.url});const $=new Worker(this._loadableURL,{name:this.name});return $.onmessage=_e=>{_e.data?this.onMessage(_e.data):this.onError(new Error("No data received"))},$.onerror=_e=>{this.onError(this._getErrorFromErrorEvent(_e)),this.terminated=!0},$.onmessageerror=_e=>console.error(_e),$}_createNodeWorker(){let $;if(this.url){const et=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);$=new Worker$1(et,{eval:!1})}else if(this.source)$=new Worker$1(this.source,{eval:!0});else throw new Error("no worker");return $.on("message",_e=>{this.onMessage(_e)}),$.on("error",_e=>{this.onError(_e)}),$.on("exit",_e=>{}),$}}class WorkerPool{static isSupported(){return WorkerThread.isSupported()}constructor($){_defineProperty$e(this,"name","unnamed"),_defineProperty$e(this,"source",void 0),_defineProperty$e(this,"url",void 0),_defineProperty$e(this,"maxConcurrency",1),_defineProperty$e(this,"maxMobileConcurrency",1),_defineProperty$e(this,"onDebug",()=>{}),_defineProperty$e(this,"reuseWorkers",!0),_defineProperty$e(this,"props",{}),_defineProperty$e(this,"jobQueue",[]),_defineProperty$e(this,"idleQueue",[]),_defineProperty$e(this,"count",0),_defineProperty$e(this,"isDestroyed",!1),this.source=$.source,this.url=$.url,this.setProps($)}destroy(){this.idleQueue.forEach($=>$.destroy()),this.isDestroyed=!0}setProps($){this.props={...this.props,...$},$.name!==void 0&&(this.name=$.name),$.maxConcurrency!==void 0&&(this.maxConcurrency=$.maxConcurrency),$.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=$.maxMobileConcurrency),$.reuseWorkers!==void 0&&(this.reuseWorkers=$.reuseWorkers),$.onDebug!==void 0&&(this.onDebug=$.onDebug)}async startJob($,_e=(tt,rt,nt)=>tt.done(nt),et=(tt,rt)=>tt.error(rt)){const tt=new Promise(rt=>(this.jobQueue.push({name:$,onMessage:_e,onError:et,onStart:rt}),this));return this._startQueuedJob(),await tt}async _startQueuedJob(){if(!this.jobQueue.length)return;const $=this._getAvailableWorker();if(!$)return;const _e=this.jobQueue.shift();if(_e){this.onDebug({message:"Starting job",name:_e.name,workerThread:$,backlog:this.jobQueue.length});const et=new WorkerJob(_e.name,$);$.onMessage=tt=>_e.onMessage(et,tt.type,tt.payload),$.onError=tt=>_e.onError(et,tt),_e.onStart(et);try{await et.result}finally{this.returnWorkerToQueue($)}}}returnWorkerToQueue($){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?($.destroy(),this.count--):this.idleQueue.push($),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class WorkerFarm{static isSupported(){return WorkerThread.isSupported()}static getWorkerFarm($={}){return WorkerFarm._workerFarm=WorkerFarm._workerFarm||new WorkerFarm({}),WorkerFarm._workerFarm.setProps($),WorkerFarm._workerFarm}constructor($){_defineProperty$e(this,"props",void 0),_defineProperty$e(this,"workerPools",new Map),this.props={...DEFAULT_PROPS$4},this.setProps($),this.workerPools=new Map}destroy(){for(const $ of this.workerPools.values())$.destroy();this.workerPools=new Map}setProps($){this.props={...this.props,...$};for(const _e of this.workerPools.values())_e.setProps(this._getWorkerPoolProps())}getWorkerPool($){const{name:_e,source:et,url:tt}=$;let rt=this.workerPools.get(_e);return rt||(rt=new WorkerPool({name:_e,source:et,url:tt}),rt.setProps(this._getWorkerPoolProps()),this.workerPools.set(_e,rt)),rt}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}_defineProperty$e(WorkerFarm,"_workerFarm",void 0);const NPM_TAG="latest";function getWorkerURL(j,$={}){const _e=$[j.id]||{},et="".concat(j.id,"-worker.js");let tt=_e.workerUrl;if(!tt&&j.id==="compression"&&(tt=$.workerUrl),$._workerType==="test"&&(tt="modules/".concat(j.module,"/dist/").concat(et)),!tt){let rt=j.version;rt==="latest"&&(rt=NPM_TAG);const nt=rt?"@".concat(rt):"";tt="https://unpkg.com/@loaders.gl/".concat(j.module).concat(nt,"/dist/").concat(et)}return assert$a(tt),tt}function validateWorkerVersion(j,$=VERSION$b){assert$a(j,"no worker provided");const _e=j.version;return!(!$||!_e)}const VERSION$a="3.2.10",loadLibraryPromises={};async function loadLibrary(j,$=null,_e={}){return $&&(j=getLibraryUrl(j,$,_e)),loadLibraryPromises[j]=loadLibraryPromises[j]||loadLibraryFromFile(j),await loadLibraryPromises[j]}function getLibraryUrl(j,$,_e){if(j.startsWith("http"))return j;const et=_e.modules||{};return et[j]?et[j]:isBrowser$2?_e.CDN?(assert$a(_e.CDN.startsWith("http")),"".concat(_e.CDN,"/").concat($,"@").concat(VERSION$a,"/dist/libs/").concat(j)):isWorker?"../src/libs/".concat(j):"modules/".concat($,"/src/libs/").concat(j):"modules/".concat($,"/dist/libs/").concat(j)}async function loadLibraryFromFile(j){if(j.endsWith("wasm"))return await(await fetch(j)).arrayBuffer();if(!isBrowser$2)try{return node$1&&void 0}catch{return null}if(isWorker)return importScripts(j);const _e=await(await fetch(j)).text();return loadLibraryFromString(_e,j)}function loadLibraryFromString(j,$){if(!isBrowser$2)return;if(isWorker)return eval.call(global_,j),null;const _e=document.createElement("script");_e.id=$;try{_e.appendChild(document.createTextNode(j))}catch{_e.text=j}return document.body.appendChild(_e),null}function canParseWithWorker(j,$){return!WorkerFarm.isSupported()||!isBrowser$2&&!($!=null&&$._nodeWorkers)?!1:j.worker&&($==null?void 0:$.worker)}async function parseWithWorker(j,$,_e,et,tt){const rt=j.id,nt=getWorkerURL(j,_e),ot=WorkerFarm.getWorkerFarm(_e).getWorkerPool({name:rt,url:nt});_e=JSON.parse(JSON.stringify(_e)),et=JSON.parse(JSON.stringify(et||{}));const At=await ot.startJob("process-on-worker",onMessage.bind(null,tt));return At.postMessage("process",{input:$,options:_e,context:et}),await(await At.result).result}async function onMessage(j,$,_e,et){switch(_e){case"done":$.done(et);break;case"error":$.error(new Error(et.error));break;case"process":const{id:tt,input:rt,options:nt}=et;try{const it=await j(rt,nt);$.postMessage("done",{id:tt,result:it})}catch(it){const ot=it instanceof Error?it.message:"unknown error";$.postMessage("error",{id:tt,error:ot})}break;default:console.warn("parse-with-worker unknown message ".concat(_e))}}function getFirstCharacters$1(j,$=5){return typeof j=="string"?j.slice(0,$):ArrayBuffer.isView(j)?getMagicString$3(j.buffer,j.byteOffset,$):j instanceof ArrayBuffer?getMagicString$3(j,0,$):""}function getMagicString$3(j,$,_e){if(j.byteLength<=$+_e)return"";const et=new DataView(j);let tt="";for(let rt=0;rt<_e;rt++)tt+=String.fromCharCode(et.getUint8($+rt));return tt}function parseJSON(j){try{return JSON.parse(j)}catch{throw new Error('Failed to parse JSON from data starting with "'.concat(getFirstCharacters$1(j),'"'))}}function isBuffer$2(j){return j&&typeof j=="object"&&j.isBuffer}function bufferToArrayBuffer(j){return isBuffer$2(j)?new Uint8Array(j.buffer,j.byteOffset,j.length).slice().buffer:j}function toArrayBuffer(j){if(isBuffer$2(j))return bufferToArrayBuffer(j);if(j instanceof ArrayBuffer)return j;if(ArrayBuffer.isView(j))return j.byteOffset===0&&j.byteLength===j.buffer.byteLength?j.buffer:j.buffer.slice(j.byteOffset,j.byteOffset+j.byteLength);if(typeof j=="string"){const $=j;return new TextEncoder().encode($).buffer}if(j&&typeof j=="object"&&j._toArrayBuffer)return j._toArrayBuffer();throw new Error("toArrayBuffer")}function compareArrayBuffers(j,$,_e){if(_e=_e||j.byteLength,j.byteLength<_e||$.byteLength<_e)return!1;const et=new Uint8Array(j),tt=new Uint8Array($);for(let rt=0;rtrt instanceof ArrayBuffer?new Uint8Array(rt):rt),_e=$.reduce((rt,nt)=>rt+nt.byteLength,0),et=new Uint8Array(_e);let tt=0;for(const rt of $)et.set(rt,tt),tt+=rt.byteLength;return et.buffer}function concatenateTypedArrays(...j){const $=j,_e=$&&$.length>1&&$[0].constructor||null;if(!_e)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');const et=$.reduce((nt,it)=>nt+it.length,0),tt=new _e(et);let rt=0;for(const nt of $)tt.set(nt,rt),rt+=nt.length;return tt}function sliceArrayBuffer(j,$,_e){const et=_e!==void 0?new Uint8Array(j).subarray($,$+_e):new Uint8Array(j).subarray($);return new Uint8Array(et).buffer}function padToNBytes(j,$){return assert$b(j>=0),assert$b($>0),j+($-1)&~($-1)}function copyToArray(j,$,_e){let et;if(j instanceof ArrayBuffer)et=new Uint8Array(j);else{const tt=j.byteOffset,rt=j.byteLength;et=new Uint8Array(j.buffer||j.arrayBuffer,tt,rt)}return $.set(et,_e),_e+padToNBytes(et.byteLength,4)}async function concatenateArrayBuffersAsync(j){const $=[];for await(const _e of j)$.push(_e);return concatenateArrayBuffers(...$)}function getHiResTimestamp$1(){let j;if(typeof window<"u"&&window.performance)j=window.performance.now();else if(typeof process<"u"&&process.hrtime){const $=process.hrtime();j=$[0]*1e3+$[1]/1e6}else j=Date.now();return j}class Stat{constructor($,_e){_defineProperty$e(this,"name",void 0),_defineProperty$e(this,"type",void 0),_defineProperty$e(this,"sampleSize",1),_defineProperty$e(this,"time",void 0),_defineProperty$e(this,"count",void 0),_defineProperty$e(this,"samples",void 0),_defineProperty$e(this,"lastTiming",void 0),_defineProperty$e(this,"lastSampleTime",void 0),_defineProperty$e(this,"lastSampleCount",void 0),_defineProperty$e(this,"_count",0),_defineProperty$e(this,"_time",0),_defineProperty$e(this,"_samples",0),_defineProperty$e(this,"_startTime",0),_defineProperty$e(this,"_timerPending",!1),this.name=$,this.type=_e,this.reset()}setSampleSize($){return this.sampleSize=$,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount($){return this._count+=$,this._samples++,this._checkSampling(),this}subtractCount($){return this._count-=$,this._samples++,this._checkSampling(),this}addTime($){return this._time+=$,this.lastTiming=$,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=getHiResTimestamp$1(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(getHiResTimestamp$1()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class Stats{constructor($){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"stats",{}),this.id=$.id,this.stats={},this._initializeStats($.stats),Object.seal(this)}get($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:$,type:_e})}get size(){return Object.keys(this.stats).length}reset(){for(const $ in this.stats)this.stats[$].reset();return this}forEach($){for(const _e in this.stats)$(this.stats[_e])}getTable(){const $={};return this.forEach(_e=>{$[_e.name]={time:_e.time||0,count:_e.count||0,average:_e.getAverageTime()||0,hz:_e.getHz()||0}}),$}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(_e=>this._getOrCreate(_e))}_getOrCreate($){if(!$||!$.name)return null;const{name:_e,type:et}=$;return this.stats[_e]||($ instanceof Stat?this.stats[_e]=$:this.stats[_e]=new Stat(_e,et)),this.stats[_e]}}const STAT_QUEUED_REQUESTS="Queued Requests",STAT_ACTIVE_REQUESTS="Active Requests",STAT_CANCELLED_REQUESTS="Cancelled Requests",STAT_QUEUED_REQUESTS_EVER="Queued Requests Ever",STAT_ACTIVE_REQUESTS_EVER="Active Requests Ever",DEFAULT_PROPS$3={id:"request-scheduler",throttleRequests:!0,maxRequests:6};class RequestScheduler{constructor($={}){_defineProperty$f(this,"props",void 0),_defineProperty$f(this,"stats",void 0),_defineProperty$f(this,"activeRequestCount",0),_defineProperty$f(this,"requestQueue",[]),_defineProperty$f(this,"requestMap",new Map),_defineProperty$f(this,"deferredUpdate",null),this.props={...DEFAULT_PROPS$3,...$},this.stats=new Stats({id:this.props.id}),this.stats.get(STAT_QUEUED_REQUESTS),this.stats.get(STAT_ACTIVE_REQUESTS),this.stats.get(STAT_CANCELLED_REQUESTS),this.stats.get(STAT_QUEUED_REQUESTS_EVER),this.stats.get(STAT_ACTIVE_REQUESTS_EVER)}scheduleRequest($,_e=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has($))return this.requestMap.get($);const et={handle:$,priority:0,getPriority:_e},tt=new Promise(rt=>(et.resolve=rt,et));return this.requestQueue.push(et),this.requestMap.set($,tt),this._issueNewRequests(),tt}_issueRequest($){const{handle:_e,resolve:et}=$;let tt=!1;const rt=()=>{tt||(tt=!0,this.requestMap.delete(_e),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,et?et({done:rt}):Promise.resolve({done:rt})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;const $=Math.max(this.props.maxRequests-this.activeRequestCount,0);if($!==0){this._updateAllRequests();for(let _e=0;_e<$;++_e){const et=this.requestQueue.shift();et&&this._issueRequest(et)}}}_updateAllRequests(){const $=this.requestQueue;for(let _e=0;_e<$.length;++_e){const et=$[_e];this._updateRequest(et)||($.splice(_e,1),this.requestMap.delete(et.handle),_e--)}$.sort((_e,et)=>_e.priority-et.priority)}_updateRequest($){return $.priority=$.getPriority($.handle),$.priority<0?($.resolve(null),!1):!0}}let pathPrefix$1="";const fileAliases={};function resolvePath(j){for(const $ in fileAliases)if(j.startsWith($)){const _e=fileAliases[$];j=j.replace($,_e)}return!j.startsWith("http://")&&!j.startsWith("https://")&&(j="".concat(pathPrefix$1).concat(j)),j}function filename(j){const $=j&&j.lastIndexOf("/");return $>=0?j.substr($+1):""}function dirname(j){const $=j&&j.lastIndexOf("/");return $>=0?j.substr(0,$):""}const isBoolean=j=>typeof j=="boolean",isFunction$1=j=>typeof j=="function",isObject$2=j=>j!==null&&typeof j=="object",isPureObject=j=>isObject$2(j)&&j.constructor==={}.constructor,isIterable=j=>j&&typeof j[Symbol.iterator]=="function",isAsyncIterable$1=j=>j&&typeof j[Symbol.asyncIterator]=="function",isResponse=j=>typeof Response<"u"&&j instanceof Response||j&&j.arrayBuffer&&j.text&&j.json,isBlob=j=>typeof Blob<"u"&&j instanceof Blob,isBuffer$1=j=>j&&typeof j=="object"&&j.isBuffer,isReadableDOMStream=j=>typeof ReadableStream<"u"&&j instanceof ReadableStream||isObject$2(j)&&isFunction$1(j.tee)&&isFunction$1(j.cancel)&&isFunction$1(j.getReader),isReadableNodeStream=j=>isObject$2(j)&&isFunction$1(j.read)&&isFunction$1(j.pipe)&&isBoolean(j.readable),isReadableStream=j=>isReadableDOMStream(j)||isReadableNodeStream(j),DATA_URL_PATTERN=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,MIME_TYPE_PATTERN=/^([-\w.]+\/[-\w.+]+)/;function parseMIMEType(j){const $=MIME_TYPE_PATTERN.exec(j);return $?$[1]:j}function parseMIMETypeFromURL(j){const $=DATA_URL_PATTERN.exec(j);return $?$[1]:""}const QUERY_STRING_PATTERN=/\?.*/;function getResourceUrlAndType(j){if(isResponse(j)){const $=stripQueryString(j.url||""),_e=j.headers.get("content-type")||"";return{url:$,type:parseMIMEType(_e)||parseMIMETypeFromURL($)}}return isBlob(j)?{url:stripQueryString(j.name||""),type:j.type||""}:typeof j=="string"?{url:stripQueryString(j),type:parseMIMETypeFromURL(j)}:{url:"",type:""}}function getResourceContentLength(j){return isResponse(j)?j.headers["content-length"]||-1:isBlob(j)?j.size:typeof j=="string"?j.length:j instanceof ArrayBuffer||ArrayBuffer.isView(j)?j.byteLength:-1}function stripQueryString(j){return j.replace(QUERY_STRING_PATTERN,"")}async function makeResponse(j){if(isResponse(j))return j;const $={},_e=getResourceContentLength(j);_e>=0&&($["content-length"]=String(_e));const{url:et,type:tt}=getResourceUrlAndType(j);tt&&($["content-type"]=tt);const rt=await getInitialDataUrl(j);rt&&($["x-first-bytes"]=rt),typeof j=="string"&&(j=new TextEncoder().encode(j));const nt=new Response(j,{headers:$});return Object.defineProperty(nt,"url",{value:et}),nt}async function checkResponse(j){if(!j.ok){const $=await getResponseError(j);throw new Error($)}}async function getResponseError(j){let $="Failed to fetch resource ".concat(j.url," (").concat(j.status,"): ");try{const _e=j.headers.get("Content-Type");let et=j.statusText;_e.includes("application/json")&&(et+=" ".concat(await j.text())),$+=et,$=$.length>60?"".concat($.slice(0,60),"..."):$}catch{}return $}async function getInitialDataUrl(j){if(typeof j=="string")return"data:,".concat(j.slice(0,5));if(j instanceof Blob){const _e=j.slice(0,5);return await new Promise(et=>{const tt=new FileReader;tt.onload=rt=>{var nt;return et(rt==null||(nt=rt.target)===null||nt===void 0?void 0:nt.result)},tt.readAsDataURL(_e)})}if(j instanceof ArrayBuffer){const _e=j.slice(0,5),et=arrayBufferToBase64(_e);return"data:base64,".concat(et)}return null}function arrayBufferToBase64(j){let $="";const _e=new Uint8Array(j);for(let et=0;et<_e.byteLength;et++)$+=String.fromCharCode(_e[et]);return btoa($)}async function fetchFile(j,$){if(typeof j=="string"){j=resolvePath(j);let _e=$;return $!=null&&$.fetch&&typeof($==null?void 0:$.fetch)!="function"&&(_e=$.fetch),await fetch(j,_e)}return await makeResponse(j)}function isElectron(j){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron)return!0;const $=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,_e=j||$;return!!(_e&&_e.indexOf("Electron")>=0)}function isBrowser$1(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||isElectron()}const globals={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document,process:typeof process=="object"&&process},window_$1=globals.window||globals.self||globals.global,process_=globals.process||{},VERSION$9=typeof __VERSION__<"u"?__VERSION__:"untranspiled source";isBrowser$1();const window$1=globalThis;function getBrowser(j){if(!j&&!isBrowser$1())return"Node";if(isElectron(j))return"Electron";const _e=j||(typeof navigator<"u"?navigator:{}).userAgent||"";if(_e.indexOf("Edge")>-1)return"Edge";const et=_e.indexOf("MSIE ")!==-1,tt=_e.indexOf("Trident/")!==-1;return et||tt?"IE":window$1.chrome?"Chrome":window$1.safari?"Safari":window$1.mozInnerScreenX?"Firefox":"Unknown"}function getStorage(j){try{const $=window[j],_e="__storage_test__";return $.setItem(_e,_e),$.removeItem(_e),$}catch{return null}}class LocalStorage{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";_defineProperty$e(this,"storage",void 0),_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"config",{}),this.storage=getStorage(et),this.id=$,this.config={},Object.assign(this.config,_e),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration($){return this.config={},this.updateConfiguration($)}updateConfiguration($){if(Object.assign(this.config,$),this.storage){const _e=JSON.stringify(this.config);this.storage.setItem(this.id,_e)}return this}_loadConfiguration(){let $={};if(this.storage){const _e=this.storage.getItem(this.id);$=_e?JSON.parse(_e):{}}return Object.assign(this.config,$),this}}function formatTime(j){let $;return j<10?$="".concat(j.toFixed(2),"ms"):j<100?$="".concat(j.toFixed(1),"ms"):j<1e3?$="".concat(j.toFixed(0),"ms"):$="".concat((j/1e3).toFixed(2),"s"),$}function leftPad(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8;const _e=Math.max($-j.length,0);return"".concat(" ".repeat(_e)).concat(j)}function formatImage(j,$,_e){let et=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600;const tt=j.src.replace(/\(/g,"%28").replace(/\)/g,"%29");j.width>et&&(_e=Math.min(_e,et/j.width));const rt=j.width*_e,nt=j.height*_e,it=["font-size:1px;","padding:".concat(Math.floor(nt/2),"px ").concat(Math.floor(rt/2),"px;"),"line-height:".concat(nt,"px;"),"background:url(".concat(tt,");"),"background-size:".concat(rt,"px ").concat(nt,"px;"),"color:transparent;"].join("");return["".concat($," %c+"),it]}let COLOR;(function(j){j[j.BLACK=30]="BLACK",j[j.RED=31]="RED",j[j.GREEN=32]="GREEN",j[j.YELLOW=33]="YELLOW",j[j.BLUE=34]="BLUE",j[j.MAGENTA=35]="MAGENTA",j[j.CYAN=36]="CYAN",j[j.WHITE=37]="WHITE",j[j.BRIGHT_BLACK=90]="BRIGHT_BLACK",j[j.BRIGHT_RED=91]="BRIGHT_RED",j[j.BRIGHT_GREEN=92]="BRIGHT_GREEN",j[j.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",j[j.BRIGHT_BLUE=94]="BRIGHT_BLUE",j[j.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",j[j.BRIGHT_CYAN=96]="BRIGHT_CYAN",j[j.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(COLOR||(COLOR={}));function getColor$1(j){return typeof j=="string"?COLOR[j.toUpperCase()]||COLOR.WHITE:j}function addColor(j,$,_e){return!isBrowser$1&&typeof j=="string"&&($&&($=getColor$1($),j="\x1B[".concat($,"m").concat(j,"\x1B[39m")),_e&&($=getColor$1(_e),j="\x1B[".concat(_e+10,"m").concat(j,"\x1B[49m"))),j}function autobind(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"];const _e=Object.getPrototypeOf(j),et=Object.getOwnPropertyNames(_e);for(const tt of et)typeof j[tt]=="function"&&($.find(rt=>tt===rt)||(j[tt]=j[tt].bind(j)))}function assert$9(j,$){if(!j)throw new Error($||"Assertion failed")}function getHiResTimestamp(){let j;if(isBrowser$1&&"performance"in window_$1){var $,_e;j=window_$1==null||($=window_$1.performance)===null||$===void 0||(_e=$.now)===null||_e===void 0?void 0:_e.call($)}else if("hrtime"in process_){var et;const tt=process_==null||(et=process_.hrtime)===null||et===void 0?void 0:et.call(process_);j=tt[0]*1e3+tt[1]/1e6}else j=Date.now();return j}const originalConsole={debug:isBrowser$1&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},DEFAULT_SETTINGS={enabled:!0,level:0};function noop$4(){}const cache$1={},ONCE={once:!0};class Log{constructor(){let{id:$}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"VERSION",VERSION$9),_defineProperty$e(this,"_startTs",getHiResTimestamp()),_defineProperty$e(this,"_deltaTs",getHiResTimestamp()),_defineProperty$e(this,"_storage",void 0),_defineProperty$e(this,"userData",{}),_defineProperty$e(this,"LOG_THROTTLE_TIMEOUT",0),this.id=$,this._storage=new LocalStorage("__probe-".concat(this.id,"__"),DEFAULT_SETTINGS),this.userData={},this.timeStamp("".concat(this.id," started")),autobind(this),Object.seal(this)}set level($){this.setLevel($)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((getHiResTimestamp()-this._startTs).toPrecision(10))}getDelta(){return Number((getHiResTimestamp()-this._deltaTs).toPrecision(10))}set priority($){this.level=$}get priority(){return this.level}getPriority(){return this.level}enable(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.updateConfiguration({enabled:$}),this}setLevel($){return this._storage.updateConfiguration({level:$}),this}get($){return this._storage.config[$]}set($,_e){this._storage.updateConfiguration({[$]:_e})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert($,_e){assert$9($,_e)}warn($){return this._getLogFunction(0,$,originalConsole.warn,arguments,ONCE)}error($){return this._getLogFunction(0,$,originalConsole.error,arguments)}deprecated($,_e){return this.warn("`".concat($,"` is deprecated and will be removed in a later version. Use `").concat(_e,"` instead"))}removed($,_e){return this.error("`".concat($,"` has been removed. Use `").concat(_e,"` instead"))}probe($,_e){return this._getLogFunction($,_e,originalConsole.log,arguments,{time:!0,once:!0})}log($,_e){return this._getLogFunction($,_e,originalConsole.debug,arguments)}info($,_e){return this._getLogFunction($,_e,console.info,arguments)}once($,_e){for(var et=arguments.length,tt=new Array(et>2?et-2:0),rt=2;rt2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1};const tt=normalizeArguments({logLevel:$,message:_e,opts:et}),{collapsed:rt}=et;return tt.method=(rt?console.groupCollapsed:console.group)||console.info,this._getLogFunction(tt)}groupCollapsed($,_e){let et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group($,_e,Object.assign({},et,{collapsed:!0}))}groupEnd($){return this._getLogFunction($,"",console.groupEnd||noop$4)}withGroup($,_e,et){this.group($,_e)();try{et()}finally{this.groupEnd($)()}}trace(){console.trace&&console.trace()}_shouldLog($){return this.isEnabled()&&this.getLevel()>=normalizeLogLevel($)}_getLogFunction($,_e,et,tt,rt){if(this._shouldLog($)){rt=normalizeArguments({logLevel:$,message:_e,args:tt,opts:rt}),et=et||rt.method,assert$9(et),rt.total=this.getTotal(),rt.delta=this.getDelta(),this._deltaTs=getHiResTimestamp();const nt=rt.tag||rt.message;if(rt.once)if(!cache$1[nt])cache$1[nt]=getHiResTimestamp();else return noop$4;return _e=decorateMessage(this.id,rt.message,rt),et.bind(console,_e,...rt.args)}return noop$4}}_defineProperty$e(Log,"VERSION",VERSION$9);function normalizeLogLevel(j){if(!j)return 0;let $;switch(typeof j){case"number":$=j;break;case"object":$=j.logLevel||j.priority||0;break;default:return 0}return assert$9(Number.isFinite($)&&$>=0),$}function normalizeArguments(j){const{logLevel:$,message:_e}=j;j.logLevel=normalizeLogLevel($);const et=j.args?Array.from(j.args):[];for(;et.length&&et.shift()!==_e;);switch(typeof $){case"string":case"function":_e!==void 0&&et.unshift(_e),j.message=$;break;case"object":Object.assign(j,$);break}typeof j.message=="function"&&(j.message=j.message());const tt=typeof j.message;return assert$9(tt==="string"||tt==="object"),Object.assign(j,{args:et},j.opts)}function decorateMessage(j,$,_e){if(typeof $=="string"){const et=_e.time?leftPad(formatTime(_e.total)):"";$=_e.time?"".concat(j,": ").concat(et," ").concat($):"".concat(j,": ").concat($),$=addColor($,_e.color,_e.background)}return $}function logImageInNode(j){let{image:$,message:_e="",scale:et=1}=j;return(void 0)({image:$,message:_e,scale:et}),noop$4}function logImageInBrowser(j){let{image:$,message:_e="",scale:et=1}=j;if(typeof $=="string"){const rt=new Image;return rt.onload=()=>{const nt=formatImage(rt,_e,et);console.log(...nt)},rt.src=$,noop$4}const tt=$.nodeName||"";if(tt.toLowerCase()==="img")return console.log(...formatImage($,_e,et)),noop$4;if(tt.toLowerCase()==="canvas"){const rt=new Image;return rt.onload=()=>console.log(...formatImage(rt,_e,et)),rt.src=$.toDataURL(),noop$4}return noop$4}function getTableHeader(j){for(const $ in j)for(const _e in j[$])return _e||"untitled";return"empty"}const probeLog=new Log({id:"loaders.gl"});class NullLog{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}}class ConsoleLog{constructor(){_defineProperty$f(this,"console",void 0),this.console=console}log(...$){return this.console.log.bind(this.console,...$)}info(...$){return this.console.info.bind(this.console,...$)}warn(...$){return this.console.warn.bind(this.console,...$)}error(...$){return this.console.error.bind(this.console,...$)}}const DEFAULT_LOADER_OPTIONS={fetch:null,mimeType:void 0,nothrow:!1,log:new ConsoleLog,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:isBrowser$3,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},REMOVED_LOADER_OPTIONS={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function getGlobalLoaderState(){globalThis.loaders=globalThis.loaders||{};const{loaders:j}=globalThis;return j._state=j._state||{},j._state}const getGlobalLoaderOptions=()=>{const j=getGlobalLoaderState();return j.globalOptions=j.globalOptions||{...DEFAULT_LOADER_OPTIONS},j.globalOptions};function normalizeOptions$1(j,$,_e,et){return _e=_e||[],_e=Array.isArray(_e)?_e:[_e],validateOptions(j,_e),normalizeOptionsInternal($,j,et)}function getFetchFunction(j,$){const _e=getGlobalLoaderOptions(),et=j||_e;return typeof et.fetch=="function"?et.fetch:isObject$2(et.fetch)?tt=>fetchFile(tt,et):$!=null&&$.fetch?$==null?void 0:$.fetch:fetchFile}function validateOptions(j,$){validateOptionsObject(j,null,DEFAULT_LOADER_OPTIONS,REMOVED_LOADER_OPTIONS,$);for(const _e of $){const et=j&&j[_e.id]||{},tt=_e.options&&_e.options[_e.id]||{},rt=_e.deprecatedOptions&&_e.deprecatedOptions[_e.id]||{};validateOptionsObject(et,_e.id,tt,rt,$)}}function validateOptionsObject(j,$,_e,et,tt){const rt=$||"Top level",nt=$?"".concat($,"."):"";for(const it in j){const ot=!$&&isObject$2(j[it]),At=it==="baseUri"&&!$,ut=it==="workerUrl"&&$;if(!(it in _e)&&!At&&!ut){if(it in et)probeLog.warn("".concat(rt," loader option '").concat(nt).concat(it,"' no longer supported, use '").concat(et[it],"'"))();else if(!ot){const ft=findSimilarOption(it,tt);probeLog.warn("".concat(rt," loader option '").concat(nt).concat(it,"' not recognized. ").concat(ft))()}}}}function findSimilarOption(j,$){const _e=j.toLowerCase();let et="";for(const tt of $)for(const rt in tt.options){if(j===rt)return"Did you mean '".concat(tt.id,".").concat(rt,"'?");const nt=rt.toLowerCase();(_e.startsWith(nt)||nt.startsWith(_e))&&(et=et||"Did you mean '".concat(tt.id,".").concat(rt,"'?"))}return et}function normalizeOptionsInternal(j,$,_e){const tt={...j.options||{}};return addUrlOptions(tt,_e),tt.log===null&&(tt.log=new NullLog),mergeNestedFields(tt,getGlobalLoaderOptions()),mergeNestedFields(tt,$),tt}function mergeNestedFields(j,$){for(const _e in $)if(_e in $){const et=$[_e];isPureObject(et)&&isPureObject(j[_e])?j[_e]={...j[_e],...$[_e]}:j[_e]=$[_e]}}function addUrlOptions(j,$){$&&!("baseUri"in j)&&(j.baseUri=$)}function isLoaderObject(j){var $;return j?(Array.isArray(j)&&(j=j[0]),Array.isArray(($=j)===null||$===void 0?void 0:$.extensions)):!1}function normalizeLoader(j){var $,_e;assert$b(j,"null loader"),assert$b(isLoaderObject(j),"invalid loader");let et;return Array.isArray(j)&&(et=j[1],j=j[0],j={...j,options:{...j.options,...et}}),(($=j)!==null&&$!==void 0&&$.parseTextSync||(_e=j)!==null&&_e!==void 0&&_e.parseText)&&(j.text=!0),j.text||(j.binary=!0),j}const getGlobalLoaderRegistry=()=>{const j=getGlobalLoaderState();return j.loaderRegistry=j.loaderRegistry||[],j.loaderRegistry};function registerLoaders(j){const $=getGlobalLoaderRegistry();j=Array.isArray(j)?j:[j];for(const _e of j){const et=normalizeLoader(_e);$.find(tt=>et===tt)||$.unshift(et)}}function getRegisteredLoaders(){return getGlobalLoaderRegistry()}const log$4=new Log({id:"loaders.gl"}),EXT_PATTERN=/\.([^.]+)$/;async function selectLoader(j,$=[],_e,et){if(!validHTTPResponse(j))return null;let tt=selectLoaderSync(j,$,{..._e,nothrow:!0},et);if(tt)return tt;if(isBlob(j)&&(j=await j.slice(0,10).arrayBuffer(),tt=selectLoaderSync(j,$,_e,et)),!tt&&!(_e!=null&&_e.nothrow))throw new Error(getNoValidLoaderMessage(j));return tt}function selectLoaderSync(j,$=[],_e,et){if(!validHTTPResponse(j))return null;if($&&!Array.isArray($))return normalizeLoader($);let tt=[];$&&(tt=tt.concat($)),_e!=null&&_e.ignoreRegisteredLoaders||tt.push(...getRegisteredLoaders()),normalizeLoaders(tt);const rt=selectLoaderInternal(j,tt,_e,et);if(!rt&&!(_e!=null&&_e.nothrow))throw new Error(getNoValidLoaderMessage(j));return rt}function selectLoaderInternal(j,$,_e,et){const{url:tt,type:rt}=getResourceUrlAndType(j),nt=tt||(et==null?void 0:et.url);let it=null,ot="";if(_e!=null&&_e.mimeType&&(it=findLoaderByMIMEType($,_e==null?void 0:_e.mimeType),ot="match forced by supplied MIME type ".concat(_e==null?void 0:_e.mimeType)),it=it||findLoaderByUrl($,nt),ot=ot||(it?"matched url ".concat(nt):""),it=it||findLoaderByMIMEType($,rt),ot=ot||(it?"matched MIME type ".concat(rt):""),it=it||findLoaderByInitialBytes($,j),ot=ot||(it?"matched initial data ".concat(getFirstCharacters(j)):""),it=it||findLoaderByMIMEType($,_e==null?void 0:_e.fallbackMimeType),ot=ot||(it?"matched fallback MIME type ".concat(rt):""),ot){var At;log$4.log(1,"selectLoader selected ".concat((At=it)===null||At===void 0?void 0:At.name,": ").concat(ot,"."))}return it}function validHTTPResponse(j){return!(j instanceof Response&&j.status===204)}function getNoValidLoaderMessage(j){const{url:$,type:_e}=getResourceUrlAndType(j);let et="No valid loader found (";et+=$?"".concat(filename($),", "):"no url provided, ",et+="MIME type: ".concat(_e?'"'.concat(_e,'"'):"not provided",", ");const tt=j?getFirstCharacters(j):"";return et+=tt?' first bytes: "'.concat(tt,'"'):"first bytes: not available",et+=")",et}function normalizeLoaders(j){for(const $ of j)normalizeLoader($)}function findLoaderByUrl(j,$){const _e=$&&EXT_PATTERN.exec($),et=_e&&_e[1];return et?findLoaderByExtension(j,et):null}function findLoaderByExtension(j,$){$=$.toLowerCase();for(const _e of j)for(const et of _e.extensions)if(et.toLowerCase()===$)return _e;return null}function findLoaderByMIMEType(j,$){for(const _e of j)if(_e.mimeTypes&&_e.mimeTypes.includes($)||$==="application/x.".concat(_e.id))return _e;return null}function findLoaderByInitialBytes(j,$){if(!$)return null;for(const _e of j)if(typeof $=="string"){if(testDataAgainstText($,_e))return _e}else if(ArrayBuffer.isView($)){if(testDataAgainstBinary($.buffer,$.byteOffset,_e))return _e}else if($ instanceof ArrayBuffer&&testDataAgainstBinary($,0,_e))return _e;return null}function testDataAgainstText(j,$){return $.testText?$.testText(j):(Array.isArray($.tests)?$.tests:[$.tests]).some(et=>j.startsWith(et))}function testDataAgainstBinary(j,$,_e){return(Array.isArray(_e.tests)?_e.tests:[_e.tests]).some(tt=>testBinary(j,$,_e,tt))}function testBinary(j,$,_e,et){if(et instanceof ArrayBuffer)return compareArrayBuffers(et,j,et.byteLength);switch(typeof et){case"function":return et(j,_e);case"string":const tt=getMagicString$2(j,$,et.length);return et===tt;default:return!1}}function getFirstCharacters(j,$=5){return typeof j=="string"?j.slice(0,$):ArrayBuffer.isView(j)?getMagicString$2(j.buffer,j.byteOffset,$):j instanceof ArrayBuffer?getMagicString$2(j,0,$):""}function getMagicString$2(j,$,_e){if(j.byteLength<$+_e)return"";const et=new DataView(j);let tt="";for(let rt=0;rt<_e;rt++)tt+=String.fromCharCode(et.getUint8($+rt));return tt}const DEFAULT_CHUNK_SIZE$2=256*1024;function*makeStringIterator(j,$){const _e=($==null?void 0:$.chunkSize)||DEFAULT_CHUNK_SIZE$2;let et=0;const tt=new TextEncoder;for(;et{try{_e.onload=()=>et(_e),_e.onerror=rt=>tt(new Error("Could not load image ".concat(j,": ").concat(rt)))}catch(rt){tt(rt)}})}const EMPTY_OBJECT={};let imagebitmapOptionsSupported=!0;async function parseToImageBitmap(j,$,_e){let et;isSVG(_e)?et=await parseToImage(j,$,_e):et=getBlob(j,_e);const tt=$&&$.imagebitmap;return await safeCreateImageBitmap(et,tt)}async function safeCreateImageBitmap(j,$=null){if((isEmptyObject($)||!imagebitmapOptionsSupported)&&($=null),$)try{return await createImageBitmap(j,$)}catch(_e){console.warn(_e),imagebitmapOptionsSupported=!1}return await createImageBitmap(j)}function isEmptyObject(j){for(const $ in j||EMPTY_OBJECT)return!1;return!0}const BIG_ENDIAN=!1,LITTLE_ENDIAN=!0;function getBinaryImageMetadata(j){const $=toDataView(j);return getPngMetadata($)||getJpegMetadata($)||getGifMetadata($)||getBmpMetadata($)}function getPngMetadata(j){const $=toDataView(j);return $.byteLength>=24&&$.getUint32(0,BIG_ENDIAN)===2303741511?{mimeType:"image/png",width:$.getUint32(16,BIG_ENDIAN),height:$.getUint32(20,BIG_ENDIAN)}:null}function getGifMetadata(j){const $=toDataView(j);return $.byteLength>=10&&$.getUint32(0,BIG_ENDIAN)===1195984440?{mimeType:"image/gif",width:$.getUint16(6,LITTLE_ENDIAN),height:$.getUint16(8,LITTLE_ENDIAN)}:null}function getBmpMetadata(j){const $=toDataView(j);return $.byteLength>=14&&$.getUint16(0,BIG_ENDIAN)===16973&&$.getUint32(2,LITTLE_ENDIAN)===$.byteLength?{mimeType:"image/bmp",width:$.getUint32(18,LITTLE_ENDIAN),height:$.getUint32(22,LITTLE_ENDIAN)}:null}function getJpegMetadata(j){const $=toDataView(j);if(!($.byteLength>=3&&$.getUint16(0,BIG_ENDIAN)===65496&&$.getUint8(2)===255))return null;const{tableMarkers:et,sofMarkers:tt}=getJpegMarkers();let rt=2;for(;rt+9<$.byteLength;){const nt=$.getUint16(rt,BIG_ENDIAN);if(tt.has(nt))return{mimeType:"image/jpeg",height:$.getUint16(rt+5,BIG_ENDIAN),width:$.getUint16(rt+7,BIG_ENDIAN)};if(!et.has(nt))return null;rt+=2,rt+=$.getUint16(rt,BIG_ENDIAN)}return null}function getJpegMarkers(){const j=new Set([65499,65476,65484,65501,65534]);for(let _e=65504;_e<65520;++_e)j.add(_e);return{tableMarkers:j,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function toDataView(j){if(j instanceof DataView)return j;if(ArrayBuffer.isView(j))return new DataView(j.buffer);if(j instanceof ArrayBuffer)return new DataView(j);throw new Error("toDataView")}async function parseToNodeImage(j,$){const{mimeType:_e}=getBinaryImageMetadata(j)||{},et=globalThis._parseImageNode;return assert$b(et),await et(j,_e)}async function parseImage(j,$,_e){$=$||{};const tt=($.image||{}).type||"auto",{url:rt}=_e||{},nt=getLoadableImageType(tt);let it;switch(nt){case"imagebitmap":it=await parseToImageBitmap(j,$,rt);break;case"image":it=await parseToImage(j,$,rt);break;case"data":it=await parseToNodeImage(j);break;default:assert$b(!1)}return tt==="data"&&(it=getImageData(it)),it}function getLoadableImageType(j){switch(j){case"auto":case"data":return getDefaultImageType();default:return isImageTypeSupported(j),j}}const EXTENSIONS$1=["png","jpg","jpeg","gif","webp","bmp","ico","svg"],MIME_TYPES=["image/png","image/jpeg","image/gif","image/webp","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],DEFAULT_IMAGE_LOADER_OPTIONS={image:{type:"auto",decode:!0}},ImageLoader={id:"image",module:"images",name:"Images",version:VERSION$8,mimeTypes:MIME_TYPES,extensions:EXTENSIONS$1,parse:parseImage,tests:[j=>!!getBinaryImageMetadata(new DataView(j))],options:DEFAULT_IMAGE_LOADER_OPTIONS},NODE_FORMAT_SUPPORT=["image/png","image/jpeg","image/gif"],mimeTypeSupported={};function _isImageFormatSupported(j){return mimeTypeSupported[j]===void 0&&(mimeTypeSupported[j]=checkFormatSupport(j)),mimeTypeSupported[j]}function checkFormatSupport(j){switch(j){case"image/webp":return checkWebPSupport();case"image/svg":return isBrowser$3;default:if(!isBrowser$3){const{_parseImageNode:$}=globalThis;return!!$&&NODE_FORMAT_SUPPORT.includes(j)}return!0}}function checkWebPSupport(){if(!isBrowser$3)return!1;try{return document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp")===0}catch{return!1}}const log$3=new Log({id:"deck"}),logState={attributeUpdateStart:-1,attributeManagerUpdateStart:-1,attributeUpdateMessages:[]},LOG_LEVEL_MAJOR_UPDATE=1,LOG_LEVEL_MINOR_UPDATE=2,LOG_LEVEL_UPDATE_DETAIL=3,LOG_LEVEL_INFO=4,LOG_LEVEL_DRAW=2,getLoggers=j=>({"layer.changeFlag":($,_e,et)=>{j.log(LOG_LEVEL_UPDATE_DETAIL,"".concat($.id," ").concat(_e,": "),et[_e])()},"layer.initialize":$=>{j.log(LOG_LEVEL_MAJOR_UPDATE,"Initializing ".concat($))()},"layer.update":($,_e)=>{if(_e){const et=$.getChangeFlags();j.log(LOG_LEVEL_MINOR_UPDATE,"Updating ".concat($," because: ").concat(Object.keys(et).filter(tt=>et[tt]).join(", ")))()}else j.log(LOG_LEVEL_INFO,"".concat($," does not need update"))()},"layer.matched":($,_e)=>{_e&&j.log(LOG_LEVEL_INFO,"Matched ".concat($,", state transfered"))()},"layer.finalize":$=>{j.log(LOG_LEVEL_MAJOR_UPDATE,"Finalizing ".concat($))()},"compositeLayer.renderLayers":($,_e,et)=>{_e?j.log(LOG_LEVEL_MINOR_UPDATE,"Composite layer rendered new subLayers ".concat($),et)():j.log(LOG_LEVEL_INFO,"Composite layer reused subLayers ".concat($),et)()},"layerManager.setLayers":($,_e,et)=>{_e&&j.log(LOG_LEVEL_MINOR_UPDATE,"Updating ".concat(et.length," deck layers"))()},"layerManager.activateViewport":($,_e)=>{j.log(LOG_LEVEL_UPDATE_DETAIL,"Viewport changed",_e)()},"attributeManager.invalidate":($,_e,et)=>{j.log(LOG_LEVEL_MAJOR_UPDATE,et?"invalidated attributes ".concat(et," (").concat(_e,") for ").concat($.id):"invalidated all attributes for ".concat($.id))()},"attributeManager.updateStart":$=>{logState.attributeUpdateMessages.length=0,logState.attributeManagerUpdateStart=Date.now()},"attributeManager.updateEnd":($,_e)=>{const et=Math.round(Date.now()-logState.attributeManagerUpdateStart);j.groupCollapsed(LOG_LEVEL_MINOR_UPDATE,"Updated attributes for ".concat(_e," instances in ").concat($.id," in ").concat(et,"ms"))();for(const tt of logState.attributeUpdateMessages)j.log(LOG_LEVEL_UPDATE_DETAIL,tt)();j.groupEnd(LOG_LEVEL_MINOR_UPDATE)()},"attribute.updateStart":$=>{logState.attributeUpdateStart=Date.now()},"attribute.allocate":($,_e)=>{const et="".concat($.id," allocated ").concat(_e);logState.attributeUpdateMessages.push(et)},"attribute.updateEnd":($,_e)=>{const et=Math.round(Date.now()-logState.attributeUpdateStart),tt="".concat($.id," updated ").concat(_e," in ").concat(et,"ms");logState.attributeUpdateMessages.push(tt)},"deckRenderer.renderLayers":($,_e,et)=>{const{pass:tt,redrawReason:rt,stats:nt}=et;for(const it of _e){const{totalCount:ot,visibleCount:At,compositeCount:ut,pickableCount:ft}=it,Et=ot-ut-At;j.log(LOG_LEVEL_DRAW,"RENDER #".concat($.renderCount," ").concat(At," (of ").concat(ot," layers) to ").concat(tt," because ").concat(rt," (").concat(Et," hidden, ").concat(ut," composite ").concat(ft," pickable)"))(),nt&&nt.get("Redraw Layers").add(At)}}});let loggers={};loggers=getLoggers(log$3);function register(j){loggers=j}function debug(j,$,_e,et){log$3.level>0&&loggers[j]&&loggers[j].call(null,$,_e,et)}function isJSON(j){const $=j[0],_e=j[j.length-1];return $==="{"&&_e==="}"||$==="["&&_e==="]"}const jsonLoader={id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:isJSON,parseTextSync:JSON.parse},version="8.8.27",existingVersion=globalThis.deck&&globalThis.deck.VERSION;if(existingVersion&&existingVersion!==version)throw new Error("deck.gl - multiple versions detected: ".concat(existingVersion," vs ").concat(version));existingVersion||(log$3.log(1,"deck.gl ".concat(version))(),globalThis.deck={...globalThis.deck,VERSION:version,version,log:log$3,_registerLoggers:register},registerLoaders([jsonLoader,[ImageLoader,{imagebitmap:{premultiplyAlpha:"none"}}]]));const deckGlobal=globalThis.deck,log$2=new Log({id:"luma.gl"});function assert$8(j,$){if(!j)throw new Error($||"luma.gl: assertion failed.")}const ERR_CONTEXT="Invalid WebGLRenderingContext",ERR_WEBGL2="Requires WebGL2";function isWebGL(j){return typeof WebGLRenderingContext<"u"&&j instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&j instanceof WebGL2RenderingContext?!0:!!(j&&Number.isFinite(j._version))}function isWebGL2$1(j){return typeof WebGL2RenderingContext<"u"&&j instanceof WebGL2RenderingContext?!0:!!(j&&j._version===2)}function getWebGL2Context(j){return isWebGL2$1(j)?j:null}function assertWebGLContext(j){return assert$8(isWebGL(j),ERR_CONTEXT),j}function assertWebGL2Context(j){return assert$8(isWebGL2$1(j),ERR_WEBGL2),j}const glErrorShadow={};function error(j){globalThis.console&&globalThis.console.error&&globalThis.console.error(j)}function log$1(j){globalThis.console&&globalThis.console.log&&globalThis.console.log(j)}function synthesizeGLError(j,$){glErrorShadow[j]=!0,$!==void 0&&error($)}function wrapGLError(j){const $=j.getError;j.getError=function(){let et;do et=$.apply(j),et!==0&&(glErrorShadow[et]=!0);while(et!==0);for(et in glErrorShadow)if(glErrorShadow[et])return delete glErrorShadow[et],parseInt(et,10);return 0}}const WebGLVertexArrayObjectOES=function j($){const _e=$.gl;this.ext=$,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array($.maxVertexAttribs);for(let et=0;et{log$1("OESVertexArrayObject emulation library context restored"),_e.reset_()},!0),this.reset_()};OESVertexArrayObject.prototype.VERTEX_ARRAY_BINDING_OES=34229;OESVertexArrayObject.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let et=0;etisWebGL2$1(j)?void 0:0,WEBGL_PARAMETERS={3074:j=>isWebGL2$1(j)?void 0:36064,[GL_FRAGMENT_SHADER_DERIVATIVE_HINT]:j=>isWebGL2$1(j)?void 0:GL_DONT_CARE,35977:getWebGL2ValueOrZero,32937:getWebGL2ValueOrZero,[GL_GPU_DISJOINT_EXT$1]:(j,$)=>{const _e=isWebGL2$1(j)?j.getExtension(EXT_disjoint_timer_query_webgl2):j.getExtension(EXT_disjoint_timer_query$1);return _e&&_e.GPU_DISJOINT_EXT?$(_e.GPU_DISJOINT_EXT):0},[GL_UNMASKED_VENDOR_WEBGL]:(j,$)=>{const _e=j.getExtension(WEBGL_debug_renderer_info);return $(_e&&_e.UNMASKED_VENDOR_WEBGL||7936)},[GL_UNMASKED_RENDERER_WEBGL]:(j,$)=>{const _e=j.getExtension(WEBGL_debug_renderer_info);return $(_e&&_e.UNMASKED_RENDERER_WEBGL||7937)},[GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT]:(j,$)=>{const _e=j.luma.extensions[EXT_texture_filter_anisotropic$1];return _e?$(_e.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},32883:getWebGL2ValueOrZero,35071:getWebGL2ValueOrZero,37447:getWebGL2ValueOrZero,36063:(j,$)=>{if(!isWebGL2$1(j)){const _e=j.getExtension(WEBGL_draw_buffers$1);return _e?$(_e.MAX_COLOR_ATTACHMENTS_WEBGL):0}},35379:getWebGL2ValueOrZero,35374:getWebGL2ValueOrZero,35377:getWebGL2ValueOrZero,34852:j=>{if(!isWebGL2$1(j)){const $=j.getExtension(WEBGL_draw_buffers$1);return $?$.MAX_DRAW_BUFFERS_WEBGL:0}},36203:j=>j.getExtension(OES_element_index)?2147483647:65535,33001:j=>j.getExtension(OES_element_index)?16777216:65535,33e3:j=>16777216,37157:getWebGL2ValueOrZero,35373:getWebGL2ValueOrZero,35657:getWebGL2ValueOrZero,36183:getWebGL2ValueOrZero,37137:getWebGL2ValueOrZero,34045:getWebGL2ValueOrZero,35978:getWebGL2ValueOrZero,35979:getWebGL2ValueOrZero,35968:getWebGL2ValueOrZero,35376:getWebGL2ValueOrZero,35375:getWebGL2ValueOrZero,35659:getWebGL2ValueOrZero,37154:getWebGL2ValueOrZero,35371:getWebGL2ValueOrZero,35658:getWebGL2ValueOrZero,35076:getWebGL2ValueOrZero,35077:getWebGL2ValueOrZero,35380:getWebGL2ValueOrZero};function getParameterPolyfill(j,$,_e){const et=WEBGL_PARAMETERS[_e],tt=typeof et=="function"?et(j,$,_e):et;return tt!==void 0?tt:$(_e)}const OES_vertex_array_object="OES_vertex_array_object",ANGLE_instanced_arrays="ANGLE_instanced_arrays",WEBGL_draw_buffers="WEBGL_draw_buffers",EXT_disjoint_timer_query="EXT_disjoint_timer_query",EXT_texture_filter_anisotropic="EXT_texture_filter_anisotropic",ERR_VAO_NOT_SUPPORTED="VertexArray requires WebGL2 or OES_vertex_array_object extension";function getExtensionData(j,$){return{webgl2:isWebGL2$1(j),ext:j.getExtension($)}}const WEBGL2_CONTEXT_POLYFILLS={[OES_vertex_array_object]:{meta:{suffix:"OES"},createVertexArray:()=>{assert$8(!1,ERR_VAO_NOT_SUPPORTED)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[ANGLE_instanced_arrays]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(j,$){assert$8($===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[WEBGL_draw_buffers]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{assert$8(!1)}},[EXT_disjoint_timer_query]:{meta:{suffix:"EXT"},createQuery:()=>{assert$8(!1)},deleteQuery:()=>{assert$8(!1)},beginQuery:()=>{assert$8(!1)},endQuery:()=>{},getQuery(j,$){return this.getQueryObject(j,$)},getQueryParameter(j,$){return this.getQueryObject(j,$)},getQueryObject:()=>{}}},WEBGL2_CONTEXT_OVERRIDES={readBuffer:(j,$,_e)=>{isWebGL2$1(j)&&$(_e)},getVertexAttrib:(j,$,_e,et)=>{const{webgl2:tt,ext:rt}=getExtensionData(j,ANGLE_instanced_arrays);let nt;switch(et){case 35069:nt=tt?void 0:!1;break;case 35070:nt=!tt&&!rt?0:void 0;break}return nt!==void 0?nt:$(_e,et)},getProgramParameter:(j,$,_e,et)=>{if(!isWebGL2$1(j))switch(et){case 35967:return 35981;case 35971:return 0;case 35382:return 0}return $(_e,et)},getInternalformatParameter:(j,$,_e,et,tt)=>{if(!isWebGL2$1(j))switch(tt){case 32937:return new Int32Array([0])}return j.getInternalformatParameter(_e,et,tt)},getTexParameter(j,$,_e,et){switch(et){case 34046:const{extensions:tt}=j.luma,rt=tt[EXT_texture_filter_anisotropic];et=rt&&rt.TEXTURE_MAX_ANISOTROPY_EXT||34046;break}return $(_e,et)},getParameter:getParameterPolyfill,hint(j,$,_e,et){return $(_e,et)}};function polyfillContext(j){j.luma=j.luma||{};const{luma:$}=j;return $.polyfilled||(polyfillVertexArrayObject(j),initializeExtensions(j),installPolyfills(j,WEBGL2_CONTEXT_POLYFILLS),installOverrides(j,{target:$,target2:j}),$.polyfilled=!0),j}globalThis.polyfillContext=polyfillContext;function initializeExtensions(j){j.luma.extensions={};const $=j.getSupportedExtensions()||[];for(const _e of $)j.luma[_e]=j.getExtension(_e)}function installOverrides(j,$){let{target:_e,target2:et}=$;Object.keys(WEBGL2_CONTEXT_OVERRIDES).forEach(tt=>{if(typeof WEBGL2_CONTEXT_OVERRIDES[tt]=="function"){const rt=j[tt]?j[tt].bind(j):()=>{},nt=WEBGL2_CONTEXT_OVERRIDES[tt].bind(null,j,rt);_e[tt]=nt,et[tt]=nt}})}function installPolyfills(j,$){for(const _e of Object.getOwnPropertyNames($))_e!=="overrides"&&polyfillExtension(j,{extension:_e,target:j.luma,target2:j})}function polyfillExtension(j,$){let{extension:_e,target:et,target2:tt}=$;const rt=WEBGL2_CONTEXT_POLYFILLS[_e];assert$8(rt);const{meta:nt={}}=rt,{suffix:it=""}=nt,ot=j.getExtension(_e);for(const At of Object.keys(rt)){const ut="".concat(At).concat(it);let ft=null;At==="meta"||typeof j[At]=="function"||(ot&&typeof ot[ut]=="function"?ft=function(){return ot[ut](...arguments)}:typeof rt[At]=="function"&&(ft=rt[At].bind(et))),ft&&(et[At]=ft,tt[At]=ft)}}const GL_PARAMETER_DEFAULTS={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,36006:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],3333:4,3317:4,37440:!1,37441:!1,37443:37444,35723:4352,36010:null,35977:!1,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},enable=(j,$,_e)=>$?j.enable(_e):j.disable(_e),hint=(j,$,_e)=>j.hint(_e,$),pixelStorei=(j,$,_e)=>j.pixelStorei(_e,$),drawFramebuffer=(j,$)=>{const _e=isWebGL2$1(j)?36009:36160;return j.bindFramebuffer(_e,$)},readFramebuffer=(j,$)=>j.bindFramebuffer(36008,$);function isArray$1(j){return Array.isArray(j)||ArrayBuffer.isView(j)}const GL_PARAMETER_SETTERS={3042:enable,32773:(j,$)=>j.blendColor(...$),32777:"blendEquation",34877:"blendEquation",32969:"blendFunc",32968:"blendFunc",32971:"blendFunc",32970:"blendFunc",3106:(j,$)=>j.clearColor(...$),3107:(j,$)=>j.colorMask(...$),2884:enable,2885:(j,$)=>j.cullFace($),2929:enable,2931:(j,$)=>j.clearDepth($),2932:(j,$)=>j.depthFunc($),2928:(j,$)=>j.depthRange(...$),2930:(j,$)=>j.depthMask($),3024:enable,35723:hint,36006:drawFramebuffer,2886:(j,$)=>j.frontFace($),33170:hint,2849:(j,$)=>j.lineWidth($),32823:enable,32824:"polygonOffset",10752:"polygonOffset",35977:enable,32938:"sampleCoverage",32939:"sampleCoverage",3089:enable,3088:(j,$)=>j.scissor(...$),2960:enable,2961:(j,$)=>j.clearStencil($),2968:(j,$)=>j.stencilMaskSeparate(1028,$),36005:(j,$)=>j.stencilMaskSeparate(1029,$),2962:"stencilFuncFront",2967:"stencilFuncFront",2963:"stencilFuncFront",34816:"stencilFuncBack",36003:"stencilFuncBack",36004:"stencilFuncBack",2964:"stencilOpFront",2965:"stencilOpFront",2966:"stencilOpFront",34817:"stencilOpBack",34818:"stencilOpBack",34819:"stencilOpBack",2978:(j,$)=>j.viewport(...$),3333:pixelStorei,3317:pixelStorei,37440:pixelStorei,37441:pixelStorei,37443:pixelStorei,3330:pixelStorei,3332:pixelStorei,3331:pixelStorei,36010:readFramebuffer,3314:pixelStorei,32878:pixelStorei,3316:pixelStorei,3315:pixelStorei,32877:pixelStorei,framebuffer:(j,$)=>{const _e=$&&"handle"in $?$.handle:$;return j.bindFramebuffer(36160,_e)},blend:(j,$)=>$?j.enable(3042):j.disable(3042),blendColor:(j,$)=>j.blendColor(...$),blendEquation:(j,$)=>{$=isArray$1($)?$:[$,$],j.blendEquationSeparate(...$)},blendFunc:(j,$)=>{$=isArray$1($)&&$.length===2?[...$,...$]:$,j.blendFuncSeparate(...$)},clearColor:(j,$)=>j.clearColor(...$),clearDepth:(j,$)=>j.clearDepth($),clearStencil:(j,$)=>j.clearStencil($),colorMask:(j,$)=>j.colorMask(...$),cull:(j,$)=>$?j.enable(2884):j.disable(2884),cullFace:(j,$)=>j.cullFace($),depthTest:(j,$)=>$?j.enable(2929):j.disable(2929),depthFunc:(j,$)=>j.depthFunc($),depthMask:(j,$)=>j.depthMask($),depthRange:(j,$)=>j.depthRange(...$),dither:(j,$)=>$?j.enable(3024):j.disable(3024),derivativeHint:(j,$)=>{j.hint(35723,$)},frontFace:(j,$)=>j.frontFace($),mipmapHint:(j,$)=>j.hint(33170,$),lineWidth:(j,$)=>j.lineWidth($),polygonOffsetFill:(j,$)=>$?j.enable(32823):j.disable(32823),polygonOffset:(j,$)=>j.polygonOffset(...$),sampleCoverage:(j,$)=>j.sampleCoverage(...$),scissorTest:(j,$)=>$?j.enable(3089):j.disable(3089),scissor:(j,$)=>j.scissor(...$),stencilTest:(j,$)=>$?j.enable(2960):j.disable(2960),stencilMask:(j,$)=>{$=isArray$1($)?$:[$,$];const[_e,et]=$;j.stencilMaskSeparate(1028,_e),j.stencilMaskSeparate(1029,et)},stencilFunc:(j,$)=>{$=isArray$1($)&&$.length===3?[...$,...$]:$;const[_e,et,tt,rt,nt,it]=$;j.stencilFuncSeparate(1028,_e,et,tt),j.stencilFuncSeparate(1029,rt,nt,it)},stencilOp:(j,$)=>{$=isArray$1($)&&$.length===3?[...$,...$]:$;const[_e,et,tt,rt,nt,it]=$;j.stencilOpSeparate(1028,_e,et,tt),j.stencilOpSeparate(1029,rt,nt,it)},viewport:(j,$)=>j.viewport(...$)};function getValue$2(j,$,_e){return $[j]!==void 0?$[j]:_e[j]}const GL_COMPOSITE_PARAMETER_SETTERS={blendEquation:(j,$,_e)=>j.blendEquationSeparate(getValue$2(32777,$,_e),getValue$2(34877,$,_e)),blendFunc:(j,$,_e)=>j.blendFuncSeparate(getValue$2(32969,$,_e),getValue$2(32968,$,_e),getValue$2(32971,$,_e),getValue$2(32970,$,_e)),polygonOffset:(j,$,_e)=>j.polygonOffset(getValue$2(32824,$,_e),getValue$2(10752,$,_e)),sampleCoverage:(j,$,_e)=>j.sampleCoverage(getValue$2(32938,$,_e),getValue$2(32939,$,_e)),stencilFuncFront:(j,$,_e)=>j.stencilFuncSeparate(1028,getValue$2(2962,$,_e),getValue$2(2967,$,_e),getValue$2(2963,$,_e)),stencilFuncBack:(j,$,_e)=>j.stencilFuncSeparate(1029,getValue$2(34816,$,_e),getValue$2(36003,$,_e),getValue$2(36004,$,_e)),stencilOpFront:(j,$,_e)=>j.stencilOpSeparate(1028,getValue$2(2964,$,_e),getValue$2(2965,$,_e),getValue$2(2966,$,_e)),stencilOpBack:(j,$,_e)=>j.stencilOpSeparate(1029,getValue$2(34817,$,_e),getValue$2(34818,$,_e),getValue$2(34819,$,_e))},GL_HOOKED_SETTERS={enable:(j,$)=>j({[$]:!0}),disable:(j,$)=>j({[$]:!1}),pixelStorei:(j,$,_e)=>j({[$]:_e}),hint:(j,$,_e)=>j({[$]:_e}),bindFramebuffer:(j,$,_e)=>{switch($){case 36160:return j({36006:_e,36010:_e});case 36009:return j({36006:_e});case 36008:return j({36010:_e});default:return null}},blendColor:(j,$,_e,et,tt)=>j({32773:new Float32Array([$,_e,et,tt])}),blendEquation:(j,$)=>j({32777:$,34877:$}),blendEquationSeparate:(j,$,_e)=>j({32777:$,34877:_e}),blendFunc:(j,$,_e)=>j({32969:$,32968:_e,32971:$,32970:_e}),blendFuncSeparate:(j,$,_e,et,tt)=>j({32969:$,32968:_e,32971:et,32970:tt}),clearColor:(j,$,_e,et,tt)=>j({3106:new Float32Array([$,_e,et,tt])}),clearDepth:(j,$)=>j({2931:$}),clearStencil:(j,$)=>j({2961:$}),colorMask:(j,$,_e,et,tt)=>j({3107:[$,_e,et,tt]}),cullFace:(j,$)=>j({2885:$}),depthFunc:(j,$)=>j({2932:$}),depthRange:(j,$,_e)=>j({2928:new Float32Array([$,_e])}),depthMask:(j,$)=>j({2930:$}),frontFace:(j,$)=>j({2886:$}),lineWidth:(j,$)=>j({2849:$}),polygonOffset:(j,$,_e)=>j({32824:$,10752:_e}),sampleCoverage:(j,$,_e)=>j({32938:$,32939:_e}),scissor:(j,$,_e,et,tt)=>j({3088:new Int32Array([$,_e,et,tt])}),stencilMask:(j,$)=>j({2968:$,36005:$}),stencilMaskSeparate:(j,$,_e)=>j({[$===1028?2968:36005]:_e}),stencilFunc:(j,$,_e,et)=>j({2962:$,2967:_e,2963:et,34816:$,36003:_e,36004:et}),stencilFuncSeparate:(j,$,_e,et,tt)=>j({[$===1028?2962:34816]:_e,[$===1028?2967:36003]:et,[$===1028?2963:36004]:tt}),stencilOp:(j,$,_e,et)=>j({2964:$,2965:_e,2966:et,34817:$,34818:_e,34819:et}),stencilOpSeparate:(j,$,_e,et,tt)=>j({[$===1028?2964:34817]:_e,[$===1028?2965:34818]:et,[$===1028?2966:34819]:tt}),viewport:(j,$,_e,et,tt)=>j({2978:[$,_e,et,tt]})},isEnabled=(j,$)=>j.isEnabled($),GL_PARAMETER_GETTERS={3042:isEnabled,2884:isEnabled,2929:isEnabled,3024:isEnabled,32823:isEnabled,32926:isEnabled,32928:isEnabled,3089:isEnabled,2960:isEnabled,35977:isEnabled};function isObjectEmpty$1(j){for(const $ in j)return!1;return!0}function deepArrayEqual(j,$){if(j===$)return!0;const _e=Array.isArray(j)||ArrayBuffer.isView(j),et=Array.isArray($)||ArrayBuffer.isView($);if(_e&&et&&j.length===$.length){for(let tt=0;tt{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=$,this.program=null,this.stateStack=[],this.enable=!0,this.cache=_e?getParameters($):Object.assign({},GL_PARAMETER_DEFAULTS),this.log=et,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){this.stateStack.push({})}pop(){assert$8(this.stateStack.length>0);const $=this.stateStack[this.stateStack.length-1];setParameters(this.gl,$),this.stateStack.pop()}_updateCache($){let _e=!1,et;const tt=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(const rt in $){assert$8(rt!==void 0);const nt=$[rt],it=this.cache[rt];deepArrayEqual(nt,it)||(_e=!0,et=it,tt&&!(rt in tt)&&(tt[rt]=it),this.cache[rt]=nt)}return{valueChanged:_e,oldValue:et}}}function trackContextState(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{enable:_e=!0,copyState:et}=$;if(assert$8(et!==void 0),!j.state){const{polyfillContext:tt}=globalThis;tt&&tt(j),j.state=new GLState(j,{copyState:et}),installProgramSpy(j);for(const rt in GL_HOOKED_SETTERS){const nt=GL_HOOKED_SETTERS[rt];installSetterSpy(j,rt,nt)}installGetterOverride(j,"getParameter"),installGetterOverride(j,"isEnabled")}return j.state.enable=_e,j}function pushContextState(j){j.state||trackContextState(j,{copyState:!1}),j.state.push()}function popContextState(j){assert$8(j.state),j.state.pop()}function setParameters(j,$){if(assert$8(isWebGL(j),"setParameters requires a WebGL context"),isObjectEmpty$1($))return;const _e={};for(const tt in $){const rt=Number(tt),nt=GL_PARAMETER_SETTERS[tt];nt&&(typeof nt=="string"?_e[nt]=!0:nt(j,$[tt],rt))}const et=j.state&&j.state.cache;if(et)for(const tt in _e){const rt=GL_COMPOSITE_PARAMETER_SETTERS[tt];rt(j,$,et)}}function getParameters(j,$){if($=$||GL_PARAMETER_DEFAULTS,typeof $=="number"){const tt=$,rt=GL_PARAMETER_GETTERS[tt];return rt?rt(j,tt):j.getParameter(tt)}const _e=Array.isArray($)?$:Object.keys($),et={};for(const tt of _e){const rt=GL_PARAMETER_GETTERS[tt];et[tt]=rt?rt(j,Number(tt)):j.getParameter(Number(tt))}return et}function resetParameters(j){setParameters(j,GL_PARAMETER_DEFAULTS)}function withParameters(j,$,_e){if(isObjectEmpty$1($))return _e(j);const{nocatch:et=!0}=$;pushContextState(j),setParameters(j,$);let tt;if(et)tt=_e(j),popContextState(j);else try{tt=_e(j)}finally{popContextState(j)}return tt}function cssToDeviceRatio(j){const{luma:$}=j;if(j.canvas&&$){const _e=$.canvasSizeInfo,et="clientWidth"in _e?_e.clientWidth:j.canvas.clientWidth;return et?j.drawingBufferWidth/et:1}return 1}function cssToDevicePixels(j,$){let _e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const et=cssToDeviceRatio(j),tt=j.drawingBufferWidth,rt=j.drawingBufferHeight;return scalePixels$1($,et,tt,rt,_e)}function getDevicePixelRatio(j){const $=typeof window>"u"?1:window.devicePixelRatio||1;return Number.isFinite(j)?j<=0?1:j:j?$:1}function scalePixels$1(j,$,_e,et,tt){const rt=scaleX(j[0],$,_e);let nt=scaleY(j[1],$,et,tt),it=scaleX(j[0]+1,$,_e);const ot=it===_e-1?it:it-1;it=scaleY(j[1]+1,$,et,tt);let At;return tt?(it=it===0?it:it+1,At=nt,nt=it):At=it===et-1?it:it-1,{x:rt,y:nt,width:Math.max(ot-rt+1,1),height:Math.max(At-nt+1,1)}}function scaleX(j,$,_e){return Math.min(Math.round(j*$),_e-1)}function scaleY(j,$,_e,et){return et?Math.max(0,_e-1-Math.round(j*$)):Math.min(Math.round(j*$),_e-1)}const isBrowser$4=isBrowser$1(),isPage$1=isBrowser$4&&typeof document<"u",CONTEXT_DEFAULTS={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function createGLContext(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};assert$8(isBrowser$4,`createGLContext only available in the browser. +Create your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils`),j=Object.assign({},CONTEXT_DEFAULTS,j);const{width:$,height:_e}=j;function et(it){if(j.throwOnError)throw new Error(it);return console.error(it),null}j.onError=et;let tt;const{canvas:rt}=j,nt=getCanvas({canvas:rt,width:$,height:_e,onError:et});return tt=createBrowserContext(nt,j),tt?(tt=instrumentGLContext(tt,j),logInfo(tt),tt):null}function instrumentGLContext(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!j||j._instrumented)return j;j._version=j._version||getVersion(j),j.luma=j.luma||{},j.luma.canvasSizeInfo=j.luma.canvasSizeInfo||{},$=Object.assign({},CONTEXT_DEFAULTS,$);const{manageState:_e,debug:et}=$;return _e&&trackContextState(j,{copyState:!1,log:function(){for(var tt=arguments.length,rt=new Array(tt),nt=0;nt1&&arguments[1]!==void 0?arguments[1]:{};if(j.canvas){const et=getDevicePixelRatio($.useDevicePixels);setDevicePixelRatio(j,et,$);return}const _e=j.getExtension("STACKGL_resize_drawingbuffer");_e&&"width"in $&&"height"in $&&_e.resize($.width,$.height)}function createBrowserContext(j,$){const{onError:_e}=$;let et=null;const tt=ot=>et=ot.statusMessage||et;j.addEventListener("webglcontextcreationerror",tt,!1);const{webgl1:rt=!0,webgl2:nt=!0}=$;let it=null;return nt&&(it=it||j.getContext("webgl2",$),it=it||j.getContext("experimental-webgl2",$)),rt&&(it=it||j.getContext("webgl",$),it=it||j.getContext("experimental-webgl",$)),j.removeEventListener("webglcontextcreationerror",tt,!1),it?($.onContextLost&&j.addEventListener("webglcontextlost",$.onContextLost,!1),$.onContextRestored&&j.addEventListener("webglcontextrestored",$.onContextRestored,!1),it):_e("Failed to create ".concat(nt&&!rt?"WebGL2":"WebGL"," context: ").concat(et||"Unknown error"))}function getCanvas(j){let{canvas:$,width:_e=800,height:et=600,onError:tt}=j,rt;return typeof $=="string"?(isPage$1&&document.readyState==="complete"||tt("createGLContext called on canvas '".concat($,"' before page was loaded")),rt=document.getElementById($)):$?rt=$:(rt=document.createElement("canvas"),rt.id="lumagl-canvas",rt.style.width=Number.isFinite(_e)?"".concat(_e,"px"):"100%",rt.style.height=Number.isFinite(et)?"".concat(et,"px"):"100%",document.body.insertBefore(rt,document.body.firstChild)),rt}function logInfo(j){const $=isWebGL2$1(j)?"WebGL2":"WebGL1",_e=getContextDebugInfo(j),et=_e?"(".concat(_e.vendor,",").concat(_e.renderer,")"):"",tt=j.debug?" debug":"";log$2.info(1,"".concat($).concat(tt," context ").concat(et))()}function getVersion(j){return typeof WebGL2RenderingContext<"u"&&j instanceof WebGL2RenderingContext?2:1}function setDevicePixelRatio(j,$,_e){let et="width"in _e?_e.width:j.canvas.clientWidth,tt="height"in _e?_e.height:j.canvas.clientHeight;(!et||!tt)&&(log$2.log(1,"Canvas clientWidth/clientHeight is 0")(),$=1,et=j.canvas.width||1,tt=j.canvas.height||1),j.luma=j.luma||{},j.luma.canvasSizeInfo=j.luma.canvasSizeInfo||{};const rt=j.luma.canvasSizeInfo;if(rt.clientWidth!==et||rt.clientHeight!==tt||rt.devicePixelRatio!==$){let nt=$;const it=Math.floor(et*nt),ot=Math.floor(tt*nt);j.canvas.width=it,j.canvas.height=ot,(j.drawingBufferWidth!==it||j.drawingBufferHeight!==ot)&&(log$2.warn("Device pixel ratio clamped")(),nt=Math.min(j.drawingBufferWidth/et,j.drawingBufferHeight/tt),j.canvas.width=Math.floor(et*nt),j.canvas.height=Math.floor(tt*nt)),Object.assign(j.luma.canvasSizeInfo,{clientWidth:et,clientHeight:tt,devicePixelRatio:$})}}const VERSION$7="8.5.21",STARTUP_MESSAGE="set luma.log.level=1 (or higher) to trace rendering";class StatsManager{constructor(){this.stats=new Map}get($){return this.stats.has($)||this.stats.set($,new Stats({id:$})),this.stats.get($)}}const lumaStats=new StatsManager;if(globalThis.luma&&globalThis.luma.VERSION!==VERSION$7)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(VERSION$7));globalThis.luma||(isBrowser$1()&&log$2.log(1,"luma.gl ".concat(VERSION$7," - ").concat(STARTUP_MESSAGE))(),globalThis.luma=globalThis.luma||{VERSION:VERSION$7,version:VERSION$7,log:log$2,stats:lumaStats,globals:{modules:{},nodeIO:{}}});function requestAnimationFrame$1(j){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(j):setTimeout(j,1e3/60)}function cancelAnimationFrame$1(j){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(j):clearTimeout(j)}function assert$7(j,$){if(!j)throw new Error($||"luma.gl: assertion failed.")}function getKeyValue(j,$){if(typeof $!="string")return $;const _e=Number($);if(!isNaN(_e))return _e;$=$.replace(/^.*\./,"");const et=j[$];return assert$7(et!==void 0,"Accessing undefined constant GL.".concat($)),et}function getKey(j,$){$=Number($);for(const _e in j)if(j[_e]===$)return"GL.".concat(_e);return String($)}const uidCounters={};function uid(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";uidCounters[j]=uidCounters[j]||1;const $=uidCounters[j]++;return"".concat(j,"-").concat($)}function isPowerOfTwo(j){return assert$7(typeof j=="number","Input must be a number"),j&&(j&j-1)===0}function isObjectEmpty$2(j){let $=!0;for(const _e in j){$=!1;break}return $}function stubRemovedMethods(j,$,_e,et){const tt="See luma.gl ".concat(_e," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),rt=Object.getPrototypeOf(j);et.forEach(nt=>{rt.methodName||(rt[nt]=()=>{throw log$2.removed("Calling removed method ".concat($,".").concat(nt,": "),tt)(),new Error(nt)})})}const ERR_RESOURCE_METHOD_UNDEFINED="Resource subclass must define virtual methods";let Resource$1=class{get[Symbol.toStringTag](){return"Resource"}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};assertWebGLContext($);const{id:et,userData:tt={}}=_e;this.gl=$,this.gl2=$,this.id=et||uid(this[Symbol.toStringTag]),this.userData=tt,this._bound=!1,this._handle=_e.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}toString(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")}get handle(){return this._handle}delete(){let{deleteChildren:$=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const _e=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,_e&&$&&_e.filter(Boolean).forEach(et=>et.delete()),this}bind(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof $!="function")return this._bindHandle($),this;let _e;return this._bound?_e=$():(this._bindHandle(this.handle),this._bound=!0,_e=$(),this._bound=!1,this._bindHandle(null)),_e}unbind(){this.bind(null)}getParameter($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};$=getKeyValue(this.gl,$),assert$7($);const tt=(this.constructor.PARAMETERS||{})[$];if(tt){const rt=isWebGL2$1(this.gl);if(!((!("webgl2"in tt)||rt)&&(!("extension"in tt)||this.gl.getExtension(tt.extension)))){const it=tt.webgl1,ot="webgl2"in tt?tt.webgl2:tt.webgl1;return rt?ot:it}}return this._getParameter($,_e)}getParameters(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{parameters:_e,keys:et}=$,tt=this.constructor.PARAMETERS||{},rt=isWebGL2$1(this.gl),nt={},it=_e||Object.keys(tt);for(const ot of it){const At=tt[ot];if(At&&(!("webgl2"in At)||rt)&&(!("extension"in At)||this.gl.getExtension(At.extension))){const ft=et?getKey(this.gl,ot):ot;nt[ft]=this.getParameter(ot,$),et&&At.type==="GLenum"&&(nt[ft]=getKey(this.gl,nt[ft]))}}return nt}setParameter($,_e){$=getKeyValue(this.gl,$),assert$7($);const tt=(this.constructor.PARAMETERS||{})[$];if(tt){const rt=isWebGL2$1(this.gl);if(!((!("webgl2"in tt)||rt)&&(!("extension"in tt)||this.gl.getExtension(tt.extension))))throw new Error("Parameter not available on this platform");tt.type==="GLenum"&&(_e=getKeyValue(_e))}return this._setParameter($,_e),this}setParameters($){for(const _e in $)this.setParameter(_e,$[_e]);return this}stubRemovedMethods($,_e,et){return stubRemovedMethods(this,$,_e,et)}initialize($){}_createHandle(){throw new Error(ERR_RESOURCE_METHOD_UNDEFINED)}_deleteHandle(){throw new Error(ERR_RESOURCE_METHOD_UNDEFINED)}_bindHandle($){throw new Error(ERR_RESOURCE_METHOD_UNDEFINED)}_getOptsFromHandle(){throw new Error(ERR_RESOURCE_METHOD_UNDEFINED)}_getParameter($,_e){throw new Error(ERR_RESOURCE_METHOD_UNDEFINED)}_setParameter($,_e){throw new Error(ERR_RESOURCE_METHOD_UNDEFINED)}_context(){return this.gl.luma=this.gl.luma||{},this.gl.luma}_addStats(){const $=this[Symbol.toStringTag],_e=lumaStats.get("Resource Counts");_e.get("Resources Created").incrementCount(),_e.get("".concat($,"s Created")).incrementCount(),_e.get("".concat($,"s Active")).incrementCount()}_removeStats(){const $=this[Symbol.toStringTag];lumaStats.get("Resource Counts").get("".concat($,"s Active")).decrementCount()}_trackAllocatedMemory($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag];this._trackAllocatedMemoryForContext($,_e),this._trackAllocatedMemoryForContext($,_e,this.gl.canvas&&this.gl.canvas.id),this.byteLength=$}_trackAllocatedMemoryForContext($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";const tt=lumaStats.get("Memory Usage".concat(et));tt.get("GPU Memory").addCount($),tt.get("".concat(_e," Memory")).addCount($)}_trackDeallocatedMemory(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag];this._trackDeallocatedMemoryForContext($),this._trackDeallocatedMemoryForContext($,this.gl.canvas&&this.gl.canvas.id),this.byteLength=0}_trackDeallocatedMemoryForContext(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],_e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const et=lumaStats.get("Memory Usage".concat(_e));et.get("GPU Memory").subtractCount(this.byteLength),et.get("".concat($," Memory")).subtractCount(this.byteLength)}};const ERR_TYPE_DEDUCTION="Failed to deduce GL constant from typed array";function getGLTypeFromTypedArray(j){switch(ArrayBuffer.isView(j)?j.constructor:j){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(ERR_TYPE_DEDUCTION)}}function getTypedArrayFromGLType(j){let{clamped:$=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};switch(j){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return $?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function flipRows(j){let{data:$,width:_e,height:et,bytesPerPixel:tt=4,temp:rt}=j;const nt=_e*tt;rt=rt||new Uint8Array(nt);for(let it=0;itthis._assign(tt)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return Accessor.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return Accessor.getBytesPerVertex(this)}_assign(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return $=checkProps("Accessor",$,PROP_CHECKS),$.type!==void 0&&(this.type=$.type,($.type===5124||$.type===5125)&&(this.integer=!0)),$.size!==void 0&&(this.size=$.size),$.offset!==void 0&&(this.offset=$.offset),$.stride!==void 0&&(this.stride=$.stride),$.normalized!==void 0&&(this.normalized=$.normalized),$.integer!==void 0&&(this.integer=$.integer),$.divisor!==void 0&&(this.divisor=$.divisor),$.buffer!==void 0&&(this.buffer=$.buffer),$.index!==void 0&&(typeof $.index=="boolean"?this.index=$.index?1:0:this.index=$.index),$.instanced!==void 0&&(this.divisor=$.instanced?1:0),$.isInstanced!==void 0&&(this.divisor=$.isInstanced?1:0),this}}const DEBUG_DATA_LENGTH=10,DEPRECATED_PROPS={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},PROP_CHECKS_INITIALIZE={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:DEPRECATED_PROPS},PROP_CHECKS_SET_PROPS={removedProps:DEPRECATED_PROPS};let Buffer$1=class extends Resource$1{get[Symbol.toStringTag](){return"Buffer"}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super($,_e),this.stubRemovedMethods("Buffer","v6.0",["layout","setLayout","getIndexedParameter"]),this.target=_e.target||(this.gl.webgl2?36662:34962),this.initialize(_e),Object.seal(this)}getElementCount(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Accessor.getBytesPerElement($))}getVertexCount(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Accessor.getBytesPerVertex($))}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView($)&&($={data:$}),Number.isFinite($)&&($={byteLength:$}),$=checkProps("Buffer",$,PROP_CHECKS_INITIALIZE),this.usage=$.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},$,$.accessor)),$.data?this._setData($.data,$.offset,$.byteLength):this._setByteLength($.byteLength||0),this}setProps($){return $=checkProps("Buffer",$,PROP_CHECKS_SET_PROPS),"accessor"in $&&this.setAccessor($.accessor),this}setAccessor($){return $=Object.assign({},$),delete $.buffer,this.accessor=new Accessor($),this}reallocate($){return $>this.byteLength?(this._setByteLength($),!0):(this.bytesUsed=$,!1)}setData($){return this.initialize($)}subData($){ArrayBuffer.isView($)&&($={data:$});const{data:_e,offset:et=0,srcOffset:tt=0}=$,rt=$.byteLength||$.length;assert$7(_e);const nt=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(nt,this.handle),tt!==0||rt!==void 0?(assertWebGL2Context(this.gl),this.gl.bufferSubData(this.target,et,_e,tt,rt)):this.gl.bufferSubData(nt,et,_e),this.gl.bindBuffer(nt,null),this.debugData=null,this._inferType(_e),this}copyData($){let{sourceBuffer:_e,readOffset:et=0,writeOffset:tt=0,size:rt}=$;const{gl:nt}=this;return assertWebGL2Context(nt),nt.bindBuffer(36662,_e.handle),nt.bindBuffer(36663,this.handle),nt.copyBufferSubData(36662,36663,et,tt,rt),nt.bindBuffer(36662,null),nt.bindBuffer(36663,null),this.debugData=null,this}getData(){let{dstData:$=null,srcByteOffset:_e=0,dstOffset:et=0,length:tt=0}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};assertWebGL2Context(this.gl);const rt=getTypedArrayFromGLType(this.accessor.type||5126,{clamped:!1}),nt=this._getAvailableElementCount(_e),it=et;let ot,At;$?(At=$.length,ot=At-it):(ot=Math.min(nt,tt||nt),At=it+ot);const ut=Math.min(nt,ot);return tt=tt||ut,assert$7(tt<=ut),$=$||new rt(At),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,_e,$,et,tt),this.gl.bindBuffer(36662,null),$}bind(){let{target:$=this.target,index:_e=this.accessor&&this.accessor.index,offset:et=0,size:tt}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return $===35345||$===35982?tt!==void 0?this.gl.bindBufferRange($,_e,this.handle,et,tt):(assert$7(et===0),this.gl.bindBufferBase($,_e,this.handle)):this.gl.bindBuffer($,this.handle),this}unbind(){let{target:$=this.target,index:_e=this.accessor&&this.accessor.index}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return $===35345||$===35982?this.gl.bindBufferBase($,_e,null):this.gl.bindBuffer($,null),this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(DEBUG_DATA_LENGTH,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$.byteLength+_e;assert$7(ArrayBuffer.isView($)),this._trackDeallocatedMemory();const tt=this._getTarget();this.gl.bindBuffer(tt,this.handle),this.gl.bufferData(tt,et,this.usage),this.gl.bufferSubData(tt,_e,$),this.gl.bindBuffer(tt,null),this.debugData=$.slice(0,DEBUG_DATA_LENGTH),this.bytesUsed=et,this._trackAllocatedMemory(et);const rt=getGLTypeFromTypedArray($);return assert$7(rt),this.setAccessor(new Accessor(this.accessor,{type:rt})),this}_setByteLength($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.usage;assert$7($>=0),this._trackDeallocatedMemory();let et=$;$===0&&(et=new Float32Array(0));const tt=this._getTarget();return this.gl.bindBuffer(tt,this.handle),this.gl.bufferData(tt,et,_e),this.gl.bindBuffer(tt,null),this.usage=_e,this.debugData=null,this.bytesUsed=$,this._trackAllocatedMemory($),this}_getTarget(){return this.gl.webgl2?36663:this.target}_getAvailableElementCount($){const _e=getTypedArrayFromGLType(this.accessor.type||5126,{clamped:!1}),et=$/_e.BYTES_PER_ELEMENT;return this.getElementCount()-et}_inferType($){this.accessor.type||this.setAccessor(new Accessor(this.accessor,{type:getGLTypeFromTypedArray($)}))}_createHandle(){return this.gl.createBuffer()}_deleteHandle(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}_getParameter($){this.gl.bindBuffer(this.target,this.handle);const _e=this.gl.getBufferParameter(this.target,$);return this.gl.bindBuffer(this.target,null),_e}get type(){return log$2.deprecated("Buffer.type","Buffer.accessor.type")(),this.accessor.type}get bytes(){return log$2.deprecated("Buffer.bytes","Buffer.byteLength")(),this.byteLength}setByteLength($){return log$2.deprecated("setByteLength","reallocate")(),this.reallocate($)}updateAccessor($){return log$2.deprecated("updateAccessor(...)","setAccessor(new Accessor(buffer.accessor, ...)")(),this.accessor=new Accessor(this.accessor,$),this}};const TEXTURE_FORMATS={6407:{dataFormat:6407,types:[5121,33635]},6408:{dataFormat:6408,types:[5121,32819,32820]},6406:{dataFormat:6406,types:[5121]},6409:{dataFormat:6409,types:[5121]},6410:{dataFormat:6410,types:[5121]},33326:{dataFormat:6403,types:[5126],gl2:!0},33328:{dataFormat:33319,types:[5126],gl2:!0},34837:{dataFormat:6407,types:[5126],gl2:!0},34836:{dataFormat:6408,types:[5126],gl2:!0}},DATA_FORMAT_CHANNELS={6403:1,36244:1,33319:2,33320:2,6407:3,36248:3,6408:4,36249:4,6402:1,34041:1,6406:1,6409:1,6410:2},TYPE_SIZES={5126:4,5125:4,5124:4,5123:2,5122:2,5131:2,5120:1,5121:1};function isFormatSupported$1(j,$){const _e=TEXTURE_FORMATS[$];if(!_e)return!1;if(_e.gl1===void 0&&_e.gl2===void 0)return!0;const et=isWebGL2$1(j)&&_e.gl2||_e.gl1;return typeof et=="string"?j.getExtension(et):et}function isLinearFilteringSupported(j,$){const _e=TEXTURE_FORMATS[$];switch(_e&&_e.types[0]){case 5126:return j.getExtension("OES_texture_float_linear");case 5131:return j.getExtension("OES_texture_half_float_linear");default:return!0}}const NPOT_MIN_FILTERS=[9729,9728],WebGLBuffer=globalThis.WebGLBuffer||function(){};class Texture extends Resource$1{get[Symbol.toStringTag](){return"Texture"}static isSupported($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{format:et,linearFiltering:tt}=_e;let rt=!0;return et&&(rt=rt&&isFormatSupported$1($,et),rt=rt&&(!tt||isLinearFilteringSupported($,et))),rt}constructor($,_e){const{id:et=uid("texture"),handle:tt,target:rt}=_e;super($,{id:et,handle:tt}),this.target=rt,this.textureUnit=void 0,this.loaded=!1,this.width=void 0,this.height=void 0,this.depth=void 0,this.format=void 0,this.type=void 0,this.dataFormat=void 0,this.border=void 0,this.textureUnit=void 0,this.mipmaps=void 0}toString(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},_e=$.data;if(_e instanceof Promise)return _e.then(Rt=>this.initialize(Object.assign({},$,{pixels:Rt,data:Rt}))),this;const et=typeof HTMLVideoElement<"u"&&_e instanceof HTMLVideoElement;if(et&&_e.readyStatethis.initialize($)),this;const{pixels:tt=null,format:rt=6408,border:nt=0,recreate:it=!1,parameters:ot={},pixelStore:At={},textureUnit:ut=void 0}=$;_e||(_e=tt);let{width:ft,height:dt,dataFormat:Et,type:Bt,compressed:St=!1,mipmaps:Dt=!0}=$;const{depth:$t=0}=$;return{width:ft,height:dt,compressed:St,dataFormat:Et,type:Bt}=this._deduceParameters({format:rt,type:Bt,dataFormat:Et,compressed:St,data:_e,width:ft,height:dt}),this.width=ft,this.height=dt,this.depth=$t,this.format=rt,this.type=Bt,this.dataFormat=Et,this.border=nt,this.textureUnit=ut,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),Dt&&this._isNPOT()&&(log$2.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),Dt=!1,this._updateForNPOT(ot)),this.mipmaps=Dt,this.setImageData({data:_e,width:ft,height:dt,depth:$t,format:rt,type:Bt,dataFormat:Et,border:nt,mipmaps:Dt,parameters:At,compressed:St}),Dt&&this.generateMipmap(),this.setParameters(ot),it&&(this.data=_e),et&&(this._video={video:_e,parameters:ot,lastTime:_e.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?_e.currentTime:-1}),this}update(){if(this._video){const{video:$,parameters:_e,lastTime:et}=this._video;if(et===$.currentTime||$.readyState0&&arguments[0]!==void 0?arguments[0]:{};return this._isNPOT()?(log$2.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),withParameters(this.gl,$,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData($){this._trackDeallocatedMemory("Texture");const{target:_e=this.target,pixels:et=null,level:tt=0,format:rt=this.format,border:nt=this.border,offset:it=0,parameters:ot={}}=$;let{data:At=null,type:ut=this.type,width:ft=this.width,height:dt=this.height,dataFormat:Et=this.dataFormat,compressed:Bt=!1}=$;At||(At=et),{type:ut,dataFormat:Et,compressed:Bt,width:ft,height:dt}=this._deduceParameters({format:rt,type:ut,dataFormat:Et,compressed:Bt,data:At,width:ft,height:dt});const{gl:St}=this;St.bindTexture(this.target,this.handle);let Dt=null;({data:At,dataType:Dt}=this._getDataType({data:At,compressed:Bt}));let $t,Rt=0;if(withParameters(this.gl,ot,()=>{switch(Dt){case"null":St.texImage2D(_e,tt,rt,ft,dt,nt,Et,ut,At);break;case"typed-array":St.texImage2D(_e,tt,rt,ft,dt,nt,Et,ut,At,it);break;case"buffer":$t=assertWebGL2Context(St),$t.bindBuffer(35052,At.handle||At),$t.texImage2D(_e,tt,rt,ft,dt,nt,Et,ut,it),$t.bindBuffer(35052,null);break;case"browser-object":isWebGL2$1(St)?St.texImage2D(_e,tt,rt,ft,dt,nt,Et,ut,At):St.texImage2D(_e,tt,rt,Et,ut,At);break;case"compressed":for(const[wt,xt]of At.entries())St.compressedTexImage2D(_e,wt,xt.format,xt.width,xt.height,nt,xt.data),Rt+=xt.levelSize;break;default:assert$7(!1,"Unknown image data type")}}),Dt==="compressed")this._trackAllocatedMemory(Rt,"Texture");else if(At&&At.byteLength)this._trackAllocatedMemory(At.byteLength,"Texture");else{const wt=DATA_FORMAT_CHANNELS[this.dataFormat]||4,xt=TYPE_SIZES[this.type]||1;this._trackAllocatedMemory(this.width*this.height*wt*xt,"Texture")}return this.loaded=!0,this}setSubImageData($){let{target:_e=this.target,pixels:et=null,data:tt=null,x:rt=0,y:nt=0,width:it=this.width,height:ot=this.height,level:At=0,format:ut=this.format,type:ft=this.type,dataFormat:dt=this.dataFormat,compressed:Et=!1,offset:Bt=0,border:St=this.border,parameters:Dt={}}=$;if({type:ft,dataFormat:dt,compressed:Et,width:it,height:ot}=this._deduceParameters({format:ut,type:ft,dataFormat:dt,compressed:Et,data:tt,width:it,height:ot}),assert$7(this.depth===0,"texSubImage not supported for 3D textures"),tt||(tt=et),tt&&tt.data){const $t=tt;tt=$t.data,it=$t.shape[0],ot=$t.shape[1]}tt instanceof Buffer$1&&(tt=tt.handle),this.gl.bindTexture(this.target,this.handle),withParameters(this.gl,Dt,()=>{if(Et)this.gl.compressedTexSubImage2D(_e,At,rt,nt,it,ot,ut,tt);else if(tt===null)this.gl.texSubImage2D(_e,At,rt,nt,it,ot,dt,ft,null);else if(ArrayBuffer.isView(tt))this.gl.texSubImage2D(_e,At,rt,nt,it,ot,dt,ft,tt,Bt);else if(tt instanceof WebGLBuffer){const $t=assertWebGL2Context(this.gl);$t.bindBuffer(35052,tt),$t.texSubImage2D(_e,At,rt,nt,it,ot,dt,ft,Bt),$t.bindBuffer(35052,null)}else isWebGL2$1(this.gl)?assertWebGL2Context(this.gl).texSubImage2D(_e,At,rt,nt,it,ot,dt,ft,tt):this.gl.texSubImage2D(_e,At,rt,nt,dt,ft,tt)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){return log$2.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit;const{gl:_e}=this;return $!==void 0&&(this.textureUnit=$,_e.activeTexture(33984+$)),_e.bindTexture(this.target,this.handle),$}unbind(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit;const{gl:_e}=this;return $!==void 0&&(this.textureUnit=$,_e.activeTexture(33984+$)),_e.bindTexture(this.target,null),$}_getDataType($){let{data:_e,compressed:et=!1}=$;return et?{data:_e,dataType:"compressed"}:_e===null?{data:_e,dataType:"null"}:ArrayBuffer.isView(_e)?{data:_e,dataType:"typed-array"}:_e instanceof Buffer$1?{data:_e.handle,dataType:"buffer"}:_e instanceof WebGLBuffer?{data:_e,dataType:"buffer"}:{data:_e,dataType:"browser-object"}}_deduceParameters($){const{format:_e,data:et}=$;let{width:tt,height:rt,dataFormat:nt,type:it,compressed:ot}=$;const At=TEXTURE_FORMATS[_e];return nt=nt||At&&At.dataFormat,it=it||At&&At.types[0],ot=ot||At&&At.compressed,{width:tt,height:rt}=this._deduceImageSize(et,tt,rt),{dataFormat:nt,type:it,compressed:ot,width:tt,height:rt,format:_e,data:et}}_deduceImageSize($,_e,et){let tt;return typeof ImageData<"u"&&$ instanceof ImageData?tt={width:$.width,height:$.height}:typeof HTMLImageElement<"u"&&$ instanceof HTMLImageElement?tt={width:$.naturalWidth,height:$.naturalHeight}:typeof HTMLCanvasElement<"u"&&$ instanceof HTMLCanvasElement?tt={width:$.width,height:$.height}:typeof ImageBitmap<"u"&&$ instanceof ImageBitmap?tt={width:$.width,height:$.height}:typeof HTMLVideoElement<"u"&&$ instanceof HTMLVideoElement?tt={width:$.videoWidth,height:$.videoHeight}:$?tt={width:_e,height:et}:tt={width:_e>=0?_e:1,height:et>=0?et:1},assert$7(tt,"Could not deduced texture size"),assert$7(_e===void 0||tt.width===_e,"Deduced texture width does not match supplied width"),assert$7(et===void 0||tt.height===et,"Deduced texture height does not match supplied height"),tt}_createHandle(){return this.gl.createTexture()}_deleteHandle(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory("Texture")}_getParameter($){switch($){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);const _e=this.gl.getTexParameter(this.target,$);return this.gl.bindTexture(this.target,null),_e}}_setParameter($,_e){switch(this.gl.bindTexture(this.target,this.handle),_e=this._getNPOTParam($,_e),$){case 33082:case 33083:this.gl.texParameterf(this.handle,$,_e);break;case 4096:case 4097:assert$7(!1);break;default:this.gl.texParameteri(this.target,$,_e);break}return this.gl.bindTexture(this.target,null),this}_isNPOT(){return isWebGL2$1(this.gl)||!this.width||!this.height?!1:!isPowerOfTwo(this.width)||!isPowerOfTwo(this.height)}_updateForNPOT($){$[this.gl.TEXTURE_MIN_FILTER]===void 0&&($[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),$[this.gl.TEXTURE_WRAP_S]===void 0&&($[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),$[this.gl.TEXTURE_WRAP_T]===void 0&&($[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}_getNPOTParam($,_e){if(this._isNPOT())switch($){case 10241:NPOT_MIN_FILTERS.indexOf(_e)===-1&&(_e=9729);break;case 10242:case 10243:_e!==33071&&(_e=33071);break}return _e}}let pathPrefix="";function loadImage$1(j,$){return assert$7(typeof j=="string"),j=pathPrefix+j,new Promise((_e,et)=>{try{const tt=new Image;tt.onload=()=>_e(tt),tt.onerror=()=>et(new Error("Could not load image ".concat(j,"."))),tt.crossOrigin=$&&$.crossOrigin||"anonymous",tt.src=j}catch(tt){et(tt)}})}class Texture2D extends Texture{get[Symbol.toStringTag](){return"Texture2D"}static isSupported($,_e){return Texture.isSupported($,_e)}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};assertWebGLContext($),(_e instanceof Promise||typeof _e=="string")&&(_e={data:_e}),typeof _e.data=="string"&&(_e=Object.assign({},_e,{data:loadImage$1(_e.data)})),super($,Object.assign({},_e,{target:3553})),this.initialize(_e),Object.seal(this)}}const FACES=[34069,34070,34071,34072,34073,34074];class TextureCube extends Texture{get[Symbol.toStringTag](){return"TextureCube"}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};assertWebGLContext($),super($,Object.assign({},_e,{target:34067})),this.initialize(_e),Object.seal(this)}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{mipmaps:_e=!0,parameters:et={}}=$;return this.opts=$,this.setCubeMapImageData($).then(()=>{this.loaded=!0,_e&&this.generateMipmap($),this.setParameters(et)}),this}subImage($){let{face:_e,data:et,x:tt=0,y:rt=0,mipmapLevel:nt=0}=$;return this._subImage({target:_e,data:et,x:tt,y:rt,mipmapLevel:nt})}async setCubeMapImageData($){let{width:_e,height:et,pixels:tt,data:rt,border:nt=0,format:it=6408,type:ot=5121}=$;const{gl:At}=this,ut=tt||rt,ft=await Promise.all(FACES.map(dt=>{const Et=ut[dt];return Promise.all(Array.isArray(Et)?Et:[Et])}));this.bind(),FACES.forEach((dt,Et)=>{ft[Et].length>1&&this.opts.mipmaps!==!1&&log$2.warn("".concat(this.id," has mipmap and multiple LODs."))(),ft[Et].forEach((Bt,St)=>{_e&&et?At.texImage2D(dt,St,it,_e,et,nt,it,ot,Bt):At.texImage2D(dt,St,it,it,ot,Bt)})}),this.unbind()}setImageDataForFace($){const{face:_e,width:et,height:tt,pixels:rt,data:nt,border:it=0,format:ot=6408,type:At=5121}=$,{gl:ut}=this,ft=rt||nt;return this.bind(),ft instanceof Promise?ft.then(dt=>this.setImageDataForFace(Object.assign({},$,{face:_e,data:dt,pixels:dt}))):this.width||this.height?ut.texImage2D(_e,0,ot,et,tt,it,ot,At,ft):ut.texImage2D(_e,0,ot,ot,At,ft),this}}TextureCube.FACES=FACES;class Texture3D extends Texture{get[Symbol.toStringTag](){return"Texture3D"}static isSupported($){return isWebGL2$1($)}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};assertWebGL2Context($),_e=Object.assign({depth:1},_e,{target:32879,unpackFlipY:!1}),super($,_e),this.initialize(_e),Object.seal(this)}setImageData($){let{level:_e=0,dataFormat:et=6408,width:tt,height:rt,depth:nt=1,border:it=0,format:ot,type:At=5121,offset:ut=0,data:ft,parameters:dt={}}=$;if(this._trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle),withParameters(this.gl,dt,()=>{ArrayBuffer.isView(ft)&&this.gl.texImage3D(this.target,_e,et,tt,rt,nt,it,ot,At,ft),ft instanceof Buffer$1&&(this.gl.bindBuffer(35052,ft.handle),this.gl.texImage3D(this.target,_e,et,tt,rt,nt,it,ot,At,ut))}),ft&&ft.byteLength)this._trackAllocatedMemory(ft.byteLength,"Texture");else{const Et=DATA_FORMAT_CHANNELS[this.dataFormat]||4,Bt=TYPE_SIZES[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*Et*Bt,"Texture")}return this.loaded=!0,this}}const EXT_FLOAT_WEBGL2="EXT_color_buffer_float",RENDERBUFFER_FORMATS={33189:{bpp:2},33190:{gl2:!0,bpp:3},36012:{gl2:!0,bpp:4},36168:{bpp:1},34041:{bpp:4},35056:{gl2:!0,bpp:4},36013:{gl2:!0,bpp:5},32854:{bpp:2},36194:{bpp:2},32855:{bpp:2},33321:{gl2:!0,bpp:1},33330:{gl2:!0,bpp:1},33329:{gl2:!0,bpp:1},33332:{gl2:!0,bpp:2},33331:{gl2:!0,bpp:2},33334:{gl2:!0,bpp:4},33333:{gl2:!0,bpp:4},33323:{gl2:!0,bpp:2},33336:{gl2:!0,bpp:2},33335:{gl2:!0,bpp:2},33338:{gl2:!0,bpp:4},33337:{gl2:!0,bpp:4},33340:{gl2:!0,bpp:8},33339:{gl2:!0,bpp:8},32849:{gl2:!0,bpp:3},32856:{gl2:!0,bpp:4},32857:{gl2:!0,bpp:4},36220:{gl2:!0,bpp:4},36238:{gl2:!0,bpp:4},36975:{gl2:!0,bpp:4},36214:{gl2:!0,bpp:8},36232:{gl2:!0,bpp:8},36226:{gl2:!0,bpp:16},36208:{gl2:!0,bpp:16},33325:{gl2:EXT_FLOAT_WEBGL2,bpp:2},33327:{gl2:EXT_FLOAT_WEBGL2,bpp:4},34842:{gl2:EXT_FLOAT_WEBGL2,bpp:8},33326:{gl2:EXT_FLOAT_WEBGL2,bpp:4},33328:{gl2:EXT_FLOAT_WEBGL2,bpp:8},34836:{gl2:EXT_FLOAT_WEBGL2,bpp:16},35898:{gl2:EXT_FLOAT_WEBGL2,bpp:4}};function isFormatSupported(j,$,_e){const et=_e[$];if(!et)return!1;const tt=isWebGL2$1(j)&&et.gl2||et.gl1;return typeof tt=="string"?j.getExtension(tt):tt}class Renderbuffer extends Resource$1{get[Symbol.toStringTag](){return"Renderbuffer"}static isSupported($){let{format:_e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{format:null};return!_e||isFormatSupported($,_e,RENDERBUFFER_FORMATS)}static getSamplesForFormat($,_e){let{format:et}=_e;return $.getInternalformatParameter(36161,et,32937)}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super($,_e),this.initialize(_e),Object.seal(this)}initialize($){let{format:_e,width:et=1,height:tt=1,samples:rt=0}=$;return assert$7(_e,"Needs format"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),rt!==0&&isWebGL2$1(this.gl)?this.gl.renderbufferStorageMultisample(36161,rt,_e,et,tt):this.gl.renderbufferStorage(36161,_e,et,tt),this.format=_e,this.width=et,this.height=tt,this.samples=rt,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*RENDERBUFFER_FORMATS[this.format].bpp),this}resize($){let{width:_e,height:et}=$;return _e!==this.width||et!==this.height?this.initialize({width:_e,height:et,format:this.format,samples:this.samples}):this}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}_bindHandle($){this.gl.bindRenderbuffer(36161,$)}_syncHandle($){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}_getParameter($){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,$)}}const GL_DEPTH_BUFFER_BIT=256,GL_STENCIL_BUFFER_BIT=1024,GL_COLOR_BUFFER_BIT=16384,GL_COLOR=6144,GL_DEPTH=6145,GL_STENCIL=6146,GL_DEPTH_STENCIL=34041,ERR_ARGUMENTS="clear: bad arguments";function clear(j){let{framebuffer:$=null,color:_e=null,depth:et=null,stencil:tt=null}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const rt={};$&&(rt.framebuffer=$);let nt=0;_e&&(nt|=GL_COLOR_BUFFER_BIT,_e!==!0&&(rt.clearColor=_e)),et&&(nt|=GL_DEPTH_BUFFER_BIT,et!==!0&&(rt.clearDepth=et)),tt&&(nt|=GL_STENCIL_BUFFER_BIT,et!==!0&&(rt.clearStencil=et)),assert$7(nt!==0,ERR_ARGUMENTS),withParameters(j,rt,()=>{j.clear(nt)})}function clearBuffer(j){let{framebuffer:$=null,buffer:_e=GL_COLOR,drawBuffer:et=0,value:tt=[0,0,0,0]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};assertWebGL2Context(j),withParameters(j,{framebuffer:$},()=>{switch(_e){case GL_COLOR:switch(tt.constructor){case Int32Array:j.clearBufferiv(_e,et,tt);break;case Uint32Array:j.clearBufferuiv(_e,et,tt);break;case Float32Array:default:j.clearBufferfv(_e,et,tt)}break;case GL_DEPTH:j.clearBufferfv(GL_DEPTH,0,[tt]);break;case GL_STENCIL:j.clearBufferiv(GL_STENCIL,0,[tt]);break;case GL_DEPTH_STENCIL:const[rt,nt]=tt;j.clearBufferfi(GL_DEPTH_STENCIL,0,rt,nt);break;default:assert$7(!1,ERR_ARGUMENTS)}})}function glFormatToComponents(j){switch(j){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return assert$7(!1),0}}function glTypeToBytes(j){switch(j){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return assert$7(!1),0}}function readPixelsToArray(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{sourceX:_e=0,sourceY:et=0,sourceFormat:tt=6408}=$;let{sourceAttachment:rt=36064,target:nt=null,sourceWidth:it,sourceHeight:ot,sourceType:At}=$;const{framebuffer:ut,deleteFramebuffer:ft}=getFramebuffer$1(j);assert$7(ut);const{gl:dt,handle:Et,attachments:Bt}=ut;it=it||ut.width,ot=ot||ut.height,rt===36064&&Et===null&&(rt=1028),assert$7(Bt[rt]),At=At||Bt[rt].type,nt=getPixelArray(nt,At,tt,it,ot),At=At||getGLTypeFromTypedArray(nt);const St=dt.bindFramebuffer(36160,Et);return dt.readPixels(_e,et,it,ot,tt,At,nt),dt.bindFramebuffer(36160,St||null),ft&&ut.delete(),nt}function readPixelsToBuffer(j,$){let{sourceX:_e=0,sourceY:et=0,sourceFormat:tt=6408,target:rt=null,targetByteOffset:nt=0,sourceWidth:it,sourceHeight:ot,sourceType:At}=$;const{framebuffer:ut,deleteFramebuffer:ft}=getFramebuffer$1(j);assert$7(ut),it=it||ut.width,ot=ot||ut.height;const dt=assertWebGL2Context(ut.gl);if(At=At||(rt?rt.type:5121),!rt){const Et=glFormatToComponents(tt),Bt=glTypeToBytes(At),St=nt+it*ot*Et*Bt;rt=new Buffer$1(dt,{byteLength:St,accessor:{type:At,size:Et}})}return rt.bind({target:35051}),withParameters(dt,{framebuffer:ut},()=>{dt.readPixels(_e,et,it,ot,tt,At,nt)}),rt.unbind({target:35051}),ft&&ut.delete(),rt}function copyToDataUrl(j){let{sourceAttachment:$=36064,targetMaxHeight:_e=Number.MAX_SAFE_INTEGER}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=readPixelsToArray(j,{sourceAttachment:$}),{width:tt,height:rt}=j;for(;rt>_e;)({data:et,width:tt,height:rt}=scalePixels({data:et,width:tt,height:rt}));flipRows({data:et,width:tt,height:rt});const nt=document.createElement("canvas");nt.width=tt,nt.height=rt;const it=nt.getContext("2d"),ot=it.createImageData(tt,rt);return ot.data.set(et),it.putImageData(ot,0,0),nt.toDataURL()}function copyToTexture(j,$){let _e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{sourceX:et=0,sourceY:tt=0,targetMipmaplevel:rt=0,targetInternalFormat:nt=6408}=_e;let{targetX:it,targetY:ot,targetZ:At,width:ut,height:ft}=_e;const{framebuffer:dt,deleteFramebuffer:Et}=getFramebuffer$1(j);assert$7(dt);const{gl:Bt,handle:St}=dt,Dt=typeof it<"u"||typeof ot<"u"||typeof At<"u";it=it||0,ot=ot||0,At=At||0;const $t=Bt.bindFramebuffer(36160,St);assert$7($);let Rt=null;if($ instanceof Texture&&(Rt=$,ut=Number.isFinite(ut)?ut:Rt.width,ft=Number.isFinite(ft)?ft:Rt.height,Rt.bind(0),$=Rt.target),!Dt)Bt.copyTexImage2D($,rt,nt,et,tt,ut,ft,0);else switch($){case 3553:case 34067:Bt.copyTexSubImage2D($,rt,it,ot,et,tt,ut,ft);break;case 35866:case 32879:assertWebGL2Context(Bt).copyTexSubImage3D($,rt,it,ot,At,et,tt,ut,ft);break}return Rt&&Rt.unbind(),Bt.bindFramebuffer(36160,$t||null),Et&&dt.delete(),Rt}function getFramebuffer$1(j){return j instanceof Framebuffer?{framebuffer:j,deleteFramebuffer:!1}:{framebuffer:toFramebuffer(j),deleteFramebuffer:!0}}function getPixelArray(j,$,_e,et,tt){if(j)return j;$=$||5121;const rt=getTypedArrayFromGLType($,{clamped:!1}),nt=glFormatToComponents(_e);return new rt(et*tt*nt)}const FEATURES$1={WEBGL2:"WEBGL2",VERTEX_ARRAY_OBJECT:"VERTEX_ARRAY_OBJECT",TIMER_QUERY:"TIMER_QUERY",INSTANCED_RENDERING:"INSTANCED_RENDERING",MULTIPLE_RENDER_TARGETS:"MULTIPLE_RENDER_TARGETS",ELEMENT_INDEX_UINT32:"ELEMENT_INDEX_UINT32",BLEND_EQUATION_MINMAX:"BLEND_EQUATION_MINMAX",FLOAT_BLEND:"FLOAT_BLEND",COLOR_ENCODING_SRGB:"COLOR_ENCODING_SRGB",TEXTURE_DEPTH:"TEXTURE_DEPTH",TEXTURE_FLOAT:"TEXTURE_FLOAT",TEXTURE_HALF_FLOAT:"TEXTURE_HALF_FLOAT",TEXTURE_FILTER_LINEAR_FLOAT:"TEXTURE_FILTER_LINEAR_FLOAT",TEXTURE_FILTER_LINEAR_HALF_FLOAT:"TEXTURE_FILTER_LINEAR_HALF_FLOAT",TEXTURE_FILTER_ANISOTROPIC:"TEXTURE_FILTER_ANISOTROPIC",COLOR_ATTACHMENT_RGBA32F:"COLOR_ATTACHMENT_RGBA32F",COLOR_ATTACHMENT_FLOAT:"COLOR_ATTACHMENT_FLOAT",COLOR_ATTACHMENT_HALF_FLOAT:"COLOR_ATTACHMENT_HALF_FLOAT",GLSL_FRAG_DATA:"GLSL_FRAG_DATA",GLSL_FRAG_DEPTH:"GLSL_FRAG_DEPTH",GLSL_DERIVATIVES:"GLSL_DERIVATIVES",GLSL_TEXTURE_LOD:"GLSL_TEXTURE_LOD"};function checkFloat32ColorAttachment(j){const $=new Texture2D(j,{format:6408,type:5126,dataFormat:6408}),_e=new Framebuffer(j,{id:"test-framebuffer",check:!1,attachments:{36064:$}}),et=_e.getStatus();return $.delete(),_e.delete(),et===36053}const WEBGL_FEATURES$1={[FEATURES$1.WEBGL2]:[!1,!0],[FEATURES$1.VERTEX_ARRAY_OBJECT]:["OES_vertex_array_object",!0],[FEATURES$1.TIMER_QUERY]:["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],[FEATURES$1.INSTANCED_RENDERING]:["ANGLE_instanced_arrays",!0],[FEATURES$1.MULTIPLE_RENDER_TARGETS]:["WEBGL_draw_buffers",!0],[FEATURES$1.ELEMENT_INDEX_UINT32]:["OES_element_index_uint",!0],[FEATURES$1.BLEND_EQUATION_MINMAX]:["EXT_blend_minmax",!0],[FEATURES$1.FLOAT_BLEND]:["EXT_float_blend"],[FEATURES$1.COLOR_ENCODING_SRGB]:["EXT_sRGB",!0],[FEATURES$1.TEXTURE_DEPTH]:["WEBGL_depth_texture",!0],[FEATURES$1.TEXTURE_FLOAT]:["OES_texture_float",!0],[FEATURES$1.TEXTURE_HALF_FLOAT]:["OES_texture_half_float",!0],[FEATURES$1.TEXTURE_FILTER_LINEAR_FLOAT]:["OES_texture_float_linear"],[FEATURES$1.TEXTURE_FILTER_LINEAR_HALF_FLOAT]:["OES_texture_half_float_linear"],[FEATURES$1.TEXTURE_FILTER_ANISOTROPIC]:["EXT_texture_filter_anisotropic"],[FEATURES$1.COLOR_ATTACHMENT_RGBA32F]:[checkFloat32ColorAttachment,"EXT_color_buffer_float"],[FEATURES$1.COLOR_ATTACHMENT_FLOAT]:[!1,"EXT_color_buffer_float"],[FEATURES$1.COLOR_ATTACHMENT_HALF_FLOAT]:["EXT_color_buffer_half_float"],[FEATURES$1.GLSL_FRAG_DATA]:["WEBGL_draw_buffers",!0],[FEATURES$1.GLSL_FRAG_DEPTH]:["EXT_frag_depth",!0],[FEATURES$1.GLSL_DERIVATIVES]:["OES_standard_derivatives",!0],[FEATURES$1.GLSL_TEXTURE_LOD]:["EXT_shader_texture_lod",!0]},LOG_UNSUPPORTED_FEATURE=2;function hasFeature(j,$){return hasFeatures$1(j,$)}function hasFeatures$1(j,$){return $=Array.isArray($)?$:[$],$.every(_e=>isFeatureSupported(j,_e))}function getFeatures(j){j.luma=j.luma||{},j.luma.caps=j.luma.caps||{};for(const $ in WEBGL_FEATURES$1)j.luma.caps[$]===void 0&&(j.luma.caps[$]=isFeatureSupported(j,$));return j.luma.caps}function isFeatureSupported(j,$){return j.luma=j.luma||{},j.luma.caps=j.luma.caps||{},j.luma.caps[$]===void 0&&(j.luma.caps[$]=queryFeature(j,$)),j.luma.caps[$]||log$2.log(LOG_UNSUPPORTED_FEATURE,"Feature: ".concat($," not supported"))(),j.luma.caps[$]}function queryFeature(j,$){const _e=WEBGL_FEATURES$1[$];assert$7(_e,$);let et;const tt=isWebGL2$1(j)&&_e[1]||_e[0];if(typeof tt=="function")et=tt(j);else if(Array.isArray(tt)){et=!0;for(const rt of tt)et=et&&!!j.getExtension(rt)}else typeof tt=="string"?et=!!j.getExtension(tt):typeof tt=="boolean"?et=tt:assert$7(!1);return et}const ERR_MULTIPLE_RENDERTARGETS="Multiple render targets not supported";class Framebuffer extends Resource$1{get[Symbol.toStringTag](){return"Framebuffer"}static isSupported($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{colorBufferFloat:et,colorBufferHalfFloat:tt}=_e;let rt=!0;return et&&(rt=!!($.getExtension("EXT_color_buffer_float")||$.getExtension("WEBGL_color_buffer_float")||$.getExtension("OES_texture_float"))),tt&&(rt=rt&&!!($.getExtension("EXT_color_buffer_float")||$.getExtension("EXT_color_buffer_half_float"))),rt}static getDefaultFramebuffer($){return $.luma=$.luma||{},$.luma.defaultFramebuffer=$.luma.defaultFramebuffer||new Framebuffer($,{id:"default-framebuffer",handle:null,attachments:{}}),$.luma.defaultFramebuffer}get MAX_COLOR_ATTACHMENTS(){const $=assertWebGL2Context(this.gl);return $.getParameter($.MAX_COLOR_ATTACHMENTS)}get MAX_DRAW_BUFFERS(){const $=assertWebGL2Context(this.gl);return $.getParameter($.MAX_DRAW_BUFFERS)}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super($,_e),this.width=null,this.height=null,this.attachments={},this.readBuffer=36064,this.drawBuffers=[36064],this.ownResources=[],this.initialize(_e),Object.seal(this)}get color(){return this.attachments[36064]||null}get texture(){return this.attachments[36064]||null}get depth(){return this.attachments[36096]||this.attachments[33306]||null}get stencil(){return this.attachments[36128]||this.attachments[33306]||null}initialize($){let{width:_e=1,height:et=1,attachments:tt=null,color:rt=!0,depth:nt=!0,stencil:it=!1,check:ot=!0,readBuffer:At=void 0,drawBuffers:ut=void 0}=$;if(assert$7(_e>=0&&et>=0,"Width and height need to be integers"),this.width=_e,this.height=et,tt)for(const ft in tt){const dt=tt[ft];(Array.isArray(dt)?dt[0]:dt).resize({width:_e,height:et})}else tt=this._createDefaultAttachments(rt,nt,it,_e,et);this.update({clearAttachments:!0,attachments:tt,readBuffer:At,drawBuffers:ut}),tt&&ot&&this.checkStatus()}delete(){for(const $ of this.ownResources)$.delete();return super.delete(),this}update($){let{attachments:_e={},readBuffer:et,drawBuffers:tt,clearAttachments:rt=!1,resizeAttachments:nt=!0}=$;this.attach(_e,{clearAttachments:rt,resizeAttachments:nt});const{gl:it}=this,ot=it.bindFramebuffer(36160,this.handle);return et&&this._setReadBuffer(et),tt&&this._setDrawBuffers(tt),it.bindFramebuffer(36160,ot||null),this}resize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{width:_e,height:et}=$;if(this.handle===null)return assert$7(_e===void 0&&et===void 0),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;_e===void 0&&(_e=this.gl.drawingBufferWidth),et===void 0&&(et=this.gl.drawingBufferHeight),_e!==this.width&&et!==this.height&&log$2.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(_e,"x").concat(et))();for(const tt in this.attachments)this.attachments[tt].resize({width:_e,height:et});return this.width=_e,this.height=et,this}attach($){let{clearAttachments:_e=!1,resizeAttachments:et=!0}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const tt={};_e&&Object.keys(this.attachments).forEach(nt=>{tt[nt]=null}),Object.assign(tt,$);const rt=this.gl.bindFramebuffer(36160,this.handle);for(const nt in tt){assert$7(nt!==void 0,"Misspelled framebuffer binding point?");const it=Number(nt),ot=tt[it];let At=ot;if(!At)this._unattach(it);else if(At instanceof Renderbuffer)this._attachRenderbuffer({attachment:it,renderbuffer:At});else if(Array.isArray(ot)){const[ut,ft=0,dt=0]=ot;At=ut,this._attachTexture({attachment:it,texture:ut,layer:ft,level:dt})}else this._attachTexture({attachment:it,texture:At,layer:0,level:0});et&&At&&At.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,rt||null),Object.assign(this.attachments,$),Object.keys(this.attachments).filter(nt=>!this.attachments[nt]).forEach(nt=>{delete this.attachments[nt]})}checkStatus(){const $=this.getStatus();if($!==36053)throw new Error(_getFrameBufferStatus($));return this}getStatus(){const{gl:$}=this,_e=$.bindFramebuffer(36160,this.handle),et=$.checkFramebufferStatus(36160);return $.bindFramebuffer(36160,_e||null),et}clear(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{color:_e,depth:et,stencil:tt,drawBuffers:rt=[]}=$,nt=this.gl.bindFramebuffer(36160,this.handle);return(_e||et||tt)&&clear(this.gl,{color:_e,depth:et,stencil:tt}),rt.forEach((it,ot)=>{clearBuffer(this.gl,{drawBuffer:ot,value:it})}),this.gl.bindFramebuffer(36160,nt||null),this}readPixels(){return log$2.error("Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)")(),null}readPixelsToBuffer(){return log$2.error("Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)")(),null}copyToDataUrl(){return log$2.error("Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)")(),null}copyToImage(){return log$2.error("Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)")(),null}copyToTexture(){return log$2.error("Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}blit(){return log$2.error("Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)")(),null}invalidate($){let{attachments:_e=[],x:et=0,y:tt=0,width:rt,height:nt}=$;const it=assertWebGL2Context(this.gl),ot=it.bindFramebuffer(36008,this.handle);return et===0&&tt===0&&rt===void 0&&nt===void 0?it.invalidateFramebuffer(36008,_e):it.invalidateFramebuffer(36008,_e,et,tt,rt,nt),it.bindFramebuffer(36008,ot),this}getAttachmentParameter($,_e,et){let tt=this._getAttachmentParameterFallback(_e);return tt===null&&(this.gl.bindFramebuffer(36160,this.handle),tt=this.gl.getFramebufferAttachmentParameter(36160,$,_e),this.gl.bindFramebuffer(36160,null)),et&&tt>1e3&&(tt=getKey(this.gl,tt)),tt}getAttachmentParameters(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:36064,_e=arguments.length>1?arguments[1]:void 0,et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[];const tt={};for(const rt of et){const nt=_e?getKey(this.gl,rt):rt;tt[nt]=this.getAttachmentParameter($,rt,_e)}return tt}getParameters(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;const _e=Object.keys(this.attachments),et={};for(const tt of _e){const rt=Number(tt),nt=$?getKey(this.gl,rt):rt;et[nt]=this.getAttachmentParameters(rt,$)}return et}show(){return typeof window<"u"&&window.open(copyToDataUrl(this),"luma-debug-texture"),this}log(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,_e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if($>log$2.level||typeof window>"u")return this;_e=_e||"Framebuffer ".concat(this.id);const et=copyToDataUrl(this,{targetMaxHeight:100});return log$2.image({logLevel:$,message:_e,image:et},_e)(),this}bind(){let{target:$=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer($,this.handle),this}unbind(){let{target:$=36160}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.gl.bindFramebuffer($,null),this}_createDefaultAttachments($,_e,et,tt,rt){let nt=null;return $&&(nt=nt||{},nt[36064]=new Texture2D(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:tt,height:rt,mipmaps:!1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.ownResources.push(nt[36064])),_e&&et?(nt=nt||{},nt[33306]=new Renderbuffer(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:tt,height:111}),this.ownResources.push(nt[33306])):_e?(nt=nt||{},nt[36096]=new Renderbuffer(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:tt,height:rt}),this.ownResources.push(nt[36096])):et&&assert$7(!1),nt}_unattach($){const _e=this.attachments[$];_e&&(_e instanceof Renderbuffer?this.gl.framebufferRenderbuffer(36160,$,36161,null):this.gl.framebufferTexture2D(36160,$,3553,null,0),delete this.attachments[$])}_attachRenderbuffer($){let{attachment:_e=36064,renderbuffer:et}=$;const{gl:tt}=this;tt.framebufferRenderbuffer(36160,_e,36161,et.handle),this.attachments[_e]=et}_attachTexture($){let{attachment:_e=36064,texture:et,layer:tt,level:rt}=$;const{gl:nt}=this;switch(nt.bindTexture(et.target,et.handle),et.target){case 35866:case 32879:assertWebGL2Context(nt).framebufferTextureLayer(36160,_e,et.target,rt,tt);break;case 34067:const ot=mapIndexToCubeMapFace(tt);nt.framebufferTexture2D(36160,_e,ot,et.handle,rt);break;case 3553:nt.framebufferTexture2D(36160,_e,3553,et.handle,rt);break;default:assert$7(!1,"Illegal texture type")}nt.bindTexture(et.target,null),this.attachments[_e]=et}_setReadBuffer($){const _e=getWebGL2Context(this.gl);_e?_e.readBuffer($):assert$7($===36064||$===1029,ERR_MULTIPLE_RENDERTARGETS),this.readBuffer=$}_setDrawBuffers($){const{gl:_e}=this,et=assertWebGL2Context(_e);if(et)et.drawBuffers($);else{const tt=_e.getExtension("WEBGL_draw_buffers");tt?tt.drawBuffersWEBGL($):assert$7($.length===1&&($[0]===36064||$[0]===1029),ERR_MULTIPLE_RENDERTARGETS)}this.drawBuffers=$}_getAttachmentParameterFallback($){const _e=getFeatures(this.gl);switch($){case 36052:return _e.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return _e.WEBGL2?null:8;case 33297:return _e.WEBGL2?null:5125;case 33296:return!_e.WEBGL2&&!_e.EXT_sRGB?9729:null;default:return null}}_createHandle(){return this.gl.createFramebuffer()}_deleteHandle(){this.gl.deleteFramebuffer(this.handle)}_bindHandle($){return this.gl.bindFramebuffer(36160,$)}}function mapIndexToCubeMapFace(j){return j<34069?j+34069:j}function _getFrameBufferStatus(j){return(Framebuffer.STATUS||{})[j]||"Framebuffer error ".concat(j)}const FRAMEBUFFER_ATTACHMENT_PARAMETERS=[36049,36048,33296,33298,33299,33300,33301,33302,33303];Framebuffer.ATTACHMENT_PARAMETERS=FRAMEBUFFER_ATTACHMENT_PARAMETERS;function cloneTextureFrom(j,$){assert$7(j instanceof Texture2D||j instanceof TextureCube||j instanceof Texture3D);const _e=j.constructor,{gl:et,width:tt,height:rt,format:nt,type:it,dataFormat:ot,border:At,mipmaps:ut}=j,ft=Object.assign({width:tt,height:rt,format:nt,type:it,dataFormat:ot,border:At,mipmaps:ut},$);return new _e(et,ft)}function toFramebuffer(j,$){const{gl:_e,width:et,height:tt,id:rt}=j;return new Framebuffer(_e,Object.assign({},$,{id:"framebuffer-for-".concat(rt),width:et,height:tt,attachments:{36064:j}}))}function getShaderName$1(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed";const _e=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,et=j.match(_e);return et?et[1]:$}const GL_FRAGMENT_SHADER=35632,GL_VERTEX_SHADER=35633;function getShaderTypeName(j){switch(j){case GL_FRAGMENT_SHADER:return"fragment";case GL_VERTEX_SHADER:return"vertex";default:return"unknown type"}}function parseGLSLCompilerError(j,$,_e,et){const tt=j.split(/\r?\n/),rt={},nt={},it=et||getShaderName$1($)||"(unnamed)",ot="".concat(getShaderTypeName(_e)," shader ").concat(it);for(let ut=0;ut1&&arguments[1]!==void 0?arguments[1]:1,_e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:": ";const et=j.split(/\r?\n/),tt=String(et.length+$-1).length;return et.map((rt,nt)=>{const it=String(nt+$),ot=it.length;return padLeft(it,tt-ot)+_e+rt})}function padLeft(j,$){let _e="";for(let et=0;et<$;++et)_e+=" ";return"".concat(_e).concat(j)}function getShaderVersion(j){let $=100;const _e=j.match(/[^\s]+/g);if(_e.length>=2&&_e[0]==="#version"){const et=parseInt(_e[1],10);Number.isFinite(et)&&($=et)}return $}const ERR_SOURCE="Shader: GLSL source code must be a JavaScript string";class Shader extends Resource$1{get[Symbol.toStringTag](){return"Shader"}static getTypeName($){switch($){case 35633:return"vertex-shader";case 35632:return"fragment-shader";default:return assert$7(!1),"unknown"}}constructor($,_e){assertWebGLContext($),assert$7(typeof _e.source=="string",ERR_SOURCE);const et=getShaderName$1(_e.source,null)||_e.id||uid("unnamed ".concat(Shader.getTypeName(_e.shaderType)));super($,{id:et}),this.shaderType=_e.shaderType,this.source=_e.source,this.initialize(_e)}initialize($){let{source:_e}=$;const et=getShaderName$1(_e,null);et&&(this.id=uid(et)),this._compile(_e)}getParameter($){return this.gl.getShaderParameter(this.handle,$)}toString(){return"".concat(Shader.getTypeName(this.shaderType),":").concat(this.id)}getName(){return getShaderName$1(this.source)||"unnamed-shader"}getSource(){return this.gl.getShaderSource(this.handle)}getTranslatedSource(){const $=this.gl.getExtension("WEBGL_debug_shaders");return $?$.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}_compile(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.source;if($.startsWith("#version ")||($=`#version 100 +`.concat($)),this.source=$,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){const et=this.gl.getShaderInfoLog(this.handle),{shaderName:tt,errors:rt,warnings:nt}=parseGLSLCompilerError(et,this.source,this.shaderType,this.id);throw log$2.error("GLSL compilation errors in ".concat(tt,` +`).concat(rt))(),log$2.warn("GLSL compilation warnings in ".concat(tt,` +`).concat(nt))(),new Error("GLSL compilation errors in ".concat(tt))}}_deleteHandle(){this.gl.deleteShader(this.handle)}_getOptsFromHandle(){return{type:this.getParameter(35663),source:this.getSource()}}}class VertexShader extends Shader{get[Symbol.toStringTag](){return"VertexShader"}constructor($,_e){typeof _e=="string"&&(_e={source:_e}),super($,Object.assign({},_e,{shaderType:35633}))}_createHandle(){return this.gl.createShader(35633)}}class FragmentShader extends Shader{get[Symbol.toStringTag](){return"FragmentShader"}constructor($,_e){typeof _e=="string"&&(_e={source:_e}),super($,Object.assign({},_e,{shaderType:35632}))}_createHandle(){return this.gl.createShader(35632)}}const UNIFORM_SETTERS={5126:getArraySetter.bind(null,"uniform1fv",toFloatArray,1,setVectorUniform),35664:getArraySetter.bind(null,"uniform2fv",toFloatArray,2,setVectorUniform),35665:getArraySetter.bind(null,"uniform3fv",toFloatArray,3,setVectorUniform),35666:getArraySetter.bind(null,"uniform4fv",toFloatArray,4,setVectorUniform),5124:getArraySetter.bind(null,"uniform1iv",toIntArray,1,setVectorUniform),35667:getArraySetter.bind(null,"uniform2iv",toIntArray,2,setVectorUniform),35668:getArraySetter.bind(null,"uniform3iv",toIntArray,3,setVectorUniform),35669:getArraySetter.bind(null,"uniform4iv",toIntArray,4,setVectorUniform),35670:getArraySetter.bind(null,"uniform1iv",toIntArray,1,setVectorUniform),35671:getArraySetter.bind(null,"uniform2iv",toIntArray,2,setVectorUniform),35672:getArraySetter.bind(null,"uniform3iv",toIntArray,3,setVectorUniform),35673:getArraySetter.bind(null,"uniform4iv",toIntArray,4,setVectorUniform),35674:getArraySetter.bind(null,"uniformMatrix2fv",toFloatArray,4,setMatrixUniform),35675:getArraySetter.bind(null,"uniformMatrix3fv",toFloatArray,9,setMatrixUniform),35676:getArraySetter.bind(null,"uniformMatrix4fv",toFloatArray,16,setMatrixUniform),35678:getSamplerSetter,35680:getSamplerSetter,5125:getArraySetter.bind(null,"uniform1uiv",toUIntArray,1,setVectorUniform),36294:getArraySetter.bind(null,"uniform2uiv",toUIntArray,2,setVectorUniform),36295:getArraySetter.bind(null,"uniform3uiv",toUIntArray,3,setVectorUniform),36296:getArraySetter.bind(null,"uniform4uiv",toUIntArray,4,setVectorUniform),35685:getArraySetter.bind(null,"uniformMatrix2x3fv",toFloatArray,6,setMatrixUniform),35686:getArraySetter.bind(null,"uniformMatrix2x4fv",toFloatArray,8,setMatrixUniform),35687:getArraySetter.bind(null,"uniformMatrix3x2fv",toFloatArray,6,setMatrixUniform),35688:getArraySetter.bind(null,"uniformMatrix3x4fv",toFloatArray,12,setMatrixUniform),35689:getArraySetter.bind(null,"uniformMatrix4x2fv",toFloatArray,8,setMatrixUniform),35690:getArraySetter.bind(null,"uniformMatrix4x3fv",toFloatArray,12,setMatrixUniform),35678:getSamplerSetter,35680:getSamplerSetter,35679:getSamplerSetter,35682:getSamplerSetter,36289:getSamplerSetter,36292:getSamplerSetter,36293:getSamplerSetter,36298:getSamplerSetter,36299:getSamplerSetter,36300:getSamplerSetter,36303:getSamplerSetter,36306:getSamplerSetter,36307:getSamplerSetter,36308:getSamplerSetter,36311:getSamplerSetter},FLOAT_ARRAY={},INT_ARRAY={},UINT_ARRAY={},array1=[0];function toTypedArray$1(j,$,_e,et){$===1&&typeof j=="boolean"&&(j=j?1:0),Number.isFinite(j)&&(array1[0]=j,j=array1);const tt=j.length;if(tt%$&&log$2.warn("Uniform size should be multiples of ".concat($),j)(),j instanceof _e)return j;let rt=et[tt];rt||(rt=new _e(tt),et[tt]=rt);for(let nt=0;nt{const tt=j!==et;return tt&&($.uniform1i(_e,et),j=et),tt}}function getArraySetter(j,$,_e,et){let tt=null,rt=null;return(nt,it,ot)=>{const At=$(ot,_e),ut=At.length;let ft=!1;if(tt===null)tt=new Float32Array(ut),rt=ut,ft=!0;else{assert$7(rt===ut,"Uniform length cannot change.");for(let dt=0;dt=0&&this._addAttribute(ot,rt,nt,it)}this.attributeInfos.sort((tt,rt)=>tt.location-rt.location)}_readVaryingsFromProgram($){const{gl:_e}=$;if(!isWebGL2$1(_e))return;const et=_e.getProgramParameter($.handle,35971);for(let tt=0;tttt.location-rt.location)}_addAttribute($,_e,et,tt){const{type:rt,components:nt}=decomposeCompositeGLType(et),it={type:rt,size:tt*nt};this._inferProperties($,_e,it);const ot={location:$,name:_e,accessor:new Accessor(it)};this.attributeInfos.push(ot),this.attributeInfosByLocation[$]=ot,this.attributeInfosByName[ot.name]=ot}_inferProperties($,_e,et){/instance/i.test(_e)&&(et.divisor=1)}_addVarying($,_e,et,tt){const{type:rt,components:nt}=decomposeCompositeGLType(et),it=new Accessor({type:rt,size:tt*nt}),ot={location:$,name:_e,accessor:it};this.varyingInfos.push(ot),this.varyingInfosByName[ot.name]=ot}}const LOG_PROGRAM_PERF_PRIORITY=4,GL_SEPARATE_ATTRIBS=35981,V6_DEPRECATED_METHODS=["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"];class Program extends Resource$1{get[Symbol.toStringTag](){return"Program"}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super($,_e),this.stubRemovedMethods("Program","v6.0",V6_DEPRECATED_METHODS),this._isCached=!1,this.initialize(_e),Object.seal(this),this._setId(_e.id)}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{hash:_e,vs:et,fs:tt,varyings:rt,bufferMode:nt=GL_SEPARATE_ATTRIBS}=$;return this.hash=_e||"",this.vs=typeof et=="string"?new VertexShader(this.gl,{id:"".concat($.id,"-vs"),source:et}):et,this.fs=typeof tt=="string"?new FragmentShader(this.gl,{id:"".concat($.id,"-fs"),source:tt}):tt,assert$7(this.vs instanceof VertexShader),assert$7(this.fs instanceof FragmentShader),this.uniforms={},this._textureUniforms={},rt&&rt.length>0&&(assertWebGL2Context(this.gl),this.varyings=rt,this.gl2.transformFeedbackVaryings(this.handle,rt,nt)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new ProgramConfiguration(this),this.setProps($)}delete(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this._isCached?this:super.delete($)}setProps($){return"uniforms"in $&&this.setUniforms($.uniforms),this}draw($){let{logPriority:_e,drawMode:et=4,vertexCount:tt,offset:rt=0,start:nt,end:it,isIndexed:ot=!1,indexType:At=5123,instanceCount:ut=0,isInstanced:ft=ut>0,vertexArray:dt=null,transformFeedback:Et,framebuffer:Bt,parameters:St={},uniforms:Dt,samplers:$t}=$;if((Dt||$t)&&(log$2.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)")(),this.setUniforms(Dt||{})),log$2.priority>=_e){const Rt=Bt?Bt.id:"default",wt="mode=".concat(getKey(this.gl,et)," verts=").concat(tt," ")+"instances=".concat(ut," indexType=").concat(getKey(this.gl,At)," ")+"isInstanced=".concat(ft," isIndexed=").concat(ot," ")+"Framebuffer=".concat(Rt);log$2.log(_e,wt)()}return assert$7(dt),this.gl.useProgram(this.handle),!this._areTexturesRenderable()||tt===0||ft&&ut===0?!1:(dt.bindForDraw(tt,ut,()=>{if(Bt!==void 0&&(St=Object.assign({},St,{framebuffer:Bt})),Et){const Rt=getPrimitiveDrawMode(et);Et.begin(Rt)}this._bindTextures(),withParameters(this.gl,St,()=>{ot&&ft?this.gl2.drawElementsInstanced(et,tt,At,rt,ut):ot&&isWebGL2$1(this.gl)&&!isNaN(nt)&&!isNaN(it)?this.gl2.drawRangeElements(et,nt,it,tt,At,rt):ot?this.gl.drawElements(et,tt,At,rt):ft?this.gl2.drawArraysInstanced(et,rt,tt,ut):this.gl.drawArrays(et,rt,tt)}),Et&&Et.end()}),!0)}setUniforms(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};log$2.priority>=2&&checkUniformValues($,this.id,this._uniformSetters),this.gl.useProgram(this.handle);for(const _e in $){const et=$[_e],tt=this._uniformSetters[_e];if(tt){let rt=et,nt=!1;if(rt instanceof Framebuffer&&(rt=rt.texture),rt instanceof Texture)if(nt=this.uniforms[_e]!==et,nt){tt.textureIndex===void 0&&(tt.textureIndex=this._textureIndexCounter++);const it=rt,{textureIndex:ot}=tt;it.bind(ot),rt=ot,this._textureUniforms[_e]=it}else rt=tt.textureIndex;else this._textureUniforms[_e]&&delete this._textureUniforms[_e];(tt(rt)||nt)&©Uniform(this.uniforms,_e,et)}}return this}_areTexturesRenderable(){let $=!0;for(const _e in this._textureUniforms){const et=this._textureUniforms[_e];et.update(),$=$&&et.loaded}return $}_bindTextures(){for(const $ in this._textureUniforms){const _e=this._uniformSetters[$].textureIndex;this._textureUniforms[$].bind(_e)}}_createHandle(){return this.gl.createProgram()}_deleteHandle(){this.gl.deleteProgram(this.handle)}_getOptionsFromHandle($){const _e=this.gl.getAttachedShaders($),et={};for(const tt of _e)switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:et.vs=new VertexShader({handle:tt});break;case 35632:et.fs=new FragmentShader({handle:tt});break}return et}_getParameter($){return this.gl.getProgramParameter(this.handle,$)}_setId($){if(!$){const _e=this._getName();this.id=uid(_e)}}_getName(){let $=this.vs.getName()||this.fs.getName();return $=$.replace(/shader/i,""),$=$?"".concat($,"-program"):"program",$}_compileAndLink(){const{gl:$}=this;if($.attachShader(this.handle,this.vs.handle),$.attachShader(this.handle,this.fs.handle),log$2.time(LOG_PROGRAM_PERF_PRIORITY,"linkProgram for ".concat(this._getName()))(),$.linkProgram(this.handle),log$2.timeEnd(LOG_PROGRAM_PERF_PRIORITY,"linkProgram for ".concat(this._getName()))(),$.debug||log$2.level>0){if(!$.getProgramParameter(this.handle,35714))throw new Error("Error linking: ".concat($.getProgramInfoLog(this.handle)));if($.validateProgram(this.handle),!$.getProgramParameter(this.handle,35715))throw new Error("Error validating: ".concat($.getProgramInfoLog(this.handle)))}}_readUniformLocationsFromLinkedProgram(){const{gl:$}=this;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(let _e=0;_e1)for(let nt=0;nt1&&arguments[1]!==void 0?arguments[1]:[];const et=isWebGL2$1($),tt=hasFeatures$1($,FEATURES$1.TIMER_QUERY);let rt=et||tt;for(const nt of _e)switch(nt){case"queries":rt=rt&&et;break;case"timers":rt=rt&&tt;break;default:assert$7(!1)}return rt}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super($,_e),this.target=null,this._queryPending=!1,this._pollingPromise=null,Object.seal(this)}beginTimeElapsedQuery(){return this.begin(GL_TIME_ELAPSED_EXT)}beginOcclusionQuery(){let{conservative:$=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.begin($?GL_ANY_SAMPLES_PASSED_CONSERVATIVE:GL_ANY_SAMPLES_PASSED)}beginTransformFeedbackQuery(){return this.begin(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN)}begin($){return this._queryPending?this:(this.target=$,this.gl2.beginQuery(this.target,this.handle),this)}end(){return this._queryPending?this:(this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this)}isResultAvailable(){if(!this._queryPending)return!1;const $=this.gl2.getQueryParameter(this.handle,GL_QUERY_RESULT_AVAILABLE);return $&&(this._queryPending=!1),$}isTimerDisjoint(){return this.gl2.getParameter(GL_GPU_DISJOINT_EXT)}getResult(){return this.gl2.getQueryParameter(this.handle,GL_QUERY_RESULT)}getTimerMilliseconds(){return this.getResult()/1e6}createPoll(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;let _e=0;return this._pollingPromise=new Promise((et,tt)=>{const rt=()=>{this.isResultAvailable()?(et(this.getResult()),this._pollingPromise=null):_e++>$?(tt("Timed out"),this._pollingPromise=null):requestAnimationFrame(rt)};requestAnimationFrame(rt)}),this._pollingPromise}_createHandle(){return Query.isSupported(this.gl)?this.gl2.createQuery():null}_deleteHandle(){this.gl2.deleteQuery(this.handle)}}class TransformFeedback extends Resource$1{get[Symbol.toStringTag](){return"TransformFeedback"}static isSupported($){return isWebGL2$1($)}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};assertWebGL2Context($),super($,_e),this.initialize(_e),this.stubRemovedMethods("TransformFeedback","v6.0",["pause","resume"]),Object.seal(this)}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,isObjectEmpty$2(this.buffers)||this.bind(()=>this._unbindBuffers()),this.setProps($),this}setProps($){"program"in $&&(this.configuration=$.program&&$.program.configuration),"configuration"in $&&(this.configuration=$.configuration),"bindOnUse"in $&&($=$.bindOnUse),"buffers"in $&&this.setBuffers($.buffers)}setBuffers(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.bind(()=>{for(const _e in $)this.setBuffer(_e,$[_e])}),this}setBuffer($,_e){const et=this._getVaryingIndex($),{buffer:tt,byteSize:rt,byteOffset:nt}=this._getBufferParams(_e);return et<0?(this.unused[$]=tt,log$2.warn("".concat(this.id," unused varying buffer ").concat($))(),this):(this.buffers[et]=_e,this.bindOnUse||this._bindBuffer(et,tt,nt,rt),this)}begin(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback($),this}end(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}_getBufferParams($){let _e,et,tt;return $ instanceof Buffer$1?tt=$:(tt=$.buffer,et=$.byteSize,_e=$.byteOffset),(_e!==void 0||et!==void 0)&&(_e=_e||0,et=et||tt.byteLength-_e),{buffer:tt,byteOffset:_e,byteSize:et}}_getVaryingInfo($){return this.configuration&&this.configuration.getVaryingInfo($)}_getVaryingIndex($){if(this.configuration)return this.configuration.getVaryingInfo($).location;const _e=Number($);return Number.isFinite(_e)?_e:-1}_bindBuffers(){if(this.bindOnUse)for(const $ in this.buffers){const{buffer:_e,byteSize:et,byteOffset:tt}=this._getBufferParams(this.buffers[$]);this._bindBuffer($,_e,tt,et)}}_unbindBuffers(){if(this.bindOnUse)for(const $ in this.buffers)this._bindBuffer($,null)}_bindBuffer($,_e){let et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,tt=arguments.length>3?arguments[3]:void 0;const rt=_e&&_e.handle;return!rt||tt===void 0?this.gl.bindBufferBase(35982,$,rt):this.gl.bindBufferRange(35982,$,rt,et,tt),this}_createHandle(){return this.gl.createTransformFeedback()}_deleteHandle(){this.gl.deleteTransformFeedback(this.handle)}_bindHandle($){this.gl.bindTransformFeedback(36386,this.handle)}}let arrayBuffer=null;function getScratchArrayBuffer(j){return(!arrayBuffer||arrayBuffer.byteLength1&&arguments[1]!==void 0?arguments[1]:{}).constantAttributeZero?isWebGL2$1($)||getBrowser()==="Chrome":!0}static getDefaultArray($){return $.luma=$.luma||{},$.luma.defaultVertexArray||($.luma.defaultVertexArray=new VertexArrayObject($,{handle:null,isDefaultArray:!0})),$.luma.defaultVertexArray}static getMaxAttributes($){return VertexArrayObject.MAX_ATTRIBUTES=VertexArrayObject.MAX_ATTRIBUTES||$.getParameter(34921),VertexArrayObject.MAX_ATTRIBUTES}static setConstant($,_e,et){switch(et.constructor){case Float32Array:VertexArrayObject._setConstantFloatArray($,_e,et);break;case Int32Array:VertexArrayObject._setConstantIntArray($,_e,et);break;case Uint32Array:VertexArrayObject._setConstantUintArray($,_e,et);break;default:assert$7(!1)}}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const et=_e.id||_e.program&&_e.program.id;super($,Object.assign({},_e,{id:et})),this.buffer=null,this.bufferValue=null,this.isDefaultArray=_e.isDefaultArray||!1,this.gl2=$,this.initialize(_e),Object.seal(this)}delete(){return super.delete(),this.buffer&&this.buffer.delete(),this}get MAX_ATTRIBUTES(){return VertexArrayObject.getMaxAttributes(this.gl)}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.setProps($)}setProps($){return this}setElementBuffer(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return assert$7(!$||$.target===34963,ERR_ELEMENTS),this.bind(()=>{this.gl.bindBuffer(34963,$?$.handle:null)}),this}setBuffer($,_e,et){if(_e.target===34963)return this.setElementBuffer(_e,et);const{size:tt,type:rt,stride:nt,offset:it,normalized:ot,integer:At,divisor:ut}=et,{gl:ft,gl2:dt}=this;return $=Number($),this.bind(()=>{ft.bindBuffer(34962,_e.handle),At?(assert$7(isWebGL2$1(ft)),dt.vertexAttribIPointer($,tt,rt,nt,it)):ft.vertexAttribPointer($,tt,rt,ot,nt,it),ft.enableVertexAttribArray($),dt.vertexAttribDivisor($,ut||0)}),this}enable($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return!_e&&$===0&&!VertexArrayObject.isSupported(this.gl,{constantAttributeZero:!0})||($=Number($),this.bind(()=>_e?this.gl.enableVertexAttribArray($):this.gl.disableVertexAttribArray($))),this}getConstantBuffer($,_e){const et=this._normalizeConstantArrayValue(_e),tt=et.byteLength*$,rt=et.length*$;let nt=!this.buffer;if(this.buffer=this.buffer||new Buffer$1(this.gl,tt),nt=nt||this.buffer.reallocate(tt),nt=nt||!this._compareConstantArrayValues(et,this.bufferValue),nt){const it=getScratchArray(_e.constructor,rt);fillArray$1({target:it,source:et,start:0,count:rt}),this.buffer.subData(it),this.bufferValue=_e}return this.buffer}_normalizeConstantArrayValue($){return Array.isArray($)?new Float32Array($):$}_compareConstantArrayValues($,_e){if(!$||!_e||$.length!==_e.length||$.constructor!==_e.constructor)return!1;for(let et=0;et<$.length;++et)if($[et]!==_e[et])return!1;return!0}static _setConstantFloatArray($,_e,et){switch(et.length){case 1:$.vertexAttrib1fv(_e,et);break;case 2:$.vertexAttrib2fv(_e,et);break;case 3:$.vertexAttrib3fv(_e,et);break;case 4:$.vertexAttrib4fv(_e,et);break;default:assert$7(!1)}}static _setConstantIntArray($,_e,et){switch(assert$7(isWebGL2$1($)),et.length){case 1:$.vertexAttribI1iv(_e,et);break;case 2:$.vertexAttribI2iv(_e,et);break;case 3:$.vertexAttribI3iv(_e,et);break;case 4:$.vertexAttribI4iv(_e,et);break;default:assert$7(!1)}}static _setConstantUintArray($,_e,et){switch(assert$7(isWebGL2$1($)),et.length){case 1:$.vertexAttribI1uiv(_e,et);break;case 2:$.vertexAttribI2uiv(_e,et);break;case 3:$.vertexAttribI3uiv(_e,et);break;case 4:$.vertexAttribI4uiv(_e,et);break;default:assert$7(!1)}}_createHandle(){return this.gl.createVertexArray()}_deleteHandle($){return this.gl2.deleteVertexArray($),[this.elements]}_bindHandle($){this.gl2.bindVertexArray($)}_getParameter($,_e){let{location:et}=_e;return assert$7(Number.isFinite(et)),this.bind(()=>{switch($){case 34373:return this.gl.getVertexAttribOffset(et,$);default:return this.gl.getVertexAttrib(et,$)}})}}const ERR_ATTRIBUTE_TYPE="VertexArray: attributes must be Buffers or constants (i.e. typed array)",MULTI_LOCATION_ATTRIBUTE_REGEXP=/^(.+)__LOCATION_([0-9]+)$/,DEPRECATIONS_V6=["setBuffers","setGeneric","clearBindings","setLocations","setGenericValues","setDivisor","enable","disable"];class VertexArray{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const et=_e.id||_e.program&&_e.program.id;this.id=et,this.gl=$,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new VertexArrayObject($),stubRemovedMethods(this,"VertexArray","v6.0",DEPRECATIONS_V6),this.initialize(_e),Object.seal(this)}delete(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps($)}reset(){this.elements=null,this.elementsAccessor=null;const{MAX_ATTRIBUTES:$}=this.vertexArrayObject;return this.values=new Array($).fill(null),this.accessors=new Array($).fill(null),this.unused={},this.drawParams=null,this}setProps($){return"program"in $&&(this.configuration=$.program&&$.program.configuration),"configuration"in $&&(this.configuration=$.configuration),"attributes"in $&&this.setAttributes($.attributes),"elements"in $&&this.setElementBuffer($.elements),"bindOnUse"in $&&($=$.bindOnUse),this}clearDrawParams(){this.drawParams=null}getDrawParams(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}setAttributes($){return Object.assign(this.attributes,$),this.vertexArrayObject.bind(()=>{for(const _e in $){const et=$[_e];this._setAttribute(_e,et)}this.gl.bindBuffer(34962,null)}),this}setElementBuffer(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,_e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.elements=$,this.elementsAccessor=_e,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer($,_e),this}setBuffer($,_e){let et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(_e.target===34963)return this.setElementBuffer(_e,et);const{location:tt,accessor:rt}=this._resolveLocationAndAccessor($,_e,_e.accessor,et);return tt>=0&&(this.values[tt]=_e,this.accessors[tt]=rt,this.clearDrawParams(),this.vertexArrayObject.setBuffer(tt,_e,rt)),this}setConstant($,_e){let et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const{location:tt,accessor:rt}=this._resolveLocationAndAccessor($,_e,Object.assign({size:_e.length},et));return tt>=0&&(_e=this.vertexArrayObject._normalizeConstantArrayValue(_e),this.values[tt]=_e,this.accessors[tt]=rt,this.clearDrawParams(),this.vertexArrayObject.enable(tt,!1)),this}unbindBuffers(){return this.vertexArrayObject.bind(()=>{this.elements&&this.vertexArrayObject.setElementBuffer(null),this.buffer=this.buffer||new Buffer$1(this.gl,{accessor:{size:4}});for(let $=0;${this.elements&&this.setElementBuffer(this.elements);for(let $=0;${this._setConstantAttributes($,_e),tt=et()}),tt}_resolveLocationAndAccessor($,_e,et,tt){const rt={location:-1,accessor:null},{location:nt,name:it}=this._getAttributeIndex($);if(!Number.isFinite(nt)||nt<0)return this.unused[$]=_e,log$2.once(3,()=>"unused value ".concat($," in ").concat(this.id))(),rt;const ot=this._getAttributeInfo(it||nt);if(!ot)return rt;const At=this.accessors[nt]||{},ut=Accessor.resolve(ot.accessor,At,et,tt),{size:ft,type:dt}=ut;return assert$7(Number.isFinite(ft)&&Number.isFinite(dt)),{location:nt,accessor:ut}}_getAttributeInfo($){return this.configuration&&this.configuration.getAttributeInfo($)}_getAttributeIndex($){const _e=Number($);if(Number.isFinite(_e))return{location:_e};const et=MULTI_LOCATION_ATTRIBUTE_REGEXP.exec($),tt=et?et[1]:$,rt=et?Number(et[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(tt)+rt,name:tt}:{location:-1}}_setAttribute($,_e){if(_e instanceof Buffer$1)this.setBuffer($,_e);else if(Array.isArray(_e)&&_e.length&&_e[0]instanceof Buffer$1){const et=_e[0],tt=_e[1];this.setBuffer($,et,tt)}else if(ArrayBuffer.isView(_e)||Array.isArray(_e)){const et=_e;this.setConstant($,et)}else if(_e.buffer instanceof Buffer$1){const et=_e;this.setBuffer($,et.buffer,et)}else throw new Error(ERR_ATTRIBUTE_TYPE)}_setConstantAttributes($,_e){const et=Math.max($|0,_e|0);let tt=this.values[0];ArrayBuffer.isView(tt)&&this._setConstantAttributeZero(tt,et);for(let rt=1;rt0;if($.isInstanced=$.isInstanced||nt,et instanceof Buffer$1){const it=et;if(nt){const ot=it.getVertexCount(tt);$.instanceCount=Math.min($.instanceCount,ot)}else{const ot=it.getVertexCount(tt);$.vertexCount=Math.min($.vertexCount,ot)}}}setElements(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,_e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return log$2.deprecated("setElements","setElementBuffer")(),this.setElementBuffer($,_e)}}function formatArrayValue(j,$){const{maxElts:_e=16,size:et=1}=$;let tt="[";for(let nt=0;nt0&&(tt+=",".concat(nt%et===0?" ":"")),tt+=formatValue(j[nt],$);const rt=j.length>_e?"...":"]";return"".concat(tt).concat(rt)}function formatValue(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const _e=1e-16,{isInteger:et=!1}=$;if(Array.isArray(j)||ArrayBuffer.isView(j))return formatArrayValue(j,$);if(!Number.isFinite(j))return String(j);if(Math.abs(j)<_e)return et?"0":"0.";if(et||Math.abs(j)>100&&Math.abs(j)<1e4)return j.toFixed(0);const tt=j.toPrecision(2);return tt.indexOf(".0")===tt.length-2?tt.slice(0,-1):tt}function getDebugTableForUniforms(j){let{header:$="Uniforms",program:_e,uniforms:et,undefinedOnly:tt=!1}=j;assert$7(_e);const rt=".*_.*",nt=".*Matrix",it=_e._uniformSetters,ot={},At=Object.keys(it).sort();let ut=0;for(const Et of At)!Et.match(rt)&&!Et.match(nt)&&addUniformToTable({table:ot,header:$,uniforms:et,uniformName:Et,undefinedOnly:tt})&&ut++;for(const Et of At)Et.match(nt)&&addUniformToTable({table:ot,header:$,uniforms:et,uniformName:Et,undefinedOnly:tt})&&ut++;for(const Et of At)ot[Et]||addUniformToTable({table:ot,header:$,uniforms:et,uniformName:Et,undefinedOnly:tt})&&ut++;let ft=0;const dt={};if(!tt)for(const Et in et){const Bt=et[Et];ot[Et]||(ft++,dt[Et]={Type:"NOT USED: ".concat(Bt),[$]:formatValue(Bt)})}return{table:ot,count:ut,unusedTable:dt,unusedCount:ft}}function addUniformToTable(j){let{table:$,header:_e,uniforms:et,uniformName:tt,undefinedOnly:rt}=j;const nt=et[tt],it=isUniformDefined(nt);return!rt||!it?($[tt]={[_e]:it?formatValue(nt):"N/A","Uniform Type":it?nt:"NOT PROVIDED"},!0):!1}function isUniformDefined(j){return j!=null}function getDebugTableForVertexArray(j){let{vertexArray:$,header:_e="Attributes"}=j;if(!$.configuration)return{};const et={};$.elements&&(et.ELEMENT_ARRAY_BUFFER=getDebugTableRow($,$.elements,null,_e));const tt=$.values;for(const rt in tt){const nt=$._getAttributeInfo(rt);if(nt){let it="".concat(rt,": ").concat(nt.name);const ot=$.accessors[nt.location];ot&&(it="".concat(rt,": ").concat(getGLSLDeclaration$1(nt.name,ot))),et[it]=getDebugTableRow($,tt[rt],ot,_e)}}return et}function getDebugTableRow(j,$,_e,et){const{gl:tt}=j;if(!$)return{[et]:"null","Format ":"N/A"};let rt="NOT PROVIDED",nt=1,it=0,ot=0,At,ut,ft;if(_e&&(rt=_e.type,nt=_e.size,rt=String(rt).replace("Array",""),At=rt.indexOf("nt")!==-1),$ instanceof Buffer$1){const dt=$,{data:Et,changed:Bt}=dt.getDebugData();ut=Bt?"*":"",ft=Et,ot=dt.byteLength,it=ot/Et.BYTES_PER_ELEMENT/nt;let St;if(_e){const Dt=_e.divisor>0;St="".concat(Dt?"I ":"P "," ").concat(it," (x").concat(nt,"=").concat(ot," bytes ").concat(getKey(tt,rt),")")}else At=!0,St="".concat(ot," bytes");return{[et]:"".concat(ut).concat(formatValue(ft,{size:nt,isInteger:At})),"Format ":St}}return ft=$,nt=$.length,rt=String($.constructor.name).replace("Array",""),At=rt.indexOf("nt")!==-1,{[et]:"".concat(formatValue(ft,{size:nt,isInteger:At})," (constant)"),"Format ":"".concat(nt,"x").concat(rt," (constant)")}}function getGLSLDeclaration$1(j,$){const{type:_e,size:et}=$,tt=getCompositeGLType(_e,et);return tt?"".concat(j," (").concat(tt.name,")"):j}function getDebugTableForProgramConfiguration(j){const $={},_e="Accessors for ".concat(j.id);for(const et of j.attributeInfos)if(et){const tt=getGLSLDeclaration(et);$["in ".concat(tt)]={[_e]:JSON.stringify(et.accessor)}}for(const et of j.varyingInfos)if(et){const tt=getGLSLDeclaration(et);$["out ".concat(tt)]={[_e]:JSON.stringify(et.accessor)}}return $}function getGLSLDeclaration(j){const{type:$,size:_e}=j.accessor,et=getCompositeGLType($,_e);return et?"".concat(et.name," ").concat(j.name):j.name}const isPage=isBrowser$1()&&typeof document<"u";let statIdCounter=0;class AnimationLoop{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{onCreateContext:_e=Dt=>createGLContext(Dt),onAddHTML:et=null,onInitialize:tt=()=>{},onRender:rt=()=>{},onFinalize:nt=()=>{},onError:it,gl:ot=null,glOptions:At={},debug:ut=!1,createFramebuffer:ft=!1,autoResizeViewport:dt=!0,autoResizeDrawingBuffer:Et=!0,stats:Bt=lumaStats.get("animation-loop-".concat(statIdCounter++))}=$;let{useDevicePixels:St=!0}=$;"useDevicePixelRatio"in $&&(log$2.deprecated("useDevicePixelRatio","useDevicePixels")(),St=$.useDevicePixelRatio),this.props={onCreateContext:_e,onAddHTML:et,onInitialize:tt,onRender:rt,onFinalize:nt,onError:it,gl:ot,glOptions:At,debug:ut,createFramebuffer:ft},this.gl=ot,this.needsRedraw=null,this.timeline=null,this.stats=Bt,this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:dt,autoResizeDrawingBuffer:Et,useDevicePixels:St}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}delete(){this.stop(),this._setDisplay(null)}setNeedsRedraw($){return assert$7(typeof $=="string"),this.needsRedraw=this.needsRedraw||$,this}setProps($){return"autoResizeViewport"in $&&(this.autoResizeViewport=$.autoResizeViewport),"autoResizeDrawingBuffer"in $&&(this.autoResizeDrawingBuffer=$.autoResizeDrawingBuffer),"useDevicePixels"in $&&(this.useDevicePixels=$.useDevicePixels),this}start(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this._running)return this;this._running=!0;const _e=this._getPageLoadPromise().then(()=>!this._running||this._initialized?null:(this._createWebGLContext($),this._createFramebuffer(),this._startEventHandling(),this._initializeCallbackData(),this._updateCallbackData(),this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._gpuTimeQuery=Query.isSupported(this.gl,["timers"])?new Query(this.gl):null,this._initialized=!0,this.onInitialize(this.animationProps))).then(et=>{this._running&&(this._addCallbackData(et||{}),et!==!1&&this._startLoop())});return this.props.onError&&_e.catch(this.props.onError),this}redraw(){return this.isContextLost()?this:(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers(),this)}stop(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}attachTimeline($){return this.timeline=$,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise($=>{this._resolveNextFrame=$})),this._nextFramePromise}async toDataURL(){return this.setNeedsRedraw("toDataURL"),await this.waitForRender(),this.gl.canvas.toDataURL()}isContextLost(){return this.gl.isContextLost()}onCreateContext(){return this.props.onCreateContext(...arguments)}onInitialize(){return this.props.onInitialize(...arguments)}onRender(){return this.props.onRender(...arguments)}onFinalize(){return this.props.onFinalize(...arguments)}getHTMLControlValue($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const et=document.getElementById($);return et?Number(et.value):_e}setViewParameters(){return log$2.removed("AnimationLoop.setViewParameters","AnimationLoop.setProps")(),this}_startLoop(){const $=()=>{this._running&&(this.redraw(),this._animationFrameId=this._requestAnimationFrame($))};this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame($)}_getPageLoadPromise(){return this._pageLoadPromise||(this._pageLoadPromise=isPage?new Promise(($,_e)=>{if(isPage&&document.readyState==="complete"){$(document);return}window.addEventListener("load",()=>{$(document)})}):Promise.resolve({})),this._pageLoadPromise}_setDisplay($){this.display&&(this.display.delete(),this.display.animationLoop=null),$&&($.animationLoop=this),this.display=$}_cancelAnimationFrame($){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame($):cancelAnimationFrame$1($)}_requestAnimationFrame($){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame($):requestAnimationFrame$1($)}_renderFrame(){if(this.display){this.display._renderFrame(...arguments);return}this.onRender(...arguments)}_clearNeedsRedraw(){this.needsRedraw=null}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}_initializeCallbackData(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}_updateCallbackData(){const{width:$,height:_e,aspect:et}=this._getSizeAndAspect();($!==this.animationProps.width||_e!==this.animationProps.height)&&this.setNeedsRedraw("drawing buffer resized"),et!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=$,this.animationProps.height=_e,this.animationProps.aspect=et,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}_finalizeCallbackData(){this.onFinalize(this.animationProps)}_addCallbackData($){typeof $=="object"&&$!==null&&(this.animationProps=Object.assign({},this.animationProps,$))}_createWebGLContext($){if(this.offScreen=$.canvas&&typeof OffscreenCanvas<"u"&&$.canvas instanceof OffscreenCanvas,$=Object.assign({},$,this.props.glOptions),this.gl=this.props.gl?instrumentGLContext(this.props.gl,$):this.onCreateContext($),!isWebGL(this.gl))throw new Error("AnimationLoop.onCreateContext - illegal context returned");resetParameters(this.gl),this._createInfoDiv()}_createInfoDiv(){if(this.gl.canvas&&this.props.onAddHTML){const $=document.createElement("div");document.body.appendChild($),$.style.position="relative";const _e=document.createElement("div");_e.style.position="absolute",_e.style.left="10px",_e.style.bottom="10px",_e.style.width="300px",_e.style.background="white",$.appendChild(this.gl.canvas),$.appendChild(_e);const et=this.props.onAddHTML(_e);et&&(_e.innerHTML=et)}}_getSizeAndAspect(){const $=this.gl.drawingBufferWidth,_e=this.gl.drawingBufferHeight;let et=1;const{canvas:tt}=this.gl;return tt&&tt.clientHeight?et=tt.clientWidth/tt.clientHeight:$>0&&_e>0&&(et=$/_e),{width:$,height:_e,aspect:et}}_resizeViewport(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.autoResizeDrawingBuffer&&resizeGLContext(this.gl,{useDevicePixels:this.useDevicePixels})}_createFramebuffer(){this.props.createFramebuffer&&(this.framebuffer=new Framebuffer(this.gl))}_resizeFramebuffer(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}_beginTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get("GPU Time").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}_endTimers(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}_startEventHandling(){const{canvas:$}=this.gl;$&&($.addEventListener("mousemove",this._onMousemove),$.addEventListener("mouseleave",this._onMouseleave))}_onMousemove($){this.animationProps._mousePosition=[$.offsetX,$.offsetY]}_onMouseleave($){this.animationProps._mousePosition=null}}const VERTEX_SHADER$1="vs",FRAGMENT_SHADER$1="fs";function assert$6(j,$){if(!j)throw new Error($||"shadertools: assertion failed.")}const TYPE_DEFINITIONS$1={number:{validate(j,$){return Number.isFinite(j)&&(!("max"in $)||j<=$.max)&&(!("min"in $)||j>=$.min)}},array:{validate(j,$){return Array.isArray(j)||ArrayBuffer.isView(j)}}};function parsePropTypes$1(j){const $={};for(const _e in j){const et=j[_e],tt=parsePropType$1(et);$[_e]=tt}return $}function parsePropType$1(j){let $=getTypeOf$1(j);return $==="object"?j?"type"in j?Object.assign({},j,TYPE_DEFINITIONS$1[j.type]):"value"in j?($=getTypeOf$1(j.value),Object.assign({type:$},j,TYPE_DEFINITIONS$1[$])):{type:"object",value:j}:{type:"object",value:null}:Object.assign({type:$,value:j},TYPE_DEFINITIONS$1[$])}function getTypeOf$1(j){return Array.isArray(j)||ArrayBuffer.isView(j)?"array":typeof j}const VERTEX_SHADER="vs",FRAGMENT_SHADER="fs";class ShaderModule{constructor($){let{name:_e,vs:et,fs:tt,dependencies:rt=[],uniforms:nt,getUniforms:it,deprecations:ot=[],defines:At={},inject:ut={},vertexShader:ft,fragmentShader:dt}=$;assert$6(typeof _e=="string"),this.name=_e,this.vs=et||ft,this.fs=tt||dt,this.getModuleUniforms=it,this.dependencies=rt,this.deprecations=this._parseDeprecationDefinitions(ot),this.defines=At,this.injections=normalizeInjections(ut),nt&&(this.uniforms=parsePropTypes$1(nt))}getModuleSource($){let _e;switch($){case VERTEX_SHADER:_e=this.vs||"";break;case FRAGMENT_SHADER:_e=this.fs||"";break;default:assert$6(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),` +`).concat(_e,"// END MODULE_").concat(this.name,` + +`)}getUniforms($,_e){return this.getModuleUniforms?this.getModuleUniforms($,_e):this.uniforms?this._defaultGetUniforms($):{}}getDefines(){return this.defines}checkDeprecations($,_e){this.deprecations.forEach(et=>{et.regex.test($)&&(et.deprecated?_e.deprecated(et.old,et.new)():_e.removed(et.old,et.new)())})}_parseDeprecationDefinitions($){return $.forEach(_e=>{switch(_e.type){case"function":_e.regex=new RegExp("\\b".concat(_e.old,"\\("));break;default:_e.regex=new RegExp("".concat(_e.type," ").concat(_e.old,";"))}}),$}_defaultGetUniforms(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const _e={},et=this.uniforms;for(const tt in et){const rt=et[tt];tt in $&&!rt.private?(rt.validate&&assert$6(rt.validate($[tt],rt),"".concat(this.name,": invalid ").concat(tt)),_e[tt]=$[tt]):_e[tt]=rt.value}return _e}}function normalizeShaderModule(j){if(!j.normalized&&(j.normalized=!0,j.uniforms&&!j.getUniforms)){const $=new ShaderModule(j);j.getUniforms=$.getUniforms.bind($)}return j}function normalizeInjections(j){const $={vs:{},fs:{}};for(const _e in j){let et=j[_e];const tt=_e.slice(0,2);typeof et=="string"&&(et={order:0,injection:et}),$[tt][_e]=et}return $}function resolveModules(j){return getShaderDependencies(instantiateModules(j))}function getShaderDependencies(j){const $={},_e={};return getDependencyGraph({modules:j,level:0,moduleMap:$,moduleDepth:_e}),Object.keys(_e).sort((et,tt)=>_e[tt]-_e[et]).map(et=>$[et])}function getDependencyGraph(j){let{modules:$,level:_e,moduleMap:et,moduleDepth:tt}=j;if(_e>=5)throw new Error("Possible loop in shader dependency graph");for(const rt of $)et[rt.name]=rt,(tt[rt.name]===void 0||tt[rt.name]<_e)&&(tt[rt.name]=_e);for(const rt of $)rt.dependencies&&getDependencyGraph({modules:rt.dependencies,level:_e+1,moduleMap:et,moduleDepth:tt})}function instantiateModules(j,$){return j.map(_e=>(_e instanceof ShaderModule||(assert$6(typeof _e!="string","Shader module use by name is deprecated. Import shader module '".concat(_e,"' and use it directly.")),assert$6(_e.name,"shader module has no name"),_e=new ShaderModule(_e),_e.dependencies=instantiateModules(_e.dependencies)),_e))}function isOldIE(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const $=typeof window<"u"?window.navigator||{}:{},_e=j.userAgent||$.userAgent||"",et=_e.indexOf("MSIE ")!==-1,tt=_e.indexOf("Trident/")!==-1;return et||tt}const GL_VENDOR=7936,GL_RENDERER=7937,GL_VERSION=7938,GL_SHADING_LANGUAGE_VERSION=35724,WEBGL_FEATURES={GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},FEATURES={};Object.keys(WEBGL_FEATURES).forEach(j=>{FEATURES[j]=j});function isWebGL2(j){return typeof WebGL2RenderingContext<"u"&&j instanceof WebGL2RenderingContext?!0:!!(j&&j._version===2)}function getContextInfo(j){const $=j.getExtension("WEBGL_debug_renderer_info"),_e=j.getParameter($&&$.UNMASKED_VENDOR_WEBGL||GL_VENDOR),et=j.getParameter($&&$.UNMASKED_RENDERER_WEBGL||GL_RENDERER);return{gpuVendor:identifyGPUVendor(_e,et),vendor:_e,renderer:et,version:j.getParameter(GL_VERSION),shadingLanguageVersion:j.getParameter(GL_SHADING_LANGUAGE_VERSION)}}function identifyGPUVendor(j,$){return j.match(/NVIDIA/i)||$.match(/NVIDIA/i)?"NVIDIA":j.match(/INTEL/i)||$.match(/INTEL/i)?"INTEL":j.match(/AMD/i)||$.match(/AMD/i)||j.match(/ATI/i)||$.match(/ATI/i)?"AMD":"UNKNOWN GPU"}const compiledGlslExtensions={};function canCompileGLGSExtension(j,$){let _e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const et=WEBGL_FEATURES[$];if(assert$6(et,$),!isOldIE(_e))return!0;if($ in compiledGlslExtensions)return compiledGlslExtensions[$];const tt=et[0],rt=_e.behavior||"enable",nt="#extension GL_".concat(tt," : ").concat(rt,` +void main(void) {}`),it=j.createShader(35633);j.shaderSource(it,nt),j.compileShader(it);const ot=j.getShaderParameter(it,35713);return j.deleteShader(it),compiledGlslExtensions[$]=ot,ot}function getFeature(j,$){const _e=WEBGL_FEATURES[$];assert$6(_e,$);const et=isWebGL2(j)&&_e[1]||_e[0],tt=typeof et=="string"?!!j.getExtension(et):et;return assert$6(tt===!1||tt===!0),tt}function hasFeatures(j,$){return $=Array.isArray($)?$:[$],$.every(_e=>getFeature(j,_e))}function getPlatformShaderDefines(j){switch(getContextInfo(j).gpuVendor.toLowerCase()){case"nvidia":return`#define NVIDIA_GPU +// Nvidia optimizes away the calculation necessary for emulated fp64 +#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 +`;case"intel":return`#define INTEL_GPU +// Intel optimizes away the calculation necessary for emulated fp64 +#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 +// Intel's built-in 'tan' function doesn't have acceptable precision +#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1 +// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow +#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1 +`;case"amd":return`#define AMD_GPU +`;default:return`#define DEFAULT_GPU +// Prevent driver from optimizing away the calculation necessary for emulated fp64 +#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 +// Intel's built-in 'tan' function doesn't have acceptable precision +#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1 +// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow +#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1 +`}}function getVersionDefines(j,$,_e){let et=`#if (__VERSION__ > 120) + +# define FEATURE_GLSL_DERIVATIVES +# define FEATURE_GLSL_DRAW_BUFFERS +# define FEATURE_GLSL_FRAG_DEPTH +# define FEATURE_GLSL_TEXTURE_LOD + +// DEPRECATED FLAGS, remove in v9 +# define FRAG_DEPTH +# define DERIVATIVES +# define DRAW_BUFFERS +# define TEXTURE_LOD + +#endif // __VERSION +`;return hasFeatures(j,FEATURES.GLSL_FRAG_DEPTH)&&(et+=` +// FRAG_DEPTH => gl_FragDepth is available +#ifdef GL_EXT_frag_depth +#extension GL_EXT_frag_depth : enable +# define FEATURE_GLSL_FRAG_DEPTH +# define FRAG_DEPTH +# define gl_FragDepth gl_FragDepthEXT +#endif +`),hasFeatures(j,FEATURES.GLSL_DERIVATIVES)&&canCompileGLGSExtension(j,FEATURES.GLSL_DERIVATIVES)&&(et+=` +// DERIVATIVES => dxdF, dxdY and fwidth are available +#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +# define FEATURE_GLSL_DERIVATIVES +# define DERIVATIVES +#endif +`),hasFeatures(j,FEATURES.GLSL_FRAG_DATA)&&canCompileGLGSExtension(j,FEATURES.GLSL_FRAG_DATA,{behavior:"require"})&&(et+=` +// DRAW_BUFFERS => gl_FragData[] is available +#ifdef GL_EXT_draw_buffers +#extension GL_EXT_draw_buffers : require +#define FEATURE_GLSL_DRAW_BUFFERS +#define DRAW_BUFFERS +#endif +`),hasFeatures(j,FEATURES.GLSL_TEXTURE_LOD)&&(et+=`// TEXTURE_LOD => texture2DLod etc are available +#ifdef GL_EXT_shader_texture_lod +#extension GL_EXT_shader_texture_lod : enable + +# define FEATURE_GLSL_TEXTURE_LOD +# define TEXTURE_LOD + +#endif +`),et}const MODULE_INJECTORS_VS=`#ifdef MODULE_LOGDEPTH + logdepth_adjustPosition(gl_Position); +#endif +`,MODULE_INJECTORS_FS=`#ifdef MODULE_MATERIAL + gl_FragColor = material_filterColor(gl_FragColor); +#endif + +#ifdef MODULE_LIGHTING + gl_FragColor = lighting_filterColor(gl_FragColor); +#endif + +#ifdef MODULE_FOG + gl_FragColor = fog_filterColor(gl_FragColor); +#endif + +#ifdef MODULE_PICKING + gl_FragColor = picking_filterHighlightColor(gl_FragColor); + gl_FragColor = picking_filterPickingColor(gl_FragColor); +#endif + +#ifdef MODULE_LOGDEPTH + logdepth_setFragDepth(); +#endif +`,MODULE_INJECTORS={[VERTEX_SHADER$1]:MODULE_INJECTORS_VS,[FRAGMENT_SHADER$1]:MODULE_INJECTORS_FS},DECLARATION_INJECT_MARKER="__LUMA_INJECT_DECLARATIONS__",REGEX_START_OF_MAIN$1=/void\s+main\s*\([^)]*\)\s*\{\n?/,REGEX_END_OF_MAIN=/}\n?[^{}]*$/,fragments=[];function injectShader(j,$,_e){let et=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const tt=$===VERTEX_SHADER$1;for(const rt in _e){const nt=_e[rt];nt.sort((ot,At)=>ot.order-At.order),fragments.length=nt.length;for(let ot=0,At=nt.length;otot+it));break;case"vs:#main-end":tt&&(j=j.replace(REGEX_END_OF_MAIN,ot=>it+ot));break;case"fs:#decl":tt||(j=j.replace(DECLARATION_INJECT_MARKER,it));break;case"fs:#main-start":tt||(j=j.replace(REGEX_START_OF_MAIN$1,ot=>ot+it));break;case"fs:#main-end":tt||(j=j.replace(REGEX_END_OF_MAIN,ot=>it+ot));break;default:j=j.replace(rt,ot=>ot+it)}}return j=j.replace(DECLARATION_INJECT_MARKER,""),et&&(j=j.replace(/\}\s*$/,rt=>rt+MODULE_INJECTORS[$])),j}function combineInjects(j){const $={};return assert$6(Array.isArray(j)&&j.length>1),j.forEach(_e=>{for(const et in _e)$[et]=$[et]?"".concat($[et],` +`).concat(_e[et]):_e[et]}),$}function testVariable(j){return new RegExp("\\b".concat(j,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}const ES300_REPLACEMENTS=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es +`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],ES300_VERTEX_REPLACEMENTS=[...ES300_REPLACEMENTS,[testVariable("attribute"),"in $1"],[testVariable("varying"),"out $1"]],ES300_FRAGMENT_REPLACEMENTS=[...ES300_REPLACEMENTS,[testVariable("varying"),"in $1"]],ES100_REPLACEMENTS=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],ES100_VERTEX_REPLACEMENTS=[...ES100_REPLACEMENTS,[testVariable("in"),"attribute $1"],[testVariable("out"),"varying $1"]],ES100_FRAGMENT_REPLACEMENTS=[...ES100_REPLACEMENTS,[testVariable("in"),"varying $1"]],ES100_FRAGMENT_OUTPUT_NAME="gl_FragColor",ES300_FRAGMENT_OUTPUT_REGEX=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,REGEX_START_OF_MAIN=/void\s+main\s*\([^)]*\)\s*\{\n?/;function transpileShader(j,$,_e){switch($){case 300:return _e?convertShader(j,ES300_VERTEX_REPLACEMENTS):convertFragmentShaderTo300(j);case 100:return _e?convertShader(j,ES100_VERTEX_REPLACEMENTS):convertFragmentShaderTo100(j);default:throw new Error("unknown GLSL version ".concat($))}}function convertShader(j,$){for(const[_e,et]of $)j=j.replace(_e,et);return j}function convertFragmentShaderTo300(j){j=convertShader(j,ES300_FRAGMENT_REPLACEMENTS);const $=j.match(ES300_FRAGMENT_OUTPUT_REGEX);if($){const _e=$[1];j=j.replace(new RegExp("\\b".concat(ES100_FRAGMENT_OUTPUT_NAME,"\\b"),"g"),_e)}else{const _e="fragmentColor";j=j.replace(REGEX_START_OF_MAIN,et=>"out vec4 ".concat(_e,`; +`).concat(et)).replace(new RegExp("\\b".concat(ES100_FRAGMENT_OUTPUT_NAME,"\\b"),"g"),_e)}return j}function convertFragmentShaderTo100(j){j=convertShader(j,ES100_FRAGMENT_REPLACEMENTS);const $=j.match(ES300_FRAGMENT_OUTPUT_REGEX);if($){const _e=$[1];j=j.replace(ES300_FRAGMENT_OUTPUT_REGEX,"").replace(new RegExp("\\b".concat(_e,"\\b"),"g"),ES100_FRAGMENT_OUTPUT_NAME)}return j}const INJECT_SHADER_DECLARATIONS=` + +`.concat(DECLARATION_INJECT_MARKER,` + +`),SHADER_TYPE={[VERTEX_SHADER$1]:"vertex",[FRAGMENT_SHADER$1]:"fragment"},FRAGMENT_SHADER_PROLOGUE=`precision highp float; + +`;function assembleShaders(j,$){const{vs:_e,fs:et}=$,tt=resolveModules($.modules||[]);return{gl:j,vs:assembleShader(j,Object.assign({},$,{source:_e,type:VERTEX_SHADER$1,modules:tt})),fs:assembleShader(j,Object.assign({},$,{source:et,type:FRAGMENT_SHADER$1,modules:tt})),getUniforms:assembleGetUniforms(tt)}}function assembleShader(j,$){let{id:_e,source:et,type:tt,modules:rt,defines:nt={},hookFunctions:it=[],inject:ot={},transpileToGLSL100:At=!1,prologue:ut=!0,log:ft}=$;assert$6(typeof et=="string","shader source must be a string");const dt=tt===VERTEX_SHADER$1,Et=et.split(` +`);let Bt=100,St="",Dt=et;Et[0].indexOf("#version ")===0?(Bt=300,St=Et[0],Dt=Et.slice(1).join(` +`)):St="#version ".concat(Bt);const $t={};rt.forEach(kt=>{Object.assign($t,kt.getDefines())}),Object.assign($t,nt);let Rt=ut?"".concat(St,` +`).concat(getShaderName({id:_e,source:et,type:tt}),` +`).concat(getShaderType({type:tt}),` +`).concat(getPlatformShaderDefines(j),` +`).concat(getVersionDefines(j),` +`).concat(getApplicationDefines($t),` +`).concat(dt?"":FRAGMENT_SHADER_PROLOGUE,` +`):"".concat(St,` +`);const wt=normalizeHookFunctions(it),xt={},Nt={},Ot={};for(const kt in ot){const Jt=typeof ot[kt]=="string"?{injection:ot[kt],order:0}:ot[kt],jt=kt.match(/^(v|f)s:(#)?([\w-]+)$/);if(jt){const Ht=jt[2],Gt=jt[3];Ht?Gt==="decl"?Nt[kt]=[Jt]:Ot[kt]=[Jt]:xt[kt]=[Jt]}else Ot[kt]=[Jt]}for(const kt of rt){ft&&kt.checkDeprecations(Dt,ft);const Jt=kt.getModuleSource(tt,Bt);Rt+=Jt;const jt=kt.injections[tt];for(const Ht in jt){const Gt=Ht.match(/^(v|f)s:#([\w-]+)$/);if(Gt){const Wt=Gt[2]==="decl"?Nt:Ot;Wt[Ht]=Wt[Ht]||[],Wt[Ht].push(jt[Ht])}else xt[Ht]=xt[Ht]||[],xt[Ht].push(jt[Ht])}}return Rt+=INJECT_SHADER_DECLARATIONS,Rt=injectShader(Rt,tt,Nt),Rt+=getHookFunctions(wt[tt],xt),Rt+=Dt,Rt=injectShader(Rt,tt,Ot),Rt=transpileShader(Rt,At?100:Bt,dt),Rt}function assembleGetUniforms(j){return function(_e){const et={};for(const tt of j){const rt=tt.getUniforms(_e,et);Object.assign(et,rt)}return et}}function getShaderType(j){let{type:$}=j;return` +#define SHADER_TYPE_`.concat(SHADER_TYPE[$].toUpperCase(),` +`)}function getShaderName(j){let{id:$,source:_e,type:et}=j;return $&&typeof $=="string"&&_e.indexOf("SHADER_NAME")===-1?` +#define SHADER_NAME `.concat($,"_").concat(SHADER_TYPE[et],` + +`):""}function getApplicationDefines(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},$=0,_e="";for(const et in j){$===0&&(_e+=` +// APPLICATION DEFINES +`),$++;const tt=j[et];(tt||Number.isFinite(tt))&&(_e+="#define ".concat(et.toUpperCase()," ").concat(j[et],` +`))}return $===0&&(_e+=` +`),_e}function getHookFunctions(j,$){let _e="";for(const et in j){const tt=j[et];if(_e+="void ".concat(tt.signature,` { +`),tt.header&&(_e+=" ".concat(tt.header)),$[et]){const rt=$[et];rt.sort((nt,it)=>nt.order-it.order);for(const nt of rt)_e+=" ".concat(nt.injection,` +`)}tt.footer&&(_e+=" ".concat(tt.footer)),_e+=`} +`}return _e}function normalizeHookFunctions(j){const $={vs:{},fs:{}};return j.forEach(_e=>{let et;typeof _e!="string"?(et=_e,_e=et.hook):et={},_e=_e.trim();const[tt,rt]=_e.split(":"),nt=_e.replace(/\(.+/,"");$[tt][nt]=Object.assign(et,{signature:rt})}),$}const FS100="void main() {gl_FragColor = vec4(0);}",FS_GLES=`out vec4 transform_output; +void main() { + transform_output = vec4(0); +}`,FS300=`#version 300 es +`.concat(FS_GLES);function getQualifierDetails(j,$){$=Array.isArray($)?$:[$];const _e=j.replace(/^\s+/,"").split(/\s+/),[et,tt,rt]=_e;if(!$.includes(et)||!tt||!rt)return null;const nt=rt.split(";")[0];return{qualifier:et,type:tt,name:nt}}function getPassthroughFS(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{version:$=100,input:_e,inputType:et,output:tt}=j;if(!_e)return $===300?FS300:$>300?"#version ".concat($,` +`).concat(FS_GLES):FS100;const rt=convertToVec4(_e,et);return $>=300?"#version ".concat($," ").concat($===300?"es":"",` +in `).concat(et," ").concat(_e,`; +out vec4 `).concat(tt,`; +void main() { + `).concat(tt," = ").concat(rt,`; +}`):"varying ".concat(et," ").concat(_e,`; +void main() { + gl_FragColor = `).concat(rt,`; +}`)}function typeToChannelSuffix(j){switch(j){case"float":return"x";case"vec2":return"xy";case"vec3":return"xyz";case"vec4":return"xyzw";default:return assert$6(!1),null}}function typeToChannelCount(j){switch(j){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;default:return assert$6(!1),null}}function convertToVec4(j,$){switch($){case"float":return"vec4(".concat(j,", 0.0, 0.0, 1.0)");case"vec2":return"vec4(".concat(j,", 0.0, 1.0)");case"vec3":return"vec4(".concat(j,", 1.0)");case"vec4":return j;default:return assert$6(!1),null}}const fp32shader=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND +const float TWO_PI = 6.2831854820251465; +const float PI_2 = 1.5707963705062866; +const float PI_16 = 0.1963495463132858; + +const float SIN_TABLE_0 = 0.19509032368659973; +const float SIN_TABLE_1 = 0.3826834261417389; +const float SIN_TABLE_2 = 0.5555702447891235; +const float SIN_TABLE_3 = 0.7071067690849304; + +const float COS_TABLE_0 = 0.9807852506637573; +const float COS_TABLE_1 = 0.9238795042037964; +const float COS_TABLE_2 = 0.8314695954322815; +const float COS_TABLE_3 = 0.7071067690849304; + +const float INVERSE_FACTORIAL_3 = 1.666666716337204e-01; +const float INVERSE_FACTORIAL_5 = 8.333333767950535e-03; +const float INVERSE_FACTORIAL_7 = 1.9841270113829523e-04; +const float INVERSE_FACTORIAL_9 = 2.75573188446287533e-06; + +float sin_taylor_fp32(float a) { + float r, s, t, x; + + if (a == 0.0) { + return 0.0; + } + + x = -a * a; + s = a; + r = a; + + r = r * x; + t = r * INVERSE_FACTORIAL_3; + s = s + t; + + r = r * x; + t = r * INVERSE_FACTORIAL_5; + s = s + t; + + r = r * x; + t = r * INVERSE_FACTORIAL_7; + s = s + t; + + r = r * x; + t = r * INVERSE_FACTORIAL_9; + s = s + t; + + return s; +} + +void sincos_taylor_fp32(float a, out float sin_t, out float cos_t) { + if (a == 0.0) { + sin_t = 0.0; + cos_t = 1.0; + } + sin_t = sin_taylor_fp32(a); + cos_t = sqrt(1.0 - sin_t * sin_t); +} + +float tan_taylor_fp32(float a) { + float sin_a; + float cos_a; + + if (a == 0.0) { + return 0.0; + } + float z = floor(a / TWO_PI); + float r = a - TWO_PI * z; + + float t; + float q = floor(r / PI_2 + 0.5); + int j = int(q); + + if (j < -2 || j > 2) { + return 1.0 / 0.0; + } + + t = r - PI_2 * q; + + q = floor(t / PI_16 + 0.5); + int k = int(q); + int abs_k = int(abs(float(k))); + + if (abs_k > 4) { + return 1.0 / 0.0; + } else { + t = t - PI_16 * q; + } + + float u = 0.0; + float v = 0.0; + + float sin_t, cos_t; + float s, c; + sincos_taylor_fp32(t, sin_t, cos_t); + + if (k == 0) { + s = sin_t; + c = cos_t; + } else { + if (abs(float(abs_k) - 1.0) < 0.5) { + u = COS_TABLE_0; + v = SIN_TABLE_0; + } else if (abs(float(abs_k) - 2.0) < 0.5) { + u = COS_TABLE_1; + v = SIN_TABLE_1; + } else if (abs(float(abs_k) - 3.0) < 0.5) { + u = COS_TABLE_2; + v = SIN_TABLE_2; + } else if (abs(float(abs_k) - 4.0) < 0.5) { + u = COS_TABLE_3; + v = SIN_TABLE_3; + } + if (k > 0) { + s = u * sin_t + v * cos_t; + c = u * cos_t - v * sin_t; + } else { + s = u * sin_t - v * cos_t; + c = u * cos_t + v * sin_t; + } + } + + if (j == 0) { + sin_a = s; + cos_a = c; + } else if (j == 1) { + sin_a = c; + cos_a = -s; + } else if (j == -1) { + sin_a = -c; + cos_a = s; + } else { + sin_a = -s; + cos_a = -c; + } + return sin_a / cos_a; +} +#endif + +float tan_fp32(float a) { +#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND + return tan_taylor_fp32(a); +#else + return tan(a); +#endif +} +`,fp32={name:"fp32",vs:fp32shader,fs:null};function fp64ify(j){let $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],_e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;const et=Math.fround(j),tt=j-et;return $[_e]=et,$[_e+1]=tt,$}function fp64LowPart$1(j){return j-Math.fround(j)}function fp64ifyMatrix4(j){const $=new Float32Array(32);for(let _e=0;_e<4;++_e)for(let et=0;et<4;++et){const tt=_e*4+et;fp64ify(j[et*4+_e],$,tt*2)}return $}const fp64arithmeticShader=`uniform float ONE; +vec2 split(float a) { + const float SPLIT = 4097.0; + float t = a * SPLIT; +#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) + float a_hi = t * ONE - (t - a); + float a_lo = a * ONE - a_hi; +#else + float a_hi = t - (t - a); + float a_lo = a - a_hi; +#endif + return vec2(a_hi, a_lo); +} +vec2 split2(vec2 a) { + vec2 b = split(a.x); + b.y += a.y; + return b; +} +vec2 quickTwoSum(float a, float b) { +#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) + float sum = (a + b) * ONE; + float err = b - (sum - a) * ONE; +#else + float sum = a + b; + float err = b - (sum - a); +#endif + return vec2(sum, err); +} +vec2 twoSum(float a, float b) { + float s = (a + b); +#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) + float v = (s * ONE - a) * ONE; + float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v); +#else + float v = s - a; + float err = (a - (s - v)) + (b - v); +#endif + return vec2(s, err); +} + +vec2 twoSub(float a, float b) { + float s = (a - b); +#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) + float v = (s * ONE - a) * ONE; + float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v); +#else + float v = s - a; + float err = (a - (s - v)) - (b + v); +#endif + return vec2(s, err); +} + +vec2 twoSqr(float a) { + float prod = a * a; + vec2 a_fp64 = split(a); +#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) + float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x * + a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE; +#else + float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y; +#endif + return vec2(prod, err); +} + +vec2 twoProd(float a, float b) { + float prod = a * b; + vec2 a_fp64 = split(a); + vec2 b_fp64 = split(b); + float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y + + a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y; + return vec2(prod, err); +} + +vec2 sum_fp64(vec2 a, vec2 b) { + vec2 s, t; + s = twoSum(a.x, b.x); + t = twoSum(a.y, b.y); + s.y += t.x; + s = quickTwoSum(s.x, s.y); + s.y += t.y; + s = quickTwoSum(s.x, s.y); + return s; +} + +vec2 sub_fp64(vec2 a, vec2 b) { + vec2 s, t; + s = twoSub(a.x, b.x); + t = twoSub(a.y, b.y); + s.y += t.x; + s = quickTwoSum(s.x, s.y); + s.y += t.y; + s = quickTwoSum(s.x, s.y); + return s; +} + +vec2 mul_fp64(vec2 a, vec2 b) { + vec2 prod = twoProd(a.x, b.x); + prod.y += a.x * b.y; +#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) + prod = split2(prod); +#endif + prod = quickTwoSum(prod.x, prod.y); + prod.y += a.y * b.x; +#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) + prod = split2(prod); +#endif + prod = quickTwoSum(prod.x, prod.y); + return prod; +} + +vec2 div_fp64(vec2 a, vec2 b) { + float xn = 1.0 / b.x; +#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) + vec2 yn = mul_fp64(a, vec2(xn, 0)); +#else + vec2 yn = a * xn; +#endif + float diff = (sub_fp64(a, mul_fp64(b, yn))).x; + vec2 prod = twoProd(xn, diff); + return sum_fp64(yn, prod); +} + +vec2 sqrt_fp64(vec2 a) { + if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0); + if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0); + + float x = 1.0 / sqrt(a.x); + float yn = a.x * x; +#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) + vec2 yn_sqr = twoSqr(yn) * ONE; +#else + vec2 yn_sqr = twoSqr(yn); +#endif + float diff = sub_fp64(a, yn_sqr).x; + vec2 prod = twoProd(x * 0.5, diff); +#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) + return sum_fp64(split(yn), prod); +#else + return sum_fp64(vec2(yn, 0.0), prod); +#endif +} +`,fp64functionShader=`const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08); +const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09); +const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8); +const vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7); +const vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8); +const vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8); +const vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9); +const vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8); +const vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9); +const vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10); + +const vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9); +const vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9); +const vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8); +const vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8); + +const vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8); +const vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8); +const vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8); +const vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8); + +const vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09); +const vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09); +const vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10); +const vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11); +const vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12); +const vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13); +const vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14); +const vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15); + +float nint(float d) { + if (d == floor(d)) return d; + return floor(d + 0.5); +} + +vec2 nint_fp64(vec2 a) { + float hi = nint(a.x); + float lo; + vec2 tmp; + if (hi == a.x) { + lo = nint(a.y); + tmp = quickTwoSum(hi, lo); + } else { + lo = 0.0; + if (abs(hi - a.x) == 0.5 && a.y < 0.0) { + hi -= 1.0; + } + tmp = vec2(hi, lo); + } + return tmp; +} + +vec2 exp_fp64(vec2 a) { + + const int k_power = 4; + const float k = 16.0; + + const float inv_k = 1.0 / k; + + if (a.x <= -88.0) return vec2(0.0, 0.0); + if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0); + if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0); + if (a.x == 1.0 && a.y == 0.0) return E_FP64; + + float m = floor(a.x / LOG2_FP64.x + 0.5); + vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k; + vec2 s, t, p; + + p = mul_fp64(r, r); + s = sum_fp64(r, p * 0.5); + p = mul_fp64(p, r); + t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64); + + s = sum_fp64(s, t); + p = mul_fp64(p, r); + t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64); + + s = sum_fp64(s, t); + p = mul_fp64(p, r); + t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64); + + + + + + + s = sum_fp64(s, t); + for (int i = 0; i < k_power; i++) { + s = sum_fp64(s * 2.0, mul_fp64(s, s)); + } + +#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND) + s = sum_fp64(s, vec2(ONE, 0.0)); +#else + s = sum_fp64(s, vec2(1.0, 0.0)); +#endif + + return s * pow(2.0, m); +} + +vec2 log_fp64(vec2 a) +{ + if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0); + if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0); + vec2 x = vec2(log(a.x), 0.0); + vec2 s; +#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND) + s = vec2(ONE, 0.0); +#else + s = vec2(1.0, 0.0); +#endif + + x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s); + return x; +} + +vec2 sin_taylor_fp64(vec2 a) { + vec2 r, s, t, x; + + if (a.x == 0.0 && a.y == 0.0) { + return vec2(0.0, 0.0); + } + + x = -mul_fp64(a, a); + s = a; + r = a; + + r = mul_fp64(r, x); + t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64); + s = sum_fp64(s, t); + + r = mul_fp64(r, x); + t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64); + s = sum_fp64(s, t); + + + + + + + return s; +} + +vec2 cos_taylor_fp64(vec2 a) { + vec2 r, s, t, x; + + if (a.x == 0.0 && a.y == 0.0) { + return vec2(1.0, 0.0); + } + + x = -mul_fp64(a, a); + r = x; + s = sum_fp64(vec2(1.0, 0.0), r * 0.5); + + r = mul_fp64(r, x); + t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64); + s = sum_fp64(s, t); + + r = mul_fp64(r, x); + t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64); + s = sum_fp64(s, t); + + + + + + + return s; +} + +void sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) { + if (a.x == 0.0 && a.y == 0.0) { + sin_t = vec2(0.0, 0.0); + cos_t = vec2(1.0, 0.0); + } + + sin_t = sin_taylor_fp64(a); + cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t))); +} + +vec2 sin_fp64(vec2 a) { + if (a.x == 0.0 && a.y == 0.0) { + return vec2(0.0, 0.0); + } + vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64)); + vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z)); + + vec2 t; + float q = floor(r.x / PI_2_FP64.x + 0.5); + int j = int(q); + + if (j < -2 || j > 2) { + return vec2(0.0 / 0.0, 0.0 / 0.0); + } + + t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0))); + + q = floor(t.x / PI_16_FP64.x + 0.5); + int k = int(q); + + if (k == 0) { + if (j == 0) { + return sin_taylor_fp64(t); + } else if (j == 1) { + return cos_taylor_fp64(t); + } else if (j == -1) { + return -cos_taylor_fp64(t); + } else { + return -sin_taylor_fp64(t); + } + } + + int abs_k = int(abs(float(k))); + + if (abs_k > 4) { + return vec2(0.0 / 0.0, 0.0 / 0.0); + } else { + t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0))); + } + + vec2 u = vec2(0.0, 0.0); + vec2 v = vec2(0.0, 0.0); + +#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND) + if (abs(float(abs_k) - 1.0) < 0.5) { + u = COS_TABLE_0_FP64; + v = SIN_TABLE_0_FP64; + } else if (abs(float(abs_k) - 2.0) < 0.5) { + u = COS_TABLE_1_FP64; + v = SIN_TABLE_1_FP64; + } else if (abs(float(abs_k) - 3.0) < 0.5) { + u = COS_TABLE_2_FP64; + v = SIN_TABLE_2_FP64; + } else if (abs(float(abs_k) - 4.0) < 0.5) { + u = COS_TABLE_3_FP64; + v = SIN_TABLE_3_FP64; + } +#else + if (abs_k == 1) { + u = COS_TABLE_0_FP64; + v = SIN_TABLE_0_FP64; + } else if (abs_k == 2) { + u = COS_TABLE_1_FP64; + v = SIN_TABLE_1_FP64; + } else if (abs_k == 3) { + u = COS_TABLE_2_FP64; + v = SIN_TABLE_2_FP64; + } else if (abs_k == 4) { + u = COS_TABLE_3_FP64; + v = SIN_TABLE_3_FP64; + } +#endif + + vec2 sin_t, cos_t; + sincos_taylor_fp64(t, sin_t, cos_t); + + + + vec2 result = vec2(0.0, 0.0); + if (j == 0) { + if (k > 0) { + result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + } else { + result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + } + } else if (j == 1) { + if (k > 0) { + result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } else { + result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } + } else if (j == -1) { + if (k > 0) { + result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t)); + } else { + result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t)); + } + } else { + if (k > 0) { + result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + } else { + result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t)); + } + } + + return result; +} + +vec2 cos_fp64(vec2 a) { + if (a.x == 0.0 && a.y == 0.0) { + return vec2(1.0, 0.0); + } + vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64)); + vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z)); + + vec2 t; + float q = floor(r.x / PI_2_FP64.x + 0.5); + int j = int(q); + + if (j < -2 || j > 2) { + return vec2(0.0 / 0.0, 0.0 / 0.0); + } + + t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0))); + + q = floor(t.x / PI_16_FP64.x + 0.5); + int k = int(q); + + if (k == 0) { + if (j == 0) { + return cos_taylor_fp64(t); + } else if (j == 1) { + return -sin_taylor_fp64(t); + } else if (j == -1) { + return sin_taylor_fp64(t); + } else { + return -cos_taylor_fp64(t); + } + } + + int abs_k = int(abs(float(k))); + + if (abs_k > 4) { + return vec2(0.0 / 0.0, 0.0 / 0.0); + } else { + t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0))); + } + + vec2 u = vec2(0.0, 0.0); + vec2 v = vec2(0.0, 0.0); + +#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND) + if (abs(float(abs_k) - 1.0) < 0.5) { + u = COS_TABLE_0_FP64; + v = SIN_TABLE_0_FP64; + } else if (abs(float(abs_k) - 2.0) < 0.5) { + u = COS_TABLE_1_FP64; + v = SIN_TABLE_1_FP64; + } else if (abs(float(abs_k) - 3.0) < 0.5) { + u = COS_TABLE_2_FP64; + v = SIN_TABLE_2_FP64; + } else if (abs(float(abs_k) - 4.0) < 0.5) { + u = COS_TABLE_3_FP64; + v = SIN_TABLE_3_FP64; + } +#else + if (abs_k == 1) { + u = COS_TABLE_0_FP64; + v = SIN_TABLE_0_FP64; + } else if (abs_k == 2) { + u = COS_TABLE_1_FP64; + v = SIN_TABLE_1_FP64; + } else if (abs_k == 3) { + u = COS_TABLE_2_FP64; + v = SIN_TABLE_2_FP64; + } else if (abs_k == 4) { + u = COS_TABLE_3_FP64; + v = SIN_TABLE_3_FP64; + } +#endif + + vec2 sin_t, cos_t; + sincos_taylor_fp64(t, sin_t, cos_t); + + vec2 result = vec2(0.0, 0.0); + if (j == 0) { + if (k > 0) { + result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } else { + result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } + } else if (j == 1) { + if (k > 0) { + result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + } else { + result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t)); + } + } else if (j == -1) { + if (k > 0) { + result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + } else { + result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + } + } else { + if (k > 0) { + result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t)); + } else { + result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } + } + + return result; +} + +vec2 tan_fp64(vec2 a) { + vec2 sin_a; + vec2 cos_a; + + if (a.x == 0.0 && a.y == 0.0) { + return vec2(0.0, 0.0); + } + vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64)); + vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z)); + + vec2 t; + float q = floor(r.x / PI_2_FP64.x + 0.5); + int j = int(q); + + + if (j < -2 || j > 2) { + return vec2(0.0 / 0.0, 0.0 / 0.0); + } + + t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0))); + + q = floor(t.x / PI_16_FP64.x + 0.5); + int k = int(q); + int abs_k = int(abs(float(k))); + + if (abs_k > 4) { + return vec2(0.0 / 0.0, 0.0 / 0.0); + } else { + t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0))); + } + + + vec2 u = vec2(0.0, 0.0); + vec2 v = vec2(0.0, 0.0); + + vec2 sin_t, cos_t; + vec2 s, c; + sincos_taylor_fp64(t, sin_t, cos_t); + + if (k == 0) { + s = sin_t; + c = cos_t; + } else { +#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND) + if (abs(float(abs_k) - 1.0) < 0.5) { + u = COS_TABLE_0_FP64; + v = SIN_TABLE_0_FP64; + } else if (abs(float(abs_k) - 2.0) < 0.5) { + u = COS_TABLE_1_FP64; + v = SIN_TABLE_1_FP64; + } else if (abs(float(abs_k) - 3.0) < 0.5) { + u = COS_TABLE_2_FP64; + v = SIN_TABLE_2_FP64; + } else if (abs(float(abs_k) - 4.0) < 0.5) { + u = COS_TABLE_3_FP64; + v = SIN_TABLE_3_FP64; + } +#else + if (abs_k == 1) { + u = COS_TABLE_0_FP64; + v = SIN_TABLE_0_FP64; + } else if (abs_k == 2) { + u = COS_TABLE_1_FP64; + v = SIN_TABLE_1_FP64; + } else if (abs_k == 3) { + u = COS_TABLE_2_FP64; + v = SIN_TABLE_2_FP64; + } else if (abs_k == 4) { + u = COS_TABLE_3_FP64; + v = SIN_TABLE_3_FP64; + } +#endif + if (k > 0) { + s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } else { + s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t)); + c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t)); + } + } + + if (j == 0) { + sin_a = s; + cos_a = c; + } else if (j == 1) { + sin_a = c; + cos_a = -s; + } else if (j == -1) { + sin_a = -c; + cos_a = s; + } else { + sin_a = -s; + cos_a = -c; + } + return div_fp64(sin_a, cos_a); +} + +vec2 radians_fp64(vec2 degree) { + return mul_fp64(degree, PI_180_FP64); +} + +vec2 mix_fp64(vec2 a, vec2 b, float x) { + vec2 range = sub_fp64(b, a); + return sum_fp64(a, mul_fp64(range, vec2(x, 0.0))); +} + +void vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) { + out_val[0] = sum_fp64(a[0], b[0]); + out_val[1] = sum_fp64(a[1], b[1]); +} + +void vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) { + out_val[0] = sub_fp64(a[0], b[0]); + out_val[1] = sub_fp64(a[1], b[1]); +} + +void vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) { + out_val[0] = mul_fp64(a[0], b[0]); + out_val[1] = mul_fp64(a[1], b[1]); +} + +void vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) { + out_val[0] = div_fp64(a[0], b[0]); + out_val[1] = div_fp64(a[1], b[1]); +} + +void vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) { + vec2 range[2]; + vec2_sub_fp64(y, x, range); + vec2 portion[2]; + portion[0] = range[0] * a; + portion[1] = range[1] * a; + vec2_sum_fp64(x, portion, out_val); +} + +vec2 vec2_length_fp64(vec2 x[2]) { + return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1]))); +} + +void vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) { + vec2 length = vec2_length_fp64(x); + vec2 length_vec2[2]; + length_vec2[0] = length; + length_vec2[1] = length; + + vec2_div_fp64(x, length_vec2, out_val); +} + +vec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) { + vec2 diff[2]; + vec2_sub_fp64(x, y, diff); + return vec2_length_fp64(diff); +} + +vec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) { + vec2 v[2]; + + v[0] = mul_fp64(a[0], b[0]); + v[1] = mul_fp64(a[1], b[1]); + + return sum_fp64(v[0], v[1]); +} +void vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) { + for (int i = 0; i < 3; i++) { + out_val[i] = sum_fp64(a[i], b[i]); + } +} + +void vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) { + for (int i = 0; i < 3; i++) { + out_val[i] = sum_fp64(a[i], b[i]); + } +} + +vec2 vec3_length_fp64(vec2 x[3]) { + return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])), + mul_fp64(x[2], x[2]))); +} + +vec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) { + vec2 diff[3]; + vec3_sub_fp64(x, y, diff); + return vec3_length_fp64(diff); +} +void vec4_fp64(vec4 a, out vec2 out_val[4]) { + out_val[0].x = a[0]; + out_val[0].y = 0.0; + + out_val[1].x = a[1]; + out_val[1].y = 0.0; + + out_val[2].x = a[2]; + out_val[2].y = 0.0; + + out_val[3].x = a[3]; + out_val[3].y = 0.0; +} + +void vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) { + out_val[0] = mul_fp64(a[0], b); + out_val[1] = mul_fp64(a[1], b); + out_val[2] = mul_fp64(a[2], b); + out_val[3] = mul_fp64(a[3], b); +} + +void vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) { + for (int i = 0; i < 4; i++) { + out_val[i] = sum_fp64(a[i], b[i]); + } +} + +void vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) { + vec2 v[4]; + + v[0] = mul_fp64(a[0], b[0]); + v[1] = mul_fp64(a[1], b[1]); + v[2] = mul_fp64(a[2], b[2]); + v[3] = mul_fp64(a[3], b[3]); + + out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3])); +} + +void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) { + vec2 tmp[4]; + + for (int i = 0; i < 4; i++) + { + for (int j = 0; j < 4; j++) + { + tmp[j] = b[j + i * 4]; + } + vec4_dot_fp64(a, tmp, out_val[i]); + } +} +`,CONST_UNIFORMS={ONE:1};function getUniforms$6(){return CONST_UNIFORMS}const fp64arithmetic={name:"fp64-arithmetic",vs:fp64arithmeticShader,fs:null,getUniforms:getUniforms$6,fp64ify,fp64LowPart:fp64LowPart$1,fp64ifyMatrix4},fp64={name:"fp64",vs:fp64functionShader,fs:null,dependencies:[fp64arithmetic],fp64ify,fp64LowPart:fp64LowPart$1,fp64ifyMatrix4},IDENTITY_MATRIX$1=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],DEFAULT_MODULE_OPTIONS$2={modelMatrix:IDENTITY_MATRIX$1,viewMatrix:IDENTITY_MATRIX$1,projectionMatrix:IDENTITY_MATRIX$1,cameraPositionWorld:[0,0,0]};function getUniforms$5(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:DEFAULT_MODULE_OPTIONS$2;const $={};return j.modelMatrix!==void 0&&($.modelMatrix=j.modelMatrix),j.viewMatrix!==void 0&&($.viewMatrix=j.viewMatrix),j.projectionMatrix!==void 0&&($.projectionMatrix=j.projectionMatrix),j.cameraPositionWorld!==void 0&&($.cameraPositionWorld=j.cameraPositionWorld),(j.projectionMatrix!==void 0||j.viewMatrix!==void 0)&&($.viewProjectionMatrix=new Matrix4(j.projectionMatrix).multiplyRight(j.viewMatrix)),$}const common$1$1=`varying vec4 project_vPositionWorld; +varying vec3 project_vNormalWorld; + +vec4 project_getPosition_World() { + return project_vPositionWorld; +} + +vec3 project_getNormal_World() { + return project_vNormalWorld; +} +`,vs$q="".concat(common$1$1,` +uniform mat4 modelMatrix; +uniform mat4 viewMatrix; +uniform mat4 projectionMatrix; +uniform mat4 viewProjectionMatrix; +uniform vec3 cameraPositionWorld; + +struct World { + vec3 position; + vec3 normal; +}; + +World world; + +void project_setPosition(vec4 position) { + project_vPositionWorld = position; +} + +void project_setNormal(vec3 normal) { + project_vNormalWorld = normal; +} + +void project_setPositionAndNormal_World(vec3 position, vec3 normal) { + world.position = position; + world.normal = normal; +} + +void project_setPositionAndNormal_Model(vec3 position, vec3 normal) { + world.position = (modelMatrix * vec4(position, 1.)).xyz; + world.normal = mat3(modelMatrix) * normal; +} + +vec4 project_model_to_clipspace(vec4 position) { + return viewProjectionMatrix * modelMatrix * position; +} + +vec4 project_model_to_clipspace(vec3 position) { + return viewProjectionMatrix * modelMatrix * vec4(position, 1.); +} + +vec4 project_world_to_clipspace(vec3 position) { + return viewProjectionMatrix * vec4(position, 1.); +} + +vec4 project_view_to_clipspace(vec3 position) { + return projectionMatrix * vec4(position, 1.); +} + +vec4 project_to_clipspace(vec3 position) { + return viewProjectionMatrix * vec4(position, 1.); +} +`),fs$p=` +`.concat(common$1$1),project$2={name:"project",getUniforms:getUniforms$5,vs:vs$q,fs:fs$p},lightingShader$1=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX)) + +struct AmbientLight { + vec3 color; +}; + +struct PointLight { + vec3 color; + vec3 position; + vec3 attenuation; +}; + +struct DirectionalLight { + vec3 color; + vec3 direction; +}; + +uniform AmbientLight lighting_uAmbientLight; +uniform PointLight lighting_uPointLight[MAX_LIGHTS]; +uniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS]; +uniform int lighting_uPointLightCount; +uniform int lighting_uDirectionalLightCount; + +uniform bool lighting_uEnabled; + +float getPointLightAttenuation(PointLight pointLight, float distance) { + return pointLight.attenuation.x + + pointLight.attenuation.y * distance + + pointLight.attenuation.z * distance * distance; +} + +#endif +`,INITIAL_MODULE_OPTIONS$2={lightSources:{}};function convertColor(){let{color:j=[0,0,0],intensity:$=1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return j.map(_e=>_e*$/255)}function getLightSourceUniforms(j){let{ambientLight:$,pointLights:_e=[],directionalLights:et=[]}=j;const tt={};return $?tt["lighting_uAmbientLight.color"]=convertColor($):tt["lighting_uAmbientLight.color"]=[0,0,0],_e.forEach((rt,nt)=>{tt["lighting_uPointLight[".concat(nt,"].color")]=convertColor(rt),tt["lighting_uPointLight[".concat(nt,"].position")]=rt.position,tt["lighting_uPointLight[".concat(nt,"].attenuation")]=rt.attenuation||[1,0,0]}),tt.lighting_uPointLightCount=_e.length,et.forEach((rt,nt)=>{tt["lighting_uDirectionalLight[".concat(nt,"].color")]=convertColor(rt),tt["lighting_uDirectionalLight[".concat(nt,"].direction")]=rt.direction}),tt.lighting_uDirectionalLightCount=et.length,tt}function getUniforms$4(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:INITIAL_MODULE_OPTIONS$2;if("lightSources"in j){const{ambientLight:$,pointLights:_e,directionalLights:et}=j.lightSources||{};return $||_e&&_e.length>0||et&&et.length>0?Object.assign({},getLightSourceUniforms({ambientLight:$,pointLights:_e,directionalLights:et}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if("lights"in j){const $={pointLights:[],directionalLights:[]};for(const _e of j.lights||[])switch(_e.type){case"ambient":$.ambientLight=_e;break;case"directional":$.directionalLights.push(_e);break;case"point":$.pointLights.push(_e);break}return getUniforms$4({lightSources:$})}return{}}const lights={name:"lights",vs:lightingShader$1,fs:lightingShader$1,getUniforms:getUniforms$4,defines:{MAX_LIGHTS:3}},DEFAULT_LIGHT_DIRECTION$1=new Float32Array([1,1,2]),DEFAULT_MODULE_OPTIONS$1={lightDirection:DEFAULT_LIGHT_DIRECTION$1};function getUniforms$3(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:DEFAULT_MODULE_OPTIONS$1;const $={};return j.lightDirection&&($.dirlight_uLightDirection=j.lightDirection),$}const vs$p=null,fs$o=`uniform vec3 dirlight_uLightDirection; +vec4 dirlight_filterColor(vec4 color) { + vec3 normal = project_getNormal_World(); + float d = abs(dot(normalize(normal), normalize(dirlight_uLightDirection))); + return vec4(color.rgb * d, color.a); +} +`,dirlight={name:"dirlight",vs:vs$p,fs:fs$o,getUniforms:getUniforms$3,dependencies:[project$2]},DEFAULT_HIGHLIGHT_COLOR=new Uint8Array([0,255,255,255]),DEFAULT_MODULE_OPTIONS={pickingSelectedColor:null,pickingHighlightColor:DEFAULT_HIGHLIGHT_COLOR,pickingActive:!1,pickingAttribute:!1};function getUniforms$2(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:DEFAULT_MODULE_OPTIONS;const $={};if(j.pickingSelectedColor!==void 0)if(!j.pickingSelectedColor)$.picking_uSelectedColorValid=0;else{const _e=j.pickingSelectedColor.slice(0,3);$.picking_uSelectedColorValid=1,$.picking_uSelectedColor=_e}if(j.pickingHighlightColor){const _e=Array.from(j.pickingHighlightColor,et=>et/255);Number.isFinite(_e[3])||(_e[3]=1),$.picking_uHighlightColor=_e}return j.pickingActive!==void 0&&($.picking_uActive=!!j.pickingActive,$.picking_uAttribute=!!j.pickingAttribute),$}const vs$o=`uniform bool picking_uActive; +uniform bool picking_uAttribute; +uniform vec3 picking_uSelectedColor; +uniform bool picking_uSelectedColorValid; + +out vec4 picking_vRGBcolor_Avalid; + +const float COLOR_SCALE = 1. / 255.; + +bool picking_isColorValid(vec3 color) { + return dot(color, vec3(1.0)) > 0.001; +} + +bool isVertexPicked(vec3 vertexColor) { + return + picking_uSelectedColorValid && + !picking_isColorValid(abs(vertexColor - picking_uSelectedColor)); +} + +void picking_setPickingColor(vec3 pickingColor) { + if (picking_uActive) { + picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor)); + + if (!picking_uAttribute) { + picking_vRGBcolor_Avalid.rgb = pickingColor * COLOR_SCALE; + } + } else { + picking_vRGBcolor_Avalid.a = float(isVertexPicked(pickingColor)); + } +} + +void picking_setPickingAttribute(float value) { + if (picking_uAttribute) { + picking_vRGBcolor_Avalid.r = value; + } +} +void picking_setPickingAttribute(vec2 value) { + if (picking_uAttribute) { + picking_vRGBcolor_Avalid.rg = value; + } +} +void picking_setPickingAttribute(vec3 value) { + if (picking_uAttribute) { + picking_vRGBcolor_Avalid.rgb = value; + } +} +`,fs$n=`uniform bool picking_uActive; +uniform vec3 picking_uSelectedColor; +uniform vec4 picking_uHighlightColor; + +in vec4 picking_vRGBcolor_Avalid; +vec4 picking_filterHighlightColor(vec4 color) { + if (picking_uActive) { + return color; + } + bool selected = bool(picking_vRGBcolor_Avalid.a); + + if (selected) { + float highLightAlpha = picking_uHighlightColor.a; + float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha); + float highLightRatio = highLightAlpha / blendedAlpha; + + vec3 blendedRGB = mix(color.rgb, picking_uHighlightColor.rgb, highLightRatio); + return vec4(blendedRGB, blendedAlpha); + } else { + return color; + } +} +vec4 picking_filterPickingColor(vec4 color) { + if (picking_uActive) { + if (picking_vRGBcolor_Avalid.a == 0.0) { + discard; + } + return picking_vRGBcolor_Avalid; + } + return color; +} +vec4 picking_filterColor(vec4 color) { + vec4 highightColor = picking_filterHighlightColor(color); + return picking_filterPickingColor(highightColor); +} + +`,picking$1={name:"picking",vs:vs$o,fs:fs$n,getUniforms:getUniforms$2},lightingShader=` +uniform float lighting_uAmbient; +uniform float lighting_uDiffuse; +uniform float lighting_uShininess; +uniform vec3 lighting_uSpecularColor; + +vec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) { + vec3 halfway_direction = normalize(light_direction + view_direction); + float lambertian = dot(light_direction, normal_worldspace); + float specular = 0.0; + if (lambertian > 0.0) { + float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0); + specular = pow(specular_angle, lighting_uShininess); + } + lambertian = max(lambertian, 0.0); + return (lambertian * lighting_uDiffuse * surfaceColor + specular * lighting_uSpecularColor) * color; +} + +vec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) { + vec3 lightColor = surfaceColor; + + if (lighting_uEnabled) { + vec3 view_direction = normalize(cameraPosition - position_worldspace); + lightColor = lighting_uAmbient * surfaceColor * lighting_uAmbientLight.color; + + for (int i = 0; i < MAX_LIGHTS; i++) { + if (i >= lighting_uPointLightCount) { + break; + } + PointLight pointLight = lighting_uPointLight[i]; + vec3 light_position_worldspace = pointLight.position; + vec3 light_direction = normalize(light_position_worldspace - position_worldspace); + lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color); + } + + for (int i = 0; i < MAX_LIGHTS; i++) { + if (i >= lighting_uDirectionalLightCount) { + break; + } + DirectionalLight directionalLight = lighting_uDirectionalLight[i]; + lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color); + } + } + return lightColor; +} + +vec3 lighting_getSpecularLightColor(vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) { + vec3 lightColor = vec3(0, 0, 0); + vec3 surfaceColor = vec3(0, 0, 0); + + if (lighting_uEnabled) { + vec3 view_direction = normalize(cameraPosition - position_worldspace); + + for (int i = 0; i < MAX_LIGHTS; i++) { + if (i >= lighting_uPointLightCount) { + break; + } + PointLight pointLight = lighting_uPointLight[i]; + vec3 light_position_worldspace = pointLight.position; + vec3 light_direction = normalize(light_position_worldspace - position_worldspace); + lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color); + } + + for (int i = 0; i < MAX_LIGHTS; i++) { + if (i >= lighting_uDirectionalLightCount) { + break; + } + DirectionalLight directionalLight = lighting_uDirectionalLight[i]; + lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color); + } + } + return lightColor; +} +`,INITIAL_MODULE_OPTIONS$1={};function getMaterialUniforms(j){const{ambient:$=.35,diffuse:_e=.6,shininess:et=32,specularColor:tt=[30,30,30]}=j;return{lighting_uAmbient:$,lighting_uDiffuse:_e,lighting_uShininess:et,lighting_uSpecularColor:tt.map(rt=>rt/255)}}function getUniforms$1(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:INITIAL_MODULE_OPTIONS$1;if(!("material"in j))return{};const{material:$}=j;return $?getMaterialUniforms($):{lighting_uEnabled:!1}}const gouraudLighting={name:"gouraud-lighting",dependencies:[lights],vs:lightingShader,defines:{LIGHTING_VERTEX:1},getUniforms:getUniforms$1},phongLighting={name:"phong-lighting",dependencies:[lights],fs:lightingShader,defines:{LIGHTING_FRAGMENT:1},getUniforms:getUniforms$1},vs$n=`uniform mat4 u_MVPMatrix; +uniform mat4 u_ModelMatrix; +uniform mat4 u_NormalMatrix; + +varying vec3 pbr_vPosition; +varying vec2 pbr_vUV; + +#ifdef HAS_NORMALS +# ifdef HAS_TANGENTS +varying mat3 pbr_vTBN; +# else +varying vec3 pbr_vNormal; +# endif +#endif + +void pbr_setPositionNormalTangentUV(vec4 position, vec4 normal, vec4 tangent, vec2 uv) +{ + vec4 pos = u_ModelMatrix * position; + pbr_vPosition = vec3(pos.xyz) / pos.w; + +#ifdef HAS_NORMALS +#ifdef HAS_TANGENTS + vec3 normalW = normalize(vec3(u_NormalMatrix * vec4(normal.xyz, 0.0))); + vec3 tangentW = normalize(vec3(u_ModelMatrix * vec4(tangent.xyz, 0.0))); + vec3 bitangentW = cross(normalW, tangentW) * tangent.w; + pbr_vTBN = mat3(tangentW, bitangentW, normalW); +#else + pbr_vNormal = normalize(vec3(u_ModelMatrix * vec4(normal.xyz, 0.0))); +#endif +#endif + +#ifdef HAS_UV + pbr_vUV = uv; +#else + pbr_vUV = vec2(0.,0.); +#endif +} +`,fs$m=`#if defined(USE_TEX_LOD) && !defined(FEATURE_GLSL_TEXTURE_LOD) +# error PBR fragment shader: Texture LOD is not available +#endif + +#if !defined(HAS_TANGENTS) && !defined(FEATURE_GLSL_DERIVATIVES) +# error PBR fragment shader: Derivatives are not available +#endif + + +#if (__VERSION__ < 300) + #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL1COND; INCR) +#else + #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL2COND; INCR) +#endif + +precision highp float; + +uniform bool pbr_uUnlit; + +#ifdef USE_IBL +uniform samplerCube u_DiffuseEnvSampler; +uniform samplerCube u_SpecularEnvSampler; +uniform sampler2D u_brdfLUT; +uniform vec2 u_ScaleIBLAmbient; +#endif + +#ifdef HAS_BASECOLORMAP +uniform sampler2D u_BaseColorSampler; +#endif +#ifdef HAS_NORMALMAP +uniform sampler2D u_NormalSampler; +uniform float u_NormalScale; +#endif +#ifdef HAS_EMISSIVEMAP +uniform sampler2D u_EmissiveSampler; +uniform vec3 u_EmissiveFactor; +#endif +#ifdef HAS_METALROUGHNESSMAP +uniform sampler2D u_MetallicRoughnessSampler; +#endif +#ifdef HAS_OCCLUSIONMAP +uniform sampler2D u_OcclusionSampler; +uniform float u_OcclusionStrength; +#endif + +#ifdef ALPHA_CUTOFF +uniform float u_AlphaCutoff; +#endif + +uniform vec2 u_MetallicRoughnessValues; +uniform vec4 u_BaseColorFactor; + +uniform vec3 u_Camera; +#ifdef PBR_DEBUG +uniform vec4 u_ScaleDiffBaseMR; +uniform vec4 u_ScaleFGDSpec; +#endif + +varying vec3 pbr_vPosition; + +varying vec2 pbr_vUV; + +#ifdef HAS_NORMALS +#ifdef HAS_TANGENTS +varying mat3 pbr_vTBN; +#else +varying vec3 pbr_vNormal; +#endif +#endif + + +struct PBRInfo +{ + float NdotL; + float NdotV; + float NdotH; + float LdotH; + float VdotH; + float perceptualRoughness; + float metalness; + vec3 reflectance0; + vec3 reflectance90; + float alphaRoughness; + vec3 diffuseColor; + vec3 specularColor; + vec3 n; + vec3 v; +}; + +const float M_PI = 3.141592653589793; +const float c_MinRoughness = 0.04; + +vec4 SRGBtoLINEAR(vec4 srgbIn) +{ +#ifdef MANUAL_SRGB +#ifdef SRGB_FAST_APPROXIMATION + vec3 linOut = pow(srgbIn.xyz,vec3(2.2)); +#else + vec3 bLess = step(vec3(0.04045),srgbIn.xyz); + vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess ); +#endif + return vec4(linOut,srgbIn.w);; +#else + return srgbIn; +#endif +} + +vec3 getNormal() +{ +#ifndef HAS_TANGENTS + vec3 pos_dx = dFdx(pbr_vPosition); + vec3 pos_dy = dFdy(pbr_vPosition); + vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0)); + vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0)); + vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t); + +#ifdef HAS_NORMALS + vec3 ng = normalize(pbr_vNormal); +#else + vec3 ng = cross(pos_dx, pos_dy); +#endif + + t = normalize(t - ng * dot(ng, t)); + vec3 b = normalize(cross(ng, t)); + mat3 tbn = mat3(t, b, ng); +#else + mat3 tbn = pbr_vTBN; +#endif + +#ifdef HAS_NORMALMAP + vec3 n = texture2D(u_NormalSampler, pbr_vUV).rgb; + n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0))); +#else + vec3 n = normalize(tbn[2].xyz); +#endif + + return n; +} + + +#ifdef USE_IBL +vec3 getIBLContribution(PBRInfo pbrInputs, vec3 n, vec3 reflection) +{ + float mipCount = 9.0; + float lod = (pbrInputs.perceptualRoughness * mipCount); + vec3 brdf = SRGBtoLINEAR(texture2D(u_brdfLUT, + vec2(pbrInputs.NdotV, 1.0 - pbrInputs.perceptualRoughness))).rgb; + vec3 diffuseLight = SRGBtoLINEAR(textureCube(u_DiffuseEnvSampler, n)).rgb; + +#ifdef USE_TEX_LOD + vec3 specularLight = SRGBtoLINEAR(textureCubeLod(u_SpecularEnvSampler, reflection, lod)).rgb; +#else + vec3 specularLight = SRGBtoLINEAR(textureCube(u_SpecularEnvSampler, reflection)).rgb; +#endif + + vec3 diffuse = diffuseLight * pbrInputs.diffuseColor; + vec3 specular = specularLight * (pbrInputs.specularColor * brdf.x + brdf.y); + diffuse *= u_ScaleIBLAmbient.x; + specular *= u_ScaleIBLAmbient.y; + + return diffuse + specular; +} +#endif + + +vec3 diffuse(PBRInfo pbrInputs) +{ + return pbrInputs.diffuseColor / M_PI; +} + +vec3 specularReflection(PBRInfo pbrInputs) +{ + return pbrInputs.reflectance0 + + (pbrInputs.reflectance90 - pbrInputs.reflectance0) * + pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0); +} + + + +float geometricOcclusion(PBRInfo pbrInputs) +{ + float NdotL = pbrInputs.NdotL; + float NdotV = pbrInputs.NdotV; + float r = pbrInputs.alphaRoughness; + + float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL))); + float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV))); + return attenuationL * attenuationV; +} + + + + + +float microfacetDistribution(PBRInfo pbrInputs) +{ + float roughnessSq = pbrInputs.alphaRoughness * pbrInputs.alphaRoughness; + float f = (pbrInputs.NdotH * roughnessSq - pbrInputs.NdotH) * pbrInputs.NdotH + 1.0; + return roughnessSq / (M_PI * f * f); +} + +void PBRInfo_setAmbientLight(inout PBRInfo pbrInputs) { + pbrInputs.NdotL = 1.0; + pbrInputs.NdotH = 0.0; + pbrInputs.LdotH = 0.0; + pbrInputs.VdotH = 1.0; +} + +void PBRInfo_setDirectionalLight(inout PBRInfo pbrInputs, vec3 lightDirection) { + vec3 n = pbrInputs.n; + vec3 v = pbrInputs.v; + vec3 l = normalize(lightDirection); + vec3 h = normalize(l+v); + + pbrInputs.NdotL = clamp(dot(n, l), 0.001, 1.0); + pbrInputs.NdotH = clamp(dot(n, h), 0.0, 1.0); + pbrInputs.LdotH = clamp(dot(l, h), 0.0, 1.0); + pbrInputs.VdotH = clamp(dot(v, h), 0.0, 1.0); +} + +void PBRInfo_setPointLight(inout PBRInfo pbrInputs, PointLight pointLight) { + vec3 light_direction = normalize(pointLight.position - pbr_vPosition); + PBRInfo_setDirectionalLight(pbrInputs, light_direction); +} + +vec3 calculateFinalColor(PBRInfo pbrInputs, vec3 lightColor) { + vec3 F = specularReflection(pbrInputs); + float G = geometricOcclusion(pbrInputs); + float D = microfacetDistribution(pbrInputs); + vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInputs); + vec3 specContrib = F * G * D / (4.0 * pbrInputs.NdotL * pbrInputs.NdotV); + return pbrInputs.NdotL * lightColor * (diffuseContrib + specContrib); +} + +vec4 pbr_filterColor(vec4 colorUnused) +{ +#ifdef HAS_BASECOLORMAP + vec4 baseColor = SRGBtoLINEAR(texture2D(u_BaseColorSampler, pbr_vUV)) * u_BaseColorFactor; +#else + vec4 baseColor = u_BaseColorFactor; +#endif + +#ifdef ALPHA_CUTOFF + if (baseColor.a < u_AlphaCutoff) { + discard; + } +#endif + + vec3 color = vec3(0, 0, 0); + + if(pbr_uUnlit){ + color.rgb = baseColor.rgb; + } + else{ + + + float perceptualRoughness = u_MetallicRoughnessValues.y; + float metallic = u_MetallicRoughnessValues.x; +#ifdef HAS_METALROUGHNESSMAP + + vec4 mrSample = texture2D(u_MetallicRoughnessSampler, pbr_vUV); + perceptualRoughness = mrSample.g * perceptualRoughness; + metallic = mrSample.b * metallic; +#endif + perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0); + metallic = clamp(metallic, 0.0, 1.0); + + float alphaRoughness = perceptualRoughness * perceptualRoughness; + + vec3 f0 = vec3(0.04); + vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0); + diffuseColor *= 1.0 - metallic; + vec3 specularColor = mix(f0, baseColor.rgb, metallic); + float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b); + + + + float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0); + vec3 specularEnvironmentR0 = specularColor.rgb; + vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90; + + vec3 n = getNormal(); + vec3 v = normalize(u_Camera - pbr_vPosition); + + float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0); + vec3 reflection = -normalize(reflect(v, n)); + + PBRInfo pbrInputs = PBRInfo( + 0.0, + NdotV, + 0.0, + 0.0, + 0.0, + perceptualRoughness, + metallic, + specularEnvironmentR0, + specularEnvironmentR90, + alphaRoughness, + diffuseColor, + specularColor, + n, + v + ); + +#ifdef USE_LIGHTS + PBRInfo_setAmbientLight(pbrInputs); + color += calculateFinalColor(pbrInputs, lighting_uAmbientLight.color); + SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uDirectionalLightCount, i++) { + if (i < lighting_uDirectionalLightCount) { + PBRInfo_setDirectionalLight(pbrInputs, lighting_uDirectionalLight[i].direction); + color += calculateFinalColor(pbrInputs, lighting_uDirectionalLight[i].color); + } + } + SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uPointLightCount, i++) { + if (i < lighting_uPointLightCount) { + PBRInfo_setPointLight(pbrInputs, lighting_uPointLight[i]); + float attenuation = getPointLightAttenuation(lighting_uPointLight[i], distance(lighting_uPointLight[i].position, pbr_vPosition)); + color += calculateFinalColor(pbrInputs, lighting_uPointLight[i].color / attenuation); + } + } +#endif +#ifdef USE_IBL + color += getIBLContribution(pbrInputs, n, reflection); +#endif +#ifdef HAS_OCCLUSIONMAP + float ao = texture2D(u_OcclusionSampler, pbr_vUV).r; + color = mix(color, color * ao, u_OcclusionStrength); +#endif + +#ifdef HAS_EMISSIVEMAP + vec3 emissive = SRGBtoLINEAR(texture2D(u_EmissiveSampler, pbr_vUV)).rgb * u_EmissiveFactor; + color += emissive; +#endif + +#ifdef PBR_DEBUG + + + + + + color = mix(color, baseColor.rgb, u_ScaleDiffBaseMR.y); + color = mix(color, vec3(metallic), u_ScaleDiffBaseMR.z); + color = mix(color, vec3(perceptualRoughness), u_ScaleDiffBaseMR.w); +#endif + + } + + return vec4(pow(color,vec3(1.0/2.2)), baseColor.a); +} +`,pbr={name:"pbr",vs:vs$n,fs:fs$m,defines:{LIGHTING_FRAGMENT:1},dependencies:[lights]},vs$m=`attribute float transform_elementID; +vec2 transform_getPixelSizeHalf(vec2 size) { + return vec2(1.) / (2. * size); +} + +vec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) { + float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]); + float xIndex = transform_elementID - (yIndex * texSize[0]); + return vec2(xIndex, yIndex); +} +vec2 transform_getTexCoord(vec2 size) { + vec2 pixelSizeHalf = transform_getPixelSizeHalf(size); + vec2 indices = transform_getPixelIndices(size, pixelSizeHalf); + vec2 coord = indices / size + pixelSizeHalf; + return coord; +} +vec2 transform_getPos(vec2 size) { + vec2 texCoord = transform_getTexCoord(size); + vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.); + return pos; +} +vec4 transform_getInput(sampler2D texSampler, vec2 size) { + vec2 texCoord = transform_getTexCoord(size); + vec4 textureColor = texture2D(texSampler, texCoord); + return textureColor; +} +`,transform$2={name:"transform",vs:vs$m,fs:null};class ProgramManager{static getDefaultProgramManager($){return $.luma=$.luma||{},$.luma.defaultProgramManager=$.luma.defaultProgramManager||new ProgramManager($),$.luma.defaultProgramManager}constructor($){this.gl=$,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}addDefaultModule($){this._defaultModules.find(_e=>_e.name===$.name)||this._defaultModules.push($),this.stateHash++}removeDefaultModule($){const _e=typeof $=="string"?$:$.name;this._defaultModules=this._defaultModules.filter(et=>et.name!==_e),this.stateHash++}addShaderHook($,_e){_e&&($=Object.assign(_e,{hook:$})),this._hookFunctions.push($),this.stateHash++}get(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{vs:_e="",fs:et="",defines:tt={},inject:rt={},varyings:nt=[],bufferMode:it=35981,transpileToGLSL100:ot=!1}=$,At=this._getModuleList($.modules),ut=this._getHash(_e),ft=this._getHash(et),dt=At.map(wt=>this._getHash(wt.name)).sort(),Et=nt.map(wt=>this._getHash(wt)),Bt=Object.keys(tt).sort(),St=Object.keys(rt).sort(),Dt=[],$t=[];for(const wt of Bt)Dt.push(this._getHash(wt)),Dt.push(this._getHash(tt[wt]));for(const wt of St)$t.push(this._getHash(wt)),$t.push(this._getHash(rt[wt]));const Rt="".concat(ut,"/").concat(ft,"D").concat(Dt.join("/"),"M").concat(dt.join("/"),"I").concat($t.join("/"),"V").concat(Et.join("/"),"H").concat(this.stateHash,"B").concat(it).concat(ot?"T":"");if(!this._programCache[Rt]){const wt=assembleShaders(this.gl,{vs:_e,fs:et,modules:At,inject:rt,defines:tt,hookFunctions:this._hookFunctions,transpileToGLSL100:ot});this._programCache[Rt]=new Program(this.gl,{hash:Rt,vs:wt.vs,fs:wt.fs,varyings:nt,bufferMode:it}),this._getUniforms[Rt]=wt.getUniforms||(xt=>{}),this._useCounts[Rt]=0}return this._useCounts[Rt]++,this._programCache[Rt]}getUniforms($){return this._getUniforms[$.hash]||null}release($){const _e=$.hash;this._useCounts[_e]--,this._useCounts[_e]===0&&(this._programCache[_e].delete(),delete this._programCache[_e],delete this._getUniforms[_e],delete this._useCounts[_e])}_getHash($){return this._hashes[$]===void 0&&(this._hashes[$]=this._hashCounter++),this._hashes[$]}_getModuleList(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const _e=new Array(this._defaultModules.length+$.length),et={};let tt=0;for(let rt=0,nt=this._defaultModules.length;rt{},DRAW_PARAMS={};class Model{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{id:et=uid("model")}=_e;assert$7(isWebGL($)),this.id=et,this.gl=$,this.id=_e.id||uid("Model"),this.lastLogTime=0,this.animated=!1,this.initialize(_e)}initialize($){this.props={},this.programManager=$.programManager||ProgramManager.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;const{program:_e=null,vs:et,fs:tt,modules:rt,defines:nt,inject:it,varyings:ot,bufferMode:At,transpileToGLSL100:ut}=$;this.programProps={program:_e,vs:et,fs:tt,modules:rt,defines:nt,inject:it,varyings:ot,bufferMode:At,transpileToGLSL100:ut},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms($.moduleSettings))),this.drawMode=$.drawMode!==void 0?$.drawMode:4,this.vertexCount=$.vertexCount||0,this.geometryBuffers={},this.isInstanced=$.isInstanced||$.instanced||$.instanceCount>0,this._setModelProps($),this.geometry={},assert$7(this.drawMode!==void 0&&Number.isFinite(this.vertexCount),ERR_MODEL_PARAMS)}setProps($){this._setModelProps($)}delete(){for(const $ in this._attributes)this._attributes[$]!==this.attributes[$]&&this._attributes[$].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}getDrawMode(){return this.drawMode}getVertexCount(){return this.vertexCount}getInstanceCount(){return this.instanceCount}getAttributes(){return this.attributes}getProgram(){return this.program}setProgram($){const{program:_e,vs:et,fs:tt,modules:rt,defines:nt,inject:it,varyings:ot,bufferMode:At,transpileToGLSL100:ut}=$;this.programProps={program:_e,vs:et,fs:tt,modules:rt,defines:nt,inject:it,varyings:ot,bufferMode:At,transpileToGLSL100:ut},this._programDirty=!0}getUniforms(){return this.uniforms}setDrawMode($){return this.drawMode=$,this}setVertexCount($){return assert$7(Number.isFinite($)),this.vertexCount=$,this}setInstanceCount($){return assert$7(Number.isFinite($)),this.instanceCount=$,this}setGeometry($){return this.drawMode=$.drawMode,this.vertexCount=$.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=getBuffersFromGeometry(this.gl,$),this.vertexArray.setAttributes(this.geometryBuffers),this}setAttributes(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(isObjectEmpty$2($))return this;const _e={};for(const et in $){const tt=$[et];_e[et]=tt.getValue?tt.getValue():tt}return this.vertexArray.setAttributes(_e),this}setUniforms(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.assign(this.uniforms,$),this}getModuleUniforms($){this._checkProgram();const _e=this.programManager.getUniforms(this.program);return _e?_e($):{}}updateModuleSettings($){const _e=this.getModuleUniforms($||{});return this.setUniforms(_e)}clear($){return clear(this.program.gl,$),this}draw(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._checkProgram();const{moduleSettings:_e=null,framebuffer:et,uniforms:tt={},attributes:rt={},transformFeedback:nt=this.transformFeedback,parameters:it={},vertexArray:ot=this.vertexArray}=$;this.setAttributes(rt),this.updateModuleSettings(_e),this.setUniforms(tt);let At;log$2.priority>=LOG_DRAW_PRIORITY&&(At=this._logDrawCallStart(LOG_DRAW_PRIORITY));const ut=this.vertexArray.getDrawParams(),{isIndexed:ft=ut.isIndexed,indexType:dt=ut.indexType,indexOffset:Et=ut.indexOffset,vertexArrayInstanced:Bt=ut.isInstanced}=this.props;Bt&&!this.isInstanced&&log$2.warn("Found instanced attributes on non-instanced model",this.id)();const{isInstanced:St,instanceCount:Dt}=this,{onBeforeRender:$t=NOOP,onAfterRender:Rt=NOOP}=this.props;$t(),this.program.setUniforms(this.uniforms);const wt=this.program.draw(Object.assign(DRAW_PARAMS,$,{logPriority:At,uniforms:null,framebuffer:et,parameters:it,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:ot,transformFeedback:nt,isIndexed:ft,indexType:dt,isInstanced:St,instanceCount:Dt,offset:ft?Et:0}));return Rt(),log$2.priority>=LOG_DRAW_PRIORITY&&this._logDrawCallEnd(At,ot,et),wt}transform(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{discard:_e=!0,feedbackBuffers:et,unbindModels:tt=[]}=$;let{parameters:rt}=$;et&&this._setFeedbackBuffers(et),_e&&(rt=Object.assign({},rt,{35977:_e})),tt.forEach(nt=>nt.vertexArray.unbindBuffers());try{this.draw(Object.assign({},$,{parameters:rt}))}finally{tt.forEach(nt=>nt.vertexArray.bindBuffers())}return this}render(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return log$2.warn("Model.render() is deprecated. Use Model.setUniforms() and Model.draw()")(),this.setUniforms($).draw()}_setModelProps($){Object.assign(this.props,$),"uniforms"in $&&this.setUniforms($.uniforms),"pickable"in $&&(this.pickable=$.pickable),"instanceCount"in $&&(this.instanceCount=$.instanceCount),"geometry"in $&&this.setGeometry($.geometry),"attributes"in $&&this.setAttributes($.attributes),"_feedbackBuffers"in $&&this._setFeedbackBuffers($._feedbackBuffers)}_checkProgram(){if(!(this._programDirty||this.programManager.stateHash!==this._programManagerState))return;let{program:_e}=this.programProps;if(_e)this._managedProgram=!1;else{const{vs:et,fs:tt,modules:rt,inject:nt,defines:it,varyings:ot,bufferMode:At,transpileToGLSL100:ut}=this.programProps;_e=this.programManager.get({vs:et,fs:tt,modules:rt,inject:nt,defines:it,varyings:ot,bufferMode:At,transpileToGLSL100:ut}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}assert$7(_e instanceof Program,"Model needs a program"),this._programDirty=!1,_e!==this.program&&(this.program=_e,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new VertexArray(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}_deleteGeometryBuffers(){for(const $ in this.geometryBuffers){const _e=this.geometryBuffers[$][0]||this.geometryBuffers[$];_e instanceof Buffer$1&&_e.delete()}}_setAnimationProps($){this.animated&&assert$7($,"Model.draw(): animated uniforms but no animationProps")}_setFeedbackBuffers(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(isObjectEmpty$2($))return this;const{gl:_e}=this.program;return this.transformFeedback=this.transformFeedback||new TransformFeedback(_e,{program:this.program}),this.transformFeedback.setBuffers($),this}_logDrawCallStart($){const _e=$>3?0:LOG_DRAW_TIMEOUT;if(!(Date.now()-this.lastLogTime<_e))return this.lastLogTime=Date.now(),log$2.group(LOG_DRAW_PRIORITY,">>> DRAWING MODEL ".concat(this.id),{collapsed:log$2.level<=2})(),$}_logDrawCallEnd($,_e,et,tt){if($===void 0)return;const rt=getDebugTableForVertexArray({vertexArray:_e,header:"".concat(this.id," attributes"),attributes:this._attributes}),{table:nt,unusedTable:it,unusedCount:ot}=getDebugTableForUniforms({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,et)}),{table:At,count:ut}=getDebugTableForUniforms({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,et),undefinedOnly:!0});ut>0&&log$2.log("MISSING UNIFORMS",Object.keys(At))(),ot>0&&log$2.log("UNUSED UNIFORMS",Object.keys(it))();const ft=getDebugTableForProgramConfiguration(this.vertexArray.configuration);log$2.table($,rt)(),log$2.table($,nt)(),log$2.table($+1,ft)(),tt&&tt.log({logLevel:LOG_DRAW_PRIORITY,message:"Rendered to ".concat(tt.id)}),log$2.groupEnd(LOG_DRAW_PRIORITY)()}}class BufferTransform{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=$,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(_e),Object.seal(this)}setupResources($){for(const _e of this.bindings)this._setupTransformFeedback(_e,$)}updateModelProps(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{varyings:_e}=this;return _e.length>0&&($=Object.assign({},$,{varyings:_e})),$}getDrawOptions(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const _e=this.bindings[this.currentIndex],{sourceBuffers:et,transformFeedback:tt}=_e;return{attributes:Object.assign({},et,$.attributes),transformFeedback:tt}}swap(){return this.feedbackMap?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers($)}getBuffer($){const{feedbackBuffers:_e}=this.bindings[this.currentIndex],et=$?_e[$]:null;return et?et instanceof Buffer$1?et:et.buffer:null}getData(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{varyingName:_e}=$,et=this.getBuffer(_e);return et?et.getData():null}delete(){for(const $ in this.resources)this.resources[$].delete()}_initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupBuffers($),this.varyings=$.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&assert$7(isWebGL2$1(this.gl))}_getFeedbackBuffers($){const{sourceBuffers:_e={}}=$,et={};if(this.bindings[this.currentIndex]&&Object.assign(et,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(const tt in this.feedbackMap){const rt=this.feedbackMap[tt];tt in _e&&(et[rt]=tt)}Object.assign(et,$.feedbackBuffers);for(const tt in et){const rt=et[tt];if(typeof rt=="string"){const nt=_e[rt],{byteLength:it,usage:ot,accessor:At}=nt;et[tt]=this._createNewBuffer(tt,{byteLength:it,usage:ot,accessor:At})}}return et}_setupBuffers(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:_e=null}=$;Object.assign(this.feedbackMap,$.feedbackMap);const et=this._getFeedbackBuffers($);this._updateBindings({sourceBuffers:_e,feedbackBuffers:et})}_setupTransformFeedback($,_e){let{model:et}=_e;const{program:tt}=et;$.transformFeedback=new TransformFeedback(this.gl,{program:tt,buffers:$.feedbackBuffers})}_updateBindings($){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],$),this.feedbackMap){const{sourceBuffers:_e,feedbackBuffers:et}=this._swapBuffers(this.bindings[this.currentIndex]),tt=this._getNextIndex();this.bindings[tt]=this._updateBinding(this.bindings[tt],{sourceBuffers:_e,feedbackBuffers:et})}}_updateBinding($,_e){return $?(Object.assign($.sourceBuffers,_e.sourceBuffers),Object.assign($.feedbackBuffers,_e.feedbackBuffers),$.transformFeedback&&$.transformFeedback.setBuffers($.feedbackBuffers),$):{sourceBuffers:Object.assign({},_e.sourceBuffers),feedbackBuffers:Object.assign({},_e.feedbackBuffers)}}_swapBuffers($){if(!this.feedbackMap)return null;const _e=Object.assign({},$.sourceBuffers),et=Object.assign({},$.feedbackBuffers);for(const tt in this.feedbackMap){const rt=this.feedbackMap[tt];_e[tt]=$.feedbackBuffers[rt],et[rt]=$.sourceBuffers[tt],assert$7(et[rt]instanceof Buffer$1)}return{sourceBuffers:_e,feedbackBuffers:et}}_createNewBuffer($,_e){const et=new Buffer$1(this.gl,_e);return this.resources[$]&&this.resources[$].delete(),this.resources[$]=et,et}_getNextIndex(){return(this.currentIndex+1)%2}}const SAMPLER_UNIFORM_PREFIX="transform_uSampler_",SIZE_UNIFORM_PREFIX="transform_uSize_",VS_POS_VARIABLE="transform_position";function updateForTextures(j){let{vs:$,sourceTextureMap:_e,targetTextureVarying:et,targetTexture:tt}=j,nt=Object.keys(_e).length,it=null;const ot={};let At=$,ut={};if(nt>0||et){const ft=At.split(` +`),dt=ft.slice();if(ft.forEach((Et,Bt,St)=>{if(nt>0){const Dt=processAttributeDefinition(Et,_e);if(Dt){const{updatedLine:$t,inject:Rt}=Dt;dt[Bt]=$t,ut=combineInjects([ut,Rt]),Object.assign(ot,Dt.samplerTextureMap),nt--}}et&&!it&&(it=getVaryingType(Et,et))}),et){assert$7(tt);const Et="".concat(SIZE_UNIFORM_PREFIX).concat(et),Bt="uniform vec2 ".concat(Et,`; +`),St=" vec2 ".concat(VS_POS_VARIABLE," = transform_getPos(").concat(Et,`); + gl_Position = vec4(`).concat(VS_POS_VARIABLE,`, 0, 1.); +`);ut=combineInjects([ut,{"vs:#decl":Bt,"vs:#main-start":St}])}At=dt.join(` +`)}return{vs:At,targetTextureType:it,inject:ut,samplerTextureMap:ot}}function getSizeUniforms(j){let{sourceTextureMap:$,targetTextureVarying:_e,targetTexture:et}=j;const tt={};let rt,nt;_e&&({width:rt,height:nt}=et,tt["".concat(SIZE_UNIFORM_PREFIX).concat(_e)]=[rt,nt]);for(const it in $)({width:rt,height:nt}=$[it]),tt["".concat(SIZE_UNIFORM_PREFIX).concat(it)]=[rt,nt];return tt}function getAttributeDefinition(j){return getQualifierDetails(j,["attribute","in"])}function getSamplerDeclerations(j){const $="".concat(SAMPLER_UNIFORM_PREFIX).concat(j),_e="".concat(SIZE_UNIFORM_PREFIX).concat(j),et=" uniform sampler2D ".concat($,`; + uniform vec2 `).concat(_e,";");return{samplerName:$,sizeName:_e,uniformDeclerations:et}}function getVaryingType(j,$){const _e=getQualifierDetails(j,["varying","out"]);return _e&&_e.name===$?_e.type:null}function processAttributeDefinition(j,$){const _e={},et=getAttributeDefinition(j);if(!et)return null;const{type:tt,name:rt}=et;if(rt&&$[rt]){const nt="// ".concat(j," => Replaced by Transform with a sampler"),{samplerName:it,sizeName:ot,uniformDeclerations:At}=getSamplerDeclerations(rt),ut=typeToChannelSuffix(tt),ft=" ".concat(tt," ").concat(rt," = transform_getInput(").concat(it,", ").concat(ot,").").concat(ut,`; +`);return _e[it]=rt,{updatedLine:nt,inject:{"vs:#decl":At,"vs:#main-start":ft},samplerTextureMap:_e}}return null}const SRC_TEX_PARAMETER_OVERRIDES={10241:9728,10240:9728,10242:33071,10243:33071},FS_OUTPUT_VARIABLE="transform_output";class TextureTransform{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=$,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(_e),Object.seal(this)}updateModelProps(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const _e=this._processVertexShader($);return Object.assign({},$,_e)}getDrawOptions(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:_e,sourceTextures:et,framebuffer:tt,targetTexture:rt}=this.bindings[this.currentIndex],nt=Object.assign({},_e,$.attributes),it=Object.assign({},$.uniforms),ot=Object.assign({},$.parameters);let At=$.discard;if(this.hasSourceTextures||this.hasTargetTexture){nt.transform_elementID=this.elementIDBuffer;for(const ft in this.samplerTextureMap){const dt=this.samplerTextureMap[ft];it[ft]=et[dt]}this._setSourceTextureParameters();const ut=getSizeUniforms({sourceTextureMap:et,targetTextureVarying:this.targetTextureVarying,targetTexture:rt});Object.assign(it,ut)}return this.hasTargetTexture&&(At=!1,ot.viewport=[0,0,tt.width,tt.height]),{attributes:nt,framebuffer:tt,uniforms:it,discard:At,parameters:ot}}swap(){return this._swapTexture?(this.currentIndex=this._getNextIndex(),!0):!1}update(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._setupTextures($)}getTargetTexture(){const{targetTexture:$}=this.bindings[this.currentIndex];return $}getData(){let{packed:$=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{framebuffer:_e}=this.bindings[this.currentIndex],et=readPixelsToArray(_e);if(!$)return et;const tt=et.constructor,rt=typeToChannelCount(this.targetTextureType),nt=new tt(et.length*rt/4);let it=0;for(let ot=0;ot0&&arguments[0]!==void 0?arguments[0]:{};const{_targetTextureVarying:_e,_swapTexture:et}=$;this._swapTexture=et,this.targetTextureVarying=_e,this.hasTargetTexture=_e,this._setupTextures($)}_createTargetTexture($){const{sourceTextures:_e,textureOrReference:et}=$;if(et instanceof Texture2D)return et;const tt=_e[et];return tt?(this._targetRefTexName=et,this._createNewTexture(tt)):null}_setupTextures(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceBuffers:_e,_sourceTextures:et={},_targetTexture:tt}=$,rt=this._createTargetTexture({sourceTextures:et,textureOrReference:tt});this.hasSourceTextures=this.hasSourceTextures||et&&Object.keys(et).length>0,this._updateBindings({sourceBuffers:_e,sourceTextures:et,targetTexture:rt}),"elementCount"in $&&this._updateElementIDBuffer($.elementCount)}_updateElementIDBuffer($){if(typeof $!="number"||this.elementCount>=$)return;const _e=new Float32Array($);_e.forEach((et,tt,rt)=>{rt[tt]=tt}),this.elementIDBuffer?this.elementIDBuffer.setData({data:_e}):this.elementIDBuffer=new Buffer$1(this.gl,{data:_e,accessor:{size:1}}),this.elementCount=$}_updateBindings($){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],$),this._swapTexture){const{sourceTextures:_e,targetTexture:et}=this._swapTextures(this.bindings[this.currentIndex]),tt=this._getNextIndex();this.bindings[tt]=this._updateBinding(this.bindings[tt],{sourceTextures:_e,targetTexture:et})}}_updateBinding($,_e){const{sourceBuffers:et,sourceTextures:tt,targetTexture:rt}=_e;if($||($={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign($.sourceTextures,tt),Object.assign($.sourceBuffers,et),rt){$.targetTexture=rt;const{width:nt,height:it}=rt,{framebuffer:ot}=$;ot?(ot.update({attachments:{36064:rt},resizeAttachments:!1}),ot.resize({width:nt,height:it})):$.framebuffer=new Framebuffer(this.gl,{id:"transform-framebuffer",width:nt,height:it,attachments:{36064:rt}})}return $}_setSourceTextureParameters(){const $=this.currentIndex,{sourceTextures:_e}=this.bindings[$];for(const et in _e)_e[et].setParameters(SRC_TEX_PARAMETER_OVERRIDES)}_swapTextures($){if(!this._swapTexture)return null;const _e=Object.assign({},$.sourceTextures);_e[this._swapTexture]=$.targetTexture;const et=$.sourceTextures[this._swapTexture];return{sourceTextures:_e,targetTexture:et}}_createNewTexture($){const _e=cloneTextureFrom($,{parameters:{10241:9728,10240:9728,10242:33071,10243:33071},pixelStore:{37440:!1}});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=_e,_e}_getNextIndex(){return(this.currentIndex+1)%2}_processVertexShader(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{sourceTextures:_e,targetTexture:et}=this.bindings[this.currentIndex],{vs:tt,uniforms:rt,targetTextureType:nt,inject:it,samplerTextureMap:ot}=updateForTextures({vs:$.vs,sourceTextureMap:_e,targetTextureVarying:this.targetTextureVarying,targetTexture:et}),At=combineInjects([$.inject||{},it]);this.targetTextureType=nt,this.samplerTextureMap=ot;const ut=$._fs||getPassthroughFS({version:getShaderVersion(tt),input:this.targetTextureVarying,inputType:nt,output:FS_OUTPUT_VARIABLE}),ft=this.hasSourceTextures||this.targetTextureVarying?[transform$2].concat($.modules||[]):$.modules;return{vs:tt,fs:ut,modules:ft,uniforms:rt,inject:At}}}let Transform$1=class{static isSupported($){return isWebGL2$1($)}constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=$,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(_e),Object.seal(this)}delete(){const{model:$,bufferTransform:_e,textureTransform:et}=this;$&&$.delete(),_e&&_e.delete(),et&&et.delete()}run(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{clearRenderTarget:_e=!0}=$,et=this._updateDrawOptions($);_e&&et.framebuffer&&et.framebuffer.clear({color:!0}),this.model.transform(et)}swap(){let $=!1;const _e=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const et of _e)$=$||et.swap();assert$7($,"Nothing to swap")}getBuffer(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer($)}getData(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const _e=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const et of _e){const tt=et.getData($);if(tt)return tt}return null}getFramebuffer(){return this.textureTransform&&this.textureTransform.getFramebuffer()}update(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};"elementCount"in $&&this.model.setVertexCount($.elementCount);const _e=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const et of _e)et.update($)}_initialize(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{gl:_e}=this;this._buildResourceTransforms(_e,$),$=this._updateModelProps($),this.model=new Model(_e,Object.assign({},$,{fs:$.fs||getPassthroughFS({version:getShaderVersion($.vs)}),id:$.id||"transform-model",drawMode:$.drawMode||0,vertexCount:$.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}_updateModelProps($){let _e=Object.assign({},$);const et=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const tt of et)_e=tt.updateModelProps(_e);return _e}_buildResourceTransforms($,_e){canCreateBufferTransform(_e)&&(this.bufferTransform=new BufferTransform($,_e)),canCreateTextureTransform(_e)&&(this.textureTransform=new TextureTransform($,_e)),assert$7(this.bufferTransform||this.textureTransform,"must provide source/feedback buffers or source/target textures")}_updateDrawOptions($){let _e=Object.assign({},$);const et=[this.bufferTransform,this.textureTransform].filter(Boolean);for(const tt of et)_e=Object.assign(_e,tt.getDrawOptions(_e));return _e}};function canCreateBufferTransform(j){return!!(!isObjectEmpty$2(j.feedbackBuffers)||!isObjectEmpty$2(j.feedbackMap)||j.varyings&&j.varyings.length>0)}function canCreateTextureTransform(j){return!!(!isObjectEmpty$2(j._sourceTextures)||j._targetTexture||j._targetTextureVarying)}const DRAW_MODE={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class Geometry{static get DRAW_MODE(){return DRAW_MODE}constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("geometry"),drawMode:et=DRAW_MODE.TRIANGLES,attributes:tt={},indices:rt=null,vertexCount:nt=null}=$;this.id=_e,this.drawMode=et|0,this.attributes={},this.userData={},this._setAttributes(tt,rt),this.vertexCount=nt||this._calculateVertexCount(this.attributes,this.indices)}get mode(){return this.drawMode}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print($){return"Geometry ".concat(this.id," attribute ").concat($)}_setAttributes($,_e){_e&&(this.indices=ArrayBuffer.isView(_e)?{value:_e,size:1}:_e);for(const et in $){let tt=$[et];tt=ArrayBuffer.isView(tt)?{value:tt}:tt,assert$7(ArrayBuffer.isView(tt.value),"".concat(this._print(et),": must be typed array or object with value as typed array")),(et==="POSITION"||et==="positions")&&!tt.size&&(tt.size=3),et==="indices"?(assert$7(!this.indices),this.indices=tt):this.attributes[et]=tt}return this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}_calculateVertexCount($,_e){if(_e)return _e.value.length;let et=1/0;for(const tt in $){const rt=$[tt],{value:nt,size:it,constant:ot}=rt;!ot&&nt&&it>=1&&(et=Math.min(et,nt.length/it))}return assert$7(Number.isFinite(et)),et}}const INDEX_OFFSETS={x:[2,0,1],y:[0,1,2],z:[1,2,0]};class TruncatedConeGeometry extends Geometry{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("truncated-code-geometry")}=$,{indices:et,attributes:tt}=tesselateTruncatedCone($);super({...$,id:_e,indices:et,attributes:{...tt,...$.attributes}})}}function tesselateTruncatedCone(j){const{bottomRadius:$=0,topRadius:_e=0,height:et=1,nradial:tt=10,nvertical:rt=10,verticalAxis:nt="y",topCap:it=!1,bottomCap:ot=!1}=j,At=(it?2:0)+(ot?2:0),ut=(tt+1)*(rt+1+At),ft=Math.atan2($-_e,et),dt=Math.sin,Et=Math.cos,Bt=Math.PI,St=Et(ft),Dt=dt(ft),$t=it?-2:0,Rt=rt+(ot?2:0),wt=tt+1,xt=new Uint16Array(tt*(rt+At)*6),Nt=INDEX_OFFSETS[nt],Ot=new Float32Array(ut*3),kt=new Float32Array(ut*3),Jt=new Float32Array(ut*2);let jt=0,Ht=0;for(let Gt=$t;Gt<=Rt;Gt++){let Kt=Gt/rt,Wt=et*Kt,Vt;Gt<0?(Wt=0,Kt=1,Vt=$):Gt>rt?(Wt=et,Kt=1,Vt=_e):Vt=$+(_e-$)*(Gt/rt),(Gt===-2||Gt===rt+2)&&(Vt=0,Kt=0),Wt-=et/2;for(let ur=0;urrt?0:Ar*St,kt[jt+Nt[1]]=Gt<0?-1:Gt>rt?1:Dt,kt[jt+Nt[2]]=Gt<0||Gt>rt?0:hr*St,Jt[Ht+0]=ur/tt,Jt[Ht+1]=Kt,Ht+=2,jt+=3}}for(let Gt=0;Gt0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("cone-geometry"),radius:et=1,cap:tt=!0}=$;super({...$,id:_e,topRadius:0,topCap:!!tt,bottomCap:!!tt,bottomRadius:et})}}const CUBE_INDICES=new Uint16Array([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),CUBE_POSITIONS=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1]),CUBE_NORMALS=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),CUBE_TEX_COORDS=new Float32Array([0,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1]),ATTRIBUTES={POSITION:{size:3,value:new Float32Array(CUBE_POSITIONS)},NORMAL:{size:3,value:new Float32Array(CUBE_NORMALS)},TEXCOORD_0:{size:2,value:new Float32Array(CUBE_TEX_COORDS)}};class CubeGeometry extends Geometry{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("cube-geometry")}=$;super({...$,id:_e,indices:{size:1,value:new Uint16Array(CUBE_INDICES)},attributes:{...ATTRIBUTES,...$.attributes}})}}class CylinderGeometry extends TruncatedConeGeometry{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("cylinder-geometry"),radius:et=1}=$;super({...$,id:_e,bottomRadius:et,topRadius:et})}}const ICO_POSITIONS=[-1,0,0,0,1,0,0,0,-1,0,0,1,0,-1,0,1,0,0],ICO_INDICES=[3,4,5,3,5,1,3,1,0,3,0,4,4,0,2,4,2,5,2,0,1,5,2,1];class IcoSphereGeometry extends Geometry{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("ico-sphere-geometry")}=$,{indices:et,attributes:tt}=tesselateIcosaHedron($);super({...$,id:_e,indices:et,attributes:{...tt,...$.attributes}})}}function tesselateIcosaHedron(j){const{iterations:$=0}=j,_e=Math.PI,et=_e*2,tt=[...ICO_POSITIONS];let rt=[...ICO_INDICES];tt.push(),rt.push();const nt=(()=>{const ut={};return(ft,dt)=>{ft*=3,dt*=3;const Et=ftdt?ft:dt,St="".concat(Et,"|").concat(Bt);if(St in ut)return ut[St];const Dt=tt[ft],$t=tt[ft+1],Rt=tt[ft+2],wt=tt[dt],xt=tt[dt+1],Nt=tt[dt+2];let Ot=(Dt+wt)/2,kt=($t+xt)/2,Jt=(Rt+Nt)/2;const jt=Math.sqrt(Ot*Ot+kt*kt+Jt*Jt);return Ot/=jt,kt/=jt,Jt/=jt,tt.push(Ot,kt,Jt),ut[St]=tt.length/3-1}})();for(let ut=0;ut<$;ut++){const ft=[];for(let dt=0;dt=0;ut-=3){const ft=rt[ut+0],dt=rt[ut+1],Et=rt[ut+2],Bt=ft*3,St=dt*3,Dt=Et*3,$t=ft*2,Rt=dt*2,wt=Et*2,xt=tt[Bt+0],Nt=tt[Bt+1],Ot=tt[Bt+2],kt=Math.acos(Ot/Math.sqrt(xt*xt+Nt*Nt+Ot*Ot)),Jt=Math.atan2(Nt,xt)+_e,jt=kt/_e,Ht=1-Jt/et,Gt=tt[St+0],Kt=tt[St+1],Wt=tt[St+2],Vt=Math.acos(Wt/Math.sqrt(Gt*Gt+Kt*Kt+Wt*Wt)),ur=Math.atan2(Kt,Gt)+_e,Ar=Vt/_e,hr=1-ur/et,sr=tt[Dt+0],ar=tt[Dt+1],Yt=tt[Dt+2],pr=Math.acos(Yt/Math.sqrt(sr*sr+ar*ar+Yt*Yt)),Zt=Math.atan2(ar,sr)+_e,mr=pr/_e,vr=1-Zt/et,_r=[sr-Gt,ar-Kt,Yt-Wt],Er=[xt-Gt,Nt-Kt,Ot-Wt],Lr=new Vector3(_r).cross(Er).normalize();let Rr;(Ht===0||hr===0||vr===0)&&(Ht===0||Ht>.5)&&(hr===0||hr>.5)&&(vr===0||vr>.5)&&(tt.push(tt[Bt+0],tt[Bt+1],tt[Bt+2]),Rr=tt.length/3-1,rt.push(Rr),ot[Rr*2+0]=1,ot[Rr*2+1]=jt,it[Rr*3+0]=Lr.x,it[Rr*3+1]=Lr.y,it[Rr*3+2]=Lr.z,tt.push(tt[St+0],tt[St+1],tt[St+2]),Rr=tt.length/3-1,rt.push(Rr),ot[Rr*2+0]=1,ot[Rr*2+1]=Ar,it[Rr*3+0]=Lr.x,it[Rr*3+1]=Lr.y,it[Rr*3+2]=Lr.z,tt.push(tt[Dt+0],tt[Dt+1],tt[Dt+2]),Rr=tt.length/3-1,rt.push(Rr),ot[Rr*2+0]=1,ot[Rr*2+1]=mr,it[Rr*3+0]=Lr.x,it[Rr*3+1]=Lr.y,it[Rr*3+2]=Lr.z),it[Bt+0]=it[St+0]=it[Dt+0]=Lr.x,it[Bt+1]=it[St+1]=it[Dt+1]=Lr.y,it[Bt+2]=it[St+2]=it[Dt+2]=Lr.z,ot[$t+0]=Ht,ot[$t+1]=jt,ot[Rt+0]=hr,ot[Rt+1]=Ar,ot[wt+0]=vr,ot[wt+1]=mr}return{indices:{size:1,value:new Uint16Array(rt)},attributes:{POSITION:{size:3,value:new Float32Array(tt)},NORMAL:{size:3,value:new Float32Array(it)},TEXCOORD_0:{size:2,value:new Float32Array(ot)}}}}function unpackIndexedGeometry(j){const{indices:$,attributes:_e}=j;if(!$)return j;const et=$.value.length,tt={};for(const rt in _e){const nt=_e[rt],{constant:it,value:ot,size:At}=nt;if(it||!At)continue;const ut=new ot.constructor(et*At);for(let ft=0;ft0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("plane-geometry")}=$,{indices:et,attributes:tt}=tesselatePlane($);super({...$,id:_e,indices:et,attributes:{...tt,...$.attributes}})}}function tesselatePlane(j){const{type:$="x,y",offset:_e=0,flipCull:et=!1,unpack:tt=!1}=j,rt=$.split(",");let nt=j["".concat(rt[0],"len")]||1;const it=j["".concat(rt[1],"len")]||1,ot=j["n".concat(rt[0])]||1,At=j["n".concat(rt[1])]||1,ut=(ot+1)*(At+1),ft=new Float32Array(ut*3),dt=new Float32Array(ut*3),Et=new Float32Array(ut*2);et&&(nt=-nt);let Bt=0,St=0;for(let wt=0;wt<=At;wt++)for(let xt=0;xt<=ot;xt++){const Nt=xt/ot,Ot=wt/At;switch(Et[Bt+0]=et?1-Nt:Nt,Et[Bt+1]=Ot,$){case"x,y":ft[St+0]=nt*Nt-nt*.5,ft[St+1]=it*Ot-it*.5,ft[St+2]=_e,dt[St+0]=0,dt[St+1]=0,dt[St+2]=et?1:-1;break;case"x,z":ft[St+0]=nt*Nt-nt*.5,ft[St+1]=_e,ft[St+2]=it*Ot-it*.5,dt[St+0]=0,dt[St+1]=et?1:-1,dt[St+2]=0;break;case"y,z":ft[St+0]=_e,ft[St+1]=nt*Nt-nt*.5,ft[St+2]=it*Ot-it*.5,dt[St+0]=et?1:-1,dt[St+1]=0,dt[St+2]=0;break;default:throw new Error("PlaneGeometry: unknown type")}Bt+=2,St+=3}const Dt=ot+1,$t=new Uint16Array(ot*At*6);for(let wt=0;wt0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e=uid("sphere-geometry")}=$,{indices:et,attributes:tt}=tesselateSphere($);super({...$,id:_e,indices:et,attributes:{...tt,...$.attributes}})}}function tesselateSphere(j){const{nlat:$=10,nlong:_e=10}=j;let{radius:et=1}=j;const nt=Math.PI-0,At=2*Math.PI-0,ut=($+1)*(_e+1);if(typeof et=="number"){const $t=et;et=(Rt,wt,xt,Nt,Ot)=>$t}const ft=new Float32Array(ut*3),dt=new Float32Array(ut*3),Et=new Float32Array(ut*2),Bt=ut>65535?Uint32Array:Uint16Array,St=new Bt($*_e*6);for(let $t=0;$t<=$;$t++)for(let Rt=0;Rt<=_e;Rt++){const wt=Rt/_e,xt=$t/$,Nt=Rt+$t*(_e+1),Ot=Nt*2,kt=Nt*3,Jt=At*wt,jt=nt*xt,Ht=Math.sin(Jt),Gt=Math.cos(Jt),Kt=Math.sin(jt),Wt=Math.cos(jt),Vt=Gt*Kt,ur=Wt,Ar=Ht*Kt,hr=et(Vt,ur,Ar,wt,xt);ft[kt+0]=hr*Vt,ft[kt+1]=hr*ur,ft[kt+2]=hr*Ar,dt[kt+0]=Vt,dt[kt+1]=ur,dt[kt+2]=Ar,Et[Ot+0]=wt,Et[Ot+1]=1-xt}const Dt=_e+1;for(let $t=0;$t<_e;$t++)for(let Rt=0;Rt<$;Rt++){const wt=($t*$+Rt)*6;St[wt+0]=Rt*Dt+$t,St[wt+1]=Rt*Dt+$t+1,St[wt+2]=(Rt+1)*Dt+$t,St[wt+3]=(Rt+1)*Dt+$t,St[wt+4]=Rt*Dt+$t+1,St[wt+5]=(Rt+1)*Dt+$t+1}return{indices:{size:1,value:St},attributes:{POSITION:{size:3,value:ft},NORMAL:{size:3,value:dt},TEXCOORD_0:{size:2,value:Et}}}}let channelHandles=1,animationHandles=1;class Timeline{constructor(){this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}addChannel($){const{delay:_e=0,duration:et=Number.POSITIVE_INFINITY,rate:tt=1,repeat:rt=1}=$,nt=channelHandles++,it={time:0,delay:_e,duration:et,rate:tt,repeat:rt};return this._setChannelTime(it,this.time),this.channels.set(nt,it),nt}removeChannel($){this.channels.delete($);for(const[_e,et]of this.animations)et.channel===$&&this.detachAnimation(_e)}isFinished($){const _e=this.channels.get($);return _e===void 0?!1:this.time>=_e.delay+_e.duration*_e.repeat}getTime($){if($===void 0)return this.time;const _e=this.channels.get($);return _e===void 0?-1:_e.time}setTime($){this.time=Math.max(0,$);const _e=this.channels.values();for(const tt of _e)this._setChannelTime(tt,this.time);const et=this.animations.values();for(const tt of et){const{animation:rt,channel:nt}=tt;rt.setTime(this.getTime(nt))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation($,_e){const et=animationHandles++;return this.animations.set(et,{animation:$,channel:_e}),$.setTime(this.getTime(_e)),et}detachAnimation($){this.animations.delete($)}update($){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=$),this.setTime(this.time+($-this.lastEngineTime)),this.lastEngineTime=$)}_setChannelTime($,_e){const et=_e-$.delay,tt=$.duration*$.repeat;et>=tt?$.time=$.duration*$.rate:($.time=Math.max(0,et)%$.duration,$.time*=$.rate)}}const CLIPSPACE_VERTEX_SHADER=`attribute vec2 aClipSpacePosition; +attribute vec2 aTexCoord; +attribute vec2 aCoordinate; + +varying vec2 position; +varying vec2 coordinate; +varying vec2 uv; + +void main(void) { + gl_Position = vec4(aClipSpacePosition, 0., 1.); + position = aClipSpacePosition; + coordinate = aCoordinate; + uv = aTexCoord; +} +`,POSITIONS=[-1,-1,1,-1,-1,1,1,1];class ClipSpace extends Model{constructor($,_e){const et=POSITIONS.map(tt=>tt===-1?0:tt);super($,Object.assign({},_e,{vs:CLIPSPACE_VERTEX_SHADER,geometry:new Geometry({drawMode:5,vertexCount:4,attributes:{aClipSpacePosition:{size:2,value:new Float32Array(POSITIONS)},aTexCoord:{size:2,value:new Float32Array(et)},aCoordinate:{size:2,value:new Float32Array(et)}}})})),this.setVertexCount(4)}}const esm$5=Object.freeze(Object.defineProperty({__proto__:null,AnimationLoop,Buffer:Buffer$1,ClipSpace,ConeGeometry,CubeGeometry,CylinderGeometry,FEATURES:FEATURES$1,FragmentShader,Framebuffer,Geometry,IcoSphereGeometry,Model,PlaneGeometry,Program,ProgramManager,Renderbuffer,SphereGeometry,Texture2D,Texture3D,TextureCube,Timeline,Transform:Transform$1,TransformFeedback,TruncatedConeGeometry,VertexShader,assert:assert$7,clear,cloneTextureFrom,copyToTexture,createGLContext,cssToDevicePixels,cssToDeviceRatio,dirlight,fp32,fp64,getParameters,gouraudLighting,hasFeature,hasFeatures:hasFeatures$1,instrumentGLContext,isWebGL,isWebGL2:isWebGL2$1,log:log$2,lumaStats,normalizeShaderModule,pbr,phongLighting,picking:picking$1,project:project$2,readPixelsToArray,readPixelsToBuffer,resetParameters,setParameters,uid,withParameters},Symbol.toStringTag,{value:"Module"})),defines="#define SMOOTH_EDGE_RADIUS 0.5",vs$l=` +`.concat(defines,` + +struct VertexGeometry { + vec4 position; + vec3 worldPosition; + vec3 worldPositionAlt; + vec3 normal; + vec2 uv; + vec3 pickingColor; +} geometry = VertexGeometry( + vec4(0.0, 0.0, 1.0, 0.0), + vec3(0.0), + vec3(0.0), + vec3(0.0), + vec2(0.0), + vec3(0.0) +); +`),fs$l=` +`.concat(defines,` + +struct FragmentGeometry { + vec2 uv; +} geometry; + +float smoothedge(float edge, float x) { + return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x); +} +`),geometry={name:"geometry",vs:vs$l,fs:fs$l},COORDINATE_SYSTEM={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(COORDINATE_SYSTEM,"IDENTITY",{get:()=>(log$3.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),0)});const PROJECTION_MODE={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},UNIT={common:0,meters:1,pixels:2},EVENTS={click:{handler:"onClick"},panstart:{handler:"onDragStart"},panmove:{handler:"onDrag"},panend:{handler:"onDragEnd"}},OPERATION={DRAW:"draw",MASK:"mask"},COORDINATE_SYSTEM_GLSL_CONSTANTS=Object.keys(COORDINATE_SYSTEM).map(j=>"const int COORDINATE_SYSTEM_".concat(j," = ").concat(COORDINATE_SYSTEM[j],";")).join(""),PROJECTION_MODE_GLSL_CONSTANTS=Object.keys(PROJECTION_MODE).map(j=>"const int PROJECTION_MODE_".concat(j," = ").concat(PROJECTION_MODE[j],";")).join(""),UNIT_GLSL_CONSTANTS=Object.keys(UNIT).map(j=>"const int UNIT_".concat(j.toUpperCase()," = ").concat(UNIT[j],";")).join(""),projectShader="".concat(COORDINATE_SYSTEM_GLSL_CONSTANTS,` +`).concat(PROJECTION_MODE_GLSL_CONSTANTS,` +`).concat(UNIT_GLSL_CONSTANTS,` + +uniform int project_uCoordinateSystem; +uniform int project_uProjectionMode; +uniform float project_uScale; +uniform bool project_uWrapLongitude; +uniform vec3 project_uCommonUnitsPerMeter; +uniform vec3 project_uCommonUnitsPerWorldUnit; +uniform vec3 project_uCommonUnitsPerWorldUnit2; +uniform vec4 project_uCenter; +uniform mat4 project_uModelMatrix; +uniform mat4 project_uViewProjectionMatrix; +uniform vec2 project_uViewportSize; +uniform float project_uDevicePixelRatio; +uniform float project_uFocalDistance; +uniform vec3 project_uCameraPosition; +uniform vec3 project_uCoordinateOrigin; +uniform vec3 project_uCommonOrigin; +uniform bool project_uPseudoMeters; + +const float TILE_SIZE = 512.0; +const float PI = 3.1415926536; +const float WORLD_SCALE = TILE_SIZE / (PI * 2.0); +const vec3 ZERO_64_LOW = vec3(0.0); +const float EARTH_RADIUS = 6370972.0; // meters +const float GLOBE_RADIUS = 256.0; + +// returns an adjustment factor for uCommonUnitsPerMeter +float project_size_at_latitude(float lat) { + float y = clamp(lat, -89.9, 89.9); + return 1.0 / cos(radians(y)); +} + +float project_size() { + if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR && + project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT && + project_uPseudoMeters == false) { + + // uCommonUnitsPerMeter in low-zoom Web Mercator is non-linear + // Adjust by 1 / cos(latitude) + // If geometry.position (vertex in common space) is populated, use it + // Otherwise use geometry.worldPosition (anchor in world space) + + if (geometry.position.w == 0.0) { + return project_size_at_latitude(geometry.worldPosition.y); + } + + // latitude from common y: 2.0 * (atan(exp(y / TILE_SIZE * 2.0 * PI - PI)) - PI / 4.0) + // Taylor series of 1 / cos(latitude) + // Max error < 0.003 + + float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0; + float y2 = y * y; + float y4 = y2 * y2; + float y6 = y4 * y2; + return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6; + } + return 1.0; +} + +float project_size_at_latitude(float meters, float lat) { + return meters * project_uCommonUnitsPerMeter.z * project_size_at_latitude(lat); +} + +// +// Scaling offsets - scales meters to "world distance" +// Note the scalar version of project_size is for scaling the z component only +// +float project_size(float meters) { + return meters * project_uCommonUnitsPerMeter.z * project_size(); +} + +vec2 project_size(vec2 meters) { + return meters * project_uCommonUnitsPerMeter.xy * project_size(); +} + +vec3 project_size(vec3 meters) { + return meters * project_uCommonUnitsPerMeter * project_size(); +} + +vec4 project_size(vec4 meters) { + return vec4(meters.xyz * project_uCommonUnitsPerMeter, meters.w); +} + +// Get rotation matrix that aligns the z axis with the given up vector +// Find 3 unit vectors ux, uy, uz that are perpendicular to each other and uz == up +mat3 project_get_orientation_matrix(vec3 up) { + vec3 uz = normalize(up); + // Tangent on XY plane + vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0)); + vec3 uy = cross(uz, ux); + return mat3(ux, uy, uz); +} + +bool project_needs_rotation(vec3 commonPosition, out mat3 transform) { + if (project_uProjectionMode == PROJECTION_MODE_GLOBE) { + transform = project_get_orientation_matrix(commonPosition); + return true; + } + return false; +} + +// +// Projecting normal - transform deltas from current coordinate system to +// normals in the worldspace +// +vec3 project_normal(vec3 vector) { + // Apply model matrix + vec4 normal_modelspace = project_uModelMatrix * vec4(vector, 0.0); + vec3 n = normalize(normal_modelspace.xyz * project_uCommonUnitsPerMeter); + mat3 rotation; + if (project_needs_rotation(geometry.position.xyz, rotation)) { + n = rotation * n; + } + return n; +} + +vec4 project_offset_(vec4 offset) { + float dy = offset.y; + vec3 commonUnitsPerWorldUnit = project_uCommonUnitsPerWorldUnit + project_uCommonUnitsPerWorldUnit2 * dy; + return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w); +} + +// +// Projecting positions - non-linear projection: lnglats => unit tile [0-1, 0-1] +// +vec2 project_mercator_(vec2 lnglat) { + float x = lnglat.x; + if (project_uWrapLongitude) { + x = mod(x + 180., 360.0) - 180.; + } + float y = clamp(lnglat.y, -89.9, 89.9); + return vec2( + radians(x) + PI, + PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5)) + ) * WORLD_SCALE; +} + +vec3 project_globe_(vec3 lnglatz) { + float lambda = radians(lnglatz.x); + float phi = radians(lnglatz.y); + float cosPhi = cos(phi); + float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS; + + return vec3( + sin(lambda) * cosPhi, + -cos(lambda) * cosPhi, + sin(phi) + ) * D; +} + +// +// Projects positions (defined by project_uCoordinateSystem) to common space (defined by project_uProjectionMode) +// +vec4 project_position(vec4 position, vec3 position64Low) { + vec4 position_world = project_uModelMatrix * position; + + // Work around for a Mac+NVIDIA bug https://github.com/visgl/deck.gl/issues/4145 + if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR) { + if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { + return vec4( + project_mercator_(position_world.xy), + project_size_at_latitude(position_world.z, position_world.y), + position_world.w + ); + } + if (project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN) { + position_world.xyz += project_uCoordinateOrigin; + } + } + if (project_uProjectionMode == PROJECTION_MODE_GLOBE) { + if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { + return vec4( + project_globe_(position_world.xyz), + position_world.w + ); + } + } + if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) { + if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { + if (abs(position_world.y - project_uCoordinateOrigin.y) > 0.25) { + // Too far from the projection center for offset mode to be accurate + // Only use high parts + return vec4( + project_mercator_(position_world.xy) - project_uCommonOrigin.xy, + project_size(position_world.z), + position_world.w + ); + } + } + } + if (project_uProjectionMode == PROJECTION_MODE_IDENTITY || + (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET && + (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + project_uCoordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) { + // Subtract high part of 64 bit value. Convert remainder to float32, preserving precision. + position_world.xyz -= project_uCoordinateOrigin; + } + + // Translation is already added to the high parts + return project_offset_(position_world + project_uModelMatrix * vec4(position64Low, 0.0)); +} + +vec4 project_position(vec4 position) { + return project_position(position, ZERO_64_LOW); +} + +vec3 project_position(vec3 position, vec3 position64Low) { + vec4 projected_position = project_position(vec4(position, 1.0), position64Low); + return projected_position.xyz; +} + +vec3 project_position(vec3 position) { + vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW); + return projected_position.xyz; +} + +vec2 project_position(vec2 position) { + vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW); + return projected_position.xy; +} + +vec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) { + return viewProjectionMatrix * position + center; +} + +// +// Projects from common space coordinates to clip space. +// Uses project_uViewProjectionMatrix +// +vec4 project_common_position_to_clipspace(vec4 position) { + return project_common_position_to_clipspace(position, project_uViewProjectionMatrix, project_uCenter); +} + +// Returns a clip space offset that corresponds to a given number of screen pixels +vec2 project_pixel_size_to_clipspace(vec2 pixels) { + vec2 offset = pixels / project_uViewportSize * project_uDevicePixelRatio * 2.0; + return offset * project_uFocalDistance; +} + +float project_size_to_pixel(float meters) { + return project_size(meters) * project_uScale; +} +float project_size_to_pixel(float size, int unit) { + if (unit == UNIT_METERS) return project_size_to_pixel(size); + if (unit == UNIT_COMMON) return size * project_uScale; + // UNIT_PIXELS + return size; +} +float project_pixel_size(float pixels) { + return pixels / project_uScale; +} +vec2 project_pixel_size(vec2 pixels) { + return pixels / project_uScale; +} +`);function isEqual(j,$){if(j===$)return!0;if(Array.isArray(j)){const _e=j.length;if(!$||$.length!==_e)return!1;for(let et=0;et<_e;et++)if(j[et]!==$[et])return!1;return!0}return!1}function memoize$1$1(j){let $={},_e;return et=>{for(const tt in et)if(!isEqual(et[tt],$[tt])){_e=j(et),$=et;break}return _e}}const ZERO_VECTOR$1=[0,0,0,0],VECTOR_TO_POINT_MATRIX$1=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],IDENTITY_MATRIX=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],DEFAULT_PIXELS_PER_UNIT2=[0,0,0],DEFAULT_COORDINATE_ORIGIN=[0,0,0],getMemoizedViewportUniforms=memoize$1$1(calculateViewportUniforms);function getOffsetOrigin(j,$,_e=DEFAULT_COORDINATE_ORIGIN){_e.length<3&&(_e=[_e[0],_e[1],0]);let et=_e,tt,rt=!0;switch($===COORDINATE_SYSTEM.LNGLAT_OFFSETS||$===COORDINATE_SYSTEM.METER_OFFSETS?tt=_e:tt=j.isGeospatial?[Math.fround(j.longitude),Math.fround(j.latitude),0]:null,j.projectionMode){case PROJECTION_MODE.WEB_MERCATOR:($===COORDINATE_SYSTEM.LNGLAT||$===COORDINATE_SYSTEM.CARTESIAN)&&(tt=[0,0,0],rt=!1);break;case PROJECTION_MODE.WEB_MERCATOR_AUTO_OFFSET:$===COORDINATE_SYSTEM.LNGLAT?et=tt:$===COORDINATE_SYSTEM.CARTESIAN&&(et=[Math.fround(j.center[0]),Math.fround(j.center[1]),0],tt=j.unprojectPosition(et),et[0]-=_e[0],et[1]-=_e[1],et[2]-=_e[2]);break;case PROJECTION_MODE.IDENTITY:et=j.position.map(Math.fround),et[2]=et[2]||0;break;case PROJECTION_MODE.GLOBE:rt=!1,tt=null;break;default:rt=!1}return{geospatialOrigin:tt,shaderCoordinateOrigin:et,offsetMode:rt}}function calculateMatrixAndOffset(j,$,_e){const{viewMatrixUncentered:et,projectionMatrix:tt}=j;let{viewMatrix:rt,viewProjectionMatrix:nt}=j,it=ZERO_VECTOR$1,ot=ZERO_VECTOR$1,At=j.cameraPosition;const{geospatialOrigin:ut,shaderCoordinateOrigin:ft,offsetMode:dt}=getOffsetOrigin(j,$,_e);return dt&&(ot=j.projectPosition(ut||ft),At=[At[0]-ot[0],At[1]-ot[1],At[2]-ot[2]],ot[3]=1,it=transformMat4([],ot,nt),rt=et||rt,nt=multiply$2([],tt,rt),nt=multiply$2([],nt,VECTOR_TO_POINT_MATRIX$1)),{viewMatrix:rt,viewProjectionMatrix:nt,projectionCenter:it,originCommon:ot,cameraPosCommon:At,shaderCoordinateOrigin:ft,geospatialOrigin:ut}}function getUniformsFromViewport({viewport:j,devicePixelRatio:$=1,modelMatrix:_e=null,coordinateSystem:et=COORDINATE_SYSTEM.DEFAULT,coordinateOrigin:tt=DEFAULT_COORDINATE_ORIGIN,autoWrapLongitude:rt=!1}){et===COORDINATE_SYSTEM.DEFAULT&&(et=j.isGeospatial?COORDINATE_SYSTEM.LNGLAT:COORDINATE_SYSTEM.CARTESIAN);const nt=getMemoizedViewportUniforms({viewport:j,devicePixelRatio:$,coordinateSystem:et,coordinateOrigin:tt});return nt.project_uWrapLongitude=rt,nt.project_uModelMatrix=_e||IDENTITY_MATRIX,nt}function calculateViewportUniforms({viewport:j,devicePixelRatio:$,coordinateSystem:_e,coordinateOrigin:et}){const{projectionCenter:tt,viewProjectionMatrix:rt,originCommon:nt,cameraPosCommon:it,shaderCoordinateOrigin:ot,geospatialOrigin:At}=calculateMatrixAndOffset(j,_e,et),ut=j.getDistanceScales(),ft=[j.width*$,j.height*$],dt=transformMat4([],[0,0,-j.focalDistance,1],j.projectionMatrix)[3]||1,Et={project_uCoordinateSystem:_e,project_uProjectionMode:j.projectionMode,project_uCoordinateOrigin:ot,project_uCommonOrigin:nt.slice(0,3),project_uCenter:tt,project_uPseudoMeters:!!j._pseudoMeters,project_uViewportSize:ft,project_uDevicePixelRatio:$,project_uFocalDistance:dt,project_uCommonUnitsPerMeter:ut.unitsPerMeter,project_uCommonUnitsPerWorldUnit:ut.unitsPerMeter,project_uCommonUnitsPerWorldUnit2:DEFAULT_PIXELS_PER_UNIT2,project_uScale:j.scale,project_uWrapLongitude:!1,project_uViewProjectionMatrix:rt,project_uModelMatrix:IDENTITY_MATRIX,project_uCameraPosition:it};if(At){const Bt=j.getDistanceScales(At);switch(_e){case COORDINATE_SYSTEM.METER_OFFSETS:Et.project_uCommonUnitsPerWorldUnit=Bt.unitsPerMeter,Et.project_uCommonUnitsPerWorldUnit2=Bt.unitsPerMeter2;break;case COORDINATE_SYSTEM.LNGLAT:case COORDINATE_SYSTEM.LNGLAT_OFFSETS:j._pseudoMeters||(Et.project_uCommonUnitsPerMeter=Bt.unitsPerMeter),Et.project_uCommonUnitsPerWorldUnit=Bt.unitsPerDegree,Et.project_uCommonUnitsPerWorldUnit2=Bt.unitsPerDegree2;break;case COORDINATE_SYSTEM.CARTESIAN:Et.project_uCommonUnitsPerWorldUnit=[1,1,Bt.unitsPerMeter[2]],Et.project_uCommonUnitsPerWorldUnit2=[0,0,Bt.unitsPerMeter2[2]];break}}return Et}const INITIAL_MODULE_OPTIONS={};function getUniforms(j=INITIAL_MODULE_OPTIONS){return"viewport"in j?getUniformsFromViewport(j):{}}const project$1={name:"project",dependencies:[fp32,geometry],vs:projectShader,getUniforms},vs$k=` +vec4 project_position_to_clipspace( + vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition +) { + vec3 projectedPosition = project_position(position, position64Low); + mat3 rotation; + if (project_needs_rotation(projectedPosition, rotation)) { + // offset is specified as ENU + // when in globe projection, rotate offset so that the ground alighs with the surface of the globe + offset = rotation * offset; + } + commonPosition = vec4(projectedPosition + offset, 1.0); + return project_common_position_to_clipspace(commonPosition); +} + +vec4 project_position_to_clipspace( + vec3 position, vec3 position64Low, vec3 offset +) { + vec4 commonPosition; + return project_position_to_clipspace(position, position64Low, offset, commonPosition); +} +`,project32={name:"project32",dependencies:[project$1],vs:vs$k};function createMat4$1(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function transformVector$1(j,$){const _e=transformMat4([],$,j);return scale$2(_e,_e,1/_e[3]),_e}function mod$1(j,$){const _e=j%$;return _e<0?$+_e:_e}function lerp(j,$,_e){return _e*$+(1-_e)*j}function clamp$3(j,$,_e){return j<$?$:j>_e?_e:j}function ieLog2(j){return Math.log(j)*Math.LOG2E}const log2=Math.log2||ieLog2;function assert$5(j,$){if(!j)throw new Error($||"@math.gl/web-mercator: assertion failed.")}const PI=Math.PI,PI_4=PI/4,DEGREES_TO_RADIANS$6=PI/180,RADIANS_TO_DEGREES$1=180/PI,TILE_SIZE$6=512,EARTH_CIRCUMFERENCE$1=4003e4,MAX_LATITUDE=85.051129,DEFAULT_ALTITUDE=1.5;function zoomToScale(j){return Math.pow(2,j)}function scaleToZoom(j){return log2(j)}function lngLatToWorld(j){const[$,_e]=j;assert$5(Number.isFinite($)),assert$5(Number.isFinite(_e)&&_e>=-90&&_e<=90,"invalid latitude");const et=$*DEGREES_TO_RADIANS$6,tt=_e*DEGREES_TO_RADIANS$6,rt=TILE_SIZE$6*(et+PI)/(2*PI),nt=TILE_SIZE$6*(PI+Math.log(Math.tan(PI_4+tt*.5)))/(2*PI);return[rt,nt]}function worldToLngLat(j){const[$,_e]=j,et=$/TILE_SIZE$6*(2*PI)-PI,tt=2*(Math.atan(Math.exp(_e/TILE_SIZE$6*(2*PI)-PI))-PI_4);return[et*RADIANS_TO_DEGREES$1,tt*RADIANS_TO_DEGREES$1]}function getMeterZoom(j){const{latitude:$}=j;assert$5(Number.isFinite($));const _e=Math.cos($*DEGREES_TO_RADIANS$6);return scaleToZoom(EARTH_CIRCUMFERENCE$1*_e)-9}function unitsPerMeter$1(j){const $=Math.cos(j*DEGREES_TO_RADIANS$6);return TILE_SIZE$6/EARTH_CIRCUMFERENCE$1/$}function getDistanceScales$1(j){const{latitude:$,longitude:_e,highPrecision:et=!1}=j;assert$5(Number.isFinite($)&&Number.isFinite(_e));const tt=TILE_SIZE$6,rt=Math.cos($*DEGREES_TO_RADIANS$6),nt=tt/360,it=nt/rt,ot=tt/EARTH_CIRCUMFERENCE$1/rt,At={unitsPerMeter:[ot,ot,ot],metersPerUnit:[1/ot,1/ot,1/ot],unitsPerDegree:[nt,it,ot],degreesPerUnit:[1/nt,1/it,1/ot]};if(et){const ut=DEGREES_TO_RADIANS$6*Math.tan($*DEGREES_TO_RADIANS$6)/rt,ft=nt*ut/2,dt=tt/EARTH_CIRCUMFERENCE$1*ut,Et=dt/it*ot;At.unitsPerDegree2=[0,ft,dt],At.unitsPerMeter2=[Et,0,Et]}return At}function addMetersToLngLat(j,$){const[_e,et,tt]=j,[rt,nt,it]=$,{unitsPerMeter:ot,unitsPerMeter2:At}=getDistanceScales$1({longitude:_e,latitude:et,highPrecision:!0}),ut=lngLatToWorld(j);ut[0]+=rt*(ot[0]+At[0]*nt),ut[1]+=nt*(ot[1]+At[1]*nt);const ft=worldToLngLat(ut),dt=(tt||0)+(it||0);return Number.isFinite(tt)||Number.isFinite(it)?[ft[0],ft[1],dt]:ft}function getViewMatrix$1(j){const{height:$,pitch:_e,bearing:et,altitude:tt,scale:rt,center:nt}=j,it=createMat4$1();translate(it,it,[0,0,-tt]),rotateX$1(it,it,-_e*DEGREES_TO_RADIANS$6),rotateZ$1(it,it,et*DEGREES_TO_RADIANS$6);const ot=rt/$;return scale$3(it,it,[ot,ot,ot]),nt&&translate(it,it,negate([],nt)),it}function getProjectionParameters(j){const{width:$,height:_e,altitude:et,pitch:tt=0,offset:rt,center:nt,scale:it,nearZMultiplier:ot=1,farZMultiplier:At=1}=j;let{fovy:ut=altitudeToFovy(DEFAULT_ALTITUDE)}=j;et!==void 0&&(ut=altitudeToFovy(et));const ft=ut*DEGREES_TO_RADIANS$6,dt=tt*DEGREES_TO_RADIANS$6,Et=fovyToAltitude(ut);let Bt=Et;nt&&(Bt+=nt[2]*it/Math.cos(dt)/_e);const St=ft*(.5+(rt?rt[1]:0)/_e),Dt=Math.sin(St)*Bt/Math.sin(clamp$3(Math.PI/2-dt-St,.01,Math.PI-.01)),$t=Math.sin(dt)*Dt+Bt,Rt=Bt*10,wt=Math.min($t*At,Rt);return{fov:ft,aspect:$/_e,focalDistance:Et,near:ot,far:wt}}function getProjectionMatrix$1(j){const{fov:$,aspect:_e,near:et,far:tt}=getProjectionParameters(j);return perspective([],$,_e,et,tt)}function altitudeToFovy(j){return 2*Math.atan(.5/j)*RADIANS_TO_DEGREES$1}function fovyToAltitude(j){return .5/Math.tan(.5*j*DEGREES_TO_RADIANS$6)}function worldToPixels(j,$){const[_e,et,tt=0]=j;return assert$5(Number.isFinite(_e)&&Number.isFinite(et)&&Number.isFinite(tt)),transformVector$1($,[_e,et,tt,1])}function pixelsToWorld(j,$,_e=0){const[et,tt,rt]=j;if(assert$5(Number.isFinite(et)&&Number.isFinite(tt),"invalid pixel coordinate"),Number.isFinite(rt))return transformVector$1($,[et,tt,rt,1]);const nt=transformVector$1($,[et,tt,0,1]),it=transformVector$1($,[et,tt,1,1]),ot=nt[2],At=it[2],ut=ot===At?0:((_e||0)-ot)/(At-ot);return lerp$4([],nt,it,ut)}function fitBounds(j){const{width:$,height:_e,bounds:et,minExtent:tt=0,maxZoom:rt=24,offset:nt=[0,0]}=j,[[it,ot],[At,ut]]=et,ft=getPaddingObject(j.padding),dt=lngLatToWorld([it,clamp$3(ut,-MAX_LATITUDE,MAX_LATITUDE)]),Et=lngLatToWorld([At,clamp$3(ot,-MAX_LATITUDE,MAX_LATITUDE)]),Bt=[Math.max(Math.abs(Et[0]-dt[0]),tt),Math.max(Math.abs(Et[1]-dt[1]),tt)],St=[$-ft.left-ft.right-Math.abs(nt[0])*2,_e-ft.top-ft.bottom-Math.abs(nt[1])*2];assert$5(St[0]>0&&St[1]>0);const Dt=St[0]/Bt[0],$t=St[1]/Bt[1],Rt=(ft.right-ft.left)/2/Dt,wt=(ft.top-ft.bottom)/2/$t,xt=[(Et[0]+dt[0])/2+Rt,(Et[1]+dt[1])/2+wt],Nt=worldToLngLat(xt),Ot=Math.min(rt,log2(Math.abs(Math.min(Dt,$t))));return assert$5(Number.isFinite(Ot)),{longitude:Nt[0],latitude:Nt[1],zoom:Ot}}function getPaddingObject(j=0){return typeof j=="number"?{top:j,bottom:j,left:j,right:j}:(assert$5(Number.isFinite(j.top)&&Number.isFinite(j.bottom)&&Number.isFinite(j.left)&&Number.isFinite(j.right)),j)}const DEGREES_TO_RADIANS$5=Math.PI/180;function getBounds(j,$=0){const{width:_e,height:et,unproject:tt}=j,rt={targetZ:$},nt=tt([0,et],rt),it=tt([_e,et],rt);let ot,At;const ut=j.fovy?.5*j.fovy*DEGREES_TO_RADIANS$5:Math.atan(.5/j.altitude),ft=(90-j.pitch)*DEGREES_TO_RADIANS$5;return ut>ft-.01?(ot=unprojectOnFarPlane(j,0,$),At=unprojectOnFarPlane(j,_e,$)):(ot=tt([0,0],rt),At=tt([_e,0],rt)),[nt,it,At,ot]}function unprojectOnFarPlane(j,$,_e){const{pixelUnprojectionMatrix:et}=j,tt=transformVector$1(et,[$,0,1,1]),rt=transformVector$1(et,[$,j.height,1,1]),it=(_e*j.distanceScales.unitsPerMeter[2]-tt[2])/(rt[2]-tt[2]),ot=lerp$4([],tt,rt,it),At=worldToLngLat(ot);return At.push(_e),At}let WebMercatorViewport$1=class hp{constructor($={width:1,height:1}){_defineProperty$e(this,"latitude",void 0),_defineProperty$e(this,"longitude",void 0),_defineProperty$e(this,"zoom",void 0),_defineProperty$e(this,"pitch",void 0),_defineProperty$e(this,"bearing",void 0),_defineProperty$e(this,"altitude",void 0),_defineProperty$e(this,"fovy",void 0),_defineProperty$e(this,"meterOffset",void 0),_defineProperty$e(this,"center",void 0),_defineProperty$e(this,"width",void 0),_defineProperty$e(this,"height",void 0),_defineProperty$e(this,"scale",void 0),_defineProperty$e(this,"distanceScales",void 0),_defineProperty$e(this,"viewMatrix",void 0),_defineProperty$e(this,"projectionMatrix",void 0),_defineProperty$e(this,"viewProjectionMatrix",void 0),_defineProperty$e(this,"pixelProjectionMatrix",void 0),_defineProperty$e(this,"pixelUnprojectionMatrix",void 0),_defineProperty$e(this,"equals",$t=>$t instanceof hp?$t.width===this.width&&$t.height===this.height&&equals$2($t.projectionMatrix,this.projectionMatrix)&&equals$2($t.viewMatrix,this.viewMatrix):!1),_defineProperty$e(this,"project",($t,Rt={})=>{const{topLeft:wt=!0}=Rt,xt=this.projectPosition($t),Nt=worldToPixels(xt,this.pixelProjectionMatrix),[Ot,kt]=Nt,Jt=wt?kt:this.height-kt;return $t.length===2?[Ot,Jt]:[Ot,Jt,Nt[2]]}),_defineProperty$e(this,"unproject",($t,Rt={})=>{const{topLeft:wt=!0,targetZ:xt=void 0}=Rt,[Nt,Ot,kt]=$t,Jt=wt?Ot:this.height-Ot,jt=xt&&xt*this.distanceScales.unitsPerMeter[2],Ht=pixelsToWorld([Nt,Jt,kt],this.pixelUnprojectionMatrix,jt),[Gt,Kt,Wt]=this.unprojectPosition(Ht);return Number.isFinite(kt)?[Gt,Kt,Wt]:Number.isFinite(xt)?[Gt,Kt,xt]:[Gt,Kt]}),_defineProperty$e(this,"projectPosition",$t=>{const[Rt,wt]=lngLatToWorld($t),xt=($t[2]||0)*this.distanceScales.unitsPerMeter[2];return[Rt,wt,xt]}),_defineProperty$e(this,"unprojectPosition",$t=>{const[Rt,wt]=worldToLngLat($t),xt=($t[2]||0)*this.distanceScales.metersPerUnit[2];return[Rt,wt,xt]});let{width:_e,height:et,altitude:tt=null,fovy:rt=null}=$;const{latitude:nt=0,longitude:it=0,zoom:ot=0,pitch:At=0,bearing:ut=0,position:ft=null,nearZMultiplier:dt=.02,farZMultiplier:Et=1.01}=$;_e=_e||1,et=et||1,rt===null&&tt===null?(tt=DEFAULT_ALTITUDE,rt=altitudeToFovy(tt)):rt===null?rt=altitudeToFovy(tt):tt===null&&(tt=fovyToAltitude(rt));const Bt=zoomToScale(ot);tt=Math.max(.75,tt);const St=getDistanceScales$1({longitude:it,latitude:nt}),Dt=lngLatToWorld([it,nt]);Dt.push(0),ft&&add$5(Dt,Dt,mul$1([],ft,St.unitsPerMeter)),this.projectionMatrix=getProjectionMatrix$1({width:_e,height:et,scale:Bt,center:Dt,pitch:At,fovy:rt,nearZMultiplier:dt,farZMultiplier:Et}),this.viewMatrix=getViewMatrix$1({height:et,scale:Bt,center:Dt,pitch:At,bearing:ut,altitude:tt}),this.width=_e,this.height=et,this.scale=Bt,this.latitude=nt,this.longitude=it,this.zoom=ot,this.pitch=At,this.bearing=ut,this.altitude=tt,this.fovy=rt,this.center=Dt,this.meterOffset=ft||[0,0,0],this.distanceScales=St,this._initMatrices(),Object.freeze(this)}_initMatrices(){const{width:$,height:_e,projectionMatrix:et,viewMatrix:tt}=this,rt=createMat4$1();multiply$2(rt,rt,et),multiply$2(rt,rt,tt),this.viewProjectionMatrix=rt;const nt=createMat4$1();scale$3(nt,nt,[$/2,-_e/2,1]),translate(nt,nt,[1,-1,0]),multiply$2(nt,nt,rt);const it=invert$1(createMat4$1(),nt);if(!it)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=nt,this.pixelUnprojectionMatrix=it}projectFlat($){return lngLatToWorld($)}unprojectFlat($){return worldToLngLat($)}getMapCenterByLngLatPosition({lngLat:$,pos:_e}){const et=pixelsToWorld(_e,this.pixelUnprojectionMatrix),tt=lngLatToWorld($),rt=add$6([],tt,negate$1([],et)),nt=add$6([],this.center,rt);return worldToLngLat(nt)}fitBounds($,_e={}){const{width:et,height:tt}=this,{longitude:rt,latitude:nt,zoom:it}=fitBounds(Object.assign({width:et,height:tt,bounds:$},_e));return new hp({width:et,height:tt,longitude:rt,latitude:nt,zoom:it})}getBounds($){const _e=this.getBoundingRegion($),et=Math.min(..._e.map(it=>it[0])),tt=Math.max(..._e.map(it=>it[0])),rt=Math.min(..._e.map(it=>it[1])),nt=Math.max(..._e.map(it=>it[1]));return[[et,rt],[tt,nt]]}getBoundingRegion($={}){return getBounds(this,$.z||0)}getLocationAtPoint({lngLat:$,pos:_e}){return this.getMapCenterByLngLatPosition({lngLat:$,pos:_e})}};const TILE_SIZE$5=512;function normalizeViewportProps(j){const{width:$,height:_e,pitch:et=0}=j;let{longitude:tt,latitude:rt,zoom:nt,bearing:it=0}=j;(tt<-180||tt>180)&&(tt=mod$1(tt+180,360)-180),(it<-180||it>180)&&(it=mod$1(it+180,360)-180);const ot=log2(_e/TILE_SIZE$5);if(nt<=ot)nt=ot,rt=0;else{const At=_e/2/Math.pow(2,nt),ut=worldToLngLat([0,At])[1];if(rtft&&(rt=ft)}}return{width:$,height:_e,longitude:tt,latitude:rt,zoom:nt,pitch:et,bearing:it}}const EPSILON$1=.01,VIEWPORT_TRANSITION_PROPS=["longitude","latitude","zoom"],DEFAULT_OPTS$1={curve:1.414,speed:1.2};function flyToViewport(j,$,_e,et){const{startZoom:tt,startCenterXY:rt,uDelta:nt,w0:it,u1:ot,S:At,rho:ut,rho2:ft,r0:dt}=getFlyToTransitionParams(j,$,et);if(otnt?0:ut}function getFlyToTransitionParams(j,$,_e){_e=Object.assign({},DEFAULT_OPTS$1,_e);const et=_e.curve,tt=j.zoom,rt=[j.longitude,j.latitude],nt=zoomToScale(tt),it=$.zoom,ot=[$.longitude,$.latitude],At=zoomToScale(it-tt),ut=lngLatToWorld(rt),ft=lngLatToWorld(ot),dt=sub$2([],ft,ut),Et=Math.max(j.width,j.height),Bt=Et/At,St=length$5(dt)*nt,Dt=Math.max(St,EPSILON$1),$t=et*et,Rt=(Bt*Bt-Et*Et+$t*$t*Dt*Dt)/(2*Et*$t*Dt),wt=(Bt*Bt-Et*Et-$t*$t*Dt*Dt)/(2*Bt*$t*Dt),xt=Math.log(Math.sqrt(Rt*Rt+1)-Rt),Nt=Math.log(Math.sqrt(wt*wt+1)-wt),Ot=(Nt-xt)/et;return{startZoom:tt,startCenterXY:ut,uDelta:dt,w0:Et,u1:St,S:Ot,rho:et,rho2:$t,r0:xt,r1:Nt}}const vs$j=` +const int max_lights = 2; +uniform mat4 shadow_uViewProjectionMatrices[max_lights]; +uniform vec4 shadow_uProjectCenters[max_lights]; +uniform bool shadow_uDrawShadowMap; +uniform bool shadow_uUseShadowMap; +uniform int shadow_uLightId; +uniform float shadow_uLightCount; + +varying vec3 shadow_vPosition[max_lights]; + +vec4 shadow_setVertexPosition(vec4 position_commonspace) { + if (shadow_uDrawShadowMap) { + return project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[shadow_uLightId], shadow_uProjectCenters[shadow_uLightId]); + } + if (shadow_uUseShadowMap) { + for (int i = 0; i < max_lights; i++) { + if(i < int(shadow_uLightCount)) { + vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, shadow_uViewProjectionMatrices[i], shadow_uProjectCenters[i]); + shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0; + } + } + } + return gl_Position; +} +`,fs$k=` +const int max_lights = 2; +uniform bool shadow_uDrawShadowMap; +uniform bool shadow_uUseShadowMap; +uniform sampler2D shadow_uShadowMap0; +uniform sampler2D shadow_uShadowMap1; +uniform vec4 shadow_uColor; +uniform float shadow_uLightCount; + +varying vec3 shadow_vPosition[max_lights]; + +const vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0); +const vec4 bitUnpackShift = 1.0 / bitPackShift; +const vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + +float shadow_getShadowWeight(vec3 position, sampler2D shadowMap) { + vec4 rgbaDepth = texture2D(shadowMap, position.xy); + + float z = dot(rgbaDepth, bitUnpackShift); + return smoothstep(0.001, 0.01, position.z - z); +} + +vec4 shadow_filterShadowColor(vec4 color) { + if (shadow_uDrawShadowMap) { + vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift); + rgbaDepth -= rgbaDepth.gbaa * bitMask; + return rgbaDepth; + } + if (shadow_uUseShadowMap) { + float shadowAlpha = 0.0; + shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0); + if(shadow_uLightCount > 1.0) { + shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1); + } + shadowAlpha *= shadow_uColor.a / shadow_uLightCount; + float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha); + + return vec4( + mix(color.rgb, shadow_uColor.rgb, shadowAlpha / blendedAlpha), + blendedAlpha + ); + } + return color; +} +`,getMemoizedViewportCenterPosition=memoize$1$1(getViewportCenterPosition),getMemoizedViewProjectionMatrices=memoize$1$1(getViewProjectionMatrices),DEFAULT_SHADOW_COLOR$1=[0,0,0,1],VECTOR_TO_POINT_MATRIX=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function screenToCommonSpace(j,$){const[_e,et,tt]=j,rt=pixelsToWorld([_e,et,tt],$);return Number.isFinite(tt)?rt:[rt[0],rt[1],0]}function getViewportCenterPosition({viewport:j,center:$}){return new Matrix4(j.viewProjectionMatrix).invert().transform($)}function getViewProjectionMatrices({viewport:j,shadowMatrices:$}){const _e=[],et=j.pixelUnprojectionMatrix,tt=j.isGeospatial?void 0:1,rt=[[0,0,tt],[j.width,0,tt],[0,j.height,tt],[j.width,j.height,tt],[0,0,-1],[j.width,0,-1],[0,j.height,-1],[j.width,j.height,-1]].map(nt=>screenToCommonSpace(nt,et));for(const nt of $){const it=nt.clone().translate(new Vector3(j.center).negate()),ot=rt.map(ut=>it.transform(ut)),At=new Matrix4().ortho({left:Math.min(...ot.map(ut=>ut[0])),right:Math.max(...ot.map(ut=>ut[0])),bottom:Math.min(...ot.map(ut=>ut[1])),top:Math.max(...ot.map(ut=>ut[1])),near:Math.min(...ot.map(ut=>-ut[2])),far:Math.max(...ot.map(ut=>-ut[2]))});_e.push(At.multiplyRight(nt))}return _e}function createShadowUniforms(j,$){const{shadowEnabled:_e=!0}=j;if(!_e||!j.shadowMatrices||!j.shadowMatrices.length)return{shadow_uDrawShadowMap:!1,shadow_uUseShadowMap:!1};const et={shadow_uDrawShadowMap:!!j.drawToShadowMap,shadow_uUseShadowMap:j.shadowMaps?j.shadowMaps.length>0:!1,shadow_uColor:j.shadowColor||DEFAULT_SHADOW_COLOR$1,shadow_uLightId:j.shadowLightId||0,shadow_uLightCount:j.shadowMatrices.length},tt=getMemoizedViewportCenterPosition({viewport:j.viewport,center:$.project_uCenter}),rt=[],nt=getMemoizedViewProjectionMatrices({shadowMatrices:j.shadowMatrices,viewport:j.viewport}).slice();for(let it=0;it0?et["shadow_uShadowMap".concat(it)]=j.shadowMaps[it]:et["shadow_uShadowMap".concat(it)]=j.dummyShadowMap;return et}const shadow={name:"shadow",dependencies:[project$1],vs:vs$j,fs:fs$k,inject:{"vs:DECKGL_FILTER_GL_POSITION":` + position = shadow_setVertexPosition(geometry.position); + `,"fs:DECKGL_FILTER_COLOR":` + color = shadow_filterShadowColor(color); + `},getUniforms:(j={},$={})=>"viewport"in j&&(j.drawToShadowMap||j.shadowMaps&&j.shadowMaps.length>0)?createShadowUniforms(j,$):{}},picking={inject:{"vs:DECKGL_FILTER_GL_POSITION":` + // for picking depth values + picking_setPickingAttribute(position.z / position.w); + `,"vs:DECKGL_FILTER_COLOR":` + picking_setPickingColor(geometry.pickingColor); + `,"fs:#decl":` +uniform bool picking_uAttribute; + `,"fs:DECKGL_FILTER_COLOR":{order:99,injection:` + // use highlight color if this fragment belongs to the selected object. + color = picking_filterHighlightColor(color); + + // use picking color if rendering to picking FBO. + color = picking_filterPickingColor(color); + `}},...picking$1},DEFAULT_MODULES=[project$1],SHADER_HOOKS=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"];function createProgramManager(j){const $=ProgramManager.getDefaultProgramManager(j);for(const _e of DEFAULT_MODULES)$.addDefaultModule(_e);for(const _e of SHADER_HOOKS)$.addShaderHook(_e);return $}const DEFAULT_LIGHT_COLOR$2=[255,255,255],DEFAULT_LIGHT_INTENSITY$2=1;let idCount$2=0;class AmbientLight{constructor($={}){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"color",void 0),_defineProperty$e(this,"intensity",void 0),_defineProperty$e(this,"type","ambient");const{color:_e=DEFAULT_LIGHT_COLOR$2}=$,{intensity:et=DEFAULT_LIGHT_INTENSITY$2}=$;this.id=$.id||"ambient-".concat(idCount$2++),this.color=_e,this.intensity=et}}const DEFAULT_LIGHT_COLOR$1=[255,255,255],DEFAULT_LIGHT_INTENSITY$1=1,DEFAULT_LIGHT_DIRECTION=[0,0,-1];let idCount$1=0;class DirectionalLight{constructor($={}){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"color",void 0),_defineProperty$e(this,"intensity",void 0),_defineProperty$e(this,"type","directional"),_defineProperty$e(this,"direction",void 0),_defineProperty$e(this,"shadow",void 0);const{color:_e=DEFAULT_LIGHT_COLOR$1}=$,{intensity:et=DEFAULT_LIGHT_INTENSITY$1}=$,{direction:tt=DEFAULT_LIGHT_DIRECTION}=$,{_shadow:rt=!1}=$;this.id=$.id||"directional-".concat(idCount$1++),this.color=_e,this.intensity=et,this.type="directional",this.direction=new Vector3(tt).normalize().toArray(),this.shadow=rt}getProjectedLight($){return this}}class Pass{constructor($,_e={id:"pass"}){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"props",void 0);const{id:et}=_e;this.id=et,this.gl=$,this.props={..._e}}setProps($){Object.assign(this.props,$)}render($){}cleanup(){}}class LayersPass extends Pass{constructor(...$){super(...$),_defineProperty$e(this,"_lastRenderIndex",-1)}render($){const _e=this.gl;return setParameters(_e,{framebuffer:$.target}),this._drawLayers($)}_drawLayers($){const{target:_e,moduleParameters:et,viewports:tt,views:rt,onViewportActive:nt,clearStack:it=!0,clearCanvas:ot=!0}=$;$.pass=$.pass||"unknown";const At=this.gl;ot&&clearGLCanvas(At),it&&(this._lastRenderIndex=-1);const ut=[];for(const ft of tt){const dt=rt&&rt[ft.id];nt(ft);const Et=this._getDrawLayerParams(ft,$),Bt=ft.subViewports||[ft];for(const St of Bt){const Dt=this._drawLayersInViewport(At,{target:_e,moduleParameters:et,viewport:St,view:dt,pass:$.pass,layers:$.layers},Et);ut.push(Dt)}}return ut}_getDrawLayerParams($,{layers:_e,pass:et,layerFilter:tt,cullRect:rt,effects:nt,moduleParameters:it}){const ot=[],At=layerIndexResolver(this._lastRenderIndex+1),ut={layer:_e[0],viewport:$,isPicking:et.startsWith("picking"),renderPass:et,cullRect:rt},ft={};for(let dt=0;dt<_e.length;dt++){const Et=_e[dt],Bt=this._shouldDrawLayer(Et,ut,tt,ft),St={shouldDrawLayer:Bt};Bt&&(St.layerRenderIndex=At(Et,Bt),St.moduleParameters=this._getModuleParameters(Et,nt,et,it),St.layerParameters=this.getLayerParameters(Et,dt,$)),ot[dt]=St}return ot}_drawLayersInViewport($,{layers:_e,moduleParameters:et,pass:tt,target:rt,viewport:nt,view:it},ot){const At=getGLViewport($,{moduleParameters:et,target:rt,viewport:nt});if(it&&it.props.clear){const ft=it.props.clear===!0?{color:!0,depth:!0}:it.props.clear;withParameters($,{scissorTest:!0,scissor:At},()=>clear($,ft))}const ut={totalCount:_e.length,visibleCount:0,compositeCount:0,pickableCount:0};setParameters($,{viewport:At});for(let ft=0;ft<_e.length;ft++){const dt=_e[ft],{shouldDrawLayer:Et,layerRenderIndex:Bt,moduleParameters:St,layerParameters:Dt}=ot[ft];if(Et&&dt.props.pickable&&ut.pickableCount++,dt.isComposite)ut.compositeCount++;else if(Et){ut.visibleCount++,this._lastRenderIndex=Math.max(this._lastRenderIndex,Bt),St.viewport=nt;try{dt._drawLayer({moduleParameters:St,uniforms:{layerIndex:Bt},parameters:Dt})}catch($t){dt.raiseError($t,"drawing ".concat(dt," to ").concat(tt))}}}return ut}shouldDrawLayer($){return!0}getModuleParameters($,_e){return null}getLayerParameters($,_e,et){return $.props.parameters}_shouldDrawLayer($,_e,et,tt){if(!($.props.visible&&this.shouldDrawLayer($)))return!1;_e.layer=$;let nt=$.parent;for(;nt;){if(!nt.props.visible||!nt.filterSubLayer(_e))return!1;_e.layer=nt,nt=nt.parent}if(et){const it=_e.layer.id;if(it in tt||(tt[it]=et(_e)),!tt[it])return!1}return $.activateViewport(_e.viewport),!0}_getModuleParameters($,_e,et,tt){var rt;const nt=Object.assign(Object.create(((rt=$.internalState)===null||rt===void 0?void 0:rt.propsInTransition)||$.props),{autoWrapLongitude:$.wrapLongitude,viewport:$.context.viewport,mousePosition:$.context.mousePosition,pickingActive:0,devicePixelRatio:cssToDeviceRatio(this.gl)});if(_e)for(const ot of _e){var it;Object.assign(nt,(it=ot.getModuleParameters)===null||it===void 0?void 0:it.call(ot,$))}return Object.assign(nt,this.getModuleParameters($,_e),tt)}}function layerIndexResolver(j=0,$={}){const _e={},et=(tt,rt)=>{const nt=tt.props._offset,it=tt.id,ot=tt.parent&&tt.parent.id;let At;if(ot&&!(ot in $)&&et(tt.parent,!1),ot in _e){const ut=_e[ot]=_e[ot]||layerIndexResolver($[ot],$);At=ut(tt,rt),_e[it]=ut}else Number.isFinite(nt)?(At=nt+($[ot]||0),_e[it]=null):At=j;return rt&&At>=j&&(j=At+1),$[it]=At,At};return et}function getGLViewport(j,{moduleParameters:$,target:_e,viewport:et}){const tt=_e&&_e.id!=="default-framebuffer",rt=$&&$.devicePixelRatio||cssToDeviceRatio(j),nt=tt?_e.height:j.drawingBufferHeight,it=et;return[it.x*rt,nt-(it.y+it.height)*rt,it.width*rt,it.height*rt]}function clearGLCanvas(j){const $=j.drawingBufferWidth,_e=j.drawingBufferHeight;setParameters(j,{viewport:[0,0,$,_e]}),j.clear(16640)}class ShadowPass extends LayersPass{constructor($,_e){super($,_e),_defineProperty$e(this,"shadowMap",void 0),_defineProperty$e(this,"depthBuffer",void 0),_defineProperty$e(this,"fbo",void 0),this.shadowMap=new Texture2D($,{width:1,height:1,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.depthBuffer=new Renderbuffer($,{format:33189,width:1,height:1}),this.fbo=new Framebuffer($,{id:"shadowmap",width:1,height:1,attachments:{36064:this.shadowMap,36096:this.depthBuffer}})}render($){const _e=this.fbo;withParameters(this.gl,{depthRange:[0,1],depthTest:!0,blend:!1,clearColor:[1,1,1,1]},()=>{const et=$.viewports[0],tt=cssToDeviceRatio(this.gl),rt=et.width*tt,nt=et.height*tt;(rt!==_e.width||nt!==_e.height)&&_e.resize({width:rt,height:nt}),super.render({...$,target:_e,pass:"shadow"})})}shouldDrawLayer($){return $.props.shadowEnabled!==!1}getModuleParameters(){return{drawToShadowMap:!0}}delete(){this.fbo&&(this.fbo.delete(),this.fbo=null),this.shadowMap&&(this.shadowMap.delete(),this.shadowMap=null),this.depthBuffer&&(this.depthBuffer.delete(),this.depthBuffer=null)}}const DEFAULT_AMBIENT_LIGHT_PROPS={color:[255,255,255],intensity:1},DEFAULT_DIRECTIONAL_LIGHT_PROPS=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],DEFAULT_SHADOW_COLOR=[0,0,0,200/255];class LightingEffect{constructor($={}){_defineProperty$e(this,"id","lighting-effect"),_defineProperty$e(this,"props",null),_defineProperty$e(this,"shadowColor",DEFAULT_SHADOW_COLOR),_defineProperty$e(this,"shadow",void 0),_defineProperty$e(this,"ambientLight",null),_defineProperty$e(this,"directionalLights",[]),_defineProperty$e(this,"pointLights",[]),_defineProperty$e(this,"shadowPasses",[]),_defineProperty$e(this,"shadowMaps",[]),_defineProperty$e(this,"dummyShadowMap",null),_defineProperty$e(this,"programManager",void 0),_defineProperty$e(this,"shadowMatrices",void 0);for(const _e in $){const et=$[_e];switch(et.type){case"ambient":this.ambientLight=et;break;case"directional":this.directionalLights.push(et);break;case"point":this.pointLights.push(et);break}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(_e=>_e.shadow)}preRender($,{layers:_e,layerFilter:et,viewports:tt,onViewportActive:rt,views:nt}){if(this.shadow){this.shadowMatrices=this._calculateMatrices(),this.shadowPasses.length===0&&this._createShadowPasses($),this.programManager||(this.programManager=ProgramManager.getDefaultProgramManager($),shadow&&this.programManager.addDefaultModule(shadow)),this.dummyShadowMap||(this.dummyShadowMap=new Texture2D($,{width:1,height:1}));for(let it=0;itet.getProjectedLight({layer:$})),pointLights:this.pointLights.map(et=>et.getProjectedLight({layer:$}))},_e}cleanup(){for(const $ of this.shadowPasses)$.delete();this.shadowPasses.length=0,this.shadowMaps.length=0,this.dummyShadowMap&&(this.dummyShadowMap.delete(),this.dummyShadowMap=null),this.shadow&&this.programManager&&(this.programManager.removeDefaultModule(shadow),this.programManager=null)}_calculateMatrices(){const $=[];for(const _e of this.directionalLights){const et=new Matrix4().lookAt({eye:new Vector3(_e.direction).negate()});$.push(et)}return $}_createShadowPasses($){for(let _e=0;_ett&&(rt=tt);const nt=this._pool,it=$.BYTES_PER_ELEMENT*rt,ot=nt.findIndex(At=>At.byteLength>=it);if(ot>=0){const At=new $(nt.splice(ot,1)[0],0,rt);return et&&At.fill(0),At}return new $(rt)}_release($){if(!ArrayBuffer.isView($))return;const _e=this._pool,{buffer:et}=$,{byteLength:tt}=et,rt=_e.findIndex(nt=>nt.byteLength>=tt);rt<0?_e.push(et):(rt>0||_e.lengththis.opts.poolSize&&_e.shift()}}const defaultTypedArrayManager=new TypedArrayManager;function createMat4(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function mod(j,$){const _e=j%$;return _e<0?$+_e:_e}function getCameraPosition(j){return[j[12],j[13],j[14]]}function getFrustumPlanes(j){return{left:getFrustumPlane(j[3]+j[0],j[7]+j[4],j[11]+j[8],j[15]+j[12]),right:getFrustumPlane(j[3]-j[0],j[7]-j[4],j[11]-j[8],j[15]-j[12]),bottom:getFrustumPlane(j[3]+j[1],j[7]+j[5],j[11]+j[9],j[15]+j[13]),top:getFrustumPlane(j[3]-j[1],j[7]-j[5],j[11]-j[9],j[15]-j[13]),near:getFrustumPlane(j[3]+j[2],j[7]+j[6],j[11]+j[10],j[15]+j[14]),far:getFrustumPlane(j[3]-j[2],j[7]-j[6],j[11]-j[10],j[15]-j[14])}}const scratchVector$7=new Vector3;function getFrustumPlane(j,$,_e,et){scratchVector$7.set(j,$,_e);const tt=scratchVector$7.len();return{distance:et/tt,normal:new Vector3(-j/tt,-$/tt,-_e/tt)}}function fp64LowPart(j){return j-Math.fround(j)}let scratchArray;function toDoublePrecisionArray(j,$){const{size:_e=1,startIndex:et=0}=$,tt=$.endIndex!==void 0?$.endIndex:j.length,rt=(tt-et)/_e;scratchArray=defaultTypedArrayManager.allocate(scratchArray,rt,{type:Float32Array,size:_e*2});let nt=et,it=0;for(;nt0){const[tt,rt,nt]=getSunDirection(this.timestamp,0,0);this.direction=[tt,-nt,rt]}else{const{latitude:tt,longitude:rt}=_e;this.direction=getSunDirection(this.timestamp,tt,rt)}return this}}class ScreenPass extends Pass{constructor($,_e){super($,_e),_defineProperty$e(this,"model",void 0);const{module:et,fs:tt,id:rt}=_e;this.model=new ClipSpace($,{id:rt,fs:tt,modules:[et]})}render($){const _e=this.gl;setParameters(_e,{viewport:[0,0,_e.drawingBufferWidth,_e.drawingBufferHeight]}),withParameters(_e,{framebuffer:$.outputBuffer,clearColor:[0,0,0,0]},()=>this._renderPass(_e,$))}delete(){this.model.delete(),this.model=null}_renderPass($,_e){const{inputBuffer:et}=_e;clear($,{color:!0}),this.model.draw({moduleSettings:this.props.moduleSettings,uniforms:{texture:et,texSize:[et.width,et.height]},parameters:{depthWrite:!1,depthTest:!1}})}}class PostProcessEffect{constructor($,_e={}){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"props",void 0),_defineProperty$e(this,"module",void 0),_defineProperty$e(this,"passes",void 0),this.id="".concat($.name,"-pass"),this.props=_e,normalizeShaderModule($),this.module=$}preRender(){}postRender($,_e){const et=this.passes||createPasses($,this.module,this.id,this.props);this.passes=et;const{target:tt}=_e;let rt=_e.inputBuffer,nt=_e.swapBuffer;for(let it=0;it{const nt=getFragmentShaderForRenderPass($,tt),it="".concat(_e,"-").concat(rt);return new ScreenPass(j,{id:it,module:$,fs:nt,moduleSettings:et})})}const FILTER_FS_TEMPLATE=j=>`uniform sampler2D texture; +uniform vec2 texSize; + +varying vec2 position; +varying vec2 coordinate; +varying vec2 uv; + +void main() { + vec2 texCoord = coordinate; + + gl_FragColor = texture2D(texture, texCoord); + gl_FragColor = `.concat(j,`(gl_FragColor, texSize, texCoord); +} +`),SAMPLER_FS_TEMPLATE=j=>`uniform sampler2D texture; +uniform vec2 texSize; + +varying vec2 position; +varying vec2 coordinate; +varying vec2 uv; + +void main() { + vec2 texCoord = coordinate; + + gl_FragColor = `.concat(j,`(texture, texSize, texCoord); +} +`);function getFragmentShaderForRenderPass(j,$=j){if($.filter){const _e=typeof $.filter=="string"?$.filter:"".concat(j.name,"_filterColor");return FILTER_FS_TEMPLATE(_e)}if($.sampler){const _e=typeof $.sampler=="string"?$.sampler:"".concat(j.name,"_sampleColor");return SAMPLER_FS_TEMPLATE(_e)}return null}const LIFECYCLE={NO_STATE:"Awaiting state",MATCHED:"Matched. State transferred from previous layer",INITIALIZED:"Initialized",AWAITING_GC:"Discarded. Awaiting garbage collection",AWAITING_FINALIZATION:"No longer matched. Awaiting garbage collection",FINALIZED:"Finalized! Awaiting garbage collection"},COMPONENT_SYMBOL=Symbol.for("component"),ASYNC_DEFAULTS_SYMBOL=Symbol.for("asyncPropDefaults"),ASYNC_ORIGINAL_SYMBOL=Symbol.for("asyncPropOriginal"),ASYNC_RESOLVED_SYMBOL=Symbol.for("asyncPropResolved");function flatten(j,$=()=>!0){return Array.isArray(j)?flattenArray(j,$,[]):$(j)?[j]:[]}function flattenArray(j,$,_e){let et=-1;for(;++et0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData($,_e){if($===this._data&&!_e)return;this._data=$;const et=++this._loadCount;let tt=$;typeof $=="string"&&(tt=load($)),tt instanceof Promise?(this.isLoaded=!1,this._loader=tt.then(rt=>{this._loadCount===et&&(this.isLoaded=!0,this._error=void 0,this._content=rt)}).catch(rt=>{this._loadCount===et&&(this.isLoaded=!0,this._error=rt||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=$);for(const rt of this._subscribers)rt.onChange(this.getData())}}class ResourceManager{constructor({gl:$,protocol:_e}){_defineProperty$e(this,"protocol",void 0),_defineProperty$e(this,"_context",void 0),_defineProperty$e(this,"_resources",void 0),_defineProperty$e(this,"_consumers",void 0),_defineProperty$e(this,"_pruneRequest",void 0),this.protocol=_e||"resource://",this._context={gl:$,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains($){return $.startsWith(this.protocol)?!0:$ in this._resources}add({resourceId:$,data:_e,forceUpdate:et=!1,persistent:tt=!0}){let rt=this._resources[$];rt?rt.setData(_e,et):(rt=new Resource2($,_e,this._context),this._resources[$]=rt),rt.persistent=tt}remove($){const _e=this._resources[$];_e&&(_e.delete(),delete this._resources[$])}unsubscribe({consumerId:$}){const _e=this._consumers[$];if(_e){for(const et in _e){const tt=_e[et],rt=this._resources[tt.resourceId];rt&&rt.unsubscribe(tt)}delete this._consumers[$],this.prune()}}subscribe({resourceId:$,onChange:_e,consumerId:et,requestId:tt="default"}){const{_resources:rt,protocol:nt}=this;$.startsWith(nt)&&($=$.replace(nt,""),rt[$]||this.add({resourceId:$,data:null,persistent:!1}));const it=rt[$];if(this._track(et,tt,it,_e),it)return it.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(const $ in this._resources)this._resources[$].delete()}_track($,_e,et,tt){const rt=this._consumers,nt=rt[$]=rt[$]||{},it=nt[_e]||{},ot=it.resourceId&&this._resources[it.resourceId];ot&&(ot.unsubscribe(it),this.prune()),et&&(nt[_e]=it,it.onChange=tt,it.resourceId=et.id,et.subscribe(it))}_prune(){this._pruneRequest=null;for(const $ of Object.keys(this._resources)){const _e=this._resources[$];!_e.persistent&&!_e.inUse()&&(_e.delete(),delete this._resources[$])}}}const TRACE_SET_LAYERS="layerManager.setLayers",TRACE_ACTIVATE_VIEWPORT="layerManager.activateViewport";class LayerManager{constructor($,{deck:_e,stats:et,viewport:tt,timeline:rt}={}){_defineProperty$e(this,"layers",void 0),_defineProperty$e(this,"context",void 0),_defineProperty$e(this,"resourceManager",void 0),_defineProperty$e(this,"_lastRenderedLayers",[]),_defineProperty$e(this,"_needsRedraw",!1),_defineProperty$e(this,"_needsUpdate",!1),_defineProperty$e(this,"_nextLayers",null),_defineProperty$e(this,"_debug",!1),_defineProperty$e(this,"activateViewport",nt=>{debug(TRACE_ACTIVATE_VIEWPORT,this,nt),nt&&(this.context.viewport=nt)}),this.layers=[],this.resourceManager=new ResourceManager({gl:$,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,gl:$,deck:_e,programManager:$&&createProgramManager($),stats:et||new Stats({id:"deck.gl"}),viewport:tt||new Viewport({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:rt||new Timeline,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(const $ of this.layers)this._finalizeLayer($)}needsRedraw($={clearRedrawFlags:!1}){let _e=this._needsRedraw;$.clearRedrawFlags&&(this._needsRedraw=!1);for(const et of this.layers){const tt=et.getNeedsRedraw($);_e=_e||tt}return _e}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._needsUpdate}setNeedsRedraw($){this._needsRedraw=this._needsRedraw||$}setNeedsUpdate($){this._needsUpdate=this._needsUpdate||$}getLayers({layerIds:$}={}){return $?this.layers.filter(_e=>$.find(et=>_e.id.indexOf(et)===0)):this.layers}setProps($){"debug"in $&&(this._debug=$.debug),"userData"in $&&(this.context.userData=$.userData),"layers"in $&&(this._nextLayers=$.layers),"onError"in $&&(this.context.onError=$.onError)}setLayers($,_e){debug(TRACE_SET_LAYERS,this,_e,$),this._lastRenderedLayers=$;const et=flatten($,Boolean);for(const tt of et)tt.context=this.context;this._updateLayers(this.layers,et)}updateLayers(){const $=this.needsUpdate();$&&(this.setNeedsRedraw("updating layers: ".concat($)),this.setLayers(this._nextLayers||this._lastRenderedLayers,$)),this._nextLayers=null}_handleError($,_e,et){et.raiseError(_e,"".concat($," of ").concat(et))}_updateLayers($,_e){const et={};for(const nt of $)et[nt.id]?log$3.warn("Multiple old layers with same id ".concat(nt.id))():et[nt.id]=nt;const tt=[];this._updateSublayersRecursively(_e,et,tt),this._finalizeOldLayers(et);let rt=!1;for(const nt of tt)if(nt.hasUniformTransition()){rt="Uniform transition in ".concat(nt);break}this._needsUpdate=rt,this.layers=tt}_updateSublayersRecursively($,_e,et){for(const tt of $){tt.context=this.context;const rt=_e[tt.id];rt===null&&log$3.warn("Multiple new layers with same id ".concat(tt.id))(),_e[tt.id]=null;let nt=null;try{this._debug&&rt!==tt&&tt.validateProps(),rt?(this._transferLayerState(rt,tt),this._updateLayer(tt)):this._initializeLayer(tt),et.push(tt),nt=tt.isComposite?tt.getSubLayers():null}catch(it){this._handleError("matching",it,tt)}nt&&this._updateSublayersRecursively(nt,_e,et)}}_finalizeOldLayers($){for(const _e in $){const et=$[_e];et&&this._finalizeLayer(et)}}_initializeLayer($){try{$._initialize(),$.lifecycle=LIFECYCLE.INITIALIZED}catch(_e){this._handleError("initialization",_e,$)}}_transferLayerState($,_e){_e._transferState($),_e.lifecycle=LIFECYCLE.MATCHED,_e!==$&&($.lifecycle=LIFECYCLE.AWAITING_GC)}_updateLayer($){try{$._update()}catch(_e){this._handleError("update",_e,$)}}_finalizeLayer($){this._needsRedraw=this._needsRedraw||"finalized ".concat($),$.lifecycle=LIFECYCLE.AWAITING_FINALIZATION;try{$._finalize(),$.lifecycle=LIFECYCLE.FINALIZED}catch(_e){this._handleError("finalization",_e,$)}}}function deepEqual$2(j,$){if(j===$)return!0;if(!j||!$)return!1;for(const _e in j){const et=j[_e],tt=$[_e];if(!(et===tt||Array.isArray(et)&&Array.isArray(tt)&&deepEqual$2(et,tt)))return!1}return!0}class ViewManager{constructor($){_defineProperty$e(this,"width",void 0),_defineProperty$e(this,"height",void 0),_defineProperty$e(this,"views",void 0),_defineProperty$e(this,"viewState",void 0),_defineProperty$e(this,"controllers",void 0),_defineProperty$e(this,"timeline",void 0),_defineProperty$e(this,"_viewports",void 0),_defineProperty$e(this,"_viewportMap",void 0),_defineProperty$e(this,"_isUpdating",void 0),_defineProperty$e(this,"_needsRedraw",void 0),_defineProperty$e(this,"_needsUpdate",void 0),_defineProperty$e(this,"_eventManager",void 0),_defineProperty$e(this,"_eventCallbacks",void 0),this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=$.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=$.eventManager,this._eventCallbacks={onViewStateChange:$.onViewStateChange,onInteractionStateChange:$.onInteractionStateChange},Object.seal(this),this.setProps($)}finalize(){for(const $ in this.controllers){const _e=this.controllers[$];_e&&_e.finalize()}this.controllers={}}needsRedraw($={clearRedrawFlags:!1}){const _e=this._needsRedraw;return $.clearRedrawFlags&&(this._needsRedraw=!1),_e}setNeedsUpdate($){this._needsUpdate=this._needsUpdate||$,this._needsRedraw=this._needsRedraw||$}updateViewStates(){for(const $ in this.controllers){const _e=this.controllers[$];_e&&_e.updateTransition()}}getViewports($){return $?this._viewports.filter(_e=>_e.containsPixel($)):this._viewports}getViews(){const $={};return this.views.forEach(_e=>{$[_e.id]=_e}),$}getView($){return this.views.find(_e=>_e.id===$)}getViewState($){const _e=typeof $=="string"?this.getView($):$,et=_e&&this.viewState[_e.getViewStateId()]||this.viewState;return _e?_e.filterViewState(et):et}getViewport($){return this._viewportMap[$]}unproject($,_e){const et=this.getViewports(),tt={x:$[0],y:$[1]};for(let rt=et.length-1;rt>=0;--rt){const nt=et[rt];if(nt.containsPixel(tt)){const it=$.slice();return it[0]-=nt.x,it[1]-=nt.y,nt.unproject(it,_e)}}return null}setProps($){$.views&&this._setViews($.views),$.viewState&&this._setViewState($.viewState),("width"in $||"height"in $)&&this._setSize($.width,$.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize($,_e){($!==this.width||_e!==this.height)&&(this.width=$,this.height=_e,this.setNeedsUpdate("Size changed"))}_setViews($){$=flatten($,Boolean),this._diffViews($,this.views)&&this.setNeedsUpdate("views changed"),this.views=$}_setViewState($){$?(!deepEqual$2($,this.viewState)&&this.setNeedsUpdate("viewState changed"),this.viewState=$):log$3.warn("missing `viewState` or `initialViewState`")()}_onViewStateChange($,_e){this._eventCallbacks.onViewStateChange&&this._eventCallbacks.onViewStateChange({..._e,viewId:$})}_createController($,_e){const et=_e.type;return new et({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._onViewStateChange.bind(this,_e.id),onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:rt=>{var nt;return(nt=this.getView($.id))===null||nt===void 0?void 0:nt.makeViewport({viewState:rt,width:this.width,height:this.height})}})}_updateController($,_e,et,tt){const rt=$.controller;if(rt){const nt={..._e,...rt,id:$.id,x:et.x,y:et.y,width:et.width,height:et.height};return tt||(tt=this._createController($,nt)),tt&&tt.setProps(nt),tt}return null}_rebuildViewports(){const{views:$}=this,_e=this.controllers;this._viewports=[],this.controllers={};let et=!1;for(let tt=$.length;tt--;){const rt=$[tt],nt=this.getViewState(rt),it=rt.makeViewport({viewState:nt,width:this.width,height:this.height});let ot=_e[rt.id];const At=!!rt.controller;At&&!ot&&(et=!0),(et||!At)&&ot&&(ot.finalize(),ot=null),this.controllers[rt.id]=this._updateController(rt,nt,it,ot),this._viewports.unshift(it)}for(const tt in _e){const rt=_e[tt];rt&&!this.controllers[tt]&&rt.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach($=>{$.id&&(this._viewportMap[$.id]=this._viewportMap[$.id]||$)})}_diffViews($,_e){return $.length!==_e.length?!0:$.some((et,tt)=>!$[tt].equals(_e[tt]))}}const PERCENT_OR_PIXELS_REGEX=/([0-9]+\.?[0-9]*)(%|px)/;function parsePosition(j){switch(typeof j){case"number":return{position:j,relative:!1};case"string":const $=PERCENT_OR_PIXELS_REGEX.exec(j);if($&&$.length>=3){const _e=$[2]==="%",et=parseFloat($[1]);return{position:_e?et/100:et,relative:_e}}default:throw new Error("Could not parse position string ".concat(j))}}function getPosition$1(j,$){return j.relative?Math.round(j.position*$):j.position}function assert$4(j,$){if(!j)throw new Error($||"deck.gl: assertion failed.")}class View{constructor($){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"viewportInstance",void 0),_defineProperty$e(this,"_x",void 0),_defineProperty$e(this,"_y",void 0),_defineProperty$e(this,"_width",void 0),_defineProperty$e(this,"_height",void 0),_defineProperty$e(this,"_padding",void 0),_defineProperty$e(this,"props",void 0);const{id:_e,x:et=0,y:tt=0,width:rt="100%",height:nt="100%",padding:it=null,viewportInstance:ot}=$||{};assert$4(!ot||ot instanceof Viewport),this.viewportInstance=ot,this.id=_e||this.constructor.displayName||"view",this.props={...$,id:this.id},this._x=parsePosition(et),this._y=parsePosition(tt),this._width=parsePosition(rt),this._height=parsePosition(nt),this._padding=it&&{left:parsePosition(it.left||0),right:parsePosition(it.right||0),top:parsePosition(it.top||0),bottom:parsePosition(it.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals($){return this===$?!0:this.viewportInstance?$.viewportInstance?this.viewportInstance.equals($.viewportInstance):!1:this.ViewportType===$.ViewportType&&deepEqual$2(this.props,$.props)}makeViewport({width:$,height:_e,viewState:et}){if(this.viewportInstance)return this.viewportInstance;et=this.filterViewState(et);const tt=this.getDimensions({width:$,height:_e});return new this.ViewportType({...et,...this.props,...tt})}getViewStateId(){const{viewState:$}=this.props;return typeof $=="string"?$:($==null?void 0:$.id)||this.id}filterViewState($){if(this.props.viewState&&typeof this.props.viewState=="object"){if(!this.props.viewState.id)return this.props.viewState;const _e={...$};for(const et in this.props.viewState)et!=="id"&&(_e[et]=this.props.viewState[et]);return _e}return $}getDimensions({width:$,height:_e}){const et={x:getPosition$1(this._x,$),y:getPosition$1(this._y,_e),width:getPosition$1(this._width,$),height:getPosition$1(this._height,_e)};return this._padding&&(et.padding={left:getPosition$1(this._padding.left,$),top:getPosition$1(this._padding.top,_e),right:getPosition$1(this._padding.right,$),bottom:getPosition$1(this._padding.bottom,_e)}),et}get controller(){const $=this.props.controller;return $?$===!0?{type:this.ControllerType}:typeof $=="function"?{type:$}:{type:this.ControllerType,...$}:null}}let Transition$3=class{constructor($){_defineProperty$e(this,"_inProgress",void 0),_defineProperty$e(this,"_handle",void 0),_defineProperty$e(this,"_timeline",void 0),_defineProperty$e(this,"time",void 0),_defineProperty$e(this,"settings",void 0),this._inProgress=!1,this._handle=null,this._timeline=$,this.time=0,this.settings={duration:0}}get inProgress(){return this._inProgress}start($){var _e,et;this.cancel(),this.settings=$,this._inProgress=!0,(_e=(et=this.settings).onStart)===null||_e===void 0||_e.call(et,this)}end(){if(this._inProgress){var $,_e;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,($=(_e=this.settings).onEnd)===null||$===void 0||$.call(_e,this)}}cancel(){if(this._inProgress){var $,_e;($=(_e=this.settings).onInterrupt)===null||$===void 0||$.call(_e,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var $,_e;if(!this._inProgress)return!1;if(this._handle===null){const{_timeline:et,settings:tt}=this;this._handle=et.addChannel({delay:et.getTime(),duration:tt.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),($=(_e=this.settings).onUpdate)===null||$===void 0||$.call(_e,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};const noop$3=()=>{},TRANSITION_EVENTS={BREAK:1,SNAP_TO_END:2,IGNORE:3},DEFAULT_EASING=j=>j,DEFAULT_INTERRUPTION=TRANSITION_EVENTS.BREAK;class TransitionManager{constructor($){_defineProperty$e(this,"getControllerState",void 0),_defineProperty$e(this,"props",void 0),_defineProperty$e(this,"propsInTransition",void 0),_defineProperty$e(this,"transition",void 0),_defineProperty$e(this,"onViewStateChange",void 0),_defineProperty$e(this,"onStateChange",void 0),_defineProperty$e(this,"_onTransitionUpdate",_e=>{const{time:et,settings:{interpolator:tt,startProps:rt,endProps:nt,duration:it,easing:ot}}=_e,At=ot(et/it),ut=tt.interpolateProps(rt,nt,At);this.propsInTransition=this.getControllerState({...this.props,...ut}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})}),this.getControllerState=$.getControllerState,this.propsInTransition=null,this.transition=new Transition$3($.timeline),this.onViewStateChange=$.onViewStateChange||noop$3,this.onStateChange=$.onStateChange||noop$3}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange($){let _e=!1;const et=this.props;if(this.props=$,!et||this._shouldIgnoreViewportChange(et,$))return!1;if(this._isTransitionEnabled($)){let tt=et;if(this.transition.inProgress){const{interruption:rt,endProps:nt}=this.transition.settings;tt={...et,...rt===TRANSITION_EVENTS.SNAP_TO_END?nt:this.propsInTransition||et}}this._triggerTransition(tt,$),_e=!0}else this.transition.cancel();return _e}updateTransition(){this.transition.update()}_isTransitionEnabled($){const{transitionDuration:_e,transitionInterpolator:et}=$;return(_e>0||_e==="auto")&&!!et}_isUpdateDueToCurrentTransition($){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual($,this.propsInTransition):!1}_shouldIgnoreViewportChange($,_e){return this.transition.inProgress?this.transition.settings.interruption===TRANSITION_EVENTS.IGNORE||this._isUpdateDueToCurrentTransition(_e):this._isTransitionEnabled(_e)?_e.transitionInterpolator.arePropsEqual($,_e):!0}_triggerTransition($,_e){const et=this.getControllerState($),tt=this.getControllerState(_e).shortestPathFrom(et),rt=_e.transitionInterpolator,nt=rt.getDuration?rt.getDuration($,_e):_e.transitionDuration;if(nt===0)return;const it=rt.initializeProps($,tt);this.propsInTransition={};const ot={duration:nt,easing:_e.transitionEasing||DEFAULT_EASING,interpolator:rt,interruption:_e.transitionInterruption||DEFAULT_INTERRUPTION,startProps:it.start,endProps:it.end,onStart:_e.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(_e.onTransitionInterrupt),onEnd:this._onTransitionEnd(_e.onTransitionEnd)};this.transition.start(ot),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd($){return _e=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),$==null||$(_e)}}}class TransitionInterpolator{constructor($){_defineProperty$e(this,"_propsToCompare",void 0),_defineProperty$e(this,"_propsToExtract",void 0),_defineProperty$e(this,"_requiredProps",void 0);const{compare:_e,extract:et,required:tt}=$;this._propsToCompare=_e,this._propsToExtract=et||_e,this._requiredProps=tt}arePropsEqual($,_e){for(const et of this._propsToCompare)if(!(et in $)||!(et in _e)||!equals$3($[et],_e[et]))return!1;return!0}initializeProps($,_e){const et={},tt={};for(const rt of this._propsToExtract)(rt in $||rt in _e)&&(et[rt]=$[rt],tt[rt]=_e[rt]);return this._checkRequiredProps(et),this._checkRequiredProps(tt),{start:et,end:tt}}getDuration($,_e){return _e.transitionDuration}_checkRequiredProps($){this._requiredProps&&this._requiredProps.forEach(_e=>{const et=$[_e];assert$4(Number.isFinite(et)||Array.isArray(et),"".concat(_e," is required for transition"))})}}const DEFAULT_PROPS$2=["longitude","latitude","zoom","bearing","pitch"],DEFAULT_REQUIRED_PROPS=["longitude","latitude","zoom"];class LinearInterpolator extends TransitionInterpolator{constructor($={}){const _e=Array.isArray($)?$:$.transitionProps,et=Array.isArray($)?{}:$;et.transitionProps=Array.isArray(_e)?{compare:_e,required:_e}:_e||{compare:DEFAULT_PROPS$2,required:DEFAULT_REQUIRED_PROPS},super(et.transitionProps),_defineProperty$e(this,"opts",void 0),this.opts=et}initializeProps($,_e){const et=super.initializeProps($,_e),{makeViewport:tt,around:rt}=this.opts;if(tt&&rt){const nt=tt($),it=tt(_e),ot=nt.unproject(rt);et.start.around=rt,Object.assign(et.end,{around:it.project(ot),aroundPosition:ot,width:_e.width,height:_e.height})}return et}interpolateProps($,_e,et){const tt={};for(const rt of this._propsToExtract)tt[rt]=lerp$5($[rt]||0,_e[rt]||0,et);if(_e.aroundPosition&&this.opts.makeViewport){const rt=this.opts.makeViewport({..._e,...tt});Object.assign(tt,rt.panByPosition(_e.aroundPosition,lerp$5($.around,_e.around,et)))}return tt}}const NO_TRANSITION_PROPS={transitionDuration:0},DEFAULT_INERTIA=300,INERTIA_EASING=j=>1-(1-j)*(1-j),EVENT_TYPES={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],TRIPLE_PAN:["tripanstart","tripanmove","tripanend"],DOUBLE_TAP:["doubletap"],KEYBOARD:["keydown"]},pinchEventWorkaround={};class Controller{constructor($){_defineProperty$e(this,"props",void 0),_defineProperty$e(this,"state",{}),_defineProperty$e(this,"transitionManager",void 0),_defineProperty$e(this,"eventManager",void 0),_defineProperty$e(this,"onViewStateChange",void 0),_defineProperty$e(this,"onStateChange",void 0),_defineProperty$e(this,"makeViewport",void 0),_defineProperty$e(this,"_controllerState",void 0),_defineProperty$e(this,"_events",{}),_defineProperty$e(this,"_interactionState",{isDragging:!1}),_defineProperty$e(this,"_customEvents",[]),_defineProperty$e(this,"_eventStartBlocked",null),_defineProperty$e(this,"_panMove",!1),_defineProperty$e(this,"invertPan",!1),_defineProperty$e(this,"dragMode","rotate"),_defineProperty$e(this,"inertia",0),_defineProperty$e(this,"scrollZoom",!0),_defineProperty$e(this,"dragPan",!0),_defineProperty$e(this,"dragRotate",!0),_defineProperty$e(this,"doubleClickZoom",!0),_defineProperty$e(this,"touchZoom",!0),_defineProperty$e(this,"touchRotate",!1),_defineProperty$e(this,"keyboard",!0),this.transitionManager=new TransitionManager({...$,getControllerState:_e=>new this.ControllerState(_e),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=$.eventManager,this.onViewStateChange=$.onViewStateChange||(()=>{}),this.onStateChange=$.onStateChange||(()=>{}),this.makeViewport=$.makeViewport}set events($){this.toggleEvents(this._customEvents,!1),this.toggleEvents($,!0),this._customEvents=$,this.props&&this.setProps(this.props)}finalize(){for(const _e in this._events)if(this._events[_e]){var $;($=this.eventManager)===null||$===void 0||$.off(_e,this.handleEvent)}this.transitionManager.finalize()}handleEvent($){this._controllerState=void 0;const _e=this._eventStartBlocked;switch($.type){case"panstart":return _e?!1:this._onPanStart($);case"panmove":return this._onPan($);case"panend":return this._onPanEnd($);case"pinchstart":return _e?!1:this._onPinchStart($);case"pinchmove":return this._onPinch($);case"pinchend":return this._onPinchEnd($);case"tripanstart":return _e?!1:this._onTriplePanStart($);case"tripanmove":return this._onTriplePan($);case"tripanend":return this._onTriplePanEnd($);case"doubletap":return this._onDoubleTap($);case"wheel":return this._onWheel($);case"keydown":return this._onKeyDown($);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter($){const{x:_e,y:et}=this.props,{offsetCenter:tt}=$;return[tt.x-_e,tt.y-et]}isPointInBounds($,_e){const{width:et,height:tt}=this.props;if(_e&&_e.handled)return!1;const rt=$[0]>=0&&$[0]<=et&&$[1]>=0&&$[1]<=tt;return rt&&_e&&_e.stopPropagation(),rt}isFunctionKeyPressed($){const{srcEvent:_e}=$;return!!(_e.metaKey||_e.altKey||_e.ctrlKey||_e.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents($){const _e=setTimeout(()=>{this._eventStartBlocked===_e&&(this._eventStartBlocked=null)},$);this._eventStartBlocked=_e}setProps($){$.dragMode&&(this.dragMode=$.dragMode),this.props=$,"transitionInterpolator"in $||($.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange($);const{inertia:_e}=$;this.inertia=Number.isFinite(_e)?_e:_e===!0?DEFAULT_INERTIA:0;const{scrollZoom:et=!0,dragPan:tt=!0,dragRotate:rt=!0,doubleClickZoom:nt=!0,touchZoom:it=!0,touchRotate:ot=!1,keyboard:At=!0}=$,ut=!!this.onViewStateChange;this.toggleEvents(EVENT_TYPES.WHEEL,ut&&et),this.toggleEvents(EVENT_TYPES.PAN,ut&&(tt||rt)),this.toggleEvents(EVENT_TYPES.PINCH,ut&&(it||ot)),this.toggleEvents(EVENT_TYPES.TRIPLE_PAN,ut&&ot),this.toggleEvents(EVENT_TYPES.DOUBLE_TAP,ut&&nt),this.toggleEvents(EVENT_TYPES.KEYBOARD,ut&&At),this.scrollZoom=et,this.dragPan=tt,this.dragRotate=rt,this.doubleClickZoom=nt,this.touchZoom=it,this.touchRotate=ot,this.keyboard=At}updateTransition(){this.transitionManager.updateTransition()}toggleEvents($,_e){this.eventManager&&$.forEach(et=>{this._events[et]!==_e&&(this._events[et]=_e,_e?this.eventManager.on(et,this.handleEvent):this.eventManager.off(et,this.handleEvent))})}updateViewport($,_e=null,et={}){const tt={...$.getViewportProps(),..._e},rt=this.controllerState!==$;if(this.state=$.getState(),this._setInteractionState(et),rt){const nt=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:tt,interactionState:this._interactionState,oldViewState:nt})}}_onTransition($){this.onViewStateChange({...$,interactionState:this._interactionState})}_setInteractionState($){Object.assign(this._interactionState,$),this.onStateChange(this._interactionState)}_onPanStart($){const _e=this.getCenter($);if(!this.isPointInBounds(_e,$))return!1;let et=this.isFunctionKeyPressed($)||$.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(et=!et);const tt=this.controllerState[et?"panStart":"rotateStart"]({pos:_e});return this._panMove=et,this.updateViewport(tt,NO_TRANSITION_PROPS,{isDragging:!0}),!0}_onPan($){return this.isDragging()?this._panMove?this._onPanMove($):this._onPanRotate($):!1}_onPanEnd($){return this.isDragging()?this._panMove?this._onPanMoveEnd($):this._onPanRotateEnd($):!1}_onPanMove($){if(!this.dragPan)return!1;const _e=this.getCenter($),et=this.controllerState.pan({pos:_e});return this.updateViewport(et,NO_TRANSITION_PROPS,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd($){const{inertia:_e}=this;if(this.dragPan&&_e&&$.velocity){const et=this.getCenter($),tt=[et[0]+$.velocityX*_e/2,et[1]+$.velocityY*_e/2],rt=this.controllerState.pan({pos:tt}).panEnd();this.updateViewport(rt,{...this._getTransitionProps(),transitionDuration:_e,transitionEasing:INERTIA_EASING},{isDragging:!1,isPanning:!0})}else{const et=this.controllerState.panEnd();this.updateViewport(et,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate($){if(!this.dragRotate)return!1;const _e=this.getCenter($),et=this.controllerState.rotate({pos:_e});return this.updateViewport(et,NO_TRANSITION_PROPS,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd($){const{inertia:_e}=this;if(this.dragRotate&&_e&&$.velocity){const et=this.getCenter($),tt=[et[0]+$.velocityX*_e/2,et[1]+$.velocityY*_e/2],rt=this.controllerState.rotate({pos:tt}).rotateEnd();this.updateViewport(rt,{...this._getTransitionProps(),transitionDuration:_e,transitionEasing:INERTIA_EASING},{isDragging:!1,isRotating:!0})}else{const et=this.controllerState.rotateEnd();this.updateViewport(et,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel($){if(!this.scrollZoom)return!1;$.srcEvent.preventDefault();const _e=this.getCenter($);if(!this.isPointInBounds(_e,$))return!1;const{speed:et=.01,smooth:tt=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:rt}=$;let nt=2/(1+Math.exp(-Math.abs(rt*et)));rt<0&&nt!==0&&(nt=1/nt);const it=this.controllerState.zoom({pos:_e,scale:nt});return this.updateViewport(it,{...this._getTransitionProps({around:_e}),transitionDuration:tt?250:1},{isZooming:!0,isPanning:!0}),!0}_onTriplePanStart($){const _e=this.getCenter($);if(!this.isPointInBounds(_e,$))return!1;const et=this.controllerState.rotateStart({pos:_e});return this.updateViewport(et,NO_TRANSITION_PROPS,{isDragging:!0}),!0}_onTriplePan($){if(!this.touchRotate||!this.isDragging())return!1;const _e=this.getCenter($);_e[0]-=$.deltaX;const et=this.controllerState.rotate({pos:_e});return this.updateViewport(et,NO_TRANSITION_PROPS,{isDragging:!0,isRotating:!0}),!0}_onTriplePanEnd($){if(!this.isDragging())return!1;const{inertia:_e}=this;if(this.touchRotate&&_e&&$.velocityY){const et=this.getCenter($),tt=[et[0],et[1]+=$.velocityY*_e/2],rt=this.controllerState.rotate({pos:tt});this.updateViewport(rt,{...this._getTransitionProps(),transitionDuration:_e,transitionEasing:INERTIA_EASING},{isDragging:!1,isRotating:!0}),this.blockEvents(_e)}else{const et=this.controllerState.rotateEnd();this.updateViewport(et,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart($){const _e=this.getCenter($);if(!this.isPointInBounds(_e,$))return!1;const et=this.controllerState.zoomStart({pos:_e}).rotateStart({pos:_e});return pinchEventWorkaround._startPinchRotation=$.rotation,pinchEventWorkaround._lastPinchEvent=$,this.updateViewport(et,NO_TRANSITION_PROPS,{isDragging:!0}),!0}_onPinch($){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let _e=this.controllerState;if(this.touchZoom){const{scale:et}=$,tt=this.getCenter($);_e=_e.zoom({pos:tt,scale:et})}if(this.touchRotate){const{rotation:et}=$;_e=_e.rotate({deltaAngleX:pinchEventWorkaround._startPinchRotation-et})}return this.updateViewport(_e,NO_TRANSITION_PROPS,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),pinchEventWorkaround._lastPinchEvent=$,!0}_onPinchEnd($){if(!this.isDragging())return!1;const{inertia:_e}=this,{_lastPinchEvent:et}=pinchEventWorkaround;if(this.touchZoom&&_e&&et&&$.scale!==et.scale){const tt=this.getCenter($);let rt=this.controllerState.rotateEnd();const nt=Math.log2($.scale),it=(nt-Math.log2(et.scale))/($.deltaTime-et.deltaTime),ot=Math.pow(2,nt+it*_e/2);rt=rt.zoom({pos:tt,scale:ot}).zoomEnd(),this.updateViewport(rt,{...this._getTransitionProps({around:tt}),transitionDuration:_e,transitionEasing:INERTIA_EASING},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(_e)}else{const tt=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(tt,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return pinchEventWorkaround._startPinchRotation=null,pinchEventWorkaround._lastPinchEvent=null,!0}_onDoubleTap($){if(!this.doubleClickZoom)return!1;const _e=this.getCenter($);if(!this.isPointInBounds(_e,$))return!1;const et=this.isFunctionKeyPressed($),tt=this.controllerState.zoom({pos:_e,scale:et?.5:2});return this.updateViewport(tt,this._getTransitionProps({around:_e}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown($){if(!this.keyboard)return!1;const _e=this.isFunctionKeyPressed($),{zoomSpeed:et,moveSpeed:tt,rotateSpeedX:rt,rotateSpeedY:nt}=this.keyboard===!0?{}:this.keyboard,{controllerState:it}=this;let ot;const At={};switch($.srcEvent.code){case"Minus":ot=_e?it.zoomOut(et).zoomOut(et):it.zoomOut(et),At.isZooming=!0;break;case"Equal":ot=_e?it.zoomIn(et).zoomIn(et):it.zoomIn(et),At.isZooming=!0;break;case"ArrowLeft":_e?(ot=it.rotateLeft(rt),At.isRotating=!0):(ot=it.moveLeft(tt),At.isPanning=!0);break;case"ArrowRight":_e?(ot=it.rotateRight(rt),At.isRotating=!0):(ot=it.moveRight(tt),At.isPanning=!0);break;case"ArrowUp":_e?(ot=it.rotateUp(nt),At.isRotating=!0):(ot=it.moveUp(tt),At.isPanning=!0);break;case"ArrowDown":_e?(ot=it.rotateDown(nt),At.isRotating=!0):(ot=it.moveDown(tt),At.isPanning=!0);break;default:return!1}return this.updateViewport(ot,this._getTransitionProps(),At),!0}_getTransitionProps($){const{transition:_e}=this;return!_e||!_e.transitionInterpolator?NO_TRANSITION_PROPS:$?{..._e,transitionInterpolator:new LinearInterpolator({...$,..._e.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:_e}}class ViewState{constructor($,_e){_defineProperty$e(this,"_viewportProps",void 0),_defineProperty$e(this,"_state",void 0),this._viewportProps=this.applyConstraints($),this._state=_e}getViewportProps(){return this._viewportProps}getState(){return this._state}}const PITCH_MOUSE_THRESHOLD=5,PITCH_ACCEL=1.2;class MapState extends ViewState{constructor($){const{width:_e,height:et,latitude:tt,longitude:rt,zoom:nt,bearing:it=0,pitch:ot=0,altitude:At=1.5,position:ut=[0,0,0],maxZoom:ft=20,minZoom:dt=0,maxPitch:Et=60,minPitch:Bt=0,startPanLngLat:St,startZoomLngLat:Dt,startRotatePos:$t,startBearing:Rt,startPitch:wt,startZoom:xt,normalize:Nt=!0}=$;assert$4(Number.isFinite(rt)),assert$4(Number.isFinite(tt)),assert$4(Number.isFinite(nt)),super({width:_e,height:et,latitude:tt,longitude:rt,zoom:nt,bearing:it,pitch:ot,altitude:At,maxZoom:ft,minZoom:dt,maxPitch:Et,minPitch:Bt,normalize:Nt,position:ut},{startPanLngLat:St,startZoomLngLat:Dt,startRotatePos:$t,startBearing:Rt,startPitch:wt,startZoom:xt}),_defineProperty$e(this,"makeViewport",void 0),this.makeViewport=$.makeViewport}panStart({pos:$}){return this._getUpdatedState({startPanLngLat:this._unproject($)})}pan({pos:$,startPos:_e}){const et=this.getState().startPanLngLat||this._unproject(_e);if(!et)return this;const rt=this.makeViewport(this.getViewportProps()).panByPosition(et,$);return this._getUpdatedState(rt)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:$}){return this._getUpdatedState({startRotatePos:$,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:$,deltaAngleX:_e=0,deltaAngleY:et=0}){const{startRotatePos:tt,startBearing:rt,startPitch:nt}=this.getState();if(!tt||rt===void 0||nt===void 0)return this;let it;return $?it=this._getNewRotation($,tt,nt,rt):it={bearing:rt+_e,pitch:nt+et},this._getUpdatedState(it)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:$}){return this._getUpdatedState({startZoomLngLat:this._unproject($),startZoom:this.getViewportProps().zoom})}zoom({pos:$,startPos:_e,scale:et}){let{startZoom:tt,startZoomLngLat:rt}=this.getState();if(rt||(tt=this.getViewportProps().zoom,rt=this._unproject(_e)||this._unproject($)),!rt)return this;const{maxZoom:nt,minZoom:it}=this.getViewportProps();let ot=tt+Math.log2(et);ot=clamp$2(ot,it,nt);const At=this.makeViewport({...this.getViewportProps(),zoom:ot});return this._getUpdatedState({zoom:ot,...At.panByPosition(rt,$)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn($=2){return this._zoomFromCenter($)}zoomOut($=2){return this._zoomFromCenter(1/$)}moveLeft($=100){return this._panFromCenter([$,0])}moveRight($=100){return this._panFromCenter([-$,0])}moveUp($=100){return this._panFromCenter([0,$])}moveDown($=100){return this._panFromCenter([0,-$])}rotateLeft($=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-$})}rotateRight($=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+$})}rotateUp($=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+$})}rotateDown($=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-$})}shortestPathFrom($){const _e=$.getViewportProps(),et={...this.getViewportProps()},{bearing:tt,longitude:rt}=et;return Math.abs(tt-_e.bearing)>180&&(et.bearing=tt<0?tt+360:tt-360),Math.abs(rt-_e.longitude)>180&&(et.longitude=rt<0?rt+360:rt-360),et}applyConstraints($){const{maxZoom:_e,minZoom:et,zoom:tt}=$;$.zoom=clamp$2(tt,et,_e);const{maxPitch:rt,minPitch:nt,pitch:it}=$;$.pitch=clamp$2(it,nt,rt);const{normalize:ot=!0}=$;return ot&&Object.assign($,normalizeViewportProps($)),$}_zoomFromCenter($){const{width:_e,height:et}=this.getViewportProps();return this.zoom({pos:[_e/2,et/2],scale:$})}_panFromCenter($){const{width:_e,height:et}=this.getViewportProps();return this.pan({startPos:[_e/2,et/2],pos:[_e/2+$[0],et/2+$[1]]})}_getUpdatedState($){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...$})}_unproject($){const _e=this.makeViewport(this.getViewportProps());return $&&_e.unproject($)}_getNewRotation($,_e,et,tt){const rt=$[0]-_e[0],nt=$[1]-_e[1],it=$[1],ot=_e[1],{width:At,height:ut}=this.getViewportProps(),ft=rt/At;let dt=0;nt>0?Math.abs(ut-ot)>PITCH_MOUSE_THRESHOLD&&(dt=nt/(ot-ut)*PITCH_ACCEL):nt<0&&ot>PITCH_MOUSE_THRESHOLD&&(dt=1-it/ot),dt=clamp$2(dt,-1,1);const{minPitch:Et,maxPitch:Bt}=this.getViewportProps(),St=tt+180*ft;let Dt=et;return dt>0?Dt=et+dt*(Bt-et):dt<0&&(Dt=et-dt*(Et-et)),{pitch:Dt,bearing:St}}}class MapController extends Controller{constructor(...$){super(...$),_defineProperty$e(this,"ControllerState",MapState),_defineProperty$e(this,"transition",{transitionDuration:300,transitionInterpolator:new LinearInterpolator({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})}),_defineProperty$e(this,"dragMode","pan")}setProps($){$.position=$.position||[0,0,0];const _e=this.props;super.setProps($),(!_e||_e.height!==$.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...$,...this.state}))}}class MapView extends View{get ViewportType(){return WebMercatorViewport2}get ControllerType(){return MapController}}_defineProperty$e(MapView,"displayName","MapView");class MaskPass extends LayersPass{constructor($,_e){super($,_e),_defineProperty$e(this,"maskMap",void 0),_defineProperty$e(this,"fbo",void 0);const{mapSize:et=2048}=_e;this.maskMap=new Texture2D($,{width:et,height:et,parameters:{10241:9729,10240:9729,10242:33071,10243:33071}}),this.fbo=new Framebuffer($,{id:"maskmap",width:et,height:et,attachments:{36064:this.maskMap}})}render($){const _e=this.gl,et=[!1,!1,!1,!1];return et[$.channel]=!0,withParameters(_e,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:et,depthTest:!1},()=>super.render({...$,target:this.fbo,pass:"mask"}))}shouldDrawLayer($){return $.props.operation===OPERATION.MASK}delete(){this.fbo.delete(),this.maskMap.delete()}}const viewMatrix=new Matrix4().lookAt({eye:[0,0,1]});function getProjectionMatrix({width:j,height:$,near:_e,far:et,padding:tt}){let rt=-j/2,nt=j/2,it=-$/2,ot=$/2;if(tt){const{left:At=0,right:ut=0,top:ft=0,bottom:dt=0}=tt,Et=clamp$2((At+j-ut)/2,0,j)-j/2,Bt=clamp$2((ft+$-dt)/2,0,$)-$/2;rt-=Et,nt-=Et,it+=Bt,ot+=Bt}return new Matrix4().ortho({left:rt,right:nt,bottom:it,top:ot,near:_e,far:et})}class OrthographicViewport extends Viewport{constructor($){const{width:_e,height:et,near:tt=.1,far:rt=1e3,zoom:nt=0,target:it=[0,0,0],padding:ot=null,flipY:At=!0}=$,ut=Array.isArray(nt)?nt[0]:nt,ft=Array.isArray(nt)?nt[1]:nt,dt=Math.min(ut,ft),Et=Math.pow(2,dt);let Bt;if(ut!==ft){const St=Math.pow(2,ut),Dt=Math.pow(2,ft);Bt={unitsPerMeter:[St/Et,Dt/Et,1],metersPerUnit:[Et/St,Et/Dt,1]}}super({...$,longitude:void 0,position:it,viewMatrix:viewMatrix.clone().scale([Et,Et*(At?-1:1),Et]),projectionMatrix:getProjectionMatrix({width:_e||1,height:et||1,padding:ot,near:tt,far:rt}),zoom:dt,distanceScales:Bt})}projectFlat([$,_e]){const{unitsPerMeter:et}=this.distanceScales;return[$*et[0],_e*et[1]]}unprojectFlat([$,_e]){const{metersPerUnit:et}=this.distanceScales;return[$*et[0],_e*et[1]]}panByPosition($,_e){const et=pixelsToWorld(_e,this.pixelUnprojectionMatrix),tt=this.projectFlat($),rt=add$6([],tt,negate$1([],et)),nt=add$6([],this.center,rt);return{target:this.unprojectFlat(nt)}}}class OrbitState extends ViewState{constructor($){const{width:_e,height:et,rotationX:tt=0,rotationOrbit:rt=0,target:nt=[0,0,0],zoom:it=0,minRotationX:ot=-90,maxRotationX:At=90,minZoom:ut=-1/0,maxZoom:ft=1/0,startPanPosition:dt,startRotatePos:Et,startRotationX:Bt,startRotationOrbit:St,startZoomPosition:Dt,startZoom:$t}=$;super({width:_e,height:et,rotationX:tt,rotationOrbit:rt,target:nt,zoom:it,minRotationX:ot,maxRotationX:At,minZoom:ut,maxZoom:ft},{startPanPosition:dt,startRotatePos:Et,startRotationX:Bt,startRotationOrbit:St,startZoomPosition:Dt,startZoom:$t}),_defineProperty$e(this,"makeViewport",void 0),this.makeViewport=$.makeViewport}panStart({pos:$}){return this._getUpdatedState({startPanPosition:this._unproject($)})}pan({pos:$,startPosition:_e}){const et=this.getState().startPanPosition||_e;if(!et)return this;const rt=this.makeViewport(this.getViewportProps()).panByPosition(et,$);return this._getUpdatedState(rt)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:$}){return this._getUpdatedState({startRotatePos:$,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:$,deltaAngleX:_e=0,deltaAngleY:et=0}){const{startRotatePos:tt,startRotationX:rt,startRotationOrbit:nt}=this.getState(),{width:it,height:ot}=this.getViewportProps();if(!tt||rt===void 0||nt===void 0)return this;let At;if($){let ut=($[0]-tt[0])/it;const ft=($[1]-tt[1])/ot;(rt<-90||rt>90)&&(ut*=-1),At={rotationX:rt+ft*180,rotationOrbit:nt+ut*180}}else At={rotationX:rt+et,rotationOrbit:nt+_e};return this._getUpdatedState(At)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom($){const _e=$.getViewportProps(),et={...this.getViewportProps()},{rotationOrbit:tt}=et;return Math.abs(tt-_e.rotationOrbit)>180&&(et.rotationOrbit=tt<0?tt+360:tt-360),et}zoomStart({pos:$}){return this._getUpdatedState({startZoomPosition:this._unproject($),startZoom:this.getViewportProps().zoom})}zoom({pos:$,startPos:_e,scale:et}){let{startZoom:tt,startZoomPosition:rt}=this.getState();if(rt||(tt=this.getViewportProps().zoom,rt=this._unproject(_e)||this._unproject($)),!rt)return this;const nt=this._calculateNewZoom({scale:et,startZoom:tt}),it=this.makeViewport({...this.getViewportProps(),zoom:nt});return this._getUpdatedState({zoom:nt,...it.panByPosition(rt,$)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn($=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:$})})}zoomOut($=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/$})})}moveLeft($=50){return this._panFromCenter([-$,0])}moveRight($=50){return this._panFromCenter([$,0])}moveUp($=50){return this._panFromCenter([0,-$])}moveDown($=50){return this._panFromCenter([0,$])}rotateLeft($=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-$})}rotateRight($=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+$})}rotateUp($=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-$})}rotateDown($=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+$})}_unproject($){const _e=this.makeViewport(this.getViewportProps());return $&&_e.unproject($)}_calculateNewZoom({scale:$,startZoom:_e}){const{maxZoom:et,minZoom:tt}=this.getViewportProps();_e===void 0&&(_e=this.getViewportProps().zoom);const rt=_e+Math.log2($);return clamp$2(rt,tt,et)}_panFromCenter($){const{width:_e,height:et,target:tt}=this.getViewportProps();return this.pan({startPosition:tt,pos:[_e/2+$[0],et/2+$[1]]})}_getUpdatedState($){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...$})}applyConstraints($){const{maxZoom:_e,minZoom:et,zoom:tt,maxRotationX:rt,minRotationX:nt,rotationOrbit:it}=$;return $.zoom=Array.isArray(tt)?[clamp$2(tt[0],et,_e),clamp$2(tt[1],et,_e)]:clamp$2(tt,et,_e),$.rotationX=clamp$2($.rotationX,nt,rt),(it<-180||it>180)&&($.rotationOrbit=mod(it+180,360)-180),$}}class OrbitController extends Controller{constructor(...$){super(...$),_defineProperty$e(this,"ControllerState",OrbitState),_defineProperty$e(this,"transition",{transitionDuration:300,transitionInterpolator:new LinearInterpolator({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})})}}class OrthographicState extends OrbitState{constructor($){super($),_defineProperty$e(this,"zoomAxis",void 0),this.zoomAxis=$.zoomAxis||"all"}_calculateNewZoom({scale:$,startZoom:_e}){const{maxZoom:et,minZoom:tt}=this.getViewportProps();_e===void 0&&(_e=this.getViewportProps().zoom);let rt=Math.log2($);if(Array.isArray(_e)){let[nt,it]=_e;switch(this.zoomAxis){case"X":nt=clamp$2(nt+rt,tt,et);break;case"Y":it=clamp$2(it+rt,tt,et);break;default:let ot=Math.min(nt+rt,it+rt);otet&&(rt+=et-ot),nt+=rt,it+=rt}return[nt,it]}return clamp$2(_e+rt,tt,et)}}class OrthographicController extends Controller{constructor(...$){super(...$),_defineProperty$e(this,"ControllerState",OrthographicState),_defineProperty$e(this,"transition",{transitionDuration:300,transitionInterpolator:new LinearInterpolator(["target","zoom"])}),_defineProperty$e(this,"dragMode","pan")}_onPanRotate(){return!1}}class OrthographicView extends View{get ViewportType(){return OrthographicViewport}get ControllerType(){return OrthographicController}}_defineProperty$e(OrthographicView,"displayName","OrthographicView");function getMaskBounds({layers:j,viewport:$}){let _e=null;for(const rt of j){const nt=rt.getBounds();nt&&(_e?(_e[0]=Math.min(_e[0],nt[0][0]),_e[1]=Math.min(_e[1],nt[0][1]),_e[2]=Math.max(_e[2],nt[1][0]),_e[3]=Math.max(_e[3],nt[1][1])):_e=[nt[0][0],nt[0][1],nt[1][0],nt[1][1]])}const et=$.getBounds();if(!_e)return et;const tt=_doubleBounds(et);return _e[2]-_e[0]ft.props.visible&&ft.props.operation===OPERATION.MASK);if(it.length===0){this.masks=null,this.channels.length=0;return}this.masks={},this.maskPass||(this.maskPass=new MaskPass($,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);const ot=this._sortMaskChannels(it),At=tt[0],ut=!this.lastViewport||!this.lastViewport.equals(At);for(const ft in ot)this._renderChannel(ot[ft],{layerFilter:et,onViewportActive:rt,views:nt,viewport:At,viewportChanged:ut})}_renderChannel($,{layerFilter:_e,onViewportActive:et,views:tt,viewport:rt,viewportChanged:nt}){const it=this.channels[$.index];if(!it)return;const ot=$===it||it.layers.length!==$.layers.length||$.layerBounds.some((At,ut)=>At!==it.layerBounds[ut]);if($.bounds=it.bounds,$.maskBounds=it.maskBounds,this.channels[$.index]=$,(ot||nt)&&(this.lastViewport=rt,$.bounds=getMaskBounds({layers:$.layers,viewport:rt}),ot||!equals$3($.bounds,it.bounds))){const{maskPass:At,maskMap:ut}=this,ft=getMaskViewport({bounds:$.bounds,viewport:rt,width:ut.width,height:ut.height});$.maskBounds=ft?ft.getBounds():[0,0,1,1],At.render({pass:"mask",channel:$.index,layers:$.layers,layerFilter:_e,viewports:ft?[ft]:[],onViewportActive:et,views:tt,moduleParameters:{devicePixelRatio:1}})}this.masks[$.id]={index:$.index,bounds:$.maskBounds,coordinateOrigin:$.coordinateOrigin,coordinateSystem:$.coordinateSystem}}_sortMaskChannels($){const _e={};let et=0;for(const tt of $){const{id:rt}=tt.root;let nt=_e[rt];if(!nt){if(++et>4){log$3.warn("Too many mask layers. The max supported is 4")();continue}nt={id:rt,index:this.channels.findIndex(it=>(it==null?void 0:it.id)===rt),layers:[],layerBounds:[],coordinateOrigin:tt.root.props.coordinateOrigin,coordinateSystem:tt.root.props.coordinateSystem},_e[rt]=nt}nt.layers.push(tt),nt.layerBounds.push(tt.getBounds())}for(let tt=0;tt<4;tt++){const rt=this.channels[tt];(!rt||!(rt.id in _e))&&(this.channels[tt]=null)}for(const tt in _e){const rt=_e[tt];rt.index<0&&(rt.index=this.channels.findIndex(nt=>!nt),this.channels[rt.index]=rt)}return _e}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}}const DEFAULT_LIGHTING_EFFECT=new LightingEffect;class EffectManager{constructor(){_defineProperty$e(this,"effects",void 0),_defineProperty$e(this,"_internalEffects",void 0),_defineProperty$e(this,"_needsRedraw",void 0),this.effects=[],this._internalEffects=[],this._needsRedraw="Initial render",this.setEffects()}setProps($){"effects"in $&&($.effects.length!==this.effects.length||!deepEqual$2($.effects,this.effects))&&(this.setEffects($.effects),this._needsRedraw="effects changed")}needsRedraw($={clearRedrawFlags:!1}){const _e=this._needsRedraw;return $.clearRedrawFlags&&(this._needsRedraw=!1),_e}getEffects(){return this._internalEffects}finalize(){this.cleanup()}setEffects($=[]){this.cleanup(),this.effects=$,this._internalEffects=$.slice(),this._internalEffects.push(new MaskEffect),$.some(_e=>_e instanceof LightingEffect)||this._internalEffects.push(DEFAULT_LIGHTING_EFFECT)}cleanup(){for(const $ of this.effects)$.cleanup();for(const $ of this._internalEffects)$.cleanup();this.effects.length=0,this._internalEffects.length=0}}class DrawLayersPass extends LayersPass{shouldDrawLayer($){return $.props.operation===OPERATION.DRAW}}const PICKING_PARAMETERS={blendFunc:[1,0,32771,0],blendEquation:32774};class PickLayersPass extends LayersPass{constructor(...$){super(...$),_defineProperty$e(this,"pickZ",void 0),_defineProperty$e(this,"_colors",null)}render($){return $.pickingFBO?this._drawPickingBuffer($):super.render($)}_drawPickingBuffer({layers:$,layerFilter:_e,views:et,viewports:tt,onViewportActive:rt,pickingFBO:nt,deviceRect:{x:it,y:ot,width:At,height:ut},cullRect:ft,effects:dt,pass:Et="picking",pickZ:Bt}){const St=this.gl;this.pickZ=Bt;const Dt=Bt?null:{byLayer:new Map,byAlpha:[]};this._colors=Dt;const $t=withParameters(St,{scissorTest:!0,scissor:[it,ot,At,ut],clearColor:[0,0,0,0],depthMask:!0,depthTest:!0,depthRange:[0,1],colorMask:[!0,!0,!0,!0],...PICKING_PARAMETERS,blend:!Bt},()=>super.render({target:nt,layers:$,layerFilter:_e,views:et,viewports:tt,onViewportActive:rt,cullRect:ft,effects:dt==null?void 0:dt.filter(wt=>wt.useInPicking),pass:Et}));return this._colors=null,{decodePickingColor:Dt&&decodeColor.bind(null,Dt),stats:$t}}shouldDrawLayer($){return $.props.pickable&&$.props.operation===OPERATION.DRAW}getModuleParameters(){return{pickingActive:1,pickingAttribute:this.pickZ,lightSources:{}}}getLayerParameters($,_e,et){const tt={...$.props.parameters};return this._colors?(Object.assign(tt,PICKING_PARAMETERS),tt.blend=!0,tt.blendColor=encodeColor(this._colors,$,et)):tt.blend=!1,tt}}function encodeColor(j,$,_e){const{byLayer:et,byAlpha:tt}=j;let rt,nt=et.get($);return nt?(nt.viewports.push(_e),rt=nt.a):(rt=et.size+1,rt<=255?(nt={a:rt,layer:$,viewports:[_e]},et.set($,nt),tt[rt]=nt):(log$3.warn("Too many pickable layers, only picking the first 255")(),rt=0)),[0,0,0,rt/255]}function decodeColor(j,$){const _e=j.byAlpha[$[3]];return _e&&{pickedLayer:_e.layer,pickedViewports:_e.viewports,pickedObjectIndex:_e.layer.decodePickingColor($)}}const TRACE_RENDER_LAYERS$1="deckRenderer.renderLayers";class DeckRenderer{constructor($){this.gl=$,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new DrawLayersPass($),this.pickLayersPass=new PickLayersPass($),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps($){"layerFilter"in $&&this.layerFilter!==$.layerFilter&&(this.layerFilter=$.layerFilter,this._needsRedraw="layerFilter changed"),"drawPickingColors"in $&&this.drawPickingColors!==$.drawPickingColors&&(this.drawPickingColors=$.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers($){const _e=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass;$.layerFilter=$.layerFilter||this.layerFilter,$.effects=$.effects||[],$.target=$.target||Framebuffer.getDefaultFramebuffer(this.gl),this._preRender($.effects,$);const et=this.lastPostProcessEffect?this.renderBuffers[0]:$.target,tt=_e.render({...$,target:et});this._postRender($.effects,$),this.renderCount++,debug(TRACE_RENDER_LAYERS$1,this,tt,$)}needsRedraw($={clearRedrawFlags:!1}){const _e=this._needsRedraw;return $.clearRedrawFlags&&(this._needsRedraw=!1),_e}finalize(){const{renderBuffers:$}=this;for(const _e of $)_e.delete();$.length=0}_preRender($,_e){let et=null;for(const tt of $)tt.preRender(this.gl,_e),tt.postRender&&(et=tt);et&&this._resizeRenderBuffers(),this.lastPostProcessEffect=et}_resizeRenderBuffers(){const{renderBuffers:$}=this;$.length===0&&$.push(new Framebuffer(this.gl),new Framebuffer(this.gl));for(const _e of $)_e.resize()}_postRender($,_e){const{renderBuffers:et}=this,tt={inputBuffer:et[0],swapBuffer:et[1],target:null};for(const rt of $)if(rt.postRender){if(rt===this.lastPostProcessEffect){tt.target=_e.target,rt.postRender(this.gl,tt);break}const nt=rt.postRender(this.gl,tt);tt.inputBuffer=nt,tt.swapBuffer=nt===et[0]?et[1]:et[0]}}}const NO_PICKED_OBJECT={pickedColor:null,pickedObjectIndex:-1};function getClosestObject({pickedColors:j,decodePickingColor:$,deviceX:_e,deviceY:et,deviceRadius:tt,deviceRect:rt}){const{x:nt,y:it,width:ot,height:At}=rt;let ut=tt*tt,ft=-1,dt=0;for(let Et=0;Etut)dt+=4*ot;else for(let Dt=0;Dt=0){const Rt=Dt+nt-_e,wt=Rt*Rt+St;wt<=ut&&(ut=wt,ft=dt)}dt+=4}}if(ft>=0){const Et=j.slice(ft,ft+4),Bt=$(Et);if(Bt){const St=Math.floor(ft/4/ot),Dt=ft/4-St*ot;return{...Bt,pickedColor:Et,pickedX:nt+Dt,pickedY:it+St}}log$3.error("Picked non-existent layer. Is picking buffer corrupt?")()}return NO_PICKED_OBJECT}function getUniqueObjects({pickedColors:j,decodePickingColor:$}){const _e=new Map;if(j){for(let et=0;et=0){const rt=j.slice(et,et+4),nt=rt.join(",");if(!_e.has(nt)){const it=$(rt);it?_e.set(nt,{...it,color:rt}):log$3.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(_e.values())}function getEmptyPickingInfo({pickInfo:j,viewports:$,pixelRatio:_e,x:et,y:tt,z:rt}){let nt=$[0];$.length>1&&(nt=getViewportFromCoordinates((j==null?void 0:j.pickedViewports)||$,{x:et,y:tt}));let it;if(nt){const ot=[et-nt.x,tt-nt.y];rt!==void 0&&(ot[2]=rt),it=nt.unproject(ot)}return{color:null,layer:null,viewport:nt,index:-1,picked:!1,x:et,y:tt,pixel:[et,tt],coordinate:it,devicePixel:j&&"pickedX"in j?[j.pickedX,j.pickedY]:void 0,pixelRatio:_e}}function processPickInfo(j){const{pickInfo:$,lastPickedInfo:_e,mode:et,layers:tt}=j,{pickedColor:rt,pickedLayer:nt,pickedObjectIndex:it}=$,ot=nt?[nt]:[];if(et==="hover"){const ft=_e.index,dt=_e.layerId,Et=nt?nt.props.id:null;if(Et!==dt||it!==ft){if(Et!==dt){const Bt=tt.find(St=>St.props.id===dt);Bt&&ot.unshift(Bt)}_e.layerId=Et,_e.index=it,_e.info=null}}const At=getEmptyPickingInfo(j),ut=new Map;return ut.set(null,At),ot.forEach(ft=>{let dt={...At};ft===nt&&(dt.color=rt,dt.index=it,dt.picked=!0),dt=getLayerPickingInfo({layer:ft,info:dt,mode:et});const Et=dt.layer;ft===nt&&et==="hover"&&(_e.info=dt),ut.set(Et.id,dt),et==="hover"&&Et.updateAutoHighlight(dt)}),ut}function getLayerPickingInfo({layer:j,info:$,mode:_e}){for(;j&&$;){const et=$.layer||null;$.sourceLayer=et,$.layer=j,$=j.getPickingInfo({info:$,mode:_e,sourceLayer:et}),j=j.parent}return $}function getViewportFromCoordinates(j,$){for(let _e=j.length-1;_e>=0;_e--){const et=j[_e];if(et.containsPixel($))return et}return j[0]}class DeckPicker{constructor($){_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"pickingFBO",void 0),_defineProperty$e(this,"depthFBO",void 0),_defineProperty$e(this,"pickLayersPass",void 0),_defineProperty$e(this,"layerFilter",void 0),_defineProperty$e(this,"lastPickedInfo",void 0),_defineProperty$e(this,"_pickable",!0),this.gl=$,this.pickLayersPass=new PickLayersPass($),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps($){"layerFilter"in $&&(this.layerFilter=$.layerFilter),"_pickable"in $&&(this._pickable=$._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.delete(),this.depthFBO&&(this.depthFBO.color.delete(),this.depthFBO.delete())}pickObject($){return this._pickClosestObject($)}pickObjects($){return this._pickVisibleObjects($)}getLastPickedObject({x:$,y:_e,layers:et,viewports:tt},rt=this.lastPickedInfo.info){const nt=rt&&rt.layer&&rt.layer.id,it=rt&&rt.viewport&&rt.viewport.id,ot=nt?et.find(dt=>dt.id===nt):null,At=it&&tt.find(dt=>dt.id===it)||tt[0],ut=At&&At.unproject([$-At.x,_e-At.y]);return{...rt,...{x:$,y:_e,viewport:At,coordinate:ut,layer:ot}}}_resizeBuffer(){var $,_e;const{gl:et}=this;if(!this.pickingFBO&&(this.pickingFBO=new Framebuffer(et),Framebuffer.isSupported(et,{colorBufferFloat:!0}))){const tt=new Framebuffer(et);tt.attach({36064:new Texture2D(et,{format:isWebGL2$1(et)?34836:6408,type:5126})}),this.depthFBO=tt}($=this.pickingFBO)===null||$===void 0||$.resize({width:et.canvas.width,height:et.canvas.height}),(_e=this.depthFBO)===null||_e===void 0||_e.resize({width:et.canvas.width,height:et.canvas.height})}_getPickable($){if(this._pickable===!1)return null;const _e=$.filter(et=>et.isPickable()&&!et.isComposite);return _e.length?_e:null}_pickClosestObject({layers:$,views:_e,viewports:et,x:tt,y:rt,radius:nt=0,depth:it=1,mode:ot="query",unproject3D:At,onViewportActive:ut,effects:ft}){const dt=this._getPickable($),Et=cssToDeviceRatio(this.gl);if(!dt)return{result:[],emptyInfo:getEmptyPickingInfo({viewports:et,x:tt,y:rt,pixelRatio:Et})};this._resizeBuffer();const Bt=cssToDevicePixels(this.gl,[tt,rt],!0),St=[Bt.x+Math.floor(Bt.width/2),Bt.y+Math.floor(Bt.height/2)],Dt=Math.round(nt*Et),{width:$t,height:Rt}=this.pickingFBO,wt=this._getPickingRect({deviceX:St[0],deviceY:St[1],deviceRadius:Dt,deviceWidth:$t,deviceHeight:Rt}),xt={x:tt-nt,y:rt-nt,width:nt*2+1,height:nt*2+1};let Nt;const Ot=[],kt=new Set;for(let Jt=0;Jt=At);jt++){const Ht=Ot[jt];let Gt={color:Ht.pickedColor,layer:null,index:Ht.pickedObjectIndex,picked:!0,x:tt,y:rt,pixelRatio:Et};Gt=getLayerPickingInfo({layer:Ht.pickedLayer,info:Gt,mode:ot}),kt.has(Gt.object)||kt.set(Gt.object,Gt)}return Array.from(kt.values())}_drawAndSample({layers:$,views:_e,viewports:et,onViewportActive:tt,deviceRect:rt,cullRect:nt,effects:it,pass:ot},At=!1){const ut=At?this.depthFBO:this.pickingFBO,{decodePickingColor:ft}=this.pickLayersPass.render({layers:$,layerFilter:this.layerFilter,views:_e,viewports:et,onViewportActive:tt,pickingFBO:ut,deviceRect:rt,cullRect:nt,effects:it,pass:ot,pickZ:At}),{x:dt,y:Et,width:Bt,height:St}=rt,Dt=new(At?Float32Array:Uint8Array)(Bt*St*4);return readPixelsToArray(ut,{sourceX:dt,sourceY:Et,sourceWidth:Bt,sourceHeight:St,target:Dt}),{pickedColors:Dt,decodePickingColor:ft}}_getPickingRect({deviceX:$,deviceY:_e,deviceRadius:et,deviceWidth:tt,deviceHeight:rt}){const nt=Math.max(0,$-et),it=Math.max(0,_e-et),ot=Math.min(tt,$+et+1)-nt,At=Math.min(rt,_e+et+1)-it;return ot<=0||At<=0?null:{x:nt,y:it,width:ot,height:At}}}const defaultStyle={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class Tooltip{constructor($){_defineProperty$e(this,"el",null),_defineProperty$e(this,"isVisible",!1);const _e=$.parentElement;_e&&(this.el=document.createElement("div"),this.el.className="deck-tooltip",Object.assign(this.el.style,defaultStyle),_e.appendChild(this.el))}setTooltip($,_e,et){const tt=this.el;if(tt){if(typeof $=="string")tt.innerText=$;else if($)$.text&&(tt.innerText=$.text),$.html&&(tt.innerHTML=$.html),$.className&&(tt.className=$.className),Object.assign(tt.style,$.style);else{this.isVisible=!1,tt.style.display="none";return}this.isVisible=!0,tt.style.display="block",tt.style.transform="translate(".concat(_e,"px, ").concat(et,"px)")}}remove(){this.el&&(this.el.remove(),this.el=null)}}var hammer$1={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */(function(j){(function($,_e,et,tt){var rt=["","webkit","Moz","MS","ms","o"],nt=_e.createElement("div"),it="function",ot=Math.round,At=Math.abs,ut=Date.now;function ft(Cr,br,Vr){return setTimeout(wt(Cr,Vr),br)}function dt(Cr,br,Vr){return Array.isArray(Cr)?(Et(Cr,Vr[br],Vr),!0):!1}function Et(Cr,br,Vr){var Gr;if(Cr)if(Cr.forEach)Cr.forEach(br,Vr);else if(Cr.length!==tt)for(Gr=0;Gr\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",jn=$.console&&($.console.warn||$.console.log);return jn&&jn.call($.console,Gr,bn),Cr.apply(this,arguments)}}var St;typeof Object.assign!="function"?St=function(br){if(br===tt||br===null)throw new TypeError("Cannot convert undefined or null to object");for(var Vr=Object(br),Gr=1;Gr-1}function Ht(Cr){return Cr.trim().split(/\s+/g)}function Gt(Cr,br,Vr){if(Cr.indexOf&&!Vr)return Cr.indexOf(br);for(var Gr=0;GrHn[br]}):Gr=Gr.sort()),Gr}function Vt(Cr,br){for(var Vr,Gr,Cn=br[0].toUpperCase()+br.slice(1),bn=0;bn1&&!Vr.firstMultiple?Vr.firstMultiple=Pr(br):Cn===1&&(Vr.firstMultiple=!1);var bn=Vr.firstInput,jn=Vr.firstMultiple,Ko=jn?jn.center:bn.center,pn=br.center=Zr(Gr);br.timeStamp=ut(),br.deltaTime=br.timeStamp-bn.timeStamp,br.angle=Sn(Ko,pn),br.distance=In(Ko,pn),Ur(Vr,br),br.offsetDirection=on(br.deltaX,br.deltaY);var Hn=rn(br.deltaTime,br.deltaX,br.deltaY);br.overallVelocityX=Hn.x,br.overallVelocityY=Hn.y,br.overallVelocity=At(Hn.x)>At(Hn.y)?Hn.x:Hn.y,br.scale=jn?dn(jn.pointers,Gr):1,br.rotation=jn?un(jn.pointers,Gr):0,br.maxPointers=Vr.prevInput?br.pointers.length>Vr.prevInput.maxPointers?br.pointers.length:Vr.prevInput.maxPointers:br.pointers.length,Wr(Vr,br);var Jn=Cr.element;Jt(br.srcEvent.target,Jn)&&(Jn=br.srcEvent.target),br.target=Jn}function Ur(Cr,br){var Vr=br.center,Gr=Cr.offsetDelta||{},Cn=Cr.prevDelta||{},bn=Cr.prevInput||{};(br.eventType===Lr||bn.eventType===$r)&&(Cn=Cr.prevDelta={x:bn.deltaX||0,y:bn.deltaY||0},Gr=Cr.offsetDelta={x:Vr.x,y:Vr.y}),br.deltaX=Cn.x+(Vr.x-Gr.x),br.deltaY=Cn.y+(Vr.y-Gr.y)}function Wr(Cr,br){var Vr=Cr.lastInterval||br,Gr=br.timeStamp-Vr.timeStamp,Cn,bn,jn,Ko;if(br.eventType!=xr&&(Gr>Er||Vr.velocity===tt)){var pn=br.deltaX-Vr.deltaX,Hn=br.deltaY-Vr.deltaY,Jn=rn(Gr,pn,Hn);bn=Jn.x,jn=Jn.y,Cn=At(Jn.x)>At(Jn.y)?Jn.x:Jn.y,Ko=on(pn,Hn),Cr.lastInterval=br}else Cn=Vr.velocity,bn=Vr.velocityX,jn=Vr.velocityY,Ko=Vr.direction;br.velocity=Cn,br.velocityX=bn,br.velocityY=jn,br.direction=Ko}function Pr(Cr){for(var br=[],Vr=0;Vr=At(br)?Cr<0?Nr:Xt:br<0?cr:ir}function In(Cr,br,Vr){Vr||(Vr=wr);var Gr=br[Vr[0]]-Cr[Vr[0]],Cn=br[Vr[1]]-Cr[Vr[1]];return Math.sqrt(Gr*Gr+Cn*Cn)}function Sn(Cr,br,Vr){Vr||(Vr=wr);var Gr=br[Vr[0]]-Cr[Vr[0]],Cn=br[Vr[1]]-Cr[Vr[1]];return Math.atan2(Cn,Gr)*180/Math.PI}function un(Cr,br){return Sn(br[1],br[0],rr)+Sn(Cr[1],Cr[0],rr)}function dn(Cr,br){return In(br[0],br[1],rr)/In(Cr[0],Cr[1],rr)}var wn={mousedown:Lr,mousemove:Rr,mouseup:$r},Nn="mousedown",Tn="mousemove mouseup";function oo(){this.evEl=Nn,this.evWin=Tn,this.pressed=!1,er.apply(this,arguments)}Rt(oo,er,{handler:function(br){var Vr=wn[br.type];Vr&Lr&&br.button===0&&(this.pressed=!0),Vr&Rr&&br.which!==1&&(Vr=$r),this.pressed&&(Vr&$r&&(this.pressed=!1),this.callback(this.manager,Vr,{pointers:[br],changedPointers:[br],pointerType:vr,srcEvent:br}))}});var ao={pointerdown:Lr,pointermove:Rr,pointerup:$r,pointercancel:xr,pointerout:xr},qn={2:Zt,3:mr,4:vr,5:_r},Ao="pointerdown",go="pointermove pointerup pointercancel";$.MSPointerEvent&&!$.PointerEvent&&(Ao="MSPointerDown",go="MSPointerMove MSPointerUp MSPointerCancel");function Xr(){this.evEl=Ao,this.evWin=go,er.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}Rt(Xr,er,{handler:function(br){var Vr=this.store,Gr=!1,Cn=br.type.toLowerCase().replace("ms",""),bn=ao[Cn],jn=qn[br.pointerType]||br.pointerType,Ko=jn==Zt,pn=Gt(Vr,br.pointerId,"pointerId");bn&Lr&&(br.button===0||Ko)?pn<0&&(Vr.push(br),pn=Vr.length-1):bn&($r|xr)&&(Gr=!0),!(pn<0)&&(Vr[pn]=br,this.callback(this.manager,bn,{pointers:Vr,changedPointers:[br],pointerType:jn,srcEvent:br}),Gr&&Vr.splice(pn,1))}});var Co={touchstart:Lr,touchmove:Rr,touchend:$r,touchcancel:xr},Lo="touchstart",Ln="touchstart touchmove touchend touchcancel";function rs(){this.evTarget=Lo,this.evWin=Ln,this.started=!1,er.apply(this,arguments)}Rt(rs,er,{handler:function(br){var Vr=Co[br.type];if(Vr===Lr&&(this.started=!0),!!this.started){var Gr=Jo.call(this,br,Vr);Vr&($r|xr)&&Gr[0].length-Gr[1].length===0&&(this.started=!1),this.callback(this.manager,Vr,{pointers:Gr[0],changedPointers:Gr[1],pointerType:Zt,srcEvent:br})}}});function Jo(Cr,br){var Vr=Kt(Cr.touches),Gr=Kt(Cr.changedTouches);return br&($r|xr)&&(Vr=Wt(Vr.concat(Gr),"identifier",!0)),[Vr,Gr]}var zo={touchstart:Lr,touchmove:Rr,touchend:$r,touchcancel:xr},qo="touchstart touchmove touchend touchcancel";function Js(){this.evTarget=qo,this.targetIds={},er.apply(this,arguments)}Rt(Js,er,{handler:function(br){var Vr=zo[br.type],Gr=yo.call(this,br,Vr);Gr&&this.callback(this.manager,Vr,{pointers:Gr[0],changedPointers:Gr[1],pointerType:Zt,srcEvent:br})}});function yo(Cr,br){var Vr=Kt(Cr.touches),Gr=this.targetIds;if(br&(Lr|Rr)&&Vr.length===1)return Gr[Vr[0].identifier]=!0,[Vr,Vr];var Cn,bn,jn=Kt(Cr.changedTouches),Ko=[],pn=this.target;if(bn=Vr.filter(function(Hn){return Jt(Hn.target,pn)}),br===Lr)for(Cn=0;Cn-1&&Gr.splice(bn,1)};setTimeout(Cn,wo)}}function Ir(Cr){for(var br=Cr.srcEvent.clientX,Vr=Cr.srcEvent.clientY,Gr=0;Gr-1&&this.requireFail.splice(br,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(Cr){return!!this.simultaneous[Cr.id]},emit:function(Cr){var br=this,Vr=this.state;function Gr(Cn){br.manager.emit(Cn,Cr)}Vr=Io&&Gr(br.options.event+_i(Vr))},tryEmit:function(Cr){if(this.canEmit())return this.emit(Cr);this.state=$n},canEmit:function(){for(var Cr=0;Crbr.threshold&&Cn&br.direction},attrTest:function(Cr){return no.prototype.attrTest.call(this,Cr)&&(this.state&Dn||!(this.state&Dn)&&this.directionTest(Cr))},emit:function(Cr){this.pX=Cr.deltaX,this.pY=Cr.deltaY;var br=SA(Cr.direction);br&&(Cr.additionalEvent=this.options.event+br),this._super.emit.call(this,Cr)}});function xs(){no.apply(this,arguments)}Rt(xs,no,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[cn]},attrTest:function(Cr){return this._super.attrTest.call(this,Cr)&&(Math.abs(Cr.scale-1)>this.options.threshold||this.state&Dn)},emit:function(Cr){if(Cr.scale!==1){var br=Cr.scale<1?"in":"out";Cr.additionalEvent=this.options.event+br}this._super.emit.call(this,Cr)}});function Mr(){zr.apply(this,arguments),this._timer=null,this._input=null}Rt(Mr,zr,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Jr]},process:function(Cr){var br=this.options,Vr=Cr.pointers.length===br.pointers,Gr=Cr.distancebr.time;if(this._input=Cr,!Gr||!Vr||Cr.eventType&($r|xr)&&!Cn)this.reset();else if(Cr.eventType&Lr)this.reset(),this._timer=ft(function(){this.state=To,this.tryEmit()},br.time,this);else if(Cr.eventType&$r)return To;return $n},reset:function(){clearTimeout(this._timer)},emit:function(Cr){this.state===To&&(Cr&&Cr.eventType&$r?this.manager.emit(this.options.event+"up",Cr):(this._input.timeStamp=ut(),this.manager.emit(this.options.event,this._input)))}});function _l(){no.apply(this,arguments)}Rt(_l,no,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[cn]},attrTest:function(Cr){return this._super.attrTest.call(this,Cr)&&(Math.abs(Cr.rotation)>this.options.threshold||this.state&Dn)}});function Vn(){no.apply(this,arguments)}Rt(Vn,no,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Qr|Or,pointers:1},getTouchAction:function(){return jA.prototype.getTouchAction.call(this)},attrTest:function(Cr){var br=this.options.direction,Vr;return br&(Qr|Or)?Vr=Cr.overallVelocity:br&Qr?Vr=Cr.overallVelocityX:br&Or&&(Vr=Cr.overallVelocityY),this._super.attrTest.call(this,Cr)&&br&Cr.offsetDirection&&Cr.distance>this.options.threshold&&Cr.maxPointers==this.options.pointers&&At(Vr)>this.options.velocity&&Cr.eventType&$r},emit:function(Cr){var br=SA(Cr.offsetDirection);br&&this.manager.emit(this.options.event+br,Cr),this.manager.emit(this.options.event,Cr)}});function Xo(){zr.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}Rt(Xo,zr,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tn]},process:function(Cr){var br=this.options,Vr=Cr.pointers.length===br.pointers,Gr=Cr.distance0&&et.type==="pointerdown"&&(some(tt,rt=>rt.pointerId===et.pointerId)||tt.push(et)),$.call(this,et)}}function enhanceMouseInput(j){j.prototype.handler=function(_e){let et=MOUSE_INPUT_MAP[_e.type];et&INPUT_START&&_e.button>=0&&(this.pressed=!0),et&INPUT_MOVE&&_e.which===0&&(et=INPUT_END),this.pressed&&(et&INPUT_END&&(this.pressed=!1),this.callback(this.manager,et,{pointers:[_e],changedPointers:[_e],pointerType:"mouse",srcEvent:_e}))}}enhancePointerEventInput(hammerExports.PointerEventInput);enhanceMouseInput(hammerExports.MouseInput);const Manager=hammerExports.Manager;let Input$2=class{constructor($,_e,et){this.element=$,this.callback=_e,this.options={enable:!0,...et}}};const RECOGNIZERS=hammerjs?[[hammerjs.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[hammerjs.Rotate,{enable:!1}],[hammerjs.Pinch,{enable:!1}],[hammerjs.Swipe,{enable:!1}],[hammerjs.Pan,{threshold:0,enable:!1}],[hammerjs.Press,{enable:!1}],[hammerjs.Tap,{event:"doubletap",taps:2,enable:!1}],[hammerjs.Tap,{event:"anytap",enable:!1}],[hammerjs.Tap,{enable:!1}]]:null,RECOGNIZER_COMPATIBLE_MAP={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},RECOGNIZER_FALLBACK_MAP={doubletap:["tap"]},BASIC_EVENT_ALIASES={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},INPUT_EVENT_TYPES={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},EVENT_RECOGNIZER_MAP={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},GESTURE_EVENT_ALIASES={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},userAgent=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",window_=typeof window<"u"?window:global;let passiveSupported=!1;try{const j={get passive(){return passiveSupported=!0,!0}};window_.addEventListener("test",null,j),window_.removeEventListener("test",null)}catch{passiveSupported=!1}const firefox=userAgent.indexOf("firefox")!==-1,{WHEEL_EVENTS}=INPUT_EVENT_TYPES,EVENT_TYPE$1="wheel",WHEEL_DELTA_MAGIC_SCALER=4.000244140625,WHEEL_DELTA_PER_LINE=40,SHIFT_MULTIPLIER=.25;class WheelInput extends Input$2{constructor($,_e,et){super($,_e,et),this.handleEvent=tt=>{if(!this.options.enable)return;let rt=tt.deltaY;window_.WheelEvent&&(firefox&&tt.deltaMode===window_.WheelEvent.DOM_DELTA_PIXEL&&(rt/=window_.devicePixelRatio),tt.deltaMode===window_.WheelEvent.DOM_DELTA_LINE&&(rt*=WHEEL_DELTA_PER_LINE)),rt!==0&&rt%WHEEL_DELTA_MAGIC_SCALER===0&&(rt=Math.floor(rt/WHEEL_DELTA_MAGIC_SCALER)),tt.shiftKey&&rt&&(rt=rt*SHIFT_MULTIPLIER),this.callback({type:EVENT_TYPE$1,center:{x:tt.clientX,y:tt.clientY},delta:-rt,srcEvent:tt,pointerType:"mouse",target:tt.target})},this.events=(this.options.events||[]).concat(WHEEL_EVENTS),this.events.forEach(tt=>$.addEventListener(tt,this.handleEvent,passiveSupported?{passive:!1}:!1))}destroy(){this.events.forEach($=>this.element.removeEventListener($,this.handleEvent))}enableEventType($,_e){$===EVENT_TYPE$1&&(this.options.enable=_e)}}const{MOUSE_EVENTS:MOUSE_EVENTS$1}=INPUT_EVENT_TYPES,MOVE_EVENT_TYPE="pointermove",OVER_EVENT_TYPE="pointerover",OUT_EVENT_TYPE="pointerout",ENTER_EVENT_TYPE="pointerenter",LEAVE_EVENT_TYPE="pointerleave";class MoveInput extends Input$2{constructor($,_e,et){super($,_e,et),this.handleEvent=rt=>{this.handleOverEvent(rt),this.handleOutEvent(rt),this.handleEnterEvent(rt),this.handleLeaveEvent(rt),this.handleMoveEvent(rt)},this.pressed=!1;const{enable:tt}=this.options;this.enableMoveEvent=tt,this.enableLeaveEvent=tt,this.enableEnterEvent=tt,this.enableOutEvent=tt,this.enableOverEvent=tt,this.events=(this.options.events||[]).concat(MOUSE_EVENTS$1),this.events.forEach(rt=>$.addEventListener(rt,this.handleEvent))}destroy(){this.events.forEach($=>this.element.removeEventListener($,this.handleEvent))}enableEventType($,_e){$===MOVE_EVENT_TYPE&&(this.enableMoveEvent=_e),$===OVER_EVENT_TYPE&&(this.enableOverEvent=_e),$===OUT_EVENT_TYPE&&(this.enableOutEvent=_e),$===ENTER_EVENT_TYPE&&(this.enableEnterEvent=_e),$===LEAVE_EVENT_TYPE&&(this.enableLeaveEvent=_e)}handleOverEvent($){this.enableOverEvent&&$.type==="mouseover"&&this._emit(OVER_EVENT_TYPE,$)}handleOutEvent($){this.enableOutEvent&&$.type==="mouseout"&&this._emit(OUT_EVENT_TYPE,$)}handleEnterEvent($){this.enableEnterEvent&&$.type==="mouseenter"&&this._emit(ENTER_EVENT_TYPE,$)}handleLeaveEvent($){this.enableLeaveEvent&&$.type==="mouseleave"&&this._emit(LEAVE_EVENT_TYPE,$)}handleMoveEvent($){if(this.enableMoveEvent)switch($.type){case"mousedown":$.button>=0&&(this.pressed=!0);break;case"mousemove":$.which===0&&(this.pressed=!1),this.pressed||this._emit(MOVE_EVENT_TYPE,$);break;case"mouseup":this.pressed=!1;break}}_emit($,_e){this.callback({type:$,center:{x:_e.clientX,y:_e.clientY},srcEvent:_e,pointerType:"mouse",target:_e.target})}}const{KEY_EVENTS}=INPUT_EVENT_TYPES,DOWN_EVENT_TYPE="keydown",UP_EVENT_TYPE="keyup";class KeyInput extends Input$2{constructor($,_e,et){super($,_e,et),this.handleEvent=tt=>{const rt=tt.target||tt.srcElement;rt.tagName==="INPUT"&&rt.type==="text"||rt.tagName==="TEXTAREA"||(this.enableDownEvent&&tt.type==="keydown"&&this.callback({type:DOWN_EVENT_TYPE,srcEvent:tt,key:tt.key,target:tt.target}),this.enableUpEvent&&tt.type==="keyup"&&this.callback({type:UP_EVENT_TYPE,srcEvent:tt,key:tt.key,target:tt.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(KEY_EVENTS),$.tabIndex=this.options.tabIndex||0,$.style.outline="none",this.events.forEach(tt=>$.addEventListener(tt,this.handleEvent))}destroy(){this.events.forEach($=>this.element.removeEventListener($,this.handleEvent))}enableEventType($,_e){$===DOWN_EVENT_TYPE&&(this.enableDownEvent=_e),$===UP_EVENT_TYPE&&(this.enableUpEvent=_e)}}const EVENT_TYPE="contextmenu";class ContextmenuInput extends Input$2{constructor($,_e,et){super($,_e,et),this.handleEvent=tt=>{this.options.enable&&this.callback({type:EVENT_TYPE,center:{x:tt.clientX,y:tt.clientY},srcEvent:tt,pointerType:"mouse",target:tt.target})},$.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType($,_e){$===EVENT_TYPE&&(this.options.enable=_e)}}const DOWN_EVENT=1,MOVE_EVENT=2,UP_EVENT=4,MOUSE_EVENTS={pointerdown:DOWN_EVENT,pointermove:MOVE_EVENT,pointerup:UP_EVENT,mousedown:DOWN_EVENT,mousemove:MOVE_EVENT,mouseup:UP_EVENT},MOUSE_EVENT_WHICH_LEFT=1,MOUSE_EVENT_WHICH_MIDDLE=2,MOUSE_EVENT_WHICH_RIGHT=3,MOUSE_EVENT_BUTTON_LEFT=0,MOUSE_EVENT_BUTTON_MIDDLE=1,MOUSE_EVENT_BUTTON_RIGHT=2,MOUSE_EVENT_BUTTONS_LEFT_MASK=1,MOUSE_EVENT_BUTTONS_RIGHT_MASK=2,MOUSE_EVENT_BUTTONS_MIDDLE_MASK=4;function whichButtons(j){const $=MOUSE_EVENTS[j.srcEvent.type];if(!$)return null;const{buttons:_e,button:et,which:tt}=j.srcEvent;let rt=!1,nt=!1,it=!1;return $===UP_EVENT||$===MOVE_EVENT&&!Number.isFinite(_e)?(rt=tt===MOUSE_EVENT_WHICH_LEFT,nt=tt===MOUSE_EVENT_WHICH_MIDDLE,it=tt===MOUSE_EVENT_WHICH_RIGHT):$===MOVE_EVENT?(rt=!!(_e&MOUSE_EVENT_BUTTONS_LEFT_MASK),nt=!!(_e&MOUSE_EVENT_BUTTONS_MIDDLE_MASK),it=!!(_e&MOUSE_EVENT_BUTTONS_RIGHT_MASK)):$===DOWN_EVENT&&(rt=et===MOUSE_EVENT_BUTTON_LEFT,nt=et===MOUSE_EVENT_BUTTON_MIDDLE,it=et===MOUSE_EVENT_BUTTON_RIGHT),{leftButton:rt,middleButton:nt,rightButton:it}}function getOffsetPosition(j,$){const _e=j.center;if(!_e)return null;const et=$.getBoundingClientRect(),tt=et.width/$.offsetWidth||1,rt=et.height/$.offsetHeight||1,nt={x:(_e.x-et.left-$.clientLeft)/tt,y:(_e.y-et.top-$.clientTop)/rt};return{center:_e,offsetCenter:nt}}const DEFAULT_OPTIONS$2={srcElement:"root",priority:0};class EventRegistrar{constructor($){this.handleEvent=_e=>{if(this.isEmpty())return;const et=this._normalizeEvent(_e);let tt=_e.srcEvent.target;for(;tt&&tt!==et.rootElement;){if(this._emit(et,tt),et.handled)return;tt=tt.parentNode}this._emit(et,"root")},this.eventManager=$,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add($,_e,et,tt=!1,rt=!1){const{handlers:nt,handlersByElement:it}=this;let ot=DEFAULT_OPTIONS$2;typeof et=="string"||et&&et.addEventListener?ot={...DEFAULT_OPTIONS$2,srcElement:et}:et&&(ot={...DEFAULT_OPTIONS$2,...et});let At=it.get(ot.srcElement);At||(At=[],it.set(ot.srcElement,At));const ut={type:$,handler:_e,srcElement:ot.srcElement,priority:ot.priority};tt&&(ut.once=!0),rt&&(ut.passive=!0),nt.push(ut),this._active=this._active||!ut.passive;let ft=At.length-1;for(;ft>=0&&!(At[ft].priority>=ut.priority);)ft--;At.splice(ft+1,0,ut)}remove($,_e){const{handlers:et,handlersByElement:tt}=this;for(let rt=et.length-1;rt>=0;rt--){const nt=et[rt];if(nt.type===$&&nt.handler===_e){et.splice(rt,1);const it=tt.get(nt.srcElement);it.splice(it.indexOf(nt),1),it.length===0&&tt.delete(nt.srcElement)}}this._active=et.some(rt=>!rt.passive)}_emit($,_e){const et=this.handlersByElement.get(_e);if(et){let tt=!1;const rt=()=>{$.handled=!0},nt=()=>{$.handled=!0,tt=!0},it=[];for(let ot=0;ot{$.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:_e}}}const DEFAULT_OPTIONS$1={events:null,recognizers:null,recognizerOptions:{},Manager,touchAction:"none",tabIndex:0};class EventManager{constructor($=null,_e){this._onBasicInput=tt=>{const{srcEvent:rt}=tt,nt=BASIC_EVENT_ALIASES[rt.type];nt&&this.manager.emit(nt,tt)},this._onOtherEvent=tt=>{this.manager.emit(tt.type,tt)},this.options={...DEFAULT_OPTIONS$1,..._e},this.events=new Map,this.setElement($);const{events:et}=this.options;et&&this.on(et)}getElement(){return this.element}setElement($){if(this.element&&this.destroy(),this.element=$,!$)return;const{options:_e}=this,et=_e.Manager;this.manager=new et($,{touchAction:_e.touchAction,recognizers:_e.recognizers||RECOGNIZERS}).on("hammer.input",this._onBasicInput),_e.recognizers||Object.keys(RECOGNIZER_COMPATIBLE_MAP).forEach(tt=>{const rt=this.manager.get(tt);rt&&RECOGNIZER_COMPATIBLE_MAP[tt].forEach(nt=>{rt.recognizeWith(nt)})});for(const tt in _e.recognizerOptions){const rt=this.manager.get(tt);if(rt){const nt=_e.recognizerOptions[tt];delete nt.enable,rt.set(nt)}}this.wheelInput=new WheelInput($,this._onOtherEvent,{enable:!1}),this.moveInput=new MoveInput($,this._onOtherEvent,{enable:!1}),this.keyInput=new KeyInput($,this._onOtherEvent,{enable:!1,tabIndex:_e.tabIndex}),this.contextmenuInput=new ContextmenuInput($,this._onOtherEvent,{enable:!1});for(const[tt,rt]of this.events)rt.isEmpty()||(this._toggleRecognizer(rt.recognizerName,!0),this.manager.on(tt,rt.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on($,_e,et){this._addEventHandler($,_e,et,!1)}once($,_e,et){this._addEventHandler($,_e,et,!0)}watch($,_e,et){this._addEventHandler($,_e,et,!1,!0)}off($,_e){this._removeEventHandler($,_e)}_toggleRecognizer($,_e){const{manager:et}=this;if(!et)return;const tt=et.get($);if(tt&&tt.options.enable!==_e){tt.set({enable:_e});const rt=RECOGNIZER_FALLBACK_MAP[$];rt&&!this.options.recognizers&&rt.forEach(nt=>{const it=et.get(nt);_e?(it.requireFailure($),tt.dropRequireFailure(nt)):it.dropRequireFailure($)})}this.wheelInput.enableEventType($,_e),this.moveInput.enableEventType($,_e),this.keyInput.enableEventType($,_e),this.contextmenuInput.enableEventType($,_e)}_addEventHandler($,_e,et,tt,rt){if(typeof $!="string"){et=_e;for(const ut in $)this._addEventHandler(ut,$[ut],et,tt,rt);return}const{manager:nt,events:it}=this,ot=GESTURE_EVENT_ALIASES[$]||$;let At=it.get(ot);At||(At=new EventRegistrar(this),it.set(ot,At),At.recognizerName=EVENT_RECOGNIZER_MAP[ot]||ot,nt&&nt.on(ot,At.handleEvent)),At.add($,_e,et,tt,rt),At.isEmpty()||this._toggleRecognizer(At.recognizerName,!0)}_removeEventHandler($,_e){if(typeof $!="string"){for(const nt in $)this._removeEventHandler(nt,$[nt]);return}const{events:et}=this,tt=GESTURE_EVENT_ALIASES[$]||$,rt=et.get(tt);if(rt&&(rt.remove($,_e),rt.isEmpty())){const{recognizerName:nt}=rt;let it=!1;for(const ot of et.values())if(ot.recognizerName===nt&&!ot.isEmpty()){it=!0;break}it||this._toggleRecognizer(nt,!1)}}}function noop$2(){}const getCursor=({isDragging:j})=>j?"grabbing":"grab",defaultProps$M={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,glOptions:{},parameters:{},parent:null,gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,onWebGLInitialized:noop$2,onResize:noop$2,onViewStateChange:noop$2,onInteractionStateChange:noop$2,onBeforeRender:noop$2,onAfterRender:noop$2,onLoad:noop$2,onError:j=>log$3.error(j.message)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor,getTooltip:null,debug:!1,drawPickingColors:!1};class Deck{constructor($){_defineProperty$e(this,"props",void 0),_defineProperty$e(this,"width",0),_defineProperty$e(this,"height",0),_defineProperty$e(this,"userData",{}),_defineProperty$e(this,"canvas",null),_defineProperty$e(this,"viewManager",null),_defineProperty$e(this,"layerManager",null),_defineProperty$e(this,"effectManager",null),_defineProperty$e(this,"deckRenderer",null),_defineProperty$e(this,"deckPicker",null),_defineProperty$e(this,"eventManager",null),_defineProperty$e(this,"tooltip",null),_defineProperty$e(this,"metrics",void 0),_defineProperty$e(this,"animationLoop",void 0),_defineProperty$e(this,"stats",void 0),_defineProperty$e(this,"viewState",void 0),_defineProperty$e(this,"cursorState",void 0),_defineProperty$e(this,"_needsRedraw",void 0),_defineProperty$e(this,"_pickRequest",void 0),_defineProperty$e(this,"_lastPointerDownInfo",null),_defineProperty$e(this,"_metricsCounter",void 0),_defineProperty$e(this,"_onPointerMove",_e=>{const{_pickRequest:et}=this;if(_e.type==="pointerleave")et.x=-1,et.y=-1,et.radius=0;else{if(_e.leftButton||_e.rightButton)return;{const tt=_e.offsetCenter;if(!tt)return;et.x=tt.x,et.y=tt.y,et.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:et.x,y:et.y}),et.event=_e}),_defineProperty$e(this,"_onEvent",_e=>{const et=EVENTS[_e.type],tt=_e.offsetCenter;if(!et||!tt||!this.layerManager)return;const rt=this.layerManager.getLayers(),nt=this.deckPicker.getLastPickedObject({x:tt.x,y:tt.y,layers:rt,viewports:this.getViewports(tt)},this._lastPointerDownInfo),{layer:it}=nt,ot=it&&(it[et.handler]||it.props[et.handler]),At=this.props[et.handler];let ut=!1;ot&&(ut=ot.call(it,nt,_e)),!ut&&At&&At(nt,_e)}),_defineProperty$e(this,"_onPointerDown",_e=>{const et=_e.offsetCenter,tt=this._pick("pickObject","pickObject Time",{x:et.x,y:et.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=tt.result[0]||tt.emptyInfo}),this.props={...defaultProps$M,...$},$=this.props,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null},this.cursorState={isHovering:!1,isDragging:!1},$.viewState&&$.initialViewState&&log$3.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),getBrowser()==="IE"&&log$3.warn("IE 11 is not supported")(),this.viewState=$.initialViewState,$.gl||typeof document<"u"&&(this.canvas=this._createCanvas($)),this.animationLoop=this._createAnimationLoop($),this.stats=new Stats({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this.setProps($),$._typedArrayManagerProps&&defaultTypedArrayManager.setOptions($._typedArrayManagerProps),this.animationLoop.start()}finalize(){var $,_e,et,tt,rt,nt,it;if(this.animationLoop.stop(),this.animationLoop=null,this._lastPointerDownInfo=null,($=this.layerManager)===null||$===void 0||$.finalize(),this.layerManager=null,(_e=this.viewManager)===null||_e===void 0||_e.finalize(),this.viewManager=null,(et=this.effectManager)===null||et===void 0||et.finalize(),this.effectManager=null,(tt=this.deckRenderer)===null||tt===void 0||tt.finalize(),this.deckRenderer=null,(rt=this.deckPicker)===null||rt===void 0||rt.finalize(),this.deckPicker=null,(nt=this.eventManager)===null||nt===void 0||nt.destroy(),this.eventManager=null,(it=this.tooltip)===null||it===void 0||it.remove(),this.tooltip=null,!this.props.canvas&&!this.props.gl&&this.canvas){var ot;(ot=this.canvas.parentElement)===null||ot===void 0||ot.removeChild(this.canvas),this.canvas=null}}setProps($){this.stats.get("setProps Time").timeStart(),"onLayerHover"in $&&log$3.removed("onLayerHover","onHover")(),"onLayerClick"in $&&log$3.removed("onLayerClick","onClick")(),$.initialViewState&&!deepEqual$2(this.props.initialViewState,$.initialViewState)&&(this.viewState=$.initialViewState),Object.assign(this.props,$),this._setCanvasSize(this.props);const _e=Object.create(this.props);Object.assign(_e,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop.setProps(_e),this.layerManager&&(this.viewManager.setProps(_e),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(_e),this.effectManager.setProps(_e),this.deckRenderer.setProps(_e),this.deckPicker.setProps(_e)),this.stats.get("setProps Time").timeEnd()}needsRedraw($={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let _e=this._needsRedraw;$.clearRedrawFlags&&(this._needsRedraw=!1);const et=this.viewManager.needsRedraw($),tt=this.layerManager.needsRedraw($),rt=this.effectManager.needsRedraw($),nt=this.deckRenderer.needsRedraw($);return _e=_e||et||tt||rt||nt,_e}redraw($){if(!this.layerManager)return;let _e=this.needsRedraw({clearRedrawFlags:!0});_e=$||_e,_e&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(_e):this._drawLayers(_e))}get isInitialized(){return this.viewManager!==null}getViews(){return assert$4(this.viewManager),this.viewManager.views}getViewports($){return assert$4(this.viewManager),this.viewManager.getViewports($)}pickObject($){const _e=this._pick("pickObject","pickObject Time",$).result;return _e.length?_e[0]:null}pickMultipleObjects($){return $.depth=$.depth||10,this._pick("pickObject","pickMultipleObjects Time",$).result}pickObjects($){return this._pick("pickObjects","pickObjects Time",$)}_addResources($,_e=!1){for(const et in $)this.layerManager.resourceManager.add({resourceId:et,data:$[et],forceUpdate:_e})}_removeResources($){for(const _e of $)this.layerManager.resourceManager.remove(_e)}_pick($,_e,et){assert$4(this.deckPicker);const{stats:tt}=this;tt.get("Pick Count").incrementCount(),tt.get(_e).timeStart();const rt=this.deckPicker[$]({layers:this.layerManager.getLayers(et),views:this.viewManager.getViews(),viewports:this.getViewports(et),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...et});return tt.get(_e).timeEnd(),rt}_createCanvas($){let _e=$.canvas;return typeof _e=="string"&&(_e=document.getElementById(_e),assert$4(_e)),_e||(_e=document.createElement("canvas"),_e.id=$.id||"deckgl-overlay",($.parent||document.body).appendChild(_e)),Object.assign(_e.style,$.style),_e}_setCanvasSize($){if(!this.canvas)return;const{width:_e,height:et}=$;if(_e||_e===0){const rt=Number.isFinite(_e)?"".concat(_e,"px"):_e;this.canvas.style.width=rt}if(et||et===0){var tt;const rt=Number.isFinite(et)?"".concat(et,"px"):et;this.canvas.style.position=((tt=$.style)===null||tt===void 0?void 0:tt.position)||"absolute",this.canvas.style.height=rt}}_updateCanvasSize(){const{canvas:$}=this;if(!$)return;const _e=$.clientWidth||$.width,et=$.clientHeight||$.height;if(_e!==this.width||et!==this.height){var tt;this.width=_e,this.height=et,(tt=this.viewManager)===null||tt===void 0||tt.setProps({width:_e,height:et}),this.props.onResize({width:_e,height:et})}}_createAnimationLoop($){const{width:_e,height:et,gl:tt,glOptions:rt,debug:nt,onError:it,onBeforeRender:ot,onAfterRender:At,useDevicePixels:ut}=$;return new AnimationLoop({width:_e,height:et,useDevicePixels:ut,autoResizeViewport:!1,gl:tt,onCreateContext:ft=>createGLContext({...rt,...ft,canvas:this.canvas,debug:nt,onContextLost:()=>this._onContextLost()}),onInitialize:ft=>this._setGLContext(ft.gl),onRender:this._onRenderFrame.bind(this),onBeforeRender:ot,onAfterRender:At,onError:it})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let $=this.props.views||[new MapView({id:"default-view"})];return $=Array.isArray($)?$:[$],$.length&&this.props.controller&&($[0].props.controller=this.props.controller),$}_onContextLost(){const{onError:$}=this.props;this.animationLoop&&$&&$(new Error("WebGL context is lost"))}_pickAndCallback(){const{_pickRequest:$}=this;if($.event){const{result:et,emptyInfo:tt}=this._pick("pickObject","pickObject Time",$);this.cursorState.isHovering=et.length>0;let rt=tt,nt=!1;for(const it of et){var _e;rt=it,nt=((_e=it.layer)===null||_e===void 0?void 0:_e.onHover(it,$.event))||nt}if(!nt&&this.props.onHover&&this.props.onHover(rt,$.event),this.props.getTooltip&&this.tooltip){const it=this.props.getTooltip(rt);this.tooltip.setTooltip(it,rt.x,rt.y)}$.event=null}}_updateCursor(){const $=this.props.parent||this.canvas;$&&($.style.cursor=this.props.getCursor(this.cursorState))}_setGLContext($){if(this.layerManager)return;this.canvas||(this.canvas=$.canvas,instrumentGLContext($,{enable:!0,copyState:!0})),this.tooltip=new Tooltip(this.canvas),setParameters($,{blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onWebGLInitialized($);const _e=new Timeline;_e.play(),this.animationLoop.attachTimeline(_e),this.eventManager=new EventManager(this.props.parent||$.canvas,{touchAction:this.props.touchAction,recognizerOptions:this.props.eventRecognizerOptions,events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(const tt in EVENTS)this.eventManager.on(tt,this._onEvent);this.viewManager=new ViewManager({timeline:_e,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});const et=this.viewManager.getViewports()[0];this.layerManager=new LayerManager($,{deck:this,stats:this.stats,viewport:et,timeline:_e}),this.effectManager=new EffectManager,this.deckRenderer=new DeckRenderer($),this.deckPicker=new DeckPicker($),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers($,_e){const{gl:et}=this.layerManager.context;setParameters(et,this.props.parameters),this.props.onBeforeRender({gl:et}),this.deckRenderer.renderLayers({target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",redrawReason:$,effects:this.effectManager.getEffects(),..._e}),this.props.onAfterRender({gl:et})}_onRenderFrame($){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),log$3.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.tooltip.isVisible&&this.viewManager.needsRedraw()&&this.tooltip.setTooltip(null),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange($){const _e=this.props.onViewStateChange($)||$.viewState;this.viewState&&(this.viewState={...this.viewState,[$.viewId]:_e},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange($){this.cursorState.isDragging=$.isDragging||!1,this.props.onInteractionStateChange($)}_getFrameStats(){const{stats:$}=this;$.get("frameRate").timeEnd(),$.get("frameRate").timeStart();const _e=this.animationLoop.stats;$.get("GPU Time").addTime(_e.get("GPU Time").lastTiming),$.get("CPU Time").addTime(_e.get("CPU Time").lastTiming)}_getMetrics(){const{metrics:$,stats:_e}=this;$.fps=_e.get("frameRate").getHz(),$.setPropsTime=_e.get("setProps Time").time,$.updateAttributesTime=_e.get("Update Attributes").time,$.framesRedrawn=_e.get("Redraw Count").count,$.pickTime=_e.get("pickObject Time").time+_e.get("pickMultipleObjects Time").time+_e.get("pickObjects Time").time,$.pickCount=_e.get("Pick Count").count,$.gpuTime=_e.get("GPU Time").time,$.cpuTime=_e.get("CPU Time").time,$.gpuTimePerFrame=_e.get("GPU Time").getAverageTime(),$.cpuTimePerFrame=_e.get("CPU Time").getAverageTime();const et=lumaStats.get("Memory Usage");$.bufferMemory=et.get("Buffer Memory").count,$.textureMemory=et.get("Texture Memory").count,$.renderbufferMemory=et.get("Renderbuffer Memory").count,$.gpuMemory=et.get("GPU Memory").count}}_defineProperty$e(Deck,"defaultProps",defaultProps$M);_defineProperty$e(Deck,"VERSION",deckGlobal.VERSION);class ShaderAttribute{constructor($,_e){_defineProperty$e(this,"opts",void 0),_defineProperty$e(this,"source",void 0),this.opts=_e,this.source=$}get value(){return this.source.value}getValue(){const $=this.source.getBuffer(),_e=this.getAccessor();if($)return[$,_e];const{value:et}=this.source,{size:tt}=_e;let rt=et;if(et&&et.length!==tt){rt=new Float32Array(tt);const nt=_e.elementOffset||0;for(let it=0;it=rt){const nt=new Array(tt).fill(1/0),it=new Array(tt).fill(-1/0);for(let ot=0;otit[At]&&(it[At]=ut)}$=[nt,it]}}return this.state.bounds=$,$}setData($){const{state:_e}=this;let et;ArrayBuffer.isView($)?et={value:$}:$ instanceof Buffer$1?et={buffer:$}:et=$;const tt={...this.settings,...et};if(_e.bufferAccessor=tt,_e.bounds=null,et.constant){let rt=et.value;if(rt=this._normalizeValue(rt,[],0),this.settings.normalized&&(rt=this.normalizeConstant(rt)),!(!_e.constant||!this._areValuesEqual(rt,this.value)))return!1;_e.externalBuffer=null,_e.constant=!0,this.value=rt}else if(et.buffer){const rt=et.buffer;_e.externalBuffer=rt,_e.constant=!1,this.value=et.value||null;const nt=et.value instanceof Float64Array;tt.type=et.type||rt.accessor.type,tt.bytesPerElement=rt.accessor.BYTES_PER_ELEMENT*(nt?2:1),tt.stride=getStride(tt)}else if(et.value){this._checkExternalBuffer(et);let rt=et.value;_e.externalBuffer=null,_e.constant=!1,this.value=rt,tt.bytesPerElement=rt.BYTES_PER_ELEMENT,tt.stride=getStride(tt);const{buffer:nt,byteOffset:it}=this;this.doublePrecision&&rt instanceof Float64Array&&(rt=toDoublePrecisionArray(rt,tt));const ot=rt.byteLength+it+tt.stride*2;nt.byteLength(_e+128)/255*2-1);case 5122:return new Float32Array($).map(_e=>(_e+32768)/65535*2-1);case 5121:return new Float32Array($).map(_e=>_e/255);case 5123:return new Float32Array($).map(_e=>_e/65535);default:return $}}_normalizeValue($,_e,et){const{defaultValue:tt,size:rt}=this.settings;if(Number.isFinite($))return _e[et]=$,_e;if(!$)return _e[et]=tt[0],_e;switch(rt){case 4:_e[et+3]=Number.isFinite($[3])?$[3]:tt[3];case 3:_e[et+2]=Number.isFinite($[2])?$[2]:tt[2];case 2:_e[et+1]=Number.isFinite($[1])?$[1]:tt[1];case 1:_e[et+0]=Number.isFinite($[0])?$[0]:tt[0];break;default:let nt=rt;for(;--nt>=0;)_e[et+nt]=Number.isFinite($[nt])?$[nt]:tt[nt]}return _e}_areValuesEqual($,_e){if(!$||!_e)return!1;const{size:et}=this;for(let tt=0;tt0&&(placeholderArray.length=j.length,et=placeholderArray):et=EMPTY_ARRAY$2,($>0||Number.isFinite(_e))&&(et=(Array.isArray(et)?et:Array.from(et)).slice($,_e),tt.index=$-1),{iterable:et,objectInfo:tt}}function isAsyncIterable(j){return j&&j[Symbol.asyncIterator]}function getAccessorFromBuffer(j,$){const{size:_e,stride:et,offset:tt,startIndices:rt,nested:nt}=$,it=j.BYTES_PER_ELEMENT,ot=et?et/it:_e,At=tt?tt/it:0,ut=Math.floor((j.length-At)/ot);return(ft,{index:dt,target:Et})=>{if(!rt){const $t=dt*ot+At;for(let Rt=0;Rt<_e;Rt++)Et[Rt]=j[$t+Rt];return Et}const Bt=rt[dt],St=rt[dt+1]||ut;let Dt;if(nt){Dt=new Array(St-Bt);for(let $t=Bt;$t=$[1]))return j;const _e=[],et=j.length;let tt=0;for(let rt=0;rt$[1]?_e.push(nt):$=[Math.min(nt[0],$[0]),Math.max(nt[1],$[1])]}return _e.splice(tt,0,$),_e}function padArrayChunk(j){const{source:$,target:_e,start:et=0,size:tt,getData:rt}=j,nt=j.end||_e.length,it=$.length,ot=nt-et;if(it>ot){_e.set($.subarray(0,ot),et);return}if(_e.set($,et),!rt)return;let At=it;for(;Atet(ut+it,ft)),At=Math.min(tt.length,rt.length);for(let ut=1;utj},spring:{stiffness:.05,damping:.5}};function normalizeTransitionSettings(j,$){if(!j)return null;Number.isFinite(j)&&(j={type:"interpolation",duration:j});const _e=j.type||"interpolation";return{...DEFAULT_TRANSITION_SETTINGS[_e],...$,...j,type:_e}}function getSourceBufferAttribute(j,$){const _e=$.getBuffer();return _e?[_e,{divisor:0,size:$.size,normalized:$.settings.normalized}]:$.value}function getAttributeTypeFromSize(j){switch(j){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error('No defined attribute type for size "'.concat(j,'"'))}}function cycleBuffers(j){j.push(j.shift())}function getAttributeBufferLength(j,$){const{doublePrecision:_e,settings:et,value:tt,size:rt}=j,nt=_e&&tt instanceof Float64Array?2:1;return(et.noAlloc?tt.length:$*rt)*nt}function padBuffer({buffer:j,numInstances:$,attribute:_e,fromLength:et,fromStartIndices:tt,getData:rt=nt=>nt}){const nt=_e.doublePrecision&&_e.value instanceof Float64Array?2:1,it=_e.size*nt,ot=_e.byteOffset,At=_e.startIndices,ut=tt&&At,ft=getAttributeBufferLength(_e,$),dt=_e.isConstant;if(!ut&&et>=ft)return;const Et=dt?_e.value:_e.getBuffer().getData({srcByteOffset:ot});if(_e.settings.normalized&&!dt){const $t=rt;rt=(Rt,wt)=>_e.normalizeConstant($t(Rt,wt))}const Bt=dt?($t,Rt)=>rt(Et,Rt):($t,Rt)=>rt(Et.subarray($t,$t+it),Rt),St=j.getData({length:et}),Dt=new Float32Array(ft);padArray({source:St,target:Dt,sourceStartIndices:tt,targetStartIndices:At,size:it,getData:Bt}),j.byteLength$[rt])]:$[_e];return normalizeTransitionSettings(tt,et)}setNeedsUpdate($=this.id,_e){if(this.state.needsUpdate=this.state.needsUpdate||$,this.setNeedsRedraw($),_e){const{startRow:et=0,endRow:tt=1/0}=_e;this.state.updateRanges=add$1(this.state.updateRanges,[et,tt])}else this.state.updateRanges=FULL}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=EMPTY$1}setNeedsRedraw($=this.id){this.state.needsRedraw=this.state.needsRedraw||$}allocate($){const{state:_e,settings:et}=this;return et.noAlloc?!1:et.update?(super.allocate($,_e.updateRanges!==FULL),!0):!1}updateBuffer({numInstances:$,data:_e,props:et,context:tt}){if(!this.needsUpdate())return!1;const{state:{updateRanges:rt},settings:{update:nt,noAlloc:it}}=this;let ot=!0;if(nt){for(const[At,ut]of rt)nt.call(tt,this,{data:_e,startRow:At,endRow:ut,props:et,numInstances:$});if(this.value)if(this.constant||this.buffer.byteLengthut?At.set(wt,St):($._normalizeValue(wt,$t.target,0),fillArray({target:At,source:$t.target,start:St,count:xt}));St+=xt*ut}else $._normalizeValue(wt,At,St),St+=ut}}_validateAttributeUpdaters(){const{settings:$}=this;if(!($.noAlloc||typeof $.update=="function"))throw new Error("Attribute ".concat(this.id," missing update or accessor"))}_checkAttributeArray(){const{value:$}=this,_e=Math.min(4,this.size);if($&&$.length>=_e){let et=!0;switch(_e){case 4:et=et&&Number.isFinite($[3]);case 3:et=et&&Number.isFinite($[2]);case 2:et=et&&Number.isFinite($[1]);case 1:et=et&&Number.isFinite($[0]);break;default:et=!1}if(!et)throw new Error("Illegal attribute generated for ".concat(this.id))}}}class GPUInterpolationTransition{constructor({gl:$,attribute:_e,timeline:et}){_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"type","interpolation"),_defineProperty$e(this,"attributeInTransition",void 0),_defineProperty$e(this,"settings",void 0),_defineProperty$e(this,"attribute",void 0),_defineProperty$e(this,"transition",void 0),_defineProperty$e(this,"currentStartIndices",void 0),_defineProperty$e(this,"currentLength",void 0),_defineProperty$e(this,"transform",void 0),_defineProperty$e(this,"buffers",void 0),this.gl=$,this.transition=new Transition$3(et),this.attribute=_e,this.attributeInTransition=new Attribute($,_e.settings),this.currentStartIndices=_e.startIndices,this.currentLength=0,this.transform=getTransform$1($,_e);const tt={byteLength:0,usage:35050};this.buffers=[new Buffer$1($,tt),new Buffer$1($,tt)]}get inProgress(){return this.transition.inProgress}start($,_e){if($.duration<=0){this.transition.cancel();return}this.settings=$;const{gl:et,buffers:tt,attribute:rt}=this;cycleBuffers(tt);const nt={numInstances:_e,attribute:rt,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:$.enter};for(const it of tt)padBuffer({buffer:it,...nt});this.currentStartIndices=rt.startIndices,this.currentLength=getAttributeBufferLength(rt,_e),this.attributeInTransition.setData({buffer:tt[1],value:rt.value}),this.transition.start($),this.transform.update({elementCount:Math.floor(this.currentLength/rt.size),sourceBuffers:{aFrom:tt[0],aTo:getSourceBufferAttribute(et,rt)},feedbackBuffers:{vCurrent:tt[1]}})}update(){const $=this.transition.update();if($){const{duration:_e,easing:et}=this.settings,{time:tt}=this.transition;let rt=tt/_e;et&&(rt=et(rt)),this.transform.run({uniforms:{time:rt}})}return $}cancel(){this.transition.cancel(),this.transform.delete();for(const $ of this.buffers)$.delete();this.buffers.length=0}}const vs$i=` +#define SHADER_NAME interpolation-transition-vertex-shader + +uniform float time; +attribute ATTRIBUTE_TYPE aFrom; +attribute ATTRIBUTE_TYPE aTo; +varying ATTRIBUTE_TYPE vCurrent; + +void main(void) { + vCurrent = mix(aFrom, aTo, time); + gl_Position = vec4(0.0); +} +`;function getTransform$1(j,$){const _e=getAttributeTypeFromSize($.size);return new Transform$1(j,{vs:vs$i,defines:{ATTRIBUTE_TYPE:_e},varyings:["vCurrent"]})}class GPUSpringTransition{constructor({gl:$,attribute:_e,timeline:et}){_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"type","spring"),_defineProperty$e(this,"attributeInTransition",void 0),_defineProperty$e(this,"settings",void 0),_defineProperty$e(this,"attribute",void 0),_defineProperty$e(this,"transition",void 0),_defineProperty$e(this,"currentStartIndices",void 0),_defineProperty$e(this,"currentLength",void 0),_defineProperty$e(this,"texture",void 0),_defineProperty$e(this,"framebuffer",void 0),_defineProperty$e(this,"transform",void 0),_defineProperty$e(this,"buffers",void 0),this.gl=$,this.type="spring",this.transition=new Transition$3(et),this.attribute=_e,this.attributeInTransition=new Attribute($,{..._e.settings,normalized:!1}),this.currentStartIndices=_e.startIndices,this.currentLength=0,this.texture=getTexture($),this.framebuffer=getFramebuffer($,this.texture),this.transform=getTransform($,_e,this.framebuffer);const tt={byteLength:0,usage:35050};this.buffers=[new Buffer$1($,tt),new Buffer$1($,tt),new Buffer$1($,tt)]}get inProgress(){return this.transition.inProgress}start($,_e){const{gl:et,buffers:tt,attribute:rt}=this,nt={numInstances:_e,attribute:rt,fromLength:this.currentLength,fromStartIndices:this.currentStartIndices,getData:$.enter};for(const it of tt)padBuffer({buffer:it,...nt});this.settings=$,this.currentStartIndices=rt.startIndices,this.currentLength=getAttributeBufferLength(rt,_e),this.attributeInTransition.setData({buffer:tt[1],value:rt.value}),this.transition.start({...$,duration:1/0}),this.transform.update({elementCount:Math.floor(this.currentLength/rt.size),sourceBuffers:{aTo:getSourceBufferAttribute(et,rt)}})}update(){const{buffers:$,transform:_e,framebuffer:et,transition:tt}=this;if(!tt.update())return!1;const nt=this.settings;return _e.update({sourceBuffers:{aPrev:$[0],aCur:$[1]},feedbackBuffers:{vNext:$[2]}}),_e.run({framebuffer:et,discard:!1,clearRenderTarget:!0,uniforms:{stiffness:nt.stiffness,damping:nt.damping},parameters:{depthTest:!1,blend:!0,viewport:[0,0,1,1],blendFunc:[1,1],blendEquation:[32776,32776]}}),cycleBuffers($),this.attributeInTransition.setData({buffer:$[1],value:this.attribute.value}),readPixelsToArray(et)[0]>0||tt.end(),!0}cancel(){this.transition.cancel(),this.transform.delete();for(const $ of this.buffers)$.delete();this.buffers.length=0,this.texture.delete(),this.framebuffer.delete()}}function getTransform(j,$,_e){const et=getAttributeTypeFromSize($.size);return new Transform$1(j,{framebuffer:_e,vs:` +#define SHADER_NAME spring-transition-vertex-shader + +#define EPSILON 0.00001 + +uniform float stiffness; +uniform float damping; +attribute ATTRIBUTE_TYPE aPrev; +attribute ATTRIBUTE_TYPE aCur; +attribute ATTRIBUTE_TYPE aTo; +varying ATTRIBUTE_TYPE vNext; +varying float vIsTransitioningFlag; + +ATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) { + ATTRIBUTE_TYPE velocity = cur - prev; + ATTRIBUTE_TYPE delta = dest - cur; + ATTRIBUTE_TYPE spring = delta * stiffness; + ATTRIBUTE_TYPE damper = velocity * -1.0 * damping; + return spring + damper + velocity + cur; +} + +void main(void) { + bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON; + vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0; + + vNext = getNextValue(aCur, aPrev, aTo); + gl_Position = vec4(0, 0, 0, 1); + gl_PointSize = 100.0; +} +`,fs:` +#define SHADER_NAME spring-transition-is-transitioning-fragment-shader + +varying float vIsTransitioningFlag; + +void main(void) { + if (vIsTransitioningFlag == 0.0) { + discard; + } + gl_FragColor = vec4(1.0); +}`,defines:{ATTRIBUTE_TYPE:et},varyings:["vNext"]})}function getTexture(j){return new Texture2D(j,{data:new Uint8Array(4),format:6408,type:5121,border:0,mipmaps:!1,dataFormat:6408,width:1,height:1})}function getFramebuffer(j,$){return new Framebuffer(j,{id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,attachments:{36064:$}})}const TRANSITION_TYPES$1={interpolation:GPUInterpolationTransition,spring:GPUSpringTransition};class AttributeTransitionManager{constructor($,{id:_e,timeline:et}){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"isSupported",void 0),_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"timeline",void 0),_defineProperty$e(this,"transitions",void 0),_defineProperty$e(this,"needsRedraw",void 0),_defineProperty$e(this,"numInstances",void 0),this.id=_e,this.gl=$,this.timeline=et,this.transitions={},this.needsRedraw=!1,this.numInstances=1,this.isSupported=Transform$1.isSupported($)}finalize(){for(const $ in this.transitions)this._removeTransition($)}update({attributes:$,transitions:_e,numInstances:et}){this.numInstances=et||1;for(const tt in $){const rt=$[tt],nt=rt.getTransitionSetting(_e);nt&&this._updateAttribute(tt,rt,nt)}for(const tt in this.transitions){const rt=$[tt];(!rt||!rt.getTransitionSetting(_e))&&this._removeTransition(tt)}}hasAttribute($){const _e=this.transitions[$];return _e&&_e.inProgress}getAttributes(){const $={};for(const _e in this.transitions){const et=this.transitions[_e];et.inProgress&&($[_e]=et.attributeInTransition)}return $}run(){if(!this.isSupported||this.numInstances===0)return!1;for(const _e in this.transitions)this.transitions[_e].update()&&(this.needsRedraw=!0);const $=this.needsRedraw;return this.needsRedraw=!1,$}_removeTransition($){this.transitions[$].cancel(),delete this.transitions[$]}_updateAttribute($,_e,et){const tt=this.transitions[$];let rt=!tt||tt.type!==et.type;if(rt){if(!this.isSupported){log$3.warn("WebGL2 not supported by this browser. Transition for ".concat($," is disabled."))();return}tt&&this._removeTransition($);const nt=TRANSITION_TYPES$1[et.type];nt?this.transitions[$]=new nt({attribute:_e,timeline:this.timeline,gl:this.gl}):(log$3.error("unsupported transition type '".concat(et.type,"'"))(),rt=!1)}(rt||_e.needsRedraw())&&(this.needsRedraw=!0,this.transitions[$].start(et,this.numInstances))}}const TRACE_INVALIDATE="attributeManager.invalidate",TRACE_UPDATE_START="attributeManager.updateStart",TRACE_UPDATE_END="attributeManager.updateEnd",TRACE_ATTRIBUTE_UPDATE_START="attribute.updateStart",TRACE_ATTRIBUTE_ALLOCATE="attribute.allocate",TRACE_ATTRIBUTE_UPDATE_END="attribute.updateEnd";class AttributeManager{constructor($,{id:_e="attribute-manager",stats:et,timeline:tt}={}){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"attributes",void 0),_defineProperty$e(this,"updateTriggers",void 0),_defineProperty$e(this,"needsRedraw",void 0),_defineProperty$e(this,"userData",void 0),_defineProperty$e(this,"stats",void 0),_defineProperty$e(this,"attributeTransitionManager",void 0),this.id=_e,this.gl=$,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=et,this.attributeTransitionManager=new AttributeTransitionManager($,{id:"".concat(_e,"-transitions"),timeline:tt}),Object.seal(this)}finalize(){for(const $ in this.attributes)this.attributes[$].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw($={clearRedrawFlags:!1}){const _e=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!$.clearRedrawFlags,_e&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add($){this._add($)}addInstanced($){this._add($,{instanced:1})}remove($){for(const _e of $)this.attributes[_e]!==void 0&&(this.attributes[_e].delete(),delete this.attributes[_e])}invalidate($,_e){const et=this._invalidateTrigger($,_e);debug(TRACE_INVALIDATE,this,$,et)}invalidateAll($){for(const _e in this.attributes)this.attributes[_e].setNeedsUpdate(_e,$);debug(TRACE_INVALIDATE,this,"all")}update({data:$,numInstances:_e,startIndices:et=null,transitions:tt,props:rt={},buffers:nt={},context:it={}}){let ot=!1;debug(TRACE_UPDATE_START,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(const At in this.attributes){const ut=this.attributes[At],ft=ut.settings.accessor;ut.startIndices=et,ut.numInstances=_e,rt[At]&&log$3.removed("props.".concat(At),"data.attributes.".concat(At))(),ut.setExternalBuffer(nt[At])||ut.setBinaryValue(typeof ft=="string"?nt[ft]:void 0,$.startIndices)||typeof ft=="string"&&!nt[ft]&&ut.setConstantValue(rt[ft])||ut.needsUpdate()&&(ot=!0,this._updateAttribute({attribute:ut,numInstances:_e,data:$,props:rt,context:it})),this.needsRedraw=this.needsRedraw||ut.needsRedraw()}ot&&debug(TRACE_UPDATE_END,this,_e),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:_e,transitions:tt})}updateTransition(){const{attributeTransitionManager:$}=this,_e=$.run();return this.needsRedraw=this.needsRedraw||_e,_e}getAttributes(){return this.attributes}getChangedAttributes($={clearChangedFlags:!1}){const{attributes:_e,attributeTransitionManager:et}=this,tt={...et.getAttributes()};for(const rt in _e){const nt=_e[rt];nt.needsRedraw($)&&!et.hasAttribute(rt)&&(tt[rt]=nt)}return tt}getShaderAttributes($,_e={}){$||($=this.getAttributes());const et={};for(const tt in $)_e[tt]||Object.assign(et,$[tt].getShaderAttributes());return et}_add($,_e={}){for(const et in $){const tt=$[et];this.attributes[et]=this._createAttribute(et,tt,_e)}this._mapUpdateTriggersToAttributes()}_createAttribute($,_e,et){const tt={..._e,id:$,size:_e.isIndexed&&1||_e.size||1,divisor:et.instanced?1:_e.divisor||0};return new Attribute(this.gl,tt)}_mapUpdateTriggersToAttributes(){const $={};for(const _e in this.attributes)this.attributes[_e].getUpdateTriggers().forEach(tt=>{$[tt]||($[tt]=[]),$[tt].push(_e)});this.updateTriggers=$}_invalidateTrigger($,_e){const{attributes:et,updateTriggers:tt}=this,rt=tt[$];return rt&&rt.forEach(nt=>{const it=et[nt];it&&it.setNeedsUpdate(it.id,_e)}),rt}_updateAttribute($){const{attribute:_e,numInstances:et}=$;if(debug(TRACE_ATTRIBUTE_UPDATE_START,_e),_e.constant){_e.setConstantValue(_e.value);return}_e.allocate(et)&&debug(TRACE_ATTRIBUTE_ALLOCATE,_e,et),_e.updateBuffer($)&&(this.needsRedraw=!0,debug(TRACE_ATTRIBUTE_UPDATE_END,_e,et))}}class CPUInterpolationTransition extends Transition$3{get value(){return this._value}_onUpdate(){const{time:$,settings:{fromValue:_e,toValue:et,duration:tt,easing:rt}}=this,nt=rt($/tt);this._value=lerp$5(_e,et,nt)}}const EPSILON=1e-5;function updateSpringElement(j,$,_e,et,tt){const rt=$-j,it=(_e-$)*tt,ot=-rt*et;return it+ot+rt+$}function updateSpring(j,$,_e,et,tt){if(Array.isArray(_e)){const rt=[];for(let nt=0;nt<_e.length;nt++)rt[nt]=updateSpringElement(j[nt],$[nt],_e[nt],et,tt);return rt}return updateSpringElement(j,$,_e,et,tt)}function distance$3(j,$){if(Array.isArray(j)){let _e=0;for(let et=0;et0}add($,_e,et,tt){const{transitions:rt}=this;if(rt.has($)){const ot=rt.get($),{value:At=ot.settings.fromValue}=ot;_e=At,this.remove($)}if(tt=normalizeTransitionSettings(tt),!tt)return;const nt=TRANSITION_TYPES[tt.type];if(!nt){log$3.error("unsupported transition type '".concat(tt.type,"'"))();return}const it=new nt(this.timeline);it.start({...tt,fromValue:_e,toValue:et}),rt.set($,it)}remove($){const{transitions:_e}=this;_e.has($)&&(_e.get($).cancel(),_e.delete($))}update(){const $={};for(const[_e,et]of this.transitions)et.update(),$[_e]=et.value,et.inProgress||this.remove(_e);return $}clear(){for(const $ of this.transitions.keys())this.remove($)}}function validateProps(j){const $=getPropTypes(j);for(const _e in $){const et=$[_e],{validate:tt}=et;if(tt&&!tt(j[_e],et))throw new Error("Invalid prop ".concat(_e,": ").concat(j[_e]))}}function diffProps(j,$){const _e=compareProps({newProps:j,oldProps:$,propTypes:getPropTypes(j),ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),et=diffDataProps(j,$);let tt=!1;return et||(tt=diffUpdateTriggers(j,$)),{dataChanged:et,propsChanged:_e,updateTriggersChanged:tt,extensionsChanged:diffExtensions(j,$),transitionsChanged:diffTransitions(j,$)}}function diffTransitions(j,$){if(!j.transitions)return!1;const _e={},et=getPropTypes(j);let tt=!1;for(const rt in j.transitions){const nt=et[rt],it=nt&&nt.type;(it==="number"||it==="color"||it==="array")&&comparePropValues(j[rt],$[rt],nt)&&(_e[rt]=!0,tt=!0)}return tt?_e:!1}function compareProps({newProps:j,oldProps:$,ignoreProps:_e={},propTypes:et={},triggerName:tt="props"}){if($===j)return!1;if(typeof j!="object"||j===null||typeof $!="object"||$===null)return"".concat(tt," changed shallowly");for(const rt of Object.keys(j))if(!(rt in _e)){if(!(rt in $))return"".concat(tt,".").concat(rt," added");const nt=comparePropValues(j[rt],$[rt],et[rt]);if(nt)return"".concat(tt,".").concat(rt," ").concat(nt)}for(const rt of Object.keys($))if(!(rt in _e)){if(!(rt in j))return"".concat(tt,".").concat(rt," dropped");if(!Object.hasOwnProperty.call(j,rt)){const nt=comparePropValues(j[rt],$[rt],et[rt]);if(nt)return"".concat(tt,".").concat(rt," ").concat(nt)}}return!1}function comparePropValues(j,$,_e){let et=_e&&_e.equal;return et&&!et(j,$,_e)||!et&&(et=j&&$&&j.equals,et&&!et.call(j,$))?"changed deeply":!et&&$!==j?"changed shallowly":null}function diffDataProps(j,$){if($===null)return"oldProps is null, initial diff";let _e=!1;const{dataComparator:et,_dataDiff:tt}=j;return et?et(j.data,$.data)||(_e="Data comparator detected a change"):j.data!==$.data&&(_e="A new data container was supplied"),_e&&tt&&(_e=tt(j.data,$.data)||_e),_e}function diffUpdateTriggers(j,$){if($===null)return{all:!0};if("all"in j.updateTriggers&&diffUpdateTrigger(j,$,"all"))return{all:!0};const _e={};let et=!1;for(const tt in j.updateTriggers)tt!=="all"&&diffUpdateTrigger(j,$,tt)&&(_e[tt]=!0,et=!0);return et?_e:!1}function diffExtensions(j,$){if($===null)return!0;const _e=$.extensions,{extensions:et}=j;if(et===_e)return!1;if(!_e||!et||et.length!==_e.length)return!0;for(let tt=0;ttet.name==="project64"))){const et=_e.modules.findIndex(tt=>tt.name==="project32");et>=0&&_e.modules.splice(et,1)}if("inject"in $)if(!j.inject)_e.inject=$.inject;else{const et={...j.inject};for(const tt in $.inject)et[tt]=(et[tt]||"")+$.inject[tt];_e.inject=et}return _e}const DEFAULT_TEXTURE_PARAMETERS$1={10241:9987,10240:9729,10242:33071,10243:33071},internalTextures={};function createTexture(j,$){const _e=j.context&&j.context.gl;if(!_e||!$)return null;if($ instanceof Texture2D)return $;$.constructor&&$.constructor.name!=="Object"&&($={data:$});let et=null;$.compressed&&(et={10241:$.data.length>1?9985:9729});const tt=new Texture2D(_e,{...$,parameters:{...DEFAULT_TEXTURE_PARAMETERS$1,...et,...j.props.textureParameters}});return internalTextures[tt.id]=!0,tt}function destroyTexture(j){!j||!(j instanceof Texture2D)||internalTextures[j.id]&&(j.delete(),delete internalTextures[j.id])}const TYPE_DEFINITIONS={boolean:{validate(j,$){return!0},equal(j,$,_e){return!!j==!!$}},number:{validate(j,$){return Number.isFinite(j)&&(!("max"in $)||j<=$.max)&&(!("min"in $)||j>=$.min)}},color:{validate(j,$){return $.optional&&!j||isArray(j)&&(j.length===3||j.length===4)},equal(j,$,_e){return arrayEqual(j,$)}},accessor:{validate(j,$){const _e=getTypeOf(j);return _e==="function"||_e===getTypeOf($.value)},equal(j,$,_e){return typeof $=="function"?!0:arrayEqual(j,$)}},array:{validate(j,$){return $.optional&&!j||isArray(j)},equal(j,$,_e){return _e.compare?arrayEqual(j,$):j===$}},object:{equal(j,$,_e){return _e.compare?deepEqual$2(j,$):j===$}},function:{validate(j,$){return $.optional&&!j||typeof j=="function"},equal(j,$,_e){return!_e.compare||j===$}},data:{transform:(j,$,_e)=>{const{dataTransform:et}=_e.props;return et&&j?et(j):j}},image:{transform:(j,$,_e)=>createTexture(_e,j),release:j=>{destroyTexture(j)}}};function arrayEqual(j,$){if(j===$)return!0;if(!isArray(j)||!isArray($))return!1;const _e=j.length;if(_e!==$.length)return!1;for(let et=0;et<_e;et++)if(j[et]!==$[et])return!1;return!0}function parsePropTypes(j){const $={},_e={},et={};for(const[tt,rt]of Object.entries(j)){const nt=rt==null?void 0:rt.deprecatedFor;if(nt)et[tt]=Array.isArray(nt)?nt:[nt];else{const it=parsePropType(tt,rt);$[tt]=it,_e[tt]=it.value}}return{propTypes:$,defaultProps:_e,deprecatedProps:et}}function parsePropType(j,$){switch(getTypeOf($)){case"object":return normalizePropDefinition(j,$);case"array":return normalizePropDefinition(j,{type:"array",value:$,compare:!1});case"boolean":return normalizePropDefinition(j,{type:"boolean",value:$});case"number":return normalizePropDefinition(j,{type:"number",value:$});case"function":return normalizePropDefinition(j,{type:"function",value:$,compare:!0});default:return{name:j,type:"unknown",value:$}}}function normalizePropDefinition(j,$){return"type"in $?{name:j,...TYPE_DEFINITIONS[$.type],...$}:"value"in $?{name:j,type:getTypeOf($.value),...$}:{name:j,type:"object",value:$}}function isArray(j){return Array.isArray(j)||ArrayBuffer.isView(j)}function getTypeOf(j){return isArray(j)?"array":j===null?"null":typeof j}function createProps(j,$){const _e=getPropsPrototype(j.constructor),et=Object.create(_e);et[COMPONENT_SYMBOL]=j,et[ASYNC_ORIGINAL_SYMBOL]={},et[ASYNC_RESOLVED_SYMBOL]={};for(let tt=0;tt<$.length;++tt){const rt=$[tt];for(const nt in rt)et[nt]=rt[nt]}return Object.freeze(et),et}function getPropsPrototype(j){const $=getOwnProperty(j,"_mergedDefaultProps");return $||(createPropsPrototypeAndTypes(j),j._mergedDefaultProps)}function createPropsPrototypeAndTypes(j){if(!j.prototype)return;const _e=Object.getPrototypeOf(j),et=getPropsPrototype(_e),tt=getOwnProperty(j,"defaultProps")||{},rt=parsePropTypes(tt),nt=createPropsPrototype(rt.defaultProps,et,j),it={..._e._propTypes,...rt.propTypes};addAsyncPropsToPropPrototype(nt,it);const ot={..._e._deprecatedProps,...rt.deprecatedProps};addDeprecatedPropsToPropPrototype(nt,ot),j._mergedDefaultProps=nt,j._propTypes=it,j._deprecatedProps=ot}function createPropsPrototype(j,$,_e){const et=Object.create(null);Object.assign(et,$,j);const tt=getComponentName(_e);return delete j.id,Object.defineProperties(et,{id:{writable:!0,value:tt}}),et}function addDeprecatedPropsToPropPrototype(j,$){for(const _e in $)Object.defineProperty(j,_e,{enumerable:!1,set(et){const tt="".concat(this.id,": ").concat(_e);for(const rt of $[_e])hasOwnProperty$1(this,rt)||(this[rt]=et);log$3.deprecated(tt,$[_e].join("/"))()}})}function addAsyncPropsToPropPrototype(j,$){const _e={},et={};for(const tt in $){const rt=$[tt],{name:nt,value:it}=rt;rt.async&&(_e[nt]=it,et[nt]=getDescriptorForAsyncProp(nt))}j[ASYNC_DEFAULTS_SYMBOL]=_e,j[ASYNC_ORIGINAL_SYMBOL]={},Object.defineProperties(j,et)}function getDescriptorForAsyncProp(j){return{enumerable:!0,set($){typeof $=="string"||$ instanceof Promise||isAsyncIterable($)?this[ASYNC_ORIGINAL_SYMBOL][j]=$:this[ASYNC_RESOLVED_SYMBOL][j]=$},get(){if(this[ASYNC_RESOLVED_SYMBOL]){if(j in this[ASYNC_RESOLVED_SYMBOL])return this[ASYNC_RESOLVED_SYMBOL][j]||this[ASYNC_DEFAULTS_SYMBOL][j];if(j in this[ASYNC_ORIGINAL_SYMBOL]){const $=this[COMPONENT_SYMBOL]&&this[COMPONENT_SYMBOL].internalState;if($&&$.hasAsyncProp(j))return $.getAsyncProp(j)||this[ASYNC_DEFAULTS_SYMBOL][j]}}return this[ASYNC_DEFAULTS_SYMBOL][j]}}}function hasOwnProperty$1(j,$){return Object.prototype.hasOwnProperty.call(j,$)}function getOwnProperty(j,$){return hasOwnProperty$1(j,$)&&j[$]}function getComponentName(j){const $=getOwnProperty(j,"layerName")||getOwnProperty(j,"componentName");return $||log$3.once(0,"".concat(j.name,".componentName not specified"))(),$||j.name}let counter=0;class Component{constructor(...$){_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"props",void 0),_defineProperty$e(this,"count",void 0),this.props=createProps(this,$),this.id=this.props.id,this.count=counter++}clone($){const{props:_e}=this,et={};for(const tt in _e[ASYNC_DEFAULTS_SYMBOL])tt in _e[ASYNC_RESOLVED_SYMBOL]?et[tt]=_e[ASYNC_RESOLVED_SYMBOL][tt]:tt in _e[ASYNC_ORIGINAL_SYMBOL]&&(et[tt]=_e[ASYNC_ORIGINAL_SYMBOL][tt]);return new this.constructor({..._e,...et,...$})}}_defineProperty$e(Component,"componentName","Component");_defineProperty$e(Component,"defaultProps",{});const EMPTY_PROPS=Object.freeze({});class ComponentState{constructor($){_defineProperty$e(this,"component",void 0),_defineProperty$e(this,"onAsyncPropUpdated",void 0),_defineProperty$e(this,"asyncProps",void 0),_defineProperty$e(this,"oldProps",void 0),_defineProperty$e(this,"oldAsyncProps",void 0),this.component=$,this.asyncProps={},this.onAsyncPropUpdated=()=>{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(const $ in this.asyncProps){const _e=this.asyncProps[$];_e&&_e.type&&_e.type.release&&_e.type.release(_e.resolvedValue,_e.type,this.component)}}getOldProps(){return this.oldAsyncProps||this.oldProps||EMPTY_PROPS}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component.props}hasAsyncProp($){return $ in this.asyncProps}getAsyncProp($){const _e=this.asyncProps[$];return _e&&_e.resolvedValue}isAsyncPropLoading($){if($){const _e=this.asyncProps[$];return!!(_e&&_e.pendingLoadCount>0&&_e.pendingLoadCount!==_e.resolvedLoadCount)}for(const _e in this.asyncProps)if(this.isAsyncPropLoading(_e))return!0;return!1}reloadAsyncProp($,_e){this._watchPromise($,Promise.resolve(_e))}setAsyncProps($){const _e=$[ASYNC_RESOLVED_SYMBOL]||{},et=$[ASYNC_ORIGINAL_SYMBOL]||$,tt=$[ASYNC_DEFAULTS_SYMBOL]||{};for(const rt in _e){const nt=_e[rt];this._createAsyncPropData(rt,tt[rt]),this._updateAsyncProp(rt,nt),_e[rt]=this.getAsyncProp(rt)}for(const rt in et){const nt=et[rt];this._createAsyncPropData(rt,tt[rt]),this._updateAsyncProp(rt,nt)}}_fetch($,_e){return null}_onResolve($,_e){}_onError($,_e){}_updateAsyncProp($,_e){if(this._didAsyncInputValueChange($,_e)){if(typeof _e=="string"&&(_e=this._fetch($,_e)),_e instanceof Promise){this._watchPromise($,_e);return}if(isAsyncIterable(_e)){this._resolveAsyncIterable($,_e);return}this._setPropValue($,_e)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(const $ in this.asyncProps)Object.defineProperty(this.oldAsyncProps,$,{enumerable:!0,value:this.oldProps[$]})}}_didAsyncInputValueChange($,_e){const et=this.asyncProps[$];return _e===et.resolvedValue||_e===et.lastValue?!1:(et.lastValue=_e,!0)}_setPropValue($,_e){this._freezeAsyncOldProps();const et=this.asyncProps[$];et&&(_e=this._postProcessValue(et,_e),et.resolvedValue=_e,et.pendingLoadCount++,et.resolvedLoadCount=et.pendingLoadCount)}_setAsyncPropValue($,_e,et){const tt=this.asyncProps[$];tt&&et>=tt.resolvedLoadCount&&_e!==void 0&&(this._freezeAsyncOldProps(),tt.resolvedValue=_e,tt.resolvedLoadCount=et,this.onAsyncPropUpdated($,_e))}_watchPromise($,_e){const et=this.asyncProps[$];if(et){et.pendingLoadCount++;const tt=et.pendingLoadCount;_e.then(rt=>{rt=this._postProcessValue(et,rt),this._setAsyncPropValue($,rt,tt),this._onResolve($,rt)}).catch(rt=>{this._onError($,rt)})}}async _resolveAsyncIterable($,_e){if($!=="data"){this._setPropValue($,_e);return}const et=this.asyncProps[$];if(!et)return;et.pendingLoadCount++;const tt=et.pendingLoadCount;let rt=[],nt=0;for await(const it of _e){const{dataTransform:ot}=this.component.props;ot?rt=ot(it,rt):rt=rt.concat(it),Object.defineProperty(rt,"__diff",{enumerable:!1,value:[{startRow:nt,endRow:rt.length}]}),nt=rt.length,this._setAsyncPropValue($,rt,tt)}this._onResolve($,rt)}_postProcessValue($,_e){const et=$.type;return et&&(et.release&&et.release($.resolvedValue,et,this.component),et.transform)?et.transform(_e,et,this.component):_e}_createAsyncPropData($,_e){if(!this.asyncProps[$]){const tt=this.component&&this.component.constructor._propTypes;this.asyncProps[$]={type:tt&&tt[$],lastValue:null,resolvedValue:_e,pendingLoadCount:0,resolvedLoadCount:0}}}}class LayerState extends ComponentState{constructor({attributeManager:$,layer:_e}){super(_e),_defineProperty$e(this,"attributeManager",void 0),_defineProperty$e(this,"needsRedraw",void 0),_defineProperty$e(this,"needsUpdate",void 0),_defineProperty$e(this,"subLayers",void 0),_defineProperty$e(this,"usesPickingColorCache",void 0),_defineProperty$e(this,"changeFlags",void 0),_defineProperty$e(this,"viewport",void 0),_defineProperty$e(this,"uniformTransitions",void 0),_defineProperty$e(this,"propsInTransition",void 0),this.attributeManager=$,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}set layer($){this.component=$}_fetch($,_e){const et=this.component.props.fetch;return et?et(_e,{propName:$,layer:this.layer}):super._fetch($,_e)}_onResolve($,_e){const et=this.component.props.onDataLoad;$==="data"&&et&&et(_e,{propName:$,layer:this.layer})}_onError($,_e){this.layer.raiseError(_e,"loading ".concat($," of ").concat(this.layer))}}const TRACE_CHANGE_FLAG="layer.changeFlag",TRACE_INITIALIZE="layer.initialize",TRACE_UPDATE="layer.update",TRACE_FINALIZE="layer.finalize",TRACE_MATCHED="layer.matched",MAX_PICKING_COLOR_CACHE_SIZE=2**24-1,EMPTY_ARRAY$1=Object.freeze([]),areViewportsEqual=memoize$1$1(({oldViewport:j,viewport:$})=>j.equals($));let pickingColorCache=new Uint8ClampedArray(0);const defaultProps$L={data:{type:"data",value:EMPTY_ARRAY$1,async:!0},dataComparator:{type:"function",value:null,compare:!1,optional:!0},_dataDiff:{type:"function",value:j=>j&&j.__diff,compare:!1,optional:!0},dataTransform:{type:"function",value:null,compare:!1,optional:!0},onDataLoad:{type:"function",value:null,compare:!1,optional:!0},onError:{type:"function",value:null,compare:!1,optional:!0},fetch:{type:"function",value:(j,{propName:$,layer:_e,loaders:et,loadOptions:tt,signal:rt})=>{const{resourceManager:nt}=_e.context;if(tt=tt||_e.getLoadOptions(),et=et||_e.props.loaders,rt){var it;tt={...tt,fetch:{...(it=tt)===null||it===void 0?void 0:it.fetch,signal:rt}}}let ot=nt.contains(j);return!ot&&!tt&&(nt.add({resourceId:j,data:load(j,et),persistent:!1}),ot=!0),ot?nt.subscribe({resourceId:j,onChange:At=>{var ut;return(ut=_e.internalState)===null||ut===void 0?void 0:ut.reloadAsyncProp($,At)},consumerId:_e.id,requestId:$}):load(j,et,tt)},compare:!1},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:OPERATION.DRAW,onHover:{type:"function",value:null,compare:!1,optional:!0},onClick:{type:"function",value:null,compare:!1,optional:!0},onDragStart:{type:"function",value:null,compare:!1,optional:!0},onDrag:{type:"function",value:null,compare:!1,optional:!0},onDragEnd:{type:"function",value:null,compare:!1,optional:!0},coordinateSystem:COORDINATE_SYSTEM.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,compare:!0},getPolygonOffset:{type:"function",value:({layerIndex:j})=>[0,-j*100],compare:!1},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}};class Layer extends Component{constructor(...$){super(...$),_defineProperty$e(this,"internalState",null),_defineProperty$e(this,"lifecycle",LIFECYCLE.NO_STATE),_defineProperty$e(this,"context",void 0),_defineProperty$e(this,"state",void 0),_defineProperty$e(this,"parent",null)}get root(){let $=this;for(;$.parent;)$=$.parent;return $}toString(){const $=this.constructor.layerName||this.constructor.name;return"".concat($,"({id: '").concat(this.props.id,"'})")}project($){assert$4(this.internalState);const _e=this.internalState.viewport||this.context.viewport,et=getWorldPosition($,{viewport:_e,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[tt,rt,nt]=worldToPixels(et,_e.pixelProjectionMatrix);return $.length===2?[tt,rt]:[tt,rt,nt]}unproject($){return assert$4(this.internalState),(this.internalState.viewport||this.context.viewport).unproject($)}projectPosition($,_e){assert$4(this.internalState);const et=this.internalState.viewport||this.context.viewport;return projectPosition($,{viewport:et,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,..._e})}get isComposite(){return!1}setState($){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,$),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){return this.state&&(this.state.models||this.state.model&&[this.state.model])||[]}setModuleParameters($){for(const _e of this.getModels())_e.updateModuleSettings($)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){const{coordinateSystem:$}=this.props;return $===COORDINATE_SYSTEM.DEFAULT||$===COORDINATE_SYSTEM.LNGLAT||$===COORDINATE_SYSTEM.CARTESIAN}onHover($,_e){return this.props.onHover&&this.props.onHover($,_e)||!1}onClick($,_e){return this.props.onClick&&this.props.onClick($,_e)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor($,_e=[]){return _e[0]=$+1&255,_e[1]=$+1>>8&255,_e[2]=$+1>>8>>8&255,_e}decodePickingColor($){assert$4($ instanceof Uint8Array);const[_e,et,tt]=$;return _e+et*256+tt*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:count(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var $;const _e=this.getAttributeManager();if(!_e)return null;const{positions:et,instancePositions:tt}=_e.attributes;return($=et||tt)===null||$===void 0?void 0:$.getBounds()}getShaders($){for(const _e of this.props.extensions)$=mergeShaders($,_e.getShaders.call(this,_e));return $}shouldUpdateState($){return $.changeFlags.propsOrDataChanged}updateState($){const _e=this.getAttributeManager(),{dataChanged:et}=$.changeFlags;if(et&&_e)if(Array.isArray(et))for(const ot of et)_e.invalidateAll(ot);else _e.invalidateAll();const{props:tt,oldProps:rt}=$,nt=Number.isInteger(rt.highlightedObjectIndex)||rt.pickable,it=Number.isInteger(tt.highlightedObjectIndex)||tt.pickable;if(nt!==it&&_e){const{pickingColors:ot,instancePickingColors:At}=_e.attributes,ut=ot||At;ut&&(it&&ut.constant&&(ut.constant=!1,_e.invalidate(ut.id)),!ut.value&&!it&&(ut.constant=!0,ut.value=[0,0,0]))}}finalizeState($){for(const et of this.getModels())et.delete();const _e=this.getAttributeManager();_e&&_e.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw($){for(const _e of this.getModels())_e.draw($)}getPickingInfo({info:$,mode:_e,sourceLayer:et}){const{index:tt}=$;return tt>=0&&Array.isArray(this.props.data)&&($.object=this.props.data[tt]),$}raiseError($,_e){var et,tt;if(_e&&($.message="".concat(_e,": ").concat($.message)),!((et=(tt=this.props).onError)!==null&&et!==void 0&&et.call(tt,$))){var rt,nt;(rt=this.context)===null||rt===void 0||(nt=rt.onError)===null||nt===void 0||nt.call(rt,$,this)}}getNeedsRedraw($={clearRedrawFlags:!1}){return this._getNeedsRedraw($)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){var $;return(($=this.internalState)===null||$===void 0?void 0:$.uniformTransitions.active)||!1}activateViewport($){if(!this.internalState)return;const _e=this.internalState.viewport;this.internalState.viewport=$,(!_e||!areViewportsEqual({oldViewport:_e,viewport:$}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute($="all"){const _e=this.getAttributeManager();_e&&($==="all"?_e.invalidateAll():_e.invalidate($))}updateAttributes($){for(const _e of this.getModels())this._setModelAttributes(_e,$)}_updateAttributes(){const $=this.getAttributeManager();if(!$)return;const _e=this.props,et=this.getNumInstances(),tt=this.getStartIndices();$.update({data:_e.data,numInstances:et,startIndices:tt,props:_e,transitions:_e.transitions,buffers:_e.data.attributes,context:this});const rt=$.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(rt)}_updateAttributeTransition(){const $=this.getAttributeManager();$&&$.updateTransition()}_updateUniformTransition(){const{uniformTransitions:$}=this.internalState;if($.active){const _e=$.update(),et=Object.create(this.props);for(const tt in _e)Object.defineProperty(et,tt,{value:_e[tt]});return et}return this.props}calculateInstancePickingColors($,{numInstances:_e}){if($.constant)return;const et=Math.floor(pickingColorCache.length/3);if(this.internalState.usesPickingColorCache=!0,et<_e){_e>MAX_PICKING_COLOR_CACHE_SIZE&&log$3.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),pickingColorCache=defaultTypedArrayManager.allocate(pickingColorCache,_e,{size:3,copy:!0,maxCount:Math.max(_e,MAX_PICKING_COLOR_CACHE_SIZE)});const tt=Math.floor(pickingColorCache.length/3),rt=[];for(let nt=et;nt(log$3.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),$)}),this.internalState.layer=this,this.internalState.uniformTransitions=new UniformTransitionManager(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(const _e of this.props.extensions)_e.initializeState.call(this,this.context,_e);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState($){debug(TRACE_MATCHED,this,this===$);const{state:_e,internalState:et}=$;this!==$&&(this.internalState=et,this.internalState.layer=this,this.state=_e,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){const $=this.needsUpdate();if(debug(TRACE_UPDATE,this,$),!$)return;const _e=this.props,et=this.context,tt=this.internalState,rt=et.viewport,nt=this._updateUniformTransition();tt.propsInTransition=nt,et.viewport=tt.viewport||rt,this.props=nt;try{const it=this._getUpdateParams(),ot=this.getModels();if(et.gl)this.updateState(it);else try{this.updateState(it)}catch{}for(const ut of this.props.extensions)ut.updateState.call(this,it,ut);const At=this.getModels()[0]!==ot[0];this._postUpdate(it,At)}finally{et.viewport=rt,this.props=_e,this._clearChangeFlags(),tt.needsUpdate=!1,tt.resetOldProps()}}_finalize(){debug(TRACE_FINALIZE,this),this.finalizeState(this.context);for(const $ of this.props.extensions)$.finalizeState.call(this,$)}_drawLayer({moduleParameters:$=null,uniforms:_e={},parameters:et={}}){this._updateAttributeTransition();const tt=this.props,rt=this.context;this.props=this.internalState.propsInTransition||tt;const nt=this.props.opacity;_e.opacity=Math.pow(nt,1/2.2);try{$&&this.setModuleParameters($);const{getPolygonOffset:it}=this.props,ot=it&&it(_e)||[0,0];setParameters(rt.gl,{polygonOffset:ot}),withParameters(rt.gl,et,()=>{const At={moduleParameters:$,uniforms:_e,parameters:et,context:rt};for(const ut of this.props.extensions)ut.draw.call(this,At,ut);this.draw(At)})}finally{this.props=tt}}getChangeFlags(){var $;return($=this.internalState)===null||$===void 0?void 0:$.changeFlags}setChangeFlags($){if(!this.internalState)return;const{changeFlags:_e}=this.internalState;for(const tt in $)if($[tt]){let rt=!1;switch(tt){case"dataChanged":const nt=$[tt],it=_e[tt];nt&&Array.isArray(it)&&(_e.dataChanged=Array.isArray(nt)?it.concat(nt):nt,rt=!0);default:_e[tt]||(_e[tt]=$[tt],rt=!0)}rt&&debug(TRACE_CHANGE_FLAG,this,tt,$)}const et=!!(_e.dataChanged||_e.updateTriggersChanged||_e.propsChanged||_e.extensionsChanged);_e.propsOrDataChanged=et,_e.somethingChanged=et||_e.viewportChanged||_e.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps($,_e){const et=diffProps($,_e);if(et.updateTriggersChanged)for(const rt in et.updateTriggersChanged)et.updateTriggersChanged[rt]&&this.invalidateAttribute(rt);if(et.transitionsChanged)for(const rt in et.transitionsChanged){var tt;this.internalState.uniformTransitions.add(rt,_e[rt],$[rt],(tt=$.transitions)===null||tt===void 0?void 0:tt[rt])}return this.setChangeFlags(et)}validateProps(){validateProps(this.props)}updateAutoHighlight($){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight($)}_updateAutoHighlight($){const _e={pickingSelectedColor:$.picked?$.color:null},{highlightColor:et}=this.props;$.picked&&typeof et=="function"&&(_e.pickingHighlightColor=et($)),this.setModuleParameters(_e),this.setNeedsRedraw()}_getAttributeManager(){const $=this.context;return new AttributeManager($.gl,{id:this.props.id,stats:$.stats,timeline:$.timeline})}_postUpdate($,_e){const{props:et,oldProps:tt}=$;this.setNeedsRedraw(),this._updateAttributes();const{model:rt}=this.state;rt==null||rt.setInstanceCount(this.getNumInstances());const{autoHighlight:nt,highlightedObjectIndex:it,highlightColor:ot}=et;if(_e||tt.autoHighlight!==nt||tt.highlightedObjectIndex!==it||tt.highlightColor!==ot){const At={};nt||(At.pickingSelectedColor=null),Array.isArray(ot)&&(At.pickingHighlightColor=ot),(_e||it!==tt.highlightedObjectIndex)&&(At.pickingSelectedColor=Number.isFinite(it)&&it>=0?this.encodePickingColor(it):null),this.setModuleParameters(At)}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw($){if(!this.internalState)return!1;let _e=!1;_e=_e||this.internalState.needsRedraw&&this.id,this.internalState.needsRedraw=this.internalState.needsRedraw&&!$.clearRedrawFlags;const et=this.getAttributeManager(),tt=et?et.getNeedsRedraw($):!1;return _e=_e||tt,_e}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}}_defineProperty$e(Layer,"defaultProps",defaultProps$L);_defineProperty$e(Layer,"layerName","Layer");const TRACE_RENDER_LAYERS="compositeLayer.renderLayers";class CompositeLayer extends Layer{get isComposite(){return!0}get isLoaded(){return super.isLoaded&&this.getSubLayers().every($=>$.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState($){}setState($){super.setState($),this.setNeedsUpdate()}getPickingInfo({info:$}){const{object:_e}=$;return _e&&_e.__source&&_e.__source.parent&&_e.__source.parent.id===this.id&&($.object=_e.__source.object,$.index=_e.__source.index),$}filterSubLayer($){return!0}shouldRenderSubLayer($,_e){return _e&&_e.length}getSubLayerClass($,_e){const{_subLayerProps:et}=this.props;return et&&et[$]&&et[$].type||_e}getSubLayerRow($,_e,et){return $.__source={parent:this,object:_e,index:et},$}getSubLayerAccessor($){if(typeof $=="function"){const _e={index:-1,data:this.props.data,target:[]};return(et,tt)=>et&&et.__source?(_e.index=et.__source.index,$(et.__source.object,_e)):$(et,tt)}return $}getSubLayerProps($={}){var _e;const{opacity:et,pickable:tt,visible:rt,parameters:nt,getPolygonOffset:it,highlightedObjectIndex:ot,autoHighlight:At,highlightColor:ut,coordinateSystem:ft,coordinateOrigin:dt,wrapLongitude:Et,positionFormat:Bt,modelMatrix:St,extensions:Dt,fetch:$t,operation:Rt,_subLayerProps:wt}=this.props,xt={id:"",updateTriggers:{},opacity:et,pickable:tt,visible:rt,parameters:nt,getPolygonOffset:it,highlightedObjectIndex:ot,autoHighlight:At,highlightColor:ut,coordinateSystem:ft,coordinateOrigin:dt,wrapLongitude:Et,positionFormat:Bt,modelMatrix:St,extensions:Dt,fetch:$t,operation:Rt},Nt=wt&&$.id&&wt[$.id],Ot=Nt&&Nt.updateTriggers,kt=$.id||"sublayer";if(Nt){const Jt=this.constructor._propTypes,jt=$.type?$.type._propTypes:{};for(const Ht in Nt){const Gt=jt[Ht]||Jt[Ht];Gt&&Gt.type==="accessor"&&(Nt[Ht]=this.getSubLayerAccessor(Nt[Ht]))}}Object.assign(xt,$,Nt),xt.id="".concat(this.props.id,"-").concat(kt),xt.updateTriggers={all:(_e=this.props.updateTriggers)===null||_e===void 0?void 0:_e.all,...$.updateTriggers,...Ot};for(const Jt of Dt){const jt=Jt.getSubLayerProps.call(this,Jt);jt&&Object.assign(xt,jt,{updateTriggers:Object.assign(xt.updateTriggers,jt.updateTriggers)})}return xt}_updateAutoHighlight($){for(const _e of this.getSubLayers())_e.updateAutoHighlight($)}_getAttributeManager(){return null}_postUpdate($,_e){let et=this.internalState.subLayers;const tt=!et||this.needsUpdate();if(tt){const rt=this.renderLayers();et=flatten(rt,Boolean),this.internalState.subLayers=et}debug(TRACE_RENDER_LAYERS,this,tt,et);for(const rt of et)rt.parent=this}}_defineProperty$e(CompositeLayer,"layerName","CompositeLayer");const DEGREES_TO_RADIANS$1=Math.PI/180,RADIANS_TO_DEGREES=180/Math.PI,EARTH_RADIUS=6370972,GLOBE_RADIUS=256;function getDistanceScales(){const j=GLOBE_RADIUS/EARTH_RADIUS,$=Math.PI/180*GLOBE_RADIUS;return{unitsPerMeter:[j,j,j],unitsPerMeter2:[0,0,0],metersPerUnit:[1/j,1/j,1/j],unitsPerDegree:[$,$,j],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/$,1/$,1/j]}}class GlobeViewport extends Viewport{constructor($={}){const{latitude:_e=0,longitude:et=0,zoom:tt=0,nearZMultiplier:rt=.1,farZMultiplier:nt=2,resolution:it=10}=$;let{height:ot,altitude:At=1.5}=$;ot=ot||1,At=Math.max(.75,At);const ut=new Matrix4().lookAt({eye:[0,-At,0],up:[0,0,1]}),ft=Math.pow(2,tt);ut.rotateX(_e*DEGREES_TO_RADIANS$1),ut.rotateZ(-et*DEGREES_TO_RADIANS$1),ut.scale(ft/ot);const dt=Math.atan(.5/At),Et=GLOBE_RADIUS*2*ft/ot;super({...$,height:ot,viewMatrix:ut,longitude:et,latitude:_e,zoom:tt,distanceScales:getDistanceScales(),fovyRadians:dt*2,focalDistance:At,near:rt,far:Math.min(2,1/Et+1)*At*nt}),_defineProperty$e(this,"longitude",void 0),_defineProperty$e(this,"latitude",void 0),_defineProperty$e(this,"resolution",void 0),this.latitude=_e,this.longitude=et,this.resolution=it}get projectionMode(){return PROJECTION_MODE.GLOBE}getDistanceScales(){return this.distanceScales}getBounds($={}){const _e={targetZ:$.z||0},et=this.unproject([0,this.height/2],_e),tt=this.unproject([this.width/2,0],_e),rt=this.unproject([this.width,this.height/2],_e),nt=this.unproject([this.width/2,this.height],_e);return rt[0]this.longitude&&(et[0]-=360),[Math.min(et[0],rt[0],tt[0],nt[0]),Math.min(et[1],rt[1],tt[1],nt[1]),Math.max(et[0],rt[0],tt[0],nt[0]),Math.max(et[1],rt[1],tt[1],nt[1])]}unproject($,{topLeft:_e=!0,targetZ:et}={}){const[tt,rt,nt]=$,it=_e?rt:this.height-rt,{pixelUnprojectionMatrix:ot}=this;let At;if(Number.isFinite(nt))At=transformVector(ot,[tt,it,nt,1]);else{const Et=transformVector(ot,[tt,it,-1,1]),Bt=transformVector(ot,[tt,it,1,1]),St=((et||0)/EARTH_RADIUS+1)*GLOBE_RADIUS,Dt=sqrLen(sub$1([],Et,Bt)),$t=sqrLen(Et),Rt=sqrLen(Bt),xt=4*((4*$t*Rt-(Dt-$t-Rt)**2)/16)/Dt,Nt=Math.sqrt($t-xt),Ot=Math.sqrt(Math.max(0,St*St-xt)),kt=(Nt-Ot)/Math.sqrt(Dt);At=lerp$3([],Et,Bt,kt)}const[ut,ft,dt]=this.unprojectPosition(At);return Number.isFinite(nt)?[ut,ft,dt]:Number.isFinite(et)?[ut,ft,et]:[ut,ft]}projectPosition($){const[_e,et,tt=0]=$,rt=_e*DEGREES_TO_RADIANS$1,nt=et*DEGREES_TO_RADIANS$1,it=Math.cos(nt),ot=(tt/EARTH_RADIUS+1)*GLOBE_RADIUS;return[Math.sin(rt)*it*ot,-Math.cos(rt)*it*ot,Math.sin(nt)*ot]}unprojectPosition($){const[_e,et,tt]=$,rt=len($),nt=Math.asin(tt/rt),ot=Math.atan2(_e,-et)*RADIANS_TO_DEGREES,At=nt*RADIANS_TO_DEGREES,ut=(rt/GLOBE_RADIUS-1)*EARTH_RADIUS;return[ot,At,ut]}projectFlat($){return $}unprojectFlat($){return $}panByPosition($,_e){const et=this.unproject(_e);return{longitude:$[0]-et[0]+this.longitude,latitude:$[1]-et[1]+this.latitude}}}function transformVector(j,$){const _e=transformMat4([],$,j);return scale$2(_e,_e,1/_e[3]),_e}const DEGREES_TO_RADIANS=Math.PI/180;function getViewMatrix({height:j,focalDistance:$,orbitAxis:_e,rotationX:et,rotationOrbit:tt,zoom:rt}){const nt=_e==="Z"?[0,0,1]:[0,1,0],it=_e==="Z"?[0,-$,0]:[0,0,$],ot=new Matrix4().lookAt({eye:it,up:nt});ot.rotateX(et*DEGREES_TO_RADIANS),_e==="Z"?ot.rotateZ(tt*DEGREES_TO_RADIANS):ot.rotateY(tt*DEGREES_TO_RADIANS);const At=Math.pow(2,rt)/j;return ot.scale(At),ot}class OrbitViewport extends Viewport{constructor($){const{height:_e,projectionMatrix:et,fovy:tt=50,orbitAxis:rt="Z",target:nt=[0,0,0],rotationX:it=0,rotationOrbit:ot=0,zoom:At=0}=$,ut=et?et[5]/2:fovyToAltitude(tt);super({...$,longitude:void 0,viewMatrix:getViewMatrix({height:_e||1,focalDistance:ut,orbitAxis:rt,rotationX:it,rotationOrbit:ot,zoom:At}),fovy:tt,focalDistance:ut,position:nt,zoom:At}),_defineProperty$e(this,"projectedCenter",void 0),this.projectedCenter=this.project(this.center)}unproject($,{topLeft:_e=!0}={}){const[et,tt,rt=this.projectedCenter[2]]=$,nt=_e?tt:this.height-tt,[it,ot,At]=pixelsToWorld([et,nt,rt],this.pixelUnprojectionMatrix);return[it,ot,At]}panByPosition($,_e){const et=this.project($),tt=[this.width/2+et[0]-_e[0],this.height/2+et[1]-_e[1],this.projectedCenter[2]];return{target:this.unproject(tt)}}}class FirstPersonViewport extends Viewport{constructor($){const{longitude:_e,latitude:et,modelMatrix:tt,bearing:rt=0,pitch:nt=0,up:it=[0,0,1]}=$,At=new SphericalCoordinates({bearing:rt,pitch:nt===-90?1e-4:90+nt}).toVector3().normalize(),ut=tt?new Matrix4(tt).transformAsVector(At):At,ft=Number.isFinite(et)?getMeterZoom({latitude:et}):0,dt=Math.pow(2,ft),Et=new Matrix4().lookAt({eye:[0,0,0],center:ut,up:it}).scale(dt);super({...$,zoom:ft,viewMatrix:Et}),_defineProperty$e(this,"longitude",void 0),_defineProperty$e(this,"latitude",void 0),this.latitude=et,this.longitude=_e}}const MOVEMENT_SPEED=20;class FirstPersonState extends ViewState{constructor($){const{width:_e,height:et,position:tt=[0,0,0],bearing:rt=0,pitch:nt=0,longitude:it=null,latitude:ot=null,maxPitch:At=90,minPitch:ut=-90,startRotatePos:ft,startBearing:dt,startPitch:Et,startZoomPosition:Bt}=$;super({width:_e,height:et,position:tt,bearing:rt,pitch:nt,longitude:it,latitude:ot,maxPitch:At,minPitch:ut},{startRotatePos:ft,startBearing:dt,startPitch:Et,startZoomPosition:Bt})}panStart(){return this}pan(){return this}panEnd(){return this}rotateStart({pos:$}){return this._getUpdatedState({startRotatePos:$,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:$,deltaAngleX:_e=0,deltaAngleY:et=0}){const{startRotatePos:tt,startBearing:rt,startPitch:nt}=this.getState(),{width:it,height:ot}=this.getViewportProps();if(!tt||rt===void 0||nt===void 0)return this;let At;if($){const ut=($[0]-tt[0])/it,ft=($[1]-tt[1])/ot;At={bearing:rt-ut*180,pitch:nt-ft*90}}else At={bearing:rt-_e,pitch:nt-et};return this._getUpdatedState(At)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({scale:$}){let{startZoomPosition:_e}=this.getState();_e||(_e=this.getViewportProps().position);const et=this.getDirection();return this._move(et,Math.log2($)*MOVEMENT_SPEED,_e)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft($=MOVEMENT_SPEED){const _e=this.getDirection(!0);return this._move(_e.rotateZ({radians:Math.PI/2}),$)}moveRight($=MOVEMENT_SPEED){const _e=this.getDirection(!0);return this._move(_e.rotateZ({radians:-Math.PI/2}),$)}moveUp($=MOVEMENT_SPEED){const _e=this.getDirection(!0);return this._move(_e,$)}moveDown($=MOVEMENT_SPEED){const _e=this.getDirection(!0);return this._move(_e.negate(),$)}rotateLeft($=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-$})}rotateRight($=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+$})}rotateUp($=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+$})}rotateDown($=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-$})}zoomIn($=2){return this.zoom({scale:$})}zoomOut($=2){return this.zoom({scale:1/$})}shortestPathFrom($){const _e=$.getViewportProps(),et={...this.getViewportProps()},{bearing:tt,longitude:rt}=et;return Math.abs(tt-_e.bearing)>180&&(et.bearing=tt<0?tt+360:tt-360),rt!==null&&_e.longitude!==null&&Math.abs(rt-_e.longitude)>180&&(et.longitude=rt<0?rt+360:rt-360),et}_move($,_e,et=this.getViewportProps().position){const tt=$.scale(_e);return this._getUpdatedState({position:new Vector3(et).add(tt)})}getDirection($=!1){return new SphericalCoordinates({bearing:this.getViewportProps().bearing,pitch:$?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState($){return new FirstPersonState({...this.getViewportProps(),...this.getState(),...$})}applyConstraints($){const{pitch:_e,maxPitch:et,minPitch:tt,longitude:rt,bearing:nt}=$;return $.pitch=clamp$2(_e,tt,et),rt!==null&&(rt<-180||rt>180)&&($.longitude=mod(rt+180,360)-180),(nt<-180||nt>180)&&($.bearing=mod(nt+180,360)-180),$}}class FirstPersonController extends Controller{constructor(...$){super(...$),_defineProperty$e(this,"ControllerState",FirstPersonState),_defineProperty$e(this,"transition",{transitionDuration:300,transitionInterpolator:new LinearInterpolator(["position","pitch","bearing"])})}}class FirstPersonView extends View{get ViewportType(){return FirstPersonViewport}get ControllerType(){return FirstPersonController}}_defineProperty$e(FirstPersonView,"displayName","FirstPersonView");class OrbitView extends View{constructor($={}){super($),this.props.orbitAxis=$.orbitAxis||"Z"}get ViewportType(){return OrbitViewport}get ControllerType(){return OrbitController}}_defineProperty$e(OrbitView,"displayName","OrbitView");class GlobeState extends MapState{applyConstraints($){const{maxZoom:_e,minZoom:et,zoom:tt}=$;$.zoom=clamp$2(tt,et,_e);const{longitude:rt,latitude:nt}=$;return(rt<-180||rt>180)&&($.longitude=mod(rt+180,360)-180),$.latitude=clamp$2(nt,-89,89),$}}class GlobeController extends Controller{constructor(...$){super(...$),_defineProperty$e(this,"ControllerState",GlobeState),_defineProperty$e(this,"transition",{transitionDuration:300,transitionInterpolator:new LinearInterpolator(["longitude","latitude","zoom"])}),_defineProperty$e(this,"dragMode","pan")}setProps($){super.setProps($),this.dragRotate=!1,this.touchRotate=!1}}class GlobeView extends View{get ViewportType(){return GlobeViewport}get ControllerType(){return GlobeController}}_defineProperty$e(GlobeView,"displayName","GlobeView");class LayerExtension{constructor($){_defineProperty$e(this,"opts",void 0),$&&(this.opts=$)}equals($){return this===$?!0:this.constructor===$.constructor&&deepEqual$2(this.opts,$.opts)}getShaders($){return null}getSubLayerProps($){const{defaultProps:_e}=$.constructor,et={updateTriggers:{}};for(const tt in _e)if(tt in this.props){const rt=_e[tt],nt=this.props[tt];et[tt]=nt,rt&&rt.type==="accessor"&&(et.updateTriggers[tt]=this.props.updateTriggers[tt],typeof nt=="function"&&(et[tt]=this.getSubLayerAccessor(nt)))}return et}initializeState($,_e){}updateState($,_e){}draw($,_e){}finalizeState($,_e){}}_defineProperty$e(LayerExtension,"defaultProps",{});const LINEARLY_INTERPOLATED_PROPS=["bearing","pitch"],DEFAULT_OPTS={speed:1.2,curve:1.414};class FlyToInterpolator extends TransitionInterpolator{constructor($={}){super({compare:["longitude","latitude","zoom","bearing","pitch"],extract:["width","height","longitude","latitude","zoom","bearing","pitch"],required:["width","height","latitude","longitude","zoom"]}),_defineProperty$e(this,"opts",void 0),this.opts={...DEFAULT_OPTS,...$}}interpolateProps($,_e,et){const tt=flyToViewport($,_e,et,this.opts);for(const rt of LINEARLY_INTERPOLATED_PROPS)tt[rt]=lerp$5($[rt]||0,_e[rt]||0,et);return tt}getDuration($,_e){let{transitionDuration:et}=_e;return et==="auto"&&(et=getFlyToDuration($,_e,this.opts)),et}}class Tesselator{constructor($){_defineProperty$e(this,"opts",void 0),_defineProperty$e(this,"typedArrayManager",void 0),_defineProperty$e(this,"indexStarts",[0]),_defineProperty$e(this,"vertexStarts",[0]),_defineProperty$e(this,"vertexCount",0),_defineProperty$e(this,"instanceCount",0),_defineProperty$e(this,"attributes",void 0),_defineProperty$e(this,"_attributeDefs",void 0),_defineProperty$e(this,"data",void 0),_defineProperty$e(this,"getGeometry",void 0),_defineProperty$e(this,"geometryBuffer",void 0),_defineProperty$e(this,"buffers",void 0),_defineProperty$e(this,"positionSize",void 0),_defineProperty$e(this,"normalize",void 0);const{attributes:_e={}}=$;this.typedArrayManager=defaultTypedArrayManager,this.attributes={},this._attributeDefs=_e,this.opts=$,this.updateGeometry($)}updateGeometry($){Object.assign(this.opts,$);const{data:_e,buffers:et={},getGeometry:tt,geometryBuffer:rt,positionFormat:nt,dataChanged:it,normalize:ot=!0}=this.opts;if(this.data=_e,this.getGeometry=tt,this.positionSize=rt&&rt.size||(nt==="XY"?2:3),this.buffers=et,this.normalize=ot,rt&&(assert$4(_e.startIndices),this.getGeometry=this.getGeometryFromBuffer(rt),ot||(et.positions=rt)),this.geometryBuffer=et.positions,Array.isArray(it))for(const At of it)this._rebuildGeometry(At);else this._rebuildGeometry()}updatePartialGeometry({startRow:$,endRow:_e}){this._rebuildGeometry({startRow:$,endRow:_e})}getGeometryFromBuffer($){const _e=$.value||$;return ArrayBuffer.isView(_e)?getAccessorFromBuffer(_e,{size:this.positionSize,offset:$.offset,stride:$.stride,startIndices:this.data.startIndices}):null}_allocate($,_e){const{attributes:et,buffers:tt,_attributeDefs:rt,typedArrayManager:nt}=this;for(const it in rt)if(it in tt)nt.release(et[it]),et[it]=null;else{const ot=rt[it];ot.copy=_e,et[it]=nt.allocate(et[it],$,ot)}}_forEachGeometry($,_e,et){const{data:tt,getGeometry:rt}=this,{iterable:nt,objectInfo:it}=createIterable(tt,_e,et);for(const ot of nt){it.index++;const At=rt?rt(ot,it):null;$(At,it.index)}}_rebuildGeometry($){if(!this.data)return;let{indexStarts:_e,vertexStarts:et,instanceCount:tt}=this;const{data:rt,geometryBuffer:nt}=this,{startRow:it=0,endRow:ot=1/0}=$||{},At={};if($||(_e=[0],et=[0]),this.normalize||!nt)this._forEachGeometry((ft,dt)=>{const Et=ft&&this.normalizeGeometry(ft);At[dt]=Et,et[dt+1]=et[dt]+(Et?this.getGeometrySize(Et):0)},it,ot),tt=et[et.length-1];else if(et=rt.startIndices,tt=et[rt.length]||0,ArrayBuffer.isView(nt))tt=tt||nt.length/this.positionSize;else if(nt instanceof Buffer$1){const ft=nt.accessor.stride||this.positionSize*4;tt=tt||nt.byteLength/ft}else if(nt.buffer){const ft=nt.stride||this.positionSize*4;tt=tt||nt.buffer.byteLength/ft}else if(nt.value){const ft=nt.value,dt=nt.stride/ft.BYTES_PER_ELEMENT||this.positionSize;tt=tt||ft.length/dt}this._allocate(tt,!!$),this.indexStarts=_e,this.vertexStarts=et,this.instanceCount=tt;const ut={};this._forEachGeometry((ft,dt)=>{const Et=At[dt]||ft;ut.vertexStart=et[dt],ut.indexStart=_e[dt];const Bt=dt= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3]; +} +`,shaderModuleVs={name:"clip-vs",vs:shaderFunction},injectionVs={"vs:#decl":` +varying float clip_isVisible; +`,"vs:DECKGL_FILTER_GL_POSITION":` + clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy)); +`,"fs:#decl":` +varying float clip_isVisible; +`,"fs:DECKGL_FILTER_COLOR":` + if (clip_isVisible < 0.5) discard; +`},shaderModuleFs={name:"clip-fs",fs:shaderFunction},injectionFs={"vs:#decl":` +varying vec2 clip_commonPosition; +`,"vs:DECKGL_FILTER_GL_POSITION":` + clip_commonPosition = geometry.position.xy; +`,"fs:#decl":` +varying vec2 clip_commonPosition; +`,"fs:DECKGL_FILTER_COLOR":` + if (!clip_isInBounds(clip_commonPosition)) discard; +`};class ClipExtension extends LayerExtension{getShaders(){let $="instancePositions"in this.getAttributeManager().attributes;return"clipByInstance"in this.props&&($=this.props.clipByInstance),this.state.clipByInstance=$,$?{modules:[shaderModuleVs],inject:injectionVs}:{modules:[shaderModuleFs],inject:injectionFs}}draw({uniforms:$}){const{clipBounds:_e=defaultProps$K.clipBounds}=this.props;if(this.state.clipByInstance)$.clip_bounds=_e;else{const et=this.projectPosition([_e[0],_e[1],0]),tt=this.projectPosition([_e[2],_e[3],0]);$.clip_bounds=[Math.min(et[0],tt[0]),Math.min(et[1],tt[1]),Math.max(et[0],tt[0]),Math.max(et[1],tt[1])]}}}_defineProperty$e(ClipExtension,"defaultProps",defaultProps$K);_defineProperty$e(ClipExtension,"extensionName","ClipExtension");const vs$h=`#define SHADER_NAME arc-layer-vertex-shader + +attribute vec3 positions; +attribute vec4 instanceSourceColors; +attribute vec4 instanceTargetColors; +attribute vec3 instanceSourcePositions; +attribute vec3 instanceSourcePositions64Low; +attribute vec3 instanceTargetPositions; +attribute vec3 instanceTargetPositions64Low; +attribute vec3 instancePickingColors; +attribute float instanceWidths; +attribute float instanceHeights; +attribute float instanceTilts; + +uniform bool greatCircle; +uniform bool useShortestPath; +uniform float numSegments; +uniform float opacity; +uniform float widthScale; +uniform float widthMinPixels; +uniform float widthMaxPixels; +uniform int widthUnits; + +varying vec4 vColor; +varying vec2 uv; +varying float isValid; + +float paraboloid(float distance, float sourceZ, float targetZ, float ratio) { + // d: distance on the xy plane + // r: ratio of the current point + // p: ratio of the peak of the arc + // h: height multiplier + // z = f(r) = sqrt(r * (p * 2 - r)) * d * h + // f(0) = 0 + // f(1) = dz + + float deltaZ = targetZ - sourceZ; + float dh = distance * instanceHeights; + if (dh == 0.0) { + return sourceZ + deltaZ * ratio; + } + float unitZ = deltaZ / dh; + float p2 = unitZ * unitZ + 1.0; + + // sqrt does not deal with negative values, manually flip source and target if delta.z < 0 + float dir = step(deltaZ, 0.0); + float z0 = mix(sourceZ, targetZ, dir); + float r = mix(ratio, 1.0 - ratio, dir); + return sqrt(r * (p2 - r)) * dh + z0; +} + +// offset vector by strokeWidth pixels +// offset_direction is -1 (left) or 1 (right) +vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) { + // normalized direction of the line + vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize); + // rotate by 90 degrees + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + + return dir_screenspace * offset_direction * width / 2.0; +} + +float getSegmentRatio(float index) { + return smoothstep(0.0, 1.0, index / (numSegments - 1.0)); +} + +vec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) { + float distance = length(source.xy - target.xy); + float z = paraboloid(distance, source.z, target.z, segmentRatio); + + float tiltAngle = radians(instanceTilts); + vec2 tiltDirection = normalize(target.xy - source.xy); + vec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle); + + return vec3( + mix(source.xy, target.xy, segmentRatio) + tilt, + z * cos(tiltAngle) + ); +} + +/* Great circle interpolation + * http://www.movable-type.co.uk/scripts/latlong.html + */ +float getAngularDist (vec2 source, vec2 target) { + vec2 sourceRadians = radians(source); + vec2 targetRadians = radians(target); + vec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0); + vec2 shd_sq = sin_half_delta * sin_half_delta; + + float a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x; + return 2.0 * asin(sqrt(a)); +} + +vec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) { + vec2 lngLat; + + // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation + if(abs(angularDist - PI) < 0.001) { + lngLat = (1.0 - t) * source.xy + t * target.xy; + } else { + float a = sin((1.0 - t) * angularDist); + float b = sin(t * angularDist); + vec3 p = source3D.yxz * a + target3D.yxz * b; + lngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy)))); + } + + float z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t); + + return vec3(lngLat, z); +} + +/* END GREAT CIRCLE */ + +void main(void) { + geometry.worldPosition = instanceSourcePositions; + geometry.worldPositionAlt = instanceTargetPositions; + + float segmentIndex = positions.x; + float segmentRatio = getSegmentRatio(segmentIndex); + float prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0)); + float nextSegmentRatio = getSegmentRatio(min(numSegments - 1.0, segmentIndex + 1.0)); + + // if it's the first point, use next - current as direction + // otherwise use current - prev + float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); + isValid = 1.0; + + uv = vec2(segmentRatio, positions.y); + geometry.uv = uv; + geometry.pickingColor = instancePickingColors; + + vec4 curr; + vec4 next; + vec3 source; + vec3 target; + + if ((greatCircle || project_uProjectionMode == PROJECTION_MODE_GLOBE) && project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT) { + source = project_globe_(vec3(instanceSourcePositions.xy, 0.0)); + target = project_globe_(vec3(instanceTargetPositions.xy, 0.0)); + float angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy); + + vec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio); + vec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio); + vec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio); + + if (abs(currPos.x - prevPos.x) > 180.0) { + indexDir = -1.0; + isValid = 0.0; + } else if (abs(currPos.x - nextPos.x) > 180.0) { + indexDir = 1.0; + isValid = 0.0; + } + nextPos = indexDir < 0.0 ? prevPos : nextPos; + nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio; + + if (isValid == 0.0) { + // split at the 180th meridian + nextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0; + float t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x); + currPos = mix(currPos, nextPos, t); + segmentRatio = mix(segmentRatio, nextSegmentRatio, t); + } + + vec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio); + vec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio); + + curr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position); + next = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0)); + + } else { + vec3 source_world = instanceSourcePositions; + vec3 target_world = instanceTargetPositions; + if (useShortestPath) { + source_world.x = mod(source_world.x + 180., 360.0) - 180.; + target_world.x = mod(target_world.x + 180., 360.0) - 180.; + + float deltaLng = target_world.x - source_world.x; + if (deltaLng > 180.) target_world.x -= 360.; + if (deltaLng < -180.) source_world.x -= 360.; + } + source = project_position(source_world, instanceSourcePositions64Low); + target = project_position(target_world, instanceTargetPositions64Low); + + // common x at longitude=-180 + float antiMeridianX = 0.0; + + if (useShortestPath) { + if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) { + antiMeridianX = -(project_uCoordinateOrigin.x + 180.) / 360. * TILE_SIZE; + } + float thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x); + + if (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) { + isValid = 0.0; + indexDir = sign(segmentRatio - thresholdRatio); + segmentRatio = thresholdRatio; + } + } + + nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio; + vec3 currPos = interpolateFlat(source, target, segmentRatio); + vec3 nextPos = interpolateFlat(source, target, nextSegmentRatio); + + if (useShortestPath) { + if (nextPos.x < antiMeridianX) { + currPos.x += TILE_SIZE; + nextPos.x += TILE_SIZE; + } + } + + curr = project_common_position_to_clipspace(vec4(currPos, 1.0)); + next = project_common_position_to_clipspace(vec4(nextPos, 1.0)); + geometry.position = vec4(currPos, 1.0); + } + + // Multiply out width and clamp to limits + // mercator pixels are interpreted as screen pixels + float widthPixels = clamp( + project_size_to_pixel(instanceWidths * widthScale, widthUnits), + widthMinPixels, widthMaxPixels + ); + + // extrude + vec3 offset = vec3( + getExtrusionOffset((next.xy - curr.xy) * indexDir, positions.y, widthPixels), + 0.0); + DECKGL_FILTER_SIZE(offset, geometry); + gl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + vec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio); + vColor = vec4(color.rgb, color.a * opacity); + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$j=`#define SHADER_NAME arc-layer-fragment-shader + +precision highp float; + +varying vec4 vColor; +varying vec2 uv; +varying float isValid; + +void main(void) { + if (isValid == 0.0) { + discard; + } + + gl_FragColor = vColor; + geometry.uv = uv; + + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_COLOR$a=[0,0,0,255],defaultProps$J={getSourcePosition:{type:"accessor",value:j=>j.sourcePosition},getTargetPosition:{type:"accessor",value:j=>j.targetPosition},getSourceColor:{type:"accessor",value:DEFAULT_COLOR$a},getTargetColor:{type:"accessor",value:DEFAULT_COLOR$a},getWidth:{type:"accessor",value:1},getHeight:{type:"accessor",value:1},getTilt:{type:"accessor",value:0},greatCircle:!1,widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class ArcLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){return super.getShaders({vs:vs$h,fs:fs$j,modules:[project32,picking]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceSourceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getSourceColor",defaultValue:DEFAULT_COLOR$a},instanceTargetColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getTargetColor",defaultValue:DEFAULT_COLOR$a},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:"getHeight",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:"getTilt",defaultValue:0}})}updateState($){if(super.updateState($),$.changeFlags.extensionsChanged){var _e;const{gl:et}=this.context;(_e=this.state.model)===null||_e===void 0||_e.delete(),this.state.model=this._getModel(et),this.getAttributeManager().invalidateAll()}}draw({uniforms:$}){const{widthUnits:_e,widthScale:et,widthMinPixels:tt,widthMaxPixels:rt,greatCircle:nt,wrapLongitude:it}=this.props;this.state.model.setUniforms($).setUniforms({greatCircle:nt,widthUnits:UNIT[_e],widthScale:et,widthMinPixels:tt,widthMaxPixels:rt,useShortestPath:it}).draw()}_getModel($){let _e=[];for(let rt=0;rt<50;rt++)_e=_e.concat([rt,1,0,rt,-1,0]);const tt=new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:5,attributes:{positions:new Float32Array(_e)}}),isInstanced:!0});return tt.setUniforms({numSegments:50}),tt}}_defineProperty$e(ArcLayer,"layerName","ArcLayer");_defineProperty$e(ArcLayer,"defaultProps",defaultProps$J);const DEFAULT_INDICES=new Uint16Array([0,2,1,0,3,2]),DEFAULT_TEX_COORDS=new Float32Array([0,1,0,0,1,0,1,1]);function createMesh(j,$){if(!$)return createQuad(j);const _e=Math.max(Math.abs(j[0][0]-j[3][0]),Math.abs(j[1][0]-j[2][0])),et=Math.max(Math.abs(j[1][1]-j[0][1]),Math.abs(j[2][1]-j[3][1])),tt=Math.ceil(_e/$)+1,rt=Math.ceil(et/$)+1,nt=(tt-1)*(rt-1)*6,it=new Uint32Array(nt),ot=new Float32Array(tt*rt*2),At=new Float64Array(tt*rt*3);let ut=0,ft=0;for(let dt=0;dt0&&Bt>0&&(it[ft++]=ut-rt,it[ft++]=ut-rt-1,it[ft++]=ut-1,it[ft++]=ut-rt,it[ft++]=ut-1,it[ft++]=ut),ut++}}return{vertexCount:nt,positions:At,indices:it,texCoords:ot}}function createQuad(j){const $=new Float64Array(12);for(let _e=0;_e 0.5) { + vTexPos = geometry.worldPosition.xy; + } + + vec4 color = vec4(0.0); + DECKGL_FILTER_COLOR(color, geometry); +} +`,packUVsIntoRGB=` +vec3 packUVsIntoRGB(vec2 uv) { + // Extract the top 8 bits. We want values to be truncated down so we can add a fraction + vec2 uv8bit = floor(uv * 256.); + + // Calculate the normalized remainders of u and v parts that do not fit into 8 bits + // Scale and clamp to 0-1 range + vec2 uvFraction = fract(uv * 256.); + vec2 uvFraction4bit = floor(uvFraction * 16.); + + // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates + float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.; + + return vec3(uv8bit, fractions) / 255.; +} +`,fs$i=` +#define SHADER_NAME bitmap-layer-fragment-shader + +#ifdef GL_ES +precision highp float; +#endif + +uniform sampler2D bitmapTexture; + +varying vec2 vTexCoord; +varying vec2 vTexPos; + +uniform float desaturate; +uniform vec4 transparentColor; +uniform vec3 tintColor; +uniform float opacity; + +uniform float coordinateConversion; +uniform vec4 bounds; + +/* projection utils */ +const float TILE_SIZE = 512.0; +const float PI = 3.1415926536; +const float WORLD_SCALE = TILE_SIZE / PI / 2.0; + +// from degrees to Web Mercator +vec2 lnglat_to_mercator(vec2 lnglat) { + float x = lnglat.x; + float y = clamp(lnglat.y, -89.9, 89.9); + return vec2( + radians(x) + PI, + PI + log(tan(PI * 0.25 + radians(y) * 0.5)) + ) * WORLD_SCALE; +} + +// from Web Mercator to degrees +vec2 mercator_to_lnglat(vec2 xy) { + xy /= WORLD_SCALE; + return degrees(vec2( + xy.x - PI, + atan(exp(xy.y - PI)) * 2.0 - PI * 0.5 + )); +} +/* End projection utils */ + +// apply desaturation +vec3 color_desaturate(vec3 color) { + float luminance = (color.r + color.g + color.b) * 0.333333333; + return mix(color, vec3(luminance), desaturate); +} + +// apply tint +vec3 color_tint(vec3 color) { + return color * tintColor; +} + +// blend with background color +vec4 apply_opacity(vec3 color, float alpha) { + return mix(transparentColor, vec4(color, 1.0), alpha); +} + +vec2 getUV(vec2 pos) { + return vec2( + (pos.x - bounds[0]) / (bounds[2] - bounds[0]), + (pos.y - bounds[3]) / (bounds[1] - bounds[3]) + ); +} + +`.concat(packUVsIntoRGB,` + +void main(void) { + vec2 uv = vTexCoord; + if (coordinateConversion < -0.5) { + vec2 lnglat = mercator_to_lnglat(vTexPos); + uv = getUV(lnglat); + } else if (coordinateConversion > 0.5) { + vec2 commonPos = lnglat_to_mercator(vTexPos); + uv = getUV(commonPos); + } + vec4 bitmapColor = texture2D(bitmapTexture, uv); + + gl_FragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * opacity); + + geometry.uv = uv; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); + + if (picking_uActive && !picking_uAttribute) { + // Since instance information is not used, we can use picking color for pixel index + gl_FragColor.rgb = packUVsIntoRGB(uv); + } +} +`),defaultProps$I={image:{type:"image",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:COORDINATE_SYSTEM.DEFAULT,desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]}};let BitmapLayer$1=class extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){return super.getShaders({vs:vs$g,fs:fs$i,modules:[project32,picking]})}initializeState(){const $=this.getAttributeManager();$.remove(["instancePickingColors"]);const _e=!0;$.add({indices:{size:1,isIndexed:!0,update:et=>et.value=this.state.mesh.indices,noAlloc:_e},positions:{size:3,type:5130,fp64:this.use64bitPositions(),update:et=>et.value=this.state.mesh.positions,noAlloc:_e},texCoords:{size:2,update:et=>et.value=this.state.mesh.texCoords,noAlloc:_e}})}updateState({props:$,oldProps:_e,changeFlags:et}){const tt=this.getAttributeManager();if(et.extensionsChanged){var rt;const{gl:nt}=this.context;(rt=this.state.model)===null||rt===void 0||rt.delete(),this.state.model=this._getModel(nt),tt.invalidateAll()}if($.bounds!==_e.bounds){const nt=this.state.mesh,it=this._createMesh();this.state.model.setVertexCount(it.vertexCount);for(const ot in it)nt&&nt[ot]!==it[ot]&&tt.invalidate(ot);this.setState({mesh:it,...this._getCoordinateUniforms()})}else $._imageCoordinateSystem!==_e._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo($){const{image:_e}=this.props,et=$.info;if(!et.color||!_e)return et.bitmap=null,et;const{width:tt,height:rt}=_e;et.index=0;const nt=unpackUVsFromRGB(et.color),it=[Math.floor(nt[0]*tt),Math.floor(nt[1]*rt)];return et.bitmap={size:{width:tt,height:rt},uv:nt,pixel:it},et}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight($){super._updateAutoHighlight({...$,color:this.encodePickingColor(0)})}_createMesh(){const{bounds:$}=this.props;let _e=$;return isRectangularBounds($)&&(_e=[[$[0],$[1]],[$[0],$[3]],[$[2],$[3]],[$[2],$[1]]]),createMesh(_e,this.context.viewport.resolution)}_getModel($){return $?new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:4,vertexCount:6}),isInstanced:!1}):null}draw($){const{uniforms:_e,moduleParameters:et}=$,{model:tt,coordinateConversion:rt,bounds:nt,disablePicking:it}=this.state,{image:ot,desaturate:At,transparentColor:ut,tintColor:ft}=this.props;et.pickingActive&&it||ot&&tt&&tt.setUniforms(_e).setUniforms({bitmapTexture:ot,desaturate:At,transparentColor:ut.map(dt=>dt/255),tintColor:ft.slice(0,3).map(dt=>dt/255),coordinateConversion:rt,bounds:nt}).draw()}_getCoordinateUniforms(){const{LNGLAT:$,CARTESIAN:_e,DEFAULT:et}=COORDINATE_SYSTEM;let{_imageCoordinateSystem:tt}=this.props;if(tt!==et){const{bounds:rt}=this.props;if(!isRectangularBounds(rt))throw new Error("_imageCoordinateSystem only supports rectangular bounds");const nt=this.context.viewport.resolution?$:_e;if(tt=tt===$?$:_e,tt===$&&nt===_e)return{coordinateConversion:-1,bounds:rt};if(tt===_e&&nt===$){const it=lngLatToWorld([rt[0],rt[1]]),ot=lngLatToWorld([rt[2],rt[3]]);return{coordinateConversion:1,bounds:[it[0],it[1],ot[0],ot[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}};_defineProperty$e(BitmapLayer$1,"layerName","BitmapLayer");_defineProperty$e(BitmapLayer$1,"defaultProps",defaultProps$I);function unpackUVsFromRGB(j){const[$,_e,et]=j,tt=(et&240)/256,rt=(et&15)/16;return[($+rt)/256,(_e+tt)/256]}function isRectangularBounds(j){return Number.isFinite(j[0])}const vs$f=`#define SHADER_NAME icon-layer-vertex-shader + +attribute vec2 positions; + +attribute vec3 instancePositions; +attribute vec3 instancePositions64Low; +attribute float instanceSizes; +attribute float instanceAngles; +attribute vec4 instanceColors; +attribute vec3 instancePickingColors; +attribute vec4 instanceIconFrames; +attribute float instanceColorModes; +attribute vec2 instanceOffsets; +attribute vec2 instancePixelOffset; + +uniform float sizeScale; +uniform vec2 iconsTextureDim; +uniform float sizeMinPixels; +uniform float sizeMaxPixels; +uniform bool billboard; +uniform int sizeUnits; + +varying float vColorMode; +varying vec4 vColor; +varying vec2 vTextureCoords; +varying vec2 uv; + +vec2 rotate_by_angle(vec2 vertex, float angle) { + float angle_radian = angle * PI / 180.0; + float cos_angle = cos(angle_radian); + float sin_angle = sin(angle_radian); + mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle); + return rotationMatrix * vertex; +} + +void main(void) { + geometry.worldPosition = instancePositions; + geometry.uv = positions; + geometry.pickingColor = instancePickingColors; + uv = positions; + + vec2 iconSize = instanceIconFrames.zw; + // convert size in meters to pixels, then scaled and clamp + + // project meters to pixels and clamp to limits + float sizePixels = clamp( + project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), + sizeMinPixels, sizeMaxPixels + ); + + // scale icon height to match instanceSize + float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y; + + // scale and rotate vertex in "pixel" value and convert back to fraction in clipspace + vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets; + pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale; + pixelOffset += instancePixelOffset; + pixelOffset.y *= -1.0; + + if (billboard) { + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position); + vec3 offset = vec3(pixelOffset, 0.0); + DECKGL_FILTER_SIZE(offset, geometry); + gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); + + } else { + vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0); + DECKGL_FILTER_SIZE(offset_common, geometry); + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); + } + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + vTextureCoords = mix( + instanceIconFrames.xy, + instanceIconFrames.xy + iconSize, + (positions.xy + 1.0) / 2.0 + ) / iconsTextureDim; + + vColor = instanceColors; + DECKGL_FILTER_COLOR(vColor, geometry); + + vColorMode = instanceColorModes; +} +`,fs$h=`#define SHADER_NAME icon-layer-fragment-shader + +precision highp float; + +uniform float opacity; +uniform sampler2D iconsTexture; +uniform float alphaCutoff; + +varying float vColorMode; +varying vec4 vColor; +varying vec2 vTextureCoords; +varying vec2 uv; + +void main(void) { + geometry.uv = uv; + + vec4 texColor = texture2D(iconsTexture, vTextureCoords); + + // if colorMode == 0, use pixel color from the texture + // if colorMode == 1 or rendering picking buffer, use texture as transparency mask + vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode); + // Take the global opacity and the alpha from vColor into account for the alpha component + float a = texColor.a * opacity * vColor.a; + + if (a < alphaCutoff) { + discard; + } + + gl_FragColor = vec4(color, a); + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_CANVAS_WIDTH=1024,DEFAULT_BUFFER$1=4,noop$1$1=()=>{},DEFAULT_TEXTURE_PARAMETERS={10241:9987,10240:9729,10242:33071,10243:33071};function nextPowOfTwo$1(j){return Math.pow(2,Math.ceil(Math.log2(j)))}function resizeImage(j,$,_e,et){return _e===$.width&&et===$.height?$:(j.canvas.height=et,j.canvas.width=_e,j.clearRect(0,0,j.canvas.width,j.canvas.height),j.drawImage($,0,0,$.width,$.height,0,0,_e,et),j.canvas)}function getIconId(j){return j&&(j.id||j.url)}function resizeTexture(j,$,_e,et){const tt=j.width,rt=j.height,nt=new Texture2D(j.gl,{width:$,height:_e,parameters:et});return copyToTexture(j,nt,{targetY:0,width:tt,height:rt}),j.delete(),nt}function buildRowMapping(j,$,_e){for(let et=0;et<$.length;et++){const{icon:tt,xOffset:rt}=$[et],nt=getIconId(tt);j[nt]={...tt,x:rt,y:_e}}}function buildMapping$1({icons:j,buffer:$,mapping:_e={},xOffset:et=0,yOffset:tt=0,rowHeight:rt=0,canvasWidth:nt}){let it=[];for(let ot=0;otnt&&(buildRowMapping(_e,it,tt),et=0,tt=rt+tt+$,rt=0,it=[]),it.push({icon:At,xOffset:et}),et=et+dt+$,rt=Math.max(rt,ft)}}return it.length>0&&buildRowMapping(_e,it,tt),{mapping:_e,rowHeight:rt,xOffset:et,yOffset:tt,canvasWidth:nt,canvasHeight:nextPowOfTwo$1(rt+tt+$)}}function getDiffIcons(j,$,_e){if(!j||!$)return null;_e=_e||{};const et={},{iterable:tt,objectInfo:rt}=createIterable(j);for(const nt of tt){rt.index++;const it=$(nt,rt),ot=getIconId(it);if(!it)throw new Error("Icon is missing.");if(!it.url)throw new Error("Icon url is missing.");!et[ot]&&(!_e[ot]||it.url!==_e[ot].url)&&(et[ot]={...it,source:nt,sourceIndex:rt.index})}return et}class IconManager{constructor($,{onUpdate:_e=noop$1$1,onError:et=noop$1$1}){_defineProperty$e(this,"gl",void 0),_defineProperty$e(this,"onUpdate",void 0),_defineProperty$e(this,"onError",void 0),_defineProperty$e(this,"_loadOptions",null),_defineProperty$e(this,"_texture",null),_defineProperty$e(this,"_externalTexture",null),_defineProperty$e(this,"_mapping",{}),_defineProperty$e(this,"_textureParameters",null),_defineProperty$e(this,"_pendingCount",0),_defineProperty$e(this,"_autoPacking",!1),_defineProperty$e(this,"_xOffset",0),_defineProperty$e(this,"_yOffset",0),_defineProperty$e(this,"_rowHeight",0),_defineProperty$e(this,"_buffer",DEFAULT_BUFFER$1),_defineProperty$e(this,"_canvasWidth",DEFAULT_CANVAS_WIDTH),_defineProperty$e(this,"_canvasHeight",0),_defineProperty$e(this,"_canvas",null),this.gl=$,this.onUpdate=_e,this.onError=et}finalize(){var $;($=this._texture)===null||$===void 0||$.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping($){const _e=this._autoPacking?getIconId($):$;return this._mapping[_e]||{}}setProps({loadOptions:$,autoPacking:_e,iconAtlas:et,iconMapping:tt,textureParameters:rt}){if($&&(this._loadOptions=$),_e!==void 0&&(this._autoPacking=_e),tt&&(this._mapping=tt),et){var nt;(nt=this._texture)===null||nt===void 0||nt.delete(),this._texture=null,this._externalTexture=et}rt&&(this._textureParameters=rt)}get isLoaded(){return this._pendingCount===0}packIcons($,_e){if(!this._autoPacking||typeof document>"u")return;const et=Object.values(getDiffIcons($,_e,this._mapping)||{});if(et.length>0){const{mapping:tt,xOffset:rt,yOffset:nt,rowHeight:it,canvasHeight:ot}=buildMapping$1({icons:et,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=it,this._mapping=tt,this._xOffset=rt,this._yOffset=nt,this._canvasHeight=ot,this._texture||(this._texture=new Texture2D(this.gl,{width:this._canvasWidth,height:this._canvasHeight,parameters:this._textureParameters||DEFAULT_TEXTURE_PARAMETERS})),this._texture.height!==this._canvasHeight&&(this._texture=resizeTexture(this._texture,this._canvasWidth,this._canvasHeight,this._textureParameters||DEFAULT_TEXTURE_PARAMETERS)),this.onUpdate(),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(et)}}_loadIcons($){const _e=this._canvas.getContext("2d");for(const et of $)this._pendingCount++,load(et.url,ImageLoader,this._loadOptions).then(tt=>{const rt=getIconId(et),{x:nt,y:it,width:ot,height:At}=this._mapping[rt],ut=resizeImage(_e,tt,ot,At);this._texture.setSubImageData({data:ut,x:nt,y:it,width:ot,height:At}),this._texture.generateMipmap(),this.onUpdate()}).catch(tt=>{this.onError({url:et.url,source:et.source,sourceIndex:et.sourceIndex,loadOptions:this._loadOptions,error:tt})}).finally(()=>{this._pendingCount--})}}const DEFAULT_COLOR$9=[0,0,0,255],defaultProps$H={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:j=>j.position},getIcon:{type:"accessor",value:j=>j.icon},getColor:{type:"accessor",value:DEFAULT_COLOR$9},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,compare:!1,optional:!0}};class IconLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){return super.getShaders({vs:vs$f,fs:fs$h,modules:[project32,picking]})}initializeState(){this.state={iconManager:new IconManager(this.context.gl,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:5121,accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:DEFAULT_COLOR$9},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState($){super.updateState($);const{props:_e,oldProps:et,changeFlags:tt}=$,rt=this.getAttributeManager(),{iconAtlas:nt,iconMapping:it,data:ot,getIcon:At,textureParameters:ut}=_e,{iconManager:ft}=this.state,dt=nt||this.internalState.isAsyncPropLoading("iconAtlas");if(ft.setProps({loadOptions:_e.loadOptions,autoPacking:!dt,iconAtlas:nt,iconMapping:dt?it:null,textureParameters:ut}),dt?et.iconMapping!==_e.iconMapping&&rt.invalidate("getIcon"):(tt.dataChanged||tt.updateTriggersChanged&&(tt.updateTriggersChanged.all||tt.updateTriggersChanged.getIcon))&&ft.packIcons(ot,At),tt.extensionsChanged){var Et;const{gl:Bt}=this.context;(Et=this.state.model)===null||Et===void 0||Et.delete(),this.state.model=this._getModel(Bt),rt.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState($){super.finalizeState($),this.state.iconManager.finalize()}draw({uniforms:$}){const{sizeScale:_e,sizeMinPixels:et,sizeMaxPixels:tt,sizeUnits:rt,billboard:nt,alphaCutoff:it}=this.props,{iconManager:ot}=this.state,At=ot.getTexture();At&&this.state.model.setUniforms($).setUniforms({iconsTexture:At,iconsTextureDim:[At.width,At.height],sizeUnits:UNIT[rt],sizeScale:_e,sizeMinPixels:et,sizeMaxPixels:tt,billboard:nt,alphaCutoff:it}).draw()}_getModel($){const _e=[-1,-1,-1,1,1,1,1,-1];return new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:6,attributes:{positions:{size:2,value:new Float32Array(_e)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError($){var _e;const et=(_e=this.getCurrentLayer())===null||_e===void 0?void 0:_e.props.onIconError;et?et($):log$3.error($.error.message)()}getInstanceOffset($){const{width:_e,height:et,anchorX:tt=_e/2,anchorY:rt=et/2}=this.state.iconManager.getIconMapping($);return[_e/2-tt,et/2-rt]}getInstanceColorMode($){return this.state.iconManager.getIconMapping($).mask?1:0}getInstanceIconFrame($){const{x:_e,y:et,width:tt,height:rt}=this.state.iconManager.getIconMapping($);return[_e,et,tt,rt]}}_defineProperty$e(IconLayer,"defaultProps",defaultProps$H);_defineProperty$e(IconLayer,"layerName","IconLayer");const vs$e=`#define SHADER_NAME line-layer-vertex-shader + +attribute vec3 positions; +attribute vec3 instanceSourcePositions; +attribute vec3 instanceTargetPositions; +attribute vec3 instanceSourcePositions64Low; +attribute vec3 instanceTargetPositions64Low; +attribute vec4 instanceColors; +attribute vec3 instancePickingColors; +attribute float instanceWidths; + +uniform float opacity; +uniform float widthScale; +uniform float widthMinPixels; +uniform float widthMaxPixels; +uniform float useShortestPath; +uniform int widthUnits; + +varying vec4 vColor; +varying vec2 uv; + +// offset vector by strokeWidth pixels +// offset_direction is -1 (left) or 1 (right) +vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) { + // normalized direction of the line + vec2 dir_screenspace = normalize(line_clipspace * project_uViewportSize); + // rotate by 90 degrees + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + + return dir_screenspace * offset_direction * width / 2.0; +} + +vec3 splitLine(vec3 a, vec3 b, float x) { + float t = (x - a.x) / (b.x - a.x); + return vec3(x, mix(a.yz, b.yz, t)); +} + +void main(void) { + geometry.worldPosition = instanceSourcePositions; + geometry.worldPositionAlt = instanceTargetPositions; + + vec3 source_world = instanceSourcePositions; + vec3 target_world = instanceTargetPositions; + vec3 source_world_64low = instanceSourcePositions64Low; + vec3 target_world_64low = instanceTargetPositions64Low; + + if (useShortestPath > 0.5 || useShortestPath < -0.5) { + source_world.x = mod(source_world.x + 180., 360.0) - 180.; + target_world.x = mod(target_world.x + 180., 360.0) - 180.; + float deltaLng = target_world.x - source_world.x; + + if (deltaLng * useShortestPath > 180.) { + source_world.x += 360. * useShortestPath; + source_world = splitLine(source_world, target_world, 180. * useShortestPath); + source_world_64low = vec3(0.0); + } else if (deltaLng * useShortestPath < -180.) { + target_world.x += 360. * useShortestPath; + target_world = splitLine(source_world, target_world, 180. * useShortestPath); + target_world_64low = vec3(0.0); + } else if (useShortestPath < 0.) { + // Line is not split, abort + gl_Position = vec4(0.); + return; + } + } + + // Position + vec4 source_commonspace; + vec4 target_commonspace; + vec4 source = project_position_to_clipspace(source_world, source_world_64low, vec3(0.), source_commonspace); + vec4 target = project_position_to_clipspace(target_world, target_world_64low, vec3(0.), target_commonspace); + + // linear interpolation of source & target to pick right coord + float segmentIndex = positions.x; + vec4 p = mix(source, target, segmentIndex); + geometry.position = mix(source_commonspace, target_commonspace, segmentIndex); + uv = positions.xy; + geometry.uv = uv; + geometry.pickingColor = instancePickingColors; + + // Multiply out width and clamp to limits + float widthPixels = clamp( + project_size_to_pixel(instanceWidths * widthScale, widthUnits), + widthMinPixels, widthMaxPixels + ); + + // extrude + vec3 offset = vec3( + getExtrusionOffset(target.xy - source.xy, positions.y, widthPixels), + 0.0); + DECKGL_FILTER_SIZE(offset, geometry); + gl_Position = p + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + // Color + vColor = vec4(instanceColors.rgb, instanceColors.a * opacity); + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$g=`#define SHADER_NAME line-layer-fragment-shader + +precision highp float; + +varying vec4 vColor; +varying vec2 uv; + +void main(void) { + geometry.uv = uv; + + gl_FragColor = vColor; + + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_COLOR$8=[0,0,0,255],defaultProps$G={getSourcePosition:{type:"accessor",value:j=>j.sourcePosition},getTargetPosition:{type:"accessor",value:j=>j.targetPosition},getColor:{type:"accessor",value:DEFAULT_COLOR$8},getWidth:{type:"accessor",value:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class LineLayer extends Layer{getShaders(){return super.getShaders({vs:vs$e,fs:fs$g,modules:[project32,picking]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1}})}updateState($){if(super.updateState($),$.changeFlags.extensionsChanged){var _e;const{gl:et}=this.context;(_e=this.state.model)===null||_e===void 0||_e.delete(),this.state.model=this._getModel(et),this.getAttributeManager().invalidateAll()}}draw({uniforms:$}){const{widthUnits:_e,widthScale:et,widthMinPixels:tt,widthMaxPixels:rt,wrapLongitude:nt}=this.props;this.state.model.setUniforms($).setUniforms({widthUnits:UNIT[_e],widthScale:et,widthMinPixels:tt,widthMaxPixels:rt,useShortestPath:nt?1:0}).draw(),nt&&this.state.model.setUniforms({useShortestPath:-1}).draw()}_getModel($){const _e=[0,-1,0,0,1,0,1,-1,0,1,1,0];return new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:5,attributes:{positions:new Float32Array(_e)}}),isInstanced:!0})}}_defineProperty$e(LineLayer,"layerName","LineLayer");_defineProperty$e(LineLayer,"defaultProps",defaultProps$G);const vs$d=`#define SHADER_NAME point-cloud-layer-vertex-shader + +attribute vec3 positions; +attribute vec3 instanceNormals; +attribute vec4 instanceColors; +attribute vec3 instancePositions; +attribute vec3 instancePositions64Low; +attribute vec3 instancePickingColors; + +uniform float opacity; +uniform float radiusPixels; +uniform int sizeUnits; + +varying vec4 vColor; +varying vec2 unitPosition; + +void main(void) { + geometry.worldPosition = instancePositions; + geometry.normal = project_normal(instanceNormals); + + // position on the containing square in [-1, 1] space + unitPosition = positions.xy; + geometry.uv = unitPosition; + geometry.pickingColor = instancePickingColors; + + // Find the center of the point and add the current vertex + vec3 offset = vec3(positions.xy * project_size_to_pixel(radiusPixels, sizeUnits), 0.0); + DECKGL_FILTER_SIZE(offset, geometry); + + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.), geometry.position); + gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + // Apply lighting + vec3 lightColor = lighting_getLightColor(instanceColors.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal); + + // Apply opacity to instance color, or return instance picking color + vColor = vec4(lightColor, instanceColors.a * opacity); + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$f=`#define SHADER_NAME point-cloud-layer-fragment-shader + +precision highp float; + +varying vec4 vColor; +varying vec2 unitPosition; + +void main(void) { + geometry.uv = unitPosition; + + float distToCenter = length(unitPosition); + + if (distToCenter > 1.0) { + discard; + } + + gl_FragColor = vColor; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_COLOR$7=[0,0,0,255],DEFAULT_NORMAL=[0,0,1],defaultProps$F={sizeUnits:"pixels",pointSize:{type:"number",min:0,value:10},getPosition:{type:"accessor",value:j=>j.position},getNormal:{type:"accessor",value:DEFAULT_NORMAL},getColor:{type:"accessor",value:DEFAULT_COLOR$7},material:!0,radiusPixels:{deprecatedFor:"pointSize"}};function normalizeData(j){const{header:$,attributes:_e}=j;!$||!_e||(j.length=$.vertexCount,_e.POSITION&&(_e.instancePositions=_e.POSITION),_e.NORMAL&&(_e.instanceNormals=_e.NORMAL),_e.COLOR_0&&(_e.instanceColors=_e.COLOR_0))}class PointCloudLayer extends Layer{getShaders(){return super.getShaders({vs:vs$d,fs:fs$f,modules:[project32,gouraudLighting,picking]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceNormals:{size:3,transition:!0,accessor:"getNormal",defaultValue:DEFAULT_NORMAL},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getColor",defaultValue:DEFAULT_COLOR$7}})}updateState($){const{changeFlags:_e,props:et}=$;if(super.updateState($),_e.extensionsChanged){var tt;const{gl:rt}=this.context;(tt=this.state.model)===null||tt===void 0||tt.delete(),this.state.model=this._getModel(rt),this.getAttributeManager().invalidateAll()}_e.dataChanged&&normalizeData(et.data)}draw({uniforms:$}){const{pointSize:_e,sizeUnits:et}=this.props;this.state.model.setUniforms($).setUniforms({sizeUnits:UNIT[et],radiusPixels:_e}).draw()}_getModel($){const _e=[];for(let et=0;et<3;et++){const tt=et/3*Math.PI*2;_e.push(Math.cos(tt)*2,Math.sin(tt)*2,0)}return new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:4,attributes:{positions:new Float32Array(_e)}}),isInstanced:!0})}}_defineProperty$e(PointCloudLayer,"layerName","PointCloudLayer");_defineProperty$e(PointCloudLayer,"defaultProps",defaultProps$F);const vs$c=`#define SHADER_NAME scatterplot-layer-vertex-shader + +attribute vec3 positions; + +attribute vec3 instancePositions; +attribute vec3 instancePositions64Low; +attribute float instanceRadius; +attribute float instanceLineWidths; +attribute vec4 instanceFillColors; +attribute vec4 instanceLineColors; +attribute vec3 instancePickingColors; + +uniform float opacity; +uniform float radiusScale; +uniform float radiusMinPixels; +uniform float radiusMaxPixels; +uniform float lineWidthScale; +uniform float lineWidthMinPixels; +uniform float lineWidthMaxPixels; +uniform float stroked; +uniform bool filled; +uniform bool antialiasing; +uniform bool billboard; +uniform int radiusUnits; +uniform int lineWidthUnits; + +varying vec4 vFillColor; +varying vec4 vLineColor; +varying vec2 unitPosition; +varying float innerUnitRadius; +varying float outerRadiusPixels; + + +void main(void) { + geometry.worldPosition = instancePositions; + + // Multiply out radius and clamp to limits + outerRadiusPixels = clamp( + project_size_to_pixel(radiusScale * instanceRadius, radiusUnits), + radiusMinPixels, radiusMaxPixels + ); + + // Multiply out line width and clamp to limits + float lineWidthPixels = clamp( + project_size_to_pixel(lineWidthScale * instanceLineWidths, lineWidthUnits), + lineWidthMinPixels, lineWidthMaxPixels + ); + + // outer radius needs to offset by half stroke width + outerRadiusPixels += stroked * lineWidthPixels / 2.0; + + // Expand geometry to accomodate edge smoothing + float edgePadding = antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0; + + // position on the containing square in [-1, 1] space + unitPosition = edgePadding * positions.xy; + geometry.uv = unitPosition; + geometry.pickingColor = instancePickingColors; + + innerUnitRadius = 1.0 - stroked * lineWidthPixels / outerRadiusPixels; + + if (billboard) { + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position); + vec3 offset = edgePadding * positions * outerRadiusPixels; + DECKGL_FILTER_SIZE(offset, geometry); + gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); + } else { + vec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels); + DECKGL_FILTER_SIZE(offset, geometry); + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position); + } + + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + // Apply opacity to instance color, or return instance picking color + vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity); + DECKGL_FILTER_COLOR(vFillColor, geometry); + vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity); + DECKGL_FILTER_COLOR(vLineColor, geometry); +} +`,fs$e=`#define SHADER_NAME scatterplot-layer-fragment-shader + +precision highp float; + +uniform bool filled; +uniform float stroked; +uniform bool antialiasing; + +varying vec4 vFillColor; +varying vec4 vLineColor; +varying vec2 unitPosition; +varying float innerUnitRadius; +varying float outerRadiusPixels; + +void main(void) { + geometry.uv = unitPosition; + + float distToCenter = length(unitPosition) * outerRadiusPixels; + float inCircle = antialiasing ? + smoothedge(distToCenter, outerRadiusPixels) : + step(distToCenter, outerRadiusPixels); + + if (inCircle == 0.0) { + discard; + } + + if (stroked > 0.5) { + float isLine = antialiasing ? + smoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) : + step(innerUnitRadius * outerRadiusPixels, distToCenter); + + if (filled) { + gl_FragColor = mix(vFillColor, vLineColor, isLine); + } else { + if (isLine == 0.0) { + discard; + } + gl_FragColor = vec4(vLineColor.rgb, vLineColor.a * isLine); + } + } else if (filled) { + gl_FragColor = vFillColor; + } else { + discard; + } + + gl_FragColor.a *= inCircle; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_COLOR$6=[0,0,0,255],defaultProps$E={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:j=>j.position},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:DEFAULT_COLOR$6},getLineColor:{type:"accessor",value:DEFAULT_COLOR$6},getLineWidth:{type:"accessor",value:1},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class ScatterplotLayer extends Layer{getShaders(){return super.getShaders({vs:vs$c,fs:fs$e,modules:[project32,picking]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState($){if(super.updateState($),$.changeFlags.extensionsChanged){var _e;const{gl:et}=this.context;(_e=this.state.model)===null||_e===void 0||_e.delete(),this.state.model=this._getModel(et),this.getAttributeManager().invalidateAll()}}draw({uniforms:$}){const{radiusUnits:_e,radiusScale:et,radiusMinPixels:tt,radiusMaxPixels:rt,stroked:nt,filled:it,billboard:ot,antialiasing:At,lineWidthUnits:ut,lineWidthScale:ft,lineWidthMinPixels:dt,lineWidthMaxPixels:Et}=this.props;this.state.model.setUniforms($).setUniforms({stroked:nt?1:0,filled:it,billboard:ot,antialiasing:At,radiusUnits:UNIT[_e],radiusScale:et,radiusMinPixels:tt,radiusMaxPixels:rt,lineWidthUnits:UNIT[ut],lineWidthScale:ft,lineWidthMinPixels:dt,lineWidthMaxPixels:Et}).draw()}_getModel($){const _e=[-1,-1,0,1,-1,0,1,1,0,-1,1,0];return new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:6,vertexCount:4,attributes:{positions:{size:3,value:new Float32Array(_e)}}}),isInstanced:!0})}}_defineProperty$e(ScatterplotLayer,"defaultProps",defaultProps$E);_defineProperty$e(ScatterplotLayer,"layerName","ScatterplotLayer");const WINDING={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function modifyPolygonWindingDirection(j,$,_e={}){return getPolygonWindingDirection(j,_e)!==$?(reversePolygon(j,_e),!0):!1}function getPolygonWindingDirection(j,$={}){return Math.sign(getPolygonSignedArea(j,$))}function getPolygonSignedArea(j,$={}){const{start:_e=0,end:et=j.length}=$,tt=$.size||2;let rt=0;for(let nt=_e,it=et-tt;nt80*_e){ft=At=j[0],dt=ut=j[1];for(let St=_e;StAt&&(At=Et),Bt>ut&&(ut=Bt);ot=Math.max(At-ft,ut-dt),ot=ot!==0?1/ot:0}return earcutLinked$1(nt,it,_e,ft,dt,ot),it}function linkedList$1(j,$,_e,et,tt,rt){let nt,it;if(rt===void 0&&(rt=getPolygonSignedArea(j,{start:$,end:_e,size:et})),tt===rt<0)for(nt=$;nt<_e;nt+=et)it=insertNode$1(nt,j[nt],j[nt+1],it);else for(nt=_e-et;nt>=$;nt-=et)it=insertNode$1(nt,j[nt],j[nt+1],it);return it&&equals$1(it,it.next)&&(removeNode$1(it),it=it.next),it}function filterPoints$1(j,$){if(!j)return j;$||($=j);let _e=j,et;do if(et=!1,!_e.steiner&&(equals$1(_e,_e.next)||area$3(_e.prev,_e,_e.next)===0)){if(removeNode$1(_e),_e=$=_e.prev,_e===_e.next)break;et=!0}else _e=_e.next;while(et||_e!==$);return $}function earcutLinked$1(j,$,_e,et,tt,rt,nt){if(!j)return;!nt&&rt&&indexCurve$1(j,et,tt,rt);let it=j,ot,At;for(;j.prev!==j.next;){if(ot=j.prev,At=j.next,rt?isEarHashed$1(j,et,tt,rt):isEar$1(j)){$.push(ot.i/_e),$.push(j.i/_e),$.push(At.i/_e),removeNode$1(j),j=At.next,it=At.next;continue}if(j=At,j===it){nt?nt===1?(j=cureLocalIntersections$1(filterPoints$1(j),$,_e),earcutLinked$1(j,$,_e,et,tt,rt,2)):nt===2&&splitEarcut$1(j,$,_e,et,tt,rt):earcutLinked$1(filterPoints$1(j),$,_e,et,tt,rt,1);break}}}function isEar$1(j){const $=j.prev,_e=j,et=j.next;if(area$3($,_e,et)>=0)return!1;let tt=j.next.next;for(;tt!==j.prev;){if(pointInTriangle$1($.x,$.y,_e.x,_e.y,et.x,et.y,tt.x,tt.y)&&area$3(tt.prev,tt,tt.next)>=0)return!1;tt=tt.next}return!0}function isEarHashed$1(j,$,_e,et){const tt=j.prev,rt=j,nt=j.next;if(area$3(tt,rt,nt)>=0)return!1;const it=tt.xrt.x?tt.x>nt.x?tt.x:nt.x:rt.x>nt.x?rt.x:nt.x,ut=tt.y>rt.y?tt.y>nt.y?tt.y:nt.y:rt.y>nt.y?rt.y:nt.y,ft=zOrder$1(it,ot,$,_e,et),dt=zOrder$1(At,ut,$,_e,et);let Et=j.prevZ,Bt=j.nextZ;for(;Et&&Et.z>=ft&&Bt&&Bt.z<=dt;){if(Et!==j.prev&&Et!==j.next&&pointInTriangle$1(tt.x,tt.y,rt.x,rt.y,nt.x,nt.y,Et.x,Et.y)&&area$3(Et.prev,Et,Et.next)>=0||(Et=Et.prevZ,Bt!==j.prev&&Bt!==j.next&&pointInTriangle$1(tt.x,tt.y,rt.x,rt.y,nt.x,nt.y,Bt.x,Bt.y)&&area$3(Bt.prev,Bt,Bt.next)>=0))return!1;Bt=Bt.nextZ}for(;Et&&Et.z>=ft;){if(Et!==j.prev&&Et!==j.next&&pointInTriangle$1(tt.x,tt.y,rt.x,rt.y,nt.x,nt.y,Et.x,Et.y)&&area$3(Et.prev,Et,Et.next)>=0)return!1;Et=Et.prevZ}for(;Bt&&Bt.z<=dt;){if(Bt!==j.prev&&Bt!==j.next&&pointInTriangle$1(tt.x,tt.y,rt.x,rt.y,nt.x,nt.y,Bt.x,Bt.y)&&area$3(Bt.prev,Bt,Bt.next)>=0)return!1;Bt=Bt.nextZ}return!0}function cureLocalIntersections$1(j,$,_e){let et=j;do{const tt=et.prev,rt=et.next.next;!equals$1(tt,rt)&&intersects$3(tt,et,et.next,rt)&&locallyInside$1(tt,rt)&&locallyInside$1(rt,tt)&&($.push(tt.i/_e),$.push(et.i/_e),$.push(rt.i/_e),removeNode$1(et),removeNode$1(et.next),et=j=rt),et=et.next}while(et!==j);return filterPoints$1(et)}function splitEarcut$1(j,$,_e,et,tt,rt){let nt=j;do{let it=nt.next.next;for(;it!==nt.prev;){if(nt.i!==it.i&&isValidDiagonal$1(nt,it)){let ot=splitPolygon$1(nt,it);nt=filterPoints$1(nt,nt.next),ot=filterPoints$1(ot,ot.next),earcutLinked$1(nt,$,_e,et,tt,rt),earcutLinked$1(ot,$,_e,et,tt,rt);return}it=it.next}nt=nt.next}while(nt!==j)}function eliminateHoles$1(j,$,_e,et,tt){const rt=[];let nt,it,ot,At,ut;for(nt=0,it=$.length;nt=_e.next.y&&_e.next.y!==_e.y){const dt=_e.x+(tt-_e.y)*(_e.next.x-_e.x)/(_e.next.y-_e.y);if(dt<=et&&dt>rt){if(rt=dt,dt===et){if(tt===_e.y)return _e;if(tt===_e.next.y)return _e.next}nt=_e.x<_e.next.x?_e:_e.next}}_e=_e.next}while(_e!==$);if(!nt)return null;if(et===rt)return nt;const it=nt,ot=nt.x,At=nt.y;let ut=1/0,ft;_e=nt;do et>=_e.x&&_e.x>=ot&&et!==_e.x&&pointInTriangle$1(ttnt.x||_e.x===nt.x&§orContainsSector$1(nt,_e)))&&(nt=_e,ut=ft)),_e=_e.next;while(_e!==it);return nt}function sectorContainsSector$1(j,$){return area$3(j.prev,j,$.prev)<0&&area$3($.next,j,j.next)<0}function indexCurve$1(j,$,_e,et){let tt=j;do tt.z===null&&(tt.z=zOrder$1(tt.x,tt.y,$,_e,et)),tt.prevZ=tt.prev,tt.nextZ=tt.next,tt=tt.next;while(tt!==j);tt.prevZ.nextZ=null,tt.prevZ=null,sortLinked$1(tt)}function sortLinked$1(j){let $,_e,et=1,tt,rt,nt,it,ot,At;do{for(rt=j,j=null,At=null,tt=0;rt;){for(tt++,it=rt,nt=0,_e=0;_e0||ot>0&⁢)nt!==0&&(ot===0||!it||rt.z<=it.z)?($=rt,rt=rt.nextZ,nt--):($=it,it=it.nextZ,ot--),At?At.nextZ=$:j=$,$.prevZ=At,At=$;rt=it}At.nextZ=null,et*=2}while(tt>1);return j}function zOrder$1(j,$,_e,et,tt){return j=32767*(j-_e)*tt,$=32767*($-et)*tt,j=(j|j<<8)&16711935,j=(j|j<<4)&252645135,j=(j|j<<2)&858993459,j=(j|j<<1)&1431655765,$=($|$<<8)&16711935,$=($|$<<4)&252645135,$=($|$<<2)&858993459,$=($|$<<1)&1431655765,j|$<<1}function getLeftmost$1(j){let $=j,_e=j;do($.x<_e.x||$.x===_e.x&&$.y<_e.y)&&(_e=$),$=$.next;while($!==j);return _e}function pointInTriangle$1(j,$,_e,et,tt,rt,nt,it){return(tt-nt)*($-it)-(j-nt)*(rt-it)>=0&&(j-nt)*(et-it)-(_e-nt)*($-it)>=0&&(_e-nt)*(rt-it)-(tt-nt)*(et-it)>=0}function isValidDiagonal$1(j,$){return j.next.i!==$.i&&j.prev.i!==$.i&&!intersectsPolygon$1(j,$)&&(locallyInside$1(j,$)&&locallyInside$1($,j)&&middleInside$1(j,$)&&(area$3(j.prev,j,$.prev)||area$3(j,$.prev,$))||equals$1(j,$)&&area$3(j.prev,j,j.next)>0&&area$3($.prev,$,$.next)>0)}function area$3(j,$,_e){return($.y-j.y)*(_e.x-$.x)-($.x-j.x)*(_e.y-$.y)}function equals$1(j,$){return j.x===$.x&&j.y===$.y}function intersects$3(j,$,_e,et){const tt=sign$2(area$3(j,$,_e)),rt=sign$2(area$3(j,$,et)),nt=sign$2(area$3(_e,et,j)),it=sign$2(area$3(_e,et,$));return!!(tt!==rt&&nt!==it||tt===0&&onSegment$1(j,_e,$)||rt===0&&onSegment$1(j,et,$)||nt===0&&onSegment$1(_e,j,et)||it===0&&onSegment$1(_e,$,et))}function onSegment$1(j,$,_e){return $.x<=Math.max(j.x,_e.x)&&$.x>=Math.min(j.x,_e.x)&&$.y<=Math.max(j.y,_e.y)&&$.y>=Math.min(j.y,_e.y)}function sign$2(j){return j>0?1:j<0?-1:0}function intersectsPolygon$1(j,$){let _e=j;do{if(_e.i!==j.i&&_e.next.i!==j.i&&_e.i!==$.i&&_e.next.i!==$.i&&intersects$3(_e,_e.next,j,$))return!0;_e=_e.next}while(_e!==j);return!1}function locallyInside$1(j,$){return area$3(j.prev,j,j.next)<0?area$3(j,$,j.next)>=0&&area$3(j,j.prev,$)>=0:area$3(j,$,j.prev)<0||area$3(j,j.next,$)<0}function middleInside$1(j,$){let _e=j,et=!1;const tt=(j.x+$.x)/2,rt=(j.y+$.y)/2;do _e.y>rt!=_e.next.y>rt&&_e.next.y!==_e.y&&tt<(_e.next.x-_e.x)*(rt-_e.y)/(_e.next.y-_e.y)+_e.x&&(et=!et),_e=_e.next;while(_e!==j);return et}function splitPolygon$1(j,$){const _e=new Node$1(j.i,j.x,j.y),et=new Node$1($.i,$.x,$.y),tt=j.next,rt=$.prev;return j.next=$,$.prev=j,_e.next=tt,tt.prev=_e,et.next=_e,_e.prev=et,rt.next=et,et.prev=rt,et}function insertNode$1(j,$,_e,et){const tt=new Node$1(j,$,_e);return et?(tt.next=et.next,tt.prev=et,et.next.prev=tt,et.next=tt):(tt.prev=tt,tt.next=tt),tt}function removeNode$1(j){j.next.prev=j.prev,j.prev.next=j.next,j.prevZ&&(j.prevZ.nextZ=j.nextZ),j.nextZ&&(j.nextZ.prevZ=j.prevZ)}function Node$1(j,$,_e){this.i=j,this.x=$,this.y=_e,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function push(j,$){const _e=$.length,et=j.length;if(et>0){let tt=!0;for(let rt=0;rt<_e;rt++)if(j[et-_e+rt]!==$[rt]){tt=!1;break}if(tt)return!1}for(let tt=0;tt<_e;tt++)j[et+tt]=$[tt];return!0}function copy$2(j,$){const _e=$.length;for(let et=0;et<_e;et++)j[et]=$[et]}function getPointAtIndex(j,$,_e,et,tt=[]){const rt=et+$*_e;for(let nt=0;nt<_e;nt++)tt[nt]=j[rt+nt];return tt}function intersect$1(j,$,_e,et,tt=[]){let rt,nt;if(_e&8)rt=(et[3]-j[1])/($[1]-j[1]),nt=3;else if(_e&4)rt=(et[1]-j[1])/($[1]-j[1]),nt=1;else if(_e&2)rt=(et[2]-j[0])/($[0]-j[0]),nt=2;else if(_e&1)rt=(et[0]-j[0])/($[0]-j[0]),nt=0;else return null;for(let it=0;it$[2]&&(_e|=2),j[1]<$[1]?_e|=4:j[1]>$[3]&&(_e|=8),_e}function cutPolylineByGrid(j,$){const{size:_e=2,broken:et=!1,gridResolution:tt=10,gridOffset:rt=[0,0],startIndex:nt=0,endIndex:it=j.length}=$||{},ot=(it-nt)/_e;let At=[];const ut=[At],ft=getPointAtIndex(j,0,_e,nt);let dt,Et;const Bt=getGridCell(ft,tt,rt,[]),St=[];push(At,ft);for(let Dt=1;Dt_e&&(At=[],ut.push(At),push(At,ft)),Et=bitCode(dt,Bt)}push(At,dt),copy$2(ft,dt)}return et?ut:ut[0]}const TYPE_INSIDE=0,TYPE_BORDER=1;function concatInPlace(j,$){for(let _e=0;_e<$.length;_e++)j.push($[_e]);return j}function cutPolygonByGrid(j,$=null,_e){if(!j.length)return[];const{size:et=2,gridResolution:tt=10,gridOffset:rt=[0,0],edgeTypes:nt=!1}=_e||{},it=[],ot=[{pos:j,types:nt?new Array(j.length/et).fill(TYPE_BORDER):null,holes:$||[]}],At=[[],[]];let ut=[];for(;ot.length;){const{pos:ft,types:dt,holes:Et}=ot.shift();getBoundingBox$1(ft,et,Et[0]||ft.length,At),ut=getGridCell(At[0],tt,rt,ut);const Bt=bitCode(At[1],ut);if(Bt){let St=bisectPolygon(ft,dt,et,0,Et[0]||ft.length,ut,Bt);const Dt={pos:St[0].pos,types:St[0].types,holes:[]},$t={pos:St[1].pos,types:St[1].types,holes:[]};ot.push(Dt,$t);for(let Rt=0;Rt=0?(push(At,Et)&&ft.push(St),xt+=Bt):ft.length&&(ft[ft.length-1]=TYPE_INSIDE),copy$2(Dt,Et),$t=Bt,Rt=St;return[wt?{pos:ot,types:$&&ut}:null,xt?{pos:At,types:$&&ft}:null]}function getGridCell(j,$,_e,et){const tt=Math.floor((j[0]-_e[0])/$)*$+_e[0],rt=Math.floor((j[1]-_e[1])/$)*$+_e[1];return et[0]=tt,et[1]=rt,et[2]=tt+$,et[3]=rt+$,et}function moveToNeighborCell(j,$,_e){_e&8?(j[1]+=$,j[3]+=$):_e&4?(j[1]-=$,j[3]-=$):_e&2?(j[0]+=$,j[2]+=$):_e&1&&(j[0]-=$,j[2]-=$)}function getBoundingBox$1(j,$,_e,et){let tt=1/0,rt=-1/0,nt=1/0,it=-1/0;for(let ot=0;ot<_e;ot+=$){const At=j[ot],ut=j[ot+1];tt=Atrt?At:rt,nt=utit?ut:it}return et[0][0]=tt,et[0][1]=nt,et[1][0]=rt,et[1][1]=it,et}const DEFAULT_MAX_LATITUDE=85.051129;function cutPolylineByMercatorBounds(j,$){const{size:_e=2,startIndex:et=0,endIndex:tt=j.length,normalize:rt=!0}=$||{},nt=j.slice(et,tt);wrapLongitudesForShortestPath(nt,_e,0,tt-et);const it=cutPolylineByGrid(nt,{size:_e,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(rt)for(const ot of it)shiftLongitudesIntoRange(ot,_e);return it}function cutPolygonByMercatorBounds(j,$=null,_e){const{size:et=2,normalize:tt=!0,edgeTypes:rt=!1}=_e||{};$=$||[];const nt=[],it=[];let ot=0,At=0;for(let ft=0;ft<=$.length;ft++){const dt=$[ft]||j.length,Et=At,Bt=findSplitIndex(j,et,ot,dt);for(let St=Bt;Sttt&&(tt=it,rt=nt-1)}return rt}function insertPoleVertices(j,$,_e,et,tt=DEFAULT_MAX_LATITUDE){const rt=j[_e],nt=j[et-$];if(Math.abs(rt-nt)>180){const it=getPointAtIndex(j,0,$,_e);it[0]+=Math.round((nt-rt)/360)*360,push(j,it),it[1]=Math.sign(it[1])*tt,push(j,it),it[0]=rt,push(j,it)}}function wrapLongitudesForShortestPath(j,$,_e,et){let tt=j[0],rt;for(let nt=_e;nt180||it<-180)&&(rt-=Math.round(it/360)*360),j[nt]=tt=rt}}function shiftLongitudesIntoRange(j,$){let _e;const et=j.length/$;for(let rt=0;rt=et),tt=tt.flatMap(Et=>[Et[0],Et[1]]),modifyPolygonWindingDirection(tt,WINDING.COUNTER_CLOCKWISE));const rt=_e>0,nt=et+1,it=rt?nt*3+1:et,ot=Math.PI*2/et,At=new Uint16Array(rt?et*3*2:0),ut=new Float32Array(it*3),ft=new Float32Array(it*3);let dt=0;if(rt){for(let Et=0;Et 0.0 && instanceElevations >= 0.0); + float dotRadius = radius * coverage * shouldRender; + + geometry.pickingColor = instancePickingColors; + + // project center of column + vec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation); + vec3 centroidPosition64Low = instancePositions64Low; + vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + offset) * dotRadius; + if (radiusUnits == UNIT_METERS) { + offset = project_size(offset); + } + vec3 pos = vec3(offset, 0.); + DECKGL_FILTER_SIZE(pos, geometry); + + gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position); + geometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z)); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + // Light calculations + if (extruded && !isStroke) { +#ifdef FLAT_SHADING + position_commonspace = geometry.position; + vColor = vec4(color.rgb, color.a * opacity); +#else + vec3 lightColor = lighting_getLightColor(color.rgb, project_uCameraPosition, geometry.position.xyz, geometry.normal); + vColor = vec4(lightColor, color.a * opacity); +#endif + } else { + vColor = vec4(color.rgb, color.a * opacity); + } + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$d=`#version 300 es +#define SHADER_NAME column-layer-fragment-shader + +precision highp float; + +uniform vec3 project_uCameraPosition; +uniform bool extruded; +uniform bool isStroke; + +out vec4 fragColor; + +in vec4 vColor; +#ifdef FLAT_SHADING +in vec4 position_commonspace; +#endif + +void main(void) { + fragColor = vColor; +#ifdef FLAT_SHADING + if (extruded && !isStroke && !picking_uActive) { + vec3 normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); + fragColor.rgb = lighting_getLightColor(vColor.rgb, project_uCameraPosition, position_commonspace.xyz, normal); + } +#endif + DECKGL_FILTER_COLOR(fragColor, geometry); +} +`,DEFAULT_COLOR$5=[0,0,0,255],defaultProps$D={diskResolution:{type:"number",min:4,value:20},vertices:null,radius:{type:"number",min:0,value:1e3},angle:{type:"number",value:0},offset:{type:"array",value:[0,0]},coverage:{type:"number",min:0,max:1,value:1},elevationScale:{type:"number",min:0,value:1},radiusUnits:"meters",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,getPosition:{type:"accessor",value:j=>j.position},getFillColor:{type:"accessor",value:DEFAULT_COLOR$5},getLineColor:{type:"accessor",value:DEFAULT_COLOR$5},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0,getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class ColumnLayer extends Layer{getShaders(){const{gl:$}=this.context,_e=!isWebGL2$1($),et={},tt=this.props.flatShading&&hasFeature($,FEATURES$1.GLSL_DERIVATIVES);return tt&&(et.FLAT_SHADING=1),super.getShaders({vs:vs$b,fs:fs$d,defines:et,transpileToGLSL100:_e,modules:[project32,tt?phongLighting:gouraudLighting,picking]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceElevations:{size:1,transition:!0,accessor:"getElevation"},instanceFillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getFillColor",defaultValue:DEFAULT_COLOR$5},instanceLineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:!0,accessor:"getLineColor",defaultValue:DEFAULT_COLOR$5},instanceStrokeWidths:{size:1,accessor:"getLineWidth",transition:!0}})}updateState($){super.updateState($);const{props:_e,oldProps:et,changeFlags:tt}=$,rt=tt.extensionsChanged||_e.flatShading!==et.flatShading;if(rt){var nt;const{gl:it}=this.context;(nt=this.state.model)===null||nt===void 0||nt.delete(),this.state.model=this._getModel(it),this.getAttributeManager().invalidateAll()}(rt||_e.diskResolution!==et.diskResolution||_e.vertices!==et.vertices||(_e.extruded||_e.stroked)!==(et.extruded||et.stroked))&&this._updateGeometry(_e)}getGeometry($,_e,et){const tt=new ColumnGeometry({radius:1,height:et?2:0,vertices:_e,nradial:$});let rt=0;if(_e)for(let nt=0;nt<$;nt++){const it=_e[nt],ot=Math.sqrt(it[0]*it[0]+it[1]*it[1]);rt+=ot/$}else rt=1;return this.setState({edgeDistance:Math.cos(Math.PI/$)*rt}),tt}_getModel($){return new Model($,{...this.getShaders(),id:this.props.id,isInstanced:!0})}_updateGeometry({diskResolution:$,vertices:_e,extruded:et,stroked:tt}){const rt=this.getGeometry($,_e,et||tt);this.setState({fillVertexCount:rt.attributes.POSITION.value.length/3,wireframeVertexCount:rt.indices.value.length}),this.state.model.setProps({geometry:rt})}draw({uniforms:$}){const{lineWidthUnits:_e,lineWidthScale:et,lineWidthMinPixels:tt,lineWidthMaxPixels:rt,radiusUnits:nt,elevationScale:it,extruded:ot,filled:At,stroked:ut,wireframe:ft,offset:dt,coverage:Et,radius:Bt,angle:St}=this.props,{model:Dt,fillVertexCount:$t,wireframeVertexCount:Rt,edgeDistance:wt}=this.state;Dt.setUniforms($).setUniforms({radius:Bt,angle:St/180*Math.PI,offset:dt,extruded:ot,stroked:ut,coverage:Et,elevationScale:it,edgeDistance:wt,radiusUnits:UNIT[nt],widthUnits:UNIT[_e],widthScale:et,widthMinPixels:tt,widthMaxPixels:rt}),ot&&ft&&(Dt.setProps({isIndexed:!0}),Dt.setVertexCount(Rt).setDrawMode(1).setUniforms({isStroke:!0}).draw()),At&&(Dt.setProps({isIndexed:!1}),Dt.setVertexCount($t).setDrawMode(5).setUniforms({isStroke:!1}).draw()),!ot&&ut&&(Dt.setProps({isIndexed:!1}),Dt.setVertexCount($t*2/3).setDrawMode(5).setUniforms({isStroke:!0}).draw())}}_defineProperty$e(ColumnLayer,"layerName","ColumnLayer");_defineProperty$e(ColumnLayer,"defaultProps",defaultProps$D);const defaultProps$C={cellSize:{type:"number",min:0,value:1e3},offset:{type:"array",value:[1,1]}};class GridCellLayer extends ColumnLayer{getGeometry($){return new CubeGeometry}draw({uniforms:$}){const{elevationScale:_e,extruded:et,offset:tt,coverage:rt,cellSize:nt,angle:it,radiusUnits:ot}=this.props;this.state.model.setUniforms($).setUniforms({radius:nt/2,radiusUnits:UNIT[ot],angle:it,offset:tt,extruded:et,coverage:rt,elevationScale:_e,edgeDistance:1,isWireframe:!1}).draw()}}_defineProperty$e(GridCellLayer,"layerName","GridCellLayer");_defineProperty$e(GridCellLayer,"defaultProps",defaultProps$C);function normalizePath(j,$,_e,et){let tt;if(Array.isArray(j[0])){const rt=j.length*$;tt=new Array(rt);for(let nt=0;nt=$.length&&(_e+=1-$.length/tt);const rt=_e*tt;return et[0]=$[rt],et[1]=$[rt+1],et[2]=tt===3&&$[rt+2]||0,et}isClosed($){if(!this.normalize)return!!this.opts.loop;const{positionSize:_e}=this,et=$.length-_e;return $[0]===$[et]&&$[1]===$[et+1]&&(_e===2||$[2]===$[et+2])}}function isCut$1(j){return Array.isArray(j[0])}const vs$a=`#define SHADER_NAME path-layer-vertex-shader + +attribute vec2 positions; + +attribute float instanceTypes; +attribute vec3 instanceStartPositions; +attribute vec3 instanceEndPositions; +attribute vec3 instanceLeftPositions; +attribute vec3 instanceRightPositions; +attribute vec3 instanceLeftPositions64Low; +attribute vec3 instanceStartPositions64Low; +attribute vec3 instanceEndPositions64Low; +attribute vec3 instanceRightPositions64Low; +attribute float instanceStrokeWidths; +attribute vec4 instanceColors; +attribute vec3 instancePickingColors; + +uniform float widthScale; +uniform float widthMinPixels; +uniform float widthMaxPixels; +uniform float jointType; +uniform float capType; +uniform float miterLimit; +uniform bool billboard; +uniform int widthUnits; + +uniform float opacity; + +varying vec4 vColor; +varying vec2 vCornerOffset; +varying float vMiterLength; +varying vec2 vPathPosition; +varying float vPathLength; +varying float vJointType; + +const float EPSILON = 0.001; +const vec3 ZERO_OFFSET = vec3(0.0); + +float flipIfTrue(bool flag) { + return -(float(flag) * 2. - 1.); +} + +// calculate line join positions +vec3 lineJoin( + vec3 prevPoint, vec3 currPoint, vec3 nextPoint, + vec2 width +) { + bool isEnd = positions.x > 0.0; + // side of the segment - -1: left, 0: center, 1: right + float sideOfPath = positions.y; + float isJoint = float(sideOfPath == 0.0); + + vec3 deltaA3 = (currPoint - prevPoint); + vec3 deltaB3 = (nextPoint - currPoint); + + mat3 rotationMatrix; + bool needsRotation = !billboard && project_needs_rotation(currPoint, rotationMatrix); + if (needsRotation) { + deltaA3 = deltaA3 * rotationMatrix; + deltaB3 = deltaB3 * rotationMatrix; + } + vec2 deltaA = deltaA3.xy / width; + vec2 deltaB = deltaB3.xy / width; + + float lenA = length(deltaA); + float lenB = length(deltaB); + + vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0); + vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0); + + vec2 perpA = vec2(-dirA.y, dirA.x); + vec2 perpB = vec2(-dirB.y, dirB.x); + + // tangent of the corner + vec2 tangent = dirA + dirB; + tangent = length(tangent) > 0. ? normalize(tangent) : perpA; + // direction of the corner + vec2 miterVec = vec2(-tangent.y, tangent.x); + // direction of the segment + vec2 dir = isEnd ? dirA : dirB; + // direction of the extrusion + vec2 perp = isEnd ? perpA : perpB; + // length of the segment + float L = isEnd ? lenA : lenB; + + // A = angle of the corner + float sinHalfA = abs(dot(miterVec, perp)); + float cosHalfA = abs(dot(dirA, miterVec)); + + // -1: right, 1: left + float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x); + + // relative position to the corner: + // -1: inside (smaller side of the angle) + // 0: center + // 1: outside (bigger side of the angle) + float cornerPosition = sideOfPath * turnDirection; + + float miterSize = 1.0 / max(sinHalfA, EPSILON); + // trim if inside corner extends further than the line segment + miterSize = mix( + min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)), + miterSize, + step(0.0, cornerPosition) + ); + + vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition)) + * (sideOfPath + isJoint * turnDirection); + + // special treatment for start cap and end cap + bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0)); + bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0)); + bool isCap = isStartCap || isEndCap; + + // extend out a triangle to envelope the round cap + if (isCap) { + offsetVec = mix(perp * sideOfPath, dir * capType * 4.0 * flipIfTrue(isStartCap), isJoint); + vJointType = capType; + } else { + vJointType = jointType; + } + + // Generate variables for fragment shader + vPathLength = L; + vCornerOffset = offsetVec; + vMiterLength = dot(vCornerOffset, miterVec * turnDirection); + vMiterLength = isCap ? isJoint : vMiterLength; + + vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd); + vPathPosition = vec2( + dot(offsetFromStartOfPath, perp), + dot(offsetFromStartOfPath, dir) + ); + geometry.uv = vPathPosition; + + float isValid = step(instanceTypes, 3.5); + vec3 offset = vec3(offsetVec * width * isValid, 0.0); + + if (needsRotation) { + offset = rotationMatrix * offset; + } + return currPoint + offset; +} + +// In clipspace extrusion, if a line extends behind the camera, clip it to avoid visual artifacts +void clipLine(inout vec4 position, vec4 refPosition) { + if (position.w < EPSILON) { + float r = (EPSILON - refPosition.w) / (position.w - refPosition.w); + position = refPosition + (position - refPosition) * r; + } +} + +void main() { + geometry.pickingColor = instancePickingColors; + + vColor = vec4(instanceColors.rgb, instanceColors.a * opacity); + + float isEnd = positions.x; + + vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd); + vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd); + + vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd); + vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd); + + vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd); + vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd); + + geometry.worldPosition = currPosition; + vec2 widthPixels = vec2(clamp( + project_size_to_pixel(instanceStrokeWidths * widthScale, widthUnits), + widthMinPixels, widthMaxPixels) / 2.0); + vec3 width; + + if (billboard) { + // Extrude in clipspace + vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET); + vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position); + vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET); + + clipLine(prevPositionScreen, currPositionScreen); + clipLine(nextPositionScreen, currPositionScreen); + clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd)); + + width = vec3(widthPixels, 0.0); + DECKGL_FILTER_SIZE(width, geometry); + + vec3 pos = lineJoin( + prevPositionScreen.xyz / prevPositionScreen.w, + currPositionScreen.xyz / currPositionScreen.w, + nextPositionScreen.xyz / nextPositionScreen.w, + project_pixel_size_to_clipspace(width.xy) + ); + + gl_Position = vec4(pos * currPositionScreen.w, currPositionScreen.w); + } else { + // Extrude in commonspace + prevPosition = project_position(prevPosition, prevPosition64Low); + currPosition = project_position(currPosition, currPosition64Low); + nextPosition = project_position(nextPosition, nextPosition64Low); + + width = vec3(project_pixel_size(widthPixels), 0.0); + DECKGL_FILTER_SIZE(width, geometry); + + vec4 pos = vec4( + lineJoin(prevPosition, currPosition, nextPosition, width.xy), + 1.0); + geometry.position = pos; + gl_Position = project_common_position_to_clipspace(pos); + } + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$c=`#define SHADER_NAME path-layer-fragment-shader + +precision highp float; + +uniform float miterLimit; + +varying vec4 vColor; +varying vec2 vCornerOffset; +varying float vMiterLength; +/* + * vPathPosition represents the relative coordinates of the current fragment on the path segment. + * vPathPosition.x - position along the width of the path, between [-1, 1]. 0 is the center line. + * vPathPosition.y - position along the length of the path, between [0, L / width]. + */ +varying vec2 vPathPosition; +varying float vPathLength; +varying float vJointType; + +void main(void) { + geometry.uv = vPathPosition; + + if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) { + // if joint is rounded, test distance from the corner + if (vJointType > 0.5 && length(vCornerOffset) > 1.0) { + discard; + } + // trim miter + if (vJointType < 0.5 && vMiterLength > miterLimit + 1.0) { + discard; + } + } + gl_FragColor = vColor; + + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_COLOR$4=[0,0,0,255],defaultProps$B={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:"accessor",value:j=>j.path},getColor:{type:"accessor",value:DEFAULT_COLOR$4},getWidth:{type:"accessor",value:1},rounded:{deprecatedFor:["jointRounded","capRounded"]}},ATTRIBUTE_TRANSITION$1={enter:(j,$)=>$.length?$.subarray($.length-j.length):j};class PathLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){return super.getShaders({vs:vs$a,fs:fs$c,modules:[project32,picking]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({positions:{size:3,vertexOffset:1,type:5130,fp64:this.use64bitPositions(),transition:ATTRIBUTE_TRANSITION$1,accessor:"getPath",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:5121,update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:ATTRIBUTE_TRANSITION$1,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,accessor:"getColor",transition:ATTRIBUTE_TRANSITION$1,defaultValue:DEFAULT_COLOR$4},instancePickingColors:{size:3,type:5121,accessor:(et,{index:tt,target:rt})=>this.encodePickingColor(et&&et.__source?et.__source.index:tt,rt)}}),this.setState({pathTesselator:new PathTesselator({fp64:this.use64bitPositions()})})}updateState($){super.updateState($);const{props:_e,changeFlags:et}=$,tt=this.getAttributeManager();if(et.dataChanged||et.updateTriggersChanged&&(et.updateTriggersChanged.all||et.updateTriggersChanged.getPath)){const{pathTesselator:it}=this.state,ot=_e.data.attributes||{};it.updateGeometry({data:_e.data,geometryBuffer:ot.getPath,buffers:ot,normalize:!_e._pathType,loop:_e._pathType==="loop",getGeometry:_e.getPath,positionFormat:_e.positionFormat,wrapLongitude:_e.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:et.dataChanged}),this.setState({numInstances:it.instanceCount,startIndices:it.vertexStarts}),et.dataChanged||tt.invalidateAll()}if(et.extensionsChanged){var nt;const{gl:it}=this.context;(nt=this.state.model)===null||nt===void 0||nt.delete(),this.state.model=this._getModel(it),tt.invalidateAll()}}getPickingInfo($){const _e=super.getPickingInfo($),{index:et}=_e,{data:tt}=this.props;return tt[0]&&tt[0].__source&&(_e.object=tt.find(rt=>rt.__source.index===et)),_e}disablePickingIndex($){const{data:_e}=this.props;if(_e[0]&&_e[0].__source)for(let et=0;et<_e.length;et++)_e[et].__source.index===$&&this._disablePickingIndex(et);else this._disablePickingIndex($)}draw({uniforms:$}){const{jointRounded:_e,capRounded:et,billboard:tt,miterLimit:rt,widthUnits:nt,widthScale:it,widthMinPixels:ot,widthMaxPixels:At}=this.props;this.state.model.setUniforms($).setUniforms({jointType:Number(_e),capType:Number(et),billboard:tt,widthUnits:UNIT[nt],widthScale:it,miterLimit:rt,widthMinPixels:ot,widthMaxPixels:At}).draw()}_getModel($){const _e=[0,1,2,1,4,2,1,3,4,3,5,4],et=[0,0,0,-1,0,1,1,-1,1,1,1,0];return new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:4,attributes:{indices:new Uint16Array(_e),positions:{value:new Float32Array(et),size:2}}}),isInstanced:!0})}calculatePositions($){const{pathTesselator:_e}=this.state;$.startIndices=_e.vertexStarts,$.value=_e.get("positions")}calculateSegmentTypes($){const{pathTesselator:_e}=this.state;$.startIndices=_e.vertexStarts,$.value=_e.get("segmentTypes")}}_defineProperty$e(PathLayer,"defaultProps",defaultProps$B);_defineProperty$e(PathLayer,"layerName","PathLayer");var earcut$2={exports:{}};earcut$2.exports=earcut;earcut$2.exports.default=earcut;function earcut(j,$,_e){_e=_e||2;var et=$&&$.length,tt=et?$[0]*_e:j.length,rt=linkedList(j,0,tt,_e,!0),nt=[];if(!rt||rt.next===rt.prev)return nt;var it,ot,At,ut,ft,dt,Et;if(et&&(rt=eliminateHoles(j,$,rt,_e)),j.length>80*_e){it=At=j[0],ot=ut=j[1];for(var Bt=_e;BtAt&&(At=ft),dt>ut&&(ut=dt);Et=Math.max(At-it,ut-ot),Et=Et!==0?32767/Et:0}return earcutLinked(rt,nt,_e,it,ot,Et,0),nt}function linkedList(j,$,_e,et,tt){var rt,nt;if(tt===signedArea$1(j,$,_e,et)>0)for(rt=$;rt<_e;rt+=et)nt=insertNode(rt,j[rt],j[rt+1],nt);else for(rt=_e-et;rt>=$;rt-=et)nt=insertNode(rt,j[rt],j[rt+1],nt);return nt&&equals(nt,nt.next)&&(removeNode(nt),nt=nt.next),nt}function filterPoints(j,$){if(!j)return j;$||($=j);var _e=j,et;do if(et=!1,!_e.steiner&&(equals(_e,_e.next)||area$2(_e.prev,_e,_e.next)===0)){if(removeNode(_e),_e=$=_e.prev,_e===_e.next)break;et=!0}else _e=_e.next;while(et||_e!==$);return $}function earcutLinked(j,$,_e,et,tt,rt,nt){if(j){!nt&&rt&&indexCurve(j,et,tt,rt);for(var it=j,ot,At;j.prev!==j.next;){if(ot=j.prev,At=j.next,rt?isEarHashed(j,et,tt,rt):isEar(j)){$.push(ot.i/_e|0),$.push(j.i/_e|0),$.push(At.i/_e|0),removeNode(j),j=At.next,it=At.next;continue}if(j=At,j===it){nt?nt===1?(j=cureLocalIntersections(filterPoints(j),$,_e),earcutLinked(j,$,_e,et,tt,rt,2)):nt===2&&splitEarcut(j,$,_e,et,tt,rt):earcutLinked(filterPoints(j),$,_e,et,tt,rt,1);break}}}}function isEar(j){var $=j.prev,_e=j,et=j.next;if(area$2($,_e,et)>=0)return!1;for(var tt=$.x,rt=_e.x,nt=et.x,it=$.y,ot=_e.y,At=et.y,ut=ttrt?tt>nt?tt:nt:rt>nt?rt:nt,Et=it>ot?it>At?it:At:ot>At?ot:At,Bt=et.next;Bt!==$;){if(Bt.x>=ut&&Bt.x<=dt&&Bt.y>=ft&&Bt.y<=Et&&pointInTriangle(tt,it,rt,ot,nt,At,Bt.x,Bt.y)&&area$2(Bt.prev,Bt,Bt.next)>=0)return!1;Bt=Bt.next}return!0}function isEarHashed(j,$,_e,et){var tt=j.prev,rt=j,nt=j.next;if(area$2(tt,rt,nt)>=0)return!1;for(var it=tt.x,ot=rt.x,At=nt.x,ut=tt.y,ft=rt.y,dt=nt.y,Et=itot?it>At?it:At:ot>At?ot:At,Dt=ut>ft?ut>dt?ut:dt:ft>dt?ft:dt,$t=zOrder(Et,Bt,$,_e,et),Rt=zOrder(St,Dt,$,_e,et),wt=j.prevZ,xt=j.nextZ;wt&&wt.z>=$t&&xt&&xt.z<=Rt;){if(wt.x>=Et&&wt.x<=St&&wt.y>=Bt&&wt.y<=Dt&&wt!==tt&&wt!==nt&&pointInTriangle(it,ut,ot,ft,At,dt,wt.x,wt.y)&&area$2(wt.prev,wt,wt.next)>=0||(wt=wt.prevZ,xt.x>=Et&&xt.x<=St&&xt.y>=Bt&&xt.y<=Dt&&xt!==tt&&xt!==nt&&pointInTriangle(it,ut,ot,ft,At,dt,xt.x,xt.y)&&area$2(xt.prev,xt,xt.next)>=0))return!1;xt=xt.nextZ}for(;wt&&wt.z>=$t;){if(wt.x>=Et&&wt.x<=St&&wt.y>=Bt&&wt.y<=Dt&&wt!==tt&&wt!==nt&&pointInTriangle(it,ut,ot,ft,At,dt,wt.x,wt.y)&&area$2(wt.prev,wt,wt.next)>=0)return!1;wt=wt.prevZ}for(;xt&&xt.z<=Rt;){if(xt.x>=Et&&xt.x<=St&&xt.y>=Bt&&xt.y<=Dt&&xt!==tt&&xt!==nt&&pointInTriangle(it,ut,ot,ft,At,dt,xt.x,xt.y)&&area$2(xt.prev,xt,xt.next)>=0)return!1;xt=xt.nextZ}return!0}function cureLocalIntersections(j,$,_e){var et=j;do{var tt=et.prev,rt=et.next.next;!equals(tt,rt)&&intersects$2(tt,et,et.next,rt)&&locallyInside(tt,rt)&&locallyInside(rt,tt)&&($.push(tt.i/_e|0),$.push(et.i/_e|0),$.push(rt.i/_e|0),removeNode(et),removeNode(et.next),et=j=rt),et=et.next}while(et!==j);return filterPoints(et)}function splitEarcut(j,$,_e,et,tt,rt){var nt=j;do{for(var it=nt.next.next;it!==nt.prev;){if(nt.i!==it.i&&isValidDiagonal(nt,it)){var ot=splitPolygon(nt,it);nt=filterPoints(nt,nt.next),ot=filterPoints(ot,ot.next),earcutLinked(nt,$,_e,et,tt,rt,0),earcutLinked(ot,$,_e,et,tt,rt,0);return}it=it.next}nt=nt.next}while(nt!==j)}function eliminateHoles(j,$,_e,et){var tt=[],rt,nt,it,ot,At;for(rt=0,nt=$.length;rt=_e.next.y&&_e.next.y!==_e.y){var it=_e.x+(tt-_e.y)*(_e.next.x-_e.x)/(_e.next.y-_e.y);if(it<=et&&it>rt&&(rt=it,nt=_e.x<_e.next.x?_e:_e.next,it===et))return nt}_e=_e.next}while(_e!==$);if(!nt)return null;var ot=nt,At=nt.x,ut=nt.y,ft=1/0,dt;_e=nt;do et>=_e.x&&_e.x>=At&&et!==_e.x&&pointInTriangle(ttnt.x||_e.x===nt.x&§orContainsSector(nt,_e)))&&(nt=_e,ft=dt)),_e=_e.next;while(_e!==ot);return nt}function sectorContainsSector(j,$){return area$2(j.prev,j,$.prev)<0&&area$2($.next,j,j.next)<0}function indexCurve(j,$,_e,et){var tt=j;do tt.z===0&&(tt.z=zOrder(tt.x,tt.y,$,_e,et)),tt.prevZ=tt.prev,tt.nextZ=tt.next,tt=tt.next;while(tt!==j);tt.prevZ.nextZ=null,tt.prevZ=null,sortLinked(tt)}function sortLinked(j){var $,_e,et,tt,rt,nt,it,ot,At=1;do{for(_e=j,j=null,rt=null,nt=0;_e;){for(nt++,et=_e,it=0,$=0;$0||ot>0&&et;)it!==0&&(ot===0||!et||_e.z<=et.z)?(tt=_e,_e=_e.nextZ,it--):(tt=et,et=et.nextZ,ot--),rt?rt.nextZ=tt:j=tt,tt.prevZ=rt,rt=tt;_e=et}rt.nextZ=null,At*=2}while(nt>1);return j}function zOrder(j,$,_e,et,tt){return j=(j-_e)*tt|0,$=($-et)*tt|0,j=(j|j<<8)&16711935,j=(j|j<<4)&252645135,j=(j|j<<2)&858993459,j=(j|j<<1)&1431655765,$=($|$<<8)&16711935,$=($|$<<4)&252645135,$=($|$<<2)&858993459,$=($|$<<1)&1431655765,j|$<<1}function getLeftmost(j){var $=j,_e=j;do($.x<_e.x||$.x===_e.x&&$.y<_e.y)&&(_e=$),$=$.next;while($!==j);return _e}function pointInTriangle(j,$,_e,et,tt,rt,nt,it){return(tt-nt)*($-it)>=(j-nt)*(rt-it)&&(j-nt)*(et-it)>=(_e-nt)*($-it)&&(_e-nt)*(rt-it)>=(tt-nt)*(et-it)}function isValidDiagonal(j,$){return j.next.i!==$.i&&j.prev.i!==$.i&&!intersectsPolygon(j,$)&&(locallyInside(j,$)&&locallyInside($,j)&&middleInside(j,$)&&(area$2(j.prev,j,$.prev)||area$2(j,$.prev,$))||equals(j,$)&&area$2(j.prev,j,j.next)>0&&area$2($.prev,$,$.next)>0)}function area$2(j,$,_e){return($.y-j.y)*(_e.x-$.x)-($.x-j.x)*(_e.y-$.y)}function equals(j,$){return j.x===$.x&&j.y===$.y}function intersects$2(j,$,_e,et){var tt=sign$1(area$2(j,$,_e)),rt=sign$1(area$2(j,$,et)),nt=sign$1(area$2(_e,et,j)),it=sign$1(area$2(_e,et,$));return!!(tt!==rt&&nt!==it||tt===0&&onSegment(j,_e,$)||rt===0&&onSegment(j,et,$)||nt===0&&onSegment(_e,j,et)||it===0&&onSegment(_e,$,et))}function onSegment(j,$,_e){return $.x<=Math.max(j.x,_e.x)&&$.x>=Math.min(j.x,_e.x)&&$.y<=Math.max(j.y,_e.y)&&$.y>=Math.min(j.y,_e.y)}function sign$1(j){return j>0?1:j<0?-1:0}function intersectsPolygon(j,$){var _e=j;do{if(_e.i!==j.i&&_e.next.i!==j.i&&_e.i!==$.i&&_e.next.i!==$.i&&intersects$2(_e,_e.next,j,$))return!0;_e=_e.next}while(_e!==j);return!1}function locallyInside(j,$){return area$2(j.prev,j,j.next)<0?area$2(j,$,j.next)>=0&&area$2(j,j.prev,$)>=0:area$2(j,$,j.prev)<0||area$2(j,j.next,$)<0}function middleInside(j,$){var _e=j,et=!1,tt=(j.x+$.x)/2,rt=(j.y+$.y)/2;do _e.y>rt!=_e.next.y>rt&&_e.next.y!==_e.y&&tt<(_e.next.x-_e.x)*(rt-_e.y)/(_e.next.y-_e.y)+_e.x&&(et=!et),_e=_e.next;while(_e!==j);return et}function splitPolygon(j,$){var _e=new Node$3(j.i,j.x,j.y),et=new Node$3($.i,$.x,$.y),tt=j.next,rt=$.prev;return j.next=$,$.prev=j,_e.next=tt,tt.prev=_e,et.next=_e,_e.prev=et,rt.next=et,et.prev=rt,et}function insertNode(j,$,_e,et){var tt=new Node$3(j,$,_e);return et?(tt.next=et.next,tt.prev=et,et.next.prev=tt,et.next=tt):(tt.prev=tt,tt.next=tt),tt}function removeNode(j){j.next.prev=j.prev,j.prev.next=j.next,j.prevZ&&(j.prevZ.nextZ=j.nextZ),j.nextZ&&(j.nextZ.prevZ=j.prevZ)}function Node$3(j,$,_e){this.i=j,this.x=$,this.y=_e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}earcut.deviation=function(j,$,_e,et){var tt=$&&$.length,rt=tt?$[0]*_e:j.length,nt=Math.abs(signedArea$1(j,0,rt,_e));if(tt)for(var it=0,ot=$.length;it0&&(et+=j[tt-1].length,_e.holes.push(et))}return _e};var earcutExports=earcut$2.exports;const earcut$1=getDefaultExportFromCjs(earcutExports),OUTER_POLYGON_WINDING=WINDING.CLOCKWISE,HOLE_POLYGON_WINDING=WINDING.COUNTER_CLOCKWISE,windingOptions={isClosed:!0};function validate(j){if(j=j&&j.positions||j,!Array.isArray(j)&&!ArrayBuffer.isView(j))throw new Error("invalid polygon")}function getPositions(j){return"positions"in j?j.positions:j}function getHoleIndices(j){return"holeIndices"in j?j.holeIndices:null}function isNested(j){return Array.isArray(j[0])}function isSimple(j){return j.length>=1&&j[0].length>=2&&Number.isFinite(j[0][0])}function isNestedRingClosed(j){const $=j[0],_e=j[j.length-1];return $[0]===_e[0]&&$[1]===_e[1]&&$[2]===_e[2]}function isFlatRingClosed(j,$,_e,et){for(let tt=0;tt<$;tt++)if(j[_e+tt]!==j[et-$+tt])return!1;return!0}function copyNestedRing(j,$,_e,et,tt){let rt=$;const nt=_e.length;for(let it=0;itrt/$));let tt=getPositions(j);if(_e){const rt=tt.length;tt=tt.slice();const nt=[];for(let it=0;it2?nt[ot*rt+2]:0;tt[it*3]=At,tt[it*3+1]=ut,tt[it*3+2]=ft}}_updateVertexValid($,{vertexStart:_e,geometrySize:et}){const{positionSize:tt}=this,rt=this.attributes.vertexValid,nt=$&&getHoleIndices($);if($&&$.edgeTypes?rt.set($.edgeTypes,_e):rt.fill(1,_e,_e+et),nt)for(let it=0;it0&&!Number.isFinite(j[0])}const main=` +attribute vec2 vertexPositions; +attribute float vertexValid; + +uniform bool extruded; +uniform bool isWireframe; +uniform float elevationScale; +uniform float opacity; + +varying vec4 vColor; + +struct PolygonProps { + vec4 fillColors; + vec4 lineColors; + vec3 positions; + vec3 nextPositions; + vec3 pickingColors; + vec3 positions64Low; + vec3 nextPositions64Low; + float elevations; +}; + +vec3 project_offset_normal(vec3 vector) { + if (project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT || + project_uCoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) { + // normals generated by the polygon tesselator are in lnglat offsets instead of meters + return normalize(vector * project_uCommonUnitsPerWorldUnit); + } + return project_normal(vector); +} + +void calculatePosition(PolygonProps props) { +#ifdef IS_SIDE_VERTEX + if(vertexValid < 0.5){ + gl_Position = vec4(0.); + return; + } +#endif + + vec3 pos; + vec3 pos64Low; + vec3 normal; + vec4 colors = isWireframe ? props.lineColors : props.fillColors; + + geometry.worldPosition = props.positions; + geometry.worldPositionAlt = props.nextPositions; + geometry.pickingColor = props.pickingColors; + +#ifdef IS_SIDE_VERTEX + pos = mix(props.positions, props.nextPositions, vertexPositions.x); + pos64Low = mix(props.positions64Low, props.nextPositions64Low, vertexPositions.x); +#else + pos = props.positions; + pos64Low = props.positions64Low; +#endif + + if (extruded) { + pos.z += props.elevations * vertexPositions.y * elevationScale; + } + gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position); + + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + if (extruded) { + #ifdef IS_SIDE_VERTEX + normal = vec3( + props.positions.y - props.nextPositions.y + (props.positions64Low.y - props.nextPositions64Low.y), + props.nextPositions.x - props.positions.x + (props.nextPositions64Low.x - props.positions64Low.x), + 0.0); + normal = project_offset_normal(normal); + #else + normal = project_normal(vec3(0.0, 0.0, 1.0)); + #endif + geometry.normal = normal; + vec3 lightColor = lighting_getLightColor(colors.rgb, project_uCameraPosition, geometry.position.xyz, normal); + vColor = vec4(lightColor, colors.a * opacity); + } else { + vColor = vec4(colors.rgb, colors.a * opacity); + } + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,vsTop=`#define SHADER_NAME solid-polygon-layer-vertex-shader + +attribute vec3 positions; +attribute vec3 positions64Low; +attribute float elevations; +attribute vec4 fillColors; +attribute vec4 lineColors; +attribute vec3 pickingColors; + +`.concat(main,` + +void main(void) { + PolygonProps props; + + props.positions = positions; + props.positions64Low = positions64Low; + props.elevations = elevations; + props.fillColors = fillColors; + props.lineColors = lineColors; + props.pickingColors = pickingColors; + + calculatePosition(props); +} +`),vsSide=`#define SHADER_NAME solid-polygon-layer-vertex-shader-side +#define IS_SIDE_VERTEX + + +attribute vec3 instancePositions; +attribute vec3 nextPositions; +attribute vec3 instancePositions64Low; +attribute vec3 nextPositions64Low; +attribute float instanceElevations; +attribute vec4 instanceFillColors; +attribute vec4 instanceLineColors; +attribute vec3 instancePickingColors; + +`.concat(main,` + +void main(void) { + PolygonProps props; + + #if RING_WINDING_ORDER_CW == 1 + props.positions = instancePositions; + props.positions64Low = instancePositions64Low; + props.nextPositions = nextPositions; + props.nextPositions64Low = nextPositions64Low; + #else + props.positions = nextPositions; + props.positions64Low = nextPositions64Low; + props.nextPositions = instancePositions; + props.nextPositions64Low = instancePositions64Low; + #endif + props.elevations = instanceElevations; + props.fillColors = instanceFillColors; + props.lineColors = instanceLineColors; + props.pickingColors = instancePickingColors; + + calculatePosition(props); +} +`),fs$b=`#define SHADER_NAME solid-polygon-layer-fragment-shader + +precision highp float; + +varying vec4 vColor; + +void main(void) { + gl_FragColor = vColor; + + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_COLOR$3=[0,0,0,255],defaultProps$A={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:"CW",elevationScale:{type:"number",min:0,value:1},getPolygon:{type:"accessor",value:j=>j.polygon},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:DEFAULT_COLOR$3},getLineColor:{type:"accessor",value:DEFAULT_COLOR$3},material:!0},ATTRIBUTE_TRANSITION={enter:(j,$)=>$.length?$.subarray($.length-j.length):j};class SolidPolygonLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders($){return super.getShaders({vs:$==="top"?vsTop:vsSide,fs:fs$b,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder==="CCW"?0:1},modules:[project32,gouraudLighting,picking]})}get wrapLongitude(){return!1}initializeState(){const{gl:$,viewport:_e}=this.context;let{coordinateSystem:et}=this.props;_e.isGeospatial&&et===COORDINATE_SYSTEM.DEFAULT&&(et=COORDINATE_SYSTEM.LNGLAT),this.setState({numInstances:0,polygonTesselator:new PolygonTesselator({preproject:et===COORDINATE_SYSTEM.LNGLAT&&_e.projectFlat.bind(_e),fp64:this.use64bitPositions(),IndexType:!$||hasFeatures$1($,FEATURES$1.ELEMENT_INDEX_UINT32)?Uint32Array:Uint16Array})});const tt=this.getAttributeManager(),rt=!0;tt.remove(["instancePickingColors"]),tt.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:rt},positions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:ATTRIBUTE_TRANSITION,accessor:"getPolygon",update:this.calculatePositions,noAlloc:rt,shaderAttributes:{positions:{vertexOffset:0,divisor:0},instancePositions:{vertexOffset:0,divisor:1},nextPositions:{vertexOffset:1,divisor:1}}},vertexValid:{size:1,divisor:1,type:5121,update:this.calculateVertexValid,noAlloc:rt},elevations:{size:1,transition:ATTRIBUTE_TRANSITION,accessor:"getElevation",shaderAttributes:{elevations:{divisor:0},instanceElevations:{divisor:1}}},fillColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:ATTRIBUTE_TRANSITION,accessor:"getFillColor",defaultValue:DEFAULT_COLOR$3,shaderAttributes:{fillColors:{divisor:0},instanceFillColors:{divisor:1}}},lineColors:{size:this.props.colorFormat.length,type:5121,normalized:!0,transition:ATTRIBUTE_TRANSITION,accessor:"getLineColor",defaultValue:DEFAULT_COLOR$3,shaderAttributes:{lineColors:{divisor:0},instanceLineColors:{divisor:1}}},pickingColors:{size:3,type:5121,accessor:(nt,{index:it,target:ot})=>this.encodePickingColor(nt&&nt.__source?nt.__source.index:it,ot),shaderAttributes:{pickingColors:{divisor:0},instancePickingColors:{divisor:1}}}})}getPickingInfo($){const _e=super.getPickingInfo($),{index:et}=_e,{data:tt}=this.props;return tt[0]&&tt[0].__source&&(_e.object=tt.find(rt=>rt.__source.index===et)),_e}disablePickingIndex($){const{data:_e}=this.props;if(_e[0]&&_e[0].__source)for(let et=0;et<_e.length;et++)_e[et].__source.index===$&&this._disablePickingIndex(et);else this._disablePickingIndex($)}draw({uniforms:$}){const{extruded:_e,filled:et,wireframe:tt,elevationScale:rt}=this.props,{topModel:nt,sideModel:it,polygonTesselator:ot}=this.state,At={...$,extruded:!!_e,elevationScale:rt};it&&(it.setInstanceCount(ot.instanceCount-1),it.setUniforms(At),tt&&(it.setDrawMode(3),it.setUniforms({isWireframe:!0}).draw()),et&&(it.setDrawMode(6),it.setUniforms({isWireframe:!1}).draw())),nt&&(nt.setVertexCount(ot.vertexCount),nt.setUniforms(At).draw())}updateState($){super.updateState($),this.updateGeometry($);const{props:_e,oldProps:et,changeFlags:tt}=$,rt=this.getAttributeManager();if(tt.extensionsChanged||_e.filled!==et.filled||_e.extruded!==et.extruded){var it;(it=this.state.models)===null||it===void 0||it.forEach(ot=>ot.delete()),this.setState(this._getModels(this.context.gl)),rt.invalidateAll()}}updateGeometry({props:$,oldProps:_e,changeFlags:et}){if(et.dataChanged||et.updateTriggersChanged&&(et.updateTriggersChanged.all||et.updateTriggersChanged.getPolygon)){const{polygonTesselator:rt}=this.state,nt=$.data.attributes||{};rt.updateGeometry({data:$.data,normalize:$._normalize,geometryBuffer:nt.getPolygon,buffers:nt,getGeometry:$.getPolygon,positionFormat:$.positionFormat,wrapLongitude:$.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:et.dataChanged}),this.setState({numInstances:rt.instanceCount,startIndices:rt.vertexStarts}),et.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels($){const{id:_e,filled:et,extruded:tt}=this.props;let rt,nt;if(et){const it=this.getShaders("top");it.defines.NON_INSTANCED_MODEL=1,rt=new Model($,{...it,id:"".concat(_e,"-top"),drawMode:4,attributes:{vertexPositions:new Float32Array([0,1])},uniforms:{isWireframe:!1,isSideVertex:!1},vertexCount:0,isIndexed:!0})}return tt&&(nt=new Model($,{...this.getShaders("side"),id:"".concat(_e,"-side"),geometry:new Geometry({drawMode:1,vertexCount:4,attributes:{vertexPositions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),instanceCount:0,isInstanced:1}),nt.userData.excludeAttributes={indices:!0}),{models:[nt,rt].filter(Boolean),topModel:rt,sideModel:nt}}calculateIndices($){const{polygonTesselator:_e}=this.state;$.startIndices=_e.indexStarts,$.value=_e.get("indices")}calculatePositions($){const{polygonTesselator:_e}=this.state;$.startIndices=_e.vertexStarts,$.value=_e.get("positions")}calculateVertexValid($){$.value=this.state.polygonTesselator.get("vertexValid")}}_defineProperty$e(SolidPolygonLayer,"defaultProps",defaultProps$A);_defineProperty$e(SolidPolygonLayer,"layerName","SolidPolygonLayer");function replaceInRange({data:j,getIndex:$,dataRange:_e,replace:et}){const{startRow:tt=0,endRow:rt=1/0}=_e,nt=j.length;let it=nt,ot=nt;for(let dt=0;dtdt&&Et>=tt&&(it=dt),Et>=rt){ot=dt;break}}let At=it;const ft=ot-it!==et.length?j.slice(ot):void 0;for(let dt=0;dtj.polygon},getFillColor:{type:"accessor",value:defaultFillColor},getLineColor:{type:"accessor",value:defaultLineColor},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0};class PolygonLayer extends CompositeLayer{initializeState(){this.state={paths:[]},this.props.getLineDashArray&&log$3.removed("getLineDashArray","PathStyleExtension")()}updateState({changeFlags:$}){const _e=$.dataChanged||$.updateTriggersChanged&&($.updateTriggersChanged.all||$.updateTriggersChanged.getPolygon);if(_e&&Array.isArray($.dataChanged)){const et=this.state.paths.slice(),tt=$.dataChanged.map(rt=>replaceInRange({data:et,getIndex:nt=>nt.__source.index,dataRange:rt,replace:this._getPaths(rt)}));this.setState({paths:et,pathsDiff:tt})}else _e&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths($={}){const{data:_e,getPolygon:et,positionFormat:tt,_normalize:rt}=this.props,nt=[],it=tt==="XY"?2:3,{startRow:ot,endRow:At}=$,{iterable:ut,objectInfo:ft}=createIterable(_e,ot,At);for(const dt of ut){ft.index++;let Et=et(dt,ft);rt&&(Et=normalize$1(Et,it));const{holeIndices:Bt}=Et,St=Et.positions||Et;if(Bt)for(let Dt=0;Dt<=Bt.length;Dt++){const $t=St.slice(Bt[Dt-1]||0,Bt[Dt]||St.length);nt.push(this.getSubLayerRow({path:$t},dt,ft.index))}else nt.push(this.getSubLayerRow({path:St},dt,ft.index))}return nt}renderLayers(){const{data:$,_dataDiff:_e,stroked:et,filled:tt,extruded:rt,wireframe:nt,_normalize:it,_windingOrder:ot,elevationScale:At,transitions:ut,positionFormat:ft}=this.props,{lineWidthUnits:dt,lineWidthScale:Et,lineWidthMinPixels:Bt,lineWidthMaxPixels:St,lineJointRounded:Dt,lineMiterLimit:$t,lineDashJustified:Rt}=this.props,{getFillColor:wt,getLineColor:xt,getLineWidth:Nt,getLineDashArray:Ot,getElevation:kt,getPolygon:Jt,updateTriggers:jt,material:Ht}=this.props,{paths:Gt,pathsDiff:Kt}=this.state,Wt=this.getSubLayerClass("fill",SolidPolygonLayer),Vt=this.getSubLayerClass("stroke",PathLayer),ur=this.shouldRenderSubLayer("fill",Gt)&&new Wt({_dataDiff:_e,extruded:rt,elevationScale:At,filled:tt,wireframe:nt,_normalize:it,_windingOrder:ot,getElevation:kt,getFillColor:wt,getLineColor:rt&&nt?xt:defaultLineColor,material:Ht,transitions:ut},this.getSubLayerProps({id:"fill",updateTriggers:jt&&{getPolygon:jt.getPolygon,getElevation:jt.getElevation,getFillColor:jt.getFillColor,lineColors:rt&&nt,getLineColor:jt.getLineColor}}),{data:$,positionFormat:ft,getPolygon:Jt}),Ar=!rt&&et&&this.shouldRenderSubLayer("stroke",Gt)&&new Vt({_dataDiff:Kt&&(()=>Kt),widthUnits:dt,widthScale:Et,widthMinPixels:Bt,widthMaxPixels:St,jointRounded:Dt,miterLimit:$t,dashJustified:Rt,_pathType:"loop",transitions:ut&&{getWidth:ut.getLineWidth,getColor:ut.getLineColor,getPath:ut.getPolygon},getColor:this.getSubLayerAccessor(xt),getWidth:this.getSubLayerAccessor(Nt),getDashArray:this.getSubLayerAccessor(Ot)},this.getSubLayerProps({id:"stroke",updateTriggers:jt&&{getWidth:jt.getLineWidth,getColor:jt.getLineColor,getDashArray:jt.getLineDashArray}}),{data:Gt,positionFormat:ft,getPath:hr=>hr.path});return[!rt&&ur,Ar,rt&&ur]}}_defineProperty$e(PolygonLayer,"layerName","PolygonLayer");_defineProperty$e(PolygonLayer,"defaultProps",defaultProps$z);function binaryToFeatureForAccesor(j,$){if(!j)return null;const _e="startIndices"in j?j.startIndices[$]:$,et=j.featureIds.value[_e];return _e!==-1?getPropertiesForIndex(j,et,_e):null}function getPropertiesForIndex(j,$,_e){const et={properties:{...j.properties[$]}};for(const tt in j.numericProps)et.properties[tt]=j.numericProps[tt].value[_e];return et}function calculatePickingColors(j,$){const _e={points:null,lines:null,polygons:null};for(const et in _e){const tt=j[et].globalFeatureIds.value;_e[et]=new Uint8ClampedArray(tt.length*3);const rt=[];for(let nt=0;nt 0.0) { + float inFill = alpha; + float inBorder = smoothstep(outlineBuffer - gamma, outlineBuffer + gamma, distance); + color = mix(outlineColor, vColor, inFill); + alpha = inBorder; + } + } + + // Take the global opacity and the alpha from color into account for the alpha component + float a = alpha * color.a; + + if (a < alphaCutoff) { + discard; + } + + gl_FragColor = vec4(color.rgb, a * opacity); + } + + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,DEFAULT_BUFFER=192/256,EMPTY_ARRAY=[],defaultProps$y={getIconOffsets:{type:"accessor",value:j=>j.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]}};class MultiIconLayer extends IconLayer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){return{...super.getShaders(),fs:fs$a}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:"getIconOffsets"},instancePickingColors:{type:5121,size:3,accessor:(_e,{index:et,target:tt})=>this.encodePickingColor(et,tt)}})}updateState($){super.updateState($);const{props:_e,oldProps:et}=$;let{outlineColor:tt}=_e;tt!==et.outlineColor&&(tt=tt.map(rt=>rt/255),tt[3]=Number.isFinite(tt[3])?tt[3]:1,this.setState({outlineColor:tt})),!_e.sdf&&_e.outlineWidth&&log$3.warn("".concat(this.id,": fontSettings.sdf is required to render outline"))()}draw($){const{sdf:_e,smoothing:et,outlineWidth:tt}=this.props,{outlineColor:rt}=this.state;$.uniforms={...$.uniforms,buffer:DEFAULT_BUFFER,outlineBuffer:tt?Math.max(et,DEFAULT_BUFFER*(1-tt)):-1,gamma:et,sdf:!!_e,outlineColor:rt},super.draw($)}getInstanceOffset($){return $?Array.from($).flatMap(_e=>super.getInstanceOffset(_e)):EMPTY_ARRAY}getInstanceColorMode($){return 1}getInstanceIconFrame($){return $?Array.from($).flatMap(_e=>super.getInstanceIconFrame(_e)):EMPTY_ARRAY}}_defineProperty$e(MultiIconLayer,"defaultProps",defaultProps$y);_defineProperty$e(MultiIconLayer,"layerName","MultiIconLayer");var tinySdf={exports:{}};tinySdf.exports=TinySDF;tinySdf.exports.default=TinySDF;var INF=1e20;function TinySDF(j,$,_e,et,tt,rt){this.fontSize=j||24,this.buffer=$===void 0?3:$,this.cutoff=et||.25,this.fontFamily=tt||"sans-serif",this.fontWeight=rt||"normal",this.radius=_e||8;var nt=this.size=this.fontSize+this.buffer*2,it=nt+this.buffer*2;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=nt,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textAlign="left",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(it*it),this.gridInner=new Float64Array(it*it),this.f=new Float64Array(it),this.z=new Float64Array(it+1),this.v=new Uint16Array(it),this.useMetrics=this.ctx.measureText("A").actualBoundingBoxLeft!==void 0,this.middle=Math.round(nt/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function prepareGrids(j,$,_e,et,tt,rt,nt){rt.fill(INF,0,$*_e),nt.fill(0,0,$*_e);for(var it=($-et)/2,ot=0;ot-1);ot++,rt[ot]=it,nt[ot]=At,nt[ot+1]=INF}for(it=0,ot=0;ittt&&(At=0,ot++),rt[ft]={x:At+et,y:it+ot*(_e+et*2)+et,width:dt,height:_e},At+=dt+et*2}const ut=_e+et*2;return{mapping:rt,xOffset:At,yOffset:it+ot*ut,canvasHeight:nextPowOfTwo(it+(ot+1)*ut)}}function getTextWidth(j,$,_e,et){let tt=0;for(let nt=$;nt<_e;nt++){var rt;const it=j[nt];tt+=((rt=et[it])===null||rt===void 0?void 0:rt.width)||0}return tt}function breakAll(j,$,_e,et,tt,rt){let nt=$,it=0;for(let ot=$;ot<_e;ot++){const At=getTextWidth(j,ot,ot+1,tt);it+At>et&&(ntit){let ft=getTextWidth(j,it,ot,tt);At+ft>et&&(ntet&&(ft=breakAll(j,it,ot,et,tt,rt),nt=rt[rt.length-1])),it=ot,At+=ft}return At}function autoWrapping(j,$,_e,et,tt=0,rt){rt===void 0&&(rt=j.length);const nt=[];return $==="break-all"?breakAll(j,tt,rt,_e,et,nt):breakWord(j,tt,rt,_e,et,nt),nt}function transformRow(j,$,_e,et,tt,rt){let nt=0,it=0;for(let ot=$;ot<_e;ot++){const At=j[ot],ut=et[At];ut?(it||(it=ut.height),tt[ot]=nt+ut.width/2,nt+=ut.width):(log$3.warn("Missing character: ".concat(At," (").concat(At.codePointAt(0),")"))(),tt[ot]=nt,nt+=MISSING_CHAR_WIDTH)}rt[0]=nt,rt[1]=it}function transformParagraph(j,$,_e,et,tt){const rt=Array.from(j),nt=rt.length,it=new Array(nt),ot=new Array(nt),At=new Array(nt),ut=(_e==="break-word"||_e==="break-all")&&isFinite(et)&&et>0,ft=[0,0],dt=[0,0];let Et=0,Bt=0,St=0;for(let Dt=0;Dt<=nt;Dt++){const $t=rt[Dt];if(($t===` +`||Dt===nt)&&(St=Dt),St>Bt){const Rt=ut?autoWrapping(rt,_e,et,tt,Bt,St):SINGLE_LINE;for(let wt=0;wt<=Rt.length;wt++){const xt=wt===0?Bt:Rt[wt-1],Nt=wt1||ot>0){const Et=j.constructor;dt=new Et(At);for(let Bt=0;Bt=0&&this._order.splice(_e,1)}_appendOrder($){this._order.push($)}}function getDefaultCharacterSet(){const j=[];for(let $=32;$<128;$++)j.push(String.fromCharCode($));return j}const DEFAULT_FONT_SETTINGS={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:getDefaultCharacterSet(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},MAX_CANVAS_WIDTH=1024,BASELINE_SCALE=.9,HEIGHT_SCALE=1.2,CACHE_LIMIT=3;let cache$2=new LRUCache2(CACHE_LIMIT);function getNewChars(j,$){let _e;typeof $=="string"?_e=new Set(Array.from($)):_e=new Set($);const et=cache$2.get(j);if(!et)return _e;for(const tt in et.mapping)_e.has(tt)&&_e.delete(tt);return _e}function populateAlphaChannel(j,$){for(let _e=0;_e=CACHE_LIMIT,"Invalid cache limit"),cache$2=new LRUCache2(j)}class FontAtlasManager{constructor(){_defineProperty$e(this,"props",{...DEFAULT_FONT_SETTINGS}),_defineProperty$e(this,"_key",void 0),_defineProperty$e(this,"_atlas",void 0)}get texture(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){return HEIGHT_SCALE}setProps($={}){Object.assign(this.props,$);const _e=this._key;this._key=this._getKey();const et=getNewChars(this._key,this.props.characterSet),tt=cache$2.get(this._key);if(tt&&et.size===0){this._key!==_e&&(this._atlas=tt);return}const rt=this._generateFontAtlas(this._key,et,tt);this._atlas=rt,cache$2.set(this._key,rt)}_generateFontAtlas($,_e,et){const{fontFamily:tt,fontWeight:rt,fontSize:nt,buffer:it,sdf:ot,radius:At,cutoff:ut}=this.props;let ft=et&&et.data;ft||(ft=document.createElement("canvas"),ft.width=MAX_CANVAS_WIDTH);const dt=ft.getContext("2d");setTextStyle(dt,tt,nt,rt);const{mapping:Et,canvasHeight:Bt,xOffset:St,yOffset:Dt}=buildMapping({getFontWidth:$t=>dt.measureText($t).width,fontHeight:nt*HEIGHT_SCALE,buffer:it,characterSet:_e,maxCanvasWidth:MAX_CANVAS_WIDTH,...et&&{mapping:et.mapping,xOffset:et.xOffset,yOffset:et.yOffset}});if(ft.height!==Bt){const $t=dt.getImageData(0,0,ft.width,ft.height);ft.height=Bt,dt.putImageData($t,0,0)}if(setTextStyle(dt,tt,nt,rt),ot){const $t=new TinySDF$1(nt,it,At,ut,tt,rt),Rt=dt.getImageData(0,0,$t.size,$t.size);for(const wt of _e)populateAlphaChannel($t.draw(wt),Rt),dt.putImageData(Rt,Et[wt].x-it,Et[wt].y+it)}else for(const $t of _e)dt.fillText($t,Et[$t].x,Et[$t].y+nt*BASELINE_SCALE);return{xOffset:St,yOffset:Dt,mapping:Et,data:ft,width:ft.width,height:ft.height}}_getKey(){const{fontFamily:$,fontWeight:_e,fontSize:et,buffer:tt,sdf:rt,radius:nt,cutoff:it}=this.props;return rt?"".concat($," ").concat(_e," ").concat(et," ").concat(tt," ").concat(nt," ").concat(it):"".concat($," ").concat(_e," ").concat(et," ").concat(tt)}}const vs$9=`#define SHADER_NAME text-background-layer-vertex-shader + +attribute vec2 positions; + +attribute vec3 instancePositions; +attribute vec3 instancePositions64Low; +attribute vec4 instanceRects; +attribute float instanceSizes; +attribute float instanceAngles; +attribute vec2 instancePixelOffsets; +attribute float instanceLineWidths; +attribute vec4 instanceFillColors; +attribute vec4 instanceLineColors; +attribute vec3 instancePickingColors; + +uniform bool billboard; +uniform float opacity; +uniform float sizeScale; +uniform float sizeMinPixels; +uniform float sizeMaxPixels; +uniform vec4 padding; +uniform int sizeUnits; + +varying vec4 vFillColor; +varying vec4 vLineColor; +varying float vLineWidth; +varying vec2 uv; +varying vec2 dimensions; + +vec2 rotate_by_angle(vec2 vertex, float angle) { + float angle_radian = radians(angle); + float cos_angle = cos(angle_radian); + float sin_angle = sin(angle_radian); + mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle); + return rotationMatrix * vertex; +} + +void main(void) { + geometry.worldPosition = instancePositions; + geometry.uv = positions; + geometry.pickingColor = instancePickingColors; + uv = positions; + vLineWidth = instanceLineWidths; + + // convert size in meters to pixels, then scaled and clamp + + // project meters to pixels and clamp to limits + float sizePixels = clamp( + project_size_to_pixel(instanceSizes * sizeScale, sizeUnits), + sizeMinPixels, sizeMaxPixels + ); + + dimensions = instanceRects.zw * sizePixels + padding.xy + padding.zw; + + vec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * sizePixels + mix(-padding.xy, padding.zw, positions); + pixelOffset = rotate_by_angle(pixelOffset, instanceAngles); + pixelOffset += instancePixelOffsets; + pixelOffset.y *= -1.0; + + if (billboard) { + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position); + vec3 offset = vec3(pixelOffset, 0.0); + DECKGL_FILTER_SIZE(offset, geometry); + gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); + } else { + vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0); + DECKGL_FILTER_SIZE(offset_common, geometry); + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); + } + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + // Apply opacity to instance color, or return instance picking color + vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * opacity); + DECKGL_FILTER_COLOR(vFillColor, geometry); + vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * opacity); + DECKGL_FILTER_COLOR(vLineColor, geometry); +} +`,fs$9=`#define SHADER_NAME text-background-layer-fragment-shader + +precision highp float; + +uniform bool stroked; + +varying vec4 vFillColor; +varying vec4 vLineColor; +varying float vLineWidth; +varying vec2 uv; +varying vec2 dimensions; + +void main(void) { + geometry.uv = uv; + + vec2 pixelPosition = uv * dimensions; + if (stroked) { + float distToEdge = min( + min(pixelPosition.x, dimensions.x - pixelPosition.x), + min(pixelPosition.y, dimensions.y - pixelPosition.y) + ); + float isBorder = smoothedge(distToEdge, vLineWidth); + gl_FragColor = mix(vFillColor, vLineColor, isBorder); + } else { + gl_FragColor = vFillColor; + } + + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,defaultProps$x={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:j=>j.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}};class TextBackgroundLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){return super.getShaders({vs:vs$9,fs:fs$9,modules:[project32,picking]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,normalized:!0,type:5121,accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState($){super.updateState($);const{changeFlags:_e}=$;if(_e.extensionsChanged){var et;const{gl:tt}=this.context;(et=this.state.model)===null||et===void 0||et.delete(),this.state.model=this._getModel(tt),this.getAttributeManager().invalidateAll()}}draw({uniforms:$}){const{billboard:_e,sizeScale:et,sizeUnits:tt,sizeMinPixels:rt,sizeMaxPixels:nt,getLineWidth:it}=this.props;let{padding:ot}=this.props;ot.length<4&&(ot=[ot[0],ot[1],ot[0],ot[1]]),this.state.model.setUniforms($).setUniforms({billboard:_e,stroked:!!it,padding:ot,sizeUnits:UNIT[tt],sizeScale:et,sizeMinPixels:rt,sizeMaxPixels:nt}).draw()}_getModel($){const _e=[0,0,1,0,1,1,0,1];return new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:6,vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(_e)}}}),isInstanced:!0})}}_defineProperty$e(TextBackgroundLayer,"defaultProps",defaultProps$x);_defineProperty$e(TextBackgroundLayer,"layerName","TextBackgroundLayer");const TEXT_ANCHOR={start:1,middle:0,end:-1},ALIGNMENT_BASELINE={top:1,center:0,bottom:-1},DEFAULT_COLOR$2=[0,0,0,255],DEFAULT_LINE_HEIGHT=1,defaultProps$w={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:DEFAULT_COLOR$2},getBorderWidth:{type:"accessor",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:DEFAULT_FONT_SETTINGS.characterSet},fontFamily:DEFAULT_FONT_SETTINGS.fontFamily,fontWeight:DEFAULT_FONT_SETTINGS.fontWeight,lineHeight:DEFAULT_LINE_HEIGHT,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:DEFAULT_COLOR$2},fontSettings:{},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:j=>j.text},getPosition:{type:"accessor",value:j=>j.position},getColor:{type:"accessor",value:DEFAULT_COLOR$2},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}};class TextLayer extends CompositeLayer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0),_defineProperty$e(this,"getBoundingRect",(_e,et)=>{const tt=this.state.fontAtlasManager.mapping,rt=this.state.getText,{wordBreak:nt,maxWidth:it,lineHeight:ot,getTextAnchor:At,getAlignmentBaseline:ut}=this.props,ft=rt(_e,et)||"",{size:[dt,Et]}=transformParagraph(ft,ot,nt,it,tt),Bt=TEXT_ANCHOR[typeof At=="function"?At(_e,et):At],St=ALIGNMENT_BASELINE[typeof ut=="function"?ut(_e,et):ut];return[(Bt-1)*dt/2,(St-1)*Et/2,dt,Et]}),_defineProperty$e(this,"getIconOffsets",(_e,et)=>{const tt=this.state.fontAtlasManager.mapping,rt=this.state.getText,{wordBreak:nt,maxWidth:it,lineHeight:ot,getTextAnchor:At,getAlignmentBaseline:ut}=this.props,ft=rt(_e,et)||"",{x:dt,y:Et,rowWidth:Bt,size:[St,Dt]}=transformParagraph(ft,ot,nt,it,tt),$t=TEXT_ANCHOR[typeof At=="function"?At(_e,et):At],Rt=ALIGNMENT_BASELINE[typeof ut=="function"?ut(_e,et):ut],wt=dt.length,xt=new Array(wt*2);let Nt=0;for(let Ot=0;Ot=0?this.props.data[$.index]:null,$}_updateFontAtlas(){const{fontSettings:$,fontFamily:_e,fontWeight:et}=this.props,{fontAtlasManager:tt,characterSet:rt}=this.state,nt={...$,characterSet:rt,fontFamily:_e,fontWeight:et};if(!tt.mapping)return tt.setProps(nt),!0;for(const it in nt)if(nt[it]!==tt.props[it])return tt.setProps(nt),!0;return!1}_updateText(){var $;const{data:_e,characterSet:et}=this.props,tt=($=_e.attributes)===null||$===void 0?void 0:$.getText;let{getText:rt}=this.props,nt=_e.startIndices,it;const ot=et==="auto"&&new Set;if(tt&&nt){const{texts:At,characterCount:ut}=getTextFromBuffer({...ArrayBuffer.isView(tt)?{value:tt}:tt,length:_e.length,startIndices:nt,characterSet:ot});it=ut,rt=(ft,{index:dt})=>At[dt]}else{const{iterable:At,objectInfo:ut}=createIterable(_e);nt=[0],it=0;for(const ft of At){ut.index++;const dt=Array.from(rt(ft,ut)||"");ot&&dt.forEach(ot.add,ot),it+=dt.length,nt.push(it)}}this.setState({getText:rt,startIndices:nt,numInstances:it,characterSet:ot||et})}renderLayers(){const{startIndices:$,numInstances:_e,getText:et,fontAtlasManager:{scale:tt,texture:rt,mapping:nt},styleVersion:it}=this.state,{data:ot,_dataDiff:At,getPosition:ut,getColor:ft,getSize:dt,getAngle:Et,getPixelOffset:Bt,getBackgroundColor:St,getBorderColor:Dt,getBorderWidth:$t,backgroundPadding:Rt,background:wt,billboard:xt,fontSettings:Nt,outlineWidth:Ot,outlineColor:kt,sizeScale:Jt,sizeUnits:jt,sizeMinPixels:Ht,sizeMaxPixels:Gt,transitions:Kt,updateTriggers:Wt}=this.props,Vt=this.getSubLayerClass("characters",MultiIconLayer),ur=this.getSubLayerClass("background",TextBackgroundLayer);return[wt&&new ur({getFillColor:St,getLineColor:Dt,getLineWidth:$t,padding:Rt,getPosition:ut,getSize:dt,getAngle:Et,getPixelOffset:Bt,billboard:xt,sizeScale:Jt/this.state.fontAtlasManager.props.fontSize,sizeUnits:jt,sizeMinPixels:Ht,sizeMaxPixels:Gt,transitions:Kt&&{getPosition:Kt.getPosition,getAngle:Kt.getAngle,getSize:Kt.getSize,getFillColor:Kt.getBackgroundColor,getLineColor:Kt.getBorderColor,getLineWidth:Kt.getBorderWidth,getPixelOffset:Kt.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:Wt.getPosition,getAngle:Wt.getAngle,getSize:Wt.getSize,getFillColor:Wt.getBackgroundColor,getLineColor:Wt.getBorderColor,getLineWidth:Wt.getBorderWidth,getPixelOffset:Wt.getPixelOffset,getBoundingRect:{getText:Wt.getText,getTextAnchor:Wt.getTextAnchor,getAlignmentBaseline:Wt.getAlignmentBaseline,styleVersion:it}}}),{data:ot.attributes&&ot.attributes.background?{length:ot.length,attributes:ot.attributes.background}:ot,_dataDiff:At,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new Vt({sdf:Nt.sdf,smoothing:Number.isFinite(Nt.smoothing)?Nt.smoothing:DEFAULT_FONT_SETTINGS.smoothing,outlineWidth:Ot,outlineColor:kt,iconAtlas:rt,iconMapping:nt,getPosition:ut,getColor:ft,getSize:dt,getAngle:Et,getPixelOffset:Bt,billboard:xt,sizeScale:Jt*tt,sizeUnits:jt,sizeMinPixels:Ht*tt,sizeMaxPixels:Gt*tt,transitions:Kt&&{getPosition:Kt.getPosition,getAngle:Kt.getAngle,getColor:Kt.getColor,getSize:Kt.getSize,getPixelOffset:Kt.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{getIcon:Wt.getText,getPosition:Wt.getPosition,getAngle:Wt.getAngle,getColor:Wt.getColor,getSize:Wt.getSize,getPixelOffset:Wt.getPixelOffset,getIconOffsets:{getText:Wt.getText,getTextAnchor:Wt.getTextAnchor,getAlignmentBaseline:Wt.getAlignmentBaseline,styleVersion:it}}}),{data:ot,_dataDiff:At,startIndices:$,numInstances:_e,getIconOffsets:this.getIconOffsets,getIcon:et})]}static set fontAtlasCacheLimit($){setFontAtlasCacheLimit($)}}_defineProperty$e(TextLayer,"defaultProps",defaultProps$w);_defineProperty$e(TextLayer,"layerName","TextLayer");const POINT_LAYER={circle:{type:ScatterplotLayer,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:IconLayer,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:TextLayer,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPixels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},LINE_LAYER={type:PathLayer,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},POLYGON_LAYER={type:SolidPolygonLayer,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function getDefaultProps({type:j,props:$}){const _e={};for(const et in $)_e[et]=j.defaultProps[$[et]];return _e}function forwardProps(j,$){const{transitions:_e,updateTriggers:et}=j.props,tt={updateTriggers:{},transitions:_e&&{getPosition:_e.geometry}};for(const rt in $){const nt=$[rt];let it=j.props[rt];rt.startsWith("get")&&(it=j.getSubLayerAccessor(it),tt.updateTriggers[nt]=et[rt],_e&&(tt.transitions[nt]=_e[rt])),tt[nt]=it}return tt}function getGeojsonFeatures(j){if(Array.isArray(j))return j;switch(log$3.assert(j.type,"GeoJSON does not have type"),j.type){case"Feature":return[j];case"FeatureCollection":return log$3.assert(Array.isArray(j.features),"GeoJSON does not have features array"),j.features;default:return[{geometry:j}]}}function separateGeojsonFeatures(j,$,_e={}){const et={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:tt=0,endRow:rt=j.length}=_e;for(let nt=tt;nt{it.push(_e({geometry:{type:"Point",coordinates:ft}},et,tt))});break;case"LineString":ot.push(_e({geometry:j},et,tt));break;case"MultiLineString":nt.forEach(ft=>{ot.push(_e({geometry:{type:"LineString",coordinates:ft}},et,tt))});break;case"Polygon":At.push(_e({geometry:j},et,tt)),nt.forEach(ft=>{ut.push(_e({geometry:{type:"LineString",coordinates:ft}},et,tt))});break;case"MultiPolygon":nt.forEach(ft=>{At.push(_e({geometry:{type:"Polygon",coordinates:ft}},et,tt)),ft.forEach(dt=>{ut.push(_e({geometry:{type:"LineString",coordinates:dt}},et,tt))})});break}}const COORDINATE_NEST_LEVEL={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function validateGeometry(j,$){let _e=COORDINATE_NEST_LEVEL[j];for(log$3.assert(_e,"Unknown GeoJSON type ".concat(j));$&&--_e>0;)$=$[0];return $&&Number.isFinite($[0])}function createEmptyLayerProps(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function getCoordinates(j){return j.geometry.coordinates}function createLayerPropsFromFeatures(j,$){const _e=createEmptyLayerProps(),{pointFeatures:et,lineFeatures:tt,polygonFeatures:rt,polygonOutlineFeatures:nt}=j;return _e.points.data=et,_e.points._dataDiff=$.pointFeatures&&(()=>$.pointFeatures),_e.points.getPosition=getCoordinates,_e.lines.data=tt,_e.lines._dataDiff=$.lineFeatures&&(()=>$.lineFeatures),_e.lines.getPath=getCoordinates,_e.polygons.data=rt,_e.polygons._dataDiff=$.polygonFeatures&&(()=>$.polygonFeatures),_e.polygons.getPolygon=getCoordinates,_e.polygonsOutline.data=nt,_e.polygonsOutline._dataDiff=$.polygonOutlineFeatures&&(()=>$.polygonOutlineFeatures),_e.polygonsOutline.getPath=getCoordinates,_e}function createLayerPropsFromBinary(j,$){const _e=createEmptyLayerProps(),{points:et,lines:tt,polygons:rt}=j,nt=calculatePickingColors(j,$);return _e.points.data={length:et.positions.value.length/et.positions.size,attributes:{...et.attributes,getPosition:et.positions,instancePickingColors:{size:3,value:nt.points}},properties:et.properties,numericProps:et.numericProps,featureIds:et.featureIds},_e.lines.data={length:tt.pathIndices.value.length-1,startIndices:tt.pathIndices.value,attributes:{...tt.attributes,getPath:tt.positions,instancePickingColors:{size:3,value:nt.lines}},properties:tt.properties,numericProps:tt.numericProps,featureIds:tt.featureIds},_e.lines._pathType="open",_e.polygons.data={length:rt.polygonIndices.value.length-1,startIndices:rt.polygonIndices.value,attributes:{...rt.attributes,getPolygon:rt.positions,pickingColors:{size:3,value:nt.polygons}},properties:rt.properties,numericProps:rt.numericProps,featureIds:rt.featureIds},_e.polygons._normalize=!1,rt.triangles&&(_e.polygons.data.attributes.indices=rt.triangles.value),_e.polygonsOutline.data={length:rt.primitivePolygonIndices.value.length-1,startIndices:rt.primitivePolygonIndices.value,attributes:{...rt.attributes,getPath:rt.positions,instancePickingColors:{size:3,value:nt.polygons}},properties:rt.properties,numericProps:rt.numericProps,featureIds:rt.featureIds},_e.polygonsOutline._pathType="open",_e}const FEATURE_TYPES=["points","linestrings","polygons"],defaultProps$v={...getDefaultProps(POINT_LAYER.circle),...getDefaultProps(POINT_LAYER.icon),...getDefaultProps(POINT_LAYER.text),...getDefaultProps(LINE_LAYER),...getDefaultProps(POLYGON_LAYER),stroked:!0,filled:!0,extruded:!1,wireframe:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:j=>j.properties.icon},getText:{type:"accessor",value:j=>j.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}};class GeoJsonLayer extends CompositeLayer{initializeState(){this.state={layerProps:{},features:{}}}updateState({props:$,changeFlags:_e}){if(!_e.dataChanged)return;const{data:et}=this.props,tt=et&&"points"in et&&"polygons"in et&&"lines"in et;this.setState({binary:tt}),tt?this._updateStateBinary({props:$,changeFlags:_e}):this._updateStateJSON({props:$,changeFlags:_e})}_updateStateBinary({props:$,changeFlags:_e}){const et=createLayerPropsFromBinary($.data,this.encodePickingColor);this.setState({layerProps:et})}_updateStateJSON({props:$,changeFlags:_e}){const et=getGeojsonFeatures($.data),tt=this.getSubLayerRow.bind(this);let rt={};const nt={};if(Array.isArray(_e.dataChanged)){const ot=this.state.features;for(const At in ot)rt[At]=ot[At].slice(),nt[At]=[];for(const At of _e.dataChanged){const ut=separateGeojsonFeatures(et,tt,At);for(const ft in ot)nt[ft].push(replaceInRange({data:rt[ft],getIndex:dt=>dt.__source.index,dataRange:At,replace:ut[ft]}))}}else rt=separateGeojsonFeatures(et,tt);const it=createLayerPropsFromFeatures(rt,nt);this.setState({features:rt,featuresDiff:nt,layerProps:it})}getPickingInfo($){const _e=super.getPickingInfo($),{index:et,sourceLayer:tt}=_e;return _e.featureType=FEATURE_TYPES.find(rt=>tt.id.startsWith("".concat(this.id,"-").concat(rt,"-"))),et>=0&&tt.id.startsWith("".concat(this.id,"-points-text"))&&this.state.binary&&(_e.index=this.props.data.points.globalFeatureIds.value[et]),_e}_updateAutoHighlight($){const _e="".concat(this.id,"-points-"),et=$.featureType==="points";for(const tt of this.getSubLayers())tt.id.startsWith(_e)===et&&tt.updateAutoHighlight($)}_renderPolygonLayer(){const{extruded:$,wireframe:_e}=this.props,{layerProps:et}=this.state,tt="polygons-fill",rt=this.shouldRenderSubLayer(tt,et.polygons.data)&&this.getSubLayerClass(tt,POLYGON_LAYER.type);if(rt){const nt=forwardProps(this,POLYGON_LAYER.props),it=$&&_e;return it||delete nt.getLineColor,nt.updateTriggers.lineColors=it,new rt(nt,this.getSubLayerProps({id:tt,updateTriggers:nt.updateTriggers}),et.polygons)}return null}_renderLineLayers(){const{extruded:$,stroked:_e}=this.props,{layerProps:et}=this.state,tt="polygons-stroke",rt="linestrings",nt=!$&&_e&&this.shouldRenderSubLayer(tt,et.polygonsOutline.data)&&this.getSubLayerClass(tt,LINE_LAYER.type),it=this.shouldRenderSubLayer(rt,et.lines.data)&&this.getSubLayerClass(rt,LINE_LAYER.type);if(nt||it){const ot=forwardProps(this,LINE_LAYER.props);return[nt&&new nt(ot,this.getSubLayerProps({id:tt,updateTriggers:ot.updateTriggers}),et.polygonsOutline),it&&new it(ot,this.getSubLayerProps({id:rt,updateTriggers:ot.updateTriggers}),et.lines)]}return null}_renderPointLayers(){const{pointType:$}=this.props,{layerProps:_e,binary:et}=this.state;let{highlightedObjectIndex:tt}=this.props;!et&&Number.isFinite(tt)&&(tt=_e.points.data.findIndex(it=>it.__source.index===tt));const rt=new Set($.split("+")),nt=[];for(const it of rt){const ot="points-".concat(it),At=POINT_LAYER[it],ut=At&&this.shouldRenderSubLayer(ot,_e.points.data)&&this.getSubLayerClass(ot,At.type);if(ut){const ft=forwardProps(this,At.props);let dt=_e.points;if(it==="text"&&et){const{instancePickingColors:Et,...Bt}=dt.data.attributes;dt={...dt,data:{...dt.data,attributes:Bt}}}nt.push(new ut(ft,this.getSubLayerProps({id:ot,updateTriggers:ft.updateTriggers,highlightedObjectIndex:tt}),dt))}}return nt}renderLayers(){const{extruded:$}=this.props,_e=this._renderPolygonLayer(),et=this._renderLineLayers(),tt=this._renderPointLayers();return[!$&&_e,et,tt,$&&_e]}getSubLayerAccessor($){const{binary:_e}=this.state;return!_e||typeof $!="function"?super.getSubLayerAccessor($):(et,tt)=>{const{data:rt,index:nt}=tt,it=binaryToFeatureForAccesor(rt,nt);return $(it,tt)}}}_defineProperty$e(GeoJsonLayer,"layerName","GeoJsonLayer");_defineProperty$e(GeoJsonLayer,"defaultProps",defaultProps$v);const esm$3=Object.freeze(Object.defineProperty({__proto__:null,ArcLayer,BitmapLayer:BitmapLayer$1,ColumnLayer,GeoJsonLayer,GridCellLayer,IconLayer,LineLayer,PathLayer,PointCloudLayer,PolygonLayer,ScatterplotLayer,SolidPolygonLayer,TextLayer,_MultiIconLayer:MultiIconLayer,_TextBackgroundLayer:TextBackgroundLayer},Symbol.toStringTag,{value:"Module"})),defaultProps$u={getHeight:{type:"accessor",value:0},greatCircle:!0};class GreatCircleLayer extends ArcLayer{}_defineProperty$e(GreatCircleLayer,"layerName","GreatCircleLayer");_defineProperty$e(GreatCircleLayer,"defaultProps",defaultProps$u);const defaultProps$t={...PolygonLayer.defaultProps};class GeoCellLayer extends CompositeLayer{indexToBounds(){return null}renderLayers(){const{elevationScale:$,extruded:_e,wireframe:et,filled:tt,stroked:rt,lineWidthUnits:nt,lineWidthScale:it,lineWidthMinPixels:ot,lineWidthMaxPixels:At,lineJointRounded:ut,lineMiterLimit:ft,lineDashJustified:dt,getElevation:Et,getFillColor:Bt,getLineColor:St,getLineWidth:Dt}=this.props,{updateTriggers:$t,material:Rt,transitions:wt}=this.props,xt=this.getSubLayerClass("cell",PolygonLayer);return new xt({filled:tt,wireframe:et,extruded:_e,elevationScale:$,stroked:rt,lineWidthUnits:nt,lineWidthScale:it,lineWidthMinPixels:ot,lineWidthMaxPixels:At,lineJointRounded:ut,lineMiterLimit:ft,lineDashJustified:dt,material:Rt,transitions:wt,getElevation:Et,getFillColor:Bt,getLineColor:St,getLineWidth:Dt},this.getSubLayerProps({id:"cell",updateTriggers:$t&&{getElevation:$t.getElevation,getFillColor:$t.getFillColor,getLineColor:$t.getLineColor,getLineWidth:$t.getLineWidth}}),this.indexToBounds())}}_defineProperty$e(GeoCellLayer,"layerName","GeoCellLayer");_defineProperty$e(GeoCellLayer,"defaultProps",defaultProps$t);var long={exports:{}};(function(j){/** + * @license long.js (c) 2013 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/long.js for details + */(function($,_e){typeof commonjsRequire=="function"&&j&&j.exports?j.exports=_e():($.dcodeIO=$.dcodeIO||{}).Long=_e()})(commonjsGlobal,function(){function $(Ht,Gt,Kt){this.low=Ht|0,this.high=Gt|0,this.unsigned=!!Kt}$.prototype.__isLong__,Object.defineProperty($.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function _e(Ht){return(Ht&&Ht.__isLong__)===!0}$.isLong=_e;var et={},tt={};function rt(Ht,Gt){var Kt,Wt,Vt;return Gt?(Ht>>>=0,(Vt=0<=Ht&&Ht<256)&&(Wt=tt[Ht],Wt)?Wt:(Kt=it(Ht,(Ht|0)<0?-1:0,!0),Vt&&(tt[Ht]=Kt),Kt)):(Ht|=0,(Vt=-128<=Ht&&Ht<128)&&(Wt=et[Ht],Wt)?Wt:(Kt=it(Ht,Ht<0?-1:0,!1),Vt&&(et[Ht]=Kt),Kt))}$.fromInt=rt;function nt(Ht,Gt){if(isNaN(Ht)||!isFinite(Ht))return Gt?Rt:$t;if(Gt){if(Ht<0)return Rt;if(Ht>=Bt)return kt}else{if(Ht<=-St)return Jt;if(Ht+1>=St)return Ot}return Ht<0?nt(-Ht,Gt).neg():it(Ht%Et|0,Ht/Et|0,Gt)}$.fromNumber=nt;function it(Ht,Gt,Kt){return new $(Ht,Gt,Kt)}$.fromBits=it;var ot=Math.pow;function At(Ht,Gt,Kt){if(Ht.length===0)throw Error("empty string");if(Ht==="NaN"||Ht==="Infinity"||Ht==="+Infinity"||Ht==="-Infinity")return $t;if(typeof Gt=="number"?(Kt=Gt,Gt=!1):Gt=!!Gt,Kt=Kt||10,Kt<2||360)throw Error("interior hyphen");if(Wt===0)return At(Ht.substring(1),Gt,Kt).neg();for(var Vt=nt(ot(Kt,8)),ur=$t,Ar=0;Ar>>0:this.low},jt.toNumber=function(){return this.unsigned?(this.high>>>0)*Et+(this.low>>>0):this.high*Et+(this.low>>>0)},jt.toString=function(Gt){if(Gt=Gt||10,Gt<2||36>>0,Yt=ar.toString(Gt);if(Ar=sr,Ar.isZero())return Yt+hr;for(;Yt.length<6;)Yt="0"+Yt;hr=""+Yt+hr}},jt.getHighBits=function(){return this.high},jt.getHighBitsUnsigned=function(){return this.high>>>0},jt.getLowBits=function(){return this.low},jt.getLowBitsUnsigned=function(){return this.low>>>0},jt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Jt)?64:this.neg().getNumBitsAbs();for(var Gt=this.high!=0?this.high:this.low,Kt=31;Kt>0&&!(Gt&1<=0},jt.isOdd=function(){return(this.low&1)===1},jt.isEven=function(){return(this.low&1)===0},jt.equals=function(Gt){return _e(Gt)||(Gt=ut(Gt)),this.unsigned!==Gt.unsigned&&this.high>>>31===1&&Gt.high>>>31===1?!1:this.high===Gt.high&&this.low===Gt.low},jt.eq=jt.equals,jt.notEquals=function(Gt){return!this.eq(Gt)},jt.neq=jt.notEquals,jt.lessThan=function(Gt){return this.comp(Gt)<0},jt.lt=jt.lessThan,jt.lessThanOrEqual=function(Gt){return this.comp(Gt)<=0},jt.lte=jt.lessThanOrEqual,jt.greaterThan=function(Gt){return this.comp(Gt)>0},jt.gt=jt.greaterThan,jt.greaterThanOrEqual=function(Gt){return this.comp(Gt)>=0},jt.gte=jt.greaterThanOrEqual,jt.compare=function(Gt){if(_e(Gt)||(Gt=ut(Gt)),this.eq(Gt))return 0;var Kt=this.isNegative(),Wt=Gt.isNegative();return Kt&&!Wt?-1:!Kt&&Wt?1:this.unsigned?Gt.high>>>0>this.high>>>0||Gt.high===this.high&&Gt.low>>>0>this.low>>>0?-1:1:this.sub(Gt).isNegative()?-1:1},jt.comp=jt.compare,jt.negate=function(){return!this.unsigned&&this.eq(Jt)?Jt:this.not().add(wt)},jt.neg=jt.negate,jt.add=function(Gt){_e(Gt)||(Gt=ut(Gt));var Kt=this.high>>>16,Wt=this.high&65535,Vt=this.low>>>16,ur=this.low&65535,Ar=Gt.high>>>16,hr=Gt.high&65535,sr=Gt.low>>>16,ar=Gt.low&65535,Yt=0,pr=0,Zt=0,mr=0;return mr+=ur+ar,Zt+=mr>>>16,mr&=65535,Zt+=Vt+sr,pr+=Zt>>>16,Zt&=65535,pr+=Wt+hr,Yt+=pr>>>16,pr&=65535,Yt+=Kt+Ar,Yt&=65535,it(Zt<<16|mr,Yt<<16|pr,this.unsigned)},jt.subtract=function(Gt){return _e(Gt)||(Gt=ut(Gt)),this.add(Gt.neg())},jt.sub=jt.subtract,jt.multiply=function(Gt){if(this.isZero()||(_e(Gt)||(Gt=ut(Gt)),Gt.isZero()))return $t;if(this.eq(Jt))return Gt.isOdd()?Jt:$t;if(Gt.eq(Jt))return this.isOdd()?Jt:$t;if(this.isNegative())return Gt.isNegative()?this.neg().mul(Gt.neg()):this.neg().mul(Gt).neg();if(Gt.isNegative())return this.mul(Gt.neg()).neg();if(this.lt(Dt)&&Gt.lt(Dt))return nt(this.toNumber()*Gt.toNumber(),this.unsigned);var Kt=this.high>>>16,Wt=this.high&65535,Vt=this.low>>>16,ur=this.low&65535,Ar=Gt.high>>>16,hr=Gt.high&65535,sr=Gt.low>>>16,ar=Gt.low&65535,Yt=0,pr=0,Zt=0,mr=0;return mr+=ur*ar,Zt+=mr>>>16,mr&=65535,Zt+=Vt*ar,pr+=Zt>>>16,Zt&=65535,Zt+=ur*sr,pr+=Zt>>>16,Zt&=65535,pr+=Wt*ar,Yt+=pr>>>16,pr&=65535,pr+=Vt*sr,Yt+=pr>>>16,pr&=65535,pr+=ur*hr,Yt+=pr>>>16,pr&=65535,Yt+=Kt*ar+Wt*sr+Vt*hr+ur*Ar,Yt&=65535,it(Zt<<16|mr,Yt<<16|pr,this.unsigned)},jt.mul=jt.multiply,jt.divide=function(Gt){if(_e(Gt)||(Gt=ut(Gt)),Gt.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?Rt:$t;var Kt,Wt,Vt;if(this.unsigned){if(Gt.unsigned||(Gt=Gt.toUnsigned()),Gt.gt(this))return Rt;if(Gt.gt(this.shru(1)))return xt;Vt=Rt}else{if(this.eq(Jt)){if(Gt.eq(wt)||Gt.eq(Nt))return Jt;if(Gt.eq(Jt))return wt;var ur=this.shr(1);return Kt=ur.div(Gt).shl(1),Kt.eq($t)?Gt.isNegative()?wt:Nt:(Wt=this.sub(Gt.mul(Kt)),Vt=Kt.add(Wt.div(Gt)),Vt)}else if(Gt.eq(Jt))return this.unsigned?Rt:$t;if(this.isNegative())return Gt.isNegative()?this.neg().div(Gt.neg()):this.neg().div(Gt).neg();if(Gt.isNegative())return this.div(Gt.neg()).neg();Vt=$t}for(Wt=this;Wt.gte(Gt);){Kt=Math.max(1,Math.floor(Wt.toNumber()/Gt.toNumber()));for(var Ar=Math.ceil(Math.log(Kt)/Math.LN2),hr=Ar<=48?1:ot(2,Ar-48),sr=nt(Kt),ar=sr.mul(Gt);ar.isNegative()||ar.gt(Wt);)Kt-=hr,sr=nt(Kt,this.unsigned),ar=sr.mul(Gt);sr.isZero()&&(sr=wt),Vt=Vt.add(sr),Wt=Wt.sub(ar)}return Vt},jt.div=jt.divide,jt.modulo=function(Gt){return _e(Gt)||(Gt=ut(Gt)),this.sub(this.div(Gt).mul(Gt))},jt.mod=jt.modulo,jt.not=function(){return it(~this.low,~this.high,this.unsigned)},jt.and=function(Gt){return _e(Gt)||(Gt=ut(Gt)),it(this.low&Gt.low,this.high&Gt.high,this.unsigned)},jt.or=function(Gt){return _e(Gt)||(Gt=ut(Gt)),it(this.low|Gt.low,this.high|Gt.high,this.unsigned)},jt.xor=function(Gt){return _e(Gt)||(Gt=ut(Gt)),it(this.low^Gt.low,this.high^Gt.high,this.unsigned)},jt.shiftLeft=function(Gt){return _e(Gt)&&(Gt=Gt.toInt()),(Gt&=63)===0?this:Gt<32?it(this.low<>>32-Gt,this.unsigned):it(0,this.low<>>Gt|this.high<<32-Gt,this.high>>Gt,this.unsigned):it(this.high>>Gt-32,this.high>=0?0:-1,this.unsigned)},jt.shr=jt.shiftRight,jt.shiftRightUnsigned=function(Gt){if(_e(Gt)&&(Gt=Gt.toInt()),Gt&=63,Gt===0)return this;var Kt=this.high;if(Gt<32){var Wt=this.low;return it(Wt>>>Gt|Kt<<32-Gt,Kt>>>Gt,this.unsigned)}else return Gt===32?it(Kt,0,this.unsigned):it(Kt>>>Gt-32,0,this.unsigned)},jt.shru=jt.shiftRightUnsigned,jt.toSigned=function(){return this.unsigned?it(this.low,this.high,!1):this},jt.toUnsigned=function(){return this.unsigned?this:it(this.low,this.high,!0)},jt.toBytes=function(Ht){return Ht?this.toBytesLE():this.toBytesBE()},jt.toBytesLE=function(){var Ht=this.high,Gt=this.low;return[Gt&255,Gt>>>8&255,Gt>>>16&255,Gt>>>24&255,Ht&255,Ht>>>8&255,Ht>>>16&255,Ht>>>24&255]},jt.toBytesBE=function(){var Ht=this.high,Gt=this.low;return[Ht>>>24&255,Ht>>>16&255,Ht>>>8&255,Ht&255,Gt>>>24&255,Gt>>>16&255,Gt>>>8&255,Gt&255]},$})})(long);var longExports=long.exports;const Long=getDefaultExportFromCjs(longExports),FACE_BITS=3,MAX_LEVEL=30,POS_BITS=2*MAX_LEVEL+1,RADIAN_TO_DEGREE=180/Math.PI;function IJToST(j,$,_e){const et=1<<$;return[(j[0]+_e[0])/et,(j[1]+_e[1])/et]}function singleSTtoUV(j){return j>=.5?1/3*(4*j*j-1):1/3*(1-4*(1-j)*(1-j))}function STToUV(j){return[singleSTtoUV(j[0]),singleSTtoUV(j[1])]}function FaceUVToXYZ(j,[$,_e]){switch(j){case 0:return[1,$,_e];case 1:return[-$,1,_e];case 2:return[-$,-_e,1];case 3:return[-1,-_e,-$];case 4:return[_e,-1,-$];case 5:return[_e,$,-1];default:throw new Error("Invalid face")}}function XYZToLngLat([j,$,_e]){const et=Math.atan2(_e,Math.sqrt(j*j+$*$));return[Math.atan2($,j)*RADIAN_TO_DEGREE,et*RADIAN_TO_DEGREE]}function toHilbertQuadkey(j){let $=Long.fromString(j,!0,10).toString(2);for(;$.length=0;it--){nt=tt-it;const ot=et[it];let At=0,ut=0;ot==="1"?ut=1:ot==="2"?(At=1,ut=1):ot==="3"&&(At=1);const ft=Math.pow(2,nt-1);rotateAndFlipQuadrant(ft,rt,At,ut),rt[0]+=ft*At,rt[1]+=ft*ut}if(_e%2===1){const it=rt[0];rt[0]=rt[1],rt[1]=it}return{face:_e,ij:rt,level:nt}}function getIdFromToken(j){const $=j.padEnd(16,"0");return Long.fromString($,16)}const MAX_RESOLUTION=100;function getGeoBounds({face:j,ij:$,level:_e}){const et=[[0,0],[0,1],[1,1],[1,0],[0,0]],tt=Math.max(1,Math.ceil(MAX_RESOLUTION*Math.pow(2,-_e))),rt=new Float64Array(4*tt*2+2);let nt=0,it=0;for(let ot=0;ot<4;ot++){const At=et[ot].slice(0),ut=et[ot+1],ft=(ut[0]-At[0])/tt,dt=(ut[1]-At[1])/tt;for(let Et=0;Et89.999&&($t[0]=it);const Rt=$t[0]-it;$t[0]+=Rt>180?-360:Rt<-180?360:0,rt[nt++]=$t[0],rt[nt++]=$t[1],it=$t[0]}}return rt[nt++]=rt[0],rt[nt++]=rt[1],rt}function getS2QuadKey(j){if(typeof j=="string"){if(j.indexOf("/")>0)return j;j=getIdFromToken(j)}return toHilbertQuadkey(j.toString())}function getS2Polygon(j){const $=getS2QuadKey(j),_e=FromHilbertQuadKey($);return getGeoBounds(_e)}const defaultProps$s={getS2Token:{type:"accessor",value:j=>j.token}};class S2Layer extends GeoCellLayer{indexToBounds(){const{data:$,getS2Token:_e}=this.props;return{data:$,_normalize:!1,positionFormat:"XY",getPolygon:(et,tt)=>getS2Polygon(_e(et,tt))}}}_defineProperty$e(S2Layer,"layerName","S2Layer");_defineProperty$e(S2Layer,"defaultProps",defaultProps$s);const TILE_SIZE$3=512;function quadkeyToWorldBounds(j){let $=0,_e=0,et=1<>=1;const nt=parseInt(j[rt]);nt%2&&($|=et),nt>1&&(_e|=et)}return[[$/tt,TILE_SIZE$3-_e/tt],[($+.99)/tt,TILE_SIZE$3-(_e+.99)/tt]]}function getQuadkeyPolygon(j){const[$,_e]=quadkeyToWorldBounds(j),[et,tt]=worldToLngLat($),[rt,nt]=worldToLngLat(_e);return[rt,tt,rt,nt,et,nt,et,tt,rt,tt]}const defaultProps$r={getQuadkey:{type:"accessor",value:j=>j.quadkey}};class QuadkeyLayer extends GeoCellLayer{indexToBounds(){const{data:$,getQuadkey:_e}=this.props;return{data:$,_normalize:!1,positionFormat:"XY",getPolygon:(et,tt)=>getQuadkeyPolygon(_e(et,tt))}}}_defineProperty$e(QuadkeyLayer,"layerName","QuadkeyLayer");_defineProperty$e(QuadkeyLayer,"defaultProps",defaultProps$r);class Tile2DHeader{constructor($){_defineProperty$e(this,"index",void 0),_defineProperty$e(this,"isVisible",void 0),_defineProperty$e(this,"isSelected",void 0),_defineProperty$e(this,"parent",void 0),_defineProperty$e(this,"children",void 0),_defineProperty$e(this,"content",void 0),_defineProperty$e(this,"state",void 0),_defineProperty$e(this,"layers",void 0),_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"bbox",void 0),_defineProperty$e(this,"zoom",void 0),_defineProperty$e(this,"userData",void 0),_defineProperty$e(this,"_abortController",void 0),_defineProperty$e(this,"_loader",void 0),_defineProperty$e(this,"_loaderId",void 0),_defineProperty$e(this,"_isLoaded",void 0),_defineProperty$e(this,"_isCancelled",void 0),_defineProperty$e(this,"_needsReload",void 0),this.index=$,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){const $=this.content?this.content.byteLength:0;return Number.isFinite($)||log$3.error("byteLength not defined in tile data")(),$}async _loadData({getData:$,requestScheduler:_e,onLoad:et,onError:tt}){const{index:rt,id:nt,bbox:it,userData:ot,zoom:At}=this,ut=this._loaderId;this._abortController=new AbortController;const{signal:ft}=this._abortController,dt=await _e.scheduleRequest(this,St=>St.isSelected?1:-1);if(!dt){this._isCancelled=!0;return}if(this._isCancelled){dt.done();return}let Et=null,Bt;try{Et=await $({index:rt,id:nt,bbox:it,userData:ot,zoom:At,signal:ft})}catch(St){Bt=St||!0}finally{dt.done()}if(ut===this._loaderId){if(this._loader=void 0,this.content=Et,this._isCancelled&&!Et){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,Bt?tt(Bt,this):et(this)}}loadData($){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData($),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var $;this.isLoaded||(this._isCancelled=!0,($=this._abortController)===null||$===void 0||$.abort())}}const INTERSECTION={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},scratchVector$6=new Vector3,scratchNormal$3=new Vector3;class AxisAlignedBoundingBox{constructor($=[0,0,0],_e=[0,0,0],et){_defineProperty$e(this,"center",void 0),_defineProperty$e(this,"halfDiagonal",void 0),_defineProperty$e(this,"minimum",void 0),_defineProperty$e(this,"maximum",void 0),et=et||scratchVector$6.copy($).add(_e).scale(.5),this.center=new Vector3(et),this.halfDiagonal=new Vector3(_e).subtract(this.center),this.minimum=new Vector3($),this.maximum=new Vector3(_e)}clone(){return new AxisAlignedBoundingBox(this.minimum,this.maximum,this.center)}equals($){return this===$||!!$&&this.minimum.equals($.minimum)&&this.maximum.equals($.maximum)}transform($){return this.center.transformAsPoint($),this.halfDiagonal.transform($),this.minimum.transform($),this.maximum.transform($),this}intersectPlane($){const{halfDiagonal:_e}=this,et=scratchNormal$3.from($.normal),tt=_e.x*Math.abs(et.x)+_e.y*Math.abs(et.y)+_e.z*Math.abs(et.z),rt=this.center.dot(et)+$.distance;return rt-tt>0?INTERSECTION.INSIDE:rt+tt<0?INTERSECTION.OUTSIDE:INTERSECTION.INTERSECTING}distanceTo($){return Math.sqrt(this.distanceSquaredTo($))}distanceSquaredTo($){const _e=scratchVector$6.from($).subtract(this.center),{halfDiagonal:et}=this;let tt=0,rt;return rt=Math.abs(_e.x)-et.x,rt>0&&(tt+=rt*rt),rt=Math.abs(_e.y)-et.y,rt>0&&(tt+=rt*rt),rt=Math.abs(_e.z)-et.z,rt>0&&(tt+=rt*rt),tt}}const scratchVector$5=new Vector3,scratchVector2$2=new Vector3;class BoundingSphere{constructor($=[0,0,0],_e=0){_defineProperty$e(this,"center",void 0),_defineProperty$e(this,"radius",void 0),this.radius=-0,this.center=new Vector3,this.fromCenterRadius($,_e)}fromCenterRadius($,_e){return this.center.from($),this.radius=_e,this}fromCornerPoints($,_e){return _e=scratchVector$5.from(_e),this.center=new Vector3().from($).add(_e).scale(.5),this.radius=this.center.distance(_e),this}equals($){return this===$||!!$&&this.center.equals($.center)&&this.radius===$.radius}clone(){return new BoundingSphere(this.center,this.radius)}union($){const _e=this.center,et=this.radius,tt=$.center,rt=$.radius,nt=scratchVector$5.copy(tt).subtract(_e),it=nt.magnitude();if(et>=it+rt)return this.clone();if(rt>=it+et)return $.clone();const ot=(et+it+rt)*.5;return scratchVector2$2.copy(nt).scale((-et+ot)/it).add(_e),this.center.copy(scratchVector2$2),this.radius=ot,this}expand($){const et=scratchVector$5.from($).subtract(this.center).magnitude();return et>this.radius&&(this.radius=et),this}transform($){this.center.transform($);const _e=getScaling(scratchVector$5,$);return this.radius=Math.max(_e[0],Math.max(_e[1],_e[2]))*this.radius,this}distanceSquaredTo($){const _e=this.distanceTo($);return _e*_e}distanceTo($){const et=scratchVector$5.from($).subtract(this.center);return Math.max(0,et.len()-this.radius)}intersectPlane($){const _e=this.center,et=this.radius,rt=$.normal.dot(_e)+$.distance;return rt<-et?INTERSECTION.OUTSIDE:rt=ot?INTERSECTION.INSIDE:INTERSECTION.INTERSECTING}distanceTo($){return Math.sqrt(this.distanceSquaredTo($))}distanceSquaredTo($){const _e=scratchOffset.from($).subtract(this.center),et=this.halfAxes,tt=et.getColumn(0,scratchVectorU),rt=et.getColumn(1,scratchVectorV),nt=et.getColumn(2,scratchVectorW),it=tt.magnitude(),ot=rt.magnitude(),At=nt.magnitude();tt.normalize(),rt.normalize(),nt.normalize();let ut=0,ft;return ft=Math.abs(_e.dot(tt))-it,ft>0&&(ut+=ft*ft),ft=Math.abs(_e.dot(rt))-ot,ft>0&&(ut+=ft*ft),ft=Math.abs(_e.dot(nt))-At,ft>0&&(ut+=ft*ft),ut}computePlaneDistances($,_e,et=[-0,-0]){let tt=Number.POSITIVE_INFINITY,rt=Number.NEGATIVE_INFINITY;const nt=this.center,it=this.halfAxes,ot=it.getColumn(0,scratchVectorU),At=it.getColumn(1,scratchVectorV),ut=it.getColumn(2,scratchVectorW),ft=scratchCorner.copy(ot).add(At).add(ut).add(nt),dt=scratchToCenter.copy(ft).subtract($);let Et=_e.dot(dt);return tt=Math.min(Et,tt),rt=Math.max(Et,rt),ft.copy(nt).add(ot).add(At).subtract(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),ft.copy(nt).add(ot).subtract(At).add(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),ft.copy(nt).add(ot).subtract(At).subtract(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),nt.copy(ft).subtract(ot).add(At).add(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),nt.copy(ft).subtract(ot).add(At).subtract(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),nt.copy(ft).subtract(ot).subtract(At).add(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),nt.copy(ft).subtract(ot).subtract(At).subtract(ut),dt.copy(ft).subtract($),Et=_e.dot(dt),tt=Math.min(Et,tt),rt=Math.max(Et,rt),et[0]=tt,et[1]=rt,et}transform($){this.center.transformAsPoint($);const _e=this.halfAxes.getColumn(0,scratchVectorU);_e.transformAsPoint($);const et=this.halfAxes.getColumn(1,scratchVectorV);et.transformAsPoint($);const tt=this.halfAxes.getColumn(2,scratchVectorW);return tt.transformAsPoint($),this.halfAxes=new Matrix3([..._e,...et,...tt]),this}getTransform(){throw new Error("not implemented")}}const scratchPosition$2=new Vector3,scratchNormal$2=new Vector3;class Plane{constructor($=[0,0,1],_e=0){_defineProperty$e(this,"normal",void 0),_defineProperty$e(this,"distance",void 0),this.normal=new Vector3,this.distance=-0,this.fromNormalDistance($,_e)}fromNormalDistance($,_e){return assert$c(Number.isFinite(_e)),this.normal.from($).normalize(),this.distance=_e,this}fromPointNormal($,_e){$=scratchPosition$2.from($),this.normal.from(_e).normalize();const et=-this.normal.dot($);return this.distance=et,this}fromCoefficients($,_e,et,tt){return this.normal.set($,_e,et),assert$c(equals$3(this.normal.len(),1)),this.distance=tt,this}clone(){return new Plane(this.normal,this.distance)}equals($){return equals$3(this.distance,$.distance)&&equals$3(this.normal,$.normal)}getPointDistance($){return this.normal.dot($)+this.distance}transform($){const _e=scratchNormal$2.copy(this.normal).transformAsVector($).normalize(),et=this.normal.scale(-this.distance).transform($);return this.fromPointNormal(et,_e)}projectPointOntoPlane($,_e=[0,0,0]){$=scratchPosition$2.from($);const et=this.getPointDistance($),tt=scratchNormal$2.copy(this.normal).scale(et);return $.subtract(tt).to(_e)}}const faces=[new Vector3([1,0,0]),new Vector3([0,1,0]),new Vector3([0,0,1])],scratchPlaneCenter=new Vector3,scratchPlaneNormal=new Vector3;new Plane(new Vector3(1,0,0),0);class CullingVolume{constructor($=[]){_defineProperty$e(this,"planes",void 0),this.planes=$}fromBoundingSphere($){this.planes.length=2*faces.length;const _e=$.center,et=$.radius;let tt=0;for(const rt of faces){let nt=this.planes[tt],it=this.planes[tt+1];nt||(nt=this.planes[tt]=new Plane),it||(it=this.planes[tt+1]=new Plane);const ot=scratchPlaneCenter.copy(rt).scale(-et).add(_e);-rt.dot(ot),nt.fromPointNormal(ot,rt);const At=scratchPlaneCenter.copy(rt).scale(et).add(_e),ut=scratchPlaneNormal.copy(rt).negate();-ut.dot(At),it.fromPointNormal(At,ut),tt+=2}return this}computeVisibility($){let _e=INTERSECTION.INSIDE;for(const et of this.planes)switch($.intersectPlane(et)){case INTERSECTION.OUTSIDE:return INTERSECTION.OUTSIDE;case INTERSECTION.INTERSECTING:_e=INTERSECTION.INTERSECTING;break}return _e}computeVisibilityWithPlaneMask($,_e){if(assert$c(Number.isFinite(_e),"parentPlaneMask is required."),_e===CullingVolume.MASK_OUTSIDE||_e===CullingVolume.MASK_INSIDE)return _e;let et=CullingVolume.MASK_INSIDE;const tt=this.planes;for(let rt=0;rtot;)shurDecomposition(it,jMatrix),jMatrixTranspose.copy(jMatrix).transpose(),it.multiplyRight(jMatrix),it.multiplyLeft(jMatrixTranspose),nt.multiplyRight(jMatrix),++tt>2&&(++rt,tt=0);return $.unitary=nt.toTarget($.unitary),$.diagonal=it.toTarget($.diagonal),$}function computeFrobeniusNorm(j){let $=0;for(let _e=0;_e<9;++_e){const et=j[_e];$+=et*et}return Math.sqrt($)}const rowVal=[1,0,0],colVal=[2,2,1];function offDiagonalFrobeniusNorm(j){let $=0;for(let _e=0;_e<3;++_e){const et=j[scratchMatrix.getElementIndex(colVal[_e],rowVal[_e])];$+=2*et*et}return Math.sqrt($)}function shurDecomposition(j,$){const _e=_MathUtils.EPSILON15;let et=0,tt=1;for(let At=0;At<3;++At){const ut=Math.abs(j[scratchMatrix.getElementIndex(colVal[At],rowVal[At])]);ut>et&&(tt=At,et=ut)}const rt=rowVal[tt],nt=colVal[tt];let it=1,ot=0;if(Math.abs(j[scratchMatrix.getElementIndex(nt,rt)])>_e){const At=j[scratchMatrix.getElementIndex(nt,nt)],ut=j[scratchMatrix.getElementIndex(rt,rt)],ft=j[scratchMatrix.getElementIndex(nt,rt)],dt=(At-ut)/2/ft;let Et;dt<0?Et=-1/(-dt+Math.sqrt(1+dt*dt)):Et=1/(dt+Math.sqrt(1+dt*dt)),it=1/Math.sqrt(1+Et*Et),ot=Et*it}return Matrix3.IDENTITY.to($),$[scratchMatrix.getElementIndex(rt,rt)]=$[scratchMatrix.getElementIndex(nt,nt)]=it,$[scratchMatrix.getElementIndex(nt,rt)]=ot,$[scratchMatrix.getElementIndex(rt,nt)]=-ot,$}const scratchVector2$1=new Vector3,scratchVector3$1=new Vector3,scratchVector4=new Vector3,scratchVector5=new Vector3,scratchVector6=new Vector3,scratchCovarianceResult=new Matrix3,scratchEigenResult={diagonal:new Matrix3,unitary:new Matrix3};function makeOrientedBoundingBoxFromPoints(j,$=new OrientedBoundingBox){if(!j||j.length===0)return $.halfAxes=new Matrix3([0,0,0,0,0,0,0,0,0]),$.center=new Vector3,$;const _e=j.length,et=new Vector3(0,0,0);for(const jt of j)et.add(jt);const tt=1/_e;et.multiplyByScalar(tt);let rt=0,nt=0,it=0,ot=0,At=0,ut=0;for(const jt of j){const Ht=scratchVector2$1.copy(jt).subtract(et);rt+=Ht.x*Ht.x,nt+=Ht.x*Ht.y,it+=Ht.x*Ht.z,ot+=Ht.y*Ht.y,At+=Ht.y*Ht.z,ut+=Ht.z*Ht.z}rt*=tt,nt*=tt,it*=tt,ot*=tt,At*=tt,ut*=tt;const ft=scratchCovarianceResult;ft[0]=rt,ft[1]=nt,ft[2]=it,ft[3]=nt,ft[4]=ot,ft[5]=At,ft[6]=it,ft[7]=At,ft[8]=ut;const{unitary:dt}=computeEigenDecomposition(ft,scratchEigenResult),Et=$.halfAxes.copy(dt);let Bt=Et.getColumn(0,scratchVector4),St=Et.getColumn(1,scratchVector5),Dt=Et.getColumn(2,scratchVector6),$t=-Number.MAX_VALUE,Rt=-Number.MAX_VALUE,wt=-Number.MAX_VALUE,xt=Number.MAX_VALUE,Nt=Number.MAX_VALUE,Ot=Number.MAX_VALUE;for(const jt of j)scratchVector2$1.copy(jt),$t=Math.max(scratchVector2$1.dot(Bt),$t),Rt=Math.max(scratchVector2$1.dot(St),Rt),wt=Math.max(scratchVector2$1.dot(Dt),wt),xt=Math.min(scratchVector2$1.dot(Bt),xt),Nt=Math.min(scratchVector2$1.dot(St),Nt),Ot=Math.min(scratchVector2$1.dot(Dt),Ot);Bt=Bt.multiplyByScalar(.5*(xt+$t)),St=St.multiplyByScalar(.5*(Nt+Rt)),Dt=Dt.multiplyByScalar(.5*(Ot+wt)),$.center.copy(Bt).add(St).add(Dt);const kt=scratchVector3$1.set($t-xt,Rt-Nt,wt-Ot).multiplyByScalar(.5),Jt=new Matrix3([kt[0],0,0,0,kt[1],0,0,0,kt[2]]);return $.halfAxes.multiplyRight(Jt),$}const TILE_SIZE$2=512,MAX_MAPS=3,REF_POINTS_5=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],REF_POINTS_9=REF_POINTS_5.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),REF_POINTS_11=REF_POINTS_9.concat([[.25,.5],[.75,.5]]);class OSMNode{constructor($,_e,et){_defineProperty$e(this,"x",void 0),_defineProperty$e(this,"y",void 0),_defineProperty$e(this,"z",void 0),_defineProperty$e(this,"childVisible",void 0),_defineProperty$e(this,"selected",void 0),_defineProperty$e(this,"_children",void 0),this.x=$,this.y=_e,this.z=et}get children(){if(!this._children){const $=this.x*2,_e=this.y*2,et=this.z+1;this._children=[new OSMNode($,_e,et),new OSMNode($,_e+1,et),new OSMNode($+1,_e,et),new OSMNode($+1,_e+1,et)]}return this._children}update($){const{viewport:_e,cullingVolume:et,elevationBounds:tt,minZ:rt,maxZ:nt,bounds:it,offset:ot,project:At}=$,ut=this.getBoundingVolume(tt,ot,At);if(it&&!this.insideBounds(it)||et.computeVisibility(ut)<0)return!1;if(!this.childVisible){let{z:dt}=this;if(dt=rt){const Et=ut.distanceTo(_e.cameraPosition)*_e.scale/_e.height;dt+=Math.floor(Math.log2(Et))}if(dt>=nt)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(const dt of this.children)dt.update($);return!0}getSelected($=[]){if(this.selected&&$.push(this),this._children)for(const _e of this._children)_e.getSelected($);return $}insideBounds([$,_e,et,tt]){const rt=Math.pow(2,this.z),nt=TILE_SIZE$2/rt;return this.x*nt$&&(this.y+1)*nt>_e}getBoundingVolume($,_e,et){if(et){const ot=this.z<1?REF_POINTS_11:this.z<2?REF_POINTS_9:REF_POINTS_5,At=[];for(const ut of ot){const ft=osmTile2lngLat(this.x+ut[0],this.y+ut[1],this.z);ft[2]=$[0],At.push(et(ft)),$[0]!==$[1]&&(ft[2]=$[1],At.push(et(ft)))}return makeOrientedBoundingBoxFromPoints(At)}const tt=Math.pow(2,this.z),rt=TILE_SIZE$2/tt,nt=this.x*rt+_e*TILE_SIZE$2,it=TILE_SIZE$2-(this.y+1)*rt;return new AxisAlignedBoundingBox([nt,it,$[0]],[nt+rt,it+rt,$[1]])}}function getOSMTileIndices(j,$,_e,et){const tt=j instanceof GlobeViewport&&j.resolution?j.projectPosition:null,rt=Object.values(j.getFrustumPlanes()).map(({normal:Et,distance:Bt})=>new Plane(Et.clone().negate(),Bt)),nt=new CullingVolume(rt),it=j.distanceScales.unitsPerMeter[2],ot=_e&&_e[0]*it||0,At=_e&&_e[1]*it||0,ut=j instanceof WebMercatorViewport2&&j.pitch<=60?$:0;if(et){const[Et,Bt,St,Dt]=et,$t=lngLatToWorld([Et,Dt]),Rt=lngLatToWorld([St,Bt]);et=[$t[0],TILE_SIZE$2-$t[1],Rt[0],TILE_SIZE$2-Rt[1]]}const ft=new OSMNode(0,0,0),dt={viewport:j,project:tt,cullingVolume:nt,elevationBounds:[ot,At],minZ:ut,maxZ:$,bounds:et,offset:0};if(ft.update(dt),j instanceof WebMercatorViewport2&&j.subViewports&&j.subViewports.length>1){for(dt.offset=-1;ft.update(dt)&&!(--dt.offset<-MAX_MAPS););for(dt.offset=1;ft.update(dt)&&!(++dt.offset>MAX_MAPS););}return ft.getSelected()}const TILE_SIZE$1=512,DEFAULT_EXTENT=[-1/0,-1/0,1/0,1/0],urlType={type:"url",value:null,validate:(j,$)=>$.optional&&j===null||typeof j=="string"||Array.isArray(j)&&j.every(_e=>typeof _e=="string"),equals:(j,$)=>{if(j===$)return!0;if(!Array.isArray(j)||!Array.isArray($))return!1;const _e=j.length;if(_e!==$.length)return!1;for(let et=0;et<_e;et++)if(j[et]!==$[et])return!1;return!0}};function transformBox(j,$){const _e=[$.transformAsPoint([j[0],j[1]]),$.transformAsPoint([j[2],j[1]]),$.transformAsPoint([j[0],j[3]]),$.transformAsPoint([j[2],j[3]])];return[Math.min(..._e.map(tt=>tt[0])),Math.min(..._e.map(tt=>tt[1])),Math.max(..._e.map(tt=>tt[0])),Math.max(..._e.map(tt=>tt[1]))]}function stringHash(j){return Math.abs(j.split("").reduce(($,_e)=>($<<5)-$+_e.charCodeAt(0)|0,0))}function getURLFromTemplate(j,$){if(!j||!j.length)return null;const{index:_e,id:et}=$;if(Array.isArray(j)){const rt=stringHash(et)%j.length;j=j[rt]}let tt=j;for(const rt of Object.keys(_e)){const nt=new RegExp("{".concat(rt,"}"),"g");tt=tt.replace(nt,String(_e[rt]))}return Number.isInteger(_e.y)&&Number.isInteger(_e.z)&&(tt=tt.replace(/\{-y\}/g,String(Math.pow(2,_e.z)-_e.y-1))),tt}function getBoundingBox(j,$,_e){let et;if($&&$.length===2){const[tt,rt]=$,nt=j.getBounds({z:tt}),it=j.getBounds({z:rt});et=[Math.min(nt[0],it[0]),Math.min(nt[1],it[1]),Math.max(nt[2],it[2]),Math.max(nt[3],it[3])]}else et=j.getBounds();return j.isGeospatial?[Math.max(et[0],_e[0]),Math.max(et[1],_e[1]),Math.min(et[2],_e[2]),Math.min(et[3],_e[3])]:[Math.max(Math.min(et[0],_e[2]),_e[0]),Math.max(Math.min(et[1],_e[3]),_e[1]),Math.min(Math.max(et[2],_e[0]),_e[2]),Math.min(Math.max(et[3],_e[1]),_e[3])]}function getCullBounds({viewport:j,z:$=0,cullRect:_e}){return(j.subViewports||[j]).map(tt=>getCullBoundsInViewport(tt,$,_e))}function getCullBoundsInViewport(j,$,_e){if(!Array.isArray($)){const rt=_e.x-j.x,nt=_e.y-j.y,{width:it,height:ot}=_e,At={targetZ:$},ut=j.unproject([rt,nt],At),ft=j.unproject([rt+it,nt],At),dt=j.unproject([rt,nt+ot],At),Et=j.unproject([rt+it,nt+ot],At);return[Math.min(ut[0],ft[0],dt[0],Et[0]),Math.min(ut[1],ft[1],dt[1],Et[1]),Math.max(ut[0],ft[0],dt[0],Et[0]),Math.max(ut[1],ft[1],dt[1],Et[1])]}const et=getCullBoundsInViewport(j,$[0],_e),tt=getCullBoundsInViewport(j,$[1],_e);return[Math.min(et[0],tt[0]),Math.min(et[1],tt[1]),Math.max(et[2],tt[2]),Math.max(et[3],tt[3])]}function getIndexingCoords(j,$,_e){return _e?transformBox(j,_e).map(tt=>tt*$/TILE_SIZE$1):j.map(et=>et*$/TILE_SIZE$1)}function getScale$1(j,$){return Math.pow(2,j)*TILE_SIZE$1/$}function osmTile2lngLat(j,$,_e){const et=getScale$1(_e,TILE_SIZE$1),tt=j/et*360-180,rt=Math.PI-2*Math.PI*$/et,nt=180/Math.PI*Math.atan(.5*(Math.exp(rt)-Math.exp(-rt)));return[tt,nt]}function tile2XY(j,$,_e,et){const tt=getScale$1(_e,et);return[j/tt*TILE_SIZE$1,$/tt*TILE_SIZE$1]}function tileToBoundingBox(j,$,_e,et,tt=TILE_SIZE$1){if(j.isGeospatial){const[At,ut]=osmTile2lngLat($,_e,et),[ft,dt]=osmTile2lngLat($+1,_e+1,et);return{west:At,north:ut,east:ft,south:dt}}const[rt,nt]=tile2XY($,_e,et,tt),[it,ot]=tile2XY($+1,_e+1,et,tt);return{left:rt,top:nt,right:it,bottom:ot}}function getIdentityTileIndices(j,$,_e,et,tt){const rt=getBoundingBox(j,null,et),nt=getScale$1($,_e),[it,ot,At,ut]=getIndexingCoords(rt,nt,tt),ft=[];for(let dt=Math.floor(it);dt$&&(At=$);let ut=tt;return nt&&it&&tt&&!j.isGeospatial&&(ut=transformBox(tt,nt)),j.isGeospatial?getOSMTileIndices(j,At,et,tt):getIdentityTileIndices(j,At,rt,ut||DEFAULT_EXTENT,it)}function isURLTemplate(j){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(j)}function isGeoBoundingBox(j){return Number.isFinite(j.west)&&Number.isFinite(j.north)&&Number.isFinite(j.east)&&Number.isFinite(j.south)}const TILE_STATE_VISITED=1,TILE_STATE_VISIBLE=2,STRATEGY_NEVER="never",STRATEGY_REPLACE="no-overlap",STRATEGY_DEFAULT="best-available",DEFAULT_CACHE_SCALE=5,STRATEGIES={[STRATEGY_DEFAULT]:updateTileStateDefault,[STRATEGY_REPLACE]:updateTileStateReplace,[STRATEGY_NEVER]:()=>{}};class Tileset2D{constructor($){_defineProperty$e(this,"opts",void 0),_defineProperty$e(this,"_requestScheduler",void 0),_defineProperty$e(this,"_cache",void 0),_defineProperty$e(this,"_dirty",void 0),_defineProperty$e(this,"_tiles",void 0),_defineProperty$e(this,"_cacheByteSize",void 0),_defineProperty$e(this,"_viewport",void 0),_defineProperty$e(this,"_zRange",void 0),_defineProperty$e(this,"_selectedTiles",void 0),_defineProperty$e(this,"_frameNumber",void 0),_defineProperty$e(this,"_modelMatrix",void 0),_defineProperty$e(this,"_modelMatrixInverse",void 0),_defineProperty$e(this,"_maxZoom",void 0),_defineProperty$e(this,"_minZoom",void 0),_defineProperty$e(this,"onTileLoad",void 0),_defineProperty$e(this,"_getCullBounds",memoize$1$1(getCullBounds)),this.opts=$,this.onTileLoad=_e=>{this.opts.onTileLoad(_e),this.opts.maxCacheByteSize&&(this._cacheByteSize+=_e.byteLength,this._resizeCache())},this._requestScheduler=new RequestScheduler({maxRequests:$.maxRequests,throttleRequests:$.maxRequests>0}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new Matrix4,this._modelMatrixInverse=new Matrix4,this.setOptions($)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every($=>$.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some($=>$.needsReload)}setOptions($){Object.assign(this.opts,$),Number.isFinite($.maxZoom)&&(this._maxZoom=Math.floor($.maxZoom)),Number.isFinite($.minZoom)&&(this._minZoom=Math.ceil($.minZoom))}finalize(){for(const $ of this._cache.values())$.isLoading&&$.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(const $ of this._cache.keys()){const _e=this._cache.get($);!this._selectedTiles||!this._selectedTiles.includes(_e)?this._cache.delete($):_e.setNeedsReload()}}update($,{zRange:_e,modelMatrix:et}={}){const tt=new Matrix4(et),rt=!tt.equals(this._modelMatrix);if(!this._viewport||!$.equals(this._viewport)||!equals$3(this._zRange,_e)||rt){rt&&(this._modelMatrixInverse=tt.clone().invert(),this._modelMatrix=tt),this._viewport=$,this._zRange=_e;const it=this.getTileIndices({viewport:$,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:_e,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=it.map(ot=>this._getTile(ot,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(it=>this._getTile(it.index,!0)));const nt=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),nt&&this._frameNumber++,this._frameNumber}isTileVisible($,_e){if(!$.isVisible)return!1;if(_e&&this._viewport){const et=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:_e}),{bbox:tt}=$;for(const[rt,nt,it,ot]of et){let At;if("west"in tt)At=tt.westrt&&tt.southnt;else{const ut=Math.min(tt.top,tt.bottom),ft=Math.max(tt.top,tt.bottom);At=tt.leftrt&&utnt}if(At)return!0}return!1}return!0}getTileIndices({viewport:$,maxZoom:_e,minZoom:et,zRange:tt,modelMatrix:rt,modelMatrixInverse:nt}){const{tileSize:it,extent:ot,zoomOffset:At}=this.opts;return getTileIndices({viewport:$,maxZoom:_e,minZoom:et,zRange:tt,tileSize:it,extent:ot,modelMatrix:rt,modelMatrixInverse:nt,zoomOffset:At})}getTileId($){return"".concat($.x,"-").concat($.y,"-").concat($.z)}getTileZoom($){return $.z}getTileMetadata($){const{tileSize:_e}=this.opts;return{bbox:tileToBoundingBox(this._viewport,$.x,$.y,$.z,_e)}}getParentIndex($){const _e=Math.floor($.x/2),et=Math.floor($.y/2),tt=$.z-1;return{x:_e,y:et,z:tt}}updateTileStates(){const $=this.opts.refinementStrategy||STRATEGY_DEFAULT,_e=new Array(this._cache.size);let et=0;for(const tt of this._cache.values())_e[et++]=tt.isVisible,tt.isSelected=!1,tt.isVisible=!1;for(const tt of this._selectedTiles)tt.isSelected=!0,tt.isVisible=!0;(typeof $=="function"?$:STRATEGIES[$])(Array.from(this._cache.values())),et=0;for(const tt of this._cache.values())if(_e[et++]!==tt.isVisible)return!0;return!1}_pruneRequests(){const{maxRequests:$}=this.opts,_e=[];let et=0;for(const tt of this._cache.values())tt.isLoading&&(et++,!tt.isSelected&&!tt.isVisible&&_e.push(tt));for(;$>0&&et>$&&_e.length>0;)_e.shift().abort(),et--}_rebuildTree(){const{_cache:$}=this;for(const _e of $.values())_e.parent=null,_e.children&&(_e.children.length=0);for(const _e of $.values()){const et=this._getNearestAncestor(_e);_e.parent=et,et!=null&&et.children&&et.children.push(_e)}}_resizeCache(){const{_cache:$,opts:_e}=this,et=_e.maxCacheSize||(_e.maxCacheByteSize?1/0:DEFAULT_CACHE_SCALE*this.selectedTiles.length),tt=_e.maxCacheByteSize||1/0;if($.size>et||this._cacheByteSize>tt){for(const[nt,it]of $)if(!it.isVisible&&!it.isSelected&&(this._cacheByteSize-=_e.maxCacheByteSize?it.byteLength:0,$.delete(nt),this.opts.onTileUnload(it)),$.size<=et&&this._cacheByteSize<=tt)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((nt,it)=>nt.zoom-it.zoom),this._dirty=!1)}_getTile($,_e){const et=this.getTileId($);let tt=this._cache.get(et),rt=!1;return!tt&&_e?(tt=new Tile2DHeader($),Object.assign(tt,this.getTileMetadata(tt.index)),Object.assign(tt,{id:et,zoom:this.getTileZoom(tt.index)}),rt=!0,this._cache.set(et,tt),this._dirty=!0):tt&&tt.needsReload&&(rt=!0),tt&&rt&&tt.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),tt}_getNearestAncestor($){const{_minZoom:_e=0}=this;let et=$.index;for(;this.getTileZoom(et)>_e;){et=this.getParentIndex(et);const tt=this._getTile(et);if(tt)return tt}return null}}function updateTileStateDefault(j){for(const $ of j)$.state=0;for(const $ of j)$.isSelected&&!getPlaceholderInAncestors($)&&getPlaceholderInChildren($);for(const $ of j)$.isVisible=!!($.state&TILE_STATE_VISIBLE)}function updateTileStateReplace(j){for(const _e of j)_e.state=0;for(const _e of j)_e.isSelected&&getPlaceholderInAncestors(_e);const $=Array.from(j).sort((_e,et)=>_e.zoom-et.zoom);for(const _e of $)if(_e.isVisible=!!(_e.state&TILE_STATE_VISIBLE),_e.children&&(_e.isVisible||_e.state&TILE_STATE_VISITED))for(const et of _e.children)et.state=TILE_STATE_VISITED;else _e.isSelected&&getPlaceholderInChildren(_e)}function getPlaceholderInAncestors(j){let $=j;for(;$;){if($.isLoaded||$.content)return $.state|=TILE_STATE_VISIBLE,!0;$=$.parent}return!1}function getPlaceholderInChildren(j){for(const $ of j.children)$.isLoaded||$.content?$.state|=TILE_STATE_VISIBLE:getPlaceholderInChildren($)}const defaultProps$q={TilesetClass:Tileset2D,data:{type:"data",value:[]},dataComparator:urlType.equals,renderSubLayers:{type:"function",value:j=>new GeoJsonLayer(j),compare:!1},getTileData:{type:"function",optional:!0,value:null,compare:!1},onViewportLoad:{type:"function",optional:!0,value:null,compare:!1},onTileLoad:{type:"function",value:j=>{},compare:!1},onTileUnload:{type:"function",value:j=>{},compare:!1},onTileError:{type:"function",value:j=>console.error(j),compare:!1},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:STRATEGY_DEFAULT,zRange:null,maxRequests:6,zoomOffset:0};class TileLayer extends CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var $,_e;($=this.state)===null||$===void 0||(_e=$.tileset)===null||_e===void 0||_e.finalize()}get isLoaded(){var $,_e;return($=this.state)===null||$===void 0||(_e=$.tileset)===null||_e===void 0?void 0:_e.selectedTiles.every(et=>et.isLoaded&&et.layers&&et.layers.every(tt=>tt.isLoaded))}shouldUpdateState({changeFlags:$}){return $.somethingChanged}updateState({changeFlags:$}){let{tileset:_e}=this.state;const et=$.propsOrDataChanged||$.updateTriggersChanged,tt=$.dataChanged||$.updateTriggersChanged&&($.updateTriggersChanged.all||$.updateTriggersChanged.getTileData);_e?et&&(_e.setOptions(this._getTilesetOptions()),tt?_e.reloadAll():this.state.tileset.tiles.forEach(rt=>{rt.layers=null})):(_e=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:_e})),this._updateTileset()}_getTilesetOptions(){const{tileSize:$,maxCacheSize:_e,maxCacheByteSize:et,refinementStrategy:tt,extent:rt,maxZoom:nt,minZoom:it,maxRequests:ot,zoomOffset:At}=this.props;return{maxCacheSize:_e,maxCacheByteSize:et,maxZoom:nt,minZoom:it,tileSize:$,refinementStrategy:tt,extent:rt,maxRequests:ot,zoomOffset:At,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){const{tileset:$}=this.state,{zRange:_e,modelMatrix:et}=this.props,tt=$.update(this.context.viewport,{zRange:_e,modelMatrix:et}),{isLoaded:rt}=$,nt=this.state.isLoaded!==rt,it=this.state.frameNumber!==tt;rt&&(nt||it)&&this._onViewportLoad(),it&&this.setState({frameNumber:tt}),this.state.isLoaded=rt}_onViewportLoad(){const{tileset:$}=this.state,{onViewportLoad:_e}=this.props;_e&&_e($.selectedTiles)}_onTileLoad($){this.props.onTileLoad($),$.layers=null,this.setNeedsUpdate()}_onTileError($,_e){this.props.onTileError($),_e.layers=null,this.setNeedsUpdate()}_onTileUnload($){this.props.onTileUnload($)}getTileData($){const{data:_e,getTileData:et,fetch:tt}=this.props,{signal:rt}=$;return $.url=typeof _e=="string"||Array.isArray(_e)?getURLFromTemplate(_e,$):null,et?et($):tt&&$.url?tt($.url,{propName:"data",layer:this,signal:rt}):null}renderSubLayers($){return this.props.renderSubLayers($)}getSubLayerPropsByTile($){return null}getPickingInfo({info:$,sourceLayer:_e}){const et=_e.props.tile;return $.picked&&($.tile=et),$.sourceTile=et,$}_updateAutoHighlight($){const _e=$.sourceTile;if(_e&&_e.layers)for(const et of _e.layers)et.updateAutoHighlight($)}renderLayers(){return this.state.tileset.tiles.map($=>{const _e=this.getSubLayerPropsByTile($);if(!(!$.isLoaded&&!$.content))if($.layers)_e&&$.layers[0]&&Object.keys(_e).some(et=>$.layers[0].props[et]!==_e[et])&&($.layers=$.layers.map(et=>et.clone(_e)));else{const et=this.renderSubLayers({...this.props,id:"".concat(this.id,"-").concat($.id),data:$.content,_offset:0,tile:$});$.layers=flatten(et,Boolean).map(tt=>tt.clone({tile:$,..._e}))}return $.layers})}filterSubLayer({layer:$,cullRect:_e}){const{tile:et}=$.props;return this.state.tileset.isTileVisible(et,_e)}}_defineProperty$e(TileLayer,"defaultProps",defaultProps$q);_defineProperty$e(TileLayer,"layerName","TileLayer");const defaultProps$p={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:j=>j.timestamps}};class TripsLayer extends PathLayer{getShaders(){const $=super.getShaders();return $.inject={"vs:#decl":`uniform float trailLength; +attribute float instanceTimestamps; +attribute float instanceNextTimestamps; +varying float vTime; +`,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength; +`,"fs:#decl":`uniform bool fadeTrail; +uniform float trailLength; +uniform float currentTime; +varying float vTime; +`,"fs:#main-start":`if(vTime > currentTime || (fadeTrail && (vTime < currentTime - trailLength))) { + discard; +} +`,"fs:DECKGL_FILTER_COLOR":`if(fadeTrail) { + color.a *= 1.0 - (currentTime - vTime) / trailLength; +} +`},$}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw($){const{fadeTrail:_e,trailLength:et,currentTime:tt}=this.props;$.uniforms={...$.uniforms,fadeTrail:_e,trailLength:et,currentTime:tt},super.draw($)}}_defineProperty$e(TripsLayer,"layerName","TripsLayer");_defineProperty$e(TripsLayer,"defaultProps",defaultProps$p);var libh3=function(j){j=j||{};var $=typeof j<"u"?j:{},_e={},et;for(et in $)$.hasOwnProperty(et)&&(_e[et]=$[et]);var tt="";function rt(nn){return $.locateFile?$.locateFile(nn,tt):tt+nn}var nt;document.currentScript&&(tt=document.currentScript.src),tt.indexOf("blob:")!==0?tt=tt.substr(0,tt.lastIndexOf("/")+1):tt="",nt=function(an,Sr,Ir){var mt=new XMLHttpRequest;mt.open("GET",an,!0),mt.responseType="arraybuffer",mt.onload=function(){if(mt.status==200||mt.status==0&&mt.response){Sr(mt.response);return}var Hr=qn(an);if(Hr){Sr(Hr.buffer);return}Ir()},mt.onerror=Ir,mt.send(null)};var it=$.print||console.log.bind(console),ot=$.printErr||console.warn.bind(console);for(et in _e)_e.hasOwnProperty(et)&&($[et]=_e[et]);_e=null,$.arguments&&$.arguments;var At=0,ut=function(nn){At=nn},ft=function(){return At},dt=8;function Et(nn,an,Sr,Ir){switch(Sr=Sr||"i8",Sr.charAt(Sr.length-1)==="*"&&(Sr="i32"),Sr){case"i1":Kt[nn>>0]=an;break;case"i8":Kt[nn>>0]=an;break;case"i16":Vt[nn>>1]=an;break;case"i32":ur[nn>>2]=an;break;case"i64":Ur=[an>>>0,(yr=an,+Xt(yr)>=1?yr>0?(Qr(+ir(yr/4294967296),4294967295)|0)>>>0:~~+cr((yr-+(~~yr>>>0))/4294967296)>>>0:0)],ur[nn>>2]=Ur[0],ur[nn+4>>2]=Ur[1];break;case"float":Ar[nn>>2]=an;break;case"double":hr[nn>>3]=an;break;default:lo("invalid type for setValue: "+Sr)}}function Bt(nn,an,Sr){switch(an=an||"i8",an.charAt(an.length-1)==="*"&&(an="i32"),an){case"i1":return Kt[nn>>0];case"i8":return Kt[nn>>0];case"i16":return Vt[nn>>1];case"i32":return ur[nn>>2];case"i64":return ur[nn>>2];case"float":return Ar[nn>>2];case"double":return hr[nn>>3];default:lo("invalid type for getValue: "+an)}return null}var St=!1;function Dt(nn,an){nn||lo("Assertion failed: "+an)}function $t(nn){var an=$["_"+nn];return Dt(an,"Cannot call unknown function "+nn+", make sure it is exported"),an}function Rt(nn,an,Sr,Ir,mt){var gr={string:function(Qn){var xn=0;if(Qn!=null&&Qn!==0){var mo=(Qn.length<<2)+1;xn=Lo(mo),Jt(Qn,xn,mo)}return xn},array:function(Qn){var xn=Lo(Qn.length);return jt(Qn,xn),xn}};function Hr(Qn){return an==="string"?Ot(Qn):an==="boolean"?!!Qn:Qn}var Jr=$t(nn),tn=[],cn=0;if(Ir)for(var En=0;En=Ir);)++mt;if(mt-an>16&&nn.subarray&&xt)return xt.decode(nn.subarray(an,mt));for(var gr="";an>10,56320|cn&1023)}}return gr}function Ot(nn,an){return nn?Nt(Wt,nn,an):""}function kt(nn,an,Sr,Ir){if(!(Ir>0))return 0;for(var mt=Sr,gr=Sr+Ir-1,Hr=0;Hr=55296&&Jr<=57343){var tn=nn.charCodeAt(++Hr);Jr=65536+((Jr&1023)<<10)|tn&1023}if(Jr<=127){if(Sr>=gr)break;an[Sr++]=Jr}else if(Jr<=2047){if(Sr+1>=gr)break;an[Sr++]=192|Jr>>6,an[Sr++]=128|Jr&63}else if(Jr<=65535){if(Sr+2>=gr)break;an[Sr++]=224|Jr>>12,an[Sr++]=128|Jr>>6&63,an[Sr++]=128|Jr&63}else{if(Sr+3>=gr)break;an[Sr++]=240|Jr>>18,an[Sr++]=128|Jr>>12&63,an[Sr++]=128|Jr>>6&63,an[Sr++]=128|Jr&63}}return an[Sr]=0,Sr-mt}function Jt(nn,an,Sr){return kt(nn,Wt,an,Sr)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function jt(nn,an){Kt.set(nn,an)}function Ht(nn,an){return nn%an>0&&(nn+=an-nn%an),nn}var Gt,Kt,Wt,Vt,ur,Ar,hr;function sr(nn){Gt=nn,$.HEAP8=Kt=new Int8Array(nn),$.HEAP16=Vt=new Int16Array(nn),$.HEAP32=ur=new Int32Array(nn),$.HEAPU8=Wt=new Uint8Array(nn),$.HEAPU16=new Uint16Array(nn),$.HEAPU32=new Uint32Array(nn),$.HEAPF32=Ar=new Float32Array(nn),$.HEAPF64=hr=new Float64Array(nn)}var ar=5266928,Yt=24016,pr=$.TOTAL_MEMORY||33554432;$.buffer?Gt=$.buffer:Gt=new ArrayBuffer(pr),pr=Gt.byteLength,sr(Gt),ur[Yt>>2]=ar;function Zt(nn){for(;nn.length>0;){var an=nn.shift();if(typeof an=="function"){an();continue}var Sr=an.func;typeof Sr=="number"?an.arg===void 0?$.dynCall_v(Sr):$.dynCall_vi(Sr,an.arg):Sr(an.arg===void 0?null:an.arg)}}var mr=[],vr=[],_r=[],Er=[];function Lr(){if($.preRun)for(typeof $.preRun=="function"&&($.preRun=[$.preRun]);$.preRun.length;)Fr($.preRun.shift());Zt(mr)}function Rr(){Zt(vr)}function $r(){Zt(_r)}function xr(){if($.postRun)for(typeof $.postRun=="function"&&($.postRun=[$.postRun]);$.postRun.length;)Nr($.postRun.shift());Zt(Er)}function Fr(nn){mr.unshift(nn)}function Nr(nn){Er.unshift(nn)}var Xt=Math.abs,cr=Math.ceil,ir=Math.floor,Qr=Math.min,Or=0,Yr=null;function wr(nn){Or++,$.monitorRunDependencies&&$.monitorRunDependencies(Or)}function rr(nn){if(Or--,$.monitorRunDependencies&&$.monitorRunDependencies(Or),Or==0&&Yr){var an=Yr;Yr=null,an()}}$.preloadedImages={},$.preloadedAudios={};var er=null,lr="data:application/octet-stream;base64,";function fr(nn){return String.prototype.startsWith?nn.startsWith(lr):nn.indexOf(lr)===0}var yr,Ur;er="data:application/octet-stream;base64,AAAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAABAAAAAMAAAAGAAAABQAAAAIAAAAAAAAAAgAAAAMAAAABAAAABAAAAAYAAAAAAAAABQAAAAMAAAAGAAAABAAAAAUAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAABAAAABQAAAAIAAAAAAAAAAQAAAAMAAAAGAAAABAAAAAYAAAAAAAAABQAAAAIAAAABAAAABAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABgAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAACAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAwAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAQAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAFAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABgAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAABgAAAAAAAAADAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAUAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAACAAAABAAAAAMAAAAIAAAA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AAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAADAAAABQAAAAEAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAP////8BAAAAAAAAAAMAAAAEAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAAP//////////AQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAIAAAAAAAAAAAAAAAEAAAACAAAABgAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAoAAAACAAAAAAAAAAAAAAABAAAAAQAAAAUAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAAAAAAAAAAAAAEAAAADAAAABwAAAAYAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAJAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAAAAAAAAAAAAQAAAAQAAAAIAAAACgAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAAAAAAAAAAABAAAACwAAAA8AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAgAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAAAAAAAAAAABAAAADAAAABAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAEAAAAKAAAAEwAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAgAAAAAAAAAAAAAAAQAAAA0AAAARAAAADQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAAAAAAAAAAAAAEAAAAOAAAAEgAAAA8AAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAAAAAABAAAA//////////8TAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABIAAAAAAAAAGAAAAAAAAAAhAAAAAAAAAB4AAAAAAAAAIAAAAAMAAAAxAAAAAQAAADAAAAADAAAAMgAAAAMAAAAIAAAAAAAAAAUAAAAFAAAACgAAAAUAAAAWAAAAAAAAABAAAAAAAAAAEgAAAAAAAAApAAAAAQAAACEAAAAAAAAAHgAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAgAAAAUAAAAPAAAAAQAAAAgAAAAAAAAABQAAAAUAAAAfAAAAAQAAABYAAAAAAAAAEAAAAAAAAAACAAAAAAAAAAYAAAAAAAAADgAAAAAAAAAKAAAAAAAAAAsAAAAAAAAAEQAAAAMAAAAYAAAAAQAAABcAAAADAAAAGQAAAAMAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAUAAAAFAAAAAAAAAAIAAAAAAAAABgAAAAAAAAASAAAAAQAAAAoAAAAAAAAACwAAAAAAAAAEAAAAAQAAAAMAAAAFAAAABwAAAAUAAAAIAAAAAQAAAAAAAAAAAAAAAQAAAAUAAAAQAAAAAQAAAAUAAAAAAAAAAgAAAAAAAAAHAAAAAAAAABUAAAAAAAAAJgAAAAAAAAAJAAAAAAAAABMAAAAAAAAAIgAAAAMAAAAOAAAAAQAAABQAAAADAAAAJAAAAAMAAAADAAAAAAAAAA0AAAAFAAAAHQAAAAUAAAABAAAAAAAAAAcAAAAAAAAAFQAAAAAAAAAGAAAA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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAABAAEAAAEBAAAAAAABAAAAAQAAAAEAAQAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAAYWxnb3MuYwBfcG9seWZpbGxJbnRlcm5hbABhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0dlb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9HZW9Cb3VuZGFyeQBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGgzVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAcGVudGFnb25Sb3RhdGlvbnMgPj0gMABkaXJlY3Rpb25Sb3RhdGlvbnMgPj0gMABiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvSDMAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAd2l0aGluUGVudGFnb25Sb3RhdGlvbnMgPj0gMABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";var Wr=24032;function Pr(nn){return nn}function Zr(nn){var an=/\b__Z[\w\d_]+/g;return nn.replace(an,function(Sr){var Ir=Sr;return Sr===Ir?Sr:Ir+" ["+Sr+"]"})}function rn(){var nn=new Error;if(!nn.stack){try{throw new Error(0)}catch(an){nn=an}if(!nn.stack)return"(no stack trace available)"}return nn.stack.toString()}function on(){var nn=rn();return $.extraStackTrace&&(nn+=` +`+$.extraStackTrace()),Zr(nn)}function In(nn,an,Sr,Ir){lo("Assertion failed: "+Ot(nn)+", at: "+[an?Ot(an):"unknown filename",Sr,Ir?Ot(Ir):"unknown function"])}function Sn(){return Kt.length}function un(nn,an,Sr){Wt.set(Wt.subarray(an,an+Sr),nn)}function dn(nn){return $.___errno_location&&(ur[$.___errno_location()>>2]=nn),nn}function wn(nn){lo("OOM")}function Nn(nn){try{var an=new ArrayBuffer(nn);return an.byteLength!=nn?void 0:(new Int8Array(an).set(Kt),Co(an),sr(an),1)}catch{}}function Tn(nn){var an=Sn(),Sr=16777216,Ir=2147483648-Sr;if(nn>Ir)return!1;for(var mt=16777216,gr=Math.max(an,mt);gr>4,mt=(Jr&15)<<4|tn>>2,gr=(tn&3)<<6|cn,Sr=Sr+String.fromCharCode(Ir),tn!==64&&(Sr=Sr+String.fromCharCode(mt)),cn!==64&&(Sr=Sr+String.fromCharCode(gr));while(En>2]=vt,mt[Ut+4>>2]=Qt,Ut=(Mt|0)!=0,Ut&&(mt[Mt>>2]=0),bo(vt,Qt)|0)return zt=1,Mr=nr,zt|0;mt[zt>>2]=0;e:do if((Tt|0)>=1)if(Ut)for(Ct=0,bt=1,Ft=1,st=0,Ut=vt;;){if(!(st|Ct)){if(Ut=Cr(Ut,Qt,4,zt)|0,Qt=zr()|0,(Ut|0)==0&(Qt|0)==0){Ut=2;break e}if(bo(Ut,Qt)|0){Ut=1;break e}}if(Ut=Cr(Ut,Qt,mt[16+(Ct<<2)>>2]|0,zt)|0,Qt=zr()|0,(Ut|0)==0&(Qt|0)==0){Ut=2;break e}if(vt=Pt+(Ft<<3)|0,mt[vt>>2]=Ut,mt[vt+4>>2]=Qt,mt[Mt+(Ft<<2)>>2]=bt,st=st+1|0,vt=(st|0)==(bt|0),ct=Ct+1|0,ht=(ct|0)==6,bo(Ut,Qt)|0){Ut=1;break e}if(bt=bt+(ht&vt&1)|0,(bt|0)>(Tt|0)){Ut=0;break}else Ct=vt?ht?0:ct:Ct,Ft=Ft+1|0,st=vt?0:st}else for(Ct=0,bt=1,Ft=1,st=0,Ut=vt;;){if(!(st|Ct)){if(Ut=Cr(Ut,Qt,4,zt)|0,Qt=zr()|0,(Ut|0)==0&(Qt|0)==0){Ut=2;break e}if(bo(Ut,Qt)|0){Ut=1;break e}}if(Ut=Cr(Ut,Qt,mt[16+(Ct<<2)>>2]|0,zt)|0,Qt=zr()|0,(Ut|0)==0&(Qt|0)==0){Ut=2;break e}if(vt=Pt+(Ft<<3)|0,mt[vt>>2]=Ut,mt[vt+4>>2]=Qt,st=st+1|0,vt=(st|0)==(bt|0),ct=Ct+1|0,ht=(ct|0)==6,bo(Ut,Qt)|0){Ut=1;break e}if(bt=bt+(ht&vt&1)|0,(bt|0)>(Tt|0)){Ut=0;break}else Ct=vt?ht?0:ct:Ct,Ft=Ft+1|0,st=vt?0:st}else Ut=0;while(!1);return zt=Ut,Mr=nr,zt|0}function Vo(vt,Qt,Tt,Pt,Mt,Ut,st){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0,Ut=Ut|0,st=st|0;var ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0;if(Ft=Mr,Mr=Mr+16|0,bt=Ft,(vt|0)==0&(Qt|0)==0){Mr=Ft;return}if(ct=bs(vt|0,Qt|0,Ut|0,((Ut|0)<0)<<31>>31|0)|0,zr()|0,ht=Pt+(ct<<3)|0,zt=ht,nr=mt[zt>>2]|0,zt=mt[zt+4>>2]|0,Ct=(nr|0)==(vt|0)&(zt|0)==(Qt|0),!((nr|0)==0&(zt|0)==0|Ct))do ct=(ct+1|0)%(Ut|0)|0,ht=Pt+(ct<<3)|0,nr=ht,zt=mt[nr>>2]|0,nr=mt[nr+4>>2]|0,Ct=(zt|0)==(vt|0)&(nr|0)==(Qt|0);while(!((zt|0)==0&(nr|0)==0|Ct));if(ct=Mt+(ct<<2)|0,Ct&&(mt[ct>>2]|0)<=(st|0)){Mr=Ft;return}if(nr=ht,mt[nr>>2]=vt,mt[nr+4>>2]=Qt,mt[ct>>2]=st,(st|0)>=(Tt|0)){Mr=Ft;return}nr=st+1|0,mt[bt>>2]=0,zt=Cr(vt,Qt,2,bt)|0,Vo(zt,zr()|0,Tt,Pt,Mt,Ut,nr),mt[bt>>2]=0,zt=Cr(vt,Qt,3,bt)|0,Vo(zt,zr()|0,Tt,Pt,Mt,Ut,nr),mt[bt>>2]=0,zt=Cr(vt,Qt,1,bt)|0,Vo(zt,zr()|0,Tt,Pt,Mt,Ut,nr),mt[bt>>2]=0,zt=Cr(vt,Qt,5,bt)|0,Vo(zt,zr()|0,Tt,Pt,Mt,Ut,nr),mt[bt>>2]=0,zt=Cr(vt,Qt,4,bt)|0,Vo(zt,zr()|0,Tt,Pt,Mt,Ut,nr),mt[bt>>2]=0,zt=Cr(vt,Qt,6,bt)|0,Vo(zt,zr()|0,Tt,Pt,Mt,Ut,nr),Mr=Ft}function Cr(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0;if((mt[Pt>>2]|0)>0){Mt=0;do Tt=OA(Tt)|0,Mt=Mt+1|0;while((Mt|0)<(mt[Pt>>2]|0))}ct=_n(vt|0,Qt|0,45)|0,zr()|0,ht=ct&127,Ut=Eo(vt,Qt)|0,Mt=_n(vt|0,Qt|0,52)|0,zr()|0,Mt=Mt&15;e:do if(!Mt)st=6;else for(;;){if(Ft=(15-Mt|0)*3|0,zt=_n(vt|0,Qt|0,Ft|0)|0,zr()|0,zt=zt&7,nr=(Hs(Mt)|0)==0,Mt=Mt+-1|0,bt=Rn(7,0,Ft|0)|0,Qt=Qt&~(zr()|0),Ft=Rn(mt[(nr?464:48)+(zt*28|0)+(Tt<<2)>>2]|0,0,Ft|0)|0,Ct=zr()|0,Tt=mt[(nr?672:256)+(zt*28|0)+(Tt<<2)>>2]|0,vt=Ft|vt&~bt,Qt=Ct|Qt,!Tt){Tt=0;break e}if(!Mt){st=6;break}}while(!1);(st|0)==6&&(nr=mt[880+(ht*28|0)+(Tt<<2)>>2]|0,zt=Rn(nr|0,0,45)|0,vt=zt|vt,Qt=zr()|0|Qt&-1040385,Tt=mt[4304+(ht*28|0)+(Tt<<2)>>2]|0,(nr&127|0)==127&&(nr=Rn(mt[880+(ht*28|0)+20>>2]|0,0,45)|0,Qt=zr()|0|Qt&-1040385,Tt=mt[4304+(ht*28|0)+20>>2]|0,vt=Es(nr|vt,Qt)|0,Qt=zr()|0,mt[Pt>>2]=(mt[Pt>>2]|0)+1)),st=_n(vt|0,Qt|0,45)|0,zr()|0,st=st&127;e:do if(pn(st)|0){t:do if((Eo(vt,Qt)|0)==1){if((ht|0)!=(st|0))if(Gs(st,mt[7728+(ht*28|0)>>2]|0)|0){vt=Cs(vt,Qt)|0,Ut=1,Qt=zr()|0;break}else{vt=Es(vt,Qt)|0,Ut=1,Qt=zr()|0;break}switch(Ut|0){case 5:{vt=Cs(vt,Qt)|0,Qt=zr()|0,mt[Pt>>2]=(mt[Pt>>2]|0)+5,Ut=0;break t}case 3:{vt=Es(vt,Qt)|0,Qt=zr()|0,mt[Pt>>2]=(mt[Pt>>2]|0)+1,Ut=0;break t}default:return zt=0,nr=0,$n(zt|0),nr|0}}else Ut=0;while(!1);if((Tt|0)>0){Mt=0;do vt=gA(vt,Qt)|0,Qt=zr()|0,Mt=Mt+1|0;while((Mt|0)!=(Tt|0))}if((ht|0)!=(st|0)){if(!(Hn(st)|0)){if((Ut|0)!=0|(Eo(vt,Qt)|0)!=5)break;mt[Pt>>2]=(mt[Pt>>2]|0)+1;break}switch(ct&127){case 8:case 118:break e}(Eo(vt,Qt)|0)!=3&&(mt[Pt>>2]=(mt[Pt>>2]|0)+1)}}else if((Tt|0)>0){Mt=0;do vt=Es(vt,Qt)|0,Qt=zr()|0,Mt=Mt+1|0;while((Mt|0)!=(Tt|0))}while(!1);return mt[Pt>>2]=((mt[Pt>>2]|0)+Tt|0)%6|0,zt=Qt,nr=vt,$n(zt|0),nr|0}function br(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0;if(Ft=Mr,Mr=Mr+16|0,bt=Ft,!Tt)return bt=Pt,mt[bt>>2]=vt,mt[bt+4>>2]=Qt,bt=0,Mr=Ft,bt|0;mt[bt>>2]=0;e:do if(bo(vt,Qt)|0)vt=1;else{if(Ut=(Tt|0)>0,Ut){Mt=0,Ct=vt;do{if(Ct=Cr(Ct,Qt,4,bt)|0,Qt=zr()|0,(Ct|0)==0&(Qt|0)==0){vt=2;break e}if(Mt=Mt+1|0,bo(Ct,Qt)|0){vt=1;break e}}while((Mt|0)<(Tt|0));if(ht=Pt,mt[ht>>2]=Ct,mt[ht+4>>2]=Qt,ht=Tt+-1|0,Ut){Ut=0,st=1,Mt=Ct,vt=Qt;do{if(Mt=Cr(Mt,vt,2,bt)|0,vt=zr()|0,(Mt|0)==0&(vt|0)==0){vt=2;break e}if(ct=Pt+(st<<3)|0,mt[ct>>2]=Mt,mt[ct+4>>2]=vt,st=st+1|0,bo(Mt,vt)|0){vt=1;break e}Ut=Ut+1|0}while((Ut|0)<(Tt|0));ct=0,Ut=st;do{if(Mt=Cr(Mt,vt,3,bt)|0,vt=zr()|0,(Mt|0)==0&(vt|0)==0){vt=2;break e}if(st=Pt+(Ut<<3)|0,mt[st>>2]=Mt,mt[st+4>>2]=vt,Ut=Ut+1|0,bo(Mt,vt)|0){vt=1;break e}ct=ct+1|0}while((ct|0)<(Tt|0));st=0;do{if(Mt=Cr(Mt,vt,1,bt)|0,vt=zr()|0,(Mt|0)==0&(vt|0)==0){vt=2;break e}if(ct=Pt+(Ut<<3)|0,mt[ct>>2]=Mt,mt[ct+4>>2]=vt,Ut=Ut+1|0,bo(Mt,vt)|0){vt=1;break e}st=st+1|0}while((st|0)<(Tt|0));st=0;do{if(Mt=Cr(Mt,vt,5,bt)|0,vt=zr()|0,(Mt|0)==0&(vt|0)==0){vt=2;break e}if(ct=Pt+(Ut<<3)|0,mt[ct>>2]=Mt,mt[ct+4>>2]=vt,Ut=Ut+1|0,bo(Mt,vt)|0){vt=1;break e}st=st+1|0}while((st|0)<(Tt|0));st=0;do{if(Mt=Cr(Mt,vt,4,bt)|0,vt=zr()|0,(Mt|0)==0&(vt|0)==0){vt=2;break e}if(ct=Pt+(Ut<<3)|0,mt[ct>>2]=Mt,mt[ct+4>>2]=vt,Ut=Ut+1|0,bo(Mt,vt)|0){vt=1;break e}st=st+1|0}while((st|0)<(Tt|0));for(st=0;;){if(Mt=Cr(Mt,vt,6,bt)|0,vt=zr()|0,(Mt|0)==0&(vt|0)==0){vt=2;break e}if((st|0)!=(ht|0))if(ct=Pt+(Ut<<3)|0,mt[ct>>2]=Mt,mt[ct+4>>2]=vt,!(bo(Mt,vt)|0))Ut=Ut+1|0;else{vt=1;break e}if(st=st+1|0,(st|0)>=(Tt|0)){st=Ct,Ut=Qt;break}}}else st=Ct,Mt=Ct,Ut=Qt,vt=Qt}else st=Pt,mt[st>>2]=vt,mt[st+4>>2]=Qt,st=vt,Mt=vt,Ut=Qt,vt=Qt;vt=((st|0)!=(Mt|0)|(Ut|0)!=(vt|0))&1}while(!1);return bt=vt,Mr=Ft,bt|0}function Vr(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;if(Ut=Mr,Mr=Mr+48|0,Mt=Ut+8|0,Pt=Ut,ct=vt,st=mt[ct+4>>2]|0,Tt=Pt,mt[Tt>>2]=mt[ct>>2],mt[Tt+4>>2]=st,Ys(Pt,Mt),Mt=EA(Mt,Qt)|0,Qt=mt[Pt>>2]|0,Pt=mt[vt+8>>2]|0,(Pt|0)<=0)return ct=Qt,st=(Mt|0)<(ct|0),ct=st?ct:Mt,ct=ct+12|0,Mr=Ut,ct|0;Tt=mt[vt+12>>2]|0,vt=0;do Qt=(mt[Tt+(vt<<3)>>2]|0)+Qt|0,vt=vt+1|0;while((vt|0)<(Pt|0));return ct=(Mt|0)<(Qt|0),ct=ct?Qt:Mt,ct=ct+12|0,Mr=Ut,ct|0}function Gr(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;if(ct=Mr,Mr=Mr+48|0,Pt=ct+8|0,Mt=ct,!(Cn(vt,Qt,Tt)|0)){Mr=ct;return}if(ht=vt,Ut=mt[ht+4>>2]|0,st=Mt,mt[st>>2]=mt[ht>>2],mt[st+4>>2]=Ut,Ys(Mt,Pt),st=EA(Pt,Qt)|0,Qt=mt[Mt>>2]|0,Ut=mt[vt+8>>2]|0,(Ut|0)>0){Mt=mt[vt+12>>2]|0,Pt=0;do Qt=(mt[Mt+(Pt<<3)>>2]|0)+Qt|0,Pt=Pt+1|0;while((Pt|0)!=(Ut|0))}if(Qt=(st|0)<(Qt|0)?Qt:st,(Qt|0)<=-12){Mr=ct;return}ht=Qt+11|0,ws(Tt|0,0,(((ht|0)>0?ht:0)<<3)+8|0)|0,Mr=ct}function Cn(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0,sn=0,Fn=0,Kn=0,so=0,vo=0,io=0,Qo=0,Ho=0,zn=0;if(zn=Mr,Mr=Mr+112|0,vo=zn+80|0,ht=zn+72|0,io=zn,Qo=zn+56|0,Ct=vt+8|0,Ho=xa((mt[Ct>>2]<<5)+32|0)|0,Ho||_i(22848,22448,800,22456),Zo(vt,Ho),Ut=vt,Pt=mt[Ut+4>>2]|0,ct=ht,mt[ct>>2]=mt[Ut>>2],mt[ct+4>>2]=Pt,Ys(ht,vo),ct=EA(vo,Qt)|0,Pt=mt[ht>>2]|0,Ut=mt[Ct>>2]|0,(Ut|0)>0){st=mt[vt+12>>2]|0,Mt=0;do Pt=(mt[st+(Mt<<3)>>2]|0)+Pt|0,Mt=Mt+1|0;while((Mt|0)!=(Ut|0))}if(ct=(ct|0)<(Pt|0)?Pt:ct,so=ct+12|0,Mt=Fs(so,8)|0,bt=Fs(so,8)|0,mt[vo>>2]=0,Fn=vt,Kn=mt[Fn+4>>2]|0,Pt=ht,mt[Pt>>2]=mt[Fn>>2],mt[Pt+4>>2]=Kn,Pt=bn(ht,so,Qt,vo,Mt,bt)|0,Pt|0)return Xn(Mt),Xn(bt),Xn(Ho),Ho=Pt,Mr=zn,Ho|0;e:do if((mt[Ct>>2]|0)>0){for(Ut=vt+12|0,Pt=0;st=bn((mt[Ut>>2]|0)+(Pt<<3)|0,so,Qt,vo,Mt,bt)|0,Pt=Pt+1|0,!(st|0);)if((Pt|0)>=(mt[Ct>>2]|0))break e;return Xn(Mt),Xn(bt),Xn(Ho),Ho=st,Mr=zn,Ho|0}while(!1);(ct|0)>-12&&ws(bt|0,0,((so|0)>1?so:1)<<3|0)|0;e:do if((mt[vo>>2]|0)>0){Kn=((so|0)<0)<<31>>31,Dr=Mt,gn=bt,mn=Mt,yn=Mt,sn=bt,Fn=Mt,Pt=Mt,kr=Mt,Kr=bt,qr=bt,en=bt,Mt=bt;t:for(;;){for(Br=mt[vo>>2]|0,nr=0,dr=0,Ut=0;;){st=io,ct=st+56|0;do mt[st>>2]=0,st=st+4|0;while((st|0)<(ct|0));if(Qt=Dr+(nr<<3)|0,ht=mt[Qt>>2]|0,Qt=mt[Qt+4>>2]|0,oA(ht,Qt,1,io,0)|0){st=io,ct=st+56|0;do mt[st>>2]=0,st=st+4|0;while((st|0)<(ct|0));st=Fs(7,4)|0,st|0&&(Vo(ht,Qt,1,io,st,7,0),Xn(st))}zt=0;do{Ft=io+(zt<<3)|0,bt=mt[Ft>>2]|0,Ft=mt[Ft+4>>2]|0;r:do if(!((bt|0)==0&(Ft|0)==0)){if(ht=bs(bt|0,Ft|0,so|0,Kn|0)|0,zr()|0,st=Tt+(ht<<3)|0,ct=st,Qt=mt[ct>>2]|0,ct=mt[ct+4>>2]|0,!((Qt|0)==0&(ct|0)==0))for(Ct=0;;){if((Ct|0)>(so|0))break t;if((Qt|0)==(bt|0)&(ct|0)==(Ft|0))break r;if(ht=(ht+1|0)%(so|0)|0,st=Tt+(ht<<3)|0,ct=st,Qt=mt[ct>>2]|0,ct=mt[ct+4>>2]|0,(Qt|0)==0&(ct|0)==0)break;Ct=Ct+1|0}(bt|0)==0&(Ft|0)==0||(nA(bt,Ft,Qo),Ls(vt,Ho,Qo)|0&&(Ct=st,mt[Ct>>2]=bt,mt[Ct+4>>2]=Ft,Ct=gn+(Ut<<3)|0,mt[Ct>>2]=bt,mt[Ct+4>>2]=Ft,Ut=Ut+1|0))}while(!1);zt=zt+1|0}while(zt>>>0<7);if(dr=dr+1|0,(dr|0)>=(Br|0))break;nr=nr+1|0}if((Br|0)>0&&ws(mn|0,0,Br<<3|0)|0,mt[vo>>2]=Ut,(Ut|0)>0)bt=Mt,Ft=en,zt=Fn,nr=qr,dr=Kr,Br=gn,Mt=kr,en=Pt,qr=yn,Kr=mn,kr=bt,Pt=Ft,Fn=sn,sn=zt,yn=nr,mn=dr,gn=Dr,Dr=Br;else break e}return Xn(yn),Xn(sn),Xn(Ho),Ho=-1,Mr=zn,Ho|0}else Pt=bt;while(!1);return Xn(Ho),Xn(Mt),Xn(Pt),Ho=0,Mr=zn,Ho|0}function bn(vt,Qt,Tt,Pt,Mt,Ut){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0,Ut=Ut|0;var st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0,sn=0,Fn=0,Kn=0,so=0,vo=0;if(Kn=Mr,Mr=Mr+48|0,mn=Kn+32|0,yn=Kn+16|0,sn=Kn,st=mt[vt>>2]|0,(st|0)<=0)return Fn=0,Mr=Kn,Fn|0;Kr=vt+4|0,qr=mn+8|0,en=yn+8|0,Dr=sn+8|0,gn=((Qt|0)<0)<<31>>31,kr=0;e:for(;;){ct=mt[Kr>>2]|0,dr=ct+(kr<<4)|0,mt[mn>>2]=mt[dr>>2],mt[mn+4>>2]=mt[dr+4>>2],mt[mn+8>>2]=mt[dr+8>>2],mt[mn+12>>2]=mt[dr+12>>2],(kr|0)==(st+-1|0)?(mt[yn>>2]=mt[ct>>2],mt[yn+4>>2]=mt[ct+4>>2],mt[yn+8>>2]=mt[ct+8>>2],mt[yn+12>>2]=mt[ct+12>>2]):(dr=ct+(kr+1<<4)|0,mt[yn>>2]=mt[dr>>2],mt[yn+4>>2]=mt[dr+4>>2],mt[yn+8>>2]=mt[dr+8>>2],mt[yn+12>>2]=mt[dr+12>>2]),dr=No(mn,yn,Tt)|0;t:do if((dr|0)>0){Br=+(dr|0),nr=0;r:for(;;){vo=+(dr-nr|0),so=+(nr|0),gr[sn>>3]=+gr[mn>>3]*vo/Br+ +gr[yn>>3]*so/Br,gr[Dr>>3]=+gr[qr>>3]*vo/Br+ +gr[en>>3]*so/Br,Ft=JA(sn,Tt)|0,zt=zr()|0,ct=bs(Ft|0,zt|0,Qt|0,gn|0)|0,zr()|0,st=Ut+(ct<<3)|0,ht=st,Ct=mt[ht>>2]|0,ht=mt[ht+4>>2]|0;n:do if((Ct|0)==0&(ht|0)==0)Fn=14;else for(bt=0;;){if((bt|0)>(Qt|0)){st=1;break n}if((Ct|0)==(Ft|0)&(ht|0)==(zt|0)){st=7;break n}if(ct=(ct+1|0)%(Qt|0)|0,st=Ut+(ct<<3)|0,ht=st,Ct=mt[ht>>2]|0,ht=mt[ht+4>>2]|0,(Ct|0)==0&(ht|0)==0){Fn=14;break}else bt=bt+1|0}while(!1);switch((Fn|0)==14&&(Fn=0,(Ft|0)==0&(zt|0)==0?st=7:(mt[st>>2]=Ft,mt[st+4>>2]=zt,st=mt[Pt>>2]|0,bt=Mt+(st<<3)|0,mt[bt>>2]=Ft,mt[bt+4>>2]=zt,mt[Pt>>2]=st+1,st=0)),st&7){case 7:case 0:break;default:break r}if(nr=nr+1|0,(dr|0)<=(nr|0)){Fn=8;break t}}if(st|0){st=-1,Fn=20;break e}}else Fn=8;while(!1);if((Fn|0)==8&&(Fn=0),kr=kr+1|0,st=mt[vt>>2]|0,(kr|0)>=(st|0)){st=0,Fn=20;break}}return(Fn|0)==20?(Mr=Kn,st|0):0}function jn(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;if(Ct=Mr,Mr=Mr+176|0,ht=Ct,(Qt|0)<1){ho(Tt,0,0),Mr=Ct;return}st=vt,st=_n(mt[st>>2]|0,mt[st+4>>2]|0,52)|0,zr()|0,ho(Tt,(Qt|0)>6?Qt:6,st&15),st=0;do{if(Pt=vt+(st<<3)|0,ys(mt[Pt>>2]|0,mt[Pt+4>>2]|0,ht),Pt=mt[ht>>2]|0,(Pt|0)>0){ct=0;do Ut=ht+8+(ct<<4)|0,ct=ct+1|0,Pt=ht+8+(((ct|0)%(Pt|0)|0)<<4)|0,Mt=Yl(Tt,Pt,Ut)|0,Mt?Ms(Tt,Mt)|0:Xl(Tt,Ut,Pt)|0,Pt=mt[ht>>2]|0;while((ct|0)<(Pt|0))}st=st+1|0}while((st|0)!=(Qt|0));Mr=Ct}function Ko(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0;if(Ut=Mr,Mr=Mr+32|0,Pt=Ut,Mt=Ut+16|0,jn(vt,Qt,Mt),mt[Tt>>2]=0,mt[Tt+4>>2]=0,mt[Tt+8>>2]=0,vt=Tl(Mt)|0,!vt){as(Tt)|0,Ss(Mt),Mr=Ut;return}do{Qt=cu(Tt)|0;do DA(Qt,vt)|0,st=vt+16|0,mt[Pt>>2]=mt[st>>2],mt[Pt+4>>2]=mt[st+4>>2],mt[Pt+8>>2]=mt[st+8>>2],mt[Pt+12>>2]=mt[st+12>>2],Ms(Mt,vt)|0,vt=po(Mt,Pt)|0;while(vt|0);vt=Tl(Mt)|0}while(vt|0);as(Tt)|0,Ss(Mt),Mr=Ut}function pn(vt){return vt=vt|0,mt[7728+(vt*28|0)+16>>2]|0}function Hn(vt){return vt=vt|0,(vt|0)==4|(vt|0)==117|0}function Jn(vt){return vt=vt|0,mt[11152+((mt[vt>>2]|0)*216|0)+((mt[vt+4>>2]|0)*72|0)+((mt[vt+8>>2]|0)*24|0)+(mt[vt+12>>2]<<3)>>2]|0}function Go(vt){return vt=vt|0,mt[11152+((mt[vt>>2]|0)*216|0)+((mt[vt+4>>2]|0)*72|0)+((mt[vt+8>>2]|0)*24|0)+(mt[vt+12>>2]<<3)+4>>2]|0}function Wn(vt,Qt){vt=vt|0,Qt=Qt|0,vt=7728+(vt*28|0)|0,mt[Qt>>2]=mt[vt>>2],mt[Qt+4>>2]=mt[vt+4>>2],mt[Qt+8>>2]=mt[vt+8>>2],mt[Qt+12>>2]=mt[vt+12>>2]}function Vl(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0;if(Qt>>>0>20)return Qt=-1,Qt|0;do if((mt[11152+(Qt*216|0)>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+8>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+16>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+24>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+32>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+40>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+48>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+56>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+64>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+72>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+80>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+88>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+96>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+104>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+112>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+120>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+128>>2]|0)!=(vt|0))if((mt[11152+(Qt*216|0)+136>>2]|0)==(vt|0))vt=2,Tt=1,Pt=2;else{if((mt[11152+(Qt*216|0)+144>>2]|0)==(vt|0)){vt=0,Tt=2,Pt=0;break}if((mt[11152+(Qt*216|0)+152>>2]|0)==(vt|0)){vt=0,Tt=2,Pt=1;break}if((mt[11152+(Qt*216|0)+160>>2]|0)==(vt|0)){vt=0,Tt=2,Pt=2;break}if((mt[11152+(Qt*216|0)+168>>2]|0)==(vt|0)){vt=1,Tt=2,Pt=0;break}if((mt[11152+(Qt*216|0)+176>>2]|0)==(vt|0)){vt=1,Tt=2,Pt=1;break}if((mt[11152+(Qt*216|0)+184>>2]|0)==(vt|0)){vt=1,Tt=2,Pt=2;break}if((mt[11152+(Qt*216|0)+192>>2]|0)==(vt|0)){vt=2,Tt=2,Pt=0;break}if((mt[11152+(Qt*216|0)+200>>2]|0)==(vt|0)){vt=2,Tt=2,Pt=1;break}if((mt[11152+(Qt*216|0)+208>>2]|0)==(vt|0)){vt=2,Tt=2,Pt=2;break}else vt=-1;return vt|0}else vt=2,Tt=1,Pt=1;else vt=2,Tt=1,Pt=0;else vt=1,Tt=1,Pt=2;else vt=1,Tt=1,Pt=1;else vt=1,Tt=1,Pt=0;else vt=0,Tt=1,Pt=2;else vt=0,Tt=1,Pt=1;else vt=0,Tt=1,Pt=0;else vt=2,Tt=0,Pt=2;else vt=2,Tt=0,Pt=1;else vt=2,Tt=0,Pt=0;else vt=1,Tt=0,Pt=2;else vt=1,Tt=0,Pt=1;else vt=1,Tt=0,Pt=0;else vt=0,Tt=0,Pt=2;else vt=0,Tt=0,Pt=1;else vt=0,Tt=0,Pt=0;while(!1);return Qt=mt[11152+(Qt*216|0)+(Tt*72|0)+(vt*24|0)+(Pt<<3)+4>>2]|0,Qt|0}function Gs(vt,Qt){return vt=vt|0,Qt=Qt|0,(mt[7728+(vt*28|0)+20>>2]|0)==(Qt|0)?(Qt=1,Qt|0):(Qt=(mt[7728+(vt*28|0)+24>>2]|0)==(Qt|0),Qt|0)}function FA(vt,Qt){return vt=vt|0,Qt=Qt|0,mt[880+(vt*28|0)+(Qt<<2)>>2]|0}function Zs(vt,Qt){return vt=vt|0,Qt=Qt|0,(mt[880+(vt*28|0)>>2]|0)==(Qt|0)?(Qt=0,Qt|0):(mt[880+(vt*28|0)+4>>2]|0)==(Qt|0)?(Qt=1,Qt|0):(mt[880+(vt*28|0)+8>>2]|0)==(Qt|0)?(Qt=2,Qt|0):(mt[880+(vt*28|0)+12>>2]|0)==(Qt|0)?(Qt=3,Qt|0):(mt[880+(vt*28|0)+16>>2]|0)==(Qt|0)?(Qt=4,Qt|0):(mt[880+(vt*28|0)+20>>2]|0)==(Qt|0)?(Qt=5,Qt|0):((mt[880+(vt*28|0)+24>>2]|0)==(Qt|0)?6:7)|0}function co(){return 122}function Rl(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0;Qt=0;do Rn(Qt|0,0,45)|0,Pt=zr()|0|134225919,Tt=vt+(Qt<<3)|0,mt[Tt>>2]=-1,mt[Tt+4>>2]=Pt,Qt=Qt+1|0;while((Qt|0)!=122)}function As(vt){return vt=vt|0,+gr[vt+16>>3]<+gr[vt+24>>3]|0}function IA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;return Tt=+gr[Qt>>3],!(Tt>=+gr[vt+8>>3])||!(Tt<=+gr[vt>>3])?(Qt=0,Qt|0):(Pt=+gr[vt+16>>3],Tt=+gr[vt+24>>3],Mt=+gr[Qt+8>>3],Qt=Mt>=Tt,vt=Mt<=Pt&1,Pt>2]=0,Ut=Ut+4|0;while((Ut|0)<(ct|0));return Bs(Qt,Mt),Ut=Mt,ct=mt[Ut>>2]|0,Ut=mt[Ut+4>>2]|0,nA(ct,Ut,Tt),ys(ct,Ut,Pt),ht=+Do(Tt,Pt+8|0),gr[Tt>>3]=+gr[vt>>3],Ut=Tt+8|0,gr[Ut>>3]=+gr[vt+16>>3],gr[Pt>>3]=+gr[vt+8>>3],ct=Pt+8|0,gr[ct>>3]=+gr[vt+24>>3],Ct=+Do(Tt,Pt),ct=~~+kn(+(Ct*Ct/+El(+ +tn(+((+gr[Ut>>3]-+gr[ct>>3])/(+gr[Tt>>3]-+gr[Pt>>3]))),3)/(ht*(ht*2.59807621135)*.8))),Mr=st,(ct|0?ct:1)|0}function No(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;ct=Mr,Mr=Mr+288|0,Pt=ct+264|0,Mt=ct+96|0,Ut=ct,st=Ut,ht=st+96|0;do mt[st>>2]=0,st=st+4|0;while((st|0)<(ht|0));return Bs(Tt,Ut),ht=Ut,st=mt[ht>>2]|0,ht=mt[ht+4>>2]|0,nA(st,ht,Pt),ys(st,ht,Mt),Ct=+Do(Pt,Mt+8|0),ht=~~+kn(+(+Do(vt,Qt)/(Ct*2))),Mr=ct,(ht|0?ht:1)|0}function ks(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,mt[vt>>2]=Qt,mt[vt+4>>2]=Tt,mt[vt+8>>2]=Pt}function Ql(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0;Ft=Qt+8|0,mt[Ft>>2]=0,ht=+gr[vt>>3],st=+tn(+ht),Ct=+gr[vt+8>>3],ct=+tn(+Ct)/.8660254037844386,st=st+ct*.5,Tt=~~st,vt=~~ct,st=st-+(Tt|0),ct=ct-+(vt|0);do if(st<.5)if(st<.3333333333333333)if(mt[Qt>>2]=Tt,ct<(st+1)*.5){mt[Qt+4>>2]=vt;break}else{vt=vt+1|0,mt[Qt+4>>2]=vt;break}else if(zt=1-st,vt=(!(ct>2]=vt,zt<=ct&ct>2]=Tt;break}else{mt[Qt>>2]=Tt;break}else{if(!(st<.6666666666666666))if(Tt=Tt+1|0,mt[Qt>>2]=Tt,ct>2]=vt;break}else{vt=vt+1|0,mt[Qt+4>>2]=vt;break}if(ct<1-st){if(mt[Qt+4>>2]=vt,st*2+-1>2]=Tt;break}}else vt=vt+1|0,mt[Qt+4>>2]=vt;Tt=Tt+1|0,mt[Qt>>2]=Tt}while(!1);do if(ht<0)if(vt&1){bt=(vt+1|0)/2|0,bt=QA(Tt|0,((Tt|0)<0)<<31>>31|0,bt|0,((bt|0)<0)<<31>>31|0)|0,Tt=~~(+(Tt|0)-((+(bt>>>0)+4294967296*+(zr()|0))*2+1)),mt[Qt>>2]=Tt;break}else{bt=(vt|0)/2|0,bt=QA(Tt|0,((Tt|0)<0)<<31>>31|0,bt|0,((bt|0)<0)<<31>>31|0)|0,Tt=~~(+(Tt|0)-(+(bt>>>0)+4294967296*+(zr()|0))*2),mt[Qt>>2]=Tt;break}while(!1);bt=Qt+4|0,Ct<0&&(Tt=Tt-((vt<<1|1|0)/2|0)|0,mt[Qt>>2]=Tt,vt=0-vt|0,mt[bt>>2]=vt),Pt=vt-Tt|0,(Tt|0)<0?(Mt=0-Tt|0,mt[bt>>2]=Pt,mt[Ft>>2]=Mt,mt[Qt>>2]=0,vt=Pt,Tt=0):Mt=0,(vt|0)<0&&(Tt=Tt-vt|0,mt[Qt>>2]=Tt,Mt=Mt-vt|0,mt[Ft>>2]=Mt,mt[bt>>2]=0,vt=0),Ut=Tt-Mt|0,Pt=vt-Mt|0,(Mt|0)<0&&(mt[Qt>>2]=Ut,mt[bt>>2]=Pt,mt[Ft>>2]=0,vt=Pt,Tt=Ut,Mt=0),Pt=(vt|0)<(Tt|0)?vt:Tt,Pt=(Mt|0)<(Pt|0)?Mt:Pt,!((Pt|0)<=0)&&(mt[Qt>>2]=Tt-Pt,mt[bt>>2]=vt-Pt,mt[Ft>>2]=Mt-Pt)}function Ro(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0;Qt=mt[vt>>2]|0,st=vt+4|0,Tt=mt[st>>2]|0,(Qt|0)<0&&(Tt=Tt-Qt|0,mt[st>>2]=Tt,Ut=vt+8|0,mt[Ut>>2]=(mt[Ut>>2]|0)-Qt,mt[vt>>2]=0,Qt=0),(Tt|0)<0?(Qt=Qt-Tt|0,mt[vt>>2]=Qt,Ut=vt+8|0,Mt=(mt[Ut>>2]|0)-Tt|0,mt[Ut>>2]=Mt,mt[st>>2]=0,Tt=0):(Mt=vt+8|0,Ut=Mt,Mt=mt[Mt>>2]|0),(Mt|0)<0&&(Qt=Qt-Mt|0,mt[vt>>2]=Qt,Tt=Tt-Mt|0,mt[st>>2]=Tt,mt[Ut>>2]=0,Mt=0),Pt=(Tt|0)<(Qt|0)?Tt:Qt,Pt=(Mt|0)<(Pt|0)?Mt:Pt,!((Pt|0)<=0)&&(mt[vt>>2]=Qt-Pt,mt[st>>2]=Tt-Pt,mt[Ut>>2]=Mt-Pt)}function Us(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0;Pt=mt[vt+8>>2]|0,Tt=+((mt[vt+4>>2]|0)-Pt|0),gr[Qt>>3]=+((mt[vt>>2]|0)-Pt|0)-Tt*.5,gr[Qt+8>>3]=Tt*.8660254037844386}function Wo(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,mt[Tt>>2]=(mt[Qt>>2]|0)+(mt[vt>>2]|0),mt[Tt+4>>2]=(mt[Qt+4>>2]|0)+(mt[vt+4>>2]|0),mt[Tt+8>>2]=(mt[Qt+8>>2]|0)+(mt[vt+8>>2]|0)}function tA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,mt[Tt>>2]=(mt[vt>>2]|0)-(mt[Qt>>2]|0),mt[Tt+4>>2]=(mt[vt+4>>2]|0)-(mt[Qt+4>>2]|0),mt[Tt+8>>2]=(mt[vt+8>>2]|0)-(mt[Qt+8>>2]|0)}function ko(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0;Tt=Io(mt[vt>>2]|0,Qt)|0,mt[vt>>2]=Tt,Tt=vt+4|0,Pt=Io(mt[Tt>>2]|0,Qt)|0,mt[Tt>>2]=Pt,vt=vt+8|0,Qt=Io(mt[vt>>2]|0,Qt)|0,mt[vt>>2]=Qt}function $l(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;st=mt[vt>>2]|0,ct=(st|0)<0,Pt=(mt[vt+4>>2]|0)-(ct?st:0)|0,Ut=(Pt|0)<0,Mt=(Ut?0-Pt|0:0)+((mt[vt+8>>2]|0)-(ct?st:0))|0,Tt=(Mt|0)<0,vt=Tt?0:Mt,Qt=(Ut?0:Pt)-(Tt?Mt:0)|0,Mt=(ct?0:st)-(Ut?Pt:0)-(Tt?Mt:0)|0,Tt=(Qt|0)<(Mt|0)?Qt:Mt,Tt=(vt|0)<(Tt|0)?vt:Tt,Pt=(Tt|0)>0,vt=vt-(Pt?Tt:0)|0,Qt=Qt-(Pt?Tt:0)|0;e:do switch(Mt-(Pt?Tt:0)|0){case 0:switch(Qt|0){case 0:return ct=vt|0?(vt|0)==1?1:7:0,ct|0;case 1:return ct=vt|0?(vt|0)==1?3:7:2,ct|0;default:break e}case 1:switch(Qt|0){case 0:return ct=vt|0?(vt|0)==1?5:7:4,ct|0;case 1:{if(!vt)vt=6;else break e;return vt|0}default:break e}}while(!1);return ct=7,ct|0}function Xs(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;st=vt+8|0,Tt=mt[st>>2]|0,Qt=(mt[vt>>2]|0)-Tt|0,ct=vt+4|0,Tt=(mt[ct>>2]|0)-Tt|0,Pt=Ml(+((Qt*3|0)-Tt|0)/7)|0,mt[vt>>2]=Pt,Qt=Ml(+((Tt<<1)+Qt|0)/7)|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=Qt-Pt|0,(Pt|0)<0?(Ut=0-Pt|0,mt[ct>>2]=Tt,mt[st>>2]=Ut,mt[vt>>2]=0,Qt=Tt,Pt=0,Tt=Ut):Tt=0,(Qt|0)<0&&(Pt=Pt-Qt|0,mt[vt>>2]=Pt,Tt=Tt-Qt|0,mt[st>>2]=Tt,mt[ct>>2]=0,Qt=0),Ut=Pt-Tt|0,Mt=Qt-Tt|0,(Tt|0)<0?(mt[vt>>2]=Ut,mt[ct>>2]=Mt,mt[st>>2]=0,Qt=Mt,Mt=Ut,Tt=0):Mt=Pt,Pt=(Qt|0)<(Mt|0)?Qt:Mt,Pt=(Tt|0)<(Pt|0)?Tt:Pt,!((Pt|0)<=0)&&(mt[vt>>2]=Mt-Pt,mt[ct>>2]=Qt-Pt,mt[st>>2]=Tt-Pt)}function Uo(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;st=vt+8|0,Tt=mt[st>>2]|0,Qt=(mt[vt>>2]|0)-Tt|0,ct=vt+4|0,Tt=(mt[ct>>2]|0)-Tt|0,Pt=Ml(+((Qt<<1)+Tt|0)/7)|0,mt[vt>>2]=Pt,Qt=Ml(+((Tt*3|0)-Qt|0)/7)|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=Qt-Pt|0,(Pt|0)<0?(Ut=0-Pt|0,mt[ct>>2]=Tt,mt[st>>2]=Ut,mt[vt>>2]=0,Qt=Tt,Pt=0,Tt=Ut):Tt=0,(Qt|0)<0&&(Pt=Pt-Qt|0,mt[vt>>2]=Pt,Tt=Tt-Qt|0,mt[st>>2]=Tt,mt[ct>>2]=0,Qt=0),Ut=Pt-Tt|0,Mt=Qt-Tt|0,(Tt|0)<0?(mt[vt>>2]=Ut,mt[ct>>2]=Mt,mt[st>>2]=0,Qt=Mt,Mt=Ut,Tt=0):Mt=Pt,Pt=(Qt|0)<(Mt|0)?Qt:Mt,Pt=(Tt|0)<(Pt|0)?Tt:Pt,!((Pt|0)<=0)&&(mt[vt>>2]=Mt-Pt,mt[ct>>2]=Qt-Pt,mt[st>>2]=Tt-Pt)}function $o(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Qt=mt[vt>>2]|0,st=vt+4|0,Tt=mt[st>>2]|0,ct=vt+8|0,Pt=mt[ct>>2]|0,Mt=Tt+(Qt*3|0)|0,mt[vt>>2]=Mt,Tt=Pt+(Tt*3|0)|0,mt[st>>2]=Tt,Qt=(Pt*3|0)+Qt|0,mt[ct>>2]=Qt,Pt=Tt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[st>>2]=Pt,mt[ct>>2]=Qt,mt[vt>>2]=0,Tt=Pt,Pt=0):Pt=Mt,(Tt|0)<0&&(Pt=Pt-Tt|0,mt[vt>>2]=Pt,Qt=Qt-Tt|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=0),Ut=Pt-Qt|0,Mt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[st>>2]=Mt,mt[ct>>2]=0,Pt=Ut,Qt=0):Mt=Tt,Tt=(Mt|0)<(Pt|0)?Mt:Pt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Pt-Tt,mt[st>>2]=Mt-Tt,mt[ct>>2]=Qt-Tt)}function CA(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Mt=mt[vt>>2]|0,st=vt+4|0,Qt=mt[st>>2]|0,ct=vt+8|0,Tt=mt[ct>>2]|0,Pt=(Qt*3|0)+Mt|0,Mt=Tt+(Mt*3|0)|0,mt[vt>>2]=Mt,mt[st>>2]=Pt,Qt=(Tt*3|0)+Qt|0,mt[ct>>2]=Qt,Tt=Pt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[st>>2]=Tt,mt[ct>>2]=Qt,mt[vt>>2]=0,Mt=0):Tt=Pt,(Tt|0)<0&&(Mt=Mt-Tt|0,mt[vt>>2]=Mt,Qt=Qt-Tt|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=0),Ut=Mt-Qt|0,Pt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[st>>2]=Pt,mt[ct>>2]=0,Mt=Ut,Qt=0):Pt=Tt,Tt=(Pt|0)<(Mt|0)?Pt:Mt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Mt-Tt,mt[st>>2]=Pt-Tt,mt[ct>>2]=Qt-Tt)}function ou(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;(Qt+-1|0)>>>0>=6||(Mt=(mt[15472+(Qt*12|0)>>2]|0)+(mt[vt>>2]|0)|0,mt[vt>>2]=Mt,ct=vt+4|0,Pt=(mt[15472+(Qt*12|0)+4>>2]|0)+(mt[ct>>2]|0)|0,mt[ct>>2]=Pt,st=vt+8|0,Qt=(mt[15472+(Qt*12|0)+8>>2]|0)+(mt[st>>2]|0)|0,mt[st>>2]=Qt,Tt=Pt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[ct>>2]=Tt,mt[st>>2]=Qt,mt[vt>>2]=0,Pt=0):(Tt=Pt,Pt=Mt),(Tt|0)<0&&(Pt=Pt-Tt|0,mt[vt>>2]=Pt,Qt=Qt-Tt|0,mt[st>>2]=Qt,mt[ct>>2]=0,Tt=0),Ut=Pt-Qt|0,Mt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[ct>>2]=Mt,mt[st>>2]=0,Pt=Ut,Qt=0):Mt=Tt,Tt=(Mt|0)<(Pt|0)?Mt:Pt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Pt-Tt,mt[ct>>2]=Mt-Tt,mt[st>>2]=Qt-Tt))}function bA(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Mt=mt[vt>>2]|0,st=vt+4|0,Qt=mt[st>>2]|0,ct=vt+8|0,Tt=mt[ct>>2]|0,Pt=Qt+Mt|0,Mt=Tt+Mt|0,mt[vt>>2]=Mt,mt[st>>2]=Pt,Qt=Tt+Qt|0,mt[ct>>2]=Qt,Tt=Pt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[st>>2]=Tt,mt[ct>>2]=Qt,mt[vt>>2]=0,Pt=0):(Tt=Pt,Pt=Mt),(Tt|0)<0&&(Pt=Pt-Tt|0,mt[vt>>2]=Pt,Qt=Qt-Tt|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=0),Ut=Pt-Qt|0,Mt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[st>>2]=Mt,mt[ct>>2]=0,Pt=Ut,Qt=0):Mt=Tt,Tt=(Mt|0)<(Pt|0)?Mt:Pt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Pt-Tt,mt[st>>2]=Mt-Tt,mt[ct>>2]=Qt-Tt)}function xl(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Qt=mt[vt>>2]|0,st=vt+4|0,Pt=mt[st>>2]|0,ct=vt+8|0,Tt=mt[ct>>2]|0,Mt=Pt+Qt|0,mt[vt>>2]=Mt,Pt=Tt+Pt|0,mt[st>>2]=Pt,Qt=Tt+Qt|0,mt[ct>>2]=Qt,Tt=Pt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[st>>2]=Tt,mt[ct>>2]=Qt,mt[vt>>2]=0,Pt=0):(Tt=Pt,Pt=Mt),(Tt|0)<0&&(Pt=Pt-Tt|0,mt[vt>>2]=Pt,Qt=Qt-Tt|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=0),Ut=Pt-Qt|0,Mt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[st>>2]=Mt,mt[ct>>2]=0,Pt=Ut,Qt=0):Mt=Tt,Tt=(Mt|0)<(Pt|0)?Mt:Pt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Pt-Tt,mt[st>>2]=Mt-Tt,mt[ct>>2]=Qt-Tt)}function OA(vt){switch(vt=vt|0,vt|0){case 1:{vt=5;break}case 5:{vt=4;break}case 4:{vt=6;break}case 6:{vt=2;break}case 2:{vt=3;break}case 3:{vt=1;break}}return vt|0}function xo(vt){switch(vt=vt|0,vt|0){case 1:{vt=3;break}case 3:{vt=2;break}case 2:{vt=6;break}case 6:{vt=4;break}case 4:{vt=5;break}case 5:{vt=1;break}}return vt|0}function to(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Qt=mt[vt>>2]|0,st=vt+4|0,Tt=mt[st>>2]|0,ct=vt+8|0,Pt=mt[ct>>2]|0,Mt=Tt+(Qt<<1)|0,mt[vt>>2]=Mt,Tt=Pt+(Tt<<1)|0,mt[st>>2]=Tt,Qt=(Pt<<1)+Qt|0,mt[ct>>2]=Qt,Pt=Tt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[st>>2]=Pt,mt[ct>>2]=Qt,mt[vt>>2]=0,Tt=Pt,Pt=0):Pt=Mt,(Tt|0)<0&&(Pt=Pt-Tt|0,mt[vt>>2]=Pt,Qt=Qt-Tt|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=0),Ut=Pt-Qt|0,Mt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[st>>2]=Mt,mt[ct>>2]=0,Pt=Ut,Qt=0):Mt=Tt,Tt=(Mt|0)<(Pt|0)?Mt:Pt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Pt-Tt,mt[st>>2]=Mt-Tt,mt[ct>>2]=Qt-Tt)}function ps(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Mt=mt[vt>>2]|0,st=vt+4|0,Qt=mt[st>>2]|0,ct=vt+8|0,Tt=mt[ct>>2]|0,Pt=(Qt<<1)+Mt|0,Mt=Tt+(Mt<<1)|0,mt[vt>>2]=Mt,mt[st>>2]=Pt,Qt=(Tt<<1)+Qt|0,mt[ct>>2]=Qt,Tt=Pt-Mt|0,(Mt|0)<0?(Qt=Qt-Mt|0,mt[st>>2]=Tt,mt[ct>>2]=Qt,mt[vt>>2]=0,Mt=0):Tt=Pt,(Tt|0)<0&&(Mt=Mt-Tt|0,mt[vt>>2]=Mt,Qt=Qt-Tt|0,mt[ct>>2]=Qt,mt[st>>2]=0,Tt=0),Ut=Mt-Qt|0,Pt=Tt-Qt|0,(Qt|0)<0?(mt[vt>>2]=Ut,mt[st>>2]=Pt,mt[ct>>2]=0,Mt=Ut,Qt=0):Pt=Tt,Tt=(Pt|0)<(Mt|0)?Pt:Mt,Tt=(Qt|0)<(Tt|0)?Qt:Tt,!((Tt|0)<=0)&&(mt[vt>>2]=Mt-Tt,mt[st>>2]=Pt-Tt,mt[ct>>2]=Qt-Tt)}function wA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;return st=(mt[vt>>2]|0)-(mt[Qt>>2]|0)|0,ct=(st|0)<0,Pt=(mt[vt+4>>2]|0)-(mt[Qt+4>>2]|0)-(ct?st:0)|0,Ut=(Pt|0)<0,Mt=(ct?0-st|0:0)+(mt[vt+8>>2]|0)-(mt[Qt+8>>2]|0)+(Ut?0-Pt|0:0)|0,vt=(Mt|0)<0,Qt=vt?0:Mt,Tt=(Ut?0:Pt)-(vt?Mt:0)|0,Mt=(ct?0:st)-(Ut?Pt:0)-(vt?Mt:0)|0,vt=(Tt|0)<(Mt|0)?Tt:Mt,vt=(Qt|0)<(vt|0)?Qt:vt,Pt=(vt|0)>0,Qt=Qt-(Pt?vt:0)|0,Tt=Tt-(Pt?vt:0)|0,vt=Mt-(Pt?vt:0)|0,vt=(vt|0)>-1?vt:0-vt|0,Tt=(Tt|0)>-1?Tt:0-Tt|0,Qt=(Qt|0)>-1?Qt:0-Qt|0,Qt=(Tt|0)>(Qt|0)?Tt:Qt,((vt|0)>(Qt|0)?vt:Qt)|0}function cA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;Tt=mt[vt+8>>2]|0,mt[Qt>>2]=(mt[vt>>2]|0)-Tt,mt[Qt+4>>2]=(mt[vt+4>>2]|0)-Tt}function Dl(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Pt=mt[vt>>2]|0,mt[Qt>>2]=Pt,vt=mt[vt+4>>2]|0,st=Qt+4|0,mt[st>>2]=vt,ct=Qt+8|0,mt[ct>>2]=0,Tt=vt-Pt|0,(Pt|0)<0?(vt=0-Pt|0,mt[st>>2]=Tt,mt[ct>>2]=vt,mt[Qt>>2]=0,Pt=0):(Tt=vt,vt=0),(Tt|0)<0&&(Pt=Pt-Tt|0,mt[Qt>>2]=Pt,vt=vt-Tt|0,mt[ct>>2]=vt,mt[st>>2]=0,Tt=0),Ut=Pt-vt|0,Mt=Tt-vt|0,(vt|0)<0?(mt[Qt>>2]=Ut,mt[st>>2]=Mt,mt[ct>>2]=0,Tt=Mt,Mt=Ut,vt=0):Mt=Pt,Pt=(Tt|0)<(Mt|0)?Tt:Mt,Pt=(vt|0)<(Pt|0)?vt:Pt,!((Pt|0)<=0)&&(mt[Qt>>2]=Mt-Pt,mt[st>>2]=Tt-Pt,mt[ct>>2]=vt-Pt)}function Bo(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0;Qt=vt+8|0,Mt=mt[Qt>>2]|0,Tt=Mt-(mt[vt>>2]|0)|0,mt[vt>>2]=Tt,Pt=vt+4|0,vt=(mt[Pt>>2]|0)-Mt|0,mt[Pt>>2]=vt,mt[Qt>>2]=0-(vt+Tt)}function Pn(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Tt=mt[vt>>2]|0,Qt=0-Tt|0,mt[vt>>2]=Qt,st=vt+8|0,mt[st>>2]=0,ct=vt+4|0,Pt=mt[ct>>2]|0,Mt=Pt+Tt|0,(Tt|0)>0?(mt[ct>>2]=Mt,mt[st>>2]=Tt,mt[vt>>2]=0,Qt=0,Pt=Mt):Tt=0,(Pt|0)<0?(Ut=Qt-Pt|0,mt[vt>>2]=Ut,Tt=Tt-Pt|0,mt[st>>2]=Tt,mt[ct>>2]=0,Mt=Ut-Tt|0,Qt=0-Tt|0,(Tt|0)<0?(mt[vt>>2]=Mt,mt[ct>>2]=Qt,mt[st>>2]=0,Pt=Qt,Tt=0):(Pt=0,Mt=Ut)):Mt=Qt,Qt=(Pt|0)<(Mt|0)?Pt:Mt,Qt=(Tt|0)<(Qt|0)?Tt:Qt,!((Qt|0)<=0)&&(mt[vt>>2]=Mt-Qt,mt[ct>>2]=Pt-Qt,mt[st>>2]=Tt-Qt)}function su(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;Pt=Mr,Mr=Mr+16|0,Mt=Pt,Pl(vt,Qt,Tt,Mt),Ql(Mt,Tt+4|0),Mr=Pt}function Pl(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0;if(ht=Mr,Mr=Mr+32|0,Ut=ht,Zl(vt,Ut),mt[Tt>>2]=0,Mt=+Po(15888,Ut),st=+Po(15912,Ut),st>2]=1,Mt=st),st=+Po(15936,Ut),st>2]=2,Mt=st),st=+Po(15960,Ut),st>2]=3,Mt=st),st=+Po(15984,Ut),st>2]=4,Mt=st),st=+Po(16008,Ut),st>2]=5,Mt=st),st=+Po(16032,Ut),st>2]=6,Mt=st),st=+Po(16056,Ut),st>2]=7,Mt=st),st=+Po(16080,Ut),st>2]=8,Mt=st),st=+Po(16104,Ut),st>2]=9,Mt=st),st=+Po(16128,Ut),st>2]=10,Mt=st),st=+Po(16152,Ut),st>2]=11,Mt=st),st=+Po(16176,Ut),st>2]=12,Mt=st),st=+Po(16200,Ut),st>2]=13,Mt=st),st=+Po(16224,Ut),st>2]=14,Mt=st),st=+Po(16248,Ut),st>2]=15,Mt=st),st=+Po(16272,Ut),st>2]=16,Mt=st),st=+Po(16296,Ut),st>2]=17,Mt=st),st=+Po(16320,Ut),st>2]=18,Mt=st),st=+Po(16344,Ut),st>2]=19,Mt=st),st=+xn(+(1-Mt*.5)),st<1e-16){mt[Pt>>2]=0,mt[Pt+4>>2]=0,mt[Pt+8>>2]=0,mt[Pt+12>>2]=0,Mr=ht;return}if(Tt=mt[Tt>>2]|0,Mt=+gr[16368+(Tt*24|0)>>3],Mt=+fo(Mt-+fo(+YA(15568+(Tt<<4)|0,vt))),Hs(Qt)|0?ct=+fo(Mt+-.3334731722518321):ct=Mt,Mt=+Qn(+st)/.381966011250105,(Qt|0)>0){Ut=0;do Mt=Mt*2.6457513110645907,Ut=Ut+1|0;while((Ut|0)!=(Qt|0))}st=+hn(+ct)*Mt,gr[Pt>>3]=st,ct=+vn(+ct)*Mt,gr[Pt+8>>3]=ct,Mr=ht}function ts(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0;if(Ut=+Hl(vt),Ut<1e-16){Qt=15568+(Qt<<4)|0,mt[Mt>>2]=mt[Qt>>2],mt[Mt+4>>2]=mt[Qt+4>>2],mt[Mt+8>>2]=mt[Qt+8>>2],mt[Mt+12>>2]=mt[Qt+12>>2];return}if(st=+Dn(+ +gr[vt+8>>3],+ +gr[vt>>3]),(Tt|0)>0){vt=0;do Ut=Ut/2.6457513110645907,vt=vt+1|0;while((vt|0)!=(Tt|0))}Pt?(Ut=Ut/3,Tt=(Hs(Tt)|0)==0,Ut=+Yn(+((Tt?Ut:Ut/2.6457513110645907)*.381966011250105))):(Ut=+Yn(+(Ut*.381966011250105)),Hs(Tt)|0&&(st=+fo(st+.3334731722518321))),So(15568+(Qt<<4)|0,+fo(+gr[16368+(Qt*24|0)>>3]-st),Ut,Mt)}function sA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;Pt=Mr,Mr=Mr+16|0,Mt=Pt,Us(vt+4|0,Mt),ts(Mt,mt[vt>>2]|0,Qt,0,Tt),Mr=Pt}function uA(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0,sn=0,Fn=0,Kn=0,so=0,vo=0,io=0,Qo=0,Ho=0,zn=0;if(Qo=Mr,Mr=Mr+272|0,Ut=Qo+256|0,qr=Qo+240|0,so=Qo,vo=Qo+224|0,io=Qo+208|0,en=Qo+176|0,Dr=Qo+160|0,gn=Qo+192|0,mn=Qo+144|0,yn=Qo+128|0,sn=Qo+112|0,Fn=Qo+96|0,Kn=Qo+80|0,mt[Ut>>2]=Qt,mt[qr>>2]=mt[vt>>2],mt[qr+4>>2]=mt[vt+4>>2],mt[qr+8>>2]=mt[vt+8>>2],mt[qr+12>>2]=mt[vt+12>>2],GA(qr,Ut,so),mt[Mt>>2]=0,qr=Pt+Tt+((Pt|0)==5&1)|0,(qr|0)<=(Tt|0)){Mr=Qo;return}ht=mt[Ut>>2]|0,Ct=vo+4|0,bt=en+4|0,Ft=Tt+5|0,zt=16848+(ht<<2)|0,nr=16928+(ht<<2)|0,dr=yn+8|0,Br=sn+8|0,kr=Fn+8|0,Kr=io+4|0,ct=Tt;e:for(;;){st=so+(((ct|0)%5|0)<<4)|0,mt[io>>2]=mt[st>>2],mt[io+4>>2]=mt[st+4>>2],mt[io+8>>2]=mt[st+8>>2],mt[io+12>>2]=mt[st+12>>2];do;while((yA(io,ht,0,1)|0)==2);if((ct|0)>(Tt|0)&(Hs(Qt)|0)!=0){if(mt[en>>2]=mt[io>>2],mt[en+4>>2]=mt[io+4>>2],mt[en+8>>2]=mt[io+8>>2],mt[en+12>>2]=mt[io+12>>2],Us(Ct,Dr),Pt=mt[en>>2]|0,Ut=mt[17008+(Pt*80|0)+(mt[vo>>2]<<2)>>2]|0,mt[en>>2]=mt[18608+(Pt*80|0)+(Ut*20|0)>>2],st=mt[18608+(Pt*80|0)+(Ut*20|0)+16>>2]|0,(st|0)>0){vt=0;do bA(bt),vt=vt+1|0;while((vt|0)<(st|0))}switch(st=18608+(Pt*80|0)+(Ut*20|0)+4|0,mt[gn>>2]=mt[st>>2],mt[gn+4>>2]=mt[st+4>>2],mt[gn+8>>2]=mt[st+8>>2],ko(gn,(mt[zt>>2]|0)*3|0),Wo(bt,gn,bt),Ro(bt),Us(bt,mn),Ho=+(mt[nr>>2]|0),gr[yn>>3]=Ho*3,gr[dr>>3]=0,zn=Ho*-1.5,gr[sn>>3]=zn,gr[Br>>3]=Ho*2.598076211353316,gr[Fn>>3]=zn,gr[kr>>3]=Ho*-2.598076211353316,mt[17008+((mt[en>>2]|0)*80|0)+(mt[io>>2]<<2)>>2]|0){case 1:{vt=sn,Pt=yn;break}case 3:{vt=Fn,Pt=sn;break}case 2:{vt=yn,Pt=Fn;break}default:{vt=12;break e}}Vs(Dr,mn,Pt,vt,Kn),ts(Kn,mt[en>>2]|0,ht,1,Mt+8+(mt[Mt>>2]<<4)|0),mt[Mt>>2]=(mt[Mt>>2]|0)+1}if((ct|0)<(Ft|0)&&(Us(Kr,en),ts(en,mt[io>>2]|0,ht,1,Mt+8+(mt[Mt>>2]<<4)|0),mt[Mt>>2]=(mt[Mt>>2]|0)+1),mt[vo>>2]=mt[io>>2],mt[vo+4>>2]=mt[io+4>>2],mt[vo+8>>2]=mt[io+8>>2],mt[vo+12>>2]=mt[io+12>>2],ct=ct+1|0,(ct|0)>=(qr|0)){vt=3;break}}if((vt|0)==3){Mr=Qo;return}else(vt|0)==12&&_i(22474,22521,581,22531)}function GA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;ht=Mr,Mr=Mr+128|0,Pt=ht+64|0,Mt=ht,Ut=Pt,st=20208,ct=Ut+60|0;do mt[Ut>>2]=mt[st>>2],Ut=Ut+4|0,st=st+4|0;while((Ut|0)<(ct|0));Ut=Mt,st=20272,ct=Ut+60|0;do mt[Ut>>2]=mt[st>>2],Ut=Ut+4|0,st=st+4|0;while((Ut|0)<(ct|0));ct=(Hs(mt[Qt>>2]|0)|0)==0,Pt=ct?Pt:Mt,Mt=vt+4|0,to(Mt),ps(Mt),Hs(mt[Qt>>2]|0)|0&&(CA(Mt),mt[Qt>>2]=(mt[Qt>>2]|0)+1),mt[Tt>>2]=mt[vt>>2],Qt=Tt+4|0,Wo(Mt,Pt,Qt),Ro(Qt),mt[Tt+16>>2]=mt[vt>>2],Qt=Tt+20|0,Wo(Mt,Pt+12|0,Qt),Ro(Qt),mt[Tt+32>>2]=mt[vt>>2],Qt=Tt+36|0,Wo(Mt,Pt+24|0,Qt),Ro(Qt),mt[Tt+48>>2]=mt[vt>>2],Qt=Tt+52|0,Wo(Mt,Pt+36|0,Qt),Ro(Qt),mt[Tt+64>>2]=mt[vt>>2],Tt=Tt+68|0,Wo(Mt,Pt+48|0,Tt),Ro(Tt),Mr=ht}function yA(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0;if(dr=Mr,Mr=Mr+32|0,zt=dr+12|0,ct=dr,nr=vt+4|0,Ft=mt[16928+(Qt<<2)>>2]|0,bt=(Pt|0)!=0,Ft=bt?Ft*3|0:Ft,Mt=mt[nr>>2]|0,Ct=vt+8|0,st=mt[Ct>>2]|0,bt){if(Ut=vt+12|0,Pt=mt[Ut>>2]|0,Mt=st+Mt+Pt|0,(Mt|0)==(Ft|0))return nr=1,Mr=dr,nr|0;ht=Ut}else ht=vt+12|0,Pt=mt[ht>>2]|0,Mt=st+Mt+Pt|0;if((Mt|0)<=(Ft|0))return nr=0,Mr=dr,nr|0;do if((Pt|0)>0){if(Pt=mt[vt>>2]|0,(st|0)>0){Ut=18608+(Pt*80|0)+60|0,Pt=vt;break}Pt=18608+(Pt*80|0)+40|0,Tt?(ks(zt,Ft,0,0),tA(nr,zt,ct),xl(ct),Wo(ct,zt,nr),Ut=Pt,Pt=vt):(Ut=Pt,Pt=vt)}else Ut=18608+((mt[vt>>2]|0)*80|0)+20|0,Pt=vt;while(!1);if(mt[Pt>>2]=mt[Ut>>2],Mt=Ut+16|0,(mt[Mt>>2]|0)>0){Pt=0;do bA(nr),Pt=Pt+1|0;while((Pt|0)<(mt[Mt>>2]|0))}return vt=Ut+4|0,mt[zt>>2]=mt[vt>>2],mt[zt+4>>2]=mt[vt+4>>2],mt[zt+8>>2]=mt[vt+8>>2],Qt=mt[16848+(Qt<<2)>>2]|0,ko(zt,bt?Qt*3|0:Qt),Wo(nr,zt,nr),Ro(nr),bt?Pt=((mt[Ct>>2]|0)+(mt[nr>>2]|0)+(mt[ht>>2]|0)|0)==(Ft|0)?1:2:Pt=2,nr=Pt,Mr=dr,nr|0}function Gl(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;do Tt=yA(vt,Qt,0,1)|0;while((Tt|0)==2);return Tt|0}function ro(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0,sn=0,Fn=0,Kn=0,so=0;if(Fn=Mr,Mr=Mr+240|0,Ut=Fn+224|0,gn=Fn+208|0,mn=Fn,yn=Fn+192|0,sn=Fn+176|0,kr=Fn+160|0,Kr=Fn+144|0,qr=Fn+128|0,en=Fn+112|0,Dr=Fn+96|0,mt[Ut>>2]=Qt,mt[gn>>2]=mt[vt>>2],mt[gn+4>>2]=mt[vt+4>>2],mt[gn+8>>2]=mt[vt+8>>2],mt[gn+12>>2]=mt[vt+12>>2],rA(gn,Ut,mn),mt[Mt>>2]=0,Br=Pt+Tt+((Pt|0)==6&1)|0,(Br|0)<=(Tt|0)){Mr=Fn;return}ht=mt[Ut>>2]|0,Ct=Tt+6|0,bt=16928+(ht<<2)|0,Ft=Kr+8|0,zt=qr+8|0,nr=en+8|0,dr=yn+4|0,st=0,ct=Tt,Pt=-1;e:for(;;){if(Ut=(ct|0)%6|0,vt=mn+(Ut<<4)|0,mt[yn>>2]=mt[vt>>2],mt[yn+4>>2]=mt[vt+4>>2],mt[yn+8>>2]=mt[vt+8>>2],mt[yn+12>>2]=mt[vt+12>>2],vt=st,st=yA(yn,ht,0,1)|0,(ct|0)>(Tt|0)&(Hs(Qt)|0)!=0&&(vt|0)!=1&&(mt[yn>>2]|0)!=(Pt|0)){switch(Us(mn+(((Ut+5|0)%6|0)<<4)+4|0,sn),Us(mn+(Ut<<4)+4|0,kr),Kn=+(mt[bt>>2]|0),gr[Kr>>3]=Kn*3,gr[Ft>>3]=0,so=Kn*-1.5,gr[qr>>3]=so,gr[zt>>3]=Kn*2.598076211353316,gr[en>>3]=so,gr[nr>>3]=Kn*-2.598076211353316,Ut=mt[gn>>2]|0,mt[17008+(Ut*80|0)+(((Pt|0)==(Ut|0)?mt[yn>>2]|0:Pt)<<2)>>2]|0){case 1:{vt=qr,Pt=Kr;break}case 3:{vt=en,Pt=qr;break}case 2:{vt=Kr,Pt=en;break}default:{vt=8;break e}}Vs(sn,kr,Pt,vt,Dr),!(Qs(sn,Dr)|0)&&!(Qs(kr,Dr)|0)&&(ts(Dr,mt[gn>>2]|0,ht,1,Mt+8+(mt[Mt>>2]<<4)|0),mt[Mt>>2]=(mt[Mt>>2]|0)+1)}if((ct|0)<(Ct|0)&&(Us(dr,sn),ts(sn,mt[yn>>2]|0,ht,1,Mt+8+(mt[Mt>>2]<<4)|0),mt[Mt>>2]=(mt[Mt>>2]|0)+1),ct=ct+1|0,(ct|0)>=(Br|0)){vt=3;break}else Pt=mt[yn>>2]|0}if((vt|0)==3){Mr=Fn;return}else(vt|0)==8&&_i(22557,22521,746,22602)}function rA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;ht=Mr,Mr=Mr+160|0,Pt=ht+80|0,Mt=ht,Ut=Pt,st=20336,ct=Ut+72|0;do mt[Ut>>2]=mt[st>>2],Ut=Ut+4|0,st=st+4|0;while((Ut|0)<(ct|0));Ut=Mt,st=20416,ct=Ut+72|0;do mt[Ut>>2]=mt[st>>2],Ut=Ut+4|0,st=st+4|0;while((Ut|0)<(ct|0));ct=(Hs(mt[Qt>>2]|0)|0)==0,Pt=ct?Pt:Mt,Mt=vt+4|0,to(Mt),ps(Mt),Hs(mt[Qt>>2]|0)|0&&(CA(Mt),mt[Qt>>2]=(mt[Qt>>2]|0)+1),mt[Tt>>2]=mt[vt>>2],Qt=Tt+4|0,Wo(Mt,Pt,Qt),Ro(Qt),mt[Tt+16>>2]=mt[vt>>2],Qt=Tt+20|0,Wo(Mt,Pt+12|0,Qt),Ro(Qt),mt[Tt+32>>2]=mt[vt>>2],Qt=Tt+36|0,Wo(Mt,Pt+24|0,Qt),Ro(Qt),mt[Tt+48>>2]=mt[vt>>2],Qt=Tt+52|0,Wo(Mt,Pt+36|0,Qt),Ro(Qt),mt[Tt+64>>2]=mt[vt>>2],Qt=Tt+68|0,Wo(Mt,Pt+48|0,Qt),Ro(Qt),mt[Tt+80>>2]=mt[vt>>2],Tt=Tt+84|0,Wo(Mt,Pt+60|0,Tt),Ro(Tt),Mr=ht}function fo(vt){vt=+vt;var Qt=0;return Qt=vt<0?vt+6.283185307179586:vt,+(vt>=6.283185307179586?Qt+-6.283185307179586:Qt)}function na(vt,Qt){return vt=vt|0,Qt=Qt|0,+tn(+(+gr[vt>>3]-+gr[Qt>>3]))<17453292519943298e-27?(Qt=+tn(+(+gr[vt+8>>3]-+gr[Qt+8>>3]))<17453292519943298e-27,Qt|0):(Qt=0,Qt|0)}function Is(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0;return Mt=+gr[Qt>>3],Pt=+gr[vt>>3],Ut=+vn(+((Mt-Pt)*.5)),Tt=+vn(+((+gr[Qt+8>>3]-+gr[vt+8>>3])*.5)),Tt=Ut*Ut+Tt*(+hn(+Mt)*+hn(+Pt)*Tt),+(+Dn(+ +cn(+Tt),+ +cn(+(1-Tt)))*2)}function Do(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0;return Mt=+gr[Qt>>3],Pt=+gr[vt>>3],Ut=+vn(+((Mt-Pt)*.5)),Tt=+vn(+((+gr[Qt+8>>3]-+gr[vt+8>>3])*.5)),Tt=Ut*Ut+Tt*(+hn(+Mt)*+hn(+Pt)*Tt),+(+Dn(+ +cn(+Tt),+ +cn(+(1-Tt)))*2*6371.007180918475)}function eo(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0;return Mt=+gr[Qt>>3],Pt=+gr[vt>>3],Ut=+vn(+((Mt-Pt)*.5)),Tt=+vn(+((+gr[Qt+8>>3]-+gr[vt+8>>3])*.5)),Tt=Ut*Ut+Tt*(+hn(+Mt)*+hn(+Pt)*Tt),+(+Dn(+ +cn(+Tt),+ +cn(+(1-Tt)))*2*6371.007180918475*1e3)}function YA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0;return Ut=+gr[Qt>>3],Pt=+hn(+Ut),Mt=+gr[Qt+8>>3]-+gr[vt+8>>3],st=Pt*+vn(+Mt),Tt=+gr[vt>>3],+ +Dn(+st,+(+vn(+Ut)*+hn(+Tt)-+hn(+Mt)*(Pt*+vn(+Tt))))}function So(vt,Qt,Tt,Pt){vt=vt|0,Qt=+Qt,Tt=+Tt,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0;if(Tt<1e-16){mt[Pt>>2]=mt[vt>>2],mt[Pt+4>>2]=mt[vt+4>>2],mt[Pt+8>>2]=mt[vt+8>>2],mt[Pt+12>>2]=mt[vt+12>>2];return}Ut=Qt<0?Qt+6.283185307179586:Qt,Ut=Qt>=6.283185307179586?Ut+-6.283185307179586:Ut;do if(Ut<1e-16)Qt=+gr[vt>>3]+Tt,gr[Pt>>3]=Qt,Mt=Pt;else{if(Mt=+tn(+(Ut+-3.141592653589793))<1e-16,Qt=+gr[vt>>3],Mt){Qt=Qt-Tt,gr[Pt>>3]=Qt,Mt=Pt;break}if(st=+hn(+Tt),Tt=+vn(+Tt),Qt=st*+vn(+Qt)+ +hn(+Ut)*(Tt*+hn(+Qt)),Qt=Qt>1?1:Qt,Qt=+mo(+(Qt<-1?-1:Qt)),gr[Pt>>3]=Qt,+tn(+(Qt+-1.5707963267948966))<1e-16){gr[Pt>>3]=1.5707963267948966,gr[Pt+8>>3]=0;return}if(+tn(+(Qt+1.5707963267948966))<1e-16){gr[Pt>>3]=-1.5707963267948966,gr[Pt+8>>3]=0;return}if(ct=+hn(+Qt),Ut=Tt*+vn(+Ut)/ct,Tt=+gr[vt>>3],Qt=(st-+vn(+Qt)*+vn(+Tt))/+hn(+Tt)/ct,st=Ut>1?1:Ut,Qt=Qt>1?1:Qt,Qt=+gr[vt+8>>3]+ +Dn(+(st<-1?-1:st),+(Qt<-1?-1:Qt)),Qt>3.141592653589793)do Qt=Qt+-6.283185307179586;while(Qt>3.141592653589793);if(Qt<-3.141592653589793)do Qt=Qt+6.283185307179586;while(Qt<-3.141592653589793);gr[Pt+8>>3]=Qt;return}while(!1);if(+tn(+(Qt+-1.5707963267948966))<1e-16){gr[Mt>>3]=1.5707963267948966,gr[Pt+8>>3]=0;return}if(+tn(+(Qt+1.5707963267948966))<1e-16){gr[Mt>>3]=-1.5707963267948966,gr[Pt+8>>3]=0;return}if(Qt=+gr[vt+8>>3],Qt>3.141592653589793)do Qt=Qt+-6.283185307179586;while(Qt>3.141592653589793);if(Qt<-3.141592653589793)do Qt=Qt+6.283185307179586;while(Qt<-3.141592653589793);gr[Pt+8>>3]=Qt}function Ll(vt){return vt=vt|0,+ +gr[20496+(vt<<3)>>3]}function uo(vt){return vt=vt|0,+ +gr[20624+(vt<<3)>>3]}function TA(vt){return vt=vt|0,+ +gr[20752+(vt<<3)>>3]}function mA(vt){return vt=vt|0,+ +gr[20880+(vt<<3)>>3]}function _o(vt){vt=vt|0;var Qt=0;return Qt=21008+(vt<<3)|0,vt=mt[Qt>>2]|0,$n(mt[Qt+4>>2]|0),vt|0}function Mn(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0;return zt=+gr[Qt>>3],bt=+gr[vt>>3],ht=+vn(+((zt-bt)*.5)),Ut=+gr[Qt+8>>3],Ct=+gr[vt+8>>3],st=+vn(+((Ut-Ct)*.5)),ct=+hn(+bt),Ft=+hn(+zt),st=ht*ht+st*(Ft*ct*st),st=+Dn(+ +cn(+st),+ +cn(+(1-st)))*2,ht=+gr[Tt>>3],zt=+vn(+((ht-zt)*.5)),Pt=+gr[Tt+8>>3],Ut=+vn(+((Pt-Ut)*.5)),Mt=+hn(+ht),Ut=zt*zt+Ut*(Ft*Mt*Ut),Ut=+Dn(+ +cn(+Ut),+ +cn(+(1-Ut)))*2,ht=+vn(+((bt-ht)*.5)),Pt=+vn(+((Ct-Pt)*.5)),Pt=ht*ht+Pt*(ct*Mt*Pt),Pt=+Dn(+ +cn(+Pt),+ +cn(+(1-Pt)))*2,Mt=(st+Ut+Pt)*.5,+(+Yn(+ +cn(+(+Qn(+(Mt*.5))*+Qn(+((Mt-st)*.5))*+Qn(+((Mt-Ut)*.5))*+Qn(+((Mt-Pt)*.5)))))*4)}function ls(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0;if(Ut=Mr,Mr=Mr+192|0,Pt=Ut+168|0,Mt=Ut,nA(vt,Qt,Pt),ys(vt,Qt,Mt),Qt=mt[Mt>>2]|0,(Qt|0)<=0)return Tt=0,Mr=Ut,+Tt;if(Tt=+Mn(Mt+8|0,Mt+8+(((Qt|0)!=1&1)<<4)|0,Pt)+0,(Qt|0)==1)return Mr=Ut,+Tt;vt=1;do st=vt,vt=vt+1|0,Tt=Tt+ +Mn(Mt+8+(st<<4)|0,Mt+8+(((vt|0)%(Qt|0)|0)<<4)|0,Pt);while((vt|0)<(Qt|0));return Mr=Ut,+Tt}function kA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0;if(Ut=Mr,Mr=Mr+192|0,Pt=Ut+168|0,Mt=Ut,nA(vt,Qt,Pt),ys(vt,Qt,Mt),Qt=mt[Mt>>2]|0,(Qt|0)>0){if(Tt=+Mn(Mt+8|0,Mt+8+(((Qt|0)!=1&1)<<4)|0,Pt)+0,(Qt|0)!=1){vt=1;do st=vt,vt=vt+1|0,Tt=Tt+ +Mn(Mt+8+(st<<4)|0,Mt+8+(((vt|0)%(Qt|0)|0)<<4)|0,Pt);while((vt|0)<(Qt|0))}}else Tt=0;return Mr=Ut,+(Tt*6371.007180918475*6371.007180918475)}function Ds(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0;if(Ut=Mr,Mr=Mr+192|0,Pt=Ut+168|0,Mt=Ut,nA(vt,Qt,Pt),ys(vt,Qt,Mt),Qt=mt[Mt>>2]|0,(Qt|0)>0){if(Tt=+Mn(Mt+8|0,Mt+8+(((Qt|0)!=1&1)<<4)|0,Pt)+0,(Qt|0)!=1){vt=1;do st=vt,vt=vt+1|0,Tt=Tt+ +Mn(Mt+8+(st<<4)|0,Mt+8+(((vt|0)%(Qt|0)|0)<<4)|0,Pt);while((vt|0)<(Qt|0))}}else Tt=0;return Mr=Ut,+(Tt*6371.007180918475*6371.007180918475*1e3*1e3)}function is(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;if(st=Mr,Mr=Mr+176|0,Ut=st,ss(vt,Qt,Ut),vt=mt[Ut>>2]|0,(vt|0)<=1)return Mt=0,Mr=st,+Mt;Qt=vt+-1|0,vt=0,Tt=0,Pt=+gr[Ut+8>>3],Mt=+gr[Ut+16>>3];do vt=vt+1|0,ht=Pt,Pt=+gr[Ut+8+(vt<<4)>>3],Ct=+vn(+((Pt-ht)*.5)),ct=Mt,Mt=+gr[Ut+8+(vt<<4)+8>>3],ct=+vn(+((Mt-ct)*.5)),ct=Ct*Ct+ct*(+hn(+Pt)*+hn(+ht)*ct),Tt=Tt+ +Dn(+ +cn(+ct),+ +cn(+(1-ct)))*2;while((vt|0)<(Qt|0));return Mr=st,+Tt}function os(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;if(st=Mr,Mr=Mr+176|0,Ut=st,ss(vt,Qt,Ut),vt=mt[Ut>>2]|0,(vt|0)<=1)return Mt=0,Mr=st,+Mt;Qt=vt+-1|0,vt=0,Tt=0,Pt=+gr[Ut+8>>3],Mt=+gr[Ut+16>>3];do vt=vt+1|0,ht=Pt,Pt=+gr[Ut+8+(vt<<4)>>3],Ct=+vn(+((Pt-ht)*.5)),ct=Mt,Mt=+gr[Ut+8+(vt<<4)+8>>3],ct=+vn(+((Mt-ct)*.5)),ct=Ct*Ct+ct*(+hn(+ht)*+hn(+Pt)*ct),Tt=Tt+ +Dn(+ +cn(+ct),+ +cn(+(1-ct)))*2;while((vt|0)!=(Qt|0));return Ct=Tt*6371.007180918475,Mr=st,+Ct}function Kl(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;if(st=Mr,Mr=Mr+176|0,Ut=st,ss(vt,Qt,Ut),vt=mt[Ut>>2]|0,(vt|0)<=1)return Mt=0,Mr=st,+Mt;Qt=vt+-1|0,vt=0,Tt=0,Pt=+gr[Ut+8>>3],Mt=+gr[Ut+16>>3];do vt=vt+1|0,ht=Pt,Pt=+gr[Ut+8+(vt<<4)>>3],Ct=+vn(+((Pt-ht)*.5)),ct=Mt,Mt=+gr[Ut+8+(vt<<4)+8>>3],ct=+vn(+((Mt-ct)*.5)),ct=Ct*Ct+ct*(+hn(+ht)*+hn(+Pt)*ct),Tt=Tt+ +Dn(+ +cn(+ct),+ +cn(+(1-ct)))*2;while((vt|0)!=(Qt|0));return Ct=Tt*6371.007180918475*1e3,Mr=st,+Ct}function UA(vt,Qt){return vt=vt|0,Qt=Qt|0,Qt=_n(vt|0,Qt|0,52)|0,zr()|0,Qt&15|0}function ga(vt,Qt){return vt=vt|0,Qt=Qt|0,Qt=_n(vt|0,Qt|0,45)|0,zr()|0,Qt&127|0}function ba(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;if(!(!0&(Qt&-16777216|0)==134217728)||(st=_n(vt|0,Qt|0,45)|0,zr()|0,st=st&127,st>>>0>121))return Qt=0,Qt|0;Tt=_n(vt|0,Qt|0,52)|0,zr()|0,Tt=Tt&15;do if(Tt|0){for(Mt=1,Pt=0;;){if(Ut=_n(vt|0,Qt|0,(15-Mt|0)*3|0)|0,zr()|0,Ut=Ut&7,(Ut|0)!=0&(Pt^1))if((Ut|0)==1&(pn(st)|0)!=0){ct=0,Pt=13;break}else Pt=1;if((Ut|0)==7){ct=0,Pt=13;break}if(Mt>>>0>>0)Mt=Mt+1|0;else{Pt=9;break}}if((Pt|0)==9){if((Tt|0)==15)ct=1;else break;return ct|0}else if((Pt|0)==13)return ct|0}while(!1);for(;;){if(ct=_n(vt|0,Qt|0,(14-Tt|0)*3|0)|0,zr()|0,!((ct&7|0)==7&!0)){ct=0,Pt=13;break}if(Tt>>>0<14)Tt=Tt+1|0;else{ct=1,Pt=13;break}}return(Pt|0)==13?ct|0:0}function aA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,(Pt|0)>=(Tt|0)){if((Pt|0)!=(Tt|0))if(Tt>>>0<=15){if(Mt=Rn(Tt|0,0,52)|0,vt=Mt|vt,Qt=zr()|0|Qt&-15728641,(Pt|0)>(Tt|0))do Mt=Rn(7,0,(14-Tt|0)*3|0)|0,Tt=Tt+1|0,vt=Mt|vt,Qt=zr()|0|Qt;while((Tt|0)<(Pt|0))}else Qt=0,vt=0}else Qt=0,vt=0;return $n(Qt|0),vt|0}function Ps(vt,Qt,Tt){return vt=vt|0,Qt=Qt|0,Tt=Tt|0,vt=_n(vt|0,Qt|0,52)|0,zr()|0,vt=vt&15,(Tt|0)<16&(vt|0)<=(Tt|0)?(Tt=Yo(7,Tt-vt|0)|0,Tt|0):(Tt=0,Tt|0)}function jo(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0;if(st=_n(vt|0,Qt|0,52)|0,zr()|0,st=st&15,!!((Tt|0)<16&(st|0)<=(Tt|0))){if((st|0)==(Tt|0)){Tt=Pt,mt[Tt>>2]=vt,mt[Tt+4>>2]=Qt;return}if(ht=Yo(7,Tt-st|0)|0,Ct=(ht|0)/7|0,ct=_n(vt|0,Qt|0,45)|0,zr()|0,!(pn(ct&127)|0))Ut=0;else{e:do if(!st)Mt=0;else for(Ut=1;;){if(Mt=_n(vt|0,Qt|0,(15-Ut|0)*3|0)|0,zr()|0,Mt=Mt&7,Mt|0)break e;if(Ut>>>0>>0)Ut=Ut+1|0;else{Mt=0;break}}while(!1);Ut=(Mt|0)==0}if(bt=Rn(st+1|0,0,52)|0,Mt=zr()|0|Qt&-15728641,ct=(14-st|0)*3|0,Qt=Rn(7,0,ct|0)|0,Qt=(bt|vt)&~Qt,st=Mt&~(zr()|0),jo(Qt,st,Tt,Pt),Mt=Pt+(Ct<<3)|0,!Ut){bt=Rn(1,0,ct|0)|0,jo(bt|Qt,zr()|0|st,Tt,Mt),bt=Mt+(Ct<<3)|0,ht=Rn(2,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),bt=bt+(Ct<<3)|0,ht=Rn(3,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),bt=bt+(Ct<<3)|0,ht=Rn(4,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),bt=bt+(Ct<<3)|0,ht=Rn(5,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),ht=Rn(6,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt+(Ct<<3)|0);return}Ut=Mt+(Ct<<3)|0,(ht|0)>6&&(ht=Mt+8|0,bt=(Ut>>>0>ht>>>0?Ut:ht)+-1+(0-Mt)|0,ws(Mt|0,0,bt+8&-8|0)|0,Mt=ht+(bt>>>3<<3)|0),bt=Rn(2,0,ct|0)|0,jo(bt|Qt,zr()|0|st,Tt,Mt),bt=Mt+(Ct<<3)|0,ht=Rn(3,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),bt=bt+(Ct<<3)|0,ht=Rn(4,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),bt=bt+(Ct<<3)|0,ht=Rn(5,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt),ht=Rn(6,0,ct|0)|0,jo(ht|Qt,zr()|0|st,Tt,bt+(Ct<<3)|0)}}function bo(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;if(Mt=_n(vt|0,Qt|0,45)|0,zr()|0,!(pn(Mt&127)|0))return Mt=0,Mt|0;Mt=_n(vt|0,Qt|0,52)|0,zr()|0,Mt=Mt&15;e:do if(!Mt)Tt=0;else for(Pt=1;;){if(Tt=_n(vt|0,Qt|0,(15-Pt|0)*3|0)|0,zr()|0,Tt=Tt&7,Tt|0)break e;if(Pt>>>0>>0)Pt=Pt+1|0;else{Tt=0;break}}while(!1);return Mt=(Tt|0)==0&1,Mt|0}function HA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,(Tt|0)<16&(Pt|0)<=(Tt|0)){if((Pt|0)!=(Tt|0)&&(Mt=Rn(Tt|0,0,52)|0,vt=Mt|vt,Qt=zr()|0|Qt&-15728641,(Pt|0)<(Tt|0)))do Mt=Rn(7,0,(14-Pt|0)*3|0)|0,Pt=Pt+1|0,vt=vt&~Mt,Qt=Qt&~(zr()|0);while((Pt|0)<(Tt|0))}else Qt=0,vt=0;return $n(Qt|0),vt|0}function AA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0,sn=0;if(!Tt)return yn=0,yn|0;if(Mt=vt,Pt=mt[Mt>>2]|0,Mt=mt[Mt+4>>2]|0,!0&(Mt&15728640|0)==0){if((Tt|0)<=0||(yn=Qt,mt[yn>>2]=Pt,mt[yn+4>>2]=Mt,(Tt|0)==1))return yn=0,yn|0;Pt=1;do gn=vt+(Pt<<3)|0,mn=mt[gn+4>>2]|0,yn=Qt+(Pt<<3)|0,mt[yn>>2]=mt[gn>>2],mt[yn+4>>2]=mn,Pt=Pt+1|0;while((Pt|0)!=(Tt|0));return Pt=0,Pt|0}if(gn=Tt<<3,mn=xa(gn)|0,!mn)return yn=-3,yn|0;if(On(mn|0,vt|0,gn|0)|0,Dr=Fs(Tt,8)|0,!Dr)return Xn(mn),yn=-3,yn|0;Pt=Tt;e:for(;;){st=mn,bt=mt[st>>2]|0,st=mt[st+4>>2]|0,qr=_n(bt|0,st|0,52)|0,zr()|0,qr=qr&15,en=qr+-1|0,Kr=(Pt|0)>0;t:do if(Kr){if(kr=((Pt|0)<0)<<31>>31,dr=Rn(en|0,0,52)|0,Br=zr()|0,en>>>0>15)for(Mt=0,vt=bt,Tt=st;;){if(!((vt|0)==0&(Tt|0)==0)){if(Ut=_n(vt|0,Tt|0,52)|0,zr()|0,Ut=Ut&15,ct=(Ut|0)<(en|0),Ut=(Ut|0)==(en|0),Ct=ct?0:Ut?vt:0,vt=ct?0:Ut?Tt:0,Tt=bs(Ct|0,vt|0,Pt|0,kr|0)|0,zr()|0,Ut=Dr+(Tt<<3)|0,ct=Ut,ht=mt[ct>>2]|0,ct=mt[ct+4>>2]|0,(ht|0)==0&(ct|0)==0)Tt=Ct;else for(dr=0,nr=Tt,zt=ct,Tt=Ct;;){if((dr|0)>(Pt|0)){yn=41;break e}if((ht|0)==(Tt|0)&(zt&-117440513|0)==(vt|0)){Ct=_n(ht|0,zt|0,56)|0,zr()|0,Ct=Ct&7,Ft=Ct+1|0,Br=_n(ht|0,zt|0,45)|0,zr()|0;r:do if(!(pn(Br&127)|0))ct=7;else{if(ht=_n(ht|0,zt|0,52)|0,zr()|0,ht=ht&15,!ht){ct=6;break}for(ct=1;;){if(Br=Rn(7,0,(15-ct|0)*3|0)|0,!((Br&Tt|0)==0&((zr()|0)&vt|0)==0)){ct=7;break r}if(ct>>>0>>0)ct=ct+1|0;else{ct=6;break}}}while(!1);if((Ct+2|0)>>>0>ct>>>0){yn=51;break e}Br=Rn(Ft|0,0,56)|0,vt=zr()|0|vt&-117440513,ct=Ut,mt[ct>>2]=0,mt[ct+4>>2]=0,ct=nr,Tt=Br|Tt}else ct=(nr+1|0)%(Pt|0)|0;if(Ut=Dr+(ct<<3)|0,zt=Ut,ht=mt[zt>>2]|0,zt=mt[zt+4>>2]|0,(ht|0)==0&(zt|0)==0)break;dr=dr+1|0,nr=ct}Br=Ut,mt[Br>>2]=Tt,mt[Br+4>>2]=vt}if(Mt=Mt+1|0,(Mt|0)>=(Pt|0))break t;Tt=mn+(Mt<<3)|0,vt=mt[Tt>>2]|0,Tt=mt[Tt+4>>2]|0}for(Mt=0,vt=bt,Tt=st;;){if(!((vt|0)==0&(Tt|0)==0)){if(ct=_n(vt|0,Tt|0,52)|0,zr()|0,ct=ct&15,(ct|0)>=(en|0)){if((ct|0)!=(en|0)&&(vt=vt|dr,Tt=Tt&-15728641|Br,ct>>>0>=qr>>>0)){Ut=en;do nr=Rn(7,0,(14-Ut|0)*3|0)|0,Ut=Ut+1|0,vt=nr|vt,Tt=zr()|0|Tt;while(Ut>>>0>>0)}}else vt=0,Tt=0;if(ct=bs(vt|0,Tt|0,Pt|0,kr|0)|0,zr()|0,Ut=Dr+(ct<<3)|0,ht=Ut,Ct=mt[ht>>2]|0,ht=mt[ht+4>>2]|0,!((Ct|0)==0&(ht|0)==0))for(nr=0;;){if((nr|0)>(Pt|0)){yn=41;break e}if((Ct|0)==(vt|0)&(ht&-117440513|0)==(Tt|0)){Ft=_n(Ct|0,ht|0,56)|0,zr()|0,Ft=Ft&7,zt=Ft+1|0,sn=_n(Ct|0,ht|0,45)|0,zr()|0;r:do if(!(pn(sn&127)|0))ht=7;else{if(Ct=_n(Ct|0,ht|0,52)|0,zr()|0,Ct=Ct&15,!Ct){ht=6;break}for(ht=1;;){if(sn=Rn(7,0,(15-ht|0)*3|0)|0,!((sn&vt|0)==0&((zr()|0)&Tt|0)==0)){ht=7;break r}if(ht>>>0>>0)ht=ht+1|0;else{ht=6;break}}}while(!1);if((Ft+2|0)>>>0>ht>>>0){yn=51;break e}sn=Rn(zt|0,0,56)|0,Tt=zr()|0|Tt&-117440513,zt=Ut,mt[zt>>2]=0,mt[zt+4>>2]=0,vt=sn|vt}else ct=(ct+1|0)%(Pt|0)|0;if(Ut=Dr+(ct<<3)|0,ht=Ut,Ct=mt[ht>>2]|0,ht=mt[ht+4>>2]|0,(Ct|0)==0&(ht|0)==0)break;nr=nr+1|0}sn=Ut,mt[sn>>2]=vt,mt[sn+4>>2]=Tt}if(Mt=Mt+1|0,(Mt|0)>=(Pt|0))break t;Tt=mn+(Mt<<3)|0,vt=mt[Tt>>2]|0,Tt=mt[Tt+4>>2]|0}}while(!1);if((Pt+5|0)>>>0<11){yn=99;break}if(Br=Fs((Pt|0)/6|0,8)|0,!Br){yn=58;break}t:do if(Kr){nr=0,zt=0;do{if(ct=Dr+(nr<<3)|0,vt=ct,Mt=mt[vt>>2]|0,vt=mt[vt+4>>2]|0,!((Mt|0)==0&(vt|0)==0)){ht=_n(Mt|0,vt|0,56)|0,zr()|0,ht=ht&7,Tt=ht+1|0,Ct=vt&-117440513,sn=_n(Mt|0,vt|0,45)|0,zr()|0;r:do if(pn(sn&127)|0){if(Ft=_n(Mt|0,vt|0,52)|0,zr()|0,Ft=Ft&15,Ft|0)for(Ut=1;;){if(sn=Rn(7,0,(15-Ut|0)*3|0)|0,!((Mt&sn|0)==0&(Ct&(zr()|0)|0)==0))break r;if(Ut>>>0>>0)Ut=Ut+1|0;else break}vt=Rn(Tt|0,0,56)|0,Mt=vt|Mt,vt=zr()|0|Ct,Tt=ct,mt[Tt>>2]=Mt,mt[Tt+4>>2]=vt,Tt=ht+2|0}while(!1);(Tt|0)==7&&(sn=Br+(zt<<3)|0,mt[sn>>2]=Mt,mt[sn+4>>2]=vt&-117440513,zt=zt+1|0)}nr=nr+1|0}while((nr|0)!=(Pt|0));if(Kr){if(dr=((Pt|0)<0)<<31>>31,Ft=Rn(en|0,0,52)|0,nr=zr()|0,en>>>0>15)for(vt=0,Mt=0;;){do if(!((bt|0)==0&(st|0)==0)){for(ht=_n(bt|0,st|0,52)|0,zr()|0,ht=ht&15,Ut=(ht|0)<(en|0),ht=(ht|0)==(en|0),ct=Ut?0:ht?bt:0,ht=Ut?0:ht?st:0,Ut=bs(ct|0,ht|0,Pt|0,dr|0)|0,zr()|0,Tt=0;;){if((Tt|0)>(Pt|0)){yn=98;break e}if(sn=Dr+(Ut<<3)|0,Ct=mt[sn+4>>2]|0,(Ct&-117440513|0)==(ht|0)&&(mt[sn>>2]|0)==(ct|0)){yn=70;break}if(Ut=(Ut+1|0)%(Pt|0)|0,sn=Dr+(Ut<<3)|0,(mt[sn>>2]|0)==(ct|0)&&(mt[sn+4>>2]|0)==(ht|0))break;Tt=Tt+1|0}if((yn|0)==70&&(yn=0,!0&(Ct&117440512|0)==100663296))break;sn=Qt+(Mt<<3)|0,mt[sn>>2]=bt,mt[sn+4>>2]=st,Mt=Mt+1|0}while(!1);if(vt=vt+1|0,(vt|0)>=(Pt|0)){Pt=zt;break t}st=mn+(vt<<3)|0,bt=mt[st>>2]|0,st=mt[st+4>>2]|0}for(vt=0,Mt=0;;){do if(!((bt|0)==0&(st|0)==0)){if(ht=_n(bt|0,st|0,52)|0,zr()|0,ht=ht&15,(ht|0)>=(en|0))if((ht|0)!=(en|0))if(Tt=bt|Ft,Ut=st&-15728641|nr,ht>>>0>>0)ht=Ut;else{ct=en;do sn=Rn(7,0,(14-ct|0)*3|0)|0,ct=ct+1|0,Tt=sn|Tt,Ut=zr()|0|Ut;while(ct>>>0>>0);ht=Ut}else Tt=bt,ht=st;else Tt=0,ht=0;for(ct=bs(Tt|0,ht|0,Pt|0,dr|0)|0,zr()|0,Ut=0;;){if((Ut|0)>(Pt|0)){yn=98;break e}if(sn=Dr+(ct<<3)|0,Ct=mt[sn+4>>2]|0,(Ct&-117440513|0)==(ht|0)&&(mt[sn>>2]|0)==(Tt|0)){yn=93;break}if(ct=(ct+1|0)%(Pt|0)|0,sn=Dr+(ct<<3)|0,(mt[sn>>2]|0)==(Tt|0)&&(mt[sn+4>>2]|0)==(ht|0))break;Ut=Ut+1|0}if((yn|0)==93&&(yn=0,!0&(Ct&117440512|0)==100663296))break;sn=Qt+(Mt<<3)|0,mt[sn>>2]=bt,mt[sn+4>>2]=st,Mt=Mt+1|0}while(!1);if(vt=vt+1|0,(vt|0)>=(Pt|0)){Pt=zt;break t}st=mn+(vt<<3)|0,bt=mt[st>>2]|0,st=mt[st+4>>2]|0}}else Mt=0,Pt=zt}else Mt=0,Pt=0;while(!1);if(ws(Dr|0,0,gn|0)|0,On(mn|0,Br|0,Pt<<3|0)|0,Xn(Br),Pt)Qt=Qt+(Mt<<3)|0;else break}return(yn|0)==41?(Xn(mn),Xn(Dr),sn=-1,sn|0):(yn|0)==51?(Xn(mn),Xn(Dr),sn=-2,sn|0):(yn|0)==58?(Xn(mn),Xn(Dr),sn=-3,sn|0):(yn|0)==98?(Xn(Br),Xn(mn),Xn(Dr),sn=-1,sn|0):((yn|0)==99&&On(Qt|0,mn|0,Pt<<3|0)|0,Xn(mn),Xn(Dr),sn=0,sn|0)}function cs(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0;if((Qt|0)<=0)return Mt=0,Mt|0;if((Mt|0)>=16){for(Ut=0;;){if(bt=vt+(Ut<<3)|0,!((mt[bt>>2]|0)==0&(mt[bt+4>>2]|0)==0)){Ut=14;break}if(Ut=Ut+1|0,(Ut|0)>=(Qt|0)){st=0,Ut=16;break}}if((Ut|0)==14)return((Pt|0)>0?-2:-1)|0;if((Ut|0)==16)return st|0}Ut=0,bt=0;e:for(;;){Ct=vt+(bt<<3)|0,ct=Ct,st=mt[ct>>2]|0,ct=mt[ct+4>>2]|0;do if(!((st|0)==0&(ct|0)==0)){if((Ut|0)>=(Pt|0)){st=-1,Ut=16;break e}if(ht=_n(st|0,ct|0,52)|0,zr()|0,ht=ht&15,(ht|0)>(Mt|0)){st=-2,Ut=16;break e}if((ht|0)==(Mt|0)){Ct=Tt+(Ut<<3)|0,mt[Ct>>2]=st,mt[Ct+4>>2]=ct,Ut=Ut+1|0;break}if(st=(Yo(7,Mt-ht|0)|0)+Ut|0,(st|0)>(Pt|0)){st=-1,Ut=16;break e}jo(mt[Ct>>2]|0,mt[Ct+4>>2]|0,Mt,Tt+(Ut<<3)|0),Ut=st}while(!1);if(bt=bt+1|0,(bt|0)>=(Qt|0)){st=0,Ut=16;break}}return(Ut|0)==16?st|0:0}function au(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0;if((Qt|0)<=0)return Tt=0,Tt|0;if((Tt|0)>=16){for(Pt=0;;){if(st=vt+(Pt<<3)|0,!((mt[st>>2]|0)==0&(mt[st+4>>2]|0)==0)){Pt=-1,Mt=13;break}if(Pt=Pt+1|0,(Pt|0)>=(Qt|0)){Pt=0,Mt=13;break}}if((Mt|0)==13)return Pt|0}Pt=0,st=0;e:for(;;){Mt=vt+(st<<3)|0,Ut=mt[Mt>>2]|0,Mt=mt[Mt+4>>2]|0;do if(!((Ut|0)==0&(Mt|0)==0)){if(Mt=_n(Ut|0,Mt|0,52)|0,zr()|0,Mt=Mt&15,(Mt|0)>(Tt|0)){Pt=-1,Mt=13;break e}if((Mt|0)==(Tt|0)){Pt=Pt+1|0;break}else{Pt=(Yo(7,Tt-Mt|0)|0)+Pt|0;break}}while(!1);if(st=st+1|0,(st|0)>=(Qt|0)){Mt=13;break}}return(Mt|0)==13?Pt|0:0}function BA(vt,Qt){return vt=vt|0,Qt=Qt|0,Qt=_n(vt|0,Qt|0,52)|0,zr()|0,Qt&1|0}function Eo(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;if(Mt=_n(vt|0,Qt|0,52)|0,zr()|0,Mt=Mt&15,!Mt)return Mt=0,Mt|0;for(Pt=1;;){if(Tt=_n(vt|0,Qt|0,(15-Pt|0)*3|0)|0,zr()|0,Tt=Tt&7,Tt|0){Pt=5;break}if(Pt>>>0>>0)Pt=Pt+1|0;else{Tt=0,Pt=5;break}}return(Pt|0)==5?Tt|0:0}function gA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;if(ht=_n(vt|0,Qt|0,52)|0,zr()|0,ht=ht&15,!ht)return ct=Qt,ht=vt,$n(ct|0),ht|0;for(ct=1,Tt=0;;){Ut=(15-ct|0)*3|0,Pt=Rn(7,0,Ut|0)|0,Mt=zr()|0,st=_n(vt|0,Qt|0,Ut|0)|0,zr()|0,Ut=Rn(OA(st&7)|0,0,Ut|0)|0,st=zr()|0,vt=Ut|vt&~Pt,Qt=st|Qt&~Mt;e:do if(!Tt)if((Ut&Pt|0)==0&(st&Mt|0)==0)Tt=0;else if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,!Pt)Tt=1;else{Tt=1;t:for(;;){switch(st=_n(vt|0,Qt|0,(15-Tt|0)*3|0)|0,zr()|0,st&7){case 1:break t;case 0:break;default:{Tt=1;break e}}if(Tt>>>0>>0)Tt=Tt+1|0;else{Tt=1;break e}}for(Tt=1;;)if(st=(15-Tt|0)*3|0,Mt=_n(vt|0,Qt|0,st|0)|0,zr()|0,Ut=Rn(7,0,st|0)|0,Qt=Qt&~(zr()|0),st=Rn(OA(Mt&7)|0,0,st|0)|0,vt=vt&~Ut|st,Qt=Qt|(zr()|0),Tt>>>0>>0)Tt=Tt+1|0;else{Tt=1;break}}while(!1);if(ct>>>0>>0)ct=ct+1|0;else break}return $n(Qt|0),vt|0}function Es(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0;if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,!Pt)return Tt=Qt,Pt=vt,$n(Tt|0),Pt|0;for(Tt=1;Ut=(15-Tt|0)*3|0,st=_n(vt|0,Qt|0,Ut|0)|0,zr()|0,Mt=Rn(7,0,Ut|0)|0,Qt=Qt&~(zr()|0),Ut=Rn(OA(st&7)|0,0,Ut|0)|0,vt=Ut|vt&~Mt,Qt=zr()|0|Qt,Tt>>>0>>0;)Tt=Tt+1|0;return $n(Qt|0),vt|0}function Au(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;if(ht=_n(vt|0,Qt|0,52)|0,zr()|0,ht=ht&15,!ht)return ct=Qt,ht=vt,$n(ct|0),ht|0;for(ct=1,Tt=0;;){Ut=(15-ct|0)*3|0,Pt=Rn(7,0,Ut|0)|0,Mt=zr()|0,st=_n(vt|0,Qt|0,Ut|0)|0,zr()|0,Ut=Rn(xo(st&7)|0,0,Ut|0)|0,st=zr()|0,vt=Ut|vt&~Pt,Qt=st|Qt&~Mt;e:do if(!Tt)if((Ut&Pt|0)==0&(st&Mt|0)==0)Tt=0;else if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,!Pt)Tt=1;else{Tt=1;t:for(;;){switch(st=_n(vt|0,Qt|0,(15-Tt|0)*3|0)|0,zr()|0,st&7){case 1:break t;case 0:break;default:{Tt=1;break e}}if(Tt>>>0>>0)Tt=Tt+1|0;else{Tt=1;break e}}for(Tt=1;;)if(Mt=(15-Tt|0)*3|0,Ut=Rn(7,0,Mt|0)|0,st=Qt&~(zr()|0),Qt=_n(vt|0,Qt|0,Mt|0)|0,zr()|0,Qt=Rn(xo(Qt&7)|0,0,Mt|0)|0,vt=vt&~Ut|Qt,Qt=st|(zr()|0),Tt>>>0>>0)Tt=Tt+1|0;else{Tt=1;break}}while(!1);if(ct>>>0>>0)ct=ct+1|0;else break}return $n(Qt|0),vt|0}function Cs(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0;if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,!Pt)return Tt=Qt,Pt=vt,$n(Tt|0),Pt|0;for(Tt=1;st=(15-Tt|0)*3|0,Ut=Rn(7,0,st|0)|0,Mt=Qt&~(zr()|0),Qt=_n(vt|0,Qt|0,st|0)|0,zr()|0,Qt=Rn(xo(Qt&7)|0,0,st|0)|0,vt=Qt|vt&~Ut,Qt=zr()|0|Mt,Tt>>>0>>0;)Tt=Tt+1|0;return $n(Qt|0),vt|0}function lu(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0;if(ht=Mr,Mr=Mr+64|0,ct=ht+40|0,Pt=ht+24|0,Mt=ht+12|0,Ut=ht,Rn(Qt|0,0,52)|0,Tt=zr()|0|134225919,!Qt)return(mt[vt+4>>2]|0)>2||(mt[vt+8>>2]|0)>2||(mt[vt+12>>2]|0)>2?(st=0,ct=0,$n(st|0),Mr=ht,ct|0):(Rn(Jn(vt)|0,0,45)|0,st=zr()|0|Tt,ct=-1,$n(st|0),Mr=ht,ct|0);if(mt[ct>>2]=mt[vt>>2],mt[ct+4>>2]=mt[vt+4>>2],mt[ct+8>>2]=mt[vt+8>>2],mt[ct+12>>2]=mt[vt+12>>2],st=ct+4|0,(Qt|0)>0)for(vt=-1;mt[Pt>>2]=mt[st>>2],mt[Pt+4>>2]=mt[st+4>>2],mt[Pt+8>>2]=mt[st+8>>2],Qt&1?(Xs(st),mt[Mt>>2]=mt[st>>2],mt[Mt+4>>2]=mt[st+4>>2],mt[Mt+8>>2]=mt[st+8>>2],$o(Mt)):(Uo(st),mt[Mt>>2]=mt[st>>2],mt[Mt+4>>2]=mt[st+4>>2],mt[Mt+8>>2]=mt[st+8>>2],CA(Mt)),tA(Pt,Mt,Ut),Ro(Ut),bt=(15-Qt|0)*3|0,Ct=Rn(7,0,bt|0)|0,Tt=Tt&~(zr()|0),bt=Rn($l(Ut)|0,0,bt|0)|0,vt=bt|vt&~Ct,Tt=zr()|0|Tt,(Qt|0)>1;)Qt=Qt+-1|0;else vt=-1;e:do if((mt[st>>2]|0)<=2&&(mt[ct+8>>2]|0)<=2&&(mt[ct+12>>2]|0)<=2){if(Pt=Jn(ct)|0,Qt=Rn(Pt|0,0,45)|0,Qt=Qt|vt,vt=zr()|0|Tt&-1040385,Ut=Go(ct)|0,!(pn(Pt)|0)){if((Ut|0)<=0)break;for(Mt=0;;){if(Pt=_n(Qt|0,vt|0,52)|0,zr()|0,Pt=Pt&15,Pt)for(Tt=1;bt=(15-Tt|0)*3|0,ct=_n(Qt|0,vt|0,bt|0)|0,zr()|0,Ct=Rn(7,0,bt|0)|0,vt=vt&~(zr()|0),bt=Rn(OA(ct&7)|0,0,bt|0)|0,Qt=Qt&~Ct|bt,vt=vt|(zr()|0),Tt>>>0>>0;)Tt=Tt+1|0;if(Mt=Mt+1|0,(Mt|0)==(Ut|0))break e}}Mt=_n(Qt|0,vt|0,52)|0,zr()|0,Mt=Mt&15;t:do if(Mt){Tt=1;r:for(;;){switch(bt=_n(Qt|0,vt|0,(15-Tt|0)*3|0)|0,zr()|0,bt&7){case 1:break r;case 0:break;default:break t}if(Tt>>>0>>0)Tt=Tt+1|0;else break t}if(Gs(Pt,mt[ct>>2]|0)|0)for(Tt=1;ct=(15-Tt|0)*3|0,Ct=Rn(7,0,ct|0)|0,bt=vt&~(zr()|0),vt=_n(Qt|0,vt|0,ct|0)|0,zr()|0,vt=Rn(xo(vt&7)|0,0,ct|0)|0,Qt=Qt&~Ct|vt,vt=bt|(zr()|0),Tt>>>0>>0;)Tt=Tt+1|0;else for(Tt=1;bt=(15-Tt|0)*3|0,ct=_n(Qt|0,vt|0,bt|0)|0,zr()|0,Ct=Rn(7,0,bt|0)|0,vt=vt&~(zr()|0),bt=Rn(OA(ct&7)|0,0,bt|0)|0,Qt=Qt&~Ct|bt,vt=vt|(zr()|0),Tt>>>0>>0;)Tt=Tt+1|0}while(!1);if((Ut|0)>0){Tt=0;do Qt=gA(Qt,vt)|0,vt=zr()|0,Tt=Tt+1|0;while((Tt|0)!=(Ut|0))}}else Qt=0,vt=0;while(!1);return Ct=vt,bt=Qt,$n(Ct|0),Mr=ht,bt|0}function Hs(vt){return vt=vt|0,(vt|0)%2|0|0}function JA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0;return Pt=Mr,Mr=Mr+16|0,Tt=Pt,Qt>>>0<=15&&(mt[vt+4>>2]&2146435072|0)!=2146435072&&(mt[vt+8+4>>2]&2146435072|0)!=2146435072?(su(vt,Qt,Tt),Qt=lu(Tt,Qt)|0,vt=zr()|0):(vt=0,Qt=0),$n(vt|0),Mr=Pt,Qt|0}function Ul(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0;if(Mt=Tt+4|0,Ut=_n(vt|0,Qt|0,52)|0,zr()|0,Ut=Ut&15,st=_n(vt|0,Qt|0,45)|0,zr()|0,Pt=(Ut|0)==0,pn(st&127)|0){if(Pt)return st=1,st|0;Pt=1}else{if(Pt)return st=0,st|0;!(mt[Mt>>2]|0)&&!(mt[Tt+8>>2]|0)?Pt=(mt[Tt+12>>2]|0)!=0&1:Pt=1}for(Tt=1;Tt&1?$o(Mt):CA(Mt),st=_n(vt|0,Qt|0,(15-Tt|0)*3|0)|0,zr()|0,ou(Mt,st&7),Tt>>>0>>0;)Tt=Tt+1|0;return Pt|0}function Sl(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0;bt=Mr,Mr=Mr+16|0,ht=bt,Ct=_n(vt|0,Qt|0,45)|0,zr()|0,Ct=Ct&127;e:do if(pn(Ct)|0&&(Ut=_n(vt|0,Qt|0,52)|0,zr()|0,Ut=Ut&15,(Ut|0)!=0)){Pt=1;t:for(;;){switch(ct=_n(vt|0,Qt|0,(15-Pt|0)*3|0)|0,zr()|0,ct&7){case 5:break t;case 0:break;default:{Pt=Qt;break e}}if(Pt>>>0>>0)Pt=Pt+1|0;else{Pt=Qt;break e}}for(Mt=1,Pt=Qt;Qt=(15-Mt|0)*3|0,st=Rn(7,0,Qt|0)|0,ct=Pt&~(zr()|0),Pt=_n(vt|0,Pt|0,Qt|0)|0,zr()|0,Pt=Rn(xo(Pt&7)|0,0,Qt|0)|0,vt=vt&~st|Pt,Pt=ct|(zr()|0),Mt>>>0>>0;)Mt=Mt+1|0}else Pt=Qt;while(!1);if(ct=7728+(Ct*28|0)|0,mt[Tt>>2]=mt[ct>>2],mt[Tt+4>>2]=mt[ct+4>>2],mt[Tt+8>>2]=mt[ct+8>>2],mt[Tt+12>>2]=mt[ct+12>>2],!(Ul(vt,Pt,Tt)|0)){Mr=bt;return}if(st=Tt+4|0,mt[ht>>2]=mt[st>>2],mt[ht+4>>2]=mt[st+4>>2],mt[ht+8>>2]=mt[st+8>>2],Ut=_n(vt|0,Pt|0,52)|0,zr()|0,ct=Ut&15,Ut&1?(CA(st),Ut=ct+1|0):Ut=ct,!(pn(Ct)|0))Pt=0;else{e:do if(!ct)Pt=0;else for(Qt=1;;){if(Mt=_n(vt|0,Pt|0,(15-Qt|0)*3|0)|0,zr()|0,Mt=Mt&7,Mt|0){Pt=Mt;break e}if(Qt>>>0>>0)Qt=Qt+1|0;else{Pt=0;break}}while(!1);Pt=(Pt|0)==4&1}if(!(yA(Tt,Ut,Pt,0)|0))(Ut|0)!=(ct|0)&&(mt[st>>2]=mt[ht>>2],mt[st+4>>2]=mt[ht+4>>2],mt[st+8>>2]=mt[ht+8>>2]);else{if(pn(Ct)|0)do;while(yA(Tt,Ut,0,0)|0);(Ut|0)!=(ct|0)&&Uo(st)}Mr=bt}function nA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;Pt=Mr,Mr=Mr+16|0,Mt=Pt,Sl(vt,Qt,Mt),Qt=_n(vt|0,Qt|0,52)|0,zr()|0,sA(Mt,Qt&15,Tt),Mr=Pt}function ys(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0;st=Mr,Mr=Mr+16|0,Ut=st,Sl(vt,Qt,Ut),Pt=_n(vt|0,Qt|0,45)|0,zr()|0,Pt=(pn(Pt&127)|0)==0,Mt=_n(vt|0,Qt|0,52)|0,zr()|0,Mt=Mt&15;e:do if(!Pt){if(Mt|0)for(Pt=1;;){if(ct=Rn(7,0,(15-Pt|0)*3|0)|0,!((ct&vt|0)==0&((zr()|0)&Qt|0)==0))break e;if(Pt>>>0>>0)Pt=Pt+1|0;else break}uA(Ut,Mt,0,5,Tt),Mr=st;return}while(!1);ro(Ut,Mt,0,6,Tt),Mr=st}function us(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;if(Pt=_n(vt|0,Qt|0,45)|0,zr()|0,!(pn(Pt&127)|0))return Pt=2,Pt|0;if(Pt=_n(vt|0,Qt|0,52)|0,zr()|0,Pt=Pt&15,!Pt)return Pt=5,Pt|0;for(Tt=1;;){if(Mt=Rn(7,0,(15-Tt|0)*3|0)|0,!((Mt&vt|0)==0&((zr()|0)&Qt|0)==0)){Tt=2,vt=6;break}if(Tt>>>0>>0)Tt=Tt+1|0;else{Tt=5,vt=6;break}}return(vt|0)==6?Tt|0:0}function zA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0;Ft=Mr,Mr=Mr+128|0,Ct=Ft+112|0,Ut=Ft+96|0,bt=Ft,Mt=_n(vt|0,Qt|0,52)|0,zr()|0,ct=Mt&15,mt[Ct>>2]=ct,st=_n(vt|0,Qt|0,45)|0,zr()|0,st=st&127;e:do if(pn(st)|0){if(ct|0)for(Pt=1;;){if(ht=Rn(7,0,(15-Pt|0)*3|0)|0,!((ht&vt|0)==0&((zr()|0)&Qt|0)==0)){Mt=0;break e}if(Pt>>>0>>0)Pt=Pt+1|0;else break}if(Mt&1)Mt=1;else{ht=Rn(ct+1|0,0,52)|0,bt=zr()|0|Qt&-15728641,Ct=Rn(7,0,(14-ct|0)*3|0)|0,zA((ht|vt)&~Ct,bt&~(zr()|0),Tt),Mr=Ft;return}}else Mt=0;while(!1);Sl(vt,Qt,Ut),Mt?(GA(Ut,Ct,bt),ht=5):(rA(Ut,Ct,bt),ht=6);e:do if(pn(st)|0)if(!ct)Pt=20;else for(Pt=1;;){if(st=Rn(7,0,(15-Pt|0)*3|0)|0,!((st&vt|0)==0&((zr()|0)&Qt|0)==0)){Pt=8;break e}if(Pt>>>0>>0)Pt=Pt+1|0;else{Pt=20;break}}else Pt=8;while(!1);if(ws(Tt|0,-1,Pt|0)|0,Mt){Mt=0;do{for(Ut=bt+(Mt<<4)|0,Gl(Ut,mt[Ct>>2]|0)|0,Ut=mt[Ut>>2]|0,Pt=0;st=Tt+(Pt<<2)|0,ct=mt[st>>2]|0,!((ct|0)==-1|(ct|0)==(Ut|0));)Pt=Pt+1|0;mt[st>>2]=Ut,Mt=Mt+1|0}while((Mt|0)!=(ht|0))}else{Mt=0;do{for(Ut=bt+(Mt<<4)|0,yA(Ut,mt[Ct>>2]|0,0,1)|0,Ut=mt[Ut>>2]|0,Pt=0;st=Tt+(Pt<<2)|0,ct=mt[st>>2]|0,!((ct|0)==-1|(ct|0)==(Ut|0));)Pt=Pt+1|0;mt[st>>2]=Ut,Mt=Mt+1|0}while((Mt|0)!=(ht|0))}Mr=Ft}function $s(){return 12}function Bs(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;if(Rn(vt|0,0,52)|0,ct=zr()|0|134225919,(vt|0)<1){Pt=0,Tt=0;do pn(Pt)|0&&(Rn(Pt|0,0,45)|0,st=ct|(zr()|0),vt=Qt+(Tt<<3)|0,mt[vt>>2]=-1,mt[vt+4>>2]=st,Tt=Tt+1|0),Pt=Pt+1|0;while((Pt|0)!=122);return}st=0,Tt=0;do{if(pn(st)|0){for(Rn(st|0,0,45)|0,Pt=1,Mt=-1,Ut=ct|(zr()|0);ht=Rn(7,0,(15-Pt|0)*3|0)|0,Mt=Mt&~ht,Ut=Ut&~(zr()|0),(Pt|0)!=(vt|0);)Pt=Pt+1|0;ht=Qt+(Tt<<3)|0,mt[ht>>2]=Mt,mt[ht+4>>2]=Ut,Tt=Tt+1|0}st=st+1|0}while((st|0)!=122)}function RA(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;if(ct=Mr,Mr=Mr+64|0,st=ct,(vt|0)==(Tt|0)&(Qt|0)==(Pt|0)|(!1|(Qt&2013265920|0)!=134217728|(!1|(Pt&2013265920|0)!=134217728))||(Mt=_n(vt|0,Qt|0,52)|0,zr()|0,Mt=Mt&15,Ut=_n(Tt|0,Pt|0,52)|0,zr()|0,(Mt|0)!=(Ut&15|0)))return st=0,Mr=ct,st|0;if(Ut=Mt+-1|0,Mt>>>0>1&&(Ct=aA(vt,Qt,Ut)|0,ht=zr()|0,Ut=aA(Tt,Pt,Ut)|0,(Ct|0)==(Ut|0)&(ht|0)==(zr()|0))&&(Ut=(Mt^15)*3|0,Mt=_n(vt|0,Qt|0,Ut|0)|0,zr()|0,Mt=Mt&7,Ut=_n(Tt|0,Pt|0,Ut|0)|0,zr()|0,Ut=Ut&7,(Mt|0)==0|(Ut|0)==0||(mt[21136+(Mt<<2)>>2]|0)==(Ut|0)||(mt[21168+(Mt<<2)>>2]|0)==(Ut|0)))return Ct=1,Mr=ct,Ct|0;Mt=st,Ut=Mt+56|0;do mt[Mt>>2]=0,Mt=Mt+4|0;while((Mt|0)<(Ut|0));return lA(vt,Qt,1,st),Ct=st,!((mt[Ct>>2]|0)==(Tt|0)&&(mt[Ct+4>>2]|0)==(Pt|0))&&(Ct=st+8|0,!((mt[Ct>>2]|0)==(Tt|0)&&(mt[Ct+4>>2]|0)==(Pt|0)))&&(Ct=st+16|0,!((mt[Ct>>2]|0)==(Tt|0)&&(mt[Ct+4>>2]|0)==(Pt|0)))&&(Ct=st+24|0,!((mt[Ct>>2]|0)==(Tt|0)&&(mt[Ct+4>>2]|0)==(Pt|0)))&&(Ct=st+32|0,!((mt[Ct>>2]|0)==(Tt|0)&&(mt[Ct+4>>2]|0)==(Pt|0)))&&(Ct=st+40|0,!((mt[Ct>>2]|0)==(Tt|0)&&(mt[Ct+4>>2]|0)==(Pt|0)))?(Mt=st+48|0,Mt=((mt[Mt>>2]|0)==(Tt|0)?(mt[Mt+4>>2]|0)==(Pt|0):0)&1):Mt=1,Ct=Mt,Mr=ct,Ct|0}function Nl(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0;if(Ct=Mr,Mr=Mr+16|0,st=Ct,!(RA(vt,Qt,Tt,Pt)|0))return ct=0,ht=0,$n(ct|0),Mr=Ct,ht|0;for(ct=Qt&-2130706433,Mt=(bo(vt,Qt)|0)==0,Mt=Mt?1:2;mt[st>>2]=0,bt=Cr(vt,Qt,Mt,st)|0,Ut=Mt+1|0,!((bt|0)==(Tt|0)&(zr()|0)==(Pt|0));)if(Ut>>>0<7)Mt=Ut;else{Mt=0,vt=0,ht=6;break}return(ht|0)==6?($n(Mt|0),Mr=Ct,vt|0):(bt=Rn(Mt|0,0,56)|0,ht=ct|(zr()|0)|268435456,bt=vt|bt,$n(ht|0),Mr=Ct,bt|0)}function $A(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;return Tt=!0&(Qt&2013265920|0)==268435456,$n((Tt?Qt&-2130706433|134217728:0)|0),(Tt?vt:0)|0}function xA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;return Pt=Mr,Mr=Mr+16|0,Tt=Pt,!0&(Qt&2013265920|0)==268435456?(Mt=_n(vt|0,Qt|0,56)|0,zr()|0,mt[Tt>>2]=0,Tt=Cr(vt,Qt&-2130706433|134217728,Mt&7,Tt)|0,Qt=zr()|0,$n(Qt|0),Mr=Pt,Tt|0):(Qt=0,Tt=0,$n(Qt|0),Mr=Pt,Tt|0)}function _A(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;if(!(!0&(Qt&2013265920|0)==268435456))return Tt=0,Tt|0;switch(Tt=_n(vt|0,Qt|0,56)|0,zr()|0,Tt&7){case 0:case 7:return Tt=0,Tt|0}return Tt=Qt&-2130706433|134217728,!0&(Qt&117440512|0)==16777216&(bo(vt,Tt)|0)!=0?(Tt=0,Tt|0):(Tt=ba(vt,Tt)|0,Tt|0)}function gs(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0;Ut=Mr,Mr=Mr+16|0,Pt=Ut,st=!0&(Qt&2013265920|0)==268435456,Mt=Qt&-2130706433|134217728,ct=Tt,mt[ct>>2]=st?vt:0,mt[ct+4>>2]=st?Mt:0,st?(Qt=_n(vt|0,Qt|0,56)|0,zr()|0,mt[Pt>>2]=0,vt=Cr(vt,Mt,Qt&7,Pt)|0,Qt=zr()|0):(vt=0,Qt=0),ct=Tt+8|0,mt[ct>>2]=vt,mt[ct+4>>2]=Qt,Mr=Ut}function iA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;Mt=(bo(vt,Qt)|0)==0,Qt=Qt&-2130706433,Pt=Tt,mt[Pt>>2]=Mt?vt:0,mt[Pt+4>>2]=Mt?Qt|285212672:0,Pt=Tt+8|0,mt[Pt>>2]=vt,mt[Pt+4>>2]=Qt|301989888,Pt=Tt+16|0,mt[Pt>>2]=vt,mt[Pt+4>>2]=Qt|318767104,Pt=Tt+24|0,mt[Pt>>2]=vt,mt[Pt+4>>2]=Qt|335544320,Pt=Tt+32|0,mt[Pt>>2]=vt,mt[Pt+4>>2]=Qt|352321536,Tt=Tt+40|0,mt[Tt>>2]=vt,mt[Tt+4>>2]=Qt|369098752}function ss(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0;if(st=Mr,Mr=Mr+16|0,Ut=st,Pt=_n(vt|0,Qt|0,56)|0,zr()|0,ct=!0&(Qt&2013265920|0)==268435456,Mt=ct?vt:0,vt=ct?Qt&-2130706433|134217728:0,Qt=LA(Mt,vt,Pt&7)|0,(Qt|0)==-1){mt[Tt>>2]=0,Mr=st;return}Sl(Mt,vt,Ut),Pt=_n(Mt|0,vt|0,52)|0,zr()|0,Pt=Pt&15,bo(Mt,vt)|0?uA(Ut,Pt,Qt,2,Tt):ro(Ut,Pt,Qt,2,Tt),Mr=st}function cu(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0;return Qt=Fs(1,12)|0,Qt||_i(22691,22646,49,22704),Tt=vt+4|0,Pt=mt[Tt>>2]|0,Pt|0?(Pt=Pt+8|0,mt[Pt>>2]=Qt,mt[Tt>>2]=Qt,Qt|0):(mt[vt>>2]|0&&_i(22721,22646,61,22744),Pt=vt,mt[Pt>>2]=Qt,mt[Tt>>2]=Qt,Qt|0)}function DA(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0;return Pt=xa(24)|0,Pt||_i(22758,22646,78,22772),mt[Pt>>2]=mt[Qt>>2],mt[Pt+4>>2]=mt[Qt+4>>2],mt[Pt+8>>2]=mt[Qt+8>>2],mt[Pt+12>>2]=mt[Qt+12>>2],mt[Pt+16>>2]=0,Qt=vt+4|0,Tt=mt[Qt>>2]|0,Tt|0?(mt[Tt+16>>2]=Pt,mt[Qt>>2]=Pt,Pt|0):(mt[vt>>2]|0&&_i(22787,22646,82,22772),mt[vt>>2]=Pt,mt[Qt>>2]=Pt,Pt|0)}function VA(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0;if(vt)for(Pt=1;;){if(Qt=mt[vt>>2]|0,Qt|0)do{if(Tt=mt[Qt>>2]|0,Tt|0)do Mt=Tt,Tt=mt[Tt+16>>2]|0,Xn(Mt);while(Tt|0);Mt=Qt,Qt=mt[Qt+8>>2]|0,Xn(Mt)}while(Qt|0);if(Qt=vt,vt=mt[vt+8>>2]|0,Pt||Xn(Qt),vt)Pt=0;else break}}function as(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0,sn=0,Fn=0,Kn=0,so=0,vo=0,io=0,Qo=0,Ho=0,zn=0;if(Mt=vt+8|0,mt[Mt>>2]|0)return zn=1,zn|0;if(Pt=mt[vt>>2]|0,!Pt)return zn=0,zn|0;Qt=Pt,Tt=0;do Tt=Tt+1|0,Qt=mt[Qt+8>>2]|0;while(Qt|0);if(Tt>>>0<2)return zn=0,zn|0;Qo=xa(Tt<<2)|0,Qo||_i(22807,22646,317,22826),io=xa(Tt<<5)|0,io||_i(22848,22646,321,22826),mt[vt>>2]=0,mn=vt+4|0,mt[mn>>2]=0,mt[Mt>>2]=0,Tt=0,vo=0,gn=0,Ft=0;e:for(;;){if(bt=mt[Pt>>2]|0,bt){Ut=0,st=bt;do{if(ht=+gr[st+8>>3],Qt=st,st=mt[st+16>>2]|0,Ct=(st|0)==0,Mt=Ct?bt:st,ct=+gr[Mt+8>>3],+tn(+(ht-ct))>3.141592653589793){zn=14;break}Ut=Ut+(ct-ht)*(+gr[Qt>>3]+ +gr[Mt>>3])}while(!Ct);if((zn|0)==14){zn=0,Ut=0,Qt=bt;do Dr=+gr[Qt+8>>3],so=Qt+16|0,Kn=mt[so>>2]|0,Kn=Kn|0?Kn:bt,en=+gr[Kn+8>>3],Ut=Ut+(+gr[Qt>>3]+ +gr[Kn>>3])*((en<0?en+6.283185307179586:en)-(Dr<0?Dr+6.283185307179586:Dr)),Qt=mt[(Qt|0?so:Pt)>>2]|0;while(Qt|0)}Ut>0?(mt[Qo+(vo<<2)>>2]=Pt,vo=vo+1|0,Mt=gn,Qt=Ft):zn=19}else zn=19;if((zn|0)==19){zn=0;do if(Tt){if(Qt=Tt+8|0,mt[Qt>>2]|0){zn=21;break e}if(Tt=Fs(1,12)|0,!Tt){zn=23;break e}mt[Qt>>2]=Tt,Mt=Tt+4|0,st=Tt,Qt=Ft}else if(Ft){Mt=mn,st=Ft+8|0,Qt=Pt,Tt=vt;break}else if(mt[vt>>2]|0){zn=27;break e}else{Mt=mn,st=vt,Qt=Pt,Tt=vt;break}while(!1);if(mt[st>>2]=Pt,mt[Mt>>2]=Pt,st=io+(gn<<5)|0,Ct=mt[Pt>>2]|0,Ct){for(bt=io+(gn<<5)+8|0,gr[bt>>3]=17976931348623157e292,Ft=io+(gn<<5)+24|0,gr[Ft>>3]=17976931348623157e292,gr[st>>3]=-17976931348623157e292,zt=io+(gn<<5)+16|0,gr[zt>>3]=-17976931348623157e292,Kr=17976931348623157e292,qr=-17976931348623157e292,Mt=0,nr=Ct,ht=17976931348623157e292,Br=17976931348623157e292,kr=-17976931348623157e292,ct=-17976931348623157e292;Ut=+gr[nr>>3],Dr=+gr[nr+8>>3],nr=mt[nr+16>>2]|0,dr=(nr|0)==0,en=+gr[(dr?Ct:nr)+8>>3],Ut>3]=Ut,ht=Ut),Dr>3]=Dr,Br=Dr),Ut>kr?gr[st>>3]=Ut:Ut=kr,Dr>ct&&(gr[zt>>3]=Dr,ct=Dr),Kr=Dr>0&Drqr?Dr:qr,Mt=Mt|+tn(+(Dr-en))>3.141592653589793,!dr;)kr=Ut;Mt&&(gr[zt>>3]=qr,gr[Ft>>3]=Kr)}else mt[st>>2]=0,mt[st+4>>2]=0,mt[st+8>>2]=0,mt[st+12>>2]=0,mt[st+16>>2]=0,mt[st+20>>2]=0,mt[st+24>>2]=0,mt[st+28>>2]=0;Mt=gn+1|0}if(so=Pt+8|0,Pt=mt[so>>2]|0,mt[so>>2]=0,Pt)gn=Mt,Ft=Qt;else{zn=45;break}}if((zn|0)==21)_i(22624,22646,35,22658);else if((zn|0)==23)_i(22678,22646,37,22658);else if((zn|0)==27)_i(22721,22646,61,22744);else if((zn|0)==45){e:do if((vo|0)>0){for(so=(Mt|0)==0,Fn=Mt<<2,Kn=(vt|0)==0,sn=0,Qt=0;;){if(yn=mt[Qo+(sn<<2)>>2]|0,so)zn=73;else{if(gn=xa(Fn)|0,!gn){zn=50;break}if(mn=xa(Fn)|0,!mn){zn=52;break}t:do if(Kn)Tt=0;else{for(Mt=0,Tt=0,st=vt;Pt=io+(Mt<<5)|0,ds(mt[st>>2]|0,Pt,mt[yn>>2]|0)|0?(mt[gn+(Tt<<2)>>2]=st,mt[mn+(Tt<<2)>>2]=Pt,dr=Tt+1|0):dr=Tt,st=mt[st+8>>2]|0,st;)Mt=Mt+1|0,Tt=dr;if((dr|0)>0)if(Pt=mt[gn>>2]|0,(dr|0)==1)Tt=Pt;else for(zt=0,nr=-1,Tt=Pt,Ft=Pt;;){for(Ct=mt[Ft>>2]|0,Pt=0,st=0;Mt=mt[mt[gn+(st<<2)>>2]>>2]|0,(Mt|0)==(Ct|0)?bt=Pt:bt=Pt+((ds(Mt,mt[mn+(st<<2)>>2]|0,mt[Ct>>2]|0)|0)&1)|0,st=st+1|0,(st|0)!=(dr|0);)Pt=bt;if(Mt=(bt|0)>(nr|0),Tt=Mt?Ft:Tt,Pt=zt+1|0,(Pt|0)==(dr|0))break t;zt=Pt,nr=Mt?bt:nr,Ft=mt[gn+(Pt<<2)>>2]|0}else Tt=0}while(!1);if(Xn(gn),Xn(mn),Tt){if(Mt=Tt+4|0,Pt=mt[Mt>>2]|0,Pt)Tt=Pt+8|0;else if(mt[Tt>>2]|0){zn=70;break}mt[Tt>>2]=yn,mt[Mt>>2]=yn}else zn=73}if((zn|0)==73){if(zn=0,Qt=mt[yn>>2]|0,Qt|0)do mn=Qt,Qt=mt[Qt+16>>2]|0,Xn(mn);while(Qt|0);Xn(yn),Qt=2}if(sn=sn+1|0,(sn|0)>=(vo|0)){Ho=Qt;break e}}(zn|0)==50?_i(22863,22646,249,22882):(zn|0)==52?_i(22901,22646,252,22882):(zn|0)==70&&_i(22721,22646,61,22744)}else Ho=0;while(!1);return Xn(Qo),Xn(io),zn=Ho,zn|0}return 0}function ds(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0;if(!(IA(Qt,Tt)|0)||(Qt=As(Qt)|0,Ct=+gr[Tt>>3],Pt=+gr[Tt+8>>3],Pt=Qt&Pt<0?Pt+6.283185307179586:Pt,vt=mt[vt>>2]|0,!vt))return vt=0,vt|0;if(Qt){Qt=0,Tt=vt;e:for(;;){for(;st=+gr[Tt>>3],ht=+gr[Tt+8>>3],Tt=Tt+16|0,bt=mt[Tt>>2]|0,bt=bt|0?bt:vt,Ut=+gr[bt>>3],Mt=+gr[bt+8>>3],st>Ut?(ct=st,st=ht):(ct=Ut,Ut=st,st=Mt,Mt=ht),!!(Ctct);)if(Tt=mt[Tt>>2]|0,!Tt){Tt=22;break e}if(ht=Mt<0?Mt+6.283185307179586:Mt,st=st<0?st+6.283185307179586:st,Pt=st==Pt|ht==Pt?Pt+-2220446049250313e-31:Pt,ht=ht+(Ct-Ut)/(ct-Ut)*(st-ht),(ht<0?ht+6.283185307179586:ht)>Pt&&(Qt=Qt^1),Tt=mt[Tt>>2]|0,!Tt){Tt=22;break}}if((Tt|0)==22)return Qt|0}else{Qt=0,Tt=vt;e:for(;;){for(;st=+gr[Tt>>3],ht=+gr[Tt+8>>3],Tt=Tt+16|0,bt=mt[Tt>>2]|0,bt=bt|0?bt:vt,Ut=+gr[bt>>3],Mt=+gr[bt+8>>3],st>Ut?(ct=st,st=ht):(ct=Ut,Ut=st,st=Mt,Mt=ht),!!(Ctct);)if(Tt=mt[Tt>>2]|0,!Tt){Tt=22;break e}if(Pt=st==Pt|Mt==Pt?Pt+-2220446049250313e-31:Pt,Mt+(Ct-Ut)/(ct-Ut)*(st-Mt)>Pt&&(Qt=Qt^1),Tt=mt[Tt>>2]|0,!Tt){Tt=22;break}}if((Tt|0)==22)return Qt|0}return 0}function hs(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0;if(qr=Mr,Mr=Mr+32|0,Kr=qr+16|0,kr=qr,Ut=_n(vt|0,Qt|0,52)|0,zr()|0,Ut=Ut&15,nr=_n(Tt|0,Pt|0,52)|0,zr()|0,(Ut|0)!=(nr&15|0))return Kr=1,Mr=qr,Kr|0;if(Ct=_n(vt|0,Qt|0,45)|0,zr()|0,Ct=Ct&127,bt=_n(Tt|0,Pt|0,45)|0,zr()|0,bt=bt&127,nr=(Ct|0)!=(bt|0),nr){if(ct=Zs(Ct,bt)|0,(ct|0)==7)return Kr=2,Mr=qr,Kr|0;ht=Zs(bt,Ct)|0,(ht|0)==7?_i(22925,22949,151,22959):(dr=ct,st=ht)}else dr=0,st=0;Ft=pn(Ct)|0,zt=pn(bt)|0,mt[Kr>>2]=0,mt[Kr+4>>2]=0,mt[Kr+8>>2]=0,mt[Kr+12>>2]=0;do if(dr){if(bt=mt[4304+(Ct*28|0)+(dr<<2)>>2]|0,ct=(bt|0)>0,zt)if(ct){Ct=0,ht=Tt,ct=Pt;do ht=Au(ht,ct)|0,ct=zr()|0,st=xo(st)|0,(st|0)==1&&(st=xo(1)|0),Ct=Ct+1|0;while((Ct|0)!=(bt|0));bt=st,Ct=ht,ht=ct}else bt=st,Ct=Tt,ht=Pt;else if(ct){Ct=0,ht=Tt,ct=Pt;do ht=Cs(ht,ct)|0,ct=zr()|0,st=xo(st)|0,Ct=Ct+1|0;while((Ct|0)!=(bt|0));bt=st,Ct=ht,ht=ct}else bt=st,Ct=Tt,ht=Pt;if(Ul(Ct,ht,Kr)|0,nr||_i(22972,22949,181,22959),ct=(Ft|0)!=0,st=(zt|0)!=0,ct&st&&_i(22999,22949,182,22959),ct){if(st=Eo(vt,Qt)|0,Ir[22032+(st*7|0)+dr>>0]|0){Ut=3;break}ht=mt[21200+(st*28|0)+(dr<<2)>>2]|0,Ct=ht,Br=26}else if(st){if(st=Eo(Ct,ht)|0,Ir[22032+(st*7|0)+bt>>0]|0){Ut=4;break}Ct=0,ht=mt[21200+(bt*28|0)+(st<<2)>>2]|0,Br=26}else st=0;if((Br|0)==26)if((ht|0)<=-1&&_i(23030,22949,212,22959),(Ct|0)<=-1&&_i(23053,22949,213,22959),(ht|0)>0){ct=Kr+4|0,st=0;do xl(ct),st=st+1|0;while((st|0)!=(ht|0));st=Ct}else st=Ct;if(mt[kr>>2]=0,mt[kr+4>>2]=0,mt[kr+8>>2]=0,ou(kr,dr),Ut|0)for(;Hs(Ut)|0?$o(kr):CA(kr),(Ut|0)>1;)Ut=Ut+-1|0;if((st|0)>0){Ut=0;do xl(kr),Ut=Ut+1|0;while((Ut|0)!=(st|0))}Br=Kr+4|0,Wo(Br,kr,Br),Ro(Br),Br=50}else if(Ul(Tt,Pt,Kr)|0,(Ft|0)!=0&(zt|0)!=0)if((bt|0)!=(Ct|0)&&_i(23077,22949,243,22959),st=Eo(vt,Qt)|0,Ut=Eo(Tt,Pt)|0,Ir[22032+(st*7|0)+Ut>>0]|0)Ut=5;else if(st=mt[21200+(st*28|0)+(Ut<<2)>>2]|0,(st|0)>0){ct=Kr+4|0,Ut=0;do xl(ct),Ut=Ut+1|0;while((Ut|0)!=(st|0));Br=50}else Br=50;else Br=50;while(!1);return(Br|0)==50&&(Ut=Kr+4|0,mt[Mt>>2]=mt[Ut>>2],mt[Mt+4>>2]=mt[Ut+4>>2],mt[Mt+8>>2]=mt[Ut+8>>2],Ut=0),Kr=Ut,Mr=qr,Kr|0}function zs(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0;if(dr=Mr,Mr=Mr+48|0,st=dr+36|0,ct=dr+24|0,ht=dr+12|0,Ct=dr,Ut=_n(vt|0,Qt|0,52)|0,zr()|0,Ut=Ut&15,zt=_n(vt|0,Qt|0,45)|0,zr()|0,zt=zt&127,bt=pn(zt)|0,Rn(Ut|0,0,52)|0,kr=zr()|0|134225919,Br=Pt,mt[Br>>2]=-1,mt[Br+4>>2]=kr,!Ut)return(mt[Tt>>2]|0)>1||(mt[Tt+4>>2]|0)>1||(mt[Tt+8>>2]|0)>1||(Mt=FA(zt,$l(Tt)|0)|0,(Mt|0)==127)?(kr=1,Mr=dr,kr|0):(nr=Rn(Mt|0,0,45)|0,Br=zr()|0,zt=Pt,Br=mt[zt+4>>2]&-1040385|Br,kr=Pt,mt[kr>>2]=mt[zt>>2]|nr,mt[kr+4>>2]=Br,kr=0,Mr=dr,kr|0);for(mt[st>>2]=mt[Tt>>2],mt[st+4>>2]=mt[Tt+4>>2],mt[st+8>>2]=mt[Tt+8>>2];mt[ct>>2]=mt[st>>2],mt[ct+4>>2]=mt[st+4>>2],mt[ct+8>>2]=mt[st+8>>2],Hs(Ut)|0?(Xs(st),mt[ht>>2]=mt[st>>2],mt[ht+4>>2]=mt[st+4>>2],mt[ht+8>>2]=mt[st+8>>2],$o(ht)):(Uo(st),mt[ht>>2]=mt[st>>2],mt[ht+4>>2]=mt[st+4>>2],mt[ht+8>>2]=mt[st+8>>2],CA(ht)),tA(ct,ht,Ct),Ro(Ct),Br=Pt,Kr=mt[Br>>2]|0,Br=mt[Br+4>>2]|0,qr=(15-Ut|0)*3|0,Tt=Rn(7,0,qr|0)|0,Br=Br&~(zr()|0),qr=Rn($l(Ct)|0,0,qr|0)|0,Br=zr()|0|Br,kr=Pt,mt[kr>>2]=qr|Kr&~Tt,mt[kr+4>>2]=Br,(Ut|0)>1;)Ut=Ut+-1|0;e:do if((mt[st>>2]|0)<=1&&(mt[st+4>>2]|0)<=1&&(mt[st+8>>2]|0)<=1){Ut=$l(st)|0,ct=FA(zt,Ut)|0,(ct|0)==127?Ct=0:Ct=pn(ct)|0;t:do if(Ut){if(bt){if(st=21408+((Eo(vt,Qt)|0)*28|0)+(Ut<<2)|0,st=mt[st>>2]|0,(st|0)>0){Tt=0;do Ut=OA(Ut)|0,Tt=Tt+1|0;while((Tt|0)!=(st|0))}if((Ut|0)==1){Mt=3;break e}Tt=FA(zt,Ut)|0,(Tt|0)==127&&_i(23104,22949,376,23134),pn(Tt)|0?_i(23147,22949,377,23134):(nr=st,Ft=Ut,Mt=Tt)}else nr=0,Ft=Ut,Mt=ct;if(ht=mt[4304+(zt*28|0)+(Ft<<2)>>2]|0,(ht|0)<=-1&&_i(23178,22949,384,23134),!Ct){if((nr|0)<=-1&&_i(23030,22949,417,23134),nr|0){st=Pt,Ut=0,Tt=mt[st>>2]|0,st=mt[st+4>>2]|0;do Tt=Es(Tt,st)|0,st=zr()|0,qr=Pt,mt[qr>>2]=Tt,mt[qr+4>>2]=st,Ut=Ut+1|0;while((Ut|0)<(nr|0))}if((ht|0)<=0){Ut=54;break}for(st=Pt,Ut=0,Tt=mt[st>>2]|0,st=mt[st+4>>2]|0;;)if(Tt=Es(Tt,st)|0,st=zr()|0,qr=Pt,mt[qr>>2]=Tt,mt[qr+4>>2]=st,Ut=Ut+1|0,(Ut|0)==(ht|0)){Ut=54;break t}}if(ct=Zs(Mt,zt)|0,(ct|0)==7&&_i(22925,22949,393,23134),Ut=Pt,Tt=mt[Ut>>2]|0,Ut=mt[Ut+4>>2]|0,(ht|0)>0){st=0;do Tt=Es(Tt,Ut)|0,Ut=zr()|0,qr=Pt,mt[qr>>2]=Tt,mt[qr+4>>2]=Ut,st=st+1|0;while((st|0)!=(ht|0))}if(Tt=Eo(Tt,Ut)|0,qr=Hn(Mt)|0,Tt=mt[(qr?21824:21616)+(ct*28|0)+(Tt<<2)>>2]|0,(Tt|0)<=-1&&_i(23030,22949,412,23134),!Tt)Ut=54;else{ct=Pt,Ut=0,st=mt[ct>>2]|0,ct=mt[ct+4>>2]|0;do st=gA(st,ct)|0,ct=zr()|0,qr=Pt,mt[qr>>2]=st,mt[qr+4>>2]=ct,Ut=Ut+1|0;while((Ut|0)<(Tt|0));Ut=54}}else if((bt|0)!=0&(Ct|0)!=0)if(qr=Eo(vt,Qt)|0,Ut=Pt,Ut=21408+(qr*28|0)+((Eo(mt[Ut>>2]|0,mt[Ut+4>>2]|0)|0)<<2)|0,Ut=mt[Ut>>2]|0,(Ut|0)<=-1&&_i(23201,22949,433,23134),!Ut)Mt=ct,Ut=55;else{st=Pt,Mt=0,Tt=mt[st>>2]|0,st=mt[st+4>>2]|0;do Tt=Es(Tt,st)|0,st=zr()|0,qr=Pt,mt[qr>>2]=Tt,mt[qr+4>>2]=st,Mt=Mt+1|0;while((Mt|0)<(Ut|0));Mt=ct,Ut=54}else Mt=ct,Ut=54;while(!1);if((Ut|0)==54&&Ct&&(Ut=55),(Ut|0)==55&&(qr=Pt,(Eo(mt[qr>>2]|0,mt[qr+4>>2]|0)|0)==1)){Mt=4;break}qr=Pt,kr=mt[qr>>2]|0,qr=mt[qr+4>>2]&-1040385,Kr=Rn(Mt|0,0,45)|0,qr=qr|(zr()|0),Mt=Pt,mt[Mt>>2]=kr|Kr,mt[Mt+4>>2]=qr,Mt=0}else Mt=2;while(!1);return qr=Mt,Mr=dr,qr|0}function KA(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0;return st=Mr,Mr=Mr+16|0,Ut=st,vt=hs(vt,Qt,Tt,Pt,Ut)|0,vt||(cA(Ut,Mt),vt=0),Mr=st,vt|0}function WA(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0;return Mt=Mr,Mr=Mr+16|0,Ut=Mt,Dl(Tt,Ut),Pt=zs(vt,Qt,Ut,Pt)|0,Mr=Mt,Pt|0}function PA(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0;return st=Mr,Mr=Mr+32|0,Mt=st+12|0,Ut=st,!(hs(vt,Qt,vt,Qt,Mt)|0)&&!(hs(vt,Qt,Tt,Pt,Ut)|0)?vt=wA(Mt,Ut)|0:vt=-1,Mr=st,vt|0}function qs(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0,st=0;return st=Mr,Mr=Mr+32|0,Mt=st+12|0,Ut=st,!(hs(vt,Qt,vt,Qt,Mt)|0)&&!(hs(vt,Qt,Tt,Pt,Ut)|0)?vt=wA(Mt,Ut)|0:vt=-1,Mr=st,(vt>>>31^1)+vt|0}function Wl(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0;if(gn=Mr,Mr=Mr+48|0,Ut=gn+24|0,st=gn+12|0,Dr=gn,!(hs(vt,Qt,vt,Qt,Ut)|0)&&!(hs(vt,Qt,Tt,Pt,st)|0)){if(en=wA(Ut,st)|0,(en|0)<0)return Dr=en,Mr=gn,Dr|0;for(mt[Ut>>2]=0,mt[Ut+4>>2]=0,mt[Ut+8>>2]=0,mt[st>>2]=0,mt[st+4>>2]=0,mt[st+8>>2]=0,hs(vt,Qt,vt,Qt,Ut)|0,hs(vt,Qt,Tt,Pt,st)|0,Bo(Ut),Bo(st),en?(bt=mt[Ut>>2]|0,nr=+(en|0),kr=Ut+4|0,Ft=mt[kr>>2]|0,Kr=Ut+8|0,zt=mt[Kr>>2]|0,qr=Ut,Tt=bt,Pt=Ft,Ut=zt,dr=+((mt[st>>2]|0)-bt|0)/nr,Br=+((mt[st+4>>2]|0)-Ft|0)/nr,nr=+((mt[st+8>>2]|0)-zt|0)/nr):(Pt=Ut+4|0,zt=Ut+8|0,kr=Pt,Kr=zt,qr=Ut,Tt=mt[Ut>>2]|0,Pt=mt[Pt>>2]|0,Ut=mt[zt>>2]|0,dr=0,Br=0,nr=0),mt[Dr>>2]=Tt,zt=Dr+4|0,mt[zt>>2]=Pt,Ft=Dr+8|0,mt[Ft>>2]=Ut,bt=0;;){ht=+(bt|0),mn=dr*ht+ +(Tt|0),ct=Br*ht+ +(mt[kr>>2]|0),ht=nr*ht+ +(mt[Kr>>2]|0),Pt=~~+hA(+mn),st=~~+hA(+ct),Tt=~~+hA(+ht),mn=+tn(+(+(Pt|0)-mn)),ct=+tn(+(+(st|0)-ct)),ht=+tn(+(+(Tt|0)-ht));do if(mn>ct&mn>ht)Pt=0-(st+Tt)|0,Ut=st;else if(Ct=0-Pt|0,ct>ht){Ut=Ct-Tt|0;break}else{Ut=st,Tt=Ct-st|0;break}while(!1);if(mt[Dr>>2]=Pt,mt[zt>>2]=Ut,mt[Ft>>2]=Tt,Pn(Dr),zs(vt,Qt,Dr,Mt+(bt<<3)|0)|0,(bt|0)==(en|0))break;bt=bt+1|0,Tt=mt[qr>>2]|0}return Dr=0,Mr=gn,Dr|0}return Dr=-1,Mr=gn,Dr|0}function Yo(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;if(!Qt)return Tt=1,Tt|0;Tt=vt,vt=1;do vt=Io(Qt&1|0?Tt:1,vt)|0,Qt=Qt>>1,Tt=Io(Tt,Tt)|0;while(Qt|0);return vt|0}function qA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0;if(!(IA(Qt,Tt)|0)||(Qt=As(Qt)|0,zt=+gr[Tt>>3],Pt=+gr[Tt+8>>3],Pt=Qt&Pt<0?Pt+6.283185307179586:Pt,Ft=mt[vt>>2]|0,(Ft|0)<=0))return Ft=0,Ft|0;if(bt=mt[vt+4>>2]|0,Qt){Qt=0,Tt=-1,vt=0;e:for(;;){for(Ct=vt;st=+gr[bt+(Ct<<4)>>3],ht=+gr[bt+(Ct<<4)+8>>3],vt=(Tt+2|0)%(Ft|0)|0,Ut=+gr[bt+(vt<<4)>>3],Mt=+gr[bt+(vt<<4)+8>>3],st>Ut?(ct=st,st=ht):(ct=Ut,Ut=st,st=Mt,Mt=ht),!!(ztct);)if(Tt=Ct+1|0,(Tt|0)<(Ft|0))vt=Ct,Ct=Tt,Tt=vt;else{Tt=22;break e}if(ht=Mt<0?Mt+6.283185307179586:Mt,st=st<0?st+6.283185307179586:st,Pt=st==Pt|ht==Pt?Pt+-2220446049250313e-31:Pt,ht=ht+(zt-Ut)/(ct-Ut)*(st-ht),(ht<0?ht+6.283185307179586:ht)>Pt&&(Qt=Qt^1),vt=Ct+1|0,(vt|0)>=(Ft|0)){Tt=22;break}else Tt=Ct}if((Tt|0)==22)return Qt|0}else{Qt=0,Tt=-1,vt=0;e:for(;;){for(Ct=vt;st=+gr[bt+(Ct<<4)>>3],ht=+gr[bt+(Ct<<4)+8>>3],vt=(Tt+2|0)%(Ft|0)|0,Ut=+gr[bt+(vt<<4)>>3],Mt=+gr[bt+(vt<<4)+8>>3],st>Ut?(ct=st,st=ht):(ct=Ut,Ut=st,st=Mt,Mt=ht),!!(ztct);)if(Tt=Ct+1|0,(Tt|0)<(Ft|0))vt=Ct,Ct=Tt,Tt=vt;else{Tt=22;break e}if(Pt=st==Pt|Mt==Pt?Pt+-2220446049250313e-31:Pt,Mt+(zt-Ut)/(ct-Ut)*(st-Mt)>Pt&&(Qt=Qt^1),vt=Ct+1|0,(vt|0)>=(Ft|0)){Tt=22;break}else Tt=Ct}if((Tt|0)==22)return Qt|0}return 0}function Ys(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0;if(dr=mt[vt>>2]|0,!dr){mt[Qt>>2]=0,mt[Qt+4>>2]=0,mt[Qt+8>>2]=0,mt[Qt+12>>2]=0,mt[Qt+16>>2]=0,mt[Qt+20>>2]=0,mt[Qt+24>>2]=0,mt[Qt+28>>2]=0;return}if(Br=Qt+8|0,gr[Br>>3]=17976931348623157e292,kr=Qt+24|0,gr[kr>>3]=17976931348623157e292,gr[Qt>>3]=-17976931348623157e292,Kr=Qt+16|0,gr[Kr>>3]=-17976931348623157e292,!((dr|0)<=0)){for(zt=mt[vt+4>>2]|0,Ct=17976931348623157e292,bt=-17976931348623157e292,Ft=0,vt=-1,Ut=17976931348623157e292,st=17976931348623157e292,ht=-17976931348623157e292,Pt=-17976931348623157e292,nr=0;Tt=+gr[zt+(nr<<4)>>3],ct=+gr[zt+(nr<<4)+8>>3],vt=vt+2|0,Mt=+gr[zt+(((vt|0)==(dr|0)?0:vt)<<4)+8>>3],Tt>3]=Tt,Ut=Tt),ct>3]=ct,st=ct),Tt>ht?gr[Qt>>3]=Tt:Tt=ht,ct>Pt&&(gr[Kr>>3]=ct,Pt=ct),Ct=ct>0&ctbt?ct:bt,Ft=Ft|+tn(+(ct-Mt))>3.141592653589793,vt=nr+1|0,(vt|0)!=(dr|0);)qr=nr,ht=Tt,nr=vt,vt=qr;Ft&&(gr[Kr>>3]=bt,gr[kr>>3]=Ct)}}function Zo(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0,mn=0,yn=0;if(dr=mt[vt>>2]|0,dr){if(Br=Qt+8|0,gr[Br>>3]=17976931348623157e292,kr=Qt+24|0,gr[kr>>3]=17976931348623157e292,gr[Qt>>3]=-17976931348623157e292,Kr=Qt+16|0,gr[Kr>>3]=-17976931348623157e292,(dr|0)>0){for(Mt=mt[vt+4>>2]|0,zt=17976931348623157e292,nr=-17976931348623157e292,Pt=0,Tt=-1,ht=17976931348623157e292,Ct=17976931348623157e292,Ft=-17976931348623157e292,st=-17976931348623157e292,qr=0;Ut=+gr[Mt+(qr<<4)>>3],bt=+gr[Mt+(qr<<4)+8>>3],mn=Tt+2|0,ct=+gr[Mt+(((mn|0)==(dr|0)?0:mn)<<4)+8>>3],Ut>3]=Ut,ht=Ut),bt>3]=bt,Ct=bt),Ut>Ft?gr[Qt>>3]=Ut:Ut=Ft,bt>st&&(gr[Kr>>3]=bt,st=bt),zt=bt>0&btnr?bt:nr,Pt=Pt|+tn(+(bt-ct))>3.141592653589793,Tt=qr+1|0,(Tt|0)!=(dr|0);)mn=qr,Ft=Ut,qr=Tt,Tt=mn;Pt&&(gr[Kr>>3]=nr,gr[kr>>3]=zt)}}else mt[Qt>>2]=0,mt[Qt+4>>2]=0,mt[Qt+8>>2]=0,mt[Qt+12>>2]=0,mt[Qt+16>>2]=0,mt[Qt+20>>2]=0,mt[Qt+24>>2]=0,mt[Qt+28>>2]=0;if(mn=vt+8|0,Tt=mt[mn>>2]|0,!((Tt|0)<=0)){gn=vt+12|0,Dr=0;do if(Mt=mt[gn>>2]|0,Pt=Dr,Dr=Dr+1|0,kr=Qt+(Dr<<5)|0,Kr=mt[Mt+(Pt<<3)>>2]|0,Kr){if(qr=Qt+(Dr<<5)+8|0,gr[qr>>3]=17976931348623157e292,vt=Qt+(Dr<<5)+24|0,gr[vt>>3]=17976931348623157e292,gr[kr>>3]=-17976931348623157e292,en=Qt+(Dr<<5)+16|0,gr[en>>3]=-17976931348623157e292,(Kr|0)>0){for(dr=mt[Mt+(Pt<<3)+4>>2]|0,zt=17976931348623157e292,nr=-17976931348623157e292,Mt=0,Pt=-1,Br=0,ht=17976931348623157e292,Ct=17976931348623157e292,bt=-17976931348623157e292,st=-17976931348623157e292;Ut=+gr[dr+(Br<<4)>>3],Ft=+gr[dr+(Br<<4)+8>>3],Pt=Pt+2|0,ct=+gr[dr+(((Pt|0)==(Kr|0)?0:Pt)<<4)+8>>3],Ut>3]=Ut,ht=Ut),Ft>3]=Ft,Ct=Ft),Ut>bt?gr[kr>>3]=Ut:Ut=bt,Ft>st&&(gr[en>>3]=Ft,st=Ft),zt=Ft>0&Ftnr?Ft:nr,Mt=Mt|+tn(+(Ft-ct))>3.141592653589793,Pt=Br+1|0,(Pt|0)!=(Kr|0);)yn=Br,Br=Pt,bt=Ut,Pt=yn;Mt&&(gr[en>>3]=nr,gr[vt>>3]=zt)}}else mt[kr>>2]=0,mt[kr+4>>2]=0,mt[kr+8>>2]=0,mt[kr+12>>2]=0,mt[kr+16>>2]=0,mt[kr+20>>2]=0,mt[kr+24>>2]=0,mt[kr+28>>2]=0,Tt=mt[mn>>2]|0;while((Dr|0)<(Tt|0))}}function Ls(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0;if(!(qA(vt,Qt,Tt)|0))return Mt=0,Mt|0;if(Mt=vt+8|0,(mt[Mt>>2]|0)<=0)return Mt=1,Mt|0;for(Pt=vt+12|0,vt=0;;){if(Ut=vt,vt=vt+1|0,qA((mt[Pt>>2]|0)+(Ut<<3)|0,Qt+(vt<<5)|0,Tt)|0){vt=0,Pt=6;break}if((vt|0)>=(mt[Mt>>2]|0)){vt=1,Pt=6;break}}return(Pt|0)==6?vt|0:0}function vA(){return 8}function ZA(){return 16}function $a(){return 168}function XA(){return 8}function Ns(){return 16}function _s(){return 12}function Mo(){return 8}function Hl(vt){vt=vt|0;var Qt=0,Tt=0;return Tt=+gr[vt>>3],Qt=+gr[vt+8>>3],+ +cn(+(Tt*Tt+Qt*Qt))}function Vs(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0;Ct=+gr[vt>>3],ht=+gr[Qt>>3]-Ct,ct=+gr[vt+8>>3],st=+gr[Qt+8>>3]-ct,Ft=+gr[Tt>>3],Ut=+gr[Pt>>3]-Ft,zt=+gr[Tt+8>>3],bt=+gr[Pt+8>>3]-zt,Ut=(Ut*(ct-zt)-(Ct-Ft)*bt)/(ht*bt-st*Ut),gr[Mt>>3]=Ct+ht*Ut,gr[Mt+8>>3]=ct+st*Ut}function Qs(vt,Qt){return vt=vt|0,Qt=Qt|0,+gr[vt>>3]!=+gr[Qt>>3]?(Qt=0,Qt|0):(Qt=+gr[vt+8>>3]==+gr[Qt+8>>3],Qt|0)}function Po(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;return Mt=+gr[vt>>3]-+gr[Qt>>3],Pt=+gr[vt+8>>3]-+gr[Qt+8>>3],Tt=+gr[vt+16>>3]-+gr[Qt+16>>3],+(Mt*Mt+Pt*Pt+Tt*Tt)}function Zl(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0;Tt=+gr[vt>>3],Pt=+hn(+Tt),Tt=+vn(+Tt),gr[Qt+16>>3]=Tt,Tt=+gr[vt+8>>3],Mt=Pt*+hn(+Tt),gr[Qt>>3]=Mt,Tt=Pt*+vn(+Tt),gr[Qt+8>>3]=Tt}function Al(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0;if(Ct=Mr,Mr=Mr+32|0,Mt=Ct+16|0,Ut=Ct,Sl(vt,Qt,Mt),st=ga(vt,Qt)|0,ht=Eo(vt,Qt)|0,Wn(st,Ut),Qt=Vl(st,mt[Mt>>2]|0)|0,!(pn(st)|0))return ht=Qt,Mr=Ct,ht|0;do switch(st|0){case 4:{vt=0,Tt=14;break}case 14:{vt=1,Tt=14;break}case 24:{vt=2,Tt=14;break}case 38:{vt=3,Tt=14;break}case 49:{vt=4,Tt=14;break}case 58:{vt=5,Tt=14;break}case 63:{vt=6,Tt=14;break}case 72:{vt=7,Tt=14;break}case 83:{vt=8,Tt=14;break}case 97:{vt=9,Tt=14;break}case 107:{vt=10,Tt=14;break}case 117:{vt=11,Tt=14;break}default:ct=0,Pt=0}while(!1);return(Tt|0)==14&&(ct=mt[22096+(vt*24|0)+8>>2]|0,Pt=mt[22096+(vt*24|0)+16>>2]|0),vt=mt[Mt>>2]|0,(vt|0)!=(mt[Ut>>2]|0)&&(st=Hn(st)|0,vt=mt[Mt>>2]|0,st|(vt|0)==(Pt|0)&&(Qt=(Qt+1|0)%6|0)),(ht|0)==3&(vt|0)==(Pt|0)?(ht=(Qt+5|0)%6|0,Mr=Ct,ht|0):(ht|0)==5&(vt|0)==(ct|0)?(ht=(Qt+1|0)%6|0,Mr=Ct,ht|0):(ht=Qt,Mr=Ct,ht|0)}function LA(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;return Pt=bo(vt,Qt)|0,(Tt+-1|0)>>>0>5||(Mt=(Pt|0)!=0,(Tt|0)==1&Mt)?(Tt=-1,Tt|0):(Pt=Al(vt,Qt)|0,Mt?(Tt=(5-Pt+(mt[22384+(Tt<<2)>>2]|0)|0)%5|0,Tt|0):(Tt=(6-Pt+(mt[22416+(Tt<<2)>>2]|0)|0)%6|0,Tt|0))}function ho(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0;(Qt|0)>0?(Pt=Fs(Qt,4)|0,mt[vt>>2]=Pt,Pt||_i(23230,23253,40,23267)):mt[vt>>2]=0,mt[vt+4>>2]=Qt,mt[vt+8>>2]=0,mt[vt+12>>2]=Tt}function Ss(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0;Mt=vt+4|0,Ut=vt+12|0,st=vt+8|0;e:for(;;){for(Tt=mt[Mt>>2]|0,Qt=0;;){if((Qt|0)>=(Tt|0))break e;if(Pt=mt[vt>>2]|0,ct=mt[Pt+(Qt<<2)>>2]|0,!ct)Qt=Qt+1|0;else break}Qt=Pt+(~~(+tn(+(+En(10,+ +(15-(mt[Ut>>2]|0)|0))*(+gr[ct>>3]+ +gr[ct+8>>3])))%+(Tt|0))>>>0<<2)|0,Tt=mt[Qt>>2]|0;t:do if(Tt|0){if(Pt=ct+32|0,(Tt|0)==(ct|0))mt[Qt>>2]=mt[Pt>>2];else{if(Tt=Tt+32|0,Qt=mt[Tt>>2]|0,!Qt)break;for(;(Qt|0)!=(ct|0);)if(Tt=Qt+32|0,Qt=mt[Tt>>2]|0,!Qt)break t;mt[Tt>>2]=mt[Pt>>2]}Xn(ct),mt[st>>2]=(mt[st>>2]|0)+-1}while(!1)}Xn(mt[vt>>2]|0)}function Tl(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0;for(Pt=mt[vt+4>>2]|0,Tt=0;;){if((Tt|0)>=(Pt|0)){Qt=0,Tt=4;break}if(Qt=mt[(mt[vt>>2]|0)+(Tt<<2)>>2]|0,!Qt)Tt=Tt+1|0;else{Tt=4;break}}return(Tt|0)==4?Qt|0:0}function Ms(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0,Pt=0,Mt=0,Ut=0;if(Tt=~~(+tn(+(+En(10,+ +(15-(mt[vt+12>>2]|0)|0))*(+gr[Qt>>3]+ +gr[Qt+8>>3])))%+(mt[vt+4>>2]|0))>>>0,Tt=(mt[vt>>2]|0)+(Tt<<2)|0,Pt=mt[Tt>>2]|0,!Pt)return Ut=1,Ut|0;Ut=Qt+32|0;do if((Pt|0)!=(Qt|0)){if(Tt=mt[Pt+32>>2]|0,!Tt)return Ut=1,Ut|0;for(Mt=Tt;;){if((Mt|0)==(Qt|0)){Mt=8;break}if(Tt=mt[Mt+32>>2]|0,Tt)Pt=Mt,Mt=Tt;else{Tt=1,Mt=10;break}}if((Mt|0)==8){mt[Pt+32>>2]=mt[Ut>>2];break}else if((Mt|0)==10)return Tt|0}else mt[Tt>>2]=mt[Ut>>2];while(!1);return Xn(Qt),Ut=vt+8|0,mt[Ut>>2]=(mt[Ut>>2]|0)+-1,Ut=0,Ut|0}function Xl(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0;Ut=xa(40)|0,Ut||_i(23283,23253,98,23296),mt[Ut>>2]=mt[Qt>>2],mt[Ut+4>>2]=mt[Qt+4>>2],mt[Ut+8>>2]=mt[Qt+8>>2],mt[Ut+12>>2]=mt[Qt+12>>2],Mt=Ut+16|0,mt[Mt>>2]=mt[Tt>>2],mt[Mt+4>>2]=mt[Tt+4>>2],mt[Mt+8>>2]=mt[Tt+8>>2],mt[Mt+12>>2]=mt[Tt+12>>2],mt[Ut+32>>2]=0,Mt=~~(+tn(+(+En(10,+ +(15-(mt[vt+12>>2]|0)|0))*(+gr[Qt>>3]+ +gr[Qt+8>>3])))%+(mt[vt+4>>2]|0))>>>0,Mt=(mt[vt>>2]|0)+(Mt<<2)|0,Pt=mt[Mt>>2]|0;do if(!Pt)mt[Mt>>2]=Ut;else{for(;!(na(Pt,Qt)|0&&na(Pt+16|0,Tt)|0);)if(Mt=mt[Pt+32>>2]|0,Pt=Mt|0?Mt:Pt,!(mt[Pt+32>>2]|0)){st=10;break}if((st|0)==10){mt[Pt+32>>2]=Ut;break}return Xn(Ut),st=Pt,st|0}while(!1);return st=vt+8|0,mt[st>>2]=(mt[st>>2]|0)+1,st=Ut,st|0}function Yl(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0;if(Mt=~~(+tn(+(+En(10,+ +(15-(mt[vt+12>>2]|0)|0))*(+gr[Qt>>3]+ +gr[Qt+8>>3])))%+(mt[vt+4>>2]|0))>>>0,Mt=mt[(mt[vt>>2]|0)+(Mt<<2)>>2]|0,!Mt)return Tt=0,Tt|0;if(!Tt){for(vt=Mt;;){if(na(vt,Qt)|0){Pt=10;break}if(vt=mt[vt+32>>2]|0,!vt){vt=0,Pt=10;break}}if((Pt|0)==10)return vt|0}for(vt=Mt;;){if(na(vt,Qt)|0&&na(vt+16|0,Tt)|0){Pt=10;break}if(vt=mt[vt+32>>2]|0,!vt){vt=0,Pt=10;break}}return(Pt|0)==10?vt|0:0}function po(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;if(Tt=~~(+tn(+(+En(10,+ +(15-(mt[vt+12>>2]|0)|0))*(+gr[Qt>>3]+ +gr[Qt+8>>3])))%+(mt[vt+4>>2]|0))>>>0,vt=mt[(mt[vt>>2]|0)+(Tt<<2)>>2]|0,!vt)return Tt=0,Tt|0;for(;;){if(na(vt,Qt)|0){Qt=5;break}if(vt=mt[vt+32>>2]|0,!vt){vt=0,Qt=5;break}}return(Qt|0)==5?vt|0:0}function uu(){return 23312}function fA(vt){return vt=+vt,+ +Cl(+vt)}function Ml(vt){return vt=+vt,~~+fA(vt)|0}function xa(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0,Br=0,kr=0,Kr=0,qr=0,en=0,Dr=0,gn=0;gn=Mr,Mr=Mr+16|0,zt=gn;do if(vt>>>0<245){if(Ct=vt>>>0<11?16:vt+11&-8,vt=Ct>>>3,Ft=mt[5829]|0,Tt=Ft>>>vt,Tt&3|0)return Qt=(Tt&1^1)+vt|0,vt=23356+(Qt<<1<<2)|0,Tt=vt+8|0,Pt=mt[Tt>>2]|0,Mt=Pt+8|0,Ut=mt[Mt>>2]|0,(Ut|0)==(vt|0)?mt[5829]=Ft&~(1<>2]=vt,mt[Tt>>2]=Ut),Dr=Qt<<3,mt[Pt+4>>2]=Dr|3,Dr=Pt+Dr+4|0,mt[Dr>>2]=mt[Dr>>2]|1,Dr=Mt,Mr=gn,Dr|0;if(bt=mt[5831]|0,Ct>>>0>bt>>>0){if(Tt|0)return Qt=2<>>12&16,Qt=Qt>>>ct,Tt=Qt>>>5&8,Qt=Qt>>>Tt,Ut=Qt>>>2&4,Qt=Qt>>>Ut,vt=Qt>>>1&2,Qt=Qt>>>vt,Pt=Qt>>>1&1,Pt=(Tt|ct|Ut|vt|Pt)+(Qt>>>Pt)|0,Qt=23356+(Pt<<1<<2)|0,vt=Qt+8|0,Ut=mt[vt>>2]|0,ct=Ut+8|0,Tt=mt[ct>>2]|0,(Tt|0)==(Qt|0)?(vt=Ft&~(1<>2]=Qt,mt[vt>>2]=Tt,vt=Ft),Dr=Pt<<3,st=Dr-Ct|0,mt[Ut+4>>2]=Ct|3,Mt=Ut+Ct|0,mt[Mt+4>>2]=st|1,mt[Ut+Dr>>2]=st,bt|0&&(Pt=mt[5834]|0,Qt=bt>>>3,Tt=23356+(Qt<<1<<2)|0,Qt=1<>2]|0):(mt[5829]=vt|Qt,Qt=Tt,vt=Tt+8|0),mt[vt>>2]=Pt,mt[Qt+12>>2]=Pt,mt[Pt+8>>2]=Qt,mt[Pt+12>>2]=Tt),mt[5831]=st,mt[5834]=Mt,Dr=ct,Mr=gn,Dr|0;if(Ut=mt[5830]|0,Ut){for(Tt=(Ut&0-Ut)+-1|0,Mt=Tt>>>12&16,Tt=Tt>>>Mt,Pt=Tt>>>5&8,Tt=Tt>>>Pt,st=Tt>>>2&4,Tt=Tt>>>st,ct=Tt>>>1&2,Tt=Tt>>>ct,ht=Tt>>>1&1,ht=mt[23620+((Pt|Mt|st|ct|ht)+(Tt>>>ht)<<2)>>2]|0,Tt=ht,ct=ht,ht=(mt[ht+4>>2]&-8)-Ct|0;vt=mt[Tt+16>>2]|0,!(!vt&&(vt=mt[Tt+20>>2]|0,!vt));)st=(mt[vt+4>>2]&-8)-Ct|0,Mt=st>>>0>>0,Tt=vt,ct=Mt?vt:ct,ht=Mt?st:ht;if(st=ct+Ct|0,st>>>0>ct>>>0){Mt=mt[ct+24>>2]|0,Qt=mt[ct+12>>2]|0;do if((Qt|0)==(ct|0)){if(vt=ct+20|0,Qt=mt[vt>>2]|0,!Qt&&(vt=ct+16|0,Qt=mt[vt>>2]|0,!Qt)){Tt=0;break}for(;;)if(Pt=Qt+20|0,Tt=mt[Pt>>2]|0,Tt)Qt=Tt,vt=Pt;else if(Pt=Qt+16|0,Tt=mt[Pt>>2]|0,Tt)Qt=Tt,vt=Pt;else break;mt[vt>>2]=0,Tt=Qt}else Tt=mt[ct+8>>2]|0,mt[Tt+12>>2]=Qt,mt[Qt+8>>2]=Tt,Tt=Qt;while(!1);do if(Mt|0){if(Qt=mt[ct+28>>2]|0,vt=23620+(Qt<<2)|0,(ct|0)==(mt[vt>>2]|0)){if(mt[vt>>2]=Tt,!Tt){mt[5830]=Ut&~(1<>2]|0)==(ct|0)?Dr:Mt+20|0)>>2]=Tt,!Tt)break;mt[Tt+24>>2]=Mt,Qt=mt[ct+16>>2]|0,Qt|0&&(mt[Tt+16>>2]=Qt,mt[Qt+24>>2]=Tt),Qt=mt[ct+20>>2]|0,Qt|0&&(mt[Tt+20>>2]=Qt,mt[Qt+24>>2]=Tt)}while(!1);return ht>>>0<16?(Dr=ht+Ct|0,mt[ct+4>>2]=Dr|3,Dr=ct+Dr+4|0,mt[Dr>>2]=mt[Dr>>2]|1):(mt[ct+4>>2]=Ct|3,mt[st+4>>2]=ht|1,mt[st+ht>>2]=ht,bt|0&&(Pt=mt[5834]|0,Qt=bt>>>3,Tt=23356+(Qt<<1<<2)|0,Qt=1<>2]|0):(mt[5829]=Qt|Ft,Qt=Tt,vt=Tt+8|0),mt[vt>>2]=Pt,mt[Qt+12>>2]=Pt,mt[Pt+8>>2]=Qt,mt[Pt+12>>2]=Tt),mt[5831]=ht,mt[5834]=st),Dr=ct+8|0,Mr=gn,Dr|0}else Ft=Ct}else Ft=Ct}else Ft=Ct}else if(vt>>>0<=4294967231)if(vt=vt+11|0,Ct=vt&-8,Pt=mt[5830]|0,Pt){Mt=0-Ct|0,vt=vt>>>8,vt?Ct>>>0>16777215?ht=31:(Ft=(vt+1048320|0)>>>16&8,Br=vt<>>16&4,Br=Br<>>16&2,ht=14-(ct|Ft|ht)+(Br<>>15)|0,ht=Ct>>>(ht+7|0)&1|ht<<1):ht=0,Tt=mt[23620+(ht<<2)>>2]|0;e:do if(!Tt)Tt=0,vt=0,Br=61;else for(vt=0,ct=Ct<<((ht|0)==31?0:25-(ht>>>1)|0),Ut=0;;){if(st=(mt[Tt+4>>2]&-8)-Ct|0,st>>>0>>0)if(st)vt=Tt,Mt=st;else{vt=Tt,Mt=0,Br=65;break e}if(Br=mt[Tt+20>>2]|0,Tt=mt[Tt+16+(ct>>>31<<2)>>2]|0,Ut=(Br|0)==0|(Br|0)==(Tt|0)?Ut:Br,Tt)ct=ct<<1;else{Tt=Ut,Br=61;break}}while(!1);if((Br|0)==61){if((Tt|0)==0&(vt|0)==0){if(vt=2<>>12&16,Ft=Ft>>>st,Ut=Ft>>>5&8,Ft=Ft>>>Ut,ct=Ft>>>2&4,Ft=Ft>>>ct,ht=Ft>>>1&2,Ft=Ft>>>ht,Tt=Ft>>>1&1,vt=0,Tt=mt[23620+((Ut|st|ct|ht|Tt)+(Ft>>>Tt)<<2)>>2]|0}Tt?Br=65:(ct=vt,st=Mt)}if((Br|0)==65)for(Ut=Tt;;)if(Ft=(mt[Ut+4>>2]&-8)-Ct|0,Tt=Ft>>>0>>0,Mt=Tt?Ft:Mt,vt=Tt?Ut:vt,Tt=mt[Ut+16>>2]|0,Tt||(Tt=mt[Ut+20>>2]|0),Tt)Ut=Tt;else{ct=vt,st=Mt;break}if(ct|0&&st>>>0<((mt[5831]|0)-Ct|0)>>>0&&(bt=ct+Ct|0,bt>>>0>ct>>>0)){Ut=mt[ct+24>>2]|0,Qt=mt[ct+12>>2]|0;do if((Qt|0)==(ct|0)){if(vt=ct+20|0,Qt=mt[vt>>2]|0,!Qt&&(vt=ct+16|0,Qt=mt[vt>>2]|0,!Qt)){Qt=0;break}for(;;)if(Mt=Qt+20|0,Tt=mt[Mt>>2]|0,Tt)Qt=Tt,vt=Mt;else if(Mt=Qt+16|0,Tt=mt[Mt>>2]|0,Tt)Qt=Tt,vt=Mt;else break;mt[vt>>2]=0}else Dr=mt[ct+8>>2]|0,mt[Dr+12>>2]=Qt,mt[Qt+8>>2]=Dr;while(!1);do if(Ut){if(vt=mt[ct+28>>2]|0,Tt=23620+(vt<<2)|0,(ct|0)==(mt[Tt>>2]|0)){if(mt[Tt>>2]=Qt,!Qt){Pt=Pt&~(1<>2]|0)==(ct|0)?Dr:Ut+20|0)>>2]=Qt,!Qt)break;mt[Qt+24>>2]=Ut,vt=mt[ct+16>>2]|0,vt|0&&(mt[Qt+16>>2]=vt,mt[vt+24>>2]=Qt),vt=mt[ct+20>>2]|0,vt&&(mt[Qt+20>>2]=vt,mt[vt+24>>2]=Qt)}while(!1);e:do if(st>>>0<16)Dr=st+Ct|0,mt[ct+4>>2]=Dr|3,Dr=ct+Dr+4|0,mt[Dr>>2]=mt[Dr>>2]|1;else{if(mt[ct+4>>2]=Ct|3,mt[bt+4>>2]=st|1,mt[bt+st>>2]=st,Qt=st>>>3,st>>>0<256){Tt=23356+(Qt<<1<<2)|0,vt=mt[5829]|0,Qt=1<>2]|0):(mt[5829]=vt|Qt,Qt=Tt,vt=Tt+8|0),mt[vt>>2]=bt,mt[Qt+12>>2]=bt,mt[bt+8>>2]=Qt,mt[bt+12>>2]=Tt;break}if(Qt=st>>>8,Qt?st>>>0>16777215?Tt=31:(en=(Qt+1048320|0)>>>16&8,Dr=Qt<>>16&4,Dr=Dr<>>16&2,Tt=14-(qr|en|Tt)+(Dr<>>15)|0,Tt=st>>>(Tt+7|0)&1|Tt<<1):Tt=0,Qt=23620+(Tt<<2)|0,mt[bt+28>>2]=Tt,vt=bt+16|0,mt[vt+4>>2]=0,mt[vt>>2]=0,vt=1<>2]=bt,mt[bt+24>>2]=Qt,mt[bt+12>>2]=bt,mt[bt+8>>2]=bt;break}Qt=mt[Qt>>2]|0;t:do if((mt[Qt+4>>2]&-8|0)!=(st|0)){for(Pt=st<<((Tt|0)==31?0:25-(Tt>>>1)|0);Tt=Qt+16+(Pt>>>31<<2)|0,vt=mt[Tt>>2]|0,!!vt;)if((mt[vt+4>>2]&-8|0)==(st|0)){Qt=vt;break t}else Pt=Pt<<1,Qt=vt;mt[Tt>>2]=bt,mt[bt+24>>2]=Qt,mt[bt+12>>2]=bt,mt[bt+8>>2]=bt;break e}while(!1);en=Qt+8|0,Dr=mt[en>>2]|0,mt[Dr+12>>2]=bt,mt[en>>2]=bt,mt[bt+8>>2]=Dr,mt[bt+12>>2]=Qt,mt[bt+24>>2]=0}while(!1);return Dr=ct+8|0,Mr=gn,Dr|0}else Ft=Ct}else Ft=Ct;else Ft=-1;while(!1);if(Tt=mt[5831]|0,Tt>>>0>=Ft>>>0)return Qt=Tt-Ft|0,vt=mt[5834]|0,Qt>>>0>15?(Dr=vt+Ft|0,mt[5834]=Dr,mt[5831]=Qt,mt[Dr+4>>2]=Qt|1,mt[vt+Tt>>2]=Qt,mt[vt+4>>2]=Ft|3):(mt[5831]=0,mt[5834]=0,mt[vt+4>>2]=Tt|3,Dr=vt+Tt+4|0,mt[Dr>>2]=mt[Dr>>2]|1),Dr=vt+8|0,Mr=gn,Dr|0;if(st=mt[5832]|0,st>>>0>Ft>>>0)return qr=st-Ft|0,mt[5832]=qr,Dr=mt[5835]|0,en=Dr+Ft|0,mt[5835]=en,mt[en+4>>2]=qr|1,mt[Dr+4>>2]=Ft|3,Dr=Dr+8|0,Mr=gn,Dr|0;if(mt[5947]|0?vt=mt[5949]|0:(mt[5949]=4096,mt[5948]=4096,mt[5950]=-1,mt[5951]=-1,mt[5952]=0,mt[5940]=0,mt[5947]=zt&-16^1431655768,vt=4096),ct=Ft+48|0,ht=Ft+47|0,Ut=vt+ht|0,Mt=0-vt|0,Ct=Ut&Mt,Ct>>>0<=Ft>>>0||(vt=mt[5939]|0,vt|0&&(bt=mt[5937]|0,zt=bt+Ct|0,zt>>>0<=bt>>>0|zt>>>0>vt>>>0)))return Dr=0,Mr=gn,Dr|0;e:do if(mt[5940]&4)Qt=0,Br=143;else{Tt=mt[5835]|0;t:do if(Tt){for(Pt=23764;zt=mt[Pt>>2]|0,!(zt>>>0<=Tt>>>0&&(zt+(mt[Pt+4>>2]|0)|0)>>>0>Tt>>>0);)if(vt=mt[Pt+8>>2]|0,vt)Pt=vt;else{Br=128;break t}if(Qt=Ut-st&Mt,Qt>>>0<2147483647)if(vt=Ts(Qt|0)|0,(vt|0)==((mt[Pt>>2]|0)+(mt[Pt+4>>2]|0)|0)){if((vt|0)!=-1){st=Qt,Ut=vt,Br=145;break e}}else Pt=vt,Br=136;else Qt=0}else Br=128;while(!1);do if((Br|0)==128)if(Tt=Ts(0)|0,(Tt|0)!=-1&&(Qt=Tt,nr=mt[5948]|0,dr=nr+-1|0,Qt=(dr&Qt|0?(dr+Qt&0-nr)-Qt|0:0)+Ct|0,nr=mt[5937]|0,dr=Qt+nr|0,Qt>>>0>Ft>>>0&Qt>>>0<2147483647)){if(zt=mt[5939]|0,zt|0&&dr>>>0<=nr>>>0|dr>>>0>zt>>>0){Qt=0;break}if(vt=Ts(Qt|0)|0,(vt|0)==(Tt|0)){st=Qt,Ut=Tt,Br=145;break e}else Pt=vt,Br=136}else Qt=0;while(!1);do if((Br|0)==136){if(Tt=0-Qt|0,!(ct>>>0>Qt>>>0&(Qt>>>0<2147483647&(Pt|0)!=-1)))if((Pt|0)==-1){Qt=0;break}else{st=Qt,Ut=Pt,Br=145;break e}if(vt=mt[5949]|0,vt=ht-Qt+vt&0-vt,vt>>>0>=2147483647){st=Qt,Ut=Pt,Br=145;break e}if((Ts(vt|0)|0)==-1){Ts(Tt|0)|0,Qt=0;break}else{st=vt+Qt|0,Ut=Pt,Br=145;break e}}while(!1);mt[5940]=mt[5940]|4,Br=143}while(!1);if((Br|0)==143&&Ct>>>0<2147483647&&(qr=Ts(Ct|0)|0,dr=Ts(0)|0,kr=dr-qr|0,Kr=kr>>>0>(Ft+40|0)>>>0,!((qr|0)==-1|Kr^1|qr>>>0>>0&((qr|0)!=-1&(dr|0)!=-1)^1))&&(st=Kr?kr:Qt,Ut=qr,Br=145),(Br|0)==145){Qt=(mt[5937]|0)+st|0,mt[5937]=Qt,Qt>>>0>(mt[5938]|0)>>>0&&(mt[5938]=Qt),ht=mt[5835]|0;e:do if(ht){for(Qt=23764;;){if(vt=mt[Qt>>2]|0,Tt=mt[Qt+4>>2]|0,(Ut|0)==(vt+Tt|0)){Br=154;break}if(Pt=mt[Qt+8>>2]|0,Pt)Qt=Pt;else break}if((Br|0)==154&&(en=Qt+4|0,(mt[Qt+12>>2]&8|0)==0)&&Ut>>>0>ht>>>0&vt>>>0<=ht>>>0){mt[en>>2]=Tt+st,Dr=(mt[5832]|0)+st|0,qr=ht+8|0,qr=qr&7|0?0-qr&7:0,en=ht+qr|0,qr=Dr-qr|0,mt[5835]=en,mt[5832]=qr,mt[en+4>>2]=qr|1,mt[ht+Dr+4>>2]=40,mt[5836]=mt[5951];break}for(Ut>>>0<(mt[5833]|0)>>>0&&(mt[5833]=Ut),Tt=Ut+st|0,Qt=23764;;){if((mt[Qt>>2]|0)==(Tt|0)){Br=162;break}if(vt=mt[Qt+8>>2]|0,vt)Qt=vt;else break}if((Br|0)==162&&!(mt[Qt+12>>2]&8|0)){mt[Qt>>2]=Ut,bt=Qt+4|0,mt[bt>>2]=(mt[bt>>2]|0)+st,bt=Ut+8|0,bt=Ut+(bt&7|0?0-bt&7:0)|0,Qt=Tt+8|0,Qt=Tt+(Qt&7|0?0-Qt&7:0)|0,Ct=bt+Ft|0,ct=Qt-bt-Ft|0,mt[bt+4>>2]=Ft|3;t:do if((ht|0)==(Qt|0))Dr=(mt[5832]|0)+ct|0,mt[5832]=Dr,mt[5835]=Ct,mt[Ct+4>>2]=Dr|1;else{if((mt[5834]|0)==(Qt|0)){Dr=(mt[5831]|0)+ct|0,mt[5831]=Dr,mt[5834]=Ct,mt[Ct+4>>2]=Dr|1,mt[Ct+Dr>>2]=Dr;break}if(vt=mt[Qt+4>>2]|0,(vt&3|0)==1){st=vt&-8,Pt=vt>>>3;r:do if(vt>>>0<256)if(vt=mt[Qt+8>>2]|0,Tt=mt[Qt+12>>2]|0,(Tt|0)==(vt|0)){mt[5829]=mt[5829]&~(1<>2]=Tt,mt[Tt+8>>2]=vt;break}else{Ut=mt[Qt+24>>2]|0,vt=mt[Qt+12>>2]|0;do if((vt|0)==(Qt|0)){if(Tt=Qt+16|0,Pt=Tt+4|0,vt=mt[Pt>>2]|0,vt)Tt=Pt;else if(vt=mt[Tt>>2]|0,!vt){vt=0;break}for(;;)if(Mt=vt+20|0,Pt=mt[Mt>>2]|0,Pt)vt=Pt,Tt=Mt;else if(Mt=vt+16|0,Pt=mt[Mt>>2]|0,Pt)vt=Pt,Tt=Mt;else break;mt[Tt>>2]=0}else Dr=mt[Qt+8>>2]|0,mt[Dr+12>>2]=vt,mt[vt+8>>2]=Dr;while(!1);if(!Ut)break;Tt=mt[Qt+28>>2]|0,Pt=23620+(Tt<<2)|0;do if((mt[Pt>>2]|0)!=(Qt|0)){if(Dr=Ut+16|0,mt[((mt[Dr>>2]|0)==(Qt|0)?Dr:Ut+20|0)>>2]=vt,!vt)break r}else{if(mt[Pt>>2]=vt,vt|0)break;mt[5830]=mt[5830]&~(1<>2]=Ut,Tt=Qt+16|0,Pt=mt[Tt>>2]|0,Pt|0&&(mt[vt+16>>2]=Pt,mt[Pt+24>>2]=vt),Tt=mt[Tt+4>>2]|0,!Tt)break;mt[vt+20>>2]=Tt,mt[Tt+24>>2]=vt}while(!1);Qt=Qt+st|0,Mt=st+ct|0}else Mt=ct;if(Qt=Qt+4|0,mt[Qt>>2]=mt[Qt>>2]&-2,mt[Ct+4>>2]=Mt|1,mt[Ct+Mt>>2]=Mt,Qt=Mt>>>3,Mt>>>0<256){Tt=23356+(Qt<<1<<2)|0,vt=mt[5829]|0,Qt=1<>2]|0):(mt[5829]=vt|Qt,Qt=Tt,vt=Tt+8|0),mt[vt>>2]=Ct,mt[Qt+12>>2]=Ct,mt[Ct+8>>2]=Qt,mt[Ct+12>>2]=Tt;break}Qt=Mt>>>8;do if(!Qt)Pt=0;else{if(Mt>>>0>16777215){Pt=31;break}en=(Qt+1048320|0)>>>16&8,Dr=Qt<>>16&4,Dr=Dr<>>16&2,Pt=14-(qr|en|Pt)+(Dr<>>15)|0,Pt=Mt>>>(Pt+7|0)&1|Pt<<1}while(!1);if(Qt=23620+(Pt<<2)|0,mt[Ct+28>>2]=Pt,vt=Ct+16|0,mt[vt+4>>2]=0,mt[vt>>2]=0,vt=mt[5830]|0,Tt=1<>2]=Ct,mt[Ct+24>>2]=Qt,mt[Ct+12>>2]=Ct,mt[Ct+8>>2]=Ct;break}Qt=mt[Qt>>2]|0;r:do if((mt[Qt+4>>2]&-8|0)!=(Mt|0)){for(Pt=Mt<<((Pt|0)==31?0:25-(Pt>>>1)|0);Tt=Qt+16+(Pt>>>31<<2)|0,vt=mt[Tt>>2]|0,!!vt;)if((mt[vt+4>>2]&-8|0)==(Mt|0)){Qt=vt;break r}else Pt=Pt<<1,Qt=vt;mt[Tt>>2]=Ct,mt[Ct+24>>2]=Qt,mt[Ct+12>>2]=Ct,mt[Ct+8>>2]=Ct;break t}while(!1);en=Qt+8|0,Dr=mt[en>>2]|0,mt[Dr+12>>2]=Ct,mt[en>>2]=Ct,mt[Ct+8>>2]=Dr,mt[Ct+12>>2]=Qt,mt[Ct+24>>2]=0}while(!1);return Dr=bt+8|0,Mr=gn,Dr|0}for(Qt=23764;vt=mt[Qt>>2]|0,!(vt>>>0<=ht>>>0&&(Dr=vt+(mt[Qt+4>>2]|0)|0,Dr>>>0>ht>>>0));)Qt=mt[Qt+8>>2]|0;Mt=Dr+-47|0,vt=Mt+8|0,vt=Mt+(vt&7|0?0-vt&7:0)|0,Mt=ht+16|0,vt=vt>>>0>>0?ht:vt,Qt=vt+8|0,Tt=st+-40|0,qr=Ut+8|0,qr=qr&7|0?0-qr&7:0,en=Ut+qr|0,qr=Tt-qr|0,mt[5835]=en,mt[5832]=qr,mt[en+4>>2]=qr|1,mt[Ut+Tt+4>>2]=40,mt[5836]=mt[5951],Tt=vt+4|0,mt[Tt>>2]=27,mt[Qt>>2]=mt[5941],mt[Qt+4>>2]=mt[5942],mt[Qt+8>>2]=mt[5943],mt[Qt+12>>2]=mt[5944],mt[5941]=Ut,mt[5942]=st,mt[5944]=0,mt[5943]=Qt,Qt=vt+24|0;do en=Qt,Qt=Qt+4|0,mt[Qt>>2]=7;while((en+8|0)>>>0>>0);if((vt|0)!=(ht|0)){if(Ut=vt-ht|0,mt[Tt>>2]=mt[Tt>>2]&-2,mt[ht+4>>2]=Ut|1,mt[vt>>2]=Ut,Qt=Ut>>>3,Ut>>>0<256){Tt=23356+(Qt<<1<<2)|0,vt=mt[5829]|0,Qt=1<>2]|0):(mt[5829]=vt|Qt,Qt=Tt,vt=Tt+8|0),mt[vt>>2]=ht,mt[Qt+12>>2]=ht,mt[ht+8>>2]=Qt,mt[ht+12>>2]=Tt;break}if(Qt=Ut>>>8,Qt?Ut>>>0>16777215?Pt=31:(en=(Qt+1048320|0)>>>16&8,Dr=Qt<>>16&4,Dr=Dr<>>16&2,Pt=14-(qr|en|Pt)+(Dr<>>15)|0,Pt=Ut>>>(Pt+7|0)&1|Pt<<1):Pt=0,Tt=23620+(Pt<<2)|0,mt[ht+28>>2]=Pt,mt[ht+20>>2]=0,mt[Mt>>2]=0,Qt=mt[5830]|0,vt=1<>2]=ht,mt[ht+24>>2]=Tt,mt[ht+12>>2]=ht,mt[ht+8>>2]=ht;break}Qt=mt[Tt>>2]|0;t:do if((mt[Qt+4>>2]&-8|0)!=(Ut|0)){for(Pt=Ut<<((Pt|0)==31?0:25-(Pt>>>1)|0);Tt=Qt+16+(Pt>>>31<<2)|0,vt=mt[Tt>>2]|0,!!vt;)if((mt[vt+4>>2]&-8|0)==(Ut|0)){Qt=vt;break t}else Pt=Pt<<1,Qt=vt;mt[Tt>>2]=ht,mt[ht+24>>2]=Qt,mt[ht+12>>2]=ht,mt[ht+8>>2]=ht;break e}while(!1);en=Qt+8|0,Dr=mt[en>>2]|0,mt[Dr+12>>2]=ht,mt[en>>2]=ht,mt[ht+8>>2]=Dr,mt[ht+12>>2]=Qt,mt[ht+24>>2]=0}}else Dr=mt[5833]|0,(Dr|0)==0|Ut>>>0>>0&&(mt[5833]=Ut),mt[5941]=Ut,mt[5942]=st,mt[5944]=0,mt[5838]=mt[5947],mt[5837]=-1,mt[5842]=23356,mt[5841]=23356,mt[5844]=23364,mt[5843]=23364,mt[5846]=23372,mt[5845]=23372,mt[5848]=23380,mt[5847]=23380,mt[5850]=23388,mt[5849]=23388,mt[5852]=23396,mt[5851]=23396,mt[5854]=23404,mt[5853]=23404,mt[5856]=23412,mt[5855]=23412,mt[5858]=23420,mt[5857]=23420,mt[5860]=23428,mt[5859]=23428,mt[5862]=23436,mt[5861]=23436,mt[5864]=23444,mt[5863]=23444,mt[5866]=23452,mt[5865]=23452,mt[5868]=23460,mt[5867]=23460,mt[5870]=23468,mt[5869]=23468,mt[5872]=23476,mt[5871]=23476,mt[5874]=23484,mt[5873]=23484,mt[5876]=23492,mt[5875]=23492,mt[5878]=23500,mt[5877]=23500,mt[5880]=23508,mt[5879]=23508,mt[5882]=23516,mt[5881]=23516,mt[5884]=23524,mt[5883]=23524,mt[5886]=23532,mt[5885]=23532,mt[5888]=23540,mt[5887]=23540,mt[5890]=23548,mt[5889]=23548,mt[5892]=23556,mt[5891]=23556,mt[5894]=23564,mt[5893]=23564,mt[5896]=23572,mt[5895]=23572,mt[5898]=23580,mt[5897]=23580,mt[5900]=23588,mt[5899]=23588,mt[5902]=23596,mt[5901]=23596,mt[5904]=23604,mt[5903]=23604,Dr=st+-40|0,qr=Ut+8|0,qr=qr&7|0?0-qr&7:0,en=Ut+qr|0,qr=Dr-qr|0,mt[5835]=en,mt[5832]=qr,mt[en+4>>2]=qr|1,mt[Ut+Dr+4>>2]=40,mt[5836]=mt[5951];while(!1);if(Qt=mt[5832]|0,Qt>>>0>Ft>>>0)return qr=Qt-Ft|0,mt[5832]=qr,Dr=mt[5835]|0,en=Dr+Ft|0,mt[5835]=en,mt[en+4>>2]=qr|1,mt[Dr+4>>2]=Ft|3,Dr=Dr+8|0,Mr=gn,Dr|0}return Dr=uu()|0,mt[Dr>>2]=12,Dr=0,Mr=gn,Dr|0}function Xn(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0,Mt=0,Ut=0,st=0,ct=0,ht=0;if(vt){Tt=vt+-8|0,Mt=mt[5833]|0,vt=mt[vt+-4>>2]|0,Qt=vt&-8,ht=Tt+Qt|0;do if(vt&1)ct=Tt,st=Tt;else{if(Pt=mt[Tt>>2]|0,!(vt&3)||(st=Tt+(0-Pt)|0,Ut=Pt+Qt|0,st>>>0>>0))return;if((mt[5834]|0)==(st|0)){if(vt=ht+4|0,Qt=mt[vt>>2]|0,(Qt&3|0)!=3){ct=st,Qt=Ut;break}mt[5831]=Ut,mt[vt>>2]=Qt&-2,mt[st+4>>2]=Ut|1,mt[st+Ut>>2]=Ut;return}if(Tt=Pt>>>3,Pt>>>0<256)if(vt=mt[st+8>>2]|0,Qt=mt[st+12>>2]|0,(Qt|0)==(vt|0)){mt[5829]=mt[5829]&~(1<>2]=Qt,mt[Qt+8>>2]=vt,ct=st,Qt=Ut;break}Mt=mt[st+24>>2]|0,vt=mt[st+12>>2]|0;do if((vt|0)==(st|0)){if(Qt=st+16|0,Tt=Qt+4|0,vt=mt[Tt>>2]|0,vt)Qt=Tt;else if(vt=mt[Qt>>2]|0,!vt){vt=0;break}for(;;)if(Pt=vt+20|0,Tt=mt[Pt>>2]|0,Tt)vt=Tt,Qt=Pt;else if(Pt=vt+16|0,Tt=mt[Pt>>2]|0,Tt)vt=Tt,Qt=Pt;else break;mt[Qt>>2]=0}else ct=mt[st+8>>2]|0,mt[ct+12>>2]=vt,mt[vt+8>>2]=ct;while(!1);if(Mt){if(Qt=mt[st+28>>2]|0,Tt=23620+(Qt<<2)|0,(mt[Tt>>2]|0)==(st|0)){if(mt[Tt>>2]=vt,!vt){mt[5830]=mt[5830]&~(1<>2]|0)==(st|0)?ct:Mt+20|0)>>2]=vt,!vt){ct=st,Qt=Ut;break}mt[vt+24>>2]=Mt,Qt=st+16|0,Tt=mt[Qt>>2]|0,Tt|0&&(mt[vt+16>>2]=Tt,mt[Tt+24>>2]=vt),Qt=mt[Qt+4>>2]|0,Qt?(mt[vt+20>>2]=Qt,mt[Qt+24>>2]=vt,ct=st,Qt=Ut):(ct=st,Qt=Ut)}else ct=st,Qt=Ut}while(!1);if(!(st>>>0>=ht>>>0)&&(vt=ht+4|0,Pt=mt[vt>>2]|0,!!(Pt&1))){if(Pt&2)mt[vt>>2]=Pt&-2,mt[ct+4>>2]=Qt|1,mt[st+Qt>>2]=Qt,Mt=Qt;else{if((mt[5835]|0)==(ht|0)){if(ht=(mt[5832]|0)+Qt|0,mt[5832]=ht,mt[5835]=ct,mt[ct+4>>2]=ht|1,(ct|0)!=(mt[5834]|0))return;mt[5834]=0,mt[5831]=0;return}if((mt[5834]|0)==(ht|0)){ht=(mt[5831]|0)+Qt|0,mt[5831]=ht,mt[5834]=st,mt[ct+4>>2]=ht|1,mt[st+ht>>2]=ht;return}Mt=(Pt&-8)+Qt|0,Tt=Pt>>>3;do if(Pt>>>0<256)if(Qt=mt[ht+8>>2]|0,vt=mt[ht+12>>2]|0,(vt|0)==(Qt|0)){mt[5829]=mt[5829]&~(1<>2]=vt,mt[vt+8>>2]=Qt;break}else{Ut=mt[ht+24>>2]|0,vt=mt[ht+12>>2]|0;do if((vt|0)==(ht|0)){if(Qt=ht+16|0,Tt=Qt+4|0,vt=mt[Tt>>2]|0,vt)Qt=Tt;else if(vt=mt[Qt>>2]|0,!vt){Tt=0;break}for(;;)if(Pt=vt+20|0,Tt=mt[Pt>>2]|0,Tt)vt=Tt,Qt=Pt;else if(Pt=vt+16|0,Tt=mt[Pt>>2]|0,Tt)vt=Tt,Qt=Pt;else break;mt[Qt>>2]=0,Tt=vt}else Tt=mt[ht+8>>2]|0,mt[Tt+12>>2]=vt,mt[vt+8>>2]=Tt,Tt=vt;while(!1);if(Ut|0){if(vt=mt[ht+28>>2]|0,Qt=23620+(vt<<2)|0,(mt[Qt>>2]|0)==(ht|0)){if(mt[Qt>>2]=Tt,!Tt){mt[5830]=mt[5830]&~(1<>2]|0)==(ht|0)?Pt:Ut+20|0)>>2]=Tt,!Tt)break;mt[Tt+24>>2]=Ut,vt=ht+16|0,Qt=mt[vt>>2]|0,Qt|0&&(mt[Tt+16>>2]=Qt,mt[Qt+24>>2]=Tt),vt=mt[vt+4>>2]|0,vt|0&&(mt[Tt+20>>2]=vt,mt[vt+24>>2]=Tt)}}while(!1);if(mt[ct+4>>2]=Mt|1,mt[st+Mt>>2]=Mt,(ct|0)==(mt[5834]|0)){mt[5831]=Mt;return}}if(vt=Mt>>>3,Mt>>>0<256){Tt=23356+(vt<<1<<2)|0,Qt=mt[5829]|0,vt=1<>2]|0):(mt[5829]=Qt|vt,vt=Tt,Qt=Tt+8|0),mt[Qt>>2]=ct,mt[vt+12>>2]=ct,mt[ct+8>>2]=vt,mt[ct+12>>2]=Tt;return}vt=Mt>>>8,vt?Mt>>>0>16777215?Pt=31:(st=(vt+1048320|0)>>>16&8,ht=vt<>>16&4,ht=ht<>>16&2,Pt=14-(Ut|st|Pt)+(ht<>>15)|0,Pt=Mt>>>(Pt+7|0)&1|Pt<<1):Pt=0,vt=23620+(Pt<<2)|0,mt[ct+28>>2]=Pt,mt[ct+20>>2]=0,mt[ct+16>>2]=0,Qt=mt[5830]|0,Tt=1<>2]=ct,mt[ct+24>>2]=vt,mt[ct+12>>2]=ct,mt[ct+8>>2]=ct;else{vt=mt[vt>>2]|0;t:do if((mt[vt+4>>2]&-8|0)!=(Mt|0)){for(Pt=Mt<<((Pt|0)==31?0:25-(Pt>>>1)|0);Tt=vt+16+(Pt>>>31<<2)|0,Qt=mt[Tt>>2]|0,!!Qt;)if((mt[Qt+4>>2]&-8|0)==(Mt|0)){vt=Qt;break t}else Pt=Pt<<1,vt=Qt;mt[Tt>>2]=ct,mt[ct+24>>2]=vt,mt[ct+12>>2]=ct,mt[ct+8>>2]=ct;break e}while(!1);st=vt+8|0,ht=mt[st>>2]|0,mt[ht+12>>2]=ct,mt[st>>2]=ct,mt[ct+8>>2]=ht,mt[ct+12>>2]=vt,mt[ct+24>>2]=0}while(!1);if(ht=(mt[5837]|0)+-1|0,mt[5837]=ht,!(ht|0)){for(vt=23772;vt=mt[vt>>2]|0,vt;)vt=vt+8|0;mt[5837]=-1}}}}function Fs(vt,Qt){vt=vt|0,Qt=Qt|0;var Tt=0;return vt?(Tt=Io(Qt,vt)|0,(Qt|vt)>>>0>65535&&(Tt=((Tt>>>0)/(vt>>>0)|0|0)==(Qt|0)?Tt:-1)):Tt=0,vt=xa(Tt)|0,!vt||!(mt[vt+-4>>2]&3)||ws(vt|0,0,Tt|0)|0,vt|0}function dA(vt,Qt,Tt,Pt){return vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Tt=vt+Tt>>>0,$n(Qt+Pt+(Tt>>>0>>0|0)>>>0|0),Tt|0|0}function QA(vt,Qt,Tt,Pt){return vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Pt=Qt-Pt-(Tt>>>0>vt>>>0|0)>>>0,$n(Pt|0),vt-Tt>>>0|0|0}function Il(vt){return vt=vt|0,(vt?31-(Fo(vt^vt-1)|0)|0:32)|0}function _c(vt,Qt,Tt,Pt,Mt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0,Mt=Mt|0;var Ut=0,st=0,ct=0,ht=0,Ct=0,bt=0,Ft=0,zt=0,nr=0,dr=0;if(bt=vt,ht=Qt,Ct=ht,st=Tt,zt=Pt,ct=zt,!Ct)return Ut=(Mt|0)!=0,ct?Ut?(mt[Mt>>2]=vt|0,mt[Mt+4>>2]=Qt&0,zt=0,Mt=0,$n(zt|0),Mt|0):(zt=0,Mt=0,$n(zt|0),Mt|0):(Ut&&(mt[Mt>>2]=(bt>>>0)%(st>>>0),mt[Mt+4>>2]=0),zt=0,Mt=(bt>>>0)/(st>>>0)>>>0,$n(zt|0),Mt|0);Ut=(ct|0)==0;do if(st){if(!Ut){if(Ut=(Fo(ct|0)|0)-(Fo(Ct|0)|0)|0,Ut>>>0<=31){Ft=Ut+1|0,ct=31-Ut|0,Qt=Ut-31>>31,st=Ft,vt=bt>>>(Ft>>>0)&Qt|Ct<>>(Ft>>>0)&Qt,Ut=0,ct=bt<>2]=vt|0,mt[Mt+4>>2]=ht|Qt&0,zt=0,Mt=0,$n(zt|0),Mt|0):(zt=0,Mt=0,$n(zt|0),Mt|0)}if(Ut=st-1|0,Ut&st|0){ct=(Fo(st|0)|0)+33-(Fo(Ct|0)|0)|0,dr=64-ct|0,Ft=32-ct|0,ht=Ft>>31,nr=ct-32|0,Qt=nr>>31,st=ct,vt=Ft-1>>31&Ct>>>(nr>>>0)|(Ct<>>(ct>>>0))&Qt,Qt=Qt&Ct>>>(ct>>>0),Ut=bt<>>(nr>>>0))&ht|bt<>31;break}return Mt|0&&(mt[Mt>>2]=Ut&bt,mt[Mt+4>>2]=0),(st|0)==1?(nr=ht|Qt&0,dr=vt|0|0,$n(nr|0),dr|0):(dr=Il(st|0)|0,nr=Ct>>>(dr>>>0)|0,dr=Ct<<32-dr|bt>>>(dr>>>0)|0,$n(nr|0),dr|0)}else{if(Ut)return Mt|0&&(mt[Mt>>2]=(Ct>>>0)%(st>>>0),mt[Mt+4>>2]=0),nr=0,dr=(Ct>>>0)/(st>>>0)>>>0,$n(nr|0),dr|0;if(!bt)return Mt|0&&(mt[Mt>>2]=0,mt[Mt+4>>2]=(Ct>>>0)%(ct>>>0)),nr=0,dr=(Ct>>>0)/(ct>>>0)>>>0,$n(nr|0),dr|0;if(Ut=ct-1|0,!(Ut&ct))return Mt|0&&(mt[Mt>>2]=vt|0,mt[Mt+4>>2]=Ut&Ct|Qt&0),nr=0,dr=Ct>>>((Il(ct|0)|0)>>>0),$n(nr|0),dr|0;if(Ut=(Fo(ct|0)|0)-(Fo(Ct|0)|0)|0,Ut>>>0<=30){Qt=Ut+1|0,ct=31-Ut|0,st=Qt,vt=Ct<>>(Qt>>>0),Qt=Ct>>>(Qt>>>0),Ut=0,ct=bt<>2]=vt|0,mt[Mt+4>>2]=ht|Qt&0,nr=0,dr=0,$n(nr|0),dr|0):(nr=0,dr=0,$n(nr|0),dr|0)}while(!1);if(!st)Ct=ct,ht=0,ct=0;else{Ft=Tt|0|0,bt=zt|Pt&0,Ct=dA(Ft|0,bt|0,-1,-1)|0,Tt=zr()|0,ht=ct,ct=0;do Pt=ht,ht=Ut>>>31|ht<<1,Ut=ct|Ut<<1,Pt=vt<<1|Pt>>>31|0,zt=vt>>>31|Qt<<1|0,QA(Ct|0,Tt|0,Pt|0,zt|0)|0,dr=zr()|0,nr=dr>>31|((dr|0)<0?-1:0)<<1,ct=nr&1,vt=QA(Pt|0,zt|0,nr&Ft|0,(((dr|0)<0?-1:0)>>31|((dr|0)<0?-1:0)<<1)&bt|0)|0,Qt=zr()|0,st=st-1|0;while(st|0);Ct=ht,ht=0}return st=0,Mt|0&&(mt[Mt>>2]=vt,mt[Mt+4>>2]=Qt),nr=(Ut|0)>>>31|(Ct|st)<<1|(st<<1|Ut>>>31)&0|ht,dr=(Ut<<1|0)&-2|ct,$n(nr|0),dr|0}function bs(vt,Qt,Tt,Pt){vt=vt|0,Qt=Qt|0,Tt=Tt|0,Pt=Pt|0;var Mt=0,Ut=0;return Ut=Mr,Mr=Mr+16|0,Mt=Ut|0,_c(vt,Qt,Tt,Pt,Mt)|0,Mr=Ut,$n(mt[Mt+4>>2]|0),mt[Mt>>2]|0|0}function _n(vt,Qt,Tt){return vt=vt|0,Qt=Qt|0,Tt=Tt|0,(Tt|0)<32?($n(Qt>>>Tt|0),vt>>>Tt|(Qt&(1<>>Tt-32|0)}function Rn(vt,Qt,Tt){return vt=vt|0,Qt=Qt|0,Tt=Tt|0,(Tt|0)<32?($n(Qt<>>32-Tt|0),vt<=0?+Jr(vt+.5):+kn(vt-.5)}function On(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0;if((Tt|0)>=8192)return no(vt|0,Qt|0,Tt|0)|0,vt|0;if(Ut=vt|0,Mt=vt+Tt|0,(vt&3)==(Qt&3)){for(;vt&3;){if(!Tt)return Ut|0;Ir[vt>>0]=Ir[Qt>>0]|0,vt=vt+1|0,Qt=Qt+1|0,Tt=Tt-1|0}for(Tt=Mt&-4|0,Pt=Tt-64|0;(vt|0)<=(Pt|0);)mt[vt>>2]=mt[Qt>>2],mt[vt+4>>2]=mt[Qt+4>>2],mt[vt+8>>2]=mt[Qt+8>>2],mt[vt+12>>2]=mt[Qt+12>>2],mt[vt+16>>2]=mt[Qt+16>>2],mt[vt+20>>2]=mt[Qt+20>>2],mt[vt+24>>2]=mt[Qt+24>>2],mt[vt+28>>2]=mt[Qt+28>>2],mt[vt+32>>2]=mt[Qt+32>>2],mt[vt+36>>2]=mt[Qt+36>>2],mt[vt+40>>2]=mt[Qt+40>>2],mt[vt+44>>2]=mt[Qt+44>>2],mt[vt+48>>2]=mt[Qt+48>>2],mt[vt+52>>2]=mt[Qt+52>>2],mt[vt+56>>2]=mt[Qt+56>>2],mt[vt+60>>2]=mt[Qt+60>>2],vt=vt+64|0,Qt=Qt+64|0;for(;(vt|0)<(Tt|0);)mt[vt>>2]=mt[Qt>>2],vt=vt+4|0,Qt=Qt+4|0}else for(Tt=Mt-4|0;(vt|0)<(Tt|0);)Ir[vt>>0]=Ir[Qt>>0]|0,Ir[vt+1>>0]=Ir[Qt+1>>0]|0,Ir[vt+2>>0]=Ir[Qt+2>>0]|0,Ir[vt+3>>0]=Ir[Qt+3>>0]|0,vt=vt+4|0,Qt=Qt+4|0;for(;(vt|0)<(Mt|0);)Ir[vt>>0]=Ir[Qt>>0]|0,vt=vt+1|0,Qt=Qt+1|0;return Ut|0}function ws(vt,Qt,Tt){vt=vt|0,Qt=Qt|0,Tt=Tt|0;var Pt=0,Mt=0,Ut=0,st=0;if(Ut=vt+Tt|0,Qt=Qt&255,(Tt|0)>=67){for(;vt&3;)Ir[vt>>0]=Qt,vt=vt+1|0;for(Pt=Ut&-4|0,st=Qt|Qt<<8|Qt<<16|Qt<<24,Mt=Pt-64|0;(vt|0)<=(Mt|0);)mt[vt>>2]=st,mt[vt+4>>2]=st,mt[vt+8>>2]=st,mt[vt+12>>2]=st,mt[vt+16>>2]=st,mt[vt+20>>2]=st,mt[vt+24>>2]=st,mt[vt+28>>2]=st,mt[vt+32>>2]=st,mt[vt+36>>2]=st,mt[vt+40>>2]=st,mt[vt+44>>2]=st,mt[vt+48>>2]=st,mt[vt+52>>2]=st,mt[vt+56>>2]=st,mt[vt+60>>2]=st,vt=vt+64|0;for(;(vt|0)<(Pt|0);)mt[vt>>2]=st,vt=vt+4|0}for(;(vt|0)<(Ut|0);)Ir[vt>>0]=Qt,vt=vt+1|0;return Ut-Tt|0}function Cl(vt){return vt=+vt,vt>=0?+Jr(vt+.5):+kn(vt-.5)}function Ts(vt){vt=vt|0;var Qt=0,Tt=0,Pt=0;return Pt=Ws()|0,Tt=mt[Hr>>2]|0,Qt=Tt+vt|0,(vt|0)>0&(Qt|0)<(Tt|0)|(Qt|0)<0?(xs(Qt|0)|0,SA(12),-1):(Qt|0)>(Pt|0)&&!(jA(Qt|0)|0)?(SA(12),-1):(mt[Hr>>2]=Qt,Tt|0)}return{___uremdi3:bs,_bitshift64Lshr:_n,_bitshift64Shl:Rn,_calloc:Fs,_cellAreaKm2:kA,_cellAreaM2:Ds,_cellAreaRads2:ls,_compact:AA,_destroyLinkedPolygon:VA,_edgeLengthKm:TA,_edgeLengthM:mA,_emscripten_replace_memory:_l,_exactEdgeLengthKm:os,_exactEdgeLengthM:Kl,_exactEdgeLengthRads:is,_experimentalH3ToLocalIj:KA,_experimentalLocalIjToH3:WA,_free:Xn,_geoToH3:JA,_getDestinationH3IndexFromUnidirectionalEdge:xA,_getH3IndexesFromUnidirectionalEdge:gs,_getH3UnidirectionalEdge:Nl,_getH3UnidirectionalEdgeBoundary:ss,_getH3UnidirectionalEdgesFromHexagon:iA,_getOriginH3IndexFromUnidirectionalEdge:$A,_getPentagonIndexes:Bs,_getRes0Indexes:Rl,_h3Distance:PA,_h3GetBaseCell:ga,_h3GetFaces:zA,_h3GetResolution:UA,_h3IndexesAreNeighbors:RA,_h3IsPentagon:bo,_h3IsResClassIII:BA,_h3IsValid:ba,_h3Line:Wl,_h3LineSize:qs,_h3SetToLinkedGeo:Ko,_h3ToCenterChild:HA,_h3ToChildren:jo,_h3ToGeo:nA,_h3ToGeoBoundary:ys,_h3ToParent:aA,_h3UnidirectionalEdgeIsValid:_A,_hexAreaKm2:Ll,_hexAreaM2:uo,_hexRing:br,_i64Subtract:QA,_kRing:lA,_kRingDistances:MA,_llvm_minnum_f64:El,_llvm_round_f64:hA,_malloc:xa,_maxFaceCount:us,_maxH3ToChildrenSize:Ps,_maxKringSize:Un,_maxPolyfillSize:Vr,_maxUncompactSize:au,_memcpy:On,_memset:ws,_numHexagons:_o,_pentagonIndexCount:$s,_pointDistKm:Do,_pointDistM:eo,_pointDistRads:Is,_polyfill:Gr,_res0IndexCount:co,_round:Cl,_sbrk:Ts,_sizeOfCoordIJ:Mo,_sizeOfGeoBoundary:$a,_sizeOfGeoCoord:ZA,_sizeOfGeoPolygon:Ns,_sizeOfGeofence:XA,_sizeOfH3Index:vA,_sizeOfLinkedGeoPolygon:_s,_uncompact:cs,establishStackSpace:eA,stackAlloc:Vn,stackRestore:Oo,stackSave:Xo}}(Ao,go,Gt);$.___uremdi3=Xr.___uremdi3,$._bitshift64Lshr=Xr._bitshift64Lshr,$._bitshift64Shl=Xr._bitshift64Shl,$._calloc=Xr._calloc,$._cellAreaKm2=Xr._cellAreaKm2,$._cellAreaM2=Xr._cellAreaM2,$._cellAreaRads2=Xr._cellAreaRads2,$._compact=Xr._compact,$._destroyLinkedPolygon=Xr._destroyLinkedPolygon,$._edgeLengthKm=Xr._edgeLengthKm,$._edgeLengthM=Xr._edgeLengthM;var Co=$._emscripten_replace_memory=Xr._emscripten_replace_memory;$._exactEdgeLengthKm=Xr._exactEdgeLengthKm,$._exactEdgeLengthM=Xr._exactEdgeLengthM,$._exactEdgeLengthRads=Xr._exactEdgeLengthRads,$._experimentalH3ToLocalIj=Xr._experimentalH3ToLocalIj,$._experimentalLocalIjToH3=Xr._experimentalLocalIjToH3,$._free=Xr._free,$._geoToH3=Xr._geoToH3,$._getDestinationH3IndexFromUnidirectionalEdge=Xr._getDestinationH3IndexFromUnidirectionalEdge,$._getH3IndexesFromUnidirectionalEdge=Xr._getH3IndexesFromUnidirectionalEdge,$._getH3UnidirectionalEdge=Xr._getH3UnidirectionalEdge,$._getH3UnidirectionalEdgeBoundary=Xr._getH3UnidirectionalEdgeBoundary,$._getH3UnidirectionalEdgesFromHexagon=Xr._getH3UnidirectionalEdgesFromHexagon,$._getOriginH3IndexFromUnidirectionalEdge=Xr._getOriginH3IndexFromUnidirectionalEdge,$._getPentagonIndexes=Xr._getPentagonIndexes,$._getRes0Indexes=Xr._getRes0Indexes,$._h3Distance=Xr._h3Distance,$._h3GetBaseCell=Xr._h3GetBaseCell,$._h3GetFaces=Xr._h3GetFaces,$._h3GetResolution=Xr._h3GetResolution,$._h3IndexesAreNeighbors=Xr._h3IndexesAreNeighbors,$._h3IsPentagon=Xr._h3IsPentagon,$._h3IsResClassIII=Xr._h3IsResClassIII,$._h3IsValid=Xr._h3IsValid,$._h3Line=Xr._h3Line,$._h3LineSize=Xr._h3LineSize,$._h3SetToLinkedGeo=Xr._h3SetToLinkedGeo,$._h3ToCenterChild=Xr._h3ToCenterChild,$._h3ToChildren=Xr._h3ToChildren,$._h3ToGeo=Xr._h3ToGeo,$._h3ToGeoBoundary=Xr._h3ToGeoBoundary,$._h3ToParent=Xr._h3ToParent,$._h3UnidirectionalEdgeIsValid=Xr._h3UnidirectionalEdgeIsValid,$._hexAreaKm2=Xr._hexAreaKm2,$._hexAreaM2=Xr._hexAreaM2,$._hexRing=Xr._hexRing,$._i64Subtract=Xr._i64Subtract,$._kRing=Xr._kRing,$._kRingDistances=Xr._kRingDistances,$._llvm_minnum_f64=Xr._llvm_minnum_f64,$._llvm_round_f64=Xr._llvm_round_f64,$._malloc=Xr._malloc,$._maxFaceCount=Xr._maxFaceCount,$._maxH3ToChildrenSize=Xr._maxH3ToChildrenSize,$._maxKringSize=Xr._maxKringSize,$._maxPolyfillSize=Xr._maxPolyfillSize,$._maxUncompactSize=Xr._maxUncompactSize,$._memcpy=Xr._memcpy,$._memset=Xr._memset,$._numHexagons=Xr._numHexagons,$._pentagonIndexCount=Xr._pentagonIndexCount,$._pointDistKm=Xr._pointDistKm,$._pointDistM=Xr._pointDistM,$._pointDistRads=Xr._pointDistRads,$._polyfill=Xr._polyfill,$._res0IndexCount=Xr._res0IndexCount,$._round=Xr._round,$._sbrk=Xr._sbrk,$._sizeOfCoordIJ=Xr._sizeOfCoordIJ,$._sizeOfGeoBoundary=Xr._sizeOfGeoBoundary,$._sizeOfGeoCoord=Xr._sizeOfGeoCoord,$._sizeOfGeoPolygon=Xr._sizeOfGeoPolygon,$._sizeOfGeofence=Xr._sizeOfGeofence,$._sizeOfH3Index=Xr._sizeOfH3Index,$._sizeOfLinkedGeoPolygon=Xr._sizeOfLinkedGeoPolygon,$._uncompact=Xr._uncompact,$.establishStackSpace=Xr.establishStackSpace;var Lo=$.stackAlloc=Xr.stackAlloc,Ln=$.stackRestore=Xr.stackRestore,rs=$.stackSave=Xr.stackSave;if($.asm=Xr,$.cwrap=wt,$.setValue=Et,$.getValue=Bt,$.getTempRet0=ft,er){fr(er)||(er=rt(er));{wr();var Jo=function(nn){nn.byteLength&&(nn=new Uint8Array(nn)),Wt.set(nn,dt),$.memoryInitializerRequest&&delete $.memoryInitializerRequest.response,rr()},zo=function(){nt(er,Jo,function(){throw"could not load memory initializer "+er})},qo=qn(er);if(qo)Jo(qo.buffer);else if($.memoryInitializerRequest){var Js=function(){var nn=$.memoryInitializerRequest,an=nn.response;if(nn.status!==200&&nn.status!==0){var Sr=qn($.memoryInitializerRequestURL);if(Sr)an=Sr.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+nn.status+", retrying "+er),zo();return}}Jo(an)};$.memoryInitializerRequest.response?setTimeout(Js,0):$.memoryInitializerRequest.addEventListener("load",Js)}else zo()}}var yo;Yr=function nn(){yo||wo(),yo||(Yr=nn)};function wo(nn){if(Or>0||(Lr(),Or>0))return;function an(){yo||(yo=!0,!St&&(Rr(),$r(),$.onRuntimeInitialized&&$.onRuntimeInitialized(),xr()))}$.setStatus?($.setStatus("Running..."),setTimeout(function(){setTimeout(function(){$.setStatus("")},1),an()},1)):an()}$.run=wo;function lo(nn){throw $.onAbort&&$.onAbort(nn),nn+="",it(nn),ot(nn),St=!0,"abort("+nn+"). Build with -s ASSERTIONS=1 for more info."}if($.abort=lo,$.preInit)for(typeof $.preInit=="function"&&($.preInit=[$.preInit]);$.preInit.length>0;)$.preInit.pop()();return wo(),j}(typeof libh3=="object"?libh3:{}),NUMBER="number",BOOLEAN=NUMBER,H3_LOWER=NUMBER,H3_UPPER=NUMBER,RESOLUTION=NUMBER,POINTER=NUMBER,BINDINGS=[["sizeOfH3Index",NUMBER],["sizeOfGeoCoord",NUMBER],["sizeOfGeoBoundary",NUMBER],["sizeOfGeoPolygon",NUMBER],["sizeOfGeofence",NUMBER],["sizeOfLinkedGeoPolygon",NUMBER],["sizeOfCoordIJ",NUMBER],["h3IsValid",BOOLEAN,[H3_LOWER,H3_UPPER]],["geoToH3",H3_LOWER,[NUMBER,NUMBER,RESOLUTION]],["h3ToGeo",null,[H3_LOWER,H3_UPPER,POINTER]],["h3ToGeoBoundary",null,[H3_LOWER,H3_UPPER,POINTER]],["maxKringSize",NUMBER,[NUMBER]],["kRing",null,[H3_LOWER,H3_UPPER,NUMBER,POINTER]],["kRingDistances",null,[H3_LOWER,H3_UPPER,NUMBER,POINTER,POINTER]],["hexRing",null,[H3_LOWER,H3_UPPER,NUMBER,POINTER]],["maxPolyfillSize",NUMBER,[POINTER,RESOLUTION]],["polyfill",null,[POINTER,RESOLUTION,POINTER]],["h3SetToLinkedGeo",null,[POINTER,NUMBER,POINTER]],["destroyLinkedPolygon",null,[POINTER]],["compact",NUMBER,[POINTER,POINTER,NUMBER]],["uncompact",NUMBER,[POINTER,NUMBER,POINTER,NUMBER,RESOLUTION]],["maxUncompactSize",NUMBER,[POINTER,NUMBER,RESOLUTION]],["h3IsPentagon",BOOLEAN,[H3_LOWER,H3_UPPER]],["h3IsResClassIII",BOOLEAN,[H3_LOWER,H3_UPPER]],["h3GetBaseCell",NUMBER,[H3_LOWER,H3_UPPER]],["h3GetResolution",NUMBER,[H3_LOWER,H3_UPPER]],["maxFaceCount",NUMBER,[H3_LOWER,H3_UPPER]],["h3GetFaces",null,[H3_LOWER,H3_UPPER,POINTER]],["h3ToParent",H3_LOWER,[H3_LOWER,H3_UPPER,RESOLUTION]],["h3ToChildren",null,[H3_LOWER,H3_UPPER,RESOLUTION,POINTER]],["h3ToCenterChild",H3_LOWER,[H3_LOWER,H3_UPPER,RESOLUTION]],["maxH3ToChildrenSize",NUMBER,[H3_LOWER,H3_UPPER,RESOLUTION]],["h3IndexesAreNeighbors",BOOLEAN,[H3_LOWER,H3_UPPER,H3_LOWER,H3_UPPER]],["getH3UnidirectionalEdge",H3_LOWER,[H3_LOWER,H3_UPPER,H3_LOWER,H3_UPPER]],["getOriginH3IndexFromUnidirectionalEdge",H3_LOWER,[H3_LOWER,H3_UPPER]],["getDestinationH3IndexFromUnidirectionalEdge",H3_LOWER,[H3_LOWER,H3_UPPER]],["h3UnidirectionalEdgeIsValid",BOOLEAN,[H3_LOWER,H3_UPPER]],["getH3IndexesFromUnidirectionalEdge",null,[H3_LOWER,H3_UPPER,POINTER]],["getH3UnidirectionalEdgesFromHexagon",null,[H3_LOWER,H3_UPPER,POINTER]],["getH3UnidirectionalEdgeBoundary",null,[H3_LOWER,H3_UPPER,POINTER]],["h3Distance",NUMBER,[H3_LOWER,H3_UPPER,H3_LOWER,H3_UPPER]],["h3Line",NUMBER,[H3_LOWER,H3_UPPER,H3_LOWER,H3_UPPER,POINTER]],["h3LineSize",NUMBER,[H3_LOWER,H3_UPPER,H3_LOWER,H3_UPPER]],["experimentalH3ToLocalIj",NUMBER,[H3_LOWER,H3_UPPER,H3_LOWER,H3_UPPER,POINTER]],["experimentalLocalIjToH3",NUMBER,[H3_LOWER,H3_UPPER,POINTER,POINTER]],["hexAreaM2",NUMBER,[RESOLUTION]],["hexAreaKm2",NUMBER,[RESOLUTION]],["edgeLengthM",NUMBER,[RESOLUTION]],["edgeLengthKm",NUMBER,[RESOLUTION]],["pointDistM",NUMBER,[POINTER,POINTER]],["pointDistKm",NUMBER,[POINTER,POINTER]],["pointDistRads",NUMBER,[POINTER,POINTER]],["cellAreaM2",NUMBER,[H3_LOWER,H3_UPPER]],["cellAreaKm2",NUMBER,[H3_LOWER,H3_UPPER]],["cellAreaRads2",NUMBER,[H3_LOWER,H3_UPPER]],["exactEdgeLengthM",NUMBER,[H3_LOWER,H3_UPPER]],["exactEdgeLengthKm",NUMBER,[H3_LOWER,H3_UPPER]],["exactEdgeLengthRads",NUMBER,[H3_LOWER,H3_UPPER]],["numHexagons",NUMBER,[RESOLUTION]],["getRes0Indexes",null,[POINTER]],["res0IndexCount",NUMBER],["getPentagonIndexes",null,[NUMBER,POINTER]],["pentagonIndexCount",NUMBER]],H3={};BINDINGS.forEach(function($){H3[$[0]]=libh3.cwrap.apply(libh3,$)});var BASE_16=16,SZ_INT=4,SZ_PTR=4,SZ_DBL=8,SZ_H3INDEX=H3.sizeOfH3Index(),SZ_GEOCOORD=H3.sizeOfGeoCoord(),SZ_GEOBOUNDARY=H3.sizeOfGeoBoundary(),SZ_GEOPOLYGON=H3.sizeOfGeoPolygon(),SZ_GEOFENCE=H3.sizeOfGeofence(),SZ_LINKED_GEOPOLYGON=H3.sizeOfLinkedGeoPolygon(),SZ_COORDIJ=H3.sizeOfCoordIJ(),UNITS={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function validateRes(j){if(typeof j!="number"||j<0||j>15||Math.floor(j)!==j)throw new Error("Invalid resolution: "+j)}var INVALID_HEXIDECIMAL_CHAR=/[^0-9a-fA-F]/;function h3IndexToSplitLong(j){if(Array.isArray(j)&&j.length===2&&Number.isInteger(j[0])&&Number.isInteger(j[1]))return j;if(typeof j!="string"||INVALID_HEXIDECIMAL_CHAR.test(j))return[0,0];var $=parseInt(j.substring(0,j.length-8),BASE_16),_e=parseInt(j.substring(j.length-8),BASE_16);return[_e,$]}function hexFrom32Bit(j){if(j>=0)return j.toString(BASE_16);j=j&2147483647;var $=zeroPad(8,j.toString(BASE_16)),_e=(parseInt($[0],BASE_16)+8).toString(BASE_16);return $=_e+$.substring(1),$}function splitLongToh3Index(j,$){return hexFrom32Bit($)+zeroPad(8,hexFrom32Bit(j))}function zeroPad(j,$){for(var _e=j-$.length,et="",tt=0;tt<_e;tt++)et+="0";return et=et+$,et}function polygonArrayToGeofence(j,$,_e){for(var et=j.length,tt=libh3._calloc(et,SZ_GEOCOORD),rt=_e?1:0,nt=_e?0:1,it=0;it0){it=libh3._calloc(_e,SZ_GEOFENCE);for(var ot=0;ot<_e;ot++)polygonArrayToGeofence(j[ot+1],it+SZ_GEOFENCE*ot,$)}return libh3.setValue(et+rt,_e,"i32"),libh3.setValue(et+nt,it,"i32"),et}function destroyGeoPolygon(j){var $=0,_e=$+SZ_GEOFENCE,et=_e+SZ_INT,tt=SZ_INT;libh3._free(libh3.getValue(j+$+tt,"i8*"));var rt=libh3.getValue(j+_e,"i32");if(rt>0){for(var nt=libh3.getValue(j+et,"i32"),it=0;it=0&&_e.push(tt)}return _e}function h3IsValid(j){var $=h3IndexToSplitLong(j),_e=$[0],et=$[1];return!!H3.h3IsValid(_e,et)}function h3IsPentagon(j){var $=h3IndexToSplitLong(j),_e=$[0],et=$[1];return!!H3.h3IsPentagon(_e,et)}function h3IsResClassIII(j){var $=h3IndexToSplitLong(j),_e=$[0],et=$[1];return!!H3.h3IsResClassIII(_e,et)}function h3GetBaseCell(j){var $=h3IndexToSplitLong(j),_e=$[0],et=$[1];return H3.h3GetBaseCell(_e,et)}function h3GetFaces(j){var $=h3IndexToSplitLong(j),_e=$[0],et=$[1],tt=H3.maxFaceCount(_e,et),rt=libh3._malloc(SZ_INT*tt);H3.h3GetFaces(_e,et,rt);var nt=readArrayOfPositiveIntegers(rt,tt);return libh3._free(rt),nt}function h3GetResolution(j){var $=h3IndexToSplitLong(j),_e=$[0],et=$[1];return H3.h3IsValid(_e,et)?H3.h3GetResolution(_e,et):-1}function geoToH3(j,$,_e){var et=libh3._malloc(SZ_GEOCOORD);libh3.HEAPF64.set([j,$].map(degsToRads),et/SZ_DBL);var tt=readH3Index(H3.geoToH3(et,_e));return libh3._free(et),tt}function h3ToGeo(j){var $=libh3._malloc(SZ_GEOCOORD),_e=h3IndexToSplitLong(j),et=_e[0],tt=_e[1];H3.h3ToGeo(et,tt,$);var rt=readGeoCoord($);return libh3._free($),rt}function h3ToGeoBoundary(j,$){var _e=libh3._malloc(SZ_GEOBOUNDARY),et=h3IndexToSplitLong(j),tt=et[0],rt=et[1];H3.h3ToGeoBoundary(tt,rt,_e);var nt=readGeoBoundary(_e,$,$);return libh3._free(_e),nt}function h3ToParent(j,$){var _e=h3IndexToSplitLong(j),et=_e[0],tt=_e[1];return readH3Index(H3.h3ToParent(et,tt,$))}function h3ToChildren(j,$){if(!h3IsValid(j))return[];var _e=h3IndexToSplitLong(j),et=_e[0],tt=_e[1],rt=H3.maxH3ToChildrenSize(et,tt,$),nt=libh3._calloc(rt,SZ_H3INDEX);H3.h3ToChildren(et,tt,$,nt);var it=readArrayOfHexagons(nt,rt);return libh3._free(nt),it}function h3ToCenterChild(j,$){var _e=h3IndexToSplitLong(j),et=_e[0],tt=_e[1];return readH3Index(H3.h3ToCenterChild(et,tt,$))}function kRing(j,$){var _e=h3IndexToSplitLong(j),et=_e[0],tt=_e[1],rt=H3.maxKringSize($),nt=libh3._calloc(rt,SZ_H3INDEX);H3.kRing(et,tt,$,nt);var it=readArrayOfHexagons(nt,rt);return libh3._free(nt),it}function kRingDistances(j,$){var _e=h3IndexToSplitLong(j),et=_e[0],tt=_e[1],rt=H3.maxKringSize($),nt=libh3._calloc(rt,SZ_H3INDEX),it=libh3._calloc(rt,SZ_INT);H3.kRingDistances(et,tt,$,nt,it);for(var ot=[],At=0;At<$+1;At++)ot.push([]);for(var ut=0;utj.hexagons}};class H3ClusterLayer extends GeoCellLayer{initializeState(){H3HexagonLayer._checkH3Lib()}updateState({props:$,changeFlags:_e}){if(_e.dataChanged||_e.updateTriggersChanged&&_e.updateTriggersChanged.getHexagons){const{data:et,getHexagons:tt}=$,rt=[],{iterable:nt,objectInfo:it}=createIterable(et);for(const ot of nt){it.index++;const At=tt(ot,it),ut=h3SetToMultiPolygon(At,!0);for(const ft of ut)rt.push(this.getSubLayerRow({polygon:ft},ot,it.index))}this.setState({polygons:rt})}}indexToBounds(){return{data:this.state.polygons,getPolygon:$=>$.polygon}}}_defineProperty$e(H3ClusterLayer,"layerName","H3ClusterLayer");_defineProperty$e(H3ClusterLayer,"defaultProps",defaultProps$o);const UPDATE_THRESHOLD_KM=10;function normalizeLongitudes(j,$){$=$===void 0?j[0][0]:$;for(const _e of j){const et=_e[0]-$;et>180?_e[0]-=360:et<-180&&(_e[0]+=360)}}function scalePolygon(j,$,_e){const[et,tt]=h3ToGeo(j),rt=$.length;normalizeLongitudes($,tt);const nt=$[0]===$[rt-1]?rt-1:rt;for(let it=0;itj.hexagon},extruded:!0};class H3HexagonLayer extends CompositeLayer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}initializeState(){H3HexagonLayer._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:$}){return this._shouldUseHighPrecision()?$.propsOrDataChanged:$.somethingChanged}updateState({props:$,changeFlags:_e}){if($.highPrecision!==!0&&(_e.dataChanged||_e.updateTriggersChanged&&_e.updateTriggersChanged.getHexagon)){const et=this._calculateH3DataProps();this.setState(et)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let $=-1,_e=!1,et=!1;const{iterable:tt,objectInfo:rt}=createIterable(this.props.data);for(const nt of tt){rt.index++;const it=this.props.getHexagon(nt,rt),ot=h3GetResolution(it);if($<0){if($=ot,!this.props.highPrecision)break}else if($!==ot){et=!0;break}if(h3IsPentagon(it)){_e=!0;break}}return{resolution:$,edgeLengthKM:$>=0?edgeLength($,"km"):0,hasMultipleRes:et,hasPentagon:_e}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){const{resolution:$,hasPentagon:_e,hasMultipleRes:et}=this.state,{viewport:tt}=this.context;return!!(tt!=null&&tt.resolution)||et||_e||$>=0&&$<=5}return this.props.highPrecision}_updateVertices($){if(this._shouldUseHighPrecision())return;const{resolution:_e,edgeLengthKM:et,centerHex:tt}=this.state;if(_e<0)return;const rt=this.props.centerHexagon||geoToH3($.latitude,$.longitude,_e);if(tt===rt)return;if(tt){const dt=h3Distance(tt,rt);if(dt>=0&&dt*et{const Et=$.projectFlat(dt);return[(Et[0]-ut)/nt[0],(Et[1]-ft)/nt[1]]}),this.setState({centerHex:rt,vertices:it})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){const{elevationScale:$,material:_e,coverage:et,extruded:tt,wireframe:rt,stroked:nt,filled:it,lineWidthUnits:ot,lineWidthScale:At,lineWidthMinPixels:ut,lineWidthMaxPixels:ft,getFillColor:dt,getElevation:Et,getLineColor:Bt,getLineWidth:St,transitions:Dt,updateTriggers:$t}=this.props;return{elevationScale:$,extruded:tt,coverage:et,wireframe:rt,stroked:nt,filled:it,lineWidthUnits:ot,lineWidthScale:At,lineWidthMinPixels:ut,lineWidthMaxPixels:ft,material:_e,getElevation:Et,getFillColor:dt,getLineColor:Bt,getLineWidth:St,transitions:Dt,updateTriggers:{getFillColor:$t.getFillColor,getElevation:$t.getElevation,getLineColor:$t.getLineColor,getLineWidth:$t.getLineWidth}}}_renderPolygonLayer(){const{data:$,getHexagon:_e,updateTriggers:et,coverage:tt}=this.props,rt=this.getSubLayerClass("hexagon-cell-hifi",PolygonLayer),nt=this._getForwardProps();return nt.updateTriggers.getPolygon=mergeTriggers(et.getHexagon,tt),new rt(nt,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:nt.updateTriggers}),{data:$,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(it,ot)=>{const At=_e(it,ot);return flattenPolygon(h3ToPolygon(At,tt))}})}_renderColumnLayer(){const{data:$,getHexagon:_e,updateTriggers:et}=this.props,tt=this.getSubLayerClass("hexagon-cell",ColumnLayer),rt=this._getForwardProps();return rt.updateTriggers.getPosition=et.getHexagon,new tt(rt,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:rt.updateTriggers}),{data:$,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:getHexagonCentroid.bind(null,_e)})}}_defineProperty$e(H3HexagonLayer,"defaultProps",defaultProps$n);_defineProperty$e(H3HexagonLayer,"layerName","H3HexagonLayer");_defineProperty$e(H3HexagonLayer,"_checkH3Lib",()=>{});const RADIAN_PER_DEGREE=Math.PI/180,modelMatrix=new Float32Array(16),valueArray=new Float32Array(12);function calculateTransformMatrix(j,$,_e){const et=$[0]*RADIAN_PER_DEGREE,tt=$[1]*RADIAN_PER_DEGREE,rt=$[2]*RADIAN_PER_DEGREE,nt=Math.sin(rt),it=Math.sin(et),ot=Math.sin(tt),At=Math.cos(rt),ut=Math.cos(et),ft=Math.cos(tt),dt=_e[0],Et=_e[1],Bt=_e[2];j[0]=dt*ft*ut,j[1]=dt*ot*ut,j[2]=dt*-it,j[3]=Et*(-ot*At+ft*it*nt),j[4]=Et*(ft*At+ot*it*nt),j[5]=Et*ut*nt,j[6]=Bt*(ot*nt+ft*it*At),j[7]=Bt*(-ft*nt+ot*it*At),j[8]=Bt*ut*At}function getExtendedMat3FromMat4(j){return j[0]=j[0],j[1]=j[1],j[2]=j[2],j[3]=j[4],j[4]=j[5],j[5]=j[6],j[6]=j[8],j[7]=j[9],j[8]=j[10],j[9]=j[12],j[10]=j[13],j[11]=j[14],j.subarray(0,12)}const MATRIX_ATTRIBUTES={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrix__LOCATION_0:{size:3,elementOffset:0},instanceModelMatrix__LOCATION_1:{size:3,elementOffset:3},instanceModelMatrix__LOCATION_2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update(j,{startRow:$,endRow:_e}){const{data:et,getOrientation:tt,getScale:rt,getTranslation:nt,getTransformMatrix:it}=this.props,ot=Array.isArray(it),At=ot&&it.length===16,ut=Array.isArray(rt),ft=Array.isArray(tt),dt=Array.isArray(nt),Et=At||!ot&&!!it(et[0]);Et?j.constant=At:j.constant=ft&&ut&&dt;const Bt=j.value;if(j.constant){let St;Et?(modelMatrix.set(it),St=getExtendedMat3FromMat4(modelMatrix)):(St=valueArray,calculateTransformMatrix(St,tt,rt),St.set(nt,9)),j.value=new Float32Array(St)}else{let St=$*j.size;const{iterable:Dt,objectInfo:$t}=createIterable(et,$,_e);for(const Rt of Dt){$t.index++;let wt;if(Et)modelMatrix.set(At?it:it(Rt,$t)),wt=getExtendedMat3FromMat4(modelMatrix);else{wt=valueArray;const xt=ft?tt:tt(Rt,$t),Nt=ut?rt:rt(Rt,$t);calculateTransformMatrix(wt,xt,Nt),wt.set(dt?nt:nt(Rt,$t),9)}Bt[St++]=wt[0],Bt[St++]=wt[1],Bt[St++]=wt[2],Bt[St++]=wt[3],Bt[St++]=wt[4],Bt[St++]=wt[5],Bt[St++]=wt[6],Bt[St++]=wt[7],Bt[St++]=wt[8],Bt[St++]=wt[9],Bt[St++]=wt[10],Bt[St++]=wt[11]}}}};function shouldComposeModelMatrix(j,$){return $===COORDINATE_SYSTEM.CARTESIAN||$===COORDINATE_SYSTEM.METER_OFFSETS||$===COORDINATE_SYSTEM.DEFAULT&&!j.isGeospatial}const vs$8=`#version 300 es +#define SHADER_NAME simple-mesh-layer-vs + +// Scale the model +uniform float sizeScale; +uniform bool composeModelMatrix; + +// Primitive attributes +in vec3 positions; +in vec3 normals; +in vec3 colors; +in vec2 texCoords; + +// Instance attributes +in vec3 instancePositions; +in vec3 instancePositions64Low; +in vec4 instanceColors; +in vec3 instancePickingColors; +in mat3 instanceModelMatrix; +in vec3 instanceTranslation; + +// Outputs to fragment shader +out vec2 vTexCoord; +out vec3 cameraPosition; +out vec3 normals_commonspace; +out vec4 position_commonspace; +out vec4 vColor; + +void main(void) { + geometry.worldPosition = instancePositions; + geometry.uv = texCoords; + geometry.pickingColor = instancePickingColors; + + vTexCoord = texCoords; + cameraPosition = project_uCameraPosition; + vColor = vec4(colors * instanceColors.rgb, instanceColors.a); + + vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation; + + if (composeModelMatrix) { + DECKGL_FILTER_SIZE(pos, geometry); + // using instancePositions as world coordinates + // when using globe mode, this branch does not re-orient the model to align with the surface of the earth + // call project_normal before setting position to avoid rotation + normals_commonspace = project_normal(instanceModelMatrix * normals); + gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace); + geometry.position = position_commonspace; + } + else { + pos = project_size(pos); + DECKGL_FILTER_SIZE(pos, geometry); + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace); + geometry.position = position_commonspace; + normals_commonspace = project_normal(instanceModelMatrix * normals); + } + + geometry.normal = normals_commonspace; + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$8=`#version 300 es +#define SHADER_NAME simple-mesh-layer-fs + +precision highp float; + +uniform bool hasTexture; +uniform sampler2D sampler; +uniform bool flatShading; +uniform float opacity; + +in vec2 vTexCoord; +in vec3 cameraPosition; +in vec3 normals_commonspace; +in vec4 position_commonspace; +in vec4 vColor; + +out vec4 fragColor; + +void main(void) { + geometry.uv = vTexCoord; + + vec3 normal; + if (flatShading) { + +// NOTE(Tarek): This is necessary because +// headless.gl reports the extension as +// available but does not support it in +// the shader. +#ifdef DERIVATIVES_AVAILABLE + normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); +#else + normal = vec3(0.0, 0.0, 1.0); +#endif + } else { + normal = normals_commonspace; + } + + vec4 color = hasTexture ? texture(sampler, vTexCoord) : vColor; + vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal); + fragColor = vec4(lightColor, color.a * opacity); + + DECKGL_FILTER_COLOR(fragColor, geometry); +} +`;function validateGeometryAttributes$1(j,$){(j.COLOR_0||j.colors)&&$||(j.colors={constant:!0,value:new Float32Array([1,1,1])}),log$3.assert(j.positions||j.POSITION,'no "postions" or "POSITION" attribute in mesh')}function getGeometry(j,$){if(j.attributes)return validateGeometryAttributes$1(j.attributes,$),j instanceof Geometry?j:new Geometry(j);if(j.positions||j.POSITION)return validateGeometryAttributes$1(j,$),new Geometry({attributes:j});throw Error("Invalid mesh")}const DEFAULT_COLOR$1=[0,0,0,255],defaultProps$m={mesh:{type:"object",value:null,async:!0},texture:{type:"image",value:null,async:!0},sizeScale:{type:"number",value:1,min:0},_useMeshColors:{type:"boolean",value:!1},_instanced:!0,wireframe:!1,material:!0,getPosition:{type:"accessor",value:j=>j.position},getColor:{type:"accessor",value:DEFAULT_COLOR$1},getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]}};class SimpleMeshLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){const $=!isWebGL2$1(this.context.gl),_e={};return hasFeature(this.context.gl,FEATURES$1.GLSL_DERIVATIVES)&&(_e.DERIVATIVES_AVAILABLE=1),super.getShaders({vs:vs$8,fs:fs$8,modules:[project32,phongLighting,picking],transpileToGLSL100:$,defines:_e})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{transition:!0,type:5130,fp64:this.use64bitPositions(),size:3,accessor:"getPosition"},instanceColors:{type:5121,transition:!0,size:this.props.colorFormat.length,normalized:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceModelMatrix:MATRIX_ATTRIBUTES}),this.setState({emptyTexture:new Texture2D(this.context.gl,{data:new Uint8Array(4),width:1,height:1})})}updateState($){super.updateState($);const{props:_e,oldProps:et,changeFlags:tt}=$;if(_e.mesh!==et.mesh||tt.extensionsChanged){var rt;if((rt=this.state.model)===null||rt===void 0||rt.delete(),_e.mesh){this.state.model=this.getModel(_e.mesh);const nt=_e.mesh.attributes||_e.mesh;this.setState({hasNormals:!!(nt.NORMAL||nt.normals)})}this.getAttributeManager().invalidateAll()}_e.texture!==et.texture&&this.setTexture(_e.texture),this.state.model&&this.state.model.setDrawMode(this.props.wireframe?3:4)}finalizeState($){super.finalizeState($),this.state.emptyTexture.delete()}draw({uniforms:$}){if(!this.state.model)return;const{viewport:_e}=this.context,{sizeScale:et,coordinateSystem:tt,_instanced:rt}=this.props;this.state.model.setUniforms($).setUniforms({sizeScale:et,composeModelMatrix:!rt||shouldComposeModelMatrix(_e,tt),flatShading:!this.state.hasNormals}).draw()}getModel($){const _e=new Model(this.context.gl,{...this.getShaders(),id:this.props.id,geometry:getGeometry($,this.props._useMeshColors),isInstanced:!0}),{texture:et}=this.props,{emptyTexture:tt}=this.state;return _e.setUniforms({sampler:et||tt,hasTexture:!!et}),_e}setTexture($){const{emptyTexture:_e,model:et}=this.state;et&&et.setUniforms({sampler:$||_e,hasTexture:!!$})}}_defineProperty$e(SimpleMeshLayer,"defaultProps",defaultProps$m);_defineProperty$e(SimpleMeshLayer,"layerName","SimpleMeshLayer");class ScenegraphNode{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{id:_e}=$;this.id=_e||uid(this.constructor.name),this.display=!0,this.position=new Vector3,this.rotation=new Vector3,this.scale=new Vector3(1,1,1),this.matrix=new Matrix4,this.userData={},this.props={},this._setScenegraphNodeProps($)}delete(){}setProps($){return this._setScenegraphNodeProps($),this}toString(){return"{type: ScenegraphNode, id: ".concat(this.id,")}")}getBounds(){return null}setPosition($){return assert$7($.length===3,"setPosition requires vector argument"),this.position=$,this}setRotation($){return assert$7($.length===3,"setRotation requires vector argument"),this.rotation=$,this}setScale($){return assert$7($.length===3,"setScale requires vector argument"),this.scale=$,this}setMatrix($){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?this.matrix.copy($):this.matrix=$}setMatrixComponents($){let{position:_e,rotation:et,scale:tt,update:rt=!0}=$;return _e&&this.setPosition(_e),et&&this.setRotation(et),tt&&this.setScale(tt),rt&&this.updateMatrix(),this}updateMatrix(){const $=this.position,_e=this.rotation,et=this.scale;return this.matrix.identity(),this.matrix.translate($),this.matrix.rotateXYZ(_e),this.matrix.scale(et),this}update(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{position:_e,rotation:et,scale:tt}=$;return _e&&this.setPosition(_e),et&&this.setRotation(et),tt&&this.setScale(tt),this.updateMatrix(),this}getCoordinateUniforms($,_e){assert$7($),_e=_e||this.matrix;const et=new Matrix4($).multiplyRight(_e),tt=et.invert(),rt=tt.transpose();return{viewMatrix:$,modelMatrix:_e,objectMatrix:_e,worldMatrix:et,worldInverseMatrix:tt,worldInverseTransposeMatrix:rt}}_setScenegraphNodeProps($){"display"in $&&(this.display=$.display),"position"in $&&this.setPosition($.position),"rotation"in $&&this.setRotation($.rotation),"scale"in $&&this.setScale($.scale),"matrix"in $&&this.setMatrix($.matrix),Object.assign(this.props,$)}}class GroupNode extends ScenegraphNode{constructor(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};$=Array.isArray($)?{children:$}:$;const{children:_e=[]}=$;log$2.assert(_e.every(et=>et instanceof ScenegraphNode),"every child must an instance of ScenegraphNode"),super($),this.children=_e}add(){for(var $=arguments.length,_e=new Array($),et=0;et<$;et++)_e[et]=arguments[et];for(const tt of _e)Array.isArray(tt)?this.add(...tt):this.children.push(tt);return this}remove($){const _e=this.children,et=_e.indexOf($);return et>-1&&_e.splice(et,1),this}removeAll(){return this.children=[],this}delete(){this.children.forEach($=>$.delete()),this.removeAll(),super.delete()}getBounds(){const $=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];return this.traverse((_e,et)=>{let{worldMatrix:tt}=et;const rt=_e.getBounds();if(!rt)return;const[nt,it]=rt,ot=new Vector3(nt).add(it).divide([2,2,2]);tt.transformAsPoint(ot,ot);const At=new Vector3(it).subtract(nt).divide([2,2,2]);tt.transformAsVector(At,At);for(let ut=0;ut<8;ut++){const ft=new Vector3(ut&1?-1:1,ut&2?-1:1,ut&4?-1:1).multiply(At).add(ot);for(let dt=0;dt<3;dt++)$[0][dt]=Math.min($[0][dt],ft[dt]),$[1][dt]=Math.max($[1][dt],ft[dt])}}),Number.isFinite($[0][0])?$:null}traverse($){let{worldMatrix:_e=new Matrix4}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const et=new Matrix4(_e).multiplyRight(this.matrix);for(const tt of this.children)tt instanceof GroupNode?tt.traverse($,{worldMatrix:et}):$(tt,{worldMatrix:et})}}const ATTRIBUTE_TYPE_TO_COMPONENTS$2={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY$1={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function accessorToJsArray(j){if(!j._animation){const $=ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY$1[j.componentType],_e=ATTRIBUTE_TYPE_TO_COMPONENTS$2[j.type],et=_e*j.count,{buffer:tt,byteOffset:rt}=j.bufferView.data,nt=new $(tt,rt+(j.byteOffset||0),et);if(_e===1)j._animation=Array.from(nt);else{const it=[];for(let ot=0;otEt>=ot),ut=Math.max(0,At-1);if(!Array.isArray(_e[et]))switch(et){case"translation":_e[et]=[0,0,0];break;case"rotation":_e[et]=[0,0,0,1];break;case"scale":_e[et]=[1,1,1];break;default:log$2.warn("Bad animation path ".concat(et))()}assert$7(_e[et].length===nt[ut].length);const ft=tt[ut],dt=tt[At];switch(rt){case"STEP":stepInterpolate(_e,et,nt[ut]);break;case"LINEAR":if(dt>ft){const Et=(ot-ft)/(dt-ft);linearInterpolate(_e,et,nt[ut],nt[At],Et)}break;case"CUBICSPLINE":if(dt>ft){const Et=(ot-ft)/(dt-ft),Bt=dt-ft,St=nt[3*ut+1],Dt=nt[3*ut+2],$t=nt[3*At+0],Rt=nt[3*At+1];cubicsplineInterpolate(_e,et,{p0:St,outTangent0:Dt,inTangent1:$t,p1:Rt,tDiff:Bt,ratio:Et})}break;default:log$2.warn("Interpolation ".concat(rt," not supported"))();break}}class GLTFAnimation{constructor($){this.startTime=0,this.playing=!0,this.speed=1,this.channels=[],Object.assign(this,$)}animate($){if(!this.playing)return;const et=($/1e3-this.startTime)*this.speed;this.channels.forEach(tt=>{let{sampler:rt,target:nt,path:it}=tt;interpolate$1$1(et,rt,nt,it),applyTranslationRotationScale(nt,nt._node)})}}class GLTFAnimator{constructor($){this.animations=$.animations.map((_e,et)=>{const tt=_e.name||"Animation-".concat(et),rt=_e.samplers.map(it=>{let{input:ot,interpolation:At="LINEAR",output:ut}=it;return{input:accessorToJsArray($.accessors[ot]),interpolation:At,output:accessorToJsArray($.accessors[ut])}}),nt=_e.channels.map(it=>{let{sampler:ot,target:At}=it;return{sampler:rt[ot],target:$.nodes[At.node],path:At.path}});return new GLTFAnimation({name:tt,channels:nt})})}animate($){this.setTime($)}setTime($){this.animations.forEach(_e=>_e.animate($))}getAnimations(){return this.animations}}class ModelNode extends ScenegraphNode{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(_e),this.onBeforeRender=null,this.AfterRender=null,$ instanceof Model?(this.model=$,this._setModelNodeProps(_e)):this.model=new Model($,_e),this.bounds=null,this.managedResources=_e.managedResources||[]}setProps($){return super.setProps($),this._setModelNodeProps($),this}getBounds(){return this.bounds}delete(){this.model&&(this.model.delete(),this.model=null),this.managedResources.forEach($=>$.delete()),this.managedResources=[]}draw(){return this.model.draw(...arguments)}setUniforms(){return this.model.setUniforms(...arguments),this}setAttributes(){return this.model.setAttributes(...arguments),this}updateModuleSettings(){return this.model.updateModuleSettings(...arguments),this}_setModelNodeProps($){this.model.setProps($)}}class GLTFMaterialParser{constructor($,_e){let{attributes:et,material:tt,pbrDebug:rt,imageBasedLightingEnvironment:nt,lights:it,useTangents:ot}=_e;this.gl=$,this.defines={MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},hasFeature($,FEATURES$1.GLSL_TEXTURE_LOD)&&(this.defines.USE_TEX_LOD=1),this.uniforms={u_Camera:[0,0,0],u_MetallicRoughnessValues:[1,1]},this.parameters={},this.generatedTextures=[],nt&&(this.uniforms.u_DiffuseEnvSampler=nt.getDiffuseEnvSampler(),this.uniforms.u_SpecularEnvSampler=nt.getSpecularEnvSampler(),this.uniforms.u_brdfLUT=nt.getBrdfTexture(),this.uniforms.u_ScaleIBLAmbient=[1,1]),rt&&(this.uniforms.u_ScaleDiffBaseMR=[0,0,0,0],this.uniforms.u_ScaleFGDSpec=[0,0,0,0]),this.defineIfPresent(et.NORMAL,"HAS_NORMALS"),this.defineIfPresent(et.TANGENT&&ot,"HAS_TANGENTS"),this.defineIfPresent(et.TEXCOORD_0,"HAS_UV"),this.defineIfPresent(nt,"USE_IBL"),this.defineIfPresent(it,"USE_LIGHTS"),this.defineIfPresent(rt,"PBR_DEBUG"),tt&&this.parseMaterial(tt)}defineIfPresent($,_e){$&&(this.defines[_e]=1)}parseTexture($,_e){let et=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;const tt=$.texture&&$.texture.sampler&&$.texture.sampler.parameters||{},rt=$.texture.source.image;let nt,it={};rt.compressed?(nt=rt,it={[this.gl.TEXTURE_MIN_FILTER]:rt.data.length>1?this.gl.LINEAR_MIPMAP_NEAREST:this.gl.LINEAR}):nt={data:rt};const ot=new Texture2D(this.gl,{id:$.name||$.id,parameters:{...tt,...it},pixelStore:{[this.gl.UNPACK_FLIP_Y_WEBGL]:!1},...nt});this.uniforms[_e]=ot,this.defineIfPresent(et,et),this.generatedTextures.push(ot)}parsePbrMetallicRoughness($){$.baseColorTexture&&this.parseTexture($.baseColorTexture,"u_BaseColorSampler","HAS_BASECOLORMAP"),this.uniforms.u_BaseColorFactor=$.baseColorFactor||[1,1,1,1],$.metallicRoughnessTexture&&this.parseTexture($.metallicRoughnessTexture,"u_MetallicRoughnessSampler","HAS_METALROUGHNESSMAP");const{metallicFactor:_e=1,roughnessFactor:et=1}=$;this.uniforms.u_MetallicRoughnessValues=[_e,et]}parseMaterial($){if(this.uniforms.pbr_uUnlit=!!$.unlit,$.pbrMetallicRoughness&&this.parsePbrMetallicRoughness($.pbrMetallicRoughness),$.normalTexture){this.parseTexture($.normalTexture,"u_NormalSampler","HAS_NORMALMAP");const{scale:_e=1}=$.normalTexture;this.uniforms.u_NormalScale=_e}if($.occlusionTexture){this.parseTexture($.occlusionTexture,"u_OcclusionSampler","HAS_OCCLUSIONMAP");const{strength:_e=1}=$.occlusionTexture;this.uniforms.u_OcclusionStrength=_e}if($.emissiveTexture&&(this.parseTexture($.emissiveTexture,"u_EmissiveSampler","HAS_EMISSIVEMAP"),this.uniforms.u_EmissiveFactor=$.emissiveFactor||[0,0,0]),$.alphaMode==="MASK"){const{alphaCutoff:_e=.5}=$;this.defines.ALPHA_CUTOFF=1,this.uniforms.u_AlphaCutoff=_e}else $.alphaMode==="BLEND"&&(log$2.warn("BLEND alphaMode might not work well because it requires mesh sorting")(),Object.assign(this.parameters,{blend:!0,blendEquation:this.gl.FUNC_ADD,blendFunc:[this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA,this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA]}))}delete(){this.generatedTextures.forEach($=>$.delete())}}const vs$7=` +#if (__VERSION__ < 300) + #define _attr attribute +#else + #define _attr in +#endif + + _attr vec4 POSITION; + + #ifdef HAS_NORMALS + _attr vec4 NORMAL; + #endif + + #ifdef HAS_TANGENTS + _attr vec4 TANGENT; + #endif + + #ifdef HAS_UV + _attr vec2 TEXCOORD_0; + #endif + + void main(void) { + vec4 _NORMAL = vec4(0.); + vec4 _TANGENT = vec4(0.); + vec2 _TEXCOORD_0 = vec2(0.); + + #ifdef HAS_NORMALS + _NORMAL = NORMAL; + #endif + + #ifdef HAS_TANGENTS + _TANGENT = TANGENT; + #endif + + #ifdef HAS_UV + _TEXCOORD_0 = TEXCOORD_0; + #endif + + pbr_setPositionNormalTangentUV(POSITION, _NORMAL, _TANGENT, _TEXCOORD_0); + gl_Position = u_MVPMatrix * POSITION; + } +`,fs$7=` +#if (__VERSION__ < 300) + #define fragmentColor gl_FragColor +#else + out vec4 fragmentColor; +#endif + + void main(void) { + fragmentColor = pbr_filterColor(vec4(0)); + } +`;function addVersionToShader(j,$){return isWebGL2$1(j)?`#version 300 es +`.concat($):$}function createGLTFModel(j,$){const{id:_e,drawMode:et,vertexCount:tt,attributes:rt,modelOptions:nt}=$,it=new GLTFMaterialParser(j,$);log$2.info(4,"createGLTFModel defines: ",it.defines)();const ot=[];ot.push(...it.generatedTextures),ot.push(...Object.values(rt).map(ut=>ut.buffer));const At=new ModelNode(j,{id:_e,drawMode:et,vertexCount:tt,modules:[pbr],parameters:it.parameters,vs:addVersionToShader(j,vs$7),fs:addVersionToShader(j,fs$7),managedResources:ot,...nt,defines:{...it.defines,...nt.defines}});return At.setProps({attributes:rt}),At.setUniforms(it.uniforms),At}const ATTRIBUTE_TYPE_TO_COMPONENTS$1={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},DEFAULT_OPTIONS={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1};class GLTFInstantiator{constructor($){let _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=$,this.options=Object.assign({},DEFAULT_OPTIONS,_e)}instantiate($){return this.gltf=$,($.scenes||[]).map(et=>this.createScene(et))}createAnimator(){return Array.isArray(this.gltf.animations)?new GLTFAnimator(this.gltf):null}createScene($){const et=($.nodes||[]).map(rt=>this.createNode(rt));return new GroupNode({id:$.name||$.id,children:et})}createNode($){if(!$._node){const et=($.children||[]).map(rt=>this.createNode(rt));$.mesh&&et.push(this.createMesh($.mesh));const tt=new GroupNode({id:$.name||$.id,children:et});if($.matrix)tt.setMatrix($.matrix);else{if(tt.matrix.identity(),$.translation&&tt.matrix.translate($.translation),$.rotation){const rt=new Matrix4().fromQuaternion($.rotation);tt.matrix.multiplyRight(rt)}$.scale&&tt.matrix.scale($.scale)}$._node=tt}return $._node}createMesh($){if(!$._mesh){const et=($.primitives||[]).map((rt,nt)=>this.createPrimitive(rt,nt,$)),tt=new GroupNode({id:$.name||$.id,children:et});$._mesh=tt}return $._mesh}getVertexCount($){log$2.warn("getVertexCount() not found")()}createPrimitive($,_e,et){const tt=createGLTFModel(this.gl,Object.assign({id:$.name||"".concat(et.name||et.id,"-primitive-").concat(_e),drawMode:$.mode||4,vertexCount:$.indices?$.indices.count:this.getVertexCount($.attributes),attributes:this.createAttributes($.attributes,$.indices),material:$.material},this.options));return tt.bounds=[$.attributes.POSITION.min,$.attributes.POSITION.max],tt}createAttributes($,_e){const et={};return Object.keys($).forEach(tt=>{et[tt]=this.createAccessor($[tt],this.createBuffer($[tt],this.gl.ARRAY_BUFFER))}),_e&&(et.indices=this.createAccessor(_e,this.createBuffer(_e,this.gl.ELEMENT_ARRAY_BUFFER))),log$2.info(4,"glTF Attributes",{attributes:$,indices:_e,generated:et})(),et}createBuffer($,_e){$.bufferView||($.bufferView={});const{bufferView:et}=$;return et.lumaBuffers||(et.lumaBuffers={}),et.lumaBuffers[_e]||(et.lumaBuffers[_e]=new Buffer$1(this.gl,{id:"from-".concat(et.id),data:et.data||$.value,target:_e})),et.lumaBuffers[_e]}createAccessor($,_e){return new Accessor({buffer:_e,offset:$.byteOffset||0,stride:$.bufferView.byteStride||0,type:$.componentType,size:ATTRIBUTE_TYPE_TO_COMPONENTS$1[$.type]})}createSampler($){return $}needsPOT(){return!1}}function createGLTFObjects(j,$,_e){const et=new GLTFInstantiator(j,_e),tt=et.instantiate($),rt=et.createAnimator();return{scenes:tt,animator:rt}}const VERSION$6="3.2.10",VERSION$5="3.2.10",VERSION$4="3.2.10",BASIS_CDN_ENCODER_WASM="https://unpkg.com/@loaders.gl/textures@".concat(VERSION$4,"/dist/libs/basis_encoder.wasm"),BASIS_CDN_ENCODER_JS="https://unpkg.com/@loaders.gl/textures@".concat(VERSION$4,"/dist/libs/basis_encoder.js");let loadBasisTranscoderPromise;async function loadBasisTrascoderModule(j){const $=j.modules||{};return $.basis?$.basis:(loadBasisTranscoderPromise=loadBasisTranscoderPromise||loadBasisTrascoder(j),await loadBasisTranscoderPromise)}async function loadBasisTrascoder(j){let $=null,_e=null;return[$,_e]=await Promise.all([await loadLibrary("basis_transcoder.js","textures",j),await loadLibrary("basis_transcoder.wasm","textures",j)]),$=$||globalThis.BASIS,await initializeBasisTrascoderModule($,_e)}function initializeBasisTrascoderModule(j,$){const _e={};return $&&(_e.wasmBinary=$),new Promise(et=>{j(_e).then(tt=>{const{BasisFile:rt,initializeBasis:nt}=tt;nt(),et({BasisFile:rt})})})}let loadBasisEncoderPromise;async function loadBasisEncoderModule(j){const $=j.modules||{};return $.basisEncoder?$.basisEncoder:(loadBasisEncoderPromise=loadBasisEncoderPromise||loadBasisEncoder(j),await loadBasisEncoderPromise)}async function loadBasisEncoder(j){let $=null,_e=null;return[$,_e]=await Promise.all([await loadLibrary(BASIS_CDN_ENCODER_JS,"textures",j),await loadLibrary(BASIS_CDN_ENCODER_WASM,"textures",j)]),$=$||globalThis.BASIS,await initializeBasisEncoderModule($,_e)}function initializeBasisEncoderModule(j,$){const _e={};return $&&(_e.wasmBinary=$),new Promise(et=>{j(_e).then(tt=>{const{BasisFile:rt,KTX2File:nt,initializeBasis:it,BasisEncoder:ot}=tt;it(),et({BasisFile:rt,KTX2File:nt,BasisEncoder:ot})})})}const GL_EXTENSIONS_CONSTANTS={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35987,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,COMPRESSED_RGBA_ASTC_4X4_KHR:37808,COMPRESSED_RGBA_ASTC_5X4_KHR:37809,COMPRESSED_RGBA_ASTC_5X5_KHR:37810,COMPRESSED_RGBA_ASTC_6X5_KHR:37811,COMPRESSED_RGBA_ASTC_6X6_KHR:37812,COMPRESSED_RGBA_ASTC_8X5_KHR:37813,COMPRESSED_RGBA_ASTC_8X6_KHR:37814,COMPRESSED_RGBA_ASTC_8X8_KHR:37815,COMPRESSED_RGBA_ASTC_10X5_KHR:37816,COMPRESSED_RGBA_ASTC_10X6_KHR:37817,COMPRESSED_RGBA_ASTC_10X8_KHR:37818,COMPRESSED_RGBA_ASTC_10X10_KHR:37819,COMPRESSED_RGBA_ASTC_12X10_KHR:37820,COMPRESSED_RGBA_ASTC_12X12_KHR:37821,COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR:37840,COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR:37841,COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR:37842,COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR:37843,COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR:37844,COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR:37845,COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR:37846,COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR:37847,COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR:37848,COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR:37849,COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR:37850,COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR:37851,COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR:37852,COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR:37853,COMPRESSED_RED_RGTC1_EXT:36283,COMPRESSED_SIGNED_RED_RGTC1_EXT:36284,COMPRESSED_RED_GREEN_RGTC2_EXT:36285,COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:36286,COMPRESSED_SRGB_S3TC_DXT1_EXT:35916,COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:35917,COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:35918,COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:35919},BROWSER_PREFIXES=["","WEBKIT_","MOZ_"],WEBGL_EXTENSIONS={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"};let formats=null;function getSupportedGPUTextureFormats(j){if(!formats){j=j||getWebGLContext()||void 0,formats=new Set;for(const $ of BROWSER_PREFIXES)for(const _e in WEBGL_EXTENSIONS)if(j&&j.getExtension("".concat($).concat(_e))){const et=WEBGL_EXTENSIONS[_e];formats.add(et)}}return formats}function getWebGLContext(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var n$2,i$3,s,a,r$2,o$1,l$2,f$1$1;(function(j){j[j.NONE=0]="NONE",j[j.BASISLZ=1]="BASISLZ",j[j.ZSTD=2]="ZSTD",j[j.ZLIB=3]="ZLIB"})(n$2||(n$2={})),function(j){j[j.BASICFORMAT=0]="BASICFORMAT"}(i$3||(i$3={})),function(j){j[j.UNSPECIFIED=0]="UNSPECIFIED",j[j.ETC1S=163]="ETC1S",j[j.UASTC=166]="UASTC"}(s||(s={})),function(j){j[j.UNSPECIFIED=0]="UNSPECIFIED",j[j.SRGB=1]="SRGB"}(a||(a={})),function(j){j[j.UNSPECIFIED=0]="UNSPECIFIED",j[j.LINEAR=1]="LINEAR",j[j.SRGB=2]="SRGB",j[j.ITU=3]="ITU",j[j.NTSC=4]="NTSC",j[j.SLOG=5]="SLOG",j[j.SLOG2=6]="SLOG2"}(r$2||(r$2={})),function(j){j[j.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",j[j.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(o$1||(o$1={})),function(j){j[j.RGB=0]="RGB",j[j.RRR=3]="RRR",j[j.GGG=4]="GGG",j[j.AAA=15]="AAA"}(l$2||(l$2={})),function(j){j[j.RGB=0]="RGB",j[j.RGBA=3]="RGBA",j[j.RRR=4]="RRR",j[j.RRRG=5]="RRRG"}(f$1$1||(f$1$1={}));const KTX2_ID=[171,75,84,88,32,50,48,187,13,10,26,10];function isKTX(j){const $=new Uint8Array(j);return!($.byteLength=0&&nt<=$.byteLength),{ArrayType:_e,length:rt,byteLength:nt}}const DEFAULT_GLTF_JSON={asset:{version:"2.0",generator:"loaders.gl"},buffers:[]};class GLTFScenegraph{constructor($){_defineProperty$e(this,"gltf",void 0),_defineProperty$e(this,"sourceBuffers",void 0),_defineProperty$e(this,"byteLength",void 0),this.gltf=$||{json:{...DEFAULT_GLTF_JSON},buffers:[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData($){return this.json[$]}getExtraData($){return(this.json.extras||{})[$]}getExtension($){const _e=this.getUsedExtensions().find(tt=>tt===$),et=this.json.extensions||{};return _e?et[$]||!0:null}getRequiredExtension($){return this.getRequiredExtensions().find(et=>et===$)?this.getExtension($):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getObjectExtension($,_e){return($.extensions||{})[_e]}getScene($){return this.getObject("scenes",$)}getNode($){return this.getObject("nodes",$)}getSkin($){return this.getObject("skins",$)}getMesh($){return this.getObject("meshes",$)}getMaterial($){return this.getObject("materials",$)}getAccessor($){return this.getObject("accessors",$)}getTexture($){return this.getObject("textures",$)}getSampler($){return this.getObject("samplers",$)}getImage($){return this.getObject("images",$)}getBufferView($){return this.getObject("bufferViews",$)}getBuffer($){return this.getObject("buffers",$)}getObject($,_e){if(typeof _e=="object")return _e;const et=this.json[$]&&this.json[$][_e];if(!et)throw new Error("glTF file error: Could not find ".concat($,"[").concat(_e,"]"));return et}getTypedArrayForBufferView($){$=this.getBufferView($);const _e=$.buffer,et=this.gltf.buffers[_e];assert$3(et);const tt=($.byteOffset||0)+et.byteOffset;return new Uint8Array(et.arrayBuffer,tt,$.byteLength)}getTypedArrayForAccessor($){$=this.getAccessor($);const _e=this.getBufferView($.bufferView),tt=this.getBuffer(_e.buffer).data,{ArrayType:rt,length:nt}=getAccessorArrayTypeAndLength($,_e),it=_e.byteOffset+$.byteOffset;return new rt(tt,it,nt)}getTypedArrayForImageData($){$=this.getAccessor($);const _e=this.getBufferView($.bufferView),tt=this.getBuffer(_e.buffer).data,rt=_e.byteOffset||0;return new Uint8Array(tt,rt,_e.byteLength)}addApplicationData($,_e){return this.json[$]=_e,this}addExtraData($,_e){return this.json.extras=this.json.extras||{},this.json.extras[$]=_e,this}addObjectExtension($,_e,et){return $.extensions=$.extensions||{},$.extensions[_e]=et,this.registerUsedExtension(_e),this}setObjectExtension($,_e,et){const tt=$.extensions||{};tt[_e]=et}removeObjectExtension($,_e){const et=$.extensions||{},tt=et[_e];return delete et[_e],tt}addExtension($,_e={}){return assert$3(_e),this.json.extensions=this.json.extensions||{},this.json.extensions[$]=_e,this.registerUsedExtension($),_e}addRequiredExtension($,_e={}){return assert$3(_e),this.addExtension($,_e),this.registerRequiredExtension($),_e}registerUsedExtension($){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(_e=>_e===$)||this.json.extensionsUsed.push($)}registerRequiredExtension($){this.registerUsedExtension($),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(_e=>_e===$)||this.json.extensionsRequired.push($)}removeExtension($){this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,$),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,$),this.json.extensions&&delete this.json.extensions[$]}setDefaultScene($){this.json.scene=$}addScene($){const{nodeIndices:_e}=$;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:_e}),this.json.scenes.length-1}addNode($){const{meshIndex:_e,matrix:et}=$;this.json.nodes=this.json.nodes||[];const tt={mesh:_e};return et&&(tt.matrix=et),this.json.nodes.push(tt),this.json.nodes.length-1}addMesh($){const{attributes:_e,indices:et,material:tt,mode:rt=4}=$,it={primitives:[{attributes:this._addAttributes(_e),mode:rt}]};if(et){const ot=this._addIndices(et);it.primitives[0].indices=ot}return Number.isFinite(tt)&&(it.primitives[0].material=tt),this.json.meshes=this.json.meshes||[],this.json.meshes.push(it),this.json.meshes.length-1}addPointCloud($){const et={primitives:[{attributes:this._addAttributes($),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(et),this.json.meshes.length-1}addImage($,_e){const et=getBinaryImageMetadata($),tt=_e||(et==null?void 0:et.mimeType),nt={bufferView:this.addBufferView($),mimeType:tt};return this.json.images=this.json.images||[],this.json.images.push(nt),this.json.images.length-1}addBufferView($){const _e=$.byteLength;assert$3(Number.isFinite(_e)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push($);const et={buffer:0,byteOffset:this.byteLength,byteLength:_e};return this.byteLength+=padToNBytes(_e,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(et),this.json.bufferViews.length-1}addAccessor($,_e){const et={bufferView:$,type:getAccessorTypeFromSize(_e.size),componentType:_e.componentType,count:_e.count,max:_e.max,min:_e.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(et),this.json.accessors.length-1}addBinaryBuffer($,_e={size:3}){const et=this.addBufferView($);let tt={min:_e.min,max:_e.max};(!tt.min||!tt.max)&&(tt=this._getAccessorMinMax($,_e.size));const rt={size:_e.size,componentType:getComponentTypeFromArray($),count:Math.round($.length/_e.size),min:tt.min,max:tt.max};return this.addAccessor(et,Object.assign(rt,_e))}addTexture($){const{imageIndex:_e}=$,et={source:_e};return this.json.textures=this.json.textures||[],this.json.textures.push(et),this.json.textures.length-1}addMaterial($){return this.json.materials=this.json.materials||[],this.json.materials.push($),this.json.materials.length-1}createBinaryChunk(){var $,_e;this.gltf.buffers=[];const et=this.byteLength,tt=new ArrayBuffer(et),rt=new Uint8Array(tt);let nt=0;for(const it of this.sourceBuffers||[])nt=copyToArray(it,rt,nt);($=this.json)!==null&&$!==void 0&&(_e=$.buffers)!==null&&_e!==void 0&&_e[0]?this.json.buffers[0].byteLength=et:this.json.buffers=[{byteLength:et}],this.gltf.binary=tt,this.sourceBuffers=[tt]}_removeStringFromArray($,_e){let et=!0;for(;et;){const tt=$.indexOf(_e);tt>-1?$.splice(tt,1):et=!1}}_addAttributes($={}){const _e={};for(const et in $){const tt=$[et],rt=this._getGltfAttributeName(et),nt=this.addBinaryBuffer(tt.value,tt);_e[rt]=nt}return _e}_addIndices($){return this.addBinaryBuffer($,{size:1})}_getGltfAttributeName($){switch($.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return $}}_getAccessorMinMax($,_e){const et={min:null,max:null};if($.length<_e)return et;et.min=[],et.max=[];const tt=$.subarray(0,_e);for(const rt of tt)et.min.push(rt),et.max.push(rt);for(let rt=_e;rt<$.length;rt+=_e)for(let nt=0;nt<_e;nt++)et.min[0+nt]=Math.min(et.min[0+nt],$[rt+nt]),et.max[0+nt]=Math.max(et.max[0+nt],$[rt+nt]);return et}}const wasm_base="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",wasm_simd="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",detector=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),wasmpack=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),FILTERS={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},DECODERS={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function meshoptDecodeGltfBuffer(j,$,_e,et,tt,rt="NONE"){const nt=await loadWasmInstance();decode$5(nt,nt.exports[DECODERS[tt]],j,$,_e,et,nt.exports[FILTERS[rt||"NONE"]])}let wasmPromise;async function loadWasmInstance(){return wasmPromise||(wasmPromise=loadWasmModule()),wasmPromise}async function loadWasmModule(){let j=wasm_base;WebAssembly.validate(detector)&&(j=wasm_simd,console.log("Warning: meshopt_decoder is using experimental SIMD support"));const $=await WebAssembly.instantiate(unpack(j),{});return await $.instance.exports.__wasm_call_ctors(),$.instance}function unpack(j){const $=new Uint8Array(j.length);for(let et=0;et96?tt-71:tt>64?tt-65:tt>47?tt+4:tt>46?63:62}let _e=0;for(let et=0;ettt?ut:tt,rt=ft>rt?ft:rt,nt=dt>nt?dt:nt}return[[$,_e,et],[tt,rt,nt]]}function assert$2(j,$){if(!j)throw new Error($||"loader assertion failed.")}class Schema{constructor($,_e){_defineProperty$e(this,"fields",void 0),_defineProperty$e(this,"metadata",void 0),assert$2(Array.isArray($)),checkNames($),this.fields=$,this.metadata=_e||new Map}compareTo($){if(this.metadata!==$.metadata||this.fields.length!==$.fields.length)return!1;for(let _e=0;_e_e[tt.name]);return new Schema(et,this.metadata)}selectAt(...$){const _e=$.map(et=>this.fields[et]).filter(Boolean);return new Schema(_e,this.metadata)}assign($){let _e,et=this.metadata;if($ instanceof Schema){const nt=$;_e=nt.fields,et=mergeMaps(mergeMaps(new Map,this.metadata),nt.metadata)}else _e=$;const tt=Object.create(null);for(const nt of this.fields)tt[nt.name]=nt;for(const nt of _e)tt[nt.name]=nt;const rt=Object.values(tt);return new Schema(rt,et)}}function checkNames(j){const $={};for(const _e of j)$[_e.name]&&console.warn("Schema: duplicated field name",_e.name,_e),$[_e.name]=!0}function mergeMaps(j,$){return new Map([...j||new Map,...$||new Map])}class Field{constructor($,_e,et=!1,tt=new Map){_defineProperty$e(this,"name",void 0),_defineProperty$e(this,"type",void 0),_defineProperty$e(this,"nullable",void 0),_defineProperty$e(this,"metadata",void 0),this.name=$,this.type=_e,this.nullable=et,this.metadata=tt}get typeId(){return this.type&&this.type.typeId}clone(){return new Field(this.name,this.type,this.nullable,this.metadata)}compareTo($){return this.name===$.name&&this.type===$.type&&this.nullable===$.nullable&&this.metadata===$.metadata}toString(){return"".concat(this.type).concat(this.nullable?", nullable":"").concat(this.metadata?", metadata: ".concat(this.metadata):"")}}let Type;(function(j){j[j.NONE=0]="NONE",j[j.Null=1]="Null",j[j.Int=2]="Int",j[j.Float=3]="Float",j[j.Binary=4]="Binary",j[j.Utf8=5]="Utf8",j[j.Bool=6]="Bool",j[j.Decimal=7]="Decimal",j[j.Date=8]="Date",j[j.Time=9]="Time",j[j.Timestamp=10]="Timestamp",j[j.Interval=11]="Interval",j[j.List=12]="List",j[j.Struct=13]="Struct",j[j.Union=14]="Union",j[j.FixedSizeBinary=15]="FixedSizeBinary",j[j.FixedSizeList=16]="FixedSizeList",j[j.Map=17]="Map",j[j.Dictionary=-1]="Dictionary",j[j.Int8=-2]="Int8",j[j.Int16=-3]="Int16",j[j.Int32=-4]="Int32",j[j.Int64=-5]="Int64",j[j.Uint8=-6]="Uint8",j[j.Uint16=-7]="Uint16",j[j.Uint32=-8]="Uint32",j[j.Uint64=-9]="Uint64",j[j.Float16=-10]="Float16",j[j.Float32=-11]="Float32",j[j.Float64=-12]="Float64",j[j.DateDay=-13]="DateDay",j[j.DateMillisecond=-14]="DateMillisecond",j[j.TimestampSecond=-15]="TimestampSecond",j[j.TimestampMillisecond=-16]="TimestampMillisecond",j[j.TimestampMicrosecond=-17]="TimestampMicrosecond",j[j.TimestampNanosecond=-18]="TimestampNanosecond",j[j.TimeSecond=-19]="TimeSecond",j[j.TimeMillisecond=-20]="TimeMillisecond",j[j.TimeMicrosecond=-21]="TimeMicrosecond",j[j.TimeNanosecond=-22]="TimeNanosecond",j[j.DenseUnion=-23]="DenseUnion",j[j.SparseUnion=-24]="SparseUnion",j[j.IntervalDayTime=-25]="IntervalDayTime",j[j.IntervalYearMonth=-26]="IntervalYearMonth"})(Type||(Type={}));let _Symbol$toStringTag,_Symbol$toStringTag2,_Symbol$toStringTag7;class DataType{static isNull($){return $&&$.typeId===Type.Null}static isInt($){return $&&$.typeId===Type.Int}static isFloat($){return $&&$.typeId===Type.Float}static isBinary($){return $&&$.typeId===Type.Binary}static isUtf8($){return $&&$.typeId===Type.Utf8}static isBool($){return $&&$.typeId===Type.Bool}static isDecimal($){return $&&$.typeId===Type.Decimal}static isDate($){return $&&$.typeId===Type.Date}static isTime($){return $&&$.typeId===Type.Time}static isTimestamp($){return $&&$.typeId===Type.Timestamp}static isInterval($){return $&&$.typeId===Type.Interval}static isList($){return $&&$.typeId===Type.List}static isStruct($){return $&&$.typeId===Type.Struct}static isUnion($){return $&&$.typeId===Type.Union}static isFixedSizeBinary($){return $&&$.typeId===Type.FixedSizeBinary}static isFixedSizeList($){return $&&$.typeId===Type.FixedSizeList}static isMap($){return $&&$.typeId===Type.Map}static isDictionary($){return $&&$.typeId===Type.Dictionary}get typeId(){return Type.NONE}compareTo($){return this===$}}_Symbol$toStringTag=Symbol.toStringTag;class Int extends DataType{constructor($,_e){super(),_defineProperty$e(this,"isSigned",void 0),_defineProperty$e(this,"bitWidth",void 0),this.isSigned=$,this.bitWidth=_e}get typeId(){return Type.Int}get[_Symbol$toStringTag](){return"Int"}toString(){return"".concat(this.isSigned?"I":"Ui","nt").concat(this.bitWidth)}}class Int8 extends Int{constructor(){super(!0,8)}}class Int16 extends Int{constructor(){super(!0,16)}}class Int32 extends Int{constructor(){super(!0,32)}}class Uint8 extends Int{constructor(){super(!1,8)}}class Uint16 extends Int{constructor(){super(!1,16)}}class Uint32 extends Int{constructor(){super(!1,32)}}const Precision={HALF:16,SINGLE:32,DOUBLE:64};_Symbol$toStringTag2=Symbol.toStringTag;class Float extends DataType{constructor($){super(),_defineProperty$e(this,"precision",void 0),this.precision=$}get typeId(){return Type.Float}get[_Symbol$toStringTag2](){return"Float"}toString(){return"Float".concat(this.precision)}}class Float32 extends Float{constructor(){super(Precision.SINGLE)}}class Float64 extends Float{constructor(){super(Precision.DOUBLE)}}_Symbol$toStringTag7=Symbol.toStringTag;class FixedSizeList extends DataType{constructor($,_e){super(),_defineProperty$e(this,"listSize",void 0),_defineProperty$e(this,"children",void 0),this.listSize=$,this.children=[_e]}get typeId(){return Type.FixedSizeList}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get[_Symbol$toStringTag7](){return"FixedSizeList"}toString(){return"FixedSizeList[".concat(this.listSize,"]<").concat(this.valueType,">")}}function getArrowTypeFromTypedArray(j){switch(j.constructor){case Int8Array:return new Int8;case Uint8Array:return new Uint8;case Int16Array:return new Int16;case Uint16Array:return new Uint16;case Int32Array:return new Int32;case Uint32Array:return new Uint32;case Float32Array:return new Float32;case Float64Array:return new Float64;default:throw new Error("array type not supported")}}function deduceMeshField(j,$,_e){const et=getArrowTypeFromTypedArray($.value),tt=_e||makeMeshAttributeMetadata($);return new Field(j,new FixedSizeList($.size,new Field("value",et)),!1,tt)}function makeMeshAttributeMetadata(j){const $=new Map;return"byteOffset"in j&&$.set("byteOffset",j.byteOffset.toString(10)),"byteStride"in j&&$.set("byteStride",j.byteStride.toString(10)),"normalized"in j&&$.set("normalized",j.normalized.toString()),$}function getDracoSchema(j,$,_e){const et=makeMetadata($.metadata),tt=[],rt=transformAttributesLoaderData($.attributes);for(const nt in j){const it=j[nt],ot=getArrowFieldFromAttribute(nt,it,rt[nt]);tt.push(ot)}if(_e){const nt=getArrowFieldFromAttribute("indices",_e);tt.push(nt)}return new Schema(tt,et)}function transformAttributesLoaderData(j){const $={};for(const _e in j){const et=j[_e];$[et.name||"undefined"]=et}return $}function getArrowFieldFromAttribute(j,$,_e){const et=_e?makeMetadata(_e.metadata):void 0;return deduceMeshField(j,$,et)}function makeMetadata(j){const $=new Map;for(const _e in j)$.set("".concat(_e,".string"),JSON.stringify(j[_e]));return $}const DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},INDEX_ITEM_SIZE=4;class DracoParser{constructor($){_defineProperty$e(this,"draco",void 0),_defineProperty$e(this,"decoder",void 0),_defineProperty$e(this,"metadataQuerier",void 0),this.draco=$,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync($,_e={}){const et=new this.draco.DecoderBuffer;et.Init(new Int8Array($),$.byteLength),this._disableAttributeTransforms(_e);const tt=this.decoder.GetEncodedGeometryType(et),rt=tt===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let nt;switch(tt){case this.draco.TRIANGULAR_MESH:nt=this.decoder.DecodeBufferToMesh(et,rt);break;case this.draco.POINT_CLOUD:nt=this.decoder.DecodeBufferToPointCloud(et,rt);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!nt.ok()||!rt.ptr){const dt="DRACO decompression failed: ".concat(nt.error_msg());throw new Error(dt)}const it=this._getDracoLoaderData(rt,tt,_e),ot=this._getMeshData(rt,it,_e),At=getMeshBoundingBox(ot.attributes),ut=getDracoSchema(ot.attributes,it,ot.indices);return{loader:"draco",loaderData:it,header:{vertexCount:rt.num_points(),boundingBox:At},...ot,schema:ut}}finally{this.draco.destroy(et),rt&&this.draco.destroy(rt)}}_getDracoLoaderData($,_e,et){const tt=this._getTopLevelMetadata($),rt=this._getDracoAttributes($,et);return{geometry_type:_e,num_attributes:$.num_attributes(),num_points:$.num_points(),num_faces:$ instanceof this.draco.Mesh?$.num_faces():0,metadata:tt,attributes:rt}}_getDracoAttributes($,_e){const et={};for(let tt=0;tt<$.num_attributes();tt++){const rt=this.decoder.GetAttribute($,tt),nt=this._getAttributeMetadata($,tt);et[rt.unique_id()]={unique_id:rt.unique_id(),attribute_type:rt.attribute_type(),data_type:rt.data_type(),num_components:rt.num_components(),byte_offset:rt.byte_offset(),byte_stride:rt.byte_stride(),normalized:rt.normalized(),attribute_index:tt,metadata:nt};const it=this._getQuantizationTransform(rt,_e);it&&(et[rt.unique_id()].quantization_transform=it);const ot=this._getOctahedronTransform(rt,_e);ot&&(et[rt.unique_id()].octahedron_transform=ot)}return et}_getMeshData($,_e,et){const tt=this._getMeshAttributes(_e,$,et);if(!tt.POSITION)throw new Error("DRACO: No position attribute found.");if($ instanceof this.draco.Mesh)switch(et.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:tt,indices:{value:this._getTriangleStripIndices($),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:tt,indices:{value:this._getTriangleListIndices($),size:1}}}return{topology:"point-list",mode:0,attributes:tt}}_getMeshAttributes($,_e,et){const tt={};for(const rt of Object.values($.attributes)){const nt=this._deduceAttributeName(rt,et);rt.name=nt;const{value:it,size:ot}=this._getAttributeValues(_e,rt);tt[nt]={value:it,size:ot,byteOffset:rt.byte_offset,byteStride:rt.byte_stride,normalized:rt.normalized}}return tt}_getTriangleListIndices($){const et=$.num_faces()*3,tt=et*INDEX_ITEM_SIZE,rt=this.draco._malloc(tt);try{return this.decoder.GetTrianglesUInt32Array($,tt,rt),new Uint32Array(this.draco.HEAPF32.buffer,rt,et).slice()}finally{this.draco._free(rt)}}_getTriangleStripIndices($){const _e=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh($,_e),getUint32Array(_e)}finally{this.draco.destroy(_e)}}_getAttributeValues($,_e){const et=DRACO_DATA_TYPE_TO_TYPED_ARRAY_MAP[_e.data_type],tt=_e.num_components,nt=$.num_points()*tt,it=nt*et.BYTES_PER_ELEMENT,ot=getDracoDataType(this.draco,et);let At;const ut=this.draco._malloc(it);try{const ft=this.decoder.GetAttribute($,_e.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints($,ft,ot,it,ut),At=new et(this.draco.HEAPF32.buffer,ut,nt).slice()}finally{this.draco._free(ut)}return{value:At,size:tt}}_deduceAttributeName($,_e){const et=$.unique_id;for(const[nt,it]of Object.entries(_e.extraAttributes||{}))if(it===et)return nt;const tt=$.attribute_type;for(const nt in DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP)if(this.draco[nt]===tt)return DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP[nt];const rt=_e.attributeNameEntry||"name";return $.metadata[rt]?$.metadata[rt].string:"CUSTOM_ATTRIBUTE_".concat(et)}_getTopLevelMetadata($){const _e=this.decoder.GetMetadata($);return this._getDracoMetadata(_e)}_getAttributeMetadata($,_e){const et=this.decoder.GetAttributeMetadata($,_e);return this._getDracoMetadata(et)}_getDracoMetadata($){if(!$||!$.ptr)return{};const _e={},et=this.metadataQuerier.NumEntries($);for(let tt=0;ttthis.decoder[nt]).includes(tt)){const nt=new this.draco.AttributeQuantizationTransform;try{if(nt.InitFromAttribute($))return{quantization_bits:nt.quantization_bits(),range:nt.range(),min_values:new Float32Array([1,2,3]).map(it=>nt.min_value(it))}}finally{this.draco.destroy(nt)}}return null}_getOctahedronTransform($,_e){const{octahedronAttributes:et=[]}=_e,tt=$.attribute_type();if(et.map(nt=>this.decoder[nt]).includes(tt)){const nt=new this.draco.AttributeQuantizationTransform;try{if(nt.InitFromAttribute($))return{quantization_bits:nt.quantization_bits()}}finally{this.draco.destroy(nt)}}return null}}function getDracoDataType(j,$){switch($){case Float32Array:return j.DT_FLOAT32;case Int8Array:return j.DT_INT8;case Int16Array:return j.DT_INT16;case Int32Array:return j.DT_INT32;case Uint8Array:return j.DT_UINT8;case Uint16Array:return j.DT_UINT16;case Uint32Array:return j.DT_UINT32;default:return j.DT_INVALID}}function getInt32Array(j){const $=j.size(),_e=new Int32Array($);for(let et=0;et<$;et++)_e[et]=j.GetValue(et);return _e}function getUint32Array(j){const $=j.size(),_e=new Int32Array($);for(let et=0;et<$;et++)_e[et]=j.GetValue(et);return _e}const DRACO_VERSION="1.4.1",DRACO_JS_DECODER_URL="https://www.gstatic.com/draco/versioned/decoders/".concat(DRACO_VERSION,"/draco_decoder.js"),DRACO_WASM_WRAPPER_URL="https://www.gstatic.com/draco/versioned/decoders/".concat(DRACO_VERSION,"/draco_wasm_wrapper.js"),DRACO_WASM_DECODER_URL="https://www.gstatic.com/draco/versioned/decoders/".concat(DRACO_VERSION,"/draco_decoder.wasm");let loadDecoderPromise;async function loadDracoDecoderModule(j){const $=j.modules||{};return $.draco3d?loadDecoderPromise=loadDecoderPromise||$.draco3d.createDecoderModule({}).then(_e=>({draco:_e})):loadDecoderPromise=loadDecoderPromise||loadDracoDecoder(j),await loadDecoderPromise}async function loadDracoDecoder(j){let $,_e;switch(j.draco&&j.draco.decoderType){case"js":$=await loadLibrary(DRACO_JS_DECODER_URL,"draco",j);break;case"wasm":default:[$,_e]=await Promise.all([await loadLibrary(DRACO_WASM_WRAPPER_URL,"draco",j),await loadLibrary(DRACO_WASM_DECODER_URL,"draco",j)])}return $=$||globalThis.DracoDecoderModule,await initializeDracoDecoder($,_e)}function initializeDracoDecoder(j,$){const _e={};return $&&(_e.wasmBinary=$),new Promise(et=>{j({..._e,onModuleLoaded:tt=>et({draco:tt})})})}const DracoLoader={...DracoLoader$1,parse:parse$2};async function parse$2(j,$){const{draco:_e}=await loadDracoDecoderModule($),et=new DracoParser(_e);try{return et.parseSync(j,$==null?void 0:$.draco)}finally{et.destroy()}}function getGLTFAccessors(j){const $={};for(const _e in j){const et=j[_e];if(_e!=="indices"){const tt=getGLTFAccessor(et);$[_e]=tt}}return $}function getGLTFAccessor(j){const{buffer:$,size:_e,count:et}=getAccessorData(j);return{value:$,size:_e,byteOffset:0,count:et,type:getAccessorTypeFromSize(_e),componentType:getComponentTypeFromArray($)}}function getAccessorData(j){let $=j,_e=1,et=0;return j&&j.value&&($=j.value,_e=j.size||1),$&&(ArrayBuffer.isView($)||($=toTypedArray($,Float32Array)),et=$.length/_e),{buffer:$,size:_e,count:et}}function toTypedArray(j,$,_e=!1){return j?Array.isArray(j)?new $(j):_e&&!(j instanceof $)?new $(j):j:null}const KHR_DRACO_MESH_COMPRESSION="KHR_draco_mesh_compression",name$3=KHR_DRACO_MESH_COMPRESSION;function preprocess$1(j,$,_e){const et=new GLTFScenegraph(j);for(const tt of makeMeshPrimitiveIterator(et))et.getObjectExtension(tt,KHR_DRACO_MESH_COMPRESSION)}async function decode$3(j,$,_e){var et;if(!($!=null&&(et=$.gltf)!==null&&et!==void 0&&et.decompressMeshes))return;const tt=new GLTFScenegraph(j),rt=[];for(const nt of makeMeshPrimitiveIterator(tt))tt.getObjectExtension(nt,KHR_DRACO_MESH_COMPRESSION)&&rt.push(decompressPrimitive(tt,nt,$,_e));await Promise.all(rt),tt.removeExtension(KHR_DRACO_MESH_COMPRESSION)}function encode$3(j,$={}){const _e=new GLTFScenegraph(j);for(const et of _e.json.meshes||[])compressMesh(et),_e.addRequiredExtension(KHR_DRACO_MESH_COMPRESSION)}async function decompressPrimitive(j,$,_e,et){const tt=j.getObjectExtension($,KHR_DRACO_MESH_COMPRESSION);if(!tt)return;const rt=j.getTypedArrayForBufferView(tt.bufferView),nt=sliceArrayBuffer(rt.buffer,rt.byteOffset),{parse:it}=et,ot={..._e};delete ot["3d-tiles"];const At=await it(nt,DracoLoader,ot,et),ut=getGLTFAccessors(At.attributes);for(const[ft,dt]of Object.entries(ut))if(ft in $.attributes){const Et=$.attributes[ft],Bt=j.getAccessor(Et);Bt!=null&&Bt.min&&Bt!==null&&Bt!==void 0&&Bt.max&&(dt.min=Bt.min,dt.max=Bt.max)}$.attributes=ut,At.indices&&($.indices=getGLTFAccessor(At.indices)),checkPrimitive($)}function compressMesh(j,$,_e=4,et,tt){var rt;if(!et.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const nt=et.DracoWriter.encodeSync({attributes:j}),it=tt==null||(rt=tt.parseSync)===null||rt===void 0?void 0:rt.call(tt,{attributes:j}),ot=et._addFauxAttributes(it.attributes),At=et.addBufferView(nt);return{primitives:[{attributes:ot,mode:_e,extensions:{[KHR_DRACO_MESH_COMPRESSION]:{bufferView:At,attributes:ot}}}]}}function checkPrimitive(j){if(!j.attributes&&Object.keys(j.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*makeMeshPrimitiveIterator(j){for(const $ of j.json.meshes||[])for(const _e of $.primitives)yield _e}const KHR_draco_mesh_compression=Object.freeze(Object.defineProperty({__proto__:null,decode:decode$3,encode:encode$3,name:name$3,preprocess:preprocess$1},Symbol.toStringTag,{value:"Module"})),KHR_LIGHTS_PUNCTUAL="KHR_lights_punctual",name$2=KHR_LIGHTS_PUNCTUAL;async function decode$2(j){const $=new GLTFScenegraph(j),{json:_e}=$,et=$.getExtension(KHR_LIGHTS_PUNCTUAL);et&&($.json.lights=et.lights,$.removeExtension(KHR_LIGHTS_PUNCTUAL));for(const tt of _e.nodes||[]){const rt=$.getObjectExtension(tt,KHR_LIGHTS_PUNCTUAL);rt&&(tt.light=rt.light),$.removeObjectExtension(tt,KHR_LIGHTS_PUNCTUAL)}}async function encode$2(j){const $=new GLTFScenegraph(j),{json:_e}=$;if(_e.lights){const et=$.addExtension(KHR_LIGHTS_PUNCTUAL);assert$3(!et.lights),et.lights=_e.lights,delete _e.lights}if($.json.lights){for(const et of $.json.lights){const tt=et.node;$.addObjectExtension(tt,KHR_LIGHTS_PUNCTUAL,et)}delete $.json.lights}}const KHR_lights_punctual=Object.freeze(Object.defineProperty({__proto__:null,decode:decode$2,encode:encode$2,name:name$2},Symbol.toStringTag,{value:"Module"})),KHR_MATERIALS_UNLIT="KHR_materials_unlit",name$1=KHR_MATERIALS_UNLIT;async function decode$1(j){const $=new GLTFScenegraph(j),{json:_e}=$;$.removeExtension(KHR_MATERIALS_UNLIT);for(const et of _e.materials||[])et.extensions&&et.extensions.KHR_materials_unlit&&(et.unlit=!0),$.removeObjectExtension(et,KHR_MATERIALS_UNLIT)}function encode$1(j){const $=new GLTFScenegraph(j),{json:_e}=$;if($.materials)for(const et of _e.materials||[])et.unlit&&(delete et.unlit,$.addObjectExtension(et,KHR_MATERIALS_UNLIT,{}),$.addExtension(KHR_MATERIALS_UNLIT))}const KHR_materials_unlit=Object.freeze(Object.defineProperty({__proto__:null,decode:decode$1,encode:encode$1,name:name$1},Symbol.toStringTag,{value:"Module"})),KHR_TECHNIQUES_WEBGL="KHR_techniques_webgl",name=KHR_TECHNIQUES_WEBGL;async function decode(j){const $=new GLTFScenegraph(j),{json:_e}=$,et=$.getExtension(KHR_TECHNIQUES_WEBGL);if(et){const tt=resolveTechniques(et,$);for(const rt of _e.materials||[]){const nt=$.getObjectExtension(rt,KHR_TECHNIQUES_WEBGL);nt&&(rt.technique=Object.assign({},nt,tt[nt.technique]),rt.technique.values=resolveValues(rt.technique,$)),$.removeObjectExtension(rt,KHR_TECHNIQUES_WEBGL)}$.removeExtension(KHR_TECHNIQUES_WEBGL)}}async function encode(j,$){}function resolveTechniques(j,$){const{programs:_e=[],shaders:et=[],techniques:tt=[]}=j,rt=new TextDecoder;return et.forEach(nt=>{if(Number.isFinite(nt.bufferView))nt.code=rt.decode($.getTypedArrayForBufferView(nt.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),_e.forEach(nt=>{nt.fragmentShader=et[nt.fragmentShader],nt.vertexShader=et[nt.vertexShader]}),tt.forEach(nt=>{nt.program=_e[nt.program]}),tt}function resolveValues(j,$){const _e=Object.assign({},j.values);return Object.keys(j.uniforms||{}).forEach(et=>{j.uniforms[et].value&&!(et in _e)&&(_e[et]=j.uniforms[et].value)}),Object.keys(_e).forEach(et=>{typeof _e[et]=="object"&&_e[et].index!==void 0&&(_e[et].texture=$.getTexture(_e[et].index))}),_e}const KHR_techniques_webgl=Object.freeze(Object.defineProperty({__proto__:null,decode,encode,name},Symbol.toStringTag,{value:"Module"})),EXTENSIONS=[EXT_meshopt_compression,EXT_texture_webp,KHR_texture_basisu,KHR_draco_mesh_compression,KHR_lights_punctual,KHR_materials_unlit,KHR_techniques_webgl];function preprocessExtensions(j,$={},_e){const et=EXTENSIONS.filter(rt=>useExtension(rt.name,$));for(const rt of et){var tt;(tt=rt.preprocess)===null||tt===void 0||tt.call(rt,j,$,_e)}}async function decodeExtensions(j,$={},_e){const et=EXTENSIONS.filter(rt=>useExtension(rt.name,$));for(const rt of et){var tt;await((tt=rt.decode)===null||tt===void 0?void 0:tt.call(rt,j,$,_e))}}function useExtension(j,$){var _e;const et=($==null||(_e=$.gltf)===null||_e===void 0?void 0:_e.excludeExtensions)||{};return!(j in et&&!et[j])}const KHR_BINARY_GLTF="KHR_binary_glTF";function preprocess(j){const $=new GLTFScenegraph(j),{json:_e}=$;for(const et of _e.images||[]){const tt=$.getObjectExtension(et,KHR_BINARY_GLTF);tt&&Object.assign(et,tt),$.removeObjectExtension(et,KHR_BINARY_GLTF)}_e.buffers&&_e.buffers[0]&&delete _e.buffers[0].uri,$.removeExtension(KHR_BINARY_GLTF)}const GLTF_ARRAYS={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},GLTF_KEYS={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};class GLTFV1Normalizer{constructor(){_defineProperty$e(this,"idToIndexMap",{animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}}),_defineProperty$e(this,"json",void 0)}normalize($,_e){this.json=$.json;const et=$.json;switch(et.asset&&et.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn("glTF: Unknown version ".concat(et.asset.version));return}if(!_e.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(et),this._convertTopLevelObjectsToArrays(et),preprocess($),this._convertObjectIdsToArrayIndices(et),this._updateObjects(et),this._updateMaterial(et)}_addAsset($){$.asset=$.asset||{},$.asset.version="2.0",$.asset.generator=$.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays($){for(const _e in GLTF_ARRAYS)this._convertTopLevelObjectToArray($,_e)}_convertTopLevelObjectToArray($,_e){const et=$[_e];if(!(!et||Array.isArray(et))){$[_e]=[];for(const tt in et){const rt=et[tt];rt.id=rt.id||tt;const nt=$[_e].length;$[_e].push(rt),this.idToIndexMap[_e][tt]=nt}}}_convertObjectIdsToArrayIndices($){for(const _e in GLTF_ARRAYS)this._convertIdsToIndices($,_e);"scene"in $&&($.scene=this._convertIdToIndex($.scene,"scene"));for(const _e of $.textures)this._convertTextureIds(_e);for(const _e of $.meshes)this._convertMeshIds(_e);for(const _e of $.nodes)this._convertNodeIds(_e);for(const _e of $.scenes)this._convertSceneIds(_e)}_convertTextureIds($){$.source&&($.source=this._convertIdToIndex($.source,"image"))}_convertMeshIds($){for(const _e of $.primitives){const{attributes:et,indices:tt,material:rt}=_e;for(const nt in et)et[nt]=this._convertIdToIndex(et[nt],"accessor");tt&&(_e.indices=this._convertIdToIndex(tt,"accessor")),rt&&(_e.material=this._convertIdToIndex(rt,"material"))}}_convertNodeIds($){$.children&&($.children=$.children.map(_e=>this._convertIdToIndex(_e,"node"))),$.meshes&&($.meshes=$.meshes.map(_e=>this._convertIdToIndex(_e,"mesh")))}_convertSceneIds($){$.nodes&&($.nodes=$.nodes.map(_e=>this._convertIdToIndex(_e,"node")))}_convertIdsToIndices($,_e){$[_e]||(console.warn("gltf v1: json doesn't contain attribute ".concat(_e)),$[_e]=[]);for(const et of $[_e])for(const tt in et){const rt=et[tt],nt=this._convertIdToIndex(rt,tt);et[tt]=nt}}_convertIdToIndex($,_e){const et=GLTF_KEYS[_e];if(et in this.idToIndexMap){const tt=this.idToIndexMap[et][$];if(!Number.isFinite(tt))throw new Error("gltf v1: failed to resolve ".concat(_e," with id ").concat($));return tt}return $}_updateObjects($){for(const _e of this.json.buffers)delete _e.type}_updateMaterial($){for(const rt of $.materials){var _e,et,tt;rt.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const nt=((_e=rt.values)===null||_e===void 0?void 0:_e.tex)||((et=rt.values)===null||et===void 0?void 0:et.texture2d_0)||((tt=rt.values)===null||tt===void 0?void 0:tt.diffuseTex),it=$.textures.findIndex(ot=>ot.id===nt);it!==-1&&(rt.pbrMetallicRoughness.baseColorTexture={index:it})}}}function normalizeGLTFV1(j,$={}){return new GLTFV1Normalizer().normalize(j,$)}const COMPONENTS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},BYTES={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},GL_SAMPLER={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},SAMPLER_PARAMETER_GLTF_TO_GL={magFilter:GL_SAMPLER.TEXTURE_MAG_FILTER,minFilter:GL_SAMPLER.TEXTURE_MIN_FILTER,wrapS:GL_SAMPLER.TEXTURE_WRAP_S,wrapT:GL_SAMPLER.TEXTURE_WRAP_T},DEFAULT_SAMPLER={[GL_SAMPLER.TEXTURE_MAG_FILTER]:GL_SAMPLER.LINEAR,[GL_SAMPLER.TEXTURE_MIN_FILTER]:GL_SAMPLER.NEAREST_MIPMAP_LINEAR,[GL_SAMPLER.TEXTURE_WRAP_S]:GL_SAMPLER.REPEAT,[GL_SAMPLER.TEXTURE_WRAP_T]:GL_SAMPLER.REPEAT};function getBytesFromComponentType(j){return BYTES[j]}function getSizeFromAccessorType(j){return COMPONENTS[j]}class GLTFPostProcessor{constructor(){_defineProperty$e(this,"baseUri",""),_defineProperty$e(this,"json",{}),_defineProperty$e(this,"buffers",[]),_defineProperty$e(this,"images",[])}postProcess($,_e={}){const{json:et,buffers:tt=[],images:rt=[],baseUri:nt=""}=$;return assert$3(et),this.baseUri=nt,this.json=et,this.buffers=tt,this.images=rt,this._resolveTree(this.json,_e),this.json}_resolveTree($,_e={}){$.bufferViews&&($.bufferViews=$.bufferViews.map((et,tt)=>this._resolveBufferView(et,tt))),$.images&&($.images=$.images.map((et,tt)=>this._resolveImage(et,tt))),$.samplers&&($.samplers=$.samplers.map((et,tt)=>this._resolveSampler(et,tt))),$.textures&&($.textures=$.textures.map((et,tt)=>this._resolveTexture(et,tt))),$.accessors&&($.accessors=$.accessors.map((et,tt)=>this._resolveAccessor(et,tt))),$.materials&&($.materials=$.materials.map((et,tt)=>this._resolveMaterial(et,tt))),$.meshes&&($.meshes=$.meshes.map((et,tt)=>this._resolveMesh(et,tt))),$.nodes&&($.nodes=$.nodes.map((et,tt)=>this._resolveNode(et,tt))),$.skins&&($.skins=$.skins.map((et,tt)=>this._resolveSkin(et,tt))),$.scenes&&($.scenes=$.scenes.map((et,tt)=>this._resolveScene(et,tt))),$.scene!==void 0&&($.scene=$.scenes[this.json.scene])}getScene($){return this._get("scenes",$)}getNode($){return this._get("nodes",$)}getSkin($){return this._get("skins",$)}getMesh($){return this._get("meshes",$)}getMaterial($){return this._get("materials",$)}getAccessor($){return this._get("accessors",$)}getCamera($){return null}getTexture($){return this._get("textures",$)}getSampler($){return this._get("samplers",$)}getImage($){return this._get("images",$)}getBufferView($){return this._get("bufferViews",$)}getBuffer($){return this._get("buffers",$)}_get($,_e){if(typeof _e=="object")return _e;const et=this.json[$]&&this.json[$][_e];return et||console.warn("glTF file error: Could not find ".concat($,"[").concat(_e,"]")),et}_resolveScene($,_e){return $.id=$.id||"scene-".concat(_e),$.nodes=($.nodes||[]).map(et=>this.getNode(et)),$}_resolveNode($,_e){return $.id=$.id||"node-".concat(_e),$.children&&($.children=$.children.map(et=>this.getNode(et))),$.mesh!==void 0?$.mesh=this.getMesh($.mesh):$.meshes!==void 0&&$.meshes.length&&($.mesh=$.meshes.reduce((et,tt)=>{const rt=this.getMesh(tt);return et.id=rt.id,et.primitives=et.primitives.concat(rt.primitives),et},{primitives:[]})),$.camera!==void 0&&($.camera=this.getCamera($.camera)),$.skin!==void 0&&($.skin=this.getSkin($.skin)),$}_resolveSkin($,_e){return $.id=$.id||"skin-".concat(_e),$.inverseBindMatrices=this.getAccessor($.inverseBindMatrices),$}_resolveMesh($,_e){return $.id=$.id||"mesh-".concat(_e),$.primitives&&($.primitives=$.primitives.map(et=>{et={...et};const tt=et.attributes;et.attributes={};for(const rt in tt)et.attributes[rt]=this.getAccessor(tt[rt]);return et.indices!==void 0&&(et.indices=this.getAccessor(et.indices)),et.material!==void 0&&(et.material=this.getMaterial(et.material)),et})),$}_resolveMaterial($,_e){if($.id=$.id||"material-".concat(_e),$.normalTexture&&($.normalTexture={...$.normalTexture},$.normalTexture.texture=this.getTexture($.normalTexture.index)),$.occlusionTexture&&($.occlustionTexture={...$.occlustionTexture},$.occlusionTexture.texture=this.getTexture($.occlusionTexture.index)),$.emissiveTexture&&($.emmisiveTexture={...$.emmisiveTexture},$.emissiveTexture.texture=this.getTexture($.emissiveTexture.index)),$.emissiveFactor||($.emissiveFactor=$.emmisiveTexture?[1,1,1]:[0,0,0]),$.pbrMetallicRoughness){$.pbrMetallicRoughness={...$.pbrMetallicRoughness};const et=$.pbrMetallicRoughness;et.baseColorTexture&&(et.baseColorTexture={...et.baseColorTexture},et.baseColorTexture.texture=this.getTexture(et.baseColorTexture.index)),et.metallicRoughnessTexture&&(et.metallicRoughnessTexture={...et.metallicRoughnessTexture},et.metallicRoughnessTexture.texture=this.getTexture(et.metallicRoughnessTexture.index))}return $}_resolveAccessor($,_e){if($.id=$.id||"accessor-".concat(_e),$.bufferView!==void 0&&($.bufferView=this.getBufferView($.bufferView)),$.bytesPerComponent=getBytesFromComponentType($.componentType),$.components=getSizeFromAccessorType($.type),$.bytesPerElement=$.bytesPerComponent*$.components,$.bufferView){const et=$.bufferView.buffer,{ArrayType:tt,byteLength:rt}=getAccessorArrayTypeAndLength($,$.bufferView),nt=($.bufferView.byteOffset||0)+($.byteOffset||0)+et.byteOffset;let it=et.arrayBuffer.slice(nt,nt+rt);$.bufferView.byteStride&&(it=this._getValueFromInterleavedBuffer(et,nt,$.bufferView.byteStride,$.bytesPerElement,$.count)),$.value=new tt(it)}return $}_getValueFromInterleavedBuffer($,_e,et,tt,rt){const nt=new Uint8Array(rt*tt);for(let it=0;itGLB_FILE_HEADER_SIZE+GLB_CHUNK_HEADER_SIZE);const et=$.getUint32(_e+0,LE),tt=$.getUint32(_e+4,LE);return _e+=GLB_CHUNK_HEADER_SIZE,assert$b(tt===GLB_V1_CONTENT_FORMAT_JSON),parseJSONChunk(j,$,_e,et),_e+=et,_e+=parseBINChunk(j,$,_e,j.header.byteLength),_e}function parseGLBV2(j,$,_e,et){return assert$b(j.header.byteLength>GLB_FILE_HEADER_SIZE+GLB_CHUNK_HEADER_SIZE),parseGLBChunksSync(j,$,_e,et),_e+j.header.byteLength}function parseGLBChunksSync(j,$,_e,et){for(;_e+8<=j.header.byteLength;){const tt=$.getUint32(_e+0,LE),rt=$.getUint32(_e+4,LE);switch(_e+=GLB_CHUNK_HEADER_SIZE,rt){case GLB_CHUNK_TYPE_JSON:parseJSONChunk(j,$,_e,tt);break;case GLB_CHUNK_TYPE_BIN:parseBINChunk(j,$,_e,tt);break;case GLB_CHUNK_TYPE_JSON_XVIZ_DEPRECATED:et.strict||parseJSONChunk(j,$,_e,tt);break;case GLB_CHUNK_TYPE_BIX_XVIZ_DEPRECATED:et.strict||parseBINChunk(j,$,_e,tt);break}_e+=padToNBytes(tt,4)}return _e}function parseJSONChunk(j,$,_e,et){const tt=new Uint8Array($.buffer,_e,et),nt=new TextDecoder("utf8").decode(tt);return j.json=JSON.parse(nt),padToNBytes(et,4)}function parseBINChunk(j,$,_e,et){return j.header.hasBinChunk=!0,j.binChunks.push({byteOffset:_e,byteLength:et,arrayBuffer:$.buffer}),padToNBytes(et,4)}async function parseGLTF(j,$,_e=0,et,tt){var rt,nt,it,ot;parseGLTFContainerSync(j,$,_e,et),normalizeGLTFV1(j,{normalize:et==null||(rt=et.gltf)===null||rt===void 0?void 0:rt.normalize}),preprocessExtensions(j,et,tt);const At=[];if(et!=null&&(nt=et.gltf)!==null&&nt!==void 0&&nt.loadBuffers&&j.json.buffers&&await loadBuffers(j,et,tt),et!=null&&(it=et.gltf)!==null&&it!==void 0&&it.loadImages){const ft=loadImages(j,et,tt);At.push(ft)}const ut=decodeExtensions(j,et,tt);return At.push(ut),await Promise.all(At),et!=null&&(ot=et.gltf)!==null&&ot!==void 0&&ot.postProcess?postProcessGLTF(j,et):j}function parseGLTFContainerSync(j,$,_e,et){if(et.uri&&(j.baseUri=et.uri),$ instanceof ArrayBuffer&&!isGLB($,_e,et)&&($=new TextDecoder().decode($)),typeof $=="string")j.json=parseJSON($);else if($ instanceof ArrayBuffer){const nt={};_e=parseGLBSync(nt,$,_e,et.glb),assert$3(nt.type==="glTF","Invalid GLB magic string ".concat(nt.type)),j._glb=nt,j.json=nt.json}else assert$3(!1,"GLTF: must be ArrayBuffer or string");const tt=j.json.buffers||[];if(j.buffers=new Array(tt.length).fill(null),j._glb&&j._glb.header.hasBinChunk){const{binChunks:nt}=j._glb;j.buffers[0]={arrayBuffer:nt[0].arrayBuffer,byteOffset:nt[0].byteOffset,byteLength:nt[0].byteLength}}const rt=j.json.images||[];j.images=new Array(rt.length).fill({})}async function loadBuffers(j,$,_e){const et=j.json.buffers||[];for(let nt=0;nt{_e.traverse(et=>{Object.values(et.model.getUniforms()).forEach(tt=>{tt.loaded===!1&&$.push(tt)})})}),await waitWhileCondition(()=>$.some(_e=>!_e.loaded))}async function waitWhileCondition(j){for(;j();)await new Promise($=>requestAnimationFrame($))}const vs$6=`#version 300 es + +// Instance attributes +in vec3 instancePositions; +in vec3 instancePositions64Low; +in vec4 instanceColors; +in vec3 instancePickingColors; +in mat3 instanceModelMatrix; +in vec3 instanceTranslation; + +// Uniforms +uniform float sizeScale; +uniform float sizeMinPixels; +uniform float sizeMaxPixels; +uniform mat4 sceneModelMatrix; +uniform bool composeModelMatrix; + +// Attributes +in vec4 POSITION; + +#ifdef HAS_UV + in vec2 TEXCOORD_0; +#endif + +#ifdef MODULE_PBR + #ifdef HAS_NORMALS + in vec4 NORMAL; + #endif +#endif + +// Varying +out vec4 vColor; + +// MODULE_PBR contains all the varying definitions needed +#ifndef MODULE_PBR + #ifdef HAS_UV + out vec2 vTEXCOORD_0; + #endif +#endif + +// Main +void main(void) { + #if defined(HAS_UV) && !defined(MODULE_PBR) + vTEXCOORD_0 = TEXCOORD_0; + geometry.uv = vTEXCOORD_0; + #endif + + geometry.worldPosition = instancePositions; + geometry.pickingColor = instancePickingColors; + + vec3 normal = vec3(0.0, 0.0, 1.0); + #ifdef MODULE_PBR + #ifdef HAS_NORMALS + normal = instanceModelMatrix * (sceneModelMatrix * vec4(NORMAL.xyz, 0.0)).xyz; + #endif + #endif + + float originalSize = project_size_to_pixel(sizeScale); + float clampedSize = clamp(originalSize, sizeMinPixels, sizeMaxPixels); + + vec3 pos = (instanceModelMatrix * (sceneModelMatrix * POSITION).xyz) * sizeScale * (clampedSize / originalSize) + instanceTranslation; + if(composeModelMatrix) { + DECKGL_FILTER_SIZE(pos, geometry); + // using instancePositions as world coordinates + // when using globe mode, this branch does not re-orient the model to align with the surface of the earth + // call project_normal before setting position to avoid rotation + geometry.normal = project_normal(normal); + gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position); + } + else { + pos = project_size(pos); + DECKGL_FILTER_SIZE(pos, geometry); + gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position); + geometry.normal = project_normal(normal); + } + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + #ifdef MODULE_PBR + // set PBR data + pbr_vPosition = geometry.position.xyz; + #ifdef HAS_NORMALS + pbr_vNormal = geometry.normal; + #endif + + #ifdef HAS_UV + pbr_vUV = TEXCOORD_0; + #else + pbr_vUV = vec2(0., 0.); + #endif + geometry.uv = pbr_vUV; + #endif + + vColor = instanceColors; + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$6=`#version 300 es + +// Uniforms +uniform float opacity; + +// Varying +in vec4 vColor; + +out vec4 fragmentColor; + +// MODULE_PBR contains all the varying definitions needed +#ifndef MODULE_PBR + #if defined(HAS_UV) && defined(HAS_BASECOLORMAP) + in vec2 vTEXCOORD_0; + uniform sampler2D u_BaseColorSampler; + #endif +#endif + +void main(void) { + #ifdef MODULE_PBR + fragmentColor = vColor * pbr_filterColor(vec4(0)); + geometry.uv = pbr_vUV; + #else + #if defined(HAS_UV) && defined(HAS_BASECOLORMAP) + fragmentColor = vColor * texture2D(u_BaseColorSampler, vTEXCOORD_0); + geometry.uv = vTEXCOORD_0; + #else + fragmentColor = vColor; + #endif + #endif + + fragmentColor.a *= opacity; + DECKGL_FILTER_COLOR(fragmentColor, geometry); +} +`,DEFAULT_COLOR=[255,255,255,255],defaultProps$l={scenegraph:{type:"object",value:null,async:!0},getScene:j=>j&&j.scenes?typeof j.scene=="object"?j.scene:j.scenes[j.scene||0]:j,getAnimator:j=>j&&j.animator,_animations:null,sizeScale:{type:"number",value:1,min:0},sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:j=>j.position},getColor:{type:"accessor",value:DEFAULT_COLOR},_lighting:"flat",_imageBasedLightingEnvironment:null,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[GLTFLoader]};class ScenegraphLayer extends Layer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}getShaders(){const $=[project32,picking];return this.props._lighting==="pbr"&&$.push(pbr),{vs:vs$6,fs:fs$6,modules:$}}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:5130,fp64:this.use64bitPositions(),accessor:"getPosition",transition:!0},instanceColors:{type:5121,size:this.props.colorFormat.length,accessor:"getColor",normalized:!0,defaultValue:DEFAULT_COLOR,transition:!0},instanceModelMatrix:MATRIX_ATTRIBUTES})}updateState($){super.updateState($);const{props:_e,oldProps:et}=$;_e.scenegraph!==et.scenegraph?this._updateScenegraph():_e._animations!==et._animations&&this._applyAnimationsProp(this.state.scenegraph,this.state.animator,_e._animations)}finalizeState($){super.finalizeState($),this._deleteScenegraph()}_updateScenegraph(){const $=this.props,{gl:_e}=this.context;let et=null;if($.scenegraph instanceof ScenegraphNode)et={scenes:[$.scenegraph]};else if($.scenegraph&&!$.scenegraph.gltf){const it=$.scenegraph,ot=createGLTFObjects(_e,it,this._getModelOptions());et={gltf:it,...ot},waitForGLTFAssets(ot).then(()=>this.setNeedsRedraw())}else $.scenegraph&&(log$3.deprecated("ScenegraphLayer.props.scenegraph","Use GLTFLoader instead of GLTFScenegraphLoader")(),et=$.scenegraph);const tt={layer:this,gl:_e},rt=$.getScene(et,tt),nt=$.getAnimator(et,tt);rt instanceof ScenegraphNode?(this._deleteScenegraph(),this._applyAllAttributes(rt),this._applyAnimationsProp(rt,nt,$._animations),this.setState({scenegraph:rt,animator:nt})):rt!==null&&log$3.warn("invalid scenegraph:",rt)()}_applyAllAttributes($){if(this.state.attributesAvailable){const _e=this.getAttributeManager().getAttributes();$.traverse(et=>{this._setModelAttributes(et.model,_e)})}}_applyAnimationsProp($,_e,et){if(!$||!_e||!et)return;const tt=_e.getAnimations();Object.keys(et).sort().forEach(rt=>{const nt=et[rt];if(rt==="*")tt.forEach(it=>{Object.assign(it,nt)});else if(Number.isFinite(Number(rt))){const it=Number(rt);it>=0&&itot===rt);it?Object.assign(it,nt):log$3.warn("animation ".concat(rt," not found"))()}})}_deleteScenegraph(){const{scenegraph:$}=this.state;$ instanceof ScenegraphNode&&$.delete()}_getModelOptions(){const{_imageBasedLightingEnvironment:$}=this.props;let _e=null;return $&&(typeof $=="function"?_e=$({gl:this.context.gl,layer:this}):_e=$),{gl:this.context.gl,waitForFullLoad:!0,imageBasedLightingEnvironment:_e,modelOptions:{isInstanced:!0,transpileToGLSL100:!isWebGL2$1(this.context.gl),...this.getShaders()},useTangents:!1}}updateAttributes($){this.setState({attributesAvailable:!0}),this.state.scenegraph&&this.state.scenegraph.traverse(_e=>{this._setModelAttributes(_e.model,$)})}draw({moduleParameters:$=null,parameters:_e={},context:et}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.animate(et.timeline.getTime()),this.setNeedsRedraw());const{viewport:tt}=this.context,{sizeScale:rt,sizeMinPixels:nt,sizeMaxPixels:it,opacity:ot,coordinateSystem:At}=this.props,ut=this.getNumInstances();this.state.scenegraph.traverse((ft,{worldMatrix:dt})=>{ft.model.setInstanceCount(ut),ft.updateModuleSettings($),ft.draw({parameters:_e,uniforms:{sizeScale:rt,opacity:ot,sizeMinPixels:nt,sizeMaxPixels:it,composeModelMatrix:shouldComposeModelMatrix(tt,At),sceneModelMatrix:dt,u_Camera:ft.model.getUniforms().project_uCameraPosition}})})}}_defineProperty$e(ScenegraphLayer,"defaultProps",defaultProps$l);_defineProperty$e(ScenegraphLayer,"layerName","ScenegraphLayer");const esm$2=Object.freeze(Object.defineProperty({__proto__:null,ScenegraphLayer,SimpleMeshLayer},Symbol.toStringTag,{value:"Module"})),vs$5=`#version 300 es +#define SHADER_NAME simple-mesh-layer-vs + +// Scale the model +uniform float sizeScale; +uniform bool composeModelMatrix; +uniform bool pickFeatureIds; + +// Primitive attributes +in vec3 positions; +in vec3 normals; +in vec3 colors; +in vec2 texCoords; +in vec4 uvRegions; +in vec3 featureIdsPickingColors; + +// Instance attributes +in vec4 instanceColors; +in vec3 instancePickingColors; +in mat3 instanceModelMatrix; + +// Outputs to fragment shader +out vec2 vTexCoord; +out vec3 cameraPosition; +out vec3 normals_commonspace; +out vec4 position_commonspace; +out vec4 vColor; + +vec2 applyUVRegion(vec2 uv) { + #ifdef HAS_UV_REGIONS + // https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md + return fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy; + #else + return uv; + #endif +} + +void main(void) { + vec2 uv = applyUVRegion(texCoords); + geometry.uv = uv; + + if (pickFeatureIds) { + geometry.pickingColor = featureIdsPickingColors; + } else { + geometry.pickingColor = instancePickingColors; + } + + vTexCoord = uv; + cameraPosition = project_uCameraPosition; + vColor = vec4(colors * instanceColors.rgb, instanceColors.a); + + vec3 pos = (instanceModelMatrix * positions) * sizeScale; + vec3 projectedPosition = project_position(positions); + position_commonspace = vec4(projectedPosition, 1.0); + gl_Position = project_common_position_to_clipspace(position_commonspace); + + geometry.position = position_commonspace; + normals_commonspace = project_normal(instanceModelMatrix * normals); + geometry.normal = normals_commonspace; + + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + #ifdef MODULE_PBR + // set PBR data + pbr_vPosition = geometry.position.xyz; + #ifdef HAS_NORMALS + pbr_vNormal = geometry.normal; + #endif + + #ifdef HAS_UV + pbr_vUV = uv; + #else + pbr_vUV = vec2(0., 0.); + #endif + geometry.uv = pbr_vUV; + #endif + + DECKGL_FILTER_COLOR(vColor, geometry); +} +`,fs$5=`#version 300 es +#define SHADER_NAME simple-mesh-layer-fs + +precision highp float; + +uniform bool hasTexture; +uniform sampler2D sampler; +uniform bool flatShading; +uniform float opacity; + +in vec2 vTexCoord; +in vec3 cameraPosition; +in vec3 normals_commonspace; +in vec4 position_commonspace; +in vec4 vColor; + +out vec4 fragColor; + +void main(void) { + +#ifdef MODULE_PBR + + fragColor = vColor * pbr_filterColor(vec4(0)); + geometry.uv = pbr_vUV; + fragColor.a *= opacity; + +#else + + geometry.uv = vTexCoord; + + vec3 normal; + if (flatShading) { + +// NOTE(Tarek): This is necessary because +// headless.gl reports the extension as +// available but does not support it in +// the shader. +#ifdef DERIVATIVES_AVAILABLE + normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); +#else + normal = vec3(0.0, 0.0, 1.0); +#endif + } else { + normal = normals_commonspace; + } + + vec4 color = hasTexture ? texture(sampler, vTexCoord) : vColor; + vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal); + fragColor = vec4(lightColor, color.a * opacity); + +#endif + + DECKGL_FILTER_COLOR(fragColor, geometry); +} +`;function validateGeometryAttributes(j){j.COLOR_0||j.colors||(j.colors={constant:!0,value:new Float32Array([1,1,1])})}const defaultProps$k={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};class MeshLayer extends SimpleMeshLayer{getShaders(){const $=super.getShaders();return $.modules.push(pbr),{...$,vs:vs$5,fs:fs$5}}initializeState(){const{featureIds:$}=this.props;super.initializeState();const _e=this.getAttributeManager();$&&_e.add({featureIdsPickingColors:{type:5121,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState($){super.updateState($);const{props:_e,oldProps:et}=$;_e.pbrMaterial!==et.pbrMaterial&&this.updatePbrMaterialUniforms(_e.pbrMaterial)}draw($){const{featureIds:_e}=this.props;this.state.model&&(this.state.model.setUniforms({u_Camera:this.state.model.getUniforms().project_uCameraPosition,pickFeatureIds:!!_e}),super.draw($))}getModel($){const{id:_e,pbrMaterial:et}=this.props,tt=this.parseMaterial(et,$);this.setState({materialParser:tt});const rt=this.getShaders();return validateGeometryAttributes($.attributes),new Model(this.context.gl,{...this.getShaders(),id:_e,geometry:$,defines:{...rt.defines,...tt==null?void 0:tt.defines,HAS_UV_REGIONS:$.attributes.uvRegions},parameters:tt==null?void 0:tt.parameters,isInstanced:!0})}updatePbrMaterialUniforms($){const{model:_e}=this.state;if(_e){const{mesh:et}=this.props,tt=this.parseMaterial($,et);this.setState({materialParser:tt}),_e.setUniforms(tt.uniforms)}}parseMaterial($,_e){var et;const tt=!!($.pbrMetallicRoughness&&$.pbrMetallicRoughness.baseColorTexture);return(et=this.state.materialParser)===null||et===void 0||et.delete(),new GLTFMaterialParser(this.context.gl,{attributes:{NORMAL:_e.attributes.normals,TEXCOORD_0:_e.attributes.texCoords},material:{unlit:tt,...$},pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors($){const _e=this.props.featureIds,et=new Uint8ClampedArray(_e.length*$.size),tt=[];for(let rt=0;rt<_e.length;rt++)this.encodePickingColor(_e[rt],tt),et[rt*3]=tt[0],et[rt*3+1]=tt[1],et[rt*3+2]=tt[2];$.value=et}finalizeState($){var _e;super.finalizeState($),(_e=this.state.materialParser)===null||_e===void 0||_e.delete(),this.setState({materialParser:null})}}_defineProperty$e(MeshLayer,"layerName","MeshLayer");_defineProperty$e(MeshLayer,"defaultProps",defaultProps$k);const WGS84_RADIUS_X$1=6378137,WGS84_RADIUS_Y$1=6378137,WGS84_RADIUS_Z$1=6356752314245179e-9;function identity$2$1(j){return j}new Vector3;function fromCartographic(j,$=[],_e=identity$2$1){return"longitude"in j?($[0]=_e(j.longitude),$[1]=_e(j.latitude),$[2]=j.height):"x"in j?($[0]=_e(j.x),$[1]=_e(j.y),$[2]=j.z):($[0]=_e(j[0]),$[1]=_e(j[1]),$[2]=j[2]),$}function fromCartographicToRadians(j,$=[]){return fromCartographic(j,$,config$2._cartographicRadians?identity$2$1:toRadians)}function toCartographic(j,$,_e=identity$2$1){return"longitude"in $?($.longitude=_e(j[0]),$.latitude=_e(j[1]),$.height=j[2]):"x"in $?($.x=_e(j[0]),$.y=_e(j[1]),$.z=j[2]):($[0]=_e(j[0]),$[1]=_e(j[1]),$[2]=j[2]),$}function toCartographicFromRadians(j,$){return toCartographic(j,$,config$2._cartographicRadians?identity$2$1:toDegrees)}const scratchVector$4=new Vector3,scaleToGeodeticSurfaceIntersection=new Vector3,scaleToGeodeticSurfaceGradient=new Vector3;function scaleToGeodeticSurface(j,$,_e=[]){const{oneOverRadii:et,oneOverRadiiSquared:tt,centerToleranceSquared:rt}=$;scratchVector$4.from(j);const nt=scratchVector$4.x,it=scratchVector$4.y,ot=scratchVector$4.z,At=et.x,ut=et.y,ft=et.z,dt=nt*nt*At*At,Et=it*it*ut*ut,Bt=ot*ot*ft*ft,St=dt+Et+Bt,Dt=Math.sqrt(1/St);if(!Number.isFinite(Dt))return;const $t=scaleToGeodeticSurfaceIntersection;if($t.copy(j).scale(Dt),St_MathUtils.EPSILON12);return scratchVector$4.scale([Jt,jt,Ht]).to(_e)}const EPSILON14=1e-14,scratchOrigin=new Vector3,VECTOR_PRODUCT_LOCAL_FRAME={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},degeneratePositionLocalFrame={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},scratchAxisVectors={east:new Vector3,north:new Vector3,up:new Vector3,west:new Vector3,south:new Vector3,down:new Vector3},scratchVector1=new Vector3,scratchVector2=new Vector3,scratchVector3=new Vector3;function localFrameToFixedFrame(j,$,_e,et,tt,rt){const nt=VECTOR_PRODUCT_LOCAL_FRAME[$]&&VECTOR_PRODUCT_LOCAL_FRAME[$][_e];assert$c(nt&&(!et||et===nt));let it,ot,At;const ut=scratchOrigin.copy(tt);if(equals$3(ut.x,0,EPSILON14)&&equals$3(ut.y,0,EPSILON14)){const dt=Math.sign(ut.z);it=scratchVector1.fromArray(degeneratePositionLocalFrame[$]),$!=="east"&&$!=="west"&&it.scale(dt),ot=scratchVector2.fromArray(degeneratePositionLocalFrame[_e]),_e!=="east"&&_e!=="west"&&ot.scale(dt),At=scratchVector3.fromArray(degeneratePositionLocalFrame[et]),et!=="east"&&et!=="west"&&At.scale(dt)}else{const{up:dt,east:Et,north:Bt}=scratchAxisVectors;Et.set(-ut.y,ut.x,0).normalize(),j.geodeticSurfaceNormal(ut,dt),Bt.copy(dt).cross(Et);const{down:St,west:Dt,south:$t}=scratchAxisVectors;St.copy(dt).scale(-1),Dt.copy(Et).scale(-1),$t.copy(Bt).scale(-1),it=scratchAxisVectors[$],ot=scratchAxisVectors[_e],At=scratchAxisVectors[et]}return rt[0]=it.x,rt[1]=it.y,rt[2]=it.z,rt[3]=0,rt[4]=ot.x,rt[5]=ot.y,rt[6]=ot.z,rt[7]=0,rt[8]=At.x,rt[9]=At.y,rt[10]=At.z,rt[11]=0,rt[12]=ut.x,rt[13]=ut.y,rt[14]=ut.z,rt[15]=1,rt}const scratchVector$3=new Vector3,scratchNormal$1=new Vector3,scratchK=new Vector3,scratchPosition$1=new Vector3,scratchHeight=new Vector3,scratchCartesian=new Vector3;class Ellipsoid{constructor($=0,_e=0,et=0){_defineProperty$e(this,"radii",void 0),_defineProperty$e(this,"radiiSquared",void 0),_defineProperty$e(this,"radiiToTheFourth",void 0),_defineProperty$e(this,"oneOverRadii",void 0),_defineProperty$e(this,"oneOverRadiiSquared",void 0),_defineProperty$e(this,"minimumRadius",void 0),_defineProperty$e(this,"maximumRadius",void 0),_defineProperty$e(this,"centerToleranceSquared",_MathUtils.EPSILON1),_defineProperty$e(this,"squaredXOverSquaredZ",void 0),assert$c($>=0),assert$c(_e>=0),assert$c(et>=0),this.radii=new Vector3($,_e,et),this.radiiSquared=new Vector3($*$,_e*_e,et*et),this.radiiToTheFourth=new Vector3($*$*$*$,_e*_e*_e*_e,et*et*et*et),this.oneOverRadii=new Vector3($===0?0:1/$,_e===0?0:1/_e,et===0?0:1/et),this.oneOverRadiiSquared=new Vector3($===0?0:1/($*$),_e===0?0:1/(_e*_e),et===0?0:1/(et*et)),this.minimumRadius=Math.min($,_e,et),this.maximumRadius=Math.max($,_e,et),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals($){return this===$||!!($&&this.radii.equals($.radii))}toString(){return this.radii.toString()}cartographicToCartesian($,_e=[0,0,0]){const et=scratchNormal$1,tt=scratchK,[,,rt]=$;this.geodeticSurfaceNormalCartographic($,et),tt.copy(this.radiiSquared).scale(et);const nt=Math.sqrt(et.dot(tt));return tt.scale(1/nt),et.scale(rt),tt.add(et),tt.to(_e)}cartesianToCartographic($,_e=[0,0,0]){scratchCartesian.from($);const et=this.scaleToGeodeticSurface(scratchCartesian,scratchPosition$1);if(!et)return;const tt=this.geodeticSurfaceNormal(et,scratchNormal$1),rt=scratchHeight;rt.copy(scratchCartesian).subtract(et);const nt=Math.atan2(tt.y,tt.x),it=Math.asin(tt.z),ot=Math.sign(dot$4(rt,scratchCartesian))*length$4(rt);return toCartographicFromRadians([nt,it,ot],_e)}eastNorthUpToFixedFrame($,_e=new Matrix4){return localFrameToFixedFrame(this,"east","north","up",$,_e)}localFrameToFixedFrame($,_e,et,tt,rt=new Matrix4){return localFrameToFixedFrame(this,$,_e,et,tt,rt)}geocentricSurfaceNormal($,_e=[0,0,0]){return scratchVector$3.from($).normalize().to(_e)}geodeticSurfaceNormalCartographic($,_e=[0,0,0]){const et=fromCartographicToRadians($),tt=et[0],rt=et[1],nt=Math.cos(rt);return scratchVector$3.set(nt*Math.cos(tt),nt*Math.sin(tt),Math.sin(rt)).normalize(),scratchVector$3.to(_e)}geodeticSurfaceNormal($,_e=[0,0,0]){return scratchVector$3.from($).scale(this.oneOverRadiiSquared).normalize().to(_e)}scaleToGeodeticSurface($,_e){return scaleToGeodeticSurface($,this,_e)}scaleToGeocentricSurface($,_e=[0,0,0]){scratchPosition$1.from($);const et=scratchPosition$1.x,tt=scratchPosition$1.y,rt=scratchPosition$1.z,nt=this.oneOverRadiiSquared,it=1/Math.sqrt(et*et*nt.x+tt*tt*nt.y+rt*rt*nt.z);return scratchPosition$1.multiplyScalar(it).to(_e)}transformPositionToScaledSpace($,_e=[0,0,0]){return scratchPosition$1.from($).scale(this.oneOverRadii).to(_e)}transformPositionFromScaledSpace($,_e=[0,0,0]){return scratchPosition$1.from($).scale(this.radii).to(_e)}getSurfaceNormalIntersectionWithZAxis($,_e=0,et=[0,0,0]){assert$c(equals$3(this.radii.x,this.radii.y,_MathUtils.EPSILON15)),assert$c(this.radii.z>0),scratchPosition$1.from($);const tt=scratchPosition$1.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(tt)>=this.radii.z-_e))return scratchPosition$1.set(0,0,tt).to(et)}}_defineProperty$e(Ellipsoid,"WGS84",new Ellipsoid(WGS84_RADIUS_X$1,WGS84_RADIUS_Y$1,WGS84_RADIUS_Z$1));class DoublyLinkedListNode{constructor($,_e,et){_defineProperty$e(this,"item",void 0),_defineProperty$e(this,"previous",void 0),_defineProperty$e(this,"next",void 0),this.item=$,this.previous=_e,this.next=et}}class DoublyLinkedList{constructor(){_defineProperty$e(this,"head",null),_defineProperty$e(this,"tail",null),_defineProperty$e(this,"_length",0)}get length(){return this._length}add($){const _e=new DoublyLinkedListNode($,this.tail,null);return this.tail?(this.tail.next=_e,this.tail=_e):(this.head=_e,this.tail=_e),++this._length,_e}remove($){$&&($.previous&&$.next?($.previous.next=$.next,$.next.previous=$.previous):$.previous?($.previous.next=null,this.tail=$.previous):$.next?($.next.previous=null,this.head=$.next):(this.head=null,this.tail=null),$.next=null,$.previous=null,--this._length)}splice($,_e){$!==_e&&(this.remove(_e),this._insert($,_e))}_insert($,_e){const et=$.next;$.next=_e,this.tail===$?this.tail=_e:et.previous=_e,_e.next=et,_e.previous=$,++this._length}}function defined$4(j){return j!=null}class TilesetCache{constructor(){_defineProperty$e(this,"_list",void 0),_defineProperty$e(this,"_sentinel",void 0),_defineProperty$e(this,"_trimTiles",void 0),this._list=new DoublyLinkedList,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch($){const _e=$._cacheNode;defined$4(_e)&&this._list.splice(this._sentinel,_e)}add($,_e,et){defined$4(_e._cacheNode)||(_e._cacheNode=this._list.add(_e),et&&et($,_e))}unloadTile($,_e,et){const tt=_e._cacheNode;defined$4(tt)&&(this._list.remove(tt),_e._cacheNode=void 0,et&&et($,_e))}unloadTiles($,_e){const et=this._trimTiles;this._trimTiles=!1;const tt=this._list,rt=$.maximumMemoryUsage*1024*1024,nt=this._sentinel;let it=tt.head;for(;it!==nt&&($.gpuMemoryUsageInBytes>rt||et);){const ot=it.item;it=it.next,this.unloadTile($,ot,_e)}}trim(){this._trimTiles=!0}}function calculateTransformProps(j,$){assert$b(j),assert$b($);const{rtcCenter:_e,gltfUpAxis:et}=$,{computedTransform:tt,boundingVolume:{center:rt}}=j;let nt=new Matrix4(tt);switch(_e&&nt.translate(_e),et){case"Z":break;case"Y":const ft=new Matrix4().rotateX(Math.PI/2);nt=nt.multiplyRight(ft);break;case"X":const dt=new Matrix4().rotateY(-Math.PI/2);nt=nt.multiplyRight(dt);break}$.isQuantized&&nt.translate($.quantizedVolumeOffset).scale($.quantizedVolumeScale);const it=new Vector3(rt);$.cartesianModelMatrix=nt,$.cartesianOrigin=it;const ot=Ellipsoid.WGS84.cartesianToCartographic(it,new Vector3),ut=Ellipsoid.WGS84.eastNorthUpToFixedFrame(it).invert();$.cartographicModelMatrix=ut.multiplyRight(nt),$.cartographicOrigin=ot,$.coordinateSystem||($.modelMatrix=$.cartographicModelMatrix)}const scratchVector$2=new Vector3,scratchPosition=new Vector3,cullingVolume=new CullingVolume([new Plane,new Plane,new Plane,new Plane,new Plane,new Plane]);function getFrameState(j,$){const{cameraDirection:_e,cameraUp:et,height:tt}=j,{metersPerUnit:rt}=j.distanceScales,nt=worldToCartesian(j,j.center),it=Ellipsoid.WGS84.eastNorthUpToFixedFrame(nt),ot=j.unprojectPosition(j.cameraPosition),At=Ellipsoid.WGS84.cartographicToCartesian(ot,new Vector3),ut=new Vector3(it.transformAsVector(new Vector3(_e).scale(rt))).normalize(),ft=new Vector3(it.transformAsVector(new Vector3(et).scale(rt))).normalize();commonSpacePlanesToWGS84(j);const dt=j.constructor,{longitude:Et,latitude:Bt,width:St,bearing:Dt,zoom:$t}=j,Rt=new dt({longitude:Et,latitude:Bt,height:tt,width:St,bearing:Dt,zoom:$t,pitch:0});return{camera:{position:At,direction:ut,up:ft},viewport:j,topDownViewport:Rt,height:tt,cullingVolume,frameNumber:$,sseDenominator:1.15}}function limitSelectedTiles(j,$,_e){if(_e===0||j.length<=_e)return[j,[]];const et=[],{longitude:tt,latitude:rt}=$.viewport;for(const[At,ut]of j.entries()){const[ft,dt]=ut.header.mbs,Et=Math.abs(tt-ft),Bt=Math.abs(rt-dt),St=Math.sqrt(Bt*Bt+Et*Et);et.push([At,St])}const nt=et.sort((At,ut)=>At[1]-ut[1]),it=[];for(let At=0;At<_e;At++)it.push(j[nt[At][0]]);const ot=[];for(let At=_e;Atthis._array.length&&(this._array.length=$)}get values(){return this._array}get($){return assert$b($=0),$>=this.length&&(this.length=$+1),this._map.has(this._array[$])&&this._map.delete(this._array[$]),this._array[$]=_e,this._map.set(_e,$)}delete($){const _e=this._map.get($);_e>=0&&(this._array.splice(_e,1),this._map.delete($),this.length--)}peek(){return this._array[this._length-1]}push($){if(!this._map.has($)){const _e=this.length++;this._array[_e]=$,this._map.set($,_e)}}pop(){const $=this._array[--this.length];return this._map.delete($),$}reserve($){assert$b($>=0),$>this._array.length&&(this._array.length=$)}resize($){assert$b($>=0),this.length=$}trim($){$==null&&($=this.length),this._array.length=$}reset(){this._array=[],this._map=new Map,this._length=0}find($){return this._map.has($)}}const DEFAULT_PROPS$1={loadSiblings:!1,skipLevelOfDetail:!1,maximumScreenSpaceError:2,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""};class TilesetTraverser{traversalFinished($){return!0}constructor($){_defineProperty$e(this,"options",void 0),_defineProperty$e(this,"root",void 0),_defineProperty$e(this,"requestedTiles",void 0),_defineProperty$e(this,"selectedTiles",void 0),_defineProperty$e(this,"emptyTiles",void 0),_defineProperty$e(this,"lastUpdate",new Date().getTime()),_defineProperty$e(this,"updateDebounceTime",1e3),_defineProperty$e(this,"_traversalStack",void 0),_defineProperty$e(this,"_emptyTraversalStack",void 0),_defineProperty$e(this,"_frameNumber",void 0),this.options={...DEFAULT_PROPS$1,...$},this._traversalStack=new ManagedArray,this._emptyTraversalStack=new ManagedArray,this._frameNumber=null,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={}}traverse($,_e,et){this.root=$,this.options={...this.options,...et},this.reset(),this.updateTile($,_e),this._frameNumber=_e.frameNumber,this.executeTraversal($,_e)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal($,_e){const et=this._traversalStack;for($._selectionDepth=1,et.push($);et.length>0;){const rt=et.pop();let nt=!1;this.canTraverse(rt,_e)&&(this.updateChildTiles(rt,_e),nt=this.updateAndPushChildren(rt,_e,et,rt.hasRenderContent?rt._selectionDepth+1:rt._selectionDepth));const it=rt.parent,ot=!!(!it||it._shouldRefine),At=!nt;rt.hasRenderContent?rt.refine===TILE_REFINEMENT.ADD?(this.loadTile(rt,_e),this.selectTile(rt,_e)):rt.refine===TILE_REFINEMENT.REPLACE&&(this.loadTile(rt,_e),At&&this.selectTile(rt,_e)):(this.emptyTiles[rt.id]=rt,this.loadTile(rt,_e),At&&this.selectTile(rt,_e)),this.touchTile(rt,_e),rt._shouldRefine=nt&&ot}const tt=new Date().getTime();(this.traversalFinished(_e)||tt-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=tt,this.options.onTraversalEnd(_e))}updateChildTiles($,_e){const et=$.children;for(const tt of et)this.updateTile(tt,_e);return!0}updateAndPushChildren($,_e,et,tt){const{loadSiblings:rt,skipLevelOfDetail:nt}=this.options,it=$.children;it.sort(this.compareDistanceToCamera.bind(this));const ot=$.refine===TILE_REFINEMENT.REPLACE&&$.hasRenderContent&&!nt;let At=!1,ut=!0;for(const ft of it)if(ft._selectionDepth=tt,ft.isVisibleAndInRequestVolume?(et.find(ft)&&et.delete(ft),et.push(ft),At=!0):(ot||rt)&&(this.loadTile(ft,_e),this.touchTile(ft,_e)),ot){let dt;if(ft._inRequestVolume?ft.hasRenderContent?dt=ft.contentAvailable:dt=this.executeEmptyTraversal(ft,_e):dt=!1,ut=ut&&dt,!ut)return!1}return At||(ut=!1),ut}updateTile($,_e){this.updateTileVisibility($,_e)}selectTile($,_e){this.shouldSelectTile($)&&($._selectedFrame=_e.frameNumber,this.selectedTiles[$.id]=$)}loadTile($,_e){this.shouldLoadTile($)&&($._requestedFrame=_e.frameNumber,$._priority=$._getPriority(),this.requestedTiles[$.id]=$)}touchTile($,_e){$.tileset._cache.touch($),$._touchedFrame=_e.frameNumber}canTraverse($,_e,et=!1,tt=!1){return $.hasChildren?$.hasTilesetContent?!$.contentExpired:!tt&&!$.isVisibleAndInRequestVolume?!1:this.shouldRefine($,_e,et):!1}shouldLoadTile($){return $.hasUnloadedContent||$.contentExpired}shouldSelectTile($){return $.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine($,_e,et){let tt=$._screenSpaceError;return et&&(tt=$.getScreenSpaceError(_e,!0)),tt>this.options.maximumScreenSpaceError}updateTileVisibility($,_e){const et=[];if(this.options.viewportTraversersMap)for(const tt in this.options.viewportTraversersMap)this.options.viewportTraversersMap[tt]===_e.viewport.id&&et.push(tt);else et.push(_e.viewport.id);$.updateVisibility(_e,et)}compareDistanceToCamera($,_e){return $._distanceToCamera-_e._distanceToCamera}anyChildrenVisible($,_e){let et=!1;for(const tt of $.children)tt.updateVisibility(_e),et=et||tt.isVisibleAndInRequestVolume;return et}executeEmptyTraversal($,_e){let et=!0;const tt=this._emptyTraversalStack;for(tt.push($);tt.length>0&&et;){const rt=tt.pop();if(this.updateTile(rt,_e),rt.isVisibleAndInRequestVolume||this.loadTile(rt,_e),this.touchTile(rt,_e),!rt.hasRenderContent&&this.canTraverse(rt,_e,!1,!0)){const it=rt.children;for(const ot of it)tt.find(ot)&&tt.delete(ot),tt.push(ot)}else rt.contentAvailable||(et=!1)}return et}}const scratchVector=new Vector3;function defined$2(j){return j!=null}class TileHeader{constructor($,_e,et,tt=""){_defineProperty$e(this,"tileset",void 0),_defineProperty$e(this,"header",void 0),_defineProperty$e(this,"id",void 0),_defineProperty$e(this,"url",void 0),_defineProperty$e(this,"parent",void 0),_defineProperty$e(this,"refine",void 0),_defineProperty$e(this,"type",void 0),_defineProperty$e(this,"contentUrl",void 0),_defineProperty$e(this,"lodMetricType",void 0),_defineProperty$e(this,"lodMetricValue",void 0),_defineProperty$e(this,"boundingVolume",void 0),_defineProperty$e(this,"content",void 0),_defineProperty$e(this,"contentState",void 0),_defineProperty$e(this,"gpuMemoryUsageInBytes",void 0),_defineProperty$e(this,"children",void 0),_defineProperty$e(this,"depth",void 0),_defineProperty$e(this,"viewportIds",void 0),_defineProperty$e(this,"transform",void 0),_defineProperty$e(this,"extensions",void 0),_defineProperty$e(this,"userData",void 0),_defineProperty$e(this,"computedTransform",void 0),_defineProperty$e(this,"hasEmptyContent",void 0),_defineProperty$e(this,"hasTilesetContent",void 0),_defineProperty$e(this,"traverser",void 0),_defineProperty$e(this,"_cacheNode",void 0),_defineProperty$e(this,"_frameNumber",void 0),_defineProperty$e(this,"_lodJudge",void 0),_defineProperty$e(this,"_expireDate",void 0),_defineProperty$e(this,"_expiredContent",void 0),_defineProperty$e(this,"_shouldRefine",void 0),_defineProperty$e(this,"_distanceToCamera",void 0),_defineProperty$e(this,"_centerZDepth",void 0),_defineProperty$e(this,"_screenSpaceError",void 0),_defineProperty$e(this,"_visibilityPlaneMask",void 0),_defineProperty$e(this,"_visible",void 0),_defineProperty$e(this,"_inRequestVolume",void 0),_defineProperty$e(this,"_stackLength",void 0),_defineProperty$e(this,"_selectionDepth",void 0),_defineProperty$e(this,"_touchedFrame",void 0),_defineProperty$e(this,"_visitedFrame",void 0),_defineProperty$e(this,"_selectedFrame",void 0),_defineProperty$e(this,"_requestedFrame",void 0),_defineProperty$e(this,"_priority",void 0),_defineProperty$e(this,"_contentBoundingVolume",void 0),_defineProperty$e(this,"_viewerRequestVolume",void 0),_defineProperty$e(this,"_initialTransform",void 0),this.header=_e,this.tileset=$,this.id=tt||_e.id,this.url=_e.url,this.parent=et,this.refine=this._getRefine(_e.refine),this.type=_e.type,this.contentUrl=_e.contentUrl,this.lodMetricType="geometricError",this.lodMetricValue=0,this.boundingVolume=null,this.content=null,this.contentState=TILE_CONTENT_STATE.UNLOADED,this.gpuMemoryUsageInBytes=0,this.children=[],this.hasEmptyContent=!1,this.hasTilesetContent=!1,this.depth=0,this.viewportIds=[],this.userData={},this.extensions=null,this._priority=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._screenSpaceError=0,this._cacheNode=null,this._frameNumber=null,this._cacheNode=null,this.traverser=new TilesetTraverser({}),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._initialTransform=new Matrix4,this.transform=new Matrix4,this._initializeLodMetric(_e),this._initializeTransforms(_e),this._initializeBoundingVolumes(_e),this._initializeContent(_e),this._initializeRenderingState(_e),this._lodJudge=null,this._expireDate=null,this._expiredContent=null,Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===TILE_CONTENT_STATE.READY||this.hasEmptyContent}get contentAvailable(){return!!(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===TILE_CONTENT_STATE.UNLOADED}get contentExpired(){return this.contentState===TILE_CONTENT_STATE.EXPIRED}get contentFailed(){return this.contentState===TILE_CONTENT_STATE.FAILED}getScreenSpaceError($,_e){switch(this.tileset.type){case TILESET_TYPE.I3S:return getProjectedRadius(this,$);case TILESET_TYPE.TILES3D:return getTiles3DScreenSpaceError(this,$,_e);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getPriority(){const $=this.tileset._traverser,{skipLevelOfDetail:_e}=$.options,et=this.refine===TILE_REFINEMENT.ADD||_e;if(et&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===TILE_CONTENT_STATE.UNLOADED)return-1;const tt=this.parent,nt=tt&&(!et||this._screenSpaceError===0||tt.hasTilesetContent)?tt._screenSpaceError:this._screenSpaceError,it=$.root?$.root._screenSpaceError:0;return Math.max(it-nt,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=TILE_CONTENT_STATE.LOADING;const _e=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!_e)return this.contentState=TILE_CONTENT_STATE.UNLOADED,!1;try{const et=this.tileset.getTileUrl(this.contentUrl),tt=this.tileset.loader,rt={...this.tileset.loadOptions,[tt.id]:{...this.tileset.loadOptions[tt.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(tt.id)}};return this.content=await load(et,tt,rt),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=TILE_CONTENT_STATE.READY,this._onContentLoaded(),!0}catch(et){throw this.contentState=TILE_CONTENT_STATE.FAILED,et}finally{_e.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=TILE_CONTENT_STATE.UNLOADED,!0}updateVisibility($,_e){if(this._frameNumber===$.frameNumber)return;const et=this.parent,tt=et?et._visibilityPlaneMask:CullingVolume.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){const rt=et?et.computedTransform:this.tileset.modelMatrix;this._updateTransform(rt)}this._distanceToCamera=this.distanceToTile($),this._screenSpaceError=this.getScreenSpaceError($,!1),this._visibilityPlaneMask=this.visibility($,tt),this._visible=this._visibilityPlaneMask!==CullingVolume.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume($),this._frameNumber=$.frameNumber,this.viewportIds=_e}visibility($,_e){const{cullingVolume:et}=$,{boundingVolume:tt}=this;return et.computeVisibilityWithPlaneMask(tt,_e)}contentVisibility(){return!0}distanceToTile($){const _e=this.boundingVolume;return Math.sqrt(Math.max(_e.distanceSquaredTo($.camera.position),0))}cameraSpaceZDepth({camera:$}){const _e=this.boundingVolume;return scratchVector.subVectors(_e.center,$.position),$.direction.dot(scratchVector)}insideViewerRequestVolume($){const _e=this._viewerRequestVolume;return!_e||_e.distanceSquaredTo($.camera.position)<=0}updateExpiration(){if(defined$2(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){const $=Date.now();Date.lessThan(this._expireDate,$)&&(this.contentState=TILE_CONTENT_STATE.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric($){"lodMetricType"in $?this.lodMetricType=$.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in $?this.lodMetricValue=$.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms($){this.transform=$.transform?new Matrix4($.transform):new Matrix4;const _e=this.parent,et=this.tileset,tt=_e&&_e.computedTransform?_e.computedTransform.clone():et.modelMatrix.clone();this.computedTransform=new Matrix4(tt).multiplyRight(this.transform);const rt=_e&&_e._initialTransform?_e._initialTransform.clone():new Matrix4;this._initialTransform=new Matrix4(rt).multiplyRight(this.transform)}_initializeBoundingVolumes($){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume($)}_initializeContent($){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=TILE_CONTENT_STATE.UNLOADED,this.hasTilesetContent=!1,$.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState($){this.depth=$.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=CullingVolume.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine($){return $||this.parent&&this.parent.refine||TILE_REFINEMENT.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break}this._isTileset()&&(this.hasTilesetContent=!0)}_updateBoundingVolume($){this.boundingVolume=createBoundingVolume($.boundingVolume,this.computedTransform,this.boundingVolume);const _e=$.content;_e&&(_e.boundingVolume&&(this._contentBoundingVolume=createBoundingVolume(_e.boundingVolume,this.computedTransform,this._contentBoundingVolume)),$.viewerRequestVolume&&(this._viewerRequestVolume=createBoundingVolume($.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform($=new Matrix4){const _e=$.clone().multiplyRight(this.transform);_e.equals(this.computedTransform)||(this.computedTransform=_e,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions($){switch($){case"i3s":return{...this.tileset.options.i3s,tile:this.header,tileset:this.tileset.tileset,isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return get3dTilesOptions(this.tileset.tileset)}}}class Tileset3DTraverser extends TilesetTraverser{compareDistanceToCamera($,_e){return _e._distanceToCamera===0&&$._distanceToCamera===0?_e._centerZDepth-$._centerZDepth:_e._distanceToCamera-$._distanceToCamera}updateTileVisibility($,_e){if(super.updateTileVisibility($,_e),!$.isVisibleAndInRequestVolume)return;const et=$.children.length>0;if($.hasTilesetContent&&et){const nt=$.children[0];this.updateTileVisibility(nt,_e),$._visible=nt._visible;return}if(this.meetsScreenSpaceErrorEarly($,_e)){$._visible=!1;return}const tt=$.refine===TILE_REFINEMENT.REPLACE,rt=$._optimChildrenWithinParent===TILE3D_OPTIMIZATION_HINT.USE_OPTIMIZATION;if(tt&&rt&&et&&!this.anyChildrenVisible($,_e)){$._visible=!1;return}}meetsScreenSpaceErrorEarly($,_e){const{parent:et}=$;return!et||et.hasTilesetContent||et.refine!==TILE_REFINEMENT.ADD?!1:!this.shouldRefine($,_e,!0)}}class I3SPendingTilesRegister{constructor(){_defineProperty$e(this,"frameNumberMap",new Map)}register($,_e){const et=this.frameNumberMap.get($)||new Map,tt=et.get(_e)||0;et.set(_e,tt+1),this.frameNumberMap.set($,et)}deregister($,_e){const et=this.frameNumberMap.get($);if(!et)return;const tt=et.get(_e)||1;et.set(_e,tt-1)}isZero($,_e){var et;return(((et=this.frameNumberMap.get($))===null||et===void 0?void 0:et.get(_e))||0)===0}}const STATUS={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"};class I3STileManager{constructor(){_defineProperty$e(this,"_statusMap",void 0),_defineProperty$e(this,"pendingTilesRegister",new I3SPendingTilesRegister),this._statusMap={}}add($,_e,et,tt){if(!this._statusMap[_e]){const{frameNumber:rt,viewport:{id:nt}}=tt;this._statusMap[_e]={request:$,callback:et,key:_e,frameState:tt,status:STATUS.REQUESTED},this.pendingTilesRegister.register(nt,rt),$().then(it=>{this._statusMap[_e].status=STATUS.COMPLETED;const{frameNumber:ot,viewport:{id:At}}=this._statusMap[_e].frameState;this.pendingTilesRegister.deregister(At,ot),this._statusMap[_e].callback(it,tt)}).catch(it=>{this._statusMap[_e].status=STATUS.ERROR;const{frameNumber:ot,viewport:{id:At}}=this._statusMap[_e].frameState;this.pendingTilesRegister.deregister(At,ot),et(it)})}}update($,_e){if(this._statusMap[$]){const{frameNumber:et,viewport:{id:tt}}=this._statusMap[$].frameState;this.pendingTilesRegister.deregister(tt,et);const{frameNumber:rt,viewport:{id:nt}}=_e;this.pendingTilesRegister.register(nt,rt),this._statusMap[$].frameState=_e}}find($){return this._statusMap[$]}hasPendingTiles($,_e){return!this.pendingTilesRegister.isZero($,_e)}}class I3STilesetTraverser extends TilesetTraverser{traversalFinished($){return!this._tileManager.hasPendingTiles($.viewport.id,this._frameNumber||0)}constructor($){super($),_defineProperty$e(this,"_tileManager",void 0),this._tileManager=new I3STileManager}shouldRefine($,_e){return $._lodJudge=getLodStatus($,_e),$._lodJudge==="DIG"}updateChildTiles($,_e){const et=$.header.children||[],tt=$.children,rt=$.tileset;for(const nt of et){const it="".concat(nt.id,"-").concat(_e.viewport.id),ot=tt&&tt.find(At=>At.id===it);if(ot)ot&&this.updateTile(ot,_e);else{let At=()=>this._loadTile(nt.id,rt);this._tileManager.find(it)?this._tileManager.update(it,_e):(rt.tileset.nodePages&&(At=()=>rt.tileset.nodePagesTile.formTileFromNodePages(nt.id)),this._tileManager.add(At,it,ft=>this._onTileLoad(ft,$,it),_e))}}return!1}async _loadTile($,_e){const{loader:et}=_e,tt=_e.getTileUrl("".concat(_e.url,"/nodes/").concat($)),rt={..._e.loadOptions,i3s:{..._e.loadOptions.i3s,isTileHeader:!0,loadContent:!1}};return await load(tt,et,rt)}_onTileLoad($,_e,et){const tt=new TileHeader(_e.tileset,$,_e,et);_e.children.push(tt);const rt=this._tileManager.find(tt.id).frameState;this.updateTile(tt,rt),this._frameNumber===rt.frameNumber&&(this.traversalFinished(rt)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(tt,rt)}}const DEFAULT_PROPS={description:"",ellipsoid:Ellipsoid.WGS84,modelMatrix:new Matrix4,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:j=>j,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},TILES_TOTAL="Tiles In Tileset(s)",TILES_IN_MEMORY="Tiles In Memory",TILES_IN_VIEW="Tiles In View",TILES_RENDERABLE="Tiles To Render",TILES_LOADED="Tiles Loaded",TILES_LOADING="Tiles Loading",TILES_UNLOADED="Tiles Unloaded",TILES_LOAD_FAILED="Failed Tile Loads",POINTS_COUNT="Points/Vertices",TILES_GPU_MEMORY="Tile Memory Use";class Tileset3D{constructor($,_e){_defineProperty$e(this,"options",void 0),_defineProperty$e(this,"loadOptions",void 0),_defineProperty$e(this,"type",void 0),_defineProperty$e(this,"tileset",void 0),_defineProperty$e(this,"loader",void 0),_defineProperty$e(this,"url",void 0),_defineProperty$e(this,"basePath",void 0),_defineProperty$e(this,"modelMatrix",void 0),_defineProperty$e(this,"ellipsoid",void 0),_defineProperty$e(this,"lodMetricType",void 0),_defineProperty$e(this,"lodMetricValue",void 0),_defineProperty$e(this,"refine",void 0),_defineProperty$e(this,"root",void 0),_defineProperty$e(this,"roots",void 0),_defineProperty$e(this,"asset",void 0),_defineProperty$e(this,"description",void 0),_defineProperty$e(this,"properties",void 0),_defineProperty$e(this,"extras",void 0),_defineProperty$e(this,"attributions",void 0),_defineProperty$e(this,"credits",void 0),_defineProperty$e(this,"stats",void 0),_defineProperty$e(this,"traverseCounter",void 0),_defineProperty$e(this,"geometricError",void 0),_defineProperty$e(this,"selectedTiles",void 0),_defineProperty$e(this,"updatePromise",null),_defineProperty$e(this,"tilesetInitializationPromise",void 0),_defineProperty$e(this,"cartographicCenter",void 0),_defineProperty$e(this,"cartesianCenter",void 0),_defineProperty$e(this,"zoom",void 0),_defineProperty$e(this,"boundingVolume",void 0),_defineProperty$e(this,"gpuMemoryUsageInBytes",void 0),_defineProperty$e(this,"dynamicScreenSpaceErrorComputedDensity",void 0),_defineProperty$e(this,"_traverser",void 0),_defineProperty$e(this,"_cache",void 0),_defineProperty$e(this,"_requestScheduler",void 0),_defineProperty$e(this,"_frameNumber",void 0),_defineProperty$e(this,"_queryParamsString",void 0),_defineProperty$e(this,"_queryParams",void 0),_defineProperty$e(this,"_extensionsUsed",void 0),_defineProperty$e(this,"_tiles",void 0),_defineProperty$e(this,"_pendingCount",void 0),_defineProperty$e(this,"lastUpdatedVieports",void 0),_defineProperty$e(this,"_requestedTiles",void 0),_defineProperty$e(this,"_emptyTiles",void 0),_defineProperty$e(this,"frameStateData",void 0),_defineProperty$e(this,"maximumMemoryUsage",void 0),assert$b($),this.options={...DEFAULT_PROPS,..._e},this.tileset=$,this.loader=$.loader,this.type=$.type,this.url=$.url,this.basePath=$.basePath||dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=$.lodMetricType,this.lodMetricValue=$.lodMetricValue,this.refine=$.root.refine,this.loadOptions=this.options.loadOptions||{},this.root=null,this.roots={},this.cartographicCenter=null,this.cartesianCenter=null,this.zoom=1,this.boundingVolume=null,this.traverseCounter=0,this.geometricError=0,this._traverser=this._initializeTraverser(),this._cache=new TilesetCache,this._requestScheduler=new RequestScheduler({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this._frameNumber=0,this._pendingCount=0,this._tiles={},this.selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this.frameStateData={},this.lastUpdatedVieports=null,this._queryParams={},this._queryParamsString="",this.maximumMemoryUsage=this.options.maximumMemoryUsage||32,this.gpuMemoryUsageInBytes=0,this.stats=new Stats({id:this.url}),this._initializeStats(),this._extensionsUsed=void 0,this.dynamicScreenSpaceErrorComputedDensity=0,this.extras=null,this.asset={},this.credits={},this.description=this.options.description||"",this.tilesetInitializationPromise=this._initializeTileSet($)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return this._queryParamsString||(this._queryParamsString=getQueryParamString(this._queryParams)),this._queryParamsString}setProps($){this.options={...this.options,...$}}setOptions($){this.options={...this.options,...$}}getTileUrl($){return $.startsWith("data:")?$:"".concat($).concat(this.queryParams)}hasExtension($){return!!(this._extensionsUsed&&this._extensionsUsed.indexOf($)>-1)}update($=null){this.tilesetInitializationPromise.then(()=>{!$&&this.lastUpdatedVieports?$=this.lastUpdatedVieports:this.lastUpdatedVieports=$,$&&this.doUpdate($)})}async selectTiles($=null){return await this.tilesetInitializationPromise,$&&(this.lastUpdatedVieports=$),this.updatePromise||(this.updatePromise=new Promise(_e=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),_e(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}doUpdate($){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;const _e=$ instanceof Array?$:[$];this._cache.reset(),this._frameNumber++,this.traverseCounter=_e.length;const et=[];for(const tt of _e){const rt=tt.id;this._needTraverse(rt)?et.push(rt):this.traverseCounter--}for(const tt of _e){const rt=tt.id;if(this.roots[rt]||(this.roots[rt]=this._initializeTileHeaders(this.tileset,null)),!et.includes(rt))continue;const nt=getFrameState(tt,this._frameNumber);this._traverser.traverse(this.roots[rt],nt,this.options)}}_needTraverse($){let _e=$;return this.options.viewportTraversersMap&&(_e=this.options.viewportTraversersMap[$]),_e===$}_onTraversalEnd($){const _e=$.viewport.id;this.frameStateData[_e]||(this.frameStateData[_e]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});const et=this.frameStateData[_e],tt=Object.values(this._traverser.selectedTiles),[rt,nt]=limitSelectedTiles(tt,$,this.options.maximumTilesSelected);et.selectedTiles=rt;for(const it of nt)it.unselect();et._requestedTiles=Object.values(this._traverser.requestedTiles),et._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(const $ in this.frameStateData){const _e=this.frameStateData[$];this.selectedTiles=this.selectedTiles.concat(_e.selectedTiles),this._requestedTiles=this._requestedTiles.concat(_e._requestedTiles),this._emptyTiles=this._emptyTiles.concat(_e._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(const $ of this.selectedTiles)this._tiles[$.id]=$;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged($,_e){if($.length!==_e.length)return!0;const et=new Set($.map(nt=>nt.id)),tt=new Set(_e.map(nt=>nt.id));let rt=$.filter(nt=>!tt.has(nt.id)).length>0;return rt=rt||_e.filter(nt=>!et.has(nt.id)).length>0,rt}_loadTiles(){for(const $ of this._requestedTiles)$.contentUnloaded&&this._loadTile($)}_unloadTiles(){this._cache.unloadTiles(this,($,_e)=>$._unloadTile(_e))}_updateStats(){let $=0,_e=0;for(const et of this.selectedTiles)et.contentAvailable&&et.content&&($++,et.content.pointCount?_e+=et.content.pointCount:_e+=et.content.vertexCount);this.stats.get(TILES_IN_VIEW).count=this.selectedTiles.length,this.stats.get(TILES_RENDERABLE).count=$,this.stats.get(POINTS_COUNT).count=_e}async _initializeTileSet($){this.type===TILESET_TYPE.I3S&&(this.calculateViewPropsI3S(),$.root=await $.root),this.root=this._initializeTileHeaders($,null),this.type===TILESET_TYPE.TILES3D&&(this._initializeTiles3DTileset($),this.calculateViewPropsTiles3D()),this.type===TILESET_TYPE.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){var $;const _e=this.tileset.fullExtent;if(_e){const{xmin:tt,xmax:rt,ymin:nt,ymax:it,zmin:ot,zmax:At}=_e;this.cartographicCenter=new Vector3(tt+(rt-tt)/2,nt+(it-nt)/2,ot+(At-ot)/2),this.cartesianCenter=Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter,new Vector3),this.zoom=getZoomFromFullExtent(_e,this.cartographicCenter,this.cartesianCenter);return}const et=($=this.tileset.store)===null||$===void 0?void 0:$.extent;if(et){const[tt,rt,nt,it]=et;this.cartographicCenter=new Vector3(tt+(nt-tt)/2,rt+(it-rt)/2,0),this.cartesianCenter=Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter,new Vector3),this.zoom=getZoomFromExtent(et,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new Vector3,this.zoom=1}calculateViewPropsTiles3D(){const $=this.root;assert$b($);const{center:_e}=$.boundingVolume;if(!_e){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new Vector3,this.zoom=1;return}_e[0]!==0||_e[1]!==0||_e[2]!==0?this.cartographicCenter=Ellipsoid.WGS84.cartesianToCartographic(_e,new Vector3):this.cartographicCenter=new Vector3(0,0,-Ellipsoid.WGS84.radii[0]),this.cartesianCenter=_e,this.zoom=getZoomFromBoundingVolume($.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(TILES_TOTAL),this.stats.get(TILES_LOADING),this.stats.get(TILES_IN_MEMORY),this.stats.get(TILES_IN_VIEW),this.stats.get(TILES_RENDERABLE),this.stats.get(TILES_LOADED),this.stats.get(TILES_UNLOADED),this.stats.get(TILES_LOAD_FAILED),this.stats.get(POINTS_COUNT,"memory"),this.stats.get(TILES_GPU_MEMORY,"memory")}_initializeTileHeaders($,_e){const et=new TileHeader(this,$.root,_e);if(_e&&(_e.children.push(et),et.depth=_e.depth+1),this.type===TILESET_TYPE.TILES3D){const tt=[];for(tt.push(et);tt.length>0;){const rt=tt.pop();this.stats.get(TILES_TOTAL).incrementCount();const nt=rt.header.children||[];for(const it of nt){const ot=new TileHeader(this,it,rt);rt.children.push(ot),ot.depth=rt.depth+1,tt.push(ot)}}}return et}_initializeTraverser(){let $;switch(this.type){case TILESET_TYPE.TILES3D:$=Tileset3DTraverser;break;case TILESET_TYPE.I3S:$=I3STilesetTraverser;break;default:$=TilesetTraverser}return new $({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders($){this._destroySubtree($)}async _loadTile($){let _e;try{this._onStartTileLoading(),_e=await $.loadContent()}catch(et){this._onTileLoadError($,et)}finally{this._onEndTileLoading(),this._onTileLoad($,_e)}}_onTileLoadError($,_e){this.stats.get(TILES_LOAD_FAILED).incrementCount();const et=_e.message||_e.toString(),tt=$.url;console.error("A 3D tile failed to load: ".concat($.url," ").concat(et)),this.options.onTileError($,et,tt)}_onTileLoad($,_e){if(_e){if(this.type===TILESET_TYPE.I3S){var et,tt;const rt=((et=this.tileset)===null||et===void 0||(tt=et.nodePagesTile)===null||tt===void 0?void 0:tt.nodesInNodePages)||0;this.stats.get(TILES_TOTAL).reset(),this.stats.get(TILES_TOTAL).addCount(rt)}$&&$.content&&calculateTransformProps($,$.content),this._addTileToCache($),this.options.onTileLoad($)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(TILES_LOADING).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(TILES_LOADING).decrementCount()}_addTileToCache($){this._cache.add(this,$,_e=>_e._updateCacheStats($))}_updateCacheStats($){this.stats.get(TILES_LOADED).incrementCount(),this.stats.get(TILES_IN_MEMORY).incrementCount(),this.gpuMemoryUsageInBytes+=$.content.byteLength||0,this.stats.get(TILES_GPU_MEMORY).count=this.gpuMemoryUsageInBytes}_unloadTile($){this.gpuMemoryUsageInBytes-=$.content&&$.content.byteLength||0,this.stats.get(TILES_IN_MEMORY).decrementCount(),this.stats.get(TILES_UNLOADED).incrementCount(),this.stats.get(TILES_GPU_MEMORY).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload($),$.unloadContent()}_destroy(){const $=[];for(this.root&&$.push(this.root);$.length>0;){const _e=$.pop();for(const et of _e.children)$.push(et);this._destroyTile(_e)}this.root=null}_destroySubtree($){const _e=$,et=[];for(et.push(_e);et.length>0;){$=et.pop();for(const tt of $.children)et.push(tt);$!==_e&&this._destroyTile($)}_e.children=[]}_destroyTile($){this._cache.unloadTile(this,$),this._unloadTile($),$.destroy()}_initializeTiles3DTileset($){if(this.asset=$.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0")throw new Error("The tileset must be 3D Tiles version 0.0 or 1.0.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=$.properties,this.geometricError=$.geometricError,this._extensionsUsed=$.extensionsUsed,this.extras=$.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}}function getQueryParamString(j){const $=[];for(const _e of Object.keys(j))$.push("".concat(_e,"=").concat(j[_e]));switch($.length){case 0:return"";case 1:return"?".concat($[0]);default:return"?".concat($.join("&"))}}const VERSION$2="3.2.10",TILE3D_TYPE={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"};function getStringFromArrayBuffer(j,$,_e){assert$b(j instanceof ArrayBuffer);const et=new TextDecoder("utf8"),tt=new Uint8Array(j,$,_e);return et.decode(tt)}function getMagicString(j,$=0){const _e=new DataView(j);return"".concat(String.fromCharCode(_e.getUint8($+0))).concat(String.fromCharCode(_e.getUint8($+1))).concat(String.fromCharCode(_e.getUint8($+2))).concat(String.fromCharCode(_e.getUint8($+3)))}const GL_PRIMITIVE_MODE={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},GL_TYPE={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},GL$2={...GL_PRIMITIVE_MODE,...GL_TYPE},GL_TYPE_TO_ARRAY_TYPE={[GL_TYPE.DOUBLE]:Float64Array,[GL_TYPE.FLOAT]:Float32Array,[GL_TYPE.UNSIGNED_SHORT]:Uint16Array,[GL_TYPE.UNSIGNED_INT]:Uint32Array,[GL_TYPE.UNSIGNED_BYTE]:Uint8Array,[GL_TYPE.BYTE]:Int8Array,[GL_TYPE.SHORT]:Int16Array,[GL_TYPE.INT]:Int32Array},NAME_TO_GL_TYPE={DOUBLE:GL_TYPE.DOUBLE,FLOAT:GL_TYPE.FLOAT,UNSIGNED_SHORT:GL_TYPE.UNSIGNED_SHORT,UNSIGNED_INT:GL_TYPE.UNSIGNED_INT,UNSIGNED_BYTE:GL_TYPE.UNSIGNED_BYTE,BYTE:GL_TYPE.BYTE,SHORT:GL_TYPE.SHORT,INT:GL_TYPE.INT},ERR_TYPE_CONVERSION="Failed to convert GL type";class GLType{static fromTypedArray($){$=ArrayBuffer.isView($)?$.constructor:$;for(const _e in GL_TYPE_TO_ARRAY_TYPE)if(GL_TYPE_TO_ARRAY_TYPE[_e]===$)return _e;throw new Error(ERR_TYPE_CONVERSION)}static fromName($){const _e=NAME_TO_GL_TYPE[$];if(!_e)throw new Error(ERR_TYPE_CONVERSION);return _e}static getArrayType($){switch($){case GL_TYPE.UNSIGNED_SHORT_5_6_5:case GL_TYPE.UNSIGNED_SHORT_4_4_4_4:case GL_TYPE.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:const _e=GL_TYPE_TO_ARRAY_TYPE[$];if(!_e)throw new Error(ERR_TYPE_CONVERSION);return _e}}static getByteSize($){return GLType.getArrayType($).BYTES_PER_ELEMENT}static validate($){return!!GLType.getArrayType($)}static createTypedArray($,_e,et=0,tt){tt===void 0&&(tt=(_e.byteLength-et)/GLType.getByteSize($));const rt=GLType.getArrayType($);return new rt(_e,et,tt)}}function assert$1(j,$){if(!j)throw new Error("math.gl assertion failed. ".concat($))}function decodeRGB565(j,$=[0,0,0]){const _e=j>>11&31,et=j>>5&63,tt=j&31;return $[0]=_e<<3,$[1]=et<<2,$[2]=tt<<3,$}new Vector2;new Vector3;new Vector2;new Vector2;function fromSNorm(j,$=255){return clamp$2(j,0,$)/$*2-1}function signNotZero(j){return j<0?-1:1}function octDecodeInRange(j,$,_e,et){if(assert$1(et),j<0||j>_e||$<0||$>_e)throw new Error("x and y must be unsigned normalized integers between 0 and ".concat(_e));if(et.x=fromSNorm(j,_e),et.y=fromSNorm($,_e),et.z=1-(Math.abs(et.x)+Math.abs(et.y)),et.z<0){const tt=et.x;et.x=(1-Math.abs(et.y))*signNotZero(tt),et.y=(1-Math.abs(tt))*signNotZero(et.y)}return et.normalize()}function octDecode(j,$,_e){return octDecodeInRange(j,$,255,_e)}class Tile3DFeatureTable{constructor($,_e){_defineProperty$e(this,"json",void 0),_defineProperty$e(this,"buffer",void 0),_defineProperty$e(this,"featuresLength",0),_defineProperty$e(this,"_cachedTypedArrays",{}),this.json=$,this.buffer=_e}getExtension($){return this.json.extensions&&this.json.extensions[$]}hasProperty($){return!!this.json[$]}getGlobalProperty($,_e=GL$2.UNSIGNED_INT,et=1){const tt=this.json[$];return tt&&Number.isFinite(tt.byteOffset)?this._getTypedArrayFromBinary($,_e,et,1,tt.byteOffset):tt}getPropertyArray($,_e,et){const tt=this.json[$];return tt&&Number.isFinite(tt.byteOffset)?("componentType"in tt&&(_e=GLType.fromName(tt.componentType)),this._getTypedArrayFromBinary($,_e,et,this.featuresLength,tt.byteOffset)):this._getTypedArrayFromArray($,_e,tt)}getProperty($,_e,et,tt,rt){const nt=this.json[$];if(!nt)return nt;const it=this.getPropertyArray($,_e,et);if(et===1)return it[tt];for(let ot=0;otj[$],VEC2:(j,$)=>[j[2*$+0],j[2*$+1]],VEC3:(j,$)=>[j[3*$+0],j[3*$+1],j[3*$+2]],VEC4:(j,$)=>[j[4*$+0],j[4*$+1],j[4*$+2],j[4*$+3]],MAT2:(j,$)=>[j[4*$+0],j[4*$+1],j[4*$+2],j[4*$+3]],MAT3:(j,$)=>[j[9*$+0],j[9*$+1],j[9*$+2],j[9*$+3],j[9*$+4],j[9*$+5],j[9*$+6],j[9*$+7],j[9*$+8]],MAT4:(j,$)=>[j[16*$+0],j[16*$+1],j[16*$+2],j[16*$+3],j[16*$+4],j[16*$+5],j[16*$+6],j[16*$+7],j[16*$+8],j[16*$+9],j[16*$+10],j[16*$+11],j[16*$+12],j[16*$+13],j[16*$+14],j[16*$+15]]},PACKER={SCALAR:(j,$,_e)=>{$[_e]=j},VEC2:(j,$,_e)=>{$[2*_e+0]=j[0],$[2*_e+1]=j[1]},VEC3:(j,$,_e)=>{$[3*_e+0]=j[0],$[3*_e+1]=j[1],$[3*_e+2]=j[2]},VEC4:(j,$,_e)=>{$[4*_e+0]=j[0],$[4*_e+1]=j[1],$[4*_e+2]=j[2],$[4*_e+3]=j[3]},MAT2:(j,$,_e)=>{$[4*_e+0]=j[0],$[4*_e+1]=j[1],$[4*_e+2]=j[2],$[4*_e+3]=j[3]},MAT3:(j,$,_e)=>{$[9*_e+0]=j[0],$[9*_e+1]=j[1],$[9*_e+2]=j[2],$[9*_e+3]=j[3],$[9*_e+4]=j[4],$[9*_e+5]=j[5],$[9*_e+6]=j[6],$[9*_e+7]=j[7],$[9*_e+8]=j[8],$[9*_e+9]=j[9]},MAT4:(j,$,_e)=>{$[16*_e+0]=j[0],$[16*_e+1]=j[1],$[16*_e+2]=j[2],$[16*_e+3]=j[3],$[16*_e+4]=j[4],$[16*_e+5]=j[5],$[16*_e+6]=j[6],$[16*_e+7]=j[7],$[16*_e+8]=j[8],$[16*_e+9]=j[9],$[16*_e+10]=j[10],$[16*_e+11]=j[11],$[16*_e+12]=j[12],$[16*_e+13]=j[13],$[16*_e+14]=j[14],$[16*_e+15]=j[15]}};function createTypedArrayFromAccessor(j,$,_e,et){const{componentType:tt}=j;assert$b(j.componentType);const rt=typeof tt=="string"?GLType.fromName(tt):tt,nt=COMPONENTS_PER_ATTRIBUTE[j.type],it=UNPACKER[j.type],ot=PACKER[j.type];return _e+=j.byteOffset,{values:GLType.createTypedArray(rt,$,_e,nt*et),type:rt,size:nt,unpacker:it,packer:ot}}const defined$1=j=>j!==void 0;function initializeHierarchy(j,$,_e){if(!$)return null;let et=j.getExtension("3DTILES_batch_table_hierarchy");const tt=$.HIERARCHY;return tt&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),$.extensions=$.extensions||{},$.extensions["3DTILES_batch_table_hierarchy"]=tt,et=tt),et?initializeHierarchyValues(et,_e):null}function initializeHierarchyValues(j,$){let _e,et,tt;const rt=j.instancesLength,nt=j.classes;let it=j.classIds,ot=j.parentCounts,At=j.parentIds,ut=rt;defined$1(it.byteOffset)&&(it.componentType=defaultValue(it.componentType,GL.UNSIGNED_SHORT),it.type=AttributeType.SCALAR,tt=getBinaryAccessor(it),it=tt.createArrayBufferView($.buffer,$.byteOffset+it.byteOffset,rt));let ft;if(defined$1(ot))for(defined$1(ot.byteOffset)&&(ot.componentType=defaultValue(ot.componentType,GL.UNSIGNED_SHORT),ot.type=AttributeType.SCALAR,tt=getBinaryAccessor(ot),ot=tt.createArrayBufferView($.buffer,$.byteOffset+ot.byteOffset,rt)),ft=new Uint16Array(rt),ut=0,_e=0;_e0?traverseHierarchyMultipleParents(j,$,_e):traverseHierarchySingleParent(j,$,_e)}function traverseHierarchyMultipleParents(j,$,_e){const et=j.classIds,tt=j.parentCounts,rt=j.parentIds,nt=j.parentIndexes,it=et.length,ot=scratchVisited;ot.length=Math.max(ot.length,it);const At=++marker,ut=scratchStack;for(ut.length=0,ut.push($);ut.length>0;){if($=ut.pop(),ot[$]===At)continue;ot[$]=At;const ft=_e(j,$);if(defined$1(ft))return ft;const dt=tt[$],Et=nt[$];for(let Bt=0;Btj,IGNORED_PROPERTY_FIELDS={HIERARCHY:!0,extensions:!0,extras:!0};class Tile3DBatchTableParser{constructor($,_e,et,tt={}){var rt;_defineProperty$e(this,"json",void 0),_defineProperty$e(this,"binary",void 0),_defineProperty$e(this,"featureCount",void 0),_defineProperty$e(this,"_extensions",void 0),_defineProperty$e(this,"_properties",void 0),_defineProperty$e(this,"_binaryProperties",void 0),_defineProperty$e(this,"_hierarchy",void 0),assert$b(et>=0),this.json=$||{},this.binary=_e,this.featureCount=et,this._extensions=((rt=this.json)===null||rt===void 0?void 0:rt.extensions)||{},this._properties={};for(const nt in this.json)IGNORED_PROPERTY_FIELDS[nt]||(this._properties[nt]=this.json[nt]);this._binaryProperties=this._initializeBinaryProperties(),tt["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=initializeHierarchy(this,this.json,this.binary))}getExtension($){return this.json&&this.json.extensions&&this.json.extensions[$]}memorySizeInBytes(){return 0}isClass($,_e){if(this._checkBatchId($),assert$b(typeof _e=="string",_e),this._hierarchy){const et=traverseHierarchy(this._hierarchy,$,(tt,rt)=>{const nt=tt.classIds[rt];return tt.classes[nt].name===_e});return defined(et)}return!1}isExactClass($,_e){return assert$b(typeof _e=="string",_e),this.getExactClassName($)===_e}getExactClassName($){if(this._checkBatchId($),this._hierarchy){const _e=this._hierarchy.classIds[$];return this._hierarchy.classes[_e].name}}hasProperty($,_e){return this._checkBatchId($),assert$b(typeof _e=="string",_e),defined(this._properties[_e])||this._hasPropertyInHierarchy($,_e)}getPropertyNames($,_e){this._checkBatchId($),_e=defined(_e)?_e:[],_e.length=0;const et=Object.keys(this._properties);return _e.push(...et),this._hierarchy&&this._getPropertyNamesInHierarchy($,_e),_e}getProperty($,_e){if(this._checkBatchId($),assert$b(typeof _e=="string",_e),this._binaryProperties){const tt=this._binaryProperties[_e];if(defined(tt))return this._getBinaryProperty(tt,$)}const et=this._properties[_e];if(defined(et))return clone$5(et[$]);if(this._hierarchy){const tt=this._getHierarchyProperty($,_e);if(defined(tt))return tt}}setProperty($,_e,et){const tt=this.featureCount;if(this._checkBatchId($),assert$b(typeof _e=="string",_e),this._binaryProperties){const nt=this._binaryProperties[_e];if(nt){this._setBinaryProperty(nt,$,et);return}}if(this._hierarchy&&this._setHierarchyProperty(this,$,_e,et))return;let rt=this._properties[_e];defined(rt)||(this._properties[_e]=new Array(tt),rt=this._properties[_e]),rt[$]=clone$5(et)}_checkBatchId($){if(!($>=0&&${const nt=tt.classIds[rt],it=tt.classes[nt].instances;return defined(it[_e])});return defined(et)}_getPropertyNamesInHierarchy($,_e){traverseHierarchy(this._hierarchy,$,(et,tt)=>{const rt=et.classIds[tt],nt=et.classes[rt].instances;for(const it in nt)nt.hasOwnProperty(it)&&_e.indexOf(it)===-1&&_e.push(it)})}_getHierarchyProperty($,_e){return traverseHierarchy(this._hierarchy,$,(et,tt)=>{const rt=et.classIds[tt],nt=et.classes[rt],it=et.classIndexes[tt],ot=nt.instances[_e];return defined(ot)?defined(ot.typedArray)?this._getBinaryProperty(ot,it):clone$5(ot[it]):null})}_setHierarchyProperty($,_e,et,tt){const rt=traverseHierarchy(this._hierarchy,_e,(nt,it)=>{const ot=nt.classIds[it],At=nt.classes[ot],ut=nt.classIndexes[it],ft=At.instances[et];return defined(ft)?(assert$b(it===_e,'Inherited property "'.concat(et,'" is read-only.')),defined(ft.typedArray)?this._setBinaryProperty(ft,ut,tt):ft[ut]=clone$5(tt),!0):!1});return defined(rt)}}const SIZEOF_UINT32$1=4;function parse3DTileHeaderSync(j,$,_e=0){const et=new DataView($);if(j.magic=et.getUint32(_e,!0),_e+=SIZEOF_UINT32$1,j.version=et.getUint32(_e,!0),_e+=SIZEOF_UINT32$1,j.byteLength=et.getUint32(_e,!0),_e+=SIZEOF_UINT32$1,j.version!==1)throw new Error("3D Tile Version ".concat(j.version," not supported"));return _e}const SIZEOF_UINT32=4,DEPRECATION_WARNING="b3dm tile in legacy format.";function parse3DTileTablesHeaderSync(j,$,_e){const et=new DataView($);let tt;j.header=j.header||{};let rt=et.getUint32(_e,!0);_e+=SIZEOF_UINT32;let nt=et.getUint32(_e,!0);_e+=SIZEOF_UINT32;let it=et.getUint32(_e,!0);_e+=SIZEOF_UINT32;let ot=et.getUint32(_e,!0);return _e+=SIZEOF_UINT32,it>=570425344?(_e-=SIZEOF_UINT32*2,tt=rt,it=nt,ot=0,rt=0,nt=0,console.warn(DEPRECATION_WARNING)):ot>=570425344&&(_e-=SIZEOF_UINT32,tt=it,it=rt,ot=nt,rt=0,nt=0,console.warn(DEPRECATION_WARNING)),j.header.featureTableJsonByteLength=rt,j.header.featureTableBinaryByteLength=nt,j.header.batchTableJsonByteLength=it,j.header.batchTableBinaryByteLength=ot,j.header.batchLength=tt,_e}function parse3DTileTablesSync(j,$,_e,et){return _e=parse3DTileFeatureTable(j,$,_e),_e=parse3DTileBatchTable(j,$,_e),_e}function parse3DTileFeatureTable(j,$,_e,et){const{featureTableJsonByteLength:tt,featureTableBinaryByteLength:rt,batchLength:nt}=j.header;if(j.featureTableJson={BATCH_LENGTH:nt||0},tt>0){const it=getStringFromArrayBuffer($,_e,tt);j.featureTableJson=JSON.parse(it)}return _e+=tt,j.featureTableBinary=new Uint8Array($,_e,rt),_e+=rt,_e}function parse3DTileBatchTable(j,$,_e,et){const{batchTableJsonByteLength:tt,batchTableBinaryByteLength:rt}=j.header;if(tt>0){const nt=getStringFromArrayBuffer($,_e,tt);j.batchTableJson=JSON.parse(nt),_e+=tt,rt>0&&(j.batchTableBinary=new Uint8Array($,_e,rt),j.batchTableBinary=new Uint8Array(j.batchTableBinary),_e+=rt)}return _e}function normalize3DTileColorAttribute(j,$,_e){if(!$&&(!j||!j.batchIds||!_e))return null;const{batchIds:et,isRGB565:tt,pointCount:rt}=j;if(et&&_e){const nt=new Uint8ClampedArray(rt*3);for(let it=0;itft*255);nt[it*3]=ut[0],nt[it*3+1]=ut[1],nt[it*3+2]=ut[2]}return{type:GL$2.UNSIGNED_BYTE,value:nt,size:3,normalized:!0}}if(tt){const nt=new Uint8ClampedArray(rt*3);for(let it=0;it12;){const it={};j.tiles.push(it),_e=await rt($,_e,et,tt,it)}return _e}async function parseGltf3DTile(j,$,_e,et){j.rotateYtoZ=!0,j.gltfUpAxis=_e["3d-tiles"]&&_e["3d-tiles"].assetGltfUpAxis?_e["3d-tiles"].assetGltfUpAxis:"Y";const{parse:tt}=et;j.gltf=await tt($,GLTFLoader,_e,et)}async function parse3DTile(j,$=0,_e,et,tt={}){switch(tt.byteOffset=$,tt.type=getMagicString(j,$),tt.type){case TILE3D_TYPE.COMPOSITE:return await parseComposite3DTile(tt,j,$,_e,et,parse3DTile);case TILE3D_TYPE.BATCHED_3D_MODEL:return await parseBatchedModel3DTile(tt,j,$,_e,et);case TILE3D_TYPE.GLTF:return await parseGltf3DTile(tt,j,_e,et);case TILE3D_TYPE.INSTANCED_3D_MODEL:return await parseInstancedModel3DTile(tt,j,$,_e,et);case TILE3D_TYPE.POINT_CLOUD:return await parsePointCloud3DTile(tt,j,$,_e,et);default:throw new Error("3DTileLoader: unknown type ".concat(tt.type))}}const SUBTREE_FILE_MAGIC=1952609651,SUBTREE_FILE_VERSION=1;async function parse3DTilesSubtree(j){if(new Uint32Array(j.slice(0,4))[0]!==SUBTREE_FILE_MAGIC)throw new Error("Wrong subtree file magic number");if(new Uint32Array(j.slice(4,8))[0]!==SUBTREE_FILE_VERSION)throw new Error("Wrong subtree file verson, must be 1");const et=parseUint64Value(j.slice(8,16)),tt=new Uint8Array(j,24,et),nt=new TextDecoder("utf8").decode(tt),it=JSON.parse(nt),ot=parseUint64Value(j.slice(16,24));let At=new ArrayBuffer(0);return ot&&(At=j.slice(24+et)),"bufferView"in it.tileAvailability&&(it.tileAvailability.explicitBitstream=await getExplicitBitstream(it,"tileAvailability",At)),"bufferView"in it.contentAvailability&&(it.contentAvailability.explicitBitstream=await getExplicitBitstream(it,"contentAvailability",At)),"bufferView"in it.childSubtreeAvailability&&(it.childSubtreeAvailability.explicitBitstream=await getExplicitBitstream(it,"childSubtreeAvailability",At)),it}async function getExplicitBitstream(j,$,_e){const et=j[$].bufferView,tt=j.bufferViews[et],rt=j.buffers[tt.buffer];if(rt.uri){const it=await(await fetchFile(rt.uri)).arrayBuffer();return new Uint8Array(it,tt.byteOffset,tt.byteLength)}return new Uint8Array(_e,tt.byteOffset,tt.byteLength)}function parseUint64Value(j){const $=new DataView(j),_e=$.getUint32(0,!0),et=$.getUint32(4,!0);return _e+2**32*et}const Tile3DSubtreeLoader={id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:VERSION$2,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:parse3DTilesSubtree,options:{}},QUADTREE_DEVISION_COUNT=4,OCTREE_DEVISION_COUNT=8,SUBDIVISION_COUNT_MAP={QUADTREE:QUADTREE_DEVISION_COUNT,OCTREE:OCTREE_DEVISION_COUNT};async function parseImplicitTiles(j){const{options:$,parentData:_e={mortonIndex:0,x:0,y:0,z:0},childIndex:et=0,globalData:tt={level:0,mortonIndex:0,x:0,y:0,z:0}}=j;let{subtree:rt,level:nt=0}=j;const{subdivisionScheme:it,subtreeLevels:ot,maximumLevel:At,contentUrlTemplate:ut,subtreesUriTemplate:ft,basePath:dt}=$,Et={children:[],lodMetricValue:0,contentUrl:""},Bt=SUBDIVISION_COUNT_MAP[it],St=et&1,Dt=et>>1&1,$t=et>>2&1,Rt=(Bt**nt-1)/(Bt-1);let wt=concatBits(_e.mortonIndex,et),xt=Rt+wt,Nt=concatBits(_e.x,St),Ot=concatBits(_e.y,Dt),kt=concatBits(_e.z,$t),Jt=!1;nt+1>ot&&(Jt=getAvailabilityResult(rt.childSubtreeAvailability,wt));const jt=concatBits(tt.x,Nt),Ht=concatBits(tt.y,Ot),Gt=concatBits(tt.z,kt),Kt=nt+tt.level;if(Jt){const hr="".concat(dt,"/").concat(ft),sr=replaceContentUrlTemplate(hr,Kt,jt,Ht,Gt);rt=await load(sr,Tile3DSubtreeLoader),tt.mortonIndex=wt,tt.x=Nt,tt.y=Ot,tt.z=kt,tt.level=nt,wt=0,xt=0,Nt=0,Ot=0,kt=0,nt=0}if(!getAvailabilityResult(rt.tileAvailability,xt)||nt>At)return Et;getAvailabilityResult(rt.contentAvailability,xt)&&(Et.contentUrl=replaceContentUrlTemplate(ut,Kt,jt,Ht,Gt));const ur=nt+1,Ar={mortonIndex:wt,x:Nt,y:Ot,z:kt};for(let hr=0;hrrt[nt])}function generateMapUrl(j){const $={};for(const _e in j)$["{".concat(_e,"}")]=j[_e];return $}function getBooleanValueFromBitstream(j,$){const _e=Math.floor(j/8),et=j%8;return($[_e]>>et&1)===1}function getTileType(j){if(!j.contentUrl)return TILE_TYPE.EMPTY;const _e=j.contentUrl.split(".").pop();switch(_e){case"pnts":return TILE_TYPE.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return TILE_TYPE.SCENEGRAPH;default:return _e}}function getRefine(j){switch(j){case"REPLACE":case"replace":return TILE_REFINEMENT.REPLACE;case"ADD":case"add":return TILE_REFINEMENT.ADD;default:return j}}function resolveUri(j,$){if(/^[a-z][0-9a-z+.-]*:/i.test($)){const et=new URL(j,"".concat($,"/"));return decodeURI(et.toString())}else if(j.startsWith("/"))return j;return"".concat($,"/").concat(j)}function normalizeTileData(j,$){if(!j)return null;if(j.content){const _e=j.content.uri||j.content.url;j.contentUrl=resolveUri(_e,$.basePath)}return j.id=j.contentUrl,j.lodMetricType=LOD_METRIC_TYPE.GEOMETRIC_ERROR,j.lodMetricValue=j.geometricError,j.transformMatrix=j.transform,j.type=getTileType(j),j.refine=getRefine(j.refine),j}function normalizeTileHeaders(j){const $=j.basePath,_e=normalizeTileData(j.root,j),et=[];for(et.push(_e);et.length>0;){const rt=(et.pop()||{}).children||[];for(const nt of rt)normalizeTileData(nt,{basePath:$}),et.push(nt)}return _e}async function normalizeImplicitTileHeaders(j){if(!j.root)return null;const $=j.basePath,_e=j.root.extensions["3DTILES_implicit_tiling"],{subdivisionScheme:et,maximumLevel:tt,subtreeLevels:rt,subtrees:{uri:nt}}=_e,it=replaceContentUrlTemplate(nt,0,0,0,0),ot=resolveUri(it,$),At=await load(ot,Tile3DSubtreeLoader),ut=resolveUri(j.root.content.uri,$),ft=j.root.refine,dt=j.root.geometricError,Et=j.root.boundingVolume,Bt={contentUrlTemplate:ut,subtreesUriTemplate:nt,subdivisionScheme:et,subtreeLevels:rt,maximumLevel:tt,refine:ft,basePath:$,lodMetricType:LOD_METRIC_TYPE.GEOMETRIC_ERROR,rootLodMetricValue:dt,rootBoundingVolume:Et,getTileType,getRefine};return await normalizeImplicitTileData(j.root,At,Bt)}async function normalizeImplicitTileData(j,$,_e){if(!j)return null;j.lodMetricType=LOD_METRIC_TYPE.GEOMETRIC_ERROR,j.lodMetricValue=j.geometricError,j.transformMatrix=j.transform;const{children:et,contentUrl:tt}=await parseImplicitTiles({subtree:$,options:_e});return tt&&(j.contentUrl=tt,j.content={uri:tt.replace("".concat(_e.basePath,"/"),"")}),j.refine=getRefine(j.refine),j.type=getTileType(j),j.children=et,j.id=j.contentUrl,j}const IMPLICIT_TILING_EXTENSION_NAME="3DTILES_implicit_tiling",Tiles3DLoader={id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:VERSION$2,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:parse$b,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};function getBaseUri(j){return dirname(j.url)}async function parseTile(j,$,_e){const et={content:{featureIds:null}};return await parse3DTile(j,0,$,_e,et.content),et.content}async function parseTileset(j,$,_e){var et;const tt=JSON.parse(new TextDecoder().decode(j));return tt.loader=$.loader||Tiles3DLoader,tt.url=_e.url,tt.basePath=getBaseUri(tt),tt.root=hasImplicitTilingExtension(tt)?await normalizeImplicitTileHeaders(tt):normalizeTileHeaders(tt),tt.type=TILESET_TYPE.TILES3D,tt.lodMetricType=LOD_METRIC_TYPE.GEOMETRIC_ERROR,tt.lodMetricValue=((et=tt.root)===null||et===void 0?void 0:et.lodMetricValue)||0,tt}async function parse$b(j,$,_e){const et=$["3d-tiles"]||{};let tt;return et.isTileset==="auto"?tt=_e.url&&_e.url.indexOf(".json")!==-1:tt=et.isTileset,tt?j=await parseTileset(j,$,_e):j=await parseTile(j,$,_e),j}function hasImplicitTilingExtension(j){var $,_e;return(j==null||($=j.extensionsRequired)===null||$===void 0?void 0:$.includes(IMPLICIT_TILING_EXTENSION_NAME))&&(j==null||(_e=j.extensionsUsed)===null||_e===void 0?void 0:_e.includes(IMPLICIT_TILING_EXTENSION_NAME))}const SINGLE_DATA=[0],defaultProps$j={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:null,loader:Tiles3DLoader,onTilesetLoad:{type:"function",value:j=>{},compare:!1},onTileLoad:{type:"function",value:j=>{},compare:!1},onTileUnload:{type:"function",value:j=>{},compare:!1},onTileError:{type:"function",value:(j,$,_e)=>{},compare:!1},_getMeshColor:{type:"function",value:j=>[255,255,255],compare:!1}};class Tile3DLayer extends CompositeLayer{constructor(...$){super(...$),_defineProperty$e(this,"state",void 0)}initializeState(){"onTileLoadFail"in this.props&&log$3.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){const{tileset3d:$}=this.state;return $!==null&&$.isLoaded()}shouldUpdateState({changeFlags:$}){return $.somethingChanged}updateState({props:$,oldProps:_e,changeFlags:et}){if($.data&&$.data!==_e.data&&this._loadTileset($.data),et.viewportChanged){const{activeViewports:tt}=this.state;Object.keys(tt).length&&(this._updateTileset(tt),this.state.lastUpdatedViewports=tt,this.state.activeViewports={})}if(et.propsChanged){const{layerMap:tt}=this.state;for(const rt in tt)tt[rt].needsUpdate=!0}}activateViewport($){const{activeViewports:_e,lastUpdatedViewports:et}=this.state;this.internalState.viewport=$,_e[$.id]=$;const tt=et==null?void 0:et[$.id];(!tt||!$.equals(tt))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:$,sourceLayer:_e}){const et=_e&&_e.props.tile;return $.picked&&($.object=et),$.sourceTile=et,$}filterSubLayer({layer:$,viewport:_e}){const{tile:et}=$.props,{id:tt}=_e;return et.selected&&et.viewportIds.includes(tt)}_updateAutoHighlight($){const _e=$.sourceTile,et=this.state.layerMap[_e==null?void 0:_e.id];et&&et.layer&&et.layer.updateAutoHighlight($)}async _loadTileset($){const{loadOptions:_e={}}=this.props;let et=this.props.loader||this.props.loaders;Array.isArray(et)&&(et=et[0]);const tt={loadOptions:{..._e}};if(et.preload){const it=await et.preload($,_e);it.headers&&(tt.loadOptions.fetch={...tt.loadOptions.fetch,headers:it.headers}),Object.assign(tt,it)}const rt=await load($,et,tt.loadOptions),nt=new Tileset3D(rt,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...tt});this.setState({tileset3d:nt,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(nt)}_onTileLoad($){const{lastUpdatedViewports:_e}=this.state;this.props.onTileLoad($),this._updateTileset(_e),this.setNeedsUpdate()}_onTileUnload($){delete this.state.layerMap[$.id],this.props.onTileUnload($)}_updateTileset($){if(!$)return;const{tileset3d:_e}=this.state,{timeline:et}=this.context,tt=Object.keys($).length;!et||!tt||!_e||_e.selectTiles(Object.values($)).then(rt=>{this.state.frameNumber!==rt&&this.setState({frameNumber:rt})})}_getSubLayer($,_e){if(!$.content)return null;switch($.type){case TILE_TYPE.POINTCLOUD:return this._makePointCloudLayer($,_e);case TILE_TYPE.SCENEGRAPH:return this._make3DModelLayer($);case TILE_TYPE.MESH:return this._makeSimpleMeshLayer($,_e);default:throw new Error("Tile3DLayer: Failed to render layer of type ".concat($.content.type))}}_makePointCloudLayer($,_e){const{attributes:et,pointCount:tt,constantRGBA:rt,cartographicOrigin:nt,modelMatrix:it}=$.content,{positions:ot,normals:At,colors:ut}=et;if(!ot)return null;const ft=_e&&_e.props.data||{header:{vertexCount:tt},attributes:{POSITION:ot,NORMAL:At,COLOR_0:ut}},{pointSize:dt,getPointColor:Et}=this.props,Bt=this.getSubLayerClass("pointcloud",PointCloudLayer);return new Bt({pointSize:dt},this.getSubLayerProps({id:"pointcloud"}),{id:"".concat(this.id,"-pointcloud-").concat($.id),tile:$,data:ft,coordinateSystem:COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:nt,modelMatrix:it,getColor:rt||Et,_offset:0})}_make3DModelLayer($){const{gltf:_e,instances:et,cartographicOrigin:tt,modelMatrix:rt}=$.content,nt=this.getSubLayerClass("scenegraph",ScenegraphLayer);return new nt({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:"".concat(this.id,"-scenegraph-").concat($.id),tile:$,data:et||SINGLE_DATA,scenegraph:_e,coordinateSystem:COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:tt,modelMatrix:rt,getTransformMatrix:it=>it.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer($,_e){const et=$.content,{attributes:tt,indices:rt,modelMatrix:nt,cartographicOrigin:it,coordinateSystem:ot=COORDINATE_SYSTEM.METER_OFFSETS,material:At,featureIds:ut}=et,{_getMeshColor:ft}=this.props,dt=_e&&_e.props.mesh||new Geometry({drawMode:4,attributes:getMeshGeometry(tt),indices:rt}),Et=this.getSubLayerClass("mesh",MeshLayer);return new Et(this.getSubLayerProps({id:"mesh"}),{id:"".concat(this.id,"-mesh-").concat($.id),tile:$,mesh:dt,data:SINGLE_DATA,getColor:ft($),pbrMaterial:At,modelMatrix:nt,coordinateOrigin:it,coordinateSystem:ot,featureIds:ut,_offset:0})}renderLayers(){const{tileset3d:$,layerMap:_e}=this.state;return $?$.tiles.map(et=>{const tt=_e[et.id]=_e[et.id]||{tile:et};let{layer:rt}=tt;return et.selected&&(rt?tt.needsUpdate&&(rt=this._getSubLayer(et,rt),tt.needsUpdate=!1):rt=this._getSubLayer(et)),tt.layer=rt,rt}).filter(Boolean):null}}_defineProperty$e(Tile3DLayer,"defaultProps",defaultProps$j);_defineProperty$e(Tile3DLayer,"layerName","Tile3DLayer");function getMeshGeometry(j){const $={};return $.positions={...j.positions,value:new Float32Array(j.positions.value)},j.normals&&($.normals=j.normals),j.texCoords&&($.texCoords=j.texCoords),j.colors&&($.colors=j.colors),j.uvRegions&&($.uvRegions=j.uvRegions),$}function addSkirt(j,$,_e,et){const tt=et?getOutsideEdgesFromIndices(et,j.POSITION.value):getOutsideEdgesFromTriangles($),rt=new j.POSITION.value.constructor(tt.length*6),nt=new j.TEXCOORD_0.value.constructor(tt.length*4),it=new $.constructor(tt.length*6);for(let At=0;AtMath.min(...nt)-Math.min(...it)||Math.max(...nt)-Math.max(...it));const _e=[];let et=0;for(;et<$.length;){var tt,rt;$[et][0]===((tt=$[et+1])===null||tt===void 0?void 0:tt[1])&&$[et][1]===((rt=$[et+1])===null||rt===void 0?void 0:rt[0])?et+=2:(_e.push($[et]),et++)}return _e}function getOutsideEdgesFromIndices(j,$){j.westIndices.sort((et,tt)=>$[3*et+1]-$[3*tt+1]),j.eastIndices.sort((et,tt)=>$[3*tt+1]-$[3*et+1]),j.southIndices.sort((et,tt)=>$[3*tt]-$[3*et]),j.northIndices.sort((et,tt)=>$[3*et]-$[3*tt]);const _e=[];for(const et in j){const tt=j[et];for(let rt=0;rt>=1)>1;){const dt=rt+it>>1,Et=nt+ot>>1;tt&1?(it=rt,ot=nt,rt=At,nt=ut):(rt=it,nt=ot,it=At,ot=ut),At=dt,ut=Et}const ft=et*4;this.coords[ft+0]=rt,this.coords[ft+1]=nt,this.coords[ft+2]=it,this.coords[ft+3]=ot}}createTile($){return new Tile($,this)}}class Tile{constructor($,_e){const et=_e.gridSize;if($.length!==et*et)throw new Error(`Expected terrain data of length ${et*et} (${et} x ${et}), got ${$.length}.`);this.terrain=$,this.martini=_e,this.errors=new Float32Array($.length),this.update()}update(){const{numTriangles:$,numParentTriangles:_e,coords:et,gridSize:tt}=this.martini,{terrain:rt,errors:nt}=this;for(let it=$-1;it>=0;it--){const ot=it*4,At=et[ot+0],ut=et[ot+1],ft=et[ot+2],dt=et[ot+3],Et=At+ft>>1,Bt=ut+dt>>1,St=Et+Bt-ut,Dt=Bt+At-Et,$t=(rt[ut*tt+At]+rt[dt*tt+ft])/2,Rt=Bt*tt+Et,wt=Math.abs($t-rt[Rt]);if(nt[Rt]=Math.max(nt[Rt],wt),it<_e){const xt=(ut+Dt>>1)*tt+(At+St>>1),Nt=(dt+Dt>>1)*tt+(ft+St>>1);nt[Rt]=Math.max(nt[Rt],nt[xt],nt[Nt])}}}getMesh($=0){const{gridSize:_e,indices:et}=this.martini,{errors:tt}=this;let rt=0,nt=0;const it=_e-1;et.fill(0);function ot(Et,Bt,St,Dt,$t,Rt){const wt=Et+St>>1,xt=Bt+Dt>>1;Math.abs(Et-$t)+Math.abs(Bt-Rt)>1&&tt[xt*_e+wt]>$?(ot($t,Rt,Et,Bt,wt,xt),ot(St,Dt,$t,Rt,wt,xt)):(et[Bt*_e+Et]=et[Bt*_e+Et]||++rt,et[Dt*_e+St]=et[Dt*_e+St]||++rt,et[Rt*_e+$t]=et[Rt*_e+$t]||++rt,nt++)}ot(0,0,it,it,it,0),ot(it,it,0,0,0,it);const At=new Uint16Array(rt*2),ut=new Uint32Array(nt*3);let ft=0;function dt(Et,Bt,St,Dt,$t,Rt){const wt=Et+St>>1,xt=Bt+Dt>>1;if(Math.abs(Et-$t)+Math.abs(Bt-Rt)>1&&tt[xt*_e+wt]>$)dt($t,Rt,Et,Bt,wt,xt),dt(St,Dt,$t,Rt,wt,xt);else{const Nt=et[Bt*_e+Et]-1,Ot=et[Dt*_e+St]-1,kt=et[Rt*_e+$t]-1;At[2*Nt]=Et,At[2*Nt+1]=Bt,At[2*Ot]=St,At[2*Ot+1]=Dt,At[2*kt]=$t,At[2*kt+1]=Rt,ut[ft++]=Nt,ut[ft++]=Ot,ut[ft++]=kt}}return dt(0,0,it,it,it,0),dt(it,it,0,0,0,it),{vertices:At,triangles:ut}}}class Delatin{constructor($,_e,et=_e){this.data=$,this.width=_e,this.height=et,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;const tt=_e-1,rt=et-1,nt=this._addPoint(0,0),it=this._addPoint(tt,0),ot=this._addPoint(0,rt),At=this._addPoint(tt,rt),ut=this._addTriangle(At,nt,ot,-1,-1,-1);this._addTriangle(nt,At,it,ut,-1,-1),this._flush()}run($=1){for(;this.getMaxError()>$;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt($,_e){return this.data[this.width*_e+$]}_flush(){const $=this.coords;for(let _e=0;_e=0&&Ar>=0&&hr>=0){sr=!0;const Yt=Ot*ur+kt*Ar+Jt*hr,pr=Math.abs(Yt-this.heightAt(ar,Wt));Kt+=pr*pr,pr>jt&&(jt=pr,Ht=ar,Gt=Wt)}else if(sr)break;ur+=$t,Ar+=wt,hr+=St}dt+=Rt,Et+=xt,Bt+=Dt}(Ht===$&&Gt===_e||Ht===et&&Gt===tt||Ht===rt&&Gt===nt)&&(jt=0),this._candidates[2*it]=Ht,this._candidates[2*it+1]=Gt,this._rms[it]=Kt,this._queuePush(it,jt,Kt)}_step(){const $=this._queuePop(),_e=$*3+0,et=$*3+1,tt=$*3+2,rt=this.triangles[_e],nt=this.triangles[et],it=this.triangles[tt],ot=this.coords[2*rt],At=this.coords[2*rt+1],ut=this.coords[2*nt],ft=this.coords[2*nt+1],dt=this.coords[2*it],Et=this.coords[2*it+1],Bt=this._candidates[2*$],St=this._candidates[2*$+1],Dt=this._addPoint(Bt,St);if(orient(ot,At,ut,ft,Bt,St)===0)this._handleCollinear(Dt,_e);else if(orient(ut,ft,dt,Et,Bt,St)===0)this._handleCollinear(Dt,et);else if(orient(dt,Et,ot,At,Bt,St)===0)this._handleCollinear(Dt,tt);else{const $t=this._halfedges[_e],Rt=this._halfedges[et],wt=this._halfedges[tt],xt=this._addTriangle(rt,nt,Dt,$t,-1,-1,_e),Nt=this._addTriangle(nt,it,Dt,Rt,-1,xt+1),Ot=this._addTriangle(it,rt,Dt,wt,xt+2,Nt+1);this._legalize(xt),this._legalize(Nt),this._legalize(Ot)}}_addPoint($,_e){const et=this.coords.length>>1;return this.coords.push($,_e),et}_addTriangle($,_e,et,tt,rt,nt,it=this.triangles.length){const ot=it/3;return this.triangles[it+0]=$,this.triangles[it+1]=_e,this.triangles[it+2]=et,this._halfedges[it+0]=tt,this._halfedges[it+1]=rt,this._halfedges[it+2]=nt,tt>=0&&(this._halfedges[tt]=it+0),rt>=0&&(this._halfedges[rt]=it+1),nt>=0&&(this._halfedges[nt]=it+2),this._candidates[2*ot+0]=0,this._candidates[2*ot+1]=0,this._queueIndices[ot]=-1,this._rms[ot]=0,this._pending[this._pendingLen++]=ot,it}_legalize($){const _e=this._halfedges[$];if(_e<0)return;const et=$-$%3,tt=_e-_e%3,rt=et+($+1)%3,nt=et+($+2)%3,it=tt+(_e+2)%3,ot=tt+(_e+1)%3,At=this.triangles[nt],ut=this.triangles[$],ft=this.triangles[rt],dt=this.triangles[it],Et=this.coords;if(!inCircle(Et[2*At],Et[2*At+1],Et[2*ut],Et[2*ut+1],Et[2*ft],Et[2*ft+1],Et[2*dt],Et[2*dt+1]))return;const Bt=this._halfedges[rt],St=this._halfedges[nt],Dt=this._halfedges[it],$t=this._halfedges[ot];this._queueRemove(et/3),this._queueRemove(tt/3);const Rt=this._addTriangle(At,dt,ft,-1,Dt,Bt,et),wt=this._addTriangle(dt,At,ut,Rt,St,$t,tt);this._legalize(Rt+1),this._legalize(wt+2)}_handleCollinear($,_e){const et=_e-_e%3,tt=et+(_e+1)%3,rt=et+(_e+2)%3,nt=this.triangles[rt],it=this.triangles[_e],ot=this.triangles[tt],At=this._halfedges[tt],ut=this._halfedges[rt],ft=this._halfedges[_e];if(ft<0){const Ot=this._addTriangle($,nt,it,-1,ut,-1,et),kt=this._addTriangle(nt,$,ot,Ot,-1,At);this._legalize(Ot+1),this._legalize(kt+2);return}const dt=ft-ft%3,Et=dt+(ft+2)%3,Bt=dt+(ft+1)%3,St=this.triangles[Et],Dt=this._halfedges[Et],$t=this._halfedges[Bt];this._queueRemove(dt/3);const Rt=this._addTriangle(nt,it,$,ut,-1,-1,et),wt=this._addTriangle(it,St,$,$t,-1,Rt+1,dt),xt=this._addTriangle(St,ot,$,Dt,-1,wt+1),Nt=this._addTriangle(ot,nt,$,At,Rt+2,xt+1);this._legalize(Rt),this._legalize(wt),this._legalize(xt),this._legalize(Nt)}_queuePush($,_e,et){const tt=this._queue.length;this._queueIndices[$]=tt,this._queue.push($),this._errors.push(_e),this._rmsSum+=et,this._queueUp(tt)}_queuePop(){const $=this._queue.length-1;return this._queueSwap(0,$),this._queueDown(0,$),this._queuePopBack()}_queuePopBack(){const $=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[$],this._queueIndices[$]=-1,$}_queueRemove($){const _e=this._queueIndices[$];if(_e<0){const tt=this._pending.indexOf($);if(tt!==-1)this._pending[tt]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}const et=this._queue.length-1;et!==_e&&(this._queueSwap(_e,et),this._queueDown(_e,et)||this._queueUp(_e)),this._queuePopBack()}_queueLess($,_e){return this._errors[$]>this._errors[_e]}_queueSwap($,_e){const et=this._queue[$],tt=this._queue[_e];this._queue[$]=tt,this._queue[_e]=et,this._queueIndices[et]=_e,this._queueIndices[tt]=$;const rt=this._errors[$];this._errors[$]=this._errors[_e],this._errors[_e]=rt}_queueUp($){let _e=$;for(;;){const et=_e-1>>1;if(et===_e||!this._queueLess(_e,et))break;this._queueSwap(et,_e),_e=et}}_queueDown($,_e){let et=$;for(;;){const tt=2*et+1;if(tt>=_e||tt<0)break;const rt=tt+1;let nt=tt;if(rt<_e&&this._queueLess(rt,tt)&&(nt=rt),!this._queueLess(nt,et))break;this._queueSwap(et,nt),et=nt}return et>$}}function orient(j,$,_e,et,tt,rt){return(_e-tt)*($-rt)-(et-rt)*(j-tt)}function inCircle(j,$,_e,et,tt,rt,nt,it){const ot=j-nt,At=$-it,ut=_e-nt,ft=et-it,dt=tt-nt,Et=rt-it,Bt=ot*ot+At*At,St=ut*ut+ft*ft,Dt=dt*dt+Et*Et;return ot*(ft*Dt-St*Et)-At*(ut*Dt-St*dt)+Bt*(ut*Et-ft*dt)<0}function getTerrain(j,$,_e,et,tt){const{rScaler:rt,bScaler:nt,gScaler:it,offset:ot}=et,At=new Float32Array(($+1)*(_e+1));for(let ut=0,ft=0;ft<_e;ft++)for(let dt=0;dt<$;dt++,ut++){const Et=ut*4,Bt=j[Et+0],St=j[Et+1],Dt=j[Et+2];At[ut+ft]=Bt*rt+St*it+Dt*nt+ot}if(tt==="martini"){for(let ut=($+1)*$,ft=0;ft<$;ft++,ut++)At[ut]=At[ut-$-1];for(let ut=_e,ft=0;ft<_e+1;ft++,ut+=_e+1)At[ut]=At[ut-1]}return At}function getMeshAttributes(j,$,_e,et,tt){const rt=_e+1,nt=j.length/2,it=new Float32Array(nt*3),ot=new Float32Array(nt*2),[At,ut,ft,dt]=tt||[0,0,_e,et],Et=(ft-At)/_e,Bt=(dt-ut)/et;for(let St=0;Stnull):Promise.resolve(null);return Promise.all([Bt,St])}renderSubLayers($){const _e=this.getSubLayerClass("mesh",SimpleMeshLayer),{color:et,wireframe:tt,material:rt}=this.props,{data:nt}=$;if(!nt)return null;const[it,ot]=nt;return new _e($,{data:DUMMY_DATA,mesh:it,texture:ot,_instanced:!1,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,getPosition:At=>[0,0,0],getColor:et,wireframe:tt,material:rt})}onViewportLoad($){if(!$)return;const{zRange:_e}=this.state,et=$.map(nt=>nt.content).filter(Boolean).map(nt=>nt[0].header.boundingBox.map(ot=>ot[2]));if(et.length===0)return;const tt=Math.min(...et.map(nt=>nt[0])),rt=Math.max(...et.map(nt=>nt[1]));(!_e||tt<_e[0]||rt>_e[1])&&this.setState({zRange:[tt,rt]})}renderLayers(){const{color:$,material:_e,elevationData:et,texture:tt,wireframe:rt,meshMaxError:nt,elevationDecoder:it,tileSize:ot,maxZoom:At,minZoom:ut,extent:ft,maxRequests:dt,onTileLoad:Et,onTileUnload:Bt,onTileError:St,maxCacheSize:Dt,maxCacheByteSize:$t,refinementStrategy:Rt}=this.props;if(this.state.isTiled)return new TileLayer(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:urlTemplateToUpdateTrigger(et),texture:urlTemplateToUpdateTrigger(tt),meshMaxError:nt,elevationDecoder:it}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:ot,maxZoom:At,minZoom:ut,extent:ft,maxRequests:dt,onTileLoad:Et,onTileUnload:Bt,onTileError:St,maxCacheSize:Dt,maxCacheByteSize:$t,refinementStrategy:Rt});const wt=this.getSubLayerClass("mesh",SimpleMeshLayer);return new wt(this.getSubLayerProps({id:"mesh"}),{data:DUMMY_DATA,mesh:this.state.terrain,texture:tt,_instanced:!1,getPosition:xt=>[0,0,0],getColor:$,material:_e,wireframe:rt})}}_defineProperty$e(TerrainLayer,"defaultProps",defaultProps$i);_defineProperty$e(TerrainLayer,"layerName","TerrainLayer");function flatGeojsonToBinary(j,$,_e){const et=extractNumericPropTypes(j),tt=Object.keys(et).filter(rt=>et[rt]!==Array);return fillArrays(j,{propArrayTypes:et,...$},{numericPropKeys:_e&&_e.numericPropKeys||tt,PositionDataType:_e?_e.PositionDataType:Float32Array})}function extractNumericPropTypes(j){const $={};for(const _e of j)if(_e.properties)for(const et in _e.properties){const tt=_e.properties[et];$[et]=deduceArrayType(tt,$[et])}return $}function fillArrays(j,$,_e){const{pointPositionsCount:et,pointFeaturesCount:tt,linePositionsCount:rt,linePathsCount:nt,lineFeaturesCount:it,polygonPositionsCount:ot,polygonObjectsCount:At,polygonRingsCount:ut,polygonFeaturesCount:ft,propArrayTypes:dt,coordLength:Et}=$,{numericPropKeys:Bt=[],PositionDataType:St=Float32Array}=_e,Dt=j[0]&&"id"in j[0],$t=j.length>65535?Uint32Array:Uint16Array,Rt={type:"Point",positions:new St(et*Et),globalFeatureIds:new $t(et),featureIds:tt>65535?new Uint32Array(et):new Uint16Array(et),numericProps:{},properties:[],fields:[]},wt={type:"LineString",pathIndices:rt>65535?new Uint32Array(nt+1):new Uint16Array(nt+1),positions:new St(rt*Et),globalFeatureIds:new $t(rt),featureIds:it>65535?new Uint32Array(rt):new Uint16Array(rt),numericProps:{},properties:[],fields:[]},xt={type:"Polygon",polygonIndices:ot>65535?new Uint32Array(At+1):new Uint16Array(At+1),primitivePolygonIndices:ot>65535?new Uint32Array(ut+1):new Uint16Array(ut+1),positions:new St(ot*Et),triangles:[],globalFeatureIds:new $t(ot),featureIds:ft>65535?new Uint32Array(ot):new Uint16Array(ot),numericProps:{},properties:[],fields:[]};for(const Ot of[Rt,wt,xt])for(const kt of Bt){const Jt=dt[kt];Ot.numericProps[kt]=new Jt(Ot.positions.length/Et)}wt.pathIndices[nt]=rt,xt.polygonIndices[At]=ot,xt.primitivePolygonIndices[ut]=ot;const Nt={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(const Ot of j){const kt=Ot.geometry,Jt=Ot.properties||{};switch(kt.type){case"Point":handlePoint(kt,Rt,Nt,Et,Jt),Rt.properties.push(keepStringProperties(Jt,Bt)),Dt&&Rt.fields.push({id:Ot.id}),Nt.pointFeature++;break;case"LineString":handleLineString(kt,wt,Nt,Et,Jt),wt.properties.push(keepStringProperties(Jt,Bt)),Dt&&wt.fields.push({id:Ot.id}),Nt.lineFeature++;break;case"Polygon":handlePolygon(kt,xt,Nt,Et,Jt),xt.properties.push(keepStringProperties(Jt,Bt)),Dt&&xt.fields.push({id:Ot.id}),Nt.polygonFeature++;break;default:throw new Error("Invalid geometry type")}Nt.feature++}return makeAccessorObjects(Rt,wt,xt,Et)}function handlePoint(j,$,_e,et,tt){$.positions.set(j.data,_e.pointPosition*et);const rt=j.data.length/et;fillNumericProperties($,tt,_e.pointPosition,rt),$.globalFeatureIds.fill(_e.feature,_e.pointPosition,_e.pointPosition+rt),$.featureIds.fill(_e.pointFeature,_e.pointPosition,_e.pointPosition+rt),_e.pointPosition+=rt}function handleLineString(j,$,_e,et,tt){$.positions.set(j.data,_e.linePosition*et);const rt=j.data.length/et;fillNumericProperties($,tt,_e.linePosition,rt),$.globalFeatureIds.fill(_e.feature,_e.linePosition,_e.linePosition+rt),$.featureIds.fill(_e.lineFeature,_e.linePosition,_e.linePosition+rt);for(let nt=0,it=j.indices.length;nt(dt-At)/rt),ft=earcut$3(ot,ut,rt,$);for(let dt=0,Et=ft.length;dtot>=$&&ot<=_e),rt=j.primitivePolygonIndices.value.filter(ot=>ot>=$&&ot<=_e);if(!(tt.length>2)){const ot=[];for(let At=0;Atit>=$&&it<=_e);if(!(tt.length>2))return{type:"LineString",coordinates:ringToGeoJson(et,tt[0],tt[1])};const nt=[];for(let it=0;it1?{type:"MultiPoint",coordinates:tt}:{type:"Point",coordinates:tt[0]}}function ringToGeoJson(j,$,_e){$=$||0,_e=_e||j.value.length/j.size;const et=[];for(let tt=$;tt<_e;tt++){const rt=Array();for(let nt=tt*j.size;nt<(tt+1)*j.size;nt++)rt.push(Number(j.value[nt]));et.push(rt)}return et}function parseType(j){return j.pathIndices?"LineString":j.polygonIndices?"Polygon":"Point"}var ieee754$1={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754$1.read=function(j,$,_e,et,tt){var rt,nt,it=tt*8-et-1,ot=(1<>1,ut=-7,ft=_e?tt-1:0,dt=_e?-1:1,Et=j[$+ft];for(ft+=dt,rt=Et&(1<<-ut)-1,Et>>=-ut,ut+=it;ut>0;rt=rt*256+j[$+ft],ft+=dt,ut-=8);for(nt=rt&(1<<-ut)-1,rt>>=-ut,ut+=et;ut>0;nt=nt*256+j[$+ft],ft+=dt,ut-=8);if(rt===0)rt=1-At;else{if(rt===ot)return nt?NaN:(Et?-1:1)*(1/0);nt=nt+Math.pow(2,et),rt=rt-At}return(Et?-1:1)*nt*Math.pow(2,rt-et)};ieee754$1.write=function(j,$,_e,et,tt,rt){var nt,it,ot,At=rt*8-tt-1,ut=(1<>1,dt=tt===23?Math.pow(2,-24)-Math.pow(2,-77):0,Et=et?0:rt-1,Bt=et?1:-1,St=$<0||$===0&&1/$<0?1:0;for($=Math.abs($),isNaN($)||$===1/0?(it=isNaN($)?1:0,nt=ut):(nt=Math.floor(Math.log($)/Math.LN2),$*(ot=Math.pow(2,-nt))<1&&(nt--,ot*=2),nt+ft>=1?$+=dt/ot:$+=dt*Math.pow(2,1-ft),$*ot>=2&&(nt++,ot/=2),nt+ft>=ut?(it=0,nt=ut):nt+ft>=1?(it=($*ot-1)*Math.pow(2,tt),nt=nt+ft):(it=$*Math.pow(2,ft-1)*Math.pow(2,tt),nt=0));tt>=8;j[_e+Et]=it&255,Et+=Bt,it/=256,tt-=8);for(nt=nt<0;j[_e+Et]=nt&255,Et+=Bt,nt/=256,At-=8);j[_e+Et-Bt]|=St*128};var pbf=Pbf,ieee754=ieee754$1;function Pbf(j){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(j)?j:new Uint8Array(j||0),this.pos=0,this.type=0,this.length=this.buf.length}Pbf.Varint=0;Pbf.Fixed64=1;Pbf.Bytes=2;Pbf.Fixed32=5;var SHIFT_LEFT_32=65536*65536,SHIFT_RIGHT_32=1/SHIFT_LEFT_32,TEXT_DECODER_MIN_LENGTH=12,utf8TextDecoder=typeof TextDecoder>"u"?null:new TextDecoder("utf8");Pbf.prototype={destroy:function(){this.buf=null},readFields:function(j,$,_e){for(_e=_e||this.length;this.pos<_e;){var et=this.readVarint(),tt=et>>3,rt=this.pos;this.type=et&7,j(tt,$,this),this.pos===rt&&this.skip(et)}return $},readMessage:function(j,$){return this.readFields(j,$,this.readVarint()+this.pos)},readFixed32:function(){var j=readUInt32(this.buf,this.pos);return this.pos+=4,j},readSFixed32:function(){var j=readInt32(this.buf,this.pos);return this.pos+=4,j},readFixed64:function(){var j=readUInt32(this.buf,this.pos)+readUInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,j},readSFixed64:function(){var j=readUInt32(this.buf,this.pos)+readInt32(this.buf,this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,j},readFloat:function(){var j=ieee754.read(this.buf,this.pos,!0,23,4);return this.pos+=4,j},readDouble:function(){var j=ieee754.read(this.buf,this.pos,!0,52,8);return this.pos+=8,j},readVarint:function(j){var $=this.buf,_e,et;return et=$[this.pos++],_e=et&127,et<128||(et=$[this.pos++],_e|=(et&127)<<7,et<128)||(et=$[this.pos++],_e|=(et&127)<<14,et<128)||(et=$[this.pos++],_e|=(et&127)<<21,et<128)?_e:(et=$[this.pos],_e|=(et&15)<<28,readVarintRemainder(_e,j,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var j=this.readVarint();return j%2===1?(j+1)/-2:j/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var j=this.readVarint()+this.pos,$=this.pos;return this.pos=j,j-$>=TEXT_DECODER_MIN_LENGTH&&utf8TextDecoder?readUtf8TextDecoder(this.buf,$,j):readUtf8(this.buf,$,j)},readBytes:function(){var j=this.readVarint()+this.pos,$=this.buf.subarray(this.pos,j);return this.pos=j,$},readPackedVarint:function(j,$){if(this.type!==Pbf.Bytes)return j.push(this.readVarint($));var _e=readPackedEnd(this);for(j=j||[];this.pos<_e;)j.push(this.readVarint($));return j},readPackedSVarint:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readSVarint());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readSVarint());return j},readPackedBoolean:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readBoolean());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readBoolean());return j},readPackedFloat:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readFloat());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readFloat());return j},readPackedDouble:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readDouble());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readDouble());return j},readPackedFixed32:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readFixed32());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readFixed32());return j},readPackedSFixed32:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readSFixed32());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readSFixed32());return j},readPackedFixed64:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readFixed64());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readFixed64());return j},readPackedSFixed64:function(j){if(this.type!==Pbf.Bytes)return j.push(this.readSFixed64());var $=readPackedEnd(this);for(j=j||[];this.pos<$;)j.push(this.readSFixed64());return j},skip:function(j){var $=j&7;if($===Pbf.Varint)for(;this.buf[this.pos++]>127;);else if($===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if($===Pbf.Fixed32)this.pos+=4;else if($===Pbf.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+$)},writeTag:function(j,$){this.writeVarint(j<<3|$)},realloc:function(j){for(var $=this.length||16;$268435455||j<0){writeBigVarint(j,this);return}this.realloc(4),this.buf[this.pos++]=j&127|(j>127?128:0),!(j<=127)&&(this.buf[this.pos++]=(j>>>=7)&127|(j>127?128:0),!(j<=127)&&(this.buf[this.pos++]=(j>>>=7)&127|(j>127?128:0),!(j<=127)&&(this.buf[this.pos++]=j>>>7&127)))},writeSVarint:function(j){this.writeVarint(j<0?-j*2-1:j*2)},writeBoolean:function(j){this.writeVarint(!!j)},writeString:function(j){j=String(j),this.realloc(j.length*4),this.pos++;var $=this.pos;this.pos=writeUtf8(this.buf,j,this.pos);var _e=this.pos-$;_e>=128&&makeRoomForExtraLength($,_e,this),this.pos=$-1,this.writeVarint(_e),this.pos+=_e},writeFloat:function(j){this.realloc(4),ieee754.write(this.buf,j,this.pos,!0,23,4),this.pos+=4},writeDouble:function(j){this.realloc(8),ieee754.write(this.buf,j,this.pos,!0,52,8),this.pos+=8},writeBytes:function(j){var $=j.length;this.writeVarint($),this.realloc($);for(var _e=0;_e<$;_e++)this.buf[this.pos++]=j[_e]},writeRawMessage:function(j,$){this.pos++;var _e=this.pos;j($,this);var et=this.pos-_e;et>=128&&makeRoomForExtraLength(_e,et,this),this.pos=_e-1,this.writeVarint(et),this.pos+=et},writeMessage:function(j,$,_e){this.writeTag(j,Pbf.Bytes),this.writeRawMessage($,_e)},writePackedVarint:function(j,$){$.length&&this.writeMessage(j,writePackedVarint,$)},writePackedSVarint:function(j,$){$.length&&this.writeMessage(j,writePackedSVarint,$)},writePackedBoolean:function(j,$){$.length&&this.writeMessage(j,writePackedBoolean,$)},writePackedFloat:function(j,$){$.length&&this.writeMessage(j,writePackedFloat,$)},writePackedDouble:function(j,$){$.length&&this.writeMessage(j,writePackedDouble,$)},writePackedFixed32:function(j,$){$.length&&this.writeMessage(j,writePackedFixed32,$)},writePackedSFixed32:function(j,$){$.length&&this.writeMessage(j,writePackedSFixed32,$)},writePackedFixed64:function(j,$){$.length&&this.writeMessage(j,writePackedFixed64,$)},writePackedSFixed64:function(j,$){$.length&&this.writeMessage(j,writePackedSFixed64,$)},writeBytesField:function(j,$){this.writeTag(j,Pbf.Bytes),this.writeBytes($)},writeFixed32Field:function(j,$){this.writeTag(j,Pbf.Fixed32),this.writeFixed32($)},writeSFixed32Field:function(j,$){this.writeTag(j,Pbf.Fixed32),this.writeSFixed32($)},writeFixed64Field:function(j,$){this.writeTag(j,Pbf.Fixed64),this.writeFixed64($)},writeSFixed64Field:function(j,$){this.writeTag(j,Pbf.Fixed64),this.writeSFixed64($)},writeVarintField:function(j,$){this.writeTag(j,Pbf.Varint),this.writeVarint($)},writeSVarintField:function(j,$){this.writeTag(j,Pbf.Varint),this.writeSVarint($)},writeStringField:function(j,$){this.writeTag(j,Pbf.Bytes),this.writeString($)},writeFloatField:function(j,$){this.writeTag(j,Pbf.Fixed32),this.writeFloat($)},writeDoubleField:function(j,$){this.writeTag(j,Pbf.Fixed64),this.writeDouble($)},writeBooleanField:function(j,$){this.writeVarintField(j,!!$)}};function readVarintRemainder(j,$,_e){var et=_e.buf,tt,rt;if(rt=et[_e.pos++],tt=(rt&112)>>4,rt<128||(rt=et[_e.pos++],tt|=(rt&127)<<3,rt<128)||(rt=et[_e.pos++],tt|=(rt&127)<<10,rt<128)||(rt=et[_e.pos++],tt|=(rt&127)<<17,rt<128)||(rt=et[_e.pos++],tt|=(rt&127)<<24,rt<128)||(rt=et[_e.pos++],tt|=(rt&1)<<31,rt<128))return toNum(j,tt,$);throw new Error("Expected varint not more than 10 bytes")}function readPackedEnd(j){return j.type===Pbf.Bytes?j.readVarint()+j.pos:j.pos+1}function toNum(j,$,_e){return _e?$*4294967296+(j>>>0):($>>>0)*4294967296+(j>>>0)}function writeBigVarint(j,$){var _e,et;if(j>=0?(_e=j%4294967296|0,et=j/4294967296|0):(_e=~(-j%4294967296),et=~(-j/4294967296),_e^4294967295?_e=_e+1|0:(_e=0,et=et+1|0)),j>=18446744073709552e3||j<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");$.realloc(10),writeBigVarintLow(_e,et,$),writeBigVarintHigh(et,$)}function writeBigVarintLow(j,$,_e){_e.buf[_e.pos++]=j&127|128,j>>>=7,_e.buf[_e.pos++]=j&127|128,j>>>=7,_e.buf[_e.pos++]=j&127|128,j>>>=7,_e.buf[_e.pos++]=j&127|128,j>>>=7,_e.buf[_e.pos]=j&127}function writeBigVarintHigh(j,$){var _e=(j&7)<<4;$.buf[$.pos++]|=_e|((j>>>=3)?128:0),j&&($.buf[$.pos++]=j&127|((j>>>=7)?128:0),j&&($.buf[$.pos++]=j&127|((j>>>=7)?128:0),j&&($.buf[$.pos++]=j&127|((j>>>=7)?128:0),j&&($.buf[$.pos++]=j&127|((j>>>=7)?128:0),j&&($.buf[$.pos++]=j&127)))))}function makeRoomForExtraLength(j,$,_e){var et=$<=16383?1:$<=2097151?2:$<=268435455?3:Math.floor(Math.log($)/(Math.LN2*7));_e.realloc(et);for(var tt=_e.pos-1;tt>=j;tt--)_e.buf[tt+et]=_e.buf[tt]}function writePackedVarint(j,$){for(var _e=0;_e>>8,j[_e+2]=$>>>16,j[_e+3]=$>>>24}function readInt32(j,$){return(j[$]|j[$+1]<<8|j[$+2]<<16)+(j[$+3]<<24)}function readUtf8(j,$,_e){for(var et="",tt=$;tt<_e;){var rt=j[tt],nt=null,it=rt>239?4:rt>223?3:rt>191?2:1;if(tt+it>_e)break;var ot,At,ut;it===1?rt<128&&(nt=rt):it===2?(ot=j[tt+1],(ot&192)===128&&(nt=(rt&31)<<6|ot&63,nt<=127&&(nt=null))):it===3?(ot=j[tt+1],At=j[tt+2],(ot&192)===128&&(At&192)===128&&(nt=(rt&15)<<12|(ot&63)<<6|At&63,(nt<=2047||nt>=55296&&nt<=57343)&&(nt=null))):it===4&&(ot=j[tt+1],At=j[tt+2],ut=j[tt+3],(ot&192)===128&&(At&192)===128&&(ut&192)===128&&(nt=(rt&15)<<18|(ot&63)<<12|(At&63)<<6|ut&63,(nt<=65535||nt>=1114112)&&(nt=null))),nt===null?(nt=65533,it=1):nt>65535&&(nt-=65536,et+=String.fromCharCode(nt>>>10&1023|55296),nt=56320|nt&1023),et+=String.fromCharCode(nt),tt+=it}return et}function readUtf8TextDecoder(j,$,_e){return utf8TextDecoder.decode(j.subarray($,_e))}function writeUtf8(j,$,_e){for(var et=0,tt,rt;et<$.length;et++){if(tt=$.charCodeAt(et),tt>55295&&tt<57344)if(rt)if(tt<56320){j[_e++]=239,j[_e++]=191,j[_e++]=189,rt=tt;continue}else tt=rt-55296<<10|tt-56320|65536,rt=null;else{tt>56319||et+1===$.length?(j[_e++]=239,j[_e++]=191,j[_e++]=189):rt=tt;continue}else rt&&(j[_e++]=239,j[_e++]=191,j[_e++]=189,rt=null);tt<128?j[_e++]=tt:(tt<2048?j[_e++]=tt>>6|192:(tt<65536?j[_e++]=tt>>12|224:(j[_e++]=tt>>18|240,j[_e++]=tt>>12&63|128),j[_e++]=tt>>6&63|128),j[_e++]=tt&63|128)}return _e}const Protobuf=getDefaultExportFromCjs(pbf);function classifyRings$1(j){const $=j.length;if($<=1)return[j];const _e=[];let et,tt;for(let rt=0;rt<$;rt++){const nt=signedArea(j[rt]);nt!==0&&(tt===void 0&&(tt=nt<0),tt===nt<0?(et&&_e.push(et),et=[j[rt]]):et&&et.push(j[rt]))}return et&&_e.push(et),_e}function signedArea(j){let $=0;for(let _e=0,et=j.length-1,tt,rt;_e>3}if(tt--,et===1||et===2)rt+=$.readSVarint(),nt+=$.readSVarint(),et===1&&(ot&&it.push(ot),ot=[]),ot&&ot.push([rt,nt]);else if(et===7)ot&&ot.push(ot[0].slice());else throw new Error("unknown command ".concat(et))}return ot&&it.push(ot),it}bbox(){const $=this._pbf;$.pos=this._geometry;const _e=$.readVarint()+$.pos;let et=1,tt=0,rt=0,nt=0,it=1/0,ot=-1/0,At=1/0,ut=-1/0;for(;$.pos<_e;){if(tt<=0){const ft=$.readVarint();et=ft&7,tt=ft>>3}if(tt--,et===1||et===2)rt+=$.readSVarint(),nt+=$.readSVarint(),rtot&&(ot=rt),ntut&&(ut=nt);else if(et!==7)throw new Error("unknown command ".concat(et))}return[it,At,ot,ut]}_toGeoJSON($){let _e=this.loadGeometry(),et=mp.types[this.type],tt,rt;switch(this.type){case 1:const it=[];for(tt=0;tt<_e.length;tt++)it[tt]=_e[tt][0];_e=it,$(_e,this);break;case 2:for(tt=0;tt<_e.length;tt++)$(_e[tt],this);break;case 3:for(_e=classifyRings$1(_e),tt=0;tt<_e.length;tt++)for(rt=0;rt<_e[tt].length;rt++)$(_e[tt][rt],this);break}_e.length===1?_e=_e[0]:et="Multi".concat(et);const nt={type:"Feature",geometry:{type:et,coordinates:_e},properties:this.properties};return this.id!==null&&(nt.id=this.id),nt}toGeoJSON($){if(typeof $=="function")return this._toGeoJSON($);const{x:_e,y:et,z:tt}=$,rt=this.extent*Math.pow(2,tt),nt=this.extent*_e,it=this.extent*et;function ot(At){for(let ut=0;ut=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[$];const _e=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature$1(this._pbf,_e,this.extent,this._keys,this._values)}};function readLayer$1(j,$,_e){$&&_e&&(j===15?$.version=_e.readVarint():j===1?$.name=_e.readString():j===5?$.extent=_e.readVarint():j===2?$._features.push(_e.pos):j===3?$._keys.push(_e.readString()):j===4&&$._values.push(readValueMessage$1(_e)))}function readValueMessage$1(j){let $=null;const _e=j.readVarint()+j.pos;for(;j.pos<_e;){const et=j.readVarint()>>3;$=et===1?j.readString():et===2?j.readFloat():et===3?j.readDouble():et===4?j.readVarint64():et===5?j.readVarint():et===6?j.readSVarint():et===7?j.readBoolean():null}return $}let VectorTile$1=class{constructor($,_e){_defineProperty$e(this,"layers",void 0),this.layers=$.readFields(readTile$1,{},_e)}};function readTile$1(j,$,_e){if(j===3&&_e){const et=new VectorTileLayer$1(_e,_e.readVarint()+_e.pos);et.length&&$&&($[et.name]=et)}}function classifyRings(j){const $=j.indices.length,_e="Polygon";if($<=1)return{type:_e,data:j.data,areas:[[getPolygonSignedArea(j.data)]],indices:[j.indices]};const et=[],tt=[];let rt=[],nt=[],it,ot=0;for(let At,ut=0,ft;ut<$;ut++){ft=j.indices[ut]-ot,At=j.indices[ut+1]-ot||j.data.length;const dt=j.data.slice(ft,At),Et=getPolygonSignedArea(dt);if(Et===0){const Bt=j.data.slice(0,ft),St=j.data.slice(At);j.data=Bt.concat(St),ot+=At-ft;continue}it===void 0&&(it=Et<0),it===Et<0?(nt.length&&(et.push(rt),tt.push(nt)),nt=[ft],rt=[Et]):(rt.push(Et),nt.push(ft))}return rt&&et.push(rt),nt.length&&tt.push(nt),{type:_e,areas:et,indices:tt,data:j.data}}function project(j,$,_e,et){for(let tt=0,rt=j.length;tt>3),length$1--,cmd===1||cmd===2)x$1+=$.readSVarint(),y$1+=$.readSVarint(),cmd===1&&_e.push(i$2),et.push(x$1,y$1),i$2+=2;else if(cmd===7){if(i$2>0){const tt=_e[_e.length-1];et.push(et[tt],et[tt+1]),i$2+=2}}else throw new Error("unknown command ".concat(cmd));return{data:et,indices:_e}}_toBinaryCoordinates($){const _e=this.loadGeometry();let et;$(_e.data,this);const tt=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=_e.indices.length,et={type:"Point",..._e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=_e.indices.length,this._geometryInfo.linePositionsCount+=_e.data.length/tt,et={type:"LineString",..._e};break;case 3:et=classifyRings(_e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=et.indices.length;for(const nt of et.indices)this._geometryInfo.polygonRingsCount+=nt.length;this._geometryInfo.polygonPositionsCount+=et.data.length/tt;break;default:throw new Error("Invalid geometry type: ".concat(this.type))}const rt={type:"Feature",geometry:et,properties:this.properties};return this.id!==null&&(rt.id=this.id),rt}toBinaryCoordinates($){if(typeof $=="function")return this._toBinaryCoordinates($);const{x:_e,y:et,z:tt}=$,rt=this.extent*Math.pow(2,tt),nt=this.extent*_e,it=this.extent*et;return this._toBinaryCoordinates(ot=>project(ot,nt,it,rt))}}class VectorTileLayer2{constructor($,_e){_defineProperty$e(this,"version",void 0),_defineProperty$e(this,"name",void 0),_defineProperty$e(this,"extent",void 0),_defineProperty$e(this,"length",void 0),_defineProperty$e(this,"_pbf",void 0),_defineProperty$e(this,"_keys",void 0),_defineProperty$e(this,"_values",void 0),_defineProperty$e(this,"_features",void 0),this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=$,this._keys=[],this._values=[],this._features=[],$.readFields(readLayer,this,_e),this.length=this._features.length}feature($,_e){if($<0||$>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[$];const et=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature2(this._pbf,et,this.extent,this._keys,this._values,_e)}}function readLayer(j,$,_e){$&&_e&&(j===15?$.version=_e.readVarint():j===1?$.name=_e.readString():j===5?$.extent=_e.readVarint():j===2?$._features.push(_e.pos):j===3?$._keys.push(_e.readString()):j===4&&$._values.push(readValueMessage(_e)))}function readValueMessage(j){let $=null;const _e=j.readVarint()+j.pos;for(;j.pos<_e;){const et=j.readVarint()>>3;$=et===1?j.readString():et===2?j.readFloat():et===3?j.readDouble():et===4?j.readVarint64():et===5?j.readVarint():et===6?j.readSVarint():et===7?j.readBoolean():null}return $}class VectorTile2{constructor($,_e){_defineProperty$e(this,"layers",void 0),this.layers=$.readFields(readTile,{},_e)}}function readTile(j,$,_e){if(j===3&&_e){const et=new VectorTileLayer2(_e,_e.readVarint()+_e.pos);et.length&&$&&($[et.name]=et)}}function parseMVT(j,$){var _e,et;const tt=normalizeOptions($),rt=($==null||(_e=$.gis)===null||_e===void 0?void 0:_e.format)||($==null||(et=$.mvt)===null||et===void 0?void 0:et.shape);switch(rt){case"columnar-table":return{shape:"columnar-table",data:parseToBinary(j,tt)};case"geojson-row-table":return{shape:"geojson-row-table",data:parseToGeojson(j,tt)};case"geojson":return parseToGeojson(j,tt);case"binary-geometry":return parseToBinary(j,tt);case"binary":return parseToBinary(j,tt);default:throw new Error(rt)}}function parseToBinary(j,$){const[_e,et]=parseToFlatGeoJson(j,$),tt=flatGeojsonToBinary(_e,et);return tt.byteLength=j.byteLength,tt}function parseToFlatGeoJson(j,$){const _e=[],et={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(j.byteLength<=0)return[_e,et];const tt=new VectorTile2(new Protobuf(j));return($&&Array.isArray($.layers)?$.layers:Object.keys(tt.layers)).forEach(nt=>{const it=tt.layers[nt];if(it)for(let ot=0;ot{const nt=et.layers[rt];if(nt)for(let it=0;itPoint(et,$,_e))}function MultiPoint(j,$,_e){return getPoints(j,$,_e)}function LineString(j,$,_e){return getPoints(j,$,_e)}function MultiLineString(j,$,_e){return j.map(et=>LineString(et,$,_e))}function Polygon(j,$,_e){return j.map(et=>getPoints(et,$,_e))}function MultiPolygon(j,$,_e){return j.map(et=>Polygon(et,$,_e))}function transform$1(j,$,_e){const et=_e.projectFlat([$.west,$.north]),tt=_e.projectFlat([$.east,$.south]),rt=[et,tt];return{...j,coordinates:availableTransformations[j.type](j.coordinates,rt,_e)}}const GEOM_TYPES=["points","lines","polygons"];function findIndexBinary(j,$,_e,et){for(const tt of GEOM_TYPES){const rt=j[tt]&&findIndexByType(j[tt],$,_e,et);if(rt>=0)return rt}return-1}function findIndexByType(j,$,_e,et){const tt=j.featureIds.value;if(!tt.length)return-1;let rt=0,nt=tt[tt.length-1]+1;if(et){const ot=getLayerRange(j,et);if(ot)rt=ot[0],nt=ot[1]+1;else return-1}let it=-1;if($ in j.numericProps){const ot=j.numericProps[$].value.findIndex((At,ut)=>At===_e&&tt[ut]>=rt&&tt[ut]=0?j.globalFeatureIds.value[ot]:-1}else $?it=findIndex(j.properties,ot=>ot[$]===_e,rt,nt):j.fields&&(it=findIndex(j.fields,ot=>ot.id===_e,rt,nt));return it>=0?getGlobalFeatureId(j,it):-1}function getLayerRange(j,$){if(!j.__layers){const _e={},{properties:et}=j;for(let tt=0;ttet&&($.minZoom=_e.minzoom),Number.isFinite(_e.maxzoom)&&(!Number.isFinite(tt)||_e.maxzoom{const dt=getFeatureUniqueId(ft,rt)===ut,Et=ot||getFeatureLayerName(ft)===et;return dt&&Et}):it&&tt?findIndexBinary(it,rt,ut,ot?"":et):-1}_pickObjects($){const{deck:_e,viewport:et}=this.context,tt=et.width,rt=et.height,nt=et.x,it=et.y,ot=[this.id];return _e.pickObjects({x:nt,y:it,width:tt,height:rt,layerIds:ot,maxObjects:$})}getRenderedFeatures($=null){const _e=this._pickObjects($),et=new Set,tt=[];for(const rt of _e){const nt=getFeatureUniqueId(rt.object,this.props.uniqueIdProperty);nt===void 0?tt.push(rt.object):et.has(nt)||(et.add(nt),tt.push(rt.object))}return tt}_setWGS84PropertyForTiles(){const $="dataInWGS84";this.state.tileset.selectedTiles.forEach(et=>{et.hasOwnProperty($)||Object.defineProperty(et,$,{get:()=>{if(!et.content)return null;if(this.state.binary&&Array.isArray(et.content)&&!et.content.length)return[];const{bbox:tt}=et;if(et._contentWGS84===void 0&&isGeoBoundingBox(tt)){const rt=this.state.binary?binaryToGeojson(et.content):et.content;et._contentWGS84=rt.map(nt=>transformTileCoordsToWGS84(nt,tt,this.context.viewport))}return et._contentWGS84}})})}}_defineProperty$e(MVTLayer,"layerName","MVTLayer");_defineProperty$e(MVTLayer,"defaultProps",defaultProps$h);function getFeatureUniqueId(j,$){if(j.properties&&$)return j.properties[$];if("id"in j)return j.id}function getFeatureLayerName(j){var $;return(($=j.properties)===null||$===void 0?void 0:$.layerName)||null}function isFeatureIdDefined(j){return j!=null&&j!==""}function transformTileCoordsToWGS84(j,$,_e){const et={...j,geometry:{type:j.geometry.type}};return Object.defineProperty(et.geometry,"coordinates",{get:()=>transform$1(j.geometry,$,_e).coordinates}),et}const BASE32_CODES="0123456789bcdefghjkmnpqrstuvwxyz",BASE32_CODES_DICT={};for(let j=0;j=0;ft--){const dt=it>>ft&1;$?(nt=(tt+rt)/2,dt===1?rt=nt:tt=nt):(nt=(_e+et)/2,dt===1?et=nt:_e=nt),$=!$}}return[et,rt,_e,tt]}function getGeohashPolygon(j){const[$,_e,et,tt]=getGeohashBounds(j);return[tt,et,tt,$,_e,$,_e,et,tt,et]}const defaultProps$g={getGeohash:{type:"accessor",value:j=>j.geohash}};class GeohashLayer extends GeoCellLayer{indexToBounds(){const{data:$,getGeohash:_e}=this.props;return{data:$,_normalize:!1,positionFormat:"XY",getPolygon:(et,tt)=>getGeohashPolygon(_e(et,tt))}}}_defineProperty$e(GeohashLayer,"layerName","GeohashLayer");_defineProperty$e(GeohashLayer,"defaultProps",defaultProps$g);const esm$1=Object.freeze(Object.defineProperty({__proto__:null,GeohashLayer,GreatCircleLayer,H3ClusterLayer,H3HexagonLayer,MVTLayer,QuadkeyLayer,S2Layer,TerrainLayer,Tile3DLayer,TileLayer,TripsLayer,_GeoCellLayer:GeoCellLayer,_Tile2DHeader:Tile2DHeader,_Tileset2D:Tileset2D,_getURLFromTemplate:getURLFromTemplate},Symbol.toStringTag,{value:"Module"}));function bbox$2(j){var $=[1/0,1/0,-1/0,-1/0];return coordEach$1(j,function(_e){$[0]>_e[0]&&($[0]=_e[0]),$[1]>_e[1]&&($[1]=_e[1]),$[2]<_e[0]&&($[2]=_e[0]),$[3]<_e[1]&&($[3]=_e[1])}),$}bbox$2.default=bbox$2;function getCoord$1(j){if(!j)throw new Error("coord is required");if(!Array.isArray(j)){if(j.type==="Feature"&&j.geometry!==null&&j.geometry.type==="Point")return j.geometry.coordinates;if(j.type==="Point")return j.coordinates}if(Array.isArray(j)&&j.length>=2&&!Array.isArray(j[0])&&!Array.isArray(j[1]))return j;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function getCoords$1(j){if(Array.isArray(j))return j;if(j.type==="Feature"){if(j.geometry!==null)return j.geometry.coordinates}else if(j.coordinates)return j.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function containsNumber$1(j){if(j.length>1&&isNumber(j[0])&&isNumber(j[1]))return!0;if(Array.isArray(j[0])&&j[0].length)return containsNumber$1(j[0]);throw new Error("coordinates must only contain numbers")}function geojsonType$1(j,$,_e){if(!$||!_e)throw new Error("type and name required");if(!j||j.type!==$)throw new Error("Invalid input to "+_e+": must be a "+$+", given "+j.type)}function featureOf$1(j,$,_e){if(!j)throw new Error("No feature passed");if(!_e)throw new Error(".featureOf() requires a name");if(!j||j.type!=="Feature"||!j.geometry)throw new Error("Invalid input to "+_e+", Feature with geometry required");if(!j.geometry||j.geometry.type!==$)throw new Error("Invalid input to "+_e+": must be a "+$+", given "+j.geometry.type)}function collectionOf$1(j,$,_e){if(!j)throw new Error("No featureCollection passed");if(!_e)throw new Error(".collectionOf() requires a name");if(!j||j.type!=="FeatureCollection")throw new Error("Invalid input to "+_e+", FeatureCollection required");for(var et=0,tt=j.features;et"u"?null:_e.epsilon))return!0}return!1}function isPointOnLineSegment(j,$,_e,et,tt){var rt=_e[0],nt=_e[1],it=j[0],ot=j[1],At=$[0],ut=$[1],ft=_e[0]-it,dt=_e[1]-ot,Et=At-it,Bt=ut-ot,St=ft*Bt-dt*Et;if(tt!==null){if(Math.abs(St)>tt)return!1}else if(St!==0)return!1;if(et){if(et==="start")return Math.abs(Et)>=Math.abs(Bt)?Et>0?it0?ot=Math.abs(Bt)?Et>0?it<=rt&&rt0?ot<=nt&&nt=Math.abs(Bt)?Et>0?it0?ot=Math.abs(Bt)?Et>0?it<=rt&&rt<=At:At<=rt&&rt<=it:Bt>0?ot<=nt&&nt<=ut:ut<=nt&&nt<=ot;return!1}function booleanPointInPolygon$1(j,$,_e){if(_e===void 0&&(_e={}),!j)throw new Error("point is required");if(!$)throw new Error("polygon is required");var et=getCoord$1(j),tt=getGeom$1($),rt=tt.type,nt=$.bbox,it=tt.coordinates;if(nt&&inBBox$1(et,nt)===!1)return!1;rt==="Polygon"&&(it=[it]);for(var ot=!1,At=0;Atj[1]!=At>j[1]&&j[0]<(ot-nt)*(j[1]-it)/(At-it)+nt;ft&&(et=!et)}return et}function inBBox$1(j,$){return $[0]<=j[0]&&$[1]<=j[1]&&$[2]>=j[0]&&$[3]>=j[1]}function booleanWithin(j,$){var _e=getGeom$1(j),et=getGeom$1($),tt=_e.type,rt=et.type;switch(tt){case"Point":switch(rt){case"MultiPoint":return isPointInMultiPoint$1(_e,et);case"LineString":return booleanPointOnLine(_e,et,{ignoreEndVertices:!0});case"Polygon":case"MultiPolygon":return booleanPointInPolygon$1(_e,et,{ignoreBoundary:!0});default:throw new Error("feature2 "+rt+" geometry not supported")}case"MultiPoint":switch(rt){case"MultiPoint":return isMultiPointInMultiPoint$1(_e,et);case"LineString":return isMultiPointOnLine$1(_e,et);case"Polygon":case"MultiPolygon":return isMultiPointInPoly$1(_e,et);default:throw new Error("feature2 "+rt+" geometry not supported")}case"LineString":switch(rt){case"LineString":return isLineOnLine$1(_e,et);case"Polygon":case"MultiPolygon":return isLineInPoly$1(_e,et);default:throw new Error("feature2 "+rt+" geometry not supported")}case"Polygon":switch(rt){case"Polygon":case"MultiPolygon":return isPolyInPoly$1(_e,et);default:throw new Error("feature2 "+rt+" geometry not supported")}default:throw new Error("feature1 "+tt+" geometry not supported")}}function isPointInMultiPoint$1(j,$){var _e,et=!1;for(_e=0;_e<$.coordinates.length;_e++)if(compareCoords$1($.coordinates[_e],j.coordinates)){et=!0;break}return et}function isMultiPointInMultiPoint$1(j,$){for(var _e=0;_e$[0]||j[2]<$[2]||j[1]>$[1]||j[3]<$[3])}function compareCoords$1(j,$){return j[0]===$[0]&&j[1]===$[1]}function getMidpoint$1(j,$){return[(j[0]+$[0])/2,(j[1]+$[1])/2]}function booleanContains(j,$){var _e=getGeom$1(j),et=getGeom$1($),tt=_e.type,rt=et.type,nt=_e.coordinates,it=et.coordinates;switch(tt){case"Point":switch(rt){case"Point":return compareCoords(nt,it);default:throw new Error("feature2 "+rt+" geometry not supported")}case"MultiPoint":switch(rt){case"Point":return isPointInMultiPoint(_e,et);case"MultiPoint":return isMultiPointInMultiPoint(_e,et);default:throw new Error("feature2 "+rt+" geometry not supported")}case"LineString":switch(rt){case"Point":return booleanPointOnLine(et,_e,{ignoreEndVertices:!0});case"LineString":return isLineOnLine(_e,et);case"MultiPoint":return isMultiPointOnLine(_e,et);default:throw new Error("feature2 "+rt+" geometry not supported")}case"Polygon":switch(rt){case"Point":return booleanPointInPolygon$1(et,_e,{ignoreBoundary:!0});case"LineString":return isLineInPoly(_e,et);case"Polygon":return isPolyInPoly(_e,et);case"MultiPoint":return isMultiPointInPoly(_e,et);default:throw new Error("feature2 "+rt+" geometry not supported")}default:throw new Error("feature1 "+tt+" geometry not supported")}}function isPointInMultiPoint(j,$){var _e,et=!1;for(_e=0;_e$[0]||j[2]<$[2]||j[1]>$[1]||j[3]<$[3])}function compareCoords(j,$){return j[0]===$[0]&&j[1]===$[1]}function getMidpoint(j,$){return[(j[0]+$[0])/2,(j[1]+$[1])/2]}var geojsonRbush$1={exports:{}},js$v={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.earthRadius=63710088e-1,j.factors={centimeters:j.earthRadius*100,centimetres:j.earthRadius*100,degrees:j.earthRadius/111325,feet:j.earthRadius*3.28084,inches:j.earthRadius*39.37,kilometers:j.earthRadius/1e3,kilometres:j.earthRadius/1e3,meters:j.earthRadius,metres:j.earthRadius,miles:j.earthRadius/1609.344,millimeters:j.earthRadius*1e3,millimetres:j.earthRadius*1e3,nauticalmiles:j.earthRadius/1852,radians:1,yards:j.earthRadius*1.0936},j.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/j.earthRadius,yards:1.0936133},j.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function $(Gt,Kt,Wt){Wt===void 0&&(Wt={});var Vt={type:"Feature"};return(Wt.id===0||Wt.id)&&(Vt.id=Wt.id),Wt.bbox&&(Vt.bbox=Wt.bbox),Vt.properties=Kt||{},Vt.geometry=Gt,Vt}j.feature=$;function _e(Gt,Kt,Wt){switch(Gt){case"Point":return et(Kt).geometry;case"LineString":return it(Kt).geometry;case"Polygon":return rt(Kt).geometry;case"MultiPoint":return ft(Kt).geometry;case"MultiLineString":return ut(Kt).geometry;case"MultiPolygon":return dt(Kt).geometry;default:throw new Error(Gt+" is invalid")}}j.geometry=_e;function et(Gt,Kt,Wt){if(Wt===void 0&&(Wt={}),!Gt)throw new Error("coordinates is required");if(!Array.isArray(Gt))throw new Error("coordinates must be an Array");if(Gt.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!kt(Gt[0])||!kt(Gt[1]))throw new Error("coordinates must contain numbers");var Vt={type:"Point",coordinates:Gt};return $(Vt,Kt,Wt)}j.point=et;function tt(Gt,Kt,Wt){return Wt===void 0&&(Wt={}),At(Gt.map(function(Vt){return et(Vt,Kt)}),Wt)}j.points=tt;function rt(Gt,Kt,Wt){Wt===void 0&&(Wt={});for(var Vt=0,ur=Gt;Vt=0))throw new Error("precision must be a positive number");var Wt=Math.pow(10,Kt||0);return Math.round(Gt*Wt)/Wt}j.round=Bt;function St(Gt,Kt){Kt===void 0&&(Kt="kilometers");var Wt=j.factors[Kt];if(!Wt)throw new Error(Kt+" units is invalid");return Gt*Wt}j.radiansToLength=St;function Dt(Gt,Kt){Kt===void 0&&(Kt="kilometers");var Wt=j.factors[Kt];if(!Wt)throw new Error(Kt+" units is invalid");return Gt/Wt}j.lengthToRadians=Dt;function $t(Gt,Kt){return wt(Dt(Gt,Kt))}j.lengthToDegrees=$t;function Rt(Gt){var Kt=Gt%360;return Kt<0&&(Kt+=360),Kt}j.bearingToAzimuth=Rt;function wt(Gt){var Kt=Gt%(2*Math.PI);return Kt*180/Math.PI}j.radiansToDegrees=wt;function xt(Gt){var Kt=Gt%360;return Kt*Math.PI/180}j.degreesToRadians=xt;function Nt(Gt,Kt,Wt){if(Kt===void 0&&(Kt="kilometers"),Wt===void 0&&(Wt="kilometers"),!(Gt>=0))throw new Error("length must be a positive number");return St(Dt(Gt,Kt),Wt)}j.convertLength=Nt;function Ot(Gt,Kt,Wt){if(Kt===void 0&&(Kt="meters"),Wt===void 0&&(Wt="kilometers"),!(Gt>=0))throw new Error("area must be a positive number");var Vt=j.areaFactors[Kt];if(!Vt)throw new Error("invalid original units");var ur=j.areaFactors[Wt];if(!ur)throw new Error("invalid final units");return Gt/Vt*ur}j.convertArea=Ot;function kt(Gt){return!isNaN(Gt)&&Gt!==null&&!Array.isArray(Gt)}j.isNumber=kt;function Jt(Gt){return!!Gt&&Gt.constructor===Object}j.isObject=Jt;function jt(Gt){if(!Gt)throw new Error("bbox is required");if(!Array.isArray(Gt))throw new Error("bbox must be an Array");if(Gt.length!==4&&Gt.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");Gt.forEach(function(Kt){if(!kt(Kt))throw new Error("bbox must only contain numbers")})}j.validateBBox=jt;function Ht(Gt){if(!Gt)throw new Error("id is required");if(["string","number"].indexOf(typeof Gt)===-1)throw new Error("id must be a number or a string")}j.validateId=Ht})(js$v);var js$u={};const require$$0$5=getAugmentedNamespace(es$7);Object.defineProperty(js$u,"__esModule",{value:!0});var helpers$8=require$$0$5;function coordEach(j,$,_e){if(j!==null)for(var et,tt,rt,nt,it,ot,At,ut=0,ft=0,dt,Et=j.type,Bt=Et==="FeatureCollection",St=Et==="Feature",Dt=Bt?j.features.length:1,$t=0;$tot||Bt>At||St>ut){it=ft,ot=et,At=Bt,ut=St,rt=0;return}var Dt=helpers$8.lineString([it,ft],_e.properties);if($(Dt,et,tt,St,rt)===!1)return!1;rt++,it=ft})===!1)return!1}}})}function segmentReduce(j,$,_e){var et=_e,tt=!1;return segmentEach(j,function(rt,nt,it,ot,At){tt===!1&&_e===void 0?et=rt:et=$(et,rt,nt,it,ot,At),tt=!0}),et}function lineEach(j,$){if(!j)throw new Error("geojson is required");flattenEach(j,function(_e,et,tt){if(_e.geometry!==null){var rt=_e.geometry.type,nt=_e.geometry.coordinates;switch(rt){case"LineString":if($(_e,et,tt,0,0)===!1)return!1;break;case"Polygon":for(var it=0;it_e[0]&&($[0]=_e[0]),$[1]>_e[1]&&($[1]=_e[1]),$[2]<_e[0]&&($[2]=_e[0]),$[3]<_e[1]&&($[3]=_e[1])}),$}bbox$1.default=bbox$1;js$t.default=bbox$1;var rbush=rbush_minExports,helpers$7=js$v,meta$5=js$u,turfBBox$1=js$t.default,featureEach=meta$5.featureEach;meta$5.coordEach;helpers$7.polygon;var featureCollection=helpers$7.featureCollection;function geojsonRbush(j){var $=new rbush(j);return $.insert=function(_e){if(_e.type!=="Feature")throw new Error("invalid feature");return _e.bbox=_e.bbox?_e.bbox:turfBBox$1(_e),rbush.prototype.insert.call(this,_e)},$.load=function(_e){var et=[];return Array.isArray(_e)?_e.forEach(function(tt){if(tt.type!=="Feature")throw new Error("invalid features");tt.bbox=tt.bbox?tt.bbox:turfBBox$1(tt),et.push(tt)}):featureEach(_e,function(tt){if(tt.type!=="Feature")throw new Error("invalid features");tt.bbox=tt.bbox?tt.bbox:turfBBox$1(tt),et.push(tt)}),rbush.prototype.load.call(this,et)},$.remove=function(_e,et){if(_e.type!=="Feature")throw new Error("invalid feature");return _e.bbox=_e.bbox?_e.bbox:turfBBox$1(_e),rbush.prototype.remove.call(this,_e,et)},$.clear=function(){return rbush.prototype.clear.call(this)},$.search=function(_e){var et=rbush.prototype.search.call(this,this.toBBox(_e));return featureCollection(et)},$.collides=function(_e){return rbush.prototype.collides.call(this,this.toBBox(_e))},$.all=function(){var _e=rbush.prototype.all.call(this);return featureCollection(_e)},$.toJSON=function(){return rbush.prototype.toJSON.call(this)},$.fromJSON=function(_e){return rbush.prototype.fromJSON.call(this,_e)},$.toBBox=function(_e){var et;if(_e.bbox)et=_e.bbox;else if(Array.isArray(_e)&&_e.length===4)et=_e;else if(Array.isArray(_e)&&_e.length===6)et=[_e[0],_e[1],_e[3],_e[4]];else if(_e.type==="Feature")et=turfBBox$1(_e);else if(_e.type==="FeatureCollection")et=turfBBox$1(_e);else throw new Error("invalid geojson");return{minX:et[0],minY:et[1],maxX:et[2],maxY:et[3]}},$}geojsonRbush$1.exports=geojsonRbush;geojsonRbush$1.exports.default=geojsonRbush;var geojsonRbushExports=geojsonRbush$1.exports;const rbush$1=getDefaultExportFromCjs(geojsonRbushExports);function lineSegment(j){if(!j)throw new Error("geojson is required");var $=[];return flattenEach$1(j,function(_e){lineSegmentFeature(_e,$)}),featureCollection$1($)}function lineSegmentFeature(j,$){var _e=[],et=j.geometry;if(et!==null){switch(et.type){case"Polygon":_e=getCoords$1(et);break;case"LineString":_e=[getCoords$1(et)]}_e.forEach(function(tt){var rt=createSegments(tt,j.properties);rt.forEach(function(nt){nt.id=$.length,$.push(nt)})})}}function createSegments(j,$){var _e=[];return j.reduce(function(et,tt){var rt=lineString([et,tt],$);return rt.bbox=bbox(et,tt),_e.push(rt),tt}),_e}function bbox(j,$){var _e=j[0],et=j[1],tt=$[0],rt=$[1],nt=_ett?_e:tt,At=et>rt?et:rt;return[nt,it,ot,At]}const es$4=Object.freeze(Object.defineProperty({__proto__:null,default:lineSegment},Symbol.toStringTag,{value:"Module"}));var js$s={};Object.defineProperty(js$s,"__esModule",{value:!0});var helpers_1$h=require$$0$5;function getCoord(j){if(!j)throw new Error("coord is required");if(!Array.isArray(j)){if(j.type==="Feature"&&j.geometry!==null&&j.geometry.type==="Point")return j.geometry.coordinates;if(j.type==="Point")return j.coordinates}if(Array.isArray(j)&&j.length>=2&&!Array.isArray(j[0])&&!Array.isArray(j[1]))return j;throw new Error("coord must be GeoJSON Point or an Array of numbers")}var getCoord_1=js$s.getCoord=getCoord;function getCoords(j){if(Array.isArray(j))return j;if(j.type==="Feature"){if(j.geometry!==null)return j.geometry.coordinates}else if(j.coordinates)return j.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}js$s.getCoords=getCoords;function containsNumber(j){if(j.length>1&&helpers_1$h.isNumber(j[0])&&helpers_1$h.isNumber(j[1]))return!0;if(Array.isArray(j[0])&&j[0].length)return containsNumber(j[0]);throw new Error("coordinates must only contain numbers")}js$s.containsNumber=containsNumber;function geojsonType(j,$,_e){if(!$||!_e)throw new Error("type and name required");if(!j||j.type!==$)throw new Error("Invalid input to "+_e+": must be a "+$+", given "+j.type)}js$s.geojsonType=geojsonType;function featureOf(j,$,_e){if(!j)throw new Error("No feature passed");if(!_e)throw new Error(".featureOf() requires a name");if(!j||j.type!=="Feature"||!j.geometry)throw new Error("Invalid input to "+_e+", Feature with geometry required");if(!j.geometry||j.geometry.type!==$)throw new Error("Invalid input to "+_e+": must be a "+$+", given "+j.geometry.type)}js$s.featureOf=featureOf;function collectionOf(j,$,_e){if(!j)throw new Error("No featureCollection passed");if(!_e)throw new Error(".collectionOf() requires a name");if(!j||j.type!=="FeatureCollection")throw new Error("Invalid input to "+_e+", FeatureCollection required");for(var et=0,tt=j.features;et line1 must only contain 2 coordinates");if(et.length!==2)throw new Error(" line2 must only contain 2 coordinates");var tt=_e[0][0],rt=_e[0][1],nt=_e[1][0],it=_e[1][1],ot=et[0][0],At=et[0][1],ut=et[1][0],ft=et[1][1],dt=(ft-At)*(nt-tt)-(ut-ot)*(it-rt),Et=(ut-ot)*(rt-At)-(ft-At)*(tt-ot),Bt=(nt-tt)*(rt-At)-(it-rt)*(tt-ot);if(dt===0)return null;var St=Et/dt,Dt=Bt/dt;if(St>=0&&St<=1&&Dt>=0&&Dt<=1){var $t=tt+St*(nt-tt),Rt=rt+St*(it-rt);return point([$t,Rt])}return null}const es=Object.freeze(Object.defineProperty({__proto__:null,default:lineIntersect$1},Symbol.toStringTag,{value:"Module"}));function nearestPointOnLine$2(j,$,_e){_e===void 0&&(_e={});var et=point([1/0,1/0],{dist:1/0}),tt=0;return flattenEach$1(j,function(rt){for(var nt=getCoords$1(rt),it=0;it0&&(Dt=St.features[0],Dt.properties.dist=distance$2($,Dt,_e),Dt.properties.location=tt+distance$2(ot,Dt,_e)),ot.properties.dist=0&&toStr$3.call($.callee)==="[object Function]"),et},implementation$8,hasRequiredImplementation;function requireImplementation(){if(hasRequiredImplementation)return implementation$8;hasRequiredImplementation=1;var j;if(!Object.keys){var $=Object.prototype.hasOwnProperty,_e=Object.prototype.toString,et=isArguments$2,tt=Object.prototype.propertyIsEnumerable,rt=!tt.call({toString:null},"toString"),nt=tt.call(function(){},"prototype"),it=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],ot=function(dt){var Et=dt.constructor;return Et&&Et.prototype===dt},At={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},ut=function(){if(typeof window>"u")return!1;for(var dt in window)try{if(!At["$"+dt]&&$.call(window,dt)&&window[dt]!==null&&typeof window[dt]=="object")try{ot(window[dt])}catch{return!0}}catch{return!0}return!1}(),ft=function(dt){if(typeof window>"u"||!ut)return ot(dt);try{return ot(dt)}catch{return!1}};j=function(Et){var Bt=Et!==null&&typeof Et=="object",St=_e.call(Et)==="[object Function]",Dt=et(Et),$t=Bt&&_e.call(Et)==="[object String]",Rt=[];if(!Bt&&!St&&!Dt)throw new TypeError("Object.keys called on a non-object");var wt=nt&&St;if($t&&Et.length>0&&!$.call(Et,0))for(var xt=0;xt0)for(var Nt=0;Nt"u"||!getProto$1?undefined$1:getProto$1(Uint8Array),INTRINSICS={"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1(getProto$1([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols$1||!getProto$1?undefined$1:getProto$1(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols$1||!getProto$1?undefined$1:getProto$1(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols$1&&getProto$1?getProto$1(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols$1?Symbol:undefined$1,"%SyntaxError%":$SyntaxError,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto$1)try{null.error}catch(j){var errorProto=getProto$1(getProto$1(j));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function j($){var _e;if($==="%AsyncFunction%")_e=getEvalledConstructor("async function () {}");else if($==="%GeneratorFunction%")_e=getEvalledConstructor("function* () {}");else if($==="%AsyncGeneratorFunction%")_e=getEvalledConstructor("async function* () {}");else if($==="%AsyncGenerator%"){var et=j("%AsyncGeneratorFunction%");et&&(_e=et.prototype)}else if($==="%AsyncIteratorPrototype%"){var tt=j("%AsyncGenerator%");tt&&getProto$1&&(_e=getProto$1(tt.prototype))}return INTRINSICS[$]=_e,_e},LEGACY_ALIASES={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind3=functionBind,hasOwn=src,$concat=bind3.call(Function.call,Array.prototype.concat),$spliceApply=bind3.call(Function.apply,Array.prototype.splice),$replace=bind3.call(Function.call,String.prototype.replace),$strSlice=bind3.call(Function.call,String.prototype.slice),$exec$1=bind3.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function($){var _e=$strSlice($,0,1),et=$strSlice($,-1);if(_e==="%"&&et!=="%")throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");if(et==="%"&&_e!=="%")throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");var tt=[];return $replace($,rePropName,function(rt,nt,it,ot){tt[tt.length]=it?$replace(ot,reEscapeChar,"$1"):nt||rt}),tt},getBaseIntrinsic=function($,_e){var et=$,tt;if(hasOwn(LEGACY_ALIASES,et)&&(tt=LEGACY_ALIASES[et],et="%"+tt[0]+"%"),hasOwn(INTRINSICS,et)){var rt=INTRINSICS[et];if(rt===needsEval&&(rt=doEval(et)),typeof rt>"u"&&!_e)throw new $TypeError("intrinsic "+$+" exists, but is not available. Please file an issue!");return{alias:tt,name:et,value:rt}}throw new $SyntaxError("intrinsic "+$+" does not exist!")},getIntrinsic=function($,_e){if(typeof $!="string"||$.length===0)throw new $TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof _e!="boolean")throw new $TypeError('"allowMissing" argument must be a boolean');if($exec$1(/^%?[^%]*%?$/,$)===null)throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var et=stringToPath($),tt=et.length>0?et[0]:"",rt=getBaseIntrinsic("%"+tt+"%",_e),nt=rt.name,it=rt.value,ot=!1,At=rt.alias;At&&(tt=At[0],$spliceApply(et,$concat([0,1],At)));for(var ut=1,ft=!0;ut=et.length){var St=$gOPD$1(it,dt);ft=!!St,ft&&"get"in St&&!("originalValue"in St.get)?it=St.get:it=it[dt]}else ft=hasOwn(it,dt),it=it[dt];ft&&!ot&&(INTRINSICS[nt]=it)}}return it},callBind$3={exports:{}};(function(j){var $=functionBind,_e=getIntrinsic,et=_e("%Function.prototype.apply%"),tt=_e("%Function.prototype.call%"),rt=_e("%Reflect.apply%",!0)||$.call(tt,et),nt=_e("%Object.getOwnPropertyDescriptor%",!0),it=_e("%Object.defineProperty%",!0),ot=_e("%Math.max%");if(it)try{it({},"a",{value:1})}catch{it=null}j.exports=function(ft){var dt=rt($,tt,arguments);if(nt&&it){var Et=nt(dt,"length");Et.configurable&&it(dt,"length",{value:1+ot(0,ft.length-(arguments.length-1))})}return dt};var At=function(){return rt($,et,arguments)};it?it(j.exports,"apply",{value:At}):j.exports.apply=At})(callBind$3);var callBindExports=callBind$3.exports,GetIntrinsic$1=getIntrinsic,callBind$2=callBindExports,$indexOf=callBind$2(GetIntrinsic$1("String.prototype.indexOf")),callBound$2=function($,_e){var et=GetIntrinsic$1($,!!_e);return typeof et=="function"&&$indexOf($,".prototype.")>-1?callBind$2(et):et},hasToStringTag$2=shams(),callBound$1=callBound$2,$toString$1=callBound$1("Object.prototype.toString"),isStandardArguments=function($){return hasToStringTag$2&&$&&typeof $=="object"&&Symbol.toStringTag in $?!1:$toString$1($)==="[object Arguments]"},isLegacyArguments=function($){return isStandardArguments($)?!0:$!==null&&typeof $=="object"&&typeof $.length=="number"&&$.length>=0&&$toString$1($)!=="[object Array]"&&$toString$1($.callee)==="[object Function]"},supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;var isArguments$1=supportsStandardArguments?isStandardArguments:isLegacyArguments,GetIntrinsic2=getIntrinsic,$defineProperty=GetIntrinsic2("%Object.defineProperty%",!0),hasPropertyDescriptors$1=function(){if($defineProperty)try{return $defineProperty({},"a",{value:1}),!0}catch{return!1}return!1};hasPropertyDescriptors$1.hasArrayLengthDefineBug=function(){if(!hasPropertyDescriptors$1())return null;try{return $defineProperty([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors$1,keys2=objectKeys$1,hasSymbols2=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",toStr$1=Object.prototype.toString,concat=Array.prototype.concat,origDefineProperty=Object.defineProperty,isFunction=function(j){return typeof j=="function"&&toStr$1.call(j)==="[object Function]"},hasPropertyDescriptors2=hasPropertyDescriptors_1(),supportsDescriptors$2=origDefineProperty&&hasPropertyDescriptors2,defineProperty$1=function(j,$,_e,et){if($ in j){if(et===!0){if(j[$]===_e)return}else if(!isFunction(et)||!et())return}supportsDescriptors$2?origDefineProperty(j,$,{configurable:!0,enumerable:!1,value:_e,writable:!0}):j[$]=_e},defineProperties=function(j,$){var _e=arguments.length>2?arguments[2]:{},et=keys2($);hasSymbols2&&(et=concat.call(et,Object.getOwnPropertySymbols($)));for(var tt=0;tt0&&typeof j[0]!="number")}function objEquiv(j,$,_e){var et,tt;if(typeof j!=typeof $||isUndefinedOrNull(j)||isUndefinedOrNull($)||j.prototype!==$.prototype||isArguments4(j)!==isArguments4($))return!1;var rt=isRegex3(j),nt=isRegex3($);if(rt!==nt)return!1;if(rt||nt)return j.source===$.source&&flags(j)===flags($);if(isDate(j)&&isDate($))return getTime.call(j)===getTime.call($);var it=isBuffer(j),ot=isBuffer($);if(it!==ot)return!1;if(it||ot){if(j.length!==$.length)return!1;for(et=0;et=0;et--)if(At[et]!=ut[et])return!1;for(et=At.length-1;et>=0;et--)if(tt=At[et],!deepEqual$1(j[tt],$[tt],_e))return!1;return!0}var deepEqual_1=deepEqual$1;const equal=getDefaultExportFromCjs(deepEqual_1);function lineOverlap(j,$,_e){if(_e===void 0&&(_e={}),_e=_e||{},!isObject$3(_e))throw new Error("options is invalid");var et=_e.tolerance||0,tt=[],rt=rbush$1(),nt=lineSegment(j);rt.load(nt);var it;return segmentEach$1($,function(ot){var At=!1;ot&&(featureEach$2(rt.search(ot),function(ut){if(At===!1){var ft=getCoords$1(ot).sort(),dt=getCoords$1(ut).sort();equal(ft,dt)||(et===0?booleanPointOnLine(ft[0],ut)&&booleanPointOnLine(ft[1],ut):nearestPointOnLine$2(ut,ft[0]).properties.dist<=et&&nearestPointOnLine$2(ut,ft[1]).properties.dist<=et)?(At=!0,it?it=concatSegment(it,ot):it=ot):(et===0?booleanPointOnLine(dt[0],ot)&&booleanPointOnLine(dt[1],ot):nearestPointOnLine$2(ot,dt[0]).properties.dist<=et&&nearestPointOnLine$2(ot,dt[1]).properties.dist<=et)&&(it?it=concatSegment(it,ut):it=ut)}}),At===!1&&it&&(tt.push(it),it=void 0))}),it&&tt.push(it),featureCollection$1(tt)}function concatSegment(j,$){var _e=getCoords$1($),et=getCoords$1(j),tt=et[0],rt=et[et.length-1],nt=j.geometry.coordinates;return equal(_e[0],tt)?nt.unshift(_e[1]):equal(_e[0],rt)?nt.push(_e[1]):equal(_e[1],tt)?nt.unshift(_e[0]):equal(_e[1],rt)&&nt.push(_e[0]),j}var deepEqual=deepEqual_1,Equality=function(j){this.precision=j&&j.precision?j.precision:17,this.direction=j&&j.direction?j.direction:!1,this.pseudoNode=j&&j.pseudoNode?j.pseudoNode:!1,this.objectComparator=j&&j.objectComparator?j.objectComparator:objectComparator};Equality.prototype.compare=function(j,$){if(j.type!==$.type||!sameLength(j,$))return!1;switch(j.type){case"Point":return this.compareCoord(j.coordinates,$.coordinates);case"LineString":return this.compareLine(j.coordinates,$.coordinates,0,!1);case"Polygon":return this.comparePolygon(j,$);case"Feature":return this.compareFeature(j,$);default:if(j.type.indexOf("Multi")===0){var _e=this,et=explode(j),tt=explode($);return et.every(function(rt){return this.some(function(nt){return _e.compare(rt,nt)})},tt)}}return!1};function explode(j){return j.coordinates.map(function($){return{type:j.type.replace("Multi",""),coordinates:$}})}function sameLength(j,$){return j.hasOwnProperty("coordinates")?j.coordinates.length===$.coordinates.length:j.length===$.length}Equality.prototype.compareCoord=function(j,$){if(j.length!==$.length)return!1;for(var _e=0;_e=0&&(_e=[].concat(j.slice(et,j.length),j.slice(1,et+1))),_e};Equality.prototype.comparePath=function(j,$){var _e=this;return j.every(function(et,tt){return _e.compareCoord(et,this[tt])},$)};Equality.prototype.comparePolygon=function(j,$){if(this.compareLine(j.coordinates[0],$.coordinates[0],1,!0)){var _e=j.coordinates.slice(1,j.coordinates.length),et=$.coordinates.slice(1,$.coordinates.length),tt=this;return _e.every(function(rt){return this.some(function(nt){return tt.compareLine(rt,nt,1,!0)})},et)}else return!1};Equality.prototype.compareFeature=function(j,$){return j.id!==$.id||!this.objectComparator(j.properties,$.properties)||!this.compareBBox(j,$)?!1:this.compare(j.geometry,$.geometry)};Equality.prototype.compareBBox=function(j,$){return!!(!j.bbox&&!$.bbox||j.bbox&&$.bbox&&this.compareCoord(j.bbox,$.bbox))};Equality.prototype.removePseudo=function(j){return j};function objectComparator(j,$){return deepEqual(j,$,{strict:!0})}var geojsonEquality=Equality;const GeojsonEquality=getDefaultExportFromCjs(geojsonEquality);function booleanOverlap(j,$){var _e=getGeom$1(j),et=getGeom$1($),tt=_e.type,rt=et.type;if(tt==="MultiPoint"&&rt!=="MultiPoint"||(tt==="LineString"||tt==="MultiLineString")&&rt!=="LineString"&&rt!=="MultiLineString"||(tt==="Polygon"||tt==="MultiPolygon")&&rt!=="Polygon"&&rt!=="MultiPolygon")throw new Error("features must be of the same type");if(tt==="Point")throw new Error("Point geometry not supported");var nt=new GeojsonEquality({precision:6});if(nt.compare(j,$))return!1;var it=0;switch(tt){case"MultiPoint":for(var ot=0;ot<_e.coordinates.length;ot++)for(var At=0;At0}var distEs6$2={},style$1$1={};Object.defineProperty(style$1$1,"__esModule",{value:!0});style$1$1.DEFAULT_STYLE=style$1$1.MAX_ARROWS=style$1$1.DEFAULT_ARROWS=style$1$1.ArrowStyles=void 0;var ArrowStyles$1={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3};style$1$1.ArrowStyles=ArrowStyles$1;var DEFAULT_ARROWS$1=1;style$1$1.DEFAULT_ARROWS=DEFAULT_ARROWS$1;var MAX_ARROWS$1=3;style$1$1.MAX_ARROWS=MAX_ARROWS$1;var DEFAULT_STYLE={arrowColor:[0,0,0,1],arrowCount:DEFAULT_ARROWS$1,arrowStyle:ArrowStyles$1.NONE,fillColor:[0,0,0,1],lineColor:[0,0,0,1],lineWidthMeters:5,outlineRadiusMeters:0,opacity:1,zLevel:0};style$1$1.DEFAULT_STYLE=DEFAULT_STYLE;var deckDrawer={};const require$$0$4=getAugmentedNamespace(esm$3);var js$r={};Object.defineProperty(js$r,"__esModule",{value:!0});var helpers_1$g=js$v;function bboxPolygon(j,$){$===void 0&&($={});var _e=Number(j[0]),et=Number(j[1]),tt=Number(j[2]),rt=Number(j[3]);if(j.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var nt=[_e,et],it=[_e,rt],ot=[tt,rt],At=[tt,et];return helpers_1$g.polygon([[nt,At,ot,it,nt]],$.properties,{bbox:j,id:$.id})}js$r.default=bboxPolygon;var js$q={exports:{}},js$p={},__importDefault$7=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$p,"__esModule",{value:!0});var bbox_1=__importDefault$7(js$t),helpers_1$f=js$v;function center$2(j,$){$===void 0&&($={});var _e=bbox_1.default(j),et=(_e[0]+_e[2])/2,tt=(_e[1]+_e[3])/2;return helpers_1$f.point([et,tt],$.properties,$)}js$p.default=center$2;var jsts_min={exports:{}};(function(j,$){(function(_e,et){et($)})(commonjsGlobal,function(_e){function et(){}function tt(st){this.message=st||""}function rt(st){this.message=st||""}function nt(st){this.message=st||""}function it(){}function ot(st){return st===null?lo:st.color}function At(st){return st===null?null:st.parent}function ut(st,ct){st!==null&&(st.color=ct)}function ft(st){return st===null?null:st.left}function dt(st){return st===null?null:st.right}function Et(){this.root_=null,this.size_=0}function Bt(){}function St(){this.array_=[],arguments[0]instanceof qn&&this.addAll(arguments[0])}function Dt(){}function $t(st){this.message=st||""}function Rt(){this.array_=[]}"fill"in Array.prototype||Object.defineProperty(Array.prototype,"fill",{configurable:!0,value:function(st){if(this===void 0||this===null)throw new TypeError(this+" is not an object");var ct=Object(this),ht=Math.max(Math.min(ct.length,9007199254740991),0)||0,Ct=1 in arguments&&parseInt(Number(arguments[1]),10)||0;Ct=Ct<0?Math.max(ht+Ct,0):Math.min(Ct,ht);var bt=2 in arguments&&arguments[2]!==void 0?parseInt(Number(arguments[2]),10)||0:ht;for(bt=bt<0?Math.max(ht+arguments[2],0):Math.min(bt,ht);Ctct.x?1:this.yct.y?1:0},Ht.prototype.clone=function(){},Ht.prototype.copy=function(){return new Ht(this)},Ht.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},Ht.prototype.distance3D=function(st){var ct=this.x-st.x,ht=this.y-st.y,Ct=this.z-st.z;return Math.sqrt(ct*ct+ht*ht+Ct*Ct)},Ht.prototype.distance=function(st){var ct=this.x-st.x,ht=this.y-st.y;return Math.sqrt(ct*ct+ht*ht)},Ht.prototype.hashCode=function(){var st=17;return st=37*st+Ht.hashCode(this.x),st=37*st+Ht.hashCode(this.y)},Ht.prototype.setCoordinate=function(st){this.x=st.x,this.y=st.y,this.z=st.z},Ht.prototype.interfaces_=function(){return[kt,Jt,et]},Ht.prototype.getClass=function(){return Ht},Ht.hashCode=function(){if(arguments.length===1){var st=arguments[0],ct=Nt.doubleToLongBits(st);return Math.trunc((ct^ct)>>>32)}},Gt.DimensionalComparator.get=function(){return Kt},Gt.serialVersionUID.get=function(){return 6683108902428367e3},Gt.NULL_ORDINATE.get=function(){return Nt.NaN},Gt.X.get=function(){return 0},Gt.Y.get=function(){return 1},Gt.Z.get=function(){return 2},Object.defineProperties(Ht,Gt);var Kt=function(st){if(this._dimensionsToTest=2,arguments.length!==0){if(arguments.length===1){var ct=arguments[0];if(ct!==2&&ct!==3)throw new xt("only 2 or 3 dimensions may be specified");this._dimensionsToTest=ct}}};Kt.prototype.compare=function(st,ct){var ht=st,Ct=ct,bt=Kt.compare(ht.x,Ct.x);if(bt!==0)return bt;var Ft=Kt.compare(ht.y,Ct.y);return Ft!==0?Ft:this._dimensionsToTest<=2?0:Kt.compare(ht.z,Ct.z)},Kt.prototype.interfaces_=function(){return[jt]},Kt.prototype.getClass=function(){return Kt},Kt.compare=function(st,ct){return stct?1:Nt.isNaN(st)?Nt.isNaN(ct)?0:-1:Nt.isNaN(ct)?1:0};var Wt=function(){};Wt.prototype.create=function(){},Wt.prototype.interfaces_=function(){return[]},Wt.prototype.getClass=function(){return Wt};var Vt=function(){},ur={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};Vt.prototype.interfaces_=function(){return[]},Vt.prototype.getClass=function(){return Vt},Vt.toLocationSymbol=function(st){switch(st){case Vt.EXTERIOR:return"e";case Vt.BOUNDARY:return"b";case Vt.INTERIOR:return"i";case Vt.NONE:return"-"}throw new xt("Unknown location value: "+st)},ur.INTERIOR.get=function(){return 0},ur.BOUNDARY.get=function(){return 1},ur.EXTERIOR.get=function(){return 2},ur.NONE.get=function(){return-1},Object.defineProperties(Vt,ur);var Ar=function(st,ct){return st.interfaces_&&st.interfaces_().indexOf(ct)>-1},hr=function(){},sr={LOG_10:{configurable:!0}};hr.prototype.interfaces_=function(){return[]},hr.prototype.getClass=function(){return hr},hr.log10=function(st){var ct=Math.log(st);return Nt.isInfinite(ct)||Nt.isNaN(ct)?ct:ct/hr.LOG_10},hr.min=function(st,ct,ht,Ct){var bt=st;return ctht?ht:st}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var Ct=arguments[0],bt=arguments[1],Ft=arguments[2];return CtFt?Ft:Ct}},hr.wrap=function(st,ct){return st<0?ct- -st%ct:st%ct},hr.max=function(){if(arguments.length===3){var st=arguments[0],ct=arguments[1],ht=arguments[2],Ct=st;return ct>Ct&&(Ct=ct),ht>Ct&&(Ct=ht),Ct}if(arguments.length===4){var bt=arguments[0],Ft=arguments[1],zt=arguments[2],nr=arguments[3],dr=bt;return Ft>dr&&(dr=Ft),zt>dr&&(dr=zt),nr>dr&&(dr=nr),dr}},hr.average=function(st,ct){return(st+ct)/2},sr.LOG_10.get=function(){return Math.log(10)},Object.defineProperties(hr,sr);var ar=function(st){this.str=st};ar.prototype.append=function(st){this.str+=st},ar.prototype.setCharAt=function(st,ct){this.str=this.str.substr(0,st)+ct+this.str.substr(st+1)},ar.prototype.toString=function(st){return this.str};var Yt=function(st){this.value=st};Yt.prototype.intValue=function(){return this.value},Yt.prototype.compareTo=function(st){return this.valuest?1:0},Yt.isNaN=function(st){return Number.isNaN(st)};var pr=function(){};pr.isWhitespace=function(st){return st<=32&&st>=0||st===127},pr.toUpperCase=function(st){return st.toUpperCase()};var Zt=function st(){if(this._hi=0,this._lo=0,arguments.length===0)this.init(0);else if(arguments.length===1){if(typeof arguments[0]=="number"){var ct=arguments[0];this.init(ct)}else if(arguments[0]instanceof st){var ht=arguments[0];this.init(ht)}else if(typeof arguments[0]=="string"){var Ct=arguments[0];st.call(this,st.parse(Ct))}}else if(arguments.length===2){var bt=arguments[0],Ft=arguments[1];this.init(bt,Ft)}},mr={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};Zt.prototype.le=function(st){return(this._hi9?(kr=!0,Kr="9"):Kr="0"+Br,zt.append(Kr),ht=ht.subtract(Zt.valueOf(Br)).multiply(Zt.TEN),kr&&ht.selfAdd(Zt.TEN);var qr=!0,en=Zt.magnitude(ht._hi);if(en<0&&Math.abs(en)>=nr-dr&&(qr=!1),!qr)break}return ct[0]=Ct,zt.toString()},Zt.prototype.sqr=function(){return this.multiply(this)},Zt.prototype.doubleValue=function(){return this._hi+this._lo},Zt.prototype.subtract=function(){if(arguments[0]instanceof Zt){var st=arguments[0];return this.add(st.negate())}if(typeof arguments[0]=="number"){var ct=arguments[0];return this.add(-ct)}},Zt.prototype.equals=function(){if(arguments.length===1){var st=arguments[0];return this._hi===st._hi&&this._lo===st._lo}},Zt.prototype.isZero=function(){return this._hi===0&&this._lo===0},Zt.prototype.selfSubtract=function(){if(arguments[0]instanceof Zt){var st=arguments[0];return this.isNaN()?this:this.selfAdd(-st._hi,-st._lo)}if(typeof arguments[0]=="number"){var ct=arguments[0];return this.isNaN()?this:this.selfAdd(-ct,0)}},Zt.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null},Zt.prototype.min=function(st){return this.le(st)?this:st},Zt.prototype.selfDivide=function(){if(arguments.length===1){if(arguments[0]instanceof Zt){var st=arguments[0];return this.selfDivide(st._hi,st._lo)}if(typeof arguments[0]=="number"){var ct=arguments[0];return this.selfDivide(ct,0)}}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1],bt=null,Ft=null,zt=null,nr=null,dr=null,Br=null,kr=null,Kr=null;return dr=this._hi/ht,Br=Zt.SPLIT*dr,bt=Br-dr,Kr=Zt.SPLIT*ht,bt=Br-bt,Ft=dr-bt,zt=Kr-ht,kr=dr*ht,zt=Kr-zt,nr=ht-zt,Kr=bt*zt-kr+bt*nr+Ft*zt+Ft*nr,Br=(this._hi-kr-Kr+this._lo-dr*Ct)/ht,Kr=dr+Br,this._hi=Kr,this._lo=dr-Kr+Br,this}},Zt.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"},Zt.prototype.divide=function(){if(arguments[0]instanceof Zt){var st=arguments[0],ct=null,ht=null,Ct=null,bt=null,Ft=null,zt=null,nr=null,dr=null;return ht=(Ft=this._hi/st._hi)-(ct=(zt=Zt.SPLIT*Ft)-(ct=zt-Ft)),dr=ct*(Ct=(dr=Zt.SPLIT*st._hi)-(Ct=dr-st._hi))-(nr=Ft*st._hi)+ct*(bt=st._hi-Ct)+ht*Ct+ht*bt,zt=(this._hi-nr-dr+this._lo-Ft*st._lo)/st._hi,new Zt(dr=Ft+zt,Ft-dr+zt)}if(typeof arguments[0]=="number"){var Br=arguments[0];return Nt.isNaN(Br)?Zt.createNaN():Zt.copy(this).selfDivide(Br,0)}},Zt.prototype.ge=function(st){return(this._hi>st._hi||this._hi===st._hi)&&this._lo>=st._lo},Zt.prototype.pow=function(st){if(st===0)return Zt.valueOf(1);var ct=new Zt(this),ht=Zt.valueOf(1),Ct=Math.abs(st);if(Ct>1)for(;Ct>0;)Ct%2==1&&ht.selfMultiply(ct),(Ct/=2)>0&&(ct=ct.sqr());else ht=ct;return st<0?ht.reciprocal():ht},Zt.prototype.ceil=function(){if(this.isNaN())return Zt.NaN;var st=Math.ceil(this._hi),ct=0;return st===this._hi&&(ct=Math.ceil(this._lo)),new Zt(st,ct)},Zt.prototype.compareTo=function(st){var ct=st;return this._hict._hi?1:this._loct._lo?1:0},Zt.prototype.rint=function(){return this.isNaN()?this:this.add(.5).floor()},Zt.prototype.setValue=function(){if(arguments[0]instanceof Zt){var st=arguments[0];return this.init(st),this}if(typeof arguments[0]=="number"){var ct=arguments[0];return this.init(ct),this}},Zt.prototype.max=function(st){return this.ge(st)?this:st},Zt.prototype.sqrt=function(){if(this.isZero())return Zt.valueOf(0);if(this.isNegative())return Zt.NaN;var st=1/Math.sqrt(this._hi),ct=this._hi*st,ht=Zt.valueOf(ct),Ct=this.subtract(ht.sqr())._hi*(.5*st);return ht.add(Ct)},Zt.prototype.selfAdd=function(){if(arguments.length===1){if(arguments[0]instanceof Zt){var st=arguments[0];return this.selfAdd(st._hi,st._lo)}if(typeof arguments[0]=="number"){var ct=arguments[0],ht=null,Ct=null,bt=null,Ft=null,zt=null,nr=null;return bt=this._hi+ct,zt=bt-this._hi,Ft=bt-zt,Ft=ct-zt+(this._hi-Ft),nr=Ft+this._lo,ht=bt+nr,Ct=nr+(bt-ht),this._hi=ht+Ct,this._lo=Ct+(ht-this._hi),this}}else if(arguments.length===2){var dr=arguments[0],Br=arguments[1],kr=null,Kr=null,qr=null,en=null,Dr=null,gn=null,mn=null;en=this._hi+dr,Kr=this._lo+Br,Dr=en-(gn=en-this._hi),qr=Kr-(mn=Kr-this._lo);var yn=(kr=en+(gn=(Dr=dr-gn+(this._hi-Dr))+Kr))+(gn=(qr=Br-mn+(this._lo-qr))+(gn+(en-kr))),sn=gn+(kr-yn);return this._hi=yn,this._lo=sn,this}},Zt.prototype.selfMultiply=function(){if(arguments.length===1){if(arguments[0]instanceof Zt){var st=arguments[0];return this.selfMultiply(st._hi,st._lo)}if(typeof arguments[0]=="number"){var ct=arguments[0];return this.selfMultiply(ct,0)}}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1],bt=null,Ft=null,zt=null,nr=null,dr=null,Br=null;bt=(dr=Zt.SPLIT*this._hi)-this._hi,Br=Zt.SPLIT*ht,bt=dr-bt,Ft=this._hi-bt,zt=Br-ht;var kr=(dr=this._hi*ht)+(Br=bt*(zt=Br-zt)-dr+bt*(nr=ht-zt)+Ft*zt+Ft*nr+(this._hi*Ct+this._lo*ht)),Kr=Br+(bt=dr-kr);return this._hi=kr,this._lo=Kr,this}},Zt.prototype.selfSqr=function(){return this.selfMultiply(this)},Zt.prototype.floor=function(){if(this.isNaN())return Zt.NaN;var st=Math.floor(this._hi),ct=0;return st===this._hi&&(ct=Math.floor(this._lo)),new Zt(st,ct)},Zt.prototype.negate=function(){return this.isNaN()?this:new Zt(-this._hi,-this._lo)},Zt.prototype.clone=function(){},Zt.prototype.multiply=function(){if(arguments[0]instanceof Zt){var st=arguments[0];return st.isNaN()?Zt.createNaN():Zt.copy(this).selfMultiply(st)}if(typeof arguments[0]=="number"){var ct=arguments[0];return Nt.isNaN(ct)?Zt.createNaN():Zt.copy(this).selfMultiply(ct,0)}},Zt.prototype.isNaN=function(){return Nt.isNaN(this._hi)},Zt.prototype.intValue=function(){return Math.trunc(this._hi)},Zt.prototype.toString=function(){var st=Zt.magnitude(this._hi);return st>=-3&&st<=20?this.toStandardNotation():this.toSciNotation()},Zt.prototype.toStandardNotation=function(){var st=this.getSpecialNumberString();if(st!==null)return st;var ct=new Array(1).fill(null),ht=this.extractSignificantDigits(!0,ct),Ct=ct[0]+1,bt=ht;if(ht.charAt(0)===".")bt="0"+ht;else if(Ct<0)bt="0."+Zt.stringOfChar("0",-Ct)+ht;else if(ht.indexOf(".")===-1){var Ft=Ct-ht.length;bt=ht+Zt.stringOfChar("0",Ft)+".0"}return this.isNegative()?"-"+bt:bt},Zt.prototype.reciprocal=function(){var st=null,ct=null,ht=null,Ct=null,bt=null,Ft=null,zt=null,nr=null;ct=(bt=1/this._hi)-(st=(Ft=Zt.SPLIT*bt)-(st=Ft-bt)),ht=(nr=Zt.SPLIT*this._hi)-this._hi;var dr=bt+(Ft=(1-(zt=bt*this._hi)-(nr=st*(ht=nr-ht)-zt+st*(Ct=this._hi-ht)+ct*ht+ct*Ct)-bt*this._lo)/this._hi);return new Zt(dr,bt-dr+Ft)},Zt.prototype.toSciNotation=function(){if(this.isZero())return Zt.SCI_NOT_ZERO;var st=this.getSpecialNumberString();if(st!==null)return st;var ct=new Array(1).fill(null),ht=this.extractSignificantDigits(!1,ct),Ct=Zt.SCI_NOT_EXPONENT_CHAR+ct[0];if(ht.charAt(0)==="0")throw new Error("Found leading zero: "+ht);var bt="";ht.length>1&&(bt=ht.substring(1));var Ft=ht.charAt(0)+"."+bt;return this.isNegative()?"-"+Ft+Ct:Ft+Ct},Zt.prototype.abs=function(){return this.isNaN()?Zt.NaN:this.isNegative()?this.negate():new Zt(this)},Zt.prototype.isPositive=function(){return(this._hi>0||this._hi===0)&&this._lo>0},Zt.prototype.lt=function(st){return(this._hist._hi||this._hi===st._hi)&&this._lo>st._lo},Zt.prototype.isNegative=function(){return(this._hi<0||this._hi===0)&&this._lo<0},Zt.prototype.trunc=function(){return this.isNaN()?Zt.NaN:this.isPositive()?this.floor():this.ceil()},Zt.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0},Zt.prototype.interfaces_=function(){return[et,kt,Jt]},Zt.prototype.getClass=function(){return Zt},Zt.sqr=function(st){return Zt.valueOf(st).selfMultiply(st)},Zt.valueOf=function(){if(typeof arguments[0]=="string"){var st=arguments[0];return Zt.parse(st)}if(typeof arguments[0]=="number"){var ct=arguments[0];return new Zt(ct)}},Zt.sqrt=function(st){return Zt.valueOf(st).sqrt()},Zt.parse=function(st){for(var ct=0,ht=st.length;pr.isWhitespace(st.charAt(ct));)ct++;var Ct=!1;if(ct=ht);){var Br=st.charAt(ct);if(ct++,pr.isDigit(Br)){var kr=Br-"0";Ft.selfMultiply(Zt.TEN),Ft.selfAdd(kr),zt++}else{if(Br!=="."){if(Br==="e"||Br==="E"){var Kr=st.substring(ct);try{dr=Yt.parseInt(Kr)}catch(mn){throw mn instanceof Error?new Error("Invalid exponent "+Kr+" in string "+st):mn}break}throw new Error("Unexpected character '"+Br+"' at position "+ct+" in string "+st)}nr=zt}}var qr=Ft,en=zt-nr-dr;if(en===0)qr=Ft;else if(en>0){var Dr=Zt.TEN.pow(en);qr=Ft.divide(Dr)}else if(en<0){var gn=Zt.TEN.pow(-en);qr=Ft.multiply(gn)}return Ct?qr.negate():qr},Zt.createNaN=function(){return new Zt(Nt.NaN,Nt.NaN)},Zt.copy=function(st){return new Zt(st)},Zt.magnitude=function(st){var ct=Math.abs(st),ht=Math.log(ct)/Math.log(10),Ct=Math.trunc(Math.floor(ht));return 10*Math.pow(10,Ct)<=ct&&(Ct+=1),Ct},Zt.stringOfChar=function(st,ct){for(var ht=new ar,Ct=0;Ct0){if(Ft<=0)return vr.signum(zt);Ct=bt+Ft}else{if(!(bt<0)||Ft>=0)return vr.signum(zt);Ct=-bt-Ft}var nr=vr.DP_SAFE_EPSILON*Ct;return zt>=nr||-zt>=nr?vr.signum(zt):2},vr.signum=function(st){return st>0?1:st<0?-1:0},_r.DP_SAFE_EPSILON.get=function(){return 1e-15},Object.defineProperties(vr,_r);var Er=function(){},Lr={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};Lr.X.get=function(){return 0},Lr.Y.get=function(){return 1},Lr.Z.get=function(){return 2},Lr.M.get=function(){return 3},Er.prototype.setOrdinate=function(st,ct,ht){},Er.prototype.size=function(){},Er.prototype.getOrdinate=function(st,ct){},Er.prototype.getCoordinate=function(){},Er.prototype.getCoordinateCopy=function(st){},Er.prototype.getDimension=function(){},Er.prototype.getX=function(st){},Er.prototype.clone=function(){},Er.prototype.expandEnvelope=function(st){},Er.prototype.copy=function(){},Er.prototype.getY=function(st){},Er.prototype.toCoordinateArray=function(){},Er.prototype.interfaces_=function(){return[Jt]},Er.prototype.getClass=function(){return Er},Object.defineProperties(Er,Lr);var Rr=function(){},$r=function(st){function ct(){st.call(this,"Projective point not representable on the Cartesian plane.")}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(Rr),xr=function(){};xr.arraycopy=function(st,ct,ht,Ct,bt){for(var Ft=0,zt=ct;ztst._minx?this._minx:st._minx,ht=this._miny>st._miny?this._miny:st._miny,Ct=this._maxx=this._minx&&ct.getMaxX()<=this._maxx&&ct.getMinY()>=this._miny&&ct.getMaxY()<=this._maxy}}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1];return!this.isNull()&&ht>=this._minx&&ht<=this._maxx&&Ct>=this._miny&&Ct<=this._maxy}},Nr.prototype.intersects=function(){if(arguments.length===1){if(arguments[0]instanceof Nr){var st=arguments[0];return!this.isNull()&&!st.isNull()&&!(st._minx>this._maxx||st._maxxthis._maxy||st._maxythis._maxx||htthis._maxy||Ctthis._maxx&&(this._maxx=ct._maxx),ct._minythis._maxy&&(this._maxy=ct._maxy))}}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1];this.isNull()?(this._minx=ht,this._maxx=ht,this._miny=Ct,this._maxy=Ct):(htthis._maxx&&(this._maxx=ht),Ctthis._maxy&&(this._maxy=Ct))}},Nr.prototype.minExtent=function(){if(this.isNull())return 0;var st=this.getWidth(),ct=this.getHeight();return stct._minx?1:this._minyct._miny?1:this._maxxct._maxx?1:this._maxyct._maxy?1:0},Nr.prototype.translate=function(st,ct){if(this.isNull())return null;this.init(this.getMinX()+st,this.getMaxX()+st,this.getMinY()+ct,this.getMaxY()+ct)},Nr.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"},Nr.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1},Nr.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny},Nr.prototype.maxExtent=function(){if(this.isNull())return 0;var st=this.getWidth(),ct=this.getHeight();return st>ct?st:ct},Nr.prototype.expandBy=function(){if(arguments.length===1){var st=arguments[0];this.expandBy(st,st)}else if(arguments.length===2){var ct=arguments[0],ht=arguments[1];if(this.isNull())return null;this._minx-=ct,this._maxx+=ct,this._miny-=ht,this._maxy+=ht,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}},Nr.prototype.contains=function(){if(arguments.length===1){if(arguments[0]instanceof Nr){var st=arguments[0];return this.covers(st)}if(arguments[0]instanceof Ht){var ct=arguments[0];return this.covers(ct)}}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1];return this.covers(ht,Ct)}},Nr.prototype.centre=function(){return this.isNull()?null:new Ht((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)},Nr.prototype.init=function(){if(arguments.length===0)this.setToNull();else if(arguments.length===1){if(arguments[0]instanceof Ht){var st=arguments[0];this.init(st.x,st.x,st.y,st.y)}else if(arguments[0]instanceof Nr){var ct=arguments[0];this._minx=ct._minx,this._maxx=ct._maxx,this._miny=ct._miny,this._maxy=ct._maxy}}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1];this.init(ht.x,Ct.x,ht.y,Ct.y)}else if(arguments.length===4){var bt=arguments[0],Ft=arguments[1],zt=arguments[2],nr=arguments[3];btst._maxx&&(ct=this._minx-st._maxx);var ht=0;return this._maxyst._maxy&&(ht=this._miny-st._maxy),ct===0?ht:ht===0?ct:Math.sqrt(ct*ct+ht*ht)},Nr.prototype.hashCode=function(){var st=17;return st=37*st+Ht.hashCode(this._minx),st=37*st+Ht.hashCode(this._maxx),st=37*st+Ht.hashCode(this._miny),st=37*st+Ht.hashCode(this._maxy)},Nr.prototype.interfaces_=function(){return[kt,et]},Nr.prototype.getClass=function(){return Nr},Nr.intersects=function(){if(arguments.length===3){var st=arguments[0],ct=arguments[1],ht=arguments[2];return ht.x>=(st.xct.x?st.x:ct.x)&&ht.y>=(st.yct.y?st.y:ct.y)}if(arguments.length===4){var Ct=arguments[0],bt=arguments[1],Ft=arguments[2],zt=arguments[3],nr=Math.min(Ft.x,zt.x),dr=Math.max(Ft.x,zt.x),Br=Math.min(Ct.x,bt.x),kr=Math.max(Ct.x,bt.x);return!(Br>dr)&&!(krdr)&&!(krthis.getEdgeDistance(st,1)?(this._intLineIndex[st][0]=0,this._intLineIndex[st][1]=1):(this._intLineIndex[st][0]=1,this._intLineIndex[st][1]=0)}},lr.prototype.isProper=function(){return this.hasIntersection()&&this._isProper},lr.prototype.setPrecisionModel=function(st){this._precisionModel=st},lr.prototype.isInteriorIntersection=function(){if(arguments.length===0)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(arguments.length===1){for(var st=arguments[0],ct=0;ctbt?Ct:bt;else{var zt=Math.abs(st.x-ct.x),nr=Math.abs(st.y-ct.y);(Ft=Ct>bt?zt:nr)!==0||st.equals(ct)||(Ft=Math.max(zt,nr))}return er.isTrue(!(Ft===0&&!st.equals(ct)),"Bad distance calculation"),Ft},lr.nonRobustComputeEdgeDistance=function(st,ct,ht){var Ct=st.x-ct.x,bt=st.y-ct.y,Ft=Math.sqrt(Ct*Ct+bt*bt);return er.isTrue(!(Ft===0&&!st.equals(ct)),"Invalid distance calculation"),Ft},fr.DONT_INTERSECT.get=function(){return 0},fr.DO_INTERSECT.get=function(){return 1},fr.COLLINEAR.get=function(){return 2},fr.NO_INTERSECTION.get=function(){return 0},fr.POINT_INTERSECTION.get=function(){return 1},fr.COLLINEAR_INTERSECTION.get=function(){return 2},Object.defineProperties(lr,fr);var yr=function(st){function ct(){st.apply(this,arguments)}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.isInSegmentEnvelopes=function(ht){var Ct=new Nr(this._inputLines[0][0],this._inputLines[0][1]),bt=new Nr(this._inputLines[1][0],this._inputLines[1][1]);return Ct.contains(ht)&&bt.contains(ht)},ct.prototype.computeIntersection=function(){if(arguments.length!==3)return st.prototype.computeIntersection.apply(this,arguments);var ht=arguments[0],Ct=arguments[1],bt=arguments[2];if(this._isProper=!1,Nr.intersects(Ct,bt,ht)&&Pr.orientationIndex(Ct,bt,ht)===0&&Pr.orientationIndex(bt,Ct,ht)===0)return this._isProper=!0,(ht.equals(Ct)||ht.equals(bt))&&(this._isProper=!1),this._result=st.POINT_INTERSECTION,null;this._result=st.NO_INTERSECTION},ct.prototype.normalizeToMinimum=function(ht,Ct,bt,Ft,zt){zt.x=this.smallestInAbsValue(ht.x,Ct.x,bt.x,Ft.x),zt.y=this.smallestInAbsValue(ht.y,Ct.y,bt.y,Ft.y),ht.x-=zt.x,ht.y-=zt.y,Ct.x-=zt.x,Ct.y-=zt.y,bt.x-=zt.x,bt.y-=zt.y,Ft.x-=zt.x,Ft.y-=zt.y},ct.prototype.safeHCoordinateIntersection=function(ht,Ct,bt,Ft){var zt=null;try{zt=Fr.intersection(ht,Ct,bt,Ft)}catch(nr){if(!(nr instanceof $r))throw nr;zt=ct.nearestEndpoint(ht,Ct,bt,Ft)}return zt},ct.prototype.intersection=function(ht,Ct,bt,Ft){var zt=this.intersectionWithNormalization(ht,Ct,bt,Ft);return this.isInSegmentEnvelopes(zt)||(zt=new Ht(ct.nearestEndpoint(ht,Ct,bt,Ft))),this._precisionModel!==null&&this._precisionModel.makePrecise(zt),zt},ct.prototype.smallestInAbsValue=function(ht,Ct,bt,Ft){var zt=ht,nr=Math.abs(zt);return Math.abs(Ct)1e-4&&xr.out.println("Distance = "+zt.distance(nr))},ct.prototype.intersectionWithNormalization=function(ht,Ct,bt,Ft){var zt=new Ht(ht),nr=new Ht(Ct),dr=new Ht(bt),Br=new Ht(Ft),kr=new Ht;this.normalizeToEnvCentre(zt,nr,dr,Br,kr);var Kr=this.safeHCoordinateIntersection(zt,nr,dr,Br);return Kr.x+=kr.x,Kr.y+=kr.y,Kr},ct.prototype.computeCollinearIntersection=function(ht,Ct,bt,Ft){var zt=Nr.intersects(ht,Ct,bt),nr=Nr.intersects(ht,Ct,Ft),dr=Nr.intersects(bt,Ft,ht),Br=Nr.intersects(bt,Ft,Ct);return zt&&nr?(this._intPt[0]=bt,this._intPt[1]=Ft,st.COLLINEAR_INTERSECTION):dr&&Br?(this._intPt[0]=ht,this._intPt[1]=Ct,st.COLLINEAR_INTERSECTION):zt&&dr?(this._intPt[0]=bt,this._intPt[1]=ht,!bt.equals(ht)||nr||Br?st.COLLINEAR_INTERSECTION:st.POINT_INTERSECTION):zt&&Br?(this._intPt[0]=bt,this._intPt[1]=Ct,!bt.equals(Ct)||nr||dr?st.COLLINEAR_INTERSECTION:st.POINT_INTERSECTION):nr&&dr?(this._intPt[0]=Ft,this._intPt[1]=ht,!Ft.equals(ht)||zt||Br?st.COLLINEAR_INTERSECTION:st.POINT_INTERSECTION):nr&&Br?(this._intPt[0]=Ft,this._intPt[1]=Ct,!Ft.equals(Ct)||zt||dr?st.COLLINEAR_INTERSECTION:st.POINT_INTERSECTION):st.NO_INTERSECTION},ct.prototype.normalizeToEnvCentre=function(ht,Ct,bt,Ft,zt){var nr=ht.xCt.x?ht.x:Ct.x,kr=ht.y>Ct.y?ht.y:Ct.y,Kr=bt.xFt.x?bt.x:Ft.x,Dr=bt.y>Ft.y?bt.y:Ft.y,gn=((nr>Kr?nr:Kr)+(Brqr?dr:qr)+(kr0&&nr>0||zt<0&&nr<0)return st.NO_INTERSECTION;var dr=Pr.orientationIndex(bt,Ft,ht),Br=Pr.orientationIndex(bt,Ft,Ct);return dr>0&&Br>0||dr<0&&Br<0?st.NO_INTERSECTION:zt===0&&nr===0&&dr===0&&Br===0?this.computeCollinearIntersection(ht,Ct,bt,Ft):(zt===0||nr===0||dr===0||Br===0?(this._isProper=!1,ht.equals2D(bt)||ht.equals2D(Ft)?this._intPt[0]=ht:Ct.equals2D(bt)||Ct.equals2D(Ft)?this._intPt[0]=Ct:zt===0?this._intPt[0]=new Ht(bt):nr===0?this._intPt[0]=new Ht(Ft):dr===0?this._intPt[0]=new Ht(ht):Br===0&&(this._intPt[0]=new Ht(Ct))):(this._isProper=!0,this._intPt[0]=this.intersection(ht,Ct,bt,Ft)),st.POINT_INTERSECTION)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct.nearestEndpoint=function(ht,Ct,bt,Ft){var zt=ht,nr=Pr.distancePointLine(ht,bt,Ft),dr=Pr.distancePointLine(Ct,bt,Ft);return dr0?ht>0?-bt:bt:ht>0?bt:-bt;if(ct===0||ht===0)return Ct>0?st>0?bt:-bt:st>0?-bt:bt;if(ct>0?Ct>0?ct<=Ct||(bt=-bt,Ft=st,st=ht,ht=Ft,Ft=ct,ct=Ct,Ct=Ft):ct<=-Ct?(bt=-bt,ht=-ht,Ct=-Ct):(Ft=st,st=-ht,ht=Ft,Ft=ct,ct=-Ct,Ct=Ft):Ct>0?-ct<=Ct?(bt=-bt,st=-st,ct=-ct):(Ft=-st,st=ht,ht=Ft,Ft=-ct,ct=Ct,Ct=Ft):ct>=Ct?(st=-st,ct=-ct,ht=-ht,Ct=-Ct):(bt=-bt,Ft=-st,st=-ht,ht=Ft,Ft=-ct,ct=-Ct,Ct=Ft),st>0){if(!(ht>0)||!(st<=ht))return bt}else{if(ht>0||!(st>=ht))return-bt;bt=-bt,st=-st,ht=-ht}for(;;){if(zt=Math.floor(ht/st),ht-=zt*st,(Ct-=zt*ct)<0)return-bt;if(Ct>ct)return bt;if(st>ht+ht){if(ctCt+Ct)return-bt;ht=st-ht,Ct=ct-Ct,bt=-bt}if(Ct===0)return ht===0?0:-bt;if(ht===0||(zt=Math.floor(st/ht),st-=zt*ht,(ct-=zt*Ct)<0))return bt;if(ct>Ct)return-bt;if(ht>st+st){if(Ctct+ct)return bt;st=ht-st,ct=Ct-ct,bt=-bt}if(ct===0)return st===0?0:bt;if(st===0)return-bt}};var Wr=function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var st=arguments[0];this._p=st};Wr.prototype.countSegment=function(st,ct){if(st.xCt&&(ht=ct.x,Ct=st.x),this._p.x>=ht&&this._p.x<=Ct&&(this._isPointOnSegment=!0),null}if(st.y>this._p.y&&ct.y<=this._p.y||ct.y>this._p.y&&st.y<=this._p.y){var bt=st.x-this._p.x,Ft=st.y-this._p.y,zt=ct.x-this._p.x,nr=ct.y-this._p.y,dr=Ur.signOfDet2x2(bt,Ft,zt,nr);if(dr===0)return this._isPointOnSegment=!0,null;nr0&&this._crossingCount++}},Wr.prototype.isPointInPolygon=function(){return this.getLocation()!==Vt.EXTERIOR},Wr.prototype.getLocation=function(){return this._isPointOnSegment?Vt.BOUNDARY:this._crossingCount%2==1?Vt.INTERIOR:Vt.EXTERIOR},Wr.prototype.isOnSegment=function(){return this._isPointOnSegment},Wr.prototype.interfaces_=function(){return[]},Wr.prototype.getClass=function(){return Wr},Wr.locatePointInRing=function(){if(arguments[0]instanceof Ht&&Ar(arguments[1],Er)){for(var st=arguments[0],ct=arguments[1],ht=new Wr(st),Ct=new Ht,bt=new Ht,Ft=1;Ft1||nr<0||nr>1)&&(bt=!0)}}else bt=!0;return bt?hr.min(Pr.distancePointLine(st,ht,Ct),Pr.distancePointLine(ct,ht,Ct),Pr.distancePointLine(ht,st,ct),Pr.distancePointLine(Ct,st,ct)):0},Pr.isPointInRing=function(st,ct){return Pr.locatePointInRing(st,ct)!==Vt.EXTERIOR},Pr.computeLength=function(st){var ct=st.size();if(ct<=1)return 0;var ht=0,Ct=new Ht;st.getCoordinate(0,Ct);for(var bt=Ct.x,Ft=Ct.y,zt=1;ztht.y&&(ht=Ft,Ct=bt)}var zt=Ct;do(zt-=1)<0&&(zt=ct);while(st[zt].equals2D(ht)&&zt!==Ct);var nr=Ct;do nr=(nr+1)%ct;while(st[nr].equals2D(ht)&&nr!==Ct);var dr=st[zt],Br=st[nr];if(dr.equals2D(ht)||Br.equals2D(ht)||dr.equals2D(Br))return!1;var kr=Pr.computeOrientation(dr,ht,Br),Kr=!1;return Kr=kr===0?dr.x>Br.x:kr>0,Kr},Pr.locatePointInRing=function(st,ct){return Wr.locatePointInRing(st,ct)},Pr.distancePointLinePerpendicular=function(st,ct,ht){var Ct=(ht.x-ct.x)*(ht.x-ct.x)+(ht.y-ct.y)*(ht.y-ct.y),bt=((ct.y-st.y)*(ht.x-ct.x)-(ct.x-st.x)*(ht.y-ct.y))/Ct;return Math.abs(bt)*Math.sqrt(Ct)},Pr.computeOrientation=function(st,ct,ht){return Pr.orientationIndex(st,ct,ht)},Pr.distancePointLine=function(){if(arguments.length===2){var st=arguments[0],ct=arguments[1];if(ct.length===0)throw new xt("Line array must contain at least one vertex");for(var ht=st.distance(ct[0]),Ct=0;Ct=1)return Ft.distance(nr);var kr=((zt.y-Ft.y)*(nr.x-zt.x)-(zt.x-Ft.x)*(nr.y-zt.y))/dr;return Math.abs(kr)*Math.sqrt(dr)}},Pr.isOnLine=function(st,ct){for(var ht=new yr,Ct=1;Ct0},Tn.prototype.interfaces_=function(){return[dn]},Tn.prototype.getClass=function(){return Tn};var oo=function(){};oo.prototype.isInBoundary=function(st){return st>1},oo.prototype.interfaces_=function(){return[dn]},oo.prototype.getClass=function(){return oo};var ao=function(){};ao.prototype.isInBoundary=function(st){return st===1},ao.prototype.interfaces_=function(){return[dn]},ao.prototype.getClass=function(){return ao};var qn=function(){};qn.prototype.add=function(){},qn.prototype.addAll=function(){},qn.prototype.isEmpty=function(){},qn.prototype.iterator=function(){},qn.prototype.size=function(){},qn.prototype.toArray=function(){},qn.prototype.remove=function(){},(tt.prototype=new Error).name="IndexOutOfBoundsException";var Ao=function(){};Ao.prototype.hasNext=function(){},Ao.prototype.next=function(){},Ao.prototype.remove=function(){};var go=function(st){function ct(){st.apply(this,arguments)}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.get=function(){},ct.prototype.set=function(){},ct.prototype.isEmpty=function(){},ct}(qn);(rt.prototype=new Error).name="NoSuchElementException";var Xr=function(st){function ct(){st.call(this),this.array_=[],arguments[0]instanceof qn&&this.addAll(arguments[0])}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.ensureCapacity=function(){},ct.prototype.interfaces_=function(){return[st,qn]},ct.prototype.add=function(ht){return arguments.length===1?this.array_.push(ht):this.array_.splice(arguments[0],arguments[1]),!0},ct.prototype.clear=function(){this.array_=[]},ct.prototype.addAll=function(ht){for(var Ct=ht.iterator();Ct.hasNext();)this.add(Ct.next());return!0},ct.prototype.set=function(ht,Ct){var bt=this.array_[ht];return this.array_[ht]=Ct,bt},ct.prototype.iterator=function(){return new Co(this)},ct.prototype.get=function(ht){if(ht<0||ht>=this.size())throw new tt;return this.array_[ht]},ct.prototype.isEmpty=function(){return this.array_.length===0},ct.prototype.size=function(){return this.array_.length},ct.prototype.toArray=function(){for(var ht=[],Ct=0,bt=this.array_.length;Ct=1&&this.get(this.size()-1).equals2D(zt))return null;st.prototype.add.call(this,zt)}else if(arguments[0]instanceof Object&&typeof arguments[1]=="boolean"){var nr=arguments[0],dr=arguments[1];return this.add(nr,dr),!0}}else if(arguments.length===3){if(typeof arguments[2]=="boolean"&&arguments[0]instanceof Array&&typeof arguments[1]=="boolean"){var Br=arguments[0],kr=arguments[1];if(arguments[2])for(var Kr=0;Kr=0;qr--)this.add(Br[qr],kr);return!0}if(typeof arguments[2]=="boolean"&&Number.isInteger(arguments[0])&&arguments[1]instanceof Ht){var en=arguments[0],Dr=arguments[1];if(!arguments[2]){var gn=this.size();if(gn>0&&(en>0&&this.get(en-1).equals2D(Dr)||enFn&&(Kn=-1);for(var so=sn;so!==Fn;so+=Kn)this.add(mn[so],yn);return!0}},ct.prototype.closeRing=function(){this.size()>0&&this.add(new Ht(this.get(0)),!1)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},Object.defineProperties(ct,ht),ct}(Xr),Ln=function(){},rs={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};rs.ForwardComparator.get=function(){return Jo},rs.BidirectionalComparator.get=function(){return zo},rs.coordArrayType.get=function(){return new Array(0).fill(null)},Ln.prototype.interfaces_=function(){return[]},Ln.prototype.getClass=function(){return Ln},Ln.isRing=function(st){return!(st.length<4)&&!!st[0].equals2D(st[st.length-1])},Ln.ptNotInList=function(st,ct){for(var ht=0;ht=st?ct:[]},Ln.indexOf=function(st,ct){for(var ht=0;ht0)&&(ct=st[ht]);return ct},Ln.extract=function(st,ct,ht){ct=hr.clamp(ct,0,st.length);var Ct=(ht=hr.clamp(ht,-1,st.length))-ct+1;ht<0&&(Ct=0),ct>=st.length&&(Ct=0),htCt.length)return 1;if(ht.length===0)return 0;var bt=Ln.compare(ht,Ct);return Ln.isEqualReversed(ht,Ct)?0:bt},zo.prototype.OLDcompare=function(st,ct){var ht=st,Ct=ct;if(ht.lengthCt.length)return 1;if(ht.length===0)return 0;for(var bt=Ln.increasingDirection(ht),Ft=Ln.increasingDirection(Ct),zt=bt>0?0:ht.length-1,nr=Ft>0?0:ht.length-1,dr=0;dr0))return ct.value;ct=ct.right}}return null},Et.prototype.put=function(st,ct){if(this.root_===null)return this.root_={key:st,value:ct,left:null,right:null,parent:null,color:lo,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var ht,Ct,bt=this.root_;do if(ht=bt,(Ct=st.compareTo(bt.key))<0)bt=bt.left;else{if(!(Ct>0)){var Ft=bt.value;return bt.value=ct,Ft}bt=bt.right}while(bt!==null);var zt={key:st,left:null,right:null,value:ct,parent:ht,color:lo,getValue:function(){return this.value},getKey:function(){return this.key}};return Ct<0?ht.left=zt:ht.right=zt,this.fixAfterInsertion(zt),this.size_++,null},Et.prototype.fixAfterInsertion=function(st){for(st.color=1;st!=null&&st!==this.root_&&st.parent.color===1;)if(At(st)===ft(At(At(st)))){var ct=dt(At(At(st)));ot(ct)===1?(ut(At(st),lo),ut(ct,lo),ut(At(At(st)),1),st=At(At(st))):(st===dt(At(st))&&(st=At(st),this.rotateLeft(st)),ut(At(st),lo),ut(At(At(st)),1),this.rotateRight(At(At(st))))}else{var ht=ft(At(At(st)));ot(ht)===1?(ut(At(st),lo),ut(ht,lo),ut(At(At(st)),1),st=At(At(st))):(st===ft(At(st))&&(st=At(st),this.rotateRight(st)),ut(At(st),lo),ut(At(At(st)),1),this.rotateLeft(At(At(st))))}this.root_.color=lo},Et.prototype.values=function(){var st=new Xr,ct=this.getFirstEntry();if(ct!==null)for(st.add(ct.value);(ct=Et.successor(ct))!==null;)st.add(ct.value);return st},Et.prototype.entrySet=function(){var st=new yo,ct=this.getFirstEntry();if(ct!==null)for(st.add(ct);(ct=Et.successor(ct))!==null;)st.add(ct);return st},Et.prototype.rotateLeft=function(st){if(st!=null){var ct=st.right;st.right=ct.left,ct.left!=null&&(ct.left.parent=st),ct.parent=st.parent,st.parent===null?this.root_=ct:st.parent.left===st?st.parent.left=ct:st.parent.right=ct,ct.left=st,st.parent=ct}},Et.prototype.rotateRight=function(st){if(st!=null){var ct=st.left;st.left=ct.right,ct.right!=null&&(ct.right.parent=st),ct.parent=st.parent,st.parent===null?this.root_=ct:st.parent.right===st?st.parent.right=ct:st.parent.left=ct,ct.right=st,st.parent=ct}},Et.prototype.getFirstEntry=function(){var st=this.root_;if(st!=null)for(;st.left!=null;)st=st.left;return st},Et.successor=function(st){if(st===null)return null;if(st.right!==null){for(var ct=st.right;ct.left!==null;)ct=ct.left;return ct}for(var ht=st.parent,Ct=st;ht!==null&&Ct===ht.right;)Ct=ht,ht=ht.parent;return ht},Et.prototype.size=function(){return this.size_};var nn=function(){};nn.prototype.interfaces_=function(){return[]},nn.prototype.getClass=function(){return nn},Bt.prototype=new it,(St.prototype=new Bt).contains=function(st){for(var ct=0,ht=this.array_.length;ct=0;){var zt=bt.substring(0,Ft);Ct.add(zt),Ft=(bt=bt.substring(Ft+ht)).indexOf(ct)}bt.length>0&&Ct.add(bt);for(var nr=new Array(Ct.size()).fill(null),dr=0;dr0)for(var Ft=bt;Ft0&&Ct.append(" ");for(var Ft=0;Ft0&&Ct.append(","),Ct.append(hn.toString(st.getOrdinate(bt,Ft)))}return Ct.append(")"),Ct.toString()}},Qn.ensureValidRing=function(st,ct){var ht=ct.size();return ht===0?ct:ht<=3?Qn.createClosedRing(st,ct,4):ct.getOrdinate(0,Er.X)===ct.getOrdinate(ht-1,Er.X)&&ct.getOrdinate(0,Er.Y)===ct.getOrdinate(ht-1,Er.Y)?ct:Qn.createClosedRing(st,ct,ht+1)},Qn.createClosedRing=function(st,ct,ht){var Ct=st.create(ht,ct.getDimension()),bt=ct.size();Qn.copy(ct,0,Ct,0,bt);for(var Ft=bt;Ft0&&Qn.reverse(this._points),null}},ct.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0)},ct.prototype.getBoundaryDimension=function(){return this.isClosed()?Ir.FALSE:0},ct.prototype.isClosed=function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))},ct.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)},ct.prototype.getDimension=function(){return 1},ct.prototype.getLength=function(){return Pr.computeLength(this._points)},ct.prototype.getNumPoints=function(){return this._points.size()},ct.prototype.reverse=function(){var Ct=this._points.copy();return Qn.reverse(Ct),this.getFactory().createLineString(Ct)},ct.prototype.compareToSameClass=function(){if(arguments.length===1){for(var Ct=arguments[0],bt=0,Ft=0;bt= 2)");this._points=Ct},ct.prototype.isCoordinate=function(Ct){for(var bt=0;bt=1&&this.getCoordinateSequence().size()= 4)")},ct.prototype.getGeometryType=function(){return"LinearRing"},ct.prototype.copy=function(){return new ct(this._points.copy(),this._factory)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ht.MINIMUM_VALID_SIZE.get=function(){return 4},ht.serialVersionUID.get=function(){return-0x3b229e262367a600},Object.defineProperties(ct,ht),ct}(xn),Fo=function(st){function ct(){st.apply(this,arguments)}st&&(ct.__proto__=st),(ct.prototype=Object.create(st&&st.prototype)).constructor=ct;var ht={serialVersionUID:{configurable:!0}};return ct.prototype.getSortIndex=function(){return on.SORTINDEX_MULTIPOLYGON},ct.prototype.equalsExact=function(){if(arguments.length===2){var Ct=arguments[0],bt=arguments[1];return!!this.isEquivalentClass(Ct)&&st.prototype.equalsExact.call(this,Ct,bt)}return st.prototype.equalsExact.apply(this,arguments)},ct.prototype.getBoundaryDimension=function(){return 1},ct.prototype.getDimension=function(){return 2},ct.prototype.reverse=function(){for(var Ct=this._geometries.length,bt=new Array(Ct).fill(null),Ft=0;Ft0?ct.createPoint(ht[0]):ct.createPoint():st},SA.prototype.interfaces_=function(){return[$n.GeometryEditorOperation]},SA.prototype.getClass=function(){return SA};var Ws=function(){};Ws.prototype.edit=function(st,ct){return st instanceof To?ct.createLinearRing(this.edit(st.getCoordinateSequence(),st)):st instanceof xn?ct.createLineString(this.edit(st.getCoordinateSequence(),st)):st instanceof Yn?ct.createPoint(this.edit(st.getCoordinateSequence(),st)):st},Ws.prototype.interfaces_=function(){return[$n.GeometryEditorOperation]},Ws.prototype.getClass=function(){return Ws};var no=function(){if(this._dimension=3,this._coordinates=null,arguments.length===1){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var st=arguments[0];this._coordinates=new Array(st).fill(null);for(var ct=0;ct0){var st=new ar(17*this._coordinates.length);st.append("("),st.append(this._coordinates[0]);for(var ct=1;ct3&&(Ct=3),Ct<2?new no(ht):new no(ht,Ct)}},xs.prototype.interfaces_=function(){return[Wt,et]},xs.prototype.getClass=function(){return xs},xs.instance=function(){return xs.instanceObject},Mr.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00},Mr.instanceObject.get=function(){return new xs},Object.defineProperties(xs,Mr);var _l=function(st){function ct(){st.call(this),this.map_=new Map}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.get=function(ht){return this.map_.get(ht)||null},ct.prototype.put=function(ht,Ct){return this.map_.set(ht,Ct),Ct},ct.prototype.values=function(){for(var ht=new Xr,Ct=this.map_.values(),bt=Ct.next();!bt.done;)ht.add(bt.value),bt=Ct.next();return ht},ct.prototype.entrySet=function(){var ht=new yo;return this.map_.entries().forEach(function(Ct){return ht.add(Ct)}),ht},ct.prototype.size=function(){return this.map_.size()},ct}(qo),Vn=function st(){if(this._modelType=null,this._scale=null,arguments.length===0)this._modelType=st.FLOATING;else if(arguments.length===1){if(arguments[0]instanceof Oo){var ct=arguments[0];this._modelType=ct,ct===st.FIXED&&this.setScale(1)}else if(typeof arguments[0]=="number"){var ht=arguments[0];this._modelType=st.FIXED,this.setScale(ht)}else if(arguments[0]instanceof st){var Ct=arguments[0];this._modelType=Ct._modelType,this._scale=Ct._scale}}},Xo={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};Vn.prototype.equals=function(st){if(!(st instanceof Vn))return!1;var ct=st;return this._modelType===ct._modelType&&this._scale===ct._scale},Vn.prototype.compareTo=function(st){var ct=st,ht=this.getMaximumSignificantDigits(),Ct=ct.getMaximumSignificantDigits();return new Yt(ht).compareTo(new Yt(Ct))},Vn.prototype.getScale=function(){return this._scale},Vn.prototype.isFloating=function(){return this._modelType===Vn.FLOATING||this._modelType===Vn.FLOATING_SINGLE},Vn.prototype.getType=function(){return this._modelType},Vn.prototype.toString=function(){var st="UNKNOWN";return this._modelType===Vn.FLOATING?st="Floating":this._modelType===Vn.FLOATING_SINGLE?st="Floating-Single":this._modelType===Vn.FIXED&&(st="Fixed (Scale="+this.getScale()+")"),st},Vn.prototype.makePrecise=function(){if(typeof arguments[0]=="number"){var st=arguments[0];return Nt.isNaN(st)||this._modelType===Vn.FLOATING_SINGLE?st:this._modelType===Vn.FIXED?Math.round(st*this._scale)/this._scale:st}if(arguments[0]instanceof Ht){var ct=arguments[0];if(this._modelType===Vn.FLOATING)return null;ct.x=this.makePrecise(ct.x),ct.y=this.makePrecise(ct.y)}},Vn.prototype.getMaximumSignificantDigits=function(){var st=16;return this._modelType===Vn.FLOATING?st=16:this._modelType===Vn.FLOATING_SINGLE?st=6:this._modelType===Vn.FIXED&&(st=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),st},Vn.prototype.setScale=function(st){this._scale=Math.abs(st)},Vn.prototype.interfaces_=function(){return[et,kt]},Vn.prototype.getClass=function(){return Vn},Vn.mostPrecise=function(st,ct){return st.compareTo(ct)>=0?st:ct},Xo.serialVersionUID.get=function(){return 7777263578777804e3},Xo.maximumPreciseValue.get=function(){return 9007199254740992},Object.defineProperties(Vn,Xo);var Oo=function st(ct){this._name=ct||null,st.nameToTypeMap.put(ct,this)},eA={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};Oo.prototype.readResolve=function(){return Oo.nameToTypeMap.get(this._name)},Oo.prototype.toString=function(){return this._name},Oo.prototype.interfaces_=function(){return[et]},Oo.prototype.getClass=function(){return Oo},eA.serialVersionUID.get=function(){return-552860263173159e4},eA.nameToTypeMap.get=function(){return new _l},Object.defineProperties(Oo,eA),Vn.Type=Oo,Vn.FIXED=new Oo("FIXED"),Vn.FLOATING=new Oo("FLOATING"),Vn.FLOATING_SINGLE=new Oo("FLOATING SINGLE");var Un=function st(){this._precisionModel=new Vn,this._SRID=0,this._coordinateSequenceFactory=st.getDefaultCoordinateSequenceFactory(),arguments.length===0||(arguments.length===1?Ar(arguments[0],Wt)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof Vn&&(this._precisionModel=arguments[0]):arguments.length===2?(this._precisionModel=arguments[0],this._SRID=arguments[1]):arguments.length===3&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]))},lA={serialVersionUID:{configurable:!0}};Un.prototype.toGeometry=function(st){return st.isNull()?this.createPoint(null):st.getMinX()===st.getMaxX()&&st.getMinY()===st.getMaxY()?this.createPoint(new Ht(st.getMinX(),st.getMinY())):st.getMinX()===st.getMaxX()||st.getMinY()===st.getMaxY()?this.createLineString([new Ht(st.getMinX(),st.getMinY()),new Ht(st.getMaxX(),st.getMaxY())]):this.createPolygon(this.createLinearRing([new Ht(st.getMinX(),st.getMinY()),new Ht(st.getMinX(),st.getMaxY()),new Ht(st.getMaxX(),st.getMaxY()),new Ht(st.getMaxX(),st.getMinY()),new Ht(st.getMinX(),st.getMinY())]),null)},Un.prototype.createLineString=function(st){return st?st instanceof Array?new xn(this.getCoordinateSequenceFactory().create(st),this):Ar(st,Er)?new xn(st,this):void 0:new xn(this.getCoordinateSequenceFactory().create([]),this)},Un.prototype.createMultiLineString=function(){if(arguments.length===0)return new tn(null,this);if(arguments.length===1){var st=arguments[0];return new tn(st,this)}},Un.prototype.buildGeometry=function(st){for(var ct=null,ht=!1,Ct=!1,bt=st.iterator();bt.hasNext();){var Ft=bt.next(),zt=Ft.getClass();ct===null&&(ct=zt),zt!==ct&&(ht=!0),Ft.isGeometryCollectionOrDerived()&&(Ct=!0)}if(ct===null)return this.createGeometryCollection();if(ht||Ct)return this.createGeometryCollection(Un.toGeometryArray(st));var nr=st.iterator().next();if(st.size()>1){if(nr instanceof kn)return this.createMultiPolygon(Un.toPolygonArray(st));if(nr instanceof xn)return this.createMultiLineString(Un.toLineStringArray(st));if(nr instanceof Yn)return this.createMultiPoint(Un.toPointArray(st));er.shouldNeverReachHere("Unhandled class: "+nr.getClass().getName())}return nr},Un.prototype.createMultiPointFromCoords=function(st){return this.createMultiPoint(st!==null?this.getCoordinateSequenceFactory().create(st):null)},Un.prototype.createPoint=function(){if(arguments.length===0)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Ht){var st=arguments[0];return this.createPoint(st!==null?this.getCoordinateSequenceFactory().create([st]):null)}if(Ar(arguments[0],Er)){var ct=arguments[0];return new Yn(ct,this)}}},Un.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory},Un.prototype.createPolygon=function(){if(arguments.length===0)return new kn(null,null,this);if(arguments.length===1){if(Ar(arguments[0],Er)){var st=arguments[0];return this.createPolygon(this.createLinearRing(st))}if(arguments[0]instanceof Array){var ct=arguments[0];return this.createPolygon(this.createLinearRing(ct))}if(arguments[0]instanceof To){var ht=arguments[0];return this.createPolygon(ht,null)}}else if(arguments.length===2){var Ct=arguments[0],bt=arguments[1];return new kn(Ct,bt,this)}},Un.prototype.getSRID=function(){return this._SRID},Un.prototype.createGeometryCollection=function(){if(arguments.length===0)return new Jr(null,this);if(arguments.length===1){var st=arguments[0];return new Jr(st,this)}},Un.prototype.createGeometry=function(st){return new $n(this).edit(st,{edit:function(){if(arguments.length===2){var ct=arguments[0];return this._coordinateSequenceFactory.create(ct)}}})},Un.prototype.getPrecisionModel=function(){return this._precisionModel},Un.prototype.createLinearRing=function(){if(arguments.length===0)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Array){var st=arguments[0];return this.createLinearRing(st!==null?this.getCoordinateSequenceFactory().create(st):null)}if(Ar(arguments[0],Er)){var ct=arguments[0];return new To(ct,this)}}},Un.prototype.createMultiPolygon=function(){if(arguments.length===0)return new Fo(null,this);if(arguments.length===1){var st=arguments[0];return new Fo(st,this)}},Un.prototype.createMultiPoint=function(){if(arguments.length===0)return new Io(null,this);if(arguments.length===1){if(arguments[0]instanceof Array){var st=arguments[0];return new Io(st,this)}if(arguments[0]instanceof Array){var ct=arguments[0];return this.createMultiPoint(ct!==null?this.getCoordinateSequenceFactory().create(ct):null)}if(Ar(arguments[0],Er)){var ht=arguments[0];if(ht===null)return this.createMultiPoint(new Array(0).fill(null));for(var Ct=new Array(ht.size()).fill(null),bt=0;bt=this.size())throw new Error;return this.array_[st]},Rt.prototype.push=function(st){return this.array_.push(st),st},Rt.prototype.pop=function(st){if(this.array_.length===0)throw new $t;return this.array_.pop()},Rt.prototype.peek=function(){if(this.array_.length===0)throw new $t;return this.array_[this.array_.length-1]},Rt.prototype.empty=function(){return this.array_.length===0},Rt.prototype.isEmpty=function(){return this.empty()},Rt.prototype.search=function(st){return this.array_.indexOf(st)},Rt.prototype.size=function(){return this.array_.length},Rt.prototype.toArray=function(){for(var st=[],ct=0,ht=this.array_.length;ct0&&this._minIndexthis._minCoord.y&&ht.y>this._minCoord.y&&Ct===Pr.CLOCKWISE)&&(bt=!0),bt&&(this._minIndex=this._minIndex-1)},bn.prototype.getRightmostSideOfSegment=function(st,ct){var ht=st.getEdge().getCoordinates();if(ct<0||ct+1>=ht.length||ht[ct].y===ht[ct+1].y)return-1;var Ct=Gr.LEFT;return ht[ct].ythis._minCoord.x)&&(this._minDe=st,this._minIndex=ht,this._minCoord=ct[ht])},bn.prototype.findRightmostEdgeAtNode=function(){var st=this._minDe.getNode().getEdges();this._minDe=st.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)},bn.prototype.findEdge=function(st){for(var ct=st.iterator();ct.hasNext();){var ht=ct.next();ht.isForward()&&this.checkForRightmostCoordinate(ht)}er.isTrue(this._minIndex!==0||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),this._minIndex===0?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===Gr.LEFT&&(this._orientedDe=this._minDe.getSym())},bn.prototype.interfaces_=function(){return[]},bn.prototype.getClass=function(){return bn};var jn=function(st){function ct(ht,Ct){st.call(this,ct.msgWithCoord(ht,Ct)),this.pt=Ct?new Ht(Ct):null,this.name="TopologyException"}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.getCoordinate=function(){return this.pt},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct.msgWithCoord=function(ht,Ct){return Ct?ht:ht+" [ "+Ct+" ]"},ct}(wr),Ko=function(){this.array_=[]};Ko.prototype.addLast=function(st){this.array_.push(st)},Ko.prototype.removeFirst=function(){return this.array_.shift()},Ko.prototype.isEmpty=function(){return this.array_.length===0};var pn=function(){this._finder=null,this._dirEdgeList=new Xr,this._nodes=new Xr,this._rightMostCoord=null,this._env=null,this._finder=new bn};pn.prototype.clearVisitedEdges=function(){for(var st=this._dirEdgeList.iterator();st.hasNext();)st.next().setVisited(!1)},pn.prototype.getRightmostCoordinate=function(){return this._rightMostCoord},pn.prototype.computeNodeDepth=function(st){for(var ct=null,ht=st.getEdges().iterator();ht.hasNext();){var Ct=ht.next();if(Ct.isVisited()||Ct.getSym().isVisited()){ct=Ct;break}}if(ct===null)throw new jn("unable to find edge to compute depths at "+st.getCoordinate());st.getEdges().computeDepths(ct);for(var bt=st.getEdges().iterator();bt.hasNext();){var Ft=bt.next();Ft.setVisited(!0),this.copySymDepths(Ft)}},pn.prototype.computeDepth=function(st){this.clearVisitedEdges();var ct=this._finder.getEdge();ct.setEdgeDepths(Gr.RIGHT,st),this.copySymDepths(ct),this.computeDepths(ct)},pn.prototype.create=function(st){this.addReachable(st),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()},pn.prototype.findResultEdges=function(){for(var st=this._dirEdgeList.iterator();st.hasNext();){var ct=st.next();ct.getDepth(Gr.RIGHT)>=1&&ct.getDepth(Gr.LEFT)<=0&&!ct.isInteriorAreaEdge()&&ct.setInResult(!0)}},pn.prototype.computeDepths=function(st){var ct=new yo,ht=new Ko,Ct=st.getNode();for(ht.addLast(Ct),ct.add(Ct),st.setVisited(!0);!ht.isEmpty();){var bt=ht.removeFirst();ct.add(bt),this.computeNodeDepth(bt);for(var Ft=bt.getEdges().iterator();Ft.hasNext();){var zt=Ft.next().getSym();if(!zt.isVisited()){var nr=zt.getNode();ct.contains(nr)||(ht.addLast(nr),ct.add(nr))}}}},pn.prototype.compareTo=function(st){var ct=st;return this._rightMostCoord.xct._rightMostCoord.x?1:0},pn.prototype.getEnvelope=function(){if(this._env===null){for(var st=new Nr,ct=this._dirEdgeList.iterator();ct.hasNext();)for(var ht=ct.next().getEdge().getCoordinates(),Ct=0;Ctthis.location.length){var ct=new Array(3).fill(null);ct[Gr.ON]=this.location[Gr.ON],ct[Gr.LEFT]=Vt.NONE,ct[Gr.RIGHT]=Vt.NONE,this.location=ct}for(var ht=0;ht1&&st.append(Vt.toLocationSymbol(this.location[Gr.LEFT])),st.append(Vt.toLocationSymbol(this.location[Gr.ON])),this.location.length>1&&st.append(Vt.toLocationSymbol(this.location[Gr.RIGHT])),st.toString()},Hn.prototype.setLocations=function(st,ct,ht){this.location[Gr.ON]=st,this.location[Gr.LEFT]=ct,this.location[Gr.RIGHT]=ht},Hn.prototype.get=function(st){return st1},Hn.prototype.isAnyNull=function(){for(var st=0;stthis._maxNodeDegree&&(this._maxNodeDegree=ct),st=this.getNext(st)}while(st!==this._startDe);this._maxNodeDegree*=2},Go.prototype.addPoints=function(st,ct,ht){var Ct=st.getCoordinates();if(ct){var bt=1;ht&&(bt=0);for(var Ft=bt;Ft=0;nr--)this._pts.add(Ct[nr])}},Go.prototype.isHole=function(){return this._isHole},Go.prototype.setInResult=function(){var st=this._startDe;do st.getEdge().setInResult(!0),st=st.getNext();while(st!==this._startDe)},Go.prototype.containsPoint=function(st){var ct=this.getLinearRing();if(!ct.getEnvelopeInternal().contains(st)||!Pr.isPointInRing(st,ct.getCoordinates()))return!1;for(var ht=this._holes.iterator();ht.hasNext();)if(ht.next().containsPoint(st))return!1;return!0},Go.prototype.addHole=function(st){this._holes.add(st)},Go.prototype.isShell=function(){return this._shell===null},Go.prototype.getLabel=function(){return this._label},Go.prototype.getEdges=function(){return this._edges},Go.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree},Go.prototype.getShell=function(){return this._shell},Go.prototype.mergeLabel=function(){if(arguments.length===1){var st=arguments[0];this.mergeLabel(st,0),this.mergeLabel(st,1)}else if(arguments.length===2){var ct=arguments[0],ht=arguments[1],Ct=ct.getLocation(ht,Gr.RIGHT);if(Ct===Vt.NONE)return null;if(this._label.getLocation(ht)===Vt.NONE)return this._label.setLocation(ht,Ct),null}},Go.prototype.setShell=function(st){this._shell=st,st!==null&&st.addHole(this)},Go.prototype.toPolygon=function(st){for(var ct=new Array(this._holes.size()).fill(null),ht=0;ht=2,"found partial label"),this.computeIM(st)},Gs.prototype.isInResult=function(){return this._isInResult},Gs.prototype.isVisited=function(){return this._isVisited},Gs.prototype.interfaces_=function(){return[]},Gs.prototype.getClass=function(){return Gs};var FA=function(st){function ct(){st.call(this),this._coord=null,this._edges=null;var ht=arguments[0],Ct=arguments[1];this._coord=ht,this._edges=Ct,this._label=new Jn(0,Vt.NONE)}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.isIncidentEdgeInResult=function(){for(var ht=this.getEdges().getEdges().iterator();ht.hasNext();)if(ht.next().getEdge().isInResult())return!0;return!1},ct.prototype.isIsolated=function(){return this._label.getGeometryCount()===1},ct.prototype.getCoordinate=function(){return this._coord},ct.prototype.print=function(ht){ht.println("node "+this._coord+" lbl: "+this._label)},ct.prototype.computeIM=function(ht){},ct.prototype.computeMergedLocation=function(ht,Ct){var bt=Vt.NONE;if(bt=this._label.getLocation(Ct),!ht.isNull(Ct)){var Ft=ht.getLocation(Ct);bt!==Vt.BOUNDARY&&(bt=Ft)}return bt},ct.prototype.setLabel=function(){if(arguments.length!==2)return st.prototype.setLabel.apply(this,arguments);var ht=arguments[0],Ct=arguments[1];this._label===null?this._label=new Jn(ht,Ct):this._label.setLocation(ht,Ct)},ct.prototype.getEdges=function(){return this._edges},ct.prototype.mergeLabel=function(){if(arguments[0]instanceof ct){var ht=arguments[0];this.mergeLabel(ht._label)}else if(arguments[0]instanceof Jn)for(var Ct=arguments[0],bt=0;bt<2;bt++){var Ft=this.computeMergedLocation(Ct,bt);this._label.getLocation(bt)===Vt.NONE&&this._label.setLocation(bt,Ft)}},ct.prototype.add=function(ht){this._edges.insert(ht),ht.setNode(this)},ct.prototype.setLabelBoundary=function(ht){if(this._label===null)return null;var Ct=Vt.NONE;this._label!==null&&(Ct=this._label.getLocation(ht));var bt=null;switch(Ct){case Vt.BOUNDARY:bt=Vt.INTERIOR;break;case Vt.INTERIOR:default:bt=Vt.BOUNDARY}this._label.setLocation(ht,bt)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(Gs),Zs=function(){this.nodeMap=new Et,this.nodeFact=null;var st=arguments[0];this.nodeFact=st};Zs.prototype.find=function(st){return this.nodeMap.get(st)},Zs.prototype.addNode=function(){if(arguments[0]instanceof Ht){var st=arguments[0],ct=this.nodeMap.get(st);return ct===null&&(ct=this.nodeFact.createNode(st),this.nodeMap.put(st,ct)),ct}if(arguments[0]instanceof FA){var ht=arguments[0],Ct=this.nodeMap.get(ht.getCoordinate());return Ct===null?(this.nodeMap.put(ht.getCoordinate(),ht),ht):(Ct.mergeLabel(ht),Ct)}},Zs.prototype.print=function(st){for(var ct=this.iterator();ct.hasNext();)ct.next().print(st)},Zs.prototype.iterator=function(){return this.nodeMap.values().iterator()},Zs.prototype.values=function(){return this.nodeMap.values()},Zs.prototype.getBoundaryNodes=function(st){for(var ct=new Xr,ht=this.iterator();ht.hasNext();){var Ct=ht.next();Ct.getLabel().getLocation(st)===Vt.BOUNDARY&&ct.add(Ct)}return ct},Zs.prototype.add=function(st){var ct=st.getCoordinate();this.addNode(ct).add(st)},Zs.prototype.interfaces_=function(){return[]},Zs.prototype.getClass=function(){return Zs};var co=function(){},Rl={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};co.prototype.interfaces_=function(){return[]},co.prototype.getClass=function(){return co},co.isNorthern=function(st){return st===co.NE||st===co.NW},co.isOpposite=function(st,ct){return st===ct?!1:(st-ct+4)%4===2},co.commonHalfPlane=function(st,ct){if(st===ct)return st;if((st-ct+4)%4===2)return-1;var ht=stct?st:ct)===3?3:ht},co.isInHalfPlane=function(st,ct){return ct===co.SE?st===co.SE||st===co.SW:st===ct||st===ct+1},co.quadrant=function(){if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var st=arguments[0],ct=arguments[1];if(st===0&&ct===0)throw new xt("Cannot compute the quadrant for point ( "+st+", "+ct+" )");return st>=0?ct>=0?co.NE:co.SE:ct>=0?co.NW:co.SW}if(arguments[0]instanceof Ht&&arguments[1]instanceof Ht){var ht=arguments[0],Ct=arguments[1];if(Ct.x===ht.x&&Ct.y===ht.y)throw new xt("Cannot compute the quadrant for two identical points "+ht);return Ct.x>=ht.x?Ct.y>=ht.y?co.NE:co.SE:Ct.y>=ht.y?co.NW:co.SW}},Rl.NE.get=function(){return 0},Rl.NW.get=function(){return 1},Rl.SW.get=function(){return 2},Rl.SE.get=function(){return 3},Object.defineProperties(co,Rl);var As=function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,arguments.length===1){var st=arguments[0];this._edge=st}else if(arguments.length===3){var ct=arguments[0],ht=arguments[1],Ct=arguments[2];this._edge=ct,this.init(ht,Ct),this._label=null}else if(arguments.length===4){var bt=arguments[0],Ft=arguments[1],zt=arguments[2],nr=arguments[3];this._edge=bt,this.init(Ft,zt),this._label=nr}};As.prototype.compareDirection=function(st){return this._dx===st._dx&&this._dy===st._dy?0:this._quadrant>st._quadrant?1:this._quadrant2){Ft.linkDirectedEdgesForMinimalEdgeRings();var zt=Ft.buildMinimalRings(),nr=this.findShell(zt);nr!==null?(this.placePolygonHoles(nr,zt),ct.add(nr)):ht.addAll(zt)}else Ct.add(Ft)}return Ct},ks.prototype.containsPoint=function(st){for(var ct=this._shellList.iterator();ct.hasNext();)if(ct.next().containsPoint(st))return!0;return!1},ks.prototype.buildMaximalEdgeRings=function(st){for(var ct=new Xr,ht=st.iterator();ht.hasNext();){var Ct=ht.next();if(Ct.isInResult()&&Ct.getLabel().isArea()&&Ct.getEdgeRing()===null){var bt=new Vl(Ct,this._geometryFactory);ct.add(bt),bt.setInResult()}}return ct},ks.prototype.placePolygonHoles=function(st,ct){for(var ht=ct.iterator();ht.hasNext();){var Ct=ht.next();Ct.isHole()&&Ct.setShell(st)}},ks.prototype.getPolygons=function(){return this.computePolygons(this._shellList)},ks.prototype.findEdgeRingContaining=function(st,ct){for(var ht=st.getLinearRing(),Ct=ht.getEnvelopeInternal(),bt=ht.getCoordinateN(0),Ft=null,zt=null,nr=ct.iterator();nr.hasNext();){var dr=nr.next(),Br=dr.getLinearRing(),kr=Br.getEnvelopeInternal();Ft!==null&&(zt=Ft.getLinearRing().getEnvelopeInternal());var Kr=!1;kr.contains(Ct)&&Pr.isPointInRing(bt,Br.getCoordinates())&&(Kr=!0),Kr&&(Ft===null||zt.contains(kr))&&(Ft=dr)}return Ft},ks.prototype.findShell=function(st){for(var ct=0,ht=null,Ct=st.iterator();Ct.hasNext();){var bt=Ct.next();bt.isHole()||(ht=bt,ct++)}return er.isTrue(ct<=1,"found two shells in MinimalEdgeRing list"),ht},ks.prototype.add=function(){if(arguments.length===1){var st=arguments[0];this.add(st.getEdgeEnds(),st.getNodes())}else if(arguments.length===2){var ct=arguments[0],ht=arguments[1];No.linkResultDirectedEdges(ht);var Ct=this.buildMaximalEdgeRings(ct),bt=new Xr,Ft=this.buildMinimalEdgeRings(Ct,this._shellList,bt);this.sortShellsAndHoles(Ft,this._shellList,bt),this.placeFreeHoles(this._shellList,bt)}},ks.prototype.interfaces_=function(){return[]},ks.prototype.getClass=function(){return ks};var Ql=function(){};Ql.prototype.getBounds=function(){},Ql.prototype.interfaces_=function(){return[]},Ql.prototype.getClass=function(){return Ql};var Ro=function(){this._bounds=null,this._item=null;var st=arguments[0],ct=arguments[1];this._bounds=st,this._item=ct};Ro.prototype.getItem=function(){return this._item},Ro.prototype.getBounds=function(){return this._bounds},Ro.prototype.interfaces_=function(){return[Ql,et]},Ro.prototype.getClass=function(){return Ro};var Us=function(){this._size=null,this._items=null,this._size=0,this._items=new Xr,this._items.add(null)};Us.prototype.poll=function(){if(this.isEmpty())return null;var st=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),st},Us.prototype.size=function(){return this._size},Us.prototype.reorder=function(st){for(var ct=null,ht=this._items.get(st);2*st<=this._size&&((ct=2*st)!==this._size&&this._items.get(ct+1).compareTo(this._items.get(ct))<0&&ct++,this._items.get(ct).compareTo(ht)<0);st=ct)this._items.set(st,this._items.get(ct));this._items.set(st,ht)},Us.prototype.clear=function(){this._size=0,this._items.clear()},Us.prototype.isEmpty=function(){return this._size===0},Us.prototype.add=function(st){this._items.add(null),this._size+=1;var ct=this._size;for(this._items.set(0,st);st.compareTo(this._items.get(Math.trunc(ct/2)))<0;ct/=2)this._items.set(ct,this._items.get(Math.trunc(ct/2)));this._items.set(ct,st)},Us.prototype.interfaces_=function(){return[]},Us.prototype.getClass=function(){return Us};var Wo=function(){};Wo.prototype.visitItem=function(st){},Wo.prototype.interfaces_=function(){return[]},Wo.prototype.getClass=function(){return Wo};var tA=function(){};tA.prototype.insert=function(st,ct){},tA.prototype.remove=function(st,ct){},tA.prototype.query=function(){},tA.prototype.interfaces_=function(){return[]},tA.prototype.getClass=function(){return tA};var ko=function(){if(this._childBoundables=new Xr,this._bounds=null,this._level=null,arguments.length!==0){if(arguments.length===1){var st=arguments[0];this._level=st}}},$l={serialVersionUID:{configurable:!0}};ko.prototype.getLevel=function(){return this._level},ko.prototype.size=function(){return this._childBoundables.size()},ko.prototype.getChildBoundables=function(){return this._childBoundables},ko.prototype.addChildBoundable=function(st){er.isTrue(this._bounds===null),this._childBoundables.add(st)},ko.prototype.isEmpty=function(){return this._childBoundables.isEmpty()},ko.prototype.getBounds=function(){return this._bounds===null&&(this._bounds=this.computeBounds()),this._bounds},ko.prototype.interfaces_=function(){return[Ql,et]},ko.prototype.getClass=function(){return ko},$l.serialVersionUID.get=function(){return 6493722185909574e3},Object.defineProperties(ko,$l);var Xs=function(){};Xs.reverseOrder=function(){return{compare:function(st,ct){return ct.compareTo(st)}}},Xs.min=function(st){return Xs.sort(st),st.get(0)},Xs.sort=function(st,ct){var ht=st.toArray();ct?Sr.sort(ht,ct):Sr.sort(ht);for(var Ct=st.iterator(),bt=0,Ft=ht.length;btUo.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,st,ct),null):(this.expand(this._boundable2,this._boundable1,st,ct),null);if(ht)return this.expand(this._boundable1,this._boundable2,st,ct),null;if(Ct)return this.expand(this._boundable2,this._boundable1,st,ct),null;throw new xt("neither boundable is composite")},Uo.prototype.isLeaves=function(){return!(Uo.isComposite(this._boundable1)||Uo.isComposite(this._boundable2))},Uo.prototype.compareTo=function(st){var ct=st;return this._distancect._distance?1:0},Uo.prototype.expand=function(st,ct,ht,Ct){for(var bt=st.getChildBoundables().iterator();bt.hasNext();){var Ft=bt.next(),zt=new Uo(Ft,ct,this._itemDistance);zt.getDistance()1,"Node capacity must be greater than 1"),this._nodeCapacity=ht}},CA={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};$o.prototype.getNodeCapacity=function(){return this._nodeCapacity},$o.prototype.lastNode=function(st){return st.get(st.size()-1)},$o.prototype.size=function(){if(arguments.length===0)return this.isEmpty()?0:(this.build(),this.size(this._root));if(arguments.length===1){for(var st=0,ct=arguments[0].getChildBoundables().iterator();ct.hasNext();){var ht=ct.next();ht instanceof ko?st+=this.size(ht):ht instanceof Ro&&(st+=1)}return st}},$o.prototype.removeItem=function(st,ct){for(var ht=null,Ct=st.getChildBoundables().iterator();Ct.hasNext();){var bt=Ct.next();bt instanceof Ro&&bt.getItem()===ct&&(ht=bt)}return ht!==null&&(st.getChildBoundables().remove(ht),!0)},$o.prototype.itemsTree=function(){if(arguments.length===0){this.build();var st=this.itemsTree(this._root);return st===null?new Xr:st}if(arguments.length===1){for(var ct=arguments[0],ht=new Xr,Ct=ct.getChildBoundables().iterator();Ct.hasNext();){var bt=Ct.next();if(bt instanceof ko){var Ft=this.itemsTree(bt);Ft!==null&&ht.add(Ft)}else bt instanceof Ro?ht.add(bt.getItem()):er.shouldNeverReachHere()}return ht.size()<=0?null:ht}},$o.prototype.insert=function(st,ct){er.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new Ro(st,ct))},$o.prototype.boundablesAtLevel=function(){if(arguments.length===1){var st=arguments[0],ct=new Xr;return this.boundablesAtLevel(st,this._root,ct),ct}if(arguments.length===3){var ht=arguments[0],Ct=arguments[1],bt=arguments[2];if(er.isTrue(ht>-2),Ct.getLevel()===ht)return bt.add(Ct),null;for(var Ft=Ct.getChildBoundables().iterator();Ft.hasNext();){var zt=Ft.next();zt instanceof ko?this.boundablesAtLevel(ht,zt,bt):(er.isTrue(zt instanceof Ro),ht===-1&&bt.add(zt))}return null}},$o.prototype.query=function(){if(arguments.length===1){var st=arguments[0];this.build();var ct=new Xr;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),st)&&this.query(st,this._root,ct),ct}if(arguments.length===2){var ht=arguments[0],Ct=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),ht)&&this.query(ht,this._root,Ct)}else if(arguments.length===3){if(Ar(arguments[2],Wo)&&arguments[0]instanceof Object&&arguments[1]instanceof ko)for(var bt=arguments[0],Ft=arguments[1],zt=arguments[2],nr=Ft.getChildBoundables(),dr=0;drst&&(st=Ct)}}return st+1}},$o.prototype.createParentBoundables=function(st,ct){er.isTrue(!st.isEmpty());var ht=new Xr;ht.add(this.createNode(ct));var Ct=new Xr(st);Xs.sort(Ct,this.getComparator());for(var bt=Ct.iterator();bt.hasNext();){var Ft=bt.next();this.lastNode(ht).getChildBoundables().size()===this.getNodeCapacity()&&ht.add(this.createNode(ct)),this.lastNode(ht).addChildBoundable(Ft)}return ht},$o.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()},$o.prototype.interfaces_=function(){return[et]},$o.prototype.getClass=function(){return $o},$o.compareDoubles=function(st,ct){return st>ct?1:st0);for(var Ft=new Xr,zt=0;zt0;){var en=qr.poll(),Dr=en.getDistance();if(Dr>=kr)break;en.isLeaves()?(kr=Dr,Kr=en):en.expandToQueue(qr,kr)}return[Kr.getBoundable(0).getItem(),Kr.getBoundable(1).getItem()]}}else if(arguments.length===3){var gn=arguments[0],mn=arguments[1],yn=arguments[2],sn=new Ro(gn,mn),Fn=new Uo(this.getRoot(),sn,yn);return this.nearestNeighbour(Fn)[0]}},ct.prototype.interfaces_=function(){return[tA,et]},ct.prototype.getClass=function(){return ct},ct.centreX=function(Ct){return ct.avg(Ct.getMinX(),Ct.getMaxX())},ct.avg=function(Ct,bt){return(Ct+bt)/2},ct.centreY=function(Ct){return ct.avg(Ct.getMinY(),Ct.getMaxY())},ht.STRtreeNode.get=function(){return OA},ht.serialVersionUID.get=function(){return 0x39920f7d5f261e0},ht.xComparator.get=function(){return{interfaces_:function(){return[jt]},compare:function(Ct,bt){return st.compareDoubles(ct.centreX(Ct.getBounds()),ct.centreX(bt.getBounds()))}}},ht.yComparator.get=function(){return{interfaces_:function(){return[jt]},compare:function(Ct,bt){return st.compareDoubles(ct.centreY(Ct.getBounds()),ct.centreY(bt.getBounds()))}}},ht.intersectsOp.get=function(){return{interfaces_:function(){return[st.IntersectsOp]},intersects:function(Ct,bt){return Ct.intersects(bt)}}},ht.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(ct,ht),ct}($o),OA=function(st){function ct(){var ht=arguments[0];st.call(this,ht)}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.computeBounds=function(){for(var ht=null,Ct=this.getChildBoundables().iterator();Ct.hasNext();){var bt=Ct.next();ht===null?ht=new Nr(bt.getBounds()):ht.expandToInclude(bt.getBounds())}return ht},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(ko),xo=function(){};xo.prototype.interfaces_=function(){return[]},xo.prototype.getClass=function(){return xo},xo.relativeSign=function(st,ct){return stct?1:0},xo.compare=function(st,ct,ht){if(ct.equals2D(ht))return 0;var Ct=xo.relativeSign(ct.x,ht.x),bt=xo.relativeSign(ct.y,ht.y);switch(st){case 0:return xo.compareValue(Ct,bt);case 1:return xo.compareValue(bt,Ct);case 2:return xo.compareValue(bt,-Ct);case 3:return xo.compareValue(-Ct,bt);case 4:return xo.compareValue(-Ct,-bt);case 5:return xo.compareValue(-bt,-Ct);case 6:return xo.compareValue(-bt,Ct);case 7:return xo.compareValue(Ct,-bt)}return er.shouldNeverReachHere("invalid octant value"),0},xo.compareValue=function(st,ct){return st<0?-1:st>0?1:ct<0?-1:ct>0?1:0};var to=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var st=arguments[0],ct=arguments[1],ht=arguments[2],Ct=arguments[3];this._segString=st,this.coord=new Ht(ct),this.segmentIndex=ht,this._segmentOctant=Ct,this._isInterior=!ct.equals2D(st.getCoordinate(ht))};to.prototype.getCoordinate=function(){return this.coord},to.prototype.print=function(st){st.print(this.coord),st.print(" seg # = "+this.segmentIndex)},to.prototype.compareTo=function(st){var ct=st;return this.segmentIndexct.segmentIndex?1:this.coord.equals2D(ct.coord)?0:xo.compare(this._segmentOctant,this.coord,ct.coord)},to.prototype.isEndPoint=function(st){return this.segmentIndex===0&&!this._isInterior||this.segmentIndex===st},to.prototype.isInterior=function(){return this._isInterior},to.prototype.interfaces_=function(){return[kt]},to.prototype.getClass=function(){return to};var ps=function(){this._nodeMap=new Et,this._edge=null;var st=arguments[0];this._edge=st};ps.prototype.getSplitCoordinates=function(){var st=new Lo;this.addEndpoints();for(var ct=this.iterator(),ht=ct.next();ct.hasNext();){var Ct=ct.next();this.addEdgeCoordinates(ht,Ct,st),ht=Ct}return st.toCoordinateArray()},ps.prototype.addCollapsedNodes=function(){var st=new Xr;this.findCollapsesFromInsertedNodes(st),this.findCollapsesFromExistingVertices(st);for(var ct=st.iterator();ct.hasNext();){var ht=ct.next().intValue();this.add(this._edge.getCoordinate(ht),ht)}},ps.prototype.print=function(st){st.println("Intersections:");for(var ct=this.iterator();ct.hasNext();)ct.next().print(st)},ps.prototype.findCollapsesFromExistingVertices=function(st){for(var ct=0;ct=0?ct>=0?ht>=Ct?0:1:ht>=Ct?7:6:ct>=0?ht>=Ct?3:2:ht>=Ct?4:5}if(arguments[0]instanceof Ht&&arguments[1]instanceof Ht){var bt=arguments[0],Ft=arguments[1],zt=Ft.x-bt.x,nr=Ft.y-bt.y;if(zt===0&&nr===0)throw new xt("Cannot compute the octant for two identical points "+bt);return wA.octant(zt,nr)}};var cA=function(){};cA.prototype.getCoordinates=function(){},cA.prototype.size=function(){},cA.prototype.getCoordinate=function(st){},cA.prototype.isClosed=function(){},cA.prototype.setData=function(st){},cA.prototype.getData=function(){},cA.prototype.interfaces_=function(){return[]},cA.prototype.getClass=function(){return cA};var Dl=function(){};Dl.prototype.addIntersection=function(st,ct){},Dl.prototype.interfaces_=function(){return[cA]},Dl.prototype.getClass=function(){return Dl};var Bo=function(){this._nodeList=new ps(this),this._pts=null,this._data=null;var st=arguments[0],ct=arguments[1];this._pts=st,this._data=ct};Bo.prototype.getCoordinates=function(){return this._pts},Bo.prototype.size=function(){return this._pts.length},Bo.prototype.getCoordinate=function(st){return this._pts[st]},Bo.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},Bo.prototype.getSegmentOctant=function(st){return st===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(st),this.getCoordinate(st+1))},Bo.prototype.setData=function(st){this._data=st},Bo.prototype.safeOctant=function(st,ct){return st.equals2D(ct)?0:wA.octant(st,ct)},Bo.prototype.getData=function(){return this._data},Bo.prototype.addIntersection=function(){if(arguments.length===2){var st=arguments[0],ct=arguments[1];this.addIntersectionNode(st,ct)}else if(arguments.length===4){var ht=arguments[0],Ct=arguments[1],bt=arguments[3],Ft=new Ht(ht.getIntersection(bt));this.addIntersection(Ft,Ct)}},Bo.prototype.toString=function(){return Yr.toLineString(new no(this._pts))},Bo.prototype.getNodeList=function(){return this._nodeList},Bo.prototype.addIntersectionNode=function(st,ct){var ht=ct,Ct=ht+1;if(Ct=0&&ht>=0||ct<=0&&ht<=0?Math.max(ct,ht):0}if(arguments[0]instanceof Ht){var Ct=arguments[0];return Pr.orientationIndex(this.p0,this.p1,Ct)}},Pn.prototype.toGeometry=function(st){return st.createLineString([this.p0,this.p1])},Pn.prototype.isVertical=function(){return this.p0.x===this.p1.x},Pn.prototype.equals=function(st){if(!(st instanceof Pn))return!1;var ct=st;return this.p0.equals(ct.p0)&&this.p1.equals(ct.p1)},Pn.prototype.intersection=function(st){var ct=new yr;return ct.computeIntersection(this.p0,this.p1,st.p0,st.p1),ct.hasIntersection()?ct.getIntersection(0):null},Pn.prototype.project=function(){if(arguments[0]instanceof Ht){var st=arguments[0];if(st.equals(this.p0)||st.equals(this.p1))return new Ht(st);var ct=this.projectionFactor(st),ht=new Ht;return ht.x=this.p0.x+ct*(this.p1.x-this.p0.x),ht.y=this.p0.y+ct*(this.p1.y-this.p0.y),ht}if(arguments[0]instanceof Pn){var Ct=arguments[0],bt=this.projectionFactor(Ct.p0),Ft=this.projectionFactor(Ct.p1);if(bt>=1&&Ft>=1||bt<=0&&Ft<=0)return null;var zt=this.project(Ct.p0);bt<0&&(zt=this.p0),bt>1&&(zt=this.p1);var nr=this.project(Ct.p1);return Ft<0&&(nr=this.p0),Ft>1&&(nr=this.p1),new Pn(zt,nr)}},Pn.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse()},Pn.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)},Pn.prototype.getCoordinate=function(st){return st===0?this.p0:this.p1},Pn.prototype.distancePerpendicular=function(st){return Pr.distancePointLinePerpendicular(st,this.p0,this.p1)},Pn.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y)},Pn.prototype.midPoint=function(){return Pn.midPoint(this.p0,this.p1)},Pn.prototype.projectionFactor=function(st){if(st.equals(this.p0))return 0;if(st.equals(this.p1))return 1;var ct=this.p1.x-this.p0.x,ht=this.p1.y-this.p0.y,Ct=ct*ct+ht*ht;return Ct<=0?Nt.NaN:((st.x-this.p0.x)*ct+(st.y-this.p0.y)*ht)/Ct},Pn.prototype.closestPoints=function(st){var ct=this.intersection(st);if(ct!==null)return[ct,ct];var ht=new Array(2).fill(null),Ct=Nt.MAX_VALUE,bt=null,Ft=this.closestPoint(st.p0);Ct=Ft.distance(st.p0),ht[0]=Ft,ht[1]=st.p0;var zt=this.closestPoint(st.p1);(bt=zt.distance(st.p1))0&&ct<1?this.project(st):this.p0.distance(st)1||Nt.isNaN(ct))&&(ct=1),ct},Pn.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"},Pn.prototype.isHorizontal=function(){return this.p0.y===this.p1.y},Pn.prototype.distance=function(){if(arguments[0]instanceof Pn){var st=arguments[0];return Pr.distanceLineLine(this.p0,this.p1,st.p0,st.p1)}if(arguments[0]instanceof Ht){var ct=arguments[0];return Pr.distancePointLine(ct,this.p0,this.p1)}},Pn.prototype.pointAlong=function(st){var ct=new Ht;return ct.x=this.p0.x+st*(this.p1.x-this.p0.x),ct.y=this.p0.y+st*(this.p1.y-this.p0.y),ct},Pn.prototype.hashCode=function(){var st=Nt.doubleToLongBits(this.p0.x);st^=31*Nt.doubleToLongBits(this.p0.y);var ct=Math.trunc(st)^Math.trunc(st>>32),ht=Nt.doubleToLongBits(this.p1.x);return ht^=31*Nt.doubleToLongBits(this.p1.y),ct^(Math.trunc(ht)^Math.trunc(ht>>32))},Pn.prototype.interfaces_=function(){return[kt,et]},Pn.prototype.getClass=function(){return Pn},Pn.midPoint=function(st,ct){return new Ht((st.x+ct.x)/2,(st.y+ct.y)/2)},su.serialVersionUID.get=function(){return 0x2d2172135f411c00},Object.defineProperties(Pn,su);var Pl=function(){this.tempEnv1=new Nr,this.tempEnv2=new Nr,this._overlapSeg1=new Pn,this._overlapSeg2=new Pn};Pl.prototype.overlap=function(){if(arguments.length!==2){if(arguments.length===4){var st=arguments[0],ct=arguments[1],ht=arguments[2],Ct=arguments[3];st.getLineSegment(ct,this._overlapSeg1),ht.getLineSegment(Ct,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}}},Pl.prototype.interfaces_=function(){return[]},Pl.prototype.getClass=function(){return Pl};var ts=function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var st=arguments[0],ct=arguments[1],ht=arguments[2],Ct=arguments[3];this._pts=st,this._start=ct,this._end=ht,this._context=Ct};ts.prototype.getLineSegment=function(st,ct){ct.p0=this._pts[st],ct.p1=this._pts[st+1]},ts.prototype.computeSelect=function(st,ct,ht,Ct){var bt=this._pts[ct],Ft=this._pts[ht];if(Ct.tempEnv1.init(bt,Ft),ht-ct==1)return Ct.select(this,ct),null;if(!st.intersects(Ct.tempEnv1))return null;var zt=Math.trunc((ct+ht)/2);ct=st.length-1)return st.length-1;for(var Ct=co.quadrant(st[ht],st[ht+1]),bt=ct+1;btFt.getId()&&(Ft.computeOverlaps(nr,Ct),this._nOverlaps++),this._segInt.isDone())return null}},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ht.SegmentOverlapAction.get=function(){return Gl},Object.defineProperties(ct,ht),ct}(GA),Gl=function(st){function ct(){st.call(this),this._si=null;var ht=arguments[0];this._si=ht}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.overlap=function(){if(arguments.length!==4)return st.prototype.overlap.apply(this,arguments);var ht=arguments[0],Ct=arguments[1],bt=arguments[2],Ft=arguments[3],zt=ht.getContext(),nr=bt.getContext();this._si.processIntersections(zt,Ct,nr,Ft)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(Pl),ro=function st(){if(this._quadrantSegments=st.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=st.CAP_ROUND,this._joinStyle=st.JOIN_ROUND,this._mitreLimit=st.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=st.DEFAULT_SIMPLIFY_FACTOR,arguments.length!==0){if(arguments.length===1){var ct=arguments[0];this.setQuadrantSegments(ct)}else if(arguments.length===2){var ht=arguments[0],Ct=arguments[1];this.setQuadrantSegments(ht),this.setEndCapStyle(Ct)}else if(arguments.length===4){var bt=arguments[0],Ft=arguments[1],zt=arguments[2],nr=arguments[3];this.setQuadrantSegments(bt),this.setEndCapStyle(Ft),this.setJoinStyle(zt),this.setMitreLimit(nr)}}},rA={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};ro.prototype.getEndCapStyle=function(){return this._endCapStyle},ro.prototype.isSingleSided=function(){return this._isSingleSided},ro.prototype.setQuadrantSegments=function(st){this._quadrantSegments=st,this._quadrantSegments===0&&(this._joinStyle=ro.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=ro.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),st<=0&&(this._quadrantSegments=1),this._joinStyle!==ro.JOIN_ROUND&&(this._quadrantSegments=ro.DEFAULT_QUADRANT_SEGMENTS)},ro.prototype.getJoinStyle=function(){return this._joinStyle},ro.prototype.setJoinStyle=function(st){this._joinStyle=st},ro.prototype.setSimplifyFactor=function(st){this._simplifyFactor=st<0?0:st},ro.prototype.getSimplifyFactor=function(){return this._simplifyFactor},ro.prototype.getQuadrantSegments=function(){return this._quadrantSegments},ro.prototype.setEndCapStyle=function(st){this._endCapStyle=st},ro.prototype.getMitreLimit=function(){return this._mitreLimit},ro.prototype.setMitreLimit=function(st){this._mitreLimit=st},ro.prototype.setSingleSided=function(st){this._isSingleSided=st},ro.prototype.interfaces_=function(){return[]},ro.prototype.getClass=function(){return ro},ro.bufferDistanceError=function(st){var ct=Math.PI/2/st;return 1-Math.cos(ct/2)},rA.CAP_ROUND.get=function(){return 1},rA.CAP_FLAT.get=function(){return 2},rA.CAP_SQUARE.get=function(){return 3},rA.JOIN_ROUND.get=function(){return 1},rA.JOIN_MITRE.get=function(){return 2},rA.JOIN_BEVEL.get=function(){return 3},rA.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8},rA.DEFAULT_MITRE_LIMIT.get=function(){return 5},rA.DEFAULT_SIMPLIFY_FACTOR.get=function(){return .01},Object.defineProperties(ro,rA);var fo=function(st){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=Pr.COUNTERCLOCKWISE,this._inputLine=st||null},na={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};fo.prototype.isDeletable=function(st,ct,ht,Ct){var bt=this._inputLine[st],Ft=this._inputLine[ct],zt=this._inputLine[ht];return!!this.isConcave(bt,Ft,zt)&&!!this.isShallow(bt,Ft,zt,Ct)&&this.isShallowSampled(bt,Ft,st,ht,Ct)},fo.prototype.deleteShallowConcavities=function(){for(var st=1,ct=this.findNextNonDeletedIndex(st),ht=this.findNextNonDeletedIndex(ct),Ct=!1;ht=0;Ct--)this.addPt(st[Ct])},Is.prototype.isRedundant=function(st){if(this._ptList.size()<1)return!1;var ct=this._ptList.get(this._ptList.size()-1);return st.distance(ct)Math.PI;)st-=eo.PI_TIMES_2;for(;st<=-Math.PI;)st+=eo.PI_TIMES_2;return st},eo.angle=function(){if(arguments.length===1){var st=arguments[0];return Math.atan2(st.y,st.x)}if(arguments.length===2){var ct=arguments[0],ht=arguments[1],Ct=ht.x-ct.x,bt=ht.y-ct.y;return Math.atan2(bt,Ct)}},eo.isAcute=function(st,ct,ht){var Ct=st.x-ct.x,bt=st.y-ct.y;return Ct*(ht.x-ct.x)+bt*(ht.y-ct.y)>0},eo.isObtuse=function(st,ct,ht){var Ct=st.x-ct.x,bt=st.y-ct.y;return Ct*(ht.x-ct.x)+bt*(ht.y-ct.y)<0},eo.interiorAngle=function(st,ct,ht){var Ct=eo.angle(ct,st),bt=eo.angle(ct,ht);return Math.abs(bt-Ct)},eo.normalizePositive=function(st){if(st<0){for(;st<0;)st+=eo.PI_TIMES_2;st>=eo.PI_TIMES_2&&(st=0)}else{for(;st>=eo.PI_TIMES_2;)st-=eo.PI_TIMES_2;st<0&&(st=0)}return st},eo.angleBetween=function(st,ct,ht){var Ct=eo.angle(ct,st),bt=eo.angle(ct,ht);return eo.diff(Ct,bt)},eo.diff=function(st,ct){var ht=null;return(ht=stMath.PI&&(ht=2*Math.PI-ht),ht},eo.toRadians=function(st){return st*Math.PI/180},eo.getTurn=function(st,ct){var ht=Math.sin(ct-st);return ht>0?eo.COUNTERCLOCKWISE:ht<0?eo.CLOCKWISE:eo.NONE},eo.angleBetweenOriented=function(st,ct,ht){var Ct=eo.angle(ct,st),bt=eo.angle(ct,ht)-Ct;return bt<=-Math.PI?bt+eo.PI_TIMES_2:bt>Math.PI?bt-eo.PI_TIMES_2:bt},YA.PI_TIMES_2.get=function(){return 2*Math.PI},YA.PI_OVER_2.get=function(){return Math.PI/2},YA.PI_OVER_4.get=function(){return Math.PI/4},YA.COUNTERCLOCKWISE.get=function(){return Pr.COUNTERCLOCKWISE},YA.CLOCKWISE.get=function(){return Pr.CLOCKWISE},YA.NONE.get=function(){return Pr.COLLINEAR},Object.defineProperties(eo,YA);var So=function st(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new Pn,this._seg1=new Pn,this._offset0=new Pn,this._offset1=new Pn,this._side=0,this._hasNarrowConcaveAngle=!1;var ct=arguments[0],ht=arguments[1],Ct=arguments[2];this._precisionModel=ct,this._bufParams=ht,this._li=new yr,this._filletAngleQuantum=Math.PI/2/ht.getQuadrantSegments(),ht.getQuadrantSegments()>=8&&ht.getJoinStyle()===ro.JOIN_ROUND&&(this._closingSegLengthFactor=st.MAX_CLOSING_SEG_LEN_FACTOR),this.init(Ct)},Ll={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};So.prototype.addNextSegment=function(st,ct){if(this._s0=this._s1,this._s1=this._s2,this._s2=st,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var ht=Pr.computeOrientation(this._s0,this._s1,this._s2),Ct=ht===Pr.CLOCKWISE&&this._side===Gr.LEFT||ht===Pr.COUNTERCLOCKWISE&&this._side===Gr.RIGHT;ht===0?this.addCollinear(ct):Ct?this.addOutsideTurn(ht,ct):this.addInsideTurn(ht,ct)},So.prototype.addLineEndCap=function(st,ct){var ht=new Pn(st,ct),Ct=new Pn;this.computeOffsetSegment(ht,Gr.LEFT,this._distance,Ct);var bt=new Pn;this.computeOffsetSegment(ht,Gr.RIGHT,this._distance,bt);var Ft=ct.x-st.x,zt=ct.y-st.y,nr=Math.atan2(zt,Ft);switch(this._bufParams.getEndCapStyle()){case ro.CAP_ROUND:this._segList.addPt(Ct.p1),this.addFilletArc(ct,nr+Math.PI/2,nr-Math.PI/2,Pr.CLOCKWISE,this._distance),this._segList.addPt(bt.p1);break;case ro.CAP_FLAT:this._segList.addPt(Ct.p1),this._segList.addPt(bt.p1);break;case ro.CAP_SQUARE:var dr=new Ht;dr.x=Math.abs(this._distance)*Math.cos(nr),dr.y=Math.abs(this._distance)*Math.sin(nr);var Br=new Ht(Ct.p1.x+dr.x,Ct.p1.y+dr.y),kr=new Ht(bt.p1.x+dr.x,bt.p1.y+dr.y);this._segList.addPt(Br),this._segList.addPt(kr)}},So.prototype.getCoordinates=function(){return this._segList.getCoordinates()},So.prototype.addMitreJoin=function(st,ct,ht,Ct){var bt=!0,Ft=null;try{Ft=Fr.intersection(ct.p0,ct.p1,ht.p0,ht.p1),(Ct<=0?1:Ft.distance(st)/Math.abs(Ct))>this._bufParams.getMitreLimit()&&(bt=!1)}catch(zt){if(!(zt instanceof $r))throw zt;Ft=new Ht(0,0),bt=!1}bt?this._segList.addPt(Ft):this.addLimitedMitreJoin(ct,ht,Ct,this._bufParams.getMitreLimit())},So.prototype.addFilletCorner=function(st,ct,ht,Ct,bt){var Ft=ct.x-st.x,zt=ct.y-st.y,nr=Math.atan2(zt,Ft),dr=ht.x-st.x,Br=ht.y-st.y,kr=Math.atan2(Br,dr);Ct===Pr.CLOCKWISE?nr<=kr&&(nr+=2*Math.PI):nr>=kr&&(nr-=2*Math.PI),this._segList.addPt(ct),this.addFilletArc(st,nr,kr,Ct,bt),this._segList.addPt(ht)},So.prototype.addOutsideTurn=function(st,ct){if(this._offset0.p1.distance(this._offset1.p0)0){var ht=new Ht((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(ht);var Ct=new Ht((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(Ct)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}},So.prototype.createCircle=function(st){var ct=new Ht(st.x+this._distance,st.y);this._segList.addPt(ct),this.addFilletArc(st,0,2*Math.PI,-1,this._distance),this._segList.closeRing()},So.prototype.addBevelJoin=function(st,ct){this._segList.addPt(st.p1),this._segList.addPt(ct.p0)},So.prototype.init=function(st){this._distance=st,this._maxCurveSegmentError=st*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Is,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(st*So.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)},So.prototype.addCollinear=function(st){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===ro.JOIN_BEVEL||this._bufParams.getJoinStyle()===ro.JOIN_MITRE?(st&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,Pr.CLOCKWISE,this._distance))},So.prototype.closeRing=function(){this._segList.closeRing()},So.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle},So.prototype.interfaces_=function(){return[]},So.prototype.getClass=function(){return So},Ll.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return .001},Ll.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return .001},Ll.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6},Ll.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80},Object.defineProperties(So,Ll);var uo=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var st=arguments[0],ct=arguments[1];this._precisionModel=st,this._bufParams=ct};uo.prototype.getOffsetCurve=function(st,ct){if(this._distance=ct,ct===0)return null;var ht=ct<0,Ct=Math.abs(ct),bt=this.getSegGen(Ct);st.length<=1?this.computePointCurve(st[0],bt):this.computeOffsetCurve(st,ht,bt);var Ft=bt.getCoordinates();return ht&&Ln.reverse(Ft),Ft},uo.prototype.computeSingleSidedBufferCurve=function(st,ct,ht){var Ct=this.simplifyTolerance(this._distance);if(ct){ht.addSegments(st,!0);var bt=fo.simplify(st,-Ct),Ft=bt.length-1;ht.initSideSegments(bt[Ft],bt[Ft-1],Gr.LEFT),ht.addFirstSegment();for(var zt=Ft-2;zt>=0;zt--)ht.addNextSegment(bt[zt],!0)}else{ht.addSegments(st,!1);var nr=fo.simplify(st,Ct),dr=nr.length-1;ht.initSideSegments(nr[0],nr[1],Gr.LEFT),ht.addFirstSegment();for(var Br=2;Br<=dr;Br++)ht.addNextSegment(nr[Br],!0)}ht.addLastSegment(),ht.closeRing()},uo.prototype.computeRingBufferCurve=function(st,ct,ht){var Ct=this.simplifyTolerance(this._distance);ct===Gr.RIGHT&&(Ct=-Ct);var bt=fo.simplify(st,Ct),Ft=bt.length-1;ht.initSideSegments(bt[Ft-1],bt[0],ct);for(var zt=1;zt<=Ft;zt++){var nr=zt!==1;ht.addNextSegment(bt[zt],nr)}ht.closeRing()},uo.prototype.computeLineBufferCurve=function(st,ct){var ht=this.simplifyTolerance(this._distance),Ct=fo.simplify(st,ht),bt=Ct.length-1;ct.initSideSegments(Ct[0],Ct[1],Gr.LEFT);for(var Ft=2;Ft<=bt;Ft++)ct.addNextSegment(Ct[Ft],!0);ct.addLastSegment(),ct.addLineEndCap(Ct[bt-1],Ct[bt]);var zt=fo.simplify(st,-ht),nr=zt.length-1;ct.initSideSegments(zt[nr],zt[nr-1],Gr.LEFT);for(var dr=nr-2;dr>=0;dr--)ct.addNextSegment(zt[dr],!0);ct.addLastSegment(),ct.addLineEndCap(zt[1],zt[0]),ct.closeRing()},uo.prototype.computePointCurve=function(st,ct){switch(this._bufParams.getEndCapStyle()){case ro.CAP_ROUND:ct.createCircle(st);break;case ro.CAP_SQUARE:ct.createSquare(st)}},uo.prototype.getLineCurve=function(st,ct){if(this._distance=ct,ct<0&&!this._bufParams.isSingleSided()||ct===0)return null;var ht=Math.abs(ct),Ct=this.getSegGen(ht);if(st.length<=1)this.computePointCurve(st[0],Ct);else if(this._bufParams.isSingleSided()){var bt=ct<0;this.computeSingleSidedBufferCurve(st,bt,Ct)}else this.computeLineBufferCurve(st,Ct);return Ct.getCoordinates()},uo.prototype.getBufferParameters=function(){return this._bufParams},uo.prototype.simplifyTolerance=function(st){return st*this._bufParams.getSimplifyFactor()},uo.prototype.getRingCurve=function(st,ct,ht){if(this._distance=ht,st.length<=2)return this.getLineCurve(st,ht);if(ht===0)return uo.copyCoordinates(st);var Ct=this.getSegGen(ht);return this.computeRingBufferCurve(st,ct,Ct),Ct.getCoordinates()},uo.prototype.computeOffsetCurve=function(st,ct,ht){var Ct=this.simplifyTolerance(this._distance);if(ct){var bt=fo.simplify(st,-Ct),Ft=bt.length-1;ht.initSideSegments(bt[Ft],bt[Ft-1],Gr.LEFT),ht.addFirstSegment();for(var zt=Ft-2;zt>=0;zt--)ht.addNextSegment(bt[zt],!0)}else{var nr=fo.simplify(st,Ct),dr=nr.length-1;ht.initSideSegments(nr[0],nr[1],Gr.LEFT),ht.addFirstSegment();for(var Br=2;Br<=dr;Br++)ht.addNextSegment(nr[Br],!0)}ht.addLastSegment()},uo.prototype.getSegGen=function(st){return new So(this._precisionModel,this._bufParams,st)},uo.prototype.interfaces_=function(){return[]},uo.prototype.getClass=function(){return uo},uo.copyCoordinates=function(st){for(var ct=new Array(st.length).fill(null),ht=0;htbt.getMaxY()||this.findStabbedSegments(st,Ct.getDirectedEdges(),ct)}return ct}if(arguments.length===3){if(Ar(arguments[2],go)&&arguments[0]instanceof Ht&&arguments[1]instanceof IA){for(var Ft=arguments[0],zt=arguments[1],nr=arguments[2],dr=zt.getEdge().getCoordinates(),Br=0;Brthis._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)this._seg.p1.y||Pr.computeOrientation(this._seg.p0,this._seg.p1,Ft)===Pr.RIGHT)){var kr=zt.getDepth(Gr.LEFT);this._seg.p0.equals(dr[Br])||(kr=zt.getDepth(Gr.RIGHT));var Kr=new _o(this._seg,kr);nr.add(Kr)}}else if(Ar(arguments[2],go)&&arguments[0]instanceof Ht&&Ar(arguments[1],go))for(var qr=arguments[0],en=arguments[1],Dr=arguments[2],gn=en.iterator();gn.hasNext();){var mn=gn.next();mn.isForward()&&this.findStabbedSegments(qr,mn,Dr)}}},TA.prototype.getDepth=function(st){var ct=this.findStabbedSegments(st);return ct.size()===0?0:Xs.min(ct)._leftDepth},TA.prototype.interfaces_=function(){return[]},TA.prototype.getClass=function(){return TA},mA.DepthSegment.get=function(){return _o},Object.defineProperties(TA,mA);var _o=function(){this._upwardSeg=null,this._leftDepth=null;var st=arguments[0],ct=arguments[1];this._upwardSeg=new Pn(st),this._leftDepth=ct};_o.prototype.compareTo=function(st){var ct=st;if(this._upwardSeg.minX()>=ct._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=ct._upwardSeg.minX())return-1;var ht=this._upwardSeg.orientationIndex(ct._upwardSeg);return ht!==0||(ht=-1*ct._upwardSeg.orientationIndex(this._upwardSeg))!=0?ht:this._upwardSeg.compareTo(ct._upwardSeg)},_o.prototype.compareX=function(st,ct){var ht=st.p0.compareTo(ct.p0);return ht!==0?ht:st.p1.compareTo(ct.p1)},_o.prototype.toString=function(){return this._upwardSeg.toString()},_o.prototype.interfaces_=function(){return[kt]},_o.prototype.getClass=function(){return _o};var Mn=function(st,ct,ht){this.p0=st||null,this.p1=ct||null,this.p2=ht||null};Mn.prototype.area=function(){return Mn.area(this.p0,this.p1,this.p2)},Mn.prototype.signedArea=function(){return Mn.signedArea(this.p0,this.p1,this.p2)},Mn.prototype.interpolateZ=function(st){if(st===null)throw new xt("Supplied point is null.");return Mn.interpolateZ(st,this.p0,this.p1,this.p2)},Mn.prototype.longestSideLength=function(){return Mn.longestSideLength(this.p0,this.p1,this.p2)},Mn.prototype.isAcute=function(){return Mn.isAcute(this.p0,this.p1,this.p2)},Mn.prototype.circumcentre=function(){return Mn.circumcentre(this.p0,this.p1,this.p2)},Mn.prototype.area3D=function(){return Mn.area3D(this.p0,this.p1,this.p2)},Mn.prototype.centroid=function(){return Mn.centroid(this.p0,this.p1,this.p2)},Mn.prototype.inCentre=function(){return Mn.inCentre(this.p0,this.p1,this.p2)},Mn.prototype.interfaces_=function(){return[]},Mn.prototype.getClass=function(){return Mn},Mn.area=function(st,ct,ht){return Math.abs(((ht.x-st.x)*(ct.y-st.y)-(ct.x-st.x)*(ht.y-st.y))/2)},Mn.signedArea=function(st,ct,ht){return((ht.x-st.x)*(ct.y-st.y)-(ct.x-st.x)*(ht.y-st.y))/2},Mn.det=function(st,ct,ht,Ct){return st*Ct-ct*ht},Mn.interpolateZ=function(st,ct,ht,Ct){var bt=ct.x,Ft=ct.y,zt=ht.x-bt,nr=Ct.x-bt,dr=ht.y-Ft,Br=Ct.y-Ft,kr=zt*Br-nr*dr,Kr=st.x-bt,qr=st.y-Ft,en=(Br*Kr-nr*qr)/kr,Dr=(-dr*Kr+zt*qr)/kr;return ct.z+en*(ht.z-ct.z)+Dr*(Ct.z-ct.z)},Mn.longestSideLength=function(st,ct,ht){var Ct=st.distance(ct),bt=ct.distance(ht),Ft=ht.distance(st),zt=Ct;return bt>zt&&(zt=bt),Ft>zt&&(zt=Ft),zt},Mn.isAcute=function(st,ct,ht){return!!eo.isAcute(st,ct,ht)&&!!eo.isAcute(ct,ht,st)&&!!eo.isAcute(ht,st,ct)},Mn.circumcentre=function(st,ct,ht){var Ct=ht.x,bt=ht.y,Ft=st.x-Ct,zt=st.y-bt,nr=ct.x-Ct,dr=ct.y-bt,Br=2*Mn.det(Ft,zt,nr,dr),kr=Mn.det(zt,Ft*Ft+zt*zt,dr,nr*nr+dr*dr),Kr=Mn.det(Ft,Ft*Ft+zt*zt,nr,nr*nr+dr*dr);return new Ht(Ct-kr/Br,bt+Kr/Br)},Mn.perpendicularBisector=function(st,ct){var ht=ct.x-st.x,Ct=ct.y-st.y,bt=new Fr(st.x+ht/2,st.y+Ct/2,1),Ft=new Fr(st.x-Ct+ht/2,st.y+ht+Ct/2,1);return new Fr(bt,Ft)},Mn.angleBisector=function(st,ct,ht){var Ct=ct.distance(st),bt=Ct/(Ct+ct.distance(ht)),Ft=ht.x-st.x,zt=ht.y-st.y;return new Ht(st.x+bt*Ft,st.y+bt*zt)},Mn.area3D=function(st,ct,ht){var Ct=ct.x-st.x,bt=ct.y-st.y,Ft=ct.z-st.z,zt=ht.x-st.x,nr=ht.y-st.y,dr=ht.z-st.z,Br=bt*dr-Ft*nr,kr=Ft*zt-Ct*dr,Kr=Ct*nr-bt*zt,qr=Br*Br+kr*kr+Kr*Kr,en=Math.sqrt(qr)/2;return en},Mn.centroid=function(st,ct,ht){var Ct=(st.x+ct.x+ht.x)/3,bt=(st.y+ct.y+ht.y)/3;return new Ht(Ct,bt)},Mn.inCentre=function(st,ct,ht){var Ct=ct.distance(ht),bt=st.distance(ht),Ft=st.distance(ct),zt=Ct+bt+Ft,nr=(Ct*st.x+bt*ct.x+Ft*ht.x)/zt,dr=(Ct*st.y+bt*ct.y+Ft*ht.y)/zt;return new Ht(nr,dr)};var ls=function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new Xr;var st=arguments[0],ct=arguments[1],ht=arguments[2];this._inputGeom=st,this._distance=ct,this._curveBuilder=ht};ls.prototype.addPoint=function(st){if(this._distance<=0)return null;var ct=st.getCoordinates(),ht=this._curveBuilder.getLineCurve(ct,this._distance);this.addCurve(ht,Vt.EXTERIOR,Vt.INTERIOR)},ls.prototype.addPolygon=function(st){var ct=this._distance,ht=Gr.LEFT;this._distance<0&&(ct=-this._distance,ht=Gr.RIGHT);var Ct=st.getExteriorRing(),bt=Ln.removeRepeatedPoints(Ct.getCoordinates());if(this._distance<0&&this.isErodedCompletely(Ct,this._distance)||this._distance<=0&&bt.length<3)return null;this.addPolygonRing(bt,ct,ht,Vt.EXTERIOR,Vt.INTERIOR);for(var Ft=0;Ft0&&this.isErodedCompletely(zt,-this._distance)||this.addPolygonRing(nr,ct,Gr.opposite(ht),Vt.INTERIOR,Vt.EXTERIOR)}},ls.prototype.isTriangleErodedCompletely=function(st,ct){var ht=new Mn(st[0],st[1],st[2]),Ct=ht.inCentre();return Pr.distancePointLine(Ct,ht.p0,ht.p1)=To.MINIMUM_VALID_SIZE&&Pr.isCCW(st)&&(Ft=bt,zt=Ct,ht=Gr.opposite(ht));var nr=this._curveBuilder.getRingCurve(st,ht,ct);this.addCurve(nr,Ft,zt)},ls.prototype.add=function(st){if(st.isEmpty())return null;st instanceof kn?this.addPolygon(st):st instanceof xn?this.addLineString(st):st instanceof Yn?this.addPoint(st):st instanceof Io?this.addCollection(st):st instanceof tn?this.addCollection(st):st instanceof Fo?this.addCollection(st):st instanceof Jr&&this.addCollection(st)},ls.prototype.isErodedCompletely=function(st,ct){var ht=st.getCoordinates();if(ht.length<4)return ct<0;if(ht.length===4)return this.isTriangleErodedCompletely(ht,ct);var Ct=st.getEnvelopeInternal(),bt=Math.min(Ct.getHeight(),Ct.getWidth());return ct<0&&2*Math.abs(ct)>bt},ls.prototype.addCollection=function(st){for(var ct=0;ct=this._max)throw new rt;var st=this._parent.getGeometryN(this._index++);return st instanceof Jr?(this._subcollectionIterator=new Ds(st),this._subcollectionIterator.next()):st},Ds.prototype.remove=function(){throw new Error(this.getClass().getName())},Ds.prototype.hasNext=function(){if(this._atStart)return!0;if(this._subcollectionIterator!==null){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)},Ds.prototype.interfaces_=function(){return[Ao]},Ds.prototype.getClass=function(){return Ds},Ds.isAtomic=function(st){return!(st instanceof Jr)};var is=function(){this._geom=null;var st=arguments[0];this._geom=st};is.prototype.locate=function(st){return is.locate(st,this._geom)},is.prototype.interfaces_=function(){return[kA]},is.prototype.getClass=function(){return is},is.isPointInRing=function(st,ct){return!!ct.getEnvelopeInternal().intersects(st)&&Pr.isPointInRing(st,ct.getCoordinates())},is.containsPointInPolygon=function(st,ct){if(ct.isEmpty())return!1;var ht=ct.getExteriorRing();if(!is.isPointInRing(st,ht))return!1;for(var Ct=0;Ct=0;bt--){var Ft=this._edgeList.get(bt),zt=Ft.getSym();Ct===null&&(Ct=zt),ht!==null&&zt.setNext(ht),ht=Ft}Ct.setNext(ht)},ct.prototype.computeDepths=function(){if(arguments.length===1){var ht=arguments[0],Ct=this.findIndex(ht),bt=ht.getDepth(Gr.LEFT),Ft=ht.getDepth(Gr.RIGHT),zt=this.computeDepths(Ct+1,this._edgeList.size(),bt);if(this.computeDepths(0,Ct,zt)!==Ft)throw new jn("depth mismatch at "+ht.getCoordinate())}else if(arguments.length===3){for(var nr=arguments[0],dr=arguments[1],Br=arguments[2],kr=nr;kr=0;zt--){var nr=this._resultAreaEdgeList.get(zt),dr=nr.getSym();switch(Ct===null&&nr.getEdgeRing()===ht&&(Ct=nr),Ft){case this._SCANNING_FOR_INCOMING:if(dr.getEdgeRing()!==ht)continue;bt=dr,Ft=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(nr.getEdgeRing()!==ht)continue;bt.setNextMin(nr),Ft=this._SCANNING_FOR_INCOMING}}Ft===this._LINKING_TO_OUTGOING&&(er.isTrue(Ct!==null,"found null for first outgoing dirEdge"),er.isTrue(Ct.getEdgeRing()===ht,"unable to link last incoming dirEdge"),bt.setNextMin(Ct))},ct.prototype.getOutgoingDegree=function(){if(arguments.length===0){for(var ht=0,Ct=this.iterator();Ct.hasNext();)Ct.next().isInResult()&&ht++;return ht}if(arguments.length===1){for(var bt=arguments[0],Ft=0,zt=this.iterator();zt.hasNext();)zt.next().getEdgeRing()===bt&&Ft++;return Ft}},ct.prototype.getLabel=function(){return this._label},ct.prototype.findCoveredLineEdges=function(){for(var ht=Vt.NONE,Ct=this.iterator();Ct.hasNext();){var bt=Ct.next(),Ft=bt.getSym();if(!bt.isLineEdge()){if(bt.isInResult()){ht=Vt.INTERIOR;break}if(Ft.isInResult()){ht=Vt.EXTERIOR;break}}}if(ht===Vt.NONE)return null;for(var zt=ht,nr=this.iterator();nr.hasNext();){var dr=nr.next(),Br=dr.getSym();dr.isLineEdge()?dr.getEdge().setCovered(zt===Vt.INTERIOR):(dr.isInResult()&&(zt=Vt.EXTERIOR),Br.isInResult()&&(zt=Vt.INTERIOR))}},ct.prototype.computeLabelling=function(ht){st.prototype.computeLabelling.call(this,ht),this._label=new Jn(Vt.NONE);for(var Ct=this.iterator();Ct.hasNext();)for(var bt=Ct.next().getEdge().getLabel(),Ft=0;Ft<2;Ft++){var zt=bt.getLocation(Ft);zt!==Vt.INTERIOR&&zt!==Vt.BOUNDARY||this._label.setLocation(Ft,Vt.INTERIOR)}},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(os),UA=function(st){function ct(){st.apply(this,arguments)}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.createNode=function(ht){return new FA(ht,new Kl)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(EA),ga=function st(){this._pts=null,this._orientation=null;var ct=arguments[0];this._pts=ct,this._orientation=st.orientation(ct)};ga.prototype.compareTo=function(st){var ct=st;return ga.compareOriented(this._pts,this._orientation,ct._pts,ct._orientation)},ga.prototype.interfaces_=function(){return[kt]},ga.prototype.getClass=function(){return ga},ga.orientation=function(st){return Ln.increasingDirection(st)===1},ga.compareOriented=function(st,ct,ht,Ct){for(var bt=ct?1:-1,Ft=Ct?1:-1,zt=ct?st.length:-1,nr=Ct?ht.length:-1,dr=ct?0:st.length-1,Br=Ct?0:ht.length-1;;){var kr=st[dr].compareTo(ht[Br]);if(kr!==0)return kr;var Kr=(dr+=bt)===zt,qr=(Br+=Ft)===nr;if(Kr&&!qr)return-1;if(!Kr&&qr)return 1;if(Kr&&qr)return 0}};var ba=function(){this._edges=new Xr,this._ocaMap=new Et};ba.prototype.print=function(st){st.print("MULTILINESTRING ( ");for(var ct=0;ct0&&st.print(","),st.print("(");for(var Ct=ht.getCoordinates(),bt=0;bt0&&st.print(","),st.print(Ct[bt].x+" "+Ct[bt].y);st.println(")")}st.print(") ")},ba.prototype.addAll=function(st){for(var ct=st.iterator();ct.hasNext();)this.add(ct.next())},ba.prototype.findEdgeIndex=function(st){for(var ct=0;ct0||!ct.coord.equals2D(Ct);bt||ht--;var Ft=new Array(ht).fill(null),zt=0;Ft[zt++]=new Ht(st.coord);for(var nr=st.segmentIndex+1;nr<=ct.segmentIndex;nr++)Ft[zt++]=this.edge.pts[nr];return bt&&(Ft[zt]=ct.coord),new BA(Ft,new Jn(this.edge._label))},bo.prototype.add=function(st,ct,ht){var Ct=new jo(st,ct,ht),bt=this._nodeMap.get(Ct);return bt!==null?bt:(this._nodeMap.put(Ct,Ct),Ct)},bo.prototype.isIntersection=function(st){for(var ct=this.iterator();ct.hasNext();)if(ct.next().coord.equals(st))return!0;return!1},bo.prototype.interfaces_=function(){return[]},bo.prototype.getClass=function(){return bo};var HA=function(){};HA.prototype.getChainStartIndices=function(st){var ct=0,ht=new Xr;ht.add(new Yt(ct));do{var Ct=this.findChainEnd(st,ct);ht.add(new Yt(Ct)),ct=Ct}while(ctht?ct:ht},AA.prototype.getMinX=function(st){var ct=this.pts[this.startIndex[st]].x,ht=this.pts[this.startIndex[st+1]].x;return ctct&&(Ct=1),this._depth[st][ht]=Ct}}},cs.prototype.getDelta=function(st){return this._depth[st][Gr.RIGHT]-this._depth[st][Gr.LEFT]},cs.prototype.getLocation=function(st,ct){return this._depth[st][ct]<=0?Vt.EXTERIOR:Vt.INTERIOR},cs.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]},cs.prototype.add=function(){if(arguments.length===1)for(var st=arguments[0],ct=0;ct<2;ct++)for(var ht=1;ht<3;ht++){var Ct=st.getLocation(ct,ht);Ct!==Vt.EXTERIOR&&Ct!==Vt.INTERIOR||(this.isNull(ct,ht)?this._depth[ct][ht]=cs.depthAtLocation(Ct):this._depth[ct][ht]+=cs.depthAtLocation(Ct))}else if(arguments.length===3){var bt=arguments[0],Ft=arguments[1];arguments[2]===Vt.INTERIOR&&this._depth[bt][Ft]++}},cs.prototype.interfaces_=function(){return[]},cs.prototype.getClass=function(){return cs},cs.depthAtLocation=function(st){return st===Vt.EXTERIOR?0:st===Vt.INTERIOR?1:cs.NULL_VALUE},au.NULL_VALUE.get=function(){return-1},Object.defineProperties(cs,au);var BA=function(st){function ct(){if(st.call(this),this.pts=null,this._env=null,this.eiList=new bo(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new cs,this._depthDelta=0,arguments.length===1){var ht=arguments[0];ct.call(this,ht,null)}else if(arguments.length===2){var Ct=arguments[0],bt=arguments[1];this.pts=Ct,this._label=bt}}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.getDepth=function(){return this._depth},ct.prototype.getCollapsedEdge=function(){var ht=new Array(2).fill(null);return ht[0]=this.pts[0],ht[1]=this.pts[1],new ct(ht,Jn.toLineLabel(this._label))},ct.prototype.isIsolated=function(){return this._isIsolated},ct.prototype.getCoordinates=function(){return this.pts},ct.prototype.setIsolated=function(ht){this._isIsolated=ht},ct.prototype.setName=function(ht){this._name=ht},ct.prototype.equals=function(ht){if(!(ht instanceof ct))return!1;var Ct=ht;if(this.pts.length!==Ct.pts.length)return!1;for(var bt=!0,Ft=!0,zt=this.pts.length,nr=0;nr0?this.pts[0]:null;if(arguments.length===1){var ht=arguments[0];return this.pts[ht]}},ct.prototype.print=function(ht){ht.print("edge "+this._name+": "),ht.print("LINESTRING (");for(var Ct=0;Ct0&&ht.print(","),ht.print(this.pts[Ct].x+" "+this.pts[Ct].y);ht.print(") "+this._label+" "+this._depthDelta)},ct.prototype.computeIM=function(ht){ct.updateIM(this._label,ht)},ct.prototype.isCollapsed=function(){return!!this._label.isArea()&&this.pts.length===3&&!!this.pts[0].equals(this.pts[2])},ct.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1])},ct.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1},ct.prototype.getDepthDelta=function(){return this._depthDelta},ct.prototype.getNumPoints=function(){return this.pts.length},ct.prototype.printReverse=function(ht){ht.print("edge "+this._name+": ");for(var Ct=this.pts.length-1;Ct>=0;Ct--)ht.print(this.pts[Ct]+" ");ht.println("")},ct.prototype.getMonotoneChainEdge=function(){return this._mce===null&&(this._mce=new AA(this)),this._mce},ct.prototype.getEnvelope=function(){if(this._env===null){this._env=new Nr;for(var ht=0;ht0&&ht.append(","),ht.append(this.pts[Ct].x+" "+this.pts[Ct].y);return ht.append(") "+this._label+" "+this._depthDelta),ht.toString()},ct.prototype.isPointwiseEqual=function(ht){if(this.pts.length!==ht.pts.length)return!1;for(var Ct=0;CtCt||this._maxyFt;if(zt)return!1;var nr=this.intersectsToleranceSquare(st,ct);return er.isTrue(!(zt&&nr),"Found bad envelope test"),nr},Cs.prototype.initCorners=function(st){this._minx=st.x-.5,this._maxx=st.x+.5,this._miny=st.y-.5,this._maxy=st.y+.5,this._corner[0]=new Ht(this._maxx,this._maxy),this._corner[1]=new Ht(this._minx,this._maxy),this._corner[2]=new Ht(this._minx,this._miny),this._corner[3]=new Ht(this._maxx,this._miny)},Cs.prototype.intersects=function(st,ct){return this._scaleFactor===1?this.intersectsScaled(st,ct):(this.copyScaled(st,this._p0Scaled),this.copyScaled(ct,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))},Cs.prototype.scale=function(st){return Math.round(st*this._scaleFactor)},Cs.prototype.getCoordinate=function(){return this._originalPt},Cs.prototype.copyScaled=function(st,ct){ct.x=this.scale(st.x),ct.y=this.scale(st.y)},Cs.prototype.getSafeEnvelope=function(){if(this._safeEnv===null){var st=Cs.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Nr(this._originalPt.x-st,this._originalPt.x+st,this._originalPt.y-st,this._originalPt.y+st)}return this._safeEnv},Cs.prototype.intersectsPixelClosure=function(st,ct){return this._li.computeIntersection(st,ct,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(st,ct,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(st,ct,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(st,ct,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))},Cs.prototype.intersectsToleranceSquare=function(st,ct){var ht=!1,Ct=!1;return this._li.computeIntersection(st,ct,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(st,ct,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(ht=!0),this._li.computeIntersection(st,ct,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(Ct=!0),this._li.computeIntersection(st,ct,this._corner[3],this._corner[0]),!!this._li.isProper()||!(!ht||!Ct)||!!st.equals(this._pt)||!!ct.equals(this._pt))))},Cs.prototype.addSnappedNode=function(st,ct){var ht=st.getCoordinate(ct),Ct=st.getCoordinate(ct+1);return!!this.intersects(ht,Ct)&&(st.addIntersection(this.getCoordinate(),ct),!0)},Cs.prototype.interfaces_=function(){return[]},Cs.prototype.getClass=function(){return Cs},lu.SAFE_ENV_EXPANSION_FACTOR.get=function(){return .75},Object.defineProperties(Cs,lu);var Hs=function(){this.tempEnv1=new Nr,this.selectedSegment=new Pn};Hs.prototype.select=function(){if(arguments.length!==1){if(arguments.length===2){var st=arguments[0],ct=arguments[1];st.getLineSegment(ct,this.selectedSegment),this.select(this.selectedSegment)}}},Hs.prototype.interfaces_=function(){return[]},Hs.prototype.getClass=function(){return Hs};var JA=function(){this._index=null;var st=arguments[0];this._index=st},Ul={HotPixelSnapAction:{configurable:!0}};JA.prototype.snap=function(){if(arguments.length===1){var st=arguments[0];return this.snap(st,null,-1)}if(arguments.length===3){var ct=arguments[0],ht=arguments[1],Ct=arguments[2],bt=ct.getSafeEnvelope(),Ft=new Sl(ct,ht,Ct);return this._index.query(bt,{interfaces_:function(){return[Wo]},visitItem:function(zt){zt.select(bt,Ft)}}),Ft.isNodeAdded()}},JA.prototype.interfaces_=function(){return[]},JA.prototype.getClass=function(){return JA},Ul.HotPixelSnapAction.get=function(){return Sl},Object.defineProperties(JA,Ul);var Sl=function(st){function ct(){st.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var ht=arguments[0],Ct=arguments[1],bt=arguments[2];this._hotPixel=ht,this._parentEdge=Ct,this._hotPixelVertexIndex=bt}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.isNodeAdded=function(){return this._isNodeAdded},ct.prototype.select=function(){if(arguments.length!==2)return st.prototype.select.apply(this,arguments);var ht=arguments[0],Ct=arguments[1],bt=ht.getContext();if(this._parentEdge!==null&&bt===this._parentEdge&&Ct===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(bt,Ct)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(Hs),nA=function(){this._li=null,this._interiorIntersections=null;var st=arguments[0];this._li=st,this._interiorIntersections=new Xr};nA.prototype.processIntersections=function(st,ct,ht,Ct){if(st===ht&&ct===Ct)return null;var bt=st.getCoordinates()[ct],Ft=st.getCoordinates()[ct+1],zt=ht.getCoordinates()[Ct],nr=ht.getCoordinates()[Ct+1];if(this._li.computeIntersection(bt,Ft,zt,nr),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var dr=0;dr=0;ct--){try{st.bufferReducedPrecision(ct)}catch(Ft){if(!(Ft instanceof jn))throw Ft;st._saveException=Ft}if(st._resultGeometry!==null)return null}throw this._saveException}if(arguments.length===1){var ht=arguments[0],Ct=us.precisionScaleFactor(this._argGeom,this._distance,ht),bt=new Vn(Ct);this.bufferFixedPrecision(bt)}},us.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),this._resultGeometry!==null)return null;var st=this._argGeom.getFactory().getPrecisionModel();st.getType()===Vn.FIXED?this.bufferFixedPrecision(st):this.bufferReducedPrecision()},us.prototype.setQuadrantSegments=function(st){this._bufParams.setQuadrantSegments(st)},us.prototype.bufferOriginalPrecision=function(){try{var st=new Eo(this._bufParams);this._resultGeometry=st.buffer(this._argGeom,this._distance)}catch(ct){if(!(ct instanceof wr))throw ct;this._saveException=ct}},us.prototype.getResultGeometry=function(st){return this._distance=st,this.computeGeometry(),this._resultGeometry},us.prototype.setEndCapStyle=function(st){this._bufParams.setEndCapStyle(st)},us.prototype.interfaces_=function(){return[]},us.prototype.getClass=function(){return us},us.bufferOp=function(){if(arguments.length===2){var st=arguments[0],ct=arguments[1];return new us(st).getResultGeometry(ct)}if(arguments.length===3){if(Number.isInteger(arguments[2])&&arguments[0]instanceof on&&typeof arguments[1]=="number"){var ht=arguments[0],Ct=arguments[1],bt=arguments[2],Ft=new us(ht);return Ft.setQuadrantSegments(bt),Ft.getResultGeometry(Ct)}if(arguments[2]instanceof ro&&arguments[0]instanceof on&&typeof arguments[1]=="number"){var zt=arguments[0],nr=arguments[1],dr=arguments[2];return new us(zt,dr).getResultGeometry(nr)}}else if(arguments.length===4){var Br=arguments[0],kr=arguments[1],Kr=arguments[2],qr=arguments[3],en=new us(Br);return en.setQuadrantSegments(Kr),en.setEndCapStyle(qr),en.getResultGeometry(kr)}},us.precisionScaleFactor=function(st,ct,ht){var Ct=st.getEnvelopeInternal(),bt=hr.max(Math.abs(Ct.getMaxX()),Math.abs(Ct.getMaxY()),Math.abs(Ct.getMinX()),Math.abs(Ct.getMinY()))+2*(ct>0?ct:0),Ft=ht-Math.trunc(Math.log(bt)/Math.log(10)+1);return Math.pow(10,Ft)},zA.CAP_ROUND.get=function(){return ro.CAP_ROUND},zA.CAP_BUTT.get=function(){return ro.CAP_FLAT},zA.CAP_FLAT.get=function(){return ro.CAP_FLAT},zA.CAP_SQUARE.get=function(){return ro.CAP_SQUARE},zA.MAX_PRECISION_DIGITS.get=function(){return 12},Object.defineProperties(us,zA);var $s=function(){this._pt=[new Ht,new Ht],this._distance=Nt.NaN,this._isNull=!0};$s.prototype.getCoordinates=function(){return this._pt},$s.prototype.getCoordinate=function(st){return this._pt[st]},$s.prototype.setMinimum=function(){if(arguments.length===1){var st=arguments[0];this.setMinimum(st._pt[0],st._pt[1])}else if(arguments.length===2){var ct=arguments[0],ht=arguments[1];if(this._isNull)return this.initialize(ct,ht),null;var Ct=ct.distance(ht);Ctthis._distance&&this.initialize(ct,ht,Ct)}},$s.prototype.interfaces_=function(){return[]},$s.prototype.getClass=function(){return $s};var Bs=function(){};Bs.prototype.interfaces_=function(){return[]},Bs.prototype.getClass=function(){return Bs},Bs.computeDistance=function(){if(arguments[2]instanceof $s&&arguments[0]instanceof xn&&arguments[1]instanceof Ht)for(var st=arguments[0],ct=arguments[1],ht=arguments[2],Ct=st.getCoordinates(),bt=new Pn,Ft=0;Ft0||this._isIn?Vt.INTERIOR:Vt.EXTERIOR)},iA.prototype.interfaces_=function(){return[]},iA.prototype.getClass=function(){return iA};var ss=function st(){if(this._component=null,this._segIndex=null,this._pt=null,arguments.length===2){var ct=arguments[0],ht=arguments[1];st.call(this,ct,st.INSIDE_AREA,ht)}else if(arguments.length===3){var Ct=arguments[0],bt=arguments[1],Ft=arguments[2];this._component=Ct,this._segIndex=bt,this._pt=Ft}},cu={INSIDE_AREA:{configurable:!0}};ss.prototype.isInsideArea=function(){return this._segIndex===ss.INSIDE_AREA},ss.prototype.getCoordinate=function(){return this._pt},ss.prototype.getGeometryComponent=function(){return this._component},ss.prototype.getSegmentIndex=function(){return this._segIndex},ss.prototype.interfaces_=function(){return[]},ss.prototype.getClass=function(){return ss},cu.INSIDE_AREA.get=function(){return-1},Object.defineProperties(ss,cu);var DA=function(st){this._pts=st||null};DA.prototype.filter=function(st){st instanceof Yn&&this._pts.add(st)},DA.prototype.interfaces_=function(){return[gr]},DA.prototype.getClass=function(){return DA},DA.getPoints=function(){if(arguments.length===1){var st=arguments[0];return st instanceof Yn?Xs.singletonList(st):DA.getPoints(st,new Xr)}if(arguments.length===2){var ct=arguments[0],ht=arguments[1];return ct instanceof Yn?ht.add(ct):ct instanceof Jr&&ct.apply(new DA(ht)),ht}};var VA=function(){this._locations=null;var st=arguments[0];this._locations=st};VA.prototype.filter=function(st){(st instanceof Yn||st instanceof xn||st instanceof kn)&&this._locations.add(new ss(st,0,st.getCoordinate()))},VA.prototype.interfaces_=function(){return[gr]},VA.prototype.getClass=function(){return VA},VA.getLocations=function(st){var ct=new Xr;return st.apply(new VA(ct)),ct};var as=function(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new iA,this._minDistanceLocation=null,this._minDistance=Nt.MAX_VALUE,arguments.length===2){var st=arguments[0],ct=arguments[1];this._geom=[st,ct],this._terminateDistance=0}else if(arguments.length===3){var ht=arguments[0],Ct=arguments[1],bt=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=ht,this._geom[1]=Ct,this._terminateDistance=bt}};as.prototype.computeContainmentDistance=function(){if(arguments.length===0){var st=new Array(2).fill(null);if(this.computeContainmentDistance(0,st),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,st)}else if(arguments.length===2){var ct=arguments[0],ht=arguments[1],Ct=1-ct,bt=_A.getPolygons(this._geom[ct]);if(bt.size()>0){var Ft=VA.getLocations(this._geom[Ct]);if(this.computeContainmentDistance(Ft,bt,ht),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[Ct]=ht[0],this._minDistanceLocation[ct]=ht[1],null}}else if(arguments.length===3){if(arguments[2]instanceof Array&&Ar(arguments[0],go)&&Ar(arguments[1],go)){for(var zt=arguments[0],nr=arguments[1],dr=arguments[2],Br=0;Brthis._minDistance)return null;for(var Ct=st.getCoordinates(),bt=ct.getCoordinate(),Ft=0;Ftthis._minDistance)return null;for(var Kr=dr.getCoordinates(),qr=Br.getCoordinates(),en=0;enthis._distance&&this.initialize(ct,ht,Ct)}},ds.prototype.interfaces_=function(){return[]},ds.prototype.getClass=function(){return ds};var hs=function(){};hs.prototype.interfaces_=function(){return[]},hs.prototype.getClass=function(){return hs},hs.computeDistance=function(){if(arguments[2]instanceof ds&&arguments[0]instanceof xn&&arguments[1]instanceof Ht)for(var st=arguments[0],ct=arguments[1],ht=arguments[2],Ct=new Pn,bt=st.getCoordinates(),Ft=0;Ft1||st<=0)throw new xt("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=st},zs.prototype.compute=function(st,ct){this.computeOrientedDistance(st,ct,this._ptDist),this.computeOrientedDistance(ct,st,this._ptDist)},zs.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()},zs.prototype.computeOrientedDistance=function(st,ct,ht){var Ct=new WA(ct);if(st.apply(Ct),ht.setMaximum(Ct.getMaxPointDistance()),this._densifyFrac>0){var bt=new PA(ct,this._densifyFrac);st.apply(bt),ht.setMaximum(bt.getMaxPointDistance())}},zs.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()},zs.prototype.interfaces_=function(){return[]},zs.prototype.getClass=function(){return zs},zs.distance=function(){if(arguments.length===2){var st=arguments[0],ct=arguments[1];return new zs(st,ct).distance()}if(arguments.length===3){var ht=arguments[0],Ct=arguments[1],bt=arguments[2],Ft=new zs(ht,Ct);return Ft.setDensifyFraction(bt),Ft.distance()}},KA.MaxPointDistanceFilter.get=function(){return WA},KA.MaxDensifiedByFractionDistanceFilter.get=function(){return PA},Object.defineProperties(zs,KA);var WA=function(){this._maxPtDist=new ds,this._minPtDist=new ds,this._euclideanDist=new hs,this._geom=null;var st=arguments[0];this._geom=st};WA.prototype.filter=function(st){this._minPtDist.initialize(),hs.computeDistance(this._geom,st,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)},WA.prototype.getMaxPointDistance=function(){return this._maxPtDist},WA.prototype.interfaces_=function(){return[un]},WA.prototype.getClass=function(){return WA};var PA=function(){this._maxPtDist=new ds,this._minPtDist=new ds,this._geom=null,this._numSubSegs=0;var st=arguments[0],ct=arguments[1];this._geom=st,this._numSubSegs=Math.trunc(Math.round(1/ct))};PA.prototype.filter=function(st,ct){if(ct===0)return null;for(var ht=st.getCoordinate(ct-1),Ct=st.getCoordinate(ct),bt=(Ct.x-ht.x)/this._numSubSegs,Ft=(Ct.y-ht.y)/this._numSubSegs,zt=0;ztht){this._isValid=!1;var bt=Ct.getCoordinates();this._errorLocation=bt[1],this._errorIndicator=st.getFactory().createLineString(bt),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+Yr.toLineString(bt[0],bt[1])+")"}},qs.prototype.isValid=function(){var st=Math.abs(this._bufDistance),ct=qs.MAX_DISTANCE_DIFF_FRAC*st;return this._minValidDistance=st-ct,this._maxValidDistance=st+ct,!(!this._input.isEmpty()&&!this._result.isEmpty())||(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),qs.VERBOSE&&xr.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid)},qs.prototype.checkNegativeValid=function(){if(!(this._input instanceof kn||this._input instanceof Fo||this._input instanceof Jr))return null;var st=this.getPolygonLines(this._input);if(this.checkMinimumDistance(st,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(st,this._result,this._maxValidDistance)},qs.prototype.getErrorIndicator=function(){return this._errorIndicator},qs.prototype.checkMinimumDistance=function(st,ct,ht){var Ct=new as(st,ct,ht);if(this._minDistanceFound=Ct.distance(),this._minDistanceFound0&&st>ct&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&st=2||this._distance>0?null:(this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),void this.report("ExpectedEmpty"))},Yo.prototype.report=function(st){if(!Yo.VERBOSE)return null;xr.out.println("Check "+st+": "+(this._isValid?"passed":"FAILED"))},Yo.prototype.getErrorMessage=function(){return this._errorMsg},Yo.prototype.interfaces_=function(){return[]},Yo.prototype.getClass=function(){return Yo},Yo.isValidMsg=function(st,ct,ht){var Ct=new Yo(st,ct,ht);return Ct.isValid()?null:Ct.getErrorMessage()},Yo.isValid=function(st,ct,ht){return!!new Yo(st,ct,ht).isValid()},qA.VERBOSE.get=function(){return!1},qA.MAX_ENV_DIFF_FRAC.get=function(){return .012},Object.defineProperties(Yo,qA);var Ys=function(){this._pts=null,this._data=null;var st=arguments[0],ct=arguments[1];this._pts=st,this._data=ct};Ys.prototype.getCoordinates=function(){return this._pts},Ys.prototype.size=function(){return this._pts.length},Ys.prototype.getCoordinate=function(st){return this._pts[st]},Ys.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},Ys.prototype.getSegmentOctant=function(st){return st===this._pts.length-1?-1:wA.octant(this.getCoordinate(st),this.getCoordinate(st+1))},Ys.prototype.setData=function(st){this._data=st},Ys.prototype.getData=function(){return this._data},Ys.prototype.toString=function(){return Yr.toLineString(new no(this._pts))},Ys.prototype.interfaces_=function(){return[cA]},Ys.prototype.getClass=function(){return Ys};var Zo=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new Xr,this._intersectionCount=0,this._keepIntersections=!0;var st=arguments[0];this._li=st,this._interiorIntersection=null};Zo.prototype.getInteriorIntersection=function(){return this._interiorIntersection},Zo.prototype.setCheckEndSegmentsOnly=function(st){this._isCheckEndSegmentsOnly=st},Zo.prototype.getIntersectionSegments=function(){return this._intSegments},Zo.prototype.count=function(){return this._intersectionCount},Zo.prototype.getIntersections=function(){return this._intersections},Zo.prototype.setFindAllIntersections=function(st){this._findAllIntersections=st},Zo.prototype.setKeepIntersections=function(st){this._keepIntersections=st},Zo.prototype.processIntersections=function(st,ct,ht,Ct){if(!this._findAllIntersections&&this.hasIntersection()||st===ht&&ct===Ct||this._isCheckEndSegmentsOnly&&!(this.isEndSegment(st,ct)||this.isEndSegment(ht,Ct)))return null;var bt=st.getCoordinates()[ct],Ft=st.getCoordinates()[ct+1],zt=ht.getCoordinates()[Ct],nr=ht.getCoordinates()[Ct+1];this._li.computeIntersection(bt,Ft,zt,nr),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=bt,this._intSegments[1]=Ft,this._intSegments[2]=zt,this._intSegments[3]=nr,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++)},Zo.prototype.isEndSegment=function(st,ct){return ct===0||ct>=st.size()-2},Zo.prototype.hasIntersection=function(){return this._interiorIntersection!==null},Zo.prototype.isDone=function(){return!this._findAllIntersections&&this._interiorIntersection!==null},Zo.prototype.interfaces_=function(){return[aA]},Zo.prototype.getClass=function(){return Zo},Zo.createAllIntersectionsFinder=function(st){var ct=new Zo(st);return ct.setFindAllIntersections(!0),ct},Zo.createAnyIntersectionFinder=function(st){return new Zo(st)},Zo.createIntersectionCounter=function(st){var ct=new Zo(st);return ct.setFindAllIntersections(!0),ct.setKeepIntersections(!1),ct};var Ls=function(){this._li=new yr,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var st=arguments[0];this._segStrings=st};Ls.prototype.execute=function(){if(this._segInt!==null)return null;this.checkInteriorIntersections()},Ls.prototype.getIntersections=function(){return this._segInt.getIntersections()},Ls.prototype.isValid=function(){return this.execute(),this._isValid},Ls.prototype.setFindAllIntersections=function(st){this._findAllIntersections=st},Ls.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new Zo(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var st=new yA;if(st.setSegmentIntersector(this._segInt),st.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null},Ls.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new jn(this.getErrorMessage(),this._segInt.getInteriorIntersection())},Ls.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var st=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+Yr.toLineString(st[0],st[1])+" and "+Yr.toLineString(st[2],st[3])},Ls.prototype.interfaces_=function(){return[]},Ls.prototype.getClass=function(){return Ls},Ls.computeIntersections=function(st){var ct=new Ls(st);return ct.setFindAllIntersections(!0),ct.isValid(),ct.getIntersections()};var vA=function st(){this._nv=null;var ct=arguments[0];this._nv=new Ls(st.toSegmentStrings(ct))};vA.prototype.checkValid=function(){this._nv.checkValid()},vA.prototype.interfaces_=function(){return[]},vA.prototype.getClass=function(){return vA},vA.toSegmentStrings=function(st){for(var ct=new Xr,ht=st.iterator();ht.hasNext();){var Ct=ht.next();ct.add(new Ys(Ct.getCoordinates(),Ct))}return ct},vA.checkValid=function(st){new vA(st).checkValid()};var ZA=function(st){this._mapOp=st};ZA.prototype.map=function(st){for(var ct=new Xr,ht=0;ht0&&Ct<4&&!this._preserveType?this._factory.createLineString(ht):this._factory.createLinearRing(ht)},Ns.prototype.interfaces_=function(){return[]},Ns.prototype.getClass=function(){return Ns};var _s=function st(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new Pn,this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof xn&&typeof arguments[1]=="number"){var ct=arguments[0],ht=arguments[1];st.call(this,ct.getCoordinates(),ht)}else if(arguments[0]instanceof Array&&typeof arguments[1]=="number"){var Ct=arguments[0],bt=arguments[1];this._srcPts=Ct,this._isClosed=st.isClosed(Ct),this._snapTolerance=bt}};_s.prototype.snapVertices=function(st,ct){for(var ht=this._isClosed?st.size()-1:st.size(),Ct=0;Ct=0&&st.add(Ft+1,new Ht(bt),!1)}},_s.prototype.findSegmentIndexToSnap=function(st,ct){for(var ht=Nt.MAX_VALUE,Ct=-1,bt=0;btct&&(ct=Ct)}return ct}if(arguments.length===2){var bt=arguments[0],Ft=arguments[1];return Math.min(Mo.computeOverlaySnapTolerance(bt),Mo.computeOverlaySnapTolerance(Ft))}},Mo.computeSizeBasedSnapTolerance=function(st){var ct=st.getEnvelopeInternal();return Math.min(ct.getHeight(),ct.getWidth())*Mo.SNAP_PRECISION_FACTOR},Mo.snapToSelf=function(st,ct,ht){return new Mo(st).snapToSelf(ct,ht)},Hl.SNAP_PRECISION_FACTOR.get=function(){return 1e-9},Object.defineProperties(Mo,Hl);var Vs=function(st){function ct(ht,Ct,bt){st.call(this),this._snapTolerance=ht||null,this._snapPts=Ct||null,this._isSelfSnap=bt!==void 0&&bt}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.snapLine=function(ht,Ct){var bt=new _s(ht,this._snapTolerance);return bt.setAllowSnappingToSourceVertices(this._isSelfSnap),bt.snapTo(Ct)},ct.prototype.transformCoordinates=function(ht,Ct){var bt=ht.toCoordinateArray(),Ft=this.snapLine(bt,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(Ft)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(Ns),Qs=function(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null};Qs.prototype.getCommon=function(){return Nt.longBitsToDouble(this._commonBits)},Qs.prototype.add=function(st){var ct=Nt.doubleToLongBits(st);if(this._isFirst)return this._commonBits=ct,this._commonSignExp=Qs.signExpBits(this._commonBits),this._isFirst=!1,null;if(Qs.signExpBits(ct)!==this._commonSignExp)return this._commonBits=0,null;this._commonMantissaBitsCount=Qs.numCommonMostSigMantissaBits(this._commonBits,ct),this._commonBits=Qs.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))},Qs.prototype.toString=function(){if(arguments.length===1){var st=arguments[0],ct=Nt.longBitsToDouble(st),ht="0000000000000000000000000000000000000000000000000000000000000000"+Nt.toBinaryString(st),Ct=ht.substring(ht.length-64);return Ct.substring(0,1)+" "+Ct.substring(1,12)+"(exp) "+Ct.substring(12)+" [ "+ct+" ]"}},Qs.prototype.interfaces_=function(){return[]},Qs.prototype.getClass=function(){return Qs},Qs.getBit=function(st,ct){return st&1<>52},Qs.zeroLowerBits=function(st,ct){return st&~((1<=0;Ct--){if(Qs.getBit(st,Ct)!==Qs.getBit(ct,Ct))return ht;ht++}return 52};var Po=function(){this._commonCoord=null,this._ccFilter=new Al},Zl={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};Po.prototype.addCommonBits=function(st){var ct=new LA(this._commonCoord);st.apply(ct),st.geometryChanged()},Po.prototype.removeCommonBits=function(st){if(this._commonCoord.x===0&&this._commonCoord.y===0)return st;var ct=new Ht(this._commonCoord);ct.x=-ct.x,ct.y=-ct.y;var ht=new LA(ct);return st.apply(ht),st.geometryChanged(),st},Po.prototype.getCommonCoordinate=function(){return this._commonCoord},Po.prototype.add=function(st){st.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()},Po.prototype.interfaces_=function(){return[]},Po.prototype.getClass=function(){return Po},Zl.CommonCoordinateFilter.get=function(){return Al},Zl.Translater.get=function(){return LA},Object.defineProperties(Po,Zl);var Al=function(){this._commonBitsX=new Qs,this._commonBitsY=new Qs};Al.prototype.filter=function(st){this._commonBitsX.add(st.x),this._commonBitsY.add(st.y)},Al.prototype.getCommonCoordinate=function(){return new Ht(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())},Al.prototype.interfaces_=function(){return[un]},Al.prototype.getClass=function(){return Al};var LA=function(){this.trans=null;var st=arguments[0];this.trans=st};LA.prototype.filter=function(st,ct){var ht=st.getOrdinate(ct,0)+this.trans.x,Ct=st.getOrdinate(ct,1)+this.trans.y;st.setOrdinate(ct,0,ht),st.setOrdinate(ct,1,Ct)},LA.prototype.isDone=function(){return!1},LA.prototype.isGeometryChanged=function(){return!0},LA.prototype.interfaces_=function(){return[Hr]},LA.prototype.getClass=function(){return LA};var ho=function(st,ct){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=st,this._geom[1]=ct,this.computeSnapTolerance()};ho.prototype.selfSnap=function(st){return new Mo(st).snapTo(st,this._snapTolerance)},ho.prototype.removeCommonBits=function(st){this._cbr=new Po,this._cbr.add(st[0]),this._cbr.add(st[1]);var ct=new Array(2).fill(null);return ct[0]=this._cbr.removeCommonBits(st[0].copy()),ct[1]=this._cbr.removeCommonBits(st[1].copy()),ct},ho.prototype.prepareResult=function(st){return this._cbr.addCommonBits(st),st},ho.prototype.getResultGeometry=function(st){var ct=this.snap(this._geom),ht=On.overlayOp(ct[0],ct[1],st);return this.prepareResult(ht)},ho.prototype.checkValid=function(st){st.isValid()||xr.out.println("Snapped geometry is invalid")},ho.prototype.computeSnapTolerance=function(){this._snapTolerance=Mo.computeOverlaySnapTolerance(this._geom[0],this._geom[1])},ho.prototype.snap=function(st){var ct=this.removeCommonBits(st);return Mo.snap(ct[0],ct[1],this._snapTolerance)},ho.prototype.interfaces_=function(){return[]},ho.prototype.getClass=function(){return ho},ho.overlayOp=function(st,ct,ht){return new ho(st,ct).getResultGeometry(ht)},ho.union=function(st,ct){return ho.overlayOp(st,ct,On.UNION)},ho.intersection=function(st,ct){return ho.overlayOp(st,ct,On.INTERSECTION)},ho.symDifference=function(st,ct){return ho.overlayOp(st,ct,On.SYMDIFFERENCE)},ho.difference=function(st,ct){return ho.overlayOp(st,ct,On.DIFFERENCE)};var Ss=function(st,ct){this._geom=new Array(2).fill(null),this._geom[0]=st,this._geom[1]=ct};Ss.prototype.getResultGeometry=function(st){var ct=null,ht=!1,Ct=null;try{ct=On.overlayOp(this._geom[0],this._geom[1],st),ht=!0}catch(bt){if(!(bt instanceof wr))throw bt;Ct=bt}if(!ht)try{ct=ho.overlayOp(this._geom[0],this._geom[1],st)}catch(bt){throw bt instanceof wr?Ct:bt}return ct},Ss.prototype.interfaces_=function(){return[]},Ss.prototype.getClass=function(){return Ss},Ss.overlayOp=function(st,ct,ht){return new Ss(st,ct).getResultGeometry(ht)},Ss.union=function(st,ct){return Ss.overlayOp(st,ct,On.UNION)},Ss.intersection=function(st,ct){return Ss.overlayOp(st,ct,On.INTERSECTION)},Ss.symDifference=function(st,ct){return Ss.overlayOp(st,ct,On.SYMDIFFERENCE)},Ss.difference=function(st,ct){return Ss.overlayOp(st,ct,On.DIFFERENCE)};var Tl=function(){this.mce=null,this.chainIndex=null;var st=arguments[0],ct=arguments[1];this.mce=st,this.chainIndex=ct};Tl.prototype.computeIntersections=function(st,ct){this.mce.computeIntersectsForChain(this.chainIndex,st.mce,st.chainIndex,ct)},Tl.prototype.interfaces_=function(){return[]},Tl.prototype.getClass=function(){return Tl};var Ms=function st(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,arguments.length===2){var ct=arguments[0],ht=arguments[1];this._eventType=st.DELETE,this._xValue=ct,this._insertEvent=ht}else if(arguments.length===3){var Ct=arguments[0],bt=arguments[1],Ft=arguments[2];this._eventType=st.INSERT,this._label=Ct,this._xValue=bt,this._obj=Ft}},Xl={INSERT:{configurable:!0},DELETE:{configurable:!0}};Ms.prototype.isDelete=function(){return this._eventType===Ms.DELETE},Ms.prototype.setDeleteEventIndex=function(st){this._deleteEventIndex=st},Ms.prototype.getObject=function(){return this._obj},Ms.prototype.compareTo=function(st){var ct=st;return this._xValuect._xValue?1:this._eventTypect._eventType?1:0},Ms.prototype.getInsertEvent=function(){return this._insertEvent},Ms.prototype.isInsert=function(){return this._eventType===Ms.INSERT},Ms.prototype.isSameLabel=function(st){return this._label!==null&&this._label===st._label},Ms.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex},Ms.prototype.interfaces_=function(){return[kt]},Ms.prototype.getClass=function(){return Ms},Xl.INSERT.get=function(){return 1},Xl.DELETE.get=function(){return 2},Object.defineProperties(Ms,Xl);var Yl=function(){};Yl.prototype.interfaces_=function(){return[]},Yl.prototype.getClass=function(){return Yl};var po=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var st=arguments[0],ct=arguments[1],ht=arguments[2];this._li=st,this._includeProper=ct,this._recordIsolated=ht};po.prototype.isTrivialIntersection=function(st,ct,ht,Ct){if(st===ht&&this._li.getIntersectionNum()===1){if(po.isAdjacentSegments(ct,Ct))return!0;if(st.isClosed()){var bt=st.getNumPoints()-1;if(ct===0&&Ct===bt||Ct===0&&ct===bt)return!0}}return!1},po.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint},po.prototype.setIsDoneIfProperInt=function(st){this._isDoneWhenProperInt=st},po.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior},po.prototype.isBoundaryPointInternal=function(st,ct){for(var ht=ct.iterator();ht.hasNext();){var Ct=ht.next().getCoordinate();if(st.isIntersection(Ct))return!0}return!1},po.prototype.hasProperIntersection=function(){return this._hasProper},po.prototype.hasIntersection=function(){return this._hasIntersection},po.prototype.isDone=function(){return this._isDone},po.prototype.isBoundaryPoint=function(st,ct){return ct!==null&&(!!this.isBoundaryPointInternal(st,ct[0])||!!this.isBoundaryPointInternal(st,ct[1]))},po.prototype.setBoundaryNodes=function(st,ct){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=st,this._bdyNodes[1]=ct},po.prototype.addIntersections=function(st,ct,ht,Ct){if(st===ht&&ct===Ct)return null;this.numTests++;var bt=st.getCoordinates()[ct],Ft=st.getCoordinates()[ct+1],zt=ht.getCoordinates()[Ct],nr=ht.getCoordinates()[Ct+1];this._li.computeIntersection(bt,Ft,zt,nr),this._li.hasIntersection()&&(this._recordIsolated&&(st.setIsolated(!1),ht.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(st,ct,ht,Ct)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(st.addIntersections(this._li,ct,0),ht.addIntersections(this._li,Ct,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))},po.prototype.interfaces_=function(){return[]},po.prototype.getClass=function(){return po},po.isAdjacentSegments=function(st,ct){return Math.abs(st-ct)===1};var uu=function(st){function ct(){st.call(this),this.events=new Xr,this.nOverlaps=null}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.prepareEvents=function(){Xs.sort(this.events);for(var ht=0;htct||this._maxFt?1:0},xa.prototype.interfaces_=function(){return[jt]},xa.prototype.getClass=function(){return xa};var Xn=function(st){function ct(){st.call(this),this._item=null;var ht=arguments[0],Ct=arguments[1],bt=arguments[2];this._min=ht,this._max=Ct,this._item=bt}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.query=function(ht,Ct,bt){if(!this.intersects(ht,Ct))return null;bt.visitItem(this._item)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(fA),Fs=function(st){function ct(){st.call(this),this._node1=null,this._node2=null;var ht=arguments[0],Ct=arguments[1];this._node1=ht,this._node2=Ct,this.buildExtent(this._node1,this._node2)}return st&&(ct.__proto__=st),ct.prototype=Object.create(st&&st.prototype),ct.prototype.constructor=ct,ct.prototype.buildExtent=function(ht,Ct){this._min=Math.min(ht._min,Ct._min),this._max=Math.max(ht._max,Ct._max)},ct.prototype.query=function(ht,Ct,bt){if(!this.intersects(ht,Ct))return null;this._node1!==null&&this._node1.query(ht,Ct,bt),this._node2!==null&&this._node2.query(ht,Ct,bt)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct}(fA),dA=function(){this._leaves=new Xr,this._root=null,this._level=0};dA.prototype.buildTree=function(){Xs.sort(this._leaves,new fA.NodeComparator);for(var st=this._leaves,ct=null,ht=new Xr;;){if(this.buildLevel(st,ht),ht.size()===1)return ht.get(0);ct=st,st=ht,ht=ct}},dA.prototype.insert=function(st,ct,ht){if(this._root!==null)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new Xn(st,ct,ht))},dA.prototype.query=function(st,ct,ht){this.init(),this._root.query(st,ct,ht)},dA.prototype.buildRoot=function(){if(this._root!==null)return null;this._root=this.buildTree()},dA.prototype.printNode=function(st){xr.out.println(Yr.toLineString(new Ht(st._min,this._level),new Ht(st._max,this._level)))},dA.prototype.init=function(){if(this._root!==null)return null;this.buildRoot()},dA.prototype.buildLevel=function(st,ct){this._level++,ct.clear();for(var ht=0;ht=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,Ct[0]),this.insertBoundaryPoint(this._argIndex,Ct[Ct.length-1])},ct.prototype.getInvalidPoint=function(){return this._invalidPoint},ct.prototype.getBoundaryPoints=function(){for(var ht=this.getBoundaryNodes(),Ct=new Array(ht.size()).fill(null),bt=0,Ft=ht.iterator();Ft.hasNext();){var zt=Ft.next();Ct[bt++]=zt.getCoordinate().copy()}return Ct},ct.prototype.getBoundaryNodes=function(){return this._boundaryNodes===null&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes},ct.prototype.addSelfIntersectionNode=function(ht,Ct,bt){if(this.isBoundaryNode(ht,Ct))return null;bt===Vt.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(ht,Ct):this.insertPoint(ht,Ct,bt)},ct.prototype.addPolygonRing=function(ht,Ct,bt){if(ht.isEmpty())return null;var Ft=Ln.removeRepeatedPoints(ht.getCoordinates());if(Ft.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=Ft[0],null;var zt=Ct,nr=bt;Pr.isCCW(Ft)&&(zt=bt,nr=Ct);var dr=new BA(Ft,new Jn(this._argIndex,Vt.BOUNDARY,zt,nr));this._lineEdgeMap.put(ht,dr),this.insertEdge(dr),this.insertPoint(this._argIndex,Ft[0],Vt.BOUNDARY)},ct.prototype.insertPoint=function(ht,Ct,bt){var Ft=this._nodes.addNode(Ct),zt=Ft.getLabel();zt===null?Ft._label=new Jn(ht,bt):zt.setLocation(ht,bt)},ct.prototype.createEdgeSetIntersector=function(){return new uu},ct.prototype.addSelfIntersectionNodes=function(ht){for(var Ct=this._edges.iterator();Ct.hasNext();)for(var bt=Ct.next(),Ft=bt.getLabel().getLocation(ht),zt=bt.eiList.iterator();zt.hasNext();){var nr=zt.next();this.addSelfIntersectionNode(ht,nr.coord,Ft)}},ct.prototype.add=function(){if(arguments.length!==1)return st.prototype.add.apply(this,arguments);var ht=arguments[0];if(ht.isEmpty())return null;if(ht instanceof Fo&&(this._useBoundaryDeterminationRule=!1),ht instanceof kn)this.addPolygon(ht);else if(ht instanceof xn)this.addLineString(ht);else if(ht instanceof Yn)this.addPoint(ht);else if(ht instanceof Io)this.addCollection(ht);else if(ht instanceof tn)this.addCollection(ht);else if(ht instanceof Fo)this.addCollection(ht);else{if(!(ht instanceof Jr))throw new Error(ht.getClass().getName());this.addCollection(ht)}},ct.prototype.addCollection=function(ht){for(var Ct=0;Ct50?(this._areaPtLocator===null&&(this._areaPtLocator=new Il(this._parentGeom)),this._areaPtLocator.locate(ht)):this._ptLocator.locate(ht,this._parentGeom)},ct.prototype.findEdge=function(){if(arguments.length===1){var ht=arguments[0];return this._lineEdgeMap.get(ht)}return st.prototype.findEdge.apply(this,arguments)},ct.prototype.interfaces_=function(){return[]},ct.prototype.getClass=function(){return ct},ct.determineBoundary=function(ht,Ct){return ht.isInBoundary(Ct)?Vt.BOUNDARY:Vt.INTERIOR},ct}(No),El=function(){if(this._li=new yr,this._resultPrecisionModel=null,this._arg=null,arguments.length===1){var st=arguments[0];this.setComputationPrecision(st.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new Rn(0,st)}else if(arguments.length===2){var ct=arguments[0],ht=arguments[1],Ct=dn.OGC_SFS_BOUNDARY_RULE;ct.getPrecisionModel().compareTo(ht.getPrecisionModel())>=0?this.setComputationPrecision(ct.getPrecisionModel()):this.setComputationPrecision(ht.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Rn(0,ct,Ct),this._arg[1]=new Rn(1,ht,Ct)}else if(arguments.length===3){var bt=arguments[0],Ft=arguments[1],zt=arguments[2];bt.getPrecisionModel().compareTo(Ft.getPrecisionModel())>=0?this.setComputationPrecision(bt.getPrecisionModel()):this.setComputationPrecision(Ft.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Rn(0,bt,zt),this._arg[1]=new Rn(1,Ft,zt)}};El.prototype.getArgGeometry=function(st){return this._arg[st].getGeometry()},El.prototype.setComputationPrecision=function(st){this._resultPrecisionModel=st,this._li.setPrecisionModel(this._resultPrecisionModel)},El.prototype.interfaces_=function(){return[]},El.prototype.getClass=function(){return El};var hA=function(){};hA.prototype.interfaces_=function(){return[]},hA.prototype.getClass=function(){return hA},hA.map=function(){if(arguments[0]instanceof on&&Ar(arguments[1],hA.MapOp)){for(var st=arguments[0],ct=arguments[1],ht=new Xr,Ct=0;Ct=st.size()?null:st.get(ct)},Pt.union=function(st){return new Pt(st).union()},Mt.STRTREE_NODE_CAPACITY.get=function(){return 4},Object.defineProperties(Pt,Mt);var Ut=function(){};Ut.prototype.interfaces_=function(){return[]},Ut.prototype.getClass=function(){return Ut},Ut.union=function(st,ct){if(st.isEmpty()||ct.isEmpty()){if(st.isEmpty()&&ct.isEmpty())return On.createEmptyResult(On.UNION,st,ct,st.getFactory());if(st.isEmpty())return ct.copy();if(ct.isEmpty())return st.copy()}return st.checkNotGeometryCollection(st),st.checkNotGeometryCollection(ct),Ss.overlayOp(st,ct,On.UNION)},_e.GeoJSONReader=br,_e.GeoJSONWriter=Vr,_e.OverlayOp=On,_e.UnionOp=Ut,_e.BufferOp=us,Object.defineProperty(_e,"__esModule",{value:!0})})})(jsts_min,jsts_min.exports);var jsts_minExports=jsts_min.exports;function adder(){return new Adder}function Adder(){this.reset()}Adder.prototype={constructor:Adder,reset:function(){this.s=this.t=0},add:function(j){add(temp,j,this.t),add(this,temp.s,this.s),this.s?this.t+=temp.t:this.s=temp.t},valueOf:function(){return this.s}};var temp=new Adder;function add(j,$,_e){var et=j.s=$+_e,tt=et-$,rt=et-tt;j.t=$-rt+(_e-tt)}var epsilon$1=1e-6,epsilon2=1e-12,pi=Math.PI,halfPi=pi/2,quarterPi=pi/4,tau=pi*2,degrees$2=180/pi,radians=pi/180,abs$1=Math.abs,atan=Math.atan,atan2=Math.atan2,cos=Math.cos,ceil=Math.ceil,exp=Math.exp,log=Math.log,pow=Math.pow,sin=Math.sin,sign=Math.sign||function(j){return j>0?1:j<0?-1:0},sqrt=Math.sqrt,tan=Math.tan;function acos(j){return j>1?0:j<-1?pi:Math.acos(j)}function asin(j){return j>1?halfPi:j<-1?-halfPi:Math.asin(j)}function haversin(j){return(j=sin(j/2))*j}function noop$5(){}function streamGeometry(j,$){j&&streamGeometryType.hasOwnProperty(j.type)&&streamGeometryType[j.type](j,$)}var streamObjectType={Feature:function(j,$){streamGeometry(j.geometry,$)},FeatureCollection:function(j,$){for(var _e=j.features,et=-1,tt=_e.length;++et=0?1:-1,tt=et*_e,rt=cos($),nt=sin($),it=sinPhi0$1*nt,ot=cosPhi0$1*rt+it*cos(tt),At=it*et*sin(tt);areaRingSum$1.add(atan2(At,ot)),lambda0$2=j,cosPhi0$1=rt,sinPhi0$1=nt}function area$1(j){return areaSum$1.reset(),geoStream(j,areaStream$1),areaSum$1*2}function spherical(j){return[atan2(j[1],j[0]),asin(j[2])]}function cartesian(j){var $=j[0],_e=j[1],et=cos(_e);return[et*cos($),et*sin($),sin(_e)]}function cartesianDot(j,$){return j[0]*$[0]+j[1]*$[1]+j[2]*$[2]}function cartesianCross(j,$){return[j[1]*$[2]-j[2]*$[1],j[2]*$[0]-j[0]*$[2],j[0]*$[1]-j[1]*$[0]]}function cartesianAddInPlace(j,$){j[0]+=$[0],j[1]+=$[1],j[2]+=$[2]}function cartesianScale(j,$){return[j[0]*$,j[1]*$,j[2]*$]}function cartesianNormalizeInPlace(j){var $=sqrt(j[0]*j[0]+j[1]*j[1]+j[2]*j[2]);j[0]/=$,j[1]/=$,j[2]/=$}var lambda0$1,phi0,lambda1,phi1,lambda2,lambda00$1,phi00$1,p0,deltaSum=adder(),ranges,range$2,boundsStream$1={point:boundsPoint$1,lineStart:boundsLineStart,lineEnd:boundsLineEnd,polygonStart:function(){boundsStream$1.point=boundsRingPoint,boundsStream$1.lineStart=boundsRingStart,boundsStream$1.lineEnd=boundsRingEnd,deltaSum.reset(),areaStream$1.polygonStart()},polygonEnd:function(){areaStream$1.polygonEnd(),boundsStream$1.point=boundsPoint$1,boundsStream$1.lineStart=boundsLineStart,boundsStream$1.lineEnd=boundsLineEnd,areaRingSum$1<0?(lambda0$1=-(lambda1=180),phi0=-(phi1=90)):deltaSum>epsilon$1?phi1=90:deltaSum<-epsilon$1&&(phi0=-90),range$2[0]=lambda0$1,range$2[1]=lambda1}};function boundsPoint$1(j,$){ranges.push(range$2=[lambda0$1=j,lambda1=j]),$phi1&&(phi1=$)}function linePoint(j,$){var _e=cartesian([j*radians,$*radians]);if(p0){var et=cartesianCross(p0,_e),tt=[et[1],-et[0],0],rt=cartesianCross(tt,et);cartesianNormalizeInPlace(rt),rt=spherical(rt);var nt=j-lambda2,it=nt>0?1:-1,ot=rt[0]*degrees$2*it,At,ut=abs$1(nt)>180;ut^(it*lambda2phi1&&(phi1=At)):(ot=(ot+360)%360-180,ut^(it*lambda2phi1&&(phi1=$))),ut?jangle(lambda0$1,lambda1)&&(lambda1=j):angle(j,lambda1)>angle(lambda0$1,lambda1)&&(lambda0$1=j):lambda1>=lambda0$1?(jlambda1&&(lambda1=j)):j>lambda2?angle(lambda0$1,j)>angle(lambda0$1,lambda1)&&(lambda1=j):angle(j,lambda1)>angle(lambda0$1,lambda1)&&(lambda0$1=j)}else ranges.push(range$2=[lambda0$1=j,lambda1=j]);$phi1&&(phi1=$),p0=_e,lambda2=j}function boundsLineStart(){boundsStream$1.point=linePoint}function boundsLineEnd(){range$2[0]=lambda0$1,range$2[1]=lambda1,boundsStream$1.point=boundsPoint$1,p0=null}function boundsRingPoint(j,$){if(p0){var _e=j-lambda2;deltaSum.add(abs$1(_e)>180?_e+(_e>0?360:-360):_e)}else lambda00$1=j,phi00$1=$;areaStream$1.point(j,$),linePoint(j,$)}function boundsRingStart(){areaStream$1.lineStart()}function boundsRingEnd(){boundsRingPoint(lambda00$1,phi00$1),areaStream$1.lineEnd(),abs$1(deltaSum)>epsilon$1&&(lambda0$1=-(lambda1=180)),range$2[0]=lambda0$1,range$2[1]=lambda1,p0=null}function angle(j,$){return($-=j)<0?$+360:$}function rangeCompare(j,$){return j[0]-$[0]}function rangeContains(j,$){return j[0]<=j[1]?j[0]<=$&&$<=j[1]:$angle(et[0],et[1])&&(et[1]=tt[1]),angle(tt[0],et[1])>angle(et[0],et[1])&&(et[0]=tt[0])):rt.push(et=tt);for(nt=-1/0,_e=rt.length-1,$=0,et=rt[_e];$<=_e;et=tt,++$)tt=rt[$],(it=angle(et[1],tt[0]))>nt&&(nt=it,lambda0$1=tt[0],lambda1=et[1])}return ranges=range$2=null,lambda0$1===1/0||phi0===1/0?[[NaN,NaN],[NaN,NaN]]:[[lambda0$1,phi0],[lambda1,phi1]]}var W0,W1,X0$1,Y0$1,Z0$1,X1$1,Y1$1,Z1$1,X2$1,Y2$1,Z2$1,lambda00,phi00,x0$4,y0$4,z0,centroidStream$1={sphere:noop$5,point:centroidPoint$1,lineStart:centroidLineStart$1,lineEnd:centroidLineEnd$1,polygonStart:function(){centroidStream$1.lineStart=centroidRingStart$1,centroidStream$1.lineEnd=centroidRingEnd$1},polygonEnd:function(){centroidStream$1.lineStart=centroidLineStart$1,centroidStream$1.lineEnd=centroidLineEnd$1}};function centroidPoint$1(j,$){j*=radians,$*=radians;var _e=cos($);centroidPointCartesian(_e*cos(j),_e*sin(j),sin($))}function centroidPointCartesian(j,$,_e){++W0,X0$1+=(j-X0$1)/W0,Y0$1+=($-Y0$1)/W0,Z0$1+=(_e-Z0$1)/W0}function centroidLineStart$1(){centroidStream$1.point=centroidLinePointFirst}function centroidLinePointFirst(j,$){j*=radians,$*=radians;var _e=cos($);x0$4=_e*cos(j),y0$4=_e*sin(j),z0=sin($),centroidStream$1.point=centroidLinePoint,centroidPointCartesian(x0$4,y0$4,z0)}function centroidLinePoint(j,$){j*=radians,$*=radians;var _e=cos($),et=_e*cos(j),tt=_e*sin(j),rt=sin($),nt=atan2(sqrt((nt=y0$4*rt-z0*tt)*nt+(nt=z0*et-x0$4*rt)*nt+(nt=x0$4*tt-y0$4*et)*nt),x0$4*et+y0$4*tt+z0*rt);W1+=nt,X1$1+=nt*(x0$4+(x0$4=et)),Y1$1+=nt*(y0$4+(y0$4=tt)),Z1$1+=nt*(z0+(z0=rt)),centroidPointCartesian(x0$4,y0$4,z0)}function centroidLineEnd$1(){centroidStream$1.point=centroidPoint$1}function centroidRingStart$1(){centroidStream$1.point=centroidRingPointFirst}function centroidRingEnd$1(){centroidRingPoint(lambda00,phi00),centroidStream$1.point=centroidPoint$1}function centroidRingPointFirst(j,$){lambda00=j,phi00=$,j*=radians,$*=radians,centroidStream$1.point=centroidRingPoint;var _e=cos($);x0$4=_e*cos(j),y0$4=_e*sin(j),z0=sin($),centroidPointCartesian(x0$4,y0$4,z0)}function centroidRingPoint(j,$){j*=radians,$*=radians;var _e=cos($),et=_e*cos(j),tt=_e*sin(j),rt=sin($),nt=y0$4*rt-z0*tt,it=z0*et-x0$4*rt,ot=x0$4*tt-y0$4*et,At=sqrt(nt*nt+it*it+ot*ot),ut=asin(At),ft=At&&-ut/At;X2$1+=ft*nt,Y2$1+=ft*it,Z2$1+=ft*ot,W1+=ut,X1$1+=ut*(x0$4+(x0$4=et)),Y1$1+=ut*(y0$4+(y0$4=tt)),Z1$1+=ut*(z0+(z0=rt)),centroidPointCartesian(x0$4,y0$4,z0)}function centroid$3(j){W0=W1=X0$1=Y0$1=Z0$1=X1$1=Y1$1=Z1$1=X2$1=Y2$1=Z2$1=0,geoStream(j,centroidStream$1);var $=X2$1,_e=Y2$1,et=Z2$1,tt=$*$+_e*_e+et*et;return ttpi?j-tau:j<-pi?j+tau:j,$]}rotationIdentity.invert=rotationIdentity;function rotateRadians(j,$,_e){return(j%=tau)?$||_e?compose$1(rotationLambda(j),rotationPhiGamma($,_e)):rotationLambda(j):$||_e?rotationPhiGamma($,_e):rotationIdentity}function forwardRotationLambda(j){return function($,_e){return $+=j,[$>pi?$-tau:$<-pi?$+tau:$,_e]}}function rotationLambda(j){var $=forwardRotationLambda(j);return $.invert=forwardRotationLambda(-j),$}function rotationPhiGamma(j,$){var _e=cos(j),et=sin(j),tt=cos($),rt=sin($);function nt(it,ot){var At=cos(ot),ut=cos(it)*At,ft=sin(it)*At,dt=sin(ot),Et=dt*_e+ut*et;return[atan2(ft*tt-Et*rt,ut*_e-dt*et),asin(Et*tt+ft*rt)]}return nt.invert=function(it,ot){var At=cos(ot),ut=cos(it)*At,ft=sin(it)*At,dt=sin(ot),Et=dt*tt-ft*rt;return[atan2(ft*tt+dt*rt,ut*_e+Et*et),asin(Et*_e-ut*et)]},nt}function rotation(j){j=rotateRadians(j[0]*radians,j[1]*radians,j.length>2?j[2]*radians:0);function $(_e){return _e=j(_e[0]*radians,_e[1]*radians),_e[0]*=degrees$2,_e[1]*=degrees$2,_e}return $.invert=function(_e){return _e=j.invert(_e[0]*radians,_e[1]*radians),_e[0]*=degrees$2,_e[1]*=degrees$2,_e},$}function circleStream(j,$,_e,et,tt,rt){if(_e){var nt=cos($),it=sin($),ot=et*_e;tt==null?(tt=$+et*tau,rt=$-ot/2):(tt=circleRadius(nt,tt),rt=circleRadius(nt,rt),(et>0?ttrt)&&(tt+=et*tau));for(var At,ut=tt;et>0?ut>rt:ut1&&j.push(j.pop().concat(j.shift()))},result:function(){var _e=j;return j=[],$=null,_e}}}function clipLine(j,$,_e,et,tt,rt){var nt=j[0],it=j[1],ot=$[0],At=$[1],ut=0,ft=1,dt=ot-nt,Et=At-it,Bt;if(Bt=_e-nt,!(!dt&&Bt>0)){if(Bt/=dt,dt<0){if(Bt0){if(Bt>ft)return;Bt>ut&&(ut=Bt)}if(Bt=tt-nt,!(!dt&&Bt<0)){if(Bt/=dt,dt<0){if(Bt>ft)return;Bt>ut&&(ut=Bt)}else if(dt>0){if(Bt0)){if(Bt/=Et,Et<0){if(Bt0){if(Bt>ft)return;Bt>ut&&(ut=Bt)}if(Bt=rt-it,!(!Et&&Bt<0)){if(Bt/=Et,Et<0){if(Bt>ft)return;Bt>ut&&(ut=Bt)}else if(Et>0){if(Bt0&&(j[0]=nt+ut*dt,j[1]=it+ut*Et),ft<1&&($[0]=nt+ft*dt,$[1]=it+ft*Et),!0}}}}}function pointEqual(j,$){return abs$1(j[0]-$[0])=0;--it)tt.point((ft=ut[it])[0],ft[1]);else et(dt.x,dt.p.x,-1,tt);dt=dt.p}dt=dt.o,ut=dt.z,Et=!Et}while(!dt.v);tt.lineEnd()}}}function link(j){if($=j.length){for(var $,_e=0,et=j[0],tt;++_e<$;)et.n=tt=j[_e],tt.p=et,et=tt;et.n=tt=j[0],tt.p=et}}function ascending$2(j,$){return j<$?-1:j>$?1:j>=$?0:NaN}function bisector$1(j){return j.length===1&&(j=ascendingComparator$1(j)),{left:function($,_e,et,tt){for(et==null&&(et=0),tt==null&&(tt=$.length);et>>1;j($[rt],_e)<0?et=rt+1:tt=rt}return et},right:function($,_e,et,tt){for(et==null&&(et=0),tt==null&&(tt=$.length);et>>1;j($[rt],_e)>0?tt=rt:et=rt+1}return et}}}function ascendingComparator$1(j){return function($,_e){return ascending$2(j($),_e)}}bisector$1(ascending$2);function range$1(j,$,_e){j=+j,$=+$,_e=(tt=arguments.length)<2?($=j,j=0,1):tt<3?1:+_e;for(var et=-1,tt=Math.max(0,Math.ceil(($-j)/_e))|0,rt=new Array(tt);++et=0;)for(nt=j[$],_e=nt.length;--_e>=0;)rt[--tt]=nt[_e];return rt}var clipMax=1e9,clipMin=-clipMax;function clipExtent(j,$,_e,et){function tt(At,ut){return j<=At&&At<=_e&&$<=ut&&ut<=et}function rt(At,ut,ft,dt){var Et=0,Bt=0;if(At==null||(Et=nt(At,ft))!==(Bt=nt(ut,ft))||ot(At,ut)<0^ft>0)do dt.point(Et===0||Et===3?j:_e,Et>1?et:$);while((Et=(Et+ft+4)%4)!==Bt);else dt.point(ut[0],ut[1])}function nt(At,ut){return abs$1(At[0]-j)0?0:3:abs$1(At[0]-_e)0?2:1:abs$1(At[1]-$)0?1:0:ut>0?3:2}function it(At,ut){return ot(At.x,ut.x)}function ot(At,ut){var ft=nt(At,1),dt=nt(ut,1);return ft!==dt?ft-dt:ft===0?ut[1]-At[1]:ft===1?At[0]-ut[0]:ft===2?At[1]-ut[1]:ut[0]-At[0]}return function(At){var ut=At,ft=clipBuffer(),dt,Et,Bt,St,Dt,$t,Rt,wt,xt,Nt,Ot,kt={point:Jt,lineStart:Kt,lineEnd:Wt,polygonStart:Ht,polygonEnd:Gt};function Jt(ur,Ar){tt(ur,Ar)&&ut.point(ur,Ar)}function jt(){for(var ur=0,Ar=0,hr=Et.length;Aret&&(vr-Zt)*(et-mr)>(_r-mr)*(j-Zt)&&++ur:_r<=et&&(vr-Zt)*(et-mr)<(_r-mr)*(j-Zt)&&--ur;return ur}function Ht(){ut=ft,dt=[],Et=[],Ot=!0}function Gt(){var ur=jt(),Ar=Ot&&ur,hr=(dt=merge$1(dt)).length;(Ar||hr)&&(At.polygonStart(),Ar&&(At.lineStart(),rt(null,null,1,At),At.lineEnd()),hr&&clipPolygon(dt,it,ur,rt,At),At.polygonEnd()),ut=At,dt=Et=Bt=null}function Kt(){kt.point=Vt,Et&&Et.push(Bt=[]),Nt=!0,xt=!1,Rt=wt=NaN}function Wt(){dt&&(Vt(St,Dt),$t&&xt&&ft.rejoin(),dt.push(ft.result())),kt.point=Jt,xt&&ut.lineEnd()}function Vt(ur,Ar){var hr=tt(ur,Ar);if(Et&&Bt.push([ur,Ar]),Nt)St=ur,Dt=Ar,$t=hr,Nt=!1,hr&&(ut.lineStart(),ut.point(ur,Ar));else if(hr&&xt)ut.point(ur,Ar);else{var sr=[Rt=Math.max(clipMin,Math.min(clipMax,Rt)),wt=Math.max(clipMin,Math.min(clipMax,wt))],ar=[ur=Math.max(clipMin,Math.min(clipMax,ur)),Ar=Math.max(clipMin,Math.min(clipMax,Ar))];clipLine(sr,ar,j,$,_e,et)?(xt||(ut.lineStart(),ut.point(sr[0],sr[1])),ut.point(ar[0],ar[1]),hr||ut.lineEnd(),Ot=!1):hr&&(ut.lineStart(),ut.point(ur,Ar),Ot=!1)}Rt=ur,wt=Ar,xt=hr}return kt}}function extent$1(){var j=0,$=0,_e=960,et=500,tt,rt,nt;return nt={stream:function(it){return tt&&rt===it?tt:tt=clipExtent(j,$,_e,et)(rt=it)},extent:function(it){return arguments.length?(j=+it[0][0],$=+it[0][1],_e=+it[1][0],et=+it[1][1],tt=rt=null,nt):[[j,$],[_e,et]]}}}var sum=adder();function polygonContains(j,$){var _e=$[0],et=$[1],tt=[sin(_e),-cos(_e),0],rt=0,nt=0;sum.reset();for(var it=0,ot=j.length;it=0?1:-1,Jt=kt*Ot,jt=Jt>pi,Ht=Bt*xt;if(sum.add(atan2(Ht*kt*sin(Jt),St*Nt+Ht*cos(Jt))),rt+=jt?Ot+kt*tau:Ot,jt^dt>=_e^Rt>=_e){var Gt=cartesianCross(cartesian(ft),cartesian($t));cartesianNormalizeInPlace(Gt);var Kt=cartesianCross(tt,Gt);cartesianNormalizeInPlace(Kt);var Wt=(jt^Ot>=0?-1:1)*asin(Kt[2]);(et>Wt||et===Wt&&(Gt[0]||Gt[1]))&&(nt+=jt^Ot>=0?1:-1)}}return(rt<-epsilon$1||rtepsilon$1}).map(dt)).concat(range$1(ceil(rt/At)*At,tt,At).filter(function(wt){return abs$1(wt%ft)>epsilon$1}).map(Et))}return $t.lines=function(){return Rt().map(function(wt){return{type:"LineString",coordinates:wt}})},$t.outline=function(){return{type:"Polygon",coordinates:[Bt(et).concat(St(nt).slice(1),Bt(_e).reverse().slice(1),St(it).reverse().slice(1))]}},$t.extent=function(wt){return arguments.length?$t.extentMajor(wt).extentMinor(wt):$t.extentMinor()},$t.extentMajor=function(wt){return arguments.length?(et=+wt[0][0],_e=+wt[1][0],it=+wt[0][1],nt=+wt[1][1],et>_e&&(wt=et,et=_e,_e=wt),it>nt&&(wt=it,it=nt,nt=wt),$t.precision(Dt)):[[et,it],[_e,nt]]},$t.extentMinor=function(wt){return arguments.length?($=+wt[0][0],j=+wt[1][0],rt=+wt[0][1],tt=+wt[1][1],$>j&&(wt=$,$=j,j=wt),rt>tt&&(wt=rt,rt=tt,tt=wt),$t.precision(Dt)):[[$,rt],[j,tt]]},$t.step=function(wt){return arguments.length?$t.stepMajor(wt).stepMinor(wt):$t.stepMinor()},$t.stepMajor=function(wt){return arguments.length?(ut=+wt[0],ft=+wt[1],$t):[ut,ft]},$t.stepMinor=function(wt){return arguments.length?(ot=+wt[0],At=+wt[1],$t):[ot,At]},$t.precision=function(wt){return arguments.length?(Dt=+wt,dt=graticuleX(rt,tt,90),Et=graticuleY($,j,Dt),Bt=graticuleX(it,nt,90),St=graticuleY(et,_e,Dt),$t):Dt},$t.extentMajor([[-180,-90+epsilon$1],[180,90-epsilon$1]]).extentMinor([[-180,-80-epsilon$1],[180,80+epsilon$1]])}function graticule10(){return graticule()()}function interpolate$2(j,$){var _e=j[0]*radians,et=j[1]*radians,tt=$[0]*radians,rt=$[1]*radians,nt=cos(et),it=sin(et),ot=cos(rt),At=sin(rt),ut=nt*cos(_e),ft=nt*sin(_e),dt=ot*cos(tt),Et=ot*sin(tt),Bt=2*asin(sqrt(haversin(rt-et)+nt*ot*haversin(tt-_e))),St=sin(Bt),Dt=Bt?function($t){var Rt=sin($t*=Bt)/St,wt=sin(Bt-$t)/St,xt=wt*ut+Rt*dt,Nt=wt*ft+Rt*Et,Ot=wt*it+Rt*At;return[atan2(Nt,xt)*degrees$2,atan2(Ot,sqrt(xt*xt+Nt*Nt))*degrees$2]}:function(){return[_e*degrees$2,et*degrees$2]};return Dt.distance=Bt,Dt}function identity$1$1(j){return j}var areaSum=adder(),areaRingSum=adder(),x00$2,y00$2,x0$3,y0$3,areaStream={point:noop$5,lineStart:noop$5,lineEnd:noop$5,polygonStart:function(){areaStream.lineStart=areaRingStart,areaStream.lineEnd=areaRingEnd},polygonEnd:function(){areaStream.lineStart=areaStream.lineEnd=areaStream.point=noop$5,areaSum.add(abs$1(areaRingSum)),areaRingSum.reset()},result:function(){var j=areaSum/2;return areaSum.reset(),j}};function areaRingStart(){areaStream.point=areaPointFirst}function areaPointFirst(j,$){areaStream.point=areaPoint,x00$2=x0$3=j,y00$2=y0$3=$}function areaPoint(j,$){areaRingSum.add(y0$3*j-x0$3*$),x0$3=j,y0$3=$}function areaRingEnd(){areaPoint(x00$2,y00$2)}var x0$2=1/0,y0$2=x0$2,x1=-x0$2,y1=x1,boundsStream={point:boundsPoint,lineStart:noop$5,lineEnd:noop$5,polygonStart:noop$5,polygonEnd:noop$5,result:function(){var j=[[x0$2,y0$2],[x1,y1]];return x1=y1=-(y0$2=x0$2=1/0),j}};function boundsPoint(j,$){jx1&&(x1=j),$y1&&(y1=$)}var X0=0,Y0=0,Z0=0,X1=0,Y1=0,Z1=0,X2=0,Y2=0,Z2=0,x00$1,y00$1,x0$1,y0$1,centroidStream={point:centroidPoint,lineStart:centroidLineStart,lineEnd:centroidLineEnd,polygonStart:function(){centroidStream.lineStart=centroidRingStart,centroidStream.lineEnd=centroidRingEnd},polygonEnd:function(){centroidStream.point=centroidPoint,centroidStream.lineStart=centroidLineStart,centroidStream.lineEnd=centroidLineEnd},result:function(){var j=Z2?[X2/Z2,Y2/Z2]:Z1?[X1/Z1,Y1/Z1]:Z0?[X0/Z0,Y0/Z0]:[NaN,NaN];return X0=Y0=Z0=X1=Y1=Z1=X2=Y2=Z2=0,j}};function centroidPoint(j,$){X0+=j,Y0+=$,++Z0}function centroidLineStart(){centroidStream.point=centroidPointFirstLine}function centroidPointFirstLine(j,$){centroidStream.point=centroidPointLine,centroidPoint(x0$1=j,y0$1=$)}function centroidPointLine(j,$){var _e=j-x0$1,et=$-y0$1,tt=sqrt(_e*_e+et*et);X1+=tt*(x0$1+j)/2,Y1+=tt*(y0$1+$)/2,Z1+=tt,centroidPoint(x0$1=j,y0$1=$)}function centroidLineEnd(){centroidStream.point=centroidPoint}function centroidRingStart(){centroidStream.point=centroidPointFirstRing}function centroidRingEnd(){centroidPointRing(x00$1,y00$1)}function centroidPointFirstRing(j,$){centroidStream.point=centroidPointRing,centroidPoint(x00$1=x0$1=j,y00$1=y0$1=$)}function centroidPointRing(j,$){var _e=j-x0$1,et=$-y0$1,tt=sqrt(_e*_e+et*et);X1+=tt*(x0$1+j)/2,Y1+=tt*(y0$1+$)/2,Z1+=tt,tt=y0$1*j-x0$1*$,X2+=tt*(x0$1+j),Y2+=tt*(y0$1+$),Z2+=tt*3,centroidPoint(x0$1=j,y0$1=$)}function PathContext(j){this._context=j}PathContext.prototype={_radius:4.5,pointRadius:function(j){return this._radius=j,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(j,$){switch(this._point){case 0:{this._context.moveTo(j,$),this._point=1;break}case 1:{this._context.lineTo(j,$);break}default:{this._context.moveTo(j+this._radius,$),this._context.arc(j,$,this._radius,0,tau);break}}},result:noop$5};var lengthSum=adder(),lengthRing,x00,y00,x0,y0,lengthStream={point:noop$5,lineStart:function(){lengthStream.point=lengthPointFirst},lineEnd:function(){lengthRing&&lengthPoint(x00,y00),lengthStream.point=noop$5},polygonStart:function(){lengthRing=!0},polygonEnd:function(){lengthRing=null},result:function(){var j=+lengthSum;return lengthSum.reset(),j}};function lengthPointFirst(j,$){lengthStream.point=lengthPoint,x00=x0=j,y00=y0=$}function lengthPoint(j,$){x0-=j,y0-=$,lengthSum.add(sqrt(x0*x0+y0*y0)),x0=j,y0=$}function PathString(){this._string=[]}PathString.prototype={_radius:4.5,_circle:circle$1(4.5),pointRadius:function(j){return(j=+j)!==this._radius&&(this._radius=j,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(j,$){switch(this._point){case 0:{this._string.push("M",j,",",$),this._point=1;break}case 1:{this._string.push("L",j,",",$);break}default:{this._circle==null&&(this._circle=circle$1(this._radius)),this._string.push("M",j,",",$,this._circle);break}}},result:function(){if(this._string.length){var j=this._string.join("");return this._string=[],j}else return null}};function circle$1(j){return"m0,"+j+"a"+j+","+j+" 0 1,1 0,"+-2*j+"a"+j+","+j+" 0 1,1 0,"+2*j+"z"}function index(j,$){var _e=4.5,et,tt;function rt(nt){return nt&&(typeof _e=="function"&&tt.pointRadius(+_e.apply(this,arguments)),geoStream(nt,et(tt))),tt.result()}return rt.area=function(nt){return geoStream(nt,et(areaStream)),areaStream.result()},rt.measure=function(nt){return geoStream(nt,et(lengthStream)),lengthStream.result()},rt.bounds=function(nt){return geoStream(nt,et(boundsStream)),boundsStream.result()},rt.centroid=function(nt){return geoStream(nt,et(centroidStream)),centroidStream.result()},rt.projection=function(nt){return arguments.length?(et=nt==null?(j=null,identity$1$1):(j=nt).stream,rt):j},rt.context=function(nt){return arguments.length?(tt=nt==null?($=null,new PathString):new PathContext($=nt),typeof _e!="function"&&tt.pointRadius(_e),rt):$},rt.pointRadius=function(nt){return arguments.length?(_e=typeof nt=="function"?nt:(tt.pointRadius(+nt),+nt),rt):_e},rt.projection(j).context($)}function clip(j,$,_e,et){return function(tt,rt){var nt=$(rt),it=tt.invert(et[0],et[1]),ot=clipBuffer(),At=$(ot),ut=!1,ft,dt,Et,Bt={point:St,lineStart:$t,lineEnd:Rt,polygonStart:function(){Bt.point=wt,Bt.lineStart=xt,Bt.lineEnd=Nt,dt=[],ft=[]},polygonEnd:function(){Bt.point=St,Bt.lineStart=$t,Bt.lineEnd=Rt,dt=merge$1(dt);var Ot=polygonContains(ft,it);dt.length?(ut||(rt.polygonStart(),ut=!0),clipPolygon(dt,compareIntersection,Ot,_e,rt)):Ot&&(ut||(rt.polygonStart(),ut=!0),rt.lineStart(),_e(null,null,1,rt),rt.lineEnd()),ut&&(rt.polygonEnd(),ut=!1),dt=ft=null},sphere:function(){rt.polygonStart(),rt.lineStart(),_e(null,null,1,rt),rt.lineEnd(),rt.polygonEnd()}};function St(Ot,kt){var Jt=tt(Ot,kt);j(Ot=Jt[0],kt=Jt[1])&&rt.point(Ot,kt)}function Dt(Ot,kt){var Jt=tt(Ot,kt);nt.point(Jt[0],Jt[1])}function $t(){Bt.point=Dt,nt.lineStart()}function Rt(){Bt.point=St,nt.lineEnd()}function wt(Ot,kt){Et.push([Ot,kt]);var Jt=tt(Ot,kt);At.point(Jt[0],Jt[1])}function xt(){At.lineStart(),Et=[]}function Nt(){wt(Et[0][0],Et[0][1]),At.lineEnd();var Ot=At.clean(),kt=ot.result(),Jt,jt=kt.length,Ht,Gt,Kt;if(Et.pop(),ft.push(Et),Et=null,!!jt){if(Ot&1){if(Gt=kt[0],(Ht=Gt.length-1)>0){for(ut||(rt.polygonStart(),ut=!0),rt.lineStart(),Jt=0;Jt1&&Ot&2&&kt.push(kt.pop().concat(kt.shift())),dt.push(kt.filter(validSegment))}}return Bt}}function validSegment(j){return j.length>1}function compareIntersection(j,$){return((j=j.x)[0]<0?j[1]-halfPi-epsilon$1:halfPi-j[1])-(($=$.x)[0]<0?$[1]-halfPi-epsilon$1:halfPi-$[1])}const clipAntimeridian=clip(function(){return!0},clipAntimeridianLine,clipAntimeridianInterpolate,[-pi,-halfPi]);function clipAntimeridianLine(j){var $=NaN,_e=NaN,et=NaN,tt;return{lineStart:function(){j.lineStart(),tt=1},point:function(rt,nt){var it=rt>0?pi:-pi,ot=abs$1(rt-$);abs$1(ot-pi)0?halfPi:-halfPi),j.point(et,_e),j.lineEnd(),j.lineStart(),j.point(it,_e),j.point(rt,_e),tt=0):et!==it&&ot>=pi&&(abs$1($-et)epsilon$1?atan((sin($)*(rt=cos(et))*sin(_e)-sin(et)*(tt=cos($))*sin(j))/(tt*rt*nt)):($+et)/2}function clipAntimeridianInterpolate(j,$,_e,et){var tt;if(j==null)tt=_e*halfPi,et.point(-pi,tt),et.point(0,tt),et.point(pi,tt),et.point(pi,0),et.point(pi,-tt),et.point(0,-tt),et.point(-pi,-tt),et.point(-pi,0),et.point(-pi,tt);else if(abs$1(j[0]-$[0])>epsilon$1){var rt=j[0]<$[0]?pi:-pi;tt=_e*rt/2,et.point(-rt,tt),et.point(0,tt),et.point(rt,tt)}else et.point($[0],$[1])}function clipCircle(j,$){var _e=cos(j),et=_e>0,tt=abs$1(_e)>epsilon$1;function rt(ut,ft,dt,Et){circleStream(Et,j,$,dt,ut,ft)}function nt(ut,ft){return cos(ut)*cos(ft)>_e}function it(ut){var ft,dt,Et,Bt,St;return{lineStart:function(){Bt=Et=!1,St=1},point:function(Dt,$t){var Rt=[Dt,$t],wt,xt=nt(Dt,$t),Nt=et?xt?0:At(Dt,$t):xt?At(Dt+(Dt<0?pi:-pi),$t):0;if(!ft&&(Bt=Et=xt)&&ut.lineStart(),xt!==Et&&(wt=ot(ft,Rt),(!wt||pointEqual(ft,wt)||pointEqual(Rt,wt))&&(Rt[0]+=epsilon$1,Rt[1]+=epsilon$1,xt=nt(Rt[0],Rt[1]))),xt!==Et)St=0,xt?(ut.lineStart(),wt=ot(Rt,ft),ut.point(wt[0],wt[1])):(wt=ot(ft,Rt),ut.point(wt[0],wt[1]),ut.lineEnd()),ft=wt;else if(tt&&ft&&et^xt){var Ot;!(Nt&dt)&&(Ot=ot(Rt,ft,!0))&&(St=0,et?(ut.lineStart(),ut.point(Ot[0][0],Ot[0][1]),ut.point(Ot[1][0],Ot[1][1]),ut.lineEnd()):(ut.point(Ot[1][0],Ot[1][1]),ut.lineEnd(),ut.lineStart(),ut.point(Ot[0][0],Ot[0][1])))}xt&&(!ft||!pointEqual(ft,Rt))&&ut.point(Rt[0],Rt[1]),ft=Rt,Et=xt,dt=Nt},lineEnd:function(){Et&&ut.lineEnd(),ft=null},clean:function(){return St|(Bt&&Et)<<1}}}function ot(ut,ft,dt){var Et=cartesian(ut),Bt=cartesian(ft),St=[1,0,0],Dt=cartesianCross(Et,Bt),$t=cartesianDot(Dt,Dt),Rt=Dt[0],wt=$t-Rt*Rt;if(!wt)return!dt&&ut;var xt=_e*$t/wt,Nt=-_e*Rt/wt,Ot=cartesianCross(St,Dt),kt=cartesianScale(St,xt),Jt=cartesianScale(Dt,Nt);cartesianAddInPlace(kt,Jt);var jt=Ot,Ht=cartesianDot(kt,jt),Gt=cartesianDot(jt,jt),Kt=Ht*Ht-Gt*(cartesianDot(kt,kt)-1);if(!(Kt<0)){var Wt=sqrt(Kt),Vt=cartesianScale(jt,(-Ht-Wt)/Gt);if(cartesianAddInPlace(Vt,kt),Vt=spherical(Vt),!dt)return Vt;var ur=ut[0],Ar=ft[0],hr=ut[1],sr=ft[1],ar;Ar0^Vt[1]<(abs$1(Vt[0]-ur)pi^(ur<=Vt[0]&&Vt[0]<=Ar)){var mr=cartesianScale(jt,(-Ht+Wt)/Gt);return cartesianAddInPlace(mr,kt),[Vt,spherical(mr)]}}}function At(ut,ft){var dt=et?j:pi-j,Et=0;return ut<-dt?Et|=1:ut>dt&&(Et|=2),ft<-dt?Et|=4:ft>dt&&(Et|=8),Et}return clip(nt,it,rt,et?[0,-j]:[-pi,j-pi])}function transform(j){return{stream:transformer$1(j)}}function transformer$1(j){return function($){var _e=new TransformStream;for(var et in j)_e[et]=j[et];return _e.stream=$,_e}}function TransformStream(){}TransformStream.prototype={constructor:TransformStream,point:function(j,$){this.stream.point(j,$)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function fitExtent(j,$,_e){var et=$[1][0]-$[0][0],tt=$[1][1]-$[0][1],rt=j.clipExtent&&j.clipExtent();j.scale(150).translate([0,0]),rt!=null&&j.clipExtent(null),geoStream(_e,j.stream(boundsStream));var nt=boundsStream.result(),it=Math.min(et/(nt[1][0]-nt[0][0]),tt/(nt[1][1]-nt[0][1])),ot=+$[0][0]+(et-it*(nt[1][0]+nt[0][0]))/2,At=+$[0][1]+(tt-it*(nt[1][1]+nt[0][1]))/2;return rt!=null&&j.clipExtent(rt),j.scale(it*150).translate([ot,At])}function fitSize(j,$,_e){return fitExtent(j,[[0,0],$],_e)}var maxDepth=16,cosMinDistance=cos(30*radians);function resample(j,$){return+$?resample$1(j,$):resampleNone(j)}function resampleNone(j){return transformer$1({point:function($,_e){$=j($,_e),this.stream.point($[0],$[1])}})}function resample$1(j,$){function _e(et,tt,rt,nt,it,ot,At,ut,ft,dt,Et,Bt,St,Dt){var $t=At-et,Rt=ut-tt,wt=$t*$t+Rt*Rt;if(wt>4*$&&St--){var xt=nt+dt,Nt=it+Et,Ot=ot+Bt,kt=sqrt(xt*xt+Nt*Nt+Ot*Ot),Jt=asin(Ot/=kt),jt=abs$1(abs$1(Ot)-1)$||abs$1(($t*Wt+Rt*Vt)/wt-.5)>.3||nt*dt+it*Et+ot*Bt2?Vt[2]%360*radians:0,Kt()):[At*degrees$2,ut*degrees$2,ft*degrees$2]},jt.precision=function(Vt){return arguments.length?(Ot=resample(Gt,Nt=Vt*Vt),Wt()):sqrt(Nt)},jt.fitExtent=function(Vt,ur){return fitExtent(jt,Vt,ur)},jt.fitSize=function(Vt,ur){return fitSize(jt,Vt,ur)};function Kt(){Et=compose$1(dt=rotateRadians(At,ut,ft),$);var Vt=$(it,ot);return rt=et-Vt[0]*_e,nt=tt+Vt[1]*_e,Wt()}function Wt(){return kt=Jt=null,jt}return function(){return $=j.apply(this,arguments),jt.invert=$.invert&&Ht,Kt()}}function conicProjection(j){var $=0,_e=pi/3,et=projectionMutator(j),tt=et($,_e);return tt.parallels=function(rt){return arguments.length?et($=rt[0]*radians,_e=rt[1]*radians):[$*degrees$2,_e*degrees$2]},tt}function cylindricalEqualAreaRaw(j){var $=cos(j);function _e(et,tt){return[et*$,sin(tt)/$]}return _e.invert=function(et,tt){return[et/$,asin(tt*$)]},_e}function conicEqualAreaRaw(j,$){var _e=sin(j),et=(_e+sin($))/2;if(abs$1(et)=.12&&Dt<.234&&St>=-.425&&St<-.214?tt:Dt>=.166&&Dt<.234&&St>=-.214&&St<-.115?nt:_e).invert(dt)},ut.stream=function(dt){return j&&$===dt?j:j=multiplex([_e.stream($=dt),tt.stream(dt),nt.stream(dt)])},ut.precision=function(dt){return arguments.length?(_e.precision(dt),tt.precision(dt),nt.precision(dt),ft()):_e.precision()},ut.scale=function(dt){return arguments.length?(_e.scale(dt),tt.scale(dt*.35),nt.scale(dt),ut.translate(_e.translate())):_e.scale()},ut.translate=function(dt){if(!arguments.length)return _e.translate();var Et=_e.scale(),Bt=+dt[0],St=+dt[1];return et=_e.translate(dt).clipExtent([[Bt-.455*Et,St-.238*Et],[Bt+.455*Et,St+.238*Et]]).stream(At),rt=tt.translate([Bt-.307*Et,St+.201*Et]).clipExtent([[Bt-.425*Et+epsilon$1,St+.12*Et+epsilon$1],[Bt-.214*Et-epsilon$1,St+.234*Et-epsilon$1]]).stream(At),it=nt.translate([Bt-.205*Et,St+.212*Et]).clipExtent([[Bt-.214*Et+epsilon$1,St+.166*Et+epsilon$1],[Bt-.115*Et-epsilon$1,St+.234*Et-epsilon$1]]).stream(At),ft()},ut.fitExtent=function(dt,Et){return fitExtent(ut,dt,Et)},ut.fitSize=function(dt,Et){return fitSize(ut,dt,Et)};function ft(){return j=$=null,ut}return ut.scale(1070)}function azimuthalRaw(j){return function($,_e){var et=cos($),tt=cos(_e),rt=j(et*tt);return[rt*tt*sin($),rt*sin(_e)]}}function azimuthalInvert(j){return function($,_e){var et=sqrt($*$+_e*_e),tt=j(et),rt=sin(tt),nt=cos(tt);return[atan2($*rt,et*nt),asin(et&&_e*rt/et)]}}var azimuthalEqualAreaRaw=azimuthalRaw(function(j){return sqrt(2/(1+j))});azimuthalEqualAreaRaw.invert=azimuthalInvert(function(j){return 2*asin(j/2)});function azimuthalEqualArea(){return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180-.001)}var azimuthalEquidistantRaw=azimuthalRaw(function(j){return(j=acos(j))&&j/sin(j)});azimuthalEquidistantRaw.invert=azimuthalInvert(function(j){return j});function azimuthalEquidistant(){return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180-.001)}function mercatorRaw(j,$){return[j,log(tan((halfPi+$)/2))]}mercatorRaw.invert=function(j,$){return[j,2*atan(exp($))-halfPi]};function mercator(){return mercatorProjection(mercatorRaw).scale(961/tau)}function mercatorProjection(j){var $=projection(j),_e=$.center,et=$.scale,tt=$.translate,rt=$.clipExtent,nt=null,it,ot,At;$.scale=function(ft){return arguments.length?(et(ft),ut()):et()},$.translate=function(ft){return arguments.length?(tt(ft),ut()):tt()},$.center=function(ft){return arguments.length?(_e(ft),ut()):_e()},$.clipExtent=function(ft){return arguments.length?(ft==null?nt=it=ot=At=null:(nt=+ft[0][0],it=+ft[0][1],ot=+ft[1][0],At=+ft[1][1]),ut()):nt==null?null:[[nt,it],[ot,At]]};function ut(){var ft=pi*et(),dt=$(rotation($.rotate()).invert([0,0]));return rt(nt==null?[[dt[0]-ft,dt[1]-ft],[dt[0]+ft,dt[1]+ft]]:j===mercatorRaw?[[Math.max(dt[0]-ft,nt),it],[Math.min(dt[0]+ft,ot),At]]:[[nt,Math.max(dt[1]-ft,it)],[ot,Math.min(dt[1]+ft,At)]])}return ut()}function tany(j){return tan((halfPi+j)/2)}function conicConformalRaw(j,$){var _e=cos(j),et=j===$?sin(j):log(_e/cos($))/log(tany($)/tany(j)),tt=_e*pow(tany(j),et)/et;if(!et)return mercatorRaw;function rt(nt,it){tt>0?it<-halfPi+epsilon$1&&(it=-halfPi+epsilon$1):it>halfPi-epsilon$1&&(it=halfPi-epsilon$1);var ot=tt/pow(tany(it),et);return[ot*sin(et*nt),tt-ot*cos(et*nt)]}return rt.invert=function(nt,it){var ot=tt-it,At=sign(et)*sqrt(nt*nt+ot*ot);return[atan2(nt,abs$1(ot))/et*sign(ot),2*atan(pow(tt/At,1/et))-halfPi]},rt}function conicConformal(){return conicProjection(conicConformalRaw).scale(109.5).parallels([30,30])}function equirectangularRaw(j,$){return[j,$]}equirectangularRaw.invert=equirectangularRaw;function equirectangular(){return projection(equirectangularRaw).scale(152.63)}function conicEquidistantRaw(j,$){var _e=cos(j),et=j===$?sin(j):(_e-cos($))/($-j),tt=_e/et+j;if(abs$1(et)epsilon$1&&--et>0);return[j/(.8707+(rt=_e*_e)*(-.131979+rt*(-.013791+rt*rt*rt*(.003971-.001529*rt)))),_e]};function naturalEarth1(){return projection(naturalEarth1Raw).scale(175.295)}function orthographicRaw(j,$){return[cos($)*sin(j),sin($)]}orthographicRaw.invert=azimuthalInvert(asin);function orthographic(){return projection(orthographicRaw).scale(249.5).clipAngle(90+epsilon$1)}function stereographicRaw(j,$){var _e=cos($),et=1+cos(j)*_e;return[_e*sin(j)/et,sin($)/et]}stereographicRaw.invert=azimuthalInvert(function(j){return 2*atan(j)});function stereographic(){return projection(stereographicRaw).scale(250).clipAngle(142)}function transverseMercatorRaw(j,$){return[log(tan((halfPi+$)/2)),-j]}transverseMercatorRaw.invert=function(j,$){return[-$,2*atan(exp(j))-halfPi]};function transverseMercator(){var j=mercatorProjection(transverseMercatorRaw),$=j.center,_e=j.rotate;return j.center=function(et){return arguments.length?$([-et[1],et[0]]):(et=$(),[et[1],-et[0]])},j.rotate=function(et){return arguments.length?_e([et[0],et[1],et.length>2?et[2]+90:90]):(et=_e(),[et[0],et[1],et[2]-90])},_e([0,0,90]).scale(159.155)}const d3Geo$1=Object.freeze(Object.defineProperty({__proto__:null,geoAlbers:albers,geoAlbersUsa:albersUsa,geoArea:area$1,geoAzimuthalEqualArea:azimuthalEqualArea,geoAzimuthalEqualAreaRaw:azimuthalEqualAreaRaw,geoAzimuthalEquidistant:azimuthalEquidistant,geoAzimuthalEquidistantRaw:azimuthalEquidistantRaw,geoBounds:bounds,geoCentroid:centroid$3,geoCircle:circle$2,geoClipExtent:extent$1,geoConicConformal:conicConformal,geoConicConformalRaw:conicConformalRaw,geoConicEqualArea:conicEqualArea,geoConicEqualAreaRaw:conicEqualAreaRaw,geoConicEquidistant:conicEquidistant,geoConicEquidistantRaw:conicEquidistantRaw,geoContains:contains,geoDistance:distance$1,geoEquirectangular:equirectangular,geoEquirectangularRaw:equirectangularRaw,geoGnomonic:gnomonic,geoGnomonicRaw:gnomonicRaw,geoGraticule:graticule,geoGraticule10:graticule10,geoIdentity:identity$6,geoInterpolate:interpolate$2,geoLength:length$6,geoMercator:mercator,geoMercatorRaw:mercatorRaw,geoNaturalEarth1:naturalEarth1,geoNaturalEarth1Raw:naturalEarth1Raw,geoOrthographic:orthographic,geoOrthographicRaw:orthographicRaw,geoPath:index,geoProjection:projection,geoProjectionMutator:projectionMutator,geoRotation:rotation,geoStereographic:stereographic,geoStereographicRaw:stereographicRaw,geoStream,geoTransform:transform,geoTransverseMercator:transverseMercator,geoTransverseMercatorRaw:transverseMercatorRaw},Symbol.toStringTag,{value:"Module"})),require$$3$1=getAugmentedNamespace(d3Geo$1);var center$1=js$p,turfJsts=jsts_minExports,meta$4=js$u,d3Geo=require$$3$1,helpers$6=js$v;function _interopDefaultLegacy$6(j){return j&&typeof j=="object"&&"default"in j?j:{default:j}}var center__default$1=_interopDefaultLegacy$6(center$1);function buffer(j,$,_e){_e=_e||{};var et=_e.units||"kilometers",tt=_e.steps||8;if(!j)throw new Error("geojson is required");if(typeof _e!="object")throw new Error("options must be an object");if(typeof tt!="number")throw new Error("steps must be an number");if($===void 0)throw new Error("radius is required");if(tt<=0)throw new Error("steps must be greater than 0");var rt=[];switch(j.type){case"GeometryCollection":return meta$4.geomEach(j,function(nt){var it=bufferFeature(nt,$,et,tt);it&&rt.push(it)}),helpers$6.featureCollection(rt);case"FeatureCollection":return meta$4.featureEach(j,function(nt){var it=bufferFeature(nt,$,et,tt);it&&meta$4.featureEach(it,function(ot){ot&&rt.push(ot)})}),helpers$6.featureCollection(rt)}return bufferFeature(j,$,et,tt)}function bufferFeature(j,$,_e,et){var tt=j.properties||{},rt=j.type==="Feature"?j.geometry:j;if(rt.type==="GeometryCollection"){var nt=[];return meta$4.geomEach(j,function(St){var Dt=bufferFeature(St,$,_e,et);Dt&&nt.push(Dt)}),helpers$6.featureCollection(nt)}var it=defineProjection(rt),ot={type:rt.type,coordinates:projectCoords(rt.coordinates,it)},At=new turfJsts.GeoJSONReader,ut=At.read(ot),ft=helpers$6.radiansToLength(helpers$6.lengthToRadians($,_e),"meters"),dt=turfJsts.BufferOp.bufferOp(ut,ft,et),Et=new turfJsts.GeoJSONWriter;if(dt=Et.write(dt),!coordsIsNaN(dt.coordinates)){var Bt={type:dt.type,coordinates:unprojectCoords(dt.coordinates,it)};return helpers$6.feature(Bt,tt)}}function coordsIsNaN(j){return Array.isArray(j[0])?coordsIsNaN(j[0]):isNaN(j[0])}function projectCoords(j,$){return typeof j[0]!="object"?$(j):j.map(function(_e){return projectCoords(_e,$)})}function unprojectCoords(j,$){return typeof j[0]!="object"?$.invert(j):j.map(function(_e){return unprojectCoords(_e,$)})}function defineProjection(j){var $=center__default$1.default(j).geometry.coordinates,_e=[-$[0],-$[1]];return d3Geo.geoAzimuthalEquidistant().rotate(_e).scale(helpers$6.earthRadius)}js$q.exports=buffer;js$q.exports.default=buffer;var jsExports$6=js$q.exports,js$o={exports:{}},polygonClipping_umd={exports:{}};(function(j,$){(function(_e,et){j.exports=et()})(commonjsGlobal,function(){function _e(wr,rr){if(!(wr instanceof rr))throw new TypeError("Cannot call a class as a function")}function et(wr,rr){for(var er=0;er + * @license MIT + * @preserve + */var rt=function(){function wr(rr,er){this.next=null,this.key=rr,this.data=er,this.left=null,this.right=null}return wr}();function nt(wr,rr){return wr>rr?1:wr0){if(rr.right===null)break;if(er(wr,rr.right.key)>0){var Wr=rr.right;if(rr.right=Wr.left,Wr.left=rr,rr=Wr,rr.right===null)break}fr.right=rr,fr=rr,rr=rr.right}else break}return fr.right=rr.left,yr.left=rr.right,rr.left=lr.right,rr.right=lr.left,rr}function ot(wr,rr,er,lr){var fr=new rt(wr,rr);if(er===null)return fr.left=fr.right=null,fr;er=it(wr,er,lr);var yr=lr(wr,er.key);return yr<0?(fr.left=er.left,fr.right=er,er.left=null):yr>=0&&(fr.right=er.right,fr.left=er,er.right=null),fr}function At(wr,rr,er){var lr=null,fr=null;if(rr){rr=it(wr,rr,er);var yr=er(rr.key,wr);yr===0?(lr=rr.left,fr=rr.right):yr<0?(fr=rr.right,rr.right=null,lr=rr):(lr=rr.left,rr.left=null,fr=rr)}return{left:lr,right:fr}}function ut(wr,rr,er){return rr===null?wr:(wr===null||(rr=it(wr.key,rr,er),rr.left=wr),rr)}function ft(wr,rr,er,lr,fr){if(wr){lr(""+rr+(er?"└── ":"├── ")+fr(wr)+` +`);var yr=rr+(er?" ":"│ ");wr.left&&ft(wr.left,yr,!1,lr,fr),wr.right&&ft(wr.right,yr,!0,lr,fr)}}var dt=function(){function wr(rr){rr===void 0&&(rr=nt),this._root=null,this._size=0,this._comparator=rr}return wr.prototype.insert=function(rr,er){return this._size++,this._root=ot(rr,er,this._root,this._comparator)},wr.prototype.add=function(rr,er){var lr=new rt(rr,er);this._root===null&&(lr.left=lr.right=null,this._size++,this._root=lr);var fr=this._comparator,yr=it(rr,this._root,fr),Ur=fr(rr,yr.key);return Ur===0?this._root=yr:(Ur<0?(lr.left=yr.left,lr.right=yr,yr.left=null):Ur>0&&(lr.right=yr.right,lr.left=yr,yr.right=null),this._size++,this._root=lr),this._root},wr.prototype.remove=function(rr){this._root=this._remove(rr,this._root,this._comparator)},wr.prototype._remove=function(rr,er,lr){var fr;if(er===null)return null;er=it(rr,er,lr);var yr=lr(rr,er.key);return yr===0?(er.left===null?fr=er.right:(fr=it(rr,er.left,lr),fr.right=er.right),this._size--,fr):er},wr.prototype.pop=function(){var rr=this._root;if(rr){for(;rr.left;)rr=rr.left;return this._root=it(rr.key,this._root,this._comparator),this._root=this._remove(rr.key,this._root,this._comparator),{key:rr.key,data:rr.data}}return null},wr.prototype.findStatic=function(rr){for(var er=this._root,lr=this._comparator;er;){var fr=lr(rr,er.key);if(fr===0)return er;fr<0?er=er.left:er=er.right}return null},wr.prototype.find=function(rr){return this._root&&(this._root=it(rr,this._root,this._comparator),this._comparator(rr,this._root.key)!==0)?null:this._root},wr.prototype.contains=function(rr){for(var er=this._root,lr=this._comparator;er;){var fr=lr(rr,er.key);if(fr===0)return!0;fr<0?er=er.left:er=er.right}return!1},wr.prototype.forEach=function(rr,er){for(var lr=this._root,fr=[],yr=!1;!yr;)lr!==null?(fr.push(lr),lr=lr.left):fr.length!==0?(lr=fr.pop(),rr.call(er,lr),lr=lr.right):yr=!0;return this},wr.prototype.range=function(rr,er,lr,fr){for(var yr=[],Ur=this._comparator,Wr=this._root,Pr;yr.length!==0||Wr;)if(Wr)yr.push(Wr),Wr=Wr.left;else{if(Wr=yr.pop(),Pr=Ur(Wr.key,er),Pr>0)break;if(Ur(Wr.key,rr)>=0&&lr.call(fr,Wr))return this;Wr=Wr.right}return this},wr.prototype.keys=function(){var rr=[];return this.forEach(function(er){var lr=er.key;return rr.push(lr)}),rr},wr.prototype.values=function(){var rr=[];return this.forEach(function(er){var lr=er.data;return rr.push(lr)}),rr},wr.prototype.min=function(){return this._root?this.minNode(this._root).key:null},wr.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},wr.prototype.minNode=function(rr){if(rr===void 0&&(rr=this._root),rr)for(;rr.left;)rr=rr.left;return rr},wr.prototype.maxNode=function(rr){if(rr===void 0&&(rr=this._root),rr)for(;rr.right;)rr=rr.right;return rr},wr.prototype.at=function(rr){for(var er=this._root,lr=!1,fr=0,yr=[];!lr;)if(er)yr.push(er),er=er.left;else if(yr.length>0){if(er=yr.pop(),fr===rr)return er;fr++,er=er.right}else lr=!0;return null},wr.prototype.next=function(rr){var er=this._root,lr=null;if(rr.right){for(lr=rr.right;lr.left;)lr=lr.left;return lr}for(var fr=this._comparator;er;){var yr=fr(rr.key,er.key);if(yr===0)break;yr<0?(lr=er,er=er.left):er=er.right}return lr},wr.prototype.prev=function(rr){var er=this._root,lr=null;if(rr.left!==null){for(lr=rr.left;lr.right;)lr=lr.right;return lr}for(var fr=this._comparator;er;){var yr=fr(rr.key,er.key);if(yr===0)break;yr<0?er=er.left:(lr=er,er=er.right)}return lr},wr.prototype.clear=function(){return this._root=null,this._size=0,this},wr.prototype.toList=function(){return St(this._root)},wr.prototype.load=function(rr,er,lr){er===void 0&&(er=[]),lr===void 0&&(lr=!1);var fr=rr.length,yr=this._comparator;if(lr&&Rt(rr,er,0,fr-1,yr),this._root===null)this._root=Et(rr,er,0,fr),this._size=fr;else{var Ur=$t(this.toList(),Bt(rr,er),yr);fr=this._size+fr,this._root=Dt({head:Ur},0,fr)}return this},wr.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(wr.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(wr.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),wr.prototype.toString=function(rr){rr===void 0&&(rr=function(fr){return String(fr.key)});var er=[];return ft(this._root,"",!0,function(lr){return er.push(lr)},rr),er.join("")},wr.prototype.update=function(rr,er,lr){var fr=this._comparator,yr=At(rr,this._root,fr),Ur=yr.left,Wr=yr.right;fr(rr,er)<0?Wr=ot(er,lr,Wr,fr):Ur=ot(er,lr,Ur,fr),this._root=ut(Ur,Wr,fr)},wr.prototype.split=function(rr){return At(rr,this._root,this._comparator)},wr}();function Et(wr,rr,er,lr){var fr=lr-er;if(fr>0){var yr=er+Math.floor(fr/2),Ur=wr[yr],Wr=rr[yr],Pr=new rt(Ur,Wr);return Pr.left=Et(wr,rr,er,yr),Pr.right=Et(wr,rr,yr+1,lr),Pr}return null}function Bt(wr,rr){for(var er=new rt(null,null),lr=er,fr=0;fr0?(rr=yr=yr.next=er.pop(),rr=rr.right):lr=!0;return yr.next=null,fr.next}function Dt(wr,rr,er){var lr=er-rr;if(lr>0){var fr=rr+Math.floor(lr/2),yr=Dt(wr,rr,fr),Ur=wr.head;return Ur.left=yr,wr.head=wr.head.next,Ur.right=Dt(wr,fr+1,er),Ur}return null}function $t(wr,rr,er){for(var lr=new rt(null,null),fr=lr,yr=wr,Ur=rr;yr!==null&&Ur!==null;)er(yr.key,Ur.key)<0?(fr.next=yr,yr=yr.next):(fr.next=Ur,Ur=Ur.next),fr=fr.next;return yr!==null?fr.next=yr:Ur!==null&&(fr.next=Ur),lr.next}function Rt(wr,rr,er,lr,fr){if(!(er>=lr)){for(var yr=wr[er+lr>>1],Ur=er-1,Wr=lr+1;;){do Ur++;while(fr(wr[Ur],yr)<0);do Wr--;while(fr(wr[Wr],yr)>0);if(Ur>=Wr)break;var Pr=wr[Ur];wr[Ur]=wr[Wr],wr[Wr]=Pr,Pr=rr[Ur],rr[Ur]=rr[Wr],rr[Wr]=Pr}Rt(wr,rr,er,Wr,fr),Rt(wr,rr,Wr+1,lr,fr)}}var wt=function(rr,er){return rr.ll.x<=er.x&&er.x<=rr.ur.x&&rr.ll.y<=er.y&&er.y<=rr.ur.y},xt=function(rr,er){if(er.ur.xlr.x?1:er.ylr.y?1:0}}]);function wr(rr,er){_e(this,wr),rr.events===void 0?rr.events=[this]:rr.events.push(this),this.point=rr,this.isLeft=er}return tt(wr,[{key:"link",value:function(er){if(er.point===this.point)throw new Error("Tried to link already linked events");for(var lr=er.point.events,fr=0,yr=lr.length;fr=0&&In>=0?rnSn?-1:0:Zr<0&&In<0?rnSn?1:0:InZr?1:0}}}]),wr}(),pr=0,Zt=function(){tt(wr,null,[{key:"compare",value:function(er,lr){var fr=er.leftSE.point.x,yr=lr.leftSE.point.x,Ur=er.rightSE.point.x,Wr=lr.rightSE.point.x;if(WrPr&&Zr>rn)return-1;var In=er.comparePoint(lr.leftSE.point);if(In<0)return 1;if(In>0)return-1;var Sn=lr.comparePoint(er.rightSE.point);return Sn!==0?Sn:-1}if(fr>yr){if(PrZr&&Pr>on)return 1;var un=lr.comparePoint(er.leftSE.point);if(un!==0)return un;var dn=er.comparePoint(lr.rightSE.point);return dn<0?1:dn>0?-1:1}if(PrZr)return 1;if(UrWr){var Nn=er.comparePoint(lr.rightSE.point);if(Nn<0)return 1;if(Nn>0)return-1}if(Ur!==Wr){var Tn=rn-Pr,oo=Ur-fr,ao=on-Zr,qn=Wr-yr;if(Tn>oo&&aoqn)return-1}return Ur>Wr?1:Uron?1:er.idlr.id?1:0}}]);function wr(rr,er,lr,fr){_e(this,wr),this.id=++pr,this.leftSE=rr,rr.segment=this,rr.otherSE=er,this.rightSE=er,er.segment=this,er.otherSE=rr,this.rings=lr,this.windings=fr}return tt(wr,[{key:"replaceRightSE",value:function(er){this.rightSE=er,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var er=this.leftSE.point.y,lr=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:erlr?er:lr}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(er){return er.x===this.leftSE.point.x&&er.y===this.leftSE.point.y||er.x===this.rightSE.point.x&&er.y===this.rightSE.point.y}},{key:"comparePoint",value:function(er){if(this.isAnEndpoint(er))return 0;var lr=this.leftSE.point,fr=this.rightSE.point,yr=this.vector();if(lr.x===fr.x)return er.x===lr.x?0:er.x0&&Pr.swapEvents(),Yt.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),fr&&(yr.checkForConsuming(),Ur.checkForConsuming()),lr}},{key:"swapEvents",value:function(){var er=this.rightSE;this.rightSE=this.leftSE,this.leftSE=er,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var lr=0,fr=this.windings.length;lr0){var Ur=lr;lr=fr,fr=Ur}if(lr.prev===fr){var Wr=lr;lr=fr,fr=Wr}for(var Pr=0,Zr=fr.rings.length;Pr0)yr=lr,Ur=er,Wr=-1;else throw new Error("Tried to create degenerate segment at [".concat(er.x,", ").concat(er.y,"]"));var Zr=new Yt(yr,!0),rn=new Yt(Ur,!1);return new wr(Zr,rn,[fr],[Wr])}}]),wr}(),mr=function(){function wr(rr,er,lr){if(_e(this,wr),!Array.isArray(rr)||rr.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=er,this.isExterior=lr,this.segments=[],typeof rr[0][0]!="number"||typeof rr[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var fr=Ht.round(rr[0][0],rr[0][1]);this.bbox={ll:{x:fr.x,y:fr.y},ur:{x:fr.x,y:fr.y}};for(var yr=fr,Ur=1,Wr=rr.length;Urthis.bbox.ur.x&&(this.bbox.ur.x=Pr.x),Pr.y>this.bbox.ur.y&&(this.bbox.ur.y=Pr.y),yr=Pr)}(fr.x!==yr.x||fr.y!==yr.y)&&this.segments.push(Zt.fromRing(yr,fr,this))}return tt(wr,[{key:"getSweepEvents",value:function(){for(var er=[],lr=0,fr=this.segments.length;lrthis.bbox.ur.x&&(this.bbox.ur.x=yr.bbox.ur.x),yr.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=yr.bbox.ur.y),this.interiorRings.push(yr)}this.multiPoly=er}return tt(wr,[{key:"getSweepEvents",value:function(){for(var er=this.exteriorRing.getSweepEvents(),lr=0,fr=this.interiorRings.length;lrthis.bbox.ur.x&&(this.bbox.ur.x=yr.bbox.ur.x),yr.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=yr.bbox.ur.y),this.polys.push(yr)}this.isSubject=er}return tt(wr,[{key:"getSweepEvents",value:function(){for(var er=[],lr=0,fr=this.polys.length;lr0&&(er=yr)}for(var Ur=er.segment.prevInResult(),Wr=Ur?Ur.prevInResult():null;;){if(!Ur)return null;if(!Wr)return Ur.ringOut;if(Wr.ringOut!==Ur.ringOut)return Wr.ringOut.enclosingRing()!==Ur.ringOut?Ur.ringOut:Ur.ringOut.enclosingRing();Ur=Wr.prevInResult(),Wr=Ur?Ur.prevInResult():null}}}]),wr}(),Lr=function(){function wr(rr){_e(this,wr),this.exteriorRing=rr,rr.poly=this,this.interiorRings=[]}return tt(wr,[{key:"addInterior",value:function(er){this.interiorRings.push(er),er.poly=this}},{key:"getGeom",value:function(){var er=[this.exteriorRing.getGeom()];if(er[0]===null)return null;for(var lr=0,fr=this.interiorRings.length;lr1&&arguments[1]!==void 0?arguments[1]:Zt.compare;_e(this,wr),this.queue=rr,this.tree=new dt(er),this.segments=[]}return tt(wr,[{key:"process",value:function(er){var lr=er.segment,fr=[];if(er.consumedBy)return er.isLeft?this.queue.remove(er.otherSE):this.tree.remove(lr),fr;var yr=er.isLeft?this.tree.insert(lr):this.tree.find(lr);if(!yr)throw new Error("Unable to find segment #".concat(lr.id," ")+"[".concat(lr.leftSE.point.x,", ").concat(lr.leftSE.point.y,"] -> ")+"[".concat(lr.rightSE.point.x,", ").concat(lr.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var Ur=yr,Wr=yr,Pr=void 0,Zr=void 0;Pr===void 0;)Ur=this.tree.prev(Ur),Ur===null?Pr=null:Ur.key.consumedBy===void 0&&(Pr=Ur.key);for(;Zr===void 0;)Wr=this.tree.next(Wr),Wr===null?Zr=null:Wr.key.consumedBy===void 0&&(Zr=Wr.key);if(er.isLeft){var rn=null;if(Pr){var on=Pr.getIntersection(lr);if(on!==null&&(lr.isAnEndpoint(on)||(rn=on),!Pr.isAnEndpoint(on)))for(var In=this._splitSafely(Pr,on),Sn=0,un=In.length;Sn0?(this.tree.remove(lr),fr.push(er)):(this.segments.push(lr),lr.prev=Pr)}else{if(Pr&&Zr){var Co=Pr.getIntersection(Zr);if(Co!==null){if(!Pr.isAnEndpoint(Co))for(var Lo=this._splitSafely(Pr,Co),Ln=0,rs=Lo.length;Lnxr)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var qn=new $r(dn),Ao=dn.size,go=dn.pop();go;){var Xr=go.key;if(dn.size===Ao){var Co=Xr.segment;throw new Error("Unable to pop() ".concat(Xr.isLeft?"left":"right"," SweepEvent ")+"[".concat(Xr.point.x,", ").concat(Xr.point.y,"] from segment #").concat(Co.id," ")+"[".concat(Co.leftSE.point.x,", ").concat(Co.leftSE.point.y,"] -> ")+"[".concat(Co.rightSE.point.x,", ").concat(Co.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(dn.size>xr)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(qn.segments.length>Fr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var Lo=qn.process(Xr),Ln=0,rs=Lo.length;Ln1?er-1:0),fr=1;fr1?er-1:0),fr=1;fr1?er-1:0),fr=1;fr1?er-1:0),fr=1;fr"u"||!(Symbol.iterator in Object(ar)))){var pr=[],Zt=!0,mr=!1,vr=void 0;try{for(var _r=ar[Symbol.iterator](),Er;!(Zt=(Er=_r.next()).done)&&(pr.push(Er.value),!(Yt&&pr.length===Yt));Zt=!0);}catch(Lr){mr=!0,vr=Lr}finally{try{!Zt&&_r.return!=null&&_r.return()}finally{if(mr)throw vr}}return pr}}function Bt(ar){if(Array.isArray(ar))return ar}function St(ar){return wt(ar)||Rt(ar)||$t(ar)||Dt()}function Dt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $t(ar,Yt){if(ar){if(typeof ar=="string")return xt(ar,Yt);var pr=Object.prototype.toString.call(ar).slice(8,-1);if(pr==="Object"&&ar.constructor&&(pr=ar.constructor.name),pr==="Map"||pr==="Set")return Array.from(pr);if(pr==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(pr))return xt(ar,Yt)}}function Rt(ar){if(typeof Symbol<"u"&&Symbol.iterator in Object(ar))return Array.from(ar)}function wt(ar){if(Array.isArray(ar))return xt(ar)}function xt(ar,Yt){(Yt==null||Yt>ar.length)&&(Yt=ar.length);for(var pr=0,Zt=new Array(Yt);pr4&&(0,it.default)(Lr[0],Lr[Lr.length-1])=3)){var Nr=(0,_e.polygon)([[].concat(St(this.landPoints),[this.landPoints[0]])]),Xt=(0,rt.default)((0,_e.point)(this.landPoints[0]),Vt),cr;try{cr=(0,nt.default)(Xt,Nr),mr.push({polygon:cr.geometry.coordinates,fillColor:[0,0,0,1]}),this.validPolygon=!0}catch{this.validPolygon=!1}}return this.landPoints.length&&Zt.push({polygon:this._makeStartPointHighlight(this.landPoints[0]),lineColor:[0,0,0,0],fillColor:jt}),Zt.push({polygon:[[0,0]]}),mr.push({polygon:[[0,0]]}),[new $.PolygonLayer({id:ur,data:Zt,fp64:!1,opacity:1,pickable:!1,lineWidthMinPixels:Gt,lineWidthMaxPixels:Gt,lineDashJustified:!0,getLineDashArray:function(Qr){return Kt},getLineColor:function(Qr){return Qr.lineColor||[0,0,0,255]},getFillColor:function(Qr){return Qr.fillColor||[0,0,0,255]},getPolygon:function(Qr){return Qr.polygon}}),new $.PolygonLayer({id:Ar,data:mr,getLineColor:function(Qr){return Qr.lineColor||[0,0,0,255]},getFillColor:function(Qr){return Qr.fillColor||[0,0,0,255]},fp64:!1,opacity:1,stroked:!1,pickable:!0,getPolygon:function(Qr){return Qr.polygon}})]}}]),ar}();j.default=sr})(deckDrawer);var feature={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;function $(nt,it){if(!(nt instanceof it))throw new TypeError("Cannot call a class as a function")}function _e(nt,it){for(var ot=0;ot2&&arguments[2]!==void 0?arguments[2]:null,ut=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};$(this,nt),tt(this,"geoJson",void 0),tt(this,"style",void 0),tt(this,"original",void 0),tt(this,"metadata",void 0),this.geoJson=it,this.style=ot,this.original=At,this.metadata=ut}return et(nt,[{key:"getCoords",value:function(){return this.geoJson.geometry.coordinates}}]),nt}();j.default=rt})(feature);var layerMouseEvent={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;function $(nt,it){if(!(nt instanceof it))throw new TypeError("Cannot call a class as a function")}function _e(nt,it){for(var ot=0;ot0&&(nt=_e[0]),nt instanceof Error)throw nt;var it=new Error("Unhandled error."+(nt?" ("+nt.message+")":""));throw it.context=nt,it}var ot=rt[$];if(ot===void 0)return!1;if(typeof ot=="function")ReflectApply(ot,this,_e);else for(var At=ot.length,ut=arrayClone(ot,At),et=0;et0&&nt.length>tt&&!nt.warned){nt.warned=!0;var it=new Error("Possible EventEmitter memory leak detected. "+nt.length+" "+String($)+" listeners added. Use emitter.setMaxListeners() to increase limit");it.name="MaxListenersExceededWarning",it.emitter=j,it.type=$,it.count=nt.length,ProcessEmitWarning(it)}return j}EventEmitter.prototype.addListener=function($,_e){return _addListener(this,$,_e,!1)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function($,_e){return _addListener(this,$,_e,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(j,$,_e){var et={fired:!1,wrapFn:void 0,target:j,type:$,listener:_e},tt=onceWrapper.bind(et);return tt.listener=_e,et.wrapFn=tt,tt}EventEmitter.prototype.once=function($,_e){return checkListener(_e),this.on($,_onceWrap(this,$,_e)),this};EventEmitter.prototype.prependOnceListener=function($,_e){return checkListener(_e),this.prependListener($,_onceWrap(this,$,_e)),this};EventEmitter.prototype.removeListener=function($,_e){var et,tt,rt,nt,it;if(checkListener(_e),tt=this._events,tt===void 0)return this;if(et=tt[$],et===void 0)return this;if(et===_e||et.listener===_e)--this._eventsCount===0?this._events=Object.create(null):(delete tt[$],tt.removeListener&&this.emit("removeListener",$,et.listener||_e));else if(typeof et!="function"){for(rt=-1,nt=et.length-1;nt>=0;nt--)if(et[nt]===_e||et[nt].listener===_e){it=et[nt].listener,rt=nt;break}if(rt<0)return this;rt===0?et.shift():spliceOne(et,rt),et.length===1&&(tt[$]=et[0]),tt.removeListener!==void 0&&this.emit("removeListener",$,it||_e)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function($){var _e,et,tt;if(et=this._events,et===void 0)return this;if(et.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):et[$]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete et[$]),this;if(arguments.length===0){var rt=Object.keys(et),nt;for(tt=0;tt=0;tt--)this.removeListener($,_e[tt]);return this};function _listeners(j,$,_e){var et=j._events;if(et===void 0)return[];var tt=et[$];return tt===void 0?[]:typeof tt=="function"?_e?[tt.listener||tt]:[tt]:_e?unwrapListeners(tt):arrayClone(tt,tt.length)}EventEmitter.prototype.listeners=function($){return _listeners(this,$,!0)};EventEmitter.prototype.rawListeners=function($){return _listeners(this,$,!1)};EventEmitter.listenerCount=function(j,$){return typeof j.listenerCount=="function"?j.listenerCount($):listenerCount.call(j,$)};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(j){var $=this._events;if($!==void 0){var _e=$[j];if(typeof _e=="function")return 1;if(_e!==void 0)return _e.length}return 0}EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(j,$){for(var _e=new Array($),et=0;et<$;++et)_e[et]=j[et];return _e}function spliceOne(j,$){for(;$+1_lastMSecs)&&j.nsecs===void 0&&(At=0),At>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=ot,_lastNSecs=At,_clockseq=nt,ot+=122192928e5;var ft=((ot&268435455)*1e4+At)%4294967296;tt[et++]=ft>>>24&255,tt[et++]=ft>>>16&255,tt[et++]=ft>>>8&255,tt[et++]=ft&255;var dt=ot/4294967296*1e4&268435455;tt[et++]=dt>>>8&255,tt[et++]=dt&255,tt[et++]=dt>>>24&15|16,tt[et++]=dt>>>16&255,tt[et++]=nt>>>8|128,tt[et++]=nt&255;for(var Et=0;Et<6;++Et)tt[et+Et]=rt[Et];return $||bytesToUuid(tt)}function uuidToBytes(j){var $=[];return j.replace(/[a-fA-F0-9]{2}/g,function(_e){$.push(parseInt(_e,16))}),$}function stringToBytes(j){j=unescape(encodeURIComponent(j));for(var $=new Array(j.length),_e=0;_e>5]>>>$%32&255,nt=parseInt(rt.charAt(_e>>>4&15)+rt.charAt(_e&15),16),et.push(nt);return et}function wordsToMd5(j,$){j[$>>5]|=128<<$%32,j[($+64>>>9<<4)+14]=$;var _e,et,tt,rt,nt,it=1732584193,ot=-271733879,At=-1732584194,ut=271733878;for(_e=0;_e>2)-1]=void 0,$=0;$<_e.length;$+=1)_e[$]=0;var et=j.length*8;for($=0;$>5]|=(j[$/8]&255)<<$%32;return _e}function safeAdd(j,$){var _e=(j&65535)+($&65535),et=(j>>16)+($>>16)+(_e>>16);return et<<16|_e&65535}function bitRotateLeft(j,$){return j<<$|j>>>32-$}function md5cmn(j,$,_e,et,tt,rt){return safeAdd(bitRotateLeft(safeAdd(safeAdd($,j),safeAdd(et,rt)),tt),_e)}function md5ff(j,$,_e,et,tt,rt,nt){return md5cmn($&_e|~$&et,j,$,tt,rt,nt)}function md5gg(j,$,_e,et,tt,rt,nt){return md5cmn($&et|_e&~et,j,$,tt,rt,nt)}function md5hh(j,$,_e,et,tt,rt,nt){return md5cmn($^_e^et,j,$,tt,rt,nt)}function md5ii(j,$,_e,et,tt,rt,nt){return md5cmn(_e^($|~et),j,$,tt,rt,nt)}var v3=v35("v3",48,md5);const v3$1=v3;function v4(j,$,_e){var et=$&&_e||0;typeof j=="string"&&($=j==="binary"?new Array(16):null,j=null),j=j||{};var tt=j.random||(j.rng||rng)();if(tt[6]=tt[6]&15|64,tt[8]=tt[8]&63|128,$)for(var rt=0;rt<16;++rt)$[et+rt]=tt[rt];return $||bytesToUuid(tt)}function f$2(j,$,_e,et){switch(j){case 0:return $&_e^~$&et;case 1:return $^_e^et;case 2:return $&_e^$&et^_e&et;case 3:return $^_e^et}}function ROTL(j,$){return j<<$|j>>>32-$}function sha1(j){var $=[1518500249,1859775393,2400959708,3395469782],_e=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof j=="string"){var et=unescape(encodeURIComponent(j));j=new Array(et.length);for(var tt=0;tt>>0;St=Bt,Bt=Et,Et=ROTL(dt,30)>>>0,dt=ft,ft=$t}_e[0]=_e[0]+ft>>>0,_e[1]=_e[1]+dt>>>0,_e[2]=_e[2]+Et>>>0,_e[3]=_e[3]+Bt>>>0,_e[4]=_e[4]+St>>>0}return[_e[0]>>24&255,_e[0]>>16&255,_e[0]>>8&255,_e[0]&255,_e[1]>>24&255,_e[1]>>16&255,_e[1]>>8&255,_e[1]&255,_e[2]>>24&255,_e[2]>>16&255,_e[2]>>8&255,_e[2]&255,_e[3]>>24&255,_e[3]>>16&255,_e[3]>>8&255,_e[3]&255,_e[4]>>24&255,_e[4]>>16&255,_e[4]>>8&255,_e[4]&255]}var v5=v35("v5",80,sha1);const v5$1=v5,esmBrowser=Object.freeze(Object.defineProperty({__proto__:null,v1,v3:v3$1,v4,v5:v5$1},Symbol.toStringTag,{value:"Module"})),require$$1$3=getAugmentedNamespace(esmBrowser);(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=et(eventsExports),_e=et(require$$1$3);function et($t){return $t&&$t.__esModule?$t:{default:$t}}function tt($t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?tt=function(wt){return typeof wt}:tt=function(wt){return wt&&typeof Symbol=="function"&&wt.constructor===Symbol&&wt!==Symbol.prototype?"symbol":typeof wt},tt($t)}function rt($t,Rt){if(!($t instanceof Rt))throw new TypeError("Cannot call a class as a function")}function nt($t,Rt){for(var wt=0;wt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function dt($t){return dt=Object.setPrototypeOf?Object.getPrototypeOf:function(wt){return wt.__proto__||Object.getPrototypeOf(wt)},dt($t)}function Et($t,Rt){if(typeof Rt!="function"&&Rt!==null)throw new TypeError("Super expression must either be null or a function");$t.prototype=Object.create(Rt&&Rt.prototype,{constructor:{value:$t,writable:!0,configurable:!0}}),Rt&&Bt($t,Rt)}function Bt($t,Rt){return Bt=Object.setPrototypeOf||function(xt,Nt){return xt.__proto__=Nt,xt},Bt($t,Rt)}function St($t,Rt,wt){return Rt in $t?Object.defineProperty($t,Rt,{value:wt,enumerable:!0,configurable:!0,writable:!0}):$t[Rt]=wt,$t}var Dt=function($t){Et(wt,$t);var Rt=ot(wt);function wt(xt){var Nt,Ot=xt.getData,kt=xt.on,Jt=xt.toNebulaFeature;return rt(this,wt),Nt=Rt.call(this),St(ut(Nt),"getData",void 0),St(ut(Nt),"toNebulaFeature",void 0),St(ut(Nt),"id",void 0),St(ut(Nt),"helperLayers",void 0),St(ut(Nt),"usesMapEvents",!1),St(ut(Nt),"enablePicking",!1),St(ut(Nt),"enableSelection",!1),Nt.id=_e.default.v4(),Nt.getData=Ot,Nt.toNebulaFeature=Jt,Nt.helperLayers=[],kt&&Object.keys(kt).forEach(function(jt){return Nt.on(jt,kt[jt])}),Nt}return it(wt,[{key:"render",value:function(Nt){return null}}]),wt}($.default.EventEmitter);j.default=Dt})(nebulaLayer);var junctionsLayer={},distEs6$1={},style$3={};Object.defineProperty(style$3,"__esModule",{value:!0});style$3.MAX_ARROWS=style$3.DEFAULT_ARROWS=style$3.ArrowStyles=void 0;var ArrowStyles={NONE:0,FORWARD:1,BACKWARD:2,BOTH:3};style$3.ArrowStyles=ArrowStyles;var DEFAULT_ARROWS=1;style$3.DEFAULT_ARROWS=DEFAULT_ARROWS;var MAX_ARROWS=3;style$3.MAX_ARROWS=MAX_ARROWS;var editableGeojsonLayer={},distEs6={},geojsonEditMode={},js$m={},__importDefault$6=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$m,"__esModule",{value:!0});var polygon_clipping_1$1=__importDefault$6(polygonClipping_umdExports),invariant_1$d=js$s,helpers_1$d=js$v;function union(j,$,_e){_e===void 0&&(_e={});var et=invariant_1$d.getGeom(j),tt=invariant_1$d.getGeom($),rt=polygon_clipping_1$1.default.union(et.coordinates,tt.coordinates);return rt.length===0?null:rt.length===1?helpers_1$d.polygon(rt[0],_e.properties):helpers_1$d.multiPolygon(rt,_e.properties)}js$m.default=union;var js$l={},__importDefault$5=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$l,"__esModule",{value:!0});var helpers_1$c=js$v,invariant_1$c=js$s,polygon_clipping_1=__importDefault$5(polygonClipping_umdExports);function intersect(j,$,_e){_e===void 0&&(_e={});var et=invariant_1$c.getGeom(j),tt=invariant_1$c.getGeom($),rt=polygon_clipping_1.default.intersection(et.coordinates,tt.coordinates);return rt.length===0?null:rt.length===1?helpers_1$c.polygon(rt[0],_e.properties):helpers_1$c.multiPolygon(rt,_e.properties)}js$l.default=intersect;var js$k={exports:{}},js$j={};Object.defineProperty(js$j,"__esModule",{value:!0});function clone$4(j){if(!j)throw new Error("geojson is required");switch(j.type){case"Feature":return cloneFeature(j);case"FeatureCollection":return cloneFeatureCollection(j);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return cloneGeometry(j);default:throw new Error("unknown GeoJSON type")}}function cloneFeature(j){var $={type:"Feature"};return Object.keys(j).forEach(function(_e){switch(_e){case"type":case"properties":case"geometry":return;default:$[_e]=j[_e]}}),$.properties=cloneProperties(j.properties),$.geometry=cloneGeometry(j.geometry),$}function cloneProperties(j){var $={};return j&&Object.keys(j).forEach(function(_e){var et=j[_e];typeof et=="object"?et===null?$[_e]=null:Array.isArray(et)?$[_e]=et.map(function(tt){return tt}):$[_e]=cloneProperties(et):$[_e]=et}),$}function cloneFeatureCollection(j){var $={type:"FeatureCollection"};return Object.keys(j).forEach(function(_e){switch(_e){case"type":case"features":return;default:$[_e]=j[_e]}}),$.features=j.features.map(function(_e){return cloneFeature(_e)}),$}function cloneGeometry(j){var $={type:j.type};return j.bbox&&($.bbox=j.bbox),j.type==="GeometryCollection"?($.geometries=j.geometries.map(function(_e){return cloneGeometry(_e)}),$):($.coordinates=deepSlice(j.coordinates),$)}function deepSlice(j){var $=j;return typeof $[0]!="object"?$.slice():$.map(function(_e){return deepSlice(_e)})}js$j.default=clone$4;var js$i={};Object.defineProperty(js$i,"__esModule",{value:!0});var invariant_1$b=js$s;function booleanClockwise$1(j){for(var $=invariant_1$b.getCoords(j),_e=0,et=1,tt,rt;et<$.length;)tt=rt||$[0],rt=$[et],_e+=(rt[0]-tt[0])*(rt[1]+tt[1]),et++;return _e>0}js$i.default=booleanClockwise$1;var clone$3=js$j,booleanClockwise=js$i,meta$3=js$u,invariant$4=js$s,helpers$4=js$v;function _interopDefaultLegacy$4(j){return j&&typeof j=="object"&&"default"in j?j:{default:j}}var clone__default$3=_interopDefaultLegacy$4(clone$3),booleanClockwise__default=_interopDefaultLegacy$4(booleanClockwise);function rewind(j,$){if($=$||{},!helpers$4.isObject($))throw new Error("options is invalid");var _e=$.reverse||!1,et=$.mutate||!1;if(!j)throw new Error(" is required");if(typeof _e!="boolean")throw new Error(" must be a boolean");if(typeof et!="boolean")throw new Error(" must be a boolean");et===!1&&(j=clone__default$3.default(j));var tt=[];switch(j.type){case"GeometryCollection":return meta$3.geomEach(j,function(rt){rewindFeature(rt,_e)}),j;case"FeatureCollection":return meta$3.featureEach(j,function(rt){meta$3.featureEach(rewindFeature(rt,_e),function(nt){tt.push(nt)})}),helpers$4.featureCollection(tt)}return rewindFeature(j,_e)}function rewindFeature(j,$){var _e=j.type==="Feature"?j.geometry.type:j.type;switch(_e){case"GeometryCollection":return meta$3.geomEach(j,function(et){rewindFeature(et,$)}),j;case"LineString":return rewindLineString(invariant$4.getCoords(j),$),j;case"Polygon":return rewindPolygon(invariant$4.getCoords(j),$),j;case"MultiLineString":return invariant$4.getCoords(j).forEach(function(et){rewindLineString(et,$)}),j;case"MultiPolygon":return invariant$4.getCoords(j).forEach(function(et){rewindPolygon(et,$)}),j;case"Point":case"MultiPoint":return j}}function rewindLineString(j,$){booleanClockwise__default.default(j)===$&&j.reverse()}function rewindPolygon(j,$){booleanClockwise__default.default(j[0])!==$&&j[0].reverse();for(var _e=1;_e180?-360:et[0]-tt[0]>180?360:0;var rt=calculateRhumbDistance(et,tt),nt=helpers_1$9.convertLength(rt,"meters",_e.units);return nt}function calculateRhumbDistance(j,$,_e){_e=_e===void 0?helpers_1$9.earthRadius:Number(_e);var et=_e,tt=j[1]*Math.PI/180,rt=$[1]*Math.PI/180,nt=rt-tt,it=Math.abs($[0]-j[0])*Math.PI/180;it>Math.PI&&(it-=2*Math.PI);var ot=Math.log(Math.tan(rt/2+Math.PI/4)/Math.tan(tt/2+Math.PI/4)),At=Math.abs(ot)>1e-11?nt/ot:Math.cos(tt),ut=Math.sqrt(nt*nt+At*At*it*it),ft=ut*et;return ft}js$e.default=rhumbDistance$2;var __importDefault$4=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$f,"__esModule",{value:!0});var distance_1$2=__importDefault$4(js$n),helpers_1$8=js$v,invariant_1$7=js$s,meta_1$4=js$u,rhumb_distance_1=__importDefault$4(js$e);function pointToLineDistance(j,$,_e){if(_e===void 0&&(_e={}),_e.method||(_e.method="geodesic"),_e.units||(_e.units="kilometers"),!j)throw new Error("pt is required");if(Array.isArray(j)?j=helpers_1$8.point(j):j.type==="Point"?j=helpers_1$8.feature(j):invariant_1$7.featureOf(j,"Point","point"),!$)throw new Error("line is required");Array.isArray($)?$=helpers_1$8.lineString($):$.type==="LineString"?$=helpers_1$8.feature($):invariant_1$7.featureOf($,"LineString","line");var et=1/0,tt=j.geometry.coordinates;return meta_1$4.segmentEach($,function(rt){var nt=rt.geometry.coordinates[0],it=rt.geometry.coordinates[1],ot=distanceToSegment(tt,nt,it,_e);ot"u"||!(Symbol.iterator in Object(j)))){var _e=[],et=!0,tt=!1,rt=void 0;try{for(var nt=j[Symbol.iterator](),it;!(et=(it=nt.next()).done)&&(_e.push(it.value),!($&&_e.length===$));et=!0);}catch(ot){tt=!0,rt=ot}finally{try{!et&&nt.return!=null&&nt.return()}finally{if(tt)throw rt}}return _e}}function _arrayWithHoles$5(j){if(Array.isArray(j))return j}function _toConsumableArray$h(j){return _arrayWithoutHoles$h(j)||_iterableToArray$h(j)||_unsupportedIterableToArray$i(j)||_nonIterableSpread$h()}function _nonIterableSpread$h(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$i(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$i(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$i(j,$)}}function _iterableToArray$h(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$h(j){if(Array.isArray(j))return _arrayLikeToArray$i(j)}function _arrayLikeToArray$i(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function toDeckColor$2(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[255,0,0,255];return Array.isArray(j)?[j[0]*255,j[1]*255,j[2]*255,j[3]*255]:$}function recursivelyTraverseNestedArrays$2(j,$,_e){if(!Array.isArray(j[0]))return!0;for(var et=0;et1&&At.length){var $t,Rt;rt?($t=ot.map(function(ur){return rt.project(ur)}),Rt=rt.project(At)):($t=ot,Rt=At);for(var wt=1;wt<$t.length;wt++){if($t[wt][0]!==$t[wt-1][0]){var xt=($t[wt][1]-$t[wt-1][1])/($t[wt][0]-$t[wt-1][0]),Nt=$t[wt][1]-xt*$t[wt][0];Dt=Math.abs(xt*Rt[0]+Nt-Rt[1])/Math.sqrt(xt*xt+1)}else Dt=Math.abs(Rt[0]-$t[wt][0]);var Ot=Math.pow($t[wt][1]-$t[wt-1][1],2)+Math.pow($t[wt][0]-$t[wt-1][0],2),kt=Math.pow($t[wt][1]-Rt[1],2)+Math.pow($t[wt][0]-Rt[0],2),Jt=Math.pow($t[wt-1][1]-Rt[1],2)+Math.pow($t[wt-1][0]-Rt[0],2),jt=Math.pow(Dt,2),Ht=kt-jt+Jt-jt;Ht>Ot&&(Dt=Math.sqrt(Math.min(kt,Jt))),(ut==null||ut>Dt)&&(Ht>Ot?Jt=0&&et.editHandleType==="existing"})}function getPickedIntermediateEditHandle(j){var $=getPickedEditHandles(j);return $.find(function(_e){var et=_e.properties;return et.featureIndex>=0&&et.editHandleType==="intermediate"})}function getPickedEditHandles(j){var $=j&&j.filter(function(_e){return _e.isGuide&&_e.object.properties.guideType==="editHandle"}).map(function(_e){return _e.object})||[];return $}function getEditHandlesForGeometry(j,$){var _e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"existing",et=[];switch(j.type){case"Point":et=[{type:"Feature",properties:{guideType:"editHandle",editHandleType:_e,positionIndexes:[],featureIndex:$},geometry:{type:"Point",coordinates:j.coordinates}}];break;case"MultiPoint":case"LineString":et=et.concat(getEditHandlesForCoordinates(j.coordinates,[],$,_e));break;case"Polygon":case"MultiLineString":for(var tt=0;tt3&&arguments[3]!==void 0?arguments[3]:"existing",tt=[],rt=0;rtj.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function ownKeys$3(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread$3(j){for(var $=1;$=0;tt--){var rt=_e[tt];rt>=0&&rt"u"||j[Symbol.iterator]==null){if(Array.isArray(j)||(j=_unsupportedIterableToArray$g(j))){var $=0,_e=function(){};return{s:_e,n:function(){return $>=j.length?{done:!0}:{done:!1,value:j[$++]}},e:function(ot){throw ot},f:_e}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var et,tt=!0,rt=!1,nt;return{s:function(){et=j[Symbol.iterator]()},n:function(){var ot=et.next();return tt=ot.done,ot},e:function(ot){rt=!0,nt=ot},f:function(){try{!tt&&et.return!=null&&et.return()}finally{if(rt)throw nt}}}}function _toConsumableArray$f(j){return _arrayWithoutHoles$f(j)||_iterableToArray$f(j)||_unsupportedIterableToArray$g(j)||_nonIterableSpread$f()}function _nonIterableSpread$f(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$g(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$g(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$g(j,$)}}function _iterableToArray$f(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$f(j){if(Array.isArray(j))return _arrayLikeToArray$g(j)}function _arrayLikeToArray$g(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$v(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$u(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$u(j,$,_e){return $&&_defineProperties$u(j.prototype,$),_e&&_defineProperties$u(j,_e),j}function _defineProperty$c(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var DEFAULT_GUIDES={type:"FeatureCollection",features:[]},DEFAULT_TOOLTIPS$2=[],GeoJsonEditMode=function(){function j(){_classCallCheck$v(this,j),_defineProperty$c(this,"_clickSequence",[])}return _createClass$u(j,[{key:"getGuides",value:function(_e){return DEFAULT_GUIDES}},{key:"getTooltips",value:function(_e){return DEFAULT_TOOLTIPS$2}},{key:"getSelectedFeature",value:function(_e){return _e.selectedIndexes.length===1?_e.data.features[_e.selectedIndexes[0]]:null}},{key:"getSelectedGeometry",value:function(_e){var et=this.getSelectedFeature(_e);return et?et.geometry:null}},{key:"getSelectedFeaturesAsFeatureCollection",value:function(_e){var et=_e.data.features,tt=_e.selectedIndexes.map(function(rt){return et[rt]});return{type:"FeatureCollection",features:tt}}},{key:"getClickSequence",value:function(){return this._clickSequence}},{key:"addClickSequence",value:function(_e){var et=_e.mapCoords;this._clickSequence.push(et)}},{key:"resetClickSequence",value:function(){this._clickSequence=[]}},{key:"getTentativeGuide",value:function(_e){var et=this.getGuides(_e);return et.features.find(function(tt){return tt.properties&&tt.properties.guideType==="tentative"})}},{key:"isSelectionPicked",value:function(_e,et){if(!_e.length)return!1;var tt=(0,_utils$e.getNonGuidePicks)(_e).map(function(it){var ot=it.index;return ot}),rt=(0,_utils$e.getPickedEditHandles)(_e).map(function(it){var ot=it.properties;return ot.featureIndex}),nt=new Set([].concat(_toConsumableArray$f(tt),_toConsumableArray$f(rt)));return et.selectedIndexes.some(function(it){return nt.has(it)})}},{key:"rewindPolygon",value:function(_e){var et=_e.geometry,tt=et.type==="Polygon"||et.type==="MultiPolygon";return tt?(0,_rewind.default)(_e):_e}},{key:"getAddFeatureAction",value:function(_e,et){var tt=_e,rt=tt.type==="Feature"?tt:{type:"Feature",properties:{},geometry:tt},nt=this.rewindPolygon(rt),it=new _immutableFeatureCollection$8.ImmutableFeatureCollection(et).addFeature(nt).getObject();return{updatedData:it,editType:"addFeature",editContext:{featureIndexes:[it.features.length-1]}}}},{key:"getAddManyFeaturesAction",value:function(_e,et){var tt=_e.features,rt=new _immutableFeatureCollection$8.ImmutableFeatureCollection(et),nt=rt.getObject().features.length,it=[],ot=_createForOfIteratorHelper$3(tt),At;try{for(ot.s();!(At=ot.n()).done;){var ut=At.value,ft=ut.properties,dt=ut.geometry,Et=dt;rt=rt.addFeature({type:"Feature",properties:ft,geometry:Et}),it.push(nt+it.length)}}catch(Bt){ot.e(Bt)}finally{ot.f()}return{updatedData:rt.getObject(),editType:"addFeature",editContext:{featureIndexes:it}}}},{key:"getAddFeatureOrBooleanPolygonAction",value:function(_e,et){var tt=_e,rt=this.getSelectedFeature(et),nt=et.modeConfig;if(nt&&nt.booleanOperation){if(!rt||rt.geometry.type!=="Polygon"&&rt.geometry.type!=="MultiPolygon")return console.warn("booleanOperation only supported for single Polygon or MultiPolygon selection"),null;var it=tt.type==="Feature"?tt:{type:"Feature",geometry:tt},ot;if(nt.booleanOperation==="union")ot=(0,_union.default)(rt,it);else if(nt.booleanOperation==="difference")ot=(0,_difference$1.default)(rt,it);else if(nt.booleanOperation==="intersection")ot=(0,_intersect.default)(rt,it);else return console.warn("Invalid booleanOperation ".concat(nt.booleanOperation)),null;if(!ot)return console.warn("Canceling edit. Boolean operation erased entire polygon."),null;var At=et.selectedIndexes[0],ut=new _immutableFeatureCollection$8.ImmutableFeatureCollection(et.data).replaceGeometry(At,ot.geometry).getObject(),ft={updatedData:ut,editType:"unionGeometry",editContext:{featureIndexes:[At]}};return ft}return this.getAddFeatureAction(_e,et.data)}},{key:"createTentativeFeature",value:function(_e){return null}},{key:"handleClick",value:function(_e,et){}},{key:"handlePointerMove",value:function(_e,et){var tt=this.createTentativeFeature(et);tt&&et.onEdit({updatedData:et.data,editType:"updateTentativeFeature",editContext:{feature:tt}})}},{key:"handleStartDragging",value:function(_e,et){}},{key:"handleStopDragging",value:function(_e,et){}},{key:"handleDragging",value:function(_e,et){}},{key:"handleKeyUp",value:function(_e,et){_e.key==="Escape"&&(this.resetClickSequence(),et.onEdit({updatedData:et.data,editType:"cancelFeature",editContext:{}}))}}]),j}();geojsonEditMode.GeoJsonEditMode=GeoJsonEditMode;function getIntermediatePosition(j,$){var _e=[(j[0]+$[0])/2,(j[1]+$[1])/2];return _e}var modifyMode={};Object.defineProperty(modifyMode,"__esModule",{value:!0});modifyMode.ModifyMode=void 0;var _helpers$b=js$v,_utils$d=utils$2,_geojsonEditMode$k=geojsonEditMode,_immutableFeatureCollection$7=immutableFeatureCollection;function _typeof$u(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$u=function(_e){return typeof _e}:_typeof$u=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$u(j)}function _toConsumableArray$e(j){return _arrayWithoutHoles$e(j)||_iterableToArray$e(j)||_unsupportedIterableToArray$f(j)||_nonIterableSpread$e()}function _nonIterableSpread$e(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArray$e(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$e(j){if(Array.isArray(j))return _arrayLikeToArray$f(j)}function _createForOfIteratorHelper$2(j){if(typeof Symbol>"u"||j[Symbol.iterator]==null){if(Array.isArray(j)||(j=_unsupportedIterableToArray$f(j))){var $=0,_e=function(){};return{s:_e,n:function(){return $>=j.length?{done:!0}:{done:!1,value:j[$++]}},e:function(ot){throw ot},f:_e}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var et,tt=!0,rt=!1,nt;return{s:function(){et=j[Symbol.iterator]()},n:function(){var ot=et.next();return tt=ot.done,ot},e:function(ot){rt=!0,nt=ot},f:function(){try{!tt&&et.return!=null&&et.return()}finally{if(rt)throw nt}}}}function _unsupportedIterableToArray$f(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$f(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$f(j,$)}}function _arrayLikeToArray$f(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$u(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$t(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$t(j,$,_e){return $&&_defineProperties$t(j.prototype,$),_e&&_defineProperties$t(j,_e),j}function _createSuper$u(j){return function(){var $=_getPrototypeOf$u(j),_e;if(_isNativeReflectConstruct$u()){var et=_getPrototypeOf$u(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$u(this,_e)}}function _possibleConstructorReturn$u(j,$){return $&&(_typeof$u($)==="object"||typeof $=="function")?$:_assertThisInitialized$u(j)}function _assertThisInitialized$u(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$u(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$u(j){return _getPrototypeOf$u=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$u(j)}function _inherits$u(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$u(j,$)}function _setPrototypeOf$u(j,$){return _setPrototypeOf$u=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$u(j,$)}var ModifyMode=function(j){_inherits$u(_e,j);var $=_createSuper$u(_e);function _e(){return _classCallCheck$u(this,_e),$.apply(this,arguments)}return _createClass$t(_e,[{key:"getGuides",value:function(tt){var rt=this,nt=[],it=tt.data,ot=tt.lastPointerMoveEvent,At=it.features,ut=ot&&ot.picks,ft=ot&&ot.mapCoords,dt=_createForOfIteratorHelper$2(tt.selectedIndexes),Et;try{for(dt.s();!(Et=dt.n()).done;){var Bt=Et.value;if(Bt2})){if(nt)return(0,_utils$d.nearestPointOnProjectedLine)(tt,rt,nt);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return(0,_utils$d.nearestPointOnLine)(tt,rt,nt)}},{key:"handleClick",value:function(tt,rt){var nt=(0,_utils$d.getPickedExistingEditHandle)(tt.picks),it=(0,_utils$d.getPickedIntermediateEditHandle)(tt.picks);if(nt){var ot=nt.properties,At=ot.featureIndex,ut=ot.positionIndexes,ft;try{ft=new _immutableFeatureCollection$7.ImmutableFeatureCollection(rt.data).removePosition(At,ut).getObject()}catch{}ft&&rt.onEdit({updatedData:ft,editType:"removePosition",editContext:{featureIndexes:[At],positionIndexes:ut,position:nt.geometry.coordinates}})}else if(it){var dt=it.properties,Et=dt.featureIndex,Bt=dt.positionIndexes,St=new _immutableFeatureCollection$7.ImmutableFeatureCollection(rt.data).addPosition(Et,Bt,it.geometry.coordinates).getObject();St&&rt.onEdit({updatedData:St,editType:"addPosition",editContext:{featureIndexes:[Et],positionIndexes:Bt,position:it.geometry.coordinates}})}}},{key:"handleDragging",value:function(tt,rt){var nt=(0,_utils$d.getPickedEditHandle)(tt.pointerDownPicks);if(nt){tt.cancelPan();var it=nt.properties,ot=new _immutableFeatureCollection$7.ImmutableFeatureCollection(rt.data).replacePosition(it.featureIndex,it.positionIndexes,tt.mapCoords).getObject();rt.onEdit({updatedData:ot,editType:"movePosition",editContext:{featureIndexes:[it.featureIndex],positionIndexes:it.positionIndexes,position:tt.mapCoords}})}}},{key:"handlePointerMove",value:function(tt,rt){var nt=this.getCursor(tt);rt.onUpdateCursor(nt)}},{key:"handleStartDragging",value:function(tt,rt){var nt=rt.selectedIndexes,it=(0,_utils$d.getPickedIntermediateEditHandle)(tt.picks);if(nt.length&&it){var ot=it.properties,At=new _immutableFeatureCollection$7.ImmutableFeatureCollection(rt.data).addPosition(ot.featureIndex,ot.positionIndexes,tt.mapCoords).getObject();rt.onEdit({updatedData:At,editType:"addPosition",editContext:{featureIndexes:[ot.featureIndex],positionIndexes:ot.positionIndexes,position:tt.mapCoords}})}}},{key:"handleStopDragging",value:function(tt,rt){var nt=rt.selectedIndexes,it=(0,_utils$d.getPickedEditHandle)(tt.picks);if(nt.length&&it){var ot=it.properties,At=new _immutableFeatureCollection$7.ImmutableFeatureCollection(rt.data).replacePosition(ot.featureIndex,ot.positionIndexes,tt.mapCoords).getObject();rt.onEdit({updatedData:At,editType:"finishMovePosition",editContext:{featureIndexes:[ot.featureIndex],positionIndexes:ot.positionIndexes,position:tt.mapCoords}})}}},{key:"getCursor",value:function(tt){var rt=tt&&tt.picks||[],nt=(0,_utils$d.getPickedEditHandles)(rt);return nt.length?"cell":null}}]),_e}(_geojsonEditMode$k.GeoJsonEditMode);modifyMode.ModifyMode=ModifyMode;var resizeCircleMode={},js$d={};const require$$0$3=getAugmentedNamespace(es$3),require$$1$2=getAugmentedNamespace(es$2),require$$2$4=getAugmentedNamespace(es$1),require$$3$3=getAugmentedNamespace(es),require$$1$1=getAugmentedNamespace(es$5);var __importDefault$3=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$d,"__esModule",{value:!0});var bearing_1$1=__importDefault$3(require$$0$3),distance_1$1=__importDefault$3(require$$1$2),destination_1$2=__importDefault$3(require$$2$4),line_intersect_1=__importDefault$3(require$$3$3),meta_1$3=require$$3$2,helpers_1$7=require$$0$5,invariant_1$6=require$$1$1;function nearestPointOnLine(j,$,_e){_e===void 0&&(_e={});var et=helpers_1$7.point([1/0,1/0],{dist:1/0}),tt=0;return meta_1$3.flattenEach(j,function(rt){for(var nt=invariant_1$6.getCoords(rt),it=0;it0&&(Dt=St.features[0],Dt.properties.dist=distance_1$1.default($,Dt,_e),Dt.properties.location=tt+distance_1$1.default(ot,Dt,_e)),ot.properties.distj.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$t(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$s(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$s(j,$,_e){return $&&_defineProperties$s(j.prototype,$),_e&&_defineProperties$s(j,_e),j}function _createSuper$t(j){return function(){var $=_getPrototypeOf$t(j),_e;if(_isNativeReflectConstruct$t()){var et=_getPrototypeOf$t(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$t(this,_e)}}function _possibleConstructorReturn$t(j,$){return $&&(_typeof$t($)==="object"||typeof $=="function")?$:_assertThisInitialized$t(j)}function _assertThisInitialized$t(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$t(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$t(j){return _getPrototypeOf$t=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$t(j)}function _inherits$t(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$t(j,$)}function _setPrototypeOf$t(j,$){return _setPrototypeOf$t=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$t(j,$)}function _defineProperty$b(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var ResizeCircleMode=function(j){_inherits$t(_e,j);var $=_createSuper$t(_e);function _e(){var et;_classCallCheck$t(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt2})){if(nt)return(0,_utils$c.nearestPointOnProjectedLine)(tt,rt,nt);console.log("Editing 3D point but modeConfig.viewport not provided. Falling back to 2D logic.")}return(0,_nearestPointOnLine$1.default)(tt,rt)}},{key:"handleDragging",value:function(tt,rt){var nt=(0,_utils$c.getPickedEditHandle)(tt.pointerDownPicks);if(nt){tt.cancelPan();var it=nt.properties,ot=this.getSelectedFeature(rt),At=(0,_center$1.default)(ot).geometry.coordinates,ut=Object.entries(ot.geometry.coordinates[0]).length-1,ft=Math.max((0,_distance$b.default)(At,tt.mapCoords),.001),dt={},Et=dt.steps,Bt=Et===void 0?ut:Et,St={steps:Bt},Dt=(0,_circle$2.default)(At,ft,St),$t=Dt.geometry,Rt=new _immutableFeatureCollection$6.ImmutableFeatureCollection(rt.data).replaceGeometry(it.featureIndex,$t).getObject();rt.onEdit({updatedData:Rt,editType:"unionGeometry",editContext:{featureIndexes:[it.featureIndex]}})}}},{key:"handlePointerMove",value:function(tt,rt){if(!this._isResizing){var nt=(0,_utils$c.getPickedEditHandle)(tt.picks);this._selectedEditHandle=nt&&nt.properties.editHandleType==="intermediate"?nt:null}var it=this.getCursor(tt);rt.onUpdateCursor(it)}},{key:"handleStartDragging",value:function(tt,rt){this._selectedEditHandle&&(this._isResizing=!0)}},{key:"handleStopDragging",value:function(tt,rt){this._isResizing&&(this._selectedEditHandle=null,this._isResizing=!1)}},{key:"getCursor",value:function(tt){var rt=tt&&tt.picks||[],nt=(0,_utils$c.getPickedEditHandles)(rt);return nt.length?"cell":null}}]),_e}(_geojsonEditMode$j.GeoJsonEditMode);resizeCircleMode.ResizeCircleMode=ResizeCircleMode;var translateMode={},js$b={exports:{}},js$a={};Object.defineProperty(js$a,"__esModule",{value:!0});var helpers_1$5=js$v,invariant_1$5=js$s;function rhumbDestination$4(j,$,_e,et){et===void 0&&(et={});var tt=$<0,rt=helpers_1$5.convertLength(Math.abs($),et.units,"meters");tt&&(rt=-Math.abs(rt));var nt=invariant_1$5.getCoord(j),it=calculateRhumbDestination(nt,rt,_e);return it[0]+=it[0]-nt[0]>180?-360:nt[0]-it[0]>180?360:0,helpers_1$5.point(it,et.properties)}function calculateRhumbDestination(j,$,_e,et){et=et===void 0?helpers_1$5.earthRadius:Number(et);var tt=$/et,rt=j[0]*Math.PI/180,nt=helpers_1$5.degreesToRadians(j[1]),it=helpers_1$5.degreesToRadians(_e),ot=tt*Math.cos(it),At=nt+ot;Math.abs(At)>Math.PI/2&&(At=At>0?Math.PI-At:-Math.PI-At);var ut=Math.log(Math.tan(At/2+Math.PI/4)/Math.tan(nt/2+Math.PI/4)),ft=Math.abs(ut)>1e-11?ot/ut:Math.cos(nt),dt=tt*Math.sin(it)/ft,Et=rt+dt;return[(Et*180/Math.PI+540)%360-180,At*180/Math.PI]}js$a.default=rhumbDestination$4;var meta$2=js$u,helpers$3=js$v,invariant$3=js$s,clone$2=js$j,rhumbDestination$3=js$a;function _interopDefaultLegacy$3(j){return j&&typeof j=="object"&&"default"in j?j:{default:j}}var clone__default$2=_interopDefaultLegacy$3(clone$2),rhumbDestination__default$3=_interopDefaultLegacy$3(rhumbDestination$3);function transformTranslate(j,$,_e,et){if(et=et||{},!helpers$3.isObject(et))throw new Error("options is invalid");var tt=et.units,rt=et.zTranslation,nt=et.mutate;if(!j)throw new Error("geojson is required");if($==null||isNaN($))throw new Error("distance is required");if(rt&&typeof rt!="number"&&isNaN(rt))throw new Error("zTranslation is not a number");if(rt=rt!==void 0?rt:0,$===0&&rt===0)return j;if(_e==null||isNaN(_e))throw new Error("direction is required");return $<0&&($=-$,_e=_e+180),(nt===!1||nt===void 0)&&(j=clone__default$2.default(j)),meta$2.coordEach(j,function(it){var ot=invariant$3.getCoords(rhumbDestination__default$3.default(it,$,_e,{units:tt}));it[0]=ot[0],it[1]=ot[1],rt&&it.length===3&&(it[2]+=rt)}),j}js$b.exports=transformTranslate;js$b.exports.default=transformTranslate;var jsExports$3=js$b.exports;Object.defineProperty(translateMode,"__esModule",{value:!0});translateMode.TranslateMode=void 0;var _bearing$8=_interopRequireDefault$g(js$g),_distance$a=_interopRequireDefault$g(js$n),_transformTranslate=_interopRequireDefault$g(jsExports$3),_helpers$9=js$v,_geojsonEditMode$i=geojsonEditMode,_immutableFeatureCollection$5=immutableFeatureCollection;function _interopRequireDefault$g(j){return j&&j.__esModule?j:{default:j}}function _typeof$s(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$s=function(_e){return typeof _e}:_typeof$s=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$s(j)}function _classCallCheck$s(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$r(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$r(j,$,_e){return $&&_defineProperties$r(j.prototype,$),_e&&_defineProperties$r(j,_e),j}function _createSuper$s(j){return function(){var $=_getPrototypeOf$s(j),_e;if(_isNativeReflectConstruct$s()){var et=_getPrototypeOf$s(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$s(this,_e)}}function _possibleConstructorReturn$s(j,$){return $&&(_typeof$s($)==="object"||typeof $=="function")?$:_assertThisInitialized$s(j)}function _assertThisInitialized$s(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$s(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$s(j){return _getPrototypeOf$s=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$s(j)}function _inherits$s(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$s(j,$)}function _setPrototypeOf$s(j,$){return _setPrototypeOf$s=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$s(j,$)}function _defineProperty$a(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var TranslateMode=function(j){_inherits$s(_e,j);var $=_createSuper$s(_e);function _e(){var et;_classCallCheck$s(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt1?helpers_1$3.multiLineString(j,$):helpers_1$3.lineString(j[0],$)}js$8.coordsToLine=coordsToLine;var js$7={exports:{}},js$6={};Object.defineProperty(js$6,"__esModule",{value:!0});var helpers_1$2=js$v,invariant_1$3=js$s;function rhumbBearing$2(j,$,_e){_e===void 0&&(_e={});var et;_e.final?et=calculateRhumbBearing(invariant_1$3.getCoord($),invariant_1$3.getCoord(j)):et=calculateRhumbBearing(invariant_1$3.getCoord(j),invariant_1$3.getCoord($));var tt=et>180?-(360-et):et;return tt}function calculateRhumbBearing(j,$){var _e=helpers_1$2.degreesToRadians(j[1]),et=helpers_1$2.degreesToRadians($[1]),tt=helpers_1$2.degreesToRadians($[0]-j[0]);tt>Math.PI&&(tt-=2*Math.PI),tt<-Math.PI&&(tt+=2*Math.PI);var rt=Math.log(Math.tan(et/2+Math.PI/4)/Math.tan(_e/2+Math.PI/4)),nt=Math.atan2(tt,rt);return(helpers_1$2.radiansToDegrees(nt)+360)%360}js$6.default=rhumbBearing$2;var clone$1=js$j,center$3=js$p,centroid$1=js$9,turfBBox=js$t,rhumbBearing$1=js$6,rhumbDistance$1=js$e,rhumbDestination$2=js$a,meta$1=js$u,helpers$2=js$v,invariant$2=js$s;function _interopDefaultLegacy$2(j){return j&&typeof j=="object"&&"default"in j?j:{default:j}}var clone__default$1=_interopDefaultLegacy$2(clone$1),center__default=_interopDefaultLegacy$2(center$3),centroid__default$1=_interopDefaultLegacy$2(centroid$1),turfBBox__default=_interopDefaultLegacy$2(turfBBox),rhumbBearing__default$1=_interopDefaultLegacy$2(rhumbBearing$1),rhumbDistance__default$1=_interopDefaultLegacy$2(rhumbDistance$1),rhumbDestination__default$2=_interopDefaultLegacy$2(rhumbDestination$2);function transformScale(j,$,_e){if(_e=_e||{},!helpers$2.isObject(_e))throw new Error("options is invalid");var et=_e.origin,tt=_e.mutate;if(!j)throw new Error("geojson required");if(typeof $!="number"||$===0)throw new Error("invalid factor");var rt=Array.isArray(et)||typeof et=="object";return tt!==!0&&(j=clone__default$1.default(j)),j.type==="FeatureCollection"&&!rt?(meta$1.featureEach(j,function(nt,it){j.features[it]=scale(nt,$,et)}),j):scale(j,$,et)}function scale(j,$,_e){var et=invariant$2.getType(j)==="Point";return _e=defineOrigin(j,_e),$===1||et||meta$1.coordEach(j,function(tt){var rt=rhumbDistance__default$1.default(_e,tt),nt=rhumbBearing__default$1.default(_e,tt),it=rt*$,ot=invariant$2.getCoords(rhumbDestination__default$2.default(_e,it,nt));tt[0]=ot[0],tt[1]=ot[1],tt.length===3&&(tt[2]*=$)}),j}function defineOrigin(j,$){if($==null&&($="centroid"),Array.isArray($)||typeof $=="object")return invariant$2.getCoord($);var _e=j.bbox?j.bbox:turfBBox__default.default(j),et=_e[0],tt=_e[1],rt=_e[2],nt=_e[3];switch($){case"sw":case"southwest":case"westsouth":case"bottomleft":return helpers$2.point([et,tt]);case"se":case"southeast":case"eastsouth":case"bottomright":return helpers$2.point([rt,tt]);case"nw":case"northwest":case"westnorth":case"topleft":return helpers$2.point([et,nt]);case"ne":case"northeast":case"eastnorth":case"topright":return helpers$2.point([rt,nt]);case"center":return center__default.default(j);case void 0:case null:case"centroid":return centroid__default$1.default(j);default:throw new Error("invalid origin")}}js$7.exports=transformScale;js$7.exports.default=transformScale;var jsExports$2=js$7.exports;Object.defineProperty(scaleMode,"__esModule",{value:!0});scaleMode.ScaleMode=void 0;var _bbox$1=_interopRequireDefault$f(js$t),_centroid$2=_interopRequireDefault$f(js$9),_bearing$7=_interopRequireDefault$f(js$g),_bboxPolygon$4=_interopRequireDefault$f(js$r),_helpers$8=js$v,_polygonToLine$2=_interopRequireDefault$f(js$8),_meta$1=js$u,_distance$9=_interopRequireDefault$f(js$n),_transformScale=_interopRequireDefault$f(jsExports$2),_invariant$1=js$s,_utils$b=utils$2,_geojsonEditMode$h=geojsonEditMode,_immutableFeatureCollection$4=immutableFeatureCollection;function _interopRequireDefault$f(j){return j&&j.__esModule?j:{default:j}}function _typeof$r(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$r=function(_e){return typeof _e}:_typeof$r=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$r(j)}function _toConsumableArray$c(j){return _arrayWithoutHoles$c(j)||_iterableToArray$c(j)||_unsupportedIterableToArray$d(j)||_nonIterableSpread$c()}function _nonIterableSpread$c(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$d(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$d(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$d(j,$)}}function _iterableToArray$c(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$c(j){if(Array.isArray(j))return _arrayLikeToArray$d(j)}function _arrayLikeToArray$d(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$r(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$q(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$q(j,$,_e){return $&&_defineProperties$q(j.prototype,$),_e&&_defineProperties$q(j,_e),j}function _createSuper$r(j){return function(){var $=_getPrototypeOf$r(j),_e;if(_isNativeReflectConstruct$r()){var et=_getPrototypeOf$r(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$r(this,_e)}}function _possibleConstructorReturn$r(j,$){return $&&(_typeof$r($)==="object"||typeof $=="function")?$:_assertThisInitialized$r(j)}function _assertThisInitialized$r(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$r(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$r(j){return _getPrototypeOf$r=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$r(j)}function _inherits$r(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$r(j,$)}function _setPrototypeOf$r(j,$){return _setPrototypeOf$r=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$r(j,$)}function _defineProperty$9(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var ScaleMode=function(j){_inherits$r(_e,j);var $=_createSuper$r(_e);function _e(){var et;_classCallCheck$r(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt=0&&ft<=90||ft>=180&&ft<=270?(et._cursor="nesw-resize",it.onUpdateCursor("nesw-resize")):(et._cursor="nwse-resize",it.onUpdateCursor("nwse-resize"))}else it.onUpdateCursor(null),et._cursor=null}),et}return _createClass$q(_e,[{key:"handlePointerMove",value:function(tt,rt){if(!this._isScaling){var nt=(0,_utils$b.getPickedEditHandle)(tt.picks);this._selectedEditHandle=nt&&nt.properties.editHandleType==="scale"?nt:null,nt&&this.updateCursor(rt)}}},{key:"handleStartDragging",value:function(tt,rt){this._selectedEditHandle&&(this._isScaling=!0,this._geometryBeingScaled=this.getSelectedFeaturesAsFeatureCollection(rt))}},{key:"handleDragging",value:function(tt,rt){if(this._isScaling){rt.onUpdateCursor(this._cursor);var nt=this.getScaleAction(tt.pointerDownMapCoords,tt.mapCoords,"scaling",rt);nt&&rt.onEdit(nt),tt.cancelPan()}}},{key:"handleStopDragging",value:function(tt,rt){if(this._isScaling){var nt=this.getScaleAction(tt.pointerDownMapCoords,tt.mapCoords,"scaled",rt);nt&&rt.onEdit(nt),rt.onUpdateCursor(null),this._geometryBeingScaled=null,this._selectedEditHandle=null,this._cursor=null,this._isScaling=!1}}},{key:"getGuides",value:function(tt){this._cornerGuidePoints=[];var rt=this.getSelectedFeaturesAsFeatureCollection(tt);if(this._isSinglePointGeometrySelected(rt))return{type:"FeatureCollection",features:[]};var nt=(0,_bboxPolygon$4.default)((0,_bbox$1.default)(rt));nt.properties.mode="scale";var it=[];return(0,_meta$1.coordEach)(nt,function(ot,At){if(At<4){var ut=(0,_helpers$8.point)(ot,{guideType:"editHandle",editHandleType:"scale",positionIndexes:[At]});it.push(ut)}}),this._cornerGuidePoints=it,(0,_helpers$8.featureCollection)([(0,_polygonToLine$2.default)(nt)].concat(_toConsumableArray$c(this._cornerGuidePoints)))}}]),_e}(_geojsonEditMode$h.GeoJsonEditMode);scaleMode.ScaleMode=ScaleMode;function getScaleFactor(j,$,_e){var et=(0,_distance$9.default)(j,$),tt=(0,_distance$9.default)(j,_e);return tt/et}var rotateMode={},js$5={exports:{}},centroid=js$9,rhumbBearing=js$6,rhumbDistance=js$e,rhumbDestination$1=js$a,clone=js$j,meta=js$u,invariant$1=js$s,helpers$1=js$v;function _interopDefaultLegacy$1(j){return j&&typeof j=="object"&&"default"in j?j:{default:j}}var centroid__default=_interopDefaultLegacy$1(centroid),rhumbBearing__default=_interopDefaultLegacy$1(rhumbBearing),rhumbDistance__default=_interopDefaultLegacy$1(rhumbDistance),rhumbDestination__default$1=_interopDefaultLegacy$1(rhumbDestination$1),clone__default=_interopDefaultLegacy$1(clone);function transformRotate$1(j,$,_e){if(_e=_e||{},!helpers$1.isObject(_e))throw new Error("options is invalid");var et=_e.pivot,tt=_e.mutate;if(!j)throw new Error("geojson is required");if($==null||isNaN($))throw new Error("angle is required");return $===0||(et||(et=centroid__default.default(j)),(tt===!1||tt===void 0)&&(j=clone__default.default(j)),meta.coordEach(j,function(rt){var nt=rhumbBearing__default.default(et,rt),it=nt+$,ot=rhumbDistance__default.default(et,rt),At=invariant$1.getCoords(rhumbDestination__default$1.default(et,ot,it));rt[0]=At[0],rt[1]=At[1]})),j}js$5.exports=transformRotate$1;js$5.exports.default=transformRotate$1;var jsExports$1=js$5.exports;Object.defineProperty(rotateMode,"__esModule",{value:!0});rotateMode.RotateMode=void 0;var _bbox=_interopRequireDefault$e(js$t),_centroid$1=_interopRequireDefault$e(js$9),_bearing$6=_interopRequireDefault$e(js$g),_bboxPolygon$3=_interopRequireDefault$e(js$r),_distance$8=_interopRequireDefault$e(js$n),_meta=js$u,_invariant=js$s,_helpers$7=js$v,_transformRotate=_interopRequireDefault$e(jsExports$1),_polygonToLine$1=_interopRequireDefault$e(js$8),_utils$a=utils$2,_geojsonEditMode$g=geojsonEditMode,_immutableFeatureCollection$3=immutableFeatureCollection;function _interopRequireDefault$e(j){return j&&j.__esModule?j:{default:j}}function _typeof$q(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$q=function(_e){return typeof _e}:_typeof$q=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$q(j)}function _classCallCheck$q(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$p(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$p(j,$,_e){return $&&_defineProperties$p(j.prototype,$),_e&&_defineProperties$p(j,_e),j}function _createSuper$q(j){return function(){var $=_getPrototypeOf$q(j),_e;if(_isNativeReflectConstruct$q()){var et=_getPrototypeOf$q(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$q(this,_e)}}function _possibleConstructorReturn$q(j,$){return $&&(_typeof$q($)==="object"||typeof $=="function")?$:_assertThisInitialized$q(j)}function _assertThisInitialized$q(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$q(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$q(j){return _getPrototypeOf$q=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$q(j)}function _inherits$q(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$q(j,$)}function _setPrototypeOf$q(j,$){return _setPrototypeOf$q=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$q(j,$)}function _defineProperty$8(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var RotateMode=function(j){_inherits$q(_e,j);var $=_createSuper$q(_e);function _e(){var et;_classCallCheck$q(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;ntot[1])&&(ot=Bt);var St=(0,_distance$8.default)(Et,it);At=Math.max(At,St)}it=Et});var ut=ot&&[ot[0],ot[1]+At/1e3],ft=(0,_helpers$7.lineString)([ot,ut]),dt=(0,_helpers$7.point)(ut,{guideType:"editHandle",editHandleType:"rotate"});return(0,_helpers$7.featureCollection)([(0,_polygonToLine$1.default)(nt),dt,ft])}},{key:"handleDragging",value:function(tt,rt){if(this._isRotating){var nt=this.getRotateAction(tt.pointerDownMapCoords,tt.mapCoords,"rotating",rt);nt&&rt.onEdit(nt),tt.cancelPan()}}},{key:"handlePointerMove",value:function(tt,rt){if(!this._isRotating){var nt=(0,_utils$a.getPickedEditHandle)(tt.picks);this._selectedEditHandle=nt&&nt.properties.editHandleType==="rotate"?nt:null}this.updateCursor(rt)}},{key:"handleStartDragging",value:function(tt,rt){this._selectedEditHandle&&(this._isRotating=!0,this._geometryBeingRotated=this.getSelectedFeaturesAsFeatureCollection(rt))}},{key:"handleStopDragging",value:function(tt,rt){if(this._isRotating){var nt=this.getRotateAction(tt.pointerDownMapCoords,tt.mapCoords,"rotated",rt);nt&&rt.onEdit(nt),this._geometryBeingRotated=null,this._selectedEditHandle=null,this._isRotating=!1}}},{key:"updateCursor",value:function(tt){this._selectedEditHandle?tt.onUpdateCursor("crosshair"):tt.onUpdateCursor(null)}},{key:"getRotateAction",value:function(tt,rt,nt,it){if(!this._geometryBeingRotated)return null;for(var ot=(0,_centroid$1.default)(this._geometryBeingRotated),At=getRotationAngle(ot,tt,rt),ut=(0,_transformRotate.default)(this._geometryBeingRotated,At,{pivot:ot}),ft=new _immutableFeatureCollection$3.ImmutableFeatureCollection(it.data),dt=it.selectedIndexes,Et=0;Et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$p(j){return _getPrototypeOf$p=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$p(j)}function _inherits$p(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$p(j,$)}function _setPrototypeOf$p(j,$){return _setPrototypeOf$p=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$p(j,$)}var DuplicateMode=function(j){_inherits$p(_e,j);var $=_createSuper$p(_e);function _e(){return _classCallCheck$p(this,_e),$.apply(this,arguments)}return _createClass$o(_e,[{key:"handleStartDragging",value:function(tt,rt){_get$8(_getPrototypeOf$p(_e.prototype),"handleStartDragging",this).call(this,tt,rt),this._geometryBeforeTranslate&&rt.onEdit(this.getAddManyFeaturesAction(this._geometryBeforeTranslate,rt.data))}},{key:"updateCursor",value:function(tt){this._isTranslatable?tt.onUpdateCursor("copy"):tt.onUpdateCursor(null)}}]),_e}(_translateMode$1.TranslateMode);duplicateMode.DuplicateMode=DuplicateMode;var extendLineStringMode={};Object.defineProperty(extendLineStringMode,"__esModule",{value:!0});extendLineStringMode.ExtendLineStringMode=void 0;var _geojsonEditMode$f=geojsonEditMode,_immutableFeatureCollection$2=immutableFeatureCollection;function _typeof$o(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$o=function(_e){return typeof _e}:_typeof$o=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$o(j)}function _classCallCheck$o(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$n(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$n(j,$,_e){return $&&_defineProperties$n(j.prototype,$),_e&&_defineProperties$n(j,_e),j}function _createSuper$o(j){return function(){var $=_getPrototypeOf$o(j),_e;if(_isNativeReflectConstruct$o()){var et=_getPrototypeOf$o(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$o(this,_e)}}function _possibleConstructorReturn$o(j,$){return $&&(_typeof$o($)==="object"||typeof $=="function")?$:_assertThisInitialized$o(j)}function _assertThisInitialized$o(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$o(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$o(j){return _getPrototypeOf$o=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$o(j)}function _inherits$o(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$o(j,$)}function _setPrototypeOf$o(j,$){return _setPrototypeOf$o=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$o(j,$)}var ExtendLineStringMode=function(j){_inherits$o(_e,j);var $=_createSuper$o(_e);function _e(){return _classCallCheck$o(this,_e),$.apply(this,arguments)}return _createClass$n(_e,[{key:"getSingleSelectedLineString",value:function(tt){var rt=this.getSelectedGeometry(tt);return rt&&rt.type==="LineString"?rt:null}},{key:"handleClick",value:function(tt,rt){var nt=rt.selectedIndexes,it=this.getSingleSelectedLineString(rt);if(!it){console.warn("ExtendLineStringMode only supported for single LineString selection");return}var ot=[it.coordinates.length],At=rt.modeConfig;At&&At.drawAtFront&&(ot=[0]);var ut=nt[0],ft=new _immutableFeatureCollection$2.ImmutableFeatureCollection(rt.data).addPosition(ut,ot,tt.mapCoords).getObject();rt.onEdit({updatedData:ft,editType:"addPosition",editContext:{featureIndexes:[ut],positionIndexes:ot,position:tt.mapCoords}})}},{key:"getGuides",value:function(tt){var rt={type:"FeatureCollection",features:[]},nt=this.getSingleSelectedLineString(tt);if(!nt)return rt;var it=tt.lastPointerMoveEvent&&tt.lastPointerMoveEvent.mapCoords,ot=null,At=tt.modeConfig;return At&&At.drawAtFront?ot=nt.coordinates[0]:ot=nt.coordinates[nt.coordinates.length-1],rt.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[ot,it]}}),rt}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell")}}]),_e}(_geojsonEditMode$f.GeoJsonEditMode);extendLineStringMode.ExtendLineStringMode=ExtendLineStringMode;var splitPolygonMode={},js$4={};Object.defineProperty(js$4,"__esModule",{value:!0});var invariant_1$2=require$$1$1;function booleanPointInPolygon(j,$,_e){if(_e===void 0&&(_e={}),!j)throw new Error("point is required");if(!$)throw new Error("polygon is required");var et=invariant_1$2.getCoord(j),tt=invariant_1$2.getGeom($),rt=tt.type,nt=$.bbox,it=tt.coordinates;if(nt&&inBBox(et,nt)===!1)return!1;rt==="Polygon"&&(it=[it]);for(var ot=!1,At=0;Atj[1]!=At>j[1]&&j[0]<(ot-nt)*(j[1]-it)/(At-it)+nt;ft&&(et=!et)}return et}function inBBox(j,$){return $[0]<=j[0]&&$[1]<=j[1]&&$[2]>=j[0]&&$[3]>=j[1]}var js$3={};const require$$2$3=getAugmentedNamespace(es$4);var __importDefault$1=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$3,"__esModule",{value:!0});var helpers_1$1=require$$0$5,invariant_1$1=require$$1$1,line_segment_1=__importDefault$1(require$$2$3),meta_1$1=require$$3$2,geojson_rbush_1=__importDefault$1(geojsonRbushExports);function lineIntersect(j,$){var _e={},et=[];if(j.type==="LineString"&&(j=helpers_1$1.feature(j)),$.type==="LineString"&&($=helpers_1$1.feature($)),j.type==="Feature"&&$.type==="Feature"&&j.geometry!==null&&$.geometry!==null&&j.geometry.type==="LineString"&&$.geometry.type==="LineString"&&j.geometry.coordinates.length===2&&$.geometry.coordinates.length===2){var tt=intersects(j,$);return tt&&et.push(tt),helpers_1$1.featureCollection(et)}var rt=geojson_rbush_1.default();return rt.load(line_segment_1.default($)),meta_1$1.featureEach(line_segment_1.default(j),function(nt){meta_1$1.featureEach(rt.search(nt),function(it){var ot=intersects(nt,it);if(ot){var At=invariant_1$1.getCoords(ot).join(",");_e[At]||(_e[At]=!0,et.push(ot))}})}),helpers_1$1.featureCollection(et)}function intersects(j,$){var _e=invariant_1$1.getCoords(j),et=invariant_1$1.getCoords($);if(_e.length!==2)throw new Error(" line1 must only contain 2 coordinates");if(et.length!==2)throw new Error(" line2 must only contain 2 coordinates");var tt=_e[0][0],rt=_e[0][1],nt=_e[1][0],it=_e[1][1],ot=et[0][0],At=et[0][1],ut=et[1][0],ft=et[1][1],dt=(ft-At)*(nt-tt)-(ut-ot)*(it-rt),Et=(ut-ot)*(rt-At)-(ft-At)*(tt-ot),Bt=(nt-tt)*(rt-At)-(it-rt)*(tt-ot);if(dt===0)return null;var St=Et/dt,Dt=Bt/dt;if(St>=0&&St<=1&&Dt>=0&&Dt<=1){var $t=tt+St*(nt-tt),Rt=rt+St*(it-rt);return helpers_1$1.point([$t,Rt])}return null}js$3.default=lineIntersect;Object.defineProperty(splitPolygonMode,"__esModule",{value:!0});splitPolygonMode.SplitPolygonMode=void 0;var _booleanPointInPolygon=_interopRequireDefault$d(js$4),_difference=_interopRequireDefault$d(jsExports$5),_buffer=_interopRequireDefault$d(jsExports$6),_lineIntersect$1=_interopRequireDefault$d(js$3),_helpers$6=js$v,_bearing$5=_interopRequireDefault$d(js$g),_distance$7=_interopRequireDefault$d(js$n),_destination$2=_interopRequireDefault$d(js$h),_polygonToLine=_interopRequireDefault$d(js$8),_nearestPointOnLine=_interopRequireDefault$d(js$d),_utils$9=utils$2,_geojsonEditMode$e=geojsonEditMode,_immutableFeatureCollection$1=immutableFeatureCollection;function _interopRequireDefault$d(j){return j&&j.__esModule?j:{default:j}}function _typeof$n(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$n=function(_e){return typeof _e}:_typeof$n=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$n(j)}function _toConsumableArray$b(j){return _arrayWithoutHoles$b(j)||_iterableToArray$b(j)||_unsupportedIterableToArray$c(j)||_nonIterableSpread$b()}function _nonIterableSpread$b(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArray$b(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$b(j){if(Array.isArray(j))return _arrayLikeToArray$c(j)}function _slicedToArray$4(j,$){return _arrayWithHoles$4(j)||_iterableToArrayLimit$4(j,$)||_unsupportedIterableToArray$c(j,$)||_nonIterableRest$4()}function _nonIterableRest$4(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$c(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$c(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$c(j,$)}}function _arrayLikeToArray$c(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _iterableToArrayLimit$4(j,$){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var _e=[],et=!0,tt=!1,rt=void 0;try{for(var nt=j[Symbol.iterator](),it;!(et=(it=nt.next()).done)&&(_e.push(it.value),!($&&_e.length===$));et=!0);}catch(ot){tt=!0,rt=ot}finally{try{!et&&nt.return!=null&&nt.return()}finally{if(tt)throw rt}}return _e}}function _arrayWithHoles$4(j){if(Array.isArray(j))return j}function _classCallCheck$n(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$m(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$m(j,$,_e){return $&&_defineProperties$m(j.prototype,$),_e&&_defineProperties$m(j,_e),j}function _createSuper$n(j){return function(){var $=_getPrototypeOf$n(j),_e;if(_isNativeReflectConstruct$n()){var et=_getPrototypeOf$n(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$n(this,_e)}}function _possibleConstructorReturn$n(j,$){return $&&(_typeof$n($)==="object"||typeof $=="function")?$:_assertThisInitialized$n(j)}function _assertThisInitialized$n(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$n(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$n(j){return _getPrototypeOf$n=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$n(j)}function _inherits$n(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$n(j,$)}function _setPrototypeOf$n(j,$){return _setPrototypeOf$n=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$n(j,$)}var SplitPolygonMode=function(j){_inherits$n(_e,j);var $=_createSuper$n(_e);function _e(){return _classCallCheck$n(this,_e),$.apply(this,arguments)}return _createClass$m(_e,[{key:"calculateMapCoords",value:function(tt,rt,nt){var it=nt.modeConfig;if(!it||!it.lock90Degree||!tt.length)return rt;if(tt.length===1){var ot=tt[0],At=this.getSelectedGeometry(nt),ut=(0,_polygonToLine.default)(At),ft=ut.type==="FeatureCollection"?ut.features:[ut],dt=Number.MAX_SAFE_INTEGER,Et=null;if(ft.forEach(function(Nt){var Ot=(0,_nearestPointOnLine.default)(Nt,ot),kt=(0,_distance$7.default)(Ot,ot);dt>kt&&(dt=kt,Et=Ot)}),Et){var Bt=(0,_bearing$5.default)(ot,Et),St=(0,_distance$7.default)(ot,rt,{units:"meters"});return(0,_destination$2.default)(ot,St,Bt,{units:"meters"}).geometry.coordinates}return rt}var Dt=tt[tt.length-1],$t=(0,_utils$9.generatePointsParallelToLinePoints)(tt[tt.length-2],Dt,rt),Rt=_slicedToArray$4($t,1),wt=Rt[0],xt=(0,_nearestPointOnLine.default)((0,_helpers$6.lineString)([Dt,wt]),rt).geometry.coordinates;return xt}},{key:"getGuides",value:function(tt){var rt=this.getClickSequence(),nt={type:"FeatureCollection",features:[]};if(rt.length===0||!tt.lastPointerMoveEvent)return nt;var it=tt.lastPointerMoveEvent.mapCoords;return nt.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(_toConsumableArray$b(rt),[this.calculateMapCoords(rt,it,tt)])}}),nt}},{key:"handleClick",value:function(tt,rt){var nt=this.getTentativeGuide(rt),it=this.getSelectedGeometry(rt);if(!it){console.warn("A polygon must be selected for splitting");return}var ot=this.getClickSequence();nt&&nt.geometry.type==="LineString"?ot.push(nt.geometry.coordinates[nt.geometry.coordinates.length-1]):this.addClickSequence(tt);var At={type:"Point",coordinates:ot[ot.length-1]},ut=(0,_booleanPointInPolygon.default)(At,it);if(ot.length>1&&nt&&!ut){this.resetClickSequence();var ft=(0,_lineIntersect$1.default)(nt,it);if(ft.features.length===0)return;var dt=this.splitPolygon(nt,rt);dt&&rt.onEdit(dt)}}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell")}},{key:"splitPolygon",value:function(tt,rt){var nt=this.getSelectedGeometry(rt),it=rt.selectedIndexes[0],ot=rt.modeConfig||{},At=ot.gap,ut=At===void 0?.1:At,ft=ot.units,dt=ft===void 0?"centimeters":ft;ut===0&&(ut=.1,dt="centimeters");var Et=(0,_buffer.default)(tt,ut,{units:dt}),Bt=(0,_difference.default)(nt,Et);if(!Bt)return console.warn("Canceling edit. Split Polygon erased"),null;var St=Bt.geometry,Dt=St.type,$t=St.coordinates,Rt=[];Dt==="Polygon"?Rt=$t.map(function(Nt){return[Nt]}):Rt=$t.reduce(function(Nt,Ot){return Ot.forEach(function(kt){Nt.push([kt])}),Nt},[]);var wt=new _immutableFeatureCollection$1.ImmutableFeatureCollection(rt.data).replaceGeometry(it,{type:"MultiPolygon",coordinates:Rt}),xt={updatedData:wt.getObject(),editType:"split",editContext:{featureIndexes:[it]}};return xt}}]),_e}(_geojsonEditMode$e.GeoJsonEditMode);splitPolygonMode.SplitPolygonMode=SplitPolygonMode;var extrudeMode={};Object.defineProperty(extrudeMode,"__esModule",{value:!0});extrudeMode.ExtrudeMode=void 0;var _bearing$4=_interopRequireDefault$c(js$g),_utils$8=utils$2,_modifyMode$1=modifyMode,_immutableFeatureCollection=immutableFeatureCollection;function _interopRequireDefault$c(j){return j&&j.__esModule?j:{default:j}}function _typeof$m(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$m=function(_e){return typeof _e}:_typeof$m=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$m(j)}function _toConsumableArray$a(j){return _arrayWithoutHoles$a(j)||_iterableToArray$a(j)||_unsupportedIterableToArray$b(j)||_nonIterableSpread$a()}function _nonIterableSpread$a(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArray$a(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$a(j){if(Array.isArray(j))return _arrayLikeToArray$b(j)}function _slicedToArray$3(j,$){return _arrayWithHoles$3(j)||_iterableToArrayLimit$3(j,$)||_unsupportedIterableToArray$b(j,$)||_nonIterableRest$3()}function _nonIterableRest$3(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$b(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$b(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$b(j,$)}}function _arrayLikeToArray$b(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _iterableToArrayLimit$3(j,$){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var _e=[],et=!0,tt=!1,rt=void 0;try{for(var nt=j[Symbol.iterator](),it;!(et=(it=nt.next()).done)&&(_e.push(it.value),!($&&_e.length===$));et=!0);}catch(ot){tt=!0,rt=ot}finally{try{!et&&nt.return!=null&&nt.return()}finally{if(tt)throw rt}}return _e}}function _arrayWithHoles$3(j){if(Array.isArray(j))return j}function _classCallCheck$m(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$l(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$l(j,$,_e){return $&&_defineProperties$l(j.prototype,$),_e&&_defineProperties$l(j,_e),j}function _createSuper$m(j){return function(){var $=_getPrototypeOf$m(j),_e;if(_isNativeReflectConstruct$m()){var et=_getPrototypeOf$m(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$m(this,_e)}}function _possibleConstructorReturn$m(j,$){return $&&(_typeof$m($)==="object"||typeof $=="function")?$:_assertThisInitialized$m(j)}function _assertThisInitialized$m(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$m(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$m(j){return _getPrototypeOf$m=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$m(j)}function _inherits$m(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$m(j,$)}function _setPrototypeOf$m(j,$){return _setPrototypeOf$m=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$m(j,$)}function _defineProperty$7(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var ExtrudeMode=function(j){_inherits$m(_e,j);var $=_createSuper$m(_e);function _e(){var et;_classCallCheck$m(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$l(j){return _getPrototypeOf$l=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$l(j)}function _inherits$l(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$l(j,$)}function _setPrototypeOf$l(j,$){return _setPrototypeOf$l=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$l(j,$)}function defaultCalculateElevationChange(j){var $=j.pointerDownScreenCoords,_e=j.screenCoords;return 10*($[1]-_e[1])}var ElevationMode=function(j){_inherits$l(_e,j);var $=_createSuper$l(_e);function _e(){return _classCallCheck$l(this,_e),$.apply(this,arguments)}return _createClass$k(_e,[{key:"makeElevatedEvent",value:function(tt,rt,nt){var it=nt.modeConfig||{},ot=it.minElevation,At=ot===void 0?0:ot,ut=it.maxElevation,ft=ut===void 0?2e4:ut,dt=it.calculateElevationChange,Et=dt===void 0?defaultCalculateElevationChange:dt;if(!tt.pointerDownScreenCoords)return tt;var Bt=rt.length===3?rt[2]:0;return Bt+=Et({pointerDownScreenCoords:tt.pointerDownScreenCoords,screenCoords:tt.screenCoords}),Bt=Math.min(Bt,ft),Bt=Math.max(Bt,At),Object.assign({},tt,{mapCoords:[rt[0],rt[1],Bt]})}},{key:"handlePointerMove",value:function(tt,rt){var nt=(0,_utils$7.getPickedEditHandle)(tt.pointerDownPicks),it=nt?nt.geometry.coordinates:tt.mapCoords;_get$7(_getPrototypeOf$l(_e.prototype),"handlePointerMove",this).call(this,this.makeElevatedEvent(tt,it,rt),rt)}},{key:"handleStopDragging",value:function(tt,rt){var nt=(0,_utils$7.getPickedEditHandle)(tt.picks),it=nt?nt.geometry.coordinates:tt.mapCoords;_get$7(_getPrototypeOf$l(_e.prototype),"handleStopDragging",this).call(this,this.makeElevatedEvent(tt,it,rt),rt)}},{key:"getCursor",value:function(tt){var rt=_get$7(_getPrototypeOf$l(_e.prototype),"getCursor",this).call(this,tt);return rt==="cell"&&(rt="ns-resize"),rt}}],[{key:"calculateElevationChangeWithViewport",value:function(tt,rt){var nt=rt.pointerDownScreenCoords,it=rt.screenCoords,ot=156543.03392*Math.cos(tt.latitude*Math.PI/180)/Math.pow(2,tt.zoom);return ot*(nt[1]-it[1])/2}}]),_e}(_modifyMode.ModifyMode);elevationMode.ElevationMode=ElevationMode;var transformMode={},compositeMode={};Object.defineProperty(compositeMode,"__esModule",{value:!0});compositeMode.CompositeMode=void 0;var _geojsonEditMode$d=geojsonEditMode;function _typeof$k(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$k=function(_e){return typeof _e}:_typeof$k=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$k(j)}function _toConsumableArray$9(j){return _arrayWithoutHoles$9(j)||_iterableToArray$9(j)||_unsupportedIterableToArray$a(j)||_nonIterableSpread$9()}function _nonIterableSpread$9(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArray$9(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$9(j){if(Array.isArray(j))return _arrayLikeToArray$a(j)}function _createForOfIteratorHelper$1(j){if(typeof Symbol>"u"||j[Symbol.iterator]==null){if(Array.isArray(j)||(j=_unsupportedIterableToArray$a(j))){var $=0,_e=function(){};return{s:_e,n:function(){return $>=j.length?{done:!0}:{done:!1,value:j[$++]}},e:function(ot){throw ot},f:_e}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var et,tt=!0,rt=!1,nt;return{s:function(){et=j[Symbol.iterator]()},n:function(){var ot=et.next();return tt=ot.done,ot},e:function(ot){rt=!0,nt=ot},f:function(){try{!tt&&et.return!=null&&et.return()}finally{if(rt)throw nt}}}}function _unsupportedIterableToArray$a(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$a(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$a(j,$)}}function _arrayLikeToArray$a(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$k(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$j(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$j(j,$,_e){return $&&_defineProperties$j(j.prototype,$),_e&&_defineProperties$j(j,_e),j}function _createSuper$k(j){return function(){var $=_getPrototypeOf$k(j),_e;if(_isNativeReflectConstruct$k()){var et=_getPrototypeOf$k(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$k(this,_e)}}function _possibleConstructorReturn$k(j,$){return $&&(_typeof$k($)==="object"||typeof $=="function")?$:_assertThisInitialized$k(j)}function _assertThisInitialized$k(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$k(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$k(j){return _getPrototypeOf$k=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$k(j)}function _inherits$k(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$k(j,$)}function _setPrototypeOf$k(j,$){return _setPrototypeOf$k=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$k(j,$)}function _defineProperty$6(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var CompositeMode=function(j){_inherits$k(_e,j);var $=_createSuper$k(_e);function _e(et){var tt;return _classCallCheck$k(this,_e),tt=$.call(this),_defineProperty$6(_assertThisInitialized$k(tt),"_modes",void 0),tt._modes=et,tt}return _createClass$j(_e,[{key:"_coalesce",value:function(tt){for(var rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,nt,it=0;it"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$j(j){return _getPrototypeOf$j=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$j(j)}function _inherits$j(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$j(j,$)}function _setPrototypeOf$j(j,$){return _setPrototypeOf$j=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$j(j,$)}var TransformMode=function(j){_inherits$j(_e,j);var $=_createSuper$j(_e);function _e(){return _classCallCheck$j(this,_e),$.call(this,[new _translateMode.TranslateMode,new _scaleMode.ScaleMode,new _rotateMode.RotateMode])}return _createClass$i(_e,[{key:"handlePointerMove",value:function(tt,rt){var nt=null;_get$6(_getPrototypeOf$j(_e.prototype),"handlePointerMove",this).call(this,tt,_objectSpread$2({},rt,{onUpdateCursor:function(ot){nt=ot||nt}})),rt.onUpdateCursor(nt)}},{key:"handleStartDragging",value:function(tt,rt){var nt=null,it=null,ot=[];this._modes.forEach(function(At){At instanceof _translateMode.TranslateMode?it=At:(At instanceof _scaleMode.ScaleMode&&(nt=At),ot.push(At))}),nt instanceof _scaleMode.ScaleMode&&!nt.isEditHandleSelected()&&ot.push(it),ot.filter(Boolean).forEach(function(At){return At.handleStartDragging(tt,rt)})}},{key:"getGuides",value:function(tt){var rt=_get$6(_getPrototypeOf$j(_e.prototype),"getGuides",this).call(this,tt),nt=(this._modes||[]).find(function(ot){return ot instanceof _rotateMode.RotateMode});if(nt instanceof _rotateMode.RotateMode){var it=rt.features.filter(function(ot){var At=ot.properties||{},ut=At.editHandleType,ft=At.mode,dt=[ft];return nt.getIsRotating()&&dt.push(ut),!dt.includes("scale")});rt=(0,_helpers$5.featureCollection)(it)}return rt}}]),_e}(_compositeMode.CompositeMode);transformMode.TransformMode=TransformMode;var drawPointMode={};Object.defineProperty(drawPointMode,"__esModule",{value:!0});drawPointMode.DrawPointMode=void 0;var _geojsonEditMode$c=geojsonEditMode;function _typeof$i(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$i=function(_e){return typeof _e}:_typeof$i=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$i(j)}function _classCallCheck$i(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$h(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$h(j,$,_e){return $&&_defineProperties$h(j.prototype,$),_e&&_defineProperties$h(j,_e),j}function _get$5(j,$,_e){return typeof Reflect<"u"&&Reflect.get?_get$5=Reflect.get:_get$5=function(tt,rt,nt){var it=_superPropBase$5(tt,rt);if(it){var ot=Object.getOwnPropertyDescriptor(it,rt);return ot.get?ot.get.call(nt):ot.value}},_get$5(j,$,_e||j)}function _superPropBase$5(j,$){for(;!Object.prototype.hasOwnProperty.call(j,$)&&(j=_getPrototypeOf$i(j),j!==null););return j}function _createSuper$i(j){return function(){var $=_getPrototypeOf$i(j),_e;if(_isNativeReflectConstruct$i()){var et=_getPrototypeOf$i(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$i(this,_e)}}function _possibleConstructorReturn$i(j,$){return $&&(_typeof$i($)==="object"||typeof $=="function")?$:_assertThisInitialized$i(j)}function _assertThisInitialized$i(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$i(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$i(j){return _getPrototypeOf$i=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$i(j)}function _inherits$i(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$i(j,$)}function _setPrototypeOf$i(j,$){return _setPrototypeOf$i=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$i(j,$)}var DrawPointMode=function(j){_inherits$i(_e,j);var $=_createSuper$i(_e);function _e(){return _classCallCheck$i(this,_e),$.apply(this,arguments)}return _createClass$h(_e,[{key:"createTentativeFeature",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=rt?[rt.mapCoords]:[];return{type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Point",coordinates:nt[0]}}}},{key:"handleClick",value:function(tt,rt){var nt=tt.mapCoords,it={type:"Point",coordinates:nt};rt.onEdit(this.getAddFeatureAction(it,rt.data))}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell"),_get$5(_getPrototypeOf$i(_e.prototype),"handlePointerMove",this).call(this,tt,rt)}}]),_e}(_geojsonEditMode$c.GeoJsonEditMode);drawPointMode.DrawPointMode=DrawPointMode;var drawLineStringMode={};Object.defineProperty(drawLineStringMode,"__esModule",{value:!0});drawLineStringMode.DrawLineStringMode=void 0;var _utils$6=utils$2,_geojsonEditMode$b=geojsonEditMode;function _typeof$h(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$h=function(_e){return typeof _e}:_typeof$h=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$h(j)}function _toConsumableArray$8(j){return _arrayWithoutHoles$8(j)||_iterableToArray$8(j)||_unsupportedIterableToArray$9(j)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$9(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$9(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$9(j,$)}}function _iterableToArray$8(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$8(j){if(Array.isArray(j))return _arrayLikeToArray$9(j)}function _arrayLikeToArray$9(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$h(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$g(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$g(j,$,_e){return $&&_defineProperties$g(j.prototype,$),_e&&_defineProperties$g(j,_e),j}function _createSuper$h(j){return function(){var $=_getPrototypeOf$h(j),_e;if(_isNativeReflectConstruct$h()){var et=_getPrototypeOf$h(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$h(this,_e)}}function _possibleConstructorReturn$h(j,$){return $&&(_typeof$h($)==="object"||typeof $=="function")?$:_assertThisInitialized$h(j)}function _assertThisInitialized$h(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$h(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$h(j){return _getPrototypeOf$h=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$h(j)}function _inherits$h(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$h(j,$)}function _setPrototypeOf$h(j,$){return _setPrototypeOf$h=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$h(j,$)}var DrawLineStringMode=function(j){_inherits$h(_e,j);var $=_createSuper$h(_e);function _e(){return _classCallCheck$h(this,_e),$.apply(this,arguments)}return _createClass$g(_e,[{key:"handleClick",value:function(tt,rt){var nt=tt.picks,it=(0,_utils$6.getPickedEditHandle)(nt),ot=!1;it||(this.addClickSequence(tt),ot=!0);var At=this.getClickSequence();if(At.length>1&&it&&Array.isArray(it.properties.positionIndexes)&&it.properties.positionIndexes[0]===At.length-1){var ut={type:"LineString",coordinates:_toConsumableArray$8(At)};this.resetClickSequence();var ft=this.getAddFeatureAction(ut,rt.data);ft&&rt.onEdit(ft)}else ot&&rt.onEdit({updatedData:rt.data,editType:"addTentativePosition",editContext:{position:tt.mapCoords}})}},{key:"handleKeyUp",value:function(tt,rt){var nt=tt.key;if(nt==="Enter"){var it=this.getClickSequence();if(it.length>1){var ot={type:"LineString",coordinates:_toConsumableArray$8(it)};this.resetClickSequence();var At=this.getAddFeatureAction(ot,rt.data);At&&rt.onEdit(At)}}}},{key:"getGuides",value:function(tt){var rt,nt=tt.lastPointerMoveEvent,it=this.getClickSequence(),ot=nt?[nt.mapCoords]:[],At={type:"FeatureCollection",features:[]},ut;it.length>0&&(ut={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(_toConsumableArray$8(it),ot)}}),ut&&At.features.push(ut);var ft=it.map(function(dt,Et){return{type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[Et]},geometry:{type:"Point",coordinates:dt}}});return(rt=At.features).push.apply(rt,_toConsumableArray$8(ft)),At}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell")}}]),_e}(_geojsonEditMode$b.GeoJsonEditMode);drawLineStringMode.DrawLineStringMode=DrawLineStringMode;var drawPolygonMode={};Object.defineProperty(drawPolygonMode,"__esModule",{value:!0});drawPolygonMode.DrawPolygonMode=void 0;var _utils$5=utils$2,_geojsonEditMode$a=geojsonEditMode;function _typeof$g(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$g=function(_e){return typeof _e}:_typeof$g=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$g(j)}function _toConsumableArray$7(j){return _arrayWithoutHoles$7(j)||_iterableToArray$7(j)||_unsupportedIterableToArray$8(j)||_nonIterableSpread$7()}function _nonIterableSpread$7(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$8(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$8(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$8(j,$)}}function _iterableToArray$7(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$7(j){if(Array.isArray(j))return _arrayLikeToArray$8(j)}function _arrayLikeToArray$8(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$g(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$f(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$f(j,$,_e){return $&&_defineProperties$f(j.prototype,$),_e&&_defineProperties$f(j,_e),j}function _get$4(j,$,_e){return typeof Reflect<"u"&&Reflect.get?_get$4=Reflect.get:_get$4=function(tt,rt,nt){var it=_superPropBase$4(tt,rt);if(it){var ot=Object.getOwnPropertyDescriptor(it,rt);return ot.get?ot.get.call(nt):ot.value}},_get$4(j,$,_e||j)}function _superPropBase$4(j,$){for(;!Object.prototype.hasOwnProperty.call(j,$)&&(j=_getPrototypeOf$g(j),j!==null););return j}function _createSuper$g(j){return function(){var $=_getPrototypeOf$g(j),_e;if(_isNativeReflectConstruct$g()){var et=_getPrototypeOf$g(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$g(this,_e)}}function _possibleConstructorReturn$g(j,$){return $&&(_typeof$g($)==="object"||typeof $=="function")?$:_assertThisInitialized$g(j)}function _assertThisInitialized$g(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$g(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$g(j){return _getPrototypeOf$g=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$g(j)}function _inherits$g(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$g(j,$)}function _setPrototypeOf$g(j,$){return _setPrototypeOf$g=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$g(j,$)}var DrawPolygonMode=function(j){_inherits$g(_e,j);var $=_createSuper$g(_e);function _e(){return _classCallCheck$g(this,_e),$.apply(this,arguments)}return _createClass$f(_e,[{key:"createTentativeFeature",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=this.getClickSequence(),it=rt?[rt.mapCoords]:[],ot;return nt.length===1||nt.length===2?ot={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(_toConsumableArray$7(nt),it)}}:nt.length>2&&(ot={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[].concat(_toConsumableArray$7(nt),it,[nt[0]])]}}),ot}},{key:"getGuides",value:function(tt){var rt,nt=this.getClickSequence(),it={type:"FeatureCollection",features:[]},ot=this.createTentativeFeature(tt);ot&&it.features.push(ot);var At=nt.map(function(ut,ft){return{type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[ft]},geometry:{type:"Point",coordinates:ut}}});return(rt=it.features).push.apply(rt,_toConsumableArray$7(At)),it}},{key:"handleClick",value:function(tt,rt){var nt=tt.picks,it=(0,_utils$5.getPickedEditHandle)(nt),ot=!1;it||(this.addClickSequence(tt),ot=!0);var At=this.getClickSequence();if(At.length>2&&it&&Array.isArray(it.properties.positionIndexes)&&(it.properties.positionIndexes[0]===0||it.properties.positionIndexes[0]===At.length-1)){var ut={type:"Polygon",coordinates:[[].concat(_toConsumableArray$7(At),[At[0]])]};this.resetClickSequence();var ft=this.getAddFeatureOrBooleanPolygonAction(ut,rt);ft&&rt.onEdit(ft)}else ot&&rt.onEdit({updatedData:rt.data,editType:"addTentativePosition",editContext:{position:tt.mapCoords}})}},{key:"handleKeyUp",value:function(tt,rt){if(tt.key==="Enter"){var nt=this.getClickSequence();if(nt.length>2){var it={type:"Polygon",coordinates:[[].concat(_toConsumableArray$7(nt),[nt[0]])]};this.resetClickSequence();var ot=this.getAddFeatureOrBooleanPolygonAction(it,rt);ot&&rt.onEdit(ot)}}}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell"),_get$4(_getPrototypeOf$g(_e.prototype),"handlePointerMove",this).call(this,tt,rt)}}]),_e}(_geojsonEditMode$a.GeoJsonEditMode);drawPolygonMode.DrawPolygonMode=DrawPolygonMode;var drawRectangleMode={},twoClickPolygonMode={};Object.defineProperty(twoClickPolygonMode,"__esModule",{value:!0});twoClickPolygonMode.TwoClickPolygonMode=void 0;var _geojsonEditMode$9=geojsonEditMode;function _typeof$f(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$f=function(_e){return typeof _e}:_typeof$f=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$f(j)}function _classCallCheck$f(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$e(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$e(j,$,_e){return $&&_defineProperties$e(j.prototype,$),_e&&_defineProperties$e(j,_e),j}function _get$3(j,$,_e){return typeof Reflect<"u"&&Reflect.get?_get$3=Reflect.get:_get$3=function(tt,rt,nt){var it=_superPropBase$3(tt,rt);if(it){var ot=Object.getOwnPropertyDescriptor(it,rt);return ot.get?ot.get.call(nt):ot.value}},_get$3(j,$,_e||j)}function _superPropBase$3(j,$){for(;!Object.prototype.hasOwnProperty.call(j,$)&&(j=_getPrototypeOf$f(j),j!==null););return j}function _createSuper$f(j){return function(){var $=_getPrototypeOf$f(j),_e;if(_isNativeReflectConstruct$f()){var et=_getPrototypeOf$f(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$f(this,_e)}}function _possibleConstructorReturn$f(j,$){return $&&(_typeof$f($)==="object"||typeof $=="function")?$:_assertThisInitialized$f(j)}function _assertThisInitialized$f(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$f(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$f(j){return _getPrototypeOf$f=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$f(j)}function _inherits$f(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$f(j,$)}function _setPrototypeOf$f(j,$){return _setPrototypeOf$f=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$f(j,$)}var TwoClickPolygonMode=function(j){_inherits$f(_e,j);var $=_createSuper$f(_e);function _e(){return _classCallCheck$f(this,_e),$.apply(this,arguments)}return _createClass$e(_e,[{key:"handleClick",value:function(tt,rt){rt.modeConfig&&rt.modeConfig.dragToDraw||(this.addClickSequence(tt),this.checkAndFinishPolygon(rt))}},{key:"handleStartDragging",value:function(tt,rt){!rt.modeConfig||!rt.modeConfig.dragToDraw||(this.addClickSequence(tt),tt.cancelPan())}},{key:"handleStopDragging",value:function(tt,rt){!rt.modeConfig||!rt.modeConfig.dragToDraw||(this.addClickSequence(tt),this.checkAndFinishPolygon(rt))}},{key:"checkAndFinishPolygon",value:function(tt){var rt=this.getClickSequence(),nt=this.getTentativeGuide(tt);if(rt.length>1&&nt&&nt.geometry.type==="Polygon"){var it={type:"Feature",properties:{shape:nt.properties.shape},geometry:{type:"Polygon",coordinates:nt.geometry.coordinates}},ot=this.getAddFeatureOrBooleanPolygonAction(it,tt);this.resetClickSequence(),ot&&tt.onEdit(ot)}}},{key:"getGuides",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=tt.modeConfig,it=this.getClickSequence(),ot={type:"FeatureCollection",features:[]};if(it.length===0)return ot;var At=it[0],ut=rt.mapCoords,ft=this.getTwoClickPolygon(At,ut,nt);return ft&&ot.features.push({type:"Feature",properties:{shape:ft.properties&&ft.properties.shape,guideType:"tentative"},geometry:ft.geometry}),ot}},{key:"getTwoClickPolygon",value:function(tt,rt,nt){return null}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell"),_get$3(_getPrototypeOf$f(_e.prototype),"handlePointerMove",this).call(this,tt,rt)}},{key:"createTentativeFeature",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=this.getClickSequence(),it=rt?[rt.mapCoords]:[],ot;return nt.length===1&&(ot=this.getTwoClickPolygon(nt[0],it[0],tt.modeConfig)),ot}}]),_e}(_geojsonEditMode$9.GeoJsonEditMode);twoClickPolygonMode.TwoClickPolygonMode=TwoClickPolygonMode;Object.defineProperty(drawRectangleMode,"__esModule",{value:!0});drawRectangleMode.DrawRectangleMode=void 0;var _bboxPolygon$2=_interopRequireDefault$b(js$r),_twoClickPolygonMode$4=twoClickPolygonMode;function _interopRequireDefault$b(j){return j&&j.__esModule?j:{default:j}}function _typeof$e(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$e=function(_e){return typeof _e}:_typeof$e=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$e(j)}function _classCallCheck$e(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$d(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$d(j,$,_e){return $&&_defineProperties$d(j.prototype,$),_e&&_defineProperties$d(j,_e),j}function _createSuper$e(j){return function(){var $=_getPrototypeOf$e(j),_e;if(_isNativeReflectConstruct$e()){var et=_getPrototypeOf$e(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$e(this,_e)}}function _possibleConstructorReturn$e(j,$){return $&&(_typeof$e($)==="object"||typeof $=="function")?$:_assertThisInitialized$e(j)}function _assertThisInitialized$e(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$e(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$e(j){return _getPrototypeOf$e=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$e(j)}function _inherits$e(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$e(j,$)}function _setPrototypeOf$e(j,$){return _setPrototypeOf$e=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$e(j,$)}var DrawRectangleMode=function(j){_inherits$e(_e,j);var $=_createSuper$e(_e);function _e(){return _classCallCheck$e(this,_e),$.apply(this,arguments)}return _createClass$d(_e,[{key:"getTwoClickPolygon",value:function(tt,rt,nt){var it=(0,_bboxPolygon$2.default)([tt[0],tt[1],rt[0],rt[1]]);return it.properties=it.properties||{},it.properties.shape="Rectangle",it}}]),_e}(_twoClickPolygonMode$4.TwoClickPolygonMode);drawRectangleMode.DrawRectangleMode=DrawRectangleMode;var drawSquareFromCenterMode={},js$2={},__importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(j){return j&&j.__esModule?j:{default:j}};Object.defineProperty(js$2,"__esModule",{value:!0});var bearing_1=__importDefault(js$g),destination_1=__importDefault(js$h),distance_1=__importDefault(js$n),helpers_1=js$v,invariant_1=js$s;function along(j,$,_e){_e===void 0&&(_e={});for(var et=invariant_1.getGeom(j),tt=et.coordinates,rt=0,nt=0;nt=rt&&nt===tt.length-1);nt++)if(rt>=$){var it=$-rt;if(it){var ot=bearing_1.default(tt[nt],tt[nt-1])-180,At=destination_1.default(tt[nt],it,ot,_e);return At}else return helpers_1.point(tt[nt])}else rt+=distance_1.default(tt[nt],tt[nt+1],_e);return helpers_1.point(tt[tt.length-1])}js$2.default=along;Object.defineProperty(drawSquareFromCenterMode,"__esModule",{value:!0});drawSquareFromCenterMode.DrawSquareFromCenterMode=void 0;var _bboxPolygon$1=_interopRequireDefault$a(js$r),_distance$6=_interopRequireDefault$a(js$n),_along=_interopRequireDefault$a(js$2),_helpers$4=js$v,_twoClickPolygonMode$3=twoClickPolygonMode;function _interopRequireDefault$a(j){return j&&j.__esModule?j:{default:j}}function _typeof$d(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$d=function(_e){return typeof _e}:_typeof$d=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$d(j)}function _classCallCheck$d(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$c(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$c(j,$,_e){return $&&_defineProperties$c(j.prototype,$),_e&&_defineProperties$c(j,_e),j}function _createSuper$d(j){return function(){var $=_getPrototypeOf$d(j),_e;if(_isNativeReflectConstruct$d()){var et=_getPrototypeOf$d(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$d(this,_e)}}function _possibleConstructorReturn$d(j,$){return $&&(_typeof$d($)==="object"||typeof $=="function")?$:_assertThisInitialized$d(j)}function _assertThisInitialized$d(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$d(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$d(j){return _getPrototypeOf$d=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$d(j)}function _inherits$d(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$d(j,$)}function _setPrototypeOf$d(j,$){return _setPrototypeOf$d=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$d(j,$)}var DrawSquareFromCenterMode=function(j){_inherits$d(_e,j);var $=_createSuper$d(_e);function _e(){return _classCallCheck$d(this,_e),$.apply(this,arguments)}return _createClass$c(_e,[{key:"getTwoClickPolygon",value:function(tt,rt,nt){var it=[rt[0],tt[1]],ot=[tt[0],rt[1]],At=(0,_distance$6.default)((0,_helpers$4.point)(it),(0,_helpers$4.point)(tt)),ut=(0,_distance$6.default)((0,_helpers$4.point)(ot),(0,_helpers$4.point)(tt)),ft=At<=ut?At:ut,dt=At<=ut?it:ot,Et=(0,_helpers$4.lineString)([dt,rt]),Bt=(0,_along.default)(Et,ft),St=Bt.geometry.coordinates,Dt=tt[0]>St[0]?tt[0]+Math.abs(tt[0]-St[0]):tt[0]-Math.abs(tt[0]-St[0]),$t=tt[1]>St[1]?tt[1]+Math.abs(tt[1]-St[1]):tt[1]-Math.abs(tt[1]-St[1]),Rt=(0,_bboxPolygon$1.default)([Dt,$t,St[0],St[1]]);return Rt.properties=Rt.properties||{},Rt.properties.shape="Square",Rt}}]),_e}(_twoClickPolygonMode$3.TwoClickPolygonMode);drawSquareFromCenterMode.DrawSquareFromCenterMode=DrawSquareFromCenterMode;var drawCircleByDiameterMode={};Object.defineProperty(drawCircleByDiameterMode,"__esModule",{value:!0});drawCircleByDiameterMode.DrawCircleByDiameterMode=void 0;var _circle$1=_interopRequireDefault$9(js$c),_distance$5=_interopRequireDefault$9(js$n),_geojsonEditMode$8=geojsonEditMode,_twoClickPolygonMode$2=twoClickPolygonMode;function _interopRequireDefault$9(j){return j&&j.__esModule?j:{default:j}}function _typeof$c(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$c=function(_e){return typeof _e}:_typeof$c=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$c(j)}function _classCallCheck$c(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$b(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$b(j,$,_e){return $&&_defineProperties$b(j.prototype,$),_e&&_defineProperties$b(j,_e),j}function _createSuper$c(j){return function(){var $=_getPrototypeOf$c(j),_e;if(_isNativeReflectConstruct$c()){var et=_getPrototypeOf$c(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$c(this,_e)}}function _possibleConstructorReturn$c(j,$){return $&&(_typeof$c($)==="object"||typeof $=="function")?$:_assertThisInitialized$c(j)}function _assertThisInitialized$c(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$c(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$c(j){return _getPrototypeOf$c=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$c(j)}function _inherits$c(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$c(j,$)}function _setPrototypeOf$c(j,$){return _setPrototypeOf$c=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$c(j,$)}var DrawCircleByDiameterMode=function(j){_inherits$c(_e,j);var $=_createSuper$c(_e);function _e(){return _classCallCheck$c(this,_e),$.apply(this,arguments)}return _createClass$b(_e,[{key:"getTwoClickPolygon",value:function(tt,rt,nt){var it=nt||{},ot=it.steps,At=ot===void 0?64:ot,ut={steps:At};At<4&&(console.warn("Minimum steps to draw a circle is 4 "),ut.steps=4);var ft=(0,_geojsonEditMode$8.getIntermediatePosition)(tt,rt),dt=Math.max((0,_distance$5.default)(tt,ft),.001),Et=(0,_circle$1.default)(ft,dt,ut);return Et.properties=Et.properties||{},Et.properties.shape="Circle",Et}}]),_e}(_twoClickPolygonMode$2.TwoClickPolygonMode);drawCircleByDiameterMode.DrawCircleByDiameterMode=DrawCircleByDiameterMode;var drawCircleFromCenterMode={};Object.defineProperty(drawCircleFromCenterMode,"__esModule",{value:!0});drawCircleFromCenterMode.DrawCircleFromCenterMode=void 0;var _circle=_interopRequireDefault$8(js$c),_distance$4=_interopRequireDefault$8(js$n),_twoClickPolygonMode$1=twoClickPolygonMode;function _interopRequireDefault$8(j){return j&&j.__esModule?j:{default:j}}function _typeof$b(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$b=function(_e){return typeof _e}:_typeof$b=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$b(j)}function _classCallCheck$b(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$a(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$a(j,$,_e){return $&&_defineProperties$a(j.prototype,$),_e&&_defineProperties$a(j,_e),j}function _createSuper$b(j){return function(){var $=_getPrototypeOf$b(j),_e;if(_isNativeReflectConstruct$b()){var et=_getPrototypeOf$b(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$b(this,_e)}}function _possibleConstructorReturn$b(j,$){return $&&(_typeof$b($)==="object"||typeof $=="function")?$:_assertThisInitialized$b(j)}function _assertThisInitialized$b(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$b(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$b(j){return _getPrototypeOf$b=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$b(j)}function _inherits$b(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$b(j,$)}function _setPrototypeOf$b(j,$){return _setPrototypeOf$b=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$b(j,$)}var DrawCircleFromCenterMode=function(j){_inherits$b(_e,j);var $=_createSuper$b(_e);function _e(){return _classCallCheck$b(this,_e),$.apply(this,arguments)}return _createClass$a(_e,[{key:"getTwoClickPolygon",value:function(tt,rt,nt){var it=nt||{},ot=it.steps,At=ot===void 0?64:ot,ut={steps:At};At<4&&(console.warn("Minimum steps to draw a circle is 4 "),ut.steps=4);var ft=Math.max((0,_distance$4.default)(tt,rt),.001),dt=(0,_circle.default)(tt,ft,ut);return dt.properties=dt.properties||{},dt.properties.shape="Circle",dt}}]),_e}(_twoClickPolygonMode$1.TwoClickPolygonMode);drawCircleFromCenterMode.DrawCircleFromCenterMode=DrawCircleFromCenterMode;var drawEllipseByBoundingBoxMode={},js$1={exports:{}},helpers=js$v,rhumbDestination=js$a,transformRotate=jsExports$1,invariant=js$s;function _interopDefaultLegacy(j){return j&&typeof j=="object"&&"default"in j?j:{default:j}}var rhumbDestination__default=_interopDefaultLegacy(rhumbDestination),transformRotate__default=_interopDefaultLegacy(transformRotate);function ellipse(j,$,_e,et){et=et||{};var tt=et.steps||64,rt=et.units||"kilometers",nt=et.angle||0,it=et.pivot||j,ot=et.properties||j.properties||{};if(!j)throw new Error("center is required");if(!$)throw new Error("xSemiAxis is required");if(!_e)throw new Error("ySemiAxis is required");if(!helpers.isObject(et))throw new Error("options must be an object");if(!helpers.isNumber(tt))throw new Error("steps must be a number");if(!helpers.isNumber(nt))throw new Error("angle must be a number");var At=invariant.getCoord(j);if(rt==="degrees")var ut=helpers.degreesToRadians(nt);else $=rhumbDestination__default.default(j,$,90,{units:rt}),_e=rhumbDestination__default.default(j,_e,0,{units:rt}),$=invariant.getCoord($)[0]-At[0],_e=invariant.getCoord(_e)[1]-At[1];for(var ft=[],dt=0;dt=-270&&(Bt=-Bt),Et<-180&&Et>=-360&&(St=-St),rt==="degrees"){var Dt=Bt*Math.cos(ut)+St*Math.sin(ut),$t=St*Math.cos(ut)-Bt*Math.sin(ut);Bt=Dt,St=$t}ft.push([Bt+At[0],St+At[1]])}return ft.push(ft[0]),rt==="degrees"?helpers.polygon([ft],ot):transformRotate__default.default(helpers.polygon([ft],ot),nt,{pivot:it})}function getTanDeg(j){var $=j*Math.PI/180;return Math.tan($)}js$1.exports=ellipse;js$1.exports.default=ellipse;var jsExports=js$1.exports;Object.defineProperty(drawEllipseByBoundingBoxMode,"__esModule",{value:!0});drawEllipseByBoundingBoxMode.DrawEllipseByBoundingBoxMode=void 0;var _bboxPolygon=_interopRequireDefault$7(js$r),_distance$3=_interopRequireDefault$7(js$n),_ellipse$1=_interopRequireDefault$7(jsExports),_helpers$3=js$v,_geojsonEditMode$7=geojsonEditMode,_twoClickPolygonMode=twoClickPolygonMode;function _interopRequireDefault$7(j){return j&&j.__esModule?j:{default:j}}function _typeof$a(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$a=function(_e){return typeof _e}:_typeof$a=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$a(j)}function _classCallCheck$a(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$9(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$9(j,$,_e){return $&&_defineProperties$9(j.prototype,$),_e&&_defineProperties$9(j,_e),j}function _createSuper$a(j){return function(){var $=_getPrototypeOf$a(j),_e;if(_isNativeReflectConstruct$a()){var et=_getPrototypeOf$a(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$a(this,_e)}}function _possibleConstructorReturn$a(j,$){return $&&(_typeof$a($)==="object"||typeof $=="function")?$:_assertThisInitialized$a(j)}function _assertThisInitialized$a(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$a(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$a(j){return _getPrototypeOf$a=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$a(j)}function _inherits$a(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$a(j,$)}function _setPrototypeOf$a(j,$){return _setPrototypeOf$a=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$a(j,$)}var DrawEllipseByBoundingBoxMode=function(j){_inherits$a(_e,j);var $=_createSuper$a(_e);function _e(){return _classCallCheck$a(this,_e),$.apply(this,arguments)}return _createClass$9(_e,[{key:"getTwoClickPolygon",value:function(tt,rt,nt){var it=Math.min(tt[0],rt[0]),ot=Math.min(tt[1],rt[1]),At=Math.max(tt[0],rt[0]),ut=Math.max(tt[1],rt[1]),ft=(0,_bboxPolygon.default)([it,ot,At,ut]).geometry.coordinates[0],dt=(0,_geojsonEditMode$7.getIntermediatePosition)(tt,rt),Et=Math.max((0,_distance$3.default)((0,_helpers$3.point)(ft[0]),(0,_helpers$3.point)(ft[1])),.001),Bt=Math.max((0,_distance$3.default)((0,_helpers$3.point)(ft[0]),(0,_helpers$3.point)(ft[3])),.001);return(0,_ellipse$1.default)(dt,Et,Bt)}}]),_e}(_twoClickPolygonMode.TwoClickPolygonMode);drawEllipseByBoundingBoxMode.DrawEllipseByBoundingBoxMode=DrawEllipseByBoundingBoxMode;var drawEllipseUsingThreePointsMode={},threeClickPolygonMode={};Object.defineProperty(threeClickPolygonMode,"__esModule",{value:!0});threeClickPolygonMode.ThreeClickPolygonMode=void 0;var _geojsonEditMode$6=geojsonEditMode;function _typeof$9(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$9=function(_e){return typeof _e}:_typeof$9=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$9(j)}function _classCallCheck$9(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$8(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$8(j,$,_e){return $&&_defineProperties$8(j.prototype,$),_e&&_defineProperties$8(j,_e),j}function _get$2(j,$,_e){return typeof Reflect<"u"&&Reflect.get?_get$2=Reflect.get:_get$2=function(tt,rt,nt){var it=_superPropBase$2(tt,rt);if(it){var ot=Object.getOwnPropertyDescriptor(it,rt);return ot.get?ot.get.call(nt):ot.value}},_get$2(j,$,_e||j)}function _superPropBase$2(j,$){for(;!Object.prototype.hasOwnProperty.call(j,$)&&(j=_getPrototypeOf$9(j),j!==null););return j}function _createSuper$9(j){return function(){var $=_getPrototypeOf$9(j),_e;if(_isNativeReflectConstruct$9()){var et=_getPrototypeOf$9(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$9(this,_e)}}function _possibleConstructorReturn$9(j,$){return $&&(_typeof$9($)==="object"||typeof $=="function")?$:_assertThisInitialized$9(j)}function _assertThisInitialized$9(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$9(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$9(j){return _getPrototypeOf$9=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$9(j)}function _inherits$9(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$9(j,$)}function _setPrototypeOf$9(j,$){return _setPrototypeOf$9=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$9(j,$)}var ThreeClickPolygonMode=function(j){_inherits$9(_e,j);var $=_createSuper$9(_e);function _e(){return _classCallCheck$9(this,_e),$.apply(this,arguments)}return _createClass$8(_e,[{key:"handleClick",value:function(tt,rt){this.addClickSequence(tt);var nt=this.getClickSequence(),it=this.getTentativeGuide(rt);if(nt.length>2&&it&&it.geometry.type==="Polygon"){var ot=this.getAddFeatureOrBooleanPolygonAction(it.geometry,rt);this.resetClickSequence(),ot&&rt.onEdit(ot)}}},{key:"getGuides",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=tt.modeConfig,it=this.getClickSequence(),ot={type:"FeatureCollection",features:[]};if(it.length===0)return ot;var At=rt.mapCoords;if(it.length===1)ot.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[it[0],At]}});else{var ut=this.getThreeClickPolygon(it[0],it[1],At,nt);ut&&ot.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:ut.geometry})}return ot}},{key:"getThreeClickPolygon",value:function(tt,rt,nt,it){return null}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell"),_get$2(_getPrototypeOf$9(_e.prototype),"handlePointerMove",this).call(this,tt,rt)}},{key:"createTentativeFeature",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=this.getClickSequence(),it=rt?[rt.mapCoords]:[],ot;return nt.length===2&&(ot=this.getThreeClickPolygon(nt[0],nt[1],it[0],tt.modeConfig)),ot}}]),_e}(_geojsonEditMode$6.GeoJsonEditMode);threeClickPolygonMode.ThreeClickPolygonMode=ThreeClickPolygonMode;Object.defineProperty(drawEllipseUsingThreePointsMode,"__esModule",{value:!0});drawEllipseUsingThreePointsMode.DrawEllipseUsingThreePointsMode=void 0;var _distance$2=_interopRequireDefault$6(js$n),_ellipse=_interopRequireDefault$6(jsExports),_bearing$3=_interopRequireDefault$6(js$g),_helpers$2=js$v,_geojsonEditMode$5=geojsonEditMode,_threeClickPolygonMode$1=threeClickPolygonMode;function _interopRequireDefault$6(j){return j&&j.__esModule?j:{default:j}}function _typeof$8(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$8=function(_e){return typeof _e}:_typeof$8=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$8(j)}function _classCallCheck$8(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$7(j,$,_e){return $&&_defineProperties$7(j.prototype,$),_e&&_defineProperties$7(j,_e),j}function _createSuper$8(j){return function(){var $=_getPrototypeOf$8(j),_e;if(_isNativeReflectConstruct$8()){var et=_getPrototypeOf$8(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$8(this,_e)}}function _possibleConstructorReturn$8(j,$){return $&&(_typeof$8($)==="object"||typeof $=="function")?$:_assertThisInitialized$8(j)}function _assertThisInitialized$8(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$8(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(j){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$8(j)}function _inherits$8(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$8(j,$)}function _setPrototypeOf$8(j,$){return _setPrototypeOf$8=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$8(j,$)}var DrawEllipseUsingThreePointsMode=function(j){_inherits$8(_e,j);var $=_createSuper$8(_e);function _e(){return _classCallCheck$8(this,_e),$.apply(this,arguments)}return _createClass$7(_e,[{key:"getThreeClickPolygon",value:function(tt,rt,nt,it){var ot=(0,_geojsonEditMode$5.getIntermediatePosition)(tt,rt),At=Math.max((0,_distance$2.default)(ot,(0,_helpers$2.point)(nt)),.001),ut=Math.max((0,_distance$2.default)(tt,rt),.001)/2,ft={angle:(0,_bearing$3.default)(tt,rt)};return(0,_ellipse.default)(ot,At,ut,ft)}}]),_e}(_threeClickPolygonMode$1.ThreeClickPolygonMode);drawEllipseUsingThreePointsMode.DrawEllipseUsingThreePointsMode=DrawEllipseUsingThreePointsMode;var drawRectangleUsingThreePointsMode={};Object.defineProperty(drawRectangleUsingThreePointsMode,"__esModule",{value:!0});drawRectangleUsingThreePointsMode.DrawRectangleUsingThreePointsMode=void 0;var _utils$4=utils$2,_threeClickPolygonMode=threeClickPolygonMode;function _typeof$7(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$7=function(_e){return typeof _e}:_typeof$7=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$7(j)}function _slicedToArray$2(j,$){return _arrayWithHoles$2(j)||_iterableToArrayLimit$2(j,$)||_unsupportedIterableToArray$7(j,$)||_nonIterableRest$2()}function _nonIterableRest$2(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$7(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$7(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$7(j,$)}}function _arrayLikeToArray$7(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _iterableToArrayLimit$2(j,$){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var _e=[],et=!0,tt=!1,rt=void 0;try{for(var nt=j[Symbol.iterator](),it;!(et=(it=nt.next()).done)&&(_e.push(it.value),!($&&_e.length===$));et=!0);}catch(ot){tt=!0,rt=ot}finally{try{!et&&nt.return!=null&&nt.return()}finally{if(tt)throw rt}}return _e}}function _arrayWithHoles$2(j){if(Array.isArray(j))return j}function _classCallCheck$7(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$6(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$6(j,$,_e){return $&&_defineProperties$6(j.prototype,$),_e&&_defineProperties$6(j,_e),j}function _createSuper$7(j){return function(){var $=_getPrototypeOf$7(j),_e;if(_isNativeReflectConstruct$7()){var et=_getPrototypeOf$7(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$7(this,_e)}}function _possibleConstructorReturn$7(j,$){return $&&(_typeof$7($)==="object"||typeof $=="function")?$:_assertThisInitialized$7(j)}function _assertThisInitialized$7(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$7(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(j){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$7(j)}function _inherits$7(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$7(j,$)}function _setPrototypeOf$7(j,$){return _setPrototypeOf$7=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$7(j,$)}var DrawRectangleUsingThreePointsMode=function(j){_inherits$7(_e,j);var $=_createSuper$7(_e);function _e(){return _classCallCheck$7(this,_e),$.apply(this,arguments)}return _createClass$6(_e,[{key:"getThreeClickPolygon",value:function(tt,rt,nt,it){var ot=(0,_utils$4.generatePointsParallelToLinePoints)(tt,rt,nt),At=_slicedToArray$2(ot,2),ut=At[0],ft=At[1];return{type:"Feature",properties:{shape:"Rectangle"},geometry:{type:"Polygon",coordinates:[[tt,rt,ut,ft,tt]]}}}}]),_e}(_threeClickPolygonMode.ThreeClickPolygonMode);drawRectangleUsingThreePointsMode.DrawRectangleUsingThreePointsMode=DrawRectangleUsingThreePointsMode;var draw90degreePolygonMode={};Object.defineProperty(draw90degreePolygonMode,"__esModule",{value:!0});draw90degreePolygonMode.Draw90DegreePolygonMode=void 0;var _destination$1=_interopRequireDefault$5(js$h),_bearing$2=_interopRequireDefault$5(js$g),_lineIntersect=_interopRequireDefault$5(js$3),_distance$1=_interopRequireDefault$5(js$n),_helpers$1=js$v,_utils$3=utils$2,_geojsonEditMode$4=geojsonEditMode;function _interopRequireDefault$5(j){return j&&j.__esModule?j:{default:j}}function _typeof$6(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$6=function(_e){return typeof _e}:_typeof$6=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$6(j)}function _toConsumableArray$6(j){return _arrayWithoutHoles$6(j)||_iterableToArray$6(j)||_unsupportedIterableToArray$6(j)||_nonIterableSpread$6()}function _nonIterableSpread$6(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArray$6(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$6(j){if(Array.isArray(j))return _arrayLikeToArray$6(j)}function _slicedToArray$1(j,$){return _arrayWithHoles$1(j)||_iterableToArrayLimit$1(j,$)||_unsupportedIterableToArray$6(j,$)||_nonIterableRest$1()}function _nonIterableRest$1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$6(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$6(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$6(j,$)}}function _arrayLikeToArray$6(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _iterableToArrayLimit$1(j,$){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var _e=[],et=!0,tt=!1,rt=void 0;try{for(var nt=j[Symbol.iterator](),it;!(et=(it=nt.next()).done)&&(_e.push(it.value),!($&&_e.length===$));et=!0);}catch(ot){tt=!0,rt=ot}finally{try{!et&&nt.return!=null&&nt.return()}finally{if(tt)throw rt}}return _e}}function _arrayWithHoles$1(j){if(Array.isArray(j))return j}function _classCallCheck$6(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$5(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$5(j,$,_e){return $&&_defineProperties$5(j.prototype,$),_e&&_defineProperties$5(j,_e),j}function _get$1(j,$,_e){return typeof Reflect<"u"&&Reflect.get?_get$1=Reflect.get:_get$1=function(tt,rt,nt){var it=_superPropBase$1(tt,rt);if(it){var ot=Object.getOwnPropertyDescriptor(it,rt);return ot.get?ot.get.call(nt):ot.value}},_get$1(j,$,_e||j)}function _superPropBase$1(j,$){for(;!Object.prototype.hasOwnProperty.call(j,$)&&(j=_getPrototypeOf$6(j),j!==null););return j}function _createSuper$6(j){return function(){var $=_getPrototypeOf$6(j),_e;if(_isNativeReflectConstruct$6()){var et=_getPrototypeOf$6(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$6(this,_e)}}function _possibleConstructorReturn$6(j,$){return $&&(_typeof$6($)==="object"||typeof $=="function")?$:_assertThisInitialized$6(j)}function _assertThisInitialized$6(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$6(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(j){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$6(j)}function _inherits$6(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$6(j,$)}function _setPrototypeOf$6(j,$){return _setPrototypeOf$6=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$6(j,$)}var Draw90DegreePolygonMode=function(j){_inherits$6(_e,j);var $=_createSuper$6(_e);function _e(){return _classCallCheck$6(this,_e),$.apply(this,arguments)}return _createClass$5(_e,[{key:"createTentativeFeature",value:function(tt){var rt=this.getClickSequence(),nt=tt.lastPointerMoveEvent.mapCoords,it;if(rt.length===1)it=nt;else{var ot=rt[rt.length-2],At=rt[rt.length-1],ut=(0,_utils$3.generatePointsParallelToLinePoints)(ot,At,nt),ft=_slicedToArray$1(ut,1);it=ft[0]}var dt;return rt.length<3?dt={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(_toConsumableArray$6(rt),[it])}}:dt={type:"Feature",properties:{guideType:"tentative"},geometry:{type:"Polygon",coordinates:[[].concat(_toConsumableArray$6(rt),[it,rt[0]])]}},dt}},{key:"getGuides",value:function(tt){var rt={type:"FeatureCollection",features:[]},nt=this.getClickSequence();if(nt.length===0||!tt.lastPointerMoveEvent)return rt;var it=this.createTentativeFeature(tt);return rt.features.push(it),rt.features=rt.features.concat((0,_utils$3.getEditHandlesForGeometry)(it.geometry,-1)),rt.features=rt.features.slice(0,-1),rt}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell"),_get$1(_getPrototypeOf$6(_e.prototype),"handlePointerMove",this).call(this,tt,rt)}},{key:"handleClick",value:function(tt,rt){var nt=tt.picks,it=this.getTentativeGuide(rt);this.addClickSequence(tt);var ot=this.getClickSequence();if(it){if(ot.length===3&&it.geometry.type==="LineString"){var At=it.geometry;ot[ot.length-1]=At.coordinates[At.coordinates.length-1]}else if(ot.length>3&&it.geometry.type==="Polygon"){var ut=it.geometry;ot[ot.length-1]=ut.coordinates[0][ut.coordinates[0].length-2];var ft=(0,_utils$3.getPickedEditHandle)(nt);if(ft&&Array.isArray(ft.properties.positionIndexes)&&(ft.properties.positionIndexes[1]===0||ft.properties.positionIndexes[1]===ut.coordinates[0].length-3)){var dt={type:"Polygon",coordinates:this.finalizedCoordinates(_toConsumableArray$6(ut.coordinates[0]))};this.resetClickSequence();var Et=this.getAddFeatureOrBooleanPolygonAction(dt,rt);Et&&rt.onEdit(Et)}}var Bt={screenCoords:[-1,-1],mapCoords:tt.mapCoords,picks:[],pointerDownPicks:null,pointerDownScreenCoords:null,pointerDownMapCoords:null,cancelPan:function(){},sourceEvent:null};this.handlePointerMove(Bt,rt)}}},{key:"finalizedCoordinates",value:function(tt){var rt=[[].concat(_toConsumableArray$6(tt.slice(0,-2)),[tt[0]])],nt=this.getIntermediatePoint(_toConsumableArray$6(tt));if(nt)rt=[[].concat(_toConsumableArray$6(tt.slice(0,-2)),[nt,tt[0]])];else{var it=_toConsumableArray$6(tt);it.splice(-3,1),nt=this.getIntermediatePoint(_toConsumableArray$6(it)),nt&&(rt=[[].concat(_toConsumableArray$6(tt.slice(0,-3)),[nt,tt[0]])])}return rt}},{key:"getIntermediatePoint",value:function(tt){var rt;if(tt.length>4){var nt=_toConsumableArray$6(tt),it=nt[0],ot=nt[1],At=(0,_bearing$2.default)(it,ot),ut=tt[tt.length-3],ft=tt[tt.length-4],dt=(0,_bearing$2.default)(ut,ft),Et={first:[],second:[]};[1,2,3].forEach(function(St){var Dt=At+St*90;Et.first.push(Dt>180?Dt-360:Dt);var $t=dt+St*90;Et.second.push($t>180?$t-360:$t)});var Bt=(0,_distance$1.default)((0,_helpers$1.point)(it),(0,_helpers$1.point)(ut));[0,1,2].forEach(function(St){var Dt=(0,_helpers$1.lineString)([it,(0,_destination$1.default)(it,Bt,Et.first[St]).geometry.coordinates]);[0,1,2].forEach(function($t){var Rt=(0,_helpers$1.lineString)([ut,(0,_destination$1.default)(ut,Bt,Et.second[$t]).geometry.coordinates]),wt=(0,_lineIntersect.default)(Dt,Rt);wt&&wt.features.length&&(rt=wt.features[0].geometry.coordinates)})})}return rt}}]),_e}(_geojsonEditMode$4.GeoJsonEditMode);draw90degreePolygonMode.Draw90DegreePolygonMode=Draw90DegreePolygonMode;var drawPolygonByDraggingMode={},FUNC_ERROR_TEXT="Expected a function",NAN=NaN,symbolTag="[object Symbol]",reTrim=/^\s+|\s+$/g,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt,freeGlobal=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root$4=freeGlobal||freeSelf||Function("return this")(),objectProto=Object.prototype,objectToString=objectProto.toString,nativeMax=Math.max,nativeMin=Math.min,now$1=function(){return root$4.Date.now()};function debounce$1(j,$,_e){var et,tt,rt,nt,it,ot,At=0,ut=!1,ft=!1,dt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT);$=toNumber$2($)||0,isObject(_e)&&(ut=!!_e.leading,ft="maxWait"in _e,rt=ft?nativeMax(toNumber$2(_e.maxWait)||0,$):rt,dt="trailing"in _e?!!_e.trailing:dt);function Et(Ot){var kt=et,Jt=tt;return et=tt=void 0,At=Ot,nt=j.apply(Jt,kt),nt}function Bt(Ot){return At=Ot,it=setTimeout($t,$),ut?Et(Ot):nt}function St(Ot){var kt=Ot-ot,Jt=Ot-At,jt=$-kt;return ft?nativeMin(jt,rt-Jt):jt}function Dt(Ot){var kt=Ot-ot,Jt=Ot-At;return ot===void 0||kt>=$||kt<0||ft&&Jt>=rt}function $t(){var Ot=now$1();if(Dt(Ot))return Rt(Ot);it=setTimeout($t,St(Ot))}function Rt(Ot){return it=void 0,dt&&et?Et(Ot):(et=tt=void 0,nt)}function wt(){it!==void 0&&clearTimeout(it),At=0,et=ot=tt=it=void 0}function xt(){return it===void 0?nt:Rt(now$1())}function Nt(){var Ot=now$1(),kt=Dt(Ot);if(et=arguments,tt=this,ot=Ot,kt){if(it===void 0)return Bt(ot);if(ft)return it=setTimeout($t,$),Et(ot)}return it===void 0&&(it=setTimeout($t,$)),nt}return Nt.cancel=wt,Nt.flush=xt,Nt}function throttle(j,$,_e){var et=!0,tt=!0;if(typeof j!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject(_e)&&(et="leading"in _e?!!_e.leading:et,tt="trailing"in _e?!!_e.trailing:tt),debounce$1(j,$,{leading:et,maxWait:$,trailing:tt})}function isObject(j){var $=typeof j;return!!j&&($=="object"||$=="function")}function isObjectLike(j){return!!j&&typeof j=="object"}function isSymbol(j){return typeof j=="symbol"||isObjectLike(j)&&objectToString.call(j)==symbolTag}function toNumber$2(j){if(typeof j=="number")return j;if(isSymbol(j))return NAN;if(isObject(j)){var $=typeof j.valueOf=="function"?j.valueOf():j;j=isObject($)?$+"":$}if(typeof j!="string")return j===0?j:+j;j=j.replace(reTrim,"");var _e=reIsBinary.test(j);return _e||reIsOctal.test(j)?freeParseInt(j.slice(2),_e?2:8):reIsBadHex.test(j)?NAN:+j}var lodash_throttle=throttle;Object.defineProperty(drawPolygonByDraggingMode,"__esModule",{value:!0});drawPolygonByDraggingMode.DrawPolygonByDraggingMode=void 0;var _lodash=_interopRequireDefault$4(lodash_throttle),_utils$2=utils$2,_drawPolygonMode$1=drawPolygonMode;function _interopRequireDefault$4(j){return j&&j.__esModule?j:{default:j}}function _typeof$5(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$5=function(_e){return typeof _e}:_typeof$5=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$5(j)}function _toConsumableArray$5(j){return _arrayWithoutHoles$5(j)||_iterableToArray$5(j)||_unsupportedIterableToArray$5(j)||_nonIterableSpread$5()}function _nonIterableSpread$5(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$5(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$5(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$5(j,$)}}function _iterableToArray$5(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$5(j){if(Array.isArray(j))return _arrayLikeToArray$5(j)}function _arrayLikeToArray$5(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$5(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$4(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$4(j,$,_e){return $&&_defineProperties$4(j.prototype,$),_e&&_defineProperties$4(j,_e),j}function _createSuper$5(j){return function(){var $=_getPrototypeOf$5(j),_e;if(_isNativeReflectConstruct$5()){var et=_getPrototypeOf$5(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$5(this,_e)}}function _possibleConstructorReturn$5(j,$){return $&&(_typeof$5($)==="object"||typeof $=="function")?$:_assertThisInitialized$5(j)}function _assertThisInitialized$5(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$5(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(j){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$5(j)}function _inherits$5(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$5(j,$)}function _setPrototypeOf$5(j,$){return _setPrototypeOf$5=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$5(j,$)}function _defineProperty$4(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var DrawPolygonByDraggingMode=function(j){_inherits$5(_e,j);var $=_createSuper$5(_e);function _e(){var et;_classCallCheck$5(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt2){var it={type:"Polygon",coordinates:[[].concat(_toConsumableArray$5(nt),[nt[0]])]};this.resetClickSequence();var ot=this.getAddFeatureOrBooleanPolygonAction(it,rt);ot&&rt.onEdit(ot)}}},{key:"handleDraggingAux",value:function(tt,rt){var nt=tt.picks,it=(0,_utils$2.getPickedEditHandle)(nt);it||this.addClickSequence(tt)}},{key:"handleDragging",value:function(tt,rt){this.handleDraggingThrottled&&this.handleDraggingThrottled(tt,rt)}}]),_e}(_drawPolygonMode$1.DrawPolygonMode);drawPolygonByDraggingMode.DrawPolygonByDraggingMode=DrawPolygonByDraggingMode;var viewMode={};Object.defineProperty(viewMode,"__esModule",{value:!0});viewMode.ViewMode=void 0;var _geojsonEditMode$3=geojsonEditMode;function _typeof$4(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$4=function(_e){return typeof _e}:_typeof$4=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$4(j)}function _classCallCheck$4(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _createSuper$4(j){return function(){var $=_getPrototypeOf$4(j),_e;if(_isNativeReflectConstruct$4()){var et=_getPrototypeOf$4(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$4(this,_e)}}function _possibleConstructorReturn$4(j,$){return $&&(_typeof$4($)==="object"||typeof $=="function")?$:_assertThisInitialized$4(j)}function _assertThisInitialized$4(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$4(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(j){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$4(j)}function _inherits$4(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$4(j,$)}function _setPrototypeOf$4(j,$){return _setPrototypeOf$4=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$4(j,$)}var ViewMode=function(j){_inherits$4(_e,j);var $=_createSuper$4(_e);function _e(){return _classCallCheck$4(this,_e),$.apply(this,arguments)}return _e}(_geojsonEditMode$3.GeoJsonEditMode);viewMode.ViewMode=ViewMode;var measureDistanceMode={};Object.defineProperty(measureDistanceMode,"__esModule",{value:!0});measureDistanceMode.MeasureDistanceMode=void 0;var _distance=_interopRequireDefault$3(js$n),_utils$1=utils$2,_geojsonEditMode$2=geojsonEditMode;function _interopRequireDefault$3(j){return j&&j.__esModule?j:{default:j}}function _typeof$3(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$3=function(_e){return typeof _e}:_typeof$3=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof$3(j)}function _toConsumableArray$4(j){return _arrayWithoutHoles$4(j)||_iterableToArray$4(j)||_unsupportedIterableToArray$4(j)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$4(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$4(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$4(j,$)}}function _iterableToArray$4(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$4(j){if(Array.isArray(j))return _arrayLikeToArray$4(j)}function _arrayLikeToArray$4(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$3(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$3(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$3(j,$,_e){return $&&_defineProperties$3(j.prototype,$),_e&&_defineProperties$3(j,_e),j}function _createSuper$3(j){return function(){var $=_getPrototypeOf$3(j),_e;if(_isNativeReflectConstruct$3()){var et=_getPrototypeOf$3(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$3(this,_e)}}function _possibleConstructorReturn$3(j,$){return $&&(_typeof$3($)==="object"||typeof $=="function")?$:_assertThisInitialized$3(j)}function _assertThisInitialized$3(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$3(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(j){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$3(j)}function _inherits$3(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$3(j,$)}function _setPrototypeOf$3(j,$){return _setPrototypeOf$3=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$3(j,$)}function _defineProperty$3(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var MeasureDistanceMode=function(j){_inherits$3(_e,j);var $=_createSuper$3(_e);function _e(){var et;_classCallCheck$3(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt1&&ut&&Array.isArray(ut.properties.positionIndexes)&&ut.properties.positionIndexes[0]===dt.length-1?this._isMeasuringSessionFinished=!0:ft&&(dt.length>1&&(this._currentDistance+=this._calculateDistanceForTooltip({positionA:dt[dt.length-2],positionB:dt[dt.length-1],modeConfig:nt}),this._currentTooltips.push({position:tt.mapCoords,text:this._formatTooltip(this._currentDistance,nt)})),ot({updatedData:it,editType:"addTentativePosition",editContext:{position:tt.mapCoords}}))}},{key:"handleKeyUp",value:function(tt,rt){if(!this._isMeasuringSessionFinished){tt.stopPropagation();var nt=tt.key,it=this.getClickSequence().length;switch(nt){case"Escape":this._isMeasuringSessionFinished=!0,it===1&&(this.resetClickSequence(),this._currentTooltips=[]),rt.onUpdateCursor("cell");break;case"Enter":this.handleClick(rt.lastPointerMoveEvent,rt),this._isMeasuringSessionFinished=!0;break}}}},{key:"getGuides",value:function(tt){var rt,nt=tt.lastPointerMoveEvent,it=this.getClickSequence(),ot=nt&&!this._isMeasuringSessionFinished?[nt.mapCoords]:[],At={type:"FeatureCollection",features:[]};it.length>0&&At.features.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[].concat(_toConsumableArray$4(it),ot)}});var ut=it.map(function(ft,dt){return{type:"Feature",properties:{guideType:"editHandle",editHandleType:"existing",featureIndex:-1,positionIndexes:[dt]},geometry:{type:"Point",coordinates:ft}}});return(rt=At.features).push.apply(rt,_toConsumableArray$4(ut)),At}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell")}},{key:"getTooltips",value:function(tt){var rt=tt.lastPointerMoveEvent,nt=tt.modeConfig,it=this.getClickSequence();if(it.length>0&&rt&&!this._isMeasuringSessionFinished){var ot=this._calculateDistanceForTooltip({positionA:it[it.length-1],positionB:rt.mapCoords,modeConfig:tt.modeConfig});return[].concat(_toConsumableArray$4(this._currentTooltips),[{position:rt.mapCoords,text:this._formatTooltip(this._currentDistance+ot,nt)}])}return this._currentTooltips}}]),_e}(_geojsonEditMode$2.GeoJsonEditMode);measureDistanceMode.MeasureDistanceMode=MeasureDistanceMode;var measureAreaMode={},js={};Object.defineProperty(js,"__esModule",{value:!0});var meta_1=js$u,RADIUS=6378137;function area(j){return meta_1.geomReduce(j,function($,_e){return $+calculateArea(_e)},0)}js.default=area;function calculateArea(j){var $=0,_e;switch(j.type){case"Polygon":return polygonArea(j.coordinates);case"MultiPolygon":for(_e=0;_e0){$+=Math.abs(ringArea(j[0]));for(var _e=1;_e2){for(it=0;it"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(j){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$2(j)}function _inherits$2(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$2(j,$)}function _setPrototypeOf$2(j,$){return _setPrototypeOf$2=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$2(j,$)}var DEFAULT_TOOLTIPS$1=[],MeasureAreaMode=function(j){_inherits$2(_e,j);var $=_createSuper$2(_e);function _e(){return _classCallCheck$2(this,_e),$.apply(this,arguments)}return _createClass$2(_e,[{key:"handleClick",value:function(tt,rt){var nt=_objectSpread$1({},rt,{onEdit:function(){}});_get(_getPrototypeOf$2(_e.prototype),"handleClick",this).call(this,tt,nt)}},{key:"getTooltips",value:function(tt){var rt=this.getTentativeGuide(tt);if(rt&&rt.geometry.type==="Polygon"){var nt=tt.modeConfig,it=nt||{},ot=it.formatTooltip,At=it.measurementCallback,ut="sq. m",ft=(0,_centroid.default)(rt),dt=(0,_area.default)(rt),Et;return ot?Et=ot(dt):Et="".concat(parseFloat(dt).toFixed(2)," ").concat(ut),At&&At(dt),[{position:ft.geometry.coordinates,text:Et}]}return DEFAULT_TOOLTIPS$1}}]),_e}(_drawPolygonMode.DrawPolygonMode);measureAreaMode.MeasureAreaMode=MeasureAreaMode;var measureAngleMode={},memoize$2={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=_e;function $(et,tt){if(et===tt)return!0;if(Array.isArray(et)){var rt=et.length;if(!tt||tt.length!==rt)return!1;for(var nt=0;ntj.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function _classCallCheck$1(j,$){if(!(j instanceof $))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(j,$){for(var _e=0;_e<$.length;_e++){var et=$[_e];et.enumerable=et.enumerable||!1,et.configurable=!0,"value"in et&&(et.writable=!0),Object.defineProperty(j,et.key,et)}}function _createClass$1(j,$,_e){return $&&_defineProperties$1(j.prototype,$),_e&&_defineProperties$1(j,_e),j}function _createSuper$1(j){return function(){var $=_getPrototypeOf$1(j),_e;if(_isNativeReflectConstruct$1()){var et=_getPrototypeOf$1(this).constructor;_e=Reflect.construct($,arguments,et)}else _e=$.apply(this,arguments);return _possibleConstructorReturn$1(this,_e)}}function _possibleConstructorReturn$1(j,$){return $&&(_typeof$1($)==="object"||typeof $=="function")?$:_assertThisInitialized$1(j)}function _assertThisInitialized$1(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function _isNativeReflectConstruct$1(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1(j){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf$1(j)}function _inherits$1(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$1(j,$)}function _setPrototypeOf$1(j,$){return _setPrototypeOf$1=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$1(j,$)}function _defineProperty$1(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var DEFAULT_TOOLTIPS=[],MeasureAngleMode=function(j){_inherits$1(_e,j);var $=_createSuper$1(_e);function _e(){var et;_classCallCheck$1(this,_e);for(var tt=arguments.length,rt=new Array(tt),nt=0;nt180&&(wt=360-wt);var xt;Bt?xt=Bt(wt):xt="".concat(parseFloat(wt).toFixed(2)," ").concat(Dt),St&&St(wt);var Nt=(0,_center.default)({type:"FeatureCollection",features:[ut,ft].map(function(Ot){return{type:"Feature",geometry:{type:"Point",coordinates:Ot}}})}).geometry.coordinates;dt=[{position:Nt,text:xt}]}return dt})),et}return _createClass$1(_e,[{key:"handleClick",value:function(tt,rt){this.getClickSequence().length>=3&&this.resetClickSequence(),this.addClickSequence(tt)}},{key:"handlePointerMove",value:function(tt,rt){rt.onUpdateCursor("cell")}},{key:"getPoints",value:function(tt){var rt=this.getClickSequence(),nt=_toConsumableArray$3(rt);return rt.length<3&&tt.lastPointerMoveEvent&&nt.push(tt.lastPointerMoveEvent.mapCoords),nt}},{key:"getGuides",value:function(tt){var rt={type:"FeatureCollection",features:[]},nt=rt.features,it=this.getPoints(tt);return it.length>2?nt.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[it[1],it[0],it[2]]}}):it.length>1&&nt.push({type:"Feature",properties:{guideType:"tentative"},geometry:{type:"LineString",coordinates:[it[1],it[0]]}}),rt}},{key:"getTooltips",value:function(tt){var rt=this.getPoints(tt);return this._getTooltips({modeConfig:tt.modeConfig,vertex:rt[0],point1:rt[1],point2:rt[2]})}}]),_e}(_geojsonEditMode$1.GeoJsonEditMode);measureAngleMode.MeasureAngleMode=MeasureAngleMode;var snappableMode={};Object.defineProperty(snappableMode,"__esModule",{value:!0});snappableMode.SnappableMode=void 0;var _utils=utils$2,_geojsonEditMode=geojsonEditMode;function _typeof(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof=function(_e){return typeof _e}:_typeof=function(_e){return _e&&typeof Symbol=="function"&&_e.constructor===Symbol&&_e!==Symbol.prototype?"symbol":typeof _e},_typeof(j)}function _createForOfIteratorHelper(j){if(typeof Symbol>"u"||j[Symbol.iterator]==null){if(Array.isArray(j)||(j=_unsupportedIterableToArray$2(j))){var $=0,_e=function(){};return{s:_e,n:function(){return $>=j.length?{done:!0}:{done:!1,value:j[$++]}},e:function(ot){throw ot},f:_e}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var et,tt=!0,rt=!1,nt;return{s:function(){et=j[Symbol.iterator]()},n:function(){var ot=et.next();return tt=ot.done,ot},e:function(ot){rt=!0,nt=ot},f:function(){try{!tt&&et.return!=null&&et.return()}finally{if(rt)throw nt}}}}function _toConsumableArray$2(j){return _arrayWithoutHoles$2(j)||_iterableToArray$2(j)||_unsupportedIterableToArray$2(j)||_nonIterableSpread$2()}function _nonIterableSpread$2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$2(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$2(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$2(j,$)}}function _iterableToArray$2(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$2(j){if(Array.isArray(j))return _arrayLikeToArray$2(j)}function _arrayLikeToArray$2(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function ownKeys(j,$){var _e=Object.keys(j);if(Object.getOwnPropertySymbols){var et=Object.getOwnPropertySymbols(j);$&&(et=et.filter(function(tt){return Object.getOwnPropertyDescriptor(j,tt).enumerable})),_e.push.apply(_e,et)}return _e}function _objectSpread(j){for(var $=1;$"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf(j){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(_e){return _e.__proto__||Object.getPrototypeOf(_e)},_getPrototypeOf(j)}function _inherits(j,$){if(typeof $!="function"&&$!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create($&&$.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),$&&_setPrototypeOf$v(j,$)}function _setPrototypeOf$v(j,$){return _setPrototypeOf$v=Object.setPrototypeOf||function(et,tt){return et.__proto__=tt,et},_setPrototypeOf$v(j,$)}function _defineProperty(j,$,_e){return $ in j?Object.defineProperty(j,$,{value:_e,enumerable:!0,configurable:!0,writable:!0}):j[$]=_e,j}var SnappableMode=function(j){_inherits(_e,j);var $=_createSuper(_e);function _e(et){var tt;return _classCallCheck(this,_e),tt=$.call(this),_defineProperty(_assertThisInitialized$v(tt),"_handler",void 0),tt._handler=et,tt}return _createClass(_e,[{key:"_getSnappedMouseEvent",value:function(tt,rt,nt){return Object.assign(tt,{mapCoords:nt.geometry.coordinates,pointerDownMapCoords:rt&&rt.geometry.coordinates})}},{key:"_getPickedSnapTarget",value:function(tt){return(0,_utils.getPickedEditHandles)(tt).find(function(rt){return rt.properties.editHandleType==="snap-target"})}},{key:"_getPickedSnapSource",value:function(tt){return(0,_utils.getPickedSnapSourceEditHandle)(tt)}},{key:"_getUpdatedSnapSourceHandle",value:function(tt,rt){var nt=tt.properties,it=nt.featureIndex,ot=nt.positionIndexes;if(!Array.isArray(ot))return tt;var At=rt.features[it],ut=ot.reduce(function(ft,dt){return ft[dt]},At.geometry.coordinates);return _objectSpread({},tt,{geometry:{type:"Point",coordinates:ut}})}},{key:"_getSnapTargets",value:function(tt){var rt=tt.modeConfig||{},nt=rt.additionalSnapTargets;nt=nt||[];var it=[].concat(_toConsumableArray$2(tt.data.features),_toConsumableArray$2(nt));return it}},{key:"_getSnapTargetHandles",value:function(tt){for(var rt=[],nt=this._getSnapTargets(tt),it=0;it"u"||Nt[Symbol.iterator]==null){if(Array.isArray(Nt)||(Nt=nt(Nt))){var Ot=0,kt=function(){};return{s:kt,n:function(){return Ot>=Nt.length?{done:!0}:{done:!1,value:Nt[Ot++]}},e:function(Wt){throw Wt},f:kt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Jt,jt=!0,Ht=!1,Gt;return{s:function(){Jt=Nt[Symbol.iterator]()},n:function(){var Wt=Jt.next();return jt=Wt.done,Wt},e:function(Wt){Ht=!0,Gt=Wt},f:function(){try{!jt&&Jt.return!=null&&Jt.return()}finally{if(Ht)throw Gt}}}}function nt(Nt,Ot){if(Nt){if(typeof Nt=="string")return it(Nt,Ot);var kt=Object.prototype.toString.call(Nt).slice(8,-1);if(kt==="Object"&&Nt.constructor&&(kt=Nt.constructor.name),kt==="Map"||kt==="Set")return Array.from(kt);if(kt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(kt))return it(Nt,Ot)}}function it(Nt,Ot){(Ot==null||Ot>Nt.length)&&(Ot=Nt.length);for(var kt=0,Jt=new Array(Ot);kt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function St(Nt){return St=Object.setPrototypeOf?Object.getPrototypeOf:function(kt){return kt.__proto__||Object.getPrototypeOf(kt)},St(Nt)}function Dt(Nt,Ot){if(typeof Ot!="function"&&Ot!==null)throw new TypeError("Super expression must either be null or a function");Nt.prototype=Object.create(Ot&&Ot.prototype,{constructor:{value:Nt,writable:!0,configurable:!0}}),Ot&&$t(Nt,Ot)}function $t(Nt,Ot){return $t=Object.setPrototypeOf||function(Jt,jt){return Jt.__proto__=jt,Jt},$t(Nt,Ot)}function Rt(Nt,Ot,kt){return Ot in Nt?Object.defineProperty(Nt,Ot,{value:kt,enumerable:!0,configurable:!0,writable:!0}):Nt[Ot]=kt,Nt}var wt=["anyclick","pointermove","panstart","panmove","panend","keyup"],xt=function(Nt){Dt(kt,Nt);var Ot=ft(kt);function kt(){return ot(this,kt),Ot.apply(this,arguments)}return ut(kt,[{key:"onLayerClick",value:function(jt){}},{key:"onStartDragging",value:function(jt){}},{key:"onStopDragging",value:function(jt){}},{key:"onDragging",value:function(jt){}},{key:"onPointerMove",value:function(jt){}},{key:"onLayerKeyUp",value:function(jt){}},{key:"initializeState",value:function(){this.setState({_editableLayerState:{pointerDownPicks:null,pointerDownScreenCoords:null,pointerDownMapCoords:null,eventHandler:this._forwardEventToCurrentLayer.bind(this)}}),this._addEventHandlers()}},{key:"finalizeState",value:function(){this._removeEventHandlers()}},{key:"_addEventHandlers",value:function(){var jt=this.context.deck.eventManager,Ht=this.state._editableLayerState.eventHandler,Gt=rt(wt),Kt;try{for(Gt.s();!(Kt=Gt.n()).done;){var Wt=Kt.value;jt.on(Wt,Ht,{priority:100})}}catch(Vt){Gt.e(Vt)}finally{Gt.f()}}},{key:"_removeEventHandlers",value:function(){var jt=this.context.deck.eventManager,Ht=this.state._editableLayerState.eventHandler,Gt=rt(wt),Kt;try{for(Gt.s();!(Kt=Gt.n()).done;){var Wt=Kt.value;jt.off(Wt,Ht)}}catch(Vt){Gt.e(Vt)}finally{Gt.f()}}},{key:"_forwardEventToCurrentLayer",value:function(jt){var Ht=this.getCurrentLayer(),Gt=Ht["_on".concat(jt.type)].bind(Ht);if(!Gt){console.warn("no handler for mjolnir.js event ".concat(jt.type));return}Gt(jt)}},{key:"_onanyclick",value:function(jt){var Ht=jt.srcEvent,Gt=this.getScreenCoords(Ht),Kt=this.getMapCoords(Gt),Wt=this.getPicks(Gt);this.onLayerClick({mapCoords:Kt,screenCoords:Gt,picks:Wt,sourceEvent:Ht})}},{key:"_onkeyup",value:function(jt){var Ht=jt.srcEvent;this.onLayerKeyUp(Ht)}},{key:"_onpanstart",value:function(jt){var Ht=this.getScreenCoords(jt.srcEvent),Gt=this.getMapCoords(Ht),Kt=this.getPicks(Ht);this.setState({_editableLayerState:tt({},this.state._editableLayerState,{pointerDownScreenCoords:Ht,pointerDownMapCoords:Gt,pointerDownPicks:Kt})}),this.onStartDragging({picks:Kt,screenCoords:Ht,mapCoords:Gt,pointerDownScreenCoords:Ht,pointerDownMapCoords:Gt,cancelPan:jt.stopImmediatePropagation,sourceEvent:jt.srcEvent})}},{key:"_onpanmove",value:function(jt){var Ht=jt.srcEvent,Gt=this.getScreenCoords(Ht),Kt=this.getMapCoords(Gt),Wt=this.state._editableLayerState,Vt=Wt.pointerDownPicks,ur=Wt.pointerDownScreenCoords,Ar=Wt.pointerDownMapCoords,hr=this.getPicks(Gt);this.onDragging({screenCoords:Gt,mapCoords:Kt,picks:hr,pointerDownPicks:Vt,pointerDownScreenCoords:ur,pointerDownMapCoords:Ar,sourceEvent:Ht,cancelPan:jt.stopImmediatePropagation})}},{key:"_onpanend",value:function(jt){var Ht=jt.srcEvent,Gt=this.getScreenCoords(Ht),Kt=this.getMapCoords(Gt),Wt=this.state._editableLayerState,Vt=Wt.pointerDownPicks,ur=Wt.pointerDownScreenCoords,Ar=Wt.pointerDownMapCoords,hr=this.getPicks(Gt);this.onStopDragging({picks:hr,screenCoords:Gt,mapCoords:Kt,pointerDownPicks:Vt,pointerDownScreenCoords:ur,pointerDownMapCoords:Ar,sourceEvent:Ht}),this.setState({_editableLayerState:tt({},this.state._editableLayerState,{pointerDownScreenCoords:null,pointerDownMapCoords:null,pointerDownPicks:null})})}},{key:"_onpointermove",value:function(jt){var Ht=jt.srcEvent,Gt=this.getScreenCoords(Ht),Kt=this.getMapCoords(Gt),Wt=this.state._editableLayerState,Vt=Wt.pointerDownPicks,ur=Wt.pointerDownScreenCoords,Ar=Wt.pointerDownMapCoords,hr=this.getPicks(Gt);this.onPointerMove({screenCoords:Gt,mapCoords:Kt,picks:hr,pointerDownPicks:Vt,pointerDownScreenCoords:ur,pointerDownMapCoords:Ar,sourceEvent:Ht})}},{key:"getPicks",value:function(jt){return this.context.deck.pickMultipleObjects({x:jt[0],y:jt[1],layerIds:[this.props.id],radius:this.props.pickingRadius,depth:this.props.pickingDepth})}},{key:"getScreenCoords",value:function(jt){return[jt.clientX-this.context.gl.canvas.getBoundingClientRect().left,jt.clientY-this.context.gl.canvas.getBoundingClientRect().top]}},{key:"getMapCoords",value:function(jt){return this.context.viewport.unproject([jt[0],jt[1]])}}]),kt}($.CompositeLayer);j.default=xt,Rt(xt,"layerName","EditableLayer")})(editableLayer);(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$0$4,_e=distEs6,et=tt(editableLayer);function tt(_r){return _r&&_r.__esModule?_r:{default:_r}}function rt(_r){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?rt=function(Lr){return typeof Lr}:rt=function(Lr){return Lr&&typeof Symbol=="function"&&Lr.constructor===Symbol&&Lr!==Symbol.prototype?"symbol":typeof Lr},rt(_r)}function nt(_r,Er){if(!(_r instanceof Er))throw new TypeError("Cannot call a class as a function")}function it(_r,Er){for(var Lr=0;Lr"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function St(_r){return St=Object.setPrototypeOf?Object.getPrototypeOf:function(Lr){return Lr.__proto__||Object.getPrototypeOf(Lr)},St(_r)}function Dt(_r,Er){if(typeof Er!="function"&&Er!==null)throw new TypeError("Super expression must either be null or a function");_r.prototype=Object.create(Er&&Er.prototype,{constructor:{value:_r,writable:!0,configurable:!0}}),Er&&$t(_r,Er)}function $t(_r,Er){return $t=Object.setPrototypeOf||function(Rr,$r){return Rr.__proto__=$r,Rr},$t(_r,Er)}function Rt(_r,Er,Lr){return Er in _r?Object.defineProperty(_r,Er,{value:Lr,enumerable:!0,configurable:!0,writable:!0}):_r[Er]=Lr,_r}var wt=[0,0,0,153],xt=[0,0,0,144],Nt=[0,0,0,255],Ot=[0,0,144,144],kt=[144,144,144,255],Jt=[144,144,144,144],jt=[192,0,0,255],Ht=[0,0,0,128],Gt=[124,0,192,255],Kt=[255,255,255,255],Wt=5,Vt=3,ur=7,Ar=_e.DrawPolygonMode;function hr(_r){return!_r||typeof _r!="function"?_r:function(Er){return _r(sr(Er))}}function sr(_r){return _r.__source?_r.__source.object:_r.sourceFeature?_r.sourceFeature.feature:_r}function ar(_r){switch(_r.properties.editHandleType){case"existing":return jt;case"snap-source":return Gt;case"intermediate":default:return Ht}}function Yt(_r){return Kt}function pr(_r){switch(_r.properties.editHandleType){case"existing":return Wt;case"snap":return ur;case"intermediate":default:return Vt}}var Zt={mode:Ar,onEdit:function(){},pickable:!0,pickingRadius:10,pickingDepth:5,fp64:!1,filled:!0,stroked:!0,lineWidthScale:1,lineWidthMinPixels:1,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,lineWidthUnits:"pixels",lineJointRounded:!1,lineMiterLimit:4,pointRadiusScale:1,pointRadiusMinPixels:2,pointRadiusMaxPixels:Number.MAX_SAFE_INTEGER,getLineColor:function(Er,Lr,Rr){return Lr?Nt:wt},getFillColor:function(Er,Lr,Rr){return Lr?Ot:xt},getRadius:function(Er){return Er&&Er.properties&&Er.properties.radius||Er&&Er.properties&&Er.properties.size||1},getLineWidth:function(Er){return Er&&Er.properties&&Er.properties.lineWidth||3},getTentativeLineColor:function(Er){return kt},getTentativeFillColor:function(Er){return Jt},getTentativeLineWidth:function(Er){return Er&&Er.properties&&Er.properties.lineWidth||3},editHandleType:"point",editHandlePointRadiusScale:1,editHandlePointOutline:!0,editHandlePointStrokeWidth:2,editHandlePointRadiusMinPixels:4,editHandlePointRadiusMaxPixels:8,getEditHandlePointColor:ar,getEditHandlePointOutlineColor:Yt,getEditHandlePointRadius:pr,editHandleIconAtlas:null,editHandleIconMapping:null,editHandleIconSizeScale:1,getEditHandleIcon:function(Er){return Er.properties.editHandleType},getEditHandleIconSize:10,getEditHandleIconColor:ar,getEditHandleIconAngle:0,billboard:!0},mr={view:_e.ViewMode,modify:_e.ModifyMode,translate:new _e.SnappableMode(new _e.TranslateMode),transform:new _e.SnappableMode(new _e.TransformMode),scale:_e.ScaleMode,rotate:_e.RotateMode,duplicate:_e.DuplicateMode,split:_e.SplitPolygonMode,extrude:_e.ExtrudeMode,elevation:_e.ElevationMode,drawPoint:_e.DrawPointMode,drawLineString:_e.DrawLineStringMode,drawPolygon:_e.DrawPolygonMode,drawRectangle:_e.DrawRectangleMode,drawSquareFromCenter:_e.DrawSquareFromCenterMode,drawCircleFromCenter:_e.DrawCircleFromCenterMode,drawCircleByBoundingBox:_e.DrawCircleByDiameterMode,drawEllipseByBoundingBox:_e.DrawEllipseByBoundingBoxMode,drawRectangleUsing3Points:_e.DrawRectangleUsingThreePointsMode,drawEllipseUsing3Points:_e.DrawEllipseUsingThreePointsMode,draw90DegreePolygon:_e.Draw90DegreePolygonMode,drawPolygonByDragging:_e.DrawPolygonByDraggingMode},vr=function(_r){Dt(Lr,_r);var Er=ft(Lr);function Lr(){return nt(this,Lr),Er.apply(this,arguments)}return ot(Lr,[{key:"renderLayers",value:function(){var $r=this.getSubLayerProps({id:"geojson",data:this.props.data,fp64:this.props.fp64,filled:this.props.filled,stroked:this.props.stroked,lineWidthScale:this.props.lineWidthScale,lineWidthMinPixels:this.props.lineWidthMinPixels,lineWidthMaxPixels:this.props.lineWidthMaxPixels,lineWidthUnits:this.props.lineWidthUnits,lineJointRounded:this.props.lineJointRounded,lineMiterLimit:this.props.lineMiterLimit,pointRadiusScale:this.props.pointRadiusScale,pointRadiusMinPixels:this.props.pointRadiusMinPixels,pointRadiusMaxPixels:this.props.pointRadiusMaxPixels,getLineColor:this.selectionAwareAccessor(this.props.getLineColor),getFillColor:this.selectionAwareAccessor(this.props.getFillColor),getRadius:this.selectionAwareAccessor(this.props.getRadius),getLineWidth:this.selectionAwareAccessor(this.props.getLineWidth),_subLayerProps:{"line-strings":{billboard:this.props.billboard},"polygons-stroke":{billboard:this.props.billboard}},updateTriggers:{getLineColor:[this.props.selectedFeatureIndexes,this.props.mode],getFillColor:[this.props.selectedFeatureIndexes,this.props.mode],getRadius:[this.props.selectedFeatureIndexes,this.props.mode],getLineWidth:[this.props.selectedFeatureIndexes,this.props.mode]}}),xr=[new $.GeoJsonLayer($r)];return xr=xr.concat(this.createGuidesLayers(),this.createTooltipsLayers()),xr}},{key:"initializeState",value:function(){At(St(Lr.prototype),"initializeState",this).call(this),this.setState({selectedFeatures:[],editHandles:[]})}},{key:"shouldUpdateState",value:function($r){return At(St(Lr.prototype),"shouldUpdateState",this).call(this,$r)||$r.changeFlags.stateChanged}},{key:"updateState",value:function($r){var xr=$r.props,Fr=$r.oldProps,Nr=$r.changeFlags;if(At(St(Lr.prototype),"updateState",this).call(this,{oldProps:Fr,props:xr,changeFlags:Nr}),Nr.propsOrDataChanged){var Xt=Object.keys(Fr).length===0||xr.mode!==Fr.mode;if(Xt){var cr;if(typeof xr.mode=="function"){var ir=xr.mode;cr=new ir}else typeof xr.mode=="string"?(cr=mr[xr.mode],console.warn("Deprecated use of passing `mode` as a string. Pass the mode's class constructor instead.")):cr=xr.mode;cr||(console.warn("No mode configured for ".concat(String(xr.mode))),cr=new Ar),cr!==this.state.mode&&this.setState({mode:cr,cursor:null})}}var Qr=[];Array.isArray(xr.selectedFeatureIndexes)&&(Qr=xr.selectedFeatureIndexes.map(function(Or){return xr.data.features[Or]})),this.setState({selectedFeatures:Qr})}},{key:"getModeProps",value:function($r){var xr=this;return{modeConfig:$r.modeConfig,data:$r.data,selectedIndexes:$r.selectedFeatureIndexes,lastPointerMoveEvent:this.state.lastPointerMoveEvent,cursor:this.state.cursor,onEdit:function(Nr){xr.setNeedsUpdate(),$r.onEdit(Nr)},onUpdateCursor:function(Nr){xr.setState({cursor:Nr})}}}},{key:"selectionAwareAccessor",value:function($r){var xr=this;return typeof $r!="function"?$r:function(Fr){return $r(Fr,xr.isFeatureSelected(Fr),xr.props.mode)}}},{key:"isFeatureSelected",value:function($r){if(!this.props.data||!this.props.selectedFeatureIndexes||!this.props.selectedFeatureIndexes.length)return!1;var xr=this.props.data.features.indexOf($r);return this.props.selectedFeatureIndexes.includes(xr)}},{key:"getPickingInfo",value:function($r){var xr=$r.info,Fr=$r.sourceLayer;return Fr.id.endsWith("guides")&&(xr.isGuide=!0),xr}},{key:"createGuidesLayers",value:function(){var $r=this.getActiveMode(),xr=$r.getGuides(this.getModeProps(this.props));if(!xr||!xr.features.length)return[];var Fr;this.props.editHandleType==="icon"?Fr={type:$.IconLayer,iconAtlas:this.props.editHandleIconAtlas,iconMapping:this.props.editHandleIconMapping,sizeScale:this.props.editHandleIconSizeScale,getIcon:hr(this.props.getEditHandleIcon),getSize:hr(this.props.getEditHandleIconSize),getColor:hr(this.props.getEditHandleIconColor),getAngle:hr(this.props.getEditHandleIconAngle)}:Fr={type:$.ScatterplotLayer,radiusScale:this.props.editHandlePointRadiusScale,stroked:this.props.editHandlePointOutline,getLineWidth:this.props.editHandlePointStrokeWidth,radiusMinPixels:this.props.editHandlePointRadiusMinPixels,radiusMaxPixels:this.props.editHandlePointRadiusMaxPixels,getRadius:hr(this.props.getEditHandlePointRadius),getFillColor:hr(this.props.getEditHandlePointColor),getLineColor:hr(this.props.getEditHandlePointOutlineColor)};var Nr=new $.GeoJsonLayer(this.getSubLayerProps({id:"guides",data:xr,fp64:this.props.fp64,_subLayerProps:{points:Fr},lineWidthScale:this.props.lineWidthScale,lineWidthMinPixels:this.props.lineWidthMinPixels,lineWidthMaxPixels:this.props.lineWidthMaxPixels,lineWidthUnits:this.props.lineWidthUnits,lineJointRounded:this.props.lineJointRounded,lineMiterLimit:this.props.lineMiterLimit,getLineColor:hr(this.props.getTentativeLineColor),getLineWidth:hr(this.props.getTentativeLineWidth),getFillColor:hr(this.props.getTentativeFillColor)}));return[Nr]}},{key:"createTooltipsLayers",value:function(){var $r=this.getActiveMode(),xr=$r.getTooltips(this.getModeProps(this.props)),Fr=new $.TextLayer(this.getSubLayerProps({id:"tooltips",data:xr}));return[Fr]}},{key:"onLayerClick",value:function($r){this.getActiveMode().handleClick($r,this.getModeProps(this.props))}},{key:"onLayerKeyUp",value:function($r){this.getActiveMode().handleKeyUp($r,this.getModeProps(this.props))}},{key:"onStartDragging",value:function($r){this.getActiveMode().handleStartDragging($r,this.getModeProps(this.props))}},{key:"onDragging",value:function($r){this.getActiveMode().handleDragging($r,this.getModeProps(this.props))}},{key:"onStopDragging",value:function($r){this.getActiveMode().handleStopDragging($r,this.getModeProps(this.props))}},{key:"onPointerMove",value:function($r){this.setState({lastPointerMoveEvent:$r}),this.getActiveMode().handlePointerMove($r,this.getModeProps(this.props))}},{key:"getCursor",value:function($r){var xr=$r.isDragging;if(this.state===null)return null;var Fr=this.state.cursor;return Fr||(Fr=xr?"grabbing":"grab"),Fr}},{key:"getActiveMode",value:function(){return this.state.mode}}]),Lr}(et.default);j.default=vr,Rt(vr,"layerName","EditableGeoJsonLayer"),Rt(vr,"defaultProps",Zt)})(editableGeojsonLayer);var editableH3ClusterLayer={};const require$$0$2=getAugmentedNamespace(esm$1),require$$2$1=getAugmentedNamespace(h3Js_es);(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$0$2,_e=distEs6,et=require$$2$1,tt=nt(editableGeojsonLayer),rt=nt(editableLayer);function nt(sr){return sr&&sr.__esModule?sr:{default:sr}}function it(sr){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?it=function(Yt){return typeof Yt}:it=function(Yt){return Yt&&typeof Symbol=="function"&&Yt.constructor===Symbol&&Yt!==Symbol.prototype?"symbol":typeof Yt},it(sr)}function ot(sr){return dt(sr)||ft(sr)||ut(sr)||At()}function At(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ut(sr,ar){if(sr){if(typeof sr=="string")return Et(sr,ar);var Yt=Object.prototype.toString.call(sr).slice(8,-1);if(Yt==="Object"&&sr.constructor&&(Yt=sr.constructor.name),Yt==="Map"||Yt==="Set")return Array.from(Yt);if(Yt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Yt))return Et(sr,ar)}}function ft(sr){if(typeof Symbol<"u"&&Symbol.iterator in Object(sr))return Array.from(sr)}function dt(sr){if(Array.isArray(sr))return Et(sr)}function Et(sr,ar){(ar==null||ar>sr.length)&&(ar=sr.length);for(var Yt=0,pr=new Array(ar);Yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function kt(sr){return kt=Object.setPrototypeOf?Object.getPrototypeOf:function(Yt){return Yt.__proto__||Object.getPrototypeOf(Yt)},kt(sr)}function Jt(sr,ar){if(typeof ar!="function"&&ar!==null)throw new TypeError("Super expression must either be null or a function");sr.prototype=Object.create(ar&&ar.prototype,{constructor:{value:sr,writable:!0,configurable:!0}}),ar&&jt(sr,ar)}function jt(sr,ar){return jt=Object.setPrototypeOf||function(pr,Zt){return pr.__proto__=Zt,pr},jt(sr,ar)}function Ht(sr,ar){var Yt=Object.keys(sr);if(Object.getOwnPropertySymbols){var pr=Object.getOwnPropertySymbols(sr);ar&&(pr=pr.filter(function(Zt){return Object.getOwnPropertyDescriptor(sr,Zt).enumerable})),Yt.push.apply(Yt,pr)}return Yt}function Gt(sr){for(var ar=1;arRr.length)&&($r=Rr.length);for(var xr=0,Fr=new Array($r);xr<$r;xr++)Fr[xr]=Rr[xr];return Fr}function Nt(Rr,$r){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(Rr)))){var xr=[],Fr=!0,Nr=!1,Xt=void 0;try{for(var cr=Rr[Symbol.iterator](),ir;!(Fr=(ir=cr.next()).done)&&(xr.push(ir.value),!($r&&xr.length===$r));Fr=!0);}catch(Qr){Nr=!0,Xt=Qr}finally{try{!Fr&&cr.return!=null&&cr.return()}finally{if(Nr)throw Xt}}return xr}}function Ot(Rr){if(Array.isArray(Rr))return Rr}function kt(Rr,$r){if(!(Rr instanceof $r))throw new TypeError("Cannot call a class as a function")}function Jt(Rr,$r){for(var xr=0;xr<$r.length;xr++){var Fr=$r[xr];Fr.enumerable=Fr.enumerable||!1,Fr.configurable=!0,"value"in Fr&&(Fr.writable=!0),Object.defineProperty(Rr,Fr.key,Fr)}}function jt(Rr,$r,xr){return $r&&Jt(Rr.prototype,$r),xr&&Jt(Rr,xr),Rr}function Ht(Rr){return function(){var $r=Vt(Rr),xr;if(Wt()){var Fr=Vt(this).constructor;xr=Reflect.construct($r,arguments,Fr)}else xr=$r.apply(this,arguments);return Gt(this,xr)}}function Gt(Rr,$r){return $r&&(ut($r)==="object"||typeof $r=="function")?$r:Kt(Rr)}function Kt(Rr){if(Rr===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Rr}function Wt(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Vt(Rr){return Vt=Object.setPrototypeOf?Object.getPrototypeOf:function(xr){return xr.__proto__||Object.getPrototypeOf(xr)},Vt(Rr)}function ur(Rr,$r){if(typeof $r!="function"&&$r!==null)throw new TypeError("Super expression must either be null or a function");Rr.prototype=Object.create($r&&$r.prototype,{constructor:{value:Rr,writable:!0,configurable:!0}}),$r&&Ar(Rr,$r)}function Ar(Rr,$r){return Ar=Object.setPrototypeOf||function(Fr,Nr){return Fr.__proto__=Nr,Fr},Ar(Rr,$r)}function hr(Rr,$r,xr){return $r in Rr?Object.defineProperty(Rr,$r,{value:xr,enumerable:!0,configurable:!0,writable:!0}):Rr[$r]=xr,Rr}var sr={NONE:null,RECTANGLE:"rectangle",POLYGON:"polygon"};j.SELECTION_TYPE=sr;var ar=(ot={},hr(ot,sr.RECTANGLE,nt.DrawRectangleMode),hr(ot,sr.POLYGON,nt.DrawPolygonMode),ot),Yt=hr({},sr.RECTANGLE,{dragToDraw:!0}),pr={selectionType:sr.RECTANGLE,layerIds:[],onSelect:function(){}},Zt={type:"FeatureCollection",features:[]},mr=50,vr="selection-geojson",_r="selection-blocker",Er=["lineWidthScale","lineWidthMinPixels","lineWidthMaxPixels","lineWidthUnits","lineJointRounded","lineMiterLimit","pointRadiusScale","pointRadiusMinPixels","pointRadiusMaxPixels","lineDashJustified","getLineColor","getFillColor","getRadius","getLineWidth","getLineDashArray","getTentativeLineDashArray","getTentativeLineColor","getTentativeFillColor","getTentativeLineWidth"],Lr=function(Rr){ur(xr,Rr);var $r=Ht(xr);function xr(){return kt(this,xr),$r.apply(this,arguments)}return jt(xr,[{key:"_selectRectangleObjects",value:function(Nr){var Xt=this.props,cr=Xt.layerIds,ir=Xt.onSelect,Qr=this.context.viewport.project(Nr[0][0]),Or=$t(Qr,2),Yr=Or[0],wr=Or[1],rr=this.context.viewport.project(Nr[0][2]),er=$t(rr,2),lr=er[0],fr=er[1],yr=this.context.deck.pickObjects({x:Math.min(Yr,lr),y:Math.min(wr,fr),width:Math.abs(lr-Yr),height:Math.abs(fr-wr),layerIds:cr});ir({pickingInfos:yr})}},{key:"_selectPolygonObjects",value:function(Nr){var Xt=this,cr=this.props,ir=cr.layerIds,Qr=cr.onSelect,Or=Nr[0].map(function(Zr){return Xt.context.viewport.project(Zr)}),Yr=Or.map(function(Zr){return Zr[0]}),wr=Or.map(function(Zr){return Zr[1]}),rr=Math.min.apply(Math,Et(Yr)),er=Math.min.apply(Math,Et(wr)),lr=Math.max.apply(Math,Et(Yr)),fr=Math.max.apply(Math,Et(wr)),yr=(0,et.polygon)(Nr),Ur=(0,tt.default)(yr,mr),Wr;try{Wr=(0,rt.default)(Ur,yr)}catch(Zr){console.log("turfDifference() error",Zr);return}this.setState({pendingPolygonSelection:{bigPolygon:Wr}});var Pr="".concat(this.props.id,"-").concat(_r);setTimeout(function(){var Zr=Xt.context.deck.pickObjects({x:rr,y:er,width:lr-rr,height:fr-er,layerIds:[Pr].concat(Et(ir))});Qr({pickingInfos:Zr.filter(function(rn){return rn.layer.id!==Xt.props.id})})},250)}},{key:"renderLayers",value:function(){var Nr=this,Xt=this.state.pendingPolygonSelection,cr=ar[this.props.selectionType]||nt.ViewMode,ir=Yt[this.props.selectionType],Qr={};Er.forEach(function(wr){Nr.props[wr]!==void 0&&(Qr[wr]=Nr.props[wr])});var Or=[new it.default(this.getSubLayerProps(dt({id:vr,pickable:!0,mode:cr,modeConfig:ir,selectedFeatureIndexes:[],data:Zt,onEdit:function(rr){var er=rr.updatedData,lr=rr.editType;if(lr==="addFeature"){var fr=er.features[0].geometry.coordinates;Nr.props.selectionType===sr.RECTANGLE?Nr._selectRectangleObjects(fr):Nr.props.selectionType===sr.POLYGON&&Nr._selectPolygonObjects(fr)}}},Qr)))];if(Xt){var Yr=Xt.bigPolygon;Or.push(new _e.PolygonLayer(this.getSubLayerProps({id:_r,pickable:!0,stroked:!1,opacity:1,data:[Yr],getLineColor:function(rr){return[0,0,0,1]},getFillColor:function(rr){return[0,0,0,1]},getPolygon:function(rr){return rr.geometry.coordinates}})))}return Or}},{key:"shouldUpdateState",value:function(Nr){var Xt=Nr.changeFlags,cr=Xt.stateChanged,ir=Xt.propsOrDataChanged;return cr||ir}}]),xr}($.CompositeLayer);j.default=Lr,hr(Lr,"layerName","SelectionLayer"),hr(Lr,"defaultProps",pr)})(selectionLayer);var elevatedEditHandleLayer={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$2$2,_e=require$$0$4;function et($t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?et=function(wt){return typeof wt}:et=function(wt){return wt&&typeof Symbol=="function"&&wt.constructor===Symbol&&wt!==Symbol.prototype?"symbol":typeof wt},et($t)}function tt($t,Rt){if(!($t instanceof Rt))throw new TypeError("Cannot call a class as a function")}function rt($t,Rt){for(var wt=0;wt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function ft($t){return ft=Object.setPrototypeOf?Object.getPrototypeOf:function(wt){return wt.__proto__||Object.getPrototypeOf(wt)},ft($t)}function dt($t,Rt){if(typeof Rt!="function"&&Rt!==null)throw new TypeError("Super expression must either be null or a function");$t.prototype=Object.create(Rt&&Rt.prototype,{constructor:{value:$t,writable:!0,configurable:!0}}),Rt&&Et($t,Rt)}function Et($t,Rt){return Et=Object.setPrototypeOf||function(xt,Nt){return xt.__proto__=Nt,xt},Et($t,Rt)}function Bt($t,Rt,wt){return Rt in $t?Object.defineProperty($t,Rt,{value:wt,enumerable:!0,configurable:!0,writable:!0}):$t[Rt]=wt,$t}var St={},Dt=function($t){dt(wt,$t);var Rt=it(wt);function wt(){return tt(this,wt),Rt.apply(this,arguments)}return nt(wt,[{key:"renderLayers",value:function(){var Nt=new _e.ScatterplotLayer(Object.assign({},this.props,{id:"".concat(this.props.id,"-ScatterplotLayer"),data:this.props.data})),Ot=new _e.LineLayer(Object.assign({},this.props,{id:"".concat(this.props.id,"-LineLayer"),data:this.props.data,pickable:!1,getSourcePosition:function(Jt){var jt=Jt.position;return[jt[0],jt[1],0]},getTargetPosition:function(Jt){var jt=Jt.position;return[jt[0],jt[1],jt[2]||0]},getColor:[150,150,150,200],getStrokeWidth:3}));return[Nt,Ot]}}]),wt}($.CompositeLayer);j.default=Dt,Bt(Dt,"layerName","ElevatedEditHandleLayer"),Bt(Dt,"defaultProps",St)})(elevatedEditHandleLayer);var pathOutlineLayer={};const GL$1={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,FUNC_ADD:32774,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,BLEND_COLOR:32773,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,VENDOR:7936,RENDERER:7937,VERSION:7938,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,BROWSER_DEFAULT_WEBGL:37444,STATIC_DRAW:35044,STREAM_DRAW:35040,DYNAMIC_DRAW:35048,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,CULL_FACE:2884,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,BLEND:3042,DEPTH_TEST:2929,DITHER:3024,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,SCISSOR_TEST:3089,STENCIL_TEST:2960,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CONTEXT_LOST_WEBGL:37442,CW:2304,CCW:2305,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,COMPILE_STATUS:35713,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_ATTRIBUTES:35721,ACTIVE_UNIFORMS:35718,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,ALWAYS:519,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,GEQUAL:518,NOTEQUAL:517,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,TEXTURE_WIDTH:4096,TEXTURE_HEIGHT:4097,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,MAX_3D_TEXTURE_SIZE:32883,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,MAX_TEXTURE_LOD_BIAS:34045,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,RASTERIZER_DISCARD:35977,VERTEX_ARRAY_BINDING:34229,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,MAX_ELEMENT_INDEX:36203,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,RGB9_E5:35901,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,RGB10_A2UI:36975,TEXTURE_IMMUTABLE_FORMAT:37167,TEXTURE_IMMUTABLE_LEVELS:33503,UNSIGNED_INT_2_10_10_10_REV:33640,UNSIGNED_INT_10F_11F_11F_REV:35899,UNSIGNED_INT_5_9_9_9_REV:35902,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,UNSIGNED_INT_24_8:34042,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,INT_2_10_10_10_REV:36255,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,MAX_SAMPLES:36183,SAMPLER_BINDING:35097,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,UNSIGNED_NORMALIZED:35863,SIGNED_NORMALIZED:36764,VERTEX_ATTRIB_ARRAY_INTEGER:35069,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,DEPTH24_STENCIL8:35056,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,COLOR:6144,DEPTH:6145,STENCIL:6146,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,INVALID_INDEX:4294967295,TIMEOUT_IGNORED:-1,MAX_CLIENT_WAIT_TIMEOUT_WEBGL:37447,VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,UNMASKED_VENDOR_WEBGL:37445,UNMASKED_RENDERER_WEBGL:37446,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047,TEXTURE_MAX_ANISOTROPY_EXT:34046,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35986,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,UNSIGNED_INT_24_8_WEBGL:34042,HALF_FLOAT_OES:36193,RGBA32F_EXT:34836,RGB32F_EXT:34837,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT:33297,UNSIGNED_NORMALIZED_EXT:35863,MIN_EXT:32775,MAX_EXT:32776,SRGB_EXT:35904,SRGB_ALPHA_EXT:35906,SRGB8_ALPHA8_EXT:35907,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT:33296,FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723,COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067,COLOR_ATTACHMENT4_WEBGL:36068,COLOR_ATTACHMENT5_WEBGL:36069,COLOR_ATTACHMENT6_WEBGL:36070,COLOR_ATTACHMENT7_WEBGL:36071,COLOR_ATTACHMENT8_WEBGL:36072,COLOR_ATTACHMENT9_WEBGL:36073,COLOR_ATTACHMENT10_WEBGL:36074,COLOR_ATTACHMENT11_WEBGL:36075,COLOR_ATTACHMENT12_WEBGL:36076,COLOR_ATTACHMENT13_WEBGL:36077,COLOR_ATTACHMENT14_WEBGL:36078,COLOR_ATTACHMENT15_WEBGL:36079,DRAW_BUFFER0_WEBGL:34853,DRAW_BUFFER1_WEBGL:34854,DRAW_BUFFER2_WEBGL:34855,DRAW_BUFFER3_WEBGL:34856,DRAW_BUFFER4_WEBGL:34857,DRAW_BUFFER5_WEBGL:34858,DRAW_BUFFER6_WEBGL:34859,DRAW_BUFFER7_WEBGL:34860,DRAW_BUFFER8_WEBGL:34861,DRAW_BUFFER9_WEBGL:34862,DRAW_BUFFER10_WEBGL:34863,DRAW_BUFFER11_WEBGL:34864,DRAW_BUFFER12_WEBGL:34865,DRAW_BUFFER13_WEBGL:34866,DRAW_BUFFER14_WEBGL:34867,DRAW_BUFFER15_WEBGL:34868,MAX_COLOR_ATTACHMENTS_WEBGL:36063,MAX_DRAW_BUFFERS_WEBGL:34852,VERTEX_ARRAY_BINDING_OES:34229,QUERY_COUNTER_BITS_EXT:34916,CURRENT_QUERY_EXT:34917,QUERY_RESULT_EXT:34918,QUERY_RESULT_AVAILABLE_EXT:34919,TIME_ELAPSED_EXT:35007,TIMESTAMP_EXT:36392,GPU_DISJOINT_EXT:36795},esm=Object.freeze(Object.defineProperty({__proto__:null,default:GL$1},Symbol.toStringTag,{value:"Module"})),require$$1$5=getAugmentedNamespace(esm),require$$0$1=getAugmentedNamespace(esm$5);var outline$1={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $={outlineEnabled:!1,outlineRenderShadowmap:!1,outlineShadowmap:null};function _e(){var nt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$,it=nt.outlineEnabled,ot=nt.outlineRenderShadowmap,At=nt.outlineShadowmap,ut={};return it!==void 0&&(ut.outline_uEnabled=it),ot!==void 0&&(ut.outline_uRenderOutlines=ot),At!==void 0&&(ut.outline_uShadowmap=At),ut}var et=`attribute float instanceZLevel; +varying float outline_vzLevel; +varying vec4 outline_vPosition; + +// Set the z level for the outline shadowmap rendering +void outline_setZLevel(float zLevel) { + outline_vzLevel = zLevel; +} + +// Store an adjusted position for texture2DProj +void outline_setUV(vec4 position) { + // mat4( + // 0.5, 0.0, 0.0, 0.0, + // 0.0, 0.5, 0.0, 0.0, + // 0.0, 0.0, 0.5, 0.0, + // 0.5, 0.5, 0.5, 1.0 + // ) * position; + outline_vPosition = vec4(position.xyz * 0.5 + position.w * 0.5, position.w); +} +`,tt=`uniform bool outline_uEnabled; +uniform bool outline_uRenderOutlines; +uniform sampler2D outline_uShadowmap; + +varying float outline_vzLevel; +// varying vec2 outline_vUV; +varying vec4 outline_vPosition; + +const float OUTLINE_Z_LEVEL_ERROR = 0.01; + +// Return a darker color in shadowmap +vec4 outline_filterShadowColor(vec4 color) { + return vec4(outline_vzLevel / 255., outline_vzLevel / 255., outline_vzLevel / 255., 1.); +} + +// Return a darker color if in shadowmap +vec4 outline_filterDarkenColor(vec4 color) { + if (outline_uEnabled) { + float maxZLevel; + if (outline_vPosition.q > 0.0) { + maxZLevel = texture2DProj(outline_uShadowmap, outline_vPosition).r * 255.; + } else { + discard; + } + if (maxZLevel < outline_vzLevel + OUTLINE_Z_LEVEL_ERROR) { + vec4(color.rgb * 0.5, color.a); + } else { + discard; + } + } + return color; +} + +// if enabled and rendering outlines - Render depth to shadowmap +// if enabled and rendering colors - Return a darker color if in shadowmap +// if disabled, just return color +vec4 outline_filterColor(vec4 color) { + if (outline_uEnabled) { + return outline_uRenderOutlines ? + outline_filterShadowColor(color) : + outline_filterDarkenColor(color); + } + return color; +} +`,rt={name:"outline",vs:et,fs:tt,getUniforms:_e};j.default=rt})(outline$1);(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$0$4,_e=rt(require$$1$5),et=require$$0$1,tt=rt(outline$1);function rt(jt){return jt&&jt.__esModule?jt:{default:jt}}function nt(jt){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?nt=function(Gt){return typeof Gt}:nt=function(Gt){return Gt&&typeof Symbol=="function"&&Gt.constructor===Symbol&&Gt!==Symbol.prototype?"symbol":typeof Gt},nt(jt)}function it(jt,Ht){if(!(jt instanceof Ht))throw new TypeError("Cannot call a class as a function")}function ot(jt,Ht){for(var Gt=0;Gt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Dt(jt){return Dt=Object.setPrototypeOf?Object.getPrototypeOf:function(Gt){return Gt.__proto__||Object.getPrototypeOf(Gt)},Dt(jt)}function $t(jt,Ht){if(typeof Ht!="function"&&Ht!==null)throw new TypeError("Super expression must either be null or a function");jt.prototype=Object.create(Ht&&Ht.prototype,{constructor:{value:jt,writable:!0,configurable:!0}}),Ht&&Rt(jt,Ht)}function Rt(jt,Ht){return Rt=Object.setPrototypeOf||function(Kt,Wt){return Kt.__proto__=Wt,Kt},Rt(jt,Ht)}function wt(jt,Ht,Gt){return Ht in jt?Object.defineProperty(jt,Ht,{value:Gt,enumerable:!0,configurable:!0,writable:!0}):jt[Ht]=Gt,jt}function xt(jt){var Ht=jt.source,Gt=jt.code,Kt=Gt===void 0?"":Gt,Wt=/}[^{}]*$/;return Ht.replace(Wt,Kt.concat(` +} +`))}var Nt=` outline_setUV(gl_Position); + outline_setZLevel(instanceZLevel); +`,Ot=` gl_FragColor = outline_filterColor(gl_FragColor); +`,kt={getZLevel:{type:"accessor",value:0}},Jt=function(jt){$t(Gt,jt);var Ht=dt(Gt);function Gt(){return it(this,Gt),Ht.apply(this,arguments)}return At(Gt,[{key:"getShaders",value:function(){var Wt=ut(Dt(Gt.prototype),"getShaders",this).call(this);return Object.assign({},Wt,{modules:Wt.modules.concat([tt.default]),vs:xt({source:Wt.vs,code:Nt}),fs:xt({source:Wt.fs,code:Ot})})}},{key:"initializeState",value:function(Wt){ut(Dt(Gt.prototype),"initializeState",this).call(this,Wt),this.setState({outlineFramebuffer:new et.Framebuffer(Wt.gl),dummyTexture:new et.Texture2D(Wt.gl)}),this.state.attributeManager.addInstanced({instanceZLevel:{size:1,type:_e.default.UNSIGNED_BYTE,update:this.calculateZLevels,accessor:"getZLevel"}})}},{key:"draw",value:function(Wt){Wt.moduleParameters,Wt.parameters;var Vt=Wt.uniforms;Wt.context;var ur=this.props,Ar=ur.rounded,hr=ur.miterLimit,sr=ur.widthScale,ar=ur.widthMinPixels,Yt=ur.widthMaxPixels,pr=ur.dashJustified;Vt=Object.assign({},Vt,{jointType:Number(Ar),alignMode:Number(pr),widthScale:sr,miterLimit:hr,widthMinPixels:ar,widthMaxPixels:Yt});var Zt=this.state,mr=Zt.outlineFramebuffer,vr=Zt.dummyTexture;mr.resize(),mr.clear({color:!0,depth:!0}),this.state.model.updateModuleSettings({outlineEnabled:!0,outlineRenderShadowmap:!0,outlineShadowmap:vr}),this.state.model.draw({uniforms:Object.assign({},Vt,{jointType:0,widthScale:this.props.widthScale*1.3}),parameters:{depthTest:!1,blendEquation:_e.default.MAX},framebuffer:mr}),this.state.model.updateModuleSettings({outlineEnabled:!0,outlineRenderShadowmap:!1,outlineShadowmap:mr}),this.state.model.draw({uniforms:Object.assign({},Vt,{jointType:Number(Ar),widthScale:this.props.widthScale}),parameters:{depthTest:!1}})}},{key:"calculateZLevels",value:function(Wt){var Vt=this.props.getZLevel,ur=this.state.pathTesselator;Wt.value=ur._updateAttribute({target:Wt.value,size:1,getValue:function(hr,sr){return[Vt(hr,sr)||0]}})}}]),Gt}($.PathLayer);j.default=Jt,wt(Jt,"layerName","PathOutlineLayer"),wt(Jt,"defaultProps",kt)})(pathOutlineLayer);var pathMarkerLayer={};const require$$2$5=getAugmentedNamespace(esm$2);var arrow2dGeometry={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$0$1;function _e(Et){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_e=function(St){return typeof St}:_e=function(St){return St&&typeof Symbol=="function"&&St.constructor===Symbol&&St!==Symbol.prototype?"symbol":typeof St},_e(Et)}function et(Et,Bt){if(!(Et instanceof Bt))throw new TypeError("Cannot call a class as a function")}function tt(Et){return function(){var Bt=ot(Et),St;if(it()){var Dt=ot(this).constructor;St=Reflect.construct(Bt,arguments,Dt)}else St=Bt.apply(this,arguments);return rt(this,St)}}function rt(Et,Bt){return Bt&&(_e(Bt)==="object"||typeof Bt=="function")?Bt:nt(Et)}function nt(Et){if(Et===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Et}function it(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function ot(Et){return ot=Object.setPrototypeOf?Object.getPrototypeOf:function(St){return St.__proto__||Object.getPrototypeOf(St)},ot(Et)}function At(Et,Bt){if(typeof Bt!="function"&&Bt!==null)throw new TypeError("Super expression must either be null or a function");Et.prototype=Object.create(Bt&&Bt.prototype,{constructor:{value:Et,writable:!0,configurable:!0}}),Bt&&ut(Et,Bt)}function ut(Et,Bt){return ut=Object.setPrototypeOf||function(Dt,$t){return Dt.__proto__=$t,Dt},ut(Et,Bt)}var ft=function(Et){At(St,Et);var Bt=tt(St);function St(){var Dt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return et(this,St),Bt.call(this,Object.assign({},Dt,{attributes:dt(Dt)}))}return St}($.Geometry);j.default=ft;function dt(Et){for(var Bt=Et.length,St=Bt===void 0?1:Bt,Dt=Et.headSize,$t=Dt===void 0?.2:Dt,Rt=Et.tailWidth,wt=Rt===void 0?.05:Rt,xt=Et.tailStart,Nt=xt===void 0?.05:xt,Ot=[.5,1,0,.5-$t/2,1-$t,0,.5+$t/2,1-$t,0,.5-wt/2,Nt,0,.5+wt/2,1-$t,0,.5+wt/2,Nt,0,.5-wt/2,Nt,0,.5-wt/2,1-$t,0,.5+wt/2,1-$t,0],kt=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1],Jt=new Array(Ot.length),jt=0;jt"u"||ut[Symbol.iterator]==null){if(Array.isArray(ut)||(ut=et(ut))){var ft=0,dt=function(){};return{s:dt,n:function(){return ft>=ut.length?{done:!0}:{done:!1,value:ut[ft++]}},e:function(Rt){throw Rt},f:dt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Et,Bt=!0,St=!1,Dt;return{s:function(){Et=ut[Symbol.iterator]()},n:function(){var Rt=Et.next();return Bt=Rt.done,Rt},e:function(Rt){St=!0,Dt=Rt},f:function(){try{!Bt&&Et.return!=null&&Et.return()}finally{if(St)throw Dt}}}}function et(ut,ft){if(ut){if(typeof ut=="string")return tt(ut,ft);var dt=Object.prototype.toString.call(ut).slice(8,-1);if(dt==="Object"&&ut.constructor&&(dt=ut.constructor.name),dt==="Map"||dt==="Set")return Array.from(dt);if(dt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(dt))return tt(ut,ft)}}function tt(ut,ft){(ft==null||ft>ut.length)&&(ft=ut.length);for(var dt=0,Et=new Array(ft);dt$t));xt++)wt=Rt;var Nt=ft[xt+1].clone().subtract(ft[xt]).normalize(),Ot=$t-wt,kt=Nt.clone().multiply(new $.Vector2(Ot,Ot)).add(ft[xt]),Jt=new $.Vector2(Dt(ft[xt+1])).subtract(Dt(ft[xt])),jt=Jt.verticalAngle()*180/Math.PI;return{position:[kt.x,kt.y,0],angle:jt,color:Bt,object:St}}})(createPathMarkers);var polyline={};Object.defineProperty(polyline,"__esModule",{value:!0});polyline.getClosestPointOnLine=getClosestPointOnLine;polyline.getClosestPointOnPolyline=getClosestPointOnPolyline;var _math=require$$0;function getClosestPointOnLine(j){var $=j.p,_e=j.p1,et=j.p2,tt=j.clampToLine,rt=tt===void 0?!0:tt,nt=new _math.Vector3(et).subtract(_e),it=new _math.Vector3($).subtract(_e),ot=nt.dot(it);return rt&&(ot=(0,_math.clamp)(ot,0,1)),nt.lerp(ot)}function getClosestPointOnPolyline(j){var $=j.p,_e=j.points;$=new _math.Vector3($);for(var et=null,tt=1/0,rt=-1,nt=0;nt<_e.length-1;++nt){var it=_e[nt],ot=_e[nt+1],At=getClosestPointOnLine({p:$,p1:it,p2:ot}),ut=$.distanceSquared(At);utsr.length)&&(ar=sr.length);for(var Yt=0,pr=new Array(ar);Yt"u"||!(Symbol.iterator in Object(sr)))){var Yt=[],pr=!0,Zt=!1,mr=void 0;try{for(var vr=sr[Symbol.iterator](),_r;!(pr=(_r=vr.next()).done)&&(Yt.push(_r.value),!(ar&&Yt.length===ar));pr=!0);}catch(Er){Zt=!0,mr=Er}finally{try{!pr&&vr.return!=null&&vr.return()}finally{if(Zt)throw mr}}return Yt}}function St(sr){if(Array.isArray(sr))return sr}function Dt(sr,ar){if(!(sr instanceof ar))throw new TypeError("Cannot call a class as a function")}function $t(sr,ar){for(var Yt=0;Yt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function kt(sr){return kt=Object.setPrototypeOf?Object.getPrototypeOf:function(Yt){return Yt.__proto__||Object.getPrototypeOf(Yt)},kt(sr)}function Jt(sr,ar){if(typeof ar!="function"&&ar!==null)throw new TypeError("Super expression must either be null or a function");sr.prototype=Object.create(ar&&ar.prototype,{constructor:{value:sr,writable:!0,configurable:!0}}),ar&&jt(sr,ar)}function jt(sr,ar){return jt=Object.setPrototypeOf||function(pr,Zt){return pr.__proto__=Zt,pr},jt(sr,ar)}function Ht(sr,ar,Yt){return ar in sr?Object.defineProperty(sr,ar,{value:Yt,enumerable:!0,configurable:!0,writable:!0}):sr[ar]=Yt,sr}var Gt=.1,Kt=.2,Wt=.05,Vt=et.SimpleMeshLayer,ur={mesh:new rt.default({headSize:Kt,tailWidth:Wt})},Ar=Object.assign({},tt.default.defaultProps,{MarkerLayer:Vt,markerLayerProps:ur,sizeScale:100,fp64:!1,hightlightIndex:-1,highlightPoint:null,getPath:function(ar){return ar.path},getColor:function(ar){return ar.color},getMarkerColor:function(ar){return[0,0,0,255]},getDirection:function(ar){return ar.direction},getMarkerPercentages:function(ar,Yt){var pr=Yt.lineLength;return pr>Gt?[.25,.5,.75]:[.5]}}),hr=function(sr){Jt(Yt,sr);var ar=wt(Yt);function Yt(){return Dt(this,Yt),ar.apply(this,arguments)}return Rt(Yt,[{key:"initializeState",value:function(){this.state={markers:[],mesh:new rt.default({headSize:Kt,tailWidth:Wt}),closestPoint:null}}},{key:"projectFlat",value:function(Zt,mr,vr,_r){if(vr===$.COORDINATE_SYSTEM.METER_OFFSETS){var Er=mr.metersToLngLatDelta(Zt),Lr=ut(Er,2),Rr=Lr[0],$r=Lr[1],xr=ut(_r,2),Fr=xr[0],Nr=xr[1];return mr.projectFlat([Fr+Rr,$r+Nr])}else if(vr===$.COORDINATE_SYSTEM.LNGLAT_OFFSETS){var Xt=ut(Zt,2),cr=Xt[0],ir=Xt[1],Qr=ut(_r,2),Or=Qr[0],Yr=Qr[1];return mr.projectFlat([Or+cr,ir+Yr])}return mr.projectFlat(Zt)}},{key:"updateState",value:function(Zt){var mr=this,vr=Zt.props,_r=Zt.oldProps,Er=Zt.changeFlags;if(Er.dataChanged||Er.updateTriggersChanged){var Lr=this.props,Rr=Lr.data,$r=Lr.getPath,xr=Lr.getDirection,Fr=Lr.getMarkerColor,Nr=Lr.getMarkerPercentages,Xt=Lr.coordinateSystem,cr=Lr.coordinateOrigin,ir=this.context.viewport,Qr=function(Yr){return mr.projectFlat(Yr,ir,Xt,cr)};this.state.markers=(0,nt.default)({data:Rr,getPath:$r,getDirection:xr,getColor:Fr,getMarkerPercentages:Nr,projectFlat:Qr}),this._recalculateClosestPoint()}Er.propsChanged&&vr.point!==_r.point&&this._recalculateClosestPoint()}},{key:"_recalculateClosestPoint",value:function(){var Zt=this.props,mr=Zt.highlightPoint,vr=Zt.highlightIndex;if(mr&&vr>=0){var _r=this.props.data[vr],Er=this.props.getPath(_r),Lr=(0,it.getClosestPointOnPolyline)({points:Er,p:mr}),Rr=Lr.point;this.state.closestPoints=[{position:Rr}]}else this.state.closestPoints=[]}},{key:"getPickingInfo",value:function(Zt){var mr=Zt.info;return Object.assign(mr,{object:mr.object&&mr.object.path||mr.object})}},{key:"renderLayers",value:function(){return[new tt.default(this.props,this.getSubLayerProps({id:"paths",data:this.props.data})),new this.props.MarkerLayer(this.getSubLayerProps(Object.assign({},this.props.markerLayerProps,{id:"markers",data:this.state.markers,getOrientation:function(mr){return[0,-mr.angle,0]},getColor:function(mr){return mr.color},sizeScale:this.props.sizeScale,fp64:this.props.fp64,pickable:!1,parameters:{blend:!1,depthTest:!1}}))),this.state.closestPoints&&new _e.ScatterplotLayer({id:"".concat(this.props.id,"-highlight"),data:this.state.closestPoints,fp64:this.props.fp64})]}}]),Yt}($.CompositeLayer);j.default=hr,Ht(hr,"layerName","PathMarkerLayer"),Ht(hr,"defaultProps",Ar)})(pathMarkerLayer);var junctionScatterplotLayer={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$2$2,_e=require$$0$4;function et(Rt){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?et=function(xt){return typeof xt}:et=function(xt){return xt&&typeof Symbol=="function"&&xt.constructor===Symbol&&xt!==Symbol.prototype?"symbol":typeof xt},et(Rt)}function tt(Rt,wt){var xt=Object.keys(Rt);if(Object.getOwnPropertySymbols){var Nt=Object.getOwnPropertySymbols(Rt);wt&&(Nt=Nt.filter(function(Ot){return Object.getOwnPropertyDescriptor(Rt,Ot).enumerable})),xt.push.apply(xt,Nt)}return xt}function rt(Rt){for(var wt=1;wt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Et(Rt){return Et=Object.setPrototypeOf?Object.getPrototypeOf:function(xt){return xt.__proto__||Object.getPrototypeOf(xt)},Et(Rt)}function Bt(Rt,wt){if(typeof wt!="function"&&wt!==null)throw new TypeError("Super expression must either be null or a function");Rt.prototype=Object.create(wt&&wt.prototype,{constructor:{value:Rt,writable:!0,configurable:!0}}),wt&&St(Rt,wt)}function St(Rt,wt){return St=Object.setPrototypeOf||function(Nt,Ot){return Nt.__proto__=Ot,Nt},St(Rt,wt)}function Dt(Rt,wt,xt){return wt in Rt?Object.defineProperty(Rt,wt,{value:xt,enumerable:!0,configurable:!0,writable:!0}):Rt[wt]=xt,Rt}var $t=function(Rt){Bt(xt,Rt);var wt=At(xt);function xt(){return nt(this,xt),wt.apply(this,arguments)}return ot(xt,[{key:"renderLayers",value:function(){var Ot=this.props,kt=Ot.id,Jt=Ot.getFillColor,jt=Ot.getStrokeColor,Ht=Ot.getInnerRadius,Gt=Ot.updateTriggers;return[new _e.ScatterplotLayer(rt({},this.props,{id:"".concat(kt,"-full"),data:this.props.data,getLineColor:jt,updateTriggers:rt({},Gt,{getStrokeColor:Gt.getStrokeColor})})),new _e.ScatterplotLayer(rt({},this.props,{id:"".concat(kt,"-inner"),data:this.props.data,getFillColor:Jt,getRadius:Ht,pickable:!1,updateTriggers:rt({},Gt,{getFillColor:Gt.getFillColor,getRadius:Gt.getInnerRadius})}))]}}]),xt}($.CompositeLayer);j.default=$t,Dt($t,"layerName","JunctionScatterplotLayer"),Dt($t,"defaultProps",rt({},_e.ScatterplotLayer.defaultProps,{getFillColor:function(wt){return[0,0,0,255]},getStrokeColor:function(wt){return[255,255,255,255]},getInnerRadius:function(wt){return 1}}))})(junctionScatterplotLayer);var utils$1={};Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.toDeckColor=toDeckColor$1;utils$1.recursivelyTraverseNestedArrays=recursivelyTraverseNestedArrays$1;utils$1.generatePointsParallelToLinePoints=generatePointsParallelToLinePoints;utils$1.distance2d=distance2d;utils$1.mix=mix;utils$1.nearestPointOnProjectedLine=nearestPointOnProjectedLine;var _destination=_interopRequireDefault$k(js$h),_bearing=_interopRequireDefault$k(js$g),_pointToLineDistance=_interopRequireDefault$k(js$f),_helpers=js$v,_viewportMercatorProject=_interopRequireDefault$k(require$$4$1);function _interopRequireDefault$k(j){return j&&j.__esModule?j:{default:j}}function _slicedToArray(j,$){return _arrayWithHoles(j)||_iterableToArrayLimit(j,$)||_unsupportedIterableToArray$1(j,$)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _iterableToArrayLimit(j,$){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(j)))){var _e=[],et=!0,tt=!1,rt=void 0;try{for(var nt=j[Symbol.iterator](),it;!(et=(it=nt.next()).done)&&(_e.push(it.value),!($&&_e.length===$));et=!0);}catch(ot){tt=!0,rt=ot}finally{try{!et&&nt.return!=null&&nt.return()}finally{if(tt)throw rt}}return _e}}function _arrayWithHoles(j){if(Array.isArray(j))return j}function _toConsumableArray$1(j){return _arrayWithoutHoles$1(j)||_iterableToArray$1(j)||_unsupportedIterableToArray$1(j)||_nonIterableSpread$1()}function _nonIterableSpread$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$1(j,$){if(j){if(typeof j=="string")return _arrayLikeToArray$1(j,$);var _e=Object.prototype.toString.call(j).slice(8,-1);if(_e==="Object"&&j.constructor&&(_e=j.constructor.name),_e==="Map"||_e==="Set")return Array.from(_e);if(_e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(_e))return _arrayLikeToArray$1(j,$)}}function _iterableToArray$1(j){if(typeof Symbol<"u"&&Symbol.iterator in Object(j))return Array.from(j)}function _arrayWithoutHoles$1(j){if(Array.isArray(j))return _arrayLikeToArray$1(j)}function _arrayLikeToArray$1(j,$){($==null||$>j.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function toDeckColor$1(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[255,0,0,255];return Array.isArray(j)?[j[0]*255,j[1]*255,j[2]*255,j[3]*255]:$}function recursivelyTraverseNestedArrays$1(j,$,_e){if(!Array.isArray(j[0]))return!0;for(var et=0;etj.length)&&($=j.length);for(var _e=0,et=new Array($);_e<$;_e++)et[_e]=j[_e];return et}function toDeckColor(j){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[255,0,0,255];return Array.isArray(j)?[j[0]*255,j[1]*255,j[2]*255,j[3]*255]:$}function recursivelyTraverseNestedArrays(j,$,_e){if(!Array.isArray(j[0]))return!0;for(var et=0;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Bt(wt){return Bt=Object.setPrototypeOf?Object.getPrototypeOf:function(Nt){return Nt.__proto__||Object.getPrototypeOf(Nt)},Bt(wt)}function St(wt,xt){if(typeof xt!="function"&&xt!==null)throw new TypeError("Super expression must either be null or a function");wt.prototype=Object.create(xt&&xt.prototype,{constructor:{value:wt,writable:!0,configurable:!0}}),xt&&Dt(wt,xt)}function Dt(wt,xt){return Dt=Object.setPrototypeOf||function(Ot,kt){return Ot.__proto__=kt,Ot},Dt(wt,xt)}function $t(wt,xt,Nt){return xt in wt?Object.defineProperty(wt,xt,{value:Nt,enumerable:!0,configurable:!0,writable:!0}):wt[xt]=Nt,wt}var Rt=function(wt){St(Nt,wt);var xt=ut(Nt);function Nt(Ot){var kt;return it(this,Nt),kt=xt.call(this,Ot),$t(dt(kt),"deckCache",void 0),kt.deckCache=new tt.default(Ot.getData,function(Jt){return Ot.toNebulaFeature(Jt)}),kt.enablePicking=!0,kt}return At(Nt,[{key:"render",value:function(kt){kt.nebula;var Jt=[0,0,0,255],jt=this.deckCache,Ht=jt.objects,Gt=jt.updateTrigger;return new $.JunctionScatterplotLayer({id:"junctions-".concat(this.id),data:Ht,opacity:1,fp64:!1,pickable:!0,getPosition:function(Wt){return Wt.geoJson.geometry.coordinates},getFillColor:function(Wt){return(0,et.toDeckColor)(Wt.style.fillColor)||Jt},getStrokeColor:function(Wt){return(0,et.toDeckColor)(Wt.style.outlineColor)||(0,et.toDeckColor)(Wt.style.fillColor)||Jt},getRadius:function(Wt){return Wt.style.pointRadiusMeters+Wt.style.outlineRadiusMeters||1},getInnerRadius:function(Wt){return Wt.style.pointRadiusMeters||.5},parameters:{depthTest:!1,blend:!1},updateTriggers:{all:Gt},nebulaLayer:this})}}]),Nt}(_e.default);j.default=Rt})(junctionsLayer);var textsLayer={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=require$$0$4,_e=rt(nebulaLayer),et=utils,tt=rt(deckCache);function rt(wt){return wt&&wt.__esModule?wt:{default:wt}}function nt(wt){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?nt=function(Nt){return typeof Nt}:nt=function(Nt){return Nt&&typeof Symbol=="function"&&Nt.constructor===Symbol&&Nt!==Symbol.prototype?"symbol":typeof Nt},nt(wt)}function it(wt,xt){if(!(wt instanceof xt))throw new TypeError("Cannot call a class as a function")}function ot(wt,xt){for(var Nt=0;Nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Bt(wt){return Bt=Object.setPrototypeOf?Object.getPrototypeOf:function(Nt){return Nt.__proto__||Object.getPrototypeOf(Nt)},Bt(wt)}function St(wt,xt){if(typeof xt!="function"&&xt!==null)throw new TypeError("Super expression must either be null or a function");wt.prototype=Object.create(xt&&xt.prototype,{constructor:{value:wt,writable:!0,configurable:!0}}),xt&&Dt(wt,xt)}function Dt(wt,xt){return Dt=Object.setPrototypeOf||function(Ot,kt){return Ot.__proto__=kt,Ot},Dt(wt,xt)}function $t(wt,xt,Nt){return xt in wt?Object.defineProperty(wt,xt,{value:Nt,enumerable:!0,configurable:!0,writable:!0}):wt[xt]=Nt,wt}var Rt=function(wt){St(Nt,wt);var xt=ut(Nt);function Nt(Ot){var kt;return it(this,Nt),kt=xt.call(this,Ot),$t(dt(kt),"deckCache",void 0),kt.deckCache=new tt.default(Ot.getData,function(Jt){return Ot.toNebulaFeature(Jt)}),kt}return At(Nt,[{key:"render",value:function(kt){var Jt=kt.nebula,jt=[0,0,0,255],Ht=this.deckCache,Gt=Ht.objects,Kt=Ht.updateTrigger,Wt=Jt.props.viewport.zoom;return new $.TextLayer({id:"texts-".concat(this.id),data:Gt,opacity:1,fp64:!1,pickable:!1,getText:function(ur){return ur.style.text},getPosition:function(ur){return ur.geoJson.geometry.coordinates},getColor:function(ur){return(0,et.toDeckColor)(ur.style.fillColor)||jt},sizeScale:1/Math.pow(2,20-Wt),updateTriggers:{all:Kt},nebulaLayer:this})}}]),Nt}(_e.default);j.default=Rt})(textsLayer);var segmentsLayer={};(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=distEs6$1,_e=require$$1$5,et=style$1$1,tt=ot(nebulaLayer),rt=utils,nt=ot(deckCache),it;function ot(kt){return kt&&kt.__esModule?kt:{default:kt}}function At(kt){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?At=function(jt){return typeof jt}:At=function(jt){return jt&&typeof Symbol=="function"&&jt.constructor===Symbol&&jt!==Symbol.prototype?"symbol":typeof jt},At(kt)}function ut(kt,Jt){if(!(kt instanceof Jt))throw new TypeError("Cannot call a class as a function")}function ft(kt,Jt){for(var jt=0;jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function $t(kt){return $t=Object.setPrototypeOf?Object.getPrototypeOf:function(jt){return jt.__proto__||Object.getPrototypeOf(jt)},$t(kt)}function Rt(kt,Jt){if(typeof Jt!="function"&&Jt!==null)throw new TypeError("Super expression must either be null or a function");kt.prototype=Object.create(Jt&&Jt.prototype,{constructor:{value:kt,writable:!0,configurable:!0}}),Jt&&wt(kt,Jt)}function wt(kt,Jt){return wt=Object.setPrototypeOf||function(Ht,Gt){return Ht.__proto__=Gt,Ht},wt(kt,Jt)}function xt(kt,Jt,jt){return Jt in kt?Object.defineProperty(kt,Jt,{value:jt,enumerable:!0,configurable:!0,writable:!0}):kt[Jt]=jt,kt}var Nt=(it={},xt(it,et.ArrowStyles.NONE,{forward:!1,backward:!1}),xt(it,et.ArrowStyles.FORWARD,{forward:!0,backward:!1}),xt(it,et.ArrowStyles.BACKWARD,{forward:!1,backward:!0}),xt(it,et.ArrowStyles.BOTH,{forward:!0,backward:!0}),it),Ot=function(kt){Rt(jt,kt);var Jt=Et(jt);function jt(Ht){var Gt;ut(this,jt),Gt=Jt.call(this,Ht),xt(St(Gt),"deckCache",void 0),xt(St(Gt),"noBlend",void 0),xt(St(Gt),"highlightColor",void 0),xt(St(Gt),"arrowSize",void 0),xt(St(Gt),"rounded",void 0),xt(St(Gt),"dashed",void 0),xt(St(Gt),"markerLayerProps",void 0),Gt.deckCache=new nt.default(Ht.getData,function(Zt){return Ht.toNebulaFeature(Zt)}),Gt.enableSelection=!0;var Kt=Ht.enablePicking,Wt=Kt===void 0?!0:Kt,Vt=Ht.noBlend,ur=Vt===void 0?!1:Vt,Ar=Ht.rounded,hr=Ar===void 0?!0:Ar,sr=Ht.dashed,ar=sr===void 0?!1:sr,Yt=Ht.markerLayerProps,pr=Yt===void 0?null:Yt;return Object.assign(St(Gt),{enablePicking:Wt,noBlend:ur,rounded:hr,dashed:ar,markerLayerProps:pr}),Gt}return dt(jt,[{key:"getMouseOverSegment",value:function(){return null}},{key:"_calcMarkerPercentages",value:function(Gt){var Kt=Gt.style.arrowPercentages;if(Kt)return Kt;var Wt=Gt.style.arrowStyle||et.DEFAULT_STYLE.arrowStyle;if(Wt===et.ArrowStyles.NONE)return[];var Vt=Math.min(Gt.style.arrowCount||et.DEFAULT_STYLE.arrowCount,et.MAX_ARROWS);return[[.5],[.33,.66],[.25,.5,.75]][Vt-1]}},{key:"_getHighlightedObjectIndex",value:function(Gt){var Kt=Gt.nebula,Wt=Kt.deckglMouseOverInfo;if(Wt){var Vt=Wt.originalLayer,ur=Wt.index;if(Vt===this)return ur}return-1}},{key:"render",value:function(Gt){var Kt=Gt.nebula,Wt=[0,0,0,255],Vt=this.deckCache,ur=Vt.objects,Ar=Vt.updateTrigger;return new $.PathMarkerLayer({id:"segments-".concat(this.id),data:ur,opacity:1,fp64:!1,rounded:this.rounded,pickable:!0,sizeScale:this.arrowSize||6,parameters:{depthTest:!1,blend:!this.noBlend,blendEquation:_e.GL.MAX},getPath:function(sr){return sr.geoJson.geometry.coordinates},getColor:function(sr){return(0,rt.toDeckColor)(sr.style.lineColor,Wt)},getWidth:function(sr){return sr.style.lineWidthMeters||1},getZLevel:function(sr){return sr.style.zLevel*255},getDirection:function(sr){return Nt[sr.style.arrowStyle]},getMarkerColor:function(sr){return(0,rt.toDeckColor)(sr.style.arrowColor,Wt)},getMarkerPercentages:this._calcMarkerPercentages,updateTriggers:{all:Ar},highlightedObjectIndex:this._getHighlightedObjectIndex({nebula:Kt}),highlightColor:(0,rt.toDeckColor)(this.highlightColor),dashJustified:this.dashed,getDashArray:this.dashed?function(hr){return hr.style.dashArray}:null,markerLayerProps:this.markerLayerProps||$.PathMarkerLayer.defaultProps.markerLayerProps,nebulaLayer:this})}}]),jt}(tt.default);j.default=Ot})(segmentsLayer);var nebula={},topLevel=typeof commonjsGlobal<"u"?commonjsGlobal:typeof window<"u"?window:{},minDoc=require$$0$6,doccy;typeof document<"u"?doccy=document:(doccy=topLevel["__GLOBAL_DOCUMENT_CACHE@4"],doccy||(doccy=topLevel["__GLOBAL_DOCUMENT_CACHE@4"]=minDoc));var document_1=doccy;(function(j){Object.defineProperty(j,"__esModule",{value:!0}),j.default=void 0;var $=eventsExports,_e=it(document_1),et=require$$2$2,tt=it(deckDrawer),rt=it(layerMouseEvent),nt=it(nebulaLayer);function it(xt){return xt&&xt.__esModule?xt:{default:xt}}function ot(xt){return dt(xt)||ft(xt)||ut(xt)||At()}function At(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ut(xt,Nt){if(xt){if(typeof xt=="string")return Et(xt,Nt);var Ot=Object.prototype.toString.call(xt).slice(8,-1);if(Ot==="Object"&&xt.constructor&&(Ot=xt.constructor.name),Ot==="Map"||Ot==="Set")return Array.from(Ot);if(Ot==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Ot))return Et(xt,Nt)}}function ft(xt){if(typeof Symbol<"u"&&Symbol.iterator in Object(xt))return Array.from(xt)}function dt(xt){if(Array.isArray(xt))return Et(xt)}function Et(xt,Nt){(Nt==null||Nt>xt.length)&&(Nt=xt.length);for(var Ot=0,kt=new Array(Nt);Ot0)return!0;if(!Jt.getBoundingClientRect)return!1;var Gt=Jt.getBoundingClientRect();return Math.round(Gt.width)===Math.round(Ht.width)&&Math.round(Gt.height)===Math.round(Ht.height)}},{key:"getMouseGroundPosition",value:function(Ot){return this.wmViewport.unproject([Ot.offsetX,Ot.offsetY])}},{key:"unprojectMousePosition",value:function(Ot){return this.wmViewport.unproject(Ot)}},{key:"_handleDeckGLEvent",value:function(Ot){var kt=this.deckgl,Jt=this.props,jt=Jt.onMapMouseEvent,Ht=Jt.selectionType,Gt=Jt.eventFilter,Kt=!0,Wt="auto";if(Ot&&kt&&Ht){this._deckDrawer||(this._deckDrawer=new tt.default(this));var Vt=this.getMouseGroundPosition(Ot);if(Gt&&!Gt(Vt,Ot))return;var ur=this._deckDrawer.handleEvent(Ot,Vt,Ht);ur.redraw&&this.forceUpdate();return}if(Ot&&kt&&(!Ot.buttons||Ot.type!=="mousemove")){var Ar=kt.props.layers.filter(function(Er){return Er&&Er.props&&Er.props.nebulaLayer&&Er.props.nebulaLayer.enablePicking}).map(function(Er){return Er.id}),hr=kt.pickObject({x:Ot.offsetX,y:Ot.offsetY,radius:5,layerIds:Ar});if(this.queryObjectEvents.emit("pick",{event:Ot,pickingInfo:hr}),hr){Kt=!1;var sr=hr.index,ar=hr.lngLat;if(Gt&&!Gt(ar,Ot))return;var Yt=hr.layer,pr=hr.object;Yt&&Yt.props&&Yt.props.nebulaLayer&&Yt.props.nebulaLayer.eventHandler&&Yt.props.nebulaLayer.eventHandler(Ot,hr);var Zt=pr.original||Yt.props.nebulaLayer&&Yt.props.nebulaLayer.deckCache&&Yt.props.nebulaLayer.deckCache.originals[sr];if(Zt){this.deckglMouseOverInfo={originalLayer:Yt.props.nebulaLayer,index:sr};var mr=new rt.default(Ot,{data:Zt,metadata:pr.metadata,groundPoint:ar,nebula:this});Yt.props.nebulaLayer.emit(Ot.type,mr),this.forceUpdate()}Wt="pointer"}}if(_e.default.documentElement&&(_e.default.documentElement.style.cursor=Wt),Kt){this.deckglMouseOverInfo=null;var vr=this.getMouseGroundPosition(Ot);if(Gt&&!Gt(vr,Ot))return;var _r=new rt.default(Ot,{groundPoint:vr,nebula:this});this.getAllLayers().filter(function(Er){return Er&&Er.usesMapEvents}).forEach(function(Er){return Er.emit("mapMouseEvent",_r)}),this.getAllLayers().filter(function(Er){return Er&&Er.props&&Er.props.nebulaLayer&&Er.props.nebulaLayer.mapMouseEvent}).forEach(function(Er){return Er.props.nebulaLayer.mapMouseEvent(_r,Er)}),jt&&jt(Ot,vr)}}},{key:"getExtraDeckLayers",value:function(){var Ot=[];return this._deckDrawer&&Ot.push.apply(Ot,ot(this._deckDrawer.render())),Ot}},{key:"renderDeckLayers",value:function(){var Ot=this;return this.getAllLayers().map(function(kt){return kt instanceof nt.default?kt.render({nebula:Ot}):kt}).filter(Boolean)}},{key:"getAllLayers",value:function(){var Ot=[];return this.props.layers.filter(Boolean).forEach(function(kt){Ot.push(kt),kt instanceof nt.default&&Ot.push.apply(Ot,ot(kt.helperLayers))}),Ot.filter(Boolean)}},{key:"getRenderedLayers",value:function(){return[].concat(ot(this.renderDeckLayers()),ot(this.getExtraDeckLayers()))}},{key:"updateAndGetRenderedLayers",value:function(Ot,kt,Jt){return this.inited?(this.updateProps({layers:Ot,viewport:kt}),this.forceUpdate=function(){return Jt.forceUpdate()}):(this.inited=!0,this.init({layers:Ot,viewport:kt}),this.forceUpdate=function(){return Jt.forceUpdate()},this.updateAllDeckObjects()),this.getRenderedLayers()}},{key:"setDeck",value:function(Ot){Ot&&(this.deckgl=Ot)}},{key:"setMainContainer",value:function(Ot){Ot&&(this.mainContainer=Ot)}}]),xt}();j.default=wt})(nebula);(function(j){Object.defineProperty(j,"__esModule",{value:!0}),Object.defineProperty(j,"ArrowStyles",{enumerable:!0,get:function(){return $.ArrowStyles}}),Object.defineProperty(j,"DEFAULT_ARROWS",{enumerable:!0,get:function(){return $.DEFAULT_ARROWS}}),Object.defineProperty(j,"MAX_ARROWS",{enumerable:!0,get:function(){return $.MAX_ARROWS}}),Object.defineProperty(j,"SELECTION_TYPE",{enumerable:!0,get:function(){return _e.SELECTION_TYPE}}),Object.defineProperty(j,"Feature",{enumerable:!0,get:function(){return et.default}}),Object.defineProperty(j,"LayerMouseEvent",{enumerable:!0,get:function(){return tt.default}}),Object.defineProperty(j,"NebulaLayer",{enumerable:!0,get:function(){return rt.default}}),Object.defineProperty(j,"JunctionsLayer",{enumerable:!0,get:function(){return nt.default}}),Object.defineProperty(j,"TextsLayer",{enumerable:!0,get:function(){return it.default}}),Object.defineProperty(j,"SegmentsLayer",{enumerable:!0,get:function(){return ot.default}}),Object.defineProperty(j,"NebulaCore",{enumerable:!0,get:function(){return At.default}}),Object.defineProperty(j,"toDeckColor",{enumerable:!0,get:function(){return ut.toDeckColor}}),Object.defineProperty(j,"EditableGeoJsonLayer",{enumerable:!0,get:function(){return ft.EditableGeoJsonLayer}}),Object.defineProperty(j,"SelectionLayer",{enumerable:!0,get:function(){return ft.SelectionLayer}}),Object.defineProperty(j,"ElevatedEditHandleLayer",{enumerable:!0,get:function(){return ft.ElevatedEditHandleLayer}}),Object.defineProperty(j,"PathOutlineLayer",{enumerable:!0,get:function(){return ft.PathOutlineLayer}}),Object.defineProperty(j,"PathMarkerLayer",{enumerable:!0,get:function(){return ft.PathMarkerLayer}}),Object.defineProperty(j,"GeoJsonEditMode",{enumerable:!0,get:function(){return dt.GeoJsonEditMode}}),Object.defineProperty(j,"ModifyMode",{enumerable:!0,get:function(){return dt.ModifyMode}}),Object.defineProperty(j,"ResizeCircleMode",{enumerable:!0,get:function(){return dt.ResizeCircleMode}}),Object.defineProperty(j,"TranslateMode",{enumerable:!0,get:function(){return dt.TranslateMode}}),Object.defineProperty(j,"ScaleMode",{enumerable:!0,get:function(){return dt.ScaleMode}}),Object.defineProperty(j,"RotateMode",{enumerable:!0,get:function(){return dt.RotateMode}}),Object.defineProperty(j,"DuplicateMode",{enumerable:!0,get:function(){return dt.DuplicateMode}}),Object.defineProperty(j,"ExtendLineStringMode",{enumerable:!0,get:function(){return dt.ExtendLineStringMode}}),Object.defineProperty(j,"SplitPolygonMode",{enumerable:!0,get:function(){return dt.SplitPolygonMode}}),Object.defineProperty(j,"ExtrudeMode",{enumerable:!0,get:function(){return dt.ExtrudeMode}}),Object.defineProperty(j,"ElevationMode",{enumerable:!0,get:function(){return dt.ElevationMode}}),Object.defineProperty(j,"TransformMode",{enumerable:!0,get:function(){return dt.TransformMode}}),Object.defineProperty(j,"DrawPointMode",{enumerable:!0,get:function(){return dt.DrawPointMode}}),Object.defineProperty(j,"DrawLineStringMode",{enumerable:!0,get:function(){return dt.DrawLineStringMode}}),Object.defineProperty(j,"DrawPolygonMode",{enumerable:!0,get:function(){return dt.DrawPolygonMode}}),Object.defineProperty(j,"DrawRectangleMode",{enumerable:!0,get:function(){return dt.DrawRectangleMode}}),Object.defineProperty(j,"DrawSquareFromCenterMode",{enumerable:!0,get:function(){return dt.DrawSquareFromCenterMode}}),Object.defineProperty(j,"DrawCircleByDiameterMode",{enumerable:!0,get:function(){return dt.DrawCircleByDiameterMode}}),Object.defineProperty(j,"DrawCircleFromCenterMode",{enumerable:!0,get:function(){return dt.DrawCircleFromCenterMode}}),Object.defineProperty(j,"DrawEllipseByBoundingBoxMode",{enumerable:!0,get:function(){return dt.DrawEllipseByBoundingBoxMode}}),Object.defineProperty(j,"DrawEllipseUsingThreePointsMode",{enumerable:!0,get:function(){return dt.DrawEllipseUsingThreePointsMode}}),Object.defineProperty(j,"DrawRectangleUsingThreePointsMode",{enumerable:!0,get:function(){return dt.DrawRectangleUsingThreePointsMode}}),Object.defineProperty(j,"Draw90DegreePolygonMode",{enumerable:!0,get:function(){return dt.Draw90DegreePolygonMode}}),Object.defineProperty(j,"DrawPolygonByDraggingMode",{enumerable:!0,get:function(){return dt.DrawPolygonByDraggingMode}}),Object.defineProperty(j,"ImmutableFeatureCollection",{enumerable:!0,get:function(){return dt.ImmutableFeatureCollection}}),Object.defineProperty(j,"ViewMode",{enumerable:!0,get:function(){return dt.ViewMode}}),Object.defineProperty(j,"MeasureDistanceMode",{enumerable:!0,get:function(){return dt.MeasureDistanceMode}}),Object.defineProperty(j,"MeasureAreaMode",{enumerable:!0,get:function(){return dt.MeasureAreaMode}}),Object.defineProperty(j,"MeasureAngleMode",{enumerable:!0,get:function(){return dt.MeasureAngleMode}}),Object.defineProperty(j,"CompositeMode",{enumerable:!0,get:function(){return dt.CompositeMode}}),Object.defineProperty(j,"SnappableMode",{enumerable:!0,get:function(){return dt.SnappableMode}});var $=style$1$1,_e=deckDrawer,et=Et(feature),tt=Et(layerMouseEvent),rt=Et(nebulaLayer),nt=Et(junctionsLayer),it=Et(textsLayer),ot=Et(segmentsLayer),At=Et(nebula),ut=utils,ft=distEs6$1,dt=distEs6;function Et(Bt){return Bt&&Bt.__esModule?Bt:{default:Bt}}})(distEs6$2);const EDIT_TYPE_ADD="addFeature",EDIT_TYPE_CLEAR="clearFeatures";class ClickableDrawPolygonByDraggingMode extends distEs6.DrawPolygonByDraggingMode{handleClick($,_e){_e.onEdit({editType:EDIT_TYPE_CLEAR})}}const MODE_MAP={[distEs6$2.SELECTION_TYPE.POLYGON]:ClickableDrawPolygonByDraggingMode},defaultProps$f={layerIds:[],onSelect:()=>{}},EMPTY_DATA={type:"FeatureCollection",features:[]},LAYER_ID_GEOJSON="selection-geojson",PASS_THROUGH_PROPS=["lineWidthScale","lineWidthMinPixels","lineWidthMaxPixels","lineWidthUnits","lineJointRounded","lineMiterLimit","pointRadiusScale","pointRadiusMinPixels","pointRadiusMaxPixels","lineDashJustified","getLineColor","getFillColor","getPointRadius","getLineWidth","getLineDashArray","getTentativeLineDashArray","getTentativeLineColor","getTentativeFillColor","getTentativeLineWidth","editHandlePointRadiusScale","editHandlePointRadiusMinPixels","editHandlePointRadiusMaxPixels","getEditHandlePointColor","getEditHandlePointRadius","modeHandlers"];class SelectionLayer extends CompositeLayer{_selectPolygonObjects($){const{flipY:_e,obsLayers:et}=this.props,tt=_e?$.map(nt=>nt.map(it=>[it[0],-it[1]])):$,rt=polygon(tt);et.forEach(nt=>{const{getObsCoords:it,obsQuadTree:ot,obsIndex:At,onSelect:ut}=nt,ft=[];ot==null||ot.visit((Et,Bt,St,Dt,$t)=>{const wt=polygon([[[Bt,St],[Dt,St],[Dt,$t],[Bt,$t],[Bt,St]]]),xt=booleanContains(wt,rt),Nt=booleanWithin(wt,rt),Ot=booleanOverlap(wt,rt);return!xt&&!Nt&&!Ot?!0:(Et.data&&booleanPointInPolygon$1(point([].slice.call(it(Et.data))),rt)&&ft.push(Et.data),!1)});const dt=ft.map(Et=>At[Et]);ut(dt)})}_selectEmpty(){const{obsLayers:$}=this.props;$.forEach(_e=>{const{onSelect:et}=_e;et([])})}renderLayers(){const $=MODE_MAP[this.props.selectionType]||distEs6.ViewMode,_e={};return PASS_THROUGH_PROPS.forEach(tt=>{this.props[tt]!==void 0&&(_e[tt]=this.props[tt])}),[new distEs6$1.EditableGeoJsonLayer(this.getSubLayerProps({id:LAYER_ID_GEOJSON,pickable:!0,mode:$,modeConfig:{dragToDraw:!0},selectedFeatureIndexes:[],data:EMPTY_DATA,onEdit:({updatedData:tt,editType:rt})=>{if(rt===EDIT_TYPE_ADD){const{coordinates:nt}=tt.features[0].geometry;this._selectPolygonObjects(nt)}else rt===EDIT_TYPE_CLEAR&&this._selectEmpty()},_subLayerProps:{guides:{pointType:"circle",_subLayerProps:{"points-circle":{type:ScatterplotLayer,radiusScale:1,stroked:!0,getLineWidth:1,radiusMinPixels:1,radiusMaxPixels:3,getPointRadius:2}}}},..._e}))]}}SelectionLayer.layerName="SelectionLayer";SelectionLayer.defaultProps=defaultProps$f;const TILE_SIZE=4096,DATA_TEXTURE_SIZE=4096,COLOR_BAR_SIZE=20,AXIS_LABEL_TEXT_SIZE=11,AXIS_TITLE_TEXT_SIZE=15,AXIS_MARGIN=3,THEME_TO_TEXT_COLOR={dark:[224,224,224],light:[64,64,64]},AXIS_FONT_FAMILY="-apple-system, 'Helvetica Neue', Arial, sans-serif",PIXELATED_TEXTURE_PARAMETERS={[GL$1.TEXTURE_MIN_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_MAG_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},GLSL_COLORMAPS=["plasma","viridis","jet"],GLSL_COLORMAP_DEFAULT="plasma",COLORMAP_SHADER_PLACEHOLDER="COLORMAP_FUNC",colormaps=`#define GLSLIFY 1 +vec4 plasma (float x_4) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.050980392156862744,0.03137254901960784,0.5294117647058824,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.29411764705882354,0.011764705882352941,0.6313725490196078,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.49019607843137253,0.011764705882352941,0.6588235294117647,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6588235294117647,0.13333333333333333,0.5882352941176471,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.796078431372549,0.27450980392156865,0.4745098039215686,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8980392156862745,0.4196078431372549,0.36470588235294116,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9725490196078431,0.5803921568627451,0.2549019607843137,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9921568627450981,0.7647058823529411,0.1568627450980392,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9411764705882353,0.9764705882352941,0.12941176470588237,1); + float a0 = smoothstep(e0,e1,x_4); + float a1 = smoothstep(e1,e2,x_4); + float a2 = smoothstep(e2,e3,x_4); + float a3 = smoothstep(e3,e4,x_4); + float a4 = smoothstep(e4,e5,x_4); + float a5 = smoothstep(e5,e6,x_4); + float a6 = smoothstep(e6,e7,x_4); + float a7 = smoothstep(e7,e8,x_4); + return max(mix(v0,v1,a0)*step(e0,x_4)*step(x_4,e1), + max(mix(v1,v2,a1)*step(e1,x_4)*step(x_4,e2), + max(mix(v2,v3,a2)*step(e2,x_4)*step(x_4,e3), + max(mix(v3,v4,a3)*step(e3,x_4)*step(x_4,e4), + max(mix(v4,v5,a4)*step(e4,x_4)*step(x_4,e5), + max(mix(v5,v6,a5)*step(e5,x_4)*step(x_4,e6), + max(mix(v6,v7,a6)*step(e6,x_4)*step(x_4,e7),mix(v7,v8,a7)*step(e7,x_4)*step(x_4,e8) + ))))))); +} + +vec4 viridis (float x_1) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.26666666666666666,0.00392156862745098,0.32941176470588235,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.2784313725490196,0.17254901960784313,0.47843137254901963,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.23137254901960785,0.3176470588235294,0.5450980392156862,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.17254901960784313,0.44313725490196076,0.5568627450980392,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.12941176470588237,0.5647058823529412,0.5529411764705883,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.15294117647058825,0.6784313725490196,0.5058823529411764,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.3607843137254902,0.7843137254901961,0.38823529411764707,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.6666666666666666,0.8627450980392157,0.19607843137254902,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9921568627450981,0.9058823529411765,0.1450980392156863,1); + float a0 = smoothstep(e0,e1,x_1); + float a1 = smoothstep(e1,e2,x_1); + float a2 = smoothstep(e2,e3,x_1); + float a3 = smoothstep(e3,e4,x_1); + float a4 = smoothstep(e4,e5,x_1); + float a5 = smoothstep(e5,e6,x_1); + float a6 = smoothstep(e6,e7,x_1); + float a7 = smoothstep(e7,e8,x_1); + return max(mix(v0,v1,a0)*step(e0,x_1)*step(x_1,e1), + max(mix(v1,v2,a1)*step(e1,x_1)*step(x_1,e2), + max(mix(v2,v3,a2)*step(e2,x_1)*step(x_1,e3), + max(mix(v3,v4,a3)*step(e3,x_1)*step(x_1,e4), + max(mix(v4,v5,a4)*step(e4,x_1)*step(x_1,e5), + max(mix(v5,v6,a5)*step(e5,x_1)*step(x_1,e6), + max(mix(v6,v7,a6)*step(e6,x_1)*step(x_1,e7),mix(v7,v8,a7)*step(e7,x_1)*step(x_1,e8) + ))))))); +} + +vec4 greys (float x_10) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x_10); + return mix(v0,v1,a0)*step(e0,x_10)*step(x_10,e1); +} + +vec4 magma (float x_7) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.01568627450980392,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.10980392156862745,0.06274509803921569,0.26666666666666666,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.30980392156862746,0.07058823529411765,0.4823529411764706,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.5058823529411764,0.1450980392156863,0.5058823529411764,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7098039215686275,0.21176470588235294,0.47843137254901963,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8980392156862745,0.3137254901960784,0.39215686274509803,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.984313725490196,0.5294117647058824,0.3803921568627451,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.996078431372549,0.7607843137254902,0.5294117647058824,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9882352941176471,0.9921568627450981,0.7490196078431373,1); + float a0 = smoothstep(e0,e1,x_7); + float a1 = smoothstep(e1,e2,x_7); + float a2 = smoothstep(e2,e3,x_7); + float a3 = smoothstep(e3,e4,x_7); + float a4 = smoothstep(e4,e5,x_7); + float a5 = smoothstep(e5,e6,x_7); + float a6 = smoothstep(e6,e7,x_7); + float a7 = smoothstep(e7,e8,x_7); + return max(mix(v0,v1,a0)*step(e0,x_7)*step(x_7,e1), + max(mix(v1,v2,a1)*step(e1,x_7)*step(x_7,e2), + max(mix(v2,v3,a2)*step(e2,x_7)*step(x_7,e3), + max(mix(v3,v4,a3)*step(e3,x_7)*step(x_7,e4), + max(mix(v4,v5,a4)*step(e4,x_7)*step(x_7,e5), + max(mix(v5,v6,a5)*step(e5,x_7)*step(x_7,e6), + max(mix(v6,v7,a6)*step(e6,x_7)*step(x_7,e7),mix(v7,v8,a7)*step(e7,x_7)*step(x_7,e8) + ))))))); +} + +vec4 jet (float x_8) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.5137254901960784,1); + const float e1 = 0.125; + const vec4 v1 = vec4(0,0.23529411764705882,0.6666666666666666,1); + const float e2 = 0.375; + const vec4 v2 = vec4(0.0196078431372549,1,1,1); + const float e3 = 0.625; + const vec4 v3 = vec4(1,1,0,1); + const float e4 = 0.875; + const vec4 v4 = vec4(0.9803921568627451,0,0,1); + const float e5 = 1.0; + const vec4 v5 = vec4(0.5019607843137255,0,0,1); + float a0 = smoothstep(e0,e1,x_8); + float a1 = smoothstep(e1,e2,x_8); + float a2 = smoothstep(e2,e3,x_8); + float a3 = smoothstep(e3,e4,x_8); + float a4 = smoothstep(e4,e5,x_8); + return max(mix(v0,v1,a0)*step(e0,x_8)*step(x_8,e1), + max(mix(v1,v2,a1)*step(e1,x_8)*step(x_8,e2), + max(mix(v2,v3,a2)*step(e2,x_8)*step(x_8,e3), + max(mix(v3,v4,a3)*step(e3,x_8)*step(x_8,e4),mix(v4,v5,a4)*step(e4,x_8)*step(x_8,e5) + )))); +} + +vec4 bone (float x_11) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.376; + const vec4 v1 = vec4(0.32941176470588235,0.32941176470588235,0.4549019607843137,1); + const float e2 = 0.753; + const vec4 v2 = vec4(0.6627450980392157,0.7843137254901961,0.7843137254901961,1); + const float e3 = 1.0; + const vec4 v3 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x_11); + float a1 = smoothstep(e1,e2,x_11); + float a2 = smoothstep(e2,e3,x_11); + return max(mix(v0,v1,a0)*step(e0,x_11)*step(x_11,e1), + max(mix(v1,v2,a1)*step(e1,x_11)*step(x_11,e2),mix(v2,v3,a2)*step(e2,x_11)*step(x_11,e3) + )); +} + +vec4 copper (float x_6) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.804; + const vec4 v1 = vec4(1,0.6274509803921569,0.4,1); + const float e2 = 1.0; + const vec4 v2 = vec4(1,0.7803921568627451,0.4980392156862745,1); + float a0 = smoothstep(e0,e1,x_6); + float a1 = smoothstep(e1,e2,x_6); + return max(mix(v0,v1,a0)*step(e0,x_6)*step(x_6,e1),mix(v1,v2,a1)*step(e1,x_6)*step(x_6,e2) + ); +} + +vec4 density (float x_5) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.21176470588235294,0.054901960784313725,0.1411764705882353,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.34901960784313724,0.09019607843137255,0.3137254901960784,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.43137254901960786,0.17647058823529413,0.5176470588235295,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.47058823529411764,0.30196078431372547,0.6980392156862745,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.47058823529411764,0.44313725490196076,0.8352941176470589,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.45098039215686275,0.592156862745098,0.8941176470588236,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.5254901960784314,0.7254901960784313,0.8901960784313725,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.6941176470588235,0.8392156862745098,0.8901960784313725,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9019607843137255,0.9450980392156862,0.9450980392156862,1); + float a0 = smoothstep(e0,e1,x_5); + float a1 = smoothstep(e1,e2,x_5); + float a2 = smoothstep(e2,e3,x_5); + float a3 = smoothstep(e3,e4,x_5); + float a4 = smoothstep(e4,e5,x_5); + float a5 = smoothstep(e5,e6,x_5); + float a6 = smoothstep(e6,e7,x_5); + float a7 = smoothstep(e7,e8,x_5); + return max(mix(v0,v1,a0)*step(e0,x_5)*step(x_5,e1), + max(mix(v1,v2,a1)*step(e1,x_5)*step(x_5,e2), + max(mix(v2,v3,a2)*step(e2,x_5)*step(x_5,e3), + max(mix(v3,v4,a3)*step(e3,x_5)*step(x_5,e4), + max(mix(v4,v5,a4)*step(e4,x_5)*step(x_5,e5), + max(mix(v5,v6,a5)*step(e5,x_5)*step(x_5,e6), + max(mix(v6,v7,a6)*step(e6,x_5)*step(x_5,e7),mix(v7,v8,a7)*step(e7,x_5)*step(x_5,e8) + ))))))); +} + +vec4 inferno (float x_3) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.01568627450980392,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.12156862745098039,0.047058823529411764,0.2823529411764706,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.3333333333333333,0.058823529411764705,0.42745098039215684,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.5333333333333333,0.13333333333333333,0.41568627450980394,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7294117647058823,0.21176470588235294,0.3333333333333333,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8901960784313725,0.34901960784313724,0.2,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9764705882352941,0.5490196078431373,0.0392156862745098,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9764705882352941,0.788235294117647,0.19607843137254902,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9882352941176471,1,0.6431372549019608,1); + float a0 = smoothstep(e0,e1,x_3); + float a1 = smoothstep(e1,e2,x_3); + float a2 = smoothstep(e2,e3,x_3); + float a3 = smoothstep(e3,e4,x_3); + float a4 = smoothstep(e4,e5,x_3); + float a5 = smoothstep(e5,e6,x_3); + float a6 = smoothstep(e6,e7,x_3); + float a7 = smoothstep(e7,e8,x_3); + return max(mix(v0,v1,a0)*step(e0,x_3)*step(x_3,e1), + max(mix(v1,v2,a1)*step(e1,x_3)*step(x_3,e2), + max(mix(v2,v3,a2)*step(e2,x_3)*step(x_3,e3), + max(mix(v3,v4,a3)*step(e3,x_3)*step(x_3,e4), + max(mix(v4,v5,a4)*step(e4,x_3)*step(x_3,e5), + max(mix(v5,v6,a5)*step(e5,x_3)*step(x_3,e6), + max(mix(v6,v7,a6)*step(e6,x_3)*step(x_3,e7),mix(v7,v8,a7)*step(e7,x_3)*step(x_3,e8) + ))))))); +} + +vec4 cool (float x_2) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.49019607843137253,0,0.7019607843137254,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.4549019607843137,0,0.8549019607843137,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.3843137254901961,0.2901960784313726,0.9294117647058824,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.26666666666666666,0.5725490196078431,0.9058823529411765,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0,0.8,0.7725490196078432,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0,0.9686274509803922,0.5725490196078431,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0,1,0.34509803921568627,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.1568627450980392,1,0.03137254901960784,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.5764705882352941,1,0,1); + float a0 = smoothstep(e0,e1,x_2); + float a1 = smoothstep(e1,e2,x_2); + float a2 = smoothstep(e2,e3,x_2); + float a3 = smoothstep(e3,e4,x_2); + float a4 = smoothstep(e4,e5,x_2); + float a5 = smoothstep(e5,e6,x_2); + float a6 = smoothstep(e6,e7,x_2); + float a7 = smoothstep(e7,e8,x_2); + return max(mix(v0,v1,a0)*step(e0,x_2)*step(x_2,e1), + max(mix(v1,v2,a1)*step(e1,x_2)*step(x_2,e2), + max(mix(v2,v3,a2)*step(e2,x_2)*step(x_2,e3), + max(mix(v3,v4,a3)*step(e3,x_2)*step(x_2,e4), + max(mix(v4,v5,a4)*step(e4,x_2)*step(x_2,e5), + max(mix(v5,v6,a5)*step(e5,x_2)*step(x_2,e6), + max(mix(v6,v7,a6)*step(e6,x_2)*step(x_2,e7),mix(v7,v8,a7)*step(e7,x_2)*step(x_2,e8) + ))))))); +} + +vec4 hot (float x_0) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.3; + const vec4 v1 = vec4(0.9019607843137255,0,0,1); + const float e2 = 0.6; + const vec4 v2 = vec4(1,0.8235294117647058,0,1); + const float e3 = 1.0; + const vec4 v3 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x_0); + float a1 = smoothstep(e1,e2,x_0); + float a2 = smoothstep(e2,e3,x_0); + return max(mix(v0,v1,a0)*step(e0,x_0)*step(x_0,e1), + max(mix(v1,v2,a1)*step(e1,x_0)*step(x_0,e2),mix(v2,v3,a2)*step(e2,x_0)*step(x_0,e3) + )); +} + +vec4 spring (float x_14) { + const float e0 = 0.0; + const vec4 v0 = vec4(1,0,1,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,0,1); + float a0 = smoothstep(e0,e1,x_14); + return mix(v0,v1,a0)*step(e0,x_14)*step(x_14,e1); +} + +vec4 summer (float x_9) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0.5019607843137255,0.4,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,0.4,1); + float a0 = smoothstep(e0,e1,x_9); + return mix(v0,v1,a0)*step(e0,x_9)*step(x_9,e1); +} + +vec4 autumn (float x_13) { + const float e0 = 0.0; + const vec4 v0 = vec4(1,0,0,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,0,1); + float a0 = smoothstep(e0,e1,x_13); + return mix(v0,v1,a0)*step(e0,x_13)*step(x_13,e1); +} + +vec4 winter (float x_12) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,1,1); + const float e1 = 1.0; + const vec4 v1 = vec4(0,1,0.5019607843137255,1); + float a0 = smoothstep(e0,e1,x_12); + return mix(v0,v1,a0)*step(e0,x_12)*step(x_12,e1); +} +`,vertexShader$1=` +#define SHADER_NAME heatmap-bitmap-layer-vertex-shader + +attribute vec2 texCoords; +attribute vec3 positions; +attribute vec3 positions64Low; + +varying vec2 vTexCoord; + +const vec3 pickingColor = vec3(1.0, 0.0, 0.0); + +void main(void) { + geometry.worldPosition = positions; + geometry.uv = texCoords; + geometry.pickingColor = pickingColor; + + gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + vTexCoord = texCoords; + + vec4 color = vec4(0.0); + DECKGL_FILTER_COLOR(color, geometry); +} +`,fragmentShader$1=` +#define SHADER_NAME heatmap-bitmap-layer-fragment-shader + +#ifdef GL_ES +precision mediump float; +#endif + +${colormaps} + +// The texture (GL.LUMINANCE & Uint8Array). +uniform sampler2D uBitmapTexture; + +// What are the dimensions of the texture (width, height)? +uniform vec2 uTextureSize; + +// How many consecutive pixels should be aggregated together along each axis? +uniform vec2 uAggSize; + +// What are the values of the color scale sliders? +uniform vec2 uColorScaleRange; + +// The texture coordinate, varying (interpolated between values set by the vertex shader). +varying vec2 vTexCoord; + +void main(void) { + // Compute 1 pixel in texture coordinates + vec2 onePixel = vec2(1.0, 1.0) / uTextureSize; + + vec2 viewCoord = vec2(floor(vTexCoord.x * uTextureSize.x), floor(vTexCoord.y * uTextureSize.y)); + + // Compute (x % aggSizeX, y % aggSizeY). + // These values will be the number of values to the left / above the current position to consider. + vec2 modAggSize = vec2(-1.0 * mod(viewCoord.x, uAggSize.x), -1.0 * mod(viewCoord.y, uAggSize.y)); + + // Take the sum of values along each axis. + float intensitySum = 0.0; + vec2 offsetPixels = vec2(0.0, 0.0); + + for(int i = 0; i < 16; i++) { + // Check to break outer loop early. + // Uniforms cannot be used as conditions in GLSL for loops. + if(float(i) >= uAggSize.y) { + // Done in the y direction. + break; + } + + offsetPixels = vec2(offsetPixels.x, (modAggSize.y + float(i)) * onePixel.y); + + for(int j = 0; j < 16; j++) { + // Check to break inner loop early. + // Uniforms cannot be used as conditions in GLSL for loops. + if(float(j) >= uAggSize.x) { + // Done in the x direction. + break; + } + + offsetPixels = vec2((modAggSize.x + float(j)) * onePixel.x, offsetPixels.y); + intensitySum += texture2D(uBitmapTexture, vTexCoord + offsetPixels).r; + } + } + + // Compute the mean value. + float intensityMean = intensitySum / (uAggSize.x * uAggSize.y); + + // Re-scale using the color scale slider values. + float scaledIntensityMean = (intensityMean - uColorScaleRange[0]) / max(0.005, (uColorScaleRange[1] - uColorScaleRange[0])); + + gl_FragColor = COLORMAP_FUNC(clamp(scaledIntensityMean, 0.0, 1.0)); + + geometry.uv = vTexCoord; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,defaultProps$e={image:{type:"object",value:null,async:!0},colormap:{type:"string",value:GLSL_COLORMAP_DEFAULT,compare:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},aggSizeX:{type:"number",value:8,compare:!0},aggSizeY:{type:"number",value:8,compare:!0},colorScaleLo:{type:"number",value:0,compare:!0},colorScaleHi:{type:"number",value:1,compare:!0}};class HeatmapBitmapLayer extends BitmapLayer$1{_getShaders($){return this.props.extensions.forEach(_e=>{$=mergeShaders($,_e.getShaders.call(this,_e))}),$}getShaders(){const{colormap:$}=this.props,_e=GLSL_COLORMAPS.includes($)?fragmentShader$1.replace(COLORMAP_SHADER_PLACEHOLDER,$):fragmentShader$1.replace(COLORMAP_SHADER_PLACEHOLDER,GLSL_COLORMAP_DEFAULT);return this._getShaders({vs:vertexShader$1,fs:_e,modules:[project32,picking]})}updateState($){var _e;super.updateState($),this.loadTexture(this.props.image);const{props:et,oldProps:tt}=$;if(et.colormap!==tt.colormap){const{gl:rt}=this.context;(_e=this.state.model)==null||_e.delete(),this.state.model=this._getModel(rt),this.getAttributeManager().invalidateAll()}}draw($){const{uniforms:_e}=$,{bitmapTexture:et,model:tt}=this.state,{aggSizeX:rt,aggSizeY:nt,colorScaleLo:it,colorScaleHi:ot}=this.props;et&&tt&&tt.setUniforms(Object.assign({},_e,{uBitmapTexture:et,uTextureSize:[TILE_SIZE,TILE_SIZE],uAggSize:[rt,nt],uColorScaleRange:[it,ot]})).draw()}loadTexture($){const{gl:_e}=this.context;this.state.bitmapTexture&&this.state.bitmapTexture.delete(),$ instanceof Texture2D?this.setState({bitmapTexture:$}):$&&this.setState({bitmapTexture:new Texture2D(_e,{data:$,mipmaps:!1,parameters:PIXELATED_TEXTURE_PARAMETERS,format:GL$1.LUMINANCE,dataFormat:GL$1.LUMINANCE,type:GL$1.UNSIGNED_BYTE,width:TILE_SIZE,height:TILE_SIZE})})}}HeatmapBitmapLayer.layerName="HeatmapBitmapLayer";HeatmapBitmapLayer.defaultProps=defaultProps$e;const defaultProps$d={...BitmapLayer$1.defaultProps,image:{type:"object",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]}};class PixelatedBitmapLayer extends CompositeLayer{renderLayers(){const{image:$}=this.props;return new BitmapLayer$1(this.props,{id:`${this.props.id}-wrapped`,image:$,textureParameters:PIXELATED_TEXTURE_PARAMETERS})}}PixelatedBitmapLayer.layerName="PixelatedBitmapLayer";PixelatedBitmapLayer.defaultProps=defaultProps$d;class HeatmapCompositeTextLayer extends CompositeLayer{_renderAxisTopLayers(){const{axisTopLabelData:$,matrixLeft:_e,width:et,matrixWidth:tt,viewWidth:rt,theme:nt,targetX:it,targetY:ot,axisTopTitle:At,cellWidth:ut,axisOffsetTop:ft,scaleFactor:dt,hideTopLabels:Et}=this.props,Bt=ut>=AXIS_LABEL_TEXT_SIZE,St=ot+(ft-AXIS_MARGIN)/2/dt;return Et?[]:[new TextLayer({id:"axisTopLabels",coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:$,getText:Dt=>Dt[1],getPosition:Dt=>[_e+(Dt[0]+.5)/et*tt,St],getTextAnchor:"start",getColor:()=>THEME_TO_TEXT_COLOR[nt],getSize:Bt?AXIS_LABEL_TEXT_SIZE:0,getAngle:75,fontFamily:AXIS_FONT_FAMILY,updateTriggers:{getPosition:[St,_e,tt,rt],getSize:[Bt],getColor:[nt]}}),new TextLayer({id:"axisTopTitle",coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[{title:At}],getText:Dt=>Dt.title,getPosition:[it,ot],getTextAnchor:"middle",getColor:()=>THEME_TO_TEXT_COLOR[nt],getSize:Bt?0:AXIS_TITLE_TEXT_SIZE,getAngle:0,fontFamily:AXIS_FONT_FAMILY,updateTriggers:{getSize:[Bt],getColor:[nt]}})]}_renderCornerLayers(){const{theme:$,targetX:_e,targetY:et,axisOffsetTop:tt,scaleFactor:rt,cellColorLabelsData:nt,axisOffsetLeft:it,transpose:ot}=this.props,At=et+(tt-AXIS_MARGIN)/2/rt,ut=_e+(it-AXIS_MARGIN)/2/rt;return nt.map(ft=>new TextLayer({id:`cellColorLabel-${ft[0]}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[ft],getText:dt=>dt[1],getTextAnchor:ot?"end":"start",getAlignmentBaseline:"top",getColor:()=>THEME_TO_TEXT_COLOR[$],getSize:AXIS_LABEL_TEXT_SIZE,getPosition:dt=>[ot?ut:_e+((-nt.length+dt[0]*2)*COLOR_BAR_SIZE+AXIS_MARGIN)/2/rt,ot?et+((-nt.length+dt[0]*2)*COLOR_BAR_SIZE+AXIS_MARGIN)/2/rt:At],getAngle:ot?0:90,fontFamily:AXIS_FONT_FAMILY}))}_renderAxisLeftLayers(){const{axisLeftLabelData:$,matrixTop:_e,height:et,matrixHeight:tt,viewHeight:rt,theme:nt,axisLeftTitle:it,targetX:ot,targetY:At,cellHeight:ut,axisOffsetLeft:ft,scaleFactor:dt,hideLeftLabels:Et}=this.props,Bt=ut>=AXIS_LABEL_TEXT_SIZE,St=ot+(ft-AXIS_MARGIN)/2/dt;return Et?[]:[new TextLayer({id:"axisLeftLabels",coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:$,getText:Dt=>Dt[1],getPosition:Dt=>[St,_e+(Dt[0]+.5)/et*tt],getTextAnchor:"end",getColor:()=>THEME_TO_TEXT_COLOR[nt],getSize:Bt?AXIS_LABEL_TEXT_SIZE:0,getAngle:0,fontFamily:AXIS_FONT_FAMILY,updateTriggers:{getPosition:[St,_e,tt,rt],getSize:[Bt],getColor:[nt]}}),new TextLayer({id:"axisLeftTitle",coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[{title:it}],getText:Dt=>Dt.title,getPosition:[ot,At],getTextAnchor:"middle",getColor:()=>THEME_TO_TEXT_COLOR[nt],getSize:Bt?0:AXIS_TITLE_TEXT_SIZE,getAngle:90,fontFamily:AXIS_FONT_FAMILY,updateTriggers:{getSize:[Bt],getColor:[nt]}})]}renderLayers(){const{axis:$}=this.props;return $==="left"?this._renderAxisLeftLayers():$==="top"?this._renderAxisTopLayers():$==="corner"?this._renderCornerLayers():[]}}HeatmapCompositeTextLayer.layerName="HeatmapCompositeTextLayer";const vertexShader=` +#define SHADER_NAME heatmap-bitmap-layer-vertex-shader + +attribute vec2 texCoords; +attribute vec3 positions; +attribute vec3 positions64Low; + +varying vec2 vTexCoord; + +const vec3 pickingColor = vec3(1.0, 0.0, 0.0); + +void main(void) { + geometry.worldPosition = positions; + geometry.uv = texCoords; + geometry.pickingColor = pickingColor; + + gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + + vTexCoord = texCoords; + + vec4 color = vec4(0.0); + DECKGL_FILTER_COLOR(color, geometry); +} +`,fragmentShader=` +#define SHADER_NAME heatmap-bitmap-layer-fragment-shader + +#ifdef GL_ES +precision mediump float; +#endif + +${colormaps} + +// The texture (GL.LUMINANCE & Uint8Array). +uniform sampler2D uBitmapTexture; + +// height x width of the data matrix (i.e x and y are flipped compared to the graphics convention) +uniform vec2 uOrigDataSize; +uniform vec2 uReshapedDataSize; + +uniform vec2 tileIJ; +uniform vec2 dataIJ; +uniform vec2 numTiles; + +// What are the dimensions of the texture (width, height)? +uniform vec2 uTextureSize; + +// How many consecutive pixels should be aggregated together along each axis? +uniform vec2 uAggSize; + +// What are the values of the color scale sliders? +uniform vec2 uColorScaleRange; + +// The texture coordinate, varying (interpolated between values set by the vertex shader). +varying vec2 vTexCoord; + +vec2 offsetvTexcoord(vec2 coord) { + float xTileToDataRatio = uTextureSize.x / uOrigDataSize.y; + float yTileToDataRatio = uTextureSize.y / uOrigDataSize.x; + vec2 vTexCoordOffset = vec2( + (tileIJ.y * xTileToDataRatio) + (coord.x * xTileToDataRatio), + (tileIJ.x * yTileToDataRatio) + ((1. - coord.y) * yTileToDataRatio) + ); + return vTexCoordOffset; +} + +vec2 dataCoordinateFromvTexCoordOffset(vec2 vTexCoordOffset) { + + // True pixel coordinate on scale of uOrigDataSize + vec2 viewCoord = vec2(floor(vTexCoordOffset.x * uOrigDataSize.y), floor(vTexCoordOffset.y * uOrigDataSize.x)); + return viewCoord; +} + +float getIndexFromViewCoord(vec2 viewCoord) { + return viewCoord.y * uOrigDataSize.y + viewCoord.x; +} + +vec2 transformDataCoordinate(float index) { + float textureX = (floor( index / uReshapedDataSize.x )) / uReshapedDataSize.x; + float textureY = (index - (floor( index / uReshapedDataSize.x ) * uReshapedDataSize.x)) / uReshapedDataSize.y; + vec2 texturedCoord = vec2(textureY, textureX); + return texturedCoord; +} + +void main(void) { + // Compute 1 pixel in texture coordinates + vec2 onePixel = vec2(1.0, 1.0) / uTextureSize; + vec2 vTexCoordOffset = offsetvTexcoord(vTexCoord); + vec2 viewCoordTransformed = dataCoordinateFromvTexCoordOffset(vTexCoordOffset); + // Compute (x % aggSizeX, y % aggSizeY). + // These values will be the number of values to the left / above the current position to consider. + vec2 modAggSize = vec2(-1.0 * mod(viewCoordTransformed.x, uAggSize.x), -1.0 * mod(viewCoordTransformed.y, uAggSize.y)); + // Take the sum of values along each axis. + float intensitySum = 0.0; + vec2 offsetPixels = vec2(0.0, 0.0); + for(int i = 0; i < 16; i++) { + // Check to break outer loop early. + // Uniforms cannot be used as conditions in GLSL for loops. + if(float(i) >= uAggSize.y) { + // Done in the y direction. + break; + } + + offsetPixels = vec2(offsetPixels.x, (modAggSize.y + float(i))); + + for(int j = 0; j < 16; j++) { + // Check to break inner loop early. + // Uniforms cannot be used as conditions in GLSL for loops. + if(float(j) >= uAggSize.x) { + // Done in the x direction. + break; + } + offsetPixels = vec2((modAggSize.x + float(j)), offsetPixels.y); + float indexFull = getIndexFromViewCoord(viewCoordTransformed + offsetPixels); + float index = indexFull - (floor(indexFull / (uReshapedDataSize.x * uReshapedDataSize.y)) * (uReshapedDataSize.x * uReshapedDataSize.y)); + vec2 vTexCoordTransformed = transformDataCoordinate(index); + intensitySum += texture2D(uBitmapTexture, vTexCoordTransformed).r; + } + } + + // Compute the mean value. + float intensityMean = intensitySum / (uAggSize.x * uAggSize.y); + // Re-scale using the color scale slider values. + float scaledIntensityMean = (intensityMean - uColorScaleRange[0]) / max(0.005, (uColorScaleRange[1] - uColorScaleRange[0])); + + gl_FragColor = COLORMAP_FUNC(clamp(scaledIntensityMean, 0.0, 1.0)); + + geometry.uv = vTexCoord; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,defaultProps$c={image:{type:"object",value:null,async:!0},colormap:{type:"string",value:GLSL_COLORMAP_DEFAULT,compare:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},aggSizeX:{type:"number",value:8,compare:!0},aggSizeY:{type:"number",value:8,compare:!0},colorScaleLo:{type:"number",value:0,compare:!0},colorScaleHi:{type:"number",value:1,compare:!0}};class PaddedExpressionHeatmapBitmapLayer extends BitmapLayer$1{_getShaders($){return this.props.extensions.forEach(_e=>{$=mergeShaders($,_e.getShaders.call(this,_e))}),$}getShaders(){const{colormap:$}=this.props,_e=GLSL_COLORMAPS.includes($)?fragmentShader.replace(COLORMAP_SHADER_PLACEHOLDER,$):fragmentShader.replace(COLORMAP_SHADER_PLACEHOLDER,GLSL_COLORMAP_DEFAULT);return this._getShaders({vs:vertexShader,fs:_e,modules:[project32,picking]})}updateState($){var _e;super.updateState($);const{props:et,oldProps:tt}=$;if(et.colormap!==tt.colormap){const{gl:rt}=this.context;(_e=this.state.model)==null||_e.delete(),this.state.model=this._getModel(rt),this.getAttributeManager().invalidateAll()}et.image!==tt.image&&this.loadTexture(this.props.image)}draw($){const{uniforms:_e}=$,{bitmapTexture:et,model:tt}=this.state,{aggSizeX:rt,aggSizeY:nt,colorScaleLo:it,colorScaleHi:ot,origDataSize:At,tileI:ut,tileJ:ft,numXTiles:dt,numYTiles:Et}=this.props;et&&tt&&tt.setUniforms(Object.assign({},_e,{uBitmapTexture:et,uOrigDataSize:At,uReshapedDataSize:[DATA_TEXTURE_SIZE,DATA_TEXTURE_SIZE],uTextureSize:[TILE_SIZE,TILE_SIZE],uAggSize:[rt,nt],uColorScaleRange:[it,ot],tileIJ:[ut,ft],dataIJ:[0,0],numTiles:[dt,Et],numData:[1,1]})).draw()}loadTexture($){const{gl:_e}=this.context;this.state.bitmapTexture&&this.state.bitmapTexture.delete(),$&&$ instanceof Texture2D?this.setState({bitmapTexture:$}):$&&this.setState({bitmapTexture:new Texture2D(_e,{data:$,mipmaps:!1,parameters:PIXELATED_TEXTURE_PARAMETERS,format:GL$1.LUMINANCE,dataFormat:GL$1.LUMINANCE,type:GL$1.UNSIGNED_BYTE,width:DATA_TEXTURE_SIZE,height:DATA_TEXTURE_SIZE})})}}PaddedExpressionHeatmapBitmapLayer.layerName="PaddedExpressionHeatmapBitmapLayer";PaddedExpressionHeatmapBitmapLayer.defaultProps=defaultProps$c;const vs$4=` +${colormaps} + +// Custom attributes for Vitessce: +attribute float expressionValue; + +// Custom uniforms for Vitessce: +uniform vec2 uColorScaleRange; +uniform bool uIsExpressionMode; + +`,inject$1={"vs:DECKGL_FILTER_COLOR":` + if(uIsExpressionMode) { + float normalizedExpressionValue = expressionValue / 255.0; + float scaledExpressionValue = (normalizedExpressionValue - uColorScaleRange[0]) / max(0.005, (uColorScaleRange[1] - uColorScaleRange[0])); + color.rgb = COLORMAP_FUNC(clamp(scaledExpressionValue, 0.0, 1.0)).rgb; + } + `},module$2={name:"scaled-expression",vs:vs$4,inject:inject$1},defaultProps$b={colormap:{type:"string",value:GLSL_COLORMAP_DEFAULT,compare:!0},colorScaleLo:{type:"number",value:0,compare:!0},colorScaleHi:{type:"number",value:1,compare:!0},isExpressionMode:!1,getExpressionValue:{type:"accessor",value:0},getSelectionState:{type:"accessor",value:0}};class ScaledExpressionExtension extends LayerExtension{getShaders(){const{colormap:$}=this.props;return{modules:[module$2],defines:{[COLORMAP_SHADER_PLACEHOLDER]:GLSL_COLORMAPS.includes($)?$:GLSL_COLORMAP_DEFAULT}}}updateState({props:$,oldProps:_e}){var et,tt,rt,nt;if($.colormap!==_e.colormap){const{gl:it}=this.context;this.state.model?((et=this.state.model)==null||et.delete(),this.state.model=this._getModel(it)):(this.state.models&&((tt=this.state.models)==null||tt.forEach(At=>At==null?void 0:At.delete())),this.state.topModel&&((rt=this.state.topModel)==null||rt.delete()),this.state.sideModel&&((nt=this.state.sideModel)==null||nt.delete()),this._getModels&&this.setState(this._getModels(this.context.gl))),this.getAttributeManager()&&this.getAttributeManager().invalidateAll()}}initializeState(){if(this.getCurrentLayer().isComposite)return;const _e=this.getAttributeManager();_e&&_e.add({expressionValue:{type:GL$1.FLOAT,size:1,transition:!0,accessor:"getExpressionValue",defaultValue:1,divisor:Object.values(_e.attributes)[0].settings.divisor}})}draw(){const{colorScaleLo:$,colorScaleHi:_e,isExpressionMode:et}=this.props,{topModel:tt,sideModel:rt,models:nt,model:it}=this.state,ot={uColorScaleRange:[$,_e],uIsExpressionMode:et};it==null||it.setUniforms(ot),nt==null||nt.forEach(At=>At.setUniforms(ot)),tt==null||tt.setUniforms(ot),rt==null||rt.setUniforms(ot)}}ScaledExpressionExtension.extensionName="ScaledExpressionExtension";ScaledExpressionExtension.defaultProps=defaultProps$b;const vs$3=` +attribute float isSelected; +`,inject={"vs:DECKGL_FILTER_GL_POSITION":` + position.z += (1. - isSelected) * .00005; // Add a small z offset for unselected points in the positive direction i.e into the screen. + `,"fs:#main-start":` // Gets rid of bad border effects (active after deck.gl 8.5): https://github.com/visgl/deck.gl/pull/6081 + float distToCenterNew = length(unitPosition) * outerRadiusPixels; + float inCircleNew = step(distToCenterNew, outerRadiusPixels); + if (inCircleNew == 0.0) { + discard; + } + `},module$1={name:"selection",vs:vs$3,inject};class SelectionExtension extends LayerExtension{getShaders(){return{modules:[module$1]}}initializeState($,_e){const et=this.getAttributeManager();et&&et.add({isSelected:{type:GL$1.FLOAT,size:1,transition:!0,accessor:"getCellIsSelected",defaultValue:1,divisor:Number(_e.opts.instanced)}})}}SelectionExtension.extensionName="SelectionExtension";const registry$1=new Map;function addDecoder(j,$){Array.isArray(j)||(j=[j]),j.forEach(_e=>registry$1.set(_e,$))}addDecoder([void 0,1],()=>__vitePreload(()=>import("./raw-f349901d-whtBA5Mu.js"),__vite__mapDeps([])).then(j=>j.default));addDecoder(5,()=>__vitePreload(()=>import("./lzw-834edf30-0njj13Xc.js"),__vite__mapDeps([])).then(j=>j.default));addDecoder(6,()=>{throw new Error("old style JPEG compression is not supported.")});addDecoder(7,()=>__vitePreload(()=>import("./jpeg-e623e3f3-YCPYlkuQ.js"),__vite__mapDeps([])).then(j=>j.default));addDecoder([8,32946],()=>__vitePreload(()=>import("./deflate-9cfe31b4--UOSjJNF.js"),__vite__mapDeps([3,4])).then(j=>j.default));addDecoder(32773,()=>__vitePreload(()=>import("./packbits-37beb194-fKqmk4nw.js"),__vite__mapDeps([])).then(j=>j.default));addDecoder(34887,()=>__vitePreload(()=>import("./lerc-3b89a300-TuOOlTso.js"),__vite__mapDeps([5,4])).then(j=>j.default));addDecoder(50001,()=>__vitePreload(()=>import("./webimage-89dafa8c-tJ_h1vk0.js"),__vite__mapDeps([])).then(j=>j.default));function decodeRowAcc(j,$){let _e=j.length-$,et=0;do{for(let tt=$;tt>0;tt--)j[et+$]+=j[et],et++;_e-=$}while(_e>0)}function decodeRowFloatingPoint(j,$,_e){let et=0,tt=j.length;const rt=tt/_e;for(;tt>$;){for(let it=$;it>0;--it)j[et+$]+=j[et],++et;tt-=$}const nt=j.slice();for(let it=0;it=j.byteLength);++ot){let At;if($===2){switch(tt[0]){case 8:At=new Uint8Array(j,ot*it*_e*nt,it*_e*nt);break;case 16:At=new Uint16Array(j,ot*it*_e*nt,it*_e*nt/2);break;case 32:At=new Uint32Array(j,ot*it*_e*nt,it*_e*nt/4);break;default:throw new Error(`Predictor 2 not allowed with ${tt[0]} bits per sample.`)}decodeRowAcc(At,it)}else $===3&&(At=new Uint8Array(j,ot*it*_e*nt,it*_e*nt),decodeRowFloatingPoint(At,it,nt))}return j}class BaseDecoder{async decode($,_e){const et=await this.decodeBlock(_e),tt=$.Predictor||1;if(tt!==1){const rt=!$.StripOffsets,nt=rt?$.TileWidth:$.ImageWidth,it=rt?$.TileLength:$.RowsPerStrip||$.ImageLength;return applyPredictor(et,tt,nt,it,$.BitsPerSample,$.PlanarConfiguration)}return et}}let A$1,I=null;function g$2(){return I!==null&&I.buffer===A$1.memory.buffer||(I=new Uint8Array(A$1.memory.buffer)),I}let B=0,Q=null;function C(){return Q!==null&&Q.buffer===A$1.memory.buffer||(Q=new Int32Array(A$1.memory.buffer)),Q}async function E(j){j===void 0&&(j="".replace(/\.js$/,"_bg.wasm")),(typeof j=="string"||typeof Request=="function"&&j instanceof Request||typeof URL=="function"&&j instanceof URL)&&(j=fetch(j));const{instance:$,module:_e}=await async function(et,tt){if(typeof Response=="function"&&et instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(et,tt)}catch(nt){if(et.headers.get("Content-Type")=="application/wasm")throw nt;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",nt)}const rt=await et.arrayBuffer();return await WebAssembly.instantiate(rt,tt)}{const rt=await WebAssembly.instantiate(et,tt);return rt instanceof WebAssembly.Instance?{instance:rt,module:et}:rt}}(await j,{});return A$1=$.exports,E.__wbindgen_wasm_module=_e,A$1}var D=Object.freeze({__proto__:null,decompress:function(j,$){try{const At=A$1.__wbindgen_add_to_stack_pointer(-16);var _e=function(ut,ft){const dt=ft(1*ut.length);return g$2().set(ut,dt/1),B=ut.length,dt}(j,A$1.__wbindgen_malloc),et=B;A$1.decompress(At,_e,et,$);var tt=C()[At/4+0],rt=C()[At/4+1],nt=(it=tt,ot=rt,g$2().subarray(it/1,it/1+ot)).slice();return A$1.__wbindgen_free(tt,1*rt),nt}finally{A$1.__wbindgen_add_to_stack_pointer(16)}var it,ot},default:E});const i=[62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function w$1(j){return i[j-43]}const G=function(j){let $,_e=j.endsWith("==")?2:j.endsWith("=")?1:0,et=j.length,tt=new Uint8Array(et/4*3);for(let rt=0,nt=0;rt>16,tt[nt+1]=$>>8&255,tt[nt+2]=255&$;return tt.subarray(0,tt.length-_e)}("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NwMAIANBEGokAA8LIARBCEHYhcAAEDcACyACQQhByIXAABA3AAuqAgEDfyMAQYABayIEJAACQAJAAn8CQCABKAIAIgNBEHFFBEAgACgCACECIANBIHENASACrSABEBUMAgsgACgCACECQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACAAQX9qIQAgAkEEdiICDQALIABBgAFqIgJBgQFPDQIgAUGkjsAAQQIgACAEakGAAWpBACAAaxAIDAELQQAhAANAIAAgBGpB/wBqIAJBD3EiA0EwciADQTdqIANBCkkbOgAAIABBf2ohACACQQR2IgINAAsgAEGAAWoiAkGBAU8NAiABQaSOwABBAiAAIARqQYABakEAIABrEAgLIARBgAFqJAAPCyACQYABQZSOwAAQOQALIAJBgAFBlI7AABA5AAuxAgEEfyMAQUBqIgIkACABKAIEIgNFBEAgAUEEaiEDIAEoAgAhBCACQQA2AiAgAkIBNwMYIAIgAkEYajYCJCACQThqIARBEGopAgA3AwAgAkEwaiAEQQhqKQIANwMAIAIgBCkCADcDKCACQSRqQdiJwAAgAkEoahAJGiACQRBqIgQgAigCIDYCACACIAIpAxg3AwgCQCABKAIEIgVFDQAgAUEIaigCAEUNACAFEAQLIAMgAikDCDcCACADQQhqIAQoAgA2AgAgAygCACEDCyABQQE2AgQgAUEMaigCACEEIAFBCGoiASgCACEFIAFCADcCAEEMQQQQWSIBRQRAQQxBBBBjAAsgASAENgIIIAEgBTYCBCABIAM2AgAgAEGQi8AANgIEIAAgATYCACACQUBrJAAL/AEBAn8jAEEQayICJAAgACgCACACQQA2AgwCfwJAAkAgAUGAAU8EQCABQYAQSQ0BIAJBDGohACABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAIgAToADCACQQxqIQBBAQwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAwgAkEMaiEAQQIMAQsgAiABQT9xQYABcjoADyACIAFBEnZB8AFyOgAMIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADUEECyEBIAAgARALIAJBEGokAAv5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QSxqQQI2AgAgAUE8akEhNgIAIAFCAjcCHCABQayMwAA2AhggAUEdNgI0IAEgAUEwajYCKCABIAFBEGo2AjggASABQQhqNgIwIAFBGGpB8IDAABBRAAtxAQN/IwBBIGsiAiQAAkAgACABEBkNACABQRxqKAIAIQMgASgCGCACQRxqQQA2AgAgAkHwi8AANgIYIAJCATcCDCACQfSLwAA2AgggAyACQQhqEAkNACAAQQRqIAEQGSACQSBqJAAPCyACQSBqJABBAQswAQF/AkACQEGAwABBAhBZIgENAQwAC0GAwABBAhBjAAsgACABNgIAIABBgCA2AgQLewECfwJAAkAgACgCBCIBBEAgACgCDCICIAFPDQEgACgCACIBIAJqIAEtAAA6AAAgAEEANgIIIAAgACgCDEEBajYCDCAAKAIERQ0CIAAoAgAtAAAPC0EAQQBBiIbAABA2AAsgAiABQZiGwAAQNgALQQBBAEGohsAAEDYAC2gBAn8gACAALQBGIgFBAWoiAjoACiAAQQEgAUEPcXRBAmoiATsBQCAAQX8gAkEPcXRBf3M7AQggAEEYaigCACABQf//A3EiAU8EQCAAIAE2AhgLIABBJGooAgAgAU8EQCAAIAE2AiQLC1ABAX8gAEEUaigCACIBRSABQQJ0RXJFBEAgACgCEBAECyAAQSBqKAIAIgFFIAFBAXRFckUEQCAAKAIcEAQLIABBLGooAgAEQCAAKAIoEAQLC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQYCNwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhBRAAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBHDYCACADQgI3AgwgA0HMkcAANgIIIANBHDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQUQALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQRw2AgAgA0ICNwIMIANBgJLAADYCCCADQRw2AiQgAyADQSBqNgIYIAMgA0EEajYCKCADIAM2AiAgA0EIaiACEFEAC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEcNgIAIANCAjcCDCADQayRwAA2AgggA0EcNgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhBRAAtcAQF/IwBBEGsiAyQAAkAgACgCBCABayACTwRAIANBADYCAAwBCyADIAAgASACEBYgAygCAEEBRw0AIANBCGooAgAiAARAIAMoAgQgABBjAAsQXQALIANBEGokAAtaAQF/IwBBEGsiAiQAAkAgACgCBCABa0EBTwRAIAJBADYCAAwBCyACIAAgARAeIAIoAgBBAUcNACACQQhqKAIAIgAEQCACKAIEIAAQYwALEF0ACyACQRBqJAALWgEBfyMAQRBrIgIkAAJAIAAoAgQgAWtBAU8EQCACQQA2AgAMAQsgAiAAIAEQHSACKAIAQQFHDQAgAkEIaigCACIABEAgAigCBCAAEGMACxBdAAsgAkEQaiQAC1kBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpB2InAACACQQhqEAkgAkEgaiQAC0YAAkBBCCACSQRAAn9BCCACSQRAIAIgAxAQDAELIAMQAAsiAg0BQQAPCyAAIAMQCg8LIAIgACADIAEgASADSxsQSyAAEAQLWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQACQAJAAkAgAUF/SgRAAkAgAgRAIAENAQwECyABRQ0DIAFBARBZIgINBAwCCyABEEciAkUNAQwDCxBdAAsgAUEBEGMAC0EBIQILIAAgATYCBCAAIAI2AgALVgEBfyMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHwj8AAIAJBCGoQCSACQSBqJAALWQEDfwJAIAEoAgwiAiABKAIIIgNPBEAgASgCBCIEIAJJDQEgASgCACEBIAAgAiADazYCBCAAIAEgA2o2AgAPCyADIAJB2IbAABA4AAsgAiAEQdiGwAAQNwALVQEBfyAAQRBqIAAt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");let o;async function N(j,$){o||(o=await(async()=>(await E(G),D))());const _e=o.decompress(j,$);if(_e.length===0)throw Error("Failed to decode with LZW decoder.");return _e}var parser={},node2json={},util$3={};(function(j){const $=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",_e=$+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",et="["+$+"]["+_e+"]*",tt=new RegExp("^"+et+"$"),rt=function(it,ot){const At=[];let ut=ot.exec(it);for(;ut;){const ft=[];ft.startIndex=ot.lastIndex-ut[0].length;const dt=ut.length;for(let Et=0;Et"u")};j.isExist=function(it){return typeof it<"u"},j.isEmptyObject=function(it){return Object.keys(it).length===0},j.merge=function(it,ot,At){if(ot){const ut=Object.keys(ot),ft=ut.length;for(let dt=0;dt1){et[nt]=[];for(let it in j.child[nt])j.child[nt].hasOwnProperty(it)&&et[nt].push(convertToJson(j.child[nt][it],$,nt))}else{const it=convertToJson(j.child[nt][0],$,nt),ot=$.arrayMode===!0&&typeof it=="object"||util$2.isTagNameInArrayMode(nt,$.arrayMode,_e);et[nt]=ot?[it]:it}}return et};node2json.convertToJson=convertToJson;var xmlstr2xmlnode={},xmlNode$1=function(j,$,_e){this.tagname=j,this.parent=$,this.child={},this.attrsMap={},this.val=_e,this.addChild=function(et){Array.isArray(this.child[et.tagname])?this.child[et.tagname].push(et):this.child[et.tagname]=[et]}};const hexRegex=/^[-+]?0x[a-fA-F0-9]+$/,numRegex=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const consider={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function toNumber$1(j,$={}){if($=Object.assign({},consider,$),!j||typeof j!="string")return j;let _e=j.trim();if($.skipLike!==void 0&&$.skipLike.test(_e))return j;if($.hex&&hexRegex.test(_e))return Number.parseInt(_e,16);{const et=numRegex.exec(_e);if(et){const tt=et[1],rt=et[2];let nt=trimZeros(et[3]);const it=et[4]||et[6];if(!$.leadingZeros&&rt.length>0&&tt&&_e[2]!==".")return j;if(!$.leadingZeros&&rt.length>0&&!tt&&_e[1]!==".")return j;{const ot=Number(_e),At=""+ot;return At.search(/[eE]/)!==-1||it?$.eNotation?ot:j:_e.indexOf(".")!==-1?At==="0"&&nt===""||At===nt||tt&&At==="-"+nt?ot:j:rt?nt===At||tt+nt===At?ot:j:_e===At||_e===tt+At?ot:j}}else return j}}function trimZeros(j){return j&&j.indexOf(".")!==-1&&(j=j.replace(/0+$/,""),j==="."?j="0":j[0]==="."?j="0"+j:j[j.length-1]==="."&&(j=j.substr(0,j.length-1))),j}var strnum=toNumber$1;const util$1=util$3,buildOptions=util$3.buildOptions,xmlNode=xmlNode$1,toNumber=strnum;"<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g,util$1.nameRegexp);!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt);!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const defaultOptions$1={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,ignoreNameSpace:!1,allowBooleanAttributes:!1,parseNodeValue:!0,parseAttributeValue:!1,arrayMode:!1,trimValues:!0,cdataTagName:!1,cdataPositionChar:"\\c",numParseOptions:{hex:!0,leadingZeros:!0},tagValueProcessor:function(j,$){return j},attrValueProcessor:function(j,$){return j},stopNodes:[],alwaysCreateTextNode:!1};xmlstr2xmlnode.defaultOptions=defaultOptions$1;const props$1=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","ignoreNameSpace","allowBooleanAttributes","parseNodeValue","parseAttributeValue","arrayMode","trimValues","cdataTagName","cdataPositionChar","tagValueProcessor","attrValueProcessor","parseTrueNumberOnly","numParseOptions","stopNodes","alwaysCreateTextNode"];xmlstr2xmlnode.props=props$1;function processTagValue(j,$,_e){return $&&(_e.trimValues&&($=$.trim()),$=_e.tagValueProcessor($,j),$=parseValue($,_e.parseNodeValue,_e.numParseOptions)),$}function resolveNameSpace(j,$){if($.ignoreNameSpace){const _e=j.split(":"),et=j.charAt(0)==="/"?"/":"";if(_e[0]==="xmlns")return"";_e.length===2&&(j=et+_e[1])}return j}function parseValue(j,$,_e){if($&&typeof j=="string"){const et=j.trim();return et==="true"?!0:et==="false"?!1:toNumber(j,_e)}else return util$1.isExist(j)?j:""}const attrsRegx=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])(.*?)\\3)?`,"g");function buildAttributesMap(j,$){if(!$.ignoreAttributes&&typeof j=="string"){j=j.replace(/\r?\n/g," ");const _e=util$1.getAllMatches(j,attrsRegx),et=_e.length,tt={};for(let rt=0;rt",rt,"Closing Tag is not closed.");let ot=j.substring(rt+2,it).trim();if($.ignoreNameSpace){const At=ot.indexOf(":");At!==-1&&(ot=ot.substr(At+1))}et&&(et.val?et.val=util$1.getValue(et.val)+""+processTagValue(ot,tt,$):et.val=processTagValue(ot,tt,$)),$.stopNodes.length&&$.stopNodes.includes(et.tagname)&&(et.child=[],et.attrsMap==null&&(et.attrsMap={}),et.val=j.substr(et.startIndex+1,rt-et.startIndex-1)),et=et.parent,tt="",rt=it}else if(j[rt+1]==="?")rt=findClosingIndex(j,"?>",rt,"Pi Tag is not closed.");else if(j.substr(rt+1,3)==="!--")rt=findClosingIndex(j,"-->",rt,"Comment is not closed.");else if(j.substr(rt+1,2)==="!D"){const it=findClosingIndex(j,">",rt,"DOCTYPE is not closed.");j.substring(rt,it).indexOf("[")>=0?rt=j.indexOf("]>",rt)+1:rt=it}else if(j.substr(rt+1,2)==="!["){const it=findClosingIndex(j,"]]>",rt,"CDATA is not closed.")-2,ot=j.substring(rt+9,it);if(tt&&(et.val=util$1.getValue(et.val)+""+processTagValue(et.tagname,tt,$),tt=""),$.cdataTagName){const At=new xmlNode($.cdataTagName,et,ot);et.addChild(At),et.val=util$1.getValue(et.val)+$.cdataPositionChar,ot&&(At.val=ot)}else et.val=(et.val||"")+(ot||"");rt=it+2}else{const it=closingIndexForOpeningTag(j,rt+1);let ot=it.data;const At=it.index,ut=ot.indexOf(" ");let ft=ot,dt=!0;if(ut!==-1&&(ft=ot.substr(0,ut).replace(/\s\s*$/,""),ot=ot.substr(ut+1)),$.ignoreNameSpace){const Et=ft.indexOf(":");Et!==-1&&(ft=ft.substr(Et+1),dt=ft!==it.data.substr(Et+1))}if(et&&tt&&et.tagname!=="!xml"&&(et.val=util$1.getValue(et.val)+""+processTagValue(et.tagname,tt,$)),ot.length>0&&ot.lastIndexOf("/")===ot.length-1){ft[ft.length-1]==="/"?(ft=ft.substr(0,ft.length-1),ot=ft):ot=ot.substr(0,ot.length-1);const Et=new xmlNode(ft,et,"");ft!==ot&&(Et.attrsMap=buildAttributesMap(ot,$)),et.addChild(Et)}else{const Et=new xmlNode(ft,et);$.stopNodes.length&&$.stopNodes.includes(Et.tagname)&&(Et.startIndex=At),ft!==ot&&dt&&(Et.attrsMap=buildAttributesMap(ot,$)),et.addChild(Et),et=Et}tt="",rt=At}else tt+=j[rt];return _e};function closingIndexForOpeningTag(j,$){let _e,et="";for(let tt=$;tt")return{data:et,index:tt};rt===" "&&(rt=" ")}et+=rt}}function findClosingIndex(j,$,_e,et){const tt=j.indexOf($,_e);if(tt===-1)throw new Error(et);return tt+$.length-1}xmlstr2xmlnode.getTraversalObj=getTraversalObj;var validator={};const util=util$3,defaultOptions={allowBooleanAttributes:!1},props=["allowBooleanAttributes"];validator.validate=function(j,$){$=util.buildOptions($,defaultOptions,props);const _e=[];let et=!1,tt=!1;j[0]==="\uFEFF"&&(j=j.substr(1));for(let rt=0;rt"&&j[rt]!==" "&&j[rt]!==" "&&j[rt]!==` +`&&j[rt]!=="\r";rt++)ot+=j[rt];if(ot=ot.trim(),ot[ot.length-1]==="/"&&(ot=ot.substring(0,ot.length-1),rt--),!validateTagName(ot)){let ft;return ot.trim().length===0?ft="Invalid space after '<'.":ft="Tag '"+ot+"' is an invalid name.",getErrorObject("InvalidTag",ft,getLineNumberForPosition(j,rt))}const At=readAttributeStr(j,rt);if(At===!1)return getErrorObject("InvalidAttr","Attributes for '"+ot+"' have open quote.",getLineNumberForPosition(j,rt));let ut=At.value;if(rt=At.index,ut[ut.length-1]==="/"){const ft=rt-ut.length;ut=ut.substring(0,ut.length-1);const dt=validateAttributeString(ut,$);if(dt===!0)et=!0;else return getErrorObject(dt.err.code,dt.err.msg,getLineNumberForPosition(j,ft+dt.err.line))}else if(it)if(At.tagClosed){if(ut.trim().length>0)return getErrorObject("InvalidTag","Closing tag '"+ot+"' can't have attributes or invalid starting.",getLineNumberForPosition(j,nt));{const ft=_e.pop();if(ot!==ft.tagName){let dt=getLineNumberForPosition(j,ft.tagStartPos);return getErrorObject("InvalidTag","Expected closing tag '"+ft.tagName+"' (opened in line "+dt.line+", col "+dt.col+") instead of closing tag '"+ot+"'.",getLineNumberForPosition(j,nt))}_e.length==0&&(tt=!0)}}else return getErrorObject("InvalidTag","Closing tag '"+ot+"' doesn't have proper closing.",getLineNumberForPosition(j,rt));else{const ft=validateAttributeString(ut,$);if(ft!==!0)return getErrorObject(ft.err.code,ft.err.msg,getLineNumberForPosition(j,rt-ut.length+ft.err.line));if(tt===!0)return getErrorObject("InvalidXml","Multiple possible root nodes found.",getLineNumberForPosition(j,rt));_e.push({tagName:ot,tagStartPos:nt}),et=!0}for(rt++;rt0)return getErrorObject("InvalidXml","Invalid '"+JSON.stringify(_e.map(rt=>rt.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return getErrorObject("InvalidXml","Start tag expected.",1);return!0};function readPI(j,$){const _e=$;for(;$5&&et==="xml")return getErrorObject("InvalidXml","XML declaration allowed only at the start of the document.",getLineNumberForPosition(j,$));if(j[$]=="?"&&j[$+1]==">"){$++;break}else continue}return $}function readCommentAndCDATA(j,$){if(j.length>$+5&&j[$+1]==="-"&&j[$+2]==="-"){for($+=3;$"){$+=2;break}}else if(j.length>$+8&&j[$+1]==="D"&&j[$+2]==="O"&&j[$+3]==="C"&&j[$+4]==="T"&&j[$+5]==="Y"&&j[$+6]==="P"&&j[$+7]==="E"){let _e=1;for($+=8;$"&&(_e--,_e===0))break}else if(j.length>$+9&&j[$+1]==="["&&j[$+2]==="C"&&j[$+3]==="D"&&j[$+4]==="A"&&j[$+5]==="T"&&j[$+6]==="A"&&j[$+7]==="["){for($+=8;$"){$+=2;break}}return $}const doubleQuote='"',singleQuote="'";function readAttributeStr(j,$){let _e="",et="",tt=!1;for(;$"&&et===""){tt=!0;break}_e+=j[$]}return et!==""?!1:{value:_e,index:$,tagClosed:tt}}const validAttrStrRegxp=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function validateAttributeString(j,$){const _e=util.getAllMatches(j,validAttrStrRegxp),et={};for(let tt=0;tt<_e.length;tt++){if(_e[tt][1].length===0)return getErrorObject("InvalidAttr","Attribute '"+_e[tt][2]+"' has no space in starting.",getPositionFromMatch(_e[tt]));if(_e[tt][3]===void 0&&!$.allowBooleanAttributes)return getErrorObject("InvalidAttr","boolean attribute '"+_e[tt][2]+"' is not allowed.",getPositionFromMatch(_e[tt]));const rt=_e[tt][2];if(!validateAttrName(rt))return getErrorObject("InvalidAttr","Attribute '"+rt+"' is an invalid name.",getPositionFromMatch(_e[tt]));if(!et.hasOwnProperty(rt))et[rt]=1;else return getErrorObject("InvalidAttr","Attribute '"+rt+"' is repeated.",getPositionFromMatch(_e[tt]))}return!0}function validateNumberAmpersand(j,$){let _e=/\d/;for(j[$]==="x"&&($++,_e=/[\da-fA-F]/);$1){At+='"'+dt+'" : [ ';for(let Et in nt.child[dt])At+=tt(nt.child[dt][Et],it)+" , ";At=At.substr(0,At.length-1)+" ] "}else At+='"'+dt+'" : '+tt(nt.child[dt][0],it)+" ,"}return j.merge(At,nt.attrsMap),j.isEmptyObject(At)?j.isExist(nt.val)?nt.val:"":(j.isExist(nt.val)&&(typeof nt.val=="string"&&(nt.val===""||nt.val===it.cdataPositionChar)||(At+='"'+it.textNodeName+'" : '+rt(nt.val))),At[At.length-1]===","&&(At=At.substr(0,At.length-2)),At+"}")};function rt(nt){return nt===!0||nt===!1||!isNaN(nt)?nt:'"'+nt+'"'}return node2json_str.convertToJsonString=et,node2json_str}var json2xml,hasRequiredJson2xml;function requireJson2xml(){if(hasRequiredJson2xml)return json2xml;hasRequiredJson2xml=1;const j=util$3.buildOptions,$={attributeNamePrefix:"@_",attrNodeName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataTagName:!1,cdataPositionChar:"\\c",format:!1,indentBy:" ",supressEmptyNode:!1,tagValueProcessor:function(Bt){return Bt},attrValueProcessor:function(Bt){return Bt}},_e=["attributeNamePrefix","attrNodeName","textNodeName","ignoreAttributes","cdataTagName","cdataPositionChar","format","indentBy","supressEmptyNode","tagValueProcessor","attrValueProcessor","rootNodeName"];function et(Bt){this.options=j(Bt,$,_e),this.options.ignoreAttributes||this.options.attrNodeName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=dt),this.options.cdataTagName?this.isCDATA=Et:this.isCDATA=function(){return!1},this.replaceCDATAstr=rt,this.replaceCDATAarr=nt,this.processTextOrObjNode=tt,this.options.format?(this.indentate=ft,this.tagEndChar=`> +`,this.newLine=` +`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine=""),this.options.supressEmptyNode?(this.buildTextNode=ut,this.buildObjNode=ot):(this.buildTextNode=At,this.buildObjNode=it),this.buildTextValNode=At,this.buildObjectNode=it}et.prototype.parse=function(Bt){return Array.isArray(Bt)&&this.options.rootNodeName&&this.options.rootNodeName.length>1&&(Bt={[this.options.rootNodeName]:Bt}),this.j2x(Bt,0).val},et.prototype.j2x=function(Bt,St){let Dt="",$t="";for(let Rt in Bt)if(!(typeof Bt[Rt]>"u"))if(Bt[Rt]===null)$t+=this.indentate(St)+"<"+Rt+"/"+this.tagEndChar;else if(Bt[Rt]instanceof Date)$t+=this.buildTextNode(Bt[Rt],Rt,"",St);else if(typeof Bt[Rt]!="object"){const wt=this.isAttribute(Rt);wt?Dt+=" "+wt+'="'+this.options.attrValueProcessor(""+Bt[Rt])+'"':this.isCDATA(Rt)?Bt[this.options.textNodeName]?$t+=this.replaceCDATAstr(Bt[this.options.textNodeName],Bt[Rt]):$t+=this.replaceCDATAstr("",Bt[Rt]):Rt===this.options.textNodeName?Bt[this.options.cdataTagName]||($t+=this.options.tagValueProcessor(""+Bt[Rt])):$t+=this.buildTextNode(Bt[Rt],Rt,"",St)}else if(Array.isArray(Bt[Rt]))if(this.isCDATA(Rt))$t+=this.indentate(St),Bt[this.options.textNodeName]?$t+=this.replaceCDATAarr(Bt[this.options.textNodeName],Bt[Rt]):$t+=this.replaceCDATAarr("",Bt[Rt]);else{const wt=Bt[Rt].length;for(let xt=0;xt"u"||(Nt===null?$t+=this.indentate(St)+"<"+Rt+"/"+this.tagEndChar:typeof Nt=="object"?$t+=this.processTextOrObjNode(Nt,Rt,St):$t+=this.buildTextNode(Nt,Rt,"",St))}}else if(this.options.attrNodeName&&Rt===this.options.attrNodeName){const wt=Object.keys(Bt[Rt]),xt=wt.length;for(let Nt=0;Nt");return Bt+this.newLine}function it(Bt,St,Dt,$t){return Dt&&Bt.indexOf("<")===-1?this.indentate($t)+"<"+St+Dt+">"+Bt+""+this.options.tagValueProcessor(Bt)+"($=$||(()=>{}),j.then(_e=>new Promise(et=>{et($())}).then(()=>_e),_e=>new Promise(et=>{et($())}).then(()=>{throw _e})));class TimeoutError extends Error{constructor($){super($),this.name="TimeoutError"}}const pTimeout=(j,$,_e)=>new Promise((et,tt)=>{if(typeof $!="number"||$<0)throw new TypeError("Expected `milliseconds` to be a positive number");if($===1/0){et(j);return}const rt=setTimeout(()=>{if(typeof _e=="function"){try{et(_e())}catch(ot){tt(ot)}return}const nt=typeof _e=="string"?_e:`Promise timed out after ${$} milliseconds`,it=_e instanceof Error?_e:new TimeoutError(nt);typeof j.cancel=="function"&&j.cancel(),tt(it)},$);pFinally(j.then(et,tt),()=>{clearTimeout(rt)})});var pTimeout_1=pTimeout,_default$3=pTimeout,TimeoutError_1=TimeoutError;pTimeout_1.default=_default$3;pTimeout_1.TimeoutError=TimeoutError_1;new pTimeout_1.default.TimeoutError;var HTTPMethod;(function(j){j.HEAD="HEAD",j.GET="GET",j.PUT="PUT"})(HTTPMethod||(HTTPMethod={}));HTTPMethod.HEAD,HTTPMethod.GET,HTTPMethod.PUT;/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN=2;function zero$1(j){let $=j.length;for(;--$>=0;)j[$]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH=3,MAX_MATCH=258,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([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]),extra_dbits=new Uint8Array([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]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES);zero$1(base_length);const base_dist=new Array(D_CODES);zero$1(base_dist);function StaticTreeDesc(j,$,_e,et,tt){this.static_tree=j,this.extra_bits=$,this.extra_base=_e,this.elems=et,this.max_length=tt,this.has_stree=j&&j.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(j,$){this.dyn_tree=j,this.max_code=0,this.stat_desc=$}const d_code=j=>j<256?_dist_code[j]:_dist_code[256+(j>>>7)],put_short=(j,$)=>{j.pending_buf[j.pending++]=$&255,j.pending_buf[j.pending++]=$>>>8&255},send_bits=(j,$,_e)=>{j.bi_valid>Buf_size-_e?(j.bi_buf|=$<>Buf_size-j.bi_valid,j.bi_valid+=_e-Buf_size):(j.bi_buf|=$<{send_bits(j,_e[$*2],_e[$*2+1])},bi_reverse=(j,$)=>{let _e=0;do _e|=j&1,j>>>=1,_e<<=1;while(--$>0);return _e>>>1},bi_flush=j=>{j.bi_valid===16?(put_short(j,j.bi_buf),j.bi_buf=0,j.bi_valid=0):j.bi_valid>=8&&(j.pending_buf[j.pending++]=j.bi_buf&255,j.bi_buf>>=8,j.bi_valid-=8)},gen_bitlen=(j,$)=>{const _e=$.dyn_tree,et=$.max_code,tt=$.stat_desc.static_tree,rt=$.stat_desc.has_stree,nt=$.stat_desc.extra_bits,it=$.stat_desc.extra_base,ot=$.stat_desc.max_length;let At,ut,ft,dt,Et,Bt,St=0;for(dt=0;dt<=MAX_BITS;dt++)j.bl_count[dt]=0;for(_e[j.heap[j.heap_max]*2+1]=0,At=j.heap_max+1;Atot&&(dt=ot,St++),_e[ut*2+1]=dt,!(ut>et)&&(j.bl_count[dt]++,Et=0,ut>=it&&(Et=nt[ut-it]),Bt=_e[ut*2],j.opt_len+=Bt*(dt+Et),rt&&(j.static_len+=Bt*(tt[ut*2+1]+Et)));if(St!==0){do{for(dt=ot-1;j.bl_count[dt]===0;)dt--;j.bl_count[dt]--,j.bl_count[dt+1]+=2,j.bl_count[ot]--,St-=2}while(St>0);for(dt=ot;dt!==0;dt--)for(ut=j.bl_count[dt];ut!==0;)ft=j.heap[--At],!(ft>et)&&(_e[ft*2+1]!==dt&&(j.opt_len+=(dt-_e[ft*2+1])*_e[ft*2],_e[ft*2+1]=dt),ut--)}},gen_codes=(j,$,_e)=>{const et=new Array(MAX_BITS+1);let tt=0,rt,nt;for(rt=1;rt<=MAX_BITS;rt++)et[rt]=tt=tt+_e[rt-1]<<1;for(nt=0;nt<=$;nt++){let it=j[nt*2+1];it!==0&&(j[nt*2]=bi_reverse(et[it]++,it))}},tr_static_init=()=>{let j,$,_e,et,tt;const rt=new Array(MAX_BITS+1);for(_e=0,et=0;et>=7;et{let $;for($=0;${j.bi_valid>8?put_short(j,j.bi_buf):j.bi_valid>0&&(j.pending_buf[j.pending++]=j.bi_buf),j.bi_buf=0,j.bi_valid=0},copy_block=(j,$,_e,et)=>{bi_windup(j),et&&(put_short(j,_e),put_short(j,~_e)),j.pending_buf.set(j.window.subarray($,$+_e),j.pending),j.pending+=_e},smaller=(j,$,_e,et)=>{const tt=$*2,rt=_e*2;return j[tt]{const et=j.heap[_e];let tt=_e<<1;for(;tt<=j.heap_len&&(tt{let et,tt,rt=0,nt,it;if(j.last_lit!==0)do et=j.pending_buf[j.d_buf+rt*2]<<8|j.pending_buf[j.d_buf+rt*2+1],tt=j.pending_buf[j.l_buf+rt],rt++,et===0?send_code(j,tt,$):(nt=_length_code[tt],send_code(j,nt+LITERALS+1,$),it=extra_lbits[nt],it!==0&&(tt-=base_length[nt],send_bits(j,tt,it)),et--,nt=d_code(et),send_code(j,nt,_e),it=extra_dbits[nt],it!==0&&(et-=base_dist[nt],send_bits(j,et,it)));while(rt{const _e=$.dyn_tree,et=$.stat_desc.static_tree,tt=$.stat_desc.has_stree,rt=$.stat_desc.elems;let nt,it,ot=-1,At;for(j.heap_len=0,j.heap_max=HEAP_SIZE,nt=0;nt>1;nt>=1;nt--)pqdownheap(j,_e,nt);At=rt;do nt=j.heap[1],j.heap[1]=j.heap[j.heap_len--],pqdownheap(j,_e,1),it=j.heap[1],j.heap[--j.heap_max]=nt,j.heap[--j.heap_max]=it,_e[At*2]=_e[nt*2]+_e[it*2],j.depth[At]=(j.depth[nt]>=j.depth[it]?j.depth[nt]:j.depth[it])+1,_e[nt*2+1]=_e[it*2+1]=At,j.heap[1]=At++,pqdownheap(j,_e,1);while(j.heap_len>=2);j.heap[--j.heap_max]=j.heap[1],gen_bitlen(j,$),gen_codes(_e,ot,j.bl_count)},scan_tree=(j,$,_e)=>{let et,tt=-1,rt,nt=$[0*2+1],it=0,ot=7,At=4;for(nt===0&&(ot=138,At=3),$[(_e+1)*2+1]=65535,et=0;et<=_e;et++)rt=nt,nt=$[(et+1)*2+1],!(++it{let et,tt=-1,rt,nt=$[0*2+1],it=0,ot=7,At=4;for(nt===0&&(ot=138,At=3),et=0;et<=_e;et++)if(rt=nt,nt=$[(et+1)*2+1],!(++it{let $;for(scan_tree(j,j.dyn_ltree,j.l_desc.max_code),scan_tree(j,j.dyn_dtree,j.d_desc.max_code),build_tree(j,j.bl_desc),$=BL_CODES-1;$>=3&&j.bl_tree[bl_order[$]*2+1]===0;$--);return j.opt_len+=3*($+1)+5+5+4,$},send_all_trees=(j,$,_e,et)=>{let tt;for(send_bits(j,$-257,5),send_bits(j,_e-1,5),send_bits(j,et-4,4),tt=0;tt{let $=4093624447,_e;for(_e=0;_e<=31;_e++,$>>>=1)if($&1&&j.dyn_ltree[_e*2]!==0)return Z_BINARY;if(j.dyn_ltree[9*2]!==0||j.dyn_ltree[10*2]!==0||j.dyn_ltree[13*2]!==0)return Z_TEXT;for(_e=32;_e{static_init_done||(tr_static_init(),static_init_done=!0),j.l_desc=new TreeDesc(j.dyn_ltree,static_l_desc),j.d_desc=new TreeDesc(j.dyn_dtree,static_d_desc),j.bl_desc=new TreeDesc(j.bl_tree,static_bl_desc),j.bi_buf=0,j.bi_valid=0,init_block(j)},_tr_stored_block=(j,$,_e,et)=>{send_bits(j,(STORED_BLOCK<<1)+(et?1:0),3),copy_block(j,$,_e,!0)},_tr_align=j=>{send_bits(j,STATIC_TREES<<1,3),send_code(j,END_BLOCK,static_ltree),bi_flush(j)},_tr_flush_block=(j,$,_e,et)=>{let tt,rt,nt=0;j.level>0?(j.strm.data_type===Z_UNKNOWN&&(j.strm.data_type=detect_data_type(j)),build_tree(j,j.l_desc),build_tree(j,j.d_desc),nt=build_bl_tree(j),tt=j.opt_len+3+7>>>3,rt=j.static_len+3+7>>>3,rt<=tt&&(tt=rt)):tt=rt=_e+5,_e+4<=tt&&$!==-1?_tr_stored_block(j,$,_e,et):j.strategy===Z_FIXED||rt===tt?(send_bits(j,(STATIC_TREES<<1)+(et?1:0),3),compress_block(j,static_ltree,static_dtree)):(send_bits(j,(DYN_TREES<<1)+(et?1:0),3),send_all_trees(j,j.l_desc.max_code+1,j.d_desc.max_code+1,nt+1),compress_block(j,j.dyn_ltree,j.dyn_dtree)),init_block(j),et&&bi_windup(j)},_tr_tally=(j,$,_e)=>(j.pending_buf[j.d_buf+j.last_lit*2]=$>>>8&255,j.pending_buf[j.d_buf+j.last_lit*2+1]=$&255,j.pending_buf[j.l_buf+j.last_lit]=_e&255,j.last_lit++,$===0?j.dyn_ltree[_e*2]++:(j.matches++,$--,j.dyn_ltree[(_length_code[_e]+LITERALS+1)*2]++,j.dyn_dtree[d_code($)*2]++),j.last_lit===j.lit_bufsize-1);var _tr_init_1=_tr_init,_tr_stored_block_1=_tr_stored_block,_tr_flush_block_1=_tr_flush_block,_tr_tally_1=_tr_tally,_tr_align_1=_tr_align,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(j,$,_e,et)=>{let tt=j&65535|0,rt=j>>>16&65535|0,nt=0;for(;_e!==0;){nt=_e>2e3?2e3:_e,_e-=nt;do tt=tt+$[et++]|0,rt=rt+tt|0;while(--nt);tt%=65521,rt%=65521}return tt|rt<<16|0};var adler32_1=adler32;const makeTable=()=>{let j,$=[];for(var _e=0;_e<256;_e++){j=_e;for(var et=0;et<8;et++)j=j&1?3988292384^j>>>1:j>>>1;$[_e]=j}return $},crcTable=new Uint32Array(makeTable()),crc32=(j,$,_e,et)=>{const tt=crcTable,rt=et+_e;j^=-1;for(let nt=et;nt>>8^tt[(j^$[nt])&255];return j^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$1={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:_tr_init$1,_tr_stored_block:_tr_stored_block$1,_tr_flush_block:_tr_flush_block$1,_tr_tally:_tr_tally$1,_tr_align:_tr_align$1}=trees,{Z_NO_FLUSH,Z_PARTIAL_FLUSH,Z_FULL_FLUSH,Z_FINISH,Z_BLOCK,Z_OK,Z_STREAM_END,Z_STREAM_ERROR,Z_DATA_ERROR,Z_BUF_ERROR,Z_DEFAULT_COMPRESSION,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED:Z_FIXED$1,Z_DEFAULT_STRATEGY,Z_UNKNOWN:Z_UNKNOWN$1,Z_DEFLATED}=constants$1,MAX_MEM_LEVEL=9,MAX_WBITS=15,DEF_MEM_LEVEL=8,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,MIN_MATCH$1=3,MAX_MATCH$1=258,MIN_LOOKAHEAD=MAX_MATCH$1+MIN_MATCH$1+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(j,$)=>(j.msg=messages[$],$),rank=j=>(j<<1)-(j>4?9:0),zero$1$1=j=>{let $=j.length;for(;--$>=0;)j[$]=0};let HASH_ZLIB=(j,$,_e)=>($<{const $=j.state;let _e=$.pending;_e>j.avail_out&&(_e=j.avail_out),_e!==0&&(j.output.set($.pending_buf.subarray($.pending_out,$.pending_out+_e),j.next_out),j.next_out+=_e,$.pending_out+=_e,j.total_out+=_e,j.avail_out-=_e,$.pending-=_e,$.pending===0&&($.pending_out=0))},flush_block_only=(j,$)=>{_tr_flush_block$1(j,j.block_start>=0?j.block_start:-1,j.strstart-j.block_start,$),j.block_start=j.strstart,flush_pending(j.strm)},put_byte=(j,$)=>{j.pending_buf[j.pending++]=$},putShortMSB=(j,$)=>{j.pending_buf[j.pending++]=$>>>8&255,j.pending_buf[j.pending++]=$&255},read_buf=(j,$,_e,et)=>{let tt=j.avail_in;return tt>et&&(tt=et),tt===0?0:(j.avail_in-=tt,$.set(j.input.subarray(j.next_in,j.next_in+tt),_e),j.state.wrap===1?j.adler=adler32_1(j.adler,$,tt,_e):j.state.wrap===2&&(j.adler=crc32_1(j.adler,$,tt,_e)),j.next_in+=tt,j.total_in+=tt,tt)},longest_match=(j,$)=>{let _e=j.max_chain_length,et=j.strstart,tt,rt,nt=j.prev_length,it=j.nice_match;const ot=j.strstart>j.w_size-MIN_LOOKAHEAD?j.strstart-(j.w_size-MIN_LOOKAHEAD):0,At=j.window,ut=j.w_mask,ft=j.prev,dt=j.strstart+MAX_MATCH$1;let Et=At[et+nt-1],Bt=At[et+nt];j.prev_length>=j.good_match&&(_e>>=2),it>j.lookahead&&(it=j.lookahead);do if(tt=$,!(At[tt+nt]!==Bt||At[tt+nt-1]!==Et||At[tt]!==At[et]||At[++tt]!==At[et+1])){et+=2,tt++;do;while(At[++et]===At[++tt]&&At[++et]===At[++tt]&&At[++et]===At[++tt]&&At[++et]===At[++tt]&&At[++et]===At[++tt]&&At[++et]===At[++tt]&&At[++et]===At[++tt]&&At[++et]===At[++tt]&&etnt){if(j.match_start=$,nt=rt,rt>=it)break;Et=At[et+nt-1],Bt=At[et+nt]}}while(($=ft[$&ut])>ot&&--_e!==0);return nt<=j.lookahead?nt:j.lookahead},fill_window=j=>{const $=j.w_size;let _e,et,tt,rt,nt;do{if(rt=j.window_size-j.lookahead-j.strstart,j.strstart>=$+($-MIN_LOOKAHEAD)){j.window.set(j.window.subarray($,$+$),0),j.match_start-=$,j.strstart-=$,j.block_start-=$,et=j.hash_size,_e=et;do tt=j.head[--_e],j.head[_e]=tt>=$?tt-$:0;while(--et);et=$,_e=et;do tt=j.prev[--_e],j.prev[_e]=tt>=$?tt-$:0;while(--et);rt+=$}if(j.strm.avail_in===0)break;if(et=read_buf(j.strm,j.window,j.strstart+j.lookahead,rt),j.lookahead+=et,j.lookahead+j.insert>=MIN_MATCH$1)for(nt=j.strstart-j.insert,j.ins_h=j.window[nt],j.ins_h=HASH(j,j.ins_h,j.window[nt+1]);j.insert&&(j.ins_h=HASH(j,j.ins_h,j.window[nt+MIN_MATCH$1-1]),j.prev[nt&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=nt,nt++,j.insert--,!(j.lookahead+j.insert{let _e=65535;for(_e>j.pending_buf_size-5&&(_e=j.pending_buf_size-5);;){if(j.lookahead<=1){if(fill_window(j),j.lookahead===0&&$===Z_NO_FLUSH)return BS_NEED_MORE;if(j.lookahead===0)break}j.strstart+=j.lookahead,j.lookahead=0;const et=j.block_start+_e;if((j.strstart===0||j.strstart>=et)&&(j.lookahead=j.strstart-et,j.strstart=et,flush_block_only(j,!1),j.strm.avail_out===0)||j.strstart-j.block_start>=j.w_size-MIN_LOOKAHEAD&&(flush_block_only(j,!1),j.strm.avail_out===0))return BS_NEED_MORE}return j.insert=0,$===Z_FINISH?(flush_block_only(j,!0),j.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):(j.strstart>j.block_start&&(flush_block_only(j,!1),j.strm.avail_out===0),BS_NEED_MORE)},deflate_fast=(j,$)=>{let _e,et;for(;;){if(j.lookahead=MIN_MATCH$1&&(j.ins_h=HASH(j,j.ins_h,j.window[j.strstart+MIN_MATCH$1-1]),_e=j.prev[j.strstart&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=j.strstart),_e!==0&&j.strstart-_e<=j.w_size-MIN_LOOKAHEAD&&(j.match_length=longest_match(j,_e)),j.match_length>=MIN_MATCH$1)if(et=_tr_tally$1(j,j.strstart-j.match_start,j.match_length-MIN_MATCH$1),j.lookahead-=j.match_length,j.match_length<=j.max_lazy_match&&j.lookahead>=MIN_MATCH$1){j.match_length--;do j.strstart++,j.ins_h=HASH(j,j.ins_h,j.window[j.strstart+MIN_MATCH$1-1]),_e=j.prev[j.strstart&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=j.strstart;while(--j.match_length!==0);j.strstart++}else j.strstart+=j.match_length,j.match_length=0,j.ins_h=j.window[j.strstart],j.ins_h=HASH(j,j.ins_h,j.window[j.strstart+1]);else et=_tr_tally$1(j,0,j.window[j.strstart]),j.lookahead--,j.strstart++;if(et&&(flush_block_only(j,!1),j.strm.avail_out===0))return BS_NEED_MORE}return j.insert=j.strstart{let _e,et,tt;for(;;){if(j.lookahead=MIN_MATCH$1&&(j.ins_h=HASH(j,j.ins_h,j.window[j.strstart+MIN_MATCH$1-1]),_e=j.prev[j.strstart&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=j.strstart),j.prev_length=j.match_length,j.prev_match=j.match_start,j.match_length=MIN_MATCH$1-1,_e!==0&&j.prev_length4096)&&(j.match_length=MIN_MATCH$1-1)),j.prev_length>=MIN_MATCH$1&&j.match_length<=j.prev_length){tt=j.strstart+j.lookahead-MIN_MATCH$1,et=_tr_tally$1(j,j.strstart-1-j.prev_match,j.prev_length-MIN_MATCH$1),j.lookahead-=j.prev_length-1,j.prev_length-=2;do++j.strstart<=tt&&(j.ins_h=HASH(j,j.ins_h,j.window[j.strstart+MIN_MATCH$1-1]),_e=j.prev[j.strstart&j.w_mask]=j.head[j.ins_h],j.head[j.ins_h]=j.strstart);while(--j.prev_length!==0);if(j.match_available=0,j.match_length=MIN_MATCH$1-1,j.strstart++,et&&(flush_block_only(j,!1),j.strm.avail_out===0))return BS_NEED_MORE}else if(j.match_available){if(et=_tr_tally$1(j,0,j.window[j.strstart-1]),et&&flush_block_only(j,!1),j.strstart++,j.lookahead--,j.strm.avail_out===0)return BS_NEED_MORE}else j.match_available=1,j.strstart++,j.lookahead--}return j.match_available&&(et=_tr_tally$1(j,0,j.window[j.strstart-1]),j.match_available=0),j.insert=j.strstart{let _e,et,tt,rt;const nt=j.window;for(;;){if(j.lookahead<=MAX_MATCH$1){if(fill_window(j),j.lookahead<=MAX_MATCH$1&&$===Z_NO_FLUSH)return BS_NEED_MORE;if(j.lookahead===0)break}if(j.match_length=0,j.lookahead>=MIN_MATCH$1&&j.strstart>0&&(tt=j.strstart-1,et=nt[tt],et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt])){rt=j.strstart+MAX_MATCH$1;do;while(et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt]&&et===nt[++tt]&&ttj.lookahead&&(j.match_length=j.lookahead)}if(j.match_length>=MIN_MATCH$1?(_e=_tr_tally$1(j,1,j.match_length-MIN_MATCH$1),j.lookahead-=j.match_length,j.strstart+=j.match_length,j.match_length=0):(_e=_tr_tally$1(j,0,j.window[j.strstart]),j.lookahead--,j.strstart++),_e&&(flush_block_only(j,!1),j.strm.avail_out===0))return BS_NEED_MORE}return j.insert=0,$===Z_FINISH?(flush_block_only(j,!0),j.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):j.last_lit&&(flush_block_only(j,!1),j.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(j,$)=>{let _e;for(;;){if(j.lookahead===0&&(fill_window(j),j.lookahead===0)){if($===Z_NO_FLUSH)return BS_NEED_MORE;break}if(j.match_length=0,_e=_tr_tally$1(j,0,j.window[j.strstart]),j.lookahead--,j.strstart++,_e&&(flush_block_only(j,!1),j.strm.avail_out===0))return BS_NEED_MORE}return j.insert=0,$===Z_FINISH?(flush_block_only(j,!0),j.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):j.last_lit&&(flush_block_only(j,!1),j.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(j,$,_e,et,tt){this.good_length=j,this.max_lazy=$,this.nice_length=_e,this.max_chain=et,this.func=tt}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=j=>{j.window_size=2*j.w_size,zero$1$1(j.head),j.max_lazy_match=configuration_table[j.level].max_lazy,j.good_match=configuration_table[j.level].good_length,j.nice_match=configuration_table[j.level].nice_length,j.max_chain_length=configuration_table[j.level].max_chain,j.strstart=0,j.block_start=0,j.lookahead=0,j.insert=0,j.match_length=j.prev_length=MIN_MATCH$1-1,j.match_available=0,j.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE$1*2),this.dyn_dtree=new Uint16Array((2*D_CODES$1+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES$1+1)*2),zero$1$1(this.dyn_ltree),zero$1$1(this.dyn_dtree),zero$1$1(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS$1+1),this.heap=new Uint16Array(2*L_CODES$1+1),zero$1$1(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES$1+1),zero$1$1(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateResetKeep=j=>{if(!j||!j.state)return err(j,Z_STREAM_ERROR);j.total_in=j.total_out=0,j.data_type=Z_UNKNOWN$1;const $=j.state;return $.pending=0,$.pending_out=0,$.wrap<0&&($.wrap=-$.wrap),$.status=$.wrap?INIT_STATE:BUSY_STATE,j.adler=$.wrap===2?0:1,$.last_flush=Z_NO_FLUSH,_tr_init$1($),Z_OK},deflateReset=j=>{const $=deflateResetKeep(j);return $===Z_OK&&lm_init(j.state),$},deflateSetHeader=(j,$)=>!j||!j.state||j.state.wrap!==2?Z_STREAM_ERROR:(j.state.gzhead=$,Z_OK),deflateInit2=(j,$,_e,et,tt,rt)=>{if(!j)return Z_STREAM_ERROR;let nt=1;if($===Z_DEFAULT_COMPRESSION&&($=6),et<0?(nt=0,et=-et):et>15&&(nt=2,et-=16),tt<1||tt>MAX_MEM_LEVEL||_e!==Z_DEFLATED||et<8||et>15||$<0||$>9||rt<0||rt>Z_FIXED$1)return err(j,Z_STREAM_ERROR);et===8&&(et=9);const it=new DeflateState;return j.state=it,it.strm=j,it.wrap=nt,it.gzhead=null,it.w_bits=et,it.w_size=1<deflateInit2(j,$,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY),deflate=(j,$)=>{let _e,et;if(!j||!j.state||$>Z_BLOCK||$<0)return j?err(j,Z_STREAM_ERROR):Z_STREAM_ERROR;const tt=j.state;if(!j.output||!j.input&&j.avail_in!==0||tt.status===FINISH_STATE&&$!==Z_FINISH)return err(j,j.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR);tt.strm=j;const rt=tt.last_flush;if(tt.last_flush=$,tt.status===INIT_STATE)if(tt.wrap===2)j.adler=0,put_byte(tt,31),put_byte(tt,139),put_byte(tt,8),tt.gzhead?(put_byte(tt,(tt.gzhead.text?1:0)+(tt.gzhead.hcrc?2:0)+(tt.gzhead.extra?4:0)+(tt.gzhead.name?8:0)+(tt.gzhead.comment?16:0)),put_byte(tt,tt.gzhead.time&255),put_byte(tt,tt.gzhead.time>>8&255),put_byte(tt,tt.gzhead.time>>16&255),put_byte(tt,tt.gzhead.time>>24&255),put_byte(tt,tt.level===9?2:tt.strategy>=Z_HUFFMAN_ONLY||tt.level<2?4:0),put_byte(tt,tt.gzhead.os&255),tt.gzhead.extra&&tt.gzhead.extra.length&&(put_byte(tt,tt.gzhead.extra.length&255),put_byte(tt,tt.gzhead.extra.length>>8&255)),tt.gzhead.hcrc&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending,0)),tt.gzindex=0,tt.status=EXTRA_STATE):(put_byte(tt,0),put_byte(tt,0),put_byte(tt,0),put_byte(tt,0),put_byte(tt,0),put_byte(tt,tt.level===9?2:tt.strategy>=Z_HUFFMAN_ONLY||tt.level<2?4:0),put_byte(tt,OS_CODE),tt.status=BUSY_STATE);else{let nt=Z_DEFLATED+(tt.w_bits-8<<4)<<8,it=-1;tt.strategy>=Z_HUFFMAN_ONLY||tt.level<2?it=0:tt.level<6?it=1:tt.level===6?it=2:it=3,nt|=it<<6,tt.strstart!==0&&(nt|=PRESET_DICT),nt+=31-nt%31,tt.status=BUSY_STATE,putShortMSB(tt,nt),tt.strstart!==0&&(putShortMSB(tt,j.adler>>>16),putShortMSB(tt,j.adler&65535)),j.adler=1}if(tt.status===EXTRA_STATE)if(tt.gzhead.extra){for(_e=tt.pending;tt.gzindex<(tt.gzhead.extra.length&65535)&&!(tt.pending===tt.pending_buf_size&&(tt.gzhead.hcrc&&tt.pending>_e&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending-_e,_e)),flush_pending(j),_e=tt.pending,tt.pending===tt.pending_buf_size));)put_byte(tt,tt.gzhead.extra[tt.gzindex]&255),tt.gzindex++;tt.gzhead.hcrc&&tt.pending>_e&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending-_e,_e)),tt.gzindex===tt.gzhead.extra.length&&(tt.gzindex=0,tt.status=NAME_STATE)}else tt.status=NAME_STATE;if(tt.status===NAME_STATE)if(tt.gzhead.name){_e=tt.pending;do{if(tt.pending===tt.pending_buf_size&&(tt.gzhead.hcrc&&tt.pending>_e&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending-_e,_e)),flush_pending(j),_e=tt.pending,tt.pending===tt.pending_buf_size)){et=1;break}tt.gzindex_e&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending-_e,_e)),et===0&&(tt.gzindex=0,tt.status=COMMENT_STATE)}else tt.status=COMMENT_STATE;if(tt.status===COMMENT_STATE)if(tt.gzhead.comment){_e=tt.pending;do{if(tt.pending===tt.pending_buf_size&&(tt.gzhead.hcrc&&tt.pending>_e&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending-_e,_e)),flush_pending(j),_e=tt.pending,tt.pending===tt.pending_buf_size)){et=1;break}tt.gzindex_e&&(j.adler=crc32_1(j.adler,tt.pending_buf,tt.pending-_e,_e)),et===0&&(tt.status=HCRC_STATE)}else tt.status=HCRC_STATE;if(tt.status===HCRC_STATE&&(tt.gzhead.hcrc?(tt.pending+2>tt.pending_buf_size&&flush_pending(j),tt.pending+2<=tt.pending_buf_size&&(put_byte(tt,j.adler&255),put_byte(tt,j.adler>>8&255),j.adler=0,tt.status=BUSY_STATE)):tt.status=BUSY_STATE),tt.pending!==0){if(flush_pending(j),j.avail_out===0)return tt.last_flush=-1,Z_OK}else if(j.avail_in===0&&rank($)<=rank(rt)&&$!==Z_FINISH)return err(j,Z_BUF_ERROR);if(tt.status===FINISH_STATE&&j.avail_in!==0)return err(j,Z_BUF_ERROR);if(j.avail_in!==0||tt.lookahead!==0||$!==Z_NO_FLUSH&&tt.status!==FINISH_STATE){let nt=tt.strategy===Z_HUFFMAN_ONLY?deflate_huff(tt,$):tt.strategy===Z_RLE?deflate_rle(tt,$):configuration_table[tt.level].func(tt,$);if((nt===BS_FINISH_STARTED||nt===BS_FINISH_DONE)&&(tt.status=FINISH_STATE),nt===BS_NEED_MORE||nt===BS_FINISH_STARTED)return j.avail_out===0&&(tt.last_flush=-1),Z_OK;if(nt===BS_BLOCK_DONE&&($===Z_PARTIAL_FLUSH?_tr_align$1(tt):$!==Z_BLOCK&&(_tr_stored_block$1(tt,0,0,!1),$===Z_FULL_FLUSH&&(zero$1$1(tt.head),tt.lookahead===0&&(tt.strstart=0,tt.block_start=0,tt.insert=0))),flush_pending(j),j.avail_out===0))return tt.last_flush=-1,Z_OK}return $!==Z_FINISH?Z_OK:tt.wrap<=0?Z_STREAM_END:(tt.wrap===2?(put_byte(tt,j.adler&255),put_byte(tt,j.adler>>8&255),put_byte(tt,j.adler>>16&255),put_byte(tt,j.adler>>24&255),put_byte(tt,j.total_in&255),put_byte(tt,j.total_in>>8&255),put_byte(tt,j.total_in>>16&255),put_byte(tt,j.total_in>>24&255)):(putShortMSB(tt,j.adler>>>16),putShortMSB(tt,j.adler&65535)),flush_pending(j),tt.wrap>0&&(tt.wrap=-tt.wrap),tt.pending!==0?Z_OK:Z_STREAM_END)},deflateEnd=j=>{if(!j||!j.state)return Z_STREAM_ERROR;const $=j.state.status;return $!==INIT_STATE&&$!==EXTRA_STATE&&$!==NAME_STATE&&$!==COMMENT_STATE&&$!==HCRC_STATE&&$!==BUSY_STATE&&$!==FINISH_STATE?err(j,Z_STREAM_ERROR):(j.state=null,$===BUSY_STATE?err(j,Z_DATA_ERROR):Z_OK)},deflateSetDictionary=(j,$)=>{let _e=$.length;if(!j||!j.state)return Z_STREAM_ERROR;const et=j.state,tt=et.wrap;if(tt===2||tt===1&&et.status!==INIT_STATE||et.lookahead)return Z_STREAM_ERROR;if(tt===1&&(j.adler=adler32_1(j.adler,$,_e,0)),et.wrap=0,_e>=et.w_size){tt===0&&(zero$1$1(et.head),et.strstart=0,et.block_start=0,et.insert=0);let ot=new Uint8Array(et.w_size);ot.set($.subarray(_e-et.w_size,_e),0),$=ot,_e=et.w_size}const rt=j.avail_in,nt=j.next_in,it=j.input;for(j.avail_in=_e,j.next_in=0,j.input=$,fill_window(et);et.lookahead>=MIN_MATCH$1;){let ot=et.strstart,At=et.lookahead-(MIN_MATCH$1-1);do et.ins_h=HASH(et,et.ins_h,et.window[ot+MIN_MATCH$1-1]),et.prev[ot&et.w_mask]=et.head[et.ins_h],et.head[et.ins_h]=ot,ot++;while(--At);et.strstart=ot,et.lookahead=MIN_MATCH$1-1,fill_window(et)}return et.strstart+=et.lookahead,et.block_start=et.strstart,et.insert=et.lookahead,et.lookahead=0,et.match_length=et.prev_length=MIN_MATCH$1-1,et.match_available=0,j.next_in=nt,j.input=it,j.avail_in=rt,et.wrap=tt,Z_OK};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2=deflate,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(j,$)=>Object.prototype.hasOwnProperty.call(j,$);var assign$1=function(j){const $=Array.prototype.slice.call(arguments,1);for(;$.length;){const _e=$.shift();if(_e){if(typeof _e!="object")throw new TypeError(_e+"must be non-object");for(const et in _e)_has(_e,et)&&(j[et]=_e[et])}}return j},flattenChunks=j=>{let $=0;for(let et=0,tt=j.length;et=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=j=>{let $,_e,et,tt,rt,nt=j.length,it=0;for(tt=0;tt>>6,$[rt++]=128|_e&63):_e<65536?($[rt++]=224|_e>>>12,$[rt++]=128|_e>>>6&63,$[rt++]=128|_e&63):($[rt++]=240|_e>>>18,$[rt++]=128|_e>>>12&63,$[rt++]=128|_e>>>6&63,$[rt++]=128|_e&63);return $};const buf2binstring=(j,$)=>{if($<65534&&j.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,j.length===$?j:j.subarray(0,$));let _e="";for(let et=0;et<$;et++)_e+=String.fromCharCode(j[et]);return _e};var buf2string=(j,$)=>{let _e,et;const tt=$||j.length,rt=new Array(tt*2);for(et=0,_e=0;_e4){rt[et++]=65533,_e+=it-1;continue}for(nt&=it===2?31:it===3?15:7;it>1&&_e1){rt[et++]=65533;continue}nt<65536?rt[et++]=nt:(nt-=65536,rt[et++]=55296|nt>>10&1023,rt[et++]=56320|nt&1023)}return buf2binstring(rt,et)},utf8border=(j,$)=>{$=$||j.length,$>j.length&&($=j.length);let _e=$-1;for(;_e>=0&&(j[_e]&192)===128;)_e--;return _e<0||_e===0?$:_e+_utf8len[j[_e]]>$?_e:$},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$1,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_DEFLATED:Z_DEFLATED$1}=constants$1;function Deflate(j){this.options=common$2.assign({level:Z_DEFAULT_COMPRESSION$1,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY$1},j||{});let $=this.options;$.raw&&$.windowBits>0?$.windowBits=-$.windowBits:$.gzip&&$.windowBits>0&&$.windowBits<16&&($.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let _e=deflate_1.deflateInit2(this.strm,$.level,$.method,$.windowBits,$.memLevel,$.strategy);if(_e!==Z_OK$1)throw new Error(messages[_e]);if($.header&&deflate_1.deflateSetHeader(this.strm,$.header),$.dictionary){let et;if(typeof $.dictionary=="string"?et=strings.string2buf($.dictionary):toString.call($.dictionary)==="[object ArrayBuffer]"?et=new Uint8Array($.dictionary):et=$.dictionary,_e=deflate_1.deflateSetDictionary(this.strm,et),_e!==Z_OK$1)throw new Error(messages[_e]);this._dict_set=!0}}Deflate.prototype.push=function(j,$){const _e=this.strm,et=this.options.chunkSize;let tt,rt;if(this.ended)return!1;for($===~~$?rt=$:rt=$===!0?Z_FINISH$1:Z_NO_FLUSH$1,typeof j=="string"?_e.input=strings.string2buf(j):toString.call(j)==="[object ArrayBuffer]"?_e.input=new Uint8Array(j):_e.input=j,_e.next_in=0,_e.avail_in=_e.input.length;;){if(_e.avail_out===0&&(_e.output=new Uint8Array(et),_e.next_out=0,_e.avail_out=et),(rt===Z_SYNC_FLUSH||rt===Z_FULL_FLUSH$1)&&_e.avail_out<=6){this.onData(_e.output.subarray(0,_e.next_out)),_e.avail_out=0;continue}if(tt=deflate_1.deflate(_e,rt),tt===Z_STREAM_END$1)return _e.next_out>0&&this.onData(_e.output.subarray(0,_e.next_out)),tt=deflate_1.deflateEnd(this.strm),this.onEnd(tt),this.ended=!0,tt===Z_OK$1;if(_e.avail_out===0){this.onData(_e.output);continue}if(rt>0&&_e.next_out>0){this.onData(_e.output.subarray(0,_e.next_out)),_e.avail_out=0;continue}if(_e.avail_in===0)break}return!0};Deflate.prototype.onData=function(j){this.chunks.push(j)};Deflate.prototype.onEnd=function(j){j===Z_OK$1&&(this.result=common$2.flattenChunks(this.chunks)),this.chunks=[],this.err=j,this.msg=this.strm.msg};function deflate$1(j,$){const _e=new Deflate($);if(_e.push(j,!0),_e.err)throw _e.msg||messages[_e.err];return _e.result}function deflateRaw(j,$){return $=$||{},$.raw=!0,deflate$1(j,$)}function gzip(j,$){return $=$||{},$.gzip=!0,deflate$1(j,$)}var Deflate_1=Deflate,deflate_2$1=deflate$1,deflateRaw_1=deflateRaw,gzip_1=gzip,constants$1$1=constants$1,deflate_1$1={Deflate:Deflate_1,deflate:deflate_2$1,deflateRaw:deflateRaw_1,gzip:gzip_1,constants:constants$1$1};const BAD=30,TYPE=12;var inffast=function($,_e){let et,tt,rt,nt,it,ot,At,ut,ft,dt,Et,Bt,St,Dt,$t,Rt,wt,xt,Nt,Ot,kt,Jt,jt,Ht;const Gt=$.state;et=$.next_in,jt=$.input,tt=et+($.avail_in-5),rt=$.next_out,Ht=$.output,nt=rt-(_e-$.avail_out),it=rt+($.avail_out-257),ot=Gt.dmax,At=Gt.wsize,ut=Gt.whave,ft=Gt.wnext,dt=Gt.window,Et=Gt.hold,Bt=Gt.bits,St=Gt.lencode,Dt=Gt.distcode,$t=(1<>>24,Et>>>=xt,Bt-=xt,xt=wt>>>16&255,xt===0)Ht[rt++]=wt&65535;else if(xt&16){Nt=wt&65535,xt&=15,xt&&(Bt>>=xt,Bt-=xt),Bt<15&&(Et+=jt[et++]<>>24,Et>>>=xt,Bt-=xt,xt=wt>>>16&255,xt&16){if(Ot=wt&65535,xt&=15,Btot){$.msg="invalid distance too far back",Gt.mode=BAD;break e}if(Et>>>=xt,Bt-=xt,xt=rt-nt,Ot>xt){if(xt=Ot-xt,xt>ut&&Gt.sane){$.msg="invalid distance too far back",Gt.mode=BAD;break e}if(kt=0,Jt=dt,ft===0){if(kt+=At-xt,xt2;)Ht[rt++]=Jt[kt++],Ht[rt++]=Jt[kt++],Ht[rt++]=Jt[kt++],Nt-=3;Nt&&(Ht[rt++]=Jt[kt++],Nt>1&&(Ht[rt++]=Jt[kt++]))}else{kt=rt-Ot;do Ht[rt++]=Ht[kt++],Ht[rt++]=Ht[kt++],Ht[rt++]=Ht[kt++],Nt-=3;while(Nt>2);Nt&&(Ht[rt++]=Ht[kt++],Nt>1&&(Ht[rt++]=Ht[kt++]))}}else if(xt&64){$.msg="invalid distance code",Gt.mode=BAD;break e}else{wt=Dt[(wt&65535)+(Et&(1<>3,et-=Nt,Bt-=Nt<<3,Et&=(1<{const ot=it.bits;let At=0,ut=0,ft=0,dt=0,Et=0,Bt=0,St=0,Dt=0,$t=0,Rt=0,wt,xt,Nt,Ot,kt,Jt=null,jt=0,Ht;const Gt=new Uint16Array(MAXBITS+1),Kt=new Uint16Array(MAXBITS+1);let Wt=null,Vt=0,ur,Ar,hr;for(At=0;At<=MAXBITS;At++)Gt[At]=0;for(ut=0;ut=1&&Gt[dt]===0;dt--);if(Et>dt&&(Et=dt),dt===0)return tt[rt++]=1<<24|64<<16|0,tt[rt++]=1<<24|64<<16|0,it.bits=1,0;for(ft=1;ft0&&(j===CODES||dt!==1))return-1;for(Kt[1]=0,At=1;AtENOUGH_LENS||j===DISTS&&$t>ENOUGH_DISTS)return 1;for(;;){ur=At-St,nt[ut]Ht?(Ar=Wt[Vt+nt[ut]],hr=Jt[jt+nt[ut]]):(Ar=96,hr=0),wt=1<>St)+xt]=ur<<24|Ar<<16|hr|0;while(xt!==0);for(wt=1<>=1;if(wt!==0?(Rt&=wt-1,Rt+=wt):Rt=0,ut++,--Gt[At]===0){if(At===dt)break;At=$[_e+nt[ut]]}if(At>Et&&(Rt&Ot)!==Nt){for(St===0&&(St=Et),kt+=ft,Bt=At-St,Dt=1<ENOUGH_LENS||j===DISTS&&$t>ENOUGH_DISTS)return 1;Nt=Rt&Ot,tt[Nt]=Et<<24|Bt<<16|kt-rt|0}}return Rt!==0&&(tt[kt+Rt]=At-St<<24|64<<16|0),it.bits=Et,0};var inftrees=inflate_table;const CODES$1=0,LENS$1=1,DISTS$1=2,{Z_FINISH:Z_FINISH$2,Z_BLOCK:Z_BLOCK$1,Z_TREES,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_NEED_DICT,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFLATED:Z_DEFLATED$2}=constants$1,HEAD=1,FLAGS=2,TIME=3,OS=4,EXLEN=5,EXTRA=6,NAME=7,COMMENT$1=8,HCRC=9,DICTID=10,DICT=11,TYPE$1=12,TYPEDO=13,STORED=14,COPY_=15,COPY=16,TABLE=17,LENLENS=18,CODELENS=19,LEN_=20,LEN=21,LENEXT=22,DIST=23,DISTEXT=24,MATCH=25,LIT=26,CHECK=27,LENGTH=28,DONE=29,BAD$1=30,MEM=31,SYNC=32,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,MAX_WBITS$1=15,DEF_WBITS=MAX_WBITS$1,zswap32=j=>(j>>>24&255)+(j>>>8&65280)+((j&65280)<<8)+((j&255)<<24);function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateResetKeep=j=>{if(!j||!j.state)return Z_STREAM_ERROR$1;const $=j.state;return j.total_in=j.total_out=$.total=0,j.msg="",$.wrap&&(j.adler=$.wrap&1),$.mode=HEAD,$.last=0,$.havedict=0,$.dmax=32768,$.head=null,$.hold=0,$.bits=0,$.lencode=$.lendyn=new Int32Array(ENOUGH_LENS$1),$.distcode=$.distdyn=new Int32Array(ENOUGH_DISTS$1),$.sane=1,$.back=-1,Z_OK$2},inflateReset=j=>{if(!j||!j.state)return Z_STREAM_ERROR$1;const $=j.state;return $.wsize=0,$.whave=0,$.wnext=0,inflateResetKeep(j)},inflateReset2=(j,$)=>{let _e;if(!j||!j.state)return Z_STREAM_ERROR$1;const et=j.state;return $<0?(_e=0,$=-$):(_e=($>>4)+1,$<48&&($&=15)),$&&($<8||$>15)?Z_STREAM_ERROR$1:(et.window!==null&&et.wbits!==$&&(et.window=null),et.wrap=_e,et.wbits=$,inflateReset(j))},inflateInit2=(j,$)=>{if(!j)return Z_STREAM_ERROR$1;const _e=new InflateState;j.state=_e,_e.window=null;const et=inflateReset2(j,$);return et!==Z_OK$2&&(j.state=null),et},inflateInit=j=>inflateInit2(j,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=j=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let $=0;for(;$<144;)j.lens[$++]=8;for(;$<256;)j.lens[$++]=9;for(;$<280;)j.lens[$++]=7;for(;$<288;)j.lens[$++]=8;for(inftrees(LENS$1,j.lens,0,288,lenfix,0,j.work,{bits:9}),$=0;$<32;)j.lens[$++]=5;inftrees(DISTS$1,j.lens,0,32,distfix,0,j.work,{bits:5}),virgin=!1}j.lencode=lenfix,j.lenbits=9,j.distcode=distfix,j.distbits=5},updatewindow=(j,$,_e,et)=>{let tt;const rt=j.state;return rt.window===null&&(rt.wsize=1<=rt.wsize?(rt.window.set($.subarray(_e-rt.wsize,_e),0),rt.wnext=0,rt.whave=rt.wsize):(tt=rt.wsize-rt.wnext,tt>et&&(tt=et),rt.window.set($.subarray(_e-et,_e-et+tt),rt.wnext),et-=tt,et?(rt.window.set($.subarray(_e-et,_e),0),rt.wnext=et,rt.whave=rt.wsize):(rt.wnext+=tt,rt.wnext===rt.wsize&&(rt.wnext=0),rt.whave{let _e,et,tt,rt,nt,it,ot,At,ut,ft,dt,Et,Bt,St,Dt=0,$t,Rt,wt,xt,Nt,Ot,kt,Jt;const jt=new Uint8Array(4);let Ht,Gt;const Kt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!j||!j.state||!j.output||!j.input&&j.avail_in!==0)return Z_STREAM_ERROR$1;_e=j.state,_e.mode===TYPE$1&&(_e.mode=TYPEDO),nt=j.next_out,tt=j.output,ot=j.avail_out,rt=j.next_in,et=j.input,it=j.avail_in,At=_e.hold,ut=_e.bits,ft=it,dt=ot,Jt=Z_OK$2;e:for(;;)switch(_e.mode){case HEAD:if(_e.wrap===0){_e.mode=TYPEDO;break}for(;ut<16;){if(it===0)break e;it--,At+=et[rt++]<>>8&255,_e.check=crc32_1(_e.check,jt,2,0),At=0,ut=0,_e.mode=FLAGS;break}if(_e.flags=0,_e.head&&(_e.head.done=!1),!(_e.wrap&1)||(((At&255)<<8)+(At>>8))%31){j.msg="incorrect header check",_e.mode=BAD$1;break}if((At&15)!==Z_DEFLATED$2){j.msg="unknown compression method",_e.mode=BAD$1;break}if(At>>>=4,ut-=4,kt=(At&15)+8,_e.wbits===0)_e.wbits=kt;else if(kt>_e.wbits){j.msg="invalid window size",_e.mode=BAD$1;break}_e.dmax=1<<_e.wbits,j.adler=_e.check=1,_e.mode=At&512?DICTID:TYPE$1,At=0,ut=0;break;case FLAGS:for(;ut<16;){if(it===0)break e;it--,At+=et[rt++]<>8&1),_e.flags&512&&(jt[0]=At&255,jt[1]=At>>>8&255,_e.check=crc32_1(_e.check,jt,2,0)),At=0,ut=0,_e.mode=TIME;case TIME:for(;ut<32;){if(it===0)break e;it--,At+=et[rt++]<>>8&255,jt[2]=At>>>16&255,jt[3]=At>>>24&255,_e.check=crc32_1(_e.check,jt,4,0)),At=0,ut=0,_e.mode=OS;case OS:for(;ut<16;){if(it===0)break e;it--,At+=et[rt++]<>8),_e.flags&512&&(jt[0]=At&255,jt[1]=At>>>8&255,_e.check=crc32_1(_e.check,jt,2,0)),At=0,ut=0,_e.mode=EXLEN;case EXLEN:if(_e.flags&1024){for(;ut<16;){if(it===0)break e;it--,At+=et[rt++]<>>8&255,_e.check=crc32_1(_e.check,jt,2,0)),At=0,ut=0}else _e.head&&(_e.head.extra=null);_e.mode=EXTRA;case EXTRA:if(_e.flags&1024&&(Et=_e.length,Et>it&&(Et=it),Et&&(_e.head&&(kt=_e.head.extra_len-_e.length,_e.head.extra||(_e.head.extra=new Uint8Array(_e.head.extra_len)),_e.head.extra.set(et.subarray(rt,rt+Et),kt)),_e.flags&512&&(_e.check=crc32_1(_e.check,et,Et,rt)),it-=Et,rt+=Et,_e.length-=Et),_e.length))break e;_e.length=0,_e.mode=NAME;case NAME:if(_e.flags&2048){if(it===0)break e;Et=0;do kt=et[rt+Et++],_e.head&&kt&&_e.length<65536&&(_e.head.name+=String.fromCharCode(kt));while(kt&&Et>9&1,_e.head.done=!0),j.adler=_e.check=0,_e.mode=TYPE$1;break;case DICTID:for(;ut<32;){if(it===0)break e;it--,At+=et[rt++]<>>=ut&7,ut-=ut&7,_e.mode=CHECK;break}for(;ut<3;){if(it===0)break e;it--,At+=et[rt++]<>>=1,ut-=1,At&3){case 0:_e.mode=STORED;break;case 1:if(fixedtables(_e),_e.mode=LEN_,$===Z_TREES){At>>>=2,ut-=2;break e}break;case 2:_e.mode=TABLE;break;case 3:j.msg="invalid block type",_e.mode=BAD$1}At>>>=2,ut-=2;break;case STORED:for(At>>>=ut&7,ut-=ut&7;ut<32;){if(it===0)break e;it--,At+=et[rt++]<>>16^65535)){j.msg="invalid stored block lengths",_e.mode=BAD$1;break}if(_e.length=At&65535,At=0,ut=0,_e.mode=COPY_,$===Z_TREES)break e;case COPY_:_e.mode=COPY;case COPY:if(Et=_e.length,Et){if(Et>it&&(Et=it),Et>ot&&(Et=ot),Et===0)break e;tt.set(et.subarray(rt,rt+Et),nt),it-=Et,rt+=Et,ot-=Et,nt+=Et,_e.length-=Et;break}_e.mode=TYPE$1;break;case TABLE:for(;ut<14;){if(it===0)break e;it--,At+=et[rt++]<>>=5,ut-=5,_e.ndist=(At&31)+1,At>>>=5,ut-=5,_e.ncode=(At&15)+4,At>>>=4,ut-=4,_e.nlen>286||_e.ndist>30){j.msg="too many length or distance symbols",_e.mode=BAD$1;break}_e.have=0,_e.mode=LENLENS;case LENLENS:for(;_e.have<_e.ncode;){for(;ut<3;){if(it===0)break e;it--,At+=et[rt++]<>>=3,ut-=3}for(;_e.have<19;)_e.lens[Kt[_e.have++]]=0;if(_e.lencode=_e.lendyn,_e.lenbits=7,Ht={bits:_e.lenbits},Jt=inftrees(CODES$1,_e.lens,0,19,_e.lencode,0,_e.work,Ht),_e.lenbits=Ht.bits,Jt){j.msg="invalid code lengths set",_e.mode=BAD$1;break}_e.have=0,_e.mode=CODELENS;case CODELENS:for(;_e.have<_e.nlen+_e.ndist;){for(;Dt=_e.lencode[At&(1<<_e.lenbits)-1],$t=Dt>>>24,Rt=Dt>>>16&255,wt=Dt&65535,!($t<=ut);){if(it===0)break e;it--,At+=et[rt++]<>>=$t,ut-=$t,_e.lens[_e.have++]=wt;else{if(wt===16){for(Gt=$t+2;ut>>=$t,ut-=$t,_e.have===0){j.msg="invalid bit length repeat",_e.mode=BAD$1;break}kt=_e.lens[_e.have-1],Et=3+(At&3),At>>>=2,ut-=2}else if(wt===17){for(Gt=$t+3;ut>>=$t,ut-=$t,kt=0,Et=3+(At&7),At>>>=3,ut-=3}else{for(Gt=$t+7;ut>>=$t,ut-=$t,kt=0,Et=11+(At&127),At>>>=7,ut-=7}if(_e.have+Et>_e.nlen+_e.ndist){j.msg="invalid bit length repeat",_e.mode=BAD$1;break}for(;Et--;)_e.lens[_e.have++]=kt}}if(_e.mode===BAD$1)break;if(_e.lens[256]===0){j.msg="invalid code -- missing end-of-block",_e.mode=BAD$1;break}if(_e.lenbits=9,Ht={bits:_e.lenbits},Jt=inftrees(LENS$1,_e.lens,0,_e.nlen,_e.lencode,0,_e.work,Ht),_e.lenbits=Ht.bits,Jt){j.msg="invalid literal/lengths set",_e.mode=BAD$1;break}if(_e.distbits=6,_e.distcode=_e.distdyn,Ht={bits:_e.distbits},Jt=inftrees(DISTS$1,_e.lens,_e.nlen,_e.ndist,_e.distcode,0,_e.work,Ht),_e.distbits=Ht.bits,Jt){j.msg="invalid distances set",_e.mode=BAD$1;break}if(_e.mode=LEN_,$===Z_TREES)break e;case LEN_:_e.mode=LEN;case LEN:if(it>=6&&ot>=258){j.next_out=nt,j.avail_out=ot,j.next_in=rt,j.avail_in=it,_e.hold=At,_e.bits=ut,inffast(j,dt),nt=j.next_out,tt=j.output,ot=j.avail_out,rt=j.next_in,et=j.input,it=j.avail_in,At=_e.hold,ut=_e.bits,_e.mode===TYPE$1&&(_e.back=-1);break}for(_e.back=0;Dt=_e.lencode[At&(1<<_e.lenbits)-1],$t=Dt>>>24,Rt=Dt>>>16&255,wt=Dt&65535,!($t<=ut);){if(it===0)break e;it--,At+=et[rt++]<>xt)],$t=Dt>>>24,Rt=Dt>>>16&255,wt=Dt&65535,!(xt+$t<=ut);){if(it===0)break e;it--,At+=et[rt++]<>>=xt,ut-=xt,_e.back+=xt}if(At>>>=$t,ut-=$t,_e.back+=$t,_e.length=wt,Rt===0){_e.mode=LIT;break}if(Rt&32){_e.back=-1,_e.mode=TYPE$1;break}if(Rt&64){j.msg="invalid literal/length code",_e.mode=BAD$1;break}_e.extra=Rt&15,_e.mode=LENEXT;case LENEXT:if(_e.extra){for(Gt=_e.extra;ut>>=_e.extra,ut-=_e.extra,_e.back+=_e.extra}_e.was=_e.length,_e.mode=DIST;case DIST:for(;Dt=_e.distcode[At&(1<<_e.distbits)-1],$t=Dt>>>24,Rt=Dt>>>16&255,wt=Dt&65535,!($t<=ut);){if(it===0)break e;it--,At+=et[rt++]<>xt)],$t=Dt>>>24,Rt=Dt>>>16&255,wt=Dt&65535,!(xt+$t<=ut);){if(it===0)break e;it--,At+=et[rt++]<>>=xt,ut-=xt,_e.back+=xt}if(At>>>=$t,ut-=$t,_e.back+=$t,Rt&64){j.msg="invalid distance code",_e.mode=BAD$1;break}_e.offset=wt,_e.extra=Rt&15,_e.mode=DISTEXT;case DISTEXT:if(_e.extra){for(Gt=_e.extra;ut>>=_e.extra,ut-=_e.extra,_e.back+=_e.extra}if(_e.offset>_e.dmax){j.msg="invalid distance too far back",_e.mode=BAD$1;break}_e.mode=MATCH;case MATCH:if(ot===0)break e;if(Et=dt-ot,_e.offset>Et){if(Et=_e.offset-Et,Et>_e.whave&&_e.sane){j.msg="invalid distance too far back",_e.mode=BAD$1;break}Et>_e.wnext?(Et-=_e.wnext,Bt=_e.wsize-Et):Bt=_e.wnext-Et,Et>_e.length&&(Et=_e.length),St=_e.window}else St=tt,Bt=nt-_e.offset,Et=_e.length;Et>ot&&(Et=ot),ot-=Et,_e.length-=Et;do tt[nt++]=St[Bt++];while(--Et);_e.length===0&&(_e.mode=LEN);break;case LIT:if(ot===0)break e;tt[nt++]=_e.length,ot--,_e.mode=LEN;break;case CHECK:if(_e.wrap){for(;ut<32;){if(it===0)break e;it--,At|=et[rt++]<{if(!j||!j.state)return Z_STREAM_ERROR$1;let $=j.state;return $.window&&($.window=null),j.state=null,Z_OK$2},inflateGetHeader=(j,$)=>{if(!j||!j.state)return Z_STREAM_ERROR$1;const _e=j.state;return _e.wrap&2?(_e.head=$,$.done=!1,Z_OK$2):Z_STREAM_ERROR$1},inflateSetDictionary=(j,$)=>{const _e=$.length;let et,tt,rt;return!j||!j.state||(et=j.state,et.wrap!==0&&et.mode!==DICT)?Z_STREAM_ERROR$1:et.mode===DICT&&(tt=1,tt=adler32_1(tt,$,_e,0),tt!==et.check)?Z_DATA_ERROR$1:(rt=updatewindow(j,$,_e,_e),rt?(et.mode=MEM,Z_MEM_ERROR):(et.havedict=1,Z_OK$2))};var inflateReset_1=inflateReset,inflateReset2_1=inflateReset2,inflateResetKeep_1=inflateResetKeep,inflateInit_1=inflateInit,inflateInit2_1=inflateInit2,inflate_2=inflate,inflateEnd_1=inflateEnd,inflateGetHeader_1=inflateGetHeader,inflateSetDictionary_1=inflateSetDictionary,inflateInfo="pako inflate (from Nodeca project)",inflate_1={inflateReset:inflateReset_1,inflateReset2:inflateReset2_1,inflateResetKeep:inflateResetKeep_1,inflateInit:inflateInit_1,inflateInit2:inflateInit2_1,inflate:inflate_2,inflateEnd:inflateEnd_1,inflateGetHeader:inflateGetHeader_1,inflateSetDictionary:inflateSetDictionary_1,inflateInfo};function GZheader(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var gzheader=GZheader;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_FINISH:Z_FINISH$3,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_MEM_ERROR:Z_MEM_ERROR$1}=constants$1;function Inflate(j){this.options=common$2.assign({chunkSize:1024*64,windowBits:15,to:""},j||{});const $=this.options;$.raw&&$.windowBits>=0&&$.windowBits<16&&($.windowBits=-$.windowBits,$.windowBits===0&&($.windowBits=-15)),$.windowBits>=0&&$.windowBits<16&&!(j&&j.windowBits)&&($.windowBits+=32),$.windowBits>15&&$.windowBits<48&&($.windowBits&15||($.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let _e=inflate_1.inflateInit2(this.strm,$.windowBits);if(_e!==Z_OK$3)throw new Error(messages[_e]);if(this.header=new gzheader,inflate_1.inflateGetHeader(this.strm,this.header),$.dictionary&&(typeof $.dictionary=="string"?$.dictionary=strings.string2buf($.dictionary):toString$1.call($.dictionary)==="[object ArrayBuffer]"&&($.dictionary=new Uint8Array($.dictionary)),$.raw&&(_e=inflate_1.inflateSetDictionary(this.strm,$.dictionary),_e!==Z_OK$3)))throw new Error(messages[_e])}Inflate.prototype.push=function(j,$){const _e=this.strm,et=this.options.chunkSize,tt=this.options.dictionary;let rt,nt,it;if(this.ended)return!1;for($===~~$?nt=$:nt=$===!0?Z_FINISH$3:Z_NO_FLUSH$2,toString$1.call(j)==="[object ArrayBuffer]"?_e.input=new Uint8Array(j):_e.input=j,_e.next_in=0,_e.avail_in=_e.input.length;;){for(_e.avail_out===0&&(_e.output=new Uint8Array(et),_e.next_out=0,_e.avail_out=et),rt=inflate_1.inflate(_e,nt),rt===Z_NEED_DICT$1&&tt&&(rt=inflate_1.inflateSetDictionary(_e,tt),rt===Z_OK$3?rt=inflate_1.inflate(_e,nt):rt===Z_DATA_ERROR$2&&(rt=Z_NEED_DICT$1));_e.avail_in>0&&rt===Z_STREAM_END$3&&_e.state.wrap>0&&j[_e.next_in]!==0;)inflate_1.inflateReset(_e),rt=inflate_1.inflate(_e,nt);switch(rt){case Z_STREAM_ERROR$2:case Z_DATA_ERROR$2:case Z_NEED_DICT$1:case Z_MEM_ERROR$1:return this.onEnd(rt),this.ended=!0,!1}if(it=_e.avail_out,_e.next_out&&(_e.avail_out===0||rt===Z_STREAM_END$3))if(this.options.to==="string"){let ot=strings.utf8border(_e.output,_e.next_out),At=_e.next_out-ot,ut=strings.buf2string(_e.output,ot);_e.next_out=At,_e.avail_out=et-At,At&&_e.output.set(_e.output.subarray(ot,ot+At),0),this.onData(ut)}else this.onData(_e.output.length===_e.next_out?_e.output:_e.output.subarray(0,_e.next_out));if(!(rt===Z_OK$3&&it===0)){if(rt===Z_STREAM_END$3)return rt=inflate_1.inflateEnd(this.strm),this.onEnd(rt),this.ended=!0,!0;if(_e.avail_in===0)break}}return!0};Inflate.prototype.onData=function(j){this.chunks.push(j)};Inflate.prototype.onEnd=function(j){j===Z_OK$3&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=common$2.flattenChunks(this.chunks)),this.chunks=[],this.err=j,this.msg=this.strm.msg};function inflate$1(j,$){const _e=new Inflate($);if(_e.push(j),_e.err)throw _e.msg||messages[_e.err];return _e.result}function inflateRaw(j,$){return $=$||{},$.raw=!0,inflate$1(j,$)}var Inflate_1=Inflate,inflate_2$1=inflate$1,inflateRaw_1=inflateRaw,ungzip=inflate$1,constants$2=constants$1,inflate_1$1={Inflate:Inflate_1,inflate:inflate_2$1,inflateRaw:inflateRaw_1,ungzip,constants:constants$2};const{Deflate:Deflate$1,deflate:deflate$2,deflateRaw:deflateRaw$1,gzip:gzip$1}=deflate_1$1,{Inflate:Inflate$1,inflate:inflate$2,inflateRaw:inflateRaw$1,ungzip:ungzip$1}=inflate_1$1;var Deflate_1$1=Deflate$1,deflate_1$2=deflate$2,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,Inflate_1$1=Inflate$1,inflate_1$2=inflate$2,inflateRaw_1$1=inflateRaw$1,ungzip_1=ungzip$1,constants_1=constants$1,pako={Deflate:Deflate_1$1,deflate:deflate_1$2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,Inflate:Inflate_1$1,inflate:inflate_1$2,inflateRaw:inflateRaw_1$1,ungzip:ungzip_1,constants:constants_1},_a$2;const GZip=(_a$2=class Bp{constructor($=1){if($<0||$>9)throw new Error("Invalid gzip compression level, it should be between 0 and 9");this.level=$}static fromConfig({level:$}){return new Bp($)}encode($){return pako.gzip($,{level:this.level})}decode($,_e){const et=pako.ungzip($);return _e!==void 0?(_e.set(et),_e):et}},_a$2.codecId="gzip",_a$2);var _a$1;const Zlib=(_a$1=class _p{constructor($=1){if($<-1||$>9)throw new Error("Invalid zlib compression level, it should be between -1 and 9");this.level=$}static fromConfig({level:$}){return new _p($)}encode($){return pako.deflate($,{level:this.level})}decode($,_e){const et=pako.inflate($);return _e!==void 0?(_e.set(et),_e):et}},_a$1.codecId="zlib",_a$1),IS_NODE=typeof process<"u"&&process.versions!=null&&process.versions.node!=null;let __toBinary=IS_NODE?j=>new Uint8Array(Buffer.from(j,"base64")):(()=>{for(var j=new Uint8Array(128),$=0;$<64;$++)j[$<26?$+65:$<52?$+71:$<62?$-4:$*4-205]=$;return _e=>{for(var et=_e.length,tt=new Uint8Array((et-(_e[et-1]=="=")-(_e[et-2]=="="))*3/4|0),rt=0,nt=0;rt>4,tt[nt++]=ot<<4|At>>2,tt[nt++]=At<<6|ut}return tt}})();function initEmscriptenModule(j,$){const _e=__toBinary($);return j({noInitialRun:!0,wasmBinary:_e})}var blosc_codec=function(){return typeof document<"u"&&document.currentScript&&document.currentScript.src,function(j){j=j||{};var $;$||($=typeof j<"u"?j:{});var _e,et;$.ready=new Promise(function(Ir,mt){_e=Ir,et=mt});var tt={},rt;for(rt in $)$.hasOwnProperty(rt)&&(tt[rt]=$[rt]);var nt="./this.program",it=$.print||console.log.bind(console),ot=$.printErr||console.warn.bind(console);for(rt in tt)tt.hasOwnProperty(rt)&&($[rt]=tt[rt]);tt=null,$.thisProgram&&(nt=$.thisProgram);var At;$.wasmBinary&&(At=$.wasmBinary),$.noExitRuntime&&$.noExitRuntime,typeof WebAssembly!="object"&&_r("no native wasm support detected");var ut,ft=!1,dt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Et(Ir,mt,gr){var Hr=mt+gr;for(gr=mt;Ir[gr]&&!(gr>=Hr);)++gr;if(16Jr?Hr+=String.fromCharCode(Jr):(Jr-=65536,Hr+=String.fromCharCode(55296|Jr>>10,56320|Jr&1023))}}else Hr+=String.fromCharCode(Jr)}return Hr}function Bt(Ir,mt,gr){var Hr=Jt;if(0=tn){var cn=Ir.charCodeAt(++Jr);tn=65536+((tn&1023)<<10)|cn&1023}if(127>=tn){if(mt>=gr)break;Hr[mt++]=tn}else{if(2047>=tn){if(mt+1>=gr)break;Hr[mt++]=192|tn>>6}else{if(65535>=tn){if(mt+2>=gr)break;Hr[mt++]=224|tn>>12}else{if(mt+3>=gr)break;Hr[mt++]=240|tn>>18,Hr[mt++]=128|tn>>12&63}Hr[mt++]=128|tn>>6&63}Hr[mt++]=128|tn&63}}Hr[mt]=0}}var St=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Dt(Ir,mt){for(var gr=Ir>>1,Hr=gr+mt/2;!(gr>=Hr)&&Ht[gr];)++gr;if(gr<<=1,32>1];if(Jr==0||gr==mt/2)return Hr;++gr,Hr+=String.fromCharCode(Jr)}}function $t(Ir,mt,gr){if(gr===void 0&&(gr=2147483647),2>gr)return 0;gr-=2;var Hr=mt;gr=gr<2*Ir.length?gr/2:Ir.length;for(var Jr=0;Jr>1]=Ir.charCodeAt(Jr),mt+=2;return jt[mt>>1]=0,mt-Hr}function Rt(Ir){return 2*Ir.length}function wt(Ir,mt){for(var gr=0,Hr="";!(gr>=mt/4);){var Jr=Gt[Ir+4*gr>>2];if(Jr==0)break;++gr,65536<=Jr?(Jr-=65536,Hr+=String.fromCharCode(55296|Jr>>10,56320|Jr&1023)):Hr+=String.fromCharCode(Jr)}return Hr}function xt(Ir,mt,gr){if(gr===void 0&&(gr=2147483647),4>gr)return 0;var Hr=mt;gr=Hr+gr-4;for(var Jr=0;Jr=tn){var cn=Ir.charCodeAt(++Jr);tn=65536+((tn&1023)<<10)|cn&1023}if(Gt[mt>>2]=tn,mt+=4,mt+4>gr)break}return Gt[mt>>2]=0,mt-Hr}function Nt(Ir){for(var mt=0,gr=0;gr=Hr&&++gr,mt+=4}return mt}var Ot,kt,Jt,jt,Ht,Gt,Kt,Wt,Vt;function ur(Ir){Ot=Ir,$.HEAP8=kt=new Int8Array(Ir),$.HEAP16=jt=new Int16Array(Ir),$.HEAP32=Gt=new Int32Array(Ir),$.HEAPU8=Jt=new Uint8Array(Ir),$.HEAPU16=Ht=new Uint16Array(Ir),$.HEAPU32=Kt=new Uint32Array(Ir),$.HEAPF32=Wt=new Float32Array(Ir),$.HEAPF64=Vt=new Float64Array(Ir)}var Ar=$.INITIAL_MEMORY||16777216;$.wasmMemory?ut=$.wasmMemory:ut=new WebAssembly.Memory({initial:Ar/65536,maximum:32768}),ut&&(Ot=ut.buffer),Ar=Ot.byteLength,ur(Ot);var hr,sr=[],ar=[],Yt=[],pr=[];function Zt(){var Ir=$.preRun.shift();sr.unshift(Ir)}var mr=0,vr=null;$.preloadedImages={},$.preloadedAudios={};function _r(Ir){throw $.onAbort&&$.onAbort(Ir),ot(Ir),ft=!0,Ir=new WebAssembly.RuntimeError("abort("+Ir+"). Build with -s ASSERTIONS=1 for more info."),et(Ir),Ir}function Er(Ir){var mt=Rr;return String.prototype.startsWith?mt.startsWith(Ir):mt.indexOf(Ir)===0}function Lr(){return Er("data:application/octet-stream;base64,")}var Rr="blosc_codec.wasm";if(!Lr()){var $r=Rr;Rr=$.locateFile?$.locateFile($r,""):""+$r}function xr(){try{if(At)return new Uint8Array(At);throw"both async and sync fetching of the wasm failed"}catch(Ir){_r(Ir)}}function Fr(Ir){for(;0>2]=mt},this.X=function(mt){Gt[this.N+0>>2]=mt},this.Y=function(){Gt[this.N+4>>2]=0},this.W=function(){kt[this.N+12>>0]=0},this.Z=function(){kt[this.N+13>>0]=0},this.V=function(mt,gr){this.$(mt),this.X(gr),this.Y(),this.W(),this.Z()}}function Xt(Ir){switch(Ir){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+Ir)}}var cr=void 0;function ir(Ir){for(var mt="";Jt[Ir];)mt+=cr[Jt[Ir++]];return mt}var Qr={},Or={},Yr={};function wr(Ir){if(Ir===void 0)return"_unknown";Ir=Ir.replace(/[^a-zA-Z0-9_]/g,"$");var mt=Ir.charCodeAt(0);return 48<=mt&&57>=mt?"_"+Ir:Ir}function rr(Ir,mt){return Ir=wr(Ir),new Function("body","return function "+Ir+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(mt)}function er(Ir){var mt=Error,gr=rr(Ir,function(Hr){this.name=Ir,this.message=Hr,Hr=Error(Hr).stack,Hr!==void 0&&(this.stack=this.toString()+` +`+Hr.replace(/^Error(:[^\n]*)?\n/,""))});return gr.prototype=Object.create(mt.prototype),gr.prototype.constructor=gr,gr.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},gr}var lr=void 0;function fr(Ir){throw new lr(Ir)}var yr=void 0;function Ur(Ir,mt){function gr(En){if(En=mt(En),En.length!==Hr.length)throw new yr("Mismatched type converter count");for(var hn=0;hn>2])}function Sn(Ir){if(Ir===null)return"null";var mt=typeof Ir;return mt==="object"||mt==="array"||mt==="function"?Ir.toString():""+Ir}function un(Ir,mt){switch(mt){case 2:return function(gr){return this.fromWireType(Wt[gr>>2])};case 3:return function(gr){return this.fromWireType(Vt[gr>>3])};default:throw new TypeError("Unknown float type: "+Ir)}}function dn(Ir){var mt=Function;if(!(mt instanceof Function))throw new TypeError("new_ called with constructor type "+typeof mt+" which is not a function");var gr=rr(mt.name||"unknownFunctionName",function(){});return gr.prototype=mt.prototype,gr=new gr,Ir=mt.apply(gr,Ir),Ir instanceof Object?Ir:gr}function wn(Ir){for(;Ir.length;){var mt=Ir.pop();Ir.pop()(mt)}}function Nn(Ir,mt){var gr=$;if(gr[Ir].L===void 0){var Hr=gr[Ir];gr[Ir]=function(){return gr[Ir].L.hasOwnProperty(arguments.length)||fr("Function '"+mt+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+gr[Ir].L+")!"),gr[Ir].L[arguments.length].apply(this,arguments)},gr[Ir].L=[],gr[Ir].L[Hr.S]=Hr}}function Tn(Ir,mt,gr){$.hasOwnProperty(Ir)?((gr===void 0||$[Ir].L!==void 0&&$[Ir].L[gr]!==void 0)&&fr("Cannot register public name '"+Ir+"' twice"),Nn(Ir,Ir),$.hasOwnProperty(gr)&&fr("Cannot register multiple overloads of a function with the same number of arguments ("+gr+")!"),$[Ir].L[gr]=mt):($[Ir]=mt,gr!==void 0&&($[Ir].ba=gr))}function oo(Ir,mt){for(var gr=[],Hr=0;Hr>2)+Hr]);return gr}function ao(Ir,mt){0<=Ir.indexOf("j")||_r("Assertion failed: getDynCaller should only be called with i64 sigs");var gr=[];return function(){gr.length=arguments.length;for(var Hr=0;Hr>1]}:function(Hr){return Ht[Hr>>1]};case 2:return gr?function(Hr){return Gt[Hr>>2]}:function(Hr){return Kt[Hr>>2]};default:throw new TypeError("Unknown integer type: "+Ir)}}var Lo={};function Ln(){if(!rs){var Ir={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:nt||"./this.program"},mt;for(mt in Lo)Ir[mt]=Lo[mt];var gr=[];for(mt in Ir)gr.push(mt+"="+Ir[mt]);rs=gr}return rs}for(var rs,Jo=[null,[],[]],zo=Array(256),qo=0;256>qo;++qo)zo[qo]=String.fromCharCode(qo);cr=zo,lr=$.BindingError=er("BindingError"),yr=$.InternalError=er("InternalError"),$.count_emval_handles=function(){for(var Ir=0,mt=5;mt>tn])},M:null})},y:function(Ir,mt){mt=ir(mt),Wr(Ir,{name:mt,fromWireType:function(gr){var Hr=Zr[gr].value;return rn(gr),Hr},toWireType:function(gr,Hr){return on(Hr)},argPackAdvance:8,readValueFromPointer:In,M:null})},h:function(Ir,mt,gr){gr=Xt(gr),mt=ir(mt),Wr(Ir,{name:mt,fromWireType:function(Hr){return Hr},toWireType:function(Hr,Jr){if(typeof Jr!="number"&&typeof Jr!="boolean")throw new TypeError('Cannot convert "'+Sn(Jr)+'" to '+this.name);return Jr},argPackAdvance:8,readValueFromPointer:un(mt,gr),M:null})},e:function(Ir,mt,gr,Hr,Jr,tn){var cn=oo(mt,gr);Ir=ir(Ir),Jr=qn(Hr,Jr),Tn(Ir,function(){Xr("Cannot call "+Ir+" due to unbound types",cn)},mt-1),Ur(cn,function(En){var hn=Ir,vn=Ir;En=[En[0],null].concat(En.slice(1));var Qn=Jr,xn=En.length;2>xn&&fr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var mo=En[1]!==null&&!1,Yn=!1,Dn=1;Dn>>En}}var hn=mt.indexOf("unsigned")!=-1;Wr(Ir,{name:mt,fromWireType:tn,toWireType:function(vn,Qn){if(typeof Qn!="number"&&typeof Qn!="boolean")throw new TypeError('Cannot convert "'+Sn(Qn)+'" to '+this.name);if(QnJr)throw new TypeError('Passing a number "'+Sn(Qn)+'" from JS side to C/C++ side to an argument of type "'+mt+'", which is outside the valid range ['+Hr+", "+Jr+"]!");return hn?Qn>>>0:Qn|0},argPackAdvance:8,readValueFromPointer:Co(mt,cn,Hr!==0),M:null})},b:function(Ir,mt,gr){function Hr(tn){tn>>=2;var cn=Kt;return new Jr(Ot,cn[tn+1],cn[tn])}var Jr=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][mt];gr=ir(gr),Wr(Ir,{name:gr,fromWireType:Hr,argPackAdvance:8,readValueFromPointer:Hr},{U:!0})},i:function(Ir,mt){mt=ir(mt);var gr=mt==="std::string";Wr(Ir,{name:mt,fromWireType:function(Hr){var Jr=Kt[Hr>>2];if(gr)for(var tn=Hr+4,cn=0;cn<=Jr;++cn){var En=Hr+4+cn;if(cn==Jr||Jt[En]==0){if(tn=tn?Et(Jt,tn,En-tn):"",hn===void 0)var hn=tn;else hn+="\0",hn+=tn;tn=En+1}}else{for(hn=Array(Jr),cn=0;cn=xn&&(xn=65536+((xn&1023)<<10)|Jr.charCodeAt(++Qn)&1023),127>=xn?++vn:vn=2047>=xn?vn+2:65535>=xn?vn+3:vn+4}return vn}:function(){return Jr.length})(),En=wo(4+cn+1);if(Kt[En>>2]=cn,gr&&tn)Bt(Jr,En+4,cn+1);else if(tn)for(tn=0;tn>2],Qn=cn(),xn,mo=hn+4,Yn=0;Yn<=vn;++Yn){var Dn=hn+4+Yn*mt;(Yn==vn||Qn[Dn>>En]==0)&&(mo=Hr(mo,Dn-mo),xn===void 0?xn=mo:(xn+="\0",xn+=mo),mo=Dn+mt)}return lo(hn),xn},toWireType:function(hn,vn){typeof vn!="string"&&fr("Cannot pass non-string to C++ string type "+gr);var Qn=tn(vn),xn=wo(4+Qn+mt);return Kt[xn>>2]=Qn>>En,Jr(vn,xn+4,Qn+mt),hn!==null&&hn.push(lo,xn),xn},argPackAdvance:8,readValueFromPointer:In,M:function(hn){lo(hn)}})},A:function(Ir,mt){mt=ir(mt),Wr(Ir,{aa:!0,name:mt,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:rn,x:function(Ir){4>>=0;var mt=Jt.length;if(2147483648=gr;gr*=2){var Hr=mt*(1+.2/gr);Hr=Math.min(Hr,Ir+100663296),Hr=Math.max(16777216,Ir,Hr),0>>16),ur(ut.buffer);var Jr=1;break e}catch{}Jr=void 0}if(Jr)return!0}return!1},u:function(Ir,mt){var gr=0;return Ln().forEach(function(Hr,Jr){var tn=mt+gr;for(Jr=Gt[Ir+4*Jr>>2]=tn,tn=0;tn>0]=Hr.charCodeAt(tn);kt[Jr>>0]=0,gr+=Hr.length+1}),0},v:function(Ir,mt){var gr=Ln();Gt[Ir>>2]=gr.length;var Hr=0;return gr.forEach(function(Jr){Hr+=Jr.length+1}),Gt[mt>>2]=Hr,0},w:function(){return 0},q:function(){},g:function(Ir,mt,gr,Hr){for(var Jr=0,tn=0;tn>2],En=Gt[mt+(8*tn+4)>>2],hn=0;hn>2]=Jr,0},a:ut,l:function(){return 0},k:function(){return 0},j:function(){},B:function(){return 6},m:function(){},f:function(){}};(function(){function Ir(Jr){$.asm=Jr.exports,hr=$.asm.D,mr--,$.monitorRunDependencies&&$.monitorRunDependencies(mr),mr==0&&vr&&(Jr=vr,vr=null,Jr())}function mt(Jr){Ir(Jr.instance)}function gr(Jr){return Promise.resolve().then(xr).then(function(tn){return WebAssembly.instantiate(tn,Hr)}).then(Jr,function(tn){ot("failed to asynchronously prepare wasm: "+tn),_r(tn)})}var Hr={a:Js};if(mr++,$.monitorRunDependencies&&$.monitorRunDependencies(mr),$.instantiateWasm)try{return $.instantiateWasm(Hr,Ir)}catch(Jr){return ot("Module.instantiateWasm callback failed with error: "+Jr),!1}return function(){return At||typeof WebAssembly.instantiateStreaming!="function"||Lr()||Er("file://")||typeof fetch!="function"?gr(mt):fetch(Rr,{credentials:"same-origin"}).then(function(Jr){return WebAssembly.instantiateStreaming(Jr,Hr).then(mt,function(tn){return ot("wasm streaming compile failed: "+tn),ot("falling back to ArrayBuffer instantiation"),gr(mt)})})}().catch(et),{}})();var yo=$.___wasm_call_ctors=function(){return(yo=$.___wasm_call_ctors=$.asm.E).apply(null,arguments)},wo=$._malloc=function(){return(wo=$._malloc=$.asm.F).apply(null,arguments)},lo=$._free=function(){return(lo=$._free=$.asm.G).apply(null,arguments)},nn=$.___getTypeName=function(){return(nn=$.___getTypeName=$.asm.H).apply(null,arguments)};$.___embind_register_native_and_builtin_types=function(){return($.___embind_register_native_and_builtin_types=$.asm.I).apply(null,arguments)},$.dynCall_jiiiii=function(){return($.dynCall_jiiiii=$.asm.J).apply(null,arguments)},$.dynCall_jiji=function(){return($.dynCall_jiji=$.asm.K).apply(null,arguments)};var an;vr=function Ir(){an||Sr(),an||(vr=Ir)};function Sr(){function Ir(){if(!an&&(an=!0,$.calledRun=!0,!ft)){if(Fr(ar),Fr(Yt),_e($),$.onRuntimeInitialized&&$.onRuntimeInitialized(),$.postRun)for(typeof $.postRun=="function"&&($.postRun=[$.postRun]);$.postRun.length;){var mt=$.postRun.shift();pr.unshift(mt)}Fr(pr)}}if(!(09)throw new Error(`Invalid compression level: '${$}'. It should be between 0 and 9`);if(!COMPRESSORS.has(_e))throw new Error(`Invalid compressor '${_e}'. Valid compressors include + 'blosclz', 'lz4', 'lz4hc','snappy', 'zlib', 'zstd'.`);if(et<-1||et>2)throw new Error(`Invalid shuffle ${et}. Must be one of 0 (NOSHUFFLE), + 1 (SHUFFLE), 2 (BITSHUFFLE), -1 (AUTOSHUFFLE).`);this.blocksize=tt,this.clevel=$,this.cname=_e,this.shuffle=et}static fromConfig({blocksize:$,clevel:_e,cname:et,shuffle:tt}){return new vp(_e,et,tt,$)}async encode($){emscriptenModule||(emscriptenModule=initEmscriptenModule(blosc_codec,wasmSrc));const _e=await emscriptenModule,et=_e.compress($,this.cname,this.clevel,this.shuffle,this.blocksize),tt=new Uint8Array(et);return _e.free_result(),tt}async decode($,_e){emscriptenModule||(emscriptenModule=initEmscriptenModule(blosc_codec,wasmSrc));const et=await emscriptenModule,tt=et.decompress($),rt=new Uint8Array(tt);return et.free_result(),_e!==void 0?(_e.set(rt),_e):rt}},_a.codecId="blosc",_a.COMPRESSORS=[...COMPRESSORS],_a.NOSHUFFLE=BloscShuffle.NOSHUFFLE,_a.SHUFFLE=BloscShuffle.SHUFFLE,_a.BITSHUFFLE=BloscShuffle.BITSHUFFLE,_a.AUTOSHUFFLE=BloscShuffle.AUTOSHUFFLE,_a);addCodec(Zlib.codecId,()=>Zlib);addCodec(GZip.codecId,()=>GZip);addCodec(Blosc.codecId,()=>Blosc);class LZWDecoder extends BaseDecoder{constructor($){super();const _e=$.TileWidth||$.ImageWidth,et=$.TileLength||$.ImageLength,tt=$.BitsPerSample[0]/8;this.maxUncompressedSize=_e*et*tt}async decodeBlock($){const _e=new Uint8Array($);return(await N(_e,this.maxUncompressedSize)).buffer}}function isInterleaved$2(j){const $=j[j.length-1];return $===3||$===4}function getImageSize(j){const $=isInterleaved$2(j.shape),[_e,et]=j.shape.slice($?-3:-2);return{height:_e,width:et}}const SIGNAL_ABORTED="__vivSignalAborted";addDecoder(5,()=>LZWDecoder);const MAX_COLOR_INTENSITY=255,DEFAULT_COLOR_OFF=[0,0,0],MAX_CHANNELS$1=6,DEFAULT_FONT_FAMILY="-apple-system, 'Helvetica Neue', Arial, sans-serif",DTYPE_VALUES={Uint8:{format:GL$1.R8UI,dataFormat:GL$1.RED_INTEGER,type:GL$1.UNSIGNED_BYTE,max:2**8-1,sampler:"usampler2D"},Uint16:{format:GL$1.R16UI,dataFormat:GL$1.RED_INTEGER,type:GL$1.UNSIGNED_SHORT,max:2**16-1,sampler:"usampler2D"},Uint32:{format:GL$1.R32UI,dataFormat:GL$1.RED_INTEGER,type:GL$1.UNSIGNED_INT,max:2**32-1,sampler:"usampler2D"},Float32:{format:GL$1.R32F,dataFormat:GL$1.RED,type:GL$1.FLOAT,max:3.4*10**38,sampler:"sampler2D"},Int8:{format:GL$1.R8I,dataFormat:GL$1.RED_INTEGER,type:GL$1.BYTE,max:2**7-1,sampler:"isampler2D"},Int16:{format:GL$1.R16I,dataFormat:GL$1.RED_INTEGER,type:GL$1.SHORT,max:2**15-1,sampler:"isampler2D"},Int32:{format:GL$1.R32I,dataFormat:GL$1.RED_INTEGER,type:GL$1.INT,max:2**31-1,sampler:"isampler2D"},Float64:{format:GL$1.R32F,dataFormat:GL$1.RED,type:GL$1.FLOAT,max:3.4*10**38,sampler:"sampler2D",cast:j=>new Float32Array(j)}};var RENDERING_MODES=(j=>(j.MAX_INTENSITY_PROJECTION="Maximum Intensity Projection",j.MIN_INTENSITY_PROJECTION="Minimum Intensity Projection",j.ADDITIVE="Additive",j))(RENDERING_MODES||{});const apply_transparent_color=`vec4 apply_transparent_color(vec3 color, vec3 transparentColor, bool useTransparentColor, float opacity){ + return vec4(color, (color == transparentColor && useTransparentColor) ? 0. : opacity); +} +`,alpha$2=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(1,1,1,0); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,autumn=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(1,0,0,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,0,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,bathymetry=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.1568627450980392,0.10196078431372549,0.17254901960784313,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.23137254901960785,0.19215686274509805,0.35294117647058826,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.25098039215686274,0.2980392156862745,0.5450980392156862,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.24705882352941178,0.43137254901960786,0.592156862745098,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.2823529411764706,0.5568627450980392,0.6196078431372549,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.3333333333333333,0.6823529411764706,0.6392156862745098,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.47058823529411764,0.807843137254902,0.6392156862745098,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.7333333333333333,0.9019607843137255,0.6745098039215687,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9921568627450981,0.996078431372549,0.8,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,blackbody=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.2; + const vec4 v1 = vec4(0.9019607843137255,0,0,1); + const float e2 = 0.4; + const vec4 v2 = vec4(0.9019607843137255,0.8235294117647058,0,1); + const float e3 = 0.7; + const vec4 v3 = vec4(1,1,1,1); + const float e4 = 1.0; + const vec4 v4 = vec4(0.6274509803921569,0.7843137254901961,1,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3),mix(v3,v4,a3)*step(e3,x)*step(x,e4) + ))); +} +`,bluered=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,1,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,0,0,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,bone=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.376; + const vec4 v1 = vec4(0.32941176470588235,0.32941176470588235,0.4549019607843137,1); + const float e2 = 0.753; + const vec4 v2 = vec4(0.6627450980392157,0.7843137254901961,0.7843137254901961,1); + const float e3 = 1.0; + const vec4 v3 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2),mix(v2,v3,a2)*step(e2,x)*step(x,e3) + )); +} +`,cdom=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.1843137254901961,0.058823529411764705,0.24313725490196078,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.3411764705882353,0.09019607843137255,0.33725490196078434,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.5098039215686274,0.10980392156862745,0.38823529411764707,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6705882352941176,0.1607843137254902,0.3764705882352941,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.807843137254902,0.2627450980392157,0.33725490196078434,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.9019607843137255,0.41568627450980394,0.32941176470588235,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9490196078431372,0.5843137254901961,0.403921568627451,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9764705882352941,0.7568627450980392,0.5294117647058824,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.996078431372549,0.9294117647058824,0.6901960784313725,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,chlorophyll=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.07058823529411765,0.1411764705882353,0.0784313725490196,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.09803921568627451,0.24705882352941178,0.1607843137254902,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.09411764705882353,0.3568627450980392,0.23137254901960785,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.050980392156862744,0.4666666666666667,0.2823529411764706,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.07058823529411765,0.5803921568627451,0.3137254901960784,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.3137254901960784,0.6784313725490196,0.34901960784313724,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.5176470588235295,0.7686274509803922,0.47843137254901963,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.6862745098039216,0.8666666666666667,0.6352941176470588,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.8431372549019608,0.9764705882352941,0.8156862745098039,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,cool=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.49019607843137253,0,0.7019607843137254,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.4549019607843137,0,0.8549019607843137,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.3843137254901961,0.2901960784313726,0.9294117647058824,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.26666666666666666,0.5725490196078431,0.9058823529411765,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0,0.8,0.7725490196078432,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0,0.9686274509803922,0.5725490196078431,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0,1,0.34509803921568627,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.1568627450980392,1,0.03137254901960784,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.5764705882352941,1,0,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,copper=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.804; + const vec4 v1 = vec4(1,0.6274509803921569,0.4,1); + const float e2 = 1.0; + const vec4 v2 = vec4(1,0.7803921568627451,0.4980392156862745,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1),mix(v1,v2,a1)*step(e1,x)*step(x,e2) + ); +} +`,cubehelix=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.07; + const vec4 v1 = vec4(0.08627450980392157,0.0196078431372549,0.23137254901960785,1); + const float e2 = 0.13; + const vec4 v2 = vec4(0.23529411764705882,0.01568627450980392,0.4117647058823529,1); + const float e3 = 0.2; + const vec4 v3 = vec4(0.42745098039215684,0.00392156862745098,0.5294117647058824,1); + const float e4 = 0.27; + const vec4 v4 = vec4(0.6313725490196078,0,0.5764705882352941,1); + const float e5 = 0.33; + const vec4 v5 = vec4(0.8235294117647058,0.00784313725490196,0.5568627450980392,1); + const float e6 = 0.4; + const vec4 v6 = vec4(0.984313725490196,0.043137254901960784,0.4823529411764706,1); + const float e7 = 0.47; + const vec4 v7 = vec4(1,0.11372549019607843,0.3803921568627451,1); + const float e8 = 0.53; + const vec4 v8 = vec4(1,0.21176470588235294,0.27058823529411763,1); + const float e9 = 0.6; + const vec4 v9 = vec4(1,0.3333333333333333,0.1803921568627451,1); + const float e10 = 0.67; + const vec4 v10 = vec4(1,0.47058823529411764,0.13333333333333333,1); + const float e11 = 0.73; + const vec4 v11 = vec4(1,0.615686274509804,0.1450980392156863,1); + const float e12 = 0.8; + const vec4 v12 = vec4(0.9450980392156862,0.7490196078431373,0.2235294117647059,1); + const float e13 = 0.87; + const vec4 v13 = vec4(0.8784313725490196,0.8627450980392157,0.36470588235294116,1); + const float e14 = 0.93; + const vec4 v14 = vec4(0.8549019607843137,0.9450980392156862,0.5568627450980392,1); + const float e15 = 1.0; + const vec4 v15 = vec4(0.8901960784313725,0.9921568627450981,0.7764705882352941,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + float a8 = smoothstep(e8,e9,x); + float a9 = smoothstep(e9,e10,x); + float a10 = smoothstep(e10,e11,x); + float a11 = smoothstep(e11,e12,x); + float a12 = smoothstep(e12,e13,x); + float a13 = smoothstep(e13,e14,x); + float a14 = smoothstep(e14,e15,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7), + max(mix(v7,v8,a7)*step(e7,x)*step(x,e8), + max(mix(v8,v9,a8)*step(e8,x)*step(x,e9), + max(mix(v9,v10,a9)*step(e9,x)*step(x,e10), + max(mix(v10,v11,a10)*step(e10,x)*step(x,e11), + max(mix(v11,v12,a11)*step(e11,x)*step(x,e12), + max(mix(v12,v13,a12)*step(e12,x)*step(x,e13), + max(mix(v13,v14,a13)*step(e13,x)*step(x,e14),mix(v14,v15,a14)*step(e14,x)*step(x,e15) + )))))))))))))); +} +`,density=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.21176470588235294,0.054901960784313725,0.1411764705882353,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.34901960784313724,0.09019607843137255,0.3137254901960784,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.43137254901960786,0.17647058823529413,0.5176470588235295,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.47058823529411764,0.30196078431372547,0.6980392156862745,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.47058823529411764,0.44313725490196076,0.8352941176470589,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.45098039215686275,0.592156862745098,0.8941176470588236,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.5254901960784314,0.7254901960784313,0.8901960784313725,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.6941176470588235,0.8392156862745098,0.8901960784313725,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9019607843137255,0.9450980392156862,0.9450980392156862,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,earth=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.5098039215686274,1); + const float e1 = 0.1; + const vec4 v1 = vec4(0,0.7058823529411765,0.7058823529411765,1); + const float e2 = 0.2; + const vec4 v2 = vec4(0.1568627450980392,0.8235294117647058,0.1568627450980392,1); + const float e3 = 0.4; + const vec4 v3 = vec4(0.9019607843137255,0.9019607843137255,0.19607843137254902,1); + const float e4 = 0.6; + const vec4 v4 = vec4(0.47058823529411764,0.27450980392156865,0.0784313725490196,1); + const float e5 = 1.0; + const vec4 v5 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4),mix(v4,v5,a4)*step(e4,x)*step(x,e5) + )))); +} +`,electric=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.15; + const vec4 v1 = vec4(0.11764705882352941,0,0.39215686274509803,1); + const float e2 = 0.4; + const vec4 v2 = vec4(0.47058823529411764,0,0.39215686274509803,1); + const float e3 = 0.6; + const vec4 v3 = vec4(0.6274509803921569,0.35294117647058826,0,1); + const float e4 = 0.8; + const vec4 v4 = vec4(0.9019607843137255,0.7843137254901961,0,1); + const float e5 = 1.0; + const vec4 v5 = vec4(1,0.9803921568627451,0.8627450980392157,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4),mix(v4,v5,a4)*step(e4,x)*step(x,e5) + )))); +} +`,freesurface_blue=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.11764705882352941,0.01568627450980392,0.43137254901960786,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.1843137254901961,0.054901960784313725,0.6901960784313725,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.1607843137254902,0.17647058823529413,0.9254901960784314,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.09803921568627451,0.38823529411764707,0.8313725490196079,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.26666666666666666,0.5137254901960784,0.7843137254901961,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.4470588235294118,0.611764705882353,0.7725490196078432,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.615686274509804,0.7098039215686275,0.796078431372549,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.7843137254901961,0.8156862745098039,0.8470588235294118,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,freesurface_red=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.23529411764705882,0.03529411764705882,0.07058823529411765,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.39215686274509803,0.06666666666666667,0.10588235294117647,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.5568627450980392,0.0784313725490196,0.11372549019607843,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6941176470588235,0.16862745098039217,0.10588235294117647,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7529411764705882,0.3411764705882353,0.24705882352941178,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.803921568627451,0.49019607843137253,0.4117647058823529,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.8470588235294118,0.6352941176470588,0.5803921568627451,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.8901960784313725,0.7803921568627451,0.7568627450980392,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9450980392156862,0.9294117647058824,0.9254901960784314,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,greens=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0.26666666666666666,0.10588235294117647,1); + const float e1 = 0.125; + const vec4 v1 = vec4(0,0.42745098039215684,0.17254901960784313,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.13725490196078433,0.5450980392156862,0.27058823529411763,1); + const float e3 = 0.375; + const vec4 v3 = vec4(0.2549019607843137,0.6705882352941176,0.36470588235294116,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.4549019607843137,0.7686274509803922,0.4627450980392157,1); + const float e5 = 0.625; + const vec4 v5 = vec4(0.6313725490196078,0.8509803921568627,0.6078431372549019,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.7803921568627451,0.9137254901960784,0.7529411764705882,1); + const float e7 = 0.875; + const vec4 v7 = vec4(0.8980392156862745,0.9607843137254902,0.8784313725490196,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9686274509803922,0.9882352941176471,0.9607843137254902,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,greys=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,hot=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0,1); + const float e1 = 0.3; + const vec4 v1 = vec4(0.9019607843137255,0,0,1); + const float e2 = 0.6; + const vec4 v2 = vec4(1,0.8235294117647058,0,1); + const float e3 = 1.0; + const vec4 v3 = vec4(1,1,1,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2),mix(v2,v3,a2)*step(e2,x)*step(x,e3) + )); +} +`,hsv=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(1,0,0,1); + const float e1 = 0.169; + const vec4 v1 = vec4(0.9921568627450981,1,0.00784313725490196,1); + const float e2 = 0.173; + const vec4 v2 = vec4(0.9686274509803922,1,0.00784313725490196,1); + const float e3 = 0.337; + const vec4 v3 = vec4(0,0.9882352941176471,0.01568627450980392,1); + const float e4 = 0.341; + const vec4 v4 = vec4(0,0.9882352941176471,0.0392156862745098,1); + const float e5 = 0.506; + const vec4 v5 = vec4(0.00392156862745098,0.9764705882352941,1,1); + const float e6 = 0.671; + const vec4 v6 = vec4(0.00784313725490196,0,0.9921568627450981,1); + const float e7 = 0.675; + const vec4 v7 = vec4(0.03137254901960784,0,0.9921568627450981,1); + const float e8 = 0.839; + const vec4 v8 = vec4(1,0,0.984313725490196,1); + const float e9 = 0.843; + const vec4 v9 = vec4(1,0,0.9607843137254902,1); + const float e10 = 1.0; + const vec4 v10 = vec4(1,0,0.023529411764705882,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + float a8 = smoothstep(e8,e9,x); + float a9 = smoothstep(e9,e10,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7), + max(mix(v7,v8,a7)*step(e7,x)*step(x,e8), + max(mix(v8,v9,a8)*step(e8,x)*step(x,e9),mix(v9,v10,a9)*step(e9,x)*step(x,e10) + ))))))))); +} +`,inferno=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.01568627450980392,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.12156862745098039,0.047058823529411764,0.2823529411764706,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.3333333333333333,0.058823529411764705,0.42745098039215684,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.5333333333333333,0.13333333333333333,0.41568627450980394,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7294117647058823,0.21176470588235294,0.3333333333333333,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8901960784313725,0.34901960784313724,0.2,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9764705882352941,0.5490196078431373,0.0392156862745098,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9764705882352941,0.788235294117647,0.19607843137254902,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9882352941176471,1,0.6431372549019608,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,jet=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.5137254901960784,1); + const float e1 = 0.125; + const vec4 v1 = vec4(0,0.23529411764705882,0.6666666666666666,1); + const float e2 = 0.375; + const vec4 v2 = vec4(0.0196078431372549,1,1,1); + const float e3 = 0.625; + const vec4 v3 = vec4(1,1,0,1); + const float e4 = 0.875; + const vec4 v4 = vec4(0.9803921568627451,0,0,1); + const float e5 = 1.0; + const vec4 v5 = vec4(0.5019607843137255,0,0,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4),mix(v4,v5,a4)*step(e4,x)*step(x,e5) + )))); +} +`,magma=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,0.01568627450980392,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.10980392156862745,0.06274509803921569,0.26666666666666666,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.30980392156862746,0.07058823529411765,0.4823529411764706,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.5058823529411764,0.1450980392156863,0.5058823529411764,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7098039215686275,0.21176470588235294,0.47843137254901963,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8980392156862745,0.3137254901960784,0.39215686274509803,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.984313725490196,0.5294117647058824,0.3803921568627451,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.996078431372549,0.7607843137254902,0.5294117647058824,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9882352941176471,0.9921568627450981,0.7490196078431373,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,oxygen=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.25098039215686274,0.0196078431372549,0.0196078431372549,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.41568627450980394,0.023529411764705882,0.058823529411764705,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.5647058823529412,0.10196078431372549,0.027450980392156862,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6588235294117647,0.25098039215686274,0.011764705882352941,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7372549019607844,0.39215686274509803,0.01568627450980392,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.807843137254902,0.5333333333333333,0.043137254901960784,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.8627450980392157,0.6823529411764706,0.09803921568627451,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9058823529411765,0.8431372549019608,0.17254901960784313,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9725490196078431,0.996078431372549,0.4117647058823529,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,par=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.2,0.0784313725490196,0.09411764705882353,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.35294117647058826,0.12549019607843137,0.13725490196078433,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.5058823529411764,0.17254901960784313,0.13333333333333333,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6235294117647059,0.26666666666666666,0.09803921568627451,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.7137254901960784,0.38823529411764707,0.07450980392156863,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.7803921568627451,0.5254901960784314,0.08627450980392157,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.8313725490196079,0.6705882352941176,0.13725490196078433,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.8666666666666667,0.8235294117647058,0.21176470588235294,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.8823529411764706,0.9921568627450981,0.29411764705882354,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,phase=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.7215686274509804,0.2784313725490196,0.14901960784313725,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.7294117647058823,0.22745098039215686,0.45098039215686275,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6274509803921569,0.2784313725490196,0.7254901960784313,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.43137254901960786,0.3803921568627451,0.8549019607843137,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.19607843137254902,0.4823529411764706,0.6431372549019608,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.12156862745098039,0.5137254901960784,0.43137254901960786,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.30196078431372547,0.5058823529411764,0.13333333333333333,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.5686274509803921,0.4117647058823529,0.07058823529411765,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,picnic=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,1,1); + const float e1 = 0.1; + const vec4 v1 = vec4(0.2,0.6,1,1); + const float e2 = 0.2; + const vec4 v2 = vec4(0.4,0.8,1,1); + const float e3 = 0.3; + const vec4 v3 = vec4(0.6,0.8,1,1); + const float e4 = 0.4; + const vec4 v4 = vec4(0.8,0.8,1,1); + const float e5 = 0.5; + const vec4 v5 = vec4(1,1,1,1); + const float e6 = 0.6; + const vec4 v6 = vec4(1,0.8,1,1); + const float e7 = 0.7; + const vec4 v7 = vec4(1,0.6,1,1); + const float e8 = 0.8; + const vec4 v8 = vec4(1,0.4,0.8,1); + const float e9 = 0.9; + const vec4 v9 = vec4(1,0.4,0.4,1); + const float e10 = 1.0; + const vec4 v10 = vec4(1,0,0,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + float a8 = smoothstep(e8,e9,x); + float a9 = smoothstep(e9,e10,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7), + max(mix(v7,v8,a7)*step(e7,x)*step(x,e8), + max(mix(v8,v9,a8)*step(e8,x)*step(x,e9),mix(v9,v10,a9)*step(e9,x)*step(x,e10) + ))))))))); +} +`,plasma=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.050980392156862744,0.03137254901960784,0.5294117647058824,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.29411764705882354,0.011764705882352941,0.6313725490196078,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.49019607843137253,0.011764705882352941,0.6588235294117647,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.6588235294117647,0.13333333333333333,0.5882352941176471,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.796078431372549,0.27450980392156865,0.4745098039215686,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8980392156862745,0.4196078431372549,0.36470588235294116,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9725490196078431,0.5803921568627451,0.2549019607843137,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9921568627450981,0.7647058823529411,0.1568627450980392,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9411764705882353,0.9764705882352941,0.12941176470588237,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,portland=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.047058823529411764,0.2,0.5137254901960784,1); + const float e1 = 0.25; + const vec4 v1 = vec4(0.0392156862745098,0.5333333333333333,0.7294117647058823,1); + const float e2 = 0.5; + const vec4 v2 = vec4(0.9490196078431372,0.8274509803921568,0.2196078431372549,1); + const float e3 = 0.75; + const vec4 v3 = vec4(0.9490196078431372,0.5607843137254902,0.2196078431372549,1); + const float e4 = 1.0; + const vec4 v4 = vec4(0.8509803921568627,0.11764705882352941,0.11764705882352941,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3),mix(v3,v4,a3)*step(e3,x)*step(x,e4) + ))); +} +`,rainbow_soft=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.49019607843137253,0,0.7019607843137254,1); + const float e1 = 0.1; + const vec4 v1 = vec4(0.7803921568627451,0,0.7058823529411765,1); + const float e2 = 0.2; + const vec4 v2 = vec4(1,0,0.4745098039215686,1); + const float e3 = 0.3; + const vec4 v3 = vec4(1,0.4235294117647059,0,1); + const float e4 = 0.4; + const vec4 v4 = vec4(0.8705882352941177,0.7607843137254902,0,1); + const float e5 = 0.5; + const vec4 v5 = vec4(0.5882352941176471,1,0,1); + const float e6 = 0.6; + const vec4 v6 = vec4(0,1,0.21568627450980393,1); + const float e7 = 0.7; + const vec4 v7 = vec4(0,0.9647058823529412,0.5882352941176471,1); + const float e8 = 0.8; + const vec4 v8 = vec4(0.19607843137254902,0.6549019607843137,0.8705882352941177,1); + const float e9 = 0.9; + const vec4 v9 = vec4(0.403921568627451,0.2,0.9215686274509803,1); + const float e10 = 1.0; + const vec4 v10 = vec4(0.48627450980392156,0,0.7294117647058823,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + float a8 = smoothstep(e8,e9,x); + float a9 = smoothstep(e9,e10,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7), + max(mix(v7,v8,a7)*step(e7,x)*step(x,e8), + max(mix(v8,v9,a8)*step(e8,x)*step(x,e9),mix(v9,v10,a9)*step(e9,x)*step(x,e10) + ))))))))); +} +`,rainbow=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.5882352941176471,0,0.35294117647058826,1); + const float e1 = 0.125; + const vec4 v1 = vec4(0,0,0.7843137254901961,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0,0.09803921568627451,1,1); + const float e3 = 0.375; + const vec4 v3 = vec4(0,0.596078431372549,1,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.17254901960784313,1,0.5882352941176471,1); + const float e5 = 0.625; + const vec4 v5 = vec4(0.592156862745098,1,0,1); + const float e6 = 0.75; + const vec4 v6 = vec4(1,0.9176470588235294,0,1); + const float e7 = 0.875; + const vec4 v7 = vec4(1,0.43529411764705883,0,1); + const float e8 = 1.0; + const vec4 v8 = vec4(1,0,0,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,rdbu=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.0196078431372549,0.0392156862745098,0.6745098039215687,1); + const float e1 = 0.35; + const vec4 v1 = vec4(0.41568627450980394,0.5372549019607843,0.9686274509803922,1); + const float e2 = 0.5; + const vec4 v2 = vec4(0.7450980392156863,0.7450980392156863,0.7450980392156863,1); + const float e3 = 0.6; + const vec4 v3 = vec4(0.8627450980392157,0.6666666666666666,0.5176470588235295,1); + const float e4 = 0.7; + const vec4 v4 = vec4(0.9019607843137255,0.5686274509803921,0.35294117647058826,1); + const float e5 = 1.0; + const vec4 v5 = vec4(0.6980392156862745,0.0392156862745098,0.10980392156862745,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4),mix(v4,v5,a4)*step(e4,x)*step(x,e5) + )))); +} +`,salinity=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.16470588235294117,0.09411764705882353,0.4235294117647059,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.12941176470588237,0.19607843137254902,0.6352941176470588,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.058823529411764705,0.35294117647058826,0.5686274509803921,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.1568627450980392,0.4627450980392157,0.5372549019607843,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.23137254901960785,0.5725490196078431,0.5294117647058824,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.30980392156862746,0.6862745098039216,0.49411764705882355,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.47058823529411764,0.796078431372549,0.40784313725490196,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.7568627450980392,0.8666666666666667,0.39215686274509803,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9921568627450981,0.9372549019607843,0.6039215686274509,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,spring=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(1,0,1,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,0,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,summer=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0.5019607843137255,0.4,1); + const float e1 = 1.0; + const vec4 v1 = vec4(1,1,0.4,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,temperature=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.01568627450980392,0.13725490196078433,0.2,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.09019607843137255,0.2,0.47843137254901963,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.3333333333333333,0.23137254901960785,0.615686274509804,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.5058823529411764,0.30980392156862746,0.5607843137254902,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.6862745098039216,0.37254901960784315,0.5098039215686274,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.8705882352941177,0.4392156862745098,0.396078431372549,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9764705882352941,0.5725490196078431,0.25882352941176473,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9764705882352941,0.7686274509803922,0.2549019607843137,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9098039215686274,0.9803921568627451,0.3568627450980392,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,turbidity=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.13333333333333333,0.12156862745098039,0.10588235294117647,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.2549019607843137,0.19607843137254902,0.1607843137254902,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.3843137254901961,0.27058823529411763,0.20392156862745098,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.5137254901960784,0.34901960784313724,0.2235294117647059,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.6313725490196078,0.4392156862745098,0.23137254901960785,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.7254901960784313,0.5490196078431373,0.25882352941176473,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.792156862745098,0.6823529411764706,0.34509803921568627,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.8470588235294118,0.8196078431372549,0.49411764705882355,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9137254901960784,0.9647058823529412,0.6705882352941176,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,velocity_blue=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.06666666666666667,0.12549019607843137,0.25098039215686274,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.13725490196078433,0.20392156862745098,0.4549019607843137,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.11372549019607843,0.3176470588235294,0.611764705882353,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.12156862745098039,0.44313725490196076,0.6352941176470588,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.19607843137254902,0.5647058823529412,0.6627450980392157,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.3411764705882353,0.6784313725490196,0.6901960784313725,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.5843137254901961,0.7686274509803922,0.7411764705882353,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.796078431372549,0.8666666666666667,0.8274509803921568,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.996078431372549,0.984313725490196,0.9019607843137255,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,velocity_green=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.09019607843137255,0.13725490196078433,0.07450980392156863,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.09411764705882353,0.25098039215686274,0.14901960784313725,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.043137254901960784,0.37254901960784315,0.17647058823529413,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.15294117647058825,0.4823529411764706,0.13725490196078433,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.37254901960784315,0.5725490196078431,0.047058823529411764,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.596078431372549,0.6470588235294118,0.07058823529411765,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.788235294117647,0.7294117647058823,0.27058823529411763,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.9137254901960784,0.8470588235294118,0.5372549019607843,1); + const float e8 = 1.0; + const vec4 v8 = vec4(1,0.9921568627450981,0.803921568627451,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,viridis=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.26666666666666666,0.00392156862745098,0.32941176470588235,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.2784313725490196,0.17254901960784313,0.47843137254901963,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.23137254901960785,0.3176470588235294,0.5450980392156862,1); + const float e3 = 0.38; + const vec4 v3 = vec4(0.17254901960784313,0.44313725490196076,0.5568627450980392,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.12941176470588237,0.5647058823529412,0.5529411764705883,1); + const float e5 = 0.63; + const vec4 v5 = vec4(0.15294117647058825,0.6784313725490196,0.5058823529411764,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.3607843137254902,0.7843137254901961,0.38823529411764707,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.6666666666666666,0.8627450980392157,0.19607843137254902,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.9921568627450981,0.9058823529411765,0.1450980392156863,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,warm=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.49019607843137253,0,0.7019607843137254,1); + const float e1 = 0.13; + const vec4 v1 = vec4(0.6745098039215687,0,0.7333333333333333,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.8588235294117647,0,0.6666666666666666,1); + const float e3 = 0.38; + const vec4 v3 = vec4(1,0,0.5098039215686274,1); + const float e4 = 0.5; + const vec4 v4 = vec4(1,0.24705882352941178,0.2901960784313726,1); + const float e5 = 0.63; + const vec4 v5 = vec4(1,0.4823529411764706,0,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.9176470588235294,0.6901960784313725,0,1); + const float e7 = 0.88; + const vec4 v7 = vec4(0.7450980392156863,0.8941176470588236,0,1); + const float e8 = 1.0; + const vec4 v8 = vec4(0.5764705882352941,1,0,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,winter=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0,0,1,1); + const float e1 = 1.0; + const vec4 v1 = vec4(0,1,0.5019607843137255,1); + float a0 = smoothstep(e0,e1,x); + return mix(v0,v1,a0)*step(e0,x)*step(x,e1); +} +`,yignbu=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.03137254901960784,0.11372549019607843,0.34509803921568627,1); + const float e1 = 0.125; + const vec4 v1 = vec4(0.1450980392156863,0.20392156862745098,0.5803921568627451,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.13333333333333333,0.3686274509803922,0.6588235294117647,1); + const float e3 = 0.375; + const vec4 v3 = vec4(0.11372549019607843,0.5686274509803921,0.7529411764705882,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.2549019607843137,0.7137254901960784,0.7686274509803922,1); + const float e5 = 0.625; + const vec4 v5 = vec4(0.4980392156862745,0.803921568627451,0.7333333333333333,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.7803921568627451,0.9137254901960784,0.7058823529411765,1); + const float e7 = 0.875; + const vec4 v7 = vec4(0.9294117647058824,0.9725490196078431,0.8509803921568627,1); + const float e8 = 1.0; + const vec4 v8 = vec4(1,1,0.8509803921568627,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,yiorrd=`vec4 apply_cmap (float x) { + const float e0 = 0.0; + const vec4 v0 = vec4(0.5019607843137255,0,0.14901960784313725,1); + const float e1 = 0.125; + const vec4 v1 = vec4(0.7411764705882353,0,0.14901960784313725,1); + const float e2 = 0.25; + const vec4 v2 = vec4(0.8901960784313725,0.10196078431372549,0.10980392156862745,1); + const float e3 = 0.375; + const vec4 v3 = vec4(0.9882352941176471,0.3058823529411765,0.16470588235294117,1); + const float e4 = 0.5; + const vec4 v4 = vec4(0.9921568627450981,0.5529411764705883,0.23529411764705882,1); + const float e5 = 0.625; + const vec4 v5 = vec4(0.996078431372549,0.6980392156862745,0.2980392156862745,1); + const float e6 = 0.75; + const vec4 v6 = vec4(0.996078431372549,0.8509803921568627,0.4627450980392157,1); + const float e7 = 0.875; + const vec4 v7 = vec4(1,0.9294117647058824,0.6274509803921569,1); + const float e8 = 1.0; + const vec4 v8 = vec4(1,1,0.8,1); + float a0 = smoothstep(e0,e1,x); + float a1 = smoothstep(e1,e2,x); + float a2 = smoothstep(e2,e3,x); + float a3 = smoothstep(e3,e4,x); + float a4 = smoothstep(e4,e5,x); + float a5 = smoothstep(e5,e6,x); + float a6 = smoothstep(e6,e7,x); + float a7 = smoothstep(e7,e8,x); + return max(mix(v0,v1,a0)*step(e0,x)*step(x,e1), + max(mix(v1,v2,a1)*step(e1,x)*step(x,e2), + max(mix(v2,v3,a2)*step(e2,x)*step(x,e3), + max(mix(v3,v4,a3)*step(e3,x)*step(x,e4), + max(mix(v4,v5,a4)*step(e4,x)*step(x,e5), + max(mix(v5,v6,a5)*step(e5,x)*step(x,e6), + max(mix(v6,v7,a6)*step(e6,x)*step(x,e7),mix(v7,v8,a7)*step(e7,x)*step(x,e8) + ))))))); +} +`,cmaps={__proto__:null,alpha:alpha$2,autumn,bathymetry,blackbody,bluered,bone,cdom,chlorophyll,cool,copper,cubehelix,density,earth,electric,freesurface_blue,freesurface_red,greens,greys,hot,hsv,inferno,jet,magma,oxygen,par,phase,picnic,plasma,portland,rainbow_soft,rainbow,rdbu,salinity,spring,summer,temperature,turbidity,velocity_blue,velocity_green,viridis,warm,winter,yignbu,yiorrd};function colormapModuleFactory(j,$){return{name:`additive-colormap-${j}`,fs:`uniform float opacity; +uniform bool useTransparentColor; + +${apply_transparent_color} +${$} + +vec4 colormap(float intensity) { + return vec4(apply_transparent_color(apply_cmap(min(1.,intensity)).xyz, apply_cmap(0.).xyz, useTransparentColor, opacity)); +}`,inject:{"fs:DECKGL_MUTATE_COLOR":` float intensityCombo = 0.; + intensityCombo += max(0.,intensity0); + intensityCombo += max(0.,intensity1); + intensityCombo += max(0.,intensity2); + intensityCombo += max(0.,intensity3); + intensityCombo += max(0.,intensity4); + intensityCombo += max(0.,intensity5); + rgba = colormap(intensityCombo);`}}}const defaultProps$4$1={colormap:{type:"string",value:"viridis",compare:!0},opacity:{type:"number",value:1,compare:!0},useTransparentColor:{type:"boolean",value:!1,compare:!0}},AdditiveColormapExtension=class extends LayerExtension{getShaders(){var j;const $=((j=this==null?void 0:this.props)==null?void 0:j.colormap)||defaultProps$4$1.colormap.value,_e=cmaps[$];if(!_e)throw Error(`No colormap named ${$} found in registry`);return{modules:[colormapModuleFactory($,_e)]}}updateState({props:j,oldProps:$,changeFlags:_e,...et}){if(super.updateState({props:j,oldProps:$,changeFlags:_e,...et}),j.colormap!==$.colormap){const{gl:tt}=this.context;this.state.model&&(this.state.model.delete(),this.setState({model:this._getModel(tt)}))}}draw(){var j;const{useTransparentColor:$=defaultProps$4$1.useTransparentColor.value,opacity:_e=defaultProps$4$1.opacity.value}=this.props,et={opacity:_e,useTransparentColor:$};(j=this.state.model)==null||j.setUniforms(et)}};AdditiveColormapExtension.extensionName="AdditiveColormapExtension";AdditiveColormapExtension.defaultProps=defaultProps$4$1;const fs$1$2=`uniform vec3 transparentColor; +uniform bool useTransparentColor; +uniform float opacity; + +uniform vec3 colors[6]; + +${apply_transparent_color} + +void mutate_color(inout vec3 rgb, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5) { + rgb += max(0.0, min(1.0, intensity0)) * vec3(colors[0]); + rgb += max(0.0, min(1.0, intensity1)) * vec3(colors[1]); + rgb += max(0.0, min(1.0, intensity2)) * vec3(colors[2]); + rgb += max(0.0, min(1.0, intensity3)) * vec3(colors[3]); + rgb += max(0.0, min(1.0, intensity4)) * vec3(colors[4]); + rgb += max(0.0, min(1.0, intensity5)) * vec3(colors[5]); +} + +vec4 apply_opacity(vec3 rgb) { + return vec4(apply_transparent_color(rgb, transparentColor, useTransparentColor, opacity)); +} +`,DECKGL_MUTATE_COLOR=`vec3 rgb = rgba.rgb; +mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5); +rgba = apply_opacity(rgb); +`,colorPalette={name:"color-palette-module",fs:fs$1$2,inject:{"fs:DECKGL_MUTATE_COLOR":DECKGL_MUTATE_COLOR}};function padWithDefault$3(j,$,_e){for(let et=0;et<_e;et+=1)j.push($);return j}const COLOR_PALETTE=[[0,0,255],[0,255,0],[255,0,255],[255,255,0],[255,128,0],[0,255,255],[255,255,255],[255,0,0]];function getDefaultPalette(j){if(j>COLOR_PALETTE.length)throw new Error("Too many colors");return COLOR_PALETTE.slice(0,j)}function padColors({colors:j,channelsVisible:$}){const _e=j.map((rt,nt)=>$[nt]?rt.map(it=>it/MAX_COLOR_INTENSITY):DEFAULT_COLOR_OFF),et=MAX_CHANNELS$1-_e.length;return padWithDefault$3(_e,DEFAULT_COLOR_OFF,et).reduce((rt,nt)=>rt.concat(nt),[])}const defaultProps$3$1={colors:{type:"array",value:null,compare:!0},opacity:{type:"number",value:1,compare:!0},transparentColor:{type:"array",value:null,compare:!0},useTransparentColor:{type:"boolean",value:!1,compare:!0}},ColorPaletteExtension=class extends LayerExtension{getShaders(){return{...super.getShaders(),modules:[colorPalette]}}draw(){var j;const{colors:$,channelsVisible:_e,opacity:et=defaultProps$3$1.opacity.value,transparentColor:tt=defaultProps$3$1.transparentColor.value,useTransparentColor:rt=defaultProps$3$1.useTransparentColor.value}=this.props,it={colors:padColors({channelsVisible:_e||this.selections.map(()=>!0),colors:$||getDefaultPalette(this.props.selections.length)}),opacity:et,transparentColor:(tt||[0,0,0]).map(ot=>ot/255),useTransparentColor:!!rt};(j=this.state.model)==null||j.setUniforms(it)}};ColorPaletteExtension.extensionName="ColorPaletteExtension";ColorPaletteExtension.defaultProps=defaultProps$3$1;const fs$4=`// lens bounds for ellipse +uniform float majorLensAxis; +uniform float minorLensAxis; +uniform vec2 lensCenter; + +// lens uniforms +uniform bool lensEnabled; +uniform int lensSelection; +uniform vec3 lensBorderColor; +uniform float lensBorderRadius; + +// color palette +uniform vec3 colors[6]; + +bool frag_in_lens_bounds(vec2 vTexCoord) { + // Check membership in what is (not visually, but effectively) an ellipse. + // Since the fragment space is a unit square and the real coordinates could be longer than tall, + // to get a circle visually we have to treat the check as that of an ellipse to get the effect of a circle. + + // Check membership in ellipse. + return pow((lensCenter.x - vTexCoord.x) / majorLensAxis, 2.) + pow((lensCenter.y - vTexCoord.y) / minorLensAxis, 2.) < (1. - lensBorderRadius); +} + +bool frag_on_lens_bounds(vec2 vTexCoord) { + // Same as the above, except this checks the boundary. + + float ellipseDistance = pow((lensCenter.x - vTexCoord.x) / majorLensAxis, 2.) + pow((lensCenter.y - vTexCoord.y) / minorLensAxis, 2.); + + // Check membership on "bourndary" of ellipse. + return ellipseDistance <= 1. && ellipseDistance >= (1. - lensBorderRadius); +} +// Return a float for boolean arithmetic calculation. +float get_use_color_float(vec2 vTexCoord, int channelIndex) { + bool isFragInLensBounds = frag_in_lens_bounds(vTexCoord); + bool inLensAndUseLens = lensEnabled && isFragInLensBounds; + return float(int((inLensAndUseLens && channelIndex == lensSelection) || (!inLensAndUseLens))); + +} +void mutate_color(inout vec3 rgb, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5, vec2 vTexCoord){ + float useColorValue = 0.; + + useColorValue = get_use_color_float(vTexCoord, 0); + rgb += max(0., min(1., intensity0)) * max(vec3(colors[0]), (1. - useColorValue) * vec3(1., 1., 1.)); + + useColorValue = get_use_color_float(vTexCoord, 1); + rgb += max(0., min(1., intensity1)) * max(vec3(colors[1]), (1. - useColorValue) * vec3(1., 1., 1.)); + + useColorValue = get_use_color_float(vTexCoord, 2); + rgb += max(0., min(1., intensity2)) * max(vec3(colors[2]), (1. - useColorValue) * vec3(1., 1., 1.)); + + useColorValue = get_use_color_float(vTexCoord, 3); + rgb += max(0., min(1., intensity3)) * max(vec3(colors[3]), (1. - useColorValue) * vec3(1., 1., 1.)); + + useColorValue = get_use_color_float(vTexCoord, 4); + rgb += max(0., min(1., intensity4)) * max(vec3(colors[4]), (1. - useColorValue) * vec3(1., 1., 1.)); + + useColorValue = get_use_color_float(vTexCoord, 5); + rgb += max(0., min(1., intensity5)) * max(vec3(colors[5]), (1. - useColorValue) * vec3(1., 1., 1.)); +} +`,lens={name:"lens-module",fs:fs$4,inject:{"fs:DECKGL_MUTATE_COLOR":` + vec3 rgb = rgba.rgb; + mutate_color(rgb, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5, vTexCoord); + rgba = vec4(rgb, 1.); + `,"fs:#main-end":` + bool isFragOnLensBounds = frag_on_lens_bounds(vTexCoord); + gl_FragColor = (lensEnabled && isFragOnLensBounds) ? vec4(lensBorderColor, 1.) : gl_FragColor; + `}},defaultProps$2$1={lensEnabled:{type:"boolean",value:!1,compare:!0},lensSelection:{type:"number",value:0,compare:!0},lensRadius:{type:"number",value:100,compare:!0},lensBorderColor:{type:"array",value:[255,255,255],compare:!0},lensBorderRadius:{type:"number",value:.02,compare:!0},colors:{type:"array",value:null,compare:!0}},LensExtension=class extends LayerExtension{getShaders(){return{...super.getShaders(),modules:[lens]}}initializeState(){const j=this.getCurrentLayer();if(j.isComposite)return;const $=()=>{const{viewportId:_e}=j.props,{lensRadius:et=defaultProps$2$1.lensRadius.value}=this.props;if(!_e){j.setState({unprojectLensBounds:[0,0,0,0]});return}const{mousePosition:tt}=j.context,rt=j.context.deck.viewManager.views.filter(ot=>ot.id===_e)[0],nt=j.context.deck.viewManager.viewState[_e],it=rt.makeViewport({...nt,viewState:nt});if(tt&&it.containsPixel(tt)){const ot={x:tt.x-it.x,y:tt.y-it.y},ut=[[ot.x-et,ot.y],[ot.x,ot.y+et],[ot.x+et,ot.y],[ot.x,ot.y-et]].map((ft,dt)=>it.unproject(ft)[dt%2]);j.setState({unprojectLensBounds:ut})}else j.setState({unprojectLensBounds:[0,0,0,0]})};this.context.deck&&this.context.deck.eventManager.on({pointermove:$,pointerleave:$,wheel:$}),this.setState({onMouseMove:$,unprojectLensBounds:[0,0,0,0]})}draw(){var j;const{unprojectLensBounds:$=[0,0,0,0]}=this.state,{bounds:_e,lensEnabled:et=defaultProps$2$1.lensEnabled.value,lensSelection:tt=defaultProps$2$1.lensSelection.value,lensBorderColor:rt=defaultProps$2$1.lensBorderColor.value,lensBorderRadius:nt=defaultProps$2$1.lensBorderRadius.value,colors:it,channelsVisible:ot}=this.props,[At,ut,ft,dt]=$,[Et,Bt,St,Dt]=_e,$t=(At-Et)/(St-Et),Rt=(ut-Dt)/(Bt-Dt),wt=(ft-Et)/(St-Et),xt=(dt-Dt)/(Bt-Dt),Nt=padColors({channelsVisible:ot||this.selections.map(()=>!0),colors:it||getDefaultPalette(this.props.selections.length)}),Ot={majorLensAxis:(wt-$t)/2,minorLensAxis:(Rt-xt)/2,lensCenter:[(wt+$t)/2,(Rt+xt)/2],lensEnabled:et,lensSelection:tt,lensBorderColor:rt,lensBorderRadius:nt,colors:Nt};(j=this.state.model)==null||j.setUniforms(Ot)}finalizeState(){var j,$,_e;this.context.deck&&this.context.deck.eventManager.off({pointermove:(j=this.state)==null?void 0:j.onMouseMove,pointerleave:($=this.state)==null?void 0:$.onMouseMove,wheel:(_e=this.state)==null?void 0:_e.onMouseMove})}};LensExtension.extensionName="LensExtension";LensExtension.defaultProps=defaultProps$2$1;function colormapModuleFactory3D(j,$){const _e=`${$} + +vec4 colormap(float intensity, float opacity) { + return vec4(apply_cmap(min(1.,intensity)).xyz, opacity); +}`;return{name:`additive-colormap-3d-${j}`,fs:_e}}const defaultProps$1$2={colormap:{type:"string",value:"viridis",compare:!0}},BaseExtension$1=class extends LayerExtension{constructor(...j){super(j),this.opts=this.opts||{}}getShaders(){var j;const $=((j=this==null?void 0:this.props)==null?void 0:j.colormap)||defaultProps$1$2.colormap.value,_e=cmaps[$];return{...super.getShaders(),modules:[colormapModuleFactory3D($,_e)]}}updateState({props:j,oldProps:$,changeFlags:_e,...et}){if(super.updateState({props:j,oldProps:$,changeFlags:_e,...et}),j.colormap!==$.colormap){const{gl:tt}=this.context;this.state.model&&(this.state.model.delete(),this.setState({model:this._getModel(tt)}))}}};BaseExtension$1.extensionName="BaseExtension";BaseExtension$1.defaultProps=defaultProps$1$2;const _BEFORE_RENDER$5="",_RENDER$5=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); + float total = 0.0; + + for(int i = 0; i < 6; i++) { + total += intensityArray[i]; + } + // Do not go past 1 in opacity/colormap value. + total = min(total, 1.0); + + vec4 val_color = colormap(total, total); + + // Opacity correction + val_color.a = 1.0 - pow(1.0 - val_color.a, 1.0); + color.rgb += (1.0 - color.a) * val_color.a * val_color.rgb; + color.a += (1.0 - color.a) * val_color.a; + if (color.a >= 0.95) { + break; + } + p += ray_dir * dt; +`,_AFTER_RENDER$5="",AdditiveBlendExtension$1=class extends BaseExtension$1{constructor(j){super(j),this.rendering={_BEFORE_RENDER:_BEFORE_RENDER$5,_RENDER:_RENDER$5,_AFTER_RENDER:_AFTER_RENDER$5}}};AdditiveBlendExtension$1.extensionName="AdditiveBlendExtension";const _BEFORE_RENDER$4=` float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0); +`,_RENDER$4=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); + + for(int i = 0; i < 6; i++) { + if(intensityArray[i] > maxVals[i]) { + maxVals[i] = intensityArray[i]; + } + } +`,_AFTER_RENDER$4=` float total = 0.0; + for(int i = 0; i < 6; i++) { + total += maxVals[i]; + } + // Do not go past 1 in opacity/colormap value. + total = min(total, 1.0); + color = colormap(total, total); +`,MaximumIntensityProjectionExtension$1=class extends BaseExtension$1{constructor(j){super(j),this.rendering={_BEFORE_RENDER:_BEFORE_RENDER$4,_RENDER:_RENDER$4,_AFTER_RENDER:_AFTER_RENDER$4}}};MaximumIntensityProjectionExtension$1.extensionName="MaximumIntensityProjectionExtension";const _BEFORE_RENDER$3=` float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.); +`,_RENDER$3=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); + + for(int i = 0; i < 6; i++) { + if(intensityArray[i] < minVals[i]) { + minVals[i] = intensityArray[i]; + } + } +`,_AFTER_RENDER$3=` float total = 0.0; + for(int i = 0; i < 6; i++) { + total += minVals[i]; + } + // Do not go past 1 in opacity/colormap value. + total = min(total, 1.0); + color = colormap(total, total); +`,MinimumIntensityProjectionExtension$1=class extends BaseExtension$1{constructor(j){super(j),this.rendering={_BEFORE_RENDER:_BEFORE_RENDER$3,_RENDER:_RENDER$3,_AFTER_RENDER:_AFTER_RENDER$3}}};MinimumIntensityProjectionExtension$1.extensionName="MinimumIntensityProjectionExtension";const defaultProps$a={colors:{type:"array",value:null,compare:!0}},BaseExtension=class extends LayerExtension{constructor(...j){super(j),this.opts=this.opts||{}}draw(){var j;const{colors:$,channelsVisible:_e}=this.props,tt={colors:padColors({channelsVisible:_e||this.selections.map(()=>!0),colors:$||getDefaultPalette(this.props.selections.length)})};(j=this.state.model)==null||j.setUniforms(tt)}};BaseExtension.extensionName="BaseExtension";BaseExtension.defaultProps=defaultProps$a;const _BEFORE_RENDER$2="",_RENDER$2=` vec3 rgbCombo = vec3(0.0); + vec3 hsvCombo = vec3(0.0); + float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); + float total = 0.0; + for(int i = 0; i < 6; i++) { + float intensityValue = intensityArray[i]; + rgbCombo += max(0.0, min(1.0, intensityValue)) * colors[i]; + total += intensityValue; + } + // Do not go past 1 in opacity. + total = min(total, 1.0); + vec4 val_color = vec4(rgbCombo, total); + // Opacity correction + val_color.a = 1.0 - pow(1.0 - val_color.a, 1.0); + color.rgb += (1.0 - color.a) * val_color.a * val_color.rgb; + color.a += (1.0 - color.a) * val_color.a; + if (color.a >= 0.95) { + break; + } +`,_AFTER_RENDER$2="",AdditiveBlendExtension=class extends BaseExtension{constructor(j){super(j),this.rendering={_BEFORE_RENDER:_BEFORE_RENDER$2,_RENDER:_RENDER$2,_AFTER_RENDER:_AFTER_RENDER$2}}};AdditiveBlendExtension.extensionName="AdditiveBlendExtension";const _BEFORE_RENDER$1=` float maxVals[6] = float[6](-1.0, -1.0, -1.0, -1.0, -1.0, -1.0); +`,_RENDER$1=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); + + for(int i = 0; i < 6; i++) { + if(intensityArray[i] > maxVals[i]) { + maxVals[i] = intensityArray[i]; + } + } +`,_AFTER_RENDER$1=` vec3 rgbCombo = vec3(0.0); + for(int i = 0; i < 6; i++) { + rgbCombo += max(0.0, min(1.0, maxVals[i])) * vec3(colors[i]); + } + color = vec4(rgbCombo, 1.0); +`,MaximumIntensityProjectionExtension=class extends BaseExtension{constructor(j){super(j),this.rendering={_BEFORE_RENDER:_BEFORE_RENDER$1,_RENDER:_RENDER$1,_AFTER_RENDER:_AFTER_RENDER$1}}};MaximumIntensityProjectionExtension.extensionName="MaximumIntensityProjectionExtension";const _BEFORE_RENDER=` float minVals[6] = float[6](1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0., 1. / 0.); +`,_RENDER=` float intensityArray[6] = float[6](intensityValue0, intensityValue1, intensityValue2, intensityValue3, intensityValue4, intensityValue5); + + for(int i = 0; i < 6; i++) { + if(intensityArray[i] < minVals[i]) { + minVals[i] = intensityArray[i]; + } + } +`,_AFTER_RENDER=` vec3 rgbCombo = vec3(0.0); + for(int i = 0; i < 6; i++) { + rgbCombo += max(0.0, min(1.0, minVals[i])) * vec3(colors[i]); + } + color = vec4(rgbCombo, 1.0); +`,MinimumIntensityProjectionExtension=class extends BaseExtension{constructor(j){super(j),this.rendering={_BEFORE_RENDER,_RENDER,_AFTER_RENDER}}};MinimumIntensityProjectionExtension.extensionName="MinimumIntensityProjectionExtension";const ColorPalette3DExtensions={BaseExtension,AdditiveBlendExtension,MaximumIntensityProjectionExtension,MinimumIntensityProjectionExtension},fs$2=`float apply_contrast_limits(float intensity, vec2 contrastLimits) { + return max(0., (intensity - contrastLimits[0]) / max(0.0005, (contrastLimits[1] - contrastLimits[0]))); +} +`,channels={name:"channel-intensity",defines:{SAMPLER_TYPE:"usampler2D",COLORMAP_FUNCTION:""},fs:fs$2};function range(j){return[...Array(j).keys()]}function padWithDefault$2(j,$,_e){for(let et=0;et<_e;et+=1)j.push($);return j}function getDtypeValues(j){const $=DTYPE_VALUES[j];if(!$){const _e=Object.keys(DTYPE_VALUES);throw Error(`Dtype not supported, got ${j}. Must be one of ${_e}.`)}return $}function padContrastLimits({contrastLimits:j=[],channelsVisible:$,domain:_e,dtype:et}){const tt=_e&&_e[1]||getDtypeValues(et).max,rt=j.map((ot,At)=>$[At]?ot:[tt,tt]),nt=MAX_CHANNELS$1-rt.length;if(nt<0)throw Error(`${rt.lengths} channels passed in, but only 6 are allowed.`);return padWithDefault$2(rt,[tt,tt],nt).reduce((ot,At)=>ot.concat(At),[])}function getPhysicalSizeScalingMatrix(j){var $;const{x:_e,y:et,z:tt}=(($=j==null?void 0:j.meta)==null?void 0:$.physicalSizes)??{};if(_e!=null&&_e.size&&(et!=null&&et.size)&&(tt!=null&&tt.size)){const rt=Math.min(tt.size,_e.size,et.size),nt=[_e.size/rt,et.size/rt,tt.size/rt];return new Matrix4().scale(nt)}return new Matrix4().identity()}function makeBoundingBox(j){const $=new OrthographicView().makeViewport({viewState:j,height:j.height,width:j.width});return[$.unproject([0,0]),$.unproject([$.width,0]),$.unproject([$.width,$.height]),$.unproject([0,$.height])]}const TARGETS=[1,2,3,4,5,10,20,25,50,100,200,250,500,1e3],MIN_TARGET=TARGETS[0],MAX_TARGET=TARGETS[TARGETS.length-1],SI_PREFIXES=[{symbol:"Y",exponent:24},{symbol:"Z",exponent:21},{symbol:"E",exponent:18},{symbol:"P",exponent:15},{symbol:"T",exponent:12},{symbol:"G",exponent:9},{symbol:"M",exponent:6},{symbol:"k",exponent:3},{symbol:"h",exponent:2},{symbol:"da",exponent:1},{symbol:"",exponent:0},{symbol:"d",exponent:-1},{symbol:"c",exponent:-2},{symbol:"m",exponent:-3},{symbol:"µ",exponent:-6},{symbol:"n",exponent:-9},{symbol:"p",exponent:-12},{symbol:"f",exponent:-15},{symbol:"a",exponent:-18},{symbol:"z",exponent:-21},{symbol:"y",exponent:-24}];function sizeToMeters(j,$){if(!$||$==="m")return j;if($.length>1){let _e=$.substring(0,$.length-1);_e==="u"&&(_e="µ");const et=SI_PREFIXES.find(tt=>tt.symbol===_e);if(et)return j*10**et.exponent}throw new Error("Received unknown unit")}function snapValue(j){let $=0;(jMAX_TARGET)&&($=Math.floor(Math.log10(j)));let _e=SI_PREFIXES.find(nt=>nt.exponent%3===0&&nt.exponent<=$),et=j/10**_e.exponent;et>500&&et<=1e3&&(_e=SI_PREFIXES.find(nt=>nt.exponent%3===0&&nt.exponent<=$+3),et=j/10**_e.exponent);const tt=TARGETS.find(nt=>nt>et);return[tt*10**_e.exponent,tt,_e.symbol]}const fs$1$1=`#define SHADER_NAME xr-layer-fragment-shader + +precision highp float; +precision highp int; +precision highp SAMPLER_TYPE; + +// our texture +uniform SAMPLER_TYPE channel0; +uniform SAMPLER_TYPE channel1; +uniform SAMPLER_TYPE channel2; +uniform SAMPLER_TYPE channel3; +uniform SAMPLER_TYPE channel4; +uniform SAMPLER_TYPE channel5; + +in vec2 vTexCoord; + +// range +uniform vec2 contrastLimits[6]; + +void main() { + + float intensity0 = float(texture(channel0, vTexCoord).r); + DECKGL_PROCESS_INTENSITY(intensity0, contrastLimits[0], 0); + float intensity1 = float(texture(channel1, vTexCoord).r); + DECKGL_PROCESS_INTENSITY(intensity1, contrastLimits[1], 1); + float intensity2 = float(texture(channel2, vTexCoord).r); + DECKGL_PROCESS_INTENSITY(intensity2, contrastLimits[2], 2); + float intensity3 = float(texture(channel3, vTexCoord).r); + DECKGL_PROCESS_INTENSITY(intensity3, contrastLimits[3], 3); + float intensity4 = float(texture(channel4, vTexCoord).r); + DECKGL_PROCESS_INTENSITY(intensity4, contrastLimits[4], 4); + float intensity5 = float(texture(channel5, vTexCoord).r); + DECKGL_PROCESS_INTENSITY(intensity5, contrastLimits[5], 5); + + DECKGL_MUTATE_COLOR(gl_FragColor, intensity0, intensity1, intensity2, intensity3, intensity4, intensity5, vTexCoord); + + + geometry.uv = vTexCoord; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`,vs$1$1=`#define SHADER_NAME xr-layer-vertex-shader + +attribute vec2 texCoords; +attribute vec3 positions; +attribute vec3 positions64Low; +attribute vec3 instancePickingColors; +varying vec2 vTexCoord; + +void main(void) { + geometry.worldPosition = positions; + geometry.uv = texCoords; + geometry.pickingColor = instancePickingColors; + gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.), geometry.position); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + vTexCoord = texCoords; + vec4 color = vec4(0.); + DECKGL_FILTER_COLOR(color, geometry); +} +`,coreShaderModule={fs:fs$1$1,vs:vs$1$1};function validateWebGL2Filter(j,$){const _e=hasFeature(j,FEATURES$1.TEXTURE_FLOAT),et=hasFeature(j,FEATURES$1.TEXTURE_FILTER_LINEAR_FLOAT);if(!_e)throw new Error("WebGL1 context does not support floating point textures. Unable to display raster data.");return!et&&$===GL$1.LINEAR?(console.warn("LINEAR filtering not supported in WebGL1 context. Falling back to NEAREST."),GL$1.NEAREST):$}function getRenderingAttrs$1(j,$,_e){if(!isWebGL2$1($))return{format:GL$1.LUMINANCE,dataFormat:GL$1.LUMINANCE,type:GL$1.FLOAT,sampler:"sampler2D",shaderModule:coreShaderModule,filter:validateWebGL2Filter($,_e),cast:it=>new Float32Array(it)};const et=_e===GL$1.LINEAR,tt={...coreShaderModule},rt=`#version 300 es +`;tt.fs=rt.concat(tt.fs),tt.vs=rt.concat(tt.vs);const nt=getDtypeValues(et?"Float32":j);return{shaderModule:tt,filter:_e,cast:et?it=>new Float32Array(it):it=>it,...nt}}const defaultProps$8={pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,channelData:{type:"object",value:{},compare:!0},bounds:{type:"array",value:[0,0,1,1],compare:!0},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint16",compare:!0},interpolation:{type:"number",value:GL$1.NEAREST,compare:!0}},XRLayer=class extends Layer{getShaders(){const{dtype:j,interpolation:$}=this.props,{shaderModule:_e,sampler:et}=getRenderingAttrs$1(j,this.context.gl,$),tt=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),rt={...channels,inject:{}};return tt||(rt.inject["fs:DECKGL_PROCESS_INTENSITY"]=` + intensity = apply_contrast_limits(intensity, contrastLimits); + `),super.getShaders({..._e,defines:{SAMPLER_TYPE:et},modules:[project32,picking,rt]})}_isHookDefinedByExtensions(j){const{extensions:$}=this.props;return $==null?void 0:$.some(_e=>{const et=_e.getShaders(),{inject:tt={},modules:rt=[]}=et,nt=tt[j],it=rt.some(ot=>ot==null?void 0:ot.inject[j]);return nt||it})}initializeState(){const{gl:j}=this.context;j.pixelStorei(GL$1.UNPACK_ALIGNMENT,1),j.pixelStorei(GL$1.PACK_ALIGNMENT,1),this.getAttributeManager().add({positions:{size:3,type:GL$1.DOUBLE,fp64:this.use64bitPositions(),update:this.calculatePositions,noAlloc:!0}}),this.setState({numInstances:1,positions:new Float64Array(12)});const _e=ProgramManager.getDefaultProgramManager(j),et="fs:DECKGL_MUTATE_COLOR(inout vec4 rgba, float intensity0, float intensity1, float intensity2, float intensity3, float intensity4, float intensity5, vec2 vTexCoord)",tt="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";_e._hookFunctions.includes(et)||_e.addShaderHook(et),_e._hookFunctions.includes(tt)||_e.addShaderHook(tt)}finalizeState(){super.finalizeState(),this.state.textures&&Object.values(this.state.textures).forEach(j=>j&&j.delete())}updateState({props:j,oldProps:$,changeFlags:_e,...et}){var tt,rt;if(super.updateState({props:j,oldProps:$,changeFlags:_e,...et}),_e.extensionsChanged||j.interpolation!==$.interpolation){const{gl:it}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(it)}),this.getAttributeManager().invalidateAll()}(j.channelData!==$.channelData&&((tt=j.channelData)==null?void 0:tt.data)!==((rt=$.channelData)==null?void 0:rt.data)||j.interpolation!==$.interpolation)&&this.loadChannelTextures(j.channelData);const nt=this.getAttributeManager();j.bounds!==$.bounds&&nt.invalidate("positions")}_getModel(j){return j?new Model(j,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:GL$1.TRIANGLE_FAN,vertexCount:4,attributes:{texCoords:new Float32Array([0,1,0,0,1,0,1,1])}}),isInstanced:!1}):null}calculatePositions(j){const{positions:$}=this.state,{bounds:_e}=this.props;$[0]=_e[0],$[1]=_e[1],$[2]=0,$[3]=_e[0],$[4]=_e[3],$[5]=0,$[6]=_e[2],$[7]=_e[3],$[8]=0,$[9]=_e[2],$[10]=_e[1],$[11]=0,j.value=$}draw({uniforms:j}){const{textures:$,model:_e}=this.state;if($&&_e){const{contrastLimits:et,domain:tt,dtype:rt,channelsVisible:nt}=this.props,it=Object.values($).filter(At=>At).length,ot=padContrastLimits({contrastLimits:et.slice(0,it),channelsVisible:nt.slice(0,it),domain:tt,dtype:rt});_e.setUniforms({...j,contrastLimits:ot,...$}).draw()}}loadChannelTextures(j){const $={channel0:null,channel1:null,channel2:null,channel3:null,channel4:null,channel5:null};this.state.textures&&Object.values(this.state.textures).forEach(_e=>_e&&_e.delete()),j&&Object.keys(j).length>0&&j.data&&(j.data.forEach((_e,et)=>{$[`channel${et}`]=this.dataToTexture(_e,j.width,j.height)},this),this.setState({textures:$}))}dataToTexture(j,$,_e){var et;const{interpolation:tt}=this.props,rt=getRenderingAttrs$1(this.props.dtype,this.context.gl,tt);return new Texture2D(this.context.gl,{width:$,height:_e,data:((et=rt.cast)==null?void 0:et.call(rt,j))??j,mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:rt.filter,[GL$1.TEXTURE_MAG_FILTER]:rt.filter,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},format:rt.format,dataFormat:rt.dataFormat,type:rt.type})}};XRLayer.layerName="XRLayer";XRLayer.defaultProps=defaultProps$8;const PHOTOMETRIC_INTERPRETATIONS={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},defaultProps$7={...BitmapLayer$1.defaultProps,pickable:{type:"boolean",value:!0,compare:!0},coordinateSystem:COORDINATE_SYSTEM.CARTESIAN},getPhotometricInterpretationShader=(j,$)=>{const _e=$?"true":"false",et=`vec3(${($||[0,0,0]).map(tt=>String(tt/255)).join(",")})`;switch(j){case PHOTOMETRIC_INTERPRETATIONS.RGB:return`color[3] = (${_e} && (color.rgb == ${et})) ? 0.0 : color.a;`;case PHOTOMETRIC_INTERPRETATIONS.WhiteIsZero:return` float value = 1.0 - (color.r / 256.0); + color = vec4(value, value, value, (${_e} && vec3(value, value, value) == ${et}) ? 0.0 : color.a); + `;case PHOTOMETRIC_INTERPRETATIONS.BlackIsZero:return` float value = (color.r / 256.0); + color = vec4(value, value, value, (${_e} && vec3(value, value, value) == ${et}) ? 0.0 : color.a); + `;case PHOTOMETRIC_INTERPRETATIONS.YCbCr:return` float y = color[0]; + float cb = color[1]; + float cr = color[2]; + color[0] = (y + (1.40200 * (cr - .5))); + color[1] = (y - (0.34414 * (cb - .5)) - (0.71414 * (cr - .5))); + color[2] = (y + (1.77200 * (cb - .5))); + color[3] = (${_e} && distance(color.rgb, ${et}) < 0.01) ? 0.0 : color.a; + `;default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),""}},getTransparentColor=j=>{switch(j){case PHOTOMETRIC_INTERPRETATIONS.RGB:return[0,0,0,0];case PHOTOMETRIC_INTERPRETATIONS.WhiteIsZero:return[255,255,255,0];case PHOTOMETRIC_INTERPRETATIONS.BlackIsZero:return[0,0,0,0];case PHOTOMETRIC_INTERPRETATIONS.YCbCr:return[16,128,128,0];default:return console.error("Unsupported photometric interpretation or none provided. No transformation will be done to image data"),[0,0,0,0]}};class BitmapLayerWrapper extends BitmapLayer$1{_getModel($){const{photometricInterpretation:_e,transparentColorInHook:et}=this.props,tt=getPhotometricInterpretationShader(_e,et);return $?new Model($,{...this.getShaders(),id:this.props.id,geometry:new Geometry({drawMode:GL$1.TRIANGLES,vertexCount:6}),isInstanced:!1,inject:{"fs:DECKGL_FILTER_COLOR":tt}}):null}}const BitmapLayer2=class extends CompositeLayer{initializeState(j){const{gl:$}=this.context;$.pixelStorei(GL$1.UNPACK_ALIGNMENT,1),$.pixelStorei(GL$1.PACK_ALIGNMENT,1),super.initializeState(j)}renderLayers(){const{photometricInterpretation:j,transparentColor:$}=this.props,_e=getTransparentColor(j);return new BitmapLayerWrapper(this.props,{transparentColor:_e,transparentColorInHook:$,id:`${this.props.id}-wrapped`})}};BitmapLayer2.layerName="BitmapLayer";BitmapLayer2.PHOTOMETRIC_INTERPRETATIONS=PHOTOMETRIC_INTERPRETATIONS;BitmapLayer2.defaultProps={...defaultProps$7,image:{type:"object",value:{},compare:!0},transparentColor:{type:"array",value:[0,0,0],compare:!0},photometricInterpretation:{type:"number",value:2,compare:!0}};BitmapLayerWrapper.defaultProps=defaultProps$7;BitmapLayerWrapper.layerName="BitmapLayerWrapper";function renderSubLayers(j){const{bbox:{left:$,top:_e,right:et,bottom:tt},index:{x:rt,y:nt,z:it}}=j.tile,{data:ot,id:At,loader:ut,maxZoom:ft}=j;if([$,tt,et,_e].some(Dt=>Dt<0)||!ot)return null;const dt=ut[0],{height:Et,width:Bt}=getImageSize(dt),St=[$,ot.height({data:[],height:0,width:0}),dtype:"Uint16",shape:[]},compare:!0},onClick:{type:"function",value:null,compare:!0},onViewportLoad:{type:"function",value:null,compare:!0},interpolation:{type:"number",value:GL$1.NEAREST,compare:!0},extensions:{type:"array",value:[new ColorPaletteExtension],compare:!0}},ImageLayer=class extends CompositeLayer{finalizeState(){this.state.abortController.abort()}updateState({props:j,oldProps:$}){const _e=j.loader!==$.loader,et=j.selections!==$.selections;if(_e||et){const{loader:tt,selections:rt=[],onViewportLoad:nt}=this.props,it=new AbortController;this.setState({abortController:it});const{signal:ot}=it,At=ft=>tt.getRaster({selection:ft,signal:ot}),ut=rt.map(At);Promise.all(ut).then(ft=>{var dt,Et;const Bt={data:ft.map(St=>St.data),width:(dt=ft[0])==null?void 0:dt.width,height:(Et=ft[0])==null?void 0:Et.height};isInterleaved$2(tt.shape)&&(Bt.data=Bt.data[0],Bt.data.length===Bt.width*Bt.height*3&&(Bt.format=GL$1.RGB,Bt.dataFormat=GL$1.RGB)),nt&&nt(Bt),this.setState({...Bt})}).catch(ft=>{if(ft!==SIGNAL_ABORTED)throw ft})}}getPickingInfo({info:j,sourceLayer:$}){return j.sourceLayer=$,j.tile=$.props.tile,j}renderLayers(){const{loader:j,id:$}=this.props,{dtype:_e}=j,{width:et,height:tt,data:rt}=this.state;if(!(et&&tt))return null;const nt=[0,tt,et,0];if(isInterleaved$2(j.shape)){const{photometricInterpretation:it=2}=j.meta;return new BitmapLayer2(this.props,{image:this.state,photometricInterpretation:it,bounds:nt,id:`image-sub-layer-${nt}-${$}`,extensions:[]})}return new XRLayer(this.props,{channelData:{data:rt,height:tt,width:et},bounds:nt,id:`image-sub-layer-${nt}-${$}`,dtype:_e})}};ImageLayer.layerName="ImageLayer";ImageLayer.defaultProps=defaultProps$5;const defaultProps$4={pickable:{type:"boolean",value:!0,compare:!0},onHover:{type:"function",value:null,compare:!1},contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},domain:{type:"array",value:[],compare:!0},viewportId:{type:"string",value:"",compare:!0},maxRequests:{type:"number",value:10,compare:!0},onClick:{type:"function",value:null,compare:!0},refinementStrategy:{type:"string",value:null,compare:!0},excludeBackground:{type:"boolean",value:!1,compare:!0},extensions:{type:"array",value:[new ColorPaletteExtension],compare:!0}},MultiscaleImageLayer=class extends CompositeLayer{renderLayers(){const{loader:j,selections:$,opacity:_e,viewportId:et,onTileError:tt,onHover:rt,id:nt,onClick:it,modelMatrix:ot,excludeBackground:At,refinementStrategy:ut}=this.props,{tileSize:ft,dtype:dt}=j[0],Et=async({index:{x:Ot,y:kt,z:Jt},signal:jt})=>{if(!$||$.length===0)return null;const Ht=Math.round(-Jt),Gt=Kt=>{const Wt={x:Ot,y:kt,selection:Kt,signal:jt};return j[Ht].getTile(Wt)};try{const Kt=await Promise.all($.map(Gt)),Wt={data:Kt.map(Vt=>Vt.data),width:Kt[0].width,height:Kt[0].height};return isInterleaved$2(j[Ht].shape)&&(Wt.data=Wt.data[0],Wt.data.length===Wt.width*Wt.height*3&&(Wt.format=GL$1.RGB,Wt.dataFormat=GL$1.RGB)),Wt}catch(Kt){if(Kt===SIGNAL_ABORTED)return null;throw Kt}},{height:Bt,width:St}=getImageSize(j[0]),Dt=new MultiscaleImageLayerBase(this.props,{id:`Tiled-Image-${nt}`,getTileData:Et,dtype:dt,tileSize:ft,zoomOffset:Math.round(Math.log2(ot?ot.getScale()[0]:1)),extent:[0,0,St,Bt],minZoom:Math.round(-(j.length-1)),maxZoom:0,refinementStrategy:ut||(_e===1?"best-available":"no-overlap"),updateTriggers:{getTileData:[j,$]},onTileError:tt||j[0].onTileError}),$t=j[j.length-1],Rt=typeof $t.getRaster=="function",wt=ot?ot.clone():new Matrix4;return[Rt&&!At&&new ImageLayer(this.props,{id:`Background-Image-${nt}`,loader:$t,modelMatrix:wt.scale(2**(j.length-1)),visible:!et||this.context.viewport.id===et,onHover:rt,onClick:it,interpolation:GL$1.LINEAR,onViewportLoad:null}),Dt]}};MultiscaleImageLayer.layerName="MultiscaleImageLayer";MultiscaleImageLayer.defaultProps=defaultProps$4;const defaultProps$3={pickable:{type:"boolean",value:!0,compare:!0},loader:{type:"object",value:{getRaster:async()=>({data:[],height:0,width:0}),getRasterSize:()=>({height:0,width:0}),dtype:"$t,filled:!1,stroked:!0,getLineColor:tt,getLineWidth:rt*2**_e}),St=new PolygonLayer({id:`viewport-outline-${$}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[[[0,0],[At*ot,0],[At*ot,ut*ot],[0,ut*ot]]],getPolygon:$t=>$t,filled:!1,stroked:!0,getLineColor:nt,getLineWidth:it*2**_e});return[Et,Bt,St]}};OverviewLayer.layerName="OverviewLayer";OverviewLayer.defaultProps=defaultProps$3;function getPosition(j,$,_e){const et=j[2][0]-j[0][0],tt=j[2][1]-j[0][1];switch($){case"bottom-right":{const rt=j[2][1]-tt*_e,nt=j[2][0]-et*_e;return[rt,nt]}case"top-right":{const rt=j[0][1]+tt*_e,nt=j[2][0]-et*_e;return[rt,nt]}case"top-left":{const rt=j[0][1]+tt*_e,nt=j[0][0]+et*_e;return[rt,nt]}case"bottom-left":{const rt=j[2][1]-tt*_e,nt=j[0][0]+et*_e;return[rt,nt]}default:throw new Error(`Position ${$} not found`)}}const defaultProps$2={pickable:{type:"boolean",value:!0,compare:!0},viewState:{type:"object",value:{zoom:0,target:[0,0,0]},compare:!0},unit:{type:"string",value:"",compare:!0},size:{type:"number",value:1,compare:!0},position:{type:"string",value:"bottom-right",compare:!0},length:{type:"number",value:.085,compare:!0},snap:{type:"boolean",value:!1,compare:!0}},ScaleBarLayer=class extends CompositeLayer{renderLayers(){const{id:j,unit:$,size:_e,position:et,viewState:tt,length:rt,snap:nt}=this.props,it=makeBoundingBox(tt),{zoom:ot}=tt,ut=(it[2][0]-it[0][0])*.05,ft=Math.max(2**(-ot+1.5),(it[2][1]-it[0][1])*.007);let dt=ut,Et=(ut*_e).toPrecision(5),Bt=$;if(nt){const kt=sizeToMeters(_e,$),Jt=ut*kt,[jt,Ht,Gt]=snapValue(Jt);dt=jt/kt,Et=Ht,Bt=`${Gt}m`}const[St,Dt]=getPosition(it,et,rt),$t=Dt+ut,Rt=et.endsWith("-left"),wt=new LineLayer({id:`scale-bar-length-${j}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[[[Rt?Dt:$t-dt,St],[Rt?Dt+dt:$t,St]]],getSourcePosition:kt=>kt[0],getTargetPosition:kt=>kt[1],getWidth:2,getColor:[220,220,220]}),xt=new LineLayer({id:`scale-bar-height-left-${j}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[[[Rt?Dt:$t-dt,St-ft],[Rt?Dt:$t-dt,St+ft]]],getSourcePosition:kt=>kt[0],getTargetPosition:kt=>kt[1],getWidth:2,getColor:[220,220,220]}),Nt=new LineLayer({id:`scale-bar-height-right-${j}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[[[Rt?Dt+dt:$t,St-ft],[Rt?Dt+dt:$t,St+ft]]],getSourcePosition:kt=>kt[0],getTargetPosition:kt=>kt[1],getWidth:2,getColor:[220,220,220]}),Ot=new TextLayer({id:`units-label-layer-${j}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[{text:`${Et}${Bt}`,position:[Rt?Dt+ut*.5:$t-ut*.5,St+ft*4]}],getColor:[220,220,220,255],getSize:12,fontFamily:DEFAULT_FONT_FAMILY,sizeUnits:"meters",sizeScale:2**-ot,characterSet:[...Bt.split(""),...range(10).map(kt=>String(kt)),".","e","+"]});return[wt,xt,Nt,Ot]}};ScaleBarLayer.layerName="ScaleBarLayer";ScaleBarLayer.defaultProps=defaultProps$2;const vs$2=`#version 300 es +#define SHADER_NAME xr-layer-vertex-shader + +// Unit-cube vertices +in vec3 positions; + +// Eye position - last column of the inverted view matrix +uniform vec3 eye_pos; +// Projection matrix +uniform mat4 proj; +// Model Matrix +uniform mat4 model; +// View Matrix +uniform mat4 view; +// A matrix for scaling in the model space before any transformations. +// This projects the unit cube up to match the "pixel size" multiplied by the physical size ratio, if provided. +uniform mat4 scale; +uniform mat4 resolution; + + +out vec3 vray_dir; +flat out vec3 transformed_eye; + +void main() { + + // Step 1: Standard MVP transformation (+ the scale matrix) to place the positions on your 2D screen ready for rasterization + fragment processing. + gl_Position = proj * view * model * scale * resolution * vec4(positions, 1.); + + // Step 2: Invert the eye back from world space to the normalized 0-1 cube world space because ray casting on the fragment shader runs in 0-1 space. + // Geometrically, the transformed_eye is a position relative to the 0-1 normalized vertices, which themselves are the inverse of the model + scale trasnformation. + // See below for an example which does not involve a scale transformation, for simplicity, but motivates geometrically the needed transformation on eye_pos. + /* + This first diagram is a skewed volume (i.e a "shear" model matrix applied) top down with the eye marked as #, all in world space + ^ + ___|__ + \\ | \\ + \\ | \\ + \\|____\\ + | + | + | + # + + This next diagram shows the volume after the inverse model matrix has placed it back in model coordinates, but the eye still in world space. + ^ + ___|___ + | | | + | | | + |__|__| + | + | + | + # + + Finally, we apply the inverse model matrix transformation to the eye as well to bring it too into world space. + Notice that the ray here matches the "voxels" through which the first ray also passes, as desired. + ^ + ____/__ + | / | + | / | + |/____| + / + / + / + # + */ + transformed_eye = (inverse(resolution) * inverse(scale) * inverse(model) * (vec4(eye_pos, 1.))).xyz; + + // Step 3: Rays are from eye to vertices so that they get interpolated over the fragments. + vray_dir = positions - transformed_eye; +} +`,fs$3=`#version 300 es +precision highp int; +precision highp float; +precision highp SAMPLER_TYPE; + +uniform highp SAMPLER_TYPE volume0; +uniform highp SAMPLER_TYPE volume1; +uniform highp SAMPLER_TYPE volume2; +uniform highp SAMPLER_TYPE volume3; +uniform highp SAMPLER_TYPE volume4; +uniform highp SAMPLER_TYPE volume5; + +uniform vec3 scaledDimensions; + +uniform mat4 scale; + +uniform vec3 normals[NUM_PLANES]; +uniform float distances[NUM_PLANES]; + +// color +uniform vec3 colors[6]; + +// slices +uniform vec2 xSlice; +uniform vec2 ySlice; +uniform vec2 zSlice; + +// range +uniform vec2 contrastLimits[6]; + +in vec3 vray_dir; +flat in vec3 transformed_eye; +out vec4 color; + +vec2 intersect_box(vec3 orig, vec3 dir) { + vec3 box_min = vec3(xSlice[0], ySlice[0], zSlice[0]); + vec3 box_max = vec3(xSlice[1], ySlice[1], zSlice[1]); + vec3 inv_dir = 1. / dir; + vec3 tmin_tmp = (box_min - orig) * inv_dir; + vec3 tmax_tmp = (box_max - orig) * inv_dir; + vec3 tmin = min(tmin_tmp, tmax_tmp); + vec3 tmax = max(tmin_tmp, tmax_tmp); + float t0 = max(tmin.x, max(tmin.y, tmin.z)); + float t1 = min(tmax.x, min(tmax.y, tmax.z)); + vec2 val = vec2(t0, t1); + return val; +} + +float linear_to_srgb(float x) { + if (x <= 0.0031308f) { + return 12.92f * x; + } + return 1.055f * pow(x, 1.f / 2.4f) - 0.055f; +} + +// Pseudo-random number gen from +// http://www.reedbeta.com/blog/quick-and-easy-gpu-random-numbers-in-d3d11/ +// with some tweaks for the range of values +float wang_hash(int seed) { + seed = (seed ^ 61) ^ (seed >> 16); + seed *= 9; + seed = seed ^ (seed >> 4); + seed *= 0x27d4eb2d; + seed = seed ^ (seed >> 15); + return float(seed % 2147483647) / float(2147483647); +} + + +void main(void) { + // Step 1: Normalize the view ray + vec3 ray_dir = normalize(vray_dir); + + // Step 2: Intersect the ray with the volume bounds to find the interval + // along the ray overlapped by the volume. + vec2 t_hit = intersect_box(transformed_eye, ray_dir); + if (t_hit.x > t_hit.y) { + discard; + } + // We don't want to sample voxels behind the eye if it's + // inside the volume, so keep the starting point at or in front + // of the eye + t_hit.x = max(t_hit.x, 0.); + + // Step 3: Compute the step size to march through the volume grid + vec3 dt_vec = 1. / (scale * vec4(abs(ray_dir), 1.)).xyz; + float dt = 1. * min(dt_vec.x, min(dt_vec.y, dt_vec.z)); + + float offset = wang_hash(int(gl_FragCoord.x + 640. * gl_FragCoord.y)); + + // Step 4: Starting from the entry point, march the ray through the volume + // and sample it + vec3 p = transformed_eye + (t_hit.x + offset * dt) * ray_dir; + + // TODO: Probably want to stop this process at some point to improve performance when marching down the edges. + _BEFORE_RENDER + for (float t = t_hit.x; t < t_hit.y; t += dt) { + // Check if this point is on the "positive" side or "negative" side of the plane - only show positive. + float canShow = 1.; + for (int i = 0; i < NUM_PLANES; i += 1) { + canShow *= max(0., sign(dot(normals[i], p) + distances[i])); + } + // Do not show coordinates outside 0-1 box. + // Something about the undefined behavior outside the box causes the additive blender to + // render some very odd artifacts. + float canShowXCoordinate = max(p.x - 0., 0.) * max(1. - p.x , 0.); + float canShowYCoordinate = max(p.y - 0., 0.) * max(1. - p.y , 0.); + float canShowZCoordinate = max(p.z - 0., 0.) * max(1. - p.z , 0.); + float canShowCoordinate = float(ceil(canShowXCoordinate * canShowYCoordinate * canShowZCoordinate)); + canShow = canShowCoordinate * canShow; + float intensityValue0 = float(texture(volume0, p).r); + DECKGL_PROCESS_INTENSITY(intensityValue0, contrastLimits[0], 0); + intensityValue0 = canShow * intensityValue0; + float intensityValue1 = float(texture(volume1, p).r); + DECKGL_PROCESS_INTENSITY(intensityValue1, contrastLimits[1], 1); + intensityValue1 = canShow * intensityValue1; + float intensityValue2 = float(texture(volume2, p).r); + DECKGL_PROCESS_INTENSITY(intensityValue2, contrastLimits[2], 2); + intensityValue2 = canShow * intensityValue2; + float intensityValue3 = float(texture(volume3, p).r); + DECKGL_PROCESS_INTENSITY(intensityValue3, contrastLimits[3], 3); + intensityValue3 = canShow * intensityValue3; + float intensityValue4 = float(texture(volume4, p).r); + DECKGL_PROCESS_INTENSITY(intensityValue4, contrastLimits[4], 4); + intensityValue4 = canShow * intensityValue4; + float intensityValue5 = float(texture(volume5, p).r); + DECKGL_PROCESS_INTENSITY(intensityValue5, contrastLimits[5], 5); + intensityValue5 = canShow * intensityValue5; + + _RENDER + + p += ray_dir * dt; + } + _AFTER_RENDER + color.r = linear_to_srgb(color.r); + color.g = linear_to_srgb(color.g); + color.b = linear_to_srgb(color.b); +} +`,channelsModule={name:"channel-intensity-module",fs:` float apply_contrast_limits(float intensity, vec2 contrastLimits) { + float contrastLimitsAppliedToIntensity = (intensity - contrastLimits[0]) / max(0.0005, (contrastLimits[1] - contrastLimits[0])); + return max(0., contrastLimitsAppliedToIntensity); + } + `},CUBE_STRIP=[1,1,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,0,0,0,0],NUM_PLANES_DEFAULT=1,defaultProps$1$1={pickable:!1,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,channelData:{type:"object",value:{},compare:!0},contrastLimits:{type:"array",value:[],compare:!0},dtype:{type:"string",value:"Uint8",compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},resolutionMatrix:{type:"object",value:new Matrix4,compare:!0},channelsVisible:{type:"array",value:[],compare:!0},extensions:{type:"array",value:[new ColorPalette3DExtensions.AdditiveBlendExtension],compare:!0}};function getRenderingAttrs(){const j=getDtypeValues("Float32");return{...j,sampler:j.sampler.replace("2D","3D"),cast:$=>new Float32Array($)}}function getRenderingFromExtensions(j){let $={};if(j.forEach(_e=>{$=_e.rendering}),!$._RENDER)throw new Error("XR3DLayer requires at least one extension to define opts.rendering as an object with _RENDER as a property at the minimum.");return $}const XR3DLayer=class extends Layer{initializeState(){const{gl:j}=this.context;j.pixelStorei(GL$1.UNPACK_ALIGNMENT,1),j.pixelStorei(GL$1.PACK_ALIGNMENT,1);const $=ProgramManager.getDefaultProgramManager(j),_e="fs:DECKGL_PROCESS_INTENSITY(inout float intensity, vec2 contrastLimits, int channelIndex)";$._hookFunctions.includes(_e)||$.addShaderHook(_e)}_isHookDefinedByExtensions(j){const{extensions:$}=this.props;return $==null?void 0:$.some(_e=>{const et=_e.getShaders();if(et){const{inject:tt={},modules:rt=[]}=et,nt=tt[j],it=rt.some(ot=>ot.inject&&(ot==null?void 0:ot.inject[j]));return nt||it}return!1})}getShaders(){const{clippingPlanes:j,extensions:$}=this.props,{sampler:_e}=getRenderingAttrs(),{_BEFORE_RENDER:et,_RENDER:tt,_AFTER_RENDER:rt}=getRenderingFromExtensions($),nt=this._isHookDefinedByExtensions("fs:DECKGL_PROCESS_INTENSITY"),it={inject:{},...channelsModule};return nt||(it.inject["fs:DECKGL_PROCESS_INTENSITY"]=` + intensity = apply_contrast_limits(intensity, contrastLimits); + `),super.getShaders({vs:vs$2,fs:fs$3.replace("_BEFORE_RENDER",et).replace("_RENDER",tt).replace("_AFTER_RENDER",rt),defines:{SAMPLER_TYPE:_e,NUM_PLANES:String(j.length||NUM_PLANES_DEFAULT)},modules:[it]})}finalizeState(){super.finalizeState(),this.state.textures&&Object.values(this.state.textures).forEach(j=>j&&j.delete())}updateState({props:j,oldProps:$,changeFlags:_e}){var et,tt;if(_e.extensionsChanged||j.colormap!==$.colormap||j.renderingMode!==$.renderingMode||j.clippingPlanes.length!==$.clippingPlanes.length){const{gl:rt}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(rt)})}j.channelData&&((et=j==null?void 0:j.channelData)==null?void 0:et.data)!==((tt=$==null?void 0:$.channelData)==null?void 0:tt.data)&&this.loadTexture(j.channelData)}_getModel(j){return j?new Model(j,{...this.getShaders(),geometry:new Geometry({drawMode:j.TRIANGLE_STRIP,attributes:{positions:new Float32Array(CUBE_STRIP)}})}):null}draw({uniforms:j}){const{textures:$,model:_e,scaleMatrix:et}=this.state,{contrastLimits:tt,xSlice:rt,ySlice:nt,zSlice:it,modelMatrix:ot,channelsVisible:At,domain:ut,dtype:ft,clippingPlanes:dt,resolutionMatrix:Et}=this.props,{viewMatrix:Bt,viewMatrixInverse:St,projectionMatrix:Dt}=this.context.viewport;if($&&_e&&et){const $t=padContrastLimits({contrastLimits:tt,channelsVisible:At,domain:ut,dtype:ft}),Rt=et.clone().invert(),wt=Et.clone().invert(),xt=padWithDefault$2(dt.map(kt=>kt.clone().transform(Rt).transform(wt)),new Plane([1,0,0]),dt.length||NUM_PLANES_DEFAULT),Nt=xt.map(kt=>kt.normal).flat(),Ot=xt.map(kt=>kt.distance);_e.setUniforms({...j,...$,contrastLimits:$t,xSlice:new Float32Array(rt?rt.map(kt=>kt/et[0]/Et[0]):[0,1]),ySlice:new Float32Array(nt?nt.map(kt=>kt/et[5]/Et[5]):[0,1]),zSlice:new Float32Array(it?it.map(kt=>kt/et[10]/Et[10]):[0,1]),eye_pos:new Float32Array([St[12],St[13],St[14]]),view:Bt,proj:Dt,scale:et,resolution:Et,model:ot||new Matrix4,normals:Nt,distances:Ot}).draw()}}loadTexture(j){const $={volume0:null,volume1:null,volume2:null,volume3:null,volume4:null,volume5:null};if(this.state.textures&&Object.values(this.state.textures).forEach(_e=>_e&&_e.delete()),j&&Object.keys(j).length>0&&j.data){const{height:_e,width:et,depth:tt}=j;j.data.forEach((rt,nt)=>{$[`volume${nt}`]=this.dataToTexture(rt,et,_e,tt)},this),this.setState({textures:$,scaleMatrix:new Matrix4().scale(this.props.physicalSizeScalingMatrix.transformPoint([et,_e,tt]))})}}dataToTexture(j,$,_e,et){var tt;const rt=getRenderingAttrs();return new Texture3D(this.context.gl,{width:$,height:_e,depth:et,data:((tt=rt.cast)==null?void 0:tt.call(rt,j))??j,format:rt.dataFormat,dataFormat:rt.format,type:rt.type,mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:GL$1.LINEAR,[GL$1.TEXTURE_MAG_FILTER]:GL$1.LINEAR,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_R]:GL$1.CLAMP_TO_EDGE}})}};XR3DLayer.layerName="XR3DLayer";XR3DLayer.defaultProps=defaultProps$1$1;async function getVolume({source:j,selection:$,onUpdate:_e=()=>{},downsampleDepth:et=1,signal:tt}){const{shape:rt,labels:nt,dtype:it}=j,{height:ot,width:At}=getImageSize(j),ut=rt[nt.indexOf("z")],ft=Math.max(1,Math.floor(ut/et)),dt=ot*At,Et=`${it}Array`,Bt=globalThis[Et],St=new Bt(dt*ft);return await Promise.all(new Array(ft).fill(0).map(async(Dt,$t)=>{const Rt={...$,z:$t*et},{data:wt}=await j.getRaster({selection:Rt,signal:tt});let xt=0;for(_e();xtnew TextLayer({id:`text-${_e}`,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,data:[{text:j,position:$.position}],getColor:[220,220,220,255],getSize:25,sizeUnits:"meters",sizeScale:2**-$.zoom,fontFamily:"Helvetica"}),defaultProps$9={pickable:!1,coordinateSystem:COORDINATE_SYSTEM.CARTESIAN,contrastLimits:{type:"array",value:[],compare:!0},channelsVisible:{type:"array",value:[],compare:!0},selections:{type:"array",value:[],compare:!0},resolution:{type:"number",value:0,compare:!0},domain:{type:"array",value:[],compare:!0},loader:{type:"object",value:[{getRaster:async()=>({data:[],height:0,width:0}),dtype:"Uint16",shape:[1],labels:["z"]}],compare:!0},xSlice:{type:"array",value:null,compare:!0},ySlice:{type:"array",value:null,compare:!0},zSlice:{type:"array",value:null,compare:!0},clippingPlanes:{type:"array",value:[],compare:!0},onUpdate:{type:"function",value:()=>{},compare:!0},useProgressIndicator:{type:"boolean",value:!0,compare:!0},useWebGL1Warning:{type:"boolean",value:!0,compare:!0},extensions:{type:"array",value:[new ColorPalette3DExtensions.AdditiveBlendExtension],compare:!0}},VolumeLayer=class extends CompositeLayer{clearState(){this.setState({height:null,width:null,depth:null,data:null,physicalSizeScalingMatrix:null,resolutionMatrix:null,progress:0,abortController:null})}finalizeState(){this.state.abortController.abort()}updateState({oldProps:j,props:$}){const _e=$.loader!==j.loader,et=$.resolution!==j.resolution,tt=$.selections!==j.selections;if(et&&this.clearState(),_e||tt||et){const{loader:rt,selections:nt=[],resolution:it,onViewportLoad:ot}=this.props,At=rt[it];let ut=0;const ft=(At.shape[At.labels.indexOf("z")]>>it)*nt.length,dt=()=>{ut+=.5/ft,this.props.onUpdate&&this.props.onUpdate({progress:ut}),this.setState({progress:ut})},Et=new AbortController;this.setState({abortController:Et});const{signal:Bt}=Et,St=nt.map($t=>getVolume({selection:$t,source:At,onUpdate:dt,downsampleDepth:2**it,signal:Bt})),Dt=getPhysicalSizeScalingMatrix(rt[it]);Promise.all(St).then($t=>{var Rt,wt,xt;ot&&ot($t);const Nt={data:$t.map(Ot=>Ot.data),width:(Rt=$t[0])==null?void 0:Rt.width,height:(wt=$t[0])==null?void 0:wt.height,depth:(xt=$t[0])==null?void 0:xt.depth};this.setState({...Nt,physicalSizeScalingMatrix:Dt,resolutionMatrix:new Matrix4().scale(2**it)})})}}renderLayers(){const{loader:j,id:$,resolution:_e,useProgressIndicator:et,useWebGL1Warning:tt}=this.props,{dtype:rt}=j[_e],{data:nt,width:it,height:ot,depth:At,progress:ut,physicalSizeScalingMatrix:ft,resolutionMatrix:dt}=this.state,{gl:Et}=this.context;if(!isWebGL2$1(Et)&&tt){const{viewport:Bt}=this.context;return getTextLayer(["Volume rendering is only available on browsers that support WebGL2. If you","are using Safari, you can turn on WebGL2 by navigating in the top menubar","to check Develop > Experimental Features > WebGL 2.0 and then refreshing","the page."].join(` +`),Bt,$)}if(!(it&&ot)&&et){const{viewport:Bt}=this.context;return getTextLayer(`Loading Volume ${String((ut||0)*100).slice(0,5)}%...`,Bt,$)}return new XR3DLayer(this.props,{channelData:{data:nt,width:it,height:ot,depth:At},id:`XR3DLayer-0-${ot}-${it}-0-${_e}-${$}`,physicalSizeScalingMatrix:ft,parameters:{[GL$1.CULL_FACE]:!0,[GL$1.CULL_FACE_MODE]:GL$1.FRONT,[GL$1.DEPTH_TEST]:!1,blendFunc:[GL$1.SRC_ALPHA,GL$1.ONE],blend:!0},resolutionMatrix:dt,dtype:rt})}};VolumeLayer.layerName="VolumeLayer";VolumeLayer.defaultProps=defaultProps$9;const vs$1=` +#define SHADER_NAME bitmask-layer-vertex-shader + +attribute vec2 texCoords; +attribute vec3 positions; +attribute vec3 positions64Low; +attribute vec3 instancePickingColors; + +varying vec2 vTexCoord; + +void main(void) { + geometry.worldPosition = positions; + geometry.uv = texCoords; + geometry.pickingColor = instancePickingColors; + gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + vTexCoord = texCoords; + vec4 color = vec4(0.0); + DECKGL_FILTER_COLOR(color, geometry); +} +`,fs$1=` +#define SHADER_NAME bitmask-layer-fragment-shader +precision highp float; + +${colormaps} + +// Data (mask) texture +uniform sampler2D channel0; +uniform sampler2D channel1; +uniform sampler2D channel2; +uniform sampler2D channel3; +uniform sampler2D channel4; +uniform sampler2D channel5; + +// Color texture +uniform sampler2D colorTex; +uniform float colorTexHeight; +uniform float colorTexWidth; +uniform float hovered; +// range +uniform bool channelsVisible[6]; + +// Expression mapping +uniform vec2 uColorScaleRange; +uniform bool uIsExpressionMode; +uniform sampler2D expressionTex; + +// opacity +uniform float opacity; + +varying vec2 vTexCoord; + +vec4 sampleAndGetColor(sampler2D dataTex, vec2 coord, bool isOn){ + float sampledData = texture(dataTex, coord).r; + vec4 hoveredColor = float(sampledData == hovered && sampledData > 0. && hovered > 0.) * vec4(0., 0., 1., 1.); + // Colors are laid out corresponding to ids in row-major order in the texture. So if width of the texture is 10, and you want ID 25, + // you need coordinate (1, 4) (i.e 2 rows down, and 5 columns over indexed from 0 for a total of 25 units covered in row major order). + vec2 colorTexCoord = vec2(mod(sampledData, colorTexWidth) / colorTexWidth, floor(sampledData / colorTexWidth) / (colorTexHeight - 1.)); + float expressionValue = texture(expressionTex, colorTexCoord).r / 255.; + float scaledExpressionValue = (expressionValue - uColorScaleRange[0]) / max(0.005, (uColorScaleRange[1] - uColorScaleRange[0])); + vec4 sampledColor = float(uIsExpressionMode) * COLORMAP_FUNC(clamp(scaledExpressionValue, 0.0, 1.0)) + (1. - float(uIsExpressionMode)) * vec4(texture(colorTex, colorTexCoord).rgb, 1.); + // Only return a color if the data is non-zero. + return max(0., min(sampledData, 1.)) * float(isOn) * (sampledColor + hoveredColor); +} + +void main() { + + gl_FragColor = sampleAndGetColor(channel0, vTexCoord, channelsVisible[0]); + + // If the sampled color and the currently stored color (gl_FragColor) are identical, don't blend and use the sampled color, + // otherwise just use the currently stored color. Repeat this for all channels. + vec4 sampledColor = sampleAndGetColor(channel1, vTexCoord, channelsVisible[1]); + gl_FragColor = (sampledColor == gl_FragColor || sampledColor == vec4(0.)) ? gl_FragColor : sampledColor; + sampledColor = sampleAndGetColor(channel2, vTexCoord, channelsVisible[2]); + gl_FragColor = (sampledColor == gl_FragColor || sampledColor == vec4(0.)) ? gl_FragColor : sampledColor; + sampledColor = sampleAndGetColor(channel3, vTexCoord, channelsVisible[3]); + gl_FragColor = (sampledColor == gl_FragColor || sampledColor == vec4(0.)) ? gl_FragColor : sampledColor; + sampledColor = sampleAndGetColor(channel4, vTexCoord, channelsVisible[4]); + gl_FragColor = (sampledColor == gl_FragColor || sampledColor == vec4(0.)) ? gl_FragColor : sampledColor; + sampledColor = sampleAndGetColor(channel5, vTexCoord, channelsVisible[5]); + gl_FragColor = (sampledColor == gl_FragColor || sampledColor == vec4(0.)) ? gl_FragColor : sampledColor; + // Apply the opacity if there is pixel data, and if the pixel data is empty i.e no segmentation, use 0 opacity. + gl_FragColor = vec4(gl_FragColor.rgb, (gl_FragColor.rgb == vec3(0., 0., 0.)) ? 0.0 : opacity); + + geometry.uv = vTexCoord; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`;function padWithDefault$1(j,$,_e){const et=[...j];for(let tt=0;tt<_e;tt+=1)et.push($);return et}const defaultProps$1={hoveredCell:{type:"number",value:null,compare:!0},cellColorData:{type:"object",value:null,compare:0},colormap:{type:"string",value:GLSL_COLORMAP_DEFAULT,compare:!0},expressionData:{type:"object",value:null,compare:0}};let BitmaskLayer$1=class extends XRLayer{getShaders(){const{colormap:$}=this.props;return{fs:fs$1,vs:vs$1,modules:[project32,picking],defines:{[COLORMAP_SHADER_PLACEHOLDER]:GLSL_COLORMAPS.includes($)?$:GLSL_COLORMAP_DEFAULT}}}updateState({props:$,oldProps:_e,changeFlags:et}){if(super.updateState({props:$,oldProps:_e,changeFlags:et}),$.cellColorData!==_e.cellColorData&&this.setColorTexture(),$.expressionData!==_e.expressionData){const{expressionData:tt,cellTexHeight:rt,cellTexWidth:nt}=this.props,it=this.dataToTexture(tt,nt,rt);this.setState({expressionTex:it})}if($.colormap!==_e.colormap){const{gl:tt}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(tt)}),this.getAttributeManager().invalidateAll()}}setColorTexture(){const{cellColorData:$,cellTexHeight:_e,cellTexWidth:et}=this.props,tt=new Texture2D(this.context.gl,{width:et,height:_e,data:$,mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_MAG_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},format:GL$1.RGB,dataFormat:GL$1.RGB,type:GL$1.UNSIGNED_BYTE});this.setState({colorTex:tt})}draw($){const{uniforms:_e}=$,{channelsVisible:et,hoveredCell:tt,colorScaleLo:rt,colorScaleHi:nt,isExpressionMode:it}=this.props,{textures:ot,model:At,colorTex:ut,expressionTex:ft}=this.state;ot&&At&&ut&&At.setUniforms(Object.assign({},_e,{hovered:tt||0,colorTex:ut,expressionTex:ft,colorTexHeight:ut.height,colorTexWidth:ut.width,channelsVisible:padWithDefault$1(et,!1,6-et.length),uColorScaleRange:[rt,nt],uIsExpressionMode:it,...ot})).draw()}dataToTexture($,_e,et){const tt=isWebGL2$1(this.context.gl);return new Texture2D(this.context.gl,{width:_e,height:et,data:new Float32Array($),mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_MAG_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},format:tt?GL$1.R32F:GL$1.LUMINANCE,dataFormat:tt?GL$1.RED:GL$1.LUMINANCE,type:GL$1.FLOAT})}};BitmaskLayer$1.layerName="BitmaskLayer";BitmaskLayer$1.defaultProps=defaultProps$1;const vs=` +#define SHADER_NAME bitmask-layer-vertex-shader + +attribute vec2 texCoords; +attribute vec3 positions; +attribute vec3 positions64Low; +attribute vec3 instancePickingColors; + +varying vec2 vTexCoord; + +void main(void) { + geometry.worldPosition = positions; + geometry.uv = texCoords; + geometry.pickingColor = instancePickingColors; + gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position); + DECKGL_FILTER_GL_POSITION(gl_Position, geometry); + vTexCoord = texCoords; + vec4 color = vec4(0.0); + DECKGL_FILTER_COLOR(color, geometry); +} +`,fs=` +#define SHADER_NAME bitmask-layer-fragment-shader +precision highp float; + +${colormaps} + +// Note: can have a maximum of 16 textures in most browsers +// Reference: https://webglreport.com/ + +// Data (mask) texture +uniform sampler2D channel0; +uniform sampler2D channel1; +uniform sampler2D channel2; +uniform sampler2D channel3; +uniform sampler2D channel4; +uniform sampler2D channel5; +uniform sampler2D channel6; + +// Color texture +uniform float hovered; + +// Channel-specific properties +uniform bool channelsVisible[7]; +uniform float channelOpacities[7]; +uniform bool channelIsStaticColorMode[7]; // TODO: should this be a single float? +uniform bool channelIsSetColorMode[7]; // TODO: should this be a single float? + +// TODO: can array of tuples/vec2 be used? +uniform float channelColormapRangeStarts[7]; +uniform float channelColormapRangeEnds[7]; + +uniform float multiFeatureTexSize; + +// Use one expressionTex for all channels, using an offset mechanism. +uniform sampler2D valueTex; +uniform float valueTexOffsets[7]; +uniform float valueTexHeight; + +// Textures for set colors, using the same offset mechanism. +uniform sampler2D colorTex; +uniform float colorTexOffsets[7]; +uniform float colorTexHeight; + + +// Static colors +// TODO: For some reason I cannot use uniform vec3 colors[7]; and i cannot figure out why. +uniform vec3 color0; +uniform vec3 color1; +uniform vec3 color2; +uniform vec3 color3; +uniform vec3 color4; +uniform vec3 color5; +uniform vec3 color6; + +// Info for edge-only mode +uniform float scaleFactor; +uniform bool channelsFilled[7]; +uniform float channelStrokeWidths[7]; + +// opacity +uniform float opacity; + +varying vec2 vTexCoord; + +vec3 sampleAndGetData(sampler2D dataTex, vec2 coord, bool isFilled, float strokeWidth, bool isOn) { + float sampledData = texture(dataTex, coord).r; + float clampedSampledData = max(0., min(sampledData, 1.)); + + bool isEdge = true; + + if(!isFilled) { + vec2 uTextureSize = vec2(2048.0, 2048.0); + vec2 onePixel = vec2(1.0, 1.0) / uTextureSize; + + // Vary the edgeSize based on user-defined stroke width. + float edgeSize = 150.0 * strokeWidth * scaleFactor; + + float pixN = texture(dataTex, coord + vec2(0.0, onePixel.y * edgeSize)).r; + float pixS = texture(dataTex, coord - vec2(0.0, onePixel.y * edgeSize)).r; + float pixW = texture(dataTex, coord + vec2(onePixel.x * edgeSize, 0.0)).r; + float pixE = texture(dataTex, coord - vec2(onePixel.x * edgeSize, 0.0)).r; + + float pixNW = texture(dataTex, coord + vec2(onePixel.y * edgeSize, onePixel.y * edgeSize)).r; + float pixNE = texture(dataTex, coord + vec2(-1.0 * onePixel.x * edgeSize, onePixel.y * edgeSize)).r; + float pixSW = texture(dataTex, coord - vec2(onePixel.x * edgeSize, onePixel.y * edgeSize)).r; + float pixSE = texture(dataTex, coord - vec2(-1.0 * onePixel.x * edgeSize, onePixel.y * edgeSize)).r; + + isEdge = (pixN != sampledData || pixS != sampledData || pixW != sampledData || pixE != sampledData || pixNW != sampledData || pixNE != sampledData || pixSW != sampledData || pixSE != sampledData); + } + // Return a tuple of (sampledData, isEdge) + return vec3(clampedSampledData * float(isOn), sampledData, float(isEdge)); +} + +vec4 dataToColor(vec3 sampledDataAndIsEdge, bool isStaticColorMode, vec3 channelColor, float channelOpacity, float valueOffset, float rangeStart, float rangeEnd, bool isSetColorMode, float setColorOffset) { + float clampedSampledDataAndIsOn = sampledDataAndIsEdge.x; + float sampledData = sampledDataAndIsEdge.y; + float isEdge = sampledDataAndIsEdge.z; + + + vec4 hoveredColor = float(sampledData == hovered && sampledData > 0. && hovered > 0.) * vec4(0., 0., 1., 1.); + + // Colors are laid out corresponding to ids in row-major order in the texture. So if width of the texture is 10, and you want ID 25, + // you need coordinate (1, 4) (i.e 2 rows down, and 5 columns over indexed from 0 for a total of 25 units covered in row major order). + float offsetSampledData = sampledData + valueOffset - 1.0; + vec2 colorTexCoord = vec2(mod(offsetSampledData, multiFeatureTexSize) / multiFeatureTexSize, floor(offsetSampledData / multiFeatureTexSize) / (valueTexHeight - 1.)); + + // Get expression value + float expressionValue = texture(valueTex, colorTexCoord).r / 255.; + float scaledExpressionValue = (expressionValue - rangeStart) / max(0.005, (rangeEnd - rangeStart)); + + + // Get set color index value + vec2 setIndicesTexCoord = vec2(mod(offsetSampledData, multiFeatureTexSize) / multiFeatureTexSize, floor(offsetSampledData / multiFeatureTexSize) / (valueTexHeight - 1.)); + float setColorIndex = texture(valueTex, setIndicesTexCoord).r; + + // Initialize to the default "null" color. + vec3 setColor = vec3(200. / 255., 200. / 255., 200. / 255.); + if(setColorIndex != 0.) { + // Subtract one from setColorIndex because we have already checked for the "null" value. + setColorIndex = setColorIndex - 1.; + + float setColorOffsetR = (setColorIndex + setColorOffset) * 3.0 + 0.0; + vec2 setColorTexCoordR = vec2(mod(setColorOffsetR, multiFeatureTexSize) / multiFeatureTexSize, floor(setColorOffsetR / multiFeatureTexSize) / (colorTexHeight - 1.)); + float setColorR = texture(colorTex, setColorTexCoordR).r / 255.; + + float setColorOffsetG = (setColorIndex + setColorOffset) * 3.0 + 1.0; + vec2 setColorTexCoordG = vec2(mod(setColorOffsetG, multiFeatureTexSize) / multiFeatureTexSize, floor(setColorOffsetG / multiFeatureTexSize) / (colorTexHeight - 1.)); + float setColorG = texture(colorTex, setColorTexCoordG).r / 255.; + + float setColorOffsetB = (setColorIndex + setColorOffset) * 3.0 + 2.0; + vec2 setColorTexCoordB = vec2(mod(setColorOffsetB, multiFeatureTexSize) / multiFeatureTexSize, floor(setColorOffsetB / multiFeatureTexSize) / (colorTexHeight - 1.)); + float setColorB = texture(colorTex, setColorTexCoordB).r / 255.; + + setColor = vec3(setColorR, setColorG, setColorB); + } + + + vec4 sampledColor = (1. - (float(isStaticColorMode) + float(isSetColorMode))) * vec4(COLORMAP_FUNC(clamp(scaledExpressionValue, 0.0, 1.0)).rgb, channelOpacity) + float(isStaticColorMode) * vec4(channelColor.rgb, channelOpacity) + float(isSetColorMode) * vec4(setColor, channelOpacity); + // Only return a color if the data is non-zero. + + return clampedSampledDataAndIsOn * isEdge * sampledColor; +} + +void main() { + + // Get the color and alpha value for each channel. + vec3 dat0 = sampleAndGetData(channel0, vTexCoord, channelsFilled[0], channelStrokeWidths[0], channelsVisible[0]); + vec3 dat1 = sampleAndGetData(channel1, vTexCoord, channelsFilled[1], channelStrokeWidths[1], channelsVisible[1]); + vec3 dat2 = sampleAndGetData(channel2, vTexCoord, channelsFilled[2], channelStrokeWidths[2], channelsVisible[2]); + vec3 dat3 = sampleAndGetData(channel3, vTexCoord, channelsFilled[3], channelStrokeWidths[3], channelsVisible[3]); + vec3 dat4 = sampleAndGetData(channel4, vTexCoord, channelsFilled[4], channelStrokeWidths[4], channelsVisible[4]); + vec3 dat5 = sampleAndGetData(channel5, vTexCoord, channelsFilled[5], channelStrokeWidths[5], channelsVisible[5]); + vec3 dat6 = sampleAndGetData(channel6, vTexCoord, channelsFilled[6], channelStrokeWidths[6], channelsVisible[6]); + + vec4 val0 = dataToColor(dat0, channelIsStaticColorMode[0], color0, channelOpacities[0], valueTexOffsets[0], channelColormapRangeStarts[0], channelColormapRangeEnds[0], channelIsSetColorMode[0], colorTexOffsets[0]); + vec4 val1 = dataToColor(dat1, channelIsStaticColorMode[1], color1, channelOpacities[1], valueTexOffsets[1], channelColormapRangeStarts[1], channelColormapRangeEnds[1], channelIsSetColorMode[1], colorTexOffsets[1]); + vec4 val2 = dataToColor(dat2, channelIsStaticColorMode[2], color2, channelOpacities[2], valueTexOffsets[2], channelColormapRangeStarts[2], channelColormapRangeEnds[2], channelIsSetColorMode[2], colorTexOffsets[2]); + vec4 val3 = dataToColor(dat3, channelIsStaticColorMode[3], color3, channelOpacities[3], valueTexOffsets[3], channelColormapRangeStarts[3], channelColormapRangeEnds[3], channelIsSetColorMode[3], colorTexOffsets[3]); + vec4 val4 = dataToColor(dat4, channelIsStaticColorMode[4], color4, channelOpacities[4], valueTexOffsets[4], channelColormapRangeStarts[4], channelColormapRangeEnds[4], channelIsSetColorMode[4], colorTexOffsets[4]); + vec4 val5 = dataToColor(dat5, channelIsStaticColorMode[5], color5, channelOpacities[5], valueTexOffsets[5], channelColormapRangeStarts[5], channelColormapRangeEnds[5], channelIsSetColorMode[5], colorTexOffsets[5]); + vec4 val6 = dataToColor(dat6, channelIsStaticColorMode[6], color6, channelOpacities[6], valueTexOffsets[6], channelColormapRangeStarts[6], channelColormapRangeEnds[6], channelIsSetColorMode[6], colorTexOffsets[6]); + + // If all of the channels are "empty", then discard this pixel so that it is not considered during picking. + float emptyDat = 0.; + if(dat0.x == emptyDat && dat1.x == emptyDat && dat2.x == emptyDat && dat3.x == emptyDat && dat4.x == emptyDat && dat5.x == emptyDat && dat6.x == emptyDat) { + discard; + } + + // If the next channel color and the currently stored color (gl_FragColor) are identical, + // or the next channel color is transparent black, + // just use the currently stored color. Repeat this for all channels. + + // Mix colors where necessary, using the alpha value of the next channel as the weight. + // Use the maximum alpha value as the resulting alpha value. + gl_FragColor = val0; + gl_FragColor = (val1 == gl_FragColor || val1 == vec4(0.)) ? gl_FragColor : vec4(mix(gl_FragColor, val1, val1.a).rgb, max(gl_FragColor.a, val1.a)); + gl_FragColor = (val2 == gl_FragColor || val2 == vec4(0.)) ? gl_FragColor : vec4(mix(gl_FragColor, val2, val2.a).rgb, max(gl_FragColor.a, val2.a)); + gl_FragColor = (val3 == gl_FragColor || val3 == vec4(0.)) ? gl_FragColor : vec4(mix(gl_FragColor, val3, val3.a).rgb, max(gl_FragColor.a, val3.a)); + gl_FragColor = (val4 == gl_FragColor || val4 == vec4(0.)) ? gl_FragColor : vec4(mix(gl_FragColor, val4, val4.a).rgb, max(gl_FragColor.a, val4.a)); + gl_FragColor = (val5 == gl_FragColor || val5 == vec4(0.)) ? gl_FragColor : vec4(mix(gl_FragColor, val5, val5.a).rgb, max(gl_FragColor.a, val5.a)); + gl_FragColor = (val6 == gl_FragColor || val6 == vec4(0.)) ? gl_FragColor : vec4(mix(gl_FragColor, val6, val6.a).rgb, max(gl_FragColor.a, val6.a)); + + + + // TODO: multiply the resulting channel-level opacity value by the layer-level opacity value. + + geometry.uv = vTexCoord; + DECKGL_FILTER_COLOR(gl_FragColor, geometry); +} +`;function extent(j,$){let _e,et;if($===void 0)for(const tt of j)tt!=null&&(_e===void 0?tt>=tt&&(_e=et=tt):(_e>tt&&(_e=tt),et=rt&&(_e=et=rt):(_e>rt&&(_e=rt),etMath.floor((rt-$)*et)))}function multiSetsToTextureData(j,$,_e,et){let tt=0,rt=0;_e.forEach((Bt,St)=>{var Dt,$t,Rt,wt,xt;Bt?(tt+=(($t=(Dt=$[St])==null?void 0:Dt.obsIndex)==null?void 0:$t.length)||0,rt+=(((wt=(Rt=$[St])==null?void 0:Rt.setColors)==null?void 0:wt.length)||0)*3):tt+=((xt=j[St])==null?void 0:xt.length)||0});const nt=Math.max(2,Math.ceil(tt/et)),it=Math.max(2,Math.ceil(rt/et));nt>et&&console.error("Error: length of concatenated quantitative feature values larger than maximum texture size"),it>et&&console.error("Error: length of concatenated quantitative feature values larger than maximum texture size");const ot=new Uint8Array(et*nt),At=new Uint8Array(et*it),ut=[],ft=[];let dt=0,Et=0;return _e.forEach((Bt,St)=>{if(Bt){const{setColorIndices:Dt,setColors:$t,obsIndex:Rt}=$[St]||{};if(Dt&&$t&&Rt){for(let wt=0;wt$/255):[0,0,0]}const defaultProps$N={channelStrokeWidths:{type:"array",value:null,compare:!0},channelsFilled:{type:"array",value:null,compare:!0},channelOpacities:{type:"array",value:null,compare:!0},channelColors:{type:"array",value:null,compare:!0},hoveredCell:{type:"number",value:null,compare:!0},colormap:{type:"string",value:GLSL_COLORMAP_DEFAULT,compare:!0},expressionData:{type:"object",value:null,compare:!0},multiFeatureValues:{type:"array",value:null,compare:!0},setColorValues:{type:"array",value:null,compare:!0},channelFeatureValueColormaps:{type:"array",value:null,compare:!0},channelFeatureValueColormapRanges:{type:"array",value:null,compare:!0},channelIsStaticColorMode:{type:"array",value:null,compare:!0},channelIsSetColorMode:{type:"array",value:null,compare:!0}};class BitmaskLayer2 extends XRLayer{getShaders(){const{colormap:$}=this.props;return{fs,vs,modules:[project32,picking],defines:{[COLORMAP_SHADER_PLACEHOLDER]:GLSL_COLORMAPS.includes($)?$:GLSL_COLORMAP_DEFAULT}}}loadChannelTextures($){const _e={channel0:null,channel1:null,channel2:null,channel3:null,channel4:null,channel5:null,channel6:null};this.state.textures&&Object.values(this.state.textures).forEach(et=>et&&et.delete()),$&&Object.keys($).length>0&&$.data&&($.data.forEach((et,tt)=>{_e[`channel${tt}`]=this.dataToTexture(et,$.width,$.height)},this),this.setState({textures:_e}))}updateState({props:$,oldProps:_e,changeFlags:et}){if(super.updateState({props:$,oldProps:_e,changeFlags:et}),$.multiFeatureValues!==_e.multiFeatureValues||$.setColorValues!==_e.setColorValues||$.channelIsSetColorMode!==_e.channelIsSetColorMode){const{multiFeatureValues:tt,setColorValues:rt,channelIsSetColorMode:nt}=this.props,[it,ot,At,ut,ft,dt]=this.multiSetsToTexture(tt,rt,nt);this.setState({valueTex:it,colorTex:ot,valueTexOffsets:At,colorTexOffsets:ut,valueTexHeight:ft,colorTexHeight:dt})}if($.colormap!==_e.colormap){const{gl:tt}=this.context;this.state.model&&this.state.model.delete(),this.setState({model:this._getModel(tt)}),this.getAttributeManager().invalidateAll()}}draw($){const{uniforms:_e}=$,{channelStrokeWidths:et,channelsFilled:tt,channelOpacities:rt,channelColors:nt,channelsVisible:it,channelFeatureValueColormaps:ot,channelFeatureValueColormapRanges:At,channelIsStaticColorMode:ut,channelIsSetColorMode:ft,hoveredCell:dt,colorScaleLo:Et,colorScaleHi:Bt,isExpressionMode:St,zoom:Dt,minZoom:$t,maxZoom:Rt,zoomOffset:wt}=this.props,{textures:xt,model:Nt,valueTex:Ot,colorTex:kt,valueTexOffsets:Jt,colorTexOffsets:jt,valueTexHeight:Ht,colorTexHeight:Gt}=this.state;if(xt&&Nt){const Kt=1/2**(Rt-Dt),Wt=fromEntries(range$5(MAX_CHANNELS).map(Vt=>[`color${Vt}`,getColor(nt[Vt])]));Nt.setUniforms(Object.assign({},_e,{...Wt,...xt,multiFeatureTexSize:MULTI_FEATURE_TEX_SIZE,valueTex:Ot,valueTexOffsets:padWithDefault(Jt,0,MAX_CHANNELS-Jt.length),valueTexHeight:Ht,colorTex:kt,colorTexOffsets:padWithDefault(jt,0,MAX_CHANNELS-jt.length),colorTexHeight:Gt,channelsFilled:padWithDefault(tt,!0,MAX_CHANNELS-tt.length),channelOpacities:padWithDefault(rt,0,MAX_CHANNELS-rt.length),channelStrokeWidths:padWithDefault(et,1,MAX_CHANNELS-et.length),channelColormapRangeStarts:padWithDefault(At.map(Vt=>(Vt==null?void 0:Vt[0])||0),0,MAX_CHANNELS-At.length),channelColormapRangeEnds:padWithDefault(At.map(Vt=>(Vt==null?void 0:Vt[1])||1),1,MAX_CHANNELS-At.length),channelIsStaticColorMode:padWithDefault(ut,!0,MAX_CHANNELS-ut.length),channelIsSetColorMode:padWithDefault(ft,!1,MAX_CHANNELS-ft.length),hovered:dt||0,channelsVisible:padWithDefault(it,!1,MAX_CHANNELS-it.length),scaleFactor:Kt})).draw()}}dataToTexture($,_e,et){const tt=isWebGL2$1(this.context.gl);return new Texture2D(this.context.gl,{width:_e,height:et,data:new Float32Array($),mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_MAG_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},format:tt?GL$1.R32F:GL$1.LUMINANCE,dataFormat:tt?GL$1.RED:GL$1.LUMINANCE,type:GL$1.FLOAT})}multiSetsToTexture($,_e,et){const tt=isWebGL2$1(this.context.gl),[rt,nt,it,ot,At,ut]=multiSetsToTextureData($,_e,et,MULTI_FEATURE_TEX_SIZE);return[new Texture2D(this.context.gl,{width:MULTI_FEATURE_TEX_SIZE,height:nt,data:new Float32Array(rt),mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_MAG_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},format:tt?GL$1.R32F:GL$1.LUMINANCE,dataFormat:tt?GL$1.RED:GL$1.LUMINANCE,type:GL$1.FLOAT}),new Texture2D(this.context.gl,{width:MULTI_FEATURE_TEX_SIZE,height:At,data:new Float32Array(ot),mipmaps:!1,parameters:{[GL$1.TEXTURE_MIN_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_MAG_FILTER]:GL$1.NEAREST,[GL$1.TEXTURE_WRAP_S]:GL$1.CLAMP_TO_EDGE,[GL$1.TEXTURE_WRAP_T]:GL$1.CLAMP_TO_EDGE},format:tt?GL$1.R32F:GL$1.LUMINANCE,dataFormat:tt?GL$1.RED:GL$1.LUMINANCE,type:GL$1.FLOAT}),it,ut,nt,At]}}BitmaskLayer2.layerName="BitmaskLayer";BitmaskLayer2.defaultProps=defaultProps$N;const DEFAULT_RASTER_DOMAIN_TYPE="Min/Max";RENDERING_MODES.ADDITIVE;function getDomains(){const j={},$=["Int8","Int16","Int32"];return Object.keys(DTYPE_VALUES).forEach(_e=>{const{max:et}=DTYPE_VALUES[_e],tt=$.includes(_e)?-(et+1):0;j[_e]=[tt,et]}),j}getDomains();class ObsSetsAnndataLoader extends AbstractTwoStepLoader{loadObsIndices(){const{options:$}=this,_e=$.map(({path:et})=>et).map(et=>Array.isArray(et)?et.length>0?this.dataSource.loadObsIndex(et[0]):this.dataSource.loadObsIndex():this.dataSource.loadObsIndex(et));return Promise.all(_e)}loadCellSetIds(){const{options:$}=this,_e=$.map(({path:et})=>et);return this.dataSource.loadObsColumns(_e)}loadCellSetScores(){const{options:$}=this,_e=$.map(et=>et.scorePath||void 0);return this.dataSource.loadObsColumns(_e)}async load(){const $=await super.load().catch(ut=>Promise.resolve(ut));if($ instanceof AbstractLoaderError)return Promise.reject($);if(!this.cachedResult){const{options:ut}=this;this.cachedResult=Promise.all([this.dataSource.loadObsIndex(),this.loadObsIndices(),this.loadCellSetIds(),this.loadCellSetScores()]).then(ft=>[ft[0],dataToCellSetsTree([ft[1],ft[2],ft[3]],ut)])}const[_e,et]=await this.cachedResult,tt=treeToMembershipMap(et),rt={},{tree:nt}=et,it=nt[0].name,ot=nt[0].children.map(ut=>[it,ut.name]),At=initializeCellSetColor(et,[]);return rt.obsSetSelection=ot,rt.obsSetColor=At,Promise.resolve(new LoaderResult({obsIndex:_e,obsSets:et,obsSetsMembership:tt},null,rt))}}function getCountsFromObsSetsList(j,$){const _e=new Object;for(let et=0;et<$.length;et++)_e[$[et]]=getCountsPerType(j[et].tree[0].children);return _e}function getCountsPerType(j){let $=new Object;for(const _e of j)$[_e.name]=_e.set.length;return $}function loadDataWithCounts(j,$={},_e={}){let tt={countsMatrix:getCountsMatrixFromCounts(j)};return loadDataWrapper(tt,_e),tt.metadata=$,tt}function getCountsMatrixFromCounts(j){const $=[];for(const _e of Object.keys(j))for(const[et,tt]of Object.entries(j[_e]))$.push({row:_e,col:et,value:tt});return $}function loadDataWrapper(j,$={}){return getRowNames(j),getColNames(j),extendCountsMatrix(j),$.rowNamesOrder&&sortRowNames(j,$.rowNamesOrder),$.colNamesOrder&&sortColNames(j,$.colNamesOrder),wrapRowNames(j),wrapColNames(j),calculateFractions(j),j}function getRowNames(j){j.rowNames=[...new Set(j.countsMatrix.map($=>$.row))]}function getColNames(j){j.colNames=[...new Set(j.countsMatrix.map($=>$.col))]}function extendCountsMatrix(j){const $=j.rowNames.length*j.colNames.length;if(j.countsMatrix.length!==$)for(const _e of j.rowNames){const et=j.countsMatrix.filter(tt=>tt.row===_e);for(const tt of j.colNames)et.filter(nt=>nt.col===tt).length===0&&j.countsMatrix.push({row:_e,col:tt,value:0})}}function sortNames(j,$){return j.sort(function(_e,et){return $.indexOf(_e)===-1?1:$.indexOf(et)===-1?-1:$.indexOf(_e)-$.indexOf(et)}),j}function sortRowNames(j,$){j.rowNames=sortNames(j.rowNames,$)}function sortColNames(j,$){j.colNames=sortNames(j.colNames,$)}function wrapRowNames(j){j.rowNamesWrapped=j.rowNames.map($=>({row:$}))}function wrapColNames(j){j.colNamesWrapped=j.colNames.map($=>({col:$}))}function calculateFractions(data){const countsMatrixRowFractions=[],countsMatrixColFractions=[];for(const row of data.rowNames){const countsMatrixRow=data.countsMatrix.filter(j=>j.row===row),countsMatrixRowValues=countsMatrixRow.map(j=>j.value),countsMatrixRowValuesSum=countsMatrixRowValues.reduce((j,$)=>j+$,0),countsMatrixRowFraction=countsMatrixRow.map(r=>({row:r.row,col:r.col,value:eval(r.value/countsMatrixRowValuesSum)}));countsMatrixRowFractions.push(...countsMatrixRowFraction)}for(const col of data.colNames){const countsMatrixCol=data.countsMatrix.filter(j=>j.col===col),countsMatrixColValues=countsMatrixCol.map(j=>j.value),countsMatrixColValuesSum=countsMatrixColValues.reduce((j,$)=>j+$,0),countsMatrixColFraction=countsMatrixCol.map(r=>({row:r.row,col:r.col,value:eval(r.value/countsMatrixColValuesSum)}));countsMatrixColFractions.push(...countsMatrixColFraction)}data.countsMatrixFractions={row:countsMatrixRowFractions,col:countsMatrixColFractions}}function loadHuBMAPData(j,$,_e){const et=j.map(getHuBMAPURL),tt=getPromiseData(et);let rt=Promise.all(tt).then(it=>it.map(At=>At.data.obsSets)).catch(it=>{console.error(it)});return Promise.all([rt,getPromiseMetadata(j)]).then(it=>{const ot=it[0],At=it[1][0],ut=it[1][1],ft=getCountsFromObsSetsList(ot,At);let dt=loadDataWithCounts(ft,$=$);return dt.metadata={rows:ut},dt}).catch(it=>{console.error(it)})}function getHuBMAPURL(j){return`https://assets.hubmapconsortium.org/${j}/hubmap_ui/anndata-zarr/secondary_analysis.zarr`}function getPromiseData(j){const $=[];for(let _e=0;_e{if(!rt.ok)throw new Error("Network response was not ok");return rt.json()}).then(rt=>{let nt=rt.hits.hits,it=nt.map(At=>{let ut=At._source,ft=At._source.donor.mapped_metadata;return{row:ut.hubmap_id,metadata:{title:ut.title,dataset_type:ut.dataset_type,anatomy_2:ut.anatomy_2[0],sex:ft.sex[0],age:ft.age_value[0]}}});return[nt.map(At=>At._source.hubmap_id),it]}).catch(rt=>{console.error("Error:",rt)})}function _objectWithoutPropertiesLoose(j,$){if(j==null)return{};var _e={},et=Object.keys(j),tt,rt;for(rt=0;rt=0)&&(_e[tt]=j[tt]);return _e}function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(j){for(var $=1;${if(et.toString().match(/^(components|slots)$/))_e[et]=_extends$1({},j[et],_e[et]);else if(et.toString().match(/^(componentsProps|slotProps)$/)){const tt=j[et]||{},rt=$[et];_e[et]={},!rt||!Object.keys(rt)?_e[et]=tt:!tt||!Object.keys(tt)?_e[et]=rt:(_e[et]=_extends$1({},rt),Object.keys(tt).forEach(nt=>{_e[et][nt]=resolveProps(tt[nt],rt[nt])}))}else _e[et]===void 0&&(_e[et]=j[et])}),_e}function composeClasses(j,$,_e=void 0){const et={};return Object.keys(j).forEach(tt=>{et[tt]=j[tt].reduce((rt,nt)=>{if(nt){const it=$(nt);it!==""&&rt.push(it),_e&&_e[nt]&&rt.push(_e[nt])}return rt},[]).join(" ")}),et}function formatMuiErrorMessage$1(j){let $="https://mui.com/production-error/?code="+j;for(let _e=1;_e0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token(character)>3?"":" "}function escaping(j,$){for(;--$&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice$1(j,caret()+($<6&&peek()==32&&next()==32))}function delimiter(j){for(;next();)switch(character){case j:return position;case 34:case 39:j!==34&&j!==39&&delimiter(character);break;case 40:j===41&&delimiter(j);break;case 92:next();break}return position}function commenter(j,$){for(;next()&&j+character!==57;)if(j+character===84&&peek()===47)break;return"/*"+slice$1($,position-1)+"*"+from(j===47?j:next())}function identifier(j){for(;!token(peek());)next();return slice$1(j,position)}function compile(j){return dealloc(parse("",null,null,null,[""],j=alloc(j),0,[0],j))}function parse(j,$,_e,et,tt,rt,nt,it,ot){for(var At=0,ut=0,ft=nt,dt=0,Et=0,Bt=0,St=1,Dt=1,$t=1,Rt=0,wt="",xt=tt,Nt=rt,Ot=et,kt=wt;Dt;)switch(Bt=Rt,Rt=next()){case 40:if(Bt!=108&&charat(kt,ft-1)==58){indexof(kt+=replace(delimit(Rt),"&","&\f"),"&\f")!=-1&&($t=-1);break}case 34:case 39:case 91:kt+=delimit(Rt);break;case 9:case 10:case 13:case 32:kt+=whitespace(Bt);break;case 92:kt+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append(comment(commenter(next(),caret()),$,_e),ot);break;default:kt+="/"}break;case 123*St:it[At++]=strlen(kt)*$t;case 125*St:case 59:case 0:switch(Rt){case 0:case 125:Dt=0;case 59+ut:$t==-1&&(kt=replace(kt,/\f/g,"")),Et>0&&strlen(kt)-ft&&append(Et>32?declaration(kt+";",et,_e,ft-1):declaration(replace(kt," ","")+";",et,_e,ft-2),ot);break;case 59:kt+=";";default:if(append(Ot=ruleset(kt,$,_e,At,ut,tt,it,wt,xt=[],Nt=[],ft),rt),Rt===123)if(ut===0)parse(kt,$,Ot,Ot,xt,rt,ft,it,Nt);else switch(dt===99&&charat(kt,3)===110?100:dt){case 100:case 108:case 109:case 115:parse(j,Ot,Ot,et&&append(ruleset(j,Ot,Ot,0,0,tt,it,wt,tt,xt=[],ft),Nt),tt,Nt,ft,it,et?xt:Nt);break;default:parse(kt,Ot,Ot,Ot,[""],Nt,0,it,Nt)}}At=ut=Et=0,St=$t=1,wt=kt="",ft=nt;break;case 58:ft=1+strlen(kt),Et=Bt;default:if(St<1){if(Rt==123)--St;else if(Rt==125&&St++==0&&prev()==125)continue}switch(kt+=from(Rt),Rt*St){case 38:$t=ut>0?1:(kt+="\f",-1);break;case 44:it[At++]=(strlen(kt)-1)*$t,$t=1;break;case 64:peek()===45&&(kt+=delimit(next())),dt=peek(),ut=ft=strlen(wt=kt+=identifier(caret())),Rt++;break;case 45:Bt===45&&strlen(kt)==2&&(St=0)}}return rt}function ruleset(j,$,_e,et,tt,rt,nt,it,ot,At,ut){for(var ft=tt-1,dt=tt===0?rt:[""],Et=sizeof(dt),Bt=0,St=0,Dt=0;Bt0?dt[$t]+" "+Rt:replace(Rt,/&\f/g,dt[$t])))&&(ot[Dt++]=wt);return node(j,$,_e,tt===0?RULESET:it,ot,At,ut)}function comment(j,$,_e){return node(j,$,_e,COMMENT,from(char()),substr(j,2,-2),0)}function declaration(j,$,_e,et){return node(j,$,_e,DECLARATION,substr(j,0,et),substr(j,et+1,-1),et)}function serialize(j,$){for(var _e="",et=sizeof(j),tt=0;tt6)switch(charat(j,$+1)){case 109:if(charat(j,$+4)!==45)break;case 102:return replace(j,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(j,$+3)==108?"$3":"$2-$3"))+j;case 115:return~indexof(j,"stretch")?prefix(replace(j,"stretch","fill-available"),$)+j:j}break;case 4949:if(charat(j,$+1)!==115)break;case 6444:switch(charat(j,strlen(j)-3-(~indexof(j,"!important")&&10))){case 107:return replace(j,":",":"+WEBKIT)+j;case 101:return replace(j,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(j,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+j}break;case 5936:switch(charat(j,$+11)){case 114:return WEBKIT+j+MS+replace(j,/[svh]\w+-[tblr]{2}/,"tb")+j;case 108:return WEBKIT+j+MS+replace(j,/[svh]\w+-[tblr]{2}/,"tb-rl")+j;case 45:return WEBKIT+j+MS+replace(j,/[svh]\w+-[tblr]{2}/,"lr")+j}return WEBKIT+j+MS+j+j}return j}var prefixer=function j($,_e,et,tt){if($.length>-1&&!$.return)switch($.type){case DECLARATION:$.return=prefix($.value,$.length);break;case KEYFRAMES:return serialize([copy$1($,{value:replace($.value,"@","@"+WEBKIT)})],tt);case RULESET:if($.length)return combine$1($.props,function(rt){switch(match(rt,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$1($,{props:[replace(rt,/:(read-\w+)/,":"+MOZ+"$1")]})],tt);case"::placeholder":return serialize([copy$1($,{props:[replace(rt,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$1($,{props:[replace(rt,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$1($,{props:[replace(rt,/:(plac\w+)/,MS+"input-$1")]})],tt)}return""})}},defaultStylisPlugins=[prefixer],createCache=function j($){var _e=$.key;if(_e==="css"){var et=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(et,function(St){var Dt=St.getAttribute("data-emotion");Dt.indexOf(" ")!==-1&&(document.head.appendChild(St),St.setAttribute("data-s",""))})}var tt=$.stylisPlugins||defaultStylisPlugins,rt={},nt,it=[];nt=$.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+_e+' "]'),function(St){for(var Dt=St.getAttribute("data-emotion").split(" "),$t=1;$t=4;++et,tt-=4)_e=j.charCodeAt(et)&255|(j.charCodeAt(++et)&255)<<8|(j.charCodeAt(++et)&255)<<16|(j.charCodeAt(++et)&255)<<24,_e=(_e&65535)*1540483477+((_e>>>16)*59797<<16),_e^=_e>>>24,$=(_e&65535)*1540483477+((_e>>>16)*59797<<16)^($&65535)*1540483477+(($>>>16)*59797<<16);switch(tt){case 3:$^=(j.charCodeAt(et+2)&255)<<16;case 2:$^=(j.charCodeAt(et+1)&255)<<8;case 1:$^=j.charCodeAt(et)&255,$=($&65535)*1540483477+(($>>>16)*59797<<16)}return $^=$>>>13,$=($&65535)*1540483477+(($>>>16)*59797<<16),(($^$>>>15)>>>0).toString(36)}var unitlessKeys={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},hyphenateRegex=/[A-Z]|^ms/g,animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g,isCustomProperty=function j($){return $.charCodeAt(1)===45},isProcessableValue=function j($){return $!=null&&typeof $!="boolean"},processStyleName=memoize$1(function(j){return isCustomProperty(j)?j:j.replace(hyphenateRegex,"-$&").toLowerCase()}),processStyleValue=function j($,_e){switch($){case"animation":case"animationName":if(typeof _e=="string")return _e.replace(animationRegex,function(et,tt,rt){return cursor={name:tt,styles:rt,next:cursor},tt})}return unitlessKeys[$]!==1&&!isCustomProperty($)&&typeof _e=="number"&&_e!==0?_e+"px":_e},noComponentSelectorMessage="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function handleInterpolation(j,$,_e){if(_e==null)return"";if(_e.__emotion_styles!==void 0)return _e;switch(typeof _e){case"boolean":return"";case"object":{if(_e.anim===1)return cursor={name:_e.name,styles:_e.styles,next:cursor},_e.name;if(_e.styles!==void 0){var et=_e.next;if(et!==void 0)for(;et!==void 0;)cursor={name:et.name,styles:et.styles,next:cursor},et=et.next;var tt=_e.styles+";";return tt}return createStringFromObject(j,$,_e)}case"function":{if(j!==void 0){var rt=cursor,nt=_e(j);return cursor=rt,handleInterpolation(j,$,nt)}break}}if($==null)return _e;var it=$[_e];return it!==void 0?it:_e}function createStringFromObject(j,$,_e){var et="";if(Array.isArray(_e))for(var tt=0;tt<_e.length;tt++)et+=handleInterpolation(j,$,_e[tt])+";";else for(var rt in _e){var nt=_e[rt];if(typeof nt!="object")$!=null&&$[nt]!==void 0?et+=rt+"{"+$[nt]+"}":isProcessableValue(nt)&&(et+=processStyleName(rt)+":"+processStyleValue(rt,nt)+";");else if(Array.isArray(nt)&&typeof nt[0]=="string"&&($==null||$[nt[0]]===void 0))for(var it=0;it96?testOmitPropsOnStringTag:testOmitPropsOnComponent},composeShouldForwardProps=function j($,_e,et){var tt;if(_e){var rt=_e.shouldForwardProp;tt=$.__emotion_forwardProp&&rt?function(nt){return $.__emotion_forwardProp(nt)&&rt(nt)}:rt}return typeof tt!="function"&&et&&(tt=$.__emotion_forwardProp),tt},Insertion=function j($){var _e=$.cache,et=$.serialized,tt=$.isStringTag;return registerStyles(_e,et,tt),useInsertionEffectAlwaysWithSyncFallback(function(){return insertStyles(_e,et,tt)}),null},createStyled$3=function j($,_e){var et=$.__emotion_real===$,tt=et&&$.__emotion_base||$,rt,nt;_e!==void 0&&(rt=_e.label,nt=_e.target);var it=composeShouldForwardProps($,_e,et),ot=it||getDefaultShouldForwardProp(tt),At=!ot("as");return function(){var ut=arguments,ft=et&&$.__emotion_styles!==void 0?$.__emotion_styles.slice(0):[];if(rt!==void 0&&ft.push("label:"+rt+";"),ut[0]==null||ut[0].raw===void 0)ft.push.apply(ft,ut);else{ft.push(ut[0][0]);for(var dt=ut.length,Et=1;Et$(isEmpty$4(tt)?_e:tt):$;return jsxRuntimeExports.jsx(Global,{styles:et})}function styled$2(j,$){return newStyled(j,$)}const internal_processStyles=(j,$)=>{Array.isArray(j.__emotion_styles)&&(j.__emotion_styles=$(j.__emotion_styles))},styledEngine=Object.freeze(Object.defineProperty({__proto__:null,GlobalStyles:GlobalStyles$2,StyledEngineProvider,ThemeContext,css,default:styled$2,internal_processStyles,keyframes},Symbol.toStringTag,{value:"Module"}));function isPlainObject(j){if(typeof j!="object"||j===null)return!1;const $=Object.getPrototypeOf(j);return($===null||$===Object.prototype||Object.getPrototypeOf($)===null)&&!(Symbol.toStringTag in j)&&!(Symbol.iterator in j)}function deepClone(j){if(!isPlainObject(j))return j;const $={};return Object.keys(j).forEach(_e=>{$[_e]=deepClone(j[_e])}),$}function deepmerge$1(j,$,_e={clone:!0}){const et=_e.clone?_extends$1({},j):j;return isPlainObject(j)&&isPlainObject($)&&Object.keys($).forEach(tt=>{tt!=="__proto__"&&(isPlainObject($[tt])&&tt in j&&isPlainObject(j[tt])?et[tt]=deepmerge$1(j[tt],$[tt],_e):_e.clone?et[tt]=isPlainObject($[tt])?deepClone($[tt]):$[tt]:et[tt]=$[tt])}),et}const deepmerge=Object.freeze(Object.defineProperty({__proto__:null,default:deepmerge$1,isPlainObject},Symbol.toStringTag,{value:"Module"})),_excluded$C=["values","unit","step"],sortBreakpointsValues=j=>{const $=Object.keys(j).map(_e=>({key:_e,val:j[_e]}))||[];return $.sort((_e,et)=>_e.val-et.val),$.reduce((_e,et)=>_extends$1({},_e,{[et.key]:et.val}),{})};function createBreakpoints(j){const{values:$={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:_e="px",step:et=5}=j,tt=_objectWithoutPropertiesLoose(j,_excluded$C),rt=sortBreakpointsValues($),nt=Object.keys(rt);function it(dt){return`@media (min-width:${typeof $[dt]=="number"?$[dt]:dt}${_e})`}function ot(dt){return`@media (max-width:${(typeof $[dt]=="number"?$[dt]:dt)-et/100}${_e})`}function At(dt,Et){const Bt=nt.indexOf(Et);return`@media (min-width:${typeof $[dt]=="number"?$[dt]:dt}${_e}) and (max-width:${(Bt!==-1&&typeof $[nt[Bt]]=="number"?$[nt[Bt]]:Et)-et/100}${_e})`}function ut(dt){return nt.indexOf(dt)+1`@media (min-width:${values$1[j]}px)`};function handleBreakpoints(j,$,_e){const et=j.theme||{};if(Array.isArray($)){const rt=et.breakpoints||defaultBreakpoints;return $.reduce((nt,it,ot)=>(nt[rt.up(rt.keys[ot])]=_e($[ot]),nt),{})}if(typeof $=="object"){const rt=et.breakpoints||defaultBreakpoints;return Object.keys($).reduce((nt,it)=>{if(Object.keys(rt.values||values$1).indexOf(it)!==-1){const ot=rt.up(it);nt[ot]=_e($[it],it)}else{const ot=it;nt[ot]=$[ot]}return nt},{})}return _e($)}function createEmptyBreakpointObject(j={}){var $;return(($=j.keys)==null?void 0:$.reduce((et,tt)=>{const rt=j.up(tt);return et[rt]={},et},{}))||{}}function removeUnusedBreakpoints(j,$){return j.reduce((_e,et)=>{const tt=_e[et];return(!tt||Object.keys(tt).length===0)&&delete _e[et],_e},$)}function mergeBreakpointsInOrder(j,...$){const _e=createEmptyBreakpointObject(j),et=[_e,...$].reduce((tt,rt)=>deepmerge$1(tt,rt),{});return removeUnusedBreakpoints(Object.keys(_e),et)}function computeBreakpointsBase(j,$){if(typeof j!="object")return{};const _e={},et=Object.keys($);return Array.isArray(j)?et.forEach((tt,rt)=>{rt{j[tt]!=null&&(_e[tt]=!0)}),_e}function resolveBreakpointValues({values:j,breakpoints:$,base:_e}){const et=_e||computeBreakpointsBase(j,$),tt=Object.keys(et);if(tt.length===0)return j;let rt;return tt.reduce((nt,it,ot)=>(Array.isArray(j)?(nt[it]=j[ot]!=null?j[ot]:j[rt],rt=ot):typeof j=="object"?(nt[it]=j[it]!=null?j[it]:j[rt],rt=it):nt[it]=j,nt),{})}function capitalize$1(j){if(typeof j!="string")throw new Error(formatMuiErrorMessage$1(7));return j.charAt(0).toUpperCase()+j.slice(1)}const capitalize=Object.freeze(Object.defineProperty({__proto__:null,default:capitalize$1},Symbol.toStringTag,{value:"Module"}));function getPath(j,$,_e=!0){if(!$||typeof $!="string")return null;if(j&&j.vars&&_e){const et=`vars.${$}`.split(".").reduce((tt,rt)=>tt&&tt[rt]?tt[rt]:null,j);if(et!=null)return et}return $.split(".").reduce((et,tt)=>et&&et[tt]!=null?et[tt]:null,j)}function getStyleValue$1(j,$,_e,et=_e){let tt;return typeof j=="function"?tt=j(_e):Array.isArray(j)?tt=j[_e]||et:tt=getPath(j,_e)||et,$&&(tt=$(tt,et,j)),tt}function style$2(j){const{prop:$,cssProperty:_e=j.prop,themeKey:et,transform:tt}=j,rt=nt=>{if(nt[$]==null)return null;const it=nt[$],ot=nt.theme,At=getPath(ot,et)||{};return handleBreakpoints(nt,it,ft=>{let dt=getStyleValue$1(At,tt,ft);return ft===dt&&typeof ft=="string"&&(dt=getStyleValue$1(At,tt,`${$}${ft==="default"?"":capitalize$1(ft)}`,ft)),_e===!1?dt:{[_e]:dt}})};return rt.propTypes={},rt.filterProps=[$],rt}function memoize(j){const $={};return _e=>($[_e]===void 0&&($[_e]=j(_e)),$[_e])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize(j=>{if(j.length>2)if(aliases[j])j=aliases[j];else return[j];const[$,_e]=j.split(""),et=properties[$],tt=directions[_e]||"";return Array.isArray(tt)?tt.map(rt=>et+rt):[et+tt]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...marginKeys,...paddingKeys];function createUnaryUnit(j,$,_e,et){var tt;const rt=(tt=getPath(j,$,!1))!=null?tt:_e;return typeof rt=="number"?nt=>typeof nt=="string"?nt:rt*nt:Array.isArray(rt)?nt=>typeof nt=="string"?nt:rt[nt]:typeof rt=="function"?rt:()=>{}}function createUnarySpacing(j){return createUnaryUnit(j,"spacing",8)}function getValue(j,$){if(typeof $=="string"||$==null)return $;const _e=Math.abs($),et=j(_e);return $>=0?et:typeof et=="number"?-et:`-${et}`}function getStyleFromPropValue(j,$){return _e=>j.reduce((et,tt)=>(et[tt]=getValue($,_e),et),{})}function resolveCssProperty(j,$,_e,et){if($.indexOf(_e)===-1)return null;const tt=getCssProperties(_e),rt=getStyleFromPropValue(tt,et),nt=j[_e];return handleBreakpoints(j,nt,rt)}function style$1(j,$){const _e=createUnarySpacing(j.theme);return Object.keys(j).map(et=>resolveCssProperty(j,$,et,_e)).reduce(merge,{})}function margin(j){return style$1(j,marginKeys)}margin.propTypes={};margin.filterProps=marginKeys;function padding(j){return style$1(j,paddingKeys)}padding.propTypes={};padding.filterProps=paddingKeys;function createSpacing(j=8){if(j.mui)return j;const $=createUnarySpacing({spacing:j}),_e=(...et)=>(et.length===0?[1]:et).map(rt=>{const nt=$(rt);return typeof nt=="number"?`${nt}px`:nt}).join(" ");return _e.mui=!0,_e}function compose(...j){const $=j.reduce((et,tt)=>(tt.filterProps.forEach(rt=>{et[rt]=tt}),et),{}),_e=et=>Object.keys(et).reduce((tt,rt)=>$[rt]?merge(tt,$[rt](et)):tt,{});return _e.propTypes={},_e.filterProps=j.reduce((et,tt)=>et.concat(tt.filterProps),[]),_e}function borderTransform(j){return typeof j!="number"?j:`${j}px solid`}function createBorderStyle(j,$){return style$2({prop:j,themeKey:"borders",transform:$})}const border=createBorderStyle("border",borderTransform),borderTop=createBorderStyle("borderTop",borderTransform),borderRight=createBorderStyle("borderRight",borderTransform),borderBottom=createBorderStyle("borderBottom",borderTransform),borderLeft=createBorderStyle("borderLeft",borderTransform),borderColor=createBorderStyle("borderColor"),borderTopColor=createBorderStyle("borderTopColor"),borderRightColor=createBorderStyle("borderRightColor"),borderBottomColor=createBorderStyle("borderBottomColor"),borderLeftColor=createBorderStyle("borderLeftColor"),outline=createBorderStyle("outline",borderTransform),outlineColor=createBorderStyle("outlineColor"),borderRadius=j=>{if(j.borderRadius!==void 0&&j.borderRadius!==null){const $=createUnaryUnit(j.theme,"shape.borderRadius",4),_e=et=>({borderRadius:getValue($,et)});return handleBreakpoints(j,j.borderRadius,_e)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];compose(border,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius,outline,outlineColor);const gap=j=>{if(j.gap!==void 0&&j.gap!==null){const $=createUnaryUnit(j.theme,"spacing",8),_e=et=>({gap:getValue($,et)});return handleBreakpoints(j,j.gap,_e)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=j=>{if(j.columnGap!==void 0&&j.columnGap!==null){const $=createUnaryUnit(j.theme,"spacing",8),_e=et=>({columnGap:getValue($,et)});return handleBreakpoints(j,j.columnGap,_e)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=j=>{if(j.rowGap!==void 0&&j.rowGap!==null){const $=createUnaryUnit(j.theme,"spacing",8),_e=et=>({rowGap:getValue($,et)});return handleBreakpoints(j,j.rowGap,_e)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$2({prop:"gridColumn"}),gridRow=style$2({prop:"gridRow"}),gridAutoFlow=style$2({prop:"gridAutoFlow"}),gridAutoColumns=style$2({prop:"gridAutoColumns"}),gridAutoRows=style$2({prop:"gridAutoRows"}),gridTemplateColumns=style$2({prop:"gridTemplateColumns"}),gridTemplateRows=style$2({prop:"gridTemplateRows"}),gridTemplateAreas=style$2({prop:"gridTemplateAreas"}),gridArea=style$2({prop:"gridArea"});compose(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea);function paletteTransform(j,$){return $==="grey"?$:j}const color$1=style$2({prop:"color",themeKey:"palette",transform:paletteTransform}),bgcolor=style$2({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:paletteTransform}),backgroundColor=style$2({prop:"backgroundColor",themeKey:"palette",transform:paletteTransform});compose(color$1,bgcolor,backgroundColor);function sizingTransform(j){return j<=1&&j!==0?`${j*100}%`:j}const width=style$2({prop:"width",transform:sizingTransform}),maxWidth=j=>{if(j.maxWidth!==void 0&&j.maxWidth!==null){const $=_e=>{var et,tt;const rt=((et=j.theme)==null||(et=et.breakpoints)==null||(et=et.values)==null?void 0:et[_e])||values$1[_e];return rt?((tt=j.theme)==null||(tt=tt.breakpoints)==null?void 0:tt.unit)!=="px"?{maxWidth:`${rt}${j.theme.breakpoints.unit}`}:{maxWidth:rt}:{maxWidth:sizingTransform(_e)}};return handleBreakpoints(j,j.maxWidth,$)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$2({prop:"minWidth",transform:sizingTransform}),height=style$2({prop:"height",transform:sizingTransform}),maxHeight=style$2({prop:"maxHeight",transform:sizingTransform}),minHeight=style$2({prop:"minHeight",transform:sizingTransform});style$2({prop:"size",cssProperty:"width",transform:sizingTransform});style$2({prop:"size",cssProperty:"height",transform:sizingTransform});const boxSizing=style$2({prop:"boxSizing"});compose(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing);const defaultSxConfig={border:{themeKey:"borders",transform:borderTransform},borderTop:{themeKey:"borders",transform:borderTransform},borderRight:{themeKey:"borders",transform:borderTransform},borderBottom:{themeKey:"borders",transform:borderTransform},borderLeft:{themeKey:"borders",transform:borderTransform},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:borderTransform},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:borderRadius},color:{themeKey:"palette",transform:paletteTransform},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:paletteTransform},backgroundColor:{themeKey:"palette",transform:paletteTransform},p:{style:padding},pt:{style:padding},pr:{style:padding},pb:{style:padding},pl:{style:padding},px:{style:padding},py:{style:padding},padding:{style:padding},paddingTop:{style:padding},paddingRight:{style:padding},paddingBottom:{style:padding},paddingLeft:{style:padding},paddingX:{style:padding},paddingY:{style:padding},paddingInline:{style:padding},paddingInlineStart:{style:padding},paddingInlineEnd:{style:padding},paddingBlock:{style:padding},paddingBlockStart:{style:padding},paddingBlockEnd:{style:padding},m:{style:margin},mt:{style:margin},mr:{style:margin},mb:{style:margin},ml:{style:margin},mx:{style:margin},my:{style:margin},margin:{style:margin},marginTop:{style:margin},marginRight:{style:margin},marginBottom:{style:margin},marginLeft:{style:margin},marginX:{style:margin},marginY:{style:margin},marginInline:{style:margin},marginInlineStart:{style:margin},marginInlineEnd:{style:margin},marginBlock:{style:margin},marginBlockStart:{style:margin},marginBlockEnd:{style:margin},displayPrint:{cssProperty:!1,transform:j=>({"@media print":{display:j}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:gap},rowGap:{style:rowGap},columnGap:{style:columnGap},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:sizingTransform},maxWidth:{style:maxWidth},minWidth:{transform:sizingTransform},height:{transform:sizingTransform},maxHeight:{transform:sizingTransform},minHeight:{transform:sizingTransform},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}},defaultSxConfig$1=defaultSxConfig;function objectsHaveSameKeys(...j){const $=j.reduce((et,tt)=>et.concat(Object.keys(tt)),[]),_e=new Set($);return j.every(et=>_e.size===Object.keys(et).length)}function callIfFn(j,$){return typeof j=="function"?j($):j}function unstable_createStyleFunctionSx(){function j(_e,et,tt,rt){const nt={[_e]:et,theme:tt},it=rt[_e];if(!it)return{[_e]:et};const{cssProperty:ot=_e,themeKey:At,transform:ut,style:ft}=it;if(et==null)return null;if(At==="typography"&&et==="inherit")return{[_e]:et};const dt=getPath(tt,At)||{};return ft?ft(nt):handleBreakpoints(nt,et,Bt=>{let St=getStyleValue$1(dt,ut,Bt);return Bt===St&&typeof Bt=="string"&&(St=getStyleValue$1(dt,ut,`${_e}${Bt==="default"?"":capitalize$1(Bt)}`,Bt)),ot===!1?St:{[ot]:St}})}function $(_e){var et;const{sx:tt,theme:rt={}}=_e||{};if(!tt)return null;const nt=(et=rt.unstable_sxConfig)!=null?et:defaultSxConfig$1;function it(ot){let At=ot;if(typeof ot=="function")At=ot(rt);else if(typeof ot!="object")return ot;if(!At)return null;const ut=createEmptyBreakpointObject(rt.breakpoints),ft=Object.keys(ut);let dt=ut;return Object.keys(At).forEach(Et=>{const Bt=callIfFn(At[Et],rt);if(Bt!=null)if(typeof Bt=="object")if(nt[Et])dt=merge(dt,j(Et,Bt,rt,nt));else{const St=handleBreakpoints({theme:rt},Bt,Dt=>({[Et]:Dt}));objectsHaveSameKeys(St,Bt)?dt[Et]=$({sx:Bt,theme:rt}):dt=merge(dt,St)}else dt=merge(dt,j(Et,Bt,rt,nt))}),removeUnusedBreakpoints(ft,dt)}return Array.isArray(tt)?tt.map(it):it(tt)}return $}const styleFunctionSx$1=unstable_createStyleFunctionSx();styleFunctionSx$1.filterProps=["sx"];function applyStyles(j,$){const _e=this;return _e.vars&&typeof _e.getColorSchemeSelector=="function"?{[_e.getColorSchemeSelector(j).replace(/(\[[^\]]+\])/,"*:where($1)")]:$}:_e.palette.mode===j?$:{}}const _excluded$B=["breakpoints","palette","spacing","shape"];function createTheme$2(j={},...$){const{breakpoints:_e={},palette:et={},spacing:tt,shape:rt={}}=j,nt=_objectWithoutPropertiesLoose(j,_excluded$B),it=createBreakpoints(_e),ot=createSpacing(tt);let At=deepmerge$1({breakpoints:it,direction:"ltr",components:{},palette:_extends$1({mode:"light"},et),spacing:ot,shape:_extends$1({},shape$1,rt)},nt);return At.applyStyles=applyStyles,At=$.reduce((ut,ft)=>deepmerge$1(ut,ft),At),At.unstable_sxConfig=_extends$1({},defaultSxConfig$1,nt==null?void 0:nt.unstable_sxConfig),At.unstable_sx=function(ft){return styleFunctionSx$1({sx:ft,theme:this})},At}const createTheme$1=Object.freeze(Object.defineProperty({__proto__:null,default:createTheme$2,private_createBreakpoints:createBreakpoints,unstable_applyStyles:applyStyles},Symbol.toStringTag,{value:"Module"}));function isObjectEmpty(j){return Object.keys(j).length===0}function useTheme$2(j=null){const $=reactExports.useContext(ThemeContext);return!$||isObjectEmpty($)?j:$}const systemDefaultTheme$2=createTheme$2();function useTheme$1(j=systemDefaultTheme$2){return useTheme$2(j)}function GlobalStyles$1({styles:j,themeId:$,defaultTheme:_e={}}){const et=useTheme$1(_e),tt=typeof j=="function"?j($&&et[$]||et):j;return jsxRuntimeExports.jsx(GlobalStyles$2,{styles:tt})}const _excluded$A=["sx"],splitProps=j=>{var $,_e;const et={systemProps:{},otherProps:{}},tt=($=j==null||(_e=j.theme)==null?void 0:_e.unstable_sxConfig)!=null?$:defaultSxConfig$1;return Object.keys(j).forEach(rt=>{tt[rt]?et.systemProps[rt]=j[rt]:et.otherProps[rt]=j[rt]}),et};function extendSxProp(j){const{sx:$}=j,_e=_objectWithoutPropertiesLoose(j,_excluded$A),{systemProps:et,otherProps:tt}=splitProps(_e);let rt;return Array.isArray($)?rt=[et,...$]:typeof $=="function"?rt=(...nt)=>{const it=$(...nt);return isPlainObject(it)?_extends$1({},et,it):et}:rt=_extends$1({},et,$),_extends$1({},tt,{sx:rt})}const styleFunctionSx=Object.freeze(Object.defineProperty({__proto__:null,default:styleFunctionSx$1,extendSxProp,unstable_createStyleFunctionSx,unstable_defaultSxConfig:defaultSxConfig$1},Symbol.toStringTag,{value:"Module"})),defaultGenerator=j=>j,createClassNameGenerator=()=>{let j=defaultGenerator;return{configure($){j=$},generate($){return j($)},reset(){j=defaultGenerator}}},ClassNameGenerator=createClassNameGenerator(),globalStateClasses={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function generateUtilityClass(j,$,_e="Mui"){const et=globalStateClasses[$];return et?`${_e}-${et}`:`${ClassNameGenerator.generate(j)}-${$}`}function generateUtilityClasses(j,$,_e="Mui"){const et={};return $.forEach(tt=>{et[tt]=generateUtilityClass(j,tt,_e)}),et}var reactIs={exports:{}},reactIs_production_min={};/** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var b=Symbol.for("react.element"),c=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),e=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),g=Symbol.for("react.provider"),h=Symbol.for("react.context"),k=Symbol.for("react.server_context"),l=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),n=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),t=Symbol.for("react.offscreen"),u;u=Symbol.for("react.module.reference");function v(j){if(typeof j=="object"&&j!==null){var $=j.$$typeof;switch($){case b:switch(j=j.type,j){case d:case f:case e:case m:case n:return j;default:switch(j=j&&j.$$typeof,j){case k:case h:case l:case q:case p:case g:return j;default:return $}}case c:return $}}}reactIs_production_min.ContextConsumer=h;reactIs_production_min.ContextProvider=g;reactIs_production_min.Element=b;reactIs_production_min.ForwardRef=l;reactIs_production_min.Fragment=d;reactIs_production_min.Lazy=q;reactIs_production_min.Memo=p;reactIs_production_min.Portal=c;reactIs_production_min.Profiler=f;reactIs_production_min.StrictMode=e;reactIs_production_min.Suspense=m;reactIs_production_min.SuspenseList=n;reactIs_production_min.isAsyncMode=function(){return!1};reactIs_production_min.isConcurrentMode=function(){return!1};reactIs_production_min.isContextConsumer=function(j){return v(j)===h};reactIs_production_min.isContextProvider=function(j){return v(j)===g};reactIs_production_min.isElement=function(j){return typeof j=="object"&&j!==null&&j.$$typeof===b};reactIs_production_min.isForwardRef=function(j){return v(j)===l};reactIs_production_min.isFragment=function(j){return v(j)===d};reactIs_production_min.isLazy=function(j){return v(j)===q};reactIs_production_min.isMemo=function(j){return v(j)===p};reactIs_production_min.isPortal=function(j){return v(j)===c};reactIs_production_min.isProfiler=function(j){return v(j)===f};reactIs_production_min.isStrictMode=function(j){return v(j)===e};reactIs_production_min.isSuspense=function(j){return v(j)===m};reactIs_production_min.isSuspenseList=function(j){return v(j)===n};reactIs_production_min.isValidElementType=function(j){return typeof j=="string"||typeof j=="function"||j===d||j===f||j===e||j===m||j===n||j===t||typeof j=="object"&&j!==null&&(j.$$typeof===q||j.$$typeof===p||j.$$typeof===g||j.$$typeof===h||j.$$typeof===l||j.$$typeof===u||j.getModuleId!==void 0)};reactIs_production_min.typeOf=v;reactIs.exports=reactIs_production_min;var reactIsExports=reactIs.exports;const fnNameMatchRegex=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function getFunctionName(j){const $=`${j}`.match(fnNameMatchRegex);return $&&$[1]||""}function getFunctionComponentName(j,$=""){return j.displayName||j.name||getFunctionName(j)||$}function getWrappedName(j,$,_e){const et=getFunctionComponentName($);return j.displayName||(et!==""?`${_e}(${et})`:_e)}function getDisplayName$1(j){if(j!=null){if(typeof j=="string")return j;if(typeof j=="function")return getFunctionComponentName(j,"Component");if(typeof j=="object")switch(j.$$typeof){case reactIsExports.ForwardRef:return getWrappedName(j,j.render,"ForwardRef");case reactIsExports.Memo:return getWrappedName(j,j.type,"memo");default:return}}}const getDisplayName=Object.freeze(Object.defineProperty({__proto__:null,default:getDisplayName$1,getFunctionName},Symbol.toStringTag,{value:"Module"})),_excluded$z=["ownerState"],_excluded2$5=["variants"],_excluded3$2=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function isEmpty$3(j){return Object.keys(j).length===0}function isStringTag$1(j){return typeof j=="string"&&j.charCodeAt(0)>96}function shouldForwardProp$1(j){return j!=="ownerState"&&j!=="theme"&&j!=="sx"&&j!=="as"}const systemDefaultTheme$1=createTheme$2(),lowercaseFirstLetter$1=j=>j&&j.charAt(0).toLowerCase()+j.slice(1);function resolveTheme$1({defaultTheme:j,theme:$,themeId:_e}){return isEmpty$3($)?j:$[_e]||$}function defaultOverridesResolver$1(j){return j?($,_e)=>_e[j]:null}function processStyleArg$1(j,$){let{ownerState:_e}=$,et=_objectWithoutPropertiesLoose($,_excluded$z);const tt=typeof j=="function"?j(_extends$1({ownerState:_e},et)):j;if(Array.isArray(tt))return tt.flatMap(rt=>processStyleArg$1(rt,_extends$1({ownerState:_e},et)));if(tt&&typeof tt=="object"&&Array.isArray(tt.variants)){const{variants:rt=[]}=tt;let it=_objectWithoutPropertiesLoose(tt,_excluded2$5);return rt.forEach(ot=>{let At=!0;typeof ot.props=="function"?At=ot.props(_extends$1({ownerState:_e},et,_e)):Object.keys(ot.props).forEach(ut=>{(_e==null?void 0:_e[ut])!==ot.props[ut]&&et[ut]!==ot.props[ut]&&(At=!1)}),At&&(Array.isArray(it)||(it=[it]),it.push(typeof ot.style=="function"?ot.style(_extends$1({ownerState:_e},et,_e)):ot.style))}),it}return tt}function createStyled$2(j={}){const{themeId:$,defaultTheme:_e=systemDefaultTheme$1,rootShouldForwardProp:et=shouldForwardProp$1,slotShouldForwardProp:tt=shouldForwardProp$1}=j,rt=nt=>styleFunctionSx$1(_extends$1({},nt,{theme:resolveTheme$1(_extends$1({},nt,{defaultTheme:_e,themeId:$}))}));return rt.__mui_systemSx=!0,(nt,it={})=>{internal_processStyles(nt,Nt=>Nt.filter(Ot=>!(Ot!=null&&Ot.__mui_systemSx)));const{name:ot,slot:At,skipVariantsResolver:ut,skipSx:ft,overridesResolver:dt=defaultOverridesResolver$1(lowercaseFirstLetter$1(At))}=it,Et=_objectWithoutPropertiesLoose(it,_excluded3$2),Bt=ut!==void 0?ut:At&&At!=="Root"&&At!=="root"||!1,St=ft||!1;let Dt,$t=shouldForwardProp$1;At==="Root"||At==="root"?$t=et:At?$t=tt:isStringTag$1(nt)&&($t=void 0);const Rt=styled$2(nt,_extends$1({shouldForwardProp:$t,label:Dt},Et)),wt=Nt=>typeof Nt=="function"&&Nt.__emotion_real!==Nt||isPlainObject(Nt)?Ot=>processStyleArg$1(Nt,_extends$1({},Ot,{theme:resolveTheme$1({theme:Ot.theme,defaultTheme:_e,themeId:$})})):Nt,xt=(Nt,...Ot)=>{let kt=wt(Nt);const Jt=Ot?Ot.map(wt):[];ot&&dt&&Jt.push(Gt=>{const Kt=resolveTheme$1(_extends$1({},Gt,{defaultTheme:_e,themeId:$}));if(!Kt.components||!Kt.components[ot]||!Kt.components[ot].styleOverrides)return null;const Wt=Kt.components[ot].styleOverrides,Vt={};return Object.entries(Wt).forEach(([ur,Ar])=>{Vt[ur]=processStyleArg$1(Ar,_extends$1({},Gt,{theme:Kt}))}),dt(Gt,Vt)}),ot&&!Bt&&Jt.push(Gt=>{var Kt;const Wt=resolveTheme$1(_extends$1({},Gt,{defaultTheme:_e,themeId:$})),Vt=Wt==null||(Kt=Wt.components)==null||(Kt=Kt[ot])==null?void 0:Kt.variants;return processStyleArg$1({variants:Vt},_extends$1({},Gt,{theme:Wt}))}),St||Jt.push(rt);const jt=Jt.length-Ot.length;if(Array.isArray(Nt)&&jt>0){const Gt=new Array(jt).fill("");kt=[...Nt,...Gt],kt.raw=[...Nt.raw,...Gt]}const Ht=Rt(kt,...Jt);return nt.muiName&&(Ht.muiName=nt.muiName),Ht};return Rt.withConfig&&(xt.withConfig=Rt.withConfig),xt}}const styled$1=createStyled$2();function getThemeProps(j){const{theme:$,name:_e,props:et}=j;return!$||!$.components||!$.components[_e]||!$.components[_e].defaultProps?et:resolveProps($.components[_e].defaultProps,et)}function useThemeProps$1({props:j,name:$,defaultTheme:_e,themeId:et}){let tt=useTheme$1(_e);return et&&(tt=tt[et]||tt),getThemeProps({theme:tt,name:$,props:j})}const useEnhancedEffect=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function clamp$1(j,$=Number.MIN_SAFE_INTEGER,_e=Number.MAX_SAFE_INTEGER){return Math.max($,Math.min(j,_e))}const clamp=Object.freeze(Object.defineProperty({__proto__:null,default:clamp$1},Symbol.toStringTag,{value:"Module"}));function clampWrapper$1(j,$=0,_e=1){return clamp$1(j,$,_e)}function hexToRgb$1(j){j=j.slice(1);const $=new RegExp(`.{1,${j.length>=6?2:1}}`,"g");let _e=j.match($);return _e&&_e[0].length===1&&(_e=_e.map(et=>et+et)),_e?`rgb${_e.length===4?"a":""}(${_e.map((et,tt)=>tt<3?parseInt(et,16):Math.round(parseInt(et,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor$1(j){if(j.type)return j;if(j.charAt(0)==="#")return decomposeColor$1(hexToRgb$1(j));const $=j.indexOf("("),_e=j.substring(0,$);if(["rgb","rgba","hsl","hsla","color"].indexOf(_e)===-1)throw new Error(formatMuiErrorMessage$1(9,j));let et=j.substring($+1,j.length-1),tt;if(_e==="color"){if(et=et.split(" "),tt=et.shift(),et.length===4&&et[3].charAt(0)==="/"&&(et[3]=et[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(tt)===-1)throw new Error(formatMuiErrorMessage$1(10,tt))}else et=et.split(",");return et=et.map(rt=>parseFloat(rt)),{type:_e,values:et,colorSpace:tt}}function recomposeColor$1(j){const{type:$,colorSpace:_e}=j;let{values:et}=j;return $.indexOf("rgb")!==-1?et=et.map((tt,rt)=>rt<3?parseInt(tt,10):tt):$.indexOf("hsl")!==-1&&(et[1]=`${et[1]}%`,et[2]=`${et[2]}%`),$.indexOf("color")!==-1?et=`${_e} ${et.join(" ")}`:et=`${et.join(", ")}`,`${$}(${et})`}function alpha$1(j,$){return j=decomposeColor$1(j),$=clampWrapper$1($),(j.type==="rgb"||j.type==="hsl")&&(j.type+="a"),j.type==="color"?j.values[3]=`/${$}`:j.values[3]=$,recomposeColor$1(j)}function createChainedFunction(...j){return j.reduce(($,_e)=>_e==null?$:function(...tt){$.apply(this,tt),_e.apply(this,tt)},()=>{})}function debounce(j,$=166){let _e;function et(...tt){const rt=()=>{j.apply(this,tt)};clearTimeout(_e),_e=setTimeout(rt,$)}return et.clear=()=>{clearTimeout(_e)},et}function isMuiElement(j,$){var _e,et;return reactExports.isValidElement(j)&&$.indexOf((_e=j.type.muiName)!=null?_e:(et=j.type)==null||(et=et._payload)==null||(et=et.value)==null?void 0:et.muiName)!==-1}function ownerDocument(j){return j&&j.ownerDocument||document}function ownerWindow(j){return ownerDocument(j).defaultView||window}function setRef(j,$){typeof j=="function"?j($):j&&(j.current=$)}let globalId=0;function useGlobalId(j){const[$,_e]=reactExports.useState(j),et=j||$;return reactExports.useEffect(()=>{$==null&&(globalId+=1,_e(`mui-${globalId}`))},[$]),et}const maybeReactUseId=React$7.useId;function useId(j){if(maybeReactUseId!==void 0){const $=maybeReactUseId();return j??$}return useGlobalId(j)}function useControlled({controlled:j,default:$,name:_e,state:et="value"}){const{current:tt}=reactExports.useRef(j!==void 0),[rt,nt]=reactExports.useState($),it=tt?j:rt,ot=reactExports.useCallback(At=>{tt||nt(At)},[]);return[it,ot]}function useEventCallback(j){const $=reactExports.useRef(j);return useEnhancedEffect(()=>{$.current=j}),reactExports.useRef((..._e)=>(0,$.current)(..._e)).current}function useForkRef(...j){return reactExports.useMemo(()=>j.every($=>$==null)?null:$=>{j.forEach(_e=>{setRef(_e,$)})},j)}const UNINITIALIZED={};function useLazyRef(j,$){const _e=reactExports.useRef(UNINITIALIZED);return _e.current===UNINITIALIZED&&(_e.current=j($)),_e}const EMPTY=[];function useOnMount(j){reactExports.useEffect(j,EMPTY)}class Timeout{constructor(){this.currentId=null,this.clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new Timeout}start($,_e){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,_e()},$)}}function useTimeout(){const j=useLazyRef(Timeout.create).current;return useOnMount(j.disposeEffect),j}let hadKeyboardEvent=!0,hadFocusVisibleRecently=!1;const hadFocusVisibleRecentlyTimeout=new Timeout,inputTypesWhitelist={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function focusTriggersKeyboardModality(j){const{type:$,tagName:_e}=j;return!!(_e==="INPUT"&&inputTypesWhitelist[$]&&!j.readOnly||_e==="TEXTAREA"&&!j.readOnly||j.isContentEditable)}function handleKeyDown(j){j.metaKey||j.altKey||j.ctrlKey||(hadKeyboardEvent=!0)}function handlePointerDown(){hadKeyboardEvent=!1}function handleVisibilityChange(){this.visibilityState==="hidden"&&hadFocusVisibleRecently&&(hadKeyboardEvent=!0)}function prepare(j){j.addEventListener("keydown",handleKeyDown,!0),j.addEventListener("mousedown",handlePointerDown,!0),j.addEventListener("pointerdown",handlePointerDown,!0),j.addEventListener("touchstart",handlePointerDown,!0),j.addEventListener("visibilitychange",handleVisibilityChange,!0)}function isFocusVisible(j){const{target:$}=j;try{return $.matches(":focus-visible")}catch{}return hadKeyboardEvent||focusTriggersKeyboardModality($)}function useIsFocusVisible(){const j=reactExports.useCallback(tt=>{tt!=null&&prepare(tt.ownerDocument)},[]),$=reactExports.useRef(!1);function _e(){return $.current?(hadFocusVisibleRecently=!0,hadFocusVisibleRecentlyTimeout.start(100,()=>{hadFocusVisibleRecently=!1}),$.current=!1,!0):!1}function et(tt){return isFocusVisible(tt)?($.current=!0,!0):!1}return{isFocusVisibleRef:$,onFocus:et,onBlur:_e,ref:j}}function getScrollbarSize(j){const $=j.documentElement.clientWidth;return Math.abs(window.innerWidth-$)}function getValidReactChildren(j){return reactExports.Children.toArray(j).filter($=>reactExports.isValidElement($))}const RtlContext=reactExports.createContext(),useRtl=()=>{const j=reactExports.useContext(RtlContext);return j??!1},_excluded$y=["component","direction","spacing","divider","children","className","useFlexGap"],defaultTheme$2=createTheme$2(),defaultCreateStyledComponent=styled$1("div",{name:"MuiStack",slot:"Root",overridesResolver:(j,$)=>$.root});function useThemePropsDefault(j){return useThemeProps$1({props:j,name:"MuiStack",defaultTheme:defaultTheme$2})}function joinChildren(j,$){const _e=reactExports.Children.toArray(j).filter(Boolean);return _e.reduce((et,tt,rt)=>(et.push(tt),rt<_e.length-1&&et.push(reactExports.cloneElement($,{key:`separator-${rt}`})),et),[])}const getSideFromDirection=j=>({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[j],style=({ownerState:j,theme:$})=>{let _e=_extends$1({display:"flex",flexDirection:"column"},handleBreakpoints({theme:$},resolveBreakpointValues({values:j.direction,breakpoints:$.breakpoints.values}),et=>({flexDirection:et})));if(j.spacing){const et=createUnarySpacing($),tt=Object.keys($.breakpoints.values).reduce((ot,At)=>((typeof j.spacing=="object"&&j.spacing[At]!=null||typeof j.direction=="object"&&j.direction[At]!=null)&&(ot[At]=!0),ot),{}),rt=resolveBreakpointValues({values:j.direction,base:tt}),nt=resolveBreakpointValues({values:j.spacing,base:tt});typeof rt=="object"&&Object.keys(rt).forEach((ot,At,ut)=>{if(!rt[ot]){const dt=At>0?rt[ut[At-1]]:"column";rt[ot]=dt}}),_e=deepmerge$1(_e,handleBreakpoints({theme:$},nt,(ot,At)=>j.useFlexGap?{gap:getValue(et,ot)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${getSideFromDirection(At?rt[At]:j.direction)}`]:getValue(et,ot)}}))}return _e=mergeBreakpointsInOrder($.breakpoints,_e),_e};function createStack(j={}){const{createStyledComponent:$=defaultCreateStyledComponent,useThemeProps:_e=useThemePropsDefault,componentName:et="MuiStack"}=j,tt=()=>composeClasses({root:["root"]},ot=>generateUtilityClass(et,ot),{}),rt=$(style);return reactExports.forwardRef(function(ot,At){const ut=_e(ot),ft=extendSxProp(ut),{component:dt="div",direction:Et="column",spacing:Bt=0,divider:St,children:Dt,className:$t,useFlexGap:Rt=!1}=ft,wt=_objectWithoutPropertiesLoose(ft,_excluded$y),xt={direction:Et,spacing:Bt,useFlexGap:Rt},Nt=tt();return jsxRuntimeExports.jsx(rt,_extends$1({as:dt,ownerState:xt,ref:At,className:clsx(Nt.root,$t)},wt,{children:St?joinChildren(Dt,St):Dt}))})}function createMixins(j,$){return _extends$1({toolbar:{minHeight:56,[j.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[j.up("sm")]:{minHeight:64}}},$)}var colorManipulator={},interopRequireDefault={exports:{}};(function(j){function $(_e){return _e&&_e.__esModule?_e:{default:_e}}j.exports=$,j.exports.__esModule=!0,j.exports.default=j.exports})(interopRequireDefault);var interopRequireDefaultExports=interopRequireDefault.exports;const require$$1=getAugmentedNamespace$2(formatMuiErrorMessage),require$$2=getAugmentedNamespace$2(clamp);var _interopRequireDefault$1=interopRequireDefaultExports;Object.defineProperty(colorManipulator,"__esModule",{value:!0});var alpha_1=colorManipulator.alpha=alpha;colorManipulator.blend=blend;colorManipulator.colorChannel=void 0;var darken_1=colorManipulator.darken=darken;colorManipulator.decomposeColor=decomposeColor;colorManipulator.emphasize=emphasize;var getContrastRatio_1=colorManipulator.getContrastRatio=getContrastRatio;colorManipulator.getLuminance=getLuminance;colorManipulator.hexToRgb=hexToRgb;colorManipulator.hslToRgb=hslToRgb;var lighten_1=colorManipulator.lighten=lighten;colorManipulator.private_safeAlpha=private_safeAlpha;colorManipulator.private_safeColorChannel=void 0;colorManipulator.private_safeDarken=private_safeDarken;colorManipulator.private_safeEmphasize=private_safeEmphasize;colorManipulator.private_safeLighten=private_safeLighten;colorManipulator.recomposeColor=recomposeColor;colorManipulator.rgbToHex=rgbToHex;var _formatMuiErrorMessage2=_interopRequireDefault$1(require$$1),_clamp=_interopRequireDefault$1(require$$2);function clampWrapper(j,$=0,_e=1){return(0,_clamp.default)(j,$,_e)}function hexToRgb(j){j=j.slice(1);const $=new RegExp(`.{1,${j.length>=6?2:1}}`,"g");let _e=j.match($);return _e&&_e[0].length===1&&(_e=_e.map(et=>et+et)),_e?`rgb${_e.length===4?"a":""}(${_e.map((et,tt)=>tt<3?parseInt(et,16):Math.round(parseInt(et,16)/255*1e3)/1e3).join(", ")})`:""}function intToHex(j){const $=j.toString(16);return $.length===1?`0${$}`:$}function decomposeColor(j){if(j.type)return j;if(j.charAt(0)==="#")return decomposeColor(hexToRgb(j));const $=j.indexOf("("),_e=j.substring(0,$);if(["rgb","rgba","hsl","hsla","color"].indexOf(_e)===-1)throw new Error((0,_formatMuiErrorMessage2.default)(9,j));let et=j.substring($+1,j.length-1),tt;if(_e==="color"){if(et=et.split(" "),tt=et.shift(),et.length===4&&et[3].charAt(0)==="/"&&(et[3]=et[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(tt)===-1)throw new Error((0,_formatMuiErrorMessage2.default)(10,tt))}else et=et.split(",");return et=et.map(rt=>parseFloat(rt)),{type:_e,values:et,colorSpace:tt}}const colorChannel=j=>{const $=decomposeColor(j);return $.values.slice(0,3).map((_e,et)=>$.type.indexOf("hsl")!==-1&&et!==0?`${_e}%`:_e).join(" ")};colorManipulator.colorChannel=colorChannel;const private_safeColorChannel=(j,$)=>{try{return colorChannel(j)}catch{return j}};colorManipulator.private_safeColorChannel=private_safeColorChannel;function recomposeColor(j){const{type:$,colorSpace:_e}=j;let{values:et}=j;return $.indexOf("rgb")!==-1?et=et.map((tt,rt)=>rt<3?parseInt(tt,10):tt):$.indexOf("hsl")!==-1&&(et[1]=`${et[1]}%`,et[2]=`${et[2]}%`),$.indexOf("color")!==-1?et=`${_e} ${et.join(" ")}`:et=`${et.join(", ")}`,`${$}(${et})`}function rgbToHex(j){if(j.indexOf("#")===0)return j;const{values:$}=decomposeColor(j);return`#${$.map((_e,et)=>intToHex(et===3?Math.round(255*_e):_e)).join("")}`}function hslToRgb(j){j=decomposeColor(j);const{values:$}=j,_e=$[0],et=$[1]/100,tt=$[2]/100,rt=et*Math.min(tt,1-tt),nt=(At,ut=(At+_e/30)%12)=>tt-rt*Math.max(Math.min(ut-3,9-ut,1),-1);let it="rgb";const ot=[Math.round(nt(0)*255),Math.round(nt(8)*255),Math.round(nt(4)*255)];return j.type==="hsla"&&(it+="a",ot.push($[3])),recomposeColor({type:it,values:ot})}function getLuminance(j){j=decomposeColor(j);let $=j.type==="hsl"||j.type==="hsla"?decomposeColor(hslToRgb(j)).values:j.values;return $=$.map(_e=>(j.type!=="color"&&(_e/=255),_e<=.03928?_e/12.92:((_e+.055)/1.055)**2.4)),Number((.2126*$[0]+.7152*$[1]+.0722*$[2]).toFixed(3))}function getContrastRatio(j,$){const _e=getLuminance(j),et=getLuminance($);return(Math.max(_e,et)+.05)/(Math.min(_e,et)+.05)}function alpha(j,$){return j=decomposeColor(j),$=clampWrapper($),(j.type==="rgb"||j.type==="hsl")&&(j.type+="a"),j.type==="color"?j.values[3]=`/${$}`:j.values[3]=$,recomposeColor(j)}function private_safeAlpha(j,$,_e){try{return alpha(j,$)}catch{return j}}function darken(j,$){if(j=decomposeColor(j),$=clampWrapper($),j.type.indexOf("hsl")!==-1)j.values[2]*=1-$;else if(j.type.indexOf("rgb")!==-1||j.type.indexOf("color")!==-1)for(let _e=0;_e<3;_e+=1)j.values[_e]*=1-$;return recomposeColor(j)}function private_safeDarken(j,$,_e){try{return darken(j,$)}catch{return j}}function lighten(j,$){if(j=decomposeColor(j),$=clampWrapper($),j.type.indexOf("hsl")!==-1)j.values[2]+=(100-j.values[2])*$;else if(j.type.indexOf("rgb")!==-1)for(let _e=0;_e<3;_e+=1)j.values[_e]+=(255-j.values[_e])*$;else if(j.type.indexOf("color")!==-1)for(let _e=0;_e<3;_e+=1)j.values[_e]+=(1-j.values[_e])*$;return recomposeColor(j)}function private_safeLighten(j,$,_e){try{return lighten(j,$)}catch{return j}}function emphasize(j,$=.15){return getLuminance(j)>.5?darken(j,$):lighten(j,$)}function private_safeEmphasize(j,$,_e){try{return private_safeEmphasize(j,$)}catch{return j}}function blend(j,$,_e,et=1){const tt=(ot,At)=>Math.round((ot**(1/et)*(1-_e)+At**(1/et)*_e)**et),rt=decomposeColor(j),nt=decomposeColor($),it=[tt(rt.values[0],nt.values[0]),tt(rt.values[1],nt.values[1]),tt(rt.values[2],nt.values[2])];return recomposeColor({type:"rgb",values:it})}const common={black:"#000",white:"#fff"},common$1=common,grey={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},grey$1=grey,purple={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},purple$1=purple,red={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},red$1=red,orange={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},orange$1=orange,blue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},blue$1=blue,lightBlue={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},lightBlue$1=lightBlue,green={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},green$1=green,_excluded$x=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$1.white,default:common$1.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$1.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$1.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(j,$,_e,et){const tt=et.light||et,rt=et.dark||et*1.5;j[$]||(j.hasOwnProperty(_e)?j[$]=j[_e]:$==="light"?j.light=lighten_1(j.main,tt):$==="dark"&&(j.dark=darken_1(j.main,rt)))}function getDefaultPrimary(j="light"){return j==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(j="light"){return j==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(j="light"){return j==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(j="light"){return j==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(j="light"){return j==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(j="light"){return j==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(j){const{mode:$="light",contrastThreshold:_e=3,tonalOffset:et=.2}=j,tt=_objectWithoutPropertiesLoose(j,_excluded$x),rt=j.primary||getDefaultPrimary($),nt=j.secondary||getDefaultSecondary($),it=j.error||getDefaultError($),ot=j.info||getDefaultInfo($),At=j.success||getDefaultSuccess($),ut=j.warning||getDefaultWarning($);function ft(St){return getContrastRatio_1(St,dark.text.primary)>=_e?dark.text.primary:light.text.primary}const dt=({color:St,name:Dt,mainShade:$t=500,lightShade:Rt=300,darkShade:wt=700})=>{if(St=_extends$1({},St),!St.main&&St[$t]&&(St.main=St[$t]),!St.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage$1(11,Dt?` (${Dt})`:"",$t));if(typeof St.main!="string")throw new Error(formatMuiErrorMessage$1(12,Dt?` (${Dt})`:"",JSON.stringify(St.main)));return addLightOrDark(St,"light",Rt,et),addLightOrDark(St,"dark",wt,et),St.contrastText||(St.contrastText=ft(St.main)),St},Et={dark,light};return deepmerge$1(_extends$1({common:_extends$1({},common$1),mode:$,primary:dt({color:rt,name:"primary"}),secondary:dt({color:nt,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:it,name:"error"}),warning:dt({color:ut,name:"warning"}),info:dt({color:ot,name:"info"}),success:dt({color:At,name:"success"}),grey:grey$1,contrastThreshold:_e,getContrastText:ft,augmentColor:dt,tonalOffset:et},Et[$]),tt)}const _excluded$w=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round(j){return Math.round(j*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(j,$){const _e=typeof $=="function"?$(j):$,{fontFamily:et=defaultFontFamily,fontSize:tt=14,fontWeightLight:rt=300,fontWeightRegular:nt=400,fontWeightMedium:it=500,fontWeightBold:ot=700,htmlFontSize:At=16,allVariants:ut,pxToRem:ft}=_e,dt=_objectWithoutPropertiesLoose(_e,_excluded$w),Et=tt/14,Bt=ft||($t=>`${$t/At*Et}rem`),St=($t,Rt,wt,xt,Nt)=>_extends$1({fontFamily:et,fontWeight:$t,fontSize:Bt(Rt),lineHeight:wt},et===defaultFontFamily?{letterSpacing:`${round(xt/Rt)}em`}:{},Nt,ut),Dt={h1:St(rt,96,1.167,-1.5),h2:St(rt,60,1.2,-.5),h3:St(nt,48,1.167,0),h4:St(nt,34,1.235,.25),h5:St(nt,24,1.334,0),h6:St(it,20,1.6,.15),subtitle1:St(nt,16,1.75,.15),subtitle2:St(it,14,1.57,.1),body1:St(nt,16,1.5,.15),body2:St(nt,14,1.43,.15),button:St(it,14,1.75,.4,caseAllCaps),caption:St(nt,12,1.66,.4),overline:St(nt,12,2.66,1,caseAllCaps),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return deepmerge$1(_extends$1({htmlFontSize:At,pxToRem:Bt,fontFamily:et,fontSize:tt,fontWeightLight:rt,fontWeightRegular:nt,fontWeightMedium:it,fontWeightBold:ot},Dt),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...j){return[`${j[0]}px ${j[1]}px ${j[2]}px ${j[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${j[4]}px ${j[5]}px ${j[6]}px ${j[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${j[8]}px ${j[9]}px ${j[10]}px ${j[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],_excluded$v=["duration","easing","delay"],easing={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(j){return`${Math.round(j)}ms`}function getAutoHeightDuration(j){if(!j)return 0;const $=j/36;return Math.round((4+15*$**.25+$/5)*10)}function createTransitions(j){const $=_extends$1({},easing,j.easing),_e=_extends$1({},duration,j.duration);return _extends$1({getAutoHeightDuration,create:(tt=["all"],rt={})=>{const{duration:nt=_e.standard,easing:it=$.easeInOut,delay:ot=0}=rt;return _objectWithoutPropertiesLoose(rt,_excluded$v),(Array.isArray(tt)?tt:[tt]).map(At=>`${At} ${typeof nt=="string"?nt:formatMs(nt)} ${it} ${typeof ot=="string"?ot:formatMs(ot)}`).join(",")}},j,{easing:$,duration:_e})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$u=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(j={},...$){const{mixins:_e={},palette:et={},transitions:tt={},typography:rt={}}=j,nt=_objectWithoutPropertiesLoose(j,_excluded$u);if(j.vars)throw new Error(formatMuiErrorMessage$1(18));const it=createPalette(et),ot=createTheme$2(j);let At=deepmerge$1(ot,{mixins:createMixins(ot.breakpoints,_e),palette:it,shadows:shadows.slice(),typography:createTypography(it,rt),transitions:createTransitions(tt),zIndex:_extends$1({},zIndex$1)});return At=deepmerge$1(At,nt),At=$.reduce((ut,ft)=>deepmerge$1(ut,ft),At),At.unstable_sxConfig=_extends$1({},defaultSxConfig$1,nt==null?void 0:nt.unstable_sxConfig),At.unstable_sx=function(ft){return styleFunctionSx$1({sx:ft,theme:this})},At}const defaultTheme=createTheme(),defaultTheme$1=defaultTheme;function useTheme(){const j=useTheme$1(defaultTheme$1);return j[THEME_ID]||j}function useThemeProps({props:j,name:$}){return useThemeProps$1({props:j,name:$,defaultTheme:defaultTheme$1,themeId:THEME_ID})}var createStyled$1={},_extends={exports:{}},hasRequired_extends;function require_extends(){return hasRequired_extends||(hasRequired_extends=1,function(j){function $(){return j.exports=$=Object.assign?Object.assign.bind():function(_e){for(var et=1;et=0)&&(tt[nt]=_e[nt]);return tt}j.exports=$,j.exports.__esModule=!0,j.exports.default=j.exports}(objectWithoutPropertiesLoose)),objectWithoutPropertiesLoose.exports}const require$$3=getAugmentedNamespace$2(styledEngine),require$$4=getAugmentedNamespace$2(deepmerge),require$$5=getAugmentedNamespace$2(capitalize),require$$6=getAugmentedNamespace$2(getDisplayName),require$$7=getAugmentedNamespace$2(createTheme$1),require$$8=getAugmentedNamespace$2(styleFunctionSx);var _interopRequireDefault=interopRequireDefaultExports;Object.defineProperty(createStyled$1,"__esModule",{value:!0});var _default=createStyled$1.default=createStyled,shouldForwardProp_1=createStyled$1.shouldForwardProp=shouldForwardProp;createStyled$1.systemDefaultTheme=void 0;var _extends2=_interopRequireDefault(require_extends()),_objectWithoutPropertiesLoose2=_interopRequireDefault(requireObjectWithoutPropertiesLoose()),_styledEngine=_interopRequireWildcard(require$$3),_deepmerge=require$$4;_interopRequireDefault(require$$5);_interopRequireDefault(require$$6);var _createTheme=_interopRequireDefault(require$$7),_styleFunctionSx=_interopRequireDefault(require$$8);const _excluded$t=["ownerState"],_excluded2$4=["variants"],_excluded3$1=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function _getRequireWildcardCache(j){if(typeof WeakMap!="function")return null;var $=new WeakMap,_e=new WeakMap;return(_getRequireWildcardCache=function(et){return et?_e:$})(j)}function _interopRequireWildcard(j,$){if(!$&&j&&j.__esModule)return j;if(j===null||typeof j!="object"&&typeof j!="function")return{default:j};var _e=_getRequireWildcardCache($);if(_e&&_e.has(j))return _e.get(j);var et={__proto__:null},tt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var rt in j)if(rt!=="default"&&Object.prototype.hasOwnProperty.call(j,rt)){var nt=tt?Object.getOwnPropertyDescriptor(j,rt):null;nt&&(nt.get||nt.set)?Object.defineProperty(et,rt,nt):et[rt]=j[rt]}return et.default=j,_e&&_e.set(j,et),et}function isEmpty$2(j){return Object.keys(j).length===0}function isStringTag(j){return typeof j=="string"&&j.charCodeAt(0)>96}function shouldForwardProp(j){return j!=="ownerState"&&j!=="theme"&&j!=="sx"&&j!=="as"}const systemDefaultTheme=createStyled$1.systemDefaultTheme=(0,_createTheme.default)(),lowercaseFirstLetter=j=>j&&j.charAt(0).toLowerCase()+j.slice(1);function resolveTheme({defaultTheme:j,theme:$,themeId:_e}){return isEmpty$2($)?j:$[_e]||$}function defaultOverridesResolver(j){return j?($,_e)=>_e[j]:null}function processStyleArg(j,$){let{ownerState:_e}=$,et=(0,_objectWithoutPropertiesLoose2.default)($,_excluded$t);const tt=typeof j=="function"?j((0,_extends2.default)({ownerState:_e},et)):j;if(Array.isArray(tt))return tt.flatMap(rt=>processStyleArg(rt,(0,_extends2.default)({ownerState:_e},et)));if(tt&&typeof tt=="object"&&Array.isArray(tt.variants)){const{variants:rt=[]}=tt;let it=(0,_objectWithoutPropertiesLoose2.default)(tt,_excluded2$4);return rt.forEach(ot=>{let At=!0;typeof ot.props=="function"?At=ot.props((0,_extends2.default)({ownerState:_e},et,_e)):Object.keys(ot.props).forEach(ut=>{(_e==null?void 0:_e[ut])!==ot.props[ut]&&et[ut]!==ot.props[ut]&&(At=!1)}),At&&(Array.isArray(it)||(it=[it]),it.push(typeof ot.style=="function"?ot.style((0,_extends2.default)({ownerState:_e},et,_e)):ot.style))}),it}return tt}function createStyled(j={}){const{themeId:$,defaultTheme:_e=systemDefaultTheme,rootShouldForwardProp:et=shouldForwardProp,slotShouldForwardProp:tt=shouldForwardProp}=j,rt=nt=>(0,_styleFunctionSx.default)((0,_extends2.default)({},nt,{theme:resolveTheme((0,_extends2.default)({},nt,{defaultTheme:_e,themeId:$}))}));return rt.__mui_systemSx=!0,(nt,it={})=>{(0,_styledEngine.internal_processStyles)(nt,Nt=>Nt.filter(Ot=>!(Ot!=null&&Ot.__mui_systemSx)));const{name:ot,slot:At,skipVariantsResolver:ut,skipSx:ft,overridesResolver:dt=defaultOverridesResolver(lowercaseFirstLetter(At))}=it,Et=(0,_objectWithoutPropertiesLoose2.default)(it,_excluded3$1),Bt=ut!==void 0?ut:At&&At!=="Root"&&At!=="root"||!1,St=ft||!1;let Dt,$t=shouldForwardProp;At==="Root"||At==="root"?$t=et:At?$t=tt:isStringTag(nt)&&($t=void 0);const Rt=(0,_styledEngine.default)(nt,(0,_extends2.default)({shouldForwardProp:$t,label:Dt},Et)),wt=Nt=>typeof Nt=="function"&&Nt.__emotion_real!==Nt||(0,_deepmerge.isPlainObject)(Nt)?Ot=>processStyleArg(Nt,(0,_extends2.default)({},Ot,{theme:resolveTheme({theme:Ot.theme,defaultTheme:_e,themeId:$})})):Nt,xt=(Nt,...Ot)=>{let kt=wt(Nt);const Jt=Ot?Ot.map(wt):[];ot&&dt&&Jt.push(Gt=>{const Kt=resolveTheme((0,_extends2.default)({},Gt,{defaultTheme:_e,themeId:$}));if(!Kt.components||!Kt.components[ot]||!Kt.components[ot].styleOverrides)return null;const Wt=Kt.components[ot].styleOverrides,Vt={};return Object.entries(Wt).forEach(([ur,Ar])=>{Vt[ur]=processStyleArg(Ar,(0,_extends2.default)({},Gt,{theme:Kt}))}),dt(Gt,Vt)}),ot&&!Bt&&Jt.push(Gt=>{var Kt;const Wt=resolveTheme((0,_extends2.default)({},Gt,{defaultTheme:_e,themeId:$})),Vt=Wt==null||(Kt=Wt.components)==null||(Kt=Kt[ot])==null?void 0:Kt.variants;return processStyleArg({variants:Vt},(0,_extends2.default)({},Gt,{theme:Wt}))}),St||Jt.push(rt);const jt=Jt.length-Ot.length;if(Array.isArray(Nt)&&jt>0){const Gt=new Array(jt).fill("");kt=[...Nt,...Gt],kt.raw=[...Nt.raw,...Gt]}const Ht=Rt(kt,...Jt);return nt.muiName&&(Ht.muiName=nt.muiName),Ht};return Rt.withConfig&&(xt.withConfig=Rt.withConfig),xt}}const rootShouldForwardProp=j=>shouldForwardProp_1(j)&&j!=="classes",slotShouldForwardProp=shouldForwardProp_1,styled=_default({themeId:THEME_ID,defaultTheme:defaultTheme$1,rootShouldForwardProp}),getOverlayAlpha=j=>{let $;return j<1?$=5.11916*j**2:$=4.5*Math.log(j+1)+2,($/100).toFixed(2)};function _setPrototypeOf(j,$){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},_setPrototypeOf(j,$)}function _inheritsLoose(j,$){j.prototype=Object.create($.prototype),j.prototype.constructor=j,_setPrototypeOf(j,$)}const config={disabled:!1},TransitionGroupContext=React$6.createContext(null);var forceReflow=function j($){return $.scrollTop},UNMOUNTED="unmounted",EXITED="exited",ENTERING="entering",ENTERED="entered",EXITING="exiting",Transition$1=function(j){_inheritsLoose($,j);function $(et,tt){var rt;rt=j.call(this,et,tt)||this;var nt=tt,it=nt&&!nt.isMounting?et.enter:et.appear,ot;return rt.appearStatus=null,et.in?it?(ot=EXITED,rt.appearStatus=ENTERING):ot=ENTERED:et.unmountOnExit||et.mountOnEnter?ot=UNMOUNTED:ot=EXITED,rt.state={status:ot},rt.nextCallback=null,rt}$.getDerivedStateFromProps=function(tt,rt){var nt=tt.in;return nt&&rt.status===UNMOUNTED?{status:EXITED}:null};var _e=$.prototype;return _e.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},_e.componentDidUpdate=function(tt){var rt=null;if(tt!==this.props){var nt=this.state.status;this.props.in?nt!==ENTERING&&nt!==ENTERED&&(rt=ENTERING):(nt===ENTERING||nt===ENTERED)&&(rt=EXITING)}this.updateStatus(!1,rt)},_e.componentWillUnmount=function(){this.cancelNextCallback()},_e.getTimeouts=function(){var tt=this.props.timeout,rt,nt,it;return rt=nt=it=tt,tt!=null&&typeof tt!="number"&&(rt=tt.exit,nt=tt.enter,it=tt.appear!==void 0?tt.appear:nt),{exit:rt,enter:nt,appear:it}},_e.updateStatus=function(tt,rt){if(tt===void 0&&(tt=!1),rt!==null)if(this.cancelNextCallback(),rt===ENTERING){if(this.props.unmountOnExit||this.props.mountOnEnter){var nt=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);nt&&forceReflow(nt)}this.performEnter(tt)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED&&this.setState({status:UNMOUNTED})},_e.performEnter=function(tt){var rt=this,nt=this.props.enter,it=this.context?this.context.isMounting:tt,ot=this.props.nodeRef?[it]:[ReactDOM.findDOMNode(this),it],At=ot[0],ut=ot[1],ft=this.getTimeouts(),dt=it?ft.appear:ft.enter;if(!tt&&!nt||config.disabled){this.safeSetState({status:ENTERED},function(){rt.props.onEntered(At)});return}this.props.onEnter(At,ut),this.safeSetState({status:ENTERING},function(){rt.props.onEntering(At,ut),rt.onTransitionEnd(dt,function(){rt.safeSetState({status:ENTERED},function(){rt.props.onEntered(At,ut)})})})},_e.performExit=function(){var tt=this,rt=this.props.exit,nt=this.getTimeouts(),it=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!rt||config.disabled){this.safeSetState({status:EXITED},function(){tt.props.onExited(it)});return}this.props.onExit(it),this.safeSetState({status:EXITING},function(){tt.props.onExiting(it),tt.onTransitionEnd(nt.exit,function(){tt.safeSetState({status:EXITED},function(){tt.props.onExited(it)})})})},_e.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},_e.safeSetState=function(tt,rt){rt=this.setNextCallback(rt),this.setState(tt,rt)},_e.setNextCallback=function(tt){var rt=this,nt=!0;return this.nextCallback=function(it){nt&&(nt=!1,rt.nextCallback=null,tt(it))},this.nextCallback.cancel=function(){nt=!1},this.nextCallback},_e.onTransitionEnd=function(tt,rt){this.setNextCallback(rt);var nt=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),it=tt==null&&!this.props.addEndListener;if(!nt||it){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var ot=this.props.nodeRef?[this.nextCallback]:[nt,this.nextCallback],At=ot[0],ut=ot[1];this.props.addEndListener(At,ut)}tt!=null&&setTimeout(this.nextCallback,tt)},_e.render=function(){var tt=this.state.status;if(tt===UNMOUNTED)return null;var rt=this.props,nt=rt.children;rt.in,rt.mountOnEnter,rt.unmountOnExit,rt.appear,rt.enter,rt.exit,rt.timeout,rt.addEndListener,rt.onEnter,rt.onEntering,rt.onEntered,rt.onExit,rt.onExiting,rt.onExited,rt.nodeRef;var it=_objectWithoutPropertiesLoose(rt,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React$6.createElement(TransitionGroupContext.Provider,{value:null},typeof nt=="function"?nt(tt,it):React$6.cloneElement(React$6.Children.only(nt),it))},$}(React$6.Component);Transition$1.contextType=TransitionGroupContext;Transition$1.propTypes={};function noop$1(){}Transition$1.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$1,onEntering:noop$1,onEntered:noop$1,onExit:noop$1,onExiting:noop$1,onExited:noop$1};Transition$1.UNMOUNTED=UNMOUNTED;Transition$1.EXITED=EXITED;Transition$1.ENTERING=ENTERING;Transition$1.ENTERED=ENTERED;Transition$1.EXITING=EXITING;const Transition$2=Transition$1;function _assertThisInitialized(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function getChildMapping(j,$){var _e=function(rt){return $&&reactExports.isValidElement(rt)?$(rt):rt},et=Object.create(null);return j&&reactExports.Children.map(j,function(tt){return tt}).forEach(function(tt){et[tt.key]=_e(tt)}),et}function mergeChildMappings(j,$){j=j||{},$=$||{};function _e(ut){return ut in $?$[ut]:j[ut]}var et=Object.create(null),tt=[];for(var rt in j)rt in $?tt.length&&(et[rt]=tt,tt=[]):tt.push(rt);var nt,it={};for(var ot in $){if(et[ot])for(nt=0;nt{if(!it&&ot!=null){const St=setTimeout(ot,At);return()=>{clearTimeout(St)}}},[ot,it,At]),jsxRuntimeExports.jsx("span",{className:dt,style:Et,children:jsxRuntimeExports.jsx("span",{className:Bt})})}const touchRippleClasses=generateUtilityClasses("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),_excluded$s=["center","classes","className"];let _=j=>j,_t,_t2,_t3,_t4;const DURATION=550,DELAY_RIPPLE=80,enterKeyframe=keyframes(_t||(_t=_` + 0% { + transform: scale(0); + opacity: 0.1; + } + + 100% { + transform: scale(1); + opacity: 0.3; + } +`)),exitKeyframe=keyframes(_t2||(_t2=_` + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +`)),pulsateKeyframe=keyframes(_t3||(_t3=_` + 0% { + transform: scale(1); + } + + 50% { + transform: scale(0.92); + } + + 100% { + transform: scale(1); + } +`)),TouchRippleRoot=styled("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),TouchRippleRipple=styled(Ripple,{name:"MuiTouchRipple",slot:"Ripple"})(_t4||(_t4=_` + opacity: 0; + position: absolute; + + &.${0} { + opacity: 0.3; + transform: scale(1); + animation-name: ${0}; + animation-duration: ${0}ms; + animation-timing-function: ${0}; + } + + &.${0} { + animation-duration: ${0}ms; + } + + & .${0} { + opacity: 1; + display: block; + width: 100%; + height: 100%; + border-radius: 50%; + background-color: currentColor; + } + + & .${0} { + opacity: 0; + animation-name: ${0}; + animation-duration: ${0}ms; + animation-timing-function: ${0}; + } + + & .${0} { + position: absolute; + /* @noflip */ + left: 0px; + top: 0; + animation-name: ${0}; + animation-duration: 2500ms; + animation-timing-function: ${0}; + animation-iteration-count: infinite; + animation-delay: 200ms; + } +`),touchRippleClasses.rippleVisible,enterKeyframe,DURATION,({theme:j})=>j.transitions.easing.easeInOut,touchRippleClasses.ripplePulsate,({theme:j})=>j.transitions.duration.shorter,touchRippleClasses.child,touchRippleClasses.childLeaving,exitKeyframe,DURATION,({theme:j})=>j.transitions.easing.easeInOut,touchRippleClasses.childPulsate,pulsateKeyframe,({theme:j})=>j.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiTouchRipple"}),{center:tt=!1,classes:rt={},className:nt}=et,it=_objectWithoutPropertiesLoose(et,_excluded$s),[ot,At]=reactExports.useState([]),ut=reactExports.useRef(0),ft=reactExports.useRef(null);reactExports.useEffect(()=>{ft.current&&(ft.current(),ft.current=null)},[ot]);const dt=reactExports.useRef(!1),Et=useTimeout(),Bt=reactExports.useRef(null),St=reactExports.useRef(null),Dt=reactExports.useCallback(xt=>{const{pulsate:Nt,rippleX:Ot,rippleY:kt,rippleSize:Jt,cb:jt}=xt;At(Ht=>[...Ht,jsxRuntimeExports.jsx(TouchRippleRipple,{classes:{ripple:clsx(rt.ripple,touchRippleClasses.ripple),rippleVisible:clsx(rt.rippleVisible,touchRippleClasses.rippleVisible),ripplePulsate:clsx(rt.ripplePulsate,touchRippleClasses.ripplePulsate),child:clsx(rt.child,touchRippleClasses.child),childLeaving:clsx(rt.childLeaving,touchRippleClasses.childLeaving),childPulsate:clsx(rt.childPulsate,touchRippleClasses.childPulsate)},timeout:DURATION,pulsate:Nt,rippleX:Ot,rippleY:kt,rippleSize:Jt},ut.current)]),ut.current+=1,ft.current=jt},[rt]),$t=reactExports.useCallback((xt={},Nt={},Ot=()=>{})=>{const{pulsate:kt=!1,center:Jt=tt||Nt.pulsate,fakeElement:jt=!1}=Nt;if((xt==null?void 0:xt.type)==="mousedown"&&dt.current){dt.current=!1;return}(xt==null?void 0:xt.type)==="touchstart"&&(dt.current=!0);const Ht=jt?null:St.current,Gt=Ht?Ht.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Kt,Wt,Vt;if(Jt||xt===void 0||xt.clientX===0&&xt.clientY===0||!xt.clientX&&!xt.touches)Kt=Math.round(Gt.width/2),Wt=Math.round(Gt.height/2);else{const{clientX:ur,clientY:Ar}=xt.touches&&xt.touches.length>0?xt.touches[0]:xt;Kt=Math.round(ur-Gt.left),Wt=Math.round(Ar-Gt.top)}if(Jt)Vt=Math.sqrt((2*Gt.width**2+Gt.height**2)/3),Vt%2===0&&(Vt+=1);else{const ur=Math.max(Math.abs((Ht?Ht.clientWidth:0)-Kt),Kt)*2+2,Ar=Math.max(Math.abs((Ht?Ht.clientHeight:0)-Wt),Wt)*2+2;Vt=Math.sqrt(ur**2+Ar**2)}xt!=null&&xt.touches?Bt.current===null&&(Bt.current=()=>{Dt({pulsate:kt,rippleX:Kt,rippleY:Wt,rippleSize:Vt,cb:Ot})},Et.start(DELAY_RIPPLE,()=>{Bt.current&&(Bt.current(),Bt.current=null)})):Dt({pulsate:kt,rippleX:Kt,rippleY:Wt,rippleSize:Vt,cb:Ot})},[tt,Dt,Et]),Rt=reactExports.useCallback(()=>{$t({},{pulsate:!0})},[$t]),wt=reactExports.useCallback((xt,Nt)=>{if(Et.clear(),(xt==null?void 0:xt.type)==="touchend"&&Bt.current){Bt.current(),Bt.current=null,Et.start(0,()=>{wt(xt,Nt)});return}Bt.current=null,At(Ot=>Ot.length>0?Ot.slice(1):Ot),ft.current=Nt},[Et]);return reactExports.useImperativeHandle(_e,()=>({pulsate:Rt,start:$t,stop:wt}),[Rt,$t,wt]),jsxRuntimeExports.jsx(TouchRippleRoot,_extends$1({className:clsx(touchRippleClasses.root,rt.root,nt),ref:St},it,{children:jsxRuntimeExports.jsx(TransitionGroup$1,{component:null,exit:!0,children:ot})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(j){return generateUtilityClass("MuiButtonBase",j)}const buttonBaseClasses=generateUtilityClasses("MuiButtonBase",["root","disabled","focusVisible"]),_excluded$r=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$l=j=>{const{disabled:$,focusVisible:_e,focusVisibleClassName:et,classes:tt}=j,nt=composeClasses({root:["root",$&&"disabled",_e&&"focusVisible"]},getButtonBaseUtilityClass,tt);return _e&&et&&(nt.root+=` ${et}`),nt},ButtonBaseRoot=styled("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(j,$)=>$.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiButtonBase"}),{action:tt,centerRipple:rt=!1,children:nt,className:it,component:ot="button",disabled:At=!1,disableRipple:ut=!1,disableTouchRipple:ft=!1,focusRipple:dt=!1,LinkComponent:Et="a",onBlur:Bt,onClick:St,onContextMenu:Dt,onDragLeave:$t,onFocus:Rt,onFocusVisible:wt,onKeyDown:xt,onKeyUp:Nt,onMouseDown:Ot,onMouseLeave:kt,onMouseUp:Jt,onTouchEnd:jt,onTouchMove:Ht,onTouchStart:Gt,tabIndex:Kt=0,TouchRippleProps:Wt,touchRippleRef:Vt,type:ur}=et,Ar=_objectWithoutPropertiesLoose(et,_excluded$r),hr=reactExports.useRef(null),sr=reactExports.useRef(null),ar=useForkRef(sr,Vt),{isFocusVisibleRef:Yt,onFocus:pr,onBlur:Zt,ref:mr}=useIsFocusVisible(),[vr,_r]=reactExports.useState(!1);At&&vr&&_r(!1),reactExports.useImperativeHandle(tt,()=>({focusVisible:()=>{_r(!0),hr.current.focus()}}),[]);const[Er,Lr]=reactExports.useState(!1);reactExports.useEffect(()=>{Lr(!0)},[]);const Rr=Er&&!ut&&!At;reactExports.useEffect(()=>{vr&&dt&&!ut&&Er&&sr.current.pulsate()},[ut,dt,vr,Er]);function $r(rn,on,In=ft){return useEventCallback(Sn=>(on&&on(Sn),!In&&sr.current&&sr.current[rn](Sn),!0))}const xr=$r("start",Ot),Fr=$r("stop",Dt),Nr=$r("stop",$t),Xt=$r("stop",Jt),cr=$r("stop",rn=>{vr&&rn.preventDefault(),kt&&kt(rn)}),ir=$r("start",Gt),Qr=$r("stop",jt),Or=$r("stop",Ht),Yr=$r("stop",rn=>{Zt(rn),Yt.current===!1&&_r(!1),Bt&&Bt(rn)},!1),wr=useEventCallback(rn=>{hr.current||(hr.current=rn.currentTarget),pr(rn),Yt.current===!0&&(_r(!0),wt&&wt(rn)),Rt&&Rt(rn)}),rr=()=>{const rn=hr.current;return ot&&ot!=="button"&&!(rn.tagName==="A"&&rn.href)},er=reactExports.useRef(!1),lr=useEventCallback(rn=>{dt&&!er.current&&vr&&sr.current&&rn.key===" "&&(er.current=!0,sr.current.stop(rn,()=>{sr.current.start(rn)})),rn.target===rn.currentTarget&&rr()&&rn.key===" "&&rn.preventDefault(),xt&&xt(rn),rn.target===rn.currentTarget&&rr()&&rn.key==="Enter"&&!At&&(rn.preventDefault(),St&&St(rn))}),fr=useEventCallback(rn=>{dt&&rn.key===" "&&sr.current&&vr&&!rn.defaultPrevented&&(er.current=!1,sr.current.stop(rn,()=>{sr.current.pulsate(rn)})),Nt&&Nt(rn),St&&rn.target===rn.currentTarget&&rr()&&rn.key===" "&&!rn.defaultPrevented&&St(rn)});let yr=ot;yr==="button"&&(Ar.href||Ar.to)&&(yr=Et);const Ur={};yr==="button"?(Ur.type=ur===void 0?"button":ur,Ur.disabled=At):(!Ar.href&&!Ar.to&&(Ur.role="button"),At&&(Ur["aria-disabled"]=At));const Wr=useForkRef(_e,mr,hr),Pr=_extends$1({},et,{centerRipple:rt,component:ot,disabled:At,disableRipple:ut,disableTouchRipple:ft,focusRipple:dt,tabIndex:Kt,focusVisible:vr}),Zr=useUtilityClasses$l(Pr);return jsxRuntimeExports.jsxs(ButtonBaseRoot,_extends$1({as:yr,className:clsx(Zr.root,it),ownerState:Pr,onBlur:Yr,onClick:St,onContextMenu:Fr,onFocus:wr,onKeyDown:lr,onKeyUp:fr,onMouseDown:xr,onMouseLeave:cr,onMouseUp:Xt,onDragLeave:Nr,onTouchEnd:Qr,onTouchMove:Or,onTouchStart:ir,ref:Wr,tabIndex:At?-1:Kt,type:ur},Ur,Ar,{children:[nt,Rr?jsxRuntimeExports.jsx(TouchRipple$1,_extends$1({ref:ar,center:rt},Wt)):null]}))}),ButtonBase$1=ButtonBase;function getToggleButtonUtilityClass(j){return generateUtilityClass("MuiToggleButton",j)}const toggleButtonClasses=generateUtilityClasses("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),toggleButtonClasses$1=toggleButtonClasses,ToggleButtonGroupContext=reactExports.createContext({}),ToggleButtonGroupContext$1=ToggleButtonGroupContext,ToggleButtonGroupButtonContext=reactExports.createContext(void 0),ToggleButtonGroupButtonContext$1=ToggleButtonGroupButtonContext;function isValueSelected(j,$){return $===void 0||j===void 0?!1:Array.isArray($)?$.indexOf(j)>=0:j===$}const _excluded$q=["value"],_excluded2$3=["children","className","color","disabled","disableFocusRipple","fullWidth","onChange","onClick","selected","size","value"],useUtilityClasses$k=j=>{const{classes:$,fullWidth:_e,selected:et,disabled:tt,size:rt,color:nt}=j,it={root:["root",et&&"selected",tt&&"disabled",_e&&"fullWidth",`size${capitalize$1(rt)}`,nt]};return composeClasses(it,getToggleButtonUtilityClass,$)},ToggleButtonRoot=styled(ButtonBase$1,{name:"MuiToggleButton",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,$[`size${capitalize$1(_e.size)}`]]}})(({theme:j,ownerState:$})=>{let _e=$.color==="standard"?j.palette.text.primary:j.palette[$.color].main,et;return j.vars&&(_e=$.color==="standard"?j.vars.palette.text.primary:j.vars.palette[$.color].main,et=$.color==="standard"?j.vars.palette.text.primaryChannel:j.vars.palette[$.color].mainChannel),_extends$1({},j.typography.button,{borderRadius:(j.vars||j).shape.borderRadius,padding:11,border:`1px solid ${(j.vars||j).palette.divider}`,color:(j.vars||j).palette.action.active},$.fullWidth&&{width:"100%"},{[`&.${toggleButtonClasses$1.disabled}`]:{color:(j.vars||j).palette.action.disabled,border:`1px solid ${(j.vars||j).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:j.vars?`rgba(${j.vars.palette.text.primaryChannel} / ${j.vars.palette.action.hoverOpacity})`:alpha$1(j.palette.text.primary,j.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${toggleButtonClasses$1.selected}`]:{color:_e,backgroundColor:j.vars?`rgba(${et} / ${j.vars.palette.action.selectedOpacity})`:alpha$1(_e,j.palette.action.selectedOpacity),"&:hover":{backgroundColor:j.vars?`rgba(${et} / calc(${j.vars.palette.action.selectedOpacity} + ${j.vars.palette.action.hoverOpacity}))`:alpha$1(_e,j.palette.action.selectedOpacity+j.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:j.vars?`rgba(${et} / ${j.vars.palette.action.selectedOpacity})`:alpha$1(_e,j.palette.action.selectedOpacity)}}}},$.size==="small"&&{padding:7,fontSize:j.typography.pxToRem(13)},$.size==="large"&&{padding:15,fontSize:j.typography.pxToRem(15)})}),ToggleButton=reactExports.forwardRef(function j($,_e){const et=reactExports.useContext(ToggleButtonGroupContext$1),{value:tt}=et,rt=_objectWithoutPropertiesLoose(et,_excluded$q),nt=reactExports.useContext(ToggleButtonGroupButtonContext$1),it=resolveProps(_extends$1({},rt,{selected:isValueSelected($.value,tt)}),$),ot=useThemeProps({props:it,name:"MuiToggleButton"}),{children:At,className:ut,color:ft="standard",disabled:dt=!1,disableFocusRipple:Et=!1,fullWidth:Bt=!1,onChange:St,onClick:Dt,selected:$t,size:Rt="medium",value:wt}=ot,xt=_objectWithoutPropertiesLoose(ot,_excluded2$3),Nt=_extends$1({},ot,{color:ft,disabled:dt,disableFocusRipple:Et,fullWidth:Bt,size:Rt}),Ot=useUtilityClasses$k(Nt),kt=jt=>{Dt&&(Dt(jt,wt),jt.defaultPrevented)||St&&St(jt,wt)},Jt=nt||"";return jsxRuntimeExports.jsx(ToggleButtonRoot,_extends$1({className:clsx(rt.className,Ot.root,ut,Jt),disabled:dt,focusRipple:!Et,ref:_e,onClick:kt,onChange:St,value:wt,ownerState:Nt,"aria-pressed":$t},xt,{children:At}))}),ToggleButton$1=ToggleButton;function getToggleButtonGroupUtilityClass(j){return generateUtilityClass("MuiToggleButtonGroup",j)}const toggleButtonGroupClasses=generateUtilityClasses("MuiToggleButtonGroup",["root","selected","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),toggleButtonGroupClasses$1=toggleButtonGroupClasses,_excluded$p=["children","className","color","disabled","exclusive","fullWidth","onChange","orientation","size","value"],useUtilityClasses$j=j=>{const{classes:$,orientation:_e,fullWidth:et,disabled:tt}=j,rt={root:["root",_e==="vertical"&&"vertical",et&&"fullWidth"],grouped:["grouped",`grouped${capitalize$1(_e)}`,tt&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return composeClasses(rt,getToggleButtonGroupUtilityClass,$)},ToggleButtonGroupRoot=styled("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[{[`& .${toggleButtonGroupClasses$1.grouped}`]:$.grouped},{[`& .${toggleButtonGroupClasses$1.grouped}`]:$[`grouped${capitalize$1(_e.orientation)}`]},{[`& .${toggleButtonGroupClasses$1.firstButton}`]:$.firstButton},{[`& .${toggleButtonGroupClasses$1.lastButton}`]:$.lastButton},{[`& .${toggleButtonGroupClasses$1.middleButton}`]:$.middleButton},$.root,_e.orientation==="vertical"&&$.vertical,_e.fullWidth&&$.fullWidth]}})(({ownerState:j,theme:$})=>_extends$1({display:"inline-flex",borderRadius:($.vars||$).shape.borderRadius},j.orientation==="vertical"&&{flexDirection:"column"},j.fullWidth&&{width:"100%"},{[`& .${toggleButtonGroupClasses$1.grouped}`]:_extends$1({},j.orientation==="horizontal"?{[`&.${toggleButtonGroupClasses$1.selected} + .${toggleButtonGroupClasses$1.grouped}.${toggleButtonGroupClasses$1.selected}`]:{borderLeft:0,marginLeft:0}}:{[`&.${toggleButtonGroupClasses$1.selected} + .${toggleButtonGroupClasses$1.grouped}.${toggleButtonGroupClasses$1.selected}`]:{borderTop:0,marginTop:0}})},j.orientation==="horizontal"?{[`& .${toggleButtonGroupClasses$1.firstButton},& .${toggleButtonGroupClasses$1.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${toggleButtonGroupClasses$1.lastButton},& .${toggleButtonGroupClasses$1.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0}}:{[`& .${toggleButtonGroupClasses$1.firstButton},& .${toggleButtonGroupClasses$1.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${toggleButtonGroupClasses$1.lastButton},& .${toggleButtonGroupClasses$1.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0}},j.orientation==="horizontal"?{[`& .${toggleButtonGroupClasses$1.lastButton}.${toggleButtonClasses$1.disabled},& .${toggleButtonGroupClasses$1.middleButton}.${toggleButtonClasses$1.disabled}`]:{borderLeft:"1px solid transparent"}}:{[`& .${toggleButtonGroupClasses$1.lastButton}.${toggleButtonClasses$1.disabled},& .${toggleButtonGroupClasses$1.middleButton}.${toggleButtonClasses$1.disabled}`]:{borderTop:"1px solid transparent"}})),ToggleButtonGroup=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiToggleButtonGroup"}),{children:tt,className:rt,color:nt="standard",disabled:it=!1,exclusive:ot=!1,fullWidth:At=!1,onChange:ut,orientation:ft="horizontal",size:dt="medium",value:Et}=et,Bt=_objectWithoutPropertiesLoose(et,_excluded$p),St=_extends$1({},et,{disabled:it,fullWidth:At,orientation:ft,size:dt}),Dt=useUtilityClasses$j(St),$t=reactExports.useCallback((kt,Jt)=>{if(!ut)return;const jt=Et&&Et.indexOf(Jt);let Ht;Et&&jt>=0?(Ht=Et.slice(),Ht.splice(jt,1)):Ht=Et?Et.concat(Jt):[Jt],ut(kt,Ht)},[ut,Et]),Rt=reactExports.useCallback((kt,Jt)=>{ut&&ut(kt,Et===Jt?null:Jt)},[ut,Et]),wt=reactExports.useMemo(()=>({className:Dt.grouped,onChange:ot?Rt:$t,value:Et,size:dt,fullWidth:At,color:nt,disabled:it}),[Dt.grouped,ot,Rt,$t,Et,dt,At,nt,it]),xt=getValidReactChildren(tt),Nt=xt.length,Ot=kt=>{const Jt=kt===0,jt=kt===Nt-1;return Jt&&jt?"":Jt?Dt.firstButton:jt?Dt.lastButton:Dt.middleButton};return jsxRuntimeExports.jsx(ToggleButtonGroupRoot,_extends$1({role:"group",className:clsx(Dt.root,rt),ref:_e,ownerState:St},Bt,{children:jsxRuntimeExports.jsx(ToggleButtonGroupContext$1.Provider,{value:wt,children:xt.map((kt,Jt)=>jsxRuntimeExports.jsx(ToggleButtonGroupButtonContext$1.Provider,{value:Ot(Jt),children:kt},Jt))})}))}),ToggleButtonGroup$1=ToggleButtonGroup;function formControlState({props:j,states:$,muiFormControl:_e}){return $.reduce((et,tt)=>(et[tt]=j[tt],_e&&typeof j[tt]>"u"&&(et[tt]=_e[tt]),et),{})}const FormControlContext=reactExports.createContext(void 0),FormControlContext$1=FormControlContext;function useFormControl(){return reactExports.useContext(FormControlContext$1)}function getFormLabelUtilityClasses(j){return generateUtilityClass("MuiFormLabel",j)}const formLabelClasses=generateUtilityClasses("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),formLabelClasses$1=formLabelClasses,_excluded$o=["children","className","color","component","disabled","error","filled","focused","required"],useUtilityClasses$i=j=>{const{classes:$,color:_e,focused:et,disabled:tt,error:rt,filled:nt,required:it}=j,ot={root:["root",`color${capitalize$1(_e)}`,tt&&"disabled",rt&&"error",nt&&"filled",et&&"focused",it&&"required"],asterisk:["asterisk",rt&&"error"]};return composeClasses(ot,getFormLabelUtilityClasses,$)},FormLabelRoot=styled("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:j},$)=>_extends$1({},$.root,j.color==="secondary"&&$.colorSecondary,j.filled&&$.filled)})(({theme:j,ownerState:$})=>_extends$1({color:(j.vars||j).palette.text.secondary},j.typography.body1,{lineHeight:"1.4375em",padding:0,position:"relative",[`&.${formLabelClasses$1.focused}`]:{color:(j.vars||j).palette[$.color].main},[`&.${formLabelClasses$1.disabled}`]:{color:(j.vars||j).palette.text.disabled},[`&.${formLabelClasses$1.error}`]:{color:(j.vars||j).palette.error.main}})),AsteriskComponent=styled("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(j,$)=>$.asterisk})(({theme:j})=>({[`&.${formLabelClasses$1.error}`]:{color:(j.vars||j).palette.error.main}})),FormLabel=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiFormLabel"}),{children:tt,className:rt,component:nt="label"}=et,it=_objectWithoutPropertiesLoose(et,_excluded$o),ot=useFormControl(),At=formControlState({props:et,muiFormControl:ot,states:["color","required","focused","disabled","error","filled"]}),ut=_extends$1({},et,{color:At.color||"primary",component:nt,disabled:At.disabled,error:At.error,filled:At.filled,focused:At.focused,required:At.required}),ft=useUtilityClasses$i(ut);return jsxRuntimeExports.jsxs(FormLabelRoot,_extends$1({as:nt,ownerState:ut,className:clsx(ft.root,rt),ref:_e},it,{children:[tt,At.required&&jsxRuntimeExports.jsxs(AsteriskComponent,{ownerState:ut,"aria-hidden":!0,className:ft.asterisk,children:[" ","*"]})]}))}),FormLabel$1=FormLabel;function getInputLabelUtilityClasses(j){return generateUtilityClass("MuiInputLabel",j)}generateUtilityClasses("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const _excluded$n=["disableAnimation","margin","shrink","variant","className"],useUtilityClasses$h=j=>{const{classes:$,formControl:_e,size:et,shrink:tt,disableAnimation:rt,variant:nt,required:it}=j,ot={root:["root",_e&&"formControl",!rt&&"animated",tt&&"shrink",et&&et!=="normal"&&`size${capitalize$1(et)}`,nt],asterisk:[it&&"asterisk"]},At=composeClasses(ot,getInputLabelUtilityClasses,$);return _extends$1({},$,At)},InputLabelRoot=styled(FormLabel$1,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[{[`& .${formLabelClasses$1.asterisk}`]:$.asterisk},$.root,_e.formControl&&$.formControl,_e.size==="small"&&$.sizeSmall,_e.shrink&&$.shrink,!_e.disableAnimation&&$.animated,_e.focused&&$.focused,$[_e.variant]]}})(({theme:j,ownerState:$})=>_extends$1({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},$.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},$.size==="small"&&{transform:"translate(0, 17px) scale(1)"},$.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!$.disableAnimation&&{transition:j.transitions.create(["color","transform","max-width"],{duration:j.transitions.duration.shorter,easing:j.transitions.easing.easeOut})},$.variant==="filled"&&_extends$1({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},$.size==="small"&&{transform:"translate(12px, 13px) scale(1)"},$.shrink&&_extends$1({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},$.size==="small"&&{transform:"translate(12px, 4px) scale(0.75)"})),$.variant==="outlined"&&_extends$1({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},$.size==="small"&&{transform:"translate(14px, 9px) scale(1)"},$.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))),InputLabel=reactExports.forwardRef(function j($,_e){const et=useThemeProps({name:"MuiInputLabel",props:$}),{disableAnimation:tt=!1,shrink:rt,className:nt}=et,it=_objectWithoutPropertiesLoose(et,_excluded$n),ot=useFormControl();let At=rt;typeof At>"u"&&ot&&(At=ot.filled||ot.focused||ot.adornedStart);const ut=formControlState({props:et,muiFormControl:ot,states:["size","variant","required","focused"]}),ft=_extends$1({},et,{disableAnimation:tt,formControl:ot,shrink:At,size:ut.size,variant:ut.variant,required:ut.required,focused:ut.focused}),dt=useUtilityClasses$h(ft);return jsxRuntimeExports.jsx(InputLabelRoot,_extends$1({"data-shrink":At,ownerState:ft,ref:_e,className:clsx(dt.root,nt)},it,{classes:dt}))}),InputLabel$1=InputLabel,ListContext=reactExports.createContext({}),ListContext$1=ListContext,dividerClasses=generateUtilityClasses("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),dividerClasses$1=dividerClasses,listItemIconClasses=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),listItemIconClasses$1=listItemIconClasses,listItemTextClasses=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),listItemTextClasses$1=listItemTextClasses;function getMenuItemUtilityClass(j){return generateUtilityClass("MuiMenuItem",j)}const menuItemClasses=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),menuItemClasses$1=menuItemClasses,_excluded$m=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],overridesResolver=(j,$)=>{const{ownerState:_e}=j;return[$.root,_e.dense&&$.dense,_e.divider&&$.divider,!_e.disableGutters&&$.gutters]},useUtilityClasses$g=j=>{const{disabled:$,dense:_e,divider:et,disableGutters:tt,selected:rt,classes:nt}=j,ot=composeClasses({root:["root",_e&&"dense",$&&"disabled",!tt&&"gutters",et&&"divider",rt&&"selected"]},getMenuItemUtilityClass,nt);return _extends$1({},nt,ot)},MenuItemRoot=styled(ButtonBase$1,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver})(({theme:j,ownerState:$})=>_extends$1({},j.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!$.disableGutters&&{paddingLeft:16,paddingRight:16},$.divider&&{borderBottom:`1px solid ${(j.vars||j).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(j.vars||j).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${menuItemClasses$1.selected}`]:{backgroundColor:j.vars?`rgba(${j.vars.palette.primary.mainChannel} / ${j.vars.palette.action.selectedOpacity})`:alpha_1(j.palette.primary.main,j.palette.action.selectedOpacity),[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:j.vars?`rgba(${j.vars.palette.primary.mainChannel} / calc(${j.vars.palette.action.selectedOpacity} + ${j.vars.palette.action.focusOpacity}))`:alpha_1(j.palette.primary.main,j.palette.action.selectedOpacity+j.palette.action.focusOpacity)}},[`&.${menuItemClasses$1.selected}:hover`]:{backgroundColor:j.vars?`rgba(${j.vars.palette.primary.mainChannel} / calc(${j.vars.palette.action.selectedOpacity} + ${j.vars.palette.action.hoverOpacity}))`:alpha_1(j.palette.primary.main,j.palette.action.selectedOpacity+j.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:j.vars?`rgba(${j.vars.palette.primary.mainChannel} / ${j.vars.palette.action.selectedOpacity})`:alpha_1(j.palette.primary.main,j.palette.action.selectedOpacity)}},[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:(j.vars||j).palette.action.focus},[`&.${menuItemClasses$1.disabled}`]:{opacity:(j.vars||j).palette.action.disabledOpacity},[`& + .${dividerClasses$1.root}`]:{marginTop:j.spacing(1),marginBottom:j.spacing(1)},[`& + .${dividerClasses$1.inset}`]:{marginLeft:52},[`& .${listItemTextClasses$1.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses$1.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses$1.root}`]:{minWidth:36}},!$.dense&&{[j.breakpoints.up("sm")]:{minHeight:"auto"}},$.dense&&_extends$1({minHeight:32,paddingTop:4,paddingBottom:4},j.typography.body2,{[`& .${listItemIconClasses$1.root} svg`]:{fontSize:"1.25rem"}}))),MenuItem=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiMenuItem"}),{autoFocus:tt=!1,component:rt="li",dense:nt=!1,divider:it=!1,disableGutters:ot=!1,focusVisibleClassName:At,role:ut="menuitem",tabIndex:ft,className:dt}=et,Et=_objectWithoutPropertiesLoose(et,_excluded$m),Bt=reactExports.useContext(ListContext$1),St=reactExports.useMemo(()=>({dense:nt||Bt.dense||!1,disableGutters:ot}),[Bt.dense,nt,ot]),Dt=reactExports.useRef(null);useEnhancedEffect(()=>{tt&&Dt.current&&Dt.current.focus()},[tt]);const $t=_extends$1({},et,{dense:St.dense,divider:it,disableGutters:ot}),Rt=useUtilityClasses$g(et),wt=useForkRef(Dt,_e);let xt;return et.disabled||(xt=ft!==void 0?ft:-1),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:St,children:jsxRuntimeExports.jsx(MenuItemRoot,_extends$1({ref:wt,role:ut,tabIndex:xt,component:rt,focusVisibleClassName:clsx(Rt.focusVisible,At),className:clsx(Rt.root,dt)},Et,{ownerState:$t,classes:Rt}))})}),MenuItem$1=MenuItem;function hasValue(j){return j!=null&&!(Array.isArray(j)&&j.length===0)}function isFilled(j,$=!1){return j&&(hasValue(j.value)&&j.value!==""||$&&hasValue(j.defaultValue)&&j.defaultValue!=="")}function isAdornedStart(j){return j.startAdornment}function getFormControlUtilityClasses(j){return generateUtilityClass("MuiFormControl",j)}generateUtilityClasses("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const _excluded$l=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],useUtilityClasses$f=j=>{const{classes:$,margin:_e,fullWidth:et}=j,tt={root:["root",_e!=="none"&&`margin${capitalize$1(_e)}`,et&&"fullWidth"]};return composeClasses(tt,getFormControlUtilityClasses,$)},FormControlRoot=styled("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:j},$)=>_extends$1({},$.root,$[`margin${capitalize$1(j.margin)}`],j.fullWidth&&$.fullWidth)})(({ownerState:j})=>_extends$1({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},j.margin==="normal"&&{marginTop:16,marginBottom:8},j.margin==="dense"&&{marginTop:8,marginBottom:4},j.fullWidth&&{width:"100%"})),FormControl=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiFormControl"}),{children:tt,className:rt,color:nt="primary",component:it="div",disabled:ot=!1,error:At=!1,focused:ut,fullWidth:ft=!1,hiddenLabel:dt=!1,margin:Et="none",required:Bt=!1,size:St="medium",variant:Dt="outlined"}=et,$t=_objectWithoutPropertiesLoose(et,_excluded$l),Rt=_extends$1({},et,{color:nt,component:it,disabled:ot,error:At,fullWidth:ft,hiddenLabel:dt,margin:Et,required:Bt,size:St,variant:Dt}),wt=useUtilityClasses$f(Rt),[xt,Nt]=reactExports.useState(()=>{let Wt=!1;return tt&&reactExports.Children.forEach(tt,Vt=>{if(!isMuiElement(Vt,["Input","Select"]))return;const ur=isMuiElement(Vt,["Select"])?Vt.props.input:Vt;ur&&isAdornedStart(ur.props)&&(Wt=!0)}),Wt}),[Ot,kt]=reactExports.useState(()=>{let Wt=!1;return tt&&reactExports.Children.forEach(tt,Vt=>{isMuiElement(Vt,["Input","Select"])&&(isFilled(Vt.props,!0)||isFilled(Vt.props.inputProps,!0))&&(Wt=!0)}),Wt}),[Jt,jt]=reactExports.useState(!1);ot&&Jt&&jt(!1);const Ht=ut!==void 0&&!ot?ut:Jt;let Gt;const Kt=reactExports.useMemo(()=>({adornedStart:xt,setAdornedStart:Nt,color:nt,disabled:ot,error:At,filled:Ot,focused:Ht,fullWidth:ft,hiddenLabel:dt,size:St,onBlur:()=>{jt(!1)},onEmpty:()=>{kt(!1)},onFilled:()=>{kt(!0)},onFocus:()=>{jt(!0)},registerEffect:Gt,required:Bt,variant:Dt}),[xt,nt,ot,At,Ot,Ht,ft,dt,Gt,Bt,St,Dt]);return jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:Kt,children:jsxRuntimeExports.jsx(FormControlRoot,_extends$1({as:it,ownerState:Rt,className:clsx(wt.root,rt),ref:_e},$t,{children:tt}))})}),FormControl$1=FormControl;function isHostComponent(j){return typeof j=="string"}function appendOwnerState(j,$,_e){return j===void 0||isHostComponent(j)?$:_extends$1({},$,{ownerState:_extends$1({},$.ownerState,_e)})}function extractEventHandlers(j,$=[]){if(j===void 0)return{};const _e={};return Object.keys(j).filter(et=>et.match(/^on[A-Z]/)&&typeof j[et]=="function"&&!$.includes(et)).forEach(et=>{_e[et]=j[et]}),_e}function resolveComponentProps(j,$,_e){return typeof j=="function"?j($,_e):j}function omitEventHandlers(j){if(j===void 0)return{};const $={};return Object.keys(j).filter(_e=>!(_e.match(/^on[A-Z]/)&&typeof j[_e]=="function")).forEach(_e=>{$[_e]=j[_e]}),$}function mergeSlotProps(j){const{getSlotProps:$,additionalProps:_e,externalSlotProps:et,externalForwardedProps:tt,className:rt}=j;if(!$){const Et=clsx(_e==null?void 0:_e.className,rt,tt==null?void 0:tt.className,et==null?void 0:et.className),Bt=_extends$1({},_e==null?void 0:_e.style,tt==null?void 0:tt.style,et==null?void 0:et.style),St=_extends$1({},_e,tt,et);return Et.length>0&&(St.className=Et),Object.keys(Bt).length>0&&(St.style=Bt),{props:St,internalRef:void 0}}const nt=extractEventHandlers(_extends$1({},tt,et)),it=omitEventHandlers(et),ot=omitEventHandlers(tt),At=$(nt),ut=clsx(At==null?void 0:At.className,_e==null?void 0:_e.className,rt,tt==null?void 0:tt.className,et==null?void 0:et.className),ft=_extends$1({},At==null?void 0:At.style,_e==null?void 0:_e.style,tt==null?void 0:tt.style,et==null?void 0:et.style),dt=_extends$1({},At,_e,ot,it);return ut.length>0&&(dt.className=ut),Object.keys(ft).length>0&&(dt.style=ft),{props:dt,internalRef:At.ref}}const _excluded$k=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function useSlotProps(j){var $;const{elementType:_e,externalSlotProps:et,ownerState:tt,skipResolvingSlotProps:rt=!1}=j,nt=_objectWithoutPropertiesLoose(j,_excluded$k),it=rt?{}:resolveComponentProps(et,tt),{props:ot,internalRef:At}=mergeSlotProps(_extends$1({},nt,{externalSlotProps:it})),ut=useForkRef(At,it==null?void 0:it.ref,($=j.additionalProps)==null?void 0:$.ref);return appendOwnerState(_e,_extends$1({},ot,{ref:ut}),tt)}function getListUtilityClass(j){return generateUtilityClass("MuiList",j)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);const _excluded$j=["children","className","component","dense","disablePadding","subheader"],useUtilityClasses$e=j=>{const{classes:$,disablePadding:_e,dense:et,subheader:tt}=j;return composeClasses({root:["root",!_e&&"padding",et&&"dense",tt&&"subheader"]},getListUtilityClass,$)},ListRoot=styled("ul",{name:"MuiList",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,!_e.disablePadding&&$.padding,_e.dense&&$.dense,_e.subheader&&$.subheader]}})(({ownerState:j})=>_extends$1({listStyle:"none",margin:0,padding:0,position:"relative"},!j.disablePadding&&{paddingTop:8,paddingBottom:8},j.subheader&&{paddingTop:0})),List=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiList"}),{children:tt,className:rt,component:nt="ul",dense:it=!1,disablePadding:ot=!1,subheader:At}=et,ut=_objectWithoutPropertiesLoose(et,_excluded$j),ft=reactExports.useMemo(()=>({dense:it}),[it]),dt=_extends$1({},et,{component:nt,dense:it,disablePadding:ot}),Et=useUtilityClasses$e(dt);return jsxRuntimeExports.jsx(ListContext$1.Provider,{value:ft,children:jsxRuntimeExports.jsxs(ListRoot,_extends$1({as:nt,className:clsx(Et.root,rt),ref:_e,ownerState:dt},ut,{children:[At,tt]}))})}),List$1=List,_excluded$i=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function nextItem(j,$,_e){return j===$?j.firstChild:$&&$.nextElementSibling?$.nextElementSibling:_e?null:j.firstChild}function previousItem(j,$,_e){return j===$?_e?j.firstChild:j.lastChild:$&&$.previousElementSibling?$.previousElementSibling:_e?null:j.lastChild}function textCriteriaMatches(j,$){if($===void 0)return!0;let _e=j.innerText;return _e===void 0&&(_e=j.textContent),_e=_e.trim().toLowerCase(),_e.length===0?!1:$.repeating?_e[0]===$.keys[0]:_e.indexOf($.keys.join(""))===0}function moveFocus(j,$,_e,et,tt,rt){let nt=!1,it=tt(j,$,$?_e:!1);for(;it;){if(it===j.firstChild){if(nt)return!1;nt=!0}const ot=et?!1:it.disabled||it.getAttribute("aria-disabled")==="true";if(!it.hasAttribute("tabindex")||!textCriteriaMatches(it,rt)||ot)it=tt(j,it,_e);else return it.focus(),!0}return!1}const MenuList=reactExports.forwardRef(function j($,_e){const{actions:et,autoFocus:tt=!1,autoFocusItem:rt=!1,children:nt,className:it,disabledItemsFocusable:ot=!1,disableListWrap:At=!1,onKeyDown:ut,variant:ft="selectedMenu"}=$,dt=_objectWithoutPropertiesLoose($,_excluded$i),Et=reactExports.useRef(null),Bt=reactExports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect(()=>{tt&&Et.current.focus()},[tt]),reactExports.useImperativeHandle(et,()=>({adjustStyleForScrollbar:(wt,{direction:xt})=>{const Nt=!Et.current.style.width;if(wt.clientHeight{const xt=Et.current,Nt=wt.key,Ot=ownerDocument(xt).activeElement;if(Nt==="ArrowDown")wt.preventDefault(),moveFocus(xt,Ot,At,ot,nextItem);else if(Nt==="ArrowUp")wt.preventDefault(),moveFocus(xt,Ot,At,ot,previousItem);else if(Nt==="Home")wt.preventDefault(),moveFocus(xt,null,At,ot,nextItem);else if(Nt==="End")wt.preventDefault(),moveFocus(xt,null,At,ot,previousItem);else if(Nt.length===1){const kt=Bt.current,Jt=Nt.toLowerCase(),jt=performance.now();kt.keys.length>0&&(jt-kt.lastTime>500?(kt.keys=[],kt.repeating=!0,kt.previousKeyMatched=!0):kt.repeating&&Jt!==kt.keys[0]&&(kt.repeating=!1)),kt.lastTime=jt,kt.keys.push(Jt);const Ht=Ot&&!kt.repeating&&textCriteriaMatches(Ot,kt);kt.previousKeyMatched&&(Ht||moveFocus(xt,Ot,!1,ot,nextItem,kt))?wt.preventDefault():kt.previousKeyMatched=!1}ut&&ut(wt)},Dt=useForkRef(Et,_e);let $t=-1;reactExports.Children.forEach(nt,(wt,xt)=>{if(!reactExports.isValidElement(wt)){$t===xt&&($t+=1,$t>=nt.length&&($t=-1));return}wt.props.disabled||(ft==="selectedMenu"&&wt.props.selected||$t===-1)&&($t=xt),$t===xt&&(wt.props.disabled||wt.props.muiSkipListHighlight||wt.type.muiSkipListHighlight)&&($t+=1,$t>=nt.length&&($t=-1))});const Rt=reactExports.Children.map(nt,(wt,xt)=>{if(xt===$t){const Nt={};return rt&&(Nt.autoFocus=!0),wt.props.tabIndex===void 0&&ft==="selectedMenu"&&(Nt.tabIndex=0),reactExports.cloneElement(wt,Nt)}return wt});return jsxRuntimeExports.jsx(List$1,_extends$1({role:"menu",ref:Dt,className:it,onKeyDown:St,tabIndex:tt?0:-1},dt,{children:Rt}))}),MenuList$1=MenuList,reflow=j=>j.scrollTop;function getTransitionProps(j,$){var _e,et;const{timeout:tt,easing:rt,style:nt={}}=j;return{duration:(_e=nt.transitionDuration)!=null?_e:typeof tt=="number"?tt:tt[$.mode]||0,easing:(et=nt.transitionTimingFunction)!=null?et:typeof rt=="object"?rt[$.mode]:rt,delay:nt.transitionDelay}}const _excluded$h=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function getScale(j){return`scale(${j}, ${j**2})`}const styles$2={entering:{opacity:1,transform:getScale(1)},entered:{opacity:1,transform:"none"}},isWebKit154=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Grow=reactExports.forwardRef(function j($,_e){const{addEndListener:et,appear:tt=!0,children:rt,easing:nt,in:it,onEnter:ot,onEntered:At,onEntering:ut,onExit:ft,onExited:dt,onExiting:Et,style:Bt,timeout:St="auto",TransitionComponent:Dt=Transition$2}=$,$t=_objectWithoutPropertiesLoose($,_excluded$h),Rt=useTimeout(),wt=reactExports.useRef(),xt=useTheme(),Nt=reactExports.useRef(null),Ot=useForkRef(Nt,rt.ref,_e),kt=ur=>Ar=>{if(ur){const hr=Nt.current;Ar===void 0?ur(hr):ur(hr,Ar)}},Jt=kt(ut),jt=kt((ur,Ar)=>{reflow(ur);const{duration:hr,delay:sr,easing:ar}=getTransitionProps({style:Bt,timeout:St,easing:nt},{mode:"enter"});let Yt;St==="auto"?(Yt=xt.transitions.getAutoHeightDuration(ur.clientHeight),wt.current=Yt):Yt=hr,ur.style.transition=[xt.transitions.create("opacity",{duration:Yt,delay:sr}),xt.transitions.create("transform",{duration:isWebKit154?Yt:Yt*.666,delay:sr,easing:ar})].join(","),ot&&ot(ur,Ar)}),Ht=kt(At),Gt=kt(Et),Kt=kt(ur=>{const{duration:Ar,delay:hr,easing:sr}=getTransitionProps({style:Bt,timeout:St,easing:nt},{mode:"exit"});let ar;St==="auto"?(ar=xt.transitions.getAutoHeightDuration(ur.clientHeight),wt.current=ar):ar=Ar,ur.style.transition=[xt.transitions.create("opacity",{duration:ar,delay:hr}),xt.transitions.create("transform",{duration:isWebKit154?ar:ar*.666,delay:isWebKit154?hr:hr||ar*.333,easing:sr})].join(","),ur.style.opacity=0,ur.style.transform=getScale(.75),ft&&ft(ur)}),Wt=kt(dt),Vt=ur=>{St==="auto"&&Rt.start(wt.current||0,ur),et&&et(Nt.current,ur)};return jsxRuntimeExports.jsx(Dt,_extends$1({appear:tt,in:it,nodeRef:Nt,onEnter:jt,onEntered:Ht,onEntering:Jt,onExit:Kt,onExited:Wt,onExiting:Gt,addEndListener:Vt,timeout:St==="auto"?null:St},$t,{children:(ur,Ar)=>reactExports.cloneElement(rt,_extends$1({style:_extends$1({opacity:0,transform:getScale(.75),visibility:ur==="exited"&&!it?"hidden":void 0},styles$2[ur],Bt,rt.props.style),ref:Ot},Ar))}))});Grow.muiSupportAuto=!0;const Grow$1=Grow;function isOverflowing(j){const $=ownerDocument(j);return $.body===j?ownerWindow(j).innerWidth>$.documentElement.clientWidth:j.scrollHeight>j.clientHeight}function ariaHidden(j,$){$?j.setAttribute("aria-hidden","true"):j.removeAttribute("aria-hidden")}function getPaddingRight(j){return parseInt(ownerWindow(j).getComputedStyle(j).paddingRight,10)||0}function isAriaHiddenForbiddenOnElement(j){const _e=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(j.tagName)!==-1,et=j.tagName==="INPUT"&&j.getAttribute("type")==="hidden";return _e||et}function ariaHiddenSiblings(j,$,_e,et,tt){const rt=[$,_e,...et];[].forEach.call(j.children,nt=>{const it=rt.indexOf(nt)===-1,ot=!isAriaHiddenForbiddenOnElement(nt);it&&ot&&ariaHidden(nt,tt)})}function findIndexOf(j,$){let _e=-1;return j.some((et,tt)=>$(et)?(_e=tt,!0):!1),_e}function handleContainer(j,$){const _e=[],et=j.container;if(!$.disableScrollLock){if(isOverflowing(et)){const nt=getScrollbarSize(ownerDocument(et));_e.push({value:et.style.paddingRight,property:"padding-right",el:et}),et.style.paddingRight=`${getPaddingRight(et)+nt}px`;const it=ownerDocument(et).querySelectorAll(".mui-fixed");[].forEach.call(it,ot=>{_e.push({value:ot.style.paddingRight,property:"padding-right",el:ot}),ot.style.paddingRight=`${getPaddingRight(ot)+nt}px`})}let rt;if(et.parentNode instanceof DocumentFragment)rt=ownerDocument(et).body;else{const nt=et.parentElement,it=ownerWindow(et);rt=(nt==null?void 0:nt.nodeName)==="HTML"&&it.getComputedStyle(nt).overflowY==="scroll"?nt:et}_e.push({value:rt.style.overflow,property:"overflow",el:rt},{value:rt.style.overflowX,property:"overflow-x",el:rt},{value:rt.style.overflowY,property:"overflow-y",el:rt}),rt.style.overflow="hidden"}return()=>{_e.forEach(({value:rt,el:nt,property:it})=>{rt?nt.style.setProperty(it,rt):nt.style.removeProperty(it)})}}function getHiddenSiblings(j){const $=[];return[].forEach.call(j.children,_e=>{_e.getAttribute("aria-hidden")==="true"&&$.push(_e)}),$}class ModalManager{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add($,_e){let et=this.modals.indexOf($);if(et!==-1)return et;et=this.modals.length,this.modals.push($),$.modalRef&&ariaHidden($.modalRef,!1);const tt=getHiddenSiblings(_e);ariaHiddenSiblings(_e,$.mount,$.modalRef,tt,!0);const rt=findIndexOf(this.containers,nt=>nt.container===_e);return rt!==-1?(this.containers[rt].modals.push($),et):(this.containers.push({modals:[$],container:_e,restore:null,hiddenSiblings:tt}),et)}mount($,_e){const et=findIndexOf(this.containers,rt=>rt.modals.indexOf($)!==-1),tt=this.containers[et];tt.restore||(tt.restore=handleContainer(tt,_e))}remove($,_e=!0){const et=this.modals.indexOf($);if(et===-1)return et;const tt=findIndexOf(this.containers,nt=>nt.modals.indexOf($)!==-1),rt=this.containers[tt];if(rt.modals.splice(rt.modals.indexOf($),1),this.modals.splice(et,1),rt.modals.length===0)rt.restore&&rt.restore(),$.modalRef&&ariaHidden($.modalRef,_e),ariaHiddenSiblings(rt.container,$.mount,$.modalRef,rt.hiddenSiblings,!1),this.containers.splice(tt,1);else{const nt=rt.modals[rt.modals.length-1];nt.modalRef&&ariaHidden(nt.modalRef,!1)}return et}isTopModal($){return this.modals.length>0&&this.modals[this.modals.length-1]===$}}function getContainer$1(j){return typeof j=="function"?j():j}function getHasTransition(j){return j?j.props.hasOwnProperty("in"):!1}const defaultManager=new ModalManager;function useModal(j){const{container:$,disableEscapeKeyDown:_e=!1,disableScrollLock:et=!1,manager:tt=defaultManager,closeAfterTransition:rt=!1,onTransitionEnter:nt,onTransitionExited:it,children:ot,onClose:At,open:ut,rootRef:ft}=j,dt=reactExports.useRef({}),Et=reactExports.useRef(null),Bt=reactExports.useRef(null),St=useForkRef(Bt,ft),[Dt,$t]=reactExports.useState(!ut),Rt=getHasTransition(ot);let wt=!0;(j["aria-hidden"]==="false"||j["aria-hidden"]===!1)&&(wt=!1);const xt=()=>ownerDocument(Et.current),Nt=()=>(dt.current.modalRef=Bt.current,dt.current.mount=Et.current,dt.current),Ot=()=>{tt.mount(Nt(),{disableScrollLock:et}),Bt.current&&(Bt.current.scrollTop=0)},kt=useEventCallback(()=>{const Ar=getContainer$1($)||xt().body;tt.add(Nt(),Ar),Bt.current&&Ot()}),Jt=reactExports.useCallback(()=>tt.isTopModal(Nt()),[tt]),jt=useEventCallback(Ar=>{Et.current=Ar,Ar&&(ut&&Jt()?Ot():Bt.current&&ariaHidden(Bt.current,wt))}),Ht=reactExports.useCallback(()=>{tt.remove(Nt(),wt)},[wt,tt]);reactExports.useEffect(()=>()=>{Ht()},[Ht]),reactExports.useEffect(()=>{ut?kt():(!Rt||!rt)&&Ht()},[ut,Ht,Rt,rt,kt]);const Gt=Ar=>hr=>{var sr;(sr=Ar.onKeyDown)==null||sr.call(Ar,hr),!(hr.key!=="Escape"||hr.which===229||!Jt())&&(_e||(hr.stopPropagation(),At&&At(hr,"escapeKeyDown")))},Kt=Ar=>hr=>{var sr;(sr=Ar.onClick)==null||sr.call(Ar,hr),hr.target===hr.currentTarget&&At&&At(hr,"backdropClick")};return{getRootProps:(Ar={})=>{const hr=extractEventHandlers(j);delete hr.onTransitionEnter,delete hr.onTransitionExited;const sr=_extends$1({},hr,Ar);return _extends$1({role:"presentation"},sr,{onKeyDown:Gt(sr),ref:St})},getBackdropProps:(Ar={})=>{const hr=Ar;return _extends$1({"aria-hidden":!0},hr,{onClick:Kt(hr),open:ut})},getTransitionProps:()=>{const Ar=()=>{$t(!1),nt&&nt()},hr=()=>{$t(!0),it&&it(),rt&&Ht()};return{onEnter:createChainedFunction(Ar,ot==null?void 0:ot.props.onEnter),onExited:createChainedFunction(hr,ot==null?void 0:ot.props.onExited)}},rootRef:St,portalRef:jt,isTopModal:Jt,exited:Dt,hasTransition:Rt}}const candidatesSelector=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(j){const $=parseInt(j.getAttribute("tabindex")||"",10);return Number.isNaN($)?j.contentEditable==="true"||(j.nodeName==="AUDIO"||j.nodeName==="VIDEO"||j.nodeName==="DETAILS")&&j.getAttribute("tabindex")===null?0:j.tabIndex:$}function isNonTabbableRadio(j){if(j.tagName!=="INPUT"||j.type!=="radio"||!j.name)return!1;const $=et=>j.ownerDocument.querySelector(`input[type="radio"]${et}`);let _e=$(`[name="${j.name}"]:checked`);return _e||(_e=$(`[name="${j.name}"]`)),_e!==j}function isNodeMatchingSelectorFocusable(j){return!(j.disabled||j.tagName==="INPUT"&&j.type==="hidden"||isNonTabbableRadio(j))}function defaultGetTabbable(j){const $=[],_e=[];return Array.from(j.querySelectorAll(candidatesSelector)).forEach((et,tt)=>{const rt=getTabIndex(et);rt===-1||!isNodeMatchingSelectorFocusable(et)||(rt===0?$.push(et):_e.push({documentOrder:tt,tabIndex:rt,node:et}))}),_e.sort((et,tt)=>et.tabIndex===tt.tabIndex?et.documentOrder-tt.documentOrder:et.tabIndex-tt.tabIndex).map(et=>et.node).concat($)}function defaultIsEnabled(){return!0}function FocusTrap(j){const{children:$,disableAutoFocus:_e=!1,disableEnforceFocus:et=!1,disableRestoreFocus:tt=!1,getTabbable:rt=defaultGetTabbable,isEnabled:nt=defaultIsEnabled,open:it}=j,ot=reactExports.useRef(!1),At=reactExports.useRef(null),ut=reactExports.useRef(null),ft=reactExports.useRef(null),dt=reactExports.useRef(null),Et=reactExports.useRef(!1),Bt=reactExports.useRef(null),St=useForkRef($.ref,Bt),Dt=reactExports.useRef(null);reactExports.useEffect(()=>{!it||!Bt.current||(Et.current=!_e)},[_e,it]),reactExports.useEffect(()=>{if(!it||!Bt.current)return;const wt=ownerDocument(Bt.current);return Bt.current.contains(wt.activeElement)||(Bt.current.hasAttribute("tabIndex")||Bt.current.setAttribute("tabIndex","-1"),Et.current&&Bt.current.focus()),()=>{tt||(ft.current&&ft.current.focus&&(ot.current=!0,ft.current.focus()),ft.current=null)}},[it]),reactExports.useEffect(()=>{if(!it||!Bt.current)return;const wt=ownerDocument(Bt.current),xt=kt=>{Dt.current=kt,!(et||!nt()||kt.key!=="Tab")&&wt.activeElement===Bt.current&&kt.shiftKey&&(ot.current=!0,ut.current&&ut.current.focus())},Nt=()=>{const kt=Bt.current;if(kt===null)return;if(!wt.hasFocus()||!nt()||ot.current){ot.current=!1;return}if(kt.contains(wt.activeElement)||et&&wt.activeElement!==At.current&&wt.activeElement!==ut.current)return;if(wt.activeElement!==dt.current)dt.current=null;else if(dt.current!==null)return;if(!Et.current)return;let Jt=[];if((wt.activeElement===At.current||wt.activeElement===ut.current)&&(Jt=rt(Bt.current)),Jt.length>0){var jt,Ht;const Gt=!!((jt=Dt.current)!=null&&jt.shiftKey&&((Ht=Dt.current)==null?void 0:Ht.key)==="Tab"),Kt=Jt[0],Wt=Jt[Jt.length-1];typeof Kt!="string"&&typeof Wt!="string"&&(Gt?Wt.focus():Kt.focus())}else kt.focus()};wt.addEventListener("focusin",Nt),wt.addEventListener("keydown",xt,!0);const Ot=setInterval(()=>{wt.activeElement&&wt.activeElement.tagName==="BODY"&&Nt()},50);return()=>{clearInterval(Ot),wt.removeEventListener("focusin",Nt),wt.removeEventListener("keydown",xt,!0)}},[_e,et,tt,nt,it,rt]);const $t=wt=>{ft.current===null&&(ft.current=wt.relatedTarget),Et.current=!0,dt.current=wt.target;const xt=$.props.onFocus;xt&&xt(wt)},Rt=wt=>{ft.current===null&&(ft.current=wt.relatedTarget),Et.current=!0};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{tabIndex:it?0:-1,onFocus:Rt,ref:At,"data-testid":"sentinelStart"}),reactExports.cloneElement($,{ref:St,onFocus:$t}),jsxRuntimeExports.jsx("div",{tabIndex:it?0:-1,onFocus:Rt,ref:ut,"data-testid":"sentinelEnd"})]})}function getContainer(j){return typeof j=="function"?j():j}const Portal=reactExports.forwardRef(function j($,_e){const{children:et,container:tt,disablePortal:rt=!1}=$,[nt,it]=reactExports.useState(null),ot=useForkRef(reactExports.isValidElement(et)?et.ref:null,_e);if(useEnhancedEffect(()=>{rt||it(getContainer(tt)||document.body)},[tt,rt]),useEnhancedEffect(()=>{if(nt&&!rt)return setRef(_e,nt),()=>{setRef(_e,null)}},[_e,nt,rt]),rt){if(reactExports.isValidElement(et)){const At={ref:ot};return reactExports.cloneElement(et,At)}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:et})}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:nt&&reactDomExports.createPortal(et,nt)})}),_excluded$g=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],styles$1={entering:{opacity:1},entered:{opacity:1}},Fade=reactExports.forwardRef(function j($,_e){const et=useTheme(),tt={enter:et.transitions.duration.enteringScreen,exit:et.transitions.duration.leavingScreen},{addEndListener:rt,appear:nt=!0,children:it,easing:ot,in:At,onEnter:ut,onEntered:ft,onEntering:dt,onExit:Et,onExited:Bt,onExiting:St,style:Dt,timeout:$t=tt,TransitionComponent:Rt=Transition$2}=$,wt=_objectWithoutPropertiesLoose($,_excluded$g),xt=reactExports.useRef(null),Nt=useForkRef(xt,it.ref,_e),Ot=Vt=>ur=>{if(Vt){const Ar=xt.current;ur===void 0?Vt(Ar):Vt(Ar,ur)}},kt=Ot(dt),Jt=Ot((Vt,ur)=>{reflow(Vt);const Ar=getTransitionProps({style:Dt,timeout:$t,easing:ot},{mode:"enter"});Vt.style.webkitTransition=et.transitions.create("opacity",Ar),Vt.style.transition=et.transitions.create("opacity",Ar),ut&&ut(Vt,ur)}),jt=Ot(ft),Ht=Ot(St),Gt=Ot(Vt=>{const ur=getTransitionProps({style:Dt,timeout:$t,easing:ot},{mode:"exit"});Vt.style.webkitTransition=et.transitions.create("opacity",ur),Vt.style.transition=et.transitions.create("opacity",ur),Et&&Et(Vt)}),Kt=Ot(Bt),Wt=Vt=>{rt&&rt(xt.current,Vt)};return jsxRuntimeExports.jsx(Rt,_extends$1({appear:nt,in:At,nodeRef:xt,onEnter:Jt,onEntered:jt,onEntering:kt,onExit:Gt,onExited:Kt,onExiting:Ht,addEndListener:Wt,timeout:$t},wt,{children:(Vt,ur)=>reactExports.cloneElement(it,_extends$1({style:_extends$1({opacity:0,visibility:Vt==="exited"&&!At?"hidden":void 0},styles$1[Vt],Dt,it.props.style),ref:Nt},ur))}))}),Fade$1=Fade;function getBackdropUtilityClass(j){return generateUtilityClass("MuiBackdrop",j)}generateUtilityClasses("MuiBackdrop",["root","invisible"]);const _excluded$f=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],useUtilityClasses$d=j=>{const{classes:$,invisible:_e}=j;return composeClasses({root:["root",_e&&"invisible"]},getBackdropUtilityClass,$)},BackdropRoot=styled("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,_e.invisible&&$.invisible]}})(({ownerState:j})=>_extends$1({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},j.invisible&&{backgroundColor:"transparent"})),Backdrop=reactExports.forwardRef(function j($,_e){var et,tt,rt;const nt=useThemeProps({props:$,name:"MuiBackdrop"}),{children:it,className:ot,component:At="div",components:ut={},componentsProps:ft={},invisible:dt=!1,open:Et,slotProps:Bt={},slots:St={},TransitionComponent:Dt=Fade$1,transitionDuration:$t}=nt,Rt=_objectWithoutPropertiesLoose(nt,_excluded$f),wt=_extends$1({},nt,{component:At,invisible:dt}),xt=useUtilityClasses$d(wt),Nt=(et=Bt.root)!=null?et:ft.root;return jsxRuntimeExports.jsx(Dt,_extends$1({in:Et,timeout:$t},Rt,{children:jsxRuntimeExports.jsx(BackdropRoot,_extends$1({"aria-hidden":!0},Nt,{as:(tt=(rt=St.root)!=null?rt:ut.Root)!=null?tt:At,className:clsx(xt.root,ot,Nt==null?void 0:Nt.className),ownerState:_extends$1({},wt,Nt==null?void 0:Nt.ownerState),classes:xt,ref:_e,children:it}))}))}),Backdrop$1=Backdrop;function getModalUtilityClass(j){return generateUtilityClass("MuiModal",j)}generateUtilityClasses("MuiModal",["root","hidden","backdrop"]);const _excluded$e=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"],useUtilityClasses$c=j=>{const{open:$,exited:_e,classes:et}=j;return composeClasses({root:["root",!$&&_e&&"hidden"],backdrop:["backdrop"]},getModalUtilityClass,et)},ModalRoot=styled("div",{name:"MuiModal",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,!_e.open&&_e.exited&&$.hidden]}})(({theme:j,ownerState:$})=>_extends$1({position:"fixed",zIndex:(j.vars||j).zIndex.modal,right:0,bottom:0,top:0,left:0},!$.open&&$.exited&&{visibility:"hidden"})),ModalBackdrop=styled(Backdrop$1,{name:"MuiModal",slot:"Backdrop",overridesResolver:(j,$)=>$.backdrop})({zIndex:-1}),Modal=reactExports.forwardRef(function j($,_e){var et,tt,rt,nt,it,ot;const At=useThemeProps({name:"MuiModal",props:$}),{BackdropComponent:ut=ModalBackdrop,BackdropProps:ft,className:dt,closeAfterTransition:Et=!1,children:Bt,container:St,component:Dt,components:$t={},componentsProps:Rt={},disableAutoFocus:wt=!1,disableEnforceFocus:xt=!1,disableEscapeKeyDown:Nt=!1,disablePortal:Ot=!1,disableRestoreFocus:kt=!1,disableScrollLock:Jt=!1,hideBackdrop:jt=!1,keepMounted:Ht=!1,onBackdropClick:Gt,open:Kt,slotProps:Wt,slots:Vt}=At,ur=_objectWithoutPropertiesLoose(At,_excluded$e),Ar=_extends$1({},At,{closeAfterTransition:Et,disableAutoFocus:wt,disableEnforceFocus:xt,disableEscapeKeyDown:Nt,disablePortal:Ot,disableRestoreFocus:kt,disableScrollLock:Jt,hideBackdrop:jt,keepMounted:Ht}),{getRootProps:hr,getBackdropProps:sr,getTransitionProps:ar,portalRef:Yt,isTopModal:pr,exited:Zt,hasTransition:mr}=useModal(_extends$1({},Ar,{rootRef:_e})),vr=_extends$1({},Ar,{exited:Zt}),_r=useUtilityClasses$c(vr),Er={};if(Bt.props.tabIndex===void 0&&(Er.tabIndex="-1"),mr){const{onEnter:Xt,onExited:cr}=ar();Er.onEnter=Xt,Er.onExited=cr}const Lr=(et=(tt=Vt==null?void 0:Vt.root)!=null?tt:$t.Root)!=null?et:ModalRoot,Rr=(rt=(nt=Vt==null?void 0:Vt.backdrop)!=null?nt:$t.Backdrop)!=null?rt:ut,$r=(it=Wt==null?void 0:Wt.root)!=null?it:Rt.root,xr=(ot=Wt==null?void 0:Wt.backdrop)!=null?ot:Rt.backdrop,Fr=useSlotProps({elementType:Lr,externalSlotProps:$r,externalForwardedProps:ur,getSlotProps:hr,additionalProps:{ref:_e,as:Dt},ownerState:vr,className:clsx(dt,$r==null?void 0:$r.className,_r==null?void 0:_r.root,!vr.open&&vr.exited&&(_r==null?void 0:_r.hidden))}),Nr=useSlotProps({elementType:Rr,externalSlotProps:xr,additionalProps:ft,getSlotProps:Xt=>sr(_extends$1({},Xt,{onClick:cr=>{Gt&&Gt(cr),Xt!=null&&Xt.onClick&&Xt.onClick(cr)}})),className:clsx(xr==null?void 0:xr.className,ft==null?void 0:ft.className,_r==null?void 0:_r.backdrop),ownerState:vr});return!Ht&&!Kt&&(!mr||Zt)?null:jsxRuntimeExports.jsx(Portal,{ref:Yt,container:St,disablePortal:Ot,children:jsxRuntimeExports.jsxs(Lr,_extends$1({},Fr,{children:[!jt&&ut?jsxRuntimeExports.jsx(Rr,_extends$1({},Nr)):null,jsxRuntimeExports.jsx(FocusTrap,{disableEnforceFocus:xt,disableAutoFocus:wt,disableRestoreFocus:kt,isEnabled:pr,open:Kt,children:reactExports.cloneElement(Bt,Er)})]}))})}),Modal$1=Modal;function getPaperUtilityClass(j){return generateUtilityClass("MuiPaper",j)}generateUtilityClasses("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const _excluded$d=["className","component","elevation","square","variant"],useUtilityClasses$b=j=>{const{square:$,elevation:_e,variant:et,classes:tt}=j,rt={root:["root",et,!$&&"rounded",et==="elevation"&&`elevation${_e}`]};return composeClasses(rt,getPaperUtilityClass,tt)},PaperRoot=styled("div",{name:"MuiPaper",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,$[_e.variant],!_e.square&&$.rounded,_e.variant==="elevation"&&$[`elevation${_e.elevation}`]]}})(({theme:j,ownerState:$})=>{var _e;return _extends$1({backgroundColor:(j.vars||j).palette.background.paper,color:(j.vars||j).palette.text.primary,transition:j.transitions.create("box-shadow")},!$.square&&{borderRadius:j.shape.borderRadius},$.variant==="outlined"&&{border:`1px solid ${(j.vars||j).palette.divider}`},$.variant==="elevation"&&_extends$1({boxShadow:(j.vars||j).shadows[$.elevation]},!j.vars&&j.palette.mode==="dark"&&{backgroundImage:`linear-gradient(${alpha_1("#fff",getOverlayAlpha($.elevation))}, ${alpha_1("#fff",getOverlayAlpha($.elevation))})`},j.vars&&{backgroundImage:(_e=j.vars.overlays)==null?void 0:_e[$.elevation]}))}),Paper=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiPaper"}),{className:tt,component:rt="div",elevation:nt=1,square:it=!1,variant:ot="elevation"}=et,At=_objectWithoutPropertiesLoose(et,_excluded$d),ut=_extends$1({},et,{component:rt,elevation:nt,square:it,variant:ot}),ft=useUtilityClasses$b(ut);return jsxRuntimeExports.jsx(PaperRoot,_extends$1({as:rt,ownerState:ut,className:clsx(ft.root,tt),ref:_e},At))}),PaperBase=Paper;function getPopoverUtilityClass(j){return generateUtilityClass("MuiPopover",j)}generateUtilityClasses("MuiPopover",["root","paper"]);const _excluded$c=["onEntering"],_excluded2$2=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],_excluded3=["slotProps"];function getOffsetTop(j,$){let _e=0;return typeof $=="number"?_e=$:$==="center"?_e=j.height/2:$==="bottom"&&(_e=j.height),_e}function getOffsetLeft(j,$){let _e=0;return typeof $=="number"?_e=$:$==="center"?_e=j.width/2:$==="right"&&(_e=j.width),_e}function getTransformOriginValue(j){return[j.horizontal,j.vertical].map($=>typeof $=="number"?`${$}px`:$).join(" ")}function resolveAnchorEl(j){return typeof j=="function"?j():j}const useUtilityClasses$a=j=>{const{classes:$}=j;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,$)},PopoverRoot=styled(Modal$1,{name:"MuiPopover",slot:"Root",overridesResolver:(j,$)=>$.root})({}),PopoverPaper=styled(PaperBase,{name:"MuiPopover",slot:"Paper",overridesResolver:(j,$)=>$.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Popover=reactExports.forwardRef(function j($,_e){var et,tt,rt;const nt=useThemeProps({props:$,name:"MuiPopover"}),{action:it,anchorEl:ot,anchorOrigin:At={vertical:"top",horizontal:"left"},anchorPosition:ut,anchorReference:ft="anchorEl",children:dt,className:Et,container:Bt,elevation:St=8,marginThreshold:Dt=16,open:$t,PaperProps:Rt={},slots:wt,slotProps:xt,transformOrigin:Nt={vertical:"top",horizontal:"left"},TransitionComponent:Ot=Grow$1,transitionDuration:kt="auto",TransitionProps:{onEntering:Jt}={},disableScrollLock:jt=!1}=nt,Ht=_objectWithoutPropertiesLoose(nt.TransitionProps,_excluded$c),Gt=_objectWithoutPropertiesLoose(nt,_excluded2$2),Kt=(et=xt==null?void 0:xt.paper)!=null?et:Rt,Wt=reactExports.useRef(),Vt=useForkRef(Wt,Kt.ref),ur=_extends$1({},nt,{anchorOrigin:At,anchorReference:ft,elevation:St,marginThreshold:Dt,externalPaperSlotProps:Kt,transformOrigin:Nt,TransitionComponent:Ot,transitionDuration:kt,TransitionProps:Ht}),Ar=useUtilityClasses$a(ur),hr=reactExports.useCallback(()=>{if(ft==="anchorPosition")return ut;const Xt=resolveAnchorEl(ot),ir=(Xt&&Xt.nodeType===1?Xt:ownerDocument(Wt.current).body).getBoundingClientRect();return{top:ir.top+getOffsetTop(ir,At.vertical),left:ir.left+getOffsetLeft(ir,At.horizontal)}},[ot,At.horizontal,At.vertical,ut,ft]),sr=reactExports.useCallback(Xt=>({vertical:getOffsetTop(Xt,Nt.vertical),horizontal:getOffsetLeft(Xt,Nt.horizontal)}),[Nt.horizontal,Nt.vertical]),ar=reactExports.useCallback(Xt=>{const cr={width:Xt.offsetWidth,height:Xt.offsetHeight},ir=sr(cr);if(ft==="none")return{top:null,left:null,transformOrigin:getTransformOriginValue(ir)};const Qr=hr();let Or=Qr.top-ir.vertical,Yr=Qr.left-ir.horizontal;const wr=Or+cr.height,rr=Yr+cr.width,er=ownerWindow(resolveAnchorEl(ot)),lr=er.innerHeight-Dt,fr=er.innerWidth-Dt;if(Dt!==null&&Orlr){const yr=wr-lr;Or-=yr,ir.vertical+=yr}if(Dt!==null&&Yrfr){const yr=rr-fr;Yr-=yr,ir.horizontal+=yr}return{top:`${Math.round(Or)}px`,left:`${Math.round(Yr)}px`,transformOrigin:getTransformOriginValue(ir)}},[ot,ft,hr,sr,Dt]),[Yt,pr]=reactExports.useState($t),Zt=reactExports.useCallback(()=>{const Xt=Wt.current;if(!Xt)return;const cr=ar(Xt);cr.top!==null&&(Xt.style.top=cr.top),cr.left!==null&&(Xt.style.left=cr.left),Xt.style.transformOrigin=cr.transformOrigin,pr(!0)},[ar]);reactExports.useEffect(()=>(jt&&window.addEventListener("scroll",Zt),()=>window.removeEventListener("scroll",Zt)),[ot,jt,Zt]);const mr=(Xt,cr)=>{Jt&&Jt(Xt,cr),Zt()},vr=()=>{pr(!1)};reactExports.useEffect(()=>{$t&&Zt()}),reactExports.useImperativeHandle(it,()=>$t?{updatePosition:()=>{Zt()}}:null,[$t,Zt]),reactExports.useEffect(()=>{if(!$t)return;const Xt=debounce(()=>{Zt()}),cr=ownerWindow(ot);return cr.addEventListener("resize",Xt),()=>{Xt.clear(),cr.removeEventListener("resize",Xt)}},[ot,$t,Zt]);let _r=kt;kt==="auto"&&!Ot.muiSupportAuto&&(_r=void 0);const Er=Bt||(ot?ownerDocument(resolveAnchorEl(ot)).body:void 0),Lr=(tt=wt==null?void 0:wt.root)!=null?tt:PopoverRoot,Rr=(rt=wt==null?void 0:wt.paper)!=null?rt:PopoverPaper,$r=useSlotProps({elementType:Rr,externalSlotProps:_extends$1({},Kt,{style:Yt?Kt.style:_extends$1({},Kt.style,{opacity:0})}),additionalProps:{elevation:St,ref:Vt},ownerState:ur,className:clsx(Ar.paper,Kt==null?void 0:Kt.className)}),xr=useSlotProps({elementType:Lr,externalSlotProps:(xt==null?void 0:xt.root)||{},externalForwardedProps:Gt,additionalProps:{ref:_e,slotProps:{backdrop:{invisible:!0}},container:Er,open:$t},ownerState:ur,className:clsx(Ar.root,Et)}),{slotProps:Fr}=xr,Nr=_objectWithoutPropertiesLoose(xr,_excluded3);return jsxRuntimeExports.jsx(Lr,_extends$1({},Nr,!isHostComponent(Lr)&&{slotProps:Fr,disableScrollLock:jt},{children:jsxRuntimeExports.jsx(Ot,_extends$1({appear:!0,in:$t,onEntering:mr,onExited:vr,timeout:_r},Ht,{children:jsxRuntimeExports.jsx(Rr,_extends$1({},$r,{children:dt}))}))}))}),Popover$1=Popover;function getMenuUtilityClass(j){return generateUtilityClass("MuiMenu",j)}generateUtilityClasses("MuiMenu",["root","paper","list"]);const _excluded$b=["onEntering"],_excluded2$1=["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"],RTL_ORIGIN={vertical:"top",horizontal:"right"},LTR_ORIGIN={vertical:"top",horizontal:"left"},useUtilityClasses$9=j=>{const{classes:$}=j;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,$)},MenuRoot=styled(Popover$1,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(j,$)=>$.root})({}),MenuPaper=styled(PopoverPaper,{name:"MuiMenu",slot:"Paper",overridesResolver:(j,$)=>$.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),MenuMenuList=styled(MenuList$1,{name:"MuiMenu",slot:"List",overridesResolver:(j,$)=>$.list})({outline:0}),Menu=reactExports.forwardRef(function j($,_e){var et,tt;const rt=useThemeProps({props:$,name:"MuiMenu"}),{autoFocus:nt=!0,children:it,className:ot,disableAutoFocusItem:At=!1,MenuListProps:ut={},onClose:ft,open:dt,PaperProps:Et={},PopoverClasses:Bt,transitionDuration:St="auto",TransitionProps:{onEntering:Dt}={},variant:$t="selectedMenu",slots:Rt={},slotProps:wt={}}=rt,xt=_objectWithoutPropertiesLoose(rt.TransitionProps,_excluded$b),Nt=_objectWithoutPropertiesLoose(rt,_excluded2$1),Ot=useRtl(),kt=_extends$1({},rt,{autoFocus:nt,disableAutoFocusItem:At,MenuListProps:ut,onEntering:Dt,PaperProps:Et,transitionDuration:St,TransitionProps:xt,variant:$t}),Jt=useUtilityClasses$9(kt),jt=nt&&!At&&dt,Ht=reactExports.useRef(null),Gt=(sr,ar)=>{Ht.current&&Ht.current.adjustStyleForScrollbar(sr,{direction:Ot?"rtl":"ltr"}),Dt&&Dt(sr,ar)},Kt=sr=>{sr.key==="Tab"&&(sr.preventDefault(),ft&&ft(sr,"tabKeyDown"))};let Wt=-1;reactExports.Children.map(it,(sr,ar)=>{reactExports.isValidElement(sr)&&(sr.props.disabled||($t==="selectedMenu"&&sr.props.selected||Wt===-1)&&(Wt=ar))});const Vt=(et=Rt.paper)!=null?et:MenuPaper,ur=(tt=wt.paper)!=null?tt:Et,Ar=useSlotProps({elementType:Rt.root,externalSlotProps:wt.root,ownerState:kt,className:[Jt.root,ot]}),hr=useSlotProps({elementType:Vt,externalSlotProps:ur,ownerState:kt,className:Jt.paper});return jsxRuntimeExports.jsx(MenuRoot,_extends$1({onClose:ft,anchorOrigin:{vertical:"bottom",horizontal:Ot?"right":"left"},transformOrigin:Ot?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:Vt,root:Rt.root},slotProps:{root:Ar,paper:hr},open:dt,ref:_e,transitionDuration:St,TransitionProps:_extends$1({onEntering:Gt},xt),ownerState:kt},Nt,{classes:Bt,children:jsxRuntimeExports.jsx(MenuMenuList,_extends$1({onKeyDown:Kt,actions:Ht,autoFocus:nt&&(Wt===-1||At),autoFocusItem:jt,variant:$t},ut,{className:clsx(Jt.list,ut.className),children:it}))}))}),Menu$1=Menu;function getNativeSelectUtilityClasses(j){return generateUtilityClass("MuiNativeSelect",j)}const nativeSelectClasses=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),nativeSelectClasses$1=nativeSelectClasses,_excluded$a=["className","disabled","error","IconComponent","inputRef","variant"],useUtilityClasses$8=j=>{const{classes:$,variant:_e,disabled:et,multiple:tt,open:rt,error:nt}=j,it={select:["select",_e,et&&"disabled",tt&&"multiple",nt&&"error"],icon:["icon",`icon${capitalize$1(_e)}`,rt&&"iconOpen",et&&"disabled"]};return composeClasses(it,getNativeSelectUtilityClasses,$)},nativeSelectSelectStyles=({ownerState:j,theme:$})=>_extends$1({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":_extends$1({},$.vars?{backgroundColor:`rgba(${$.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:$.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${nativeSelectClasses$1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:($.vars||$).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},j.variant==="filled"&&{"&&&":{paddingRight:32}},j.variant==="outlined"&&{borderRadius:($.vars||$).shape.borderRadius,"&:focus":{borderRadius:($.vars||$).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.select,$[_e.variant],_e.error&&$.error,{[`&.${nativeSelectClasses$1.multiple}`]:$.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:j,theme:$})=>_extends$1({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:($.vars||$).palette.action.active,[`&.${nativeSelectClasses$1.disabled}`]:{color:($.vars||$).palette.action.disabled}},j.open&&{transform:"rotate(180deg)"},j.variant==="filled"&&{right:7},j.variant==="outlined"&&{right:7}),NativeSelectIcon=styled("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.icon,_e.variant&&$[`icon${capitalize$1(_e.variant)}`],_e.open&&$.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=reactExports.forwardRef(function j($,_e){const{className:et,disabled:tt,error:rt,IconComponent:nt,inputRef:it,variant:ot="standard"}=$,At=_objectWithoutPropertiesLoose($,_excluded$a),ut=_extends$1({},$,{disabled:tt,variant:ot,error:rt}),ft=useUtilityClasses$8(ut);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(NativeSelectSelect,_extends$1({ownerState:ut,className:clsx(ft.select,et),disabled:tt,ref:it||_e},At)),$.multiple?null:jsxRuntimeExports.jsx(NativeSelectIcon,{as:nt,ownerState:ut,className:ft.icon})]})}),NativeSelectInput$1=NativeSelectInput;function getSelectUtilityClasses(j){return generateUtilityClass("MuiSelect",j)}const selectClasses=generateUtilityClasses("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var _span$1;const _excluded$9=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],SelectSelect=styled("div",{name:"MuiSelect",slot:"Select",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[{[`&.${selectClasses.select}`]:$.select},{[`&.${selectClasses.select}`]:$[_e.variant]},{[`&.${selectClasses.error}`]:$.error},{[`&.${selectClasses.multiple}`]:$.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),SelectIcon=styled("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.icon,_e.variant&&$[`icon${capitalize$1(_e.variant)}`],_e.open&&$.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled("input",{shouldForwardProp:j=>slotShouldForwardProp(j)&&j!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(j,$)=>$.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function areEqualValues(j,$){return typeof $=="object"&&$!==null?j===$:String(j)===String($)}function isEmpty$1(j){return j==null||typeof j=="string"&&!j.trim()}const useUtilityClasses$7=j=>{const{classes:$,variant:_e,disabled:et,multiple:tt,open:rt,error:nt}=j,it={select:["select",_e,et&&"disabled",tt&&"multiple",nt&&"error"],icon:["icon",`icon${capitalize$1(_e)}`,rt&&"iconOpen",et&&"disabled"],nativeInput:["nativeInput"]};return composeClasses(it,getSelectUtilityClasses,$)},SelectInput=reactExports.forwardRef(function j($,_e){var et;const{"aria-describedby":tt,"aria-label":rt,autoFocus:nt,autoWidth:it,children:ot,className:At,defaultOpen:ut,defaultValue:ft,disabled:dt,displayEmpty:Et,error:Bt=!1,IconComponent:St,inputRef:Dt,labelId:$t,MenuProps:Rt={},multiple:wt,name:xt,onBlur:Nt,onChange:Ot,onClose:kt,onFocus:Jt,onOpen:jt,open:Ht,readOnly:Gt,renderValue:Kt,SelectDisplayProps:Wt={},tabIndex:Vt,value:ur,variant:Ar="standard"}=$,hr=_objectWithoutPropertiesLoose($,_excluded$9),[sr,ar]=useControlled({controlled:ur,default:ft,name:"Select"}),[Yt,pr]=useControlled({controlled:Ht,default:ut,name:"Select"}),Zt=reactExports.useRef(null),mr=reactExports.useRef(null),[vr,_r]=reactExports.useState(null),{current:Er}=reactExports.useRef(Ht!=null),[Lr,Rr]=reactExports.useState(),$r=useForkRef(_e,Dt),xr=reactExports.useCallback(un=>{mr.current=un,un&&_r(un)},[]),Fr=vr==null?void 0:vr.parentNode;reactExports.useImperativeHandle($r,()=>({focus:()=>{mr.current.focus()},node:Zt.current,value:sr}),[sr]),reactExports.useEffect(()=>{ut&&Yt&&vr&&!Er&&(Rr(it?null:Fr.clientWidth),mr.current.focus())},[vr,it]),reactExports.useEffect(()=>{nt&&mr.current.focus()},[nt]),reactExports.useEffect(()=>{if(!$t)return;const un=ownerDocument(mr.current).getElementById($t);if(un){const dn=()=>{getSelection().isCollapsed&&mr.current.focus()};return un.addEventListener("click",dn),()=>{un.removeEventListener("click",dn)}}},[$t]);const Nr=(un,dn)=>{un?jt&&jt(dn):kt&&kt(dn),Er||(Rr(it?null:Fr.clientWidth),pr(un))},Xt=un=>{un.button===0&&(un.preventDefault(),mr.current.focus(),Nr(!0,un))},cr=un=>{Nr(!1,un)},ir=reactExports.Children.toArray(ot),Qr=un=>{const dn=ir.find(wn=>wn.props.value===un.target.value);dn!==void 0&&(ar(dn.props.value),Ot&&Ot(un,dn))},Or=un=>dn=>{let wn;if(dn.currentTarget.hasAttribute("tabindex")){if(wt){wn=Array.isArray(sr)?sr.slice():[];const Nn=sr.indexOf(un.props.value);Nn===-1?wn.push(un.props.value):wn.splice(Nn,1)}else wn=un.props.value;if(un.props.onClick&&un.props.onClick(dn),sr!==wn&&(ar(wn),Ot)){const Nn=dn.nativeEvent||dn,Tn=new Nn.constructor(Nn.type,Nn);Object.defineProperty(Tn,"target",{writable:!0,value:{value:wn,name:xt}}),Ot(Tn,un)}wt||Nr(!1,dn)}},Yr=un=>{Gt||[" ","ArrowUp","ArrowDown","Enter"].indexOf(un.key)!==-1&&(un.preventDefault(),Nr(!0,un))},wr=vr!==null&&Yt,rr=un=>{!wr&&Nt&&(Object.defineProperty(un,"target",{writable:!0,value:{value:sr,name:xt}}),Nt(un))};delete hr["aria-invalid"];let er,lr;const fr=[];let yr=!1;(isFilled({value:sr})||Et)&&(Kt?er=Kt(sr):yr=!0);const Ur=ir.map(un=>{if(!reactExports.isValidElement(un))return null;let dn;if(wt){if(!Array.isArray(sr))throw new Error(formatMuiErrorMessage$1(2));dn=sr.some(wn=>areEqualValues(wn,un.props.value)),dn&&yr&&fr.push(un.props.children)}else dn=areEqualValues(sr,un.props.value),dn&&yr&&(lr=un.props.children);return reactExports.cloneElement(un,{"aria-selected":dn?"true":"false",onClick:Or(un),onKeyUp:wn=>{wn.key===" "&&wn.preventDefault(),un.props.onKeyUp&&un.props.onKeyUp(wn)},role:"option",selected:dn,value:void 0,"data-value":un.props.value})});yr&&(wt?fr.length===0?er=null:er=fr.reduce((un,dn,wn)=>(un.push(dn),wn{const{color:$,fontSize:_e,classes:et}=j,tt={root:["root",$!=="inherit"&&`color${capitalize$1($)}`,`fontSize${capitalize$1(_e)}`]};return composeClasses(tt,getSvgIconUtilityClass,et)},SvgIconRoot=styled("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,_e.color!=="inherit"&&$[`color${capitalize$1(_e.color)}`],$[`fontSize${capitalize$1(_e.fontSize)}`]]}})(({theme:j,ownerState:$})=>{var _e,et,tt,rt,nt,it,ot,At,ut,ft,dt,Et,Bt;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:$.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:(_e=j.transitions)==null||(et=_e.create)==null?void 0:et.call(_e,"fill",{duration:(tt=j.transitions)==null||(tt=tt.duration)==null?void 0:tt.shorter}),fontSize:{inherit:"inherit",small:((rt=j.typography)==null||(nt=rt.pxToRem)==null?void 0:nt.call(rt,20))||"1.25rem",medium:((it=j.typography)==null||(ot=it.pxToRem)==null?void 0:ot.call(it,24))||"1.5rem",large:((At=j.typography)==null||(ut=At.pxToRem)==null?void 0:ut.call(At,35))||"2.1875rem"}[$.fontSize],color:(ft=(dt=(j.vars||j).palette)==null||(dt=dt[$.color])==null?void 0:dt.main)!=null?ft:{action:(Et=(j.vars||j).palette)==null||(Et=Et.action)==null?void 0:Et.active,disabled:(Bt=(j.vars||j).palette)==null||(Bt=Bt.action)==null?void 0:Bt.disabled,inherit:void 0}[$.color]}}),SvgIcon=reactExports.forwardRef(function j($,_e){const et=useThemeProps({props:$,name:"MuiSvgIcon"}),{children:tt,className:rt,color:nt="inherit",component:it="svg",fontSize:ot="medium",htmlColor:At,inheritViewBox:ut=!1,titleAccess:ft,viewBox:dt="0 0 24 24"}=et,Et=_objectWithoutPropertiesLoose(et,_excluded$8),Bt=reactExports.isValidElement(tt)&&tt.type==="svg",St=_extends$1({},et,{color:nt,component:it,fontSize:ot,instanceFontSize:$.fontSize,inheritViewBox:ut,viewBox:dt,hasSvgAsChild:Bt}),Dt={};ut||(Dt.viewBox=dt);const $t=useUtilityClasses$6(St);return jsxRuntimeExports.jsxs(SvgIconRoot,_extends$1({as:it,className:clsx($t.root,rt),focusable:"false",color:At,"aria-hidden":ft?void 0:!0,role:ft?"img":void 0,ref:_e},Dt,Et,Bt&&tt.props,{ownerState:St,children:[Bt?tt.props.children:tt,ft?jsxRuntimeExports.jsx("title",{children:ft}):null]}))});SvgIcon.muiName="SvgIcon";function createSvgIcon(j,$){function _e(et,tt){return jsxRuntimeExports.jsx(SvgIcon,_extends$1({"data-testid":`${$}Icon`,ref:tt},et,{children:j}))}return _e.muiName=SvgIcon.muiName,reactExports.memo(reactExports.forwardRef(_e))}const ArrowDropDownIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),_excluded$7=["onChange","maxRows","minRows","style","value"];function getStyleValue(j){return parseInt(j,10)||0}const styles={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isEmpty(j){return j==null||Object.keys(j).length===0||j.outerHeightStyle===0&&!j.overflowing}const TextareaAutosize=reactExports.forwardRef(function j($,_e){const{onChange:et,maxRows:tt,minRows:rt=1,style:nt,value:it}=$,ot=_objectWithoutPropertiesLoose($,_excluded$7),{current:At}=reactExports.useRef(it!=null),ut=reactExports.useRef(null),ft=useForkRef(_e,ut),dt=reactExports.useRef(null),Et=reactExports.useCallback(()=>{const Dt=ut.current,Rt=ownerWindow(Dt).getComputedStyle(Dt);if(Rt.width==="0px")return{outerHeightStyle:0,overflowing:!1};const wt=dt.current;wt.style.width=Rt.width,wt.value=Dt.value||$.placeholder||"x",wt.value.slice(-1)===` +`&&(wt.value+=" ");const xt=Rt.boxSizing,Nt=getStyleValue(Rt.paddingBottom)+getStyleValue(Rt.paddingTop),Ot=getStyleValue(Rt.borderBottomWidth)+getStyleValue(Rt.borderTopWidth),kt=wt.scrollHeight;wt.value="x";const Jt=wt.scrollHeight;let jt=kt;rt&&(jt=Math.max(Number(rt)*Jt,jt)),tt&&(jt=Math.min(Number(tt)*Jt,jt)),jt=Math.max(jt,Jt);const Ht=jt+(xt==="border-box"?Nt+Ot:0),Gt=Math.abs(jt-kt)<=1;return{outerHeightStyle:Ht,overflowing:Gt}},[tt,rt,$.placeholder]),Bt=reactExports.useCallback(()=>{const Dt=Et();if(isEmpty(Dt))return;const $t=ut.current;$t.style.height=`${Dt.outerHeightStyle}px`,$t.style.overflow=Dt.overflowing?"hidden":""},[Et]);useEnhancedEffect(()=>{const Dt=()=>{Bt()};let $t;const Rt=debounce(Dt),wt=ut.current,xt=ownerWindow(wt);xt.addEventListener("resize",Rt);let Nt;return typeof ResizeObserver<"u"&&(Nt=new ResizeObserver(Dt),Nt.observe(wt)),()=>{Rt.clear(),cancelAnimationFrame($t),xt.removeEventListener("resize",Rt),Nt&&Nt.disconnect()}},[Et,Bt]),useEnhancedEffect(()=>{Bt()});const St=Dt=>{At||Bt(),et&&et(Dt)};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("textarea",_extends$1({value:it,onChange:St,ref:ft,rows:rt,style:nt},ot)),jsxRuntimeExports.jsx("textarea",{"aria-hidden":!0,className:$.className,readOnly:!0,ref:dt,tabIndex:-1,style:_extends$1({},styles.shadow,nt,{paddingTop:0,paddingBottom:0})})]})});function GlobalStyles(j){return jsxRuntimeExports.jsx(GlobalStyles$1,_extends$1({},j,{defaultTheme:defaultTheme$1,themeId:THEME_ID}))}function getInputBaseUtilityClass(j){return generateUtilityClass("MuiInputBase",j)}const inputBaseClasses=generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),inputBaseClasses$1=inputBaseClasses,_excluded$6=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],rootOverridesResolver=(j,$)=>{const{ownerState:_e}=j;return[$.root,_e.formControl&&$.formControl,_e.startAdornment&&$.adornedStart,_e.endAdornment&&$.adornedEnd,_e.error&&$.error,_e.size==="small"&&$.sizeSmall,_e.multiline&&$.multiline,_e.color&&$[`color${capitalize$1(_e.color)}`],_e.fullWidth&&$.fullWidth,_e.hiddenLabel&&$.hiddenLabel]},inputOverridesResolver=(j,$)=>{const{ownerState:_e}=j;return[$.input,_e.size==="small"&&$.inputSizeSmall,_e.multiline&&$.inputMultiline,_e.type==="search"&&$.inputTypeSearch,_e.startAdornment&&$.inputAdornedStart,_e.endAdornment&&$.inputAdornedEnd,_e.hiddenLabel&&$.inputHiddenLabel]},useUtilityClasses$5=j=>{const{classes:$,color:_e,disabled:et,error:tt,endAdornment:rt,focused:nt,formControl:it,fullWidth:ot,hiddenLabel:At,multiline:ut,readOnly:ft,size:dt,startAdornment:Et,type:Bt}=j,St={root:["root",`color${capitalize$1(_e)}`,et&&"disabled",tt&&"error",ot&&"fullWidth",nt&&"focused",it&&"formControl",dt&&dt!=="medium"&&`size${capitalize$1(dt)}`,ut&&"multiline",Et&&"adornedStart",rt&&"adornedEnd",At&&"hiddenLabel",ft&&"readOnly"],input:["input",et&&"disabled",Bt==="search"&&"inputTypeSearch",ut&&"inputMultiline",dt==="small"&&"inputSizeSmall",At&&"inputHiddenLabel",Et&&"inputAdornedStart",rt&&"inputAdornedEnd",ft&&"readOnly"]};return composeClasses(St,getInputBaseUtilityClass,$)},InputBaseRoot=styled("div",{name:"MuiInputBase",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:j,ownerState:$})=>_extends$1({},j.typography.body1,{color:(j.vars||j).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${inputBaseClasses$1.disabled}`]:{color:(j.vars||j).palette.text.disabled,cursor:"default"}},$.multiline&&_extends$1({padding:"4px 0 5px"},$.size==="small"&&{paddingTop:1}),$.fullWidth&&{width:"100%"})),InputBaseComponent=styled("input",{name:"MuiInputBase",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:j,ownerState:$})=>{const _e=j.palette.mode==="light",et=_extends$1({color:"currentColor"},j.vars?{opacity:j.vars.opacity.inputPlaceholder}:{opacity:_e?.42:.5},{transition:j.transitions.create("opacity",{duration:j.transitions.duration.shorter})}),tt={opacity:"0 !important"},rt=j.vars?{opacity:j.vars.opacity.inputPlaceholder}:{opacity:_e?.42:.5};return _extends$1({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":et,"&::-moz-placeholder":et,"&:-ms-input-placeholder":et,"&::-ms-input-placeholder":et,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${inputBaseClasses$1.formControl} &`]:{"&::-webkit-input-placeholder":tt,"&::-moz-placeholder":tt,"&:-ms-input-placeholder":tt,"&::-ms-input-placeholder":tt,"&:focus::-webkit-input-placeholder":rt,"&:focus::-moz-placeholder":rt,"&:focus:-ms-input-placeholder":rt,"&:focus::-ms-input-placeholder":rt},[`&.${inputBaseClasses$1.disabled}`]:{opacity:1,WebkitTextFillColor:(j.vars||j).palette.text.disabled},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},$.size==="small"&&{paddingTop:1},$.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},$.type==="search"&&{MozAppearance:"textfield"})}),inputGlobalStyles=jsxRuntimeExports.jsx(GlobalStyles,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),InputBase=reactExports.forwardRef(function j($,_e){var et;const tt=useThemeProps({props:$,name:"MuiInputBase"}),{"aria-describedby":rt,autoComplete:nt,autoFocus:it,className:ot,components:At={},componentsProps:ut={},defaultValue:ft,disabled:dt,disableInjectingGlobalStyles:Et,endAdornment:Bt,fullWidth:St=!1,id:Dt,inputComponent:$t="input",inputProps:Rt={},inputRef:wt,maxRows:xt,minRows:Nt,multiline:Ot=!1,name:kt,onBlur:Jt,onChange:jt,onClick:Ht,onFocus:Gt,onKeyDown:Kt,onKeyUp:Wt,placeholder:Vt,readOnly:ur,renderSuffix:Ar,rows:hr,slotProps:sr={},slots:ar={},startAdornment:Yt,type:pr="text",value:Zt}=tt,mr=_objectWithoutPropertiesLoose(tt,_excluded$6),vr=Rt.value!=null?Rt.value:Zt,{current:_r}=reactExports.useRef(vr!=null),Er=reactExports.useRef(),Lr=reactExports.useCallback(Zr=>{},[]),Rr=useForkRef(Er,wt,Rt.ref,Lr),[$r,xr]=reactExports.useState(!1),Fr=useFormControl(),Nr=formControlState({props:tt,muiFormControl:Fr,states:["color","disabled","error","hiddenLabel","size","required","filled"]});Nr.focused=Fr?Fr.focused:$r,reactExports.useEffect(()=>{!Fr&&dt&&$r&&(xr(!1),Jt&&Jt())},[Fr,dt,$r,Jt]);const Xt=Fr&&Fr.onFilled,cr=Fr&&Fr.onEmpty,ir=reactExports.useCallback(Zr=>{isFilled(Zr)?Xt&&Xt():cr&&cr()},[Xt,cr]);useEnhancedEffect(()=>{_r&&ir({value:vr})},[vr,ir,_r]);const Qr=Zr=>{if(Nr.disabled){Zr.stopPropagation();return}Gt&&Gt(Zr),Rt.onFocus&&Rt.onFocus(Zr),Fr&&Fr.onFocus?Fr.onFocus(Zr):xr(!0)},Or=Zr=>{Jt&&Jt(Zr),Rt.onBlur&&Rt.onBlur(Zr),Fr&&Fr.onBlur?Fr.onBlur(Zr):xr(!1)},Yr=(Zr,...rn)=>{if(!_r){const on=Zr.target||Er.current;if(on==null)throw new Error(formatMuiErrorMessage$1(1));ir({value:on.value})}Rt.onChange&&Rt.onChange(Zr,...rn),jt&&jt(Zr,...rn)};reactExports.useEffect(()=>{ir(Er.current)},[]);const wr=Zr=>{Er.current&&Zr.currentTarget===Zr.target&&Er.current.focus(),Ht&&Ht(Zr)};let rr=$t,er=Rt;Ot&&rr==="input"&&(hr?er=_extends$1({type:void 0,minRows:hr,maxRows:hr},er):er=_extends$1({type:void 0,maxRows:xt,minRows:Nt},er),rr=TextareaAutosize);const lr=Zr=>{ir(Zr.animationName==="mui-auto-fill-cancel"?Er.current:{value:"x"})};reactExports.useEffect(()=>{Fr&&Fr.setAdornedStart(!!Yt)},[Fr,Yt]);const fr=_extends$1({},tt,{color:Nr.color||"primary",disabled:Nr.disabled,endAdornment:Bt,error:Nr.error,focused:Nr.focused,formControl:Fr,fullWidth:St,hiddenLabel:Nr.hiddenLabel,multiline:Ot,size:Nr.size,startAdornment:Yt,type:pr}),yr=useUtilityClasses$5(fr),Ur=ar.root||At.Root||InputBaseRoot,Wr=sr.root||ut.root||{},Pr=ar.input||At.Input||InputBaseComponent;return er=_extends$1({},er,(et=sr.input)!=null?et:ut.input),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[!Et&&inputGlobalStyles,jsxRuntimeExports.jsxs(Ur,_extends$1({},Wr,!isHostComponent(Ur)&&{ownerState:_extends$1({},fr,Wr.ownerState)},{ref:_e,onClick:wr},mr,{className:clsx(yr.root,Wr.className,ot,ur&&"MuiInputBase-readOnly"),children:[Yt,jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:null,children:jsxRuntimeExports.jsx(Pr,_extends$1({ownerState:fr,"aria-invalid":Nr.error,"aria-describedby":rt,autoComplete:nt,autoFocus:it,defaultValue:ft,disabled:Nr.disabled,id:Dt,onAnimationStart:lr,name:kt,placeholder:Vt,readOnly:ur,required:Nr.required,rows:hr,value:vr,onKeyDown:Kt,onKeyUp:Wt,type:pr},er,!isHostComponent(Pr)&&{as:rr,ownerState:_extends$1({},fr,er.ownerState)},{ref:Rr,className:clsx(yr.input,er.className,ur&&"MuiInputBase-readOnly"),onBlur:Or,onChange:Yr,onFocus:Qr}))}),Bt,Ar?Ar(_extends$1({},Nr,{startAdornment:Yt})):null]}))]})}),InputBase$1=InputBase;function getInputUtilityClass(j){return generateUtilityClass("MuiInput",j)}const inputClasses=_extends$1({},inputBaseClasses$1,generateUtilityClasses("MuiInput",["root","underline","input"])),inputClasses$1=inputClasses,_excluded$5=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type"],useUtilityClasses$4=j=>{const{classes:$,disableUnderline:_e}=j,tt=composeClasses({root:["root",!_e&&"underline"],input:["input"]},getInputUtilityClass,$);return _extends$1({},$,tt)},InputRoot=styled(InputBaseRoot,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiInput",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[...rootOverridesResolver(j,$),!_e.disableUnderline&&$.underline]}})(({theme:j,ownerState:$})=>{let et=j.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return j.vars&&(et=`rgba(${j.vars.palette.common.onBackgroundChannel} / ${j.vars.opacity.inputUnderline})`),_extends$1({position:"relative"},$.formControl&&{"label + &":{marginTop:16}},!$.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(j.vars||j).palette[$.color].main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:j.transitions.create("transform",{duration:j.transitions.duration.shorter,easing:j.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${inputClasses$1.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${inputClasses$1.error}`]:{"&::before, &::after":{borderBottomColor:(j.vars||j).palette.error.main}},"&::before":{borderBottom:`1px solid ${et}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:j.transitions.create("border-bottom-color",{duration:j.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${inputClasses$1.disabled}, .${inputClasses$1.error}):before`]:{borderBottom:`2px solid ${(j.vars||j).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${et}`}},[`&.${inputClasses$1.disabled}:before`]:{borderBottomStyle:"dotted"}})}),InputInput=styled(InputBaseComponent,{name:"MuiInput",slot:"Input",overridesResolver:inputOverridesResolver})({}),Input=reactExports.forwardRef(function j($,_e){var et,tt,rt,nt;const it=useThemeProps({props:$,name:"MuiInput"}),{disableUnderline:ot,components:At={},componentsProps:ut,fullWidth:ft=!1,inputComponent:dt="input",multiline:Et=!1,slotProps:Bt,slots:St={},type:Dt="text"}=it,$t=_objectWithoutPropertiesLoose(it,_excluded$5),Rt=useUtilityClasses$4(it),xt={root:{ownerState:{disableUnderline:ot}}},Nt=Bt??ut?deepmerge$1(Bt??ut,xt):xt,Ot=(et=(tt=St.root)!=null?tt:At.Root)!=null?et:InputRoot,kt=(rt=(nt=St.input)!=null?nt:At.Input)!=null?rt:InputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$1({slots:{root:Ot,input:kt},slotProps:Nt,fullWidth:ft,inputComponent:dt,multiline:Et,ref:_e,type:Dt},$t,{classes:Rt}))});Input.muiName="Input";const Input$1=Input;function getFilledInputUtilityClass(j){return generateUtilityClass("MuiFilledInput",j)}const filledInputClasses=_extends$1({},inputBaseClasses$1,generateUtilityClasses("MuiFilledInput",["root","underline","input"])),filledInputClasses$1=filledInputClasses,_excluded$4=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"],useUtilityClasses$3=j=>{const{classes:$,disableUnderline:_e}=j,tt=composeClasses({root:["root",!_e&&"underline"],input:["input"]},getFilledInputUtilityClass,$);return _extends$1({},$,tt)},FilledInputRoot=styled(InputBaseRoot,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[...rootOverridesResolver(j,$),!_e.disableUnderline&&$.underline]}})(({theme:j,ownerState:$})=>{var _e;const et=j.palette.mode==="light",tt=et?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",rt=et?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",nt=et?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",it=et?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return _extends$1({position:"relative",backgroundColor:j.vars?j.vars.palette.FilledInput.bg:rt,borderTopLeftRadius:(j.vars||j).shape.borderRadius,borderTopRightRadius:(j.vars||j).shape.borderRadius,transition:j.transitions.create("background-color",{duration:j.transitions.duration.shorter,easing:j.transitions.easing.easeOut}),"&:hover":{backgroundColor:j.vars?j.vars.palette.FilledInput.hoverBg:nt,"@media (hover: none)":{backgroundColor:j.vars?j.vars.palette.FilledInput.bg:rt}},[`&.${filledInputClasses$1.focused}`]:{backgroundColor:j.vars?j.vars.palette.FilledInput.bg:rt},[`&.${filledInputClasses$1.disabled}`]:{backgroundColor:j.vars?j.vars.palette.FilledInput.disabledBg:it}},!$.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(_e=(j.vars||j).palette[$.color||"primary"])==null?void 0:_e.main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:j.transitions.create("transform",{duration:j.transitions.duration.shorter,easing:j.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${filledInputClasses$1.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${filledInputClasses$1.error}`]:{"&::before, &::after":{borderBottomColor:(j.vars||j).palette.error.main}},"&::before":{borderBottom:`1px solid ${j.vars?`rgba(${j.vars.palette.common.onBackgroundChannel} / ${j.vars.opacity.inputUnderline})`:tt}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:j.transitions.create("border-bottom-color",{duration:j.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${filledInputClasses$1.disabled}, .${filledInputClasses$1.error}):before`]:{borderBottom:`1px solid ${(j.vars||j).palette.text.primary}`},[`&.${filledInputClasses$1.disabled}:before`]:{borderBottomStyle:"dotted"}},$.startAdornment&&{paddingLeft:12},$.endAdornment&&{paddingRight:12},$.multiline&&_extends$1({padding:"25px 12px 8px"},$.size==="small"&&{paddingTop:21,paddingBottom:4},$.hiddenLabel&&{paddingTop:16,paddingBottom:17},$.hiddenLabel&&$.size==="small"&&{paddingTop:8,paddingBottom:9}))}),FilledInputInput=styled(InputBaseComponent,{name:"MuiFilledInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:j,ownerState:$})=>_extends$1({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!j.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:j.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:j.palette.mode==="light"?null:"#fff",caretColor:j.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},j.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[j.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},$.size==="small"&&{paddingTop:21,paddingBottom:4},$.hiddenLabel&&{paddingTop:16,paddingBottom:17},$.startAdornment&&{paddingLeft:0},$.endAdornment&&{paddingRight:0},$.hiddenLabel&&$.size==="small"&&{paddingTop:8,paddingBottom:9},$.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0})),FilledInput=reactExports.forwardRef(function j($,_e){var et,tt,rt,nt;const it=useThemeProps({props:$,name:"MuiFilledInput"}),{components:ot={},componentsProps:At,fullWidth:ut=!1,inputComponent:ft="input",multiline:dt=!1,slotProps:Et,slots:Bt={},type:St="text"}=it,Dt=_objectWithoutPropertiesLoose(it,_excluded$4),$t=_extends$1({},it,{fullWidth:ut,inputComponent:ft,multiline:dt,type:St}),Rt=useUtilityClasses$3(it),wt={root:{ownerState:$t},input:{ownerState:$t}},xt=Et??At?deepmerge$1(wt,Et??At):wt,Nt=(et=(tt=Bt.root)!=null?tt:ot.Root)!=null?et:FilledInputRoot,Ot=(rt=(nt=Bt.input)!=null?nt:ot.Input)!=null?rt:FilledInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$1({slots:{root:Nt,input:Ot},componentsProps:xt,fullWidth:ut,inputComponent:ft,multiline:dt,ref:_e,type:St},Dt,{classes:Rt}))});FilledInput.muiName="Input";const FilledInput$1=FilledInput;var _span;const _excluded$3=["children","classes","className","label","notched"],NotchedOutlineRoot$1=styled("fieldset",{shouldForwardProp:rootShouldForwardProp})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),NotchedOutlineLegend=styled("legend",{shouldForwardProp:rootShouldForwardProp})(({ownerState:j,theme:$})=>_extends$1({float:"unset",width:"auto",overflow:"hidden"},!j.withLabel&&{padding:0,lineHeight:"11px",transition:$.transitions.create("width",{duration:150,easing:$.transitions.easing.easeOut})},j.withLabel&&_extends$1({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:$.transitions.create("max-width",{duration:50,easing:$.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},j.notched&&{maxWidth:"100%",transition:$.transitions.create("max-width",{duration:100,easing:$.transitions.easing.easeOut,delay:50})})));function NotchedOutline(j){const{className:$,label:_e,notched:et}=j,tt=_objectWithoutPropertiesLoose(j,_excluded$3),rt=_e!=null&&_e!=="",nt=_extends$1({},j,{notched:et,withLabel:rt});return jsxRuntimeExports.jsx(NotchedOutlineRoot$1,_extends$1({"aria-hidden":!0,className:$,ownerState:nt},tt,{children:jsxRuntimeExports.jsx(NotchedOutlineLegend,{ownerState:nt,children:rt?jsxRuntimeExports.jsx("span",{children:_e}):_span||(_span=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"}))})}))}function getOutlinedInputUtilityClass(j){return generateUtilityClass("MuiOutlinedInput",j)}const outlinedInputClasses=_extends$1({},inputBaseClasses$1,generateUtilityClasses("MuiOutlinedInput",["root","notchedOutline","input"])),outlinedInputClasses$1=outlinedInputClasses,_excluded$2=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],useUtilityClasses$2=j=>{const{classes:$}=j,et=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,$);return _extends$1({},$,et)},OutlinedInputRoot=styled(InputBaseRoot,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:j,ownerState:$})=>{const _e=j.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return _extends$1({position:"relative",borderRadius:(j.vars||j).shape.borderRadius,[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(j.vars||j).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:j.vars?`rgba(${j.vars.palette.common.onBackgroundChannel} / 0.23)`:_e}},[`&.${outlinedInputClasses$1.focused} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(j.vars||j).palette[$.color].main,borderWidth:2},[`&.${outlinedInputClasses$1.error} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(j.vars||j).palette.error.main},[`&.${outlinedInputClasses$1.disabled} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(j.vars||j).palette.action.disabled}},$.startAdornment&&{paddingLeft:14},$.endAdornment&&{paddingRight:14},$.multiline&&_extends$1({padding:"16.5px 14px"},$.size==="small"&&{padding:"8.5px 14px"}))}),NotchedOutlineRoot=styled(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(j,$)=>$.notchedOutline})(({theme:j})=>{const $=j.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:j.vars?`rgba(${j.vars.palette.common.onBackgroundChannel} / 0.23)`:$}}),OutlinedInputInput=styled(InputBaseComponent,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:j,ownerState:$})=>_extends$1({padding:"16.5px 14px"},!j.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:j.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:j.palette.mode==="light"?null:"#fff",caretColor:j.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},j.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[j.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},$.size==="small"&&{padding:"8.5px 14px"},$.multiline&&{padding:0},$.startAdornment&&{paddingLeft:0},$.endAdornment&&{paddingRight:0})),OutlinedInput=reactExports.forwardRef(function j($,_e){var et,tt,rt,nt,it;const ot=useThemeProps({props:$,name:"MuiOutlinedInput"}),{components:At={},fullWidth:ut=!1,inputComponent:ft="input",label:dt,multiline:Et=!1,notched:Bt,slots:St={},type:Dt="text"}=ot,$t=_objectWithoutPropertiesLoose(ot,_excluded$2),Rt=useUtilityClasses$2(ot),wt=useFormControl(),xt=formControlState({props:ot,muiFormControl:wt,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),Nt=_extends$1({},ot,{color:xt.color||"primary",disabled:xt.disabled,error:xt.error,focused:xt.focused,formControl:wt,fullWidth:ut,hiddenLabel:xt.hiddenLabel,multiline:Et,size:xt.size,type:Dt}),Ot=(et=(tt=St.root)!=null?tt:At.Root)!=null?et:OutlinedInputRoot,kt=(rt=(nt=St.input)!=null?nt:At.Input)!=null?rt:OutlinedInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$1({slots:{root:Ot,input:kt},renderSuffix:Jt=>jsxRuntimeExports.jsx(NotchedOutlineRoot,{ownerState:Nt,className:Rt.notchedOutline,label:dt!=null&&dt!==""&&xt.required?it||(it=jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[dt," ","*"]})):dt,notched:typeof Bt<"u"?Bt:!!(Jt.startAdornment||Jt.filled||Jt.focused)}),fullWidth:ut,inputComponent:ft,multiline:Et,ref:_e,type:Dt},$t,{classes:_extends$1({},Rt,{notchedOutline:null})}))});OutlinedInput.muiName="Input";const OutlinedInput$1=OutlinedInput,_excluded$1=["autoWidth","children","classes","className","defaultOpen","displayEmpty","IconComponent","id","input","inputProps","label","labelId","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"],_excluded2=["root"],useUtilityClasses$1=j=>{const{classes:$}=j;return $},styledRootConfig={name:"MuiSelect",overridesResolver:(j,$)=>$.root,shouldForwardProp:j=>rootShouldForwardProp(j)&&j!=="variant",slot:"Root"},StyledInput=styled(Input$1,styledRootConfig)(""),StyledOutlinedInput=styled(OutlinedInput$1,styledRootConfig)(""),StyledFilledInput=styled(FilledInput$1,styledRootConfig)(""),Select=reactExports.forwardRef(function j($,_e){const et=useThemeProps({name:"MuiSelect",props:$}),{autoWidth:tt=!1,children:rt,classes:nt={},className:it,defaultOpen:ot=!1,displayEmpty:At=!1,IconComponent:ut=ArrowDropDownIcon,id:ft,input:dt,inputProps:Et,label:Bt,labelId:St,MenuProps:Dt,multiple:$t=!1,native:Rt=!1,onClose:wt,onOpen:xt,open:Nt,renderValue:Ot,SelectDisplayProps:kt,variant:Jt="outlined"}=et,jt=_objectWithoutPropertiesLoose(et,_excluded$1),Ht=Rt?NativeSelectInput$1:SelectInput$1,Gt=useFormControl(),Kt=formControlState({props:et,muiFormControl:Gt,states:["variant","error"]}),Wt=Kt.variant||Jt,Vt=_extends$1({},et,{variant:Wt,classes:nt}),ur=useUtilityClasses$1(Vt),Ar=_objectWithoutPropertiesLoose(ur,_excluded2),hr=dt||{standard:jsxRuntimeExports.jsx(StyledInput,{ownerState:Vt}),outlined:jsxRuntimeExports.jsx(StyledOutlinedInput,{label:Bt,ownerState:Vt}),filled:jsxRuntimeExports.jsx(StyledFilledInput,{ownerState:Vt})}[Wt],sr=useForkRef(_e,hr.ref);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:reactExports.cloneElement(hr,_extends$1({inputComponent:Ht,inputProps:_extends$1({children:rt,error:Kt.error,IconComponent:ut,variant:Wt,type:void 0,multiple:$t},Rt?{id:ft}:{autoWidth:tt,defaultOpen:ot,displayEmpty:At,labelId:St,MenuProps:Dt,onClose:wt,onOpen:xt,open:Nt,renderValue:Ot,SelectDisplayProps:_extends$1({id:ft},kt)},Et,{classes:Et?deepmerge$1(Ar,Et.classes):Ar},dt?dt.props.inputProps:{})},($t&&Rt||At)&&Wt==="outlined"?{notched:!0}:{},{ref:sr,className:clsx(hr.props.className,it,ur.root)},!dt&&{variant:Wt},jt))})});Select.muiName="Select";const Select$1=Select;function getButtonUtilityClass(j){return generateUtilityClass("MuiButton",j)}const buttonClasses=generateUtilityClasses("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,ButtonGroupButtonContext=reactExports.createContext(void 0),ButtonGroupButtonContext$1=ButtonGroupButtonContext,_excluded=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses=j=>{const{color:$,disableElevation:_e,fullWidth:et,size:tt,variant:rt,classes:nt}=j,it={root:["root",rt,`${rt}${capitalize$1($)}`,`size${capitalize$1(tt)}`,`${rt}Size${capitalize$1(tt)}`,`color${capitalize$1($)}`,_e&&"disableElevation",et&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${capitalize$1(tt)}`],endIcon:["icon","endIcon",`iconSize${capitalize$1(tt)}`]},ot=composeClasses(it,getButtonUtilityClass,nt);return _extends$1({},nt,ot)},commonIconStyles=j=>_extends$1({},j.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},j.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},j.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled(ButtonBase$1,{shouldForwardProp:j=>rootShouldForwardProp(j)||j==="classes",name:"MuiButton",slot:"Root",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.root,$[_e.variant],$[`${_e.variant}${capitalize$1(_e.color)}`],$[`size${capitalize$1(_e.size)}`],$[`${_e.variant}Size${capitalize$1(_e.size)}`],_e.color==="inherit"&&$.colorInherit,_e.disableElevation&&$.disableElevation,_e.fullWidth&&$.fullWidth]}})(({theme:j,ownerState:$})=>{var _e,et;const tt=j.palette.mode==="light"?j.palette.grey[300]:j.palette.grey[800],rt=j.palette.mode==="light"?j.palette.grey.A100:j.palette.grey[700];return _extends$1({},j.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(j.vars||j).shape.borderRadius,transition:j.transitions.create(["background-color","box-shadow","border-color","color"],{duration:j.transitions.duration.short}),"&:hover":_extends$1({textDecoration:"none",backgroundColor:j.vars?`rgba(${j.vars.palette.text.primaryChannel} / ${j.vars.palette.action.hoverOpacity})`:alpha_1(j.palette.text.primary,j.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},$.variant==="text"&&$.color!=="inherit"&&{backgroundColor:j.vars?`rgba(${j.vars.palette[$.color].mainChannel} / ${j.vars.palette.action.hoverOpacity})`:alpha_1(j.palette[$.color].main,j.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},$.variant==="outlined"&&$.color!=="inherit"&&{border:`1px solid ${(j.vars||j).palette[$.color].main}`,backgroundColor:j.vars?`rgba(${j.vars.palette[$.color].mainChannel} / ${j.vars.palette.action.hoverOpacity})`:alpha_1(j.palette[$.color].main,j.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},$.variant==="contained"&&{backgroundColor:j.vars?j.vars.palette.Button.inheritContainedHoverBg:rt,boxShadow:(j.vars||j).shadows[4],"@media (hover: none)":{boxShadow:(j.vars||j).shadows[2],backgroundColor:(j.vars||j).palette.grey[300]}},$.variant==="contained"&&$.color!=="inherit"&&{backgroundColor:(j.vars||j).palette[$.color].dark,"@media (hover: none)":{backgroundColor:(j.vars||j).palette[$.color].main}}),"&:active":_extends$1({},$.variant==="contained"&&{boxShadow:(j.vars||j).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$1({},$.variant==="contained"&&{boxShadow:(j.vars||j).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$1({color:(j.vars||j).palette.action.disabled},$.variant==="outlined"&&{border:`1px solid ${(j.vars||j).palette.action.disabledBackground}`},$.variant==="contained"&&{color:(j.vars||j).palette.action.disabled,boxShadow:(j.vars||j).shadows[0],backgroundColor:(j.vars||j).palette.action.disabledBackground})},$.variant==="text"&&{padding:"6px 8px"},$.variant==="text"&&$.color!=="inherit"&&{color:(j.vars||j).palette[$.color].main},$.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},$.variant==="outlined"&&$.color!=="inherit"&&{color:(j.vars||j).palette[$.color].main,border:j.vars?`1px solid rgba(${j.vars.palette[$.color].mainChannel} / 0.5)`:`1px solid ${alpha_1(j.palette[$.color].main,.5)}`},$.variant==="contained"&&{color:j.vars?j.vars.palette.text.primary:(_e=(et=j.palette).getContrastText)==null?void 0:_e.call(et,j.palette.grey[300]),backgroundColor:j.vars?j.vars.palette.Button.inheritContainedBg:tt,boxShadow:(j.vars||j).shadows[2]},$.variant==="contained"&&$.color!=="inherit"&&{color:(j.vars||j).palette[$.color].contrastText,backgroundColor:(j.vars||j).palette[$.color].main},$.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},$.size==="small"&&$.variant==="text"&&{padding:"4px 5px",fontSize:j.typography.pxToRem(13)},$.size==="large"&&$.variant==="text"&&{padding:"8px 11px",fontSize:j.typography.pxToRem(15)},$.size==="small"&&$.variant==="outlined"&&{padding:"3px 9px",fontSize:j.typography.pxToRem(13)},$.size==="large"&&$.variant==="outlined"&&{padding:"7px 21px",fontSize:j.typography.pxToRem(15)},$.size==="small"&&$.variant==="contained"&&{padding:"4px 10px",fontSize:j.typography.pxToRem(13)},$.size==="large"&&$.variant==="contained"&&{padding:"8px 22px",fontSize:j.typography.pxToRem(15)},$.fullWidth&&{width:"100%"})},({ownerState:j})=>j.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.startIcon,$[`iconSize${capitalize$1(_e.size)}`]]}})(({ownerState:j})=>_extends$1({display:"inherit",marginRight:8,marginLeft:-4},j.size==="small"&&{marginLeft:-2},commonIconStyles(j))),ButtonEndIcon=styled("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(j,$)=>{const{ownerState:_e}=j;return[$.endIcon,$[`iconSize${capitalize$1(_e.size)}`]]}})(({ownerState:j})=>_extends$1({display:"inherit",marginRight:-4,marginLeft:8},j.size==="small"&&{marginRight:-2},commonIconStyles(j))),Button=reactExports.forwardRef(function j($,_e){const et=reactExports.useContext(ButtonGroupContext$1),tt=reactExports.useContext(ButtonGroupButtonContext$1),rt=resolveProps(et,$),nt=useThemeProps({props:rt,name:"MuiButton"}),{children:it,color:ot="primary",component:At="button",className:ut,disabled:ft=!1,disableElevation:dt=!1,disableFocusRipple:Et=!1,endIcon:Bt,focusVisibleClassName:St,fullWidth:Dt=!1,size:$t="medium",startIcon:Rt,type:wt,variant:xt="text"}=nt,Nt=_objectWithoutPropertiesLoose(nt,_excluded),Ot=_extends$1({},nt,{color:ot,component:At,disabled:ft,disableElevation:dt,disableFocusRipple:Et,fullWidth:Dt,size:$t,type:wt,variant:xt}),kt=useUtilityClasses(Ot),Jt=Rt&&jsxRuntimeExports.jsx(ButtonStartIcon,{className:kt.startIcon,ownerState:Ot,children:Rt}),jt=Bt&&jsxRuntimeExports.jsx(ButtonEndIcon,{className:kt.endIcon,ownerState:Ot,children:Bt}),Ht=tt||"";return jsxRuntimeExports.jsxs(ButtonRoot,_extends$1({ownerState:Ot,className:clsx(et.className,kt.root,ut,Ht),component:At,disabled:ft,focusRipple:!Et,focusVisibleClassName:clsx(kt.focusVisible,St),ref:_e,type:wt},Nt,{classes:kt,children:[Jt,it,jt]}))}),Button$1=Button,Stack=createStack({createStyledComponent:styled("div",{name:"MuiStack",slot:"Root",overridesResolver:(j,$)=>$.root}),useThemeProps:j=>useThemeProps({props:j,name:"MuiStack"})}),Stack$1=Stack;function ascending$1(j,$){return j<$?-1:j>$?1:j>=$?0:NaN}function bisector(j){let $=j,_e=j;j.length===1&&($=(nt,it)=>j(nt)-it,_e=ascendingComparator(j));function et(nt,it,ot,At){for(ot==null&&(ot=0),At==null&&(At=nt.length);ot>>1;_e(nt[ut],it)<0?ot=ut+1:At=ut}return ot}function tt(nt,it,ot,At){for(ot==null&&(ot=0),At==null&&(At=nt.length);ot>>1;_e(nt[ut],it)>0?At=ut:ot=ut+1}return ot}function rt(nt,it,ot,At){ot==null&&(ot=0),At==null&&(At=nt.length);const ut=et(nt,it,ot,At-1);return ut>ot&&$(nt[ut-1],it)>-$(nt[ut],it)?ut-1:ut}return{left:et,center:rt,right:tt}}function ascendingComparator(j){return($,_e)=>ascending$1(j($),_e)}function number$2(j){return j===null?NaN:+j}const ascendingBisect=bisector(ascending$1),bisectRight=ascendingBisect.right;bisector(number$2).center;var e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function ticks(j,$,_e){var et,tt=-1,rt,nt,it;if($=+$,j=+j,_e=+_e,j===$&&_e>0)return[j];if((et=$0){let ot=Math.round(j/it),At=Math.round($/it);for(ot*it$&&--At,nt=new Array(rt=At-ot+1);++tt$&&--At,nt=new Array(rt=At-ot+1);++tt=0?(rt>=e10?10:rt>=e5?5:rt>=e2?2:1)*Math.pow(10,tt):-Math.pow(10,-tt)/(rt>=e10?10:rt>=e5?5:rt>=e2?2:1)}function tickStep(j,$,_e){var et=Math.abs($-j)/Math.max(0,_e),tt=Math.pow(10,Math.floor(Math.log(et)/Math.LN10)),rt=et/tt;return rt>=e10?tt*=10:rt>=e5?tt*=5:rt>=e2&&(tt*=2),$+j($)}function center(j,$){return $=Math.max(0,j.bandwidth()-$*2)/2,j.round()&&($=Math.round($)),_e=>+j(_e)+$}function entering(){return!this.__axis}function axis(j,$){var _e=[],et=null,tt=null,rt=6,nt=6,it=3,ot=typeof window<"u"&&window.devicePixelRatio>1?0:.5,At=j===top||j===left?-1:1,ut=j===left||j===right?"x":"y",ft=j===top||j===bottom?translateX:translateY;function dt(Et){var Bt=et??($.ticks?$.ticks.apply($,_e):$.domain()),St=tt??($.tickFormat?$.tickFormat.apply($,_e):identity$3),Dt=Math.max(rt,0)+it,$t=$.range(),Rt=+$t[0]+ot,wt=+$t[$t.length-1]+ot,xt=($.bandwidth?center:number$1)($.copy(),ot),Nt=Et.selection?Et.selection():Et,Ot=Nt.selectAll(".domain").data([null]),kt=Nt.selectAll(".tick").data(Bt,$).order(),Jt=kt.exit(),jt=kt.enter().append("g").attr("class","tick"),Ht=kt.select("line"),Gt=kt.select("text");Ot=Ot.merge(Ot.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),kt=kt.merge(jt),Ht=Ht.merge(jt.append("line").attr("stroke","currentColor").attr(ut+"2",At*rt)),Gt=Gt.merge(jt.append("text").attr("fill","currentColor").attr(ut,At*Dt).attr("dy",j===top?"0em":j===bottom?"0.71em":"0.32em")),Et!==Nt&&(Ot=Ot.transition(Et),kt=kt.transition(Et),Ht=Ht.transition(Et),Gt=Gt.transition(Et),Jt=Jt.transition(Et).attr("opacity",epsilon).attr("transform",function(Kt){return isFinite(Kt=xt(Kt))?ft(Kt+ot):this.getAttribute("transform")}),jt.attr("opacity",epsilon).attr("transform",function(Kt){var Wt=this.parentNode.__axis;return ft((Wt&&isFinite(Wt=Wt(Kt))?Wt:xt(Kt))+ot)})),Jt.remove(),Ot.attr("d",j===left||j===right?nt?"M"+At*nt+","+Rt+"H"+ot+"V"+wt+"H"+At*nt:"M"+ot+","+Rt+"V"+wt:nt?"M"+Rt+","+At*nt+"V"+ot+"H"+wt+"V"+At*nt:"M"+Rt+","+ot+"H"+wt),kt.attr("opacity",1).attr("transform",function(Kt){return ft(xt(Kt)+ot)}),Ht.attr(ut+"2",At*rt),Gt.attr(ut,At*Dt).text(St),Nt.filter(entering).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",j===right?"start":j===left?"end":"middle"),Nt.each(function(){this.__axis=xt})}return dt.scale=function(Et){return arguments.length?($=Et,dt):$},dt.ticks=function(){return _e=slice.call(arguments),dt},dt.tickArguments=function(Et){return arguments.length?(_e=Et==null?[]:slice.call(Et),dt):_e.slice()},dt.tickValues=function(Et){return arguments.length?(et=Et==null?null:slice.call(Et),dt):et&&et.slice()},dt.tickFormat=function(Et){return arguments.length?(tt=Et,dt):tt},dt.tickSize=function(Et){return arguments.length?(rt=nt=+Et,dt):rt},dt.tickSizeInner=function(Et){return arguments.length?(rt=+Et,dt):rt},dt.tickSizeOuter=function(Et){return arguments.length?(nt=+Et,dt):nt},dt.tickPadding=function(Et){return arguments.length?(it=+Et,dt):it},dt.offset=function(Et){return arguments.length?(ot=+Et,dt):ot},dt}function axisRight(j){return axis(right,j)}function axisBottom(j){return axis(bottom,j)}function axisLeft(j){return axis(left,j)}var noop={value:()=>{}};function dispatch(){for(var j=0,$=arguments.length,_e={},et;j<$;++j){if(!(et=arguments[j]+"")||et in _e||/[\s.]/.test(et))throw new Error("illegal type: "+et);_e[et]=[]}return new Dispatch(_e)}function Dispatch(j){this._=j}function parseTypenames$1(j,$){return j.trim().split(/^|\s+/).map(function(_e){var et="",tt=_e.indexOf(".");if(tt>=0&&(et=_e.slice(tt+1),_e=_e.slice(0,tt)),_e&&!$.hasOwnProperty(_e))throw new Error("unknown type: "+_e);return{type:_e,name:et}})}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(j,$){var _e=this._,et=parseTypenames$1(j+"",_e),tt,rt=-1,nt=et.length;if(arguments.length<2){for(;++rt0)for(var _e=new Array(tt),et=0,tt,rt;et=0&&($=j.slice(0,_e))!=="xmlns"&&(j=j.slice(_e+1)),namespaces.hasOwnProperty($)?{space:namespaces[$],local:j}:j}function creatorInherit(j){return function(){var $=this.ownerDocument,_e=this.namespaceURI;return _e===xhtml&&$.documentElement.namespaceURI===xhtml?$.createElement(j):$.createElementNS(_e,j)}}function creatorFixed(j){return function(){return this.ownerDocument.createElementNS(j.space,j.local)}}function creator(j){var $=namespace(j);return($.local?creatorFixed:creatorInherit)($)}function none(){}function selector(j){return j==null?none:function(){return this.querySelector(j)}}function selection_select(j){typeof j!="function"&&(j=selector(j));for(var $=this._groups,_e=$.length,et=new Array(_e),tt=0;tt<_e;++tt)for(var rt=$[tt],nt=rt.length,it=et[tt]=new Array(nt),ot,At,ut=0;ut=wt&&(wt=Rt+1);!(Nt=Dt[wt])&&++wt=0;)(nt=et[tt])&&(rt&&nt.compareDocumentPosition(rt)^4&&rt.parentNode.insertBefore(nt,rt),rt=nt);return this}function selection_sort(j){j||(j=ascending);function $(ft,dt){return ft&&dt?j(ft.__data__,dt.__data__):!ft-!dt}for(var _e=this._groups,et=_e.length,tt=new Array(et),rt=0;rt$?1:j>=$?0:NaN}function selection_call(){var j=arguments[0];return arguments[0]=this,j.apply(null,arguments),this}function selection_nodes(){return Array.from(this)}function selection_node(){for(var j=this._groups,$=0,_e=j.length;$<_e;++$)for(var et=j[$],tt=0,rt=et.length;tt1?this.each(($==null?styleRemove$1:typeof $=="function"?styleFunction$1:styleConstant$1)(j,$,_e??"")):styleValue(this.node(),j)}function styleValue(j,$){return j.style.getPropertyValue($)||defaultView(j).getComputedStyle(j,null).getPropertyValue($)}function propertyRemove(j){return function(){delete this[j]}}function propertyConstant(j,$){return function(){this[j]=$}}function propertyFunction(j,$){return function(){var _e=$.apply(this,arguments);_e==null?delete this[j]:this[j]=_e}}function selection_property(j,$){return arguments.length>1?this.each(($==null?propertyRemove:typeof $=="function"?propertyFunction:propertyConstant)(j,$)):this.node()[j]}function classArray(j){return j.trim().split(/^|\s+/)}function classList(j){return j.classList||new ClassList(j)}function ClassList(j){this._node=j,this._names=classArray(j.getAttribute("class")||"")}ClassList.prototype={add:function(j){var $=this._names.indexOf(j);$<0&&(this._names.push(j),this._node.setAttribute("class",this._names.join(" ")))},remove:function(j){var $=this._names.indexOf(j);$>=0&&(this._names.splice($,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(j){return this._names.indexOf(j)>=0}};function classedAdd(j,$){for(var _e=classList(j),et=-1,tt=$.length;++et=0&&(_e=$.slice(et+1),$=$.slice(0,et)),{type:$,name:_e}})}function onRemove(j){return function(){var $=this.__on;if($){for(var _e=0,et=-1,tt=$.length,rt;_e()=>j;function DragEvent(j,{sourceEvent:$,subject:_e,target:et,identifier:tt,active:rt,x:nt,y:it,dx:ot,dy:At,dispatch:ut}){Object.defineProperties(this,{type:{value:j,enumerable:!0,configurable:!0},sourceEvent:{value:$,enumerable:!0,configurable:!0},subject:{value:_e,enumerable:!0,configurable:!0},target:{value:et,enumerable:!0,configurable:!0},identifier:{value:tt,enumerable:!0,configurable:!0},active:{value:rt,enumerable:!0,configurable:!0},x:{value:nt,enumerable:!0,configurable:!0},y:{value:it,enumerable:!0,configurable:!0},dx:{value:ot,enumerable:!0,configurable:!0},dy:{value:At,enumerable:!0,configurable:!0},_:{value:ut}})}DragEvent.prototype.on=function(){var j=this._.on.apply(this._,arguments);return j===this._?this:j};function defaultFilter(j){return!j.ctrlKey&&!j.button}function defaultContainer(){return this.parentNode}function defaultSubject(j,$){return $??{x:j.x,y:j.y}}function defaultTouchable(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag(){var j=defaultFilter,$=defaultContainer,_e=defaultSubject,et=defaultTouchable,tt={},rt=dispatch("start","drag","end"),nt=0,it,ot,At,ut,ft=0;function dt(xt){xt.on("mousedown.drag",Et).filter(et).on("touchstart.drag",Dt).on("touchmove.drag",$t).on("touchend.drag touchcancel.drag",Rt).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function Et(xt,Nt){if(!(ut||!j.call(this,xt,Nt))){var Ot=wt(this,$.call(this,xt,Nt),xt,Nt,"mouse");Ot&&(select(xt.view).on("mousemove.drag",Bt,!0).on("mouseup.drag",St,!0),dragDisable(xt.view),nopropagation(xt),At=!1,it=xt.clientX,ot=xt.clientY,Ot("start",xt))}}function Bt(xt){if(noevent(xt),!At){var Nt=xt.clientX-it,Ot=xt.clientY-ot;At=Nt*Nt+Ot*Ot>ft}tt.mouse("drag",xt)}function St(xt){select(xt.view).on("mousemove.drag mouseup.drag",null),yesdrag(xt.view,At),noevent(xt),tt.mouse("end",xt)}function Dt(xt,Nt){if(j.call(this,xt,Nt)){var Ot=xt.changedTouches,kt=$.call(this,xt,Nt),Jt=Ot.length,jt,Ht;for(jt=0;jt>8&15|$>>4&240,$>>4&15|$&240,($&15)<<4|$&15,1):_e===8?rgba($>>24&255,$>>16&255,$>>8&255,($&255)/255):_e===4?rgba($>>12&15|$>>8&240,$>>8&15|$>>4&240,$>>4&15|$&240,(($&15)<<4|$&15)/255):null):($=reRgbInteger.exec(j))?new Rgb($[1],$[2],$[3],1):($=reRgbPercent.exec(j))?new Rgb($[1]*255/100,$[2]*255/100,$[3]*255/100,1):($=reRgbaInteger.exec(j))?rgba($[1],$[2],$[3],$[4]):($=reRgbaPercent.exec(j))?rgba($[1]*255/100,$[2]*255/100,$[3]*255/100,$[4]):($=reHslPercent.exec(j))?hsla($[1],$[2]/100,$[3]/100,1):($=reHslaPercent.exec(j))?hsla($[1],$[2]/100,$[3]/100,$[4]):named.hasOwnProperty(j)?rgbn(named[j]):j==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(j){return new Rgb(j>>16&255,j>>8&255,j&255,1)}function rgba(j,$,_e,et){return et<=0&&(j=$=_e=NaN),new Rgb(j,$,_e,et)}function rgbConvert(j){return j instanceof Color||(j=color(j)),j?(j=j.rgb(),new Rgb(j.r,j.g,j.b,j.opacity)):new Rgb}function rgb(j,$,_e,et){return arguments.length===1?rgbConvert(j):new Rgb(j,$,_e,et??1)}function Rgb(j,$,_e,et){this.r=+j,this.g=+$,this.b=+_e,this.opacity=+et}define(Rgb,rgb,extend(Color,{brighter:function(j){return j=j==null?brighter:Math.pow(brighter,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},darker:function(j){return j=j==null?darker:Math.pow(darker,j),new Rgb(this.r*j,this.g*j,this.b*j,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return"#"+hex(this.r)+hex(this.g)+hex(this.b)}function rgb_formatRgb(){var j=this.opacity;return j=isNaN(j)?1:Math.max(0,Math.min(1,j)),(j===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(j===1?")":", "+j+")")}function hex(j){return j=Math.max(0,Math.min(255,Math.round(j)||0)),(j<16?"0":"")+j.toString(16)}function hsla(j,$,_e,et){return et<=0?j=$=_e=NaN:_e<=0||_e>=1?j=$=NaN:$<=0&&(j=NaN),new Hsl(j,$,_e,et)}function hslConvert(j){if(j instanceof Hsl)return new Hsl(j.h,j.s,j.l,j.opacity);if(j instanceof Color||(j=color(j)),!j)return new Hsl;if(j instanceof Hsl)return j;j=j.rgb();var $=j.r/255,_e=j.g/255,et=j.b/255,tt=Math.min($,_e,et),rt=Math.max($,_e,et),nt=NaN,it=rt-tt,ot=(rt+tt)/2;return it?($===rt?nt=(_e-et)/it+(_e0&&ot<1?0:nt,new Hsl(nt,it,ot,j.opacity)}function hsl(j,$,_e,et){return arguments.length===1?hslConvert(j):new Hsl(j,$,_e,et??1)}function Hsl(j,$,_e,et){this.h=+j,this.s=+$,this.l=+_e,this.opacity=+et}define(Hsl,hsl,extend(Color,{brighter:function(j){return j=j==null?brighter:Math.pow(brighter,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},darker:function(j){return j=j==null?darker:Math.pow(darker,j),new Hsl(this.h,this.s,this.l*j,this.opacity)},rgb:function(){var j=this.h%360+(this.h<0)*360,$=isNaN(j)||isNaN(this.s)?0:this.s,_e=this.l,et=_e+(_e<.5?_e:1-_e)*$,tt=2*_e-et;return new Rgb(hsl2rgb(j>=240?j-240:j+120,tt,et),hsl2rgb(j,tt,et),hsl2rgb(j<120?j+240:j-120,tt,et),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var j=this.opacity;return j=isNaN(j)?1:Math.max(0,Math.min(1,j)),(j===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(j===1?")":", "+j+")")}}));function hsl2rgb(j,$,_e){return(j<60?$+(_e-$)*j/60:j<180?_e:j<240?$+(_e-$)*(240-j)/60:$)*255}const constant=j=>()=>j;function linear$1(j,$){return function(_e){return j+_e*$}}function exponential(j,$,_e){return j=Math.pow(j,_e),$=Math.pow($,_e)-j,_e=1/_e,function(et){return Math.pow(j+et*$,_e)}}function gamma(j){return(j=+j)==1?nogamma:function($,_e){return _e-$?exponential($,_e,j):constant(isNaN($)?_e:$)}}function nogamma(j,$){var _e=$-j;return _e?linear$1(j,_e):constant(isNaN(j)?$:j)}const interpolateRgb=function j($){var _e=gamma($);function et(tt,rt){var nt=_e((tt=rgb(tt)).r,(rt=rgb(rt)).r),it=_e(tt.g,rt.g),ot=_e(tt.b,rt.b),At=nogamma(tt.opacity,rt.opacity);return function(ut){return tt.r=nt(ut),tt.g=it(ut),tt.b=ot(ut),tt.opacity=At(ut),tt+""}}return et.gamma=j,et}(1);function numberArray(j,$){$||($=[]);var _e=j?Math.min($.length,j.length):0,et=$.slice(),tt;return function(rt){for(tt=0;tt<_e;++tt)et[tt]=j[tt]*(1-rt)+$[tt]*rt;return et}}function isNumberArray(j){return ArrayBuffer.isView(j)&&!(j instanceof DataView)}function genericArray(j,$){var _e=$?$.length:0,et=j?Math.min(_e,j.length):0,tt=new Array(et),rt=new Array(_e),nt;for(nt=0;nt_e&&(rt=$.slice(_e,rt),it[nt]?it[nt]+=rt:it[++nt]=rt),(et=et[0])===(tt=tt[0])?it[nt]?it[nt]+=tt:it[++nt]=tt:(it[++nt]=null,ot.push({i:nt,x:interpolateNumber(et,tt)})),_e=reB.lastIndex;return _e<$.length&&(rt=$.slice(_e),it[nt]?it[nt]+=rt:it[++nt]=rt),it.length<2?ot[0]?one(ot[0].x):zero($):($=ot.length,function(At){for(var ut=0,ft;ut<$;++ut)it[(ft=ot[ut]).i]=ft.x(At);return it.join("")})}function interpolate$1(j,$){var _e=typeof $,et;return $==null||_e==="boolean"?constant($):(_e==="number"?interpolateNumber:_e==="string"?(et=color($))?($=et,interpolateRgb):interpolateString:$ instanceof color?interpolateRgb:$ instanceof Date?date:isNumberArray($)?numberArray:Array.isArray($)?genericArray:typeof $.valueOf!="function"&&typeof $.toString!="function"||isNaN($)?object:interpolateNumber)(j,$)}function interpolateRound(j,$){return j=+j,$=+$,function(_e){return Math.round(j*(1-_e)+$*_e)}}var degrees=180/Math.PI,identity$2={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function decompose(j,$,_e,et,tt,rt){var nt,it,ot;return(nt=Math.sqrt(j*j+$*$))&&(j/=nt,$/=nt),(ot=j*_e+$*et)&&(_e-=j*ot,et-=$*ot),(it=Math.sqrt(_e*_e+et*et))&&(_e/=it,et/=it,ot/=it),j*et<$*_e&&(j=-j,$=-$,ot=-ot,nt=-nt),{translateX:tt,translateY:rt,rotate:Math.atan2($,j)*degrees,skewX:Math.atan(ot)*degrees,scaleX:nt,scaleY:it}}var svgNode;function parseCss(j){const $=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(j+"");return $.isIdentity?identity$2:decompose($.a,$.b,$.c,$.d,$.e,$.f)}function parseSvg(j){return j==null||(svgNode||(svgNode=document.createElementNS("http://www.w3.org/2000/svg","g")),svgNode.setAttribute("transform",j),!(j=svgNode.transform.baseVal.consolidate()))?identity$2:(j=j.matrix,decompose(j.a,j.b,j.c,j.d,j.e,j.f))}function interpolateTransform(j,$,_e,et){function tt(At){return At.length?At.pop()+" ":""}function rt(At,ut,ft,dt,Et,Bt){if(At!==ft||ut!==dt){var St=Et.push("translate(",null,$,null,_e);Bt.push({i:St-4,x:interpolateNumber(At,ft)},{i:St-2,x:interpolateNumber(ut,dt)})}else(ft||dt)&&Et.push("translate("+ft+$+dt+_e)}function nt(At,ut,ft,dt){At!==ut?(At-ut>180?ut+=360:ut-At>180&&(At+=360),dt.push({i:ft.push(tt(ft)+"rotate(",null,et)-2,x:interpolateNumber(At,ut)})):ut&&ft.push(tt(ft)+"rotate("+ut+et)}function it(At,ut,ft,dt){At!==ut?dt.push({i:ft.push(tt(ft)+"skewX(",null,et)-2,x:interpolateNumber(At,ut)}):ut&&ft.push(tt(ft)+"skewX("+ut+et)}function ot(At,ut,ft,dt,Et,Bt){if(At!==ft||ut!==dt){var St=Et.push(tt(Et)+"scale(",null,",",null,")");Bt.push({i:St-4,x:interpolateNumber(At,ft)},{i:St-2,x:interpolateNumber(ut,dt)})}else(ft!==1||dt!==1)&&Et.push(tt(Et)+"scale("+ft+","+dt+")")}return function(At,ut){var ft=[],dt=[];return At=j(At),ut=j(ut),rt(At.translateX,At.translateY,ut.translateX,ut.translateY,ft,dt),nt(At.rotate,ut.rotate,ft,dt),it(At.skewX,ut.skewX,ft,dt),ot(At.scaleX,At.scaleY,ut.scaleX,ut.scaleY,ft,dt),At=ut=null,function(Et){for(var Bt=-1,St=dt.length,Dt;++Bt=0&&j._call.call(null,$),j=j._next;--frame}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame=timeout$1=0;try{timerFlush()}finally{frame=0,nap(),clockNow=0}}function poke(){var j=clock.now(),$=j-clockLast;$>pokeDelay&&(clockSkew-=$,clockLast=j)}function nap(){for(var j,$=taskHead,_e,et=1/0;$;)$._call?(et>$._time&&(et=$._time),j=$,$=$._next):(_e=$._next,$._next=null,$=j?j._next=_e:taskHead=_e);taskTail=j,sleep(et)}function sleep(j){if(!frame){timeout$1&&(timeout$1=clearTimeout(timeout$1));var $=j-clockNow;$>24?(j<1/0&&(timeout$1=setTimeout(wake,j-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame=1,setFrame(wake))}}function timeout(j,$,_e){var et=new Timer;return $=$==null?0:+$,et.restart(tt=>{et.stop(),j(tt+$)},$,_e),et}var emptyOn=dispatch("start","end","cancel","interrupt"),emptyTween=[],CREATED=0,SCHEDULED=1,STARTING=2,STARTED=3,RUNNING=4,ENDING=5,ENDED=6;function schedule(j,$,_e,et,tt,rt){var nt=j.__transition;if(!nt)j.__transition={};else if(_e in nt)return;create(j,_e,{name:$,index:et,group:tt,on:emptyOn,tween:emptyTween,time:rt.time,delay:rt.delay,duration:rt.duration,ease:rt.ease,timer:null,state:CREATED})}function init(j,$){var _e=get(j,$);if(_e.state>CREATED)throw new Error("too late; already scheduled");return _e}function set(j,$){var _e=get(j,$);if(_e.state>STARTED)throw new Error("too late; already running");return _e}function get(j,$){var _e=j.__transition;if(!_e||!(_e=_e[$]))throw new Error("transition not found");return _e}function create(j,$,_e){var et=j.__transition,tt;et[$]=_e,_e.timer=timer(rt,0,_e.time);function rt(At){_e.state=SCHEDULED,_e.timer.restart(nt,_e.delay,_e.time),_e.delay<=At&&nt(At-_e.delay)}function nt(At){var ut,ft,dt,Et;if(_e.state!==SCHEDULED)return ot();for(ut in et)if(Et=et[ut],Et.name===_e.name){if(Et.state===STARTED)return timeout(nt);Et.state===RUNNING?(Et.state=ENDED,Et.timer.stop(),Et.on.call("interrupt",j,j.__data__,Et.index,Et.group),delete et[ut]):+ut<$&&(Et.state=ENDED,Et.timer.stop(),Et.on.call("cancel",j,j.__data__,Et.index,Et.group),delete et[ut])}if(timeout(function(){_e.state===STARTED&&(_e.state=RUNNING,_e.timer.restart(it,_e.delay,_e.time),it(At))}),_e.state=STARTING,_e.on.call("start",j,j.__data__,_e.index,_e.group),_e.state===STARTING){for(_e.state=STARTED,tt=new Array(dt=_e.tween.length),ut=0,ft=-1;utSTARTING&&et.state=0&&($=$.slice(0,_e)),!$||$==="start"})}function onFunction(j,$,_e){var et,tt,rt=start($)?init:set;return function(){var nt=rt(this,j),it=nt.on;it!==et&&(tt=(et=it).copy()).on($,_e),nt.on=tt}}function transition_on(j,$){var _e=this._id;return arguments.length<2?get(this.node(),_e).on.on(j):this.each(onFunction(_e,j,$))}function removeFunction(j){return function(){var $=this.parentNode;for(var _e in this.__transition)if(+_e!==j)return;$&&$.removeChild(this)}}function transition_remove(){return this.on("end.remove",removeFunction(this._id))}function transition_select(j){var $=this._name,_e=this._id;typeof j!="function"&&(j=selector(j));for(var et=this._groups,tt=et.length,rt=new Array(tt),nt=0;nt=1e21?j.toLocaleString("en").replace(/,/g,""):j.toString(10)}function formatDecimalParts(j,$){if((_e=(j=$?j.toExponential($-1):j.toExponential()).indexOf("e"))<0)return null;var _e,et=j.slice(0,_e);return[et.length>1?et[0]+et.slice(2):et,+j.slice(_e+1)]}function exponent(j){return j=formatDecimalParts(Math.abs(j)),j?j[1]:NaN}function formatGroup(j,$){return function(_e,et){for(var tt=_e.length,rt=[],nt=0,it=j[0],ot=0;tt>0&&it>0&&(ot+it+1>et&&(it=Math.max(1,et-ot)),rt.push(_e.substring(tt-=it,tt+it)),!((ot+=it+1)>et));)it=j[nt=(nt+1)%j.length];return rt.reverse().join($)}}function formatNumerals(j){return function($){return $.replace(/[0-9]/g,function(_e){return j[+_e]})}}var re=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(j){if(!($=re.exec(j)))throw new Error("invalid format: "+j);var $;return new FormatSpecifier({fill:$[1],align:$[2],sign:$[3],symbol:$[4],zero:$[5],width:$[6],comma:$[7],precision:$[8]&&$[8].slice(1),trim:$[9],type:$[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(j){this.fill=j.fill===void 0?" ":j.fill+"",this.align=j.align===void 0?">":j.align+"",this.sign=j.sign===void 0?"-":j.sign+"",this.symbol=j.symbol===void 0?"":j.symbol+"",this.zero=!!j.zero,this.width=j.width===void 0?void 0:+j.width,this.comma=!!j.comma,this.precision=j.precision===void 0?void 0:+j.precision,this.trim=!!j.trim,this.type=j.type===void 0?"":j.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(j){e:for(var $=j.length,_e=1,et=-1,tt;_e<$;++_e)switch(j[_e]){case".":et=tt=_e;break;case"0":et===0&&(et=_e),tt=_e;break;default:if(!+j[_e])break e;et>0&&(et=0);break}return et>0?j.slice(0,et)+j.slice(tt+1):j}var prefixExponent;function formatPrefixAuto(j,$){var _e=formatDecimalParts(j,$);if(!_e)return j+"";var et=_e[0],tt=_e[1],rt=tt-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(tt/3)))*3)+1,nt=et.length;return rt===nt?et:rt>nt?et+new Array(rt-nt+1).join("0"):rt>0?et.slice(0,rt)+"."+et.slice(rt):"0."+new Array(1-rt).join("0")+formatDecimalParts(j,Math.max(0,$+rt-1))[0]}function formatRounded(j,$){var _e=formatDecimalParts(j,$);if(!_e)return j+"";var et=_e[0],tt=_e[1];return tt<0?"0."+new Array(-tt).join("0")+et:et.length>tt+1?et.slice(0,tt+1)+"."+et.slice(tt+1):et+new Array(tt-et.length+2).join("0")}const formatTypes={"%":(j,$)=>(j*100).toFixed($),b:j=>Math.round(j).toString(2),c:j=>j+"",d:formatDecimal,e:(j,$)=>j.toExponential($),f:(j,$)=>j.toFixed($),g:(j,$)=>j.toPrecision($),o:j=>Math.round(j).toString(8),p:(j,$)=>formatRounded(j*100,$),r:formatRounded,s:formatPrefixAuto,X:j=>Math.round(j).toString(16).toUpperCase(),x:j=>Math.round(j).toString(16)};function identity$1(j){return j}var map=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale(j){var $=j.grouping===void 0||j.thousands===void 0?identity$1:formatGroup(map.call(j.grouping,Number),j.thousands+""),_e=j.currency===void 0?"":j.currency[0]+"",et=j.currency===void 0?"":j.currency[1]+"",tt=j.decimal===void 0?".":j.decimal+"",rt=j.numerals===void 0?identity$1:formatNumerals(map.call(j.numerals,String)),nt=j.percent===void 0?"%":j.percent+"",it=j.minus===void 0?"−":j.minus+"",ot=j.nan===void 0?"NaN":j.nan+"";function At(ft){ft=formatSpecifier(ft);var dt=ft.fill,Et=ft.align,Bt=ft.sign,St=ft.symbol,Dt=ft.zero,$t=ft.width,Rt=ft.comma,wt=ft.precision,xt=ft.trim,Nt=ft.type;Nt==="n"?(Rt=!0,Nt="g"):formatTypes[Nt]||(wt===void 0&&(wt=12),xt=!0,Nt="g"),(Dt||dt==="0"&&Et==="=")&&(Dt=!0,dt="0",Et="=");var Ot=St==="$"?_e:St==="#"&&/[boxX]/.test(Nt)?"0"+Nt.toLowerCase():"",kt=St==="$"?et:/[%p]/.test(Nt)?nt:"",Jt=formatTypes[Nt],jt=/[defgprs%]/.test(Nt);wt=wt===void 0?6:/[gprs]/.test(Nt)?Math.max(1,Math.min(21,wt)):Math.max(0,Math.min(20,wt));function Ht(Gt){var Kt=Ot,Wt=kt,Vt,ur,Ar;if(Nt==="c")Wt=Jt(Gt)+Wt,Gt="";else{Gt=+Gt;var hr=Gt<0||1/Gt<0;if(Gt=isNaN(Gt)?ot:Jt(Math.abs(Gt),wt),xt&&(Gt=formatTrim(Gt)),hr&&+Gt==0&&Bt!=="+"&&(hr=!1),Kt=(hr?Bt==="("?Bt:it:Bt==="-"||Bt==="("?"":Bt)+Kt,Wt=(Nt==="s"?prefixes[8+prefixExponent/3]:"")+Wt+(hr&&Bt==="("?")":""),jt){for(Vt=-1,ur=Gt.length;++VtAr||Ar>57){Wt=(Ar===46?tt+Gt.slice(Vt+1):Gt.slice(Vt))+Wt,Gt=Gt.slice(0,Vt);break}}}Rt&&!Dt&&(Gt=$(Gt,1/0));var sr=Kt.length+Gt.length+Wt.length,ar=sr<$t?new Array($t-sr+1).join(dt):"";switch(Rt&&Dt&&(Gt=$(ar+Gt,ar.length?$t-Wt.length:1/0),ar=""),Et){case"<":Gt=Kt+Gt+Wt+ar;break;case"=":Gt=Kt+ar+Gt+Wt;break;case"^":Gt=ar.slice(0,sr=ar.length>>1)+Kt+Gt+Wt+ar.slice(sr);break;default:Gt=ar+Kt+Gt+Wt;break}return rt(Gt)}return Ht.toString=function(){return ft+""},Ht}function ut(ft,dt){var Et=At((ft=formatSpecifier(ft),ft.type="f",ft)),Bt=Math.max(-8,Math.min(8,Math.floor(exponent(dt)/3)))*3,St=Math.pow(10,-Bt),Dt=prefixes[8+Bt/3];return function($t){return Et(St*$t)+Dt}}return{format:At,formatPrefix:ut}}var locale,format,formatPrefix;defaultLocale({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale(j){return locale=formatLocale(j),format=locale.format,formatPrefix=locale.formatPrefix,locale}function precisionFixed(j){return Math.max(0,-exponent(Math.abs(j)))}function precisionPrefix(j,$){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent($)/3)))*3-exponent(Math.abs(j)))}function precisionRound(j,$){return j=Math.abs(j),$=Math.abs($)-j,Math.max(0,exponent($)-exponent(j))+1}function initRange(j,$){switch(arguments.length){case 0:break;case 1:this.range(j);break;default:this.range($).domain(j);break}return this}const implicit=Symbol("implicit");function ordinal(){var j=new Map,$=[],_e=[],et=implicit;function tt(rt){var nt=rt+"",it=j.get(nt);if(!it){if(et!==implicit)return et;j.set(nt,it=$.push(rt))}return _e[(it-1)%_e.length]}return tt.domain=function(rt){if(!arguments.length)return $.slice();$=[],j=new Map;for(const nt of rt){const it=nt+"";j.has(it)||j.set(it,$.push(nt))}return tt},tt.range=function(rt){return arguments.length?(_e=Array.from(rt),tt):_e.slice()},tt.unknown=function(rt){return arguments.length?(et=rt,tt):et},tt.copy=function(){return ordinal($,_e).unknown(et)},initRange.apply(tt,arguments),tt}function band(){var j=ordinal().unknown(void 0),$=j.domain,_e=j.range,et=0,tt=1,rt,nt,it=!1,ot=0,At=0,ut=.5;delete j.unknown;function ft(){var dt=$().length,Et=tt$&&(_e=j,j=$,$=_e),function(et){return Math.max(j,Math.min($,et))}}function bimap(j,$,_e){var et=j[0],tt=j[1],rt=$[0],nt=$[1];return tt2?polymap:bimap,ot=At=null,ft}function ft(dt){return dt==null||isNaN(dt=+dt)?rt:(ot||(ot=it(j.map(et),$,_e)))(et(nt(dt)))}return ft.invert=function(dt){return nt(tt((At||(At=it($,j.map(et),interpolateNumber)))(dt)))},ft.domain=function(dt){return arguments.length?(j=Array.from(dt,number),ut()):j.slice()},ft.range=function(dt){return arguments.length?($=Array.from(dt),ut()):$.slice()},ft.rangeRound=function(dt){return $=Array.from(dt),_e=interpolateRound,ut()},ft.clamp=function(dt){return arguments.length?(nt=dt?!0:identity,ut()):nt!==identity},ft.interpolate=function(dt){return arguments.length?(_e=dt,ut()):_e},ft.unknown=function(dt){return arguments.length?(rt=dt,ft):rt},function(dt,Et){return et=dt,tt=Et,ut()}}function continuous(){return transformer()(identity,identity)}function tickFormat(j,$,_e,et){var tt=tickStep(j,$,_e),rt;switch(et=formatSpecifier(et??",f"),et.type){case"s":{var nt=Math.max(Math.abs(j),Math.abs($));return et.precision==null&&!isNaN(rt=precisionPrefix(tt,nt))&&(et.precision=rt),formatPrefix(et,nt)}case"":case"e":case"g":case"p":case"r":{et.precision==null&&!isNaN(rt=precisionRound(tt,Math.max(Math.abs(j),Math.abs($))))&&(et.precision=rt-(et.type==="e"));break}case"f":case"%":{et.precision==null&&!isNaN(rt=precisionFixed(tt))&&(et.precision=rt-(et.type==="%")*2);break}}return format(et)}function linearish(j){var $=j.domain;return j.ticks=function(_e){var et=$();return ticks(et[0],et[et.length-1],_e??10)},j.tickFormat=function(_e,et){var tt=$();return tickFormat(tt[0],tt[tt.length-1],_e??10,et)},j.nice=function(_e){_e==null&&(_e=10);var et=$(),tt=0,rt=et.length-1,nt=et[tt],it=et[rt],ot,At,ut=10;for(it0;){if(At=tickIncrement(nt,it,_e),At===ot)return et[tt]=nt,et[rt]=it,$(et);if(At>0)nt=Math.floor(nt/At)*At,it=Math.ceil(it/At)*At;else if(At<0)nt=Math.ceil(nt*At)/At,it=Math.floor(it*At)/At;else break;ot=At}return j},j}function linear(){var j=continuous();return j.copy=function(){return copy(j,linear())},initRange.apply(j,arguments),linearish(j)}function Transform(j,$,_e){this.k=j,this.x=$,this.y=_e}Transform.prototype={constructor:Transform,scale:function(j){return j===1?this:new Transform(this.k*j,this.x,this.y)},translate:function(j,$){return j===0&$===0?this:new Transform(this.k,this.x+this.k*j,this.y+this.k*$)},apply:function(j){return[j[0]*this.k+this.x,j[1]*this.k+this.y]},applyX:function(j){return j*this.k+this.x},applyY:function(j){return j*this.k+this.y},invert:function(j){return[(j[0]-this.x)/this.k,(j[1]-this.y)/this.k]},invertX:function(j){return(j-this.x)/this.k},invertY:function(j){return(j-this.y)/this.k},rescaleX:function(j){return j.copy().domain(j.range().map(this.invertX,this).map(j.invert,j))},rescaleY:function(j){return j.copy().domain(j.range().map(this.invertY,this).map(j.invert,j))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};Transform.prototype;function getUpperBound(j){let $=Math.max(...j);if($>1)return getUpperBoundInner($);{const _e=Math.round(1/$),et=Math.pow(10,_e.toString().length);return getUpperBoundInner($*et)/et}}function getUpperBoundInner(j){const _e=Math.round(j).toString().length,et=Math.pow(10,_e),tt=et/2,rt=tt/2;return jColumn: ${$.col}
Value: ${$.value}`).style("opacity",.8).attr("visibility","shown").style("left",`${j.x+window.scrollX}px`).style("top",`${j.y+window.scrollY}px`)}function removeTooltip(){select(".tooltip").html("").style("opacity",0)}function defineTooltipBarSide(){select("#cellpopvis").append("div").attr("class","tooltip-axis-y").style("background-color","#FFFFFF").attr("opacity",0).style("border","solid").style("border-width","1px").style("border-radius","5px").style("padding","5px").attr("pointer-events","none").style("position","absolute")}function addTooltipBarSide(j,$,_e){let et=Object.keys(_e).map(tt=>`${tt}: ${_e[tt]}`);et=et.join("
"),select(".tooltip-axis-y").html(`Row: ${$.row}
Total count: ${$.countTotal}
Metadata:
${et}`).style("opacity",.8).attr("visibility","shown").style("left",`${j.x+window.scrollX}px`).style("top",`${j.y+window.scrollY}px`)}function removeTooltipBarSide(){select(".tooltip-axis-y").html("").style("opacity",0)}function defineTooltipBarTop(){select("#cellpopvis").append("div").attr("class","tooltip-axis-x").style("background-color","#FFFFFF").attr("opacity",0).style("border","solid").style("border-width","1px").style("border-radius","5px").style("padding","5px").attr("pointer-events","none").style("position","absolute")}function addTooltipBarTop(j,$){select(".tooltip-axis-x").html(`Column: ${$.col}
Total count: ${$.countTotal}`).style("opacity",.8).attr("visibility","shown").style("left",`${j.x+window.scrollX}px`).style("top",`${j.y+window.scrollY}px`)}function removeTooltipBarTop(){select(".tooltip-axis-x").html("").style("opacity",0)}function renderLeftBar(dataFull,dimensions,y){select("g.barleft").remove();let svg=select("g.main").append("g").attr("transform","translate("+eval(dimensions.barLeft.offsetWidth+dimensions.barLeft.margin.left)+","+eval(dimensions.barLeft.offsetHeight+dimensions.barLeft.margin.top)+")").attr("class","barleft"),width=dimensions.barLeft.width-dimensions.barLeft.margin.left-dimensions.barLeft.margin.right,height=dimensions.barLeft.height-dimensions.barLeft.margin.top-dimensions.barLeft.margin.bottom;const data=[];for(const j of dataFull.rowNames)data.push({row:j,countTotal:dataFull.countsMatrix.filter($=>$.row===j).map($=>$.value).reduce(($,_e)=>$+_e,0)});let upperbound=getUpperBound(data.map(j=>j.countTotal));const x=linear().range([width,0]).domain([0,upperbound]),y_changed=y.paddingInner(.25);svg.append("g").call(axisBottom(x)).attr("transform","translate(0,"+height+")").selectAll("text").attr("transform","translate(-10,0)rotate(-45)").style("text-anchor","end").style("font-size",dimensions.textSize.tick),svg.append("text").attr("class","x label").attr("text-anchor","end").attr("x",width-50).attr("y",40).attr("dy",".75em").attr("transform","translate(0,"+height+")").text("Total number of cells").style("font-size",dimensions.textSize.labelSmall);let bars=svg.selectAll().data(data).join("rect").attr("x",j=>x(j.countTotal)).attr("y",j=>y_changed(j.row)).attr("width",j=>width-x(j.countTotal)).attr("height",y_changed.bandwidth()).attr("fill","black");defineTooltipBarSide();const mouseover=function(j,$){let _e=dataFull.metadata.rows.filter(et=>et.row===$.row)[0].metadata;j.ctrlKey&&addTooltipBarSide(j,$,_e)},mouseleave=function(){removeTooltipBarSide()};bars.on("mouseover",mouseover),bars.on("mouseleave",mouseleave)}function createBarChart(dataFull,selectedRow,dimensions,x){let width=dimensions.heatmap.width-dimensions.heatmap.margin.left-dimensions.heatmap.margin.right,height=dimensions.heatmap.height-dimensions.heatmap.margin.top-dimensions.heatmap.margin.bottom,nBars=0,heightInd=height,svgBar=selectAll(".bardetail");if(svgBar.size()===0)svgBar=select("#app").append("svg").attr("width",dimensions.global.width).attr("height",dimensions.detailBar.height+dimensions.detailBar.margin.top+dimensions.detailBar.margin.bottom).attr("class","bardetail"),svgBar.append("g").attr("transform",`translate(${eval(dimensions.detailBar.offsetWidth+dimensions.detailBar.margin.left)}, ${height})`).call(axisBottom(x)).selectAll("text").attr("transform","translate(-10,0)rotate(-45)").style("text-anchor","end").style("font-size",dimensions.textSize.tick),svgBar.append("text").attr("class","x label").attr("text-anchor","end").attr("x",dimensions.detailBar.offsetWidth+dimensions.detailBar.margin.left+width/2).attr("y",height+dimensions.heatmap.margin.bottom-10).text("Cell type").style("font-size",dimensions.textSize.label),svgBar.append("text").attr("class","y label").attr("text-anchor","end").attr("x",-height/2).attr("y",(dimensions.detailBar.offsetWidth+dimensions.detailBar.margin.left)/2).attr("dy",".75em").attr("transform","rotate(-90)").text("Number of cells").style("font-size",dimensions.textSize.label),nBars=1;else{nBars=selectAll(".bardetailsample").size()+1,heightInd=height/nBars;for(let i=0;ij.row===selectedRow);svgBarSample.append("text").attr("class","title").attr("text-anchor","start").attr("x",30).attr("y",50).text(selectedRow).style("font-size",dimensions.textSize.title);let upperbound=getUpperBound(data.map(j=>j.value));const y=linear().domain([0,upperbound]).range([height,0]);svgBarSample.append("g").attr("class","axisleft").call(axisLeft(y)).selectAll("text").style("font-size",dimensions.textSize.tick),svgBarSample.append("g").attr("class","rects").selectAll().data(data).join("rect").attr("x",j=>x(j.col)).attr("y",j=>y(j.value)).attr("width",x.bandwidth()).attr("height",j=>height-y(j.value)).attr("fill","#69b3a2");let sample=selectAll(`.sample-${nBars}`);return sample.select(".rects").attr("transform",`scale(1,${1/nBars})`),sample.select(".axisleft").attr("transform",`scale(1,${1/nBars})`),svgBar}function dragstarted(j,$){const _e=selectAll(".heatmap-rects");selectAll(".heatmap-rows").filter(tt=>tt.row===$.row).raise().classed("active",!0),_e.filter(tt=>tt.row===$.row).raise().classed("active",!0),select(".highlight").raise().classed("active",!0)}function dragged(j,$,_e,et,tt){const rt=selectAll(".heatmap-rects"),nt=selectAll(".heatmap-rows");nt.filter(ft=>ft.row===$.row).attr("y",$.y=j.y),rt.filter(ft=>ft.row===$.row).attr("y",$.y=j.y),select(".highlight").attr("y",j.y);let it=_e.rowNames.indexOf($.row),ot=et(_e.rowNames[0])-et(_e.rowNames[1]),At=_e.rowNames.length-Math.ceil((j.y-et.paddingOuter()*et.bandwidth())/ot);if(At<0&&(At=0),At>=_e.rowNames.length&&(At=_e.rowNames.length-1),At===it)return[_e,tt];let ut=At-it;return nt.each(function(ft){let dt=_e.rowNames.indexOf(ft.row);dt!==it&&dt>=Math.min(it,At)&&dt<=Math.max(it,At)&&(ut>0?(nt.filter(Et=>Et.row===ft.row).attr("y",et(_e.rowNames[dt-1])),rt.filter(Et=>Et.row===ft.row).attr("y",et(_e.rowNames[dt-1]))):(nt.filter(Et=>Et.row===ft.row).attr("y",et(_e.rowNames[dt+1])),rt.filter(Et=>Et.row===ft.row).attr("y",et(_e.rowNames[dt+1]))))}),_e.rowNames=reorderArray(_e.rowNames,it,At),wrapRowNames(_e),[_e,!1]}function dragended(j,$,_e,et,tt,rt,nt){const it=selectAll(".heatmap-rects"),ot=selectAll(".heatmap-rows");let At=_e.rowNames.indexOf($.row);ot.filter(ut=>ut.row===$.row).attr("y",rt(_e.rowNames[At])),it.filter(ut=>ut.row===$.row).attr("y",rt(_e.rowNames[At])),select(".highlight").attr("y",rt(_e.rowNames[At])),ot.filter(ut=>ut.row===$.row).classed("active",!1),it.filter(ut=>ut.row===$.row).classed("active",!1),select(".highlight").classed("active",!1),nt&&createBarChart(_e,$.row,et,tt)}function renderHeatmap(data,dimensions,fraction=!1,theme){let countsMatrix=data.countsMatrix;fraction&&(countsMatrix=data.countsMatrixFractions.row),select("g.heatmap").remove();let svg=select("g.main").append("g").attr("transform","translate("+eval(dimensions.heatmap.offsetWidth+dimensions.heatmap.margin.left)+","+eval(dimensions.heatmap.offsetHeight+dimensions.heatmap.margin.top)+")").attr("class","heatmap"),width=dimensions.heatmap.width-dimensions.heatmap.margin.left-dimensions.heatmap.margin.right,height=dimensions.heatmap.height-dimensions.heatmap.margin.top-dimensions.heatmap.margin.bottom,x=band().range([0,width]).domain(data.colNames).padding(.01);svg.append("g").attr("class","axisbottom").attr("transform","translate(0,"+height+")").call(axisBottom(x)).selectAll("text").attr("transform","translate(-10,0)rotate(-45)").style("text-anchor","end").style("font-size",dimensions.textSize.tick),svg.append("text").attr("class","x-label").attr("text-anchor","end").attr("x",width/2).attr("y",height+dimensions.heatmap.margin.bottom-10).text("Cell type").style("font-size",dimensions.textSize.label);let y=band().range([height,0]).domain(data.rowNames).padding(.01);svg.append("g").attr("class","axisright").attr("transform","translate("+width+",0)").call(axisRight(y)).selectAll("text").style("font-size",dimensions.textSize.tick),svg.append("text").attr("class","y-label").attr("text-anchor","end").attr("x",-height/2).attr("y",width+120).attr("dy",".75em").attr("transform","rotate(-90)").text("Sample").style("font-size",dimensions.textSize.label);let colorRange=linear().range(["white","#69b3a2"]).domain([0,getUpperBound(countsMatrix.map(j=>j.value))]),gradient=svg.append("g").attr("class","axiscolor").attr("transform","translate("+eval(width+150)+",10)"),colorAxisSize=100,colorAxisSteps=100,colorAxisWidth=100;console.log(gradient);for(let j=0;j_e.value))/colorAxisSteps);gradient.append("rect").attr("class","colorlabelrect").attr("x",0).attr("y",colorAxisSize-j*colorAxisSize/colorAxisSteps).attr("width",colorAxisWidth*.9).attr("height",colorAxisSize/colorAxisSteps).attr("fill",$)}const colorAxisLabel=fraction?"Fraction":"Count";gradient.append("text").attr("y",-10).text(colorAxisLabel).style("font-size",dimensions.textSize.label),gradient.append("text").attr("x",colorAxisWidth).attr("y",colorAxisSize).text(0).style("font-size",dimensions.textSize.tick),gradient.append("text").attr("x",colorAxisWidth).attr("y",0).text(getUpperBound(countsMatrix.map(j=>j.value))).style("font-size",dimensions.textSize.tick),svg.selectAll().data(data.colNamesWrapped,function(j){return j.col}).enter().append("rect").attr("class","heatmap-cols").attr("x",function(j){return x(j.col)}).attr("y",0).attr("width",x.bandwidth()).attr("height",height).style("fill",colorRange(0));let rowsBehind=svg.selectAll().data(data.rowNamesWrapped,function(j){return j.row}).enter().append("rect").attr("class","heatmap-rows").attr("x",0).attr("y",function(j){return y(j.row)}).attr("width",width).attr("height",y.bandwidth()).style("fill",colorRange(0)),rects=svg.selectAll().data(countsMatrix,function(j){return j.row+":"+j.col}).enter().append("rect").attr("class","heatmap-rects").attr("x",function(j){return x(j.col)}).attr("y",function(j){return y(j.row)}).attr("width",x.bandwidth()).attr("height",y.bandwidth()).style("fill",function(j){return colorRange(j.value)});svg.append("rect").attr("class","highlight").attr("x",0).attr("y",0).attr("width",width).attr("height",height).attr("stroke","black").attr("fill","none").attr("pointer-events","none").attr("visibility","hidden"),defineTooltip();const mouseover=function(j,$){j.ctrlKey?(j.target.classList[0].includes("heatmap-rects"),addTooltip(j,$)):addHighlight(j.target.y.animVal.value,j.target.height.animVal.value)},mouseleave=function(j,$){removeTooltip(),removeHighlight(j)};rects.on("mouseover",mouseover),rowsBehind.on("mouseover",mouseover),rects.on("mouseleave",mouseleave),rowsBehind.on("mouseleave",mouseleave);let allowClick,drag$1=drag().on("start",function(j,$){dragstarted(j,$),allowClick=!0}).on("drag",function(j,$){let _e=dragged(j,$,data,y,allowClick);data=_e[0],allowClick=_e[1],y=y.domain(data.rowNames),svg.select("g.axisright").remove(),svg.append("g").attr("class","axisright").call(axisRight(y)).attr("transform","translate("+width+",0)"),renderLeftBar(data,dimensions,y)}).on("end",function(j,$){dragended(j,$,data,dimensions,x,y,allowClick)});return rowsBehind.call(drag$1),rects.call(drag$1),[x,y,colorRange]}function addHighlight(j,$){select(".highlight").attr("visibility","shown").attr("y",j).attr("height",$).raise()}function removeHighlight(j,$){j.defaultPrevented||select(".highlight").attr("visibility","hidden")}function renderTopBar(dataFull,dimensions,x){select("g.bartop").remove();let svg=select("g.main").append("g").attr("transform","translate("+eval(dimensions.barTop.offsetWidth+dimensions.barTop.margin.left)+","+eval(dimensions.barTop.offsetHeight+dimensions.barTop.margin.top)+")").attr("class","bartop");dimensions.barTop.width-dimensions.barTop.margin.left-dimensions.barTop.margin.right;let height=dimensions.barTop.height-dimensions.barTop.margin.top-dimensions.barTop.margin.bottom;const data=[];for(const j of dataFull.colNames)data.push({col:j,countTotal:dataFull.countsMatrix.filter($=>$.col===j).map($=>$.value).reduce(($,_e)=>$+_e,0)});let upperbound=getUpperBound(data.map(j=>j.countTotal));const y=linear().range([height,0]).domain([0,upperbound]);svg.append("g").attr("class","axisleft").call(axisLeft(y)).selectAll("text").style("font-size",dimensions.textSize.tick);const x_changed=x.paddingInner(.25);svg.append("text").attr("class","y label").attr("text-anchor","end").attr("x",30).attr("y",-70).attr("dy",".75em").attr("transform","rotate(-90)").text("Total number of cells").style("font-size",dimensions.textSize.labelSmall);let bars=svg.selectAll().data(data).join("rect").attr("x",j=>x_changed(j.col)).attr("y",j=>y(j.countTotal)).attr("width",x.bandwidth()).attr("height",j=>height-y(j.countTotal)).attr("fill","black");defineTooltipBarTop();const mouseover=function(j,$){j.ctrlKey&&addTooltipBarTop(j,$)},mouseleave=function(){removeTooltipBarTop()};bars.on("mouseover",mouseover),bars.on("mouseleave",mouseleave)}function getPossibleMetadataSelections(j){const $=j.metadata.rows,_e=[];if($){const et=[...new Set($.map(tt=>Object.keys(tt.metadata)).flat())];for(const tt of et){let rt=[...new Set($.map(nt=>nt.metadata[tt]))];rt.length>1&&rt.length{if(console.log(j),!j.data)return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{});const $=reactExports.useRef(),[_e,et]=reactExports.useState(j.theme);reactExports.useState(j.dimensions);const[tt,rt]=reactExports.useState(!1),[nt,it]=reactExports.useState("None"),ot=getPossibleMetadataSelections(j.data);reactExports.useEffect(()=>{select($.current).append("svg").attr("width",j.dimensions.global.width).attr("height",j.dimensions.global.height).append("g").attr("class","main")},[]),reactExports.useEffect(()=>{let[Et,Bt,St]=renderHeatmap(j.data,j.dimensions,tt);renderTopBar(j.data,j.dimensions,Et),renderLeftBar(j.data,j.dimensions,Bt)},[_e,tt,nt]);function At(Et,Bt){Bt!==null&&et(Bt)}function ut(Et,Bt){Bt!==null&&rt(Bt)}function ft(Et){it(Et.target.value)}function dt(){selectAll(".bardetail").remove()}return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(Stack$1,{spacing:6,direction:"row",children:[jsxRuntimeExports.jsx(Button$1,{variant:"outlined",onClick:dt,children:"Reset stacked bar chart"}),jsxRuntimeExports.jsxs(ToggleButtonGroup$1,{color:"primary",value:tt,exclusive:!0,onChange:ut,"aria-label":"Fraction",children:[jsxRuntimeExports.jsx(ToggleButton$1,{value:!1,children:"Count"}),jsxRuntimeExports.jsx(ToggleButton$1,{value:!0,children:"Fraction"})]}),jsxRuntimeExports.jsxs(FormControl$1,{sx:{m:1,width:300},children:[jsxRuntimeExports.jsx(InputLabel$1,{id:"sort-by-metadata",children:"Sort by metadata"}),jsxRuntimeExports.jsxs(Select$1,{labelId:"demo-simple-select-label",id:"demo-simple-select",value:nt,label:"select-metadata",onChange:ft,children:[jsxRuntimeExports.jsx(MenuItem$1,{value:"None",children:"None"},"None"),ot.map(Et=>jsxRuntimeExports.jsx(MenuItem$1,{value:Et[0],children:Et[0]},Et[0]))]})]}),jsxRuntimeExports.jsxs(ToggleButtonGroup$1,{color:"primary",value:_e,exclusive:!0,onChange:At,"aria-label":"Theme",children:[jsxRuntimeExports.jsx(ToggleButton$1,{value:"light",children:"Light"}),jsxRuntimeExports.jsx(ToggleButton$1,{value:"dark",children:"Dark"})]})]}),jsxRuntimeExports.jsx("div",{id:"cellpopvis",ref:$})]})};function Demo(){const[j,$]=reactExports.useState();var _e=["ad693f99fb9006e68a53e97598da1509","173de2e80adf6a73ac8cff5ccce20dfc","b95f34761c252ebbd1e482cd9afae73f","5a5ca03fa623602d9a859224aa40ace4","3c1b10bc912c60c9afc36b7423695236","1dc16eb0270ff73291dd45b6a96aa3c0","b05c21f9c94ce1a22a9694cd0fe0291e","8cdb42ed1194255c74c8462b99bbd7ef","fe0ded5fc0355c95239f9c040dd31e99","367fee3b40cba682063289505b922be1","b99fc30c4195958fbef217fa9ed9ec8f","898138b7f45a67c574e9955fb400e9be","f220c9e7bcaea3a87162cbe61287ea4d","e5f7a14d93659bd0b8dc2819ffa9bc4b","56cbda4789f04d79c0c3dffe21816d48","0b6f63f2bd61a8c091fc7afc0f318ad1","62efbe0a6abd0bcf53ab9ab29e7cd73f","4b62d9d2c248323ce029859f953fdc57","c81b0dc9d16eb825a7d6bce6e1b3678f","5ee240959c96b49d960702755478b9fc","7c9e07c96d144536525b1f889acee14d","dd7ccbc306692fc5ff5e61c22845da21","9a7e6be288b27ddbd3366c4ae41bbcd2","018a905cdbdff684760859f594d3fd77","af5741dad7aecf7960a129c3d2ae642a","6e1db473492095ccc2f1393d7259b9c0","fae9a1f2e7abefca2203765a3c7a5ba1","8d631eee88855ac59155edca2a3bc1ca","1ea6c0ac5ba60fe35bf63af8699b6fbe"];reactExports.useEffect(()=>{loadHuBMAPData(_e).then(dt=>{$(dt),console.log("data",dt)}).catch(dt=>{console.error(dt)})},[]);let et=.8,tt=.8,rt=45*25,nt=20*40,it=rt/et,ot=nt/tt,At=it-rt,ut=ot-nt,ft={global:{width:it,widthSplit:[At,rt],height:ot,heightSplit:[ut,nt]},heatmap:{offsetWidth:At,offsetHeight:ut,width:rt,height:nt,margin:{top:0,right:400,bottom:100,left:0}},barTop:{offsetWidth:At,offsetHeight:0,width:rt,height:ut,margin:{top:50,right:50,bottom:0,left:0}},barLeft:{offsetWidth:0,offsetHeight:ut,width:At,height:nt,margin:{top:0,right:0,bottom:100,left:50}},graph:{offsetWidth:At,offsetHeight:ot,width:rt,height:ut,margin:{top:0,right:200,bottom:0,left:0}},detailBar:{offsetWidth:At,offsetHeight:0,width:rt,height:ot,margin:{top:50,right:200,bottom:50,left:0}},textSize:{title:"20px",label:"30px",labelSmall:"20px",tick:"10px"}};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(CellPop,{data:j,theme:"light",dimensions:ft})})}client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(Demo,{}));export{BaseDecoder as B,getDefaultExportFromCjs as g}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/gzip-dd5ab7c8-wU2g_iAo.js","assets/pako.esm-856454b6-c5c8cd15-LlE9m97O.js","assets/zlib-cd823c38-UG7B4fyc.js","assets/deflate-9cfe31b4--UOSjJNF.js","assets/pako.esm-68f84e2a-tSdR82fX.js","assets/lerc-3b89a300-TuOOlTso.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/jpeg-e623e3f3-YCPYlkuQ.js b/assets/jpeg-e623e3f3-YCPYlkuQ.js new file mode 100644 index 0000000..73a2377 --- /dev/null +++ b/assets/jpeg-e623e3f3-YCPYlkuQ.js @@ -0,0 +1 @@ +import{B as re}from"./index-3h9IID_q.js";const O=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),Y=4017,Z=799,$=3406,N=2276,Q=1567,W=3784,F=5793,K=2896;function ne(j,l){let o=0;const u=[];let q=16;for(;q>0&&!j[q-1];)--q;u.push({children:[],index:0});let g=u[0],v;for(let t=0;t0;)g=u.pop();for(g.index++,u.push(g);u.length<=t;)u.push(v={children:[],index:0}),g.children[g.index]=v.children,g=v;o++}t+10)return m--,i>>m&1;if(i=j[d++],i===255){const a=j[d++];if(a)throw new Error(`unexpected marker: ${(i<<8|a).toString(16)}`)}return m=7,i>>>7}function k(a){let f=a,w;for(;(w=p())!==null;){if(f=f[w],typeof f=="number")return f;if(typeof f!="object")throw new Error("invalid huffman sequence")}return null}function x(a){let f=a,w=0;for(;f>0;){const D=p();if(D===null)return;w=w<<1|D,--f}return w}function C(a){const f=x(a);return f>=1<>4;if(S===0){if(E<15)break;L+=16}else{L+=E;const M=O[L];f[M]=C(S),L++}}}function A(a,f){const w=k(a.huffmanTableDC),D=w===0?0:C(w)<0){n--;return}let w=g;const D=v;for(;w<=D;){const L=k(a.huffmanTableAC),y=L&15,S=L>>4;if(y===0){if(S<15){n=x(S)+(1<>4,M===0)L<15?(n=x(L)+(1<=65488&&X<=65495)d+=2;else break}return d-r}function ie(j,l){const o=[],{blocksPerLine:u,blocksPerColumn:q}=l,g=u<<3,v=new Int32Array(64),t=new Uint8Array(64);function h(b,c,r){const d=l.quantizationTable;let i,m,p,k,x,C,T,A,s;const n=r;let P;for(P=0;P<64;P++)n[P]=b[P]*d[P];for(P=0;P<8;++P){const e=8*P;if(n[1+e]===0&&n[2+e]===0&&n[3+e]===0&&n[4+e]===0&&n[5+e]===0&&n[6+e]===0&&n[7+e]===0){s=F*n[0+e]+512>>10,n[0+e]=s,n[1+e]=s,n[2+e]=s,n[3+e]=s,n[4+e]=s,n[5+e]=s,n[6+e]=s,n[7+e]=s;continue}i=F*n[0+e]+128>>8,m=F*n[4+e]+128>>8,p=n[2+e],k=n[6+e],x=K*(n[1+e]-n[7+e])+128>>8,A=K*(n[1+e]+n[7+e])+128>>8,C=n[3+e]<<4,T=n[5+e]<<4,s=i-m+1>>1,i=i+m+1>>1,m=s,s=p*W+k*Q+128>>8,p=p*Q-k*W+128>>8,k=s,s=x-T+1>>1,x=x+T+1>>1,T=s,s=A+C+1>>1,C=A-C+1>>1,A=s,s=i-k+1>>1,i=i+k+1>>1,k=s,s=m-p+1>>1,m=m+p+1>>1,p=s,s=x*N+A*$+2048>>12,x=x*$-A*N+2048>>12,A=s,s=C*Z+T*Y+2048>>12,C=C*Y-T*Z+2048>>12,T=s,n[0+e]=i+A,n[7+e]=i-A,n[1+e]=m+T,n[6+e]=m-T,n[2+e]=p+C,n[5+e]=p-C,n[3+e]=k+x,n[4+e]=k-x}for(P=0;P<8;++P){const e=P;if(n[1*8+e]===0&&n[2*8+e]===0&&n[3*8+e]===0&&n[4*8+e]===0&&n[5*8+e]===0&&n[6*8+e]===0&&n[7*8+e]===0){s=F*r[P+0]+8192>>14,n[0*8+e]=s,n[1*8+e]=s,n[2*8+e]=s,n[3*8+e]=s,n[4*8+e]=s,n[5*8+e]=s,n[6*8+e]=s,n[7*8+e]=s;continue}i=F*n[0*8+e]+2048>>12,m=F*n[4*8+e]+2048>>12,p=n[2*8+e],k=n[6*8+e],x=K*(n[1*8+e]-n[7*8+e])+2048>>12,A=K*(n[1*8+e]+n[7*8+e])+2048>>12,C=n[3*8+e],T=n[5*8+e],s=i-m+1>>1,i=i+m+1>>1,m=s,s=p*W+k*Q+2048>>12,p=p*Q-k*W+2048>>12,k=s,s=x-T+1>>1,x=x+T+1>>1,T=s,s=A+C+1>>1,C=A-C+1>>1,A=s,s=i-k+1>>1,i=i+k+1>>1,k=s,s=m-p+1>>1,m=m+p+1>>1,p=s,s=x*N+A*$+2048>>12,x=x*$-A*N+2048>>12,A=s,s=C*Z+T*Y+2048>>12,C=C*Y-T*Z+2048>>12,T=s,n[0*8+e]=i+A,n[7*8+e]=i-A,n[1*8+e]=m+T,n[6*8+e]=m-T,n[2*8+e]=p+C,n[5*8+e]=p-C,n[3*8+e]=k+x,n[4*8+e]=k-x}for(P=0;P<64;++P){const e=128+(n[P]+8>>4);e<0?c[P]=0:e>255?c[P]=255:c[P]=e}}for(let b=0;b>4)if(b>>4===1)for(let r=0;r<64;r++){const d=O[r];c[d]=u()}else throw new Error("DQT: invalid table spec");else for(let r=0;r<64;r++){const d=O[r];c[d]=l[o++]}this.quantizationTables[b&15]=c}break}case 65472:case 65473:case 65474:{u();const t={extended:v===65473,progressive:v===65474,precision:l[o++],scanLines:u(),samplesPerLine:u(),components:{},componentsOrder:[]},h=l[o++];let b;for(let c=0;c>4,d=l[o+1]&15,i=l[o+2];t.componentsOrder.push(b),t.components[b]={h:r,v:d,quantizationIdx:i},o+=3}g(t),this.frames.push(t);break}case 65476:{const t=u();for(let h=2;h>4?this.huffmanTablesAC[b&15]=ne(c,d):this.huffmanTablesDC[b&15]=ne(c,d)}break}case 65501:u(),this.resetInterval=u();break;case 65498:{u();const t=l[o++],h=[],b=this.frames[0];for(let m=0;m>4],p.huffmanTableAC=this.huffmanTablesAC[k&15],h.push(p)}const c=l[o++],r=l[o++],d=l[o++],i=ce(l,o,b,h,this.resetInterval,c,r,d>>4,d&15);o+=i;break}case 65535:l[o]!==255&&o--;break;default:if(l[o-3]===255&&l[o-2]>=192&&l[o-2]<=254){o-=3;break}throw new Error(`unknown JPEG marker ${v.toString(16)}`)}v=u()}}getResult(){const{frames:l}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c>3],B<<=U&7),d=0;d>3]),B&128?(x&&(x[U]=1),s=y.encoding<2?T[V++]:S,l=l>s?s:l,w[U++]=s):(x&&(x[U]=0),w[U++]=i),B<<=1;U+=I}else if(y.encoding<2)for(M=0;Ms?s:l,w[U++]=s;U+=I}else for(l=l>S?S:l,M=0;M0){var t=new Uint8Array(Math.ceil(i.width*i.height/8));n=new DataView(r,o,i.mask.numBytes);var v=n.getInt16(0,!0),u=2,h=0;do{if(v>0)for(;v--;)t[h++]=n.getUint8(u++);else{var g=n.getUint8(u++);for(v=-v;v--;)t[h++]=g}v=n.getInt16(u,!0),u+=2}while(u0?1:0),x=s+(i.height%s>0?1:0);i.pixels.blocks=new Array(w*x);for(var D=0,d=0;d3)throw"Invalid block encoding ("+p.encoding+")";if(p.encoding===2){o++;continue}if(c!==0&&c!==2){if(c>>=6,p.offsetType=c,c===2)p.offset=n.getInt8(1),k++;else if(c===1)p.offset=n.getInt16(1,!0),k+=2;else if(c===0)p.offset=n.getFloat32(1,!0),k+=4;else throw"Invalid block offset type";if(p.encoding===1)if(c=n.getUint8(k),k++,p.bitsPerPixel=c&63,c>>=6,p.numValidPixelsType=c,c===2)p.numValidPixels=n.getUint8(k),k++;else if(c===1)p.numValidPixels=n.getUint16(k,!0),k+=2;else if(c===0)p.numValidPixels=n.getUint32(k,!0),k+=4;else throw"Invalid valid pixel count type"}if(o+=k,p.encoding!==3){var U,I;if(p.encoding===0){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";U=new ArrayBuffer(y*4),I=new Uint8Array(U),I.set(new Uint8Array(r,o,y*4));var T=new Float32Array(U);p.rawData=T,o+=y*4}else if(p.encoding===1){var V=Math.ceil(p.numValidPixels*p.bitsPerPixel/8),S=Math.ceil(V/4);U=new ArrayBuffer(S*4),I=new Uint8Array(U),I.set(new Uint8Array(r,o,V)),p.stuffedData=new Uint32Array(U),o+=V}}}return i.eofOffset=o,i},e=function(r,o,a,i,m,n,t){var v=(1<=o)l=s>>>g-o&v,g-=o;else{var D=o-g;l=(s&v)<>>g}n[h]=l=r?(g=l>>>h-r&t,h-=r):(s=r-h,g=(l&t)<>>h),e[u]=a[g];else for(w=Math.ceil((n-i)/m),u=0;u=r?(g=l>>>h-r&t,h-=r):(s=r-h,g=(l&t)<>>h),e[u]=g=e?(h=g>>>u-e&m,u-=e):(v=e-u,h=(g&m)<>>u),l[t]=h=r?(l=s>>>g&t,h-=r,g+=r):(w=r-h,l=s>>>g&t,s=f[v++],h=32-w,l|=(s&(1<=r?(l=s>>>g&t,h-=r,g+=r):(w=r-h,l=s>>>g&t,s=f[v++],h=32-w,l|=(s&(1<=e?(h=l>>>g&m,u-=e,g+=e):(v=e-u,h=l>>>g&m,l=f[n++],u=32-v,h|=(l&(1<=r?(t=v>>>n-r&a,n-=r):(u=r-n,t=(v&a)<>>n),e[m]=t;return e},originalUnstuff2:function(f,e,r,o){var a=(1<=r?(v=u>>>t&a,n-=r,t+=r):(h=r-n,v=u>>>t&a,u=f[i++],n=32-h,v|=(u&(1<=359?359:a;a-=m;do e+=f[i++]<<8,r+=e+=f[i++];while(--m);e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16)}return o&1&&(r+=e+=f[i]<<8),e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16),(r<<16|e)>>>0},readHeaderInfo:function(f,e){var r=e.ptr,o=new Uint8Array(f,r,6),a={};if(a.fileIdentifierString=String.fromCharCode.apply(null,o),a.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+a.fileIdentifierString;r+=6;var i=new DataView(f,r,8),m=i.getInt32(0,!0);a.fileVersion=m,r+=4,m>=3&&(a.checksum=i.getUint32(4,!0),r+=4),i=new DataView(f,r,12),a.height=i.getUint32(0,!0),a.width=i.getUint32(4,!0),r+=8,m>=4?(a.numDims=i.getUint32(8,!0),r+=4):a.numDims=1,i=new DataView(f,r,40),a.numValidPixel=i.getUint32(0,!0),a.microBlockSize=i.getInt32(4,!0),a.blobSize=i.getInt32(8,!0),a.imageType=i.getInt32(12,!0),a.maxZError=i.getFloat64(16,!0),a.zMin=i.getFloat64(24,!0),a.zMax=i.getFloat64(32,!0),r+=40,e.headerInfo=a,e.ptr=r;var n,t;if(m>=3&&(t=m>=4?52:48,n=this.computeChecksumFletcher32(new Uint8Array(f,r-t,a.blobSize-14)),n!==a.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(f,e){var r=e.headerInfo,o=this.getDataTypeArray(r.imageType),a=r.numDims*this.getDataTypeSize(r.imageType),i=this.readSubArray(f,e.ptr,o,a),m=this.readSubArray(f,e.ptr+a,o,a);e.ptr+=2*a;var n,t=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(a/8)),m=new DataView(f,r,n.numBytes);var u=m.getInt16(0,!0),h=2,g=0,l=0;do{if(u>0)for(;u--;)t[g++]=m.getUint8(h++);else for(l=m.getUint8(h++),u=-u;u--;)t[g++]=l;u=m.getInt16(h,!0),h+=2}while(h>3],s<<=w&7):s=t[w>>3],s&128&&(v[w]=1);e.pixels.resultMask=v,n.bitset=t,r+=n.numBytes}return e.ptr=r,e.mask=n,!0},readDataOneSweep:function(f,e,r,o){var a=e.ptr,i=e.headerInfo,m=i.numDims,n=i.width*i.height,t=i.imageType,v=i.numValidPixel*A.getDataTypeSize(t)*m,u,h=e.pixels.resultMask;if(r===Uint8Array)u=new Uint8Array(f,a,v);else{var g=new ArrayBuffer(v),l=new Uint8Array(g);l.set(new Uint8Array(f,a,v)),u=new r(g)}if(u.length===n*m)o?e.pixels.resultPixels=A.swapDimensionOrder(u,n,m,r,!0):e.pixels.resultPixels=u;else{e.pixels.resultPixels=new r(n*m);var s=0,w=0,x=0,D=0;if(m>1){if(o){for(w=0;w=n)return!1;var t=new Uint32Array(n-m);A.decodeBits(f,e,t);var v=[],u,h,g,l;for(u=m;u0&&(v[h].second=k<>>32-l,32-M>=l?(M+=l,M===32&&(M=0,L++,k=d[L])):(M+=l-32,L++,k=d[L],v[h].second|=k>>>32-M));var p=0,c=0,U=new X;for(u=0;u=r?c=r:c=p;var I=[],y,T,V,S,B,F;for(u=m;u0)if(y=[l,h],l<=c)for(T=v[h].second<=0;S--)B=T>>>S&1,B?(F.right||(F.right=new X),F=F.right):(F.left||(F.left=new X),F=F.left),S===0&&!F.val&&(F.val=y[1]);return{decodeLut:I,numBitsLUTQick:c,numBitsLUT:p,tree:U,stuffedData:d,srcPtr:L,bitPos:M}},readHuffman:function(f,e,r,o){var a=e.headerInfo,i=a.numDims,m=e.headerInfo.height,n=e.headerInfo.width,t=n*m,v=this.readHuffmanTree(f,e),u=v.decodeLut,h=v.tree,g=v.stuffedData,l=v.srcPtr,s=v.bitPos,w=v.numBitsLUTQick,x=v.numBitsLUT,D=e.headerInfo.imageType===0?128:0,d,M,k,L=e.pixels.resultMask,p,c,U,I,y,T,V,S=0;s>0&&(l++,s=0);var B=g[l],F=e.encodeMode===1,j=new r(t*i),z=j,b;if(i<2||F){for(b=0;b1&&(z=new r(j.buffer,t*b,t),S=0),e.headerInfo.numValidPixel===n*m)for(T=0,I=0;I>>32-w,c=p,32-s>>64-s-w,c=p),u[c])M=u[c][1],s+=u[c][0];else for(p=B<>>32-x,c=p,32-s>>64-s-x,c=p),d=h,V=0;V>>x-V-1&1,d=U?d.right:d.left,!(d.left||d.right)){M=d.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),k=M-D,F?(y>0?k+=S:I>0?k+=z[T-n]:k+=S,k&=255,z[T]=k,S=k):z[T]=k}else for(T=0,I=0;I>>32-w,c=p,32-s>>64-s-w,c=p),u[c])M=u[c][1],s+=u[c][0];else for(p=B<>>32-x,c=p,32-s>>64-s-x,c=p),d=h,V=0;V>>x-V-1&1,d=U?d.right:d.left,!(d.left||d.right)){M=d.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),k=M-D,F?(y>0&&L[T-1]?k+=S:I>0&&L[T-n]?k+=z[T-n]:k+=S,k&=255,z[T]=k,S=k):z[T]=k}}else for(T=0,I=0;I>>32-w,c=p,32-s>>64-s-w,c=p),u[c])M=u[c][1],s+=u[c][0];else for(p=B<>>32-x,c=p,32-s>>64-s-x,c=p),d=h,V=0;V>>x-V-1&1,d=U?d.right:d.left,!(d.left||d.right)){M=d.val,s=s+V+1;break}s>=32&&(s-=32,l++,B=g[l]),k=M-D,z[T]=k}e.ptr=e.ptr+(l+1)*4+(s>0?4:0),e.pixels.resultPixels=j,i>1&&!o&&(e.pixels.resultPixels=A.swapDimensionOrder(j,t,i,r))},decodeBits:function(f,e,r,o,a){{var i=e.headerInfo,m=i.fileVersion,n=0,t=f.byteLength-e.ptr>=5?5:f.byteLength-e.ptr,v=new DataView(f,e.ptr,t),u=v.getUint8(0);n++;var h=u>>6,g=h===0?4:3-h,l=(u&32)>0,s=u&31,w=0;if(g===1)w=v.getUint8(n),n++;else if(g===2)w=v.getUint16(n,!0),n+=2;else if(g===4)w=v.getUint32(n,!0),n+=4;else throw"Invalid valid pixel count type";var x=2*i.maxZError,D,d,M,k,L,p,c,U,I,y=i.numDims>1?i.maxValues[a]:i.zMax;if(l){for(e.counter.lut++,U=v.getUint8(n),n++,k=Math.ceil((U-1)*s/8),L=Math.ceil(k/4),d=new ArrayBuffer(L*4),M=new Uint8Array(d),e.ptr+=n,M.set(new Uint8Array(f,e.ptr,k)),c=new Uint32Array(d),e.ptr+=k,I=0;U-1>>>I;)I++;k=Math.ceil(w*I/8),L=Math.ceil(k/4),d=new ArrayBuffer(L*4),M=new Uint8Array(d),M.set(new Uint8Array(f,e.ptr,k)),D=new Uint32Array(d),e.ptr+=k,m>=3?p=C.unstuffLUT2(c,s,U-1,o,x,y):p=C.unstuffLUT(c,s,U-1,o,x,y),m>=3?C.unstuff2(D,r,I,w,p):C.unstuff(D,r,I,w,p)}else e.counter.bitstuffer++,I=s,e.ptr+=n,I>0&&(k=Math.ceil(w*I/8),L=Math.ceil(k/4),d=new ArrayBuffer(L*4),M=new Uint8Array(d),M.set(new Uint8Array(f,e.ptr,k)),D=new Uint32Array(d),e.ptr+=k,m>=3?o==null?C.originalUnstuff2(D,r,I,w):C.unstuff2(D,r,I,w,!1,o,x,y):o==null?C.originalUnstuff(D,r,I,w):C.unstuff(D,r,I,w,!1,o,x,y))}},readTiles:function(f,e,r,o){var a=e.headerInfo,i=a.width,m=a.height,n=i*m,t=a.microBlockSize,v=a.imageType,u=A.getDataTypeSize(v),h=Math.ceil(i/t),g=Math.ceil(m/t);e.pixels.numBlocksY=g,e.pixels.numBlocksX=h,e.pixels.ptr=0;var l=0,s=0,w=0,x=0,D=0,d=0,M=0,k=0,L=0,p=0,c=0,U=0,I=0,y=0,T=0,V=0,S,B,F,j,z,b,Q=new r(t*t),ne=m%t||t,ae=i%t||t,G,H,q=a.numDims,_,E=e.pixels.resultMask,O=e.pixels.resultPixels,te=a.fileVersion,ee=te>=5?14:15,Z,J=a.zMax,N;for(w=0;w1?(N=O,c=w*i*t+x*t,O=new r(e.pixels.resultPixels.buffer,n*_*u,n),J=a.maxValues[_]):N=null,M=f.byteLength-e.ptr,S=new DataView(f,e.ptr,Math.min(10,M)),B={},V=0,k=S.getUint8(0),V++,Z=a.fileVersion>=5?k&4:0,L=k>>6&255,p=k>>2&ee,p!==(x*t>>3&ee)||Z&&_===0)throw"integrity issue";if(b=k&3,b>3)throw e.ptr+=V,"Invalid block encoding ("+b+")";if(b===2){if(Z)if(E)for(l=0;l1&&!o&&(e.pixels.resultPixels=A.swapDimensionOrder(e.pixels.resultPixels,n,q,r))},formatFileInfo:function(f){return{fileIdentifierString:f.headerInfo.fileIdentifierString,fileVersion:f.headerInfo.fileVersion,imageType:f.headerInfo.imageType,height:f.headerInfo.height,width:f.headerInfo.width,numValidPixel:f.headerInfo.numValidPixel,microBlockSize:f.headerInfo.microBlockSize,blobSize:f.headerInfo.blobSize,maxZError:f.headerInfo.maxZError,pixelType:A.getPixelType(f.headerInfo.imageType),eofOffset:f.eofOffset,mask:f.mask?{numBytes:f.mask.numBytes}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,maxValue:f.headerInfo.zMax,minValue:f.headerInfo.zMin,noDataValue:f.noDataValue}}},constructConstantSurface:function(f,e){var r=f.headerInfo.zMax,o=f.headerInfo.zMin,a=f.headerInfo.maxValues,i=f.headerInfo.numDims,m=f.headerInfo.height*f.headerInfo.width,n=0,t=0,v=0,u=f.pixels.resultMask,h=f.pixels.resultPixels;if(u)if(i>1){if(e)for(n=0;n1&&o!==r)if(e)for(n=0;n=-128&&e<=127;break;case 1:r=e>=0&&e<=255;break;case 2:r=e>=-32768&&e<=32767;break;case 3:r=e>=0&&e<=65536;break;case 4:r=e>=-2147483648&&e<=2147483647;break;case 5:r=e>=0&&e<=4294967296;break;case 6:r=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:r=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(f){var e=0;switch(f){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=f}return e},getDataTypeUsed:function(f,e){var r=f;switch(f){case 2:case 4:r=f-e;break;case 3:case 5:r=f-2*e;break;case 6:e===0?r=f:e===1?r=2:r=1;break;case 7:e===0?r=f:r=f-2*e+1;break;default:r=f;break}return r},getOnePixel:function(f,e,r,o){var a=0;switch(r){case 0:a=o.getInt8(e);break;case 1:a=o.getUint8(e);break;case 2:a=o.getInt16(e,!0);break;case 3:a=o.getUint16(e,!0);break;case 4:a=o.getInt32(e,!0);break;case 5:a=o.getUInt32(e,!0);break;case 6:a=o.getFloat32(e,!0);break;case 7:a=o.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return a},swapDimensionOrder:function(f,e,r,o,a){var i=0,m=0,n=0,t=0,v=f;if(r>1)if(v=new o(e*r),a)for(i=0;i5)throw"unsupported lerc version 2."+m;A.readMask(f,a),i.numValidPixel!==i.width*i.height&&!a.pixels.resultMask&&(a.pixels.resultMask=e.maskData);var t=i.width*i.height;a.pixels.resultPixels=new n(t*i.numDims),a.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var v=!e.returnPixelInterleavedDims;if(i.numValidPixel!==0)if(i.zMax===i.zMin)A.constructConstantSurface(a,v);else if(m>=4&&A.checkMinMaxRanges(f,a))A.constructConstantSurface(a,v);else{var u=new DataView(f,a.ptr,2),h=u.getUint8(0);if(a.ptr++,h)A.readDataOneSweep(f,a,n,v);else if(m>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var g=u.getUint8(1);if(a.ptr++,a.encodeMode=g,g>2||m<4&&g>1)throw"Invalid Huffman flag "+g;g?A.readHuffman(f,a,n,v):A.readTiles(f,a,n,v)}else A.readTiles(f,a,n,v)}a.eofOffset=a.ptr;var l;e.inputOffset?(l=a.headerInfo.blobSize+e.inputOffset-a.ptr,Math.abs(l)>=1&&(a.eofOffset=e.inputOffset+a.headerInfo.blobSize)):(l=a.headerInfo.blobSize-a.ptr,Math.abs(l)>=1&&(a.eofOffset=a.headerInfo.blobSize));var s={width:i.width,height:i.height,pixelData:a.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:a.pixels.resultMask};if(a.pixels.resultMask&&A.isValidPixelValue(i.imageType,r)){var w=a.pixels.resultMask;for(o=0;o1&&(t&&m.push(t),h.fileInfo.mask&&h.fileInfo.mask.numBytes>0&&u++),o++,v.pixels.push(h.pixelData),v.statistics.push({minValue:h.minValue,maxValue:h.maxValue,noDataValue:h.noDataValue,dimStats:h.dimStats})}var g,l,s;if(r>1&&u>1){for(s=v.width*v.height,v.bandMasks=m,t=new Uint8Array(s),t.set(m[0]),g=1;g=C){var t=A.charCodeAt(++E);C=65536+((C&1023)<<10)|t&1023}if(127>=C){if(B>=I)break;Q[B++]=C}else{if(2047>=C){if(B+1>=I)break;Q[B++]=192|C>>6}else{if(65535>=C){if(B+2>=I)break;Q[B++]=224|C>>12}else{if(B+3>=I)break;Q[B++]=240|C>>18,Q[B++]=128|C>>12&63}Q[B++]=128|C>>6&63}Q[B++]=128|C&63}}Q[B]=0}}var rA=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function vA(A,B){for(var I=A>>1,Q=I+B/2;!(I>=Q)&&P[I];)++I;if(I<<=1,32>1];if(E==0||I==B/2)return Q;++I,Q+=String.fromCharCode(E)}}function kA(A,B,I){if(I===void 0&&(I=2147483647),2>I)return 0;I-=2;var Q=B;I=I<2*A.length?I/2:A.length;for(var E=0;E>1]=A.charCodeAt(E),B+=2;return k[B>>1]=0,B-Q}function LA(A){return 2*A.length}function HA(A,B){for(var I=0,Q="";!(I>=B/4);){var E=G[A+4*I>>2];if(E==0)break;++I,65536<=E?(E-=65536,Q+=String.fromCharCode(55296|E>>10,56320|E&1023)):Q+=String.fromCharCode(E)}return Q}function WA(A,B,I){if(I===void 0&&(I=2147483647),4>I)return 0;var Q=B;I=Q+I-4;for(var E=0;E=C){var t=A.charCodeAt(++E);C=65536+((C&1023)<<10)|t&1023}if(G[B>>2]=C,B+=4,B+4>I)break}return G[B>>2]=0,B-Q}function qA(A){for(var B=0,I=0;I=Q&&++I,B+=4}return B}var v,T,y,k,P,G,M,oA,tA;function eA(A){v=A,g.HEAP8=T=new Int8Array(A),g.HEAP16=k=new Int16Array(A),g.HEAP32=G=new Int32Array(A),g.HEAPU8=y=new Uint8Array(A),g.HEAPU16=P=new Uint16Array(A),g.HEAPU32=M=new Uint32Array(A),g.HEAPF32=oA=new Float32Array(A),g.HEAPF64=tA=new Float64Array(A)}var aA=g.INITIAL_MEMORY||16777216;g.wasmMemory?N=g.wasmMemory:N=new WebAssembly.Memory({initial:aA/65536,maximum:32768}),N&&(v=N.buffer),aA=v.byteLength,eA(v);var K,sA=[],fA=[],xA=[],DA=[];function XA(){var A=g.preRun.shift();sA.unshift(A)}var U=0,b=null;g.preloadedImages={},g.preloadedAudios={};function V(A){throw g.onAbort&&g.onAbort(A),d(A),X=!0,A=new WebAssembly.RuntimeError("abort("+A+"). Build with -s ASSERTIONS=1 for more info."),w(A),A}function cA(A){var B=O;return String.prototype.startsWith?B.startsWith(A):B.indexOf(A)===0}function uA(){return cA("data:application/octet-stream;base64,")}var O="lz4_codec.wasm";if(!uA()){var yA=O;O=g.locateFile?g.locateFile(yA,""):""+yA}function TA(){try{if(J)return new Uint8Array(J);throw"both async and sync fetching of the wasm failed"}catch(A){V(A)}}function j(A){for(;0>2]=B},this.M=function(B){G[this.C+0>>2]=B},this.N=function(){G[this.C+4>>2]=0},this.L=function(){T[this.C+12>>0]=0},this.O=function(){T[this.C+13>>0]=0},this.K=function(B,I){this.P(B),this.M(I),this.N(),this.L(),this.O()}}function BA(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+A)}}var wA=void 0;function l(A){for(var B="";y[A];)B+=wA[y[A++]];return B}var L={},m={},z={};function FA(A){if(A===void 0)return"_unknown";A=A.replace(/[^a-zA-Z0-9_]/g,"$");var B=A.charCodeAt(0);return 48<=B&&57>=B?"_"+A:A}function hA(A,B){return A=FA(A),new Function("body","return function "+A+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(B)}function IA(A){var B=Error,I=hA(A,function(Q){this.name=A,this.message=Q,Q=Error(Q).stack,Q!==void 0&&(this.stack=this.toString()+` +`+Q.replace(/^Error(:[^\n]*)?\n/,""))});return I.prototype=Object.create(B.prototype),I.prototype.constructor=I,I.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},I}var lA=void 0;function F(A){throw new lA(A)}var gA=void 0;function bA(A,B){function I(i){if(i=B(i),i.length!==Q.length)throw new gA("Mismatched type converter count");for(var r=0;r>2])}function CA(A){if(A===null)return"null";var B=typeof A;return B==="object"||B==="array"||B==="function"?A.toString():""+A}function VA(A,B){switch(B){case 2:return function(I){return this.fromWireType(oA[I>>2])};case 3:return function(I){return this.fromWireType(tA[I>>3])};default:throw new TypeError("Unknown float type: "+A)}}function ZA(A){var B=Function;if(!(B instanceof Function))throw new TypeError("new_ called with constructor type "+typeof B+" which is not a function");var I=hA(B.name||"unknownFunctionName",function(){});return I.prototype=B.prototype,I=new I,A=B.apply(I,A),A instanceof Object?A:I}function PA(A){for(;A.length;){var B=A.pop();A.pop()(B)}}function OA(A,B){var I=g;if(I[A].A===void 0){var Q=I[A];I[A]=function(){return I[A].A.hasOwnProperty(arguments.length)||F("Function '"+B+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[A].A+")!"),I[A].A[arguments.length].apply(this,arguments)},I[A].A=[],I[A].A[Q.H]=Q}}function jA(A,B,I){g.hasOwnProperty(A)?((I===void 0||g[A].A!==void 0&&g[A].A[I]!==void 0)&&F("Cannot register public name '"+A+"' twice"),OA(A,A),g.hasOwnProperty(I)&&F("Cannot register multiple overloads of a function with the same number of arguments ("+I+")!"),g[A].A[I]=B):(g[A]=B,I!==void 0&&(g[A].S=I))}function zA(A,B){for(var I=[],Q=0;Q>2)+Q]);return I}function _A(A,B){0<=A.indexOf("j")||V("Assertion failed: getDynCaller should only be called with i64 sigs");var I=[];return function(){I.length=arguments.length;for(var Q=0;Q>1]}:function(Q){return P[Q>>1]};case 2:return I?function(Q){return G[Q>>2]}:function(Q){return M[Q>>2]};default:throw new TypeError("Unknown integer type: "+A)}}for(var MA=Array(256),_=0;256>_;++_)MA[_]=String.fromCharCode(_);wA=MA,lA=g.BindingError=IA("BindingError"),gA=g.InternalError=IA("InternalError"),g.count_emval_handles=function(){for(var A=0,B=5;B>C])},B:null})},q:function(A,B){B=l(B),S(A,{name:B,fromWireType:function(I){var Q=R[I].value;return RA(I),Q},toWireType:function(I,Q){return NA(Q)},argPackAdvance:8,readValueFromPointer:EA,B:null})},g:function(A,B,I){I=BA(I),B=l(B),S(A,{name:B,fromWireType:function(Q){return Q},toWireType:function(Q,E){if(typeof E!="number"&&typeof E!="boolean")throw new TypeError('Cannot convert "'+CA(E)+'" to '+this.name);return E},argPackAdvance:8,readValueFromPointer:VA(B,I),B:null})},e:function(A,B,I,Q,E,C){var t=zA(B,I);A=l(A),E=$A(Q,E),jA(A,function(){AB("Cannot call "+A+" due to unbound types",t)},B-1),bA(t,function(i){var r=A,e=A;i=[i[0],null].concat(i.slice(1));var a=E,o=i.length;2>o&&F("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var c=i[1]!==null&&!1,h=!1,n=1;n>>i}}var r=B.indexOf("unsigned")!=-1;S(A,{name:B,fromWireType:C,toWireType:function(e,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+CA(a)+'" to '+this.name);if(aE)throw new TypeError('Passing a number "'+CA(a)+'" from JS side to C/C++ side to an argument of type "'+B+'", which is outside the valid range ['+Q+", "+E+"]!");return r?a>>>0:a|0},argPackAdvance:8,readValueFromPointer:BB(B,t,Q!==0),B:null})},b:function(A,B,I){function Q(C){C>>=2;var t=M;return new E(v,t[C+1],t[C])}var E=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][B];I=l(I),S(A,{name:I,fromWireType:Q,argPackAdvance:8,readValueFromPointer:Q},{J:!0})},f:function(A,B){B=l(B);var I=B==="std::string";S(A,{name:B,fromWireType:function(Q){var E=M[Q>>2];if(I)for(var C=Q+4,t=0;t<=E;++t){var i=Q+4+t;if(t==E||y[i]==0){if(C){var r=C,e=y,a=r+(i-C);for(C=r;e[C]&&!(C>=a);)++C;if(16o?a+=String.fromCharCode(o):(o-=65536,a+=String.fromCharCode(55296|o>>10,56320|o&1023))}}else a+=String.fromCharCode(o)}r=a}}else r="";if(n===void 0)var n=r;else n+="\0",n+=r;C=i+1}}else{for(n=Array(E),t=0;t=o&&(o=65536+((o&1023)<<10)|E.charCodeAt(++a)&1023),127>=o?++e:e=2047>=o?e+2:65535>=o?e+3:e+4}return e}:function(){return E.length})(),i=$(4+t+1);if(M[i>>2]=t,I&&C)JA(E,i+4,t+1);else if(C)for(C=0;C>2],a=t(),o,c=r+4,h=0;h<=e;++h){var n=r+4+h*B;(h==e||a[n>>i]==0)&&(c=Q(c,n-c),o===void 0?o=c:(o+="\0",o+=c),c=n+B)}return p(r),o},toWireType:function(r,e){typeof e!="string"&&F("Cannot pass non-string to C++ string type "+I);var a=C(e),o=$(4+a+B);return M[o>>2]=a>>i,E(e,o+4,a+B),r!==null&&r.push(p,o),o},argPackAdvance:8,readValueFromPointer:EA,B:function(r){p(r)}})},i:function(A,B){B=l(B),S(A,{R:!0,name:B,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},j:RA,m:function(A){4>>=0;var B=y.length;if(2147483648=I;I*=2){var Q=B*(1+.2/I);Q=Math.min(Q,A+100663296),Q=Math.max(16777216,A,Q),0>>16),eA(N.buffer);var E=1;break A}catch{}E=void 0}if(E)return!0}return!1},a:N};(function(){function A(E){g.asm=E.exports,K=g.asm.s,U--,g.monitorRunDependencies&&g.monitorRunDependencies(U),U==0&&b&&(E=b,b=null,E())}function B(E){A(E.instance)}function I(E){return Promise.resolve().then(TA).then(function(C){return WebAssembly.instantiate(C,Q)}).then(E,function(C){d("failed to asynchronously prepare wasm: "+C),V(C)})}var Q={a:IB};if(U++,g.monitorRunDependencies&&g.monitorRunDependencies(U),g.instantiateWasm)try{return g.instantiateWasm(Q,A)}catch(E){return d("Module.instantiateWasm callback failed with error: "+E),!1}return function(){return J||typeof WebAssembly.instantiateStreaming!="function"||uA()||cA("file://")||typeof fetch!="function"?I(B):fetch(O,{credentials:"same-origin"}).then(function(E){return WebAssembly.instantiateStreaming(E,Q).then(B,function(C){return d("wasm streaming compile failed: "+C),d("falling back to ArrayBuffer instantiation"),I(B)})})}().catch(w),{}})();var SA=g.___wasm_call_ctors=function(){return(SA=g.___wasm_call_ctors=g.asm.t).apply(null,arguments)},$=g._malloc=function(){return($=g._malloc=g.asm.u).apply(null,arguments)},p=g._free=function(){return(p=g._free=g.asm.v).apply(null,arguments)},pA=g.___getTypeName=function(){return(pA=g.___getTypeName=g.asm.w).apply(null,arguments)};g.___embind_register_native_and_builtin_types=function(){return(g.___embind_register_native_and_builtin_types=g.asm.x).apply(null,arguments)};var AA;b=function A(){AA||iA(),AA||(b=A)};function iA(){function A(){if(!AA&&(AA=!0,g.calledRun=!0,!X)){if(j(fA),j(xA),f(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var B=g.postRun.shift();DA.unshift(B)}j(DA)}}if(!(0new Uint8Array(Buffer.from(s,"base64")):(()=>{for(var s=new Uint8Array(128),g=0;g<64;g++)s[g<26?g+65:g<52?g+71:g<62?g-4:g*4-205]=g;return f=>{for(var w=f.length,u=new Uint8Array((w-(f[w-1]=="=")-(f[w-2]=="="))*3/4|0),D=0,d=0;D>4,u[d++]=N<<4|X>>2,u[d++]=X<<6|Z}return u}})(),CB=EB("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bG9uZwB1bnNpZ25lZCBsb25nAGZsb2F0AGRvdWJsZQBzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAc3RkOjp1MTZzdHJpbmcAc3RkOjp1MzJzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AAADcDQAAgAgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQAA3A0AAKgIAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lmRUUAANwNAADQCAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAADcDQAA+AgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWxFRQAA3A0AACAJAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lqRUUAANwNAABICQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAADcDQAAcAkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXRFRQAA3A0AAJgJAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lzRUUAANwNAADACQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAADcDQAA6AkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAABA4AACAKAAAAAAAAAQAAAJwEAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAAAEDgAAfAoAAAAAAAABAAAAnAQAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAAQOAADYCgAAAAAAAAEAAACcBAAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVOU185YWxsb2NhdG9ySXdFRUVFAAAEDgAAMAsAAAAAAAABAAAAnAQAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQBiYXNpY19zdHJpbmcAc3RkOjpleGNlcHRpb24AAAAAAACgCwAACAAAAAkAAAAKAAAA3A0AAKgLAABTdDlleGNlcHRpb24AAAAAAAAAAMwLAAAHAAAACwAAAAwAAABQDAAA2AsAAKALAABTdDExbG9naWNfZXJyb3IAAAAAAPwLAAAHAAAADQAAAAwAAABQDAAACAwAAMwLAABTdDEybGVuZ3RoX2Vycm9yAFN0OXR5cGVfaW5mbwAAANwNAAAZDAAAUAwAAMUMAAAoDAAAUAwAAHAMAAAwDAAAAAAAAJQMAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAFAMAACgDAAAPAwAAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQAAAAAAAAAEDQAADgAAABYAAAAQAAAAEQAAABcAAABQDAAAEA0AADAMAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAdgAAAPAMAAA4DQAAYgAAAPAMAABEDQAAYwAAAPAMAABQDQAAaAAAAPAMAABcDQAAYQAAAPAMAABoDQAAcwAAAPAMAAB0DQAAdAAAAPAMAACADQAAaQAAAPAMAACMDQAAagAAAPAMAACYDQAAbAAAAPAMAACkDQAAbQAAAPAMAACwDQAAZgAAAPAMAAC8DQAAZAAAAPAMAADIDQAAAAAAADwMAAAOAAAAGAAAABAAAAARAAAAEgAAABkAAAAaAAAAGwAAAAAAAAAkDgAADgAAABwAAAAQAAAAEQAAABIAAAAdAAAAHgAAAB8AAABQDAAAMA4AADwMAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAEHYHAsDkBJQ"),W;const nA=1,q=2113929216;let x;const YA=()=>gB({noInitialRun:!0,wasmBinary:CB}),iB=(W=class{constructor(s=nA){if(this.max_buffer_size=q,!Number.isInteger(s))throw Error(`Invalid acceleration "${s}". Must be a positive integer.`);this.acceleration=s<=0?nA:s}static fromConfig({acceleration:s}){return new W(s)}async encode(s){if(x||(x=YA()),s.length>q)throw Error(`Codec does not support buffers of > ${q} bytes.`);const g=await x,f=g.compress(s,this.acceleration),w=new Uint8Array(f);return g.free_result(),w}async decode(s,g){if(x||(x=YA()),s.length>q)throw Error(`Codec does not support buffers of > ${q} bytes.`);const f=await x,w=f.decompress(s),u=new Uint8Array(w);return f.free_result(),g!==void 0?(g.set(u),g):u}},W.codecId="lz4",W.DEFAULT_ACCELERATION=nA,W.max_buffer_size=q,W);export{iB as default}; diff --git a/assets/lzw-834edf30-0njj13Xc.js b/assets/lzw-834edf30-0njj13Xc.js new file mode 100644 index 0000000..331b5f2 --- /dev/null +++ b/assets/lzw-834edf30-0njj13Xc.js @@ -0,0 +1 @@ +import{B as b}from"./index-3h9IID_q.js";const B=9,E=256,p=257,k=12;function v(c,o,r){const i=o%8,t=Math.floor(o/8),h=8-i,g=o+r-(t+1)*8;let l=8*(t+2)-(o+r);const w=(t+2)*8-o;if(l=Math.max(0,l),t>=c.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),p;let u=c[t]&2**(8-i)-1;u<<=r-h;let s=u;if(t+1>>l;f<<=Math.max(0,r-w),s+=f}if(g>8&&t+2>>f;s+=n}return s}function D(c,o){for(let r=o.length-1;r>=0;r--)c.push(o[r]);return c}function x(c){const o=new Uint16Array(4093),r=new Uint8Array(4093);for(let e=0;e<=257;e++)o[e]=4096,r[e]=e;let i=258,t=B,h=0;function g(){i=258,t=B}function l(e){const a=v(e,h,t);return h+=t,a}function w(e,a){return r[i]=a,o[i]=e,i++,i-1}function u(e){const a=[];for(let y=e;y!==4096;y=o[y])a.push(r[y]);return a}const s=[];g();const f=new Uint8Array(c);let n=l(f),d;for(;n!==p;){if(n===E){for(g(),n=l(f);n===E;)n=l(f);if(n===p)break;if(n>E)throw new Error(`corrupted code at scanline ${n}`);{const e=u(n);D(s,e),d=n}}else if(n=2**t&&(t===k?d=void 0:t++),n=l(f)}return new Uint8Array(s)}class C extends b{decodeBlock(o){return x(o).buffer}}export{C as default}; diff --git a/assets/packbits-37beb194-fKqmk4nw.js b/assets/packbits-37beb194-fKqmk4nw.js new file mode 100644 index 0000000..e5e373d --- /dev/null +++ b/assets/packbits-37beb194-fKqmk4nw.js @@ -0,0 +1 @@ +import{B as c}from"./index-3h9IID_q.js";class l extends c{decodeBlock(s){const n=new DataView(s),r=[];for(let e=0;e=0;)t[i]=0}const it=3,nt=258,He=29,at=256,ot=at+1+He,Fe=30,lt=512,st=new Array((ot+2)*2);U(st);const rt=new Array(Fe*2);U(rt);const ft=new Array(lt);U(ft);const ct=new Array(nt-it+1);U(ct);const ht=new Array(He);U(ht);const dt=new Array(Fe);U(dt);const ut=(t,i,e,l)=>{let f=t&65535|0,n=t>>>16&65535|0,h=0;for(;e!==0;){h=e>2e3?2e3:e,e-=h;do f=f+i[l++]|0,n=n+f|0;while(--h);f%=65521,n%=65521}return f|n<<16|0};var ne=ut;const _t=()=>{let t,i=[];for(var e=0;e<256;e++){t=e;for(var l=0;l<8;l++)t=t&1?3988292384^t>>>1:t>>>1;i[e]=t}return i},wt=new Uint32Array(_t()),bt=(t,i,e,l)=>{const f=wt,n=l+e;t^=-1;for(let h=l;h>>8^f[(t^i[h])&255];return t^-1};var I=bt,ae={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},le={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const kt=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var gt=function(t){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const e=i.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(const l in e)kt(e,l)&&(t[l]=e[l])}}return t},Et=t=>{let i=0;for(let l=0,f=t.length;l=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;$[254]=$[254]=1;var vt=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let i,e,l,f,n,h=t.length,s=0;for(f=0;f>>6,i[n++]=128|e&63):e<65536?(i[n++]=224|e>>>12,i[n++]=128|e>>>6&63,i[n++]=128|e&63):(i[n++]=240|e>>>18,i[n++]=128|e>>>12&63,i[n++]=128|e>>>6&63,i[n++]=128|e&63);return i};const pt=(t,i)=>{if(i<65534&&t.subarray&&Ge)return String.fromCharCode.apply(null,t.length===i?t:t.subarray(0,i));let e="";for(let l=0;l{const e=i||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,i));let l,f;const n=new Array(e*2);for(f=0,l=0;l4){n[f++]=65533,l+=s-1;continue}for(h&=s===2?31:s===3?15:7;s>1&&l1){n[f++]=65533;continue}h<65536?n[f++]=h:(h-=65536,n[f++]=55296|h>>10&1023,n[f++]=56320|h&1023)}return pt(n,f)},Rt=(t,i)=>{i=i||t.length,i>t.length&&(i=t.length);let e=i-1;for(;e>=0&&(t[e]&192)===128;)e--;return e<0||e===0?i:e+$[t[e]]>i?e:i},oe={string2buf:vt,buf2string:xt,utf8border:Rt};function At(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var St=At;const P=30,yt=12;var Tt=function(i,e){let l,f,n,h,s,x,a,o,y,_,r,u,T,E,w,p,g,c,v,D,d,A,R,b;const k=i.state;l=i.next_in,R=i.input,f=l+(i.avail_in-5),n=i.next_out,b=i.output,h=n-(e-i.avail_out),s=n+(i.avail_out-257),x=k.dmax,a=k.wsize,o=k.whave,y=k.wnext,_=k.window,r=k.hold,u=k.bits,T=k.lencode,E=k.distcode,w=(1<>>24,r>>>=c,u-=c,c=g>>>16&255,c===0)b[n++]=g&65535;else if(c&16){v=g&65535,c&=15,c&&(u>>=c,u-=c),u<15&&(r+=R[l++]<>>24,r>>>=c,u-=c,c=g>>>16&255,c&16){if(D=g&65535,c&=15,ux){i.msg="invalid distance too far back",k.mode=P;break e}if(r>>>=c,u-=c,c=n-h,D>c){if(c=D-c,c>o&&k.sane){i.msg="invalid distance too far back",k.mode=P;break e}if(d=0,A=_,y===0){if(d+=a-c,c2;)b[n++]=A[d++],b[n++]=A[d++],b[n++]=A[d++],v-=3;v&&(b[n++]=A[d++],v>1&&(b[n++]=A[d++]))}else{d=n-D;do b[n++]=b[d++],b[n++]=b[d++],b[n++]=b[d++],v-=3;while(v>2);v&&(b[n++]=b[d++],v>1&&(b[n++]=b[d++]))}}else if(c&64){i.msg="invalid distance code",k.mode=P;break e}else{g=E[(g&65535)+(r&(1<>3,l-=v,u-=v<<3,r&=(1<{const x=s.bits;let a=0,o=0,y=0,_=0,r=0,u=0,T=0,E=0,w=0,p=0,g,c,v,D,d,A=null,R=0,b;const k=new Uint16Array(L+1),N=new Uint16Array(L+1);let F=null,re=0,fe,B,G;for(a=0;a<=L;a++)k[a]=0;for(o=0;o=1&&k[_]===0;_--);if(r>_&&(r=_),_===0)return f[n++]=1<<24|64<<16|0,f[n++]=1<<24|64<<16|0,s.bits=1,0;for(y=1;y<_&&k[y]===0;y++);for(r0&&(t===de||_!==1))return-1;for(N[1]=0,a=1;ace||t===ue&&w>he)return 1;for(;;){fe=a-T,h[o]b?(B=F[re+h[o]],G=A[R+h[o]]):(B=96,G=0),g=1<>T)+c]=fe<<24|B<<16|G|0;while(c!==0);for(g=1<>=1;if(g!==0?(p&=g-1,p+=g):p=0,o++,--k[a]===0){if(a===_)break;a=i[e+h[o]]}if(a>r&&(p&D)!==v){for(T===0&&(T=r),d+=y,u=a-T,E=1<ce||t===ue&&w>he)return 1;v=p&D,f[v]=r<<24|u<<16|d-n|0}}return p!==0&&(f[d+p]=a-T<<24|64<<16|0),s.bits=r,0};var M=mt;const Nt=0,Pe=1,Ke=2,{Z_FINISH:_e,Z_BLOCK:Ct,Z_TREES:K,Z_OK:C,Z_STREAM_END:Lt,Z_NEED_DICT:Ut,Z_STREAM_ERROR:Z,Z_DATA_ERROR:Ye,Z_MEM_ERROR:Xe,Z_BUF_ERROR:Mt,Z_DEFLATED:we}=le,je=1,be=2,ke=3,ge=4,Ee=5,ve=6,pe=7,xe=8,Re=9,Ae=10,j=11,O=12,J=13,Se=14,Q=15,ye=16,Te=17,De=18,Ze=19,Y=20,X=21,Ie=22,Oe=23,me=24,Ne=25,Ce=26,V=27,Le=28,Ue=29,S=30,We=31,$t=32,zt=852,Ht=592,Ft=15,Bt=Ft,Me=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function Gt(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Je=t=>{if(!t||!t.state)return Z;const i=t.state;return t.total_in=t.total_out=i.total=0,t.msg="",i.wrap&&(t.adler=i.wrap&1),i.mode=je,i.last=0,i.havedict=0,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(zt),i.distcode=i.distdyn=new Int32Array(Ht),i.sane=1,i.back=-1,C},Qe=t=>{if(!t||!t.state)return Z;const i=t.state;return i.wsize=0,i.whave=0,i.wnext=0,Je(t)},Ve=(t,i)=>{let e;if(!t||!t.state)return Z;const l=t.state;return i<0?(e=0,i=-i):(e=(i>>4)+1,i<48&&(i&=15)),i&&(i<8||i>15)?Z:(l.window!==null&&l.wbits!==i&&(l.window=null),l.wrap=e,l.wbits=i,Qe(t))},qe=(t,i)=>{if(!t)return Z;const e=new Gt;t.state=e,e.window=null;const l=Ve(t,i);return l!==C&&(t.state=null),l},Pt=t=>qe(t,Bt);let $e=!0,q,ee;const Kt=t=>{if($e){q=new Int32Array(512),ee=new Int32Array(32);let i=0;for(;i<144;)t.lens[i++]=8;for(;i<256;)t.lens[i++]=9;for(;i<280;)t.lens[i++]=7;for(;i<288;)t.lens[i++]=8;for(M(Pe,t.lens,0,288,q,0,t.work,{bits:9}),i=0;i<32;)t.lens[i++]=5;M(Ke,t.lens,0,32,ee,0,t.work,{bits:5}),$e=!1}t.lencode=q,t.lenbits=9,t.distcode=ee,t.distbits=5},et=(t,i,e,l)=>{let f;const n=t.state;return n.window===null&&(n.wsize=1<=n.wsize?(n.window.set(i.subarray(e-n.wsize,e),0),n.wnext=0,n.whave=n.wsize):(f=n.wsize-n.wnext,f>l&&(f=l),n.window.set(i.subarray(e-l,e-l+f),n.wnext),l-=f,l?(n.window.set(i.subarray(e-l,e),0),n.wnext=l,n.whave=n.wsize):(n.wnext+=f,n.wnext===n.wsize&&(n.wnext=0),n.whave{let e,l,f,n,h,s,x,a,o,y,_,r,u,T,E=0,w,p,g,c,v,D,d,A;const R=new Uint8Array(4);let b,k;const N=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&t.avail_in!==0)return Z;e=t.state,e.mode===O&&(e.mode=J),h=t.next_out,f=t.output,x=t.avail_out,n=t.next_in,l=t.input,s=t.avail_in,a=e.hold,o=e.bits,y=s,_=x,A=C;e:for(;;)switch(e.mode){case je:if(e.wrap===0){e.mode=J;break}for(;o<16;){if(s===0)break e;s--,a+=l[n++]<>>8&255,e.check=I(e.check,R,2,0),a=0,o=0,e.mode=be;break}if(e.flags=0,e.head&&(e.head.done=!1),!(e.wrap&1)||(((a&255)<<8)+(a>>8))%31){t.msg="incorrect header check",e.mode=S;break}if((a&15)!==we){t.msg="unknown compression method",e.mode=S;break}if(a>>>=4,o-=4,d=(a&15)+8,e.wbits===0)e.wbits=d;else if(d>e.wbits){t.msg="invalid window size",e.mode=S;break}e.dmax=1<>8&1),e.flags&512&&(R[0]=a&255,R[1]=a>>>8&255,e.check=I(e.check,R,2,0)),a=0,o=0,e.mode=ke;case ke:for(;o<32;){if(s===0)break e;s--,a+=l[n++]<>>8&255,R[2]=a>>>16&255,R[3]=a>>>24&255,e.check=I(e.check,R,4,0)),a=0,o=0,e.mode=ge;case ge:for(;o<16;){if(s===0)break e;s--,a+=l[n++]<>8),e.flags&512&&(R[0]=a&255,R[1]=a>>>8&255,e.check=I(e.check,R,2,0)),a=0,o=0,e.mode=Ee;case Ee:if(e.flags&1024){for(;o<16;){if(s===0)break e;s--,a+=l[n++]<>>8&255,e.check=I(e.check,R,2,0)),a=0,o=0}else e.head&&(e.head.extra=null);e.mode=ve;case ve:if(e.flags&1024&&(r=e.length,r>s&&(r=s),r&&(e.head&&(d=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(l.subarray(n,n+r),d)),e.flags&512&&(e.check=I(e.check,l,r,n)),s-=r,n+=r,e.length-=r),e.length))break e;e.length=0,e.mode=pe;case pe:if(e.flags&2048){if(s===0)break e;r=0;do d=l[n+r++],e.head&&d&&e.length<65536&&(e.head.name+=String.fromCharCode(d));while(d&&r>9&1,e.head.done=!0),t.adler=e.check=0,e.mode=O;break;case Ae:for(;o<32;){if(s===0)break e;s--,a+=l[n++]<>>=o&7,o-=o&7,e.mode=V;break}for(;o<3;){if(s===0)break e;s--,a+=l[n++]<>>=1,o-=1,a&3){case 0:e.mode=Se;break;case 1:if(Kt(e),e.mode=Y,i===K){a>>>=2,o-=2;break e}break;case 2:e.mode=Te;break;case 3:t.msg="invalid block type",e.mode=S}a>>>=2,o-=2;break;case Se:for(a>>>=o&7,o-=o&7;o<32;){if(s===0)break e;s--,a+=l[n++]<>>16^65535)){t.msg="invalid stored block lengths",e.mode=S;break}if(e.length=a&65535,a=0,o=0,e.mode=Q,i===K)break e;case Q:e.mode=ye;case ye:if(r=e.length,r){if(r>s&&(r=s),r>x&&(r=x),r===0)break e;f.set(l.subarray(n,n+r),h),s-=r,n+=r,x-=r,h+=r,e.length-=r;break}e.mode=O;break;case Te:for(;o<14;){if(s===0)break e;s--,a+=l[n++]<>>=5,o-=5,e.ndist=(a&31)+1,a>>>=5,o-=5,e.ncode=(a&15)+4,a>>>=4,o-=4,e.nlen>286||e.ndist>30){t.msg="too many length or distance symbols",e.mode=S;break}e.have=0,e.mode=De;case De:for(;e.have>>=3,o-=3}for(;e.have<19;)e.lens[N[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,b={bits:e.lenbits},A=M(Nt,e.lens,0,19,e.lencode,0,e.work,b),e.lenbits=b.bits,A){t.msg="invalid code lengths set",e.mode=S;break}e.have=0,e.mode=Ze;case Ze:for(;e.have>>24,p=E>>>16&255,g=E&65535,!(w<=o);){if(s===0)break e;s--,a+=l[n++]<>>=w,o-=w,e.lens[e.have++]=g;else{if(g===16){for(k=w+2;o>>=w,o-=w,e.have===0){t.msg="invalid bit length repeat",e.mode=S;break}d=e.lens[e.have-1],r=3+(a&3),a>>>=2,o-=2}else if(g===17){for(k=w+3;o>>=w,o-=w,d=0,r=3+(a&7),a>>>=3,o-=3}else{for(k=w+7;o>>=w,o-=w,d=0,r=11+(a&127),a>>>=7,o-=7}if(e.have+r>e.nlen+e.ndist){t.msg="invalid bit length repeat",e.mode=S;break}for(;r--;)e.lens[e.have++]=d}}if(e.mode===S)break;if(e.lens[256]===0){t.msg="invalid code -- missing end-of-block",e.mode=S;break}if(e.lenbits=9,b={bits:e.lenbits},A=M(Pe,e.lens,0,e.nlen,e.lencode,0,e.work,b),e.lenbits=b.bits,A){t.msg="invalid literal/lengths set",e.mode=S;break}if(e.distbits=6,e.distcode=e.distdyn,b={bits:e.distbits},A=M(Ke,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,b),e.distbits=b.bits,A){t.msg="invalid distances set",e.mode=S;break}if(e.mode=Y,i===K)break e;case Y:e.mode=X;case X:if(s>=6&&x>=258){t.next_out=h,t.avail_out=x,t.next_in=n,t.avail_in=s,e.hold=a,e.bits=o,Tt(t,_),h=t.next_out,f=t.output,x=t.avail_out,n=t.next_in,l=t.input,s=t.avail_in,a=e.hold,o=e.bits,e.mode===O&&(e.back=-1);break}for(e.back=0;E=e.lencode[a&(1<>>24,p=E>>>16&255,g=E&65535,!(w<=o);){if(s===0)break e;s--,a+=l[n++]<>c)],w=E>>>24,p=E>>>16&255,g=E&65535,!(c+w<=o);){if(s===0)break e;s--,a+=l[n++]<>>=c,o-=c,e.back+=c}if(a>>>=w,o-=w,e.back+=w,e.length=g,p===0){e.mode=Ce;break}if(p&32){e.back=-1,e.mode=O;break}if(p&64){t.msg="invalid literal/length code",e.mode=S;break}e.extra=p&15,e.mode=Ie;case Ie:if(e.extra){for(k=e.extra;o>>=e.extra,o-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=Oe;case Oe:for(;E=e.distcode[a&(1<>>24,p=E>>>16&255,g=E&65535,!(w<=o);){if(s===0)break e;s--,a+=l[n++]<>c)],w=E>>>24,p=E>>>16&255,g=E&65535,!(c+w<=o);){if(s===0)break e;s--,a+=l[n++]<>>=c,o-=c,e.back+=c}if(a>>>=w,o-=w,e.back+=w,p&64){t.msg="invalid distance code",e.mode=S;break}e.offset=g,e.extra=p&15,e.mode=me;case me:if(e.extra){for(k=e.extra;o>>=e.extra,o-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){t.msg="invalid distance too far back",e.mode=S;break}e.mode=Ne;case Ne:if(x===0)break e;if(r=_-x,e.offset>r){if(r=e.offset-r,r>e.whave&&e.sane){t.msg="invalid distance too far back",e.mode=S;break}r>e.wnext?(r-=e.wnext,u=e.wsize-r):u=e.wnext-r,r>e.length&&(r=e.length),T=e.window}else T=f,u=h-e.offset,r=e.length;r>x&&(r=x),x-=r,e.length-=r;do f[h++]=T[u++];while(--r);e.length===0&&(e.mode=X);break;case Ce:if(x===0)break e;f[h++]=e.length,x--,e.mode=X;break;case V:if(e.wrap){for(;o<32;){if(s===0)break e;s--,a|=l[n++]<{if(!t||!t.state)return Z;let i=t.state;return i.window&&(i.window=null),t.state=null,C},jt=(t,i)=>{if(!t||!t.state)return Z;const e=t.state;return e.wrap&2?(e.head=i,i.done=!1,C):Z},Wt=(t,i)=>{const e=i.length;let l,f,n;return!t||!t.state||(l=t.state,l.wrap!==0&&l.mode!==j)?Z:l.mode===j&&(f=1,f=ne(f,i,e,0),f!==l.check)?Ye:(n=et(t,i,e,e),n?(l.mode=We,Xe):(l.havedict=1,C))};var Jt=Qe,Qt=Ve,Vt=Je,qt=Pt,ei=qe,ti=Yt,ii=Xt,ni=jt,ai=Wt,oi="pako inflate (from Nodeca project)",m={inflateReset:Jt,inflateReset2:Qt,inflateResetKeep:Vt,inflateInit:qt,inflateInit2:ei,inflate:ti,inflateEnd:ii,inflateGetHeader:ni,inflateSetDictionary:ai,inflateInfo:oi};function li(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var si=li;const tt=Object.prototype.toString,{Z_NO_FLUSH:ri,Z_FINISH:fi,Z_OK:z,Z_STREAM_END:te,Z_NEED_DICT:ie,Z_STREAM_ERROR:ci,Z_DATA_ERROR:ze,Z_MEM_ERROR:hi}=le;function H(t){this.options=Be.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),i.windowBits>=0&&i.windowBits<16&&!(t&&t.windowBits)&&(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&(i.windowBits&15||(i.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new St,this.strm.avail_out=0;let e=m.inflateInit2(this.strm,i.windowBits);if(e!==z)throw new Error(ae[e]);if(this.header=new si,m.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=oe.string2buf(i.dictionary):tt.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(e=m.inflateSetDictionary(this.strm,i.dictionary),e!==z)))throw new Error(ae[e])}H.prototype.push=function(t,i){const e=this.strm,l=this.options.chunkSize,f=this.options.dictionary;let n,h,s;if(this.ended)return!1;for(i===~~i?h=i:h=i===!0?fi:ri,tt.call(t)==="[object ArrayBuffer]"?e.input=new Uint8Array(t):e.input=t,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(l),e.next_out=0,e.avail_out=l),n=m.inflate(e,h),n===ie&&f&&(n=m.inflateSetDictionary(e,f),n===z?n=m.inflate(e,h):n===ze&&(n=ie));e.avail_in>0&&n===te&&e.state.wrap>0&&t[e.next_in]!==0;)m.inflateReset(e),n=m.inflate(e,h);switch(n){case ci:case ze:case ie:case hi:return this.onEnd(n),this.ended=!0,!1}if(s=e.avail_out,e.next_out&&(e.avail_out===0||n===te))if(this.options.to==="string"){let x=oe.utf8border(e.output,e.next_out),a=e.next_out-x,o=oe.buf2string(e.output,x);e.next_out=a,e.avail_out=l-a,a&&e.output.set(e.output.subarray(x,x+a),0),this.onData(o)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(n===z&&s===0)){if(n===te)return n=m.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};H.prototype.onData=function(t){this.chunks.push(t)};H.prototype.onEnd=function(t){t===z&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Be.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function se(t,i){const e=new H(i);if(e.push(t),e.err)throw e.msg||ae[e.err];return e.result}function di(t,i){return i=i||{},i.raw=!0,se(t,i)}var ui=H,_i=se,wi=di,bi=se,ki=le,gi={Inflate:ui,inflate:_i,inflateRaw:wi,ungzip:bi,constants:ki};const{Inflate:vi,inflate:Ei,inflateRaw:pi,ungzip:xi}=gi;var Ri=Ei;export{Ri as i}; diff --git a/assets/pako.esm-856454b6-c5c8cd15-LlE9m97O.js b/assets/pako.esm-856454b6-c5c8cd15-LlE9m97O.js new file mode 100644 index 0000000..6236d58 --- /dev/null +++ b/assets/pako.esm-856454b6-c5c8cd15-LlE9m97O.js @@ -0,0 +1 @@ +/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */function he(e){let i=e.length;for(;--i>=0;)e[i]=0}const $i=0,ai=1,Ci=2,Mi=3,Fi=258,dt=29,Ae=256,ge=Ae+1+dt,_e=30,st=19,ni=2*ge+1,Q=15,Ge=16,Hi=7,ct=256,li=16,ri=17,oi=18,ot=new Uint8Array([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]),$e=new Uint8Array([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]),Bi=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),_i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ki=512,B=new Array((ge+2)*2);he(B);const ue=new Array(_e*2);he(ue);const pe=new Array(Ki);he(pe);const ke=new Array(Fi-Mi+1);he(ke);const ut=new Array(dt);he(ut);const He=new Array(_e);he(He);function je(e,i,t,n,a){this.static_tree=e,this.extra_bits=i,this.extra_base=t,this.elems=n,this.max_length=a,this.has_stree=e&&e.length}let hi,fi,di;function We(e,i){this.dyn_tree=e,this.max_code=0,this.stat_desc=i}const si=e=>e<256?pe[e]:pe[256+(e>>>7)],ve=(e,i)=>{e.pending_buf[e.pending++]=i&255,e.pending_buf[e.pending++]=i>>>8&255},N=(e,i,t)=>{e.bi_valid>Ge-t?(e.bi_buf|=i<>Ge-e.bi_valid,e.bi_valid+=t-Ge):(e.bi_buf|=i<{N(e,t[i*2],t[i*2+1])},ci=(e,i)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--i>0);return t>>>1},Pi=e=>{e.bi_valid===16?(ve(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},Xi=(e,i)=>{const t=i.dyn_tree,n=i.max_code,a=i.stat_desc.static_tree,l=i.stat_desc.has_stree,_=i.stat_desc.extra_bits,o=i.stat_desc.extra_base,c=i.stat_desc.max_length;let r,h,x,s,f,u,m=0;for(s=0;s<=Q;s++)e.bl_count[s]=0;for(t[e.heap[e.heap_max]*2+1]=0,r=e.heap_max+1;rc&&(s=c,m++),t[h*2+1]=s,!(h>n)&&(e.bl_count[s]++,f=0,h>=o&&(f=_[h-o]),u=t[h*2],e.opt_len+=u*(s+f),l&&(e.static_len+=u*(a[h*2+1]+f)));if(m!==0){do{for(s=c-1;e.bl_count[s]===0;)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[c]--,m-=2}while(m>0);for(s=c;s!==0;s--)for(h=e.bl_count[s];h!==0;)x=e.heap[--r],!(x>n)&&(t[x*2+1]!==s&&(e.opt_len+=(s-t[x*2+1])*t[x*2],t[x*2+1]=s),h--)}},ui=(e,i,t)=>{const n=new Array(Q+1);let a=0,l,_;for(l=1;l<=Q;l++)n[l]=a=a+t[l-1]<<1;for(_=0;_<=i;_++){let o=e[_*2+1];o!==0&&(e[_*2]=ci(n[o]++,o))}},Yi=()=>{let e,i,t,n,a;const l=new Array(Q+1);for(t=0,n=0;n>=7;n<_e;n++)for(He[n]=a<<7,e=0;e<1<<$e[n]-7;e++)pe[256+a++]=n;for(i=0;i<=Q;i++)l[i]=0;for(e=0;e<=143;)B[e*2+1]=8,e++,l[8]++;for(;e<=255;)B[e*2+1]=9,e++,l[9]++;for(;e<=279;)B[e*2+1]=7,e++,l[7]++;for(;e<=287;)B[e*2+1]=8,e++,l[8]++;for(ui(B,ge+1,l),e=0;e<_e;e++)ue[e*2+1]=5,ue[e*2]=ci(e,5);hi=new je(B,ot,Ae+1,ge,Q),fi=new je(ue,$e,0,_e,Q),di=new je(new Array(0),Bi,0,st,Hi)},bi=e=>{let i;for(i=0;i{e.bi_valid>8?ve(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Gi=(e,i,t,n)=>{wi(e),n&&(ve(e,t),ve(e,~t)),e.pending_buf.set(e.window.subarray(i,i+t),e.pending),e.pending+=t},kt=(e,i,t,n)=>{const a=i*2,l=t*2;return e[a]{const n=e.heap[t];let a=t<<1;for(;a<=e.heap_len&&(a{let n,a,l=0,_,o;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+l*2]<<8|e.pending_buf[e.d_buf+l*2+1],a=e.pending_buf[e.l_buf+l],l++,n===0?M(e,a,i):(_=ke[a],M(e,_+Ae+1,i),o=ot[_],o!==0&&(a-=ut[_],N(e,a,o)),n--,_=si(n),M(e,_,t),o=$e[_],o!==0&&(n-=He[_],N(e,n,o)));while(l{const t=i.dyn_tree,n=i.stat_desc.static_tree,a=i.stat_desc.has_stree,l=i.stat_desc.elems;let _,o,c=-1,r;for(e.heap_len=0,e.heap_max=ni,_=0;_>1;_>=1;_--)Ve(e,t,_);r=l;do _=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ve(e,t,1),o=e.heap[1],e.heap[--e.heap_max]=_,e.heap[--e.heap_max]=o,t[r*2]=t[_*2]+t[o*2],e.depth[r]=(e.depth[_]>=e.depth[o]?e.depth[_]:e.depth[o])+1,t[_*2+1]=t[o*2+1]=r,e.heap[1]=r++,Ve(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Xi(e,i),ui(t,c,e.bl_count)},Et=(e,i,t)=>{let n,a=-1,l,_=i[0*2+1],o=0,c=7,r=4;for(_===0&&(c=138,r=3),i[(t+1)*2+1]=65535,n=0;n<=t;n++)l=_,_=i[(n+1)*2+1],!(++o{let n,a=-1,l,_=i[0*2+1],o=0,c=7,r=4;for(_===0&&(c=138,r=3),n=0;n<=t;n++)if(l=_,_=i[(n+1)*2+1],!(++o{let i;for(Et(e,e.dyn_ltree,e.l_desc.max_code),Et(e,e.dyn_dtree,e.d_desc.max_code),_t(e,e.bl_desc),i=st-1;i>=3&&e.bl_tree[_i[i]*2+1]===0;i--);return e.opt_len+=3*(i+1)+5+5+4,i},Wi=(e,i,t,n)=>{let a;for(N(e,i-257,5),N(e,t-1,5),N(e,n-4,4),a=0;a{let i=4093624447,t;for(t=0;t<=31;t++,i>>>=1)if(i&1&&e.dyn_ltree[t*2]!==0)return 0;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return 1;for(t=32;t{yt||(Yi(),yt=!0),e.l_desc=new We(e.dyn_ltree,hi),e.d_desc=new We(e.dyn_dtree,fi),e.bl_desc=new We(e.bl_tree,di),e.bi_buf=0,e.bi_valid=0,bi(e)},gi=(e,i,t,n)=>{N(e,($i<<1)+(n?1:0),3),Gi(e,i,t,!0)},Qi=e=>{N(e,ai<<1,3),M(e,ct,B),Pi(e)},qi=(e,i,t,n)=>{let a,l,_=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=Vi(e)),_t(e,e.l_desc),_t(e,e.d_desc),_=ji(e),a=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=a&&(a=l)):a=l=t+5,t+4<=a&&i!==-1?gi(e,i,t,n):e.strategy===4||l===a?(N(e,(ai<<1)+(n?1:0),3),vt(e,B,ue)):(N(e,(Ci<<1)+(n?1:0),3),Wi(e,e.l_desc.max_code+1,e.d_desc.max_code+1,_+1),vt(e,e.dyn_ltree,e.dyn_dtree)),bi(e),n&&wi(e)},ea=(e,i,t)=>(e.pending_buf[e.d_buf+e.last_lit*2]=i>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=i&255,e.pending_buf[e.l_buf+e.last_lit]=t&255,e.last_lit++,i===0?e.dyn_ltree[t*2]++:(e.matches++,i--,e.dyn_ltree[(ke[t]+Ae+1)*2]++,e.dyn_dtree[si(i)*2]++),e.last_lit===e.lit_bufsize-1);var ta=Ji,ia=gi,aa=qi,na=ea,la=Qi,ra={_tr_init:ta,_tr_stored_block:ia,_tr_flush_block:aa,_tr_tally:na,_tr_align:la};const oa=(e,i,t,n)=>{let a=e&65535|0,l=e>>>16&65535|0,_=0;for(;t!==0;){_=t>2e3?2e3:t,t-=_;do a=a+i[n++]|0,l=l+a|0;while(--_);a%=65521,l%=65521}return a|l<<16|0};var Ee=oa;const _a=()=>{let e,i=[];for(var t=0;t<256;t++){e=t;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;i[t]=e}return i},ha=new Uint32Array(_a()),fa=(e,i,t,n)=>{const a=ha,l=n+t;e^=-1;for(let _=n;_>>8^a[(e^i[_])&255];return e^-1};var I=fa,ee={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ne={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:da,_tr_stored_block:sa,_tr_flush_block:ca,_tr_tally:j,_tr_align:ua}=ra,{Z_NO_FLUSH:le,Z_PARTIAL_FLUSH:ba,Z_FULL_FLUSH:wa,Z_FINISH:W,Z_BLOCK:St,Z_OK:F,Z_STREAM_END:At,Z_STREAM_ERROR:L,Z_DATA_ERROR:ga,Z_BUF_ERROR:Je,Z_DEFAULT_COMPRESSION:pa,Z_FILTERED:ka,Z_HUFFMAN_ONLY:Ie,Z_RLE:va,Z_FIXED:Ea,Z_DEFAULT_STRATEGY:xa,Z_UNKNOWN:ya,Z_DEFLATED:Pe}=ne,Sa=9,Aa=15,Ra=8,za=29,Ta=256,ht=Ta+1+za,ma=30,Da=19,Za=2*ht+1,Ia=15,v=3,Y=258,$=Y+v+1,Oa=32,Xe=42,ft=69,Ce=73,Me=91,Fe=103,q=113,se=666,D=1,Re=2,te=3,fe=4,Na=3,G=(e,i)=>(e.msg=ee[i],i),Rt=e=>(e<<1)-(e>4?9:0),X=e=>{let i=e.length;for(;--i>=0;)e[i]=0};let La=(e,i,t)=>(i<{const i=e.state;let t=i.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.output.set(i.pending_buf.subarray(i.pending_out,i.pending_out+t),e.next_out),e.next_out+=t,i.pending_out+=t,e.total_out+=t,e.avail_out-=t,i.pending-=t,i.pending===0&&(i.pending_out=0))},O=(e,i)=>{ca(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,i),e.block_start=e.strstart,P(e.strm)},y=(e,i)=>{e.pending_buf[e.pending++]=i},de=(e,i)=>{e.pending_buf[e.pending++]=i>>>8&255,e.pending_buf[e.pending++]=i&255},Ua=(e,i,t,n)=>{let a=e.avail_in;return a>n&&(a=n),a===0?0:(e.avail_in-=a,i.set(e.input.subarray(e.next_in,e.next_in+a),t),e.state.wrap===1?e.adler=Ee(e.adler,i,a,t):e.state.wrap===2&&(e.adler=I(e.adler,i,a,t)),e.next_in+=a,e.total_in+=a,a)},pi=(e,i)=>{let t=e.max_chain_length,n=e.strstart,a,l,_=e.prev_length,o=e.nice_match;const c=e.strstart>e.w_size-$?e.strstart-(e.w_size-$):0,r=e.window,h=e.w_mask,x=e.prev,s=e.strstart+Y;let f=r[n+_-1],u=r[n+_];e.prev_length>=e.good_match&&(t>>=2),o>e.lookahead&&(o=e.lookahead);do if(a=i,!(r[a+_]!==u||r[a+_-1]!==f||r[a]!==r[n]||r[++a]!==r[n+1])){n+=2,a++;do;while(r[++n]===r[++a]&&r[++n]===r[++a]&&r[++n]===r[++a]&&r[++n]===r[++a]&&r[++n]===r[++a]&&r[++n]===r[++a]&&r[++n]===r[++a]&&r[++n]===r[++a]&&n_){if(e.match_start=i,_=l,l>=o)break;f=r[n+_-1],u=r[n+_]}}while((i=x[i&h])>c&&--t!==0);return _<=e.lookahead?_:e.lookahead},ie=e=>{const i=e.w_size;let t,n,a,l,_;do{if(l=e.window_size-e.lookahead-e.strstart,e.strstart>=i+(i-$)){e.window.set(e.window.subarray(i,i+i),0),e.match_start-=i,e.strstart-=i,e.block_start-=i,n=e.hash_size,t=n;do a=e.head[--t],e.head[t]=a>=i?a-i:0;while(--n);n=i,t=n;do a=e.prev[--t],e.prev[t]=a>=i?a-i:0;while(--n);l+=i}if(e.strm.avail_in===0)break;if(n=Ua(e.strm,e.window,e.strstart+e.lookahead,l),e.lookahead+=n,e.lookahead+e.insert>=v)for(_=e.strstart-e.insert,e.ins_h=e.window[_],e.ins_h=V(e,e.ins_h,e.window[_+1]);e.insert&&(e.ins_h=V(e,e.ins_h,e.window[_+v-1]),e.prev[_&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=_,_++,e.insert--,!(e.lookahead+e.insert{let t=65535;for(t>e.pending_buf_size-5&&(t=e.pending_buf_size-5);;){if(e.lookahead<=1){if(ie(e),e.lookahead===0&&i===le)return D;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+t;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,O(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-$&&(O(e,!1),e.strm.avail_out===0))return D}return e.insert=0,i===W?(O(e,!0),e.strm.avail_out===0?te:fe):(e.strstart>e.block_start&&(O(e,!1),e.strm.avail_out===0),D)},Qe=(e,i)=>{let t,n;for(;;){if(e.lookahead<$){if(ie(e),e.lookahead<$&&i===le)return D;if(e.lookahead===0)break}if(t=0,e.lookahead>=v&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+v-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),t!==0&&e.strstart-t<=e.w_size-$&&(e.match_length=pi(e,t)),e.match_length>=v)if(n=j(e,e.strstart-e.match_start,e.match_length-v),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=v){e.match_length--;do e.strstart++,e.ins_h=V(e,e.ins_h,e.window[e.strstart+v-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=V(e,e.ins_h,e.window[e.strstart+1]);else n=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(O(e,!1),e.strm.avail_out===0))return D}return e.insert=e.strstart{let t,n,a;for(;;){if(e.lookahead<$){if(ie(e),e.lookahead<$&&i===le)return D;if(e.lookahead===0)break}if(t=0,e.lookahead>=v&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+v-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=v-1,t!==0&&e.prev_length4096)&&(e.match_length=v-1)),e.prev_length>=v&&e.match_length<=e.prev_length){a=e.strstart+e.lookahead-v,n=j(e,e.strstart-1-e.prev_match,e.prev_length-v),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=a&&(e.ins_h=V(e,e.ins_h,e.window[e.strstart+v-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=v-1,e.strstart++,n&&(O(e,!1),e.strm.avail_out===0))return D}else if(e.match_available){if(n=j(e,0,e.window[e.strstart-1]),n&&O(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return D}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=j(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart{let t,n,a,l;const _=e.window;for(;;){if(e.lookahead<=Y){if(ie(e),e.lookahead<=Y&&i===le)return D;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=v&&e.strstart>0&&(a=e.strstart-1,n=_[a],n===_[++a]&&n===_[++a]&&n===_[++a])){l=e.strstart+Y;do;while(n===_[++a]&&n===_[++a]&&n===_[++a]&&n===_[++a]&&n===_[++a]&&n===_[++a]&&n===_[++a]&&n===_[++a]&&ae.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=v?(t=j(e,1,e.match_length-v),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(O(e,!1),e.strm.avail_out===0))return D}return e.insert=0,i===W?(O(e,!0),e.strm.avail_out===0?te:fe):e.last_lit&&(O(e,!1),e.strm.avail_out===0)?D:Re},Ma=(e,i)=>{let t;for(;;){if(e.lookahead===0&&(ie(e),e.lookahead===0)){if(i===le)return D;break}if(e.match_length=0,t=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(O(e,!1),e.strm.avail_out===0))return D}return e.insert=0,i===W?(O(e,!0),e.strm.avail_out===0?te:fe):e.last_lit&&(O(e,!1),e.strm.avail_out===0)?D:Re};function C(e,i,t,n,a){this.good_length=e,this.max_lazy=i,this.nice_length=t,this.max_chain=n,this.func=a}const ce=[new C(0,0,0,0,$a),new C(4,4,8,4,Qe),new C(4,5,16,8,Qe),new C(4,6,32,32,Qe),new C(4,4,16,16,re),new C(8,16,32,32,re),new C(8,16,128,128,re),new C(8,32,128,256,re),new C(32,128,258,1024,re),new C(32,258,258,4096,re)],Fa=e=>{e.window_size=2*e.w_size,X(e.head),e.max_lazy_match=ce[e.level].max_lazy,e.good_match=ce[e.level].good_length,e.nice_match=ce[e.level].nice_length,e.max_chain_length=ce[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=v-1,e.match_available=0,e.ins_h=0};function Ha(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Pe,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Za*2),this.dyn_dtree=new Uint16Array((2*ma+1)*2),this.bl_tree=new Uint16Array((2*Da+1)*2),X(this.dyn_ltree),X(this.dyn_dtree),X(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Ia+1),this.heap=new Uint16Array(2*ht+1),X(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*ht+1),X(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ki=e=>{if(!e||!e.state)return G(e,L);e.total_in=e.total_out=0,e.data_type=ya;const i=e.state;return i.pending=0,i.pending_out=0,i.wrap<0&&(i.wrap=-i.wrap),i.status=i.wrap?Xe:q,e.adler=i.wrap===2?0:1,i.last_flush=le,da(i),F},vi=e=>{const i=ki(e);return i===F&&Fa(e.state),i},Ba=(e,i)=>!e||!e.state||e.state.wrap!==2?L:(e.state.gzhead=i,F),Ei=(e,i,t,n,a,l)=>{if(!e)return L;let _=1;if(i===pa&&(i=6),n<0?(_=0,n=-n):n>15&&(_=2,n-=16),a<1||a>Sa||t!==Pe||n<8||n>15||i<0||i>9||l<0||l>Ea)return G(e,L);n===8&&(n=9);const o=new Ha;return e.state=o,o.strm=e,o.wrap=_,o.gzhead=null,o.w_bits=n,o.w_size=1<Ei(e,i,Pe,Aa,Ra,xa),Pa=(e,i)=>{let t,n;if(!e||!e.state||i>St||i<0)return e?G(e,L):L;const a=e.state;if(!e.output||!e.input&&e.avail_in!==0||a.status===se&&i!==W)return G(e,e.avail_out===0?Je:L);a.strm=e;const l=a.last_flush;if(a.last_flush=i,a.status===Xe)if(a.wrap===2)e.adler=0,y(a,31),y(a,139),y(a,8),a.gzhead?(y(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),y(a,a.gzhead.time&255),y(a,a.gzhead.time>>8&255),y(a,a.gzhead.time>>16&255),y(a,a.gzhead.time>>24&255),y(a,a.level===9?2:a.strategy>=Ie||a.level<2?4:0),y(a,a.gzhead.os&255),a.gzhead.extra&&a.gzhead.extra.length&&(y(a,a.gzhead.extra.length&255),y(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=I(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=ft):(y(a,0),y(a,0),y(a,0),y(a,0),y(a,0),y(a,a.level===9?2:a.strategy>=Ie||a.level<2?4:0),y(a,Na),a.status=q);else{let _=Pe+(a.w_bits-8<<4)<<8,o=-1;a.strategy>=Ie||a.level<2?o=0:a.level<6?o=1:a.level===6?o=2:o=3,_|=o<<6,a.strstart!==0&&(_|=Oa),_+=31-_%31,a.status=q,de(a,_),a.strstart!==0&&(de(a,e.adler>>>16),de(a,e.adler&65535)),e.adler=1}if(a.status===ft)if(a.gzhead.extra){for(t=a.pending;a.gzindex<(a.gzhead.extra.length&65535)&&!(a.pending===a.pending_buf_size&&(a.gzhead.hcrc&&a.pending>t&&(e.adler=I(e.adler,a.pending_buf,a.pending-t,t)),P(e),t=a.pending,a.pending===a.pending_buf_size));)y(a,a.gzhead.extra[a.gzindex]&255),a.gzindex++;a.gzhead.hcrc&&a.pending>t&&(e.adler=I(e.adler,a.pending_buf,a.pending-t,t)),a.gzindex===a.gzhead.extra.length&&(a.gzindex=0,a.status=Ce)}else a.status=Ce;if(a.status===Ce)if(a.gzhead.name){t=a.pending;do{if(a.pending===a.pending_buf_size&&(a.gzhead.hcrc&&a.pending>t&&(e.adler=I(e.adler,a.pending_buf,a.pending-t,t)),P(e),t=a.pending,a.pending===a.pending_buf_size)){n=1;break}a.gzindext&&(e.adler=I(e.adler,a.pending_buf,a.pending-t,t)),n===0&&(a.gzindex=0,a.status=Me)}else a.status=Me;if(a.status===Me)if(a.gzhead.comment){t=a.pending;do{if(a.pending===a.pending_buf_size&&(a.gzhead.hcrc&&a.pending>t&&(e.adler=I(e.adler,a.pending_buf,a.pending-t,t)),P(e),t=a.pending,a.pending===a.pending_buf_size)){n=1;break}a.gzindext&&(e.adler=I(e.adler,a.pending_buf,a.pending-t,t)),n===0&&(a.status=Fe)}else a.status=Fe;if(a.status===Fe&&(a.gzhead.hcrc?(a.pending+2>a.pending_buf_size&&P(e),a.pending+2<=a.pending_buf_size&&(y(a,e.adler&255),y(a,e.adler>>8&255),e.adler=0,a.status=q)):a.status=q),a.pending!==0){if(P(e),e.avail_out===0)return a.last_flush=-1,F}else if(e.avail_in===0&&Rt(i)<=Rt(l)&&i!==W)return G(e,Je);if(a.status===se&&e.avail_in!==0)return G(e,Je);if(e.avail_in!==0||a.lookahead!==0||i!==le&&a.status!==se){let _=a.strategy===Ie?Ma(a,i):a.strategy===va?Ca(a,i):ce[a.level].func(a,i);if((_===te||_===fe)&&(a.status=se),_===D||_===te)return e.avail_out===0&&(a.last_flush=-1),F;if(_===Re&&(i===ba?ua(a):i!==St&&(sa(a,0,0,!1),i===wa&&(X(a.head),a.lookahead===0&&(a.strstart=0,a.block_start=0,a.insert=0))),P(e),e.avail_out===0))return a.last_flush=-1,F}return i!==W?F:a.wrap<=0?At:(a.wrap===2?(y(a,e.adler&255),y(a,e.adler>>8&255),y(a,e.adler>>16&255),y(a,e.adler>>24&255),y(a,e.total_in&255),y(a,e.total_in>>8&255),y(a,e.total_in>>16&255),y(a,e.total_in>>24&255)):(de(a,e.adler>>>16),de(a,e.adler&65535)),P(e),a.wrap>0&&(a.wrap=-a.wrap),a.pending!==0?F:At)},Xa=e=>{if(!e||!e.state)return L;const i=e.state.status;return i!==Xe&&i!==ft&&i!==Ce&&i!==Me&&i!==Fe&&i!==q&&i!==se?G(e,L):(e.state=null,i===q?G(e,ga):F)},Ya=(e,i)=>{let t=i.length;if(!e||!e.state)return L;const n=e.state,a=n.wrap;if(a===2||a===1&&n.status!==Xe||n.lookahead)return L;if(a===1&&(e.adler=Ee(e.adler,i,t,0)),n.wrap=0,t>=n.w_size){a===0&&(X(n.head),n.strstart=0,n.block_start=0,n.insert=0);let c=new Uint8Array(n.w_size);c.set(i.subarray(t-n.w_size,t),0),i=c,t=n.w_size}const l=e.avail_in,_=e.next_in,o=e.input;for(e.avail_in=t,e.next_in=0,e.input=i,ie(n);n.lookahead>=v;){let c=n.strstart,r=n.lookahead-(v-1);do n.ins_h=V(n,n.ins_h,n.window[c+v-1]),n.prev[c&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=c,c++;while(--r);n.strstart=c,n.lookahead=v-1,ie(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=v-1,n.match_available=0,e.next_in=_,e.input=o,e.avail_in=l,n.wrap=a,F};var Ga=Ka,ja=Ei,Wa=vi,Va=ki,Ja=Ba,Qa=Pa,qa=Xa,en=Ya,tn="pako deflate (from Nodeca project)",be={deflateInit:Ga,deflateInit2:ja,deflateReset:Wa,deflateResetKeep:Va,deflateSetHeader:Ja,deflate:Qa,deflateEnd:qa,deflateSetDictionary:en,deflateInfo:tn};const an=(e,i)=>Object.prototype.hasOwnProperty.call(e,i);var nn=function(e){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const t=i.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const n in t)an(t,n)&&(e[n]=t[n])}}return e},ln=e=>{let i=0;for(let n=0,a=e.length;n=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;xe[254]=xe[254]=1;var rn=e=>{let i,t,n,a,l,_=e.length,o=0;for(a=0;a<_;a++)t=e.charCodeAt(a),(t&64512)===55296&&a+1<_&&(n=e.charCodeAt(a+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),a++)),o+=t<128?1:t<2048?2:t<65536?3:4;for(i=new Uint8Array(o),l=0,a=0;l>>6,i[l++]=128|t&63):t<65536?(i[l++]=224|t>>>12,i[l++]=128|t>>>6&63,i[l++]=128|t&63):(i[l++]=240|t>>>18,i[l++]=128|t>>>12&63,i[l++]=128|t>>>6&63,i[l++]=128|t&63);return i};const on=(e,i)=>{if(i<65534&&e.subarray&&xi)return String.fromCharCode.apply(null,e.length===i?e:e.subarray(0,i));let t="";for(let n=0;n{let t,n;const a=i||e.length,l=new Array(a*2);for(n=0,t=0;t4){l[n++]=65533,t+=o-1;continue}for(_&=o===2?31:o===3?15:7;o>1&&t1){l[n++]=65533;continue}_<65536?l[n++]=_:(_-=65536,l[n++]=55296|_>>10&1023,l[n++]=56320|_&1023)}return on(l,n)},hn=(e,i)=>{i=i||e.length,i>e.length&&(i=e.length);let t=i-1;for(;t>=0&&(e[t]&192)===128;)t--;return t<0||t===0?i:t+xe[e[t]]>i?t:i},ye={string2buf:rn,buf2string:_n,utf8border:hn};function fn(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var yi=fn;const Si=Object.prototype.toString,{Z_NO_FLUSH:dn,Z_SYNC_FLUSH:sn,Z_FULL_FLUSH:cn,Z_FINISH:un,Z_OK:Be,Z_STREAM_END:bn,Z_DEFAULT_COMPRESSION:wn,Z_DEFAULT_STRATEGY:gn,Z_DEFLATED:pn}=ne;function ze(e){this.options=Ye.assign({level:wn,method:pn,chunkSize:16384,windowBits:15,memLevel:8,strategy:gn},e||{});let i=this.options;i.raw&&i.windowBits>0?i.windowBits=-i.windowBits:i.gzip&&i.windowBits>0&&i.windowBits<16&&(i.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new yi,this.strm.avail_out=0;let t=be.deflateInit2(this.strm,i.level,i.method,i.windowBits,i.memLevel,i.strategy);if(t!==Be)throw new Error(ee[t]);if(i.header&&be.deflateSetHeader(this.strm,i.header),i.dictionary){let n;if(typeof i.dictionary=="string"?n=ye.string2buf(i.dictionary):Si.call(i.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(i.dictionary):n=i.dictionary,t=be.deflateSetDictionary(this.strm,n),t!==Be)throw new Error(ee[t]);this._dict_set=!0}}ze.prototype.push=function(e,i){const t=this.strm,n=this.options.chunkSize;let a,l;if(this.ended)return!1;for(i===~~i?l=i:l=i===!0?un:dn,typeof e=="string"?t.input=ye.string2buf(e):Si.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(l===sn||l===cn)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(a=be.deflate(t,l),a===bn)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),a=be.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===Be;if(t.avail_out===0){this.onData(t.output);continue}if(l>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};ze.prototype.onData=function(e){this.chunks.push(e)};ze.prototype.onEnd=function(e){e===Be&&(this.result=Ye.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function bt(e,i){const t=new ze(i);if(t.push(e,!0),t.err)throw t.msg||ee[t.err];return t.result}function kn(e,i){return i=i||{},i.raw=!0,bt(e,i)}function vn(e,i){return i=i||{},i.gzip=!0,bt(e,i)}var En=ze,xn=bt,yn=kn,Sn=vn,An=ne,Rn={Deflate:En,deflate:xn,deflateRaw:yn,gzip:Sn,constants:An};const Oe=30,zn=12;var Tn=function(i,t){let n,a,l,_,o,c,r,h,x,s,f,u,m,E,w,A,k,d,S,Z,b,z,R,g;const p=i.state;n=i.next_in,R=i.input,a=n+(i.avail_in-5),l=i.next_out,g=i.output,_=l-(t-i.avail_out),o=l+(i.avail_out-257),c=p.dmax,r=p.wsize,h=p.whave,x=p.wnext,s=p.window,f=p.hold,u=p.bits,m=p.lencode,E=p.distcode,w=(1<>>24,f>>>=d,u-=d,d=k>>>16&255,d===0)g[l++]=k&65535;else if(d&16){S=k&65535,d&=15,d&&(u>>=d,u-=d),u<15&&(f+=R[n++]<>>24,f>>>=d,u-=d,d=k>>>16&255,d&16){if(Z=k&65535,d&=15,uc){i.msg="invalid distance too far back",p.mode=Oe;break e}if(f>>>=d,u-=d,d=l-_,Z>d){if(d=Z-d,d>h&&p.sane){i.msg="invalid distance too far back",p.mode=Oe;break e}if(b=0,z=s,x===0){if(b+=r-d,d2;)g[l++]=z[b++],g[l++]=z[b++],g[l++]=z[b++],S-=3;S&&(g[l++]=z[b++],S>1&&(g[l++]=z[b++]))}else{b=l-Z;do g[l++]=g[b++],g[l++]=g[b++],g[l++]=g[b++],S-=3;while(S>2);S&&(g[l++]=g[b++],S>1&&(g[l++]=g[b++]))}}else if(d&64){i.msg="invalid distance code",p.mode=Oe;break e}else{k=E[(k&65535)+(f&(1<>3,n-=S,u-=S<<3,f&=(1<{const c=o.bits;let r=0,h=0,x=0,s=0,f=0,u=0,m=0,E=0,w=0,A=0,k,d,S,Z,b,z=null,R=0,g;const p=new Uint16Array(oe+1),J=new Uint16Array(oe+1);let me=null,gt=0,pt,De,Ze;for(r=0;r<=oe;r++)p[r]=0;for(h=0;h=1&&p[s]===0;s--);if(f>s&&(f=s),s===0)return a[l++]=1<<24|64<<16|0,a[l++]=1<<24|64<<16|0,o.bits=1,0;for(x=1;x0&&(e===mt||s!==1))return-1;for(J[1]=0,r=1;rzt||e===Dt&&w>Tt)return 1;for(;;){pt=r-m,_[h]g?(De=me[gt+_[h]],Ze=z[R+_[h]]):(De=96,Ze=0),k=1<>m)+d]=pt<<24|De<<16|Ze|0;while(d!==0);for(k=1<>=1;if(k!==0?(A&=k-1,A+=k):A=0,h++,--p[r]===0){if(r===s)break;r=i[t+_[h]]}if(r>f&&(A&Z)!==S){for(m===0&&(m=f),b+=x,u=r-m,E=1<zt||e===Dt&&w>Tt)return 1;S=A&Z,a[S]=f<<24|u<<16|b-l|0}}return A!==0&&(a[b+A]=r-m<<24|64<<16|0),o.bits=f,0};var we=On;const Nn=0,Ai=1,Ri=2,{Z_FINISH:Zt,Z_BLOCK:Ln,Z_TREES:Ne,Z_OK:ae,Z_STREAM_END:Un,Z_NEED_DICT:$n,Z_STREAM_ERROR:U,Z_DATA_ERROR:zi,Z_MEM_ERROR:Ti,Z_BUF_ERROR:Cn,Z_DEFLATED:It}=ne,mi=1,Ot=2,Nt=3,Lt=4,Ut=5,$t=6,Ct=7,Mt=8,Ft=9,Ht=10,Ke=11,H=12,et=13,Bt=14,tt=15,Kt=16,Pt=17,Xt=18,Yt=19,Le=20,Ue=21,Gt=22,jt=23,Wt=24,Vt=25,Jt=26,it=27,Qt=28,qt=29,T=30,Di=31,Mn=32,Fn=852,Hn=592,Bn=15,Kn=Bn,ei=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function Pn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Zi=e=>{if(!e||!e.state)return U;const i=e.state;return e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=i.wrap&1),i.mode=mi,i.last=0,i.havedict=0,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(Fn),i.distcode=i.distdyn=new Int32Array(Hn),i.sane=1,i.back=-1,ae},Ii=e=>{if(!e||!e.state)return U;const i=e.state;return i.wsize=0,i.whave=0,i.wnext=0,Zi(e)},Oi=(e,i)=>{let t;if(!e||!e.state)return U;const n=e.state;return i<0?(t=0,i=-i):(t=(i>>4)+1,i<48&&(i&=15)),i&&(i<8||i>15)?U:(n.window!==null&&n.wbits!==i&&(n.window=null),n.wrap=t,n.wbits=i,Ii(e))},Ni=(e,i)=>{if(!e)return U;const t=new Pn;e.state=t,t.window=null;const n=Oi(e,i);return n!==ae&&(e.state=null),n},Xn=e=>Ni(e,Kn);let ti=!0,at,nt;const Yn=e=>{if(ti){at=new Int32Array(512),nt=new Int32Array(32);let i=0;for(;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for(we(Ai,e.lens,0,288,at,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;we(Ri,e.lens,0,32,nt,0,e.work,{bits:5}),ti=!1}e.lencode=at,e.lenbits=9,e.distcode=nt,e.distbits=5},Li=(e,i,t,n)=>{let a;const l=e.state;return l.window===null&&(l.wsize=1<=l.wsize?(l.window.set(i.subarray(t-l.wsize,t),0),l.wnext=0,l.whave=l.wsize):(a=l.wsize-l.wnext,a>n&&(a=n),l.window.set(i.subarray(t-n,t-n+a),l.wnext),n-=a,n?(l.window.set(i.subarray(t-n,t),0),l.wnext=n,l.whave=l.wsize):(l.wnext+=a,l.wnext===l.wsize&&(l.wnext=0),l.whave{let t,n,a,l,_,o,c,r,h,x,s,f,u,m,E=0,w,A,k,d,S,Z,b,z;const R=new Uint8Array(4);let g,p;const J=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return U;t=e.state,t.mode===H&&(t.mode=et),_=e.next_out,a=e.output,c=e.avail_out,l=e.next_in,n=e.input,o=e.avail_in,r=t.hold,h=t.bits,x=o,s=c,z=ae;e:for(;;)switch(t.mode){case mi:if(t.wrap===0){t.mode=et;break}for(;h<16;){if(o===0)break e;o--,r+=n[l++]<>>8&255,t.check=I(t.check,R,2,0),r=0,h=0,t.mode=Ot;break}if(t.flags=0,t.head&&(t.head.done=!1),!(t.wrap&1)||(((r&255)<<8)+(r>>8))%31){e.msg="incorrect header check",t.mode=T;break}if((r&15)!==It){e.msg="unknown compression method",t.mode=T;break}if(r>>>=4,h-=4,b=(r&15)+8,t.wbits===0)t.wbits=b;else if(b>t.wbits){e.msg="invalid window size",t.mode=T;break}t.dmax=1<>8&1),t.flags&512&&(R[0]=r&255,R[1]=r>>>8&255,t.check=I(t.check,R,2,0)),r=0,h=0,t.mode=Nt;case Nt:for(;h<32;){if(o===0)break e;o--,r+=n[l++]<>>8&255,R[2]=r>>>16&255,R[3]=r>>>24&255,t.check=I(t.check,R,4,0)),r=0,h=0,t.mode=Lt;case Lt:for(;h<16;){if(o===0)break e;o--,r+=n[l++]<>8),t.flags&512&&(R[0]=r&255,R[1]=r>>>8&255,t.check=I(t.check,R,2,0)),r=0,h=0,t.mode=Ut;case Ut:if(t.flags&1024){for(;h<16;){if(o===0)break e;o--,r+=n[l++]<>>8&255,t.check=I(t.check,R,2,0)),r=0,h=0}else t.head&&(t.head.extra=null);t.mode=$t;case $t:if(t.flags&1024&&(f=t.length,f>o&&(f=o),f&&(t.head&&(b=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(l,l+f),b)),t.flags&512&&(t.check=I(t.check,n,f,l)),o-=f,l+=f,t.length-=f),t.length))break e;t.length=0,t.mode=Ct;case Ct:if(t.flags&2048){if(o===0)break e;f=0;do b=n[l+f++],t.head&&b&&t.length<65536&&(t.head.name+=String.fromCharCode(b));while(b&&f>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=H;break;case Ht:for(;h<32;){if(o===0)break e;o--,r+=n[l++]<>>=h&7,h-=h&7,t.mode=it;break}for(;h<3;){if(o===0)break e;o--,r+=n[l++]<>>=1,h-=1,r&3){case 0:t.mode=Bt;break;case 1:if(Yn(t),t.mode=Le,i===Ne){r>>>=2,h-=2;break e}break;case 2:t.mode=Pt;break;case 3:e.msg="invalid block type",t.mode=T}r>>>=2,h-=2;break;case Bt:for(r>>>=h&7,h-=h&7;h<32;){if(o===0)break e;o--,r+=n[l++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=T;break}if(t.length=r&65535,r=0,h=0,t.mode=tt,i===Ne)break e;case tt:t.mode=Kt;case Kt:if(f=t.length,f){if(f>o&&(f=o),f>c&&(f=c),f===0)break e;a.set(n.subarray(l,l+f),_),o-=f,l+=f,c-=f,_+=f,t.length-=f;break}t.mode=H;break;case Pt:for(;h<14;){if(o===0)break e;o--,r+=n[l++]<>>=5,h-=5,t.ndist=(r&31)+1,r>>>=5,h-=5,t.ncode=(r&15)+4,r>>>=4,h-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=T;break}t.have=0,t.mode=Xt;case Xt:for(;t.have>>=3,h-=3}for(;t.have<19;)t.lens[J[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,g={bits:t.lenbits},z=we(Nn,t.lens,0,19,t.lencode,0,t.work,g),t.lenbits=g.bits,z){e.msg="invalid code lengths set",t.mode=T;break}t.have=0,t.mode=Yt;case Yt:for(;t.have>>24,A=E>>>16&255,k=E&65535,!(w<=h);){if(o===0)break e;o--,r+=n[l++]<>>=w,h-=w,t.lens[t.have++]=k;else{if(k===16){for(p=w+2;h>>=w,h-=w,t.have===0){e.msg="invalid bit length repeat",t.mode=T;break}b=t.lens[t.have-1],f=3+(r&3),r>>>=2,h-=2}else if(k===17){for(p=w+3;h>>=w,h-=w,b=0,f=3+(r&7),r>>>=3,h-=3}else{for(p=w+7;h>>=w,h-=w,b=0,f=11+(r&127),r>>>=7,h-=7}if(t.have+f>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=T;break}for(;f--;)t.lens[t.have++]=b}}if(t.mode===T)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=T;break}if(t.lenbits=9,g={bits:t.lenbits},z=we(Ai,t.lens,0,t.nlen,t.lencode,0,t.work,g),t.lenbits=g.bits,z){e.msg="invalid literal/lengths set",t.mode=T;break}if(t.distbits=6,t.distcode=t.distdyn,g={bits:t.distbits},z=we(Ri,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,g),t.distbits=g.bits,z){e.msg="invalid distances set",t.mode=T;break}if(t.mode=Le,i===Ne)break e;case Le:t.mode=Ue;case Ue:if(o>=6&&c>=258){e.next_out=_,e.avail_out=c,e.next_in=l,e.avail_in=o,t.hold=r,t.bits=h,Tn(e,s),_=e.next_out,a=e.output,c=e.avail_out,l=e.next_in,n=e.input,o=e.avail_in,r=t.hold,h=t.bits,t.mode===H&&(t.back=-1);break}for(t.back=0;E=t.lencode[r&(1<>>24,A=E>>>16&255,k=E&65535,!(w<=h);){if(o===0)break e;o--,r+=n[l++]<>d)],w=E>>>24,A=E>>>16&255,k=E&65535,!(d+w<=h);){if(o===0)break e;o--,r+=n[l++]<>>=d,h-=d,t.back+=d}if(r>>>=w,h-=w,t.back+=w,t.length=k,A===0){t.mode=Jt;break}if(A&32){t.back=-1,t.mode=H;break}if(A&64){e.msg="invalid literal/length code",t.mode=T;break}t.extra=A&15,t.mode=Gt;case Gt:if(t.extra){for(p=t.extra;h>>=t.extra,h-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=jt;case jt:for(;E=t.distcode[r&(1<>>24,A=E>>>16&255,k=E&65535,!(w<=h);){if(o===0)break e;o--,r+=n[l++]<>d)],w=E>>>24,A=E>>>16&255,k=E&65535,!(d+w<=h);){if(o===0)break e;o--,r+=n[l++]<>>=d,h-=d,t.back+=d}if(r>>>=w,h-=w,t.back+=w,A&64){e.msg="invalid distance code",t.mode=T;break}t.offset=k,t.extra=A&15,t.mode=Wt;case Wt:if(t.extra){for(p=t.extra;h>>=t.extra,h-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=T;break}t.mode=Vt;case Vt:if(c===0)break e;if(f=s-c,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=T;break}f>t.wnext?(f-=t.wnext,u=t.wsize-f):u=t.wnext-f,f>t.length&&(f=t.length),m=t.window}else m=a,u=_-t.offset,f=t.length;f>c&&(f=c),c-=f,t.length-=f;do a[_++]=m[u++];while(--f);t.length===0&&(t.mode=Ue);break;case Jt:if(c===0)break e;a[_++]=t.length,c--,t.mode=Ue;break;case it:if(t.wrap){for(;h<32;){if(o===0)break e;o--,r|=n[l++]<{if(!e||!e.state)return U;let i=e.state;return i.window&&(i.window=null),e.state=null,ae},Wn=(e,i)=>{if(!e||!e.state)return U;const t=e.state;return t.wrap&2?(t.head=i,i.done=!1,ae):U},Vn=(e,i)=>{const t=i.length;let n,a,l;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==Ke)?U:n.mode===Ke&&(a=1,a=Ee(a,i,t,0),a!==n.check)?zi:(l=Li(e,i,t,t),l?(n.mode=Di,Ti):(n.havedict=1,ae))};var Jn=Ii,Qn=Oi,qn=Zi,el=Xn,tl=Ni,il=Gn,al=jn,nl=Wn,ll=Vn,rl="pako inflate (from Nodeca project)",K={inflateReset:Jn,inflateReset2:Qn,inflateResetKeep:qn,inflateInit:el,inflateInit2:tl,inflate:il,inflateEnd:al,inflateGetHeader:nl,inflateSetDictionary:ll,inflateInfo:rl};function ol(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var _l=ol;const Ui=Object.prototype.toString,{Z_NO_FLUSH:hl,Z_FINISH:fl,Z_OK:Se,Z_STREAM_END:lt,Z_NEED_DICT:rt,Z_STREAM_ERROR:dl,Z_DATA_ERROR:ii,Z_MEM_ERROR:sl}=ne;function Te(e){this.options=Ye.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),i.windowBits>=0&&i.windowBits<16&&!(e&&e.windowBits)&&(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&(i.windowBits&15||(i.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new yi,this.strm.avail_out=0;let t=K.inflateInit2(this.strm,i.windowBits);if(t!==Se)throw new Error(ee[t]);if(this.header=new _l,K.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=ye.string2buf(i.dictionary):Ui.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(t=K.inflateSetDictionary(this.strm,i.dictionary),t!==Se)))throw new Error(ee[t])}Te.prototype.push=function(e,i){const t=this.strm,n=this.options.chunkSize,a=this.options.dictionary;let l,_,o;if(this.ended)return!1;for(i===~~i?_=i:_=i===!0?fl:hl,Ui.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),l=K.inflate(t,_),l===rt&&a&&(l=K.inflateSetDictionary(t,a),l===Se?l=K.inflate(t,_):l===ii&&(l=rt));t.avail_in>0&&l===lt&&t.state.wrap>0&&e[t.next_in]!==0;)K.inflateReset(t),l=K.inflate(t,_);switch(l){case dl:case ii:case rt:case sl:return this.onEnd(l),this.ended=!0,!1}if(o=t.avail_out,t.next_out&&(t.avail_out===0||l===lt))if(this.options.to==="string"){let c=ye.utf8border(t.output,t.next_out),r=t.next_out-c,h=ye.buf2string(t.output,c);t.next_out=r,t.avail_out=n-r,r&&t.output.set(t.output.subarray(c,c+r),0),this.onData(h)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(l===Se&&o===0)){if(l===lt)return l=K.inflateEnd(this.strm),this.onEnd(l),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};Te.prototype.onData=function(e){this.chunks.push(e)};Te.prototype.onEnd=function(e){e===Se&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ye.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function wt(e,i){const t=new Te(i);if(t.push(e),t.err)throw t.msg||ee[t.err];return t.result}function cl(e,i){return i=i||{},i.raw=!0,wt(e,i)}var ul=Te,bl=wt,wl=cl,gl=wt,pl=ne,kl={Inflate:ul,inflate:bl,inflateRaw:wl,ungzip:gl,constants:pl};const{Deflate:vl,deflate:El,deflateRaw:xl,gzip:yl}=Rn,{Inflate:Sl,inflate:Al,inflateRaw:Rl,ungzip:zl}=kl;var Tl=vl,ml=El,Dl=xl,Zl=yl,Il=Sl,Ol=Al,Nl=Rl,Ll=zl,Ul=ne,$l={Deflate:Tl,deflate:ml,deflateRaw:Dl,gzip:Zl,Inflate:Il,inflate:Ol,inflateRaw:Nl,ungzip:Ll,constants:Ul};export{$l as p}; diff --git a/assets/raw-f349901d-whtBA5Mu.js b/assets/raw-f349901d-whtBA5Mu.js new file mode 100644 index 0000000..1a14648 --- /dev/null +++ b/assets/raw-f349901d-whtBA5Mu.js @@ -0,0 +1 @@ +import{B as o}from"./index-3h9IID_q.js";class d extends o{decodeBlock(e){return e}}export{d as default}; diff --git a/assets/webimage-89dafa8c-tJ_h1vk0.js b/assets/webimage-89dafa8c-tJ_h1vk0.js new file mode 100644 index 0000000..8ea4917 --- /dev/null +++ b/assets/webimage-89dafa8c-tJ_h1vk0.js @@ -0,0 +1 @@ +import{B as r}from"./index-3h9IID_q.js";class s extends r{constructor(){if(super(),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(i,n){const o=new Blob([n]),e=await createImageBitmap(o);let t;typeof document<"u"?(t=document.createElement("canvas"),t.width=e.width,t.height=e.height):t=new OffscreenCanvas(e.width,e.height);const a=t.getContext("2d");return a.drawImage(e,0,0),a.getImageData(0,0,e.width,e.height).data.buffer}}export{s as default}; diff --git a/assets/zlib-cd823c38-UG7B4fyc.js b/assets/zlib-cd823c38-UG7B4fyc.js new file mode 100644 index 0000000..421cfa0 --- /dev/null +++ b/assets/zlib-cd823c38-UG7B4fyc.js @@ -0,0 +1 @@ +import{p as n}from"./pako.esm-856454b6-c5c8cd15-LlE9m97O.js";var t;const s=(t=class{constructor(e=1){if(e<-1||e>9)throw new Error("Invalid zlib compression level, it should be between -1 and 9");this.level=e}static fromConfig({level:e}){return new t(e)}encode(e){return n.deflate(e,{level:this.level})}decode(e,r){const o=n.inflate(e);return r!==void 0?(r.set(o),r):o}},t.codecId="zlib",t);export{s as default}; diff --git a/assets/zstd-4072ca78-EVHwT9c-.js b/assets/zstd-4072ca78-EVHwT9c-.js new file mode 100644 index 0000000..25751b4 --- /dev/null +++ b/assets/zstd-4072ca78-EVHwT9c-.js @@ -0,0 +1,18 @@ +var BI=function(){return typeof document<"u"&&document.currentScript&&document.currentScript.src,function(y){y=y||{};var B;B||(B=typeof y<"u"?y:{});var h,U;B.ready=new Promise(function(A,I){h=A,U=I});var N={},R;for(R in B)B.hasOwnProperty(R)&&(N[R]=B[R]);var M=B.printErr||console.warn.bind(console);for(R in N)N.hasOwnProperty(R)&&(B[R]=N[R]);N=null;var f;B.wasmBinary&&(f=B.wasmBinary),B.noExitRuntime&&B.noExitRuntime,typeof WebAssembly!="object"&&Z("no native wasm support detected");var Y,l=!1,O=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function fA(A,I,g){var Q=w;if(0=E){var S=A.charCodeAt(++C);E=65536+((E&1023)<<10)|S&1023}if(127>=E){if(I>=g)break;Q[I++]=E}else{if(2047>=E){if(I+1>=g)break;Q[I++]=192|E>>6}else{if(65535>=E){if(I+2>=g)break;Q[I++]=224|E>>12}else{if(I+3>=g)break;Q[I++]=240|E>>18,Q[I++]=128|E>>12&63}Q[I++]=128|E>>6&63}Q[I++]=128|E&63}}Q[I]=0}}var oA=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function TA(A,I){for(var g=A>>1,Q=g+I/2;!(g>=Q)&&P[g];)++g;if(g<<=1,32>1];if(C==0||g==I/2)return Q;++g,Q+=String.fromCharCode(C)}}function WA(A,I,g){if(g===void 0&&(g=2147483647),2>g)return 0;g-=2;var Q=I;g=g<2*A.length?g/2:A.length;for(var C=0;C>1]=A.charCodeAt(C),I+=2;return W[I>>1]=0,I-Q}function eA(A){return 2*A.length}function xA(A,I){for(var g=0,Q="";!(g>=I/4);){var C=K[A+4*g>>2];if(C==0)break;++g,65536<=C?(C-=65536,Q+=String.fromCharCode(55296|C>>10,56320|C&1023)):Q+=String.fromCharCode(C)}return Q}function VA(A,I,g){if(g===void 0&&(g=2147483647),4>g)return 0;var Q=I;g=Q+g-4;for(var C=0;C=E){var S=A.charCodeAt(++C);E=65536+((E&1023)<<10)|S&1023}if(K[I>>2]=E,I+=4,I+4>g)break}return K[I>>2]=0,I-Q}function XA(A){for(var I=0,g=0;g=Q&&++g,I+=4}return I}var T,p,w,W,P,K,H,GA,SA;function aA(A){T=A,B.HEAP8=p=new Int8Array(A),B.HEAP16=W=new Int16Array(A),B.HEAP32=K=new Int32Array(A),B.HEAPU8=w=new Uint8Array(A),B.HEAPU16=P=new Uint16Array(A),B.HEAPU32=H=new Uint32Array(A),B.HEAPF32=GA=new Float32Array(A),B.HEAPF64=SA=new Float64Array(A)}var FA=B.INITIAL_MEMORY||16777216;B.wasmMemory?Y=B.wasmMemory:Y=new WebAssembly.Memory({initial:FA/65536,maximum:32768}),Y&&(T=Y.buffer),FA=T.byteLength,aA(T);var b,yA=[],hA=[],lA=[],NA=[];function pA(){var A=B.preRun.shift();yA.unshift(A)}var t=0,m=null;B.preloadedImages={},B.preloadedAudios={};function Z(A){throw B.onAbort&&B.onAbort(A),M(A),l=!0,A=new WebAssembly.RuntimeError("abort("+A+"). Build with -s ASSERTIONS=1 for more info."),U(A),A}function RA(A){var I=u;return String.prototype.startsWith?I.startsWith(A):I.indexOf(A)===0}function sA(){return RA("data:application/octet-stream;base64,")}var u="zstd_codec.wasm";if(!sA()){var wA=u;u=B.locateFile?B.locateFile(wA,""):""+wA}function bA(){try{if(f)return new Uint8Array(f);throw"both async and sync fetching of the wasm failed"}catch(A){Z(A)}}function j(A){for(;0>2]=I},this.M=function(I){K[this.C+0>>2]=I},this.N=function(){K[this.C+4>>2]=0},this.L=function(){p[this.C+12>>0]=0},this.O=function(){p[this.C+13>>0]=0},this.K=function(I,g){this.P(I),this.M(g),this.N(),this.L(),this.O()}}function AA(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+A)}}var UA=void 0;function k(A){for(var I="";w[A];)I+=UA[w[A++]];return I}var e={},n={},z={};function JA(A){if(A===void 0)return"_unknown";A=A.replace(/[^a-zA-Z0-9_]/g,"$");var I=A.charCodeAt(0);return 48<=I&&57>=I?"_"+A:A}function qA(A,I){return A=JA(A),new Function("body","return function "+A+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(I)}function IA(A){var I=Error,g=qA(A,function(Q){this.name=A,this.message=Q,Q=Error(Q).stack,Q!==void 0&&(this.stack=this.toString()+` +`+Q.replace(/^Error(:[^\n]*)?\n/,""))});return g.prototype=Object.create(I.prototype),g.prototype.constructor=g,g.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},g}var kA=void 0;function J(A){throw new kA(A)}var gA=void 0;function ZA(A,I){function g(i){if(i=I(i),i.length!==Q.length)throw new gA("Mismatched type converter count");for(var o=0;o>2])}function CA(A){if(A===null)return"null";var I=typeof A;return I==="object"||I==="array"||I==="function"?A.toString():""+A}function OA(A,I){switch(I){case 2:return function(g){return this.fromWireType(GA[g>>2])};case 3:return function(g){return this.fromWireType(SA[g>>3])};default:throw new TypeError("Unknown float type: "+A)}}function PA(A){var I=Function;if(!(I instanceof Function))throw new TypeError("new_ called with constructor type "+typeof I+" which is not a function");var g=qA(I.name||"unknownFunctionName",function(){});return g.prototype=I.prototype,g=new g,A=I.apply(g,A),A instanceof Object?A:g}function uA(A){for(;A.length;){var I=A.pop();A.pop()(I)}}function jA(A,I){var g=B;if(g[A].A===void 0){var Q=g[A];g[A]=function(){return g[A].A.hasOwnProperty(arguments.length)||J("Function '"+I+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+g[A].A+")!"),g[A].A[arguments.length].apply(this,arguments)},g[A].A=[],g[A].A[Q.H]=Q}}function zA(A,I,g){B.hasOwnProperty(A)?((g===void 0||B[A].A!==void 0&&B[A].A[g]!==void 0)&&J("Cannot register public name '"+A+"' twice"),jA(A,A),B.hasOwnProperty(g)&&J("Cannot register multiple overloads of a function with the same number of arguments ("+g+")!"),B[A].A[g]=I):(B[A]=I,g!==void 0&&(B[A].S=g))}function vA(A,I){for(var g=[],Q=0;Q>2)+Q]);return g}function _A(A,I){0<=A.indexOf("j")||Z("Assertion failed: getDynCaller should only be called with i64 sigs");var g=[];return function(){g.length=arguments.length;for(var Q=0;Q>1]}:function(Q){return P[Q>>1]};case 2:return g?function(Q){return K[Q>>2]}:function(Q){return H[Q>>2]};default:throw new TypeError("Unknown integer type: "+A)}}for(var HA=Array(256),v=0;256>v;++v)HA[v]=String.fromCharCode(v);UA=HA,kA=B.BindingError=IA("BindingError"),gA=B.InternalError=IA("InternalError"),B.count_emval_handles=function(){for(var A=0,I=5;I>E])},B:null})},q:function(A,I){I=k(I),c(A,{name:I,fromWireType:function(g){var Q=L[g].value;return LA(g),Q},toWireType:function(g,Q){return YA(Q)},argPackAdvance:8,readValueFromPointer:QA,B:null})},g:function(A,I,g){g=AA(g),I=k(I),c(A,{name:I,fromWireType:function(Q){return Q},toWireType:function(Q,C){if(typeof C!="number"&&typeof C!="boolean")throw new TypeError('Cannot convert "'+CA(C)+'" to '+this.name);return C},argPackAdvance:8,readValueFromPointer:OA(I,g),B:null})},e:function(A,I,g,Q,C,E){var S=vA(I,g);A=k(A),C=$A(Q,C),zA(A,function(){AI("Cannot call "+A+" due to unbound types",S)},I-1),ZA(S,function(i){var o=A,a=A;i=[i[0],null].concat(i.slice(1));var F=C,G=i.length;2>G&&J("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=i[1]!==null&&!1,q=!1,D=1;D>>i}}var o=I.indexOf("unsigned")!=-1;c(A,{name:I,fromWireType:E,toWireType:function(a,F){if(typeof F!="number"&&typeof F!="boolean")throw new TypeError('Cannot convert "'+CA(F)+'" to '+this.name);if(FC)throw new TypeError('Passing a number "'+CA(F)+'" from JS side to C/C++ side to an argument of type "'+I+'", which is outside the valid range ['+Q+", "+C+"]!");return o?F>>>0:F|0},argPackAdvance:8,readValueFromPointer:II(I,S,Q!==0),B:null})},b:function(A,I,g){function Q(E){E>>=2;var S=H;return new C(T,S[E+1],S[E])}var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][I];g=k(g),c(A,{name:g,fromWireType:Q,argPackAdvance:8,readValueFromPointer:Q},{J:!0})},f:function(A,I){I=k(I);var g=I==="std::string";c(A,{name:I,fromWireType:function(Q){var C=H[Q>>2];if(g)for(var E=Q+4,S=0;S<=C;++S){var i=Q+4+S;if(S==C||w[i]==0){if(E){var o=E,a=w,F=o+(i-E);for(E=o;a[E]&&!(E>=F);)++E;if(16G?F+=String.fromCharCode(G):(G-=65536,F+=String.fromCharCode(55296|G>>10,56320|G&1023))}}else F+=String.fromCharCode(G)}o=F}}else o="";if(D===void 0)var D=o;else D+="\0",D+=o;E=i+1}}else{for(D=Array(C),S=0;S=G&&(G=65536+((G&1023)<<10)|C.charCodeAt(++F)&1023),127>=G?++a:a=2047>=G?a+2:65535>=G?a+3:a+4}return a}:function(){return C.length})(),i=_(4+S+1);if(H[i>>2]=S,g&&E)fA(C,i+4,S+1);else if(E)for(E=0;E>2],F=S(),G,s=o+4,q=0;q<=a;++q){var D=o+4+q*I;(q==a||F[D>>i]==0)&&(s=Q(s,D-s),G===void 0?G=s:(G+="\0",G+=s),s=D+I)}return r(o),G},toWireType:function(o,a){typeof a!="string"&&J("Cannot pass non-string to C++ string type "+g);var F=E(a),G=_(4+F+I);return H[G>>2]=F>>i,C(a,G+4,F+I),o!==null&&o.push(r,G),G},argPackAdvance:8,readValueFromPointer:QA,B:function(o){r(o)}})},i:function(A,I){I=k(I),c(A,{R:!0,name:I,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},j:LA,m:function(A){4>>=0;var I=w.length;if(2147483648=g;g*=2){var Q=I*(1+.2/g);Q=Math.min(Q,A+100663296),Q=Math.max(16777216,A,Q),0>>16),aA(Y.buffer);var C=1;break A}catch{}C=void 0}if(C)return!0}return!1},a:Y};(function(){function A(C){B.asm=C.exports,b=B.asm.s,t--,B.monitorRunDependencies&&B.monitorRunDependencies(t),t==0&&m&&(C=m,m=null,C())}function I(C){A(C.instance)}function g(C){return Promise.resolve().then(bA).then(function(E){return WebAssembly.instantiate(E,Q)}).then(C,function(E){M("failed to asynchronously prepare wasm: "+E),Z(E)})}var Q={a:gI};if(t++,B.monitorRunDependencies&&B.monitorRunDependencies(t),B.instantiateWasm)try{return B.instantiateWasm(Q,A)}catch(C){return M("Module.instantiateWasm callback failed with error: "+C),!1}return function(){return f||typeof WebAssembly.instantiateStreaming!="function"||sA()||RA("file://")||typeof fetch!="function"?g(I):fetch(u,{credentials:"same-origin"}).then(function(C){return WebAssembly.instantiateStreaming(C,Q).then(I,function(E){return M("wasm streaming compile failed: "+E),M("falling back to ArrayBuffer instantiation"),g(I)})})}().catch(U),{}})();var cA=B.___wasm_call_ctors=function(){return(cA=B.___wasm_call_ctors=B.asm.t).apply(null,arguments)},_=B._malloc=function(){return(_=B._malloc=B.asm.u).apply(null,arguments)},r=B._free=function(){return(r=B._free=B.asm.v).apply(null,arguments)},rA=B.___getTypeName=function(){return(rA=B.___getTypeName=B.asm.w).apply(null,arguments)};B.___embind_register_native_and_builtin_types=function(){return(B.___embind_register_native_and_builtin_types=B.asm.x).apply(null,arguments)};var $;m=function A(){$||EA(),$||(m=A)};function EA(){function A(){if(!$&&($=!0,B.calledRun=!0,!l)){if(j(hA),j(lA),h(B),B.onRuntimeInitialized&&B.onRuntimeInitialized(),B.postRun)for(typeof B.postRun=="function"&&(B.postRun=[B.postRun]);B.postRun.length;){var I=B.postRun.shift();NA.unshift(I)}j(NA)}}if(!(0new Uint8Array(Buffer.from(y,"base64")):(()=>{for(var y=new Uint8Array(128),B=0;B<64;B++)y[B<26?B+65:B<52?B+71:B<62?B-4:B*4-205]=B;return h=>{for(var U=h.length,N=new Uint8Array((U-(h[U-1]=="=")-(h[U-2]=="="))*3/4|0),R=0,M=0;R>4,N[M++]=Y<<4|l>>2,N[M++]=l<<6|O}return N}})(),EI=CI("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IAAoAighCQNAIAkgASAFcUECdGogBiAFIAhqIAIgBBA9QQJ0aiIKKAIANgIAIAogBTYCACAFQQFqIgUgB0kNAAsLIAAgBzYCGCAGIAMgAiAEED1BAnRqKAIAC1oBAX8gASgCOEEBRgRAIAIEQCAAEB0PCyAAECAPCyAAEFlBAnQiA0HwLGooAgBBCHQgASgCLGohACABKAIEIANqKAIAIQEgAgRAIAAgARAdaw8LIAAgARAgawsMACAAQQFqEBlBCHQLggQBA38gAkGABE8EQCAAIAEgAhAMGiAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIAJBAUgEQCAAIQIMAQsgAEEDcUUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA08NASACQQNxDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIANBfGoiBCAASQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALUwECfyAAKAIEIQEgACgCDCAAKAIAEH4gACAAKAIEQQdxNgIEIAAgACgCACABQXhxdjYCACAAIAAoAhAiAiAAKAIMIAFBA3ZqIgAgACACSxs2AgwL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJ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EgAAABIAAAABAAAABQAAAAAAAAACAAAAFQAAABIAAAATAAAAAgAAAAUAAAACAAAAAwAAABUAAAATAAAAEwAAAAMAAAAFAAAABAAAAAMAAAAVAAAAEwAAABMAAAADAAAABQAAAAgAAAAEAAAAFQAAABMAAAATAAAAAwAAAAUAAAAQAAAABQAAABUAAAATAAAAFAAAAAQAAAAFAAAAEAAAAAUAAAAWAAAAFAAAABUAAAAEAAAABQAAABAAAAAFAAAAFgAAABUAAAAWAAAABAAAAAUAAAAQAAAABQAAABYAAAAVAAAAFgAAAAUAAAAFAAAAEAAAAAUAAAAWAAAAFQAAABYAAAAFAAAABQAAACAAAAAGAAAAFgAAABYAAAAXAAAABQAAAAUAAAAgAAAABgAAABYAAAAXAAAAFwAAAAYAAAAFAAAAIAAAAAYAAAAWAAAAFgAAABYAAAAFAAAABQAAADAAAAAHAAAAFwAAABcAAAAWAAAABQAAAAQAAABAAAAABwAAABcAAAAXAAAAFgAAAAYAAAADAAAAQAAAAAgAAAAXAAAAGAAAABYAAAAHAAAAAwAAAAABAAAJAAAAGQAAABkAAAAXAAAABwAAAAMAAAAAAQAACQAAABoAAAAaAAAAGAAAAAcAAAADAAAAAAIAAAkAAAAbAAAAGwAAABkAAAAJAAAAAwAAAOcDAAAJAAAAEgAAAAwAAAANAAAAAQAAAAUAAAABAAAAAQAAABIAAAANAAAADgAAAAEAAAAGAAAAAAAAAAEAAAASAAAADgAAAA4AAAABAAAABQAAAAAAAAACAAAAEgAAABAAAAAQAAAAAQAAAAQAAAAAAAAAAgAAABIAAAAQAAAAEQAAAAIAAAAFAAAAAgAAAAMAAAASAAAAEgAAABIAAAADAAAABQAAAAIAAAADAAAAEgAAABIAAAATAAAAAwAAAAUAAAAEAAAABAAAABIAAAASAAAAEwAAAAQAAAAEAAAABAAAAAQAAAASAAAAEgAAABMAAAAEAAAABAAAAAgAAAAFAAAAEgAAABIAAAATAAAABQAAAAQAAAAIAAAABQAAABIAAAASAAAAEwAAAAYAAAAEAAAACAAAAAUAAAASAAAAEgAAABMAAAAFAAAABAAAAAwAAAAGAAAAEgAAABMAAAATAAAABwAAAAQAAAAMAAAABgAAABIAAAASAAAAEwAAAAQAAAAEAAAAEAAAAAcAAAASAAAAEgAAABMAAAAEAAAAAwAAACAAAAAHAAAAEgAAABIAAAATAAAABgAAAAMAAACAAAAABwAAABIAAAATAAAAEwAAAAYAAAADAAAAgAAAAAgAAAASAAAAEwAAABMAAAAIAAAAAwAAAAABAAAIAAAAEgAAABMAAAATAAAABgAAAAMAAACAAAAACQAAABIAAAATAAAAEwAAAAgAAAADAAAAAAEAAAkAAAASAAAAEwAAABMAAAAKAAAAAwAAAAACAAAJAAAAEgAAABMAAAATAAAADAAAAAMAAAAAAgAACQAAABIAAAATAAAAEwAAAA0AAAADAAAA5wMAAAkAAAARAAAADAAAAAwAAAABAAAABQAAAAEAAAABAAAAEQAAAAwAAAANAAAAAQAAAAYAAAAAAAAAAQAAABEAAAANAAAADwAAAAEAAAAFAAAAAAAAAAEAAAARAAAADwAAABAAAAACAAAABQAAAAAAAAACAAAAEQAAABEAAAARAAAAAgAAAAQAAAAAAAAAAgAAABEAAAAQAAAAEQAAAAMAAAAEAAAAAgAAAAMAAAARAAAAEQAAABEAAAADAAAABAAAAAQAAAAEAAAAEQAAABEAAAARAAAAAwAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAQAAAAEAAAACAAAAAUAAAARAAAAEQAAABEAAAAFAAAABAAAAAgAAAAFAAAAEQAAABEAAAARAAAABgAAAAQAAAAIAAAABQAAABEAAAARAAAAEQAAAAUAAAAEAAAACAAAAAYAAAARAAAAEgAAABEAAAAHAAAABAAAAAwAAAAGAAAAEQAAABIAAAARAAAAAwAAAAQAAAAMAAAABwAAABEAAAASAAAAEQAAAAQAAAADAAAAIAAAAAcAAAARAAAAEgAAABEAAAAGAAAAAwAAAAABAAAHAAAAEQAAABIAAAARAAAABgAAAAMAAACAAAAACAAAABEAAAASAAAAEQAAAAgAAAADAAAAAAEAAAgAAAARAAAAEgAAABEAAAAKAAAAAwAAAAACAAAIAAAAEQAAABIAAAARAAAABQAAAAMAAAAAAQAACQAAABEAAAASAAAAEQAAAAcAAAADAAAAAAIAAAkAAAARAAAAEgAAABEAAAAJAAAAAwAAAAACAAAJAAAAEQAAABIAAAARAAAACwAAAAMAAADnAwAACQAAAA4AAAAMAAAADQAAAAEAAAAFAAAAAQAAAAEAAAAOAAAADgAAAA8AAAABAAAABQAAAAAAAAABAAAADgAAAA4AAAAPAAAAAQAAAAQAAAAAAAAAAQAAAA4AAAAOAAAADwAAAAIAAAAEAAAAAAAAAAIAAAAOAAAADgAAAA4AAAAEAAAABAAAAAIAAAADAAAADgAAAA4AAAAOAAAAAwAAAAQAAAAEAAAABAAAAA4AAAAOAAAADgAAAAQAAAAEAAAACAAAAAUAAAAOAAAADgAAAA4AAAAGAAAABAAAAAgAAAAFAAAADgAAAA4AAAAOAAAACAAAAAQAAAAIAAAABQAAAA4AAAAPAAAADgAAAAUAAAAEAAAACAAAAAYAAAAOAAAADwAAAA4AAAAJAAAABAAAAAgAAAAGAAAADgAAAA8AAAAOAAAAAwAAAAQAAAAMAAAABwAAAA4AAAAPAAAADgAAAAQAAAADAAAAGAAAAAcAAAAOAAAADwAAAA4AAAAFAAAAAwAAACAAAAAIAAAADgAAAA8AAAAPAAAABgAAAAMAAABAAAAACAAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAgAAAAOAAAADwAAAA8AAAAFAAAAAwAAADAAAAAJAAAADgAAAA8AAAAPAAAABgAAAAMAAACAAAAACQAAAA4AAAAPAAAADwAAAAcAAAADAAAAAAEAAAkAAAAOAAAADwAAAA8AAAAIAAAAAwAAAAABAAAJAAAADgAAAA8AAAAPAAAACAAAAAMAAAAAAgAACQAAAA4AAAAPAAAADwAAAAkAAAADAAAAAAIAAAkAAAAOAAAADwAAAA8AAAAKAAAAAwAAAOcDAAAJAAAACAAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABgAAAAZAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAgAEHQHwv6AQQAAwACAAIAAgACAAIAAgACAAIAAgACAAIAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAwACAAEAAQABAAEAAQD//////////wAAAAAAAAAAAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA/////////////wAAAAAAAAEABAADAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA//////////////////8AQdUhC/gHCAAAAAcAAGoGAAAABgAArQUAAGoFAAAxBQAAAAUAANQEAACtBAAAigQAAGoEAABMBAAAMQQAABcEAAAABAAA6QMAANQDAADAAwAArQMAAJsDAACKAwAAeQMAAGoDAABbAwAATAMAAD4DAAAxAwAAJAMAABcDAAALAwAAAAMAAPQCAADpAgAA3gIAANQCAADKAgAAwAIAALYCAACtAgAApAIAAJsCAACSAgAAigIAAIICAAB5AgAAcgIAAGoCAABiAgAAWwIAAFMCAABMAgAARQIAAD4CAAA3AgAAMQIAACoCAAAkAgAAHgIAABcCAAARAgAACwIAAAUCAAAAAgAA+gEAAPQBAADvAQAA6QEAAOQBAADeAQAA2QEAANQBAADPAQAAygEAAMUBAADAAQAAuwEAALYBAACyAQAArQEAAKgBAACkAQAAnwEAAJsBAACXAQAAkgEAAI4BAACKAQAAhgEAAIIBAAB+AQAAeQEAAHUBAAByAQAAbgEAAGoBAABmAQAAYgEAAF4BAABbAQAAVwEAAFMBAABQAQAATAEAAEkBAABFAQAAQgEAAD4BAAA7AQAANwEAADQBAAAxAQAALgEAACoBAAAnAQAAJAEAACEBAAAeAQAAGgEAABcBAAAUAQAAEQEAAA4BAAALAQAACAEAAAUBAAACAQAAAAEAAP0AAAD6AAAA9wAAAPQAAADxAAAA7wAAAOwAAADpAAAA5gAAAOQAAADhAAAA3gAAANwAAADZAAAA1wAAANQAAADRAAAAzwAAAMwAAADKAAAAxwAAAMUAAADCAAAAwAAAAL4AAAC7AAAAuQAAALYAAAC0AAAAsgAAAK8AAACtAAAAqwAAAKgAAACmAAAApAAAAKIAAACfAAAAnQAAAJsAAACZAAAAlwAAAJUAAACSAAAAkAAAAI4AAACMAAAAigAAAIgAAACGAAAAhAAAAIIAAACAAAAAfgAAAHsAAAB5AAAAdwAAAHUAAABzAAAAcgAAAHAAAABuAAAA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AAAAAQBB8DcL1gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAQEGAAAAAAAABAAAAAAQAAAEAAAAACAAAAUBAAAAAAAABQMAAAAAAAAFBAAAAAAAAAUGAAAAAAAABQcAAAAAAAAFCQAAAAAAAAUKAAAAAAAABQwAAAAAAAAGDgAAAAAAAQUQAAAAAAABBRQAAAAAAAEFFgAAAAAAAgUcAAAAAAADBSAAAAAAAAQFMAAAACAABgVAAAAAAAAHBYAAAAAAAAgGAAEAAAAACgYABAAAAAAMBgAQAAAgAAAEAAAAAAAAAAQBAAAAAAAABQIAAAAgAAAFBAAAAAAAAAUFAAAAIAAABQcAAAAAAAAFCAAAACAAAAUKAAAAAAAABQsAAAAAAAAGDQAAACAAAQUQAAAAAAABBRIAAAAgAAEFFgAAAAAAAgUYAAAAIAADBSAAAAAAAAMFKAAAAAAABgRAAAAAEAAGBEAAAAAgAAcFgAAAAAAACQYAAgAAAAALBgAIAAAwAAAEAAAAABAAAAQBAAAAIAAABQIAAAAgAAAFAwAAACAAAAUFAAAAIAAABQYAAAAgAAAFCAAAACAAAAUJAAAAIAAABQsAAAAgAAAFDAAAAAAAAAYPAAAAIAABBRIAAAAgAAEFFAAAACAAAgUYAAAAIAACBRwAAAAgAAMFKAAAACAABAUwAAAAAAAQBgAAAQAAAA8GAIAAAAAADgYAQAAAAAANBgAgAEHUPAuDBAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAEAAQEFAAAAAAAABQAAAAAAAAYEPQAAAAAACQX9AQAA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ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgAAAGwtAAAQKAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAABsLQAAOCgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQAAbC0AAGAoAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUAAGwtAACIKAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAABsLQAAsCgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAbC0AANgoAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUAAGwtAAAAKQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAABsLQAAKCkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAbC0AAFApAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAGwtAAB4KQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAACULQAAsCkAAAAAAAABAAAAnAQAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVOU185YWxsb2NhdG9ySURpRUVFRQAAAJQtAAAMKgAAAAAAAAEAAACcBAAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAlC0AAGgqAAAAAAAAAQAAAJwEAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAAJQtAADAKgAAAAAAAAEAAACcBAAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAGJhc2ljX3N0cmluZwBzdGQ6OmV4Y2VwdGlvbgAAAAAAADArAAAhAAAAIgAAACMAAABsLQAAOCsAAFN0OWV4Y2VwdGlvbgAAAAAAAAAAXCsAAAcAAAAkAAAAJQAAAOArAABoKwAAMCsAAFN0MTFsb2dpY19lcnJvcgAAAAAAjCsAAAcAAAAmAAAAJQAAAOArAACYKwAAXCsAAFN0MTJsZW5ndGhfZXJyb3IAU3Q5dHlwZV9pbmZvAAAAbC0AAKkrAADgKwAAVSwAALgrAADgKwAAACwAAMArAAAAAAAAJCwAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAA4CsAADAsAADMKwAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAAAAAJQsAAAnAAAALwAAACkAAAAqAAAAMAAAAOArAACgLAAAwCsAAE4xMF9fY3h4YWJpdjEyM19fZnVuZGFtZW50YWxfdHlwZV9pbmZvRQB2AAAAgCwAAMgsAABiAAAAgCwAANQsAABjAAAAgCwAAOAsAABoAAAAgCwAAOwsAABhAAAAgCwAAPgsAABzAAAAgCwAAAQtAAB0AAAAgCwAABAtAABpAAAAgCwAABwtAABqAAAAgCwAACgtAABsAAAAgCwAADQtAABtAAAAgCwAAEAtAABmAAAAgCwAAEwtAABkAAAAgCwAAFgtAAAAAAAAzCsAACcAAAAxAAAAKQAAACoAAAArAAAAMgAAADMAAAA0AAAAAAAAALQtAAAnAAAANQAAACkAAAAqAAAAKwAAADYAAAA3AAAAOAAAAOArAADALQAAzCsAAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAQejbAAsDIDJQ"),V;const iA=1,DA=22;let X;const dA=()=>BI({noInitialRun:!0,wasmBinary:EI}),iI=(V=class{constructor(y=iA){if(!Number.isInteger(y))throw Error(`Invalid acceleration "${y}". Must be a positive integer.`);this.level=y}static fromConfig({level:y}){return new V(y)}async encode(y){X||(X=dA());let B=this.level;B<=0&&(B=iA),B>DA&&(B=DA);const h=await X,U=h.compress(y,B),N=new Uint8Array(U);return h.free_result(),N}async decode(y,B){X||(X=dA());const h=await X,U=h.decompress(y),N=new Uint8Array(U);return h.free_result(),B!==void 0?(B.set(N),B):N}},V.codecId="zstd",V.DEFAULT_CLEVEL=iA,V.MAX_CLEVEL=DA,V);export{iI as default}; diff --git a/index.html b/index.html new file mode 100644 index 0000000..da66176 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + CellPop + + + +
+
+ + diff --git a/vite.svg b/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file